<?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>201675</bug_id>
          
          <creation_ts>2019-09-10 20:25:42 -0700</creation_ts>
          <short_desc>Web Inspector: Canvas: show WebGPU shader pipelines</short_desc>
          <delta_ts>2019-09-25 15:21:17 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>201650</dependson>
          <blocked>201855</blocked>
    
    <blocked>201856</blocked>
    
    <blocked>202030</blocked>
    
    <blocked>202031</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonlee</cc>
    
    <cc>justin_fan</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tsavell</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1569815</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-10 20:25:42 -0700</bug_when>
    <thetext>Since WebGPU has a similar vertex/fragment shader concept, the UI would likely be the same as for WebGL/WebGL2 (e.g. split view vertex and fragment).

Allowing live editing and recompilation would also be nice :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570223</commentid>
    <comment_count>1</comment_count>
      <attachid>378639</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-12 03:38:52 -0700</bug_when>
    <thetext>Created attachment 378639
[Patch] WIP

This patch makes WebGPU shader pipelines (both render and compute) visible for the corresponding `WebGPUDevice`.  I still need to get editing working (including modifying the `entryPoint`, if possible), but this is already pretty great 😁

For compute shader pipelines, we don&apos;t need a split view as there&apos;s only one shader, so we only show a single content view with &quot;Compute Shader&quot; in the header.

This also needs tests -.-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570224</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-09-12 03:39:40 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570225</commentid>
    <comment_count>3</comment_count>
      <attachid>378640</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-12 03:39:50 -0700</bug_when>
    <thetext>Created attachment 378640
[Image] After Patch is applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570226</commentid>
    <comment_count>4</comment_count>
      <attachid>378639</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-12 03:41:34 -0700</bug_when>
    <thetext>Comment on attachment 378639
[Patch] WIP

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

&gt; Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:65
&gt;                  textEditor.mimeType = &quot;x-shader/x-vertex&quot;;

We should probably create another MIME type for compute shaders (e.g. &quot;x-shader/x-compute&quot;), but that isn&apos;t supported by CodeMirror right now (not to mention that &quot;x-shader/x-vertex&quot; and &quot;x-shader/x-fragment&quot; don&apos;t have proper syntax highlighting for WHLSL).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570516</commentid>
    <comment_count>5</comment_count>
      <attachid>378718</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-13 00:31:51 -0700</bug_when>
    <thetext>Created attachment 378718
[Patch] WIP

Reworked some things and added further scaffolding for editing.  The last bit remaining is to actually hook up editing (`GPUComputePipeline::recompile` and `GPURenderPipeline::recompile`).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571000</commentid>
    <comment_count>6</comment_count>
      <attachid>378836</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-15 21:33:31 -0700</bug_when>
    <thetext>Created attachment 378836
[Patch] WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571012</commentid>
    <comment_count>7</comment_count>
      <attachid>378840</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-15 22:32:04 -0700</bug_when>
    <thetext>Created attachment 378840
[Patch] WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571094</commentid>
    <comment_count>8</comment_count>
      <attachid>378862</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-16 07:59:55 -0700</bug_when>
    <thetext>Created attachment 378862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571297</commentid>
    <comment_count>9</comment_count>
      <attachid>378862</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-16 15:47:11 -0700</bug_when>
    <thetext>Comment on attachment 378862
Patch

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

r=me

Nice! Great tests.

The WebGPU Pipeline stuff went over my head so you might want to get a nod from a WebGPU expert.

WK1 tests seem to have failed, maybe WebGPU is not enabled there?:
CONSOLE MESSAGE: line 83: Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating &apos;navigator.gpu.requestAdapter&apos;)

&gt; Source/WebCore/inspector/InspectorShaderProgram.cpp:120
&gt;          return nullptr;

Seems we should also ASSERT_NOT_REACHED for WebGL here.

&gt; Source/WebCore/inspector/InspectorShaderProgram.cpp:231
&gt; +                                if (entryPoint)
&gt; +                                    shader.value().entryPoint = *entryPoint;

Is there any concern here about a malicious kind of entryPoint string?

&gt; Source/WebCore/platform/graphics/gpu/GPUComputePipeline.h:70
&gt; +    // Prserved for Web Inspector recompilation.

Typo: &quot;Prserved&quot; =&gt; &quot;Preserved&quot;, This happens a few times.

&gt; Source/WebInspectorUI/UserInterface/Models/ShaderProgram.js:45
&gt; +    static _contextTypeSupportsProgramType(contextType, programType)

These are static, might as well not give them an underscore prefix.

&gt; Source/WebInspectorUI/UserInterface/Models/ShaderProgram.js:118
&gt; +        if (this._canvas.contextType === WI.Canvas.ContextType.WebGPU)
&gt; +            return;
&gt; +
&gt; +        console.assert(this._programType === ShaderProgram.ProgramType.Render);
&gt; +        console.assert(this._canvas.contextType === WI.Canvas.ContextType.WebGL || this._canvas.contextType === WI.Canvas.ContextType.WebGL2);

Maybe move the assertions above the early return?

That would help catch if we ever did this for a WebGPU context among other issues.

&gt; Source/WebInspectorUI/UserInterface/Models/ShaderProgram.js:152
&gt; +        console.assert((!!entryPoint) === (this._canvas.contextType === WI.Canvas.ContextType.WebGPU));

Style: Could drop the parenthesis on the left side.

&gt; Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:63
&gt; +                textEditor.mimeType = &quot;x-shader/x-vertex&quot;; // Treat this like a vertex shader for CodeMirror.

You could probably add something to CodeMirrorAdditions.js:

    // FIXME: Add a WHLSL specific mode.
    // Treat a computer shader like a vertex shader.
    CodeMirror.defineMIME(&quot;x-shader/x-compute&quot;, &quot;x-shader/x-vertex&quot;);

And keep this code rather clean.

&gt; Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:195
&gt; +        case WI.Canvas.ContextType.WebGPU:
&gt; +            extension = WI.unlocalizedString(&quot;.whlsl&quot;);

Is this the preferred extension? Perhaps `.wsl`? I was unable to find any concrete examples. whlsl seems find to me!

&gt; Source/WebInspectorUI/UserInterface/Views/ShaderProgramTreeElement.js:55
&gt; +            this.element.addEventListener(&quot;mouseover&quot;, this._handleMouseOver.bind(this));
&gt; +            this.element.addEventListener(&quot;mouseout&quot;, this._handleMouseOut.bind(this));

I assume we will want to / should be able to do this for WebGPU in the future. So maybe add a FIXME.

&gt; LayoutTests/ChangeLog:11
&gt; +        * inspector/canvas/requestShaderSource-expected.txt:

It kind stinks when we have:

    inspector/foo/bar.html
    inspector/foo/bar-a.html
    inspector/foo/bar-b.html

That sorting gets ugly for:

    inspector/foo/bar-a-expected.html
    inspector/foo/bar-b-expected.html
    inspector/foo/bar-expected.html

Maybe we should rename this common tests to something like:

    inspector/canvas/requestShaderSource-invalid.html
    inspector/canvas/requestShaderSource-common.html

&gt; LayoutTests/ChangeLog:12
&gt; +        * inspector/canvas/updateShader.html:

Ditto

&gt; LayoutTests/inspector/canvas/requestShaderSource-webgl.html:63
&gt; +                InspectorTest.log(source);

`InspectorTest.ShaderProgram.logSource` instead of just `InspectorTest.log`?

&gt; LayoutTests/inspector/canvas/resources/shaderProgram-utilities-webgpu.js:113
&gt; +        InspectorTest.log(&quot;`&quot; + source + &quot;`&quot;);

Maybe &quot;```\n&quot; + source + &quot;```&quot;? That is more Markdown like output for generic code.

&gt; LayoutTests/inspector/canvas/shaderProgram-add-remove-webgpu-expected.txt:15
&gt; +PASS: Added &quot;compute ShaderProgram.

Nit: Unbalanced quote

&gt; LayoutTests/inspector/canvas/shaderProgram-add-remove-webgpu.html:29
&gt; +                InspectorTest.expectThat(program instanceof WI.ShaderProgram, `Added &quot;${programType} ShaderProgram.`);

Style: Unbalanced quote around ${programType}.

&gt; LayoutTests/inspector/canvas/updateShader-webgpu.html:96
&gt; +    test({
&gt; +        name: &quot;Canvas.updateShader.WebGPU.Fragment.Invalid&quot;,
&gt; +        programType: WI.ShaderProgram.ProgramType.Render,
&gt; +        shaderType: WI.ShaderProgram.ShaderType.Fragment,
&gt; +        source: &quot;INVALID&quot;,
&gt; +        entryPoint: &quot;INVALID&quot;,
&gt; +        shouldThrow: true,
&gt; +    });

What happens if you attempt to update with only an invalid or missing entryPoint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571341</commentid>
    <comment_count>10</comment_count>
      <attachid>378862</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-16 17:09:28 -0700</bug_when>
    <thetext>Comment on attachment 378862
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorShaderProgram.cpp:120
&gt;&gt;          return nullptr;
&gt; 
&gt; Seems we should also ASSERT_NOT_REACHED for WebGL here.

I&apos;d rather not, given that this is basically ingesting straight from the frontend, and there&apos;s nothing preventing an arbitrary frontend from sending &quot;compute&quot; for a WebGL program.  It is technically reachable.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/ShaderProgram.js:152
&gt;&gt; +        console.assert((!!entryPoint) === (this._canvas.contextType === WI.Canvas.ContextType.WebGPU));
&gt; 
&gt; Style: Could drop the parenthesis on the left side.

I would find that harder to read 😅

&gt;&gt; LayoutTests/inspector/canvas/requestShaderSource-webgl.html:63
&gt;&gt; +                InspectorTest.log(source);
&gt; 
&gt; `InspectorTest.ShaderProgram.logSource` instead of just `InspectorTest.log`?

That&apos;s only in the `-webgpu.js`.  I was trying to avoid modifying the expected results of the existing tests.

&gt;&gt; LayoutTests/inspector/canvas/resources/shaderProgram-utilities-webgpu.js:113
&gt;&gt; +        InspectorTest.log(&quot;`&quot; + source + &quot;`&quot;);
&gt; 
&gt; Maybe &quot;```\n&quot; + source + &quot;```&quot;? That is more Markdown like output for generic code.

Lol yup that&apos;d be better :P

&gt;&gt; LayoutTests/inspector/canvas/updateShader-webgpu.html:96
&gt;&gt; +    });
&gt; 
&gt; What happens if you attempt to update with only an invalid or missing entryPoint?

I&apos;m going to remove the ability to edit the `entryPoint`, as it&apos;s not really a &quot;good&quot; process and is likely not really something that the developer is going to change often.  I&apos;d rather have a &quot;Shader&quot; details sidebar that has information about the shader program/pipeline, especially since WebGPU shader pipelines have a LOT more configuration than WebGL shader programs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571356</commentid>
    <comment_count>11</comment_count>
      <attachid>378862</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-09-16 17:42:33 -0700</bug_when>
    <thetext>Comment on attachment 378862
Patch

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

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h:-41
&gt; -// Hide the contents of the ShaderModule. Clients of the compiler shouldn&apos;t care what&apos;s inside it.

The details of the ShaderModule need to be hidden from WebCore. We expect to replace this string with some other compiler-dependent stuff. Instead, a better solution would be to create a wrapper object that contains a ShaderModule and a string. In the future, the string in the ShaderModule will be gone, but the other string can persist. (Even if there are two strings, they will both point to the same String Impl so the won&apos;t cause memory bloat.)

&gt; Source/WebCore/Modules/webgpu/WebGPUComputePipeline.h:59
&gt; +    // Prserved for Web Inspector recompilation.

typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571357</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-09-16 17:42:53 -0700</bug_when>
    <thetext>I&apos;m still in the middle of reviewing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571366</commentid>
    <comment_count>13</comment_count>
      <attachid>378862</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-09-16 18:06:18 -0700</bug_when>
    <thetext>Comment on attachment 378862
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorShaderProgram.cpp:231
&gt;&gt; +                                    shader.value().entryPoint = *entryPoint;
&gt; 
&gt; Is there any concern here about a malicious kind of entryPoint string?

You mean, shader code? This string here is just used to match the contents of the shader; any shader code that can run will first be vetted by the compiler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571376</commentid>
    <comment_count>14</comment_count>
      <attachid>378862</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-16 18:30:22 -0700</bug_when>
    <thetext>Comment on attachment 378862
Patch

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

&gt;&gt; LayoutTests/ChangeLog:11
&gt;&gt; +        * inspector/canvas/requestShaderSource-expected.txt:
&gt; 
&gt; It kind stinks when we have:
&gt; 
&gt;     inspector/foo/bar.html
&gt;     inspector/foo/bar-a.html
&gt;     inspector/foo/bar-b.html
&gt; 
&gt; That sorting gets ugly for:
&gt; 
&gt;     inspector/foo/bar-a-expected.html
&gt;     inspector/foo/bar-b-expected.html
&gt;     inspector/foo/bar-expected.html
&gt; 
&gt; Maybe we should rename this common tests to something like:
&gt; 
&gt;     inspector/canvas/requestShaderSource-invalid.html
&gt;     inspector/canvas/requestShaderSource-common.html

I agree that the sorting isn&apos;t ideal, but I don&apos;t like adding a `-common`/`-invalid` suffix.  I&apos;d rather the common things be in the file that matches the protocol name so it&apos;s the most straightforward to find, and then any &quot;specializations&quot; have a `-*` suffix at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571383</commentid>
    <comment_count>15</comment_count>
      <attachid>378927</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-16 19:11:39 -0700</bug_when>
    <thetext>Created attachment 378927
Patch

Reworked shader module source logic to not expose the `WHLSL::ShaderModule`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571482</commentid>
    <comment_count>16</comment_count>
      <attachid>378927</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-09-17 01:50:11 -0700</bug_when>
    <thetext>Comment on attachment 378927
Patch

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

this looks LGTM to me

&gt; Source/WebCore/Modules/webgpu/WebGPUComputePipeline.h:50
&gt; +    Optional&lt;WebGPUPipeline::ShaderData&gt; computeShader() const { return m_computeShader; }

I wonder if this should just be shader()?

&gt; Source/WebCore/Modules/webgpu/WebGPUComputePipeline.h:52
&gt; +    bool recompile(const WebGPUDevice&amp;);

Why not just compile(..)?

&gt; Source/WebCore/Modules/webgpu/WebGPUComputePipeline.h:60
&gt; +    Optional&lt;WebGPUPipeline::ShaderData&gt; m_computeShader;

m_shader;

&gt; Source/WebCore/Modules/webgpu/WebGPUPipeline.cpp:48
&gt; +Lock&amp; WebGPUPipeline::instancesMutex()

WebGPUPipeline::mutex() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571529</commentid>
    <comment_count>17</comment_count>
      <attachid>378927</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-17 07:30:21 -0700</bug_when>
    <thetext>Comment on attachment 378927
Patch

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

&gt;&gt; Source/WebCore/Modules/webgpu/WebGPUComputePipeline.h:50
&gt;&gt; +    Optional&lt;WebGPUPipeline::ShaderData&gt; computeShader() const { return m_computeShader; }
&gt; 
&gt; I wonder if this should just be shader()?

I like keeping the `compute*` prefix, so it&apos;s clear that the shader is expected to be a compute shader.  Also, many other values are also prefixed with `compute*` (e.g. `m_computePipeline`).

&gt;&gt; Source/WebCore/Modules/webgpu/WebGPUComputePipeline.h:52
&gt;&gt; +    bool recompile(const WebGPUDevice&amp;);
&gt; 
&gt; Why not just compile(..)?

I wanted some distinction/indication that this doesn&apos;t need to be called after construction, and is instead a way of basically &quot;updating&quot; the pipeline.  Perhaps `update` would be better?

&gt;&gt; Source/WebCore/Modules/webgpu/WebGPUPipeline.cpp:48
&gt;&gt; +Lock&amp; WebGPUPipeline::instancesMutex()
&gt; 
&gt; WebGPUPipeline::mutex() ?

This matches `WebGLProgram::instancesMutex` and `CanvasRenderingContext::instancesMutex` and `WebGPUDevice::instancesMutex`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572560</commentid>
    <comment_count>18</comment_count>
      <attachid>378927</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-19 17:39:12 -0700</bug_when>
    <thetext>Comment on attachment 378927
Patch

I spoke with Myles offline, and he said to go ahead and land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572576</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-19 18:19:22 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 378927:

media/modern-media-controls/compact-media-controls/compact-media-controls-constructor.html bug 193587 (author: graouts@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572577</commentid>
    <comment_count>20</comment_count>
      <attachid>378927</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-19 18:20:39 -0700</bug_when>
    <thetext>Comment on attachment 378927
Patch

Clearing flags on attachment: 378927

Committed r250114: &lt;https://trac.webkit.org/changeset/250114&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572578</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-19 18:20:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572579</commentid>
    <comment_count>22</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-19 18:21:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/55543450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572762</commentid>
    <comment_count>23</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-09-20 08:40:09 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/250114/webkit

has broken ~16 tests on Mojave Release wk2.

Build:
https://build.webkit.org/builders/Apple%20Mojave%20Release%20WK2%20%28Tests%29/builds/6794

I was able to reproduce these crashes locally by just running the webgpu/ directory on 250113 which passed and 250114 which failed. 

Results:
https://build.webkit.org/results/Apple%20Mojave%20Release%20WK2%20(Tests)/r250114%20(6794)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572807</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-09-20 12:13:11 -0700</bug_when>
    <thetext>This also appears to have caused flaky crashes on WebKit1, see bug 202038 and bug 202046.

Seems like we should do an emergency rollback due to impact on EWS and commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572818</commentid>
    <comment_count>25</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-09-20 12:39:48 -0700</bug_when>
    <thetext>Reverted r250114 for reason:

Broke ~16 webgpu/ tests on Mojave wk2

Committed r250139: &lt;https://trac.webkit.org/changeset/250139&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573393</commentid>
    <comment_count>26</comment_count>
      <attachid>379387</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-23 13:23:48 -0700</bug_when>
    <thetext>Created attachment 379387
Patch

Remove some invalid `ASSERT` (the `layout` of a pipeline descriptor can be left out).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573409</commentid>
    <comment_count>27</comment_count>
      <attachid>379387</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-23 13:57:28 -0700</bug_when>
    <thetext>Comment on attachment 379387
Patch

Oops, this still has some debug logging :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573413</commentid>
    <comment_count>28</comment_count>
      <attachid>379393</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-23 14:11:17 -0700</bug_when>
    <thetext>Created attachment 379393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573439</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 15:26:03 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 379393:

inspector/canvas/resolveContext-bitmaprenderer.html bug 202038 (author: drousso@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573442</commentid>
    <comment_count>30</comment_count>
      <attachid>379393</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 15:27:28 -0700</bug_when>
    <thetext>Comment on attachment 379393
Patch

Clearing flags on attachment: 379393

Committed r250258: &lt;https://trac.webkit.org/changeset/250258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573443</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 15:27:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574237</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-09-25 15:21:17 -0700</bug_when>
    <thetext>This is causing crashes again, see bug 202186.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378639</attachid>
            <date>2019-09-12 03:38:52 -0700</date>
            <delta_ts>2019-09-13 00:31:51 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>201675.diff</filename>
            <type>text/plain</type>
            <size>106506</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2Fu
dmFzLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZh
cy5qc29uCmluZGV4IDc5OGI5OTFjZDJiLi44NGJkZGYzNzI1MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uCkBAIC0xOSwx
MSArMTksMTUgQEAKICAgICAgICAgICAgICJlbnVtIjogWyJjYW52YXMtMmQiLCAiYml0bWFwcmVu
ZGVyZXIiLCAid2ViZ2wiLCAid2ViZ2wyIiwgIndlYmdwdSJdLAogICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlRoZSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGJhY2tpbmcgdGhlIGNhbnZh
cyBlbGVtZW50LiIKICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIlBy
b2dyYW1UeXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAi
ZW51bSI6IFsiY29tcHV0ZSIsICJyZW5kZXIiXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAg
ICAgICAgICAiaWQiOiAiU2hhZGVyVHlwZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmci
LAotICAgICAgICAgICAgImVudW0iOiBbImZyYWdtZW50IiwgInZlcnRleCJdLAotICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlNoYWRlciB0eXBlLiBXZWJHTCBzdXBwb3J0cyB2ZXJ0ZXggYW5k
IGZyYWdtZW50IHNoYWRlcnMuIgorICAgICAgICAgICAgImVudW0iOiBbImZyYWdtZW50IiwgInZl
cnRleCJdCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJpZCI6ICJDb250ZXh0
QXR0cmlidXRlcyIsCkBAIC0xMzYsNyArMTQwLDggQEAKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInNoYWRlclR5cGUiLCAiJHJlZiI6ICJTaGFkZXJUeXBlIiB9CiAgICAgICAgICAgICBdLAog
ICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250
ZW50IiwgInR5cGUiOiAic3RyaW5nIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3Vy
Y2UiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbnRy
eVBvaW50IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAg
ICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKQEAgLTE0NSw3ICsxNTAsOCBAQAogICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQi
LCAiJHJlZiI6ICJQcm9ncmFtSWQiIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaGFk
ZXJUeXBlIiwgIiRyZWYiOiAiU2hhZGVyVHlwZSIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic291cmNlIiwgInR5cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZW50cnlQb2ludCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfQogICAg
ICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7CkBAIC0yMjMsMTQgKzIyOSwxNSBAQAog
ICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJwcm9ncmFtQ3JlYXRlZCIsCiAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lk
IiwgIiRyZWYiOiAiQ2FudmFzSWQiLCAiZGVzY3JpcHRpb24iOiAiQ2FudmFzIGlkZW50aWZpZXIu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJv
Z3JhbUlkIiwgImRlc2NyaXB0aW9uIjogIlByb2dyYW0gaWRlbnRpZmllci4iIH0KKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQifSAsCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtVHlwZSIsICIkcmVmIjogIlByb2dy
YW1UeXBlIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAg
ICAgICJuYW1lIjogInByb2dyYW1EZWxldGVkIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3Jh
bUlkIiwgImRlc2NyaXB0aW9uIjogIlByb2dyYW0gaWRlbnRpZmllci4iIH0KKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInByb2dyYW1JZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfQogICAgICAg
ICAgICAgXQogICAgICAgICB9CiAgICAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAKaW5kZXggNzdlY2NiZDcyMzkuLjEyMDNk
Y2UyYWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9X
SExTTFByZXBhcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNM
L1dITFNMUHJlcGFyZS5jcHAKQEAgLTU5LDIxICs1OSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIG5hbWVzcGFjZSBXSExTTCB7CiAKLXN0cnVjdCBTaGFkZXJNb2R1bGUgewotICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotCi0gICAgU2hhZGVyTW9kdWxlKGNvbnN0IFN0
cmluZyYgd2hsc2xTb3VyY2UpCi0gICAgICAgIDogd2hsc2xTb3VyY2Uod2hsc2xTb3VyY2UpCi0g
ICAgewotICAgIH0KLQotICAgIFN0cmluZyB3aGxzbFNvdXJjZTsKLX07Ci0KK1NoYWRlck1vZHVs
ZTo6U2hhZGVyTW9kdWxlKGNvbnN0IFN0cmluZyYgd2hsc2xTb3VyY2UpCisgICAgOiB3aGxzbFNv
dXJjZSh3aGxzbFNvdXJjZSkKK3sKIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgV0hMU0wKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiBuYW1lc3BhY2Ugc3RkIHsKIApAQCAtODIsNyArNzUsNyBA
QCB2b2lkIGRlZmF1bHRfZGVsZXRlPFdlYkNvcmU6OldITFNMOjpTaGFkZXJNb2R1bGU+OjpvcGVy
YXRvcigpKFdlYkNvcmU6OldITFNMOjpTaAogICAgIGRlbGV0ZSBzaGFkZXJNb2R1bGU7CiB9CiAK
LX0KK30gLy8gbmFtZXNwYWNlIHN0ZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmgKaW5kZXgg
Njk3ZjliZWQ1YTAuLjA4ZWEzOThlZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuaApAQCAtMzgsMTIgKzM4LDE3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIFdITFNMIHsKIAotLy8gSGlkZSB0aGUgY29udGVu
dHMgb2YgdGhlIFNoYWRlck1vZHVsZS4gQ2xpZW50cyBvZiB0aGUgY29tcGlsZXIgc2hvdWxkbid0
IGNhcmUgd2hhdCdzIGluc2lkZSBpdC4KLXN0cnVjdCBTaGFkZXJNb2R1bGU7CitzdHJ1Y3QgU2hh
ZGVyTW9kdWxlIHsKKyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAKLX0KKyAg
ICBTaGFkZXJNb2R1bGUoY29uc3QgU3RyaW5nJiB3aGxzbFNvdXJjZSk7CiAKLX0KKyAgICBTdHJp
bmcgd2hsc2xTb3VyY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXSExTTAorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBzdGQgewogCkBAIC01MSw3ICs1Niw3IEBAIHRlbXBs
YXRlPD4gc3RydWN0IGRlZmF1bHRfZGVsZXRlPFdlYkNvcmU6OldITFNMOjpTaGFkZXJNb2R1bGU+
IHsKICAgICB2b2lkIG9wZXJhdG9yKCkoV2ViQ29yZTo6V0hMU0w6OlNoYWRlck1vZHVsZSopIGNv
bnN0OwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2Ugc3RkCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1
dGVQaXBlbGluZS5jcHAKaW5kZXggMTNjMjQ0ODljNzEuLjE3YjY4ZGE5OTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGlu
ZS5jcHAKQEAgLTI4LDE4ICsyOCwzMSBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1
ZGUgIkdQVUNvbXB1dGVQaXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBXZWJHUFVDb21wdXRlUGlw
ZWxpbmU6OmNyZWF0ZShSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmIHBpcGVsaW5lKQorUmVm
PFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoV2Vi
R1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUs
IE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBzaGFkZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUp
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKGRldmlj
ZSwgV1RGTW92ZShwaXBlbGluZSksIHNoYWRlcikpOwogfQogCi1XZWJHUFVDb21wdXRlUGlwZWxp
bmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmIHBp
cGVsaW5lKQotICAgIDogbV9jb21wdXRlUGlwZWxpbmUgeyBXVEZNb3ZlKHBpcGVsaW5lKSB9CitX
ZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVEZXZpY2Um
IGRldmljZSwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgT3B0aW9uYWw8
V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHNoYWRlcikKKyAgICA6IFdlYkdQVVBpcGVsaW5l
KGRldmljZSwgV1RGTW92ZShwaXBlbGluZSksIHNoYWRlciwgV1RGOjpudWxsb3B0KQogewogfQog
CitXZWJHUFVDb21wdXRlUGlwZWxpbmU6On5XZWJHUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1
bHQ7CisKK2NvbnN0IEdQVUNvbXB1dGVQaXBlbGluZSogV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpj
b21wdXRlUGlwZWxpbmUoKSBjb25zdAoreworICAgIEFTU0VSVChpczxHUFVDb21wdXRlUGlwZWxp
bmU+KG1fcGlwZWxpbmUuZ2V0KCkpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8R1BVQ29tcHV0ZVBp
cGVsaW5lPihtX3BpcGVsaW5lLmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmgKaW5kZXggOWE3NThjMDllMmIuLmJl
MGQ3Mzk3MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVDb21wdXRlUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtMjcsMjQgKzI3LDMwIEBACiAKICNpZiBFTkFCTEUo
V0VCR1BVKQogCi0jaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSAiV2ViR1BV
UGlwZWxpbmUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkdQVUNvbXB1dGVQaXBlbGluZT4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29t
cHV0ZVBpcGVsaW5lPiBjcmVhdGUoUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJik7CitjbGFz
cyBHUFVDb21wdXRlUGlwZWxpbmU7CitjbGFzcyBXZWJHUFVEZXZpY2U7CiAKLSAgICBjb25zdCBH
UFVDb21wdXRlUGlwZWxpbmUqIGNvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cHV0ZVBpcGVsaW5lLmdldCgpOyB9CitjbGFzcyBXZWJHUFVDb21wdXRlUGlwZWxpbmUgZmluYWwg
OiBwdWJsaWMgV2ViR1BVUGlwZWxpbmUgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdQVUNv
bXB1dGVQaXBlbGluZSgpOworCisgICAgc3RhdGljIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+
IGNyZWF0ZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmLCBPcHRp
b25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4pOworCisgICAgYm9vbCBpc0NvbXB1dGVQ
aXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGNvbnN0IEdQVUNvbXB1dGVQ
aXBlbGluZSogY29tcHV0ZVBpcGVsaW5lKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lKFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYpOwotCi0gICAgUmVm
UHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gbV9jb21wdXRlUGlwZWxpbmU7CisgICAgV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYs
IE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0VCR1BVUElQRUxJTkUoV2Vi
Q29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lLCBpc0NvbXB1dGVQaXBlbGluZSgpKQorCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsCmluZGV4IGE1NTJiYTkyZmQyLi40Yjhh
NzdlNDg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsCkBAIC0yNyw3ICsyNyw2IEBACiBbCiAgICAgQ29uZGl0
aW9uYWw9V0VCR1BVLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCiAgICAgSW50ZXJmYWNlTmFtZT1HUFVDb21wdXRlUGlwZWxpbmUK
IF0gaW50ZXJmYWNlIFdlYkdQVUNvbXB1dGVQaXBlbGluZSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKaW5kZXggZmI5NWRlZGIwY2YuLmRk
OTM0OWQwNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5jcHAKQEAgLTM5LDggKzM5LDEwIEBACiAjaW5jbHVkZSAiR1BVQnVmZmVyQmluZGluZy5o
IgogI2luY2x1ZGUgIkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVDb21tYW5k
QnVmZmVyLmgiCisjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiR1BV
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lLmgiCiAjaW5jbHVk
ZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVU2FtcGxlci5o
IgogI2luY2x1ZGUgIkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgiCkBAIC0yMDgsMjggKzIxMCw0NiBA
QCBSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVNoYWRlck1vZHVs
ZShjb25zdCBXZWJHUFVTaGFkZXJNb2R1bAogICAgIHJldHVybiBXZWJHUFVTaGFkZXJNb2R1bGU6
OmNyZWF0ZShXVEZNb3ZlKG1vZHVsZSkpOwogfQogCi1SZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+
IFdlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmPFdlYkdQVVJlbmRlclBpcGVs
aW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBtX2Vycm9yU2NvcGVzLT5z
ZXRFcnJvclByZWZpeCgiR1BVRGV2aWNlLmNyZWF0ZVJlbmRlclBpcGVsaW5lKCk6ICIpOwogCiAg
ICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3IobV9lcnJvclNjb3Blcyk7CiAgICAgaWYgKCFncHVEZXNjcmlwdG9yKQot
ICAgICAgICByZXR1cm4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShudWxscHRyKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIG51bGxwdHIs
IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKIAotICAgIGF1dG8gcGlwZWxpbmUgPSBtX2Rl
dmljZS0+dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IsIG1fZXJyb3JTY29w
ZXMpOwotICAgIHJldHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKFdURk1vdmUocGlw
ZWxpbmUpKTsKKyAgICBhdXRvIGdwdVBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZVJlbmRl
clBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKKworICAgIFdlYkdQVVBp
cGVsaW5lOjpTaGFkZXJEYXRhIHZlcnRleFNoYWRlciA9IHsgZGVzY3JpcHRvci52ZXJ0ZXhTdGFn
ZS5tb2R1bGUsIGRlc2NyaXB0b3IudmVydGV4U3RhZ2UuZW50cnlQb2ludCB9OworCisgICAgT3B0
aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyOworICAgIGlm
IChkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UpCisgICAgICAgIGZyYWdtZW50U2hhZGVyID0geyB7
IGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZS52YWx1ZSgpLm1vZHVsZSwgZGVzY3JpcHRvci5mcmFn
bWVudFN0YWdlLnZhbHVlKCkuZW50cnlQb2ludCB9IH07CisKKyAgICBhdXRvIHdlYkdQVVBpcGVs
aW5lID0gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShncHVQaXBl
bGluZSksIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpOworCisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZSgqdGhpcywgd2ViR1BVUGlwZWxp
bmUuZ2V0KCkpOworCisgICAgcmV0dXJuIHdlYkdQVVBpcGVsaW5lOwogfQogCi1SZWY8V2ViR1BV
Q29tcHV0ZVBpcGVsaW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25z
dCBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAorUmVm
PFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxp
bmUoY29uc3QgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsK
ICAgICBtX2Vycm9yU2NvcGVzLT5zZXRFcnJvclByZWZpeCgiR1BVRGV2aWNlLmNyZWF0ZUNvbXB1
dGVQaXBlbGluZSgpOiAiKTsKIAogICAgIGF1dG8gZ3B1RGVzY3JpcHRvciA9IGRlc2NyaXB0b3Iu
dHJ5Q3JlYXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihtX2Vycm9yU2NvcGVzKTsKICAg
ICBpZiAoIWdwdURlc2NyaXB0b3IpCi0gICAgICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxp
bmU6OmNyZWF0ZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGlu
ZTo6Y3JlYXRlKCp0aGlzLCBudWxscHRyLCBXVEY6Om51bGxvcHQpOwogCi0gICAgYXV0byBwaXBl
bGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0b3Is
IG1fZXJyb3JTY29wZXMpOwotICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0
ZShXVEZNb3ZlKHBpcGVsaW5lKSk7CisgICAgYXV0byBncHVQaXBlbGluZSA9IG1fZGV2aWNlLT50
cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IsIG1fZXJyb3JTY29wZXMpOwor
CisgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEgdmVydGV4U2hhZGVyID0geyBkZXNjcmlw
dG9yLmNvbXB1dGVTdGFnZS5tb2R1bGUsIGRlc2NyaXB0b3IuY29tcHV0ZVN0YWdlLmVudHJ5UG9p
bnQgfTsKKworICAgIGF1dG8gd2ViR1BVUGlwZWxpbmUgPSBXZWJHUFVDb21wdXRlUGlwZWxpbmU6
OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShncHVQaXBlbGluZSksIHZlcnRleFNoYWRlcik7CisKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKCp0aGlz
LCB3ZWJHUFVQaXBlbGluZS5nZXQoKSk7CisKKyAgICByZXR1cm4gd2ViR1BVUGlwZWxpbmU7CiB9
CiAKIFJlZjxXZWJHUFVDb21tYW5kRW5jb2Rlcj4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21tYW5k
RW5jb2RlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5oCmluZGV4IGQ5OGYyM2M2NzMzLi4yMWI1NDE3YzIxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKQEAgLTk5LDggKzk5LDggQEAgcHVibGlj
OgogICAgIFJlZjxXZWJHUFVCaW5kR3JvdXA+IGNyZWF0ZUJpbmRHcm91cChjb25zdCBXZWJHUFVC
aW5kR3JvdXBEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWY8V2ViR1BVU2hhZGVyTW9kdWxl
PiBjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYp
IGNvbnN0OwotICAgIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVyUGlwZWxp
bmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJikgY29uc3Q7Ci0gICAgUmVm
PFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKSBjb25zdDsKKyAgICBSZWY8V2ViR1BVUmVuZGVy
UGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvciYpOworICAgIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZUNvbXB1
dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJik7CiAKICAg
ICBSZWY8V2ViR1BVQ29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVs
aW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjQ0MmU4ZmI3MWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBl
bGluZS5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKwor
I2luY2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldl
YkdQVURldmljZS5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworSGFzaE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmljZSo+JiBXZWJHUFVQaXBl
bGluZTo6aW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoTWFwPFdlYkdQVVBpcGVsaW5lKiwgV2ViR1BVRGV2aWNlKj4+IGluc3RhbmNl
czsKKyAgICByZXR1cm4gaW5zdGFuY2VzOworfQorCitMb2NrJiBXZWJHUFVQaXBlbGluZTo6aW5z
dGFuY2VzTXV0ZXgoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0
ZXg7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVNdXRleDsKKyAgICBzdGQ6
OmNhbGxfb25jZShpbml0aWFsaXplTXV0ZXgsIFtdIHsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0
KCk7CisgICAgfSk7CisgICAgcmV0dXJuIG11dGV4LmdldCgpOworfQorCitXZWJHUFVQaXBlbGlu
ZTo6V2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVQaXBlbGlu
ZT4mJiBwaXBlbGluZSwgT3B0aW9uYWw8U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25h
bDxTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcikKKyAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dChkZXZpY2Uuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgbV9waXBlbGluZShX
VEZNb3ZlKHBpcGVsaW5lKSkKKyAgICAsIG1fdmVydGV4U2hhZGVyKHZlcnRleFNoYWRlcikKKyAg
ICAsIG1fZnJhZ21lbnRTaGFkZXIoZnJhZ21lbnRTaGFkZXIpCit7CisgICAgTG9ja0hvbGRlciBs
b2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIGluc3RhbmNlcyhsb2NrKS5hZGQodGhpcywgJmRl
dmljZSk7Cit9CisKK1dlYkdQVVBpcGVsaW5lOjp+V2ViR1BVUGlwZWxpbmUoKQoreworICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZSgqdGhpcyk7
CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAg
ICAgICAgQVNTRVJUKGluc3RhbmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAgICAgIGlu
c3RhbmNlcyhsb2NrKS5yZW1vdmUodGhpcyk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjRhOTA1Y2U0OTU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaApAQCAtMCwwICsxLDc2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAi
V2ViR1BVU2hhZGVyTW9kdWxlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdQVVBp
cGVsaW5lOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdlYkdQVURldmlj
ZTsKKworY2xhc3MgV2ViR1BVUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVQaXBl
bGluZT4geworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdQVVBpcGVsaW5lKCk7CisKKyAgICBz
dGF0aWMgSGFzaE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmljZSo+JiBpbnN0YW5jZXMo
Y29uc3QgTG9ja0hvbGRlciYpOworICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNNdXRleCgpOwor
CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CisKKyAg
ICBzdHJ1Y3QgU2hhZGVyRGF0YSB7CisgICAgICAgIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+
IG1vZHVsZTsKKyAgICAgICAgU3RyaW5nIGVudHJ5UG9pbnQ7CisgICAgfTsKKyAgICBPcHRpb25h
bDxTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRleFNoYWRl
cjsgfQorICAgIE9wdGlvbmFsPFNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFnbWVudFNoYWRlcjsgfQorCitwcm90ZWN0ZWQ6CisgICAgV2ViR1BVUGlwZWxp
bmUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVVBpcGVsaW5lPiYmLCBPcHRpb25hbDxTaGFkZXJE
YXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKTsK
KworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
KyAgICBSZWZQdHI8R1BVUGlwZWxpbmU+IG1fcGlwZWxpbmU7CisKKyAgICBPcHRpb25hbDxTaGFk
ZXJEYXRhPiBtX3ZlcnRleFNoYWRlcjsKKyAgICBPcHRpb25hbDxTaGFkZXJEYXRhPiBtX2ZyYWdt
ZW50U2hhZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfV0VCR1BVUElQRUxJTkUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNh
dGUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1lKSBcCisg
ICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldlYkdQVVBpcGVsaW5lJiBwaXBl
bGluZSkgeyByZXR1cm4gcGlwZWxpbmUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvci5oCmluZGV4IGZmYmM1YjgxMWQzLi4xYTQ0MTRhYWMxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJv
Z3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogc3RydWN0IFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciA6IEdQVVBy
b2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvckJhc2UgewogICAgIE9wdGlvbmFsPEdQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvcj4gdHJ5Q3JlYXRlR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yKCkgY29uc3Q7CiAKLSAgICBSZWZQdHI8Y29uc3QgV2ViR1BVU2hhZGVyTW9kdWxlPiBtb2R1
bGU7CisgICAgUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCmluZGV4IDFkYzRkZGYxZmZkLi5mOTM4NTAxYzll
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVy
UGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBpcGVsaW5lLmNwcApAQCAtMjgsMTggKzI4LDMyIEBACiAKICNpZiBFTkFCTEUoV0VCR1BV
KQogCisjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZp
Y2UuaCIKKyNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKKyNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKFJl
ZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSkKK1JlZjxXZWJHUFVSZW5kZXJQaXBl
bGluZT4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShXZWJHUFVEZXZpY2UmIGRldmljZSwg
UmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lLCBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViR1BVUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJHUFVSZW5kZXJQaXBlbGluZShkZXZpY2UsIFdURk1vdmUocGlwZWxpbmUp
LCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKSk7CiB9CiAKLVdlYkdQVVJlbmRlclBpcGVs
aW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZShSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlw
ZWxpbmUpCi0gICAgOiBtX3JlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQorV2ViR1BV
UmVuZGVyUGlwZWxpbmU6OldlYkdQVVJlbmRlclBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNl
LCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUsIE9wdGlvbmFsPFdlYkdQVVBp
cGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcikKKyAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmlj
ZSwgV1RGTW92ZShwaXBlbGluZSksIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpCiB7CiB9
CiAKK1dlYkdQVVJlbmRlclBpcGVsaW5lOjp+V2ViR1BVUmVuZGVyUGlwZWxpbmUoKSA9IGRlZmF1
bHQ7CisKK2NvbnN0IEdQVVJlbmRlclBpcGVsaW5lKiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6cmVu
ZGVyUGlwZWxpbmUoKSBjb25zdAoreworICAgIEFTU0VSVChpczxHUFVSZW5kZXJQaXBlbGluZT4o
bV9waXBlbGluZS5nZXQoKSkpOworICAgIHJldHVybiBkb3duY2FzdDxHUFVSZW5kZXJQaXBlbGlu
ZT4obV9waXBlbGluZS5nZXQoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaAppbmRleCBmMzljZmVkNzA5My4uNjQzMDg0NjI1
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuaApAQCAtMjcsMjQgKzI3LDMwIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQog
Ci0jaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgV2ViR1BVUmVuZGVyUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVSZW5kZXJQ
aXBlbGluZT4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+
IGNyZWF0ZShSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYpOworY2xhc3MgR1BVUmVuZGVyUGlw
ZWxpbmU7CitjbGFzcyBXZWJHUFVEZXZpY2U7CiAKLSAgICBjb25zdCBHUFVSZW5kZXJQaXBlbGlu
ZSogcmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclBpcGVsaW5lLmdldCgp
OyB9CitjbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQaXBl
bGluZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BVUmVuZGVyUGlwZWxpbmUoKTsKKwor
ICAgIHN0YXRpYyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZShXZWJHUFVEZXZpY2Um
LCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpT
aGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJE
YXRhPiBmcmFnbWVudFNoYWRlcik7CisKKyAgICBib29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBjb25zdCBHUFVSZW5kZXJQaXBlbGluZSogcmVuZGVy
UGlwZWxpbmUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBXZWJHUFVSZW5kZXJQaXBlbGluZShS
ZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYpOwotCi0gICAgUmVmUHRyPEdQVVJlbmRlclBpcGVs
aW5lPiBtX3JlbmRlclBpcGVsaW5lOworICAgIFdlYkdQVVJlbmRlclBpcGVsaW5lKFdlYkdQVURl
dmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxp
bmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNo
YWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XRUJHUFVQSVBFTElORShXZWJDb3JlOjpXZWJHUFVS
ZW5kZXJQaXBlbGluZSwgaXNSZW5kZXJQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBpcGVsaW5lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJl
bmRlclBpcGVsaW5lLmlkbAppbmRleCBhOTg5ZmQ0MTBhYy4uYTliNDAwMGI2ZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGlu
ZS5pZGwKQEAgLTI3LDcgKzI3LDYgQEAKIFsKICAgICBDb25kaXRpb25hbD1XRUJHUFUsCiAgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwK
ICAgICBJbnRlcmZhY2VOYW1lPUdQVVJlbmRlclBpcGVsaW5lCiBdIGludGVyZmFjZSBXZWJHUFVS
ZW5kZXJQaXBlbGluZSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVTaGFkZXJNb2R1bGUuaAppbmRleCA4Mzc3MDUzZDFhYy4uNzRhYWRkYjUzNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVs
ZS5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFdlYkdQVVNoYWRlck1vZHVsZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkdQVVNoYWRlck1vZHVsZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVhdGUoUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJik7CiAK
LSAgICBjb25zdCBHUFVTaGFkZXJNb2R1bGUqIG1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9k
dWxlLmdldCgpOyB9CisgICAgR1BVU2hhZGVyTW9kdWxlKiBtb2R1bGUoKSBjb25zdCB7IHJldHVy
biBtX21vZHVsZS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFdlYkdQVVNoYWRlck1vZHVsZShS
ZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTdlNzUwZTQxODAu
LjMxNDBiNjU0OWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzcxLDYgKzM3MSw3IEBAIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Bl
cy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcAorTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUGlwZWxpbmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dC5jcHAK
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5jcHAKQEAgLTE4OTAs
NiArMTg5MSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVRXJyb3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJy
b3JTY29wZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFsaWRhdGlvbkVycm9yLmNw
cAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBy
b2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjg3NDIxNDU4ZTQuLmI2YjJkYThlYjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMDM5NCw2ICsxMDM5NCwxMCBAQAogCQk5MTc1Q0U1OTIxRTI4MUVDMDBERjJDMjgg
LyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTc1Q0U1QTIxRTI4MUVEMDBE
RjJDMjcgLyogSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjgg
LyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE4NkYzQjMyMzI5RkIwNTAwQUZGODU3IC8q
IEdQVVBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBpcGVs
aW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxODZGM0I2MjMyOUZCNEUwMEFG
Rjg1NyAvKiBXZWJHUFVQaXBlbGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHUFVQaXBlbGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkxODZGM0I3MjMyOUZCNEYwMEFGRjg1NyAvKiBXZWJHUFVQaXBlbGluZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVQaXBlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MTg2RjNCQTIzMjlGRTY4MDBBRkY4NTcgLyogR1BVUGlwZWxpbmUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUGlwZWxpbmUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MUI4RjBCMzIxOTUzRDY1MDAwQzJCMDAgLyog
Q2VydGlmaWNhdGVJbmZvQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
ZXJ0aWZpY2F0ZUluZm9CYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQjk1
MjIyMUY1OEE1ODAwMDkzMURDMiAvKiBSZWNvcmRpbmdTd2l6emxlVHlwZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVjb3JkaW5nU3dpenpsZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTgzNDMsNiArMTgzNDcsOCBAQAogCQkJCUQwOEFBMDJGMjIwRDBC
RDUwMDU4QzUwMiAvKiBHUFVMb2FkT3AuaCAqLywKIAkJCQlEMDlBRkIzNzIyRDdENUM2MDBDNDUz
OEMgLyogR1BVT2JqZWN0QmFzZS5oICovLAogCQkJCUQwOUFGQjE5MjJENjY5OEEwMEM0NTM4QyAv
KiBHUFVPdXRPZk1lbW9yeUVycm9yLmggKi8sCisJCQkJOTE4NkYzQkEyMzI5RkU2ODAwQUZGODU3
IC8qIEdQVVBpcGVsaW5lLmNwcCAqLywKKwkJCQk5MTg2RjNCMzIzMjlGQjA1MDBBRkY4NTcgLyog
R1BVUGlwZWxpbmUuaCAqLywKIAkJCQkzMTJGRjhDNDIxQTRDMkY0MDBFQjE5OUQgLyogR1BVUGlw
ZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCUQwMDMyODg3MjFDOUE0RTUwMDYyMkFBNiAv
KiBHUFVQaXBlbGluZUxheW91dC5jcHAgKi8sCiAJCQkJRDAwMzI4ODYyMUM5QTRFNTAwNjIyQUE2
IC8qIEdQVVBpcGVsaW5lTGF5b3V0LmggKi8sCkBAIC0yNjA3Nyw2ICsyNjA4Myw4IEBACiAJCQkJ
RDA5QUZCMDMyMkQ0MENDNTAwQzQ1MzhDIC8qIFdlYkdQVURldmljZUVycm9yU2NvcGVzLmlkbCAq
LywKIAkJCQlEMDlBQzAwQTIzMTczNUJFMDAxODc3NjIgLyogV2ViR1BVRGV2aWNlRXZlbnRIYW5k
bGVyLmggKi8sCiAJCQkJRDA5QUMwMEIyMzE3MzVCRTAwMTg3NzYyIC8qIFdlYkdQVURldmljZUV2
ZW50SGFuZGxlci5pZGwgKi8sCisJCQkJOTE4NkYzQjYyMzI5RkI0RTAwQUZGODU3IC8qIFdlYkdQ
VVBpcGVsaW5lLmNwcCAqLywKKwkJCQk5MTg2RjNCNzIzMjlGQjRGMDBBRkY4NTcgLyogV2ViR1BV
UGlwZWxpbmUuaCAqLywKIAkJCQlEMEM0MTlGMDIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BVUGlw
ZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCUQwQzQxOUYxMjE4M0VCMzEwMDlFQzFERSAv
KiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAqLywKIAkJCQlEMDVBOTlFNTIxQzlC
RjJDMDAwMzJCNzUgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNmJhMzgxYTlkZmUuLjUwNjU0
OTQ4ZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dy
YW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAK
QEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAorI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgpAQCAtNjAsNiArNjIs
NyBAQCBSZWY8V2ViR0xQcm9ncmFtPiBXZWJHTFByb2dyYW06OmNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFtKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKICAgICA6IFdlYkdMU2hhcmVkT2JqZWN0KGN0eCkKKyAg
ICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjdHguc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQogewogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOwpA
QCAtNzEsNiArNzQsOCBAQCBXZWJHTFByb2dyYW06OldlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdMUHJvZ3JhbTo6fldlYkdMUHJvZ3JhbSgpCiB7Cisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSgqdGhp
cyk7CisKICAgICBkZWxldGVPYmplY3QoMCk7CiAKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUHJvZ3JhbS5oCmluZGV4IDg4YTg5NzlkNDVmLi42NzY5ZDFkNGY1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKQEAgLTMyLDYgKzMyLDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OworY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIGNsYXNzIFdlYkdMU2hhZGVyOwog
CiBjbGFzcyBXZWJHTFByb2dyYW0gZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFyZWRPYmplY3QgewpA
QCAtNDIsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEhhc2hNYXA8V2ViR0xQcm9ncmFt
KiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+JiBpbnN0YW5jZXMoY29uc3QgTG9ja0hvbGRl
ciYpOwogICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNNdXRleCgpOwogCisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQorCiAgICAgdW5zaWduZWQgbnVtQWN0aXZlQXR0cmli
TG9jYXRpb25zKCk7CiAgICAgR0MzRGludCBnZXRBY3RpdmVBdHRyaWJMb2NhdGlvbihHQzNEdWlu
dCBpbmRleCk7CiAKQEAgLTcxLDYgKzc1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhY2hlQWN0
aXZlQXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29udGV4dDNEKik7CiAgICAgdm9pZCBjYWNoZUlu
Zm9JZk5lZWRlZCgpOwogCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0OworCiAgICAgVmVjdG9yPEdDM0RpbnQ+IG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zOwogCiAgICAgR0MzRGludCBtX2xpbmtTdGF0dXMgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmlu
ZGV4IDIyNGUzNGQ4MzI3Li42ZWVhOTFmYjE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTQxMSw3
ICs0MTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgc2hvd0hpZ2h0bGlnaHQoKQog
ICAgIHsKLSAgICAgICAgaWYgKCFtX3Byb2dyYW0gfHwgTElLRUxZKCFJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKG1fY29udGV4dCwgKm1fcHJvZ3Jh
bSkpKQorICAgICAgICBpZiAoIW1fcHJvZ3JhbSB8fCBMSUtFTFkoIUluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChtX2NvbnRleHQsICptX3Byb2dyYW0p
KSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoaGFzQnVmZmVyQmluZGluZyhH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQklORElORykpIHsKQEAgLTE3NTQsNyArMTc1
NCw3IEBAIFJlZlB0cjxXZWJHTFByb2dyYW0+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNy
ZWF0ZVByb2dyYW0oKQogICAgIGF1dG8gcHJvZ3JhbSA9IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKCp0
aGlzKTsKICAgICBhZGRTaGFyZWRPYmplY3QocHJvZ3JhbS5nZXQoKSk7CiAKLSAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW0oKnRoaXMsIHByb2dyYW0uZ2V0KCkp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKCp0
aGlzLCBwcm9ncmFtLmdldCgpKTsKIAogICAgIHJldHVybiBwcm9ncmFtOwogfQpAQCAtMTg0MCw3
ICsxODQwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1
ZmZlcihXZWJHTEZyYW1lYnVmZmVyKiBmcmFtZWJ1ZmZlcikKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6ZGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0qIHByb2dyYW0pCiB7CiAgICAg
aWYgKHByb2dyYW0pCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlbGV0
ZVByb2dyYW0oKnRoaXMsICpwcm9ncmFtKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSgqcHJvZ3JhbSk7CiAKICAgICBkZWxldGVPYmpl
Y3QocHJvZ3JhbSk7CiAgICAgLy8gV2UgZG9uJ3QgcmVzZXQgbV9jdXJyZW50UHJvZ3JhbSB0byAw
IGhlcmUgYmVjYXVzZSB0aGUgZGVsZXRpb24gb2YgdGhlCkBAIC0yMjU1LDcgKzIyNTUsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXMoR0MzRGVudW0gbW9kZSwg
R0MzRGludCBmaXJzdCwgR0MzRHNpegogICAgIGlmICghdmFsaWRhdGVEcmF3QXJyYXlzKCJkcmF3
QXJyYXlzIiwgbW9kZSwgZmlyc3QsIGNvdW50LCAwKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRl
clByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0pKQorICAgIGlmIChtX2N1
cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1E
aXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0pKQogICAgICAgICByZXR1cm47CiAKICAg
ICBjbGVhcklmQ29tcG9zaXRlZCgpOwpAQCAtMjMwOSw3ICsyMzA5LDcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVp
IGNvdW50LCBHQzMKICAgICBpZiAoIXZhbGlkYXRlRHJhd0VsZW1lbnRzKCJkcmF3RWxlbWVudHMi
LCBtb2RlLCBjb3VudCwgdHlwZSwgb2Zmc2V0LCBudW1FbGVtZW50cywgMCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1cnJlbnRQcm9ncmFtKSkK
KyAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlz
V2ViR0xQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1cnJlbnRQcm9ncmFtKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNjk2NDY1
MDUzOWIuLjkxMmM4NDViYmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMTA3OSwyOSArMTA3OSwyOSBAQCB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiBpbnN0cgogICAgICAgICBjYW52YXNBZ2VudC0+ZGlkRW5hYmxlRXh0
ZW5zaW9uKGNvbnRleHRXZWJHTEJhc2UsIGV4dGVuc2lvbik7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0
V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2Vi
R0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZh
c0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFz
QWdlbnQoKSkKLSAgICAgICAgY2FudmFzQWdlbnQtPmRpZENyZWF0ZVByb2dyYW0oY29udGV4dFdl
YkdMQmFzZSwgcHJvZ3JhbSk7CisgICAgICAgIGNhbnZhc0FnZW50LT5kaWRDcmVhdGVXZWJHTFBy
b2dyYW0oY29udGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYg
aW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7
CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgY2FudmFzQWdlbnQtPndp
bGxEZWxldGVQcm9ncmFtKHByb2dyYW0pOworICAgICAgICBjYW52YXNBZ2VudC0+d2lsbERlc3Ry
b3lXZWJHTFByb2dyYW0ocHJvZ3JhbSk7CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAg
ICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQt
PmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKHByb2dyYW0pOworICAgICAgICByZXR1cm4gY2FudmFz
QWdlbnQtPmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQocHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtSGln
aGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdl
YkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2Jvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dl
YkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNh
bnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2Fu
dmFzQWdlbnQoKSkKLSAgICAgICAgcmV0dXJuIGNhbnZhc0FnZW50LT5pc1NoYWRlclByb2dyYW1I
aWdobGlnaHRlZChwcm9ncmFtKTsKKyAgICAgICAgcmV0dXJuIGNhbnZhc0FnZW50LT5pc1dlYkdM
UHJvZ3JhbUhpZ2hsaWdodGVkKHByb2dyYW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KICNlbmRp
ZgpAQCAtMTEyNCw2ICsxMTI0LDE4IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsQ29uZmlndXJlU3dhcENoYWluSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpCiAgICAgaWYg
KGF1dG8qIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNB
Z2VudCgpKQogICAgICAgICBjYW52YXNBZ2VudC0+d2lsbENvbmZpZ3VyZVN3YXBDaGFpbihjb250
ZXh0R1BVLCBuZXdTd2FwQ2hhaW4pOwogfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIFdlYkdQVURldmljZSYgZGV2aWNlLCBXZWJHUFVQaXBlbGluZSYgcGlw
ZWxpbmUpCit7CisgICAgaWYgKGF1dG8qIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQorICAgICAgICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRl
V2ViR1BVUGlwZWxpbmUoZGV2aWNlLCBwaXBlbGluZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7
CisgICAgaWYgKGF1dG8qIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0
b3JDYW52YXNBZ2VudCgpKQorICAgICAgICBjYW52YXNBZ2VudC0+d2lsbERlc3Ryb3lXZWJHUFVQ
aXBlbGluZShwaXBlbGluZSk7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FH
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAppbmRleCA4MWYzY2RjZGEyOS4uNTQ5YWExN2EzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTYzLDYg
KzYzLDcgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogI2luY2x1ZGUgIkdQVUNhbnZhc0NvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5o
IgogI2VuZGlmCiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMjg5LDE1ICsyOTAsMTcgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lKENh
bnZhc1JlbmRlcmluZ0NvbnRleHQmLCBib29sIGZvcmNlRGlzcGF0Y2ggPSBmYWxzZSk7CiAjaWYg
RU5BQkxFKFdFQkdMKQogICAgIHN0YXRpYyB2b2lkIGRpZEVuYWJsZUV4dGVuc2lvbihXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIHZvaWQgZGlk
Q3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7
Ci0gICAgc3RhdGljIHZvaWQgd2lsbERlbGV0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVyUHJvZ3JhbURp
c2FibGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKLSAgICBz
dGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR0xQ
cm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBz
dGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dyYW0mKTsKKyAgICBz
dGF0aWMgYm9vbCBpc1dlYkdMUHJvZ3JhbURpc2FibGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMUHJvZ3JhbUhpZ2hs
aWdodGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR1BVRGV2
aWNlKFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR1BVRGV2
aWNlKFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxDb25maWd1cmVTd2FwQ2hh
aW4oR1BVQ2FudmFzQ29udGV4dCYsIFdlYkdQVVN3YXBDaGFpbiYpOworICAgIHN0YXRpYyB2b2lk
IGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFdlYkdQVVBpcGVsaW5lJik7
CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBlbGlu
ZSYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2Um
KTsKQEAgLTQ4MSwxNSArNDg0LDE3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkRmlu
aXNoUmVjb3JkaW5nQ2FudmFzRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0JiwgYm9vbCBmb3JjZURpc3BhdGNoID0gZmFsc2UpOwogI2lmIEVOQUJM
RShXRUJHTCkKICAgICBzdGF0aWMgdm9pZCBkaWRFbmFibGVFeHRlbnNpb25JbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgY29uc3QgU3RyaW5nJik7
Ci0gICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0
aWMgdm9pZCB3aWxsRGVsZXRlUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdM
UHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVyUHJvZ3JhbURpc2FibGVkSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIGJvb2wgaXNT
aGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFBy
b2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHTFByb2dyYW1JbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFt
Jik7CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJHTFByb2dyYW1JbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMUHJv
Z3JhbURpc2FibGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7Cisg
ICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAg
ICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHUFVEZXZpY2VJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCBXZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVURl
dmljZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdQVURldmljZSYpOwogICAgIHN0YXRp
YyB2b2lkIHdpbGxDb25maWd1cmVTd2FwQ2hhaW5JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBH
UFVDYW52YXNDb250ZXh0JiwgV2ViR1BVU3dhcENoYWluJik7CisgICAgc3RhdGljIHZvaWQgZGlk
Q3JlYXRlV2ViR1BVUGlwZWxpbmVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHUFVEZXZp
Y2UmLCBXZWJHUFVQaXBlbGluZSYpOworICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR1BV
UGlwZWxpbmVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHUFVQaXBlbGluZSYpOwogI2Vu
ZGlmCiAKICAgICBzdGF0aWMgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmKTsKQEAgLTEzODQsMzMgKzEzODksMzMgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmEKICAgICAgICAgZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywg
Y29udGV4dFdlYkdMQmFzZSwgZXh0ZW5zaW9uKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2lubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3Jh
bSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdB
Z2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2UuY2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIGRpZENyZWF0ZVByb2dyYW1JbXBsKCppbnN0cnVtZW50
aW5nQWdlbnRzLCBjb250ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKKyAgICAgICAgZGlkQ3JlYXRl
V2ViR0xQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dFdlYkdMQmFzZSwg
cHJvZ3JhbSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bERlbGV0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFz
ZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7
CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7Ci0gICAgaWYgKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpKQotICAgICAgICB3aWxsRGVsZXRlUHJvZ3JhbUltcGwoKmluc3RydW1lbnRpbmdB
Z2VudHMsIHByb2dyYW0pOworICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQocHJvZ3JhbS5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICB3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbUltcGwo
Kmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOwogfQogCi1pbmxpbmUgYm9vbCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2lu
bGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxl
ZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dy
YW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKGZhbHNlKTsK
ICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3Ry
dW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2UuY2FudmFzQmFzZSgpLnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIHJldHVybiBpc1NoYWRlclByb2dyYW1E
aXNhYmxlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOworICAgICAgICByZXR1
cm4gaXNXZWJHTFByb2dyYW1EaXNhYmxlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dy
YW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotaW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUg
Ym9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7CiAg
ICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICByZXR1cm4gaXNTaGFkZXJQcm9ncmFtSGln
aGxpZ2h0ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKKyAgICAgICAgcmV0
dXJuIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBw
cm9ncmFtKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKQEAgLTE0MzYsNiArMTQ0MSwy
MCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDb25maWd1cmVT
d2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYgYwogICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5n
QWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dEdQVS5jYW52YXNC
YXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKICAgICAgICAgd2lsbENvbmZpZ3VyZVN3
YXBDaGFpbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRHUFUsIG5ld1N3YXBDaGFp
bik7CiB9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFdlYkdQVVBpcGVsaW5lJiBwaXBl
bGluZSkKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBp
ZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250
ZXh0KGRldmljZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDcmVhdGVX
ZWJHUFVQaXBlbGluZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGRldmljZSwgcGlwZWxpbmUp
OworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95
V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAgIEZBU1RfUkVU
VVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5n
QWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQocGlwZWxpbmUuc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgd2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZUltcGwo
Kmluc3RydW1lbnRpbmdBZ2VudHMsIHBpcGVsaW5lKTsKK30KICNlbmRpZgogCiBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5ldHdvcmtTdGF0ZUNoYW5nZWQoUGFnZSYgcGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9n
cmFtLmNwcAppbmRleCBkNTI5NTUwY2RjOC4uNDMxMjllN2YxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAKQEAgLTI2LDUz
ICsyNiwxOTcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTaGFk
ZXJQcm9ncmFtLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wpCi0KLSNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgotI2luY2x1ZGUgIkhUTUxD
YW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2FudmFzLmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBFTkFCTEUoV0VCR0wpCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNp
bmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFk
ZXIuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KKyNl
bmRpZgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKyNpbmNsdWRlICJHUFVTaGFkZXJNb2R1bGUuaCIK
KyNpbmNsdWRlICJXSExTTFByZXBhcmUuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgor
I2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZS5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAorI2lmIEVOQUJMRShXRUJHTCkK
IFJlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVh
dGUoV2ViR0xQcm9ncmFtJiBwcm9ncmFtLCBJbnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZh
cykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKHBy
b2dyYW0sIGluc3BlY3RvckNhbnZhcykpOwogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCR1BV
KQorUmVmPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNy
ZWF0ZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3BlY3RvckNhbnZhcyYgaW5zcGVjdG9y
Q2FudmFzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc3BlY3RvclNoYWRlclByb2dy
YW0ocGlwZWxpbmUsIGluc3BlY3RvckNhbnZhcykpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUo
V0VCR0wpCiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKFdl
YkdMUHJvZ3JhbSYgcHJvZ3JhbSwgSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCiAg
ICAgOiBtX2lkZW50aWZpZXIoInByb2dyYW06IiArIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRl
SWRlbnRpZmllcigpKQotICAgICwgbV9wcm9ncmFtKHByb2dyYW0pCiAgICAgLCBtX2NhbnZhcyhp
bnNwZWN0b3JDYW52YXMpCisgICAgLCBtX3Byb2dyYW0ocHJvZ3JhbSkKIHsKKyAgICBBU1NFUlQo
aXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4obV9jYW52YXMuY2FudmFzQ29udGV4dCgpKSk7
Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCitJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
OjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSwgSW5zcGVj
dG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCisgICAgOiBtX2lkZW50aWZpZXIoInBpcGVsaW5l
OiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkKKyAgICAsIG1fY2Fu
dmFzKGluc3BlY3RvckNhbnZhcykKKyAgICAsIG1fcHJvZ3JhbShwaXBlbGluZSkKK3sKKyAgICBB
U1NFUlQobV9jYW52YXMuZGV2aWNlQ29udGV4dCgpKTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxF
KFdFQkdMKQorV2ViR0xQcm9ncmFtKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpwcm9ncmFtKCkg
Y29uc3QKK3sKKyAgICBpZiAoYXV0byogcHJvZ3JhbVdyYXBwZXIgPSBXVEY6OmdldF9pZjxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4+KG1fcHJvZ3JhbSkpCisgICAgICAgIHJl
dHVybiAmcHJvZ3JhbVdyYXBwZXItPmdldCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorV2ViR1BVUGlwZWxpbmUqIEluc3BlY3RvclNoYWRl
clByb2dyYW06OnBpcGVsaW5lKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byogcGlwZWxpbmVXcmFw
cGVyID0gV1RGOjpnZXRfaWY8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4+
KG1fcHJvZ3JhbSkpCisgICAgICAgIHJldHVybiAmcGlwZWxpbmVXcmFwcGVyLT5nZXQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMKQorc3RhdGlj
IFdlYkdMU2hhZGVyKiBzaGFkZXJGb3JUeXBlKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgY29uc3Qg
U3RyaW5nJiBzaGFkZXJUeXBlKQoreworICAgIGlmIChzaGFkZXJUeXBlID09ICJ2ZXJ0ZXgiKQor
ICAgICAgICByZXR1cm4gcHJvZ3JhbS5nZXRBdHRhY2hlZFNoYWRlcihHcmFwaGljc0NvbnRleHQz
RDo6VkVSVEVYX1NIQURFUik7CisgICAgaWYgKHNoYWRlclR5cGUgPT0gImZyYWdtZW50IikKKyAg
ICAgICAgcmV0dXJuIHByb2dyYW0uZ2V0QXR0YWNoZWRTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQUdNRU5UX1NIQURFUik7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lm
IEVOQUJMRShXRUJHUFUpCitzdGF0aWMgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRh
dGE+IHNoYWRlckZvclR5cGUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lLCBjb25zdCBTdHJpbmcm
IHNoYWRlclR5cGUpCit7CisgICAgVU5VU0VEX1BBUkFNKHBpcGVsaW5lKTsKKyAgICBpZiAoc2hh
ZGVyVHlwZSA9PSAidmVydGV4IikKKyAgICAgICAgcmV0dXJuIHBpcGVsaW5lLnZlcnRleFNoYWRl
cigpOworICAgIGlmIChzaGFkZXJUeXBlID09ICJmcmFnbWVudCIpCisgICAgICAgIHJldHVybiBw
aXBlbGluZS5mcmFnbWVudFNoYWRlcigpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9Cisj
ZW5kaWYKKworT3B0aW9uYWw8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6U2hhZGVyU291cmNlRGF0
YT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cmVxdWVzdFNoYWRlclNvdXJjZShjb25zdCBTdHJp
bmcmIHNoYWRlclR5cGUpCit7CisjaWYgIUVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShXRUJHUFUp
CisgICAgVU5VU0VEX1BBUkFNKHNoYWRlclR5cGUpOworI2VuZGlmCisKKyAgICByZXR1cm4gV1RG
Ojpzd2l0Y2hPbihtX3Byb2dyYW0sCisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICBbJl0gKHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiBwcm9ncmFtV3JhcHBlcikgLT4gT3B0
aW9uYWw8U2hhZGVyU291cmNlRGF0YT4geworICAgICAgICAgICAgYXV0byYgcHJvZ3JhbSA9IHBy
b2dyYW1XcmFwcGVyLmdldCgpOworICAgICAgICAgICAgaWYgKGF1dG8qIHNoYWRlciA9IHNoYWRl
ckZvclR5cGUocHJvZ3JhbSwgc2hhZGVyVHlwZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsg
eyBzaGFkZXItPmdldFNvdXJjZSgpIH0gfTsKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgICAgIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBbJl0g
KHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBlcikg
LT4gT3B0aW9uYWw8U2hhZGVyU291cmNlRGF0YT4geworICAgICAgICAgICAgYXV0byYgcGlwZWxp
bmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXIg
PSBzaGFkZXJGb3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAgICAg
IGlmIChhdXRvIHdlYkdQVU1vZHVsZSA9IHNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoYXV0byogZ3B1TW9kdWxlID0gd2ViR1BVTW9kdWxlLT5tb2R1bGUo
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHdobHNsTW9kdWxlID0gZ3B1
TW9kdWxlLT53aGxzbE1vZHVsZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7IHsgd2hsc2xNb2R1bGUtPndobHNsU291cmNlLCBzaGFkZXIudmFsdWUoKS5lbnRyeVBvaW50
IH0gfTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0sCisjZW5k
aWYKKyAgICAgICAgWyZdIChNb25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQorICAg
ICk7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIEluc3BlY3RvclNoYWRlclByb2dy
YW06OmNvbnRleHQoKSBjb25zdAorYm9vbCBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjp1cGRhdGVT
aGFkZXIoY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29u
c3QgU3RyaW5nKiBlbnRyeVBvaW50KQogewotICAgIEFTU0VSVChtX2NhbnZhcy5jYW52YXNDb250
ZXh0KCkpOwotICAgIEFTU0VSVChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPigqbV9jYW52
YXMuY2FudmFzQ29udGV4dCgpKSk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U+KCptX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpOwotfQorI2lmICFFTkFCTEUo
V0VCR0wpICYmICFFTkFCTEUoV0VCR1BVKQorICAgIFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsK
KyAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKKyNlbmRpZgorI2lmICFFTkFCTEUoV0VCR1BVKQor
ICAgIFVOVVNFRF9QQVJBTShlbnRyeVBvaW50KTsKKyNlbmRpZgogCi1XZWJHTFNoYWRlciogSW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbTo6c2hhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHByb3RvY29s
VHlwZSkKLXsKLSAgICBHQzNEZW51bSBzaGFkZXJUeXBlOwotICAgIGlmIChwcm90b2NvbFR5cGUg
PT0gInZlcnRleCIpCi0gICAgICAgIHNoYWRlclR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6VkVS
VEVYX1NIQURFUjsKLSAgICBlbHNlIGlmIChwcm90b2NvbFR5cGUgPT0gImZyYWdtZW50IikKLSAg
ICAgICAgc2hhZGVyVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVI7Ci0g
ICAgZWxzZQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBtX3Byb2dyYW0u
Z2V0QXR0YWNoZWRTaGFkZXIoc2hhZGVyVHlwZSk7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
bV9wcm9ncmFtLAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgWyZdIChzdGQ6OnJlZmVyZW5j
ZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4gcHJvZ3JhbVdyYXBwZXIpIHsKKyAgICAgICAgICAgIGF1
dG8mIHByb2dyYW0gPSBwcm9ncmFtV3JhcHBlci5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBzaGFkZXIgPSBzaGFkZXJGb3JUeXBlKHByb2dyYW0sIHNoYWRlclR5cGUpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBtX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KGNv
bnRleHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvJiBjb250ZXh0V2ViR0xCYXNl
ID0gZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKmNvbnRleHQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBz
b3VyY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5jb21waWxl
U2hhZGVyKHNoYWRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhZGVyLT5pc1Zh
bGlkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0V2ViR0xCYXNlLmxp
bmtQcm9ncmFtV2l0aG91dEludmFsaWRhdGluZ0F0dHJpYkxvY2F0aW9ucygmcHJvZ3JhbSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0sCisjZW5kaWYK
KyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBlcikgeworICAgICAgICAgICAgYXV0byYgcGlw
ZWxpbmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byBzaGFk
ZXIgPSBzaGFkZXJGb3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHdlYkdQVU1vZHVsZSA9IHNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoYXV0byogZ3B1TW9kdWxlID0gd2ViR1BVTW9kdWxlLT5tb2R1
bGUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHdobHNsTW9kdWxlID0g
Z3B1TW9kdWxlLT53aGxzbE1vZHVsZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VU5VU0VEX1BBUkFNKHdobHNsTW9kdWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyB3aGxzbE1vZHVsZS0+d2hsc2xTb3VyY2UgPSBzb3VyY2U7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gaWYgKGVudHJ5UG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gICAgIHNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQgPSAqZW50cnlQb2ludDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBpZiAocGlwZWxpbmUucmVjb21waWxlKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9LAorI2VuZGlm
CisgICAgICAgIFsmXSAoTW9ub3N0YXRlKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCmluZGV4
IDk0NjdlODQ3ZjVkLi5iMmI2NmZiOWM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCkBAIC0yNSwyNiArMjUsNDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9i
amVjdHMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zcGVjdG9yQ2FudmFzOwor
CisjaWYgRU5BQkxFKFdFQkdMKQogY2xhc3MgV2ViR0xQcm9ncmFtOwogY2xhc3MgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTsKLWNsYXNzIFdlYkdMU2hhZGVyOworI2VuZGlmCiAKLXR5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOworI2lmIEVOQUJMRShXRUJHUFUpCitjbGFzcyBXZWJHUFVQaXBl
bGluZTsKKyNlbmRpZgogCiBjbGFzcyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gewogcHVibGljOgorI2lmIEVO
QUJMRShXRUJHTCkKICAgICBzdGF0aWMgUmVmPEluc3BlY3RvclNoYWRlclByb2dyYW0+IGNyZWF0
ZShXZWJHTFByb2dyYW0mLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgorI2lmIEVOQUJMRShX
RUJHUFUpCisgICAgc3RhdGljIFJlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBjcmVhdGUoV2Vi
R1BVUGlwZWxpbmUmLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgogCiAgICAgY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgSW5z
cGVjdG9yQ2FudmFzJiBjYW52YXMoKSBjb25zdCB7IHJldHVybiBtX2NhbnZhczsgfQotICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQoKSBjb25zdDsKLSAgICBXZWJHTFByb2dy
YW0mIHByb2dyYW0oKSBjb25zdCB7IHJldHVybiBtX3Byb2dyYW07IH0KLSAgICBXZWJHTFNoYWRl
ciogc2hhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcmKTsKKworI2lmIEVOQUJMRShXRUJHTCkKKyAg
ICBXZWJHTFByb2dyYW0qIHByb2dyYW0oKSBjb25zdDsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJH
UFUpCisgICAgV2ViR1BVUGlwZWxpbmUqIHBpcGVsaW5lKCkgY29uc3Q7CisjZW5kaWYKKworICAg
IHN0cnVjdCBTaGFkZXJTb3VyY2VEYXRhIHsKKyAgICAgICAgU3RyaW5nIHNvdXJjZTsKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiBlbnRyeVBvaW50OworICAgIH07CisgICAgT3B0aW9uYWw8U2hh
ZGVyU291cmNlRGF0YT4gcmVxdWVzdFNoYWRlclNvdXJjZShjb25zdCBTdHJpbmcmIHNoYWRlclR5
cGUpOworICAgIGJvb2wgdXBkYXRlU2hhZGVyKGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyogZW50cnlQb2ludCk7CiAKICAgICBib29s
IGRpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZDsgfQogICAgIHZvaWQgc2V0RGlz
YWJsZWQoYm9vbCBkaXNhYmxlZCkgeyBtX2Rpc2FibGVkID0gZGlzYWJsZWQ7IH0KQEAgLTUyLDE1
ICs3MywyNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoaWdobGlnaHRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faGlnaGxpZ2h0ZWQ7IH0KICAgICB2b2lkIHNldEhpZ2hsaWdodGVkKGJvb2wgdmFsdWUpIHsg
bV9oaWdobGlnaHRlZCA9IHZhbHVlOyB9CiAKLSAgICB+SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSgp
ID0gZGVmYXVsdDsKLQogcHJpdmF0ZToKKyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbShXZWJHTFByb2dyYW0mLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgor
I2lmIEVOQUJMRShXRUJHUFUpCisgICAgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShXZWJHUFVQaXBl
bGluZSYsIEluc3BlY3RvckNhbnZhcyYpOworI2VuZGlmCiAKICAgICBTdHJpbmcgbV9pZGVudGlm
aWVyOwotICAgIFdlYkdMUHJvZ3JhbSYgbV9wcm9ncmFtOwogICAgIEluc3BlY3RvckNhbnZhcyYg
bV9jYW52YXM7CiAKKyAgICBWYXJpYW50PAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgc3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHTFByb2dyYW0+LAorI2VuZGlmCisjaWYgRU5BQkxFKFdF
QkdQVSkKKyAgICAgICAgc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4sCisj
ZW5kaWYKKyAgICAgICAgTW9ub3N0YXRlCisgICAgPiBtX3Byb2dyYW07CisKICAgICBib29sIG1f
ZGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oaWdobGlnaHRlZCB7IGZhbHNlIH07CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
YW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNhbnZhc0FnZW50LmNwcAppbmRleCAxODUyMjQ4NWE2NS4uZGJmNTcyZGQ1ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuY3BwCkBAIC00NiwxNCArNDYsMTggQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bmplY3RlZFNjcmlwdE1hbmFnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0
b3JQcm90b2NvbE9iamVjdHMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVz
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTFBy
b2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCi0jaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFdFQkdMMikKQEAgLTYyLDcgKzY2LDExIEBACiAKICNpZiBFTkFC
TEUoV0VCR1BVKQogI2luY2x1ZGUgIkdQVUNhbnZhc0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJH
UFVDb21wdXRlUGlwZWxpbmUuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRl
ICJXZWJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCisj
aW5jbHVkZSAiV2ViR1BVU3dhcENoYWluLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTQxLDcgKzE0OSwxNyBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjplbmFibGUo
RXJyb3JTdHJpbmcmKQogICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViR0xQcm9ncmFtOjppbnN0
YW5jZXNNdXRleCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBbcHJvZ3JhbSwgY29udGV4dFdlYkdM
QmFzZV0gOiBXZWJHTFByb2dyYW06Omluc3RhbmNlcyhsb2NrKSkgewogICAgICAgICAgICAgaWYg
KGNvbnRleHRXZWJHTEJhc2UgJiYgZXhpc3RzSW5DdXJyZW50UGFnZShjb250ZXh0V2ViR0xCYXNl
LT5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgICAgICAg
ICBkaWRDcmVhdGVQcm9ncmFtKCpjb250ZXh0V2ViR0xCYXNlLCAqcHJvZ3JhbSk7CisgICAgICAg
ICAgICAgICAgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKCpjb250ZXh0V2ViR0xCYXNlLCAqcHJvZ3Jh
bSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCisgICAg
eworICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViR1BVUGlwZWxpbmU6Omluc3RhbmNlc011dGV4
KCkpOworICAgICAgICBmb3IgKGF1dG8mIFtwaXBlbGluZSwgZGV2aWNlXSA6IFdlYkdQVVBpcGVs
aW5lOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UgJiYgZXhpc3Rz
SW5DdXJyZW50UGFnZShkZXZpY2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAg
ICAgICAgICAgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoKmRldmljZSwgKnBpcGVsaW5lKTsKICAg
ICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMjgwLDg3ICsyOTgsNDkgQEAgdm9pZCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6c3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYKICAgICBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZSgqY29udGV4dCwg
dHJ1ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcXVlc3RTaGFkZXJTb3Vy
Y2UoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29u
c3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcqIGNvbnRlbnQpCit2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpyZXF1ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgU3RyaW5n
KiBzb3VyY2UsIE9wdGlvbmFsPFN0cmluZz4mIGVudHJ5UG9pbnQpCiB7Ci0jaWYgRU5BQkxFKFdF
QkdMKQogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGFzc2VydEluc3BlY3RvclByb2dyYW0o
ZXJyb3JTdHJpbmcsIHByb2dyYW1JZCk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvKiBzaGFkZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5zaGFk
ZXJGb3JUeXBlKHNoYWRlclR5cGUpOwotICAgIGlmICghc2hhZGVyKSB7Ci0gICAgICAgIGVycm9y
U3RyaW5nID0gIk1pc3Npbmcgc2hhZGVyIGZvciBnaXZlbiBzaGFkZXJUeXBlIl9zOworICAgIGF1
dG8gZGF0YSA9IGluc3BlY3RvclByb2dyYW0tPnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyVHlw
ZSk7CisgICAgaWYgKCFkYXRhKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgc2hh
ZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZCJfczsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgICpjb250ZW50ID0gc2hhZGVyLT5nZXRTb3VyY2UoKTsKLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0gICAgVU5VU0VEX1BBUkFNKHNoYWRl
clR5cGUpOwotICAgIFVOVVNFRF9QQVJBTShjb250ZW50KTsKLSAgICBlcnJvclN0cmluZyA9ICJO
b3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlmCisgICAgKnNvdXJjZSA9IGRhdGEudmFsdWUoKS5zb3Vy
Y2U7CisgICAgaWYgKGRhdGEudmFsdWUoKS5lbnRyeVBvaW50KQorICAgICAgICBlbnRyeVBvaW50
ID0gZGF0YS52YWx1ZSgpLmVudHJ5UG9pbnQudmFsdWUoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JD
YW52YXNBZ2VudDo6dXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2UpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp1cGRhdGVTaGFkZXIoRXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5n
JiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nKiBlbnRyeVBv
aW50KQogewotI2lmIEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBh
c3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9ncmFtSWQpOwogICAgIGlmICgh
aW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogc2hhZGVyID0g
aW5zcGVjdG9yUHJvZ3JhbS0+c2hhZGVyRm9yVHlwZShzaGFkZXJUeXBlKTsKLSAgICBpZiAoIXNo
YWRlcikgewotICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIHNoYWRlciBmb3IgZ2l2ZW4g
c2hhZGVyVHlwZSJfczsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTCA9IGluc3BlY3RvclByb2dyYW0tPmNvbnRleHQo
KTsKLSAgICBjb250ZXh0V2ViR0wuc2hhZGVyU291cmNlKHNoYWRlciwgc291cmNlKTsKLSAgICBj
b250ZXh0V2ViR0wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwotCi0gICAgaWYgKCFzaGFkZXItPmlz
VmFsaWQoKSkgewotICAgICAgICBlcnJvclN0cmluZyA9ICJGYWlsZWQgdG8gdXBkYXRlIHNoYWRl
ciJfczsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNvbnRleHRXZWJHTC5saW5rUHJv
Z3JhbVdpdGhvdXRJbnZhbGlkYXRpbmdBdHRyaWJMb2NhdGlvbnMoJmluc3BlY3RvclByb2dyYW0t
PnByb2dyYW0oKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVO
VVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKLSAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKLSAgICBl
cnJvclN0cmluZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlmCisgICAgaWYgKCFpbnNwZWN0
b3JQcm9ncmFtLT51cGRhdGVTaGFkZXIoc2hhZGVyVHlwZSwgc291cmNlLCBlbnRyeVBvaW50KSkK
KyAgICAgICAgZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4g
c2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkIl9zOwogfQogCiB2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCkKIHsKLSNpZiBFTkFC
TEUoV0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gYXNzZXJ0SW5zcGVjdG9yUHJv
Z3JhbShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAgICBpZiAoIWluc3BlY3RvclByb2dyYW0p
CiAgICAgICAgIHJldHVybjsKIAogICAgIGluc3BlY3RvclByb2dyYW0tPnNldERpc2FibGVkKGRp
c2FibGVkKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0gICAgVU5VU0VE
X1BBUkFNKGRpc2FibGVkKTsKLSAgICBlcnJvclN0cmluZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwot
I2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnNldFNoYWRlclByb2dyYW1I
aWdobGlnaHRlZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3Jh
bUlkLCBib29sIGhpZ2hsaWdodGVkKQogewotI2lmIEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGlu
c3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9n
cmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaW5zcGVjdG9yUHJvZ3JhbS0+c2V0SGlnaGxpZ2h0ZWQoaGlnaGxpZ2h0ZWQpOwotI2Vsc2UK
LSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBVTlVTRURfUEFSQU0oaGlnaGxpZ2h0
ZWQpOwotICAgIGVycm9yU3RyaW5nID0gIk5vdCBzdXBwb3J0ZWQiX3M7Ci0jZW5kaWYKIH0KIAog
dm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmIGZyYW1lKQpA
QCAtNTY4LDcgKzU0OCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZEVuYWJsZUV4
dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0CiAgICAgbV9mcm9udGVu
ZERpc3BhdGNoZXItPmV4dGVuc2lvbkVuYWJsZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVy
KCksIGV4dGVuc2lvbik7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0
ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR0xQcm9n
cmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFdlYkdMUHJvZ3JhbSYgcHJv
Z3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3RvckNhbnZhcyA9IGZpbmRJbnNwZWN0b3JDYW52YXMo
Y29udGV4dCk7CiAgICAgQVNTRVJUKGluc3BlY3RvckNhbnZhcyk7CkBAIC01NzgsMTAgKzU1OCwx
MCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0g
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHByb2dyYW0sICppbnNwZWN0b3JDYW52YXMp
OwogICAgIFN0cmluZyBwcm9ncmFtSWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0tPmlkZW50
aWZpZXIoKTsKICAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KHByb2dyYW1J
ZGVudGlmaWVyLCBXVEZNb3ZlKGluc3BlY3RvclByb2dyYW0pKTsKLSAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHBy
b2dyYW1JZGVudGlmaWVyKTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0
ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHByb2dyYW1JZGVudGlmaWVyLCBJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpSZW5kZXIpOwogfQogCi12b2lk
IEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0mIHBy
b2dyYW0pCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveVdlYkdMUHJvZ3Jh
bShXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0g
ZmluZEluc3BlY3RvclByb2dyYW0ocHJvZ3JhbSk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFt
KQpAQCAtNTkxLDcgKzU3MSw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZWxl
dGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ci0+cHJvZ3JhbURlbGV0ZWQoaWRlbnRpZmllcik7CiB9CiAKLWJvb2wgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2Jv
b2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9n
cmFtJiBwcm9ncmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGZpbmRJbnNwZWN0
b3JQcm9ncmFtKHByb2dyYW0pOwogICAgIEFTU0VSVChpbnNwZWN0b3JQcm9ncmFtKTsKQEAgLTYw
MSw3ICs1ODEsNyBAQCBib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1NoYWRlclByb2dyYW1E
aXNhYmxlZChXZWJHTFByb2dyYW0mIHByb2dyYW0pCiAgICAgcmV0dXJuIGluc3BlY3RvclByb2dy
YW0tPmRpc2FibGVkKCk7CiB9CiAKLWJvb2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzU2hhZGVy
UHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2Jvb2wgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9ncmFtJiBwcm9n
cmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGZpbmRJbnNwZWN0b3JQcm9ncmFt
KHByb2dyYW0pOwogICAgIEFTU0VSVChpbnNwZWN0b3JQcm9ncmFtKTsKQEAgLTY0OSw2ICs2Mjks
MzcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbENvbmZpZ3VyZVN3YXBDaGFpbihH
UFVDYW52YXNDb250ZXh0JiBjb250ZXh0R1BVLAogCiAgICAgbm90aWZ5RGV2aWNlRm9yU3dhcENo
YWluKG5ld1N3YXBDaGFpbik7CiB9CisKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENy
ZWF0ZVdlYkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBXZWJHUFVQaXBlbGluZSYg
cGlwZWxpbmUpCit7CisgICAgYXV0byBpbnNwZWN0b3JDYW52YXMgPSBmaW5kSW5zcGVjdG9yQ2Fu
dmFzKGRldmljZSk7CisgICAgQVNTRVJUKGluc3BlY3RvckNhbnZhcyk7CisgICAgaWYgKCFpbnNw
ZWN0b3JDYW52YXMpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3Jh
bSA9IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNyZWF0ZShwaXBlbGluZSwgKmluc3BlY3RvckNh
bnZhcyk7CisgICAgU3RyaW5nIHByb2dyYW1JZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+
aWRlbnRpZmllcigpOworICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJv
Z3JhbUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJvZ3JhbSkpOworCisgICAgT3B0aW9u
YWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZT4gcHJvZ3JhbVR5cGU7
CisgICAgaWYgKGlzPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAgICBw
cm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OkNv
bXB1dGU7CisgICAgZWxzZSBpZiAoaXM8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKSkK
KyAgICAgICAgcHJvZ3JhbVR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dy
YW1UeXBlOjpSZW5kZXI7CisgICAgQVNTRVJUKHByb2dyYW1UeXBlKTsKKworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIo
KSwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlLnZhbHVlKCkpOworfQorCit2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKFdlYkdQVVBpcGVs
aW5lJiBwaXBlbGluZSkKK3sKKyAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBmaW5kSW5zcGVj
dG9yUHJvZ3JhbShwaXBlbGluZSk7CisgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQorICAgICAg
ICByZXR1cm47CisKKyAgICBTdHJpbmcgaWRlbnRpZmllciA9IHVuYmluZFByb2dyYW0oKmluc3Bl
Y3RvclByb2dyYW0pOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtRGVsZXRlZChp
ZGVudGlmaWVyKTsKK30KICNlbmRpZgogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpzdGFy
dFJlY29yZGluZyhJbnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcywgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6UmVjb3JkaW5nOjpJbml0aWF0b3IgaW5pdGlhdG9yLCBSZWNvcmRpbmdPcHRpb25z
JiYgcmVjb3JkaW5nT3B0aW9ucykKQEAgLTgwNSw3ICs4MTYsNiBAQCBSZWZQdHI8SW5zcGVjdG9y
Q2FudmFzPiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZmluZEluc3BlY3RvckNhbnZhcyhXZWJHUFVE
ZXZpY2UmCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJHTCkKIFN0cmluZyBJbnNwZWN0b3JD
YW52YXNBZ2VudDo6dW5iaW5kUHJvZ3JhbShJbnNwZWN0b3JTaGFkZXJQcm9ncmFtJiBpbnNwZWN0
b3JQcm9ncmFtKQogewogICAgIFN0cmluZyBpZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS5p
ZGVudGlmaWVyKCk7CkBAIC04MjQsMTAgKzgzNCwyMiBAQCBSZWZQdHI8SW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmFzc2VydEluc3BlY3RvclByb2dyYW0oRXJy
bwogICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtOwogfQogCisjaWYgRU5BQkxFKFdFQkdMKQog
UmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZhc0FnZW50OjpmaW5k
SW5zcGVjdG9yUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgZm9yIChhdXRv
JiBpbnNwZWN0b3JQcm9ncmFtIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnZhbHVl
cygpKSB7Ci0gICAgICAgIGlmICgmaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3JhbSgpID09ICZwcm9n
cmFtKQorICAgICAgICBpZiAoaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3JhbSgpID09ICZwcm9ncmFt
KQorICAgICAgICAgICAgcmV0dXJuIGluc3BlY3RvclByb2dyYW07CisgICAgfQorICAgIHJldHVy
biBudWxscHRyOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorUmVmUHRyPEluc3Bl
Y3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZhc0FnZW50OjpmaW5kSW5zcGVjdG9yUHJv
Z3JhbShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgZm9yIChhdXRvJiBpbnNwZWN0
b3JQcm9ncmFtIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnZhbHVlcygpKSB7Cisg
ICAgICAgIGlmIChpbnNwZWN0b3JQcm9ncmFtLT5waXBlbGluZSgpID09ICZwaXBlbGluZSkKICAg
ICAgICAgICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtOwogICAgIH0KICAgICByZXR1cm4gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaAppbmRleCBiYWVkZDQ2N2NkOS4uNzA1YmE4OWNlNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0Fn
ZW50LmgKQEAgLTMzLDEwICszMyw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVj
dG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+Ci0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKICNpZiBFTkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5oIgpAQCAtNTYsNiArNTMsNyBAQCBjbGFzcyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOwogI2lmIEVOQUJMRShXRUJHUFUpCiBjbGFzcyBHUFVDYW52YXNDb250ZXh0
OwogY2xhc3MgV2ViR1BVRGV2aWNlOworY2xhc3MgV2ViR1BVUGlwZWxpbmU7CiBjbGFzcyBXZWJH
UFVTd2FwQ2hhaW47CiAjZW5kaWYKIApAQCAtODMsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoRXJyb3JTdHJpbmcmLCBpbnQgY291
bnQpOwogICAgIHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IGNhbnZhc0lkLCBjb25zdCBpbnQqIGZyYW1lQ291bnQsIGNvbnN0IGludCogbWVtb3J5TGltaXQp
OwogICAgIHZvaWQgc3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2Fu
dmFzSWQpOwotICAgIHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyopOwot
ICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFt
SWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UpOworICAg
IHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJv
Z3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyogc291cmNlLCBPcHRpb25h
bDxTdHJpbmc+JiBlbnRyeVBvaW50KTsKKyAgICB2b2lkIHVwZGF0ZVNoYWRlcihFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcqIGVudHJ5UG9pbnQpOwogICAgIHZvaWQg
c2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9n
cmFtSWQsIGJvb2wgZGlzYWJsZWQpOwogICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdo
dGVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgaGlnaGxpZ2h0
ZWQpOwogCkBAIC0xMDMsMTUgKzEwMSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25zb2xlU3Rh
cnRSZWNvcmRpbmdDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIEpTQzo6RXhlY1N0YXRl
JiwgSlNDOjpKU09iamVjdCogb3B0aW9ucyk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHZvaWQg
ZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBjb25zdCBTdHJp
bmcmKTsKLSAgICB2b2lkIGRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHZvaWQgd2lsbERlbGV0ZVByb2dyYW0oV2ViR0xQcm9n
cmFtJik7Ci0gICAgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFByb2dyYW0mKTsK
LSAgICBib29sIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYpOworICAg
IHZvaWQgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBX
ZWJHTFByb2dyYW0mKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdlYkdMUHJv
Z3JhbSYpOworICAgIGJvb2wgaXNXZWJHTFByb2dyYW1EaXNhYmxlZChXZWJHTFByb2dyYW0mKTsK
KyAgICBib29sIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9ncmFtJik7CiAjZW5k
aWYKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIHZvaWQgZGlkQ3JlYXRlV2ViR1BVRGV2aWNlKFdl
YkdQVURldmljZSYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVEZXZpY2UoV2ViR1BVRGV2
aWNlJik7CiAgICAgdm9pZCB3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQVUNhbnZhc0NvbnRleHQm
LCBXZWJHUFVTd2FwQ2hhaW4mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKFdl
YkdQVURldmljZSYsIFdlYkdQVVBpcGVsaW5lJik7CisgICAgdm9pZCB3aWxsRGVzdHJveVdlYkdQ
VVBpcGVsaW5lKFdlYkdQVVBpcGVsaW5lJik7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTEzNSwx
MSArMTM1LDE0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3BlY3RvckNhbnZhcz4gZmluZElu
c3BlY3RvckNhbnZhcyhXZWJHUFVEZXZpY2UmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQkdM
KQogICAgIFN0cmluZyB1bmJpbmRQcm9ncmFtKEluc3BlY3RvclNoYWRlclByb2dyYW0mKTsKICAg
ICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gYXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkKTsKKyNpZiBFTkFCTEUoV0VCR0wp
CiAgICAgUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IGZpbmRJbnNwZWN0b3JQcm9ncmFt
KFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdMKQorICAgIFJlZlB0cjxJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBmaW5kSW5zcGVjdG9yUHJvZ3JhbShXZWJHUFVQaXBlbGlu
ZSYpOworI2VuZGlmCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDYW52YXNGcm9u
dGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxJbnNwZWN0
b3I6OkNhbnZhc0JhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBl
bGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQ
aXBlbGluZS5oCmluZGV4IDNmOGY3MTk5OGZkLi4yN2UzNzZmODBmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxp
bmUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2luY2x1ZGUg
IkdQVU9iamVjdEJhc2UuaCIKKyNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgogI2luY2x1ZGUgIldI
TFNMUHJlcGFyZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgpAQCAtNDQsMTAgKzQ0LDE0IEBAIHN0cnVjdCBHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yOwogdXNpbmcgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmUgPSBNVExDb21wdXRlUGlw
ZWxpbmVTdGF0ZTsKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgPSBSZXRh
aW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+OwogCi1jbGFzcyBHUFVDb21wdXRlUGlwZWxp
bmUgOiBwdWJsaWMgR1BVT2JqZWN0QmFzZSB7CitjbGFzcyBHUFVDb21wdXRlUGlwZWxpbmUgZmlu
YWwgOiBwdWJsaWMgR1BVUGlwZWxpbmUgewogcHVibGljOgorICAgIHZpcnR1YWwgfkdQVUNvbXB1
dGVQaXBlbGluZSgpOworCiAgICAgc3RhdGljIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IHRy
eUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yJiwgR1BVRXJyb3JTY29wZXMmKTsKIAorICAgIGJvb2wgaXNDb21wdXRlUGlwZWxpbmUoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKICAgICBjb25zdCBQbGF0Zm9ybUNvbXB1dGVQaXBlbGlu
ZSogcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtQ29t
cHV0ZVBpcGVsaW5lLmdldCgpOyB9CiAKICAgICBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgY29t
cHV0ZURpbWVuc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVEaW1lbnNpb25zOyB9CkBA
IC02MSw0ICs2NSw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19HUFVQSVBFTElORShXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxp
bmUsIGlzQ29tcHV0ZVBpcGVsaW5lKCkpCisKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhkNzU2NmY0ZTc1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVBpcGVsaW5lLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworR1BVUGlwZWxpbmU6OkdQVVBpcGVsaW5lKEdQVUVycm9yU2Nv
cGVzJiBlcnJvclNjb3BlcykKKyAgICA6IEdQVU9iamVjdEJhc2UobWFrZVJlZihlcnJvclNjb3Bl
cykpCit7Cit9CisKK0dQVVBpcGVsaW5lOjp+R1BVUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YTEwZmJmZGMxZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGlu
ZS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVPYmplY3RCYXNlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgR1BVRXJyb3JTY29wZXM7CisKK2NsYXNzIEdQVVBpcGVsaW5lIDog
cHVibGljIEdQVU9iamVjdEJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkdQVVBpcGVsaW5l
KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKworcHJvdGVjdGVkOgorICAgIEdQVVBpcGVsaW5lKEdQVUVycm9yU2Nv
cGVzJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNkZWZpbmUgU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19HUFVQSVBFTElORShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihUb1ZhbHVlVHlwZU5hbWUpIFwKKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6R1BVUGlwZWxpbmUmIHBpcGVsaW5lKSB7IHJl
dHVybiBwaXBlbGluZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVTdGFn
ZURlc2NyaXB0b3IuaAppbmRleCAwZWUxYWZhMjNhOC4uMjdjMDYyOGVmN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVTdGFn
ZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKQEAgLTM4LDEzICszOCwxMyBAQCBzdHJ1
Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSB7CiB9OwogCiBzdHJ1Y3QgR1BV
UHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIDogR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yQmFzZSB7Ci0gICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yKFJlZjxjb25zdCBH
UFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlLCBjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3JCYXNlJiBiYXNlKQorICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcihSZWY8
R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSwgY29uc3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNj
cmlwdG9yQmFzZSYgYmFzZSkKICAgICAgICAgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0
b3JCYXNlKGJhc2UpCiAgICAgICAgICwgbW9kdWxlIHsgV1RGTW92ZShtb2R1bGUpIH0KICAgICB7
CiAgICAgfQogCi0gICAgUmVmPGNvbnN0IEdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOworICAgIFJl
ZjxHUFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5k
ZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJl
bmRlclBpcGVsaW5lLmgKaW5kZXggMzllZWMxZjBhYmQuLjg1Y2NkMjdmMmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlw
ZWxpbmUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2luY2x1
ZGUgIkdQVU9iamVjdEJhc2UuaCIKKyNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgogI2luY2x1ZGUg
IkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00NiwxMCArNDYsMTQgQEAgY2xhc3Mg
R1BVRGV2aWNlOwogdXNpbmcgUGxhdGZvcm1SZW5kZXJQaXBlbGluZSA9IE1UTFJlbmRlclBpcGVs
aW5lU3RhdGU7CiB1c2luZyBQbGF0Zm9ybVJlbmRlclBpcGVsaW5lU21hcnRQdHIgPSBSZXRhaW5Q
dHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT47CiAKLWNsYXNzIEdQVVJlbmRlclBpcGVsaW5lIDog
cHVibGljIEdQVU9iamVjdEJhc2UgeworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmUgZmluYWwgOiBw
dWJsaWMgR1BVUGlwZWxpbmUgewogcHVibGljOgorICAgIHZpcnR1YWwgfkdQVVJlbmRlclBpcGVs
aW5lKCk7CisKICAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiB0cnlDcmVhdGUo
Y29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgR1BV
RXJyb3JTY29wZXMmKTsKIAorICAgIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KKwogI2lmIFVTRShNRVRBTCkKICAgICBNVExEZXB0aFN0ZW5jaWxTdGF0ZSAq
ZGVwdGhTdGVuY2lsU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RlcHRoU3RlbmNpbFN0YXRlLmdl
dCgpOyB9CiAjZW5kaWYKQEAgLTcwLDQgKzc0LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0dQVVBJUEVMSU5FKFdlYkNvcmU6
OkdQVVJlbmRlclBpcGVsaW5lLCBpc1JlbmRlclBpcGVsaW5lKCkpCisKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCmluZGV4
IGM2MWI4YWRjNDhhLi4wODgyYjcyNWY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlw
ZWxpbmVNZXRhbC5tbQpAQCAtMTk3LDEyICsxOTcsMTQgQEAgUmVmUHRyPEdQVUNvbXB1dGVQaXBl
bGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UKIH0KIAogR1BVQ29tcHV0ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUoUmV0YWluUHRy
PE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPiYmIHBpcGVsaW5lLCBXSExTTDo6Q29tcHV0ZURpbWVu
c2lvbnMgY29tcHV0ZURpbWVuc2lvbnMsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKLSAg
ICA6IEdQVU9iamVjdEJhc2UobWFrZVJlZihlcnJvclNjb3BlcykpCisgICAgOiBHUFVQaXBlbGlu
ZShlcnJvclNjb3BlcykKICAgICAsIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RGTW92ZShw
aXBlbGluZSkpCiAgICAgLCBtX2NvbXB1dGVEaW1lbnNpb25zKGNvbXB1dGVEaW1lbnNpb25zKQog
ewogfQogCitHUFVDb21wdXRlUGlwZWxpbmU6On5HUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1
bHQ7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4IDYzNjhkMWFkZWIy
Li5mYWRiOTc4MjYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0K
QEAgLTUyOSw3ICs1MjksNyBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBp
cGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsCiB9CiAKIEdQVVJlbmRl
clBpcGVsaW5lOjpHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3Rh
dGU+JiYgZGVwdGhTdGVuY2lsLCBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4mJiBw
aXBlbGluZSwgR1BVUHJpbWl0aXZlVG9wb2xvZ3kgdG9wb2xvZ3ksIE9wdGlvbmFsPEdQVUluZGV4
Rm9ybWF0PiBmb3JtYXQsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKLSAgICA6IEdQVU9i
amVjdEJhc2UobWFrZVJlZihlcnJvclNjb3BlcykpCisgICAgOiBHUFVQaXBlbGluZShlcnJvclNj
b3BlcykKICAgICAsIG1fZGVwdGhTdGVuY2lsU3RhdGUoV1RGTW92ZShkZXB0aFN0ZW5jaWwpKQog
ICAgICwgbV9wbGF0Zm9ybVJlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQogICAgICwg
bV9wcmltaXRpdmVUb3BvbG9neSh0b3BvbG9neSkKQEAgLTUzNyw2ICs1MzcsOCBAQCBHUFVSZW5k
ZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUoUmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0
YXRlPiYmIGRlcHRoU3RlbgogewogfQogCitHUFVSZW5kZXJQaXBlbGluZTo6fkdQVVJlbmRlclBp
cGVsaW5lKCkgPSBkZWZhdWx0OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggYTZh
YTQxMTJmYmYuLmRhNDUxYjEwNTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
QEAgLTI2Niw2ICsyNjYsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wb3NpdGVkIl0gPSAiQ29t
cG9zaXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2VkIl0gPSAiQ29tcHJlc3NlZCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2lvbiJdID0gIkNvbXByZXNzaW9uIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkNvbXByZXNzaW9uOiJdID0gIkNvbXByZXNzaW9uOiI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJDb21wdXRlIFBpcGVsaW5lICVkIl0gPSAiQ29tcHV0ZSBQaXBlbGluZSAlZCI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlIFNoYWRlciJdID0gIkNvbXB1dGUgU2hhZGVyIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkNvbXB1dGVkIl0gPSAiQ29tcHV0ZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siQ29uZGl0aW9uIl0gPSAiQ29uZGl0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbmRpdGlv
bmFsIGV4cHJlc3Npb24iXSA9ICJDb25kaXRpb25hbCBleHByZXNzaW9uIjsKQEAgLTQ2Myw2ICs0
NjUsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgdGhhdCBvbmx5IG9uZSBtYWluIGNvbnRl
bnQgc2VjdGlvbiBpcyB1c2VkIG9uIHRoZSBwYWdlLgogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJl
IHRoYXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIl0gPSAiRW5zdXJlIHRo
YXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVudGVyZWQgRnVsbC1TY3JlZW4gTW9kZSJdID0gIkVudGVyZWQgRnVsbC1TY3JlZW4gTW9k
ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRpcmUgUmVjb3JkaW5nIl0gPSAiRW50aXJlIFJlY29y
ZGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbnRyeSBwb2ludDogIl0gPSAiRW50cnkgcG9pbnQ6
ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvciJdID0gIkVycm9yIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVycm9yOiAiXSA9ICJFcnJvcjogIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVycm9ycyJdID0g
IkVycm9ycyI7CkBAIC04ODEsNiArODg0LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlIFdh
dGNoIEV4cHJlc3Npb24iXSA9ICJSZW1vdmUgV2F0Y2ggRXhwcmVzc2lvbiI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJSZW1vdmUgcHJvYmUiXSA9ICJSZW1vdmUgcHJvYmUiOwogbG9jYWxpemVkU3RyaW5n
c1siUmVtb3ZlIHRoaXMgYnJlYWtwb2ludCBhY3Rpb24iXSA9ICJSZW1vdmUgdGhpcyBicmVha3Bv
aW50IGFjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmVkIGRlc2NlbmRhbnQgIl0gPSAi
UmVtb3ZlZCBkZXNjZW5kYW50ICI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZW5kZXIgUGlwZWxpbmUg
JWQiXSA9ICJSZW5kZXIgUGlwZWxpbmUgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siUmVuZGVyaW5n
IEZyYW1lcyJdID0gIlJlbmRlcmluZyBGcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVwZWF0
aW5nIExpbmVhciBHcmFkaWVudCJdID0gIlJlcGVhdGluZyBMaW5lYXIgR3JhZGllbnQiOwogbG9j
YWxpemVkU3RyaW5nc1siUmVwZWF0aW5nIFJhZGlhbCBHcmFkaWVudCJdID0gIlJlcGVhdGluZyBS
YWRpYWwgR3JhZGllbnQiOwpAQCAtOTk3LDcgKzEwMDEsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJT
ZXNzaW9uIFN0b3JhZ2UiXSA9ICJTZXNzaW9uIFN0b3JhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1si
U2V0IHRvIEF1dG9tYXRpY2FsbHkgQ29udGludWUiXSA9ICJTZXQgdG8gQXV0b21hdGljYWxseSBD
b250aW51ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZXR0ZXIiXSA9ICJTZXR0ZXIiOwogbG9jYWxp
emVkU3RyaW5nc1siU2V0dGluZ3MiXSA9ICJTZXR0aW5ncyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJT
aGFkZXIiXSA9ICJTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIFByb2dyYW1zIl0g
PSAiU2hhZGVyIFByb2dyYW1zIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyBDb250ZW50Il0g
PSAiU2hhZG93IENvbnRlbnQiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZG93IENvbnRlbnQgKCVz
KSJdID0gIlNoYWRvdyBDb250ZW50ICglcykiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIu
anMKaW5kZXggMzg5Y2I3MTMwNmQuLjM4ZjAxYmI2NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanMKQEAgLTIzNCw3ICsyMzQsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3Mg
Q2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYW52YXMuZW5hYmxlRXh0
ZW5zaW9uKGV4dGVuc2lvbik7CiAgICAgfQogCi0gICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWRl
bnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIpCisgICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWRl
bnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlKQogICAgIHsKICAgICAgICAg
bGV0IGNhbnZhcyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50aWZp
ZXIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChjYW52YXMpOwpAQCAtMjQzLDcgKzI0MywxMSBA
QCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmll
ck1hcC5oYXMocHJvZ3JhbUlkZW50aWZpZXIpLCBgU2hhZGVyUHJvZ3JhbSBhbHJlYWR5IGV4aXN0
cyB3aXRoIGlkICR7cHJvZ3JhbUlkZW50aWZpZXJ9LmApOwogCi0gICAgICAgIGxldCBwcm9ncmFt
ID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZpZXIsIGNhbnZhcyk7CisgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBwcm9ncmFtVHlwZWAgZGlkIG5vdCBleGlz
dCB5ZXQuCisgICAgICAgIGlmICghcHJvZ3JhbVR5cGUpCisgICAgICAgICAgICBwcm9ncmFtVHlw
ZSA9IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOworCisgICAgICAgIGxldCBw
cm9ncmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1U
eXBlLCBjYW52YXMpOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5z
ZXQocHJvZ3JhbS5pZGVudGlmaWVyLCBwcm9ncmFtKTsKIAogICAgICAgICBjYW52YXMuc2hhZGVy
UHJvZ3JhbUNvbGxlY3Rpb24uYWRkKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKaW5kZXggYjkyOWYwNjIwZmEu
LjdkNTZlYzE3MTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DYW52YXMuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuQ2FudmFzID0gY2xh
c3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1D
b2xsZWN0aW9uID0gbmV3IFdJLlNoYWRlclByb2dyYW1Db2xsZWN0aW9uOwogICAgICAgICB0aGlz
Ll9yZWNvcmRpbmdDb2xsZWN0aW9uID0gbmV3IFdJLlJlY29yZGluZ0NvbGxlY3Rpb247CiAKLSAg
ICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyID0gMTsKKyAgICAgICAg
dGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyID0gbnVsbDsKIAogICAgICAgICB0
aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2UgPSBudWxsOwogCkBAIC00MDksMTEgKzQwOSwxNSBAQCBX
SS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQs
IHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlcn0pOwogICAgIH0KIAotICAgIG5leHRTaGFkZXJQ
cm9ncmFtRGlzcGxheU51bWJlcigpCisgICAgbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVy
Rm9yUHJvZ3JhbVR5cGUocHJvZ3JhbVR5cGUpCiAgICAgewogICAgICAgICAvLyBDYWxsZWQgZnJv
bSBXSS5TaGFkZXJQcm9ncmFtLgogCi0gICAgICAgIHJldHVybiB0aGlzLl9uZXh0U2hhZGVyUHJv
Z3JhbURpc3BsYXlOdW1iZXIrKzsKKyAgICAgICAgaWYgKCF0aGlzLl9uZXh0U2hhZGVyUHJvZ3Jh
bURpc3BsYXlOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3Bs
YXlOdW1iZXIgPSB7fTsKKworICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlO
dW1iZXJbcHJvZ3JhbVR5cGVdID0gKHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJl
cltwcm9ncmFtVHlwZV0gfHwgMCkgKyAxOworICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFNoYWRl
clByb2dyYW1EaXNwbGF5TnVtYmVyW3Byb2dyYW1UeXBlXTsKICAgICB9CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJv
Z3JhbS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TaGFk
ZXJQcm9ncmFtLmpzCmluZGV4IGMxZWQ5YzhhYzdmLi40MDhmMjhjNTcyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dyYW0u
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRl
clByb2dyYW0uanMKQEAgLTI1LDI3ICsyNSw0OSBAQAogCiBXSS5TaGFkZXJQcm9ncmFtID0gY2xh
c3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGlk
ZW50aWZpZXIsIGNhbnZhcykKKyAgICBjb25zdHJ1Y3RvcihpZGVudGlmaWVyLCBwcm9ncmFtVHlw
ZSwgY2FudmFzKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaWRlbnRpZmllcik7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5Qcm9ncmFt
VHlwZSkuaW5jbHVkZXMocHJvZ3JhbVR5cGUpKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2Fu
dmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKIAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAg
IHRoaXMuX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgICAgICB0aGlzLl9wcm9ncmFtVHlw
ZSA9IHByb2dyYW1UeXBlOwogICAgICAgICB0aGlzLl9jYW52YXMgPSBjYW52YXM7Ci0gICAgICAg
IHRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIgPSBjYW52YXMubmV4dFNoYWRlclByb2dyYW1EaXNw
bGF5TnVtYmVyKCk7CiAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZmFsc2U7CiAgICAgfQogCiAg
ICAgLy8gUHVibGljCiAKICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2lkZW50
aWZpZXI7IH0KKyAgICBnZXQgcHJvZ3JhbVR5cGUoKSB7IHJldHVybiB0aGlzLl9wcm9ncmFtVHlw
ZTsgfQogICAgIGdldCBjYW52YXMoKSB7IHJldHVybiB0aGlzLl9jYW52YXM7IH0KIAogICAgIGdl
dCBkaXNwbGF5TmFtZSgpCiAgICAgewotICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIlByb2dy
YW0gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU51bWJlcik7CisgICAgICAgIGxldCBm
b3JtYXQgPSBudWxsOworICAgICAgICBzd2l0Y2ggKHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSkg
eworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKKyAgICAgICAgY2Fz
ZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAgZm9ybWF0ID0gV0ku
VUlTdHJpbmcoIlByb2dyYW0gJWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFU6CisgICAgICAgICAgICBzd2l0Y2ggKHRoaXMu
X3Byb2dyYW1UeXBlKSB7CisgICAgICAgICAgICBjYXNlIFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5
cGUuQ29tcHV0ZToKKyAgICAgICAgICAgICAgICBmb3JtYXQgPSBXSS5VSVN0cmluZygiQ29tcHV0
ZSBQaXBlbGluZSAlZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjoKKyAgICAgICAgICAgICAgICBmb3Jt
YXQgPSBXSS5VSVN0cmluZygiUmVuZGVyIFBpcGVsaW5lICVkIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBjb25zb2xlLmFzc2VydChmb3JtYXQpOworICAgICAgICBpZiAoIXRoaXMuX3VuaXF1ZURp
c3BsYXlOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl91bmlxdWVEaXNwbGF5TnVtYmVyID0gdGhp
cy5fY2FudmFzLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlckZvclByb2dyYW1UeXBlKHRo
aXMuX3Byb2dyYW1UeXBlKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdC5mb3JtYXQodGhpcy5fdW5p
cXVlRGlzcGxheU51bWJlcik7CiAgICAgfQogCiAgICAgZ2V0IGRpc2FibGVkKCkKQEAgLTU1LDYg
Kzc3LDEyIEBAIFdJLlNoYWRlclByb2dyYW0gPSBjbGFzcyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMg
V0kuT2JqZWN0CiAKICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpCiAgICAgeworICAgICAgICBp
ZiAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2Vi
R1BVKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X3Byb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisKICAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkID09
PSBkaXNhYmxlZCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjUsNjcgKzkzLDU4IEBAIFdJ
LlNoYWRlclByb2dyYW0gPSBjbGFzcyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFNoYWRlclByb2dyYW0uRXZlbnQu
RGlzYWJsZWRDaGFuZ2VkKTsKICAgICB9CiAKLSAgICByZXF1ZXN0VmVydGV4U2hhZGVyU291cmNl
KGNhbGxiYWNrKQorICAgIHJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyVHlwZSwgY2FsbGJhY2sp
CiAgICAgewotICAgICAgICB0aGlzLl9yZXF1ZXN0U2hhZGVyU291cmNlKENhbnZhc0FnZW50LlNo
YWRlclR5cGUuVmVydGV4LCBjYWxsYmFjayk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVj
dC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlKS5pbmNsdWRlcyhzaGFkZXJUeXBlKSk7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNoYWRlclR5cGUgIT09IFNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5GcmFnbWVudCB8fCB0aGlzLl9wcm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Q
cm9ncmFtVHlwZS5SZW5kZXIpOworCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6
IGBjb250ZW50YCB3YXMgcmVuYW1lZCB0byBgc291cmNlYC4KKyAgICAgICAgLy8gQ09NUEFUSUJJ
TElUWSAoaU9TIDEzKTogYGVudHJ5UG9pbnRgYCBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAg
Q2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZSh0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJU
eXBlLCAoZXJyb3IsIHNvdXJjZSwgZW50cnlQb2ludCkgPT4geworICAgICAgICAgICAgaWYgKGVy
cm9yKSB7CisgICAgICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcihlcnJvcik7Cisg
ICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYWxsYmFjayhzb3VyY2UsIGVudHJ5
UG9pbnQpOworICAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXF1ZXN0RnJhZ21lbnRTaGFkZXJT
b3VyY2UoY2FsbGJhY2spCisgICAgdXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHNvdXJjZSwge2Vu
dHJ5UG9pbnR9ID0ge30pCiAgICAgewotICAgICAgICB0aGlzLl9yZXF1ZXN0U2hhZGVyU291cmNl
KENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsIGNhbGxiYWNrKTsKLSAgICB9CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBl
KS5pbmNsdWRlcyhzaGFkZXJUeXBlKSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNoYWRlclR5
cGUgIT09IFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCB8fCB0aGlzLl9wcm9ncmFt
VHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpOworICAgICAgICBjb25z
b2xlLmFzc2VydCgoISFlbnRyeVBvaW50KSA9PT0gKHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSkpOwogCi0gICAgdXBkYXRlVmVydGV4U2hh
ZGVyKHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihDYW52YXNBZ2Vu
dC5TaGFkZXJUeXBlLlZlcnRleCwgc291cmNlKTsKLSAgICB9Ci0KLSAgICB1cGRhdGVGcmFnbWVu
dFNoYWRlcihzb3VyY2UpCi0gICAgewotICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoQ2FudmFz
QWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwgc291cmNlKTsKKyAgICAgICAgQ2FudmFzQWdlbnQu
dXBkYXRlU2hhZGVyKHRoaXMuX2lkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgZW50cnlQ
b2ludCk7CiAgICAgfQogCiAgICAgc2hvd0hpZ2hsaWdodCgpCiAgICAgewotICAgICAgICBjb25z
dCBoaWdobGlnaHRlZCA9IHRydWU7Ci0gICAgICAgIENhbnZhc0FnZW50LnNldFNoYWRlclByb2dy
YW1IaWdobGlnaHRlZCh0aGlzLl9pZGVudGlmaWVyLCBoaWdobGlnaHRlZCwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IsIGVycm9yKTsKLSAgICAgICAgfSk7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dyYW1UeXBlID09PSBTaGFkZXJQcm9n
cmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2Nh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IHRoaXMu
X2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisK
KyAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lk
ZW50aWZpZXIsIHRydWUpOwogICAgIH0KIAogICAgIGhpZGVIaWdobGlnaHQoKQogICAgIHsKLSAg
ICAgICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSBmYWxzZTsKLSAgICAgICAgQ2FudmFzQWdlbnQuc2V0
U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVkLCAo
ZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwot
ICAgICAgICB9KTsKLSAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dyYW1U
eXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMMik7CiAKLSAgICAvLyBQcml2YXRlCi0KLSAgICBfcmVxdWVzdFNoYWRlclNv
dXJjZShzaGFkZXJUeXBlLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50LnJl
cXVlc3RTaGFkZXJTb3VyY2UodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yLCBj
b250ZW50KSA9PiB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBj
YWxsYmFjayhudWxsKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRlbnQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAg
ICBfdXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIENhbnZh
c0FnZW50LnVwZGF0ZVNoYWRlcih0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3VyY2Us
IChlcnJvcikgPT4gewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWVycm9yLCBlcnJvcik7
Ci0gICAgICAgIH0pOworICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGlnaGxp
Z2h0ZWQodGhpcy5faWRlbnRpZmllciwgZmFsc2UpOwogICAgIH0KIH07CiAKK1dJLlNoYWRlclBy
b2dyYW0uUHJvZ3JhbVR5cGUgPSB7CisgICAgQ29tcHV0ZTogImNvbXB1dGUiLAorICAgIFJlbmRl
cjogInJlbmRlciIsCit9OworCiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUgPSB7Ci0gICAg
RnJhZ21lbnQ6ICJzaGFkZXItdHlwZS1mcmFnbWVudCIsCi0gICAgVmVydGV4OiAic2hhZGVyLXR5
cGUtdmVydGV4IiwKKyAgICBGcmFnbWVudDogImZyYWdtZW50IiwKKyAgICBWZXJ0ZXg6ICJ2ZXJ0
ZXgiLAogfTsKIAogV0kuU2hhZGVyUHJvZ3JhbS5FdmVudCA9IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2Jz
ZXJ2ZXIuanMKaW5kZXggM2U1ZGQ2YzJhNzIuLjZmNTM1NzQ0MzQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9DYW52YXNPYnNlcnZlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9DYW52
YXNPYnNlcnZlci5qcwpAQCAtNjcsOSArNjcsOSBAQCBXSS5DYW52YXNPYnNlcnZlciA9IGNsYXNz
IENhbnZhc09ic2VydmVyCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZXh0ZW5zaW9uRW5hYmxl
ZChjYW52YXNJZCwgZXh0ZW5zaW9uKTsKICAgICB9CiAKLSAgICBwcm9ncmFtQ3JlYXRlZChjYW52
YXNJZCwgcHJvZ3JhbUlkKQorICAgIHByb2dyYW1DcmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQs
IHByb2dyYW1UeXBlKQogICAgIHsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5wcm9ncmFtQ3Jl
YXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5wcm9n
cmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSk7CiAgICAgfQogCiAg
ICAgcHJvZ3JhbURlbGV0ZWQocHJvZ3JhbUlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1D
b250ZW50Vmlldy5jc3MKaW5kZXggNTVlZjQxZjgyZjUuLjBlNDgwNjMxMDBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFt
Q29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKQEAgLTIzLDUwICsyMyw1MiBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZpZXcu
c2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyIHsKKy5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtZGly
ZWN0aW9uOiBjb2x1bW47CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIHRvcDogMDsKICAg
ICBib3R0b206IDA7Ci0KLSAgICAtLWJvcmRlci1zdGFydC1zdHlsZTogMXB4IHNvbGlkIGxpZ2h0
Z3JleTsKIH0KIAotYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4g
LnRleHQtZWRpdG9yLnNoYWRlci52ZXJ0ZXgsCi1ib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcu
c2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLmZyYWdtZW50IHsKKy5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmNvbXB1dGUgeworICAgIHJpZ2h0OiAwOwor
ICAgIGxlZnQ6IDA7Cit9CisKK2JvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJv
Z3JhbSA+IC5zaGFkZXIudmVydGV4LAorYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRl
ci1wcm9ncmFtID4gLnNoYWRlci5mcmFnbWVudCB7CiAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMXB4
KTsKICAgICBsZWZ0OiAwOwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVy
LXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLmZyYWdtZW50LAotYm9keVtkaXI9cnRsXSAu
Y29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlci52ZXJ0ZXgg
eworYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5m
cmFnbWVudCwKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5z
aGFkZXIudmVydGV4IHsKICAgICB3aWR0aDogY2FsYyg1MCUgKyAxcHgpOwogICAgIHJpZ2h0OiAw
OwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4
dC1lZGl0b3Iuc2hhZGVyICsgLnRleHQtZWRpdG9yLnNoYWRlciB7Ci0gICAgYm9yZGVyLWxlZnQ6
IHZhcigtLWJvcmRlci1zdGFydC1zdHlsZSk7CisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFt
ID4gLnNoYWRlciArIC5zaGFkZXIgeworICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0t
Ym9yZGVyLWNvbG9yKTsKIH0KIAotYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciArIC50ZXh0LWVkaXRvci5zaGFkZXIgewotICAg
IGJvcmRlci1yaWdodDogdmFyKC0tYm9yZGVyLXN0YXJ0LXN0eWxlKTsKLX0KLQotLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgPiAudHlwZS10aXRsZSB7
CisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciA+IGhlYWRlciA+ICogewog
ICAgIHBhZGRpbmc6IDJweCA0cHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5
NSUpOwogICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7CiB9CiAKLS5jb250
ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLkNvZGVNaXJy
b3IgewotICAgIHRvcDogMThweDsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hh
ZGVyID4gaGVhZGVyID4gLnNoYWRlci10eXBlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2wo
MCwgMCUsIDk1JSk7Cit9CisKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVy
ID4gaGVhZGVyID4gLmVudHJ5LXBvaW50ID4gaW5wdXQgeworICAgIHBhZGRpbmc6IDAgMXB4Owor
ICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTFweDsK
IH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyIHsKLSAgICAgICAgLS1i
b3JkZXItc3RhcnQtc3R5bGU6IDFweCBzb2xpZCB2YXIoLS10ZXh0LWNvbG9yLXF1YXRlcm5hcnkp
OwotICAgIH0KLQotICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0
b3Iuc2hhZGVyID4gLnR5cGUtdGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAuc2hhZGVyID4gaGVhZGVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0t
YmFja2dyb3VuZC1jb2xvcik7CiAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRl
eHQtY29sb3ItcXVhdGVybmFyeSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3LmpzCmluZGV4IGRkOTI1NGVkNWJlLi44MGZhMmIyMmIyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcwpAQCAtMzEsMTMgKzMxLDI2IEBAIFdJLlNo
YWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICAgICAgc3VwZXIoc2hhZGVyUHJvZ3JhbSk7CiAKKyAg
ICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9S
ZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZp
Z2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmls
aXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2Vk
LCB0aGlzLl9yZWZyZXNoQ29udGVudCwgdGhpcyk7CisKICAgICAgICAgbGV0IGNvbnRlbnREaWRD
aGFuZ2VEZWJvdW5jZXIgPSBuZXcgRGVib3VuY2VyKChldmVudCkgPT4gewogICAgICAgICAgICAg
dGhpcy5fY29udGVudERpZENoYW5nZShldmVudCk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIHRo
aXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzaGFkZXItcHJvZ3JhbSIpOworICAgICAgICB0aGlz
LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXByb2dyYW0iLCB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnByb2dyYW1UeXBlKTsKIAogICAgICAgICBsZXQgY3JlYXRlRWRpdG9yID0gKHNoYWRl
clR5cGUpID0+IHsKKyAgICAgICAgICAgIGxldCBpc0NvbXB1dGVTaGFkZXIgPSBzaGFkZXJUeXBl
ID09PSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4ICYmIHRoaXMucmVwcmVzZW50
ZWRPYmplY3QucHJvZ3JhbVR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29t
cHV0ZTsKKworICAgICAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuZWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisKKyAgICAgICAgICAgIGxldCBo
ZWFkZXIgPSBjb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaGVh
ZGVyIikpOworCisgICAgICAgICAgICBsZXQgc2hhZGVyVHlwZUNvbnRhaW5lciA9IGhlYWRlci5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICBz
aGFkZXJUeXBlQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInNoYWRlci10eXBlIik7CisKICAgICAg
ICAgICAgIGxldCB0ZXh0RWRpdG9yID0gbmV3IFdJLlRleHRFZGl0b3I7CiAgICAgICAgICAgICB0
ZXh0RWRpdG9yLnJlYWRPbmx5ID0gZmFsc2U7CiAgICAgICAgICAgICB0ZXh0RWRpdG9yLmFkZEV2
ZW50TGlzdGVuZXIoV0kuVGV4dEVkaXRvci5FdmVudC5Gb2N1c2VkLCB0aGlzLl9lZGl0b3JGb2N1
c2VkLCB0aGlzKTsKQEAgLTQ1LDM0ICs1OCw1OSBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZp
ZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vgog
ICAgICAgICAgICAgdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlRleHRFZGl0b3IuRXZl
bnQuQ29udGVudERpZENoYW5nZSwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgY29udGVu
dERpZENoYW5nZURlYm91bmNlci5kZWxheUZvclRpbWUoMjUwLCBldmVudCk7CiAgICAgICAgICAg
ICB9LCB0aGlzKTsKLSAgICAgICAgICAgIHRleHRFZGl0b3IuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJzaGFkZXIiKTsKLQotICAgICAgICAgICAgbGV0IHNoYWRlclR5cGVDb250YWluZXIgPSB0ZXh0
RWRpdG9yLmVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmJlZ2luIiwgZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwotICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5l
ci5jbGFzc0xpc3QuYWRkKCJ0eXBlLXRpdGxlIik7CiAKICAgICAgICAgICAgIHN3aXRjaCAoc2hh
ZGVyVHlwZSkgewogICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUu
VmVydGV4OgotICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQg
PSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOworICAgICAgICAgICAgICAgIHNoYWRlclR5
cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBpc0NvbXB1dGVTaGFkZXIgPyBXSS5VSVN0cmluZygi
Q29tcHV0ZSBTaGFkZXIiKSA6IFdJLlVJU3RyaW5nKCJWZXJ0ZXggU2hhZGVyIik7CiAgICAgICAg
ICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4LXNoYWRlci94LXZlcnRleCI7Ci0gICAg
ICAgICAgICAgICAgdGV4dEVkaXRvci5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInZlcnRleCIpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5GcmFnbWVudDoKKyAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnByb2dyYW1UeXBlID09PSBXSS5TaGFkZXJQcm9ncmFtLlBy
b2dyYW1UeXBlLlJlbmRlcik7CiAgICAgICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50
ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJGcmFnbWVudCBTaGFkZXIiKTsKICAgICAgICAgICAg
ICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gIngtc2hhZGVyL3gtZnJhZ21lbnQiOwotICAgICAg
ICAgICAgICAgIHRleHRFZGl0b3IuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJmcmFnbWVudCIpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlz
LmFkZFN1YnZpZXcodGV4dEVkaXRvcik7Ci0gICAgICAgICAgICByZXR1cm4gdGV4dEVkaXRvcjsK
KyAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0ZXh0RWRpdG9yLmVsZW1lbnQpOwor
ICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInNoYWRlciIsIGlzQ29tcHV0ZVNo
YWRlciA/ICJjb21wdXRlIiA6IHNoYWRlclR5cGUpOworCisgICAgICAgICAgICBsZXQgZW50cnlQ
b2ludElucHV0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LmNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSkgewor
ICAgICAgICAgICAgICAgIGxldCBlbnRyeVBvaW50Q29udGFpbmVyID0gaGVhZGVyLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBlbnRy
eVBvaW50Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImVudHJ5LXBvaW50Iik7CisgICAgICAgICAg
ICAgICAgZW50cnlQb2ludENvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZShXSS5VSVN0cmluZygiRW50cnkgcG9pbnQ6ICIpKSk7CisKKyAgICAgICAgICAgICAgICBl
bnRyeVBvaW50SW5wdXQgPSBlbnRyeVBvaW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOworICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRJbnB1
dC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX2hhbmRsZUVudHJ5UG9pbnRJbnB1dElu
cHV0LmJpbmQodGhpcykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4ge2Nv
bnRhaW5lciwgdGV4dEVkaXRvciwgZW50cnlQb2ludElucHV0fTsKICAgICAgICAgfTsKIAotICAg
ICAgICB0aGlzLl92ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5T
aGFkZXJUeXBlLlZlcnRleCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gY3JlYXRl
RWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7CisgICAgICAgIGxl
dCB2ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBl
LlZlcnRleCk7CisgICAgICAgIHRoaXMuX3ZlcnRleENvbnRhaW5lciA9IHZlcnRleEVkaXRvci5j
b250YWluZXI7CisgICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvciA9IHZlcnRleEVkaXRvci50ZXh0
RWRpdG9yOworICAgICAgICB0aGlzLl92ZXJ0ZXhFbnRyeVBvaW50SW5wdXQgPSB2ZXJ0ZXhFZGl0
b3IuZW50cnlQb2ludElucHV0OworCisgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnByb2dyYW1UeXBlID09PSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcikgewor
ICAgICAgICAgICAgbGV0IGZyYWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7CisgICAgICAgICAgICB0aGlzLl9mcmFnbWVudENv
bnRhaW5lciA9IGZyYWdtZW50RWRpdG9yLmNvbnRhaW5lcjsKKyAgICAgICAgICAgIHRoaXMuX2Zy
YWdtZW50RWRpdG9yID0gZnJhZ21lbnRFZGl0b3IudGV4dEVkaXRvcjsKKyAgICAgICAgICAgIHRo
aXMuX2ZyYWdtZW50RW50cnlQb2ludElucHV0ID0gZnJhZ21lbnRFZGl0b3IuZW50cnlQb2ludElu
cHV0OworICAgICAgICB9CisKICAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9IHRoaXMu
X3ZlcnRleEVkaXRvcjsKICAgICB9CiAKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBuYXZpZ2F0
aW9uSXRlbXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFt0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW1dOworICAgIH0KKwogICAgIC8vIFByb3RlY3RlZAogCiAgICAgc2hvd24oKQpA
QCAtODAsMjEgKzExOCwxNyBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBT
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogICAgICAgICBzdXBl
ci5zaG93bigpOwogCiAgICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5zaG93bigpOwotICAgICAg
ICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOworICAgICAgICBpZiAodGhpcy5yZXByZXNl
bnRlZE9iamVjdC5wcm9ncmFtVHlwZSA9PT0gV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5S
ZW5kZXIpCisgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOwogCi0gICAg
ICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFZlcnRleFNoYWRlclNvdXJjZSgoY29u
dGVudCkgPT4gewotICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnN0cmluZyA9IGNvbnRl
bnQgfHwgIiI7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
cmVxdWVzdEZyYWdtZW50U2hhZGVyU291cmNlKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICB0
aGlzLl9mcmFnbWVudEVkaXRvci5zdHJpbmcgPSBjb250ZW50IHx8ICIiOwotICAgICAgICB9KTsK
KyAgICAgICAgdGhpcy5fcmVmcmVzaENvbnRlbnQoKTsKICAgICB9CiAKICAgICBoaWRkZW4oKQog
ICAgIHsKICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLmhpZGRlbigpOwotICAgICAgICB0aGlz
Ll9mcmFnbWVudEVkaXRvci5oaWRkZW4oKTsKKyAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRP
YmplY3QucHJvZ3JhbVR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVy
KQorICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CiAKICAgICAgICAg
c3VwZXIuaGlkZGVuKCk7CiAgICAgfQpAQCAtMTA2LDE0ICsxNDAsMzIgQEAgV0kuU2hhZGVyUHJv
Z3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFYKIAogICAgIGdldCBzYXZlRGF0YSgpCiAgICAgewotICAgICAgICBsZXQgZmls
ZW5hbWUgPSBXSS5VSVN0cmluZygiU2hhZGVyIik7Ci0gICAgICAgIGlmICh0aGlzLl9sYXN0QWN0
aXZlRWRpdG9yID09PSB0aGlzLl92ZXJ0ZXhFZGl0b3IpCisgICAgICAgIGxldCBmaWxlbmFtZSA9
ICIiOworICAgICAgICBzd2l0Y2ggKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IpIHsKKyAgICAgICAg
Y2FzZSB0aGlzLl92ZXJ0ZXhFZGl0b3I6CiAgICAgICAgICAgICBmaWxlbmFtZSA9IFdJLlVJU3Ry
aW5nKCJWZXJ0ZXgiKTsKLSAgICAgICAgZWxzZSBpZiAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9
PT0gdGhpcy5fZnJhZ21lbnRFZGl0b3IpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGlzLl9mcmFnbWVudEVkaXRvcjoKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0uUHJvZ3Jh
bVR5cGUuUmVuZGVyKTsKICAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIkZyYWdt
ZW50Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjb25zb2xlLmFz
c2VydChmaWxlbmFtZSk7CisKKyAgICAgICAgbGV0IGV4dGVuc2lvbiA9ICIiOworICAgICAgICBz
d2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlKSB7CisgICAg
ICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgorICAgICAgICBjYXNlIFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CisgICAgICAgICAgICBleHRlbnNpb24gPSBXSS51bmxv
Y2FsaXplZFN0cmluZygiLmdsc2wiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFU6CisgICAgICAgICAgICBleHRlbnNpb24gPSBX
SS51bmxvY2FsaXplZFN0cmluZygiLndobHNsIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChleHRlbnNpb24pOwogCiAgICAgICAgIHJldHVy
biB7Ci0gICAgICAgICAgICB1cmw6IFdJLkZpbGVVdGlsaXRpZXMuaW5zcGVjdG9yVVJMRm9yRmls
ZW5hbWUoZmlsZW5hbWUgKyAiLmdsc2wiKSwKKyAgICAgICAgICAgIHVybDogV0kuRmlsZVV0aWxp
dGllcy5pbnNwZWN0b3JVUkxGb3JGaWxlbmFtZShmaWxlbmFtZSArIGV4dGVuc2lvbiksCiAgICAg
ICAgICAgICBjb250ZW50OiB0aGlzLl9sYXN0QWN0aXZlRWRpdG9yLnN0cmluZywKICAgICAgICAg
ICAgIGZvcmNlU2F2ZUFzOiB0cnVlLAogICAgICAgICB9OwpAQCAtMTcxLDYgKzIyMyw2MSBAQCBX
SS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgLy8gUHJpdmF0ZQogCisgICAgX3JlZnJlc2hD
b250ZW50KCkKKyAgICB7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFNo
YWRlclNvdXJjZShXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4LCAoc291cmNlLCBl
bnRyeVBvaW50KSA9PiB7CisgICAgICAgICAgICBpZiAoc291cmNlID09PSBudWxsKSB7CisgICAg
ICAgICAgICAgICAgLy8gRklYTUUKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5zdHJpbmcgPSBzb3VyY2UgfHwg
IiI7CisKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghIWVudHJ5UG9pbnQpID09PSAoISF0
aGlzLl92ZXJ0ZXhFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgIGlmICh0aGlzLl92ZXJ0
ZXhFbnRyeVBvaW50SW5wdXQpCisgICAgICAgICAgICAgICAgdGhpcy5fdmVydGV4RW50cnlQb2lu
dElucHV0LnZhbHVlID0gZW50cnlQb2ludCB8fCAiIjsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUgPT09IFdJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyKSB7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdt
ZW50LCAoc291cmNlLCBlbnRyeVBvaW50KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJj
ZSA9PT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdGhp
cy5fZnJhZ21lbnRFZGl0b3Iuc3RyaW5nID0gc291cmNlIHx8ICIiOworCisgICAgICAgICAgICAg
ICAgY29uc29sZS5hc3NlcnQoKCEhZW50cnlQb2ludCkgPT09ICghIXRoaXMuX2ZyYWdtZW50RW50
cnlQb2ludElucHV0KSk7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2ZyYWdtZW50RW50cnlQ
b2ludElucHV0KQorICAgICAgICAgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVudHJ5UG9pbnRJ
bnB1dC52YWx1ZSA9IGVudHJ5UG9pbnQgfHwgIiI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIF91cGRhdGVTaGFkZXIoc2hhZGVyVHlwZSkKKyAgICB7CisgICAgICAg
IHN3aXRjaCAoc2hhZGVyVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5WZXJ0ZXhTaGFkZXI6IHsKKyAgICAgICAgICAgIGxldCBvcHRpb25zID0ge307Cisg
ICAgICAgICAgICBpZiAodGhpcy5fdmVydGV4RW50cnlQb2ludElucHV0KQorICAgICAgICAgICAg
ICAgIG9wdGlvbnMuZW50cnlQb2ludCA9IHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRJbnB1dC52YWx1
ZTsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QudXBkYXRlU2hhZGVyKFdJLlNo
YWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsIHRoaXMuX3ZlcnRleEVkaXRvci5zdHJpbmcs
IG9wdGlvbnMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2Fz
ZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnRTaGFkZXI6IHsKKyAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUgPT09
IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyKTsKKyAgICAgICAgICAgIGxldCBv
cHRpb25zID0ge307CisgICAgICAgICAgICBpZiAodGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50SW5w
dXQpCisgICAgICAgICAgICAgICAgb3B0aW9ucy5lbnRyeVBvaW50ID0gdGhpcy5fZnJhZ21lbnRF
bnRyeVBvaW50SW5wdXQudmFsdWU7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnVwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsIHRoaXMu
X2ZyYWdtZW50RWRpdG9yLnN0cmluZywgb3B0aW9ucyk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgfQor
CiAgICAgX2VkaXRvckZvY3VzZWQoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fbGFz
dEFjdGl2ZUVkaXRvciA9PT0gZXZlbnQudGFyZ2V0KQpAQCAtMTk3LDkgKzMwNCwzMyBAQCBXSS5T
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgX2NvbnRlbnREaWRDaGFuZ2UoZXZlbnQpCiAgICAg
ewotICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLl92ZXJ0ZXhFZGl0b3IpCi0gICAg
ICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnVwZGF0ZVZlcnRleFNoYWRlcih0aGlzLl92
ZXJ0ZXhFZGl0b3Iuc3RyaW5nKTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQudGFyZ2V0ID09PSB0
aGlzLl9mcmFnbWVudEVkaXRvcikKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
dXBkYXRlRnJhZ21lbnRTaGFkZXIodGhpcy5fZnJhZ21lbnRFZGl0b3Iuc3RyaW5nKTsKKyAgICAg
ICAgc3dpdGNoIChldmVudC50YXJnZXQpIHsKKyAgICAgICAgY2FzZSB0aGlzLl92ZXJ0ZXhFZGl0
b3I6CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoV0kuU2hhZGVyUHJvZ3JhbS5TaGFk
ZXJUeXBlLlZlcnRleFNoYWRlcik7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2Fz
ZSB0aGlzLl9mcmFnbWVudEVkaXRvcjoKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0uUHJvZ3Jh
bVR5cGUuUmVuZGVyKTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQ
cm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnRTaGFkZXIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKKyAgICB9CisKKyAgICBfaGFu
ZGxlRW50cnlQb2ludElucHV0SW5wdXQoZXZlbnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2
ZW50LnRhcmdldCkgeworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRJbnB1dDoK
KyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5
cGUuVmVydGV4U2hhZGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIHRo
aXMuX2ZyYWdtZW50RW50cnlQb2ludElucHV0OgorICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSA9PT0gV0kuU2hhZGVyUHJvZ3JhbS5Q
cm9ncmFtVHlwZS5SZW5kZXIpOworICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKFdJLlNo
YWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudFNoYWRlcik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydCgpOwogICAgIH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFk
ZXJQcm9ncmFtVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQuanMKaW5kZXggY2RhNzViNDE1MjQu
Ljg3ZDllNDg0NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50Lmpz
CkBAIC0zMiwxMCArMzIsMTMgQEAgV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50ID0gY2xhc3Mg
U2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZXJhbFQKICAgICAgICAgY29u
c3Qgc3VidGl0bGUgPSBudWxsOwogICAgICAgICBzdXBlcigic2hhZGVyLXByb2dyYW0iLCBzaGFk
ZXJQcm9ncmFtLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgc2hhZGVyUHJvZ3JhbSk7CiAKLSAgICAg
ICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bWciKTsKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQudGl0bGUgPSBXSS5VSVN0
cmluZygiRGlzYWJsZSBQcm9ncmFtIik7Ci0gICAgICAgIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnRD
bGlja2VkLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVk
SW1hZ2VFbGVtZW50OworICAgICAgICBsZXQgY29udGV4dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZTsKKyAgICAgICAgaWYgKGNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHTDIpIHsKKyAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICB0aGlzLl9k
aXNhYmxlZEltYWdlRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFByb2dyYW0i
KTsKKyAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnRDbGlja2VkLmJpbmQodGhpcykp
OworICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudDsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAtNDQsMzQgKzQ3LDQyIEBA
IFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudCA9IGNsYXNzIFNoYWRlclByb2dyYW1UcmVlRWxl
bWVudCBleHRlbmRzIFdJLkdlbmVyYWxUCiAgICAgewogICAgICAgICBzdXBlci5vbmF0dGFjaCgp
OwogCi0gICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5T
aGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJv
Z3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMikgeworICAgICAgICAgICAgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLlNoYWRlclByb2dyYW0uRXZlbnQuRGlz
YWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQcm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0
aGlzKTsKIAotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVy
IiwgdGhpcy5faGFuZGxlTW91c2VPdmVyLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCB0aGlzLl9oYW5kbGVNb3VzZU91dC5iaW5k
KHRoaXMpKTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZW92ZXIiLCB0aGlzLl9oYW5kbGVNb3VzZU92ZXIuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0
aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCB0aGlzLl9oYW5kbGVNb3Vz
ZU91dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIG9uZGV0YWNoKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
SS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hhZGVy
UHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAo
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMikKKyAgICAgICAgICAgIHRoaXMucmVw
cmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50
LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdl
ZCwgdGhpcyk7CiAKICAgICAgICAgc3VwZXIub25kZXRhY2goKTsKICAgICB9CiAKICAgICBjYW5T
ZWxlY3RPbk1vdXNlRG93bihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxl
ZEltYWdlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKQorICAgICAgICBpZiAodGhpcy5f
ZGlzYWJsZWRJbWFnZUVsZW1lbnQgJiYgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuY29udGFp
bnMoZXZlbnQudGFyZ2V0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0
dXJuIHN1cGVyLmNhblNlbGVjdE9uTW91c2VEb3duKGV2ZW50KTsKICAgICB9CiAKICAgICBwb3B1
bGF0ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCkKICAgICB7Ci0gICAgICAgIGxldCBk
aXNhYmxlZCA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZGlzYWJsZWQ7Ci0gICAgICAgIGNvbnRl
eHRNZW51LmFwcGVuZEl0ZW0oZGlzYWJsZWQgPyBXSS5VSVN0cmluZygiRW5hYmxlIFByb2dyYW0i
KSA6IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFByb2dyYW0iKSwgKCkgPT4gewotICAgICAgICAgICAg
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKLSAgICAgICAgfSk7
CisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFz
LmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdMMikgeworICAgICAgICAgICAgbGV0IGRpc2FibGVkID0gdGhpcy5yZXByZXNlbnRlZE9iamVj
dC5kaXNhYmxlZDsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oZGlzYWJsZWQg
PyBXSS5VSVN0cmluZygiRW5hYmxlIFByb2dyYW0iKSA6IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFBy
b2dyYW0iKSwgKCkgPT4geworICAgICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
ZGlzYWJsZWQgPSAhZGlzYWJsZWQ7CisgICAgICAgICAgICB9KTsKIAotICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNl
cGFyYXRvcigpOworICAgICAgICB9CiAKICAgICAgICAgc3VwZXIucG9wdWxhdGVDb250ZXh0TWVu
dShjb250ZXh0TWVudSwgZXZlbnQpOwogICAgIH0K
</data>
<flag name="commit-queue"
          id="394264"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>378640</attachid>
            <date>2019-09-12 03:39:50 -0700</date>
            <delta_ts>2019-09-12 03:39:50 -0700</delta_ts>
            <desc>[Image] After Patch is applied</desc>
            <filename>Screen Shot 2019-09-12 at 19.34.45.png</filename>
            <type>image/png</type>
            <size>833826</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">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
s7/tAPtA40GHg7WHGIcqmpCmWU19zeLmzpb0lo7D4w63tQa2Hvph1A87j9gcqTlqfHT5MeqxsmOD
x0uO95+Qneg9mXuyq21q291TE09dPz3hdPuZmDPnfoz88dRZztnj54LOHTkfcP7wBfaF5ou+F5su
+Vw69JPPT4fafdubLvtdbrnif6W1Y2zHsashV09eC7/243Xe9Ys34m503Ey5eftW5q3O28LbT+8U
3Hnxc/HPA3cX3CPcq7ivf7/qgcWDul9cftnb6dt59GH4w0uPkh7d7RJ0PftV8euH7rLH9MdVT6yf
1D/1enqkJ7Lnym+Tfut+Jns20Fv+u8Hvtc+dnx/8I/SPS30T+7pfyF8M/rn0pdnLna/GvGrrT+h/
8Lrw9cCbirdmb3e9Y787+z7t/ZOBGR9IH6o/unxs/RTz6d5g4eCgjC/nq48CGGxoTg4Af+4EgJ4O
AOMKPD9M0tzz1IJo7qZqBP4T1twF1eILQCN8qY7r3BMA7IPNcQHkDgVAdVRPDgWot/dw04oix9tL
w0WDNx7C28HBl5YAkFoB+CgfHBzYODj4cTsM9g4AJ6Zr7pcqIcK7wZZQFbphKlwAvpB/AeSNfyr2
e7fxAAAAimVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAA
h2kABAAAAAEAAABOAAAAAAAAAJAAAAABAAAAkAAAAAEAA5KGAAcAAAASAAAAeKACAAQAAAABAAAK
uKADAAQAAAABAAAHbgAAAABBU0NJSQAAAFNjcmVlbnNob3SPEJA3AAAACXBIWXMAABYlAAAWJQFJ
UiTwAAAB2GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9i
ZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpy
ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRw
Oi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lv
bj4yNzQ0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+
U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5z
aW9uPjE5MDI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KhScVpwAAABxpRE9UAAAAAgAAAAAAAAO3AAAAKAAA
A7cAAAO3AAglscugxOsAAEAASURBVHgB7L0L0K1ZWef3ntP3bmigW1pQ7qCOkHGiZhIuis4wGQSU
KaLUlFFjUdFUNAUGjUYwsWpQMzKlUmWFBpxUjGQyDg6X0ojRBsyA4iVDBK3SOIC2TjegQjfYF/ty
blm/tfb/e9f3nnfvb+/v/p3ze2B/a73r9qz1f5/1XNZeZ/cwSCIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg
AiIgAiIgAiIgAiIgAiIgAiIgAiJwqSFwxWJBp0p6unxIe0o5daGU5Zk0/RhvbhzKaTPlN33OOKVp
pfCSfxBpOPZ4UBPcxF/5c/+N+yG7Rv2j/tX+aH+n/sb0OXY0ekP/o9nT3t8IJsGINLjpf+h/6H+M
+yF7RP9D/wMdObU30+fo0chNdK36N4g0OerxoCa4aX+0P9qfcT9k12h/tD/aH+3v1N+YPseORm/o
fxj/Yk97fysyERkhjdzof+l/6X+N+yF7RP9L/wsdObW30+fo0chNdK36N4g0OerxoCa4aX+0P9qf
cT9k1xx3+5N5moqACKxAIIZuRROrROBIEEA2I5/nSx5DTJqyCyUfh5d8PiW71ZY+lEPT8VKecRmL
MnhA0/ZpJ/+GD1iJ/4gFeExlSvkbMZnupylW7j/1DzKh/m06ZbpftD/af/0f/T/9z9Hn0v8csdD/
HH3N2Er97xGTqT+h/932TmTF+MP4w/jD+Mv40/gTBKb2MnZC/7vJB7pS/3vEQv979DWzV/S/R0ym
+kT/u+2dyIr+t/63/rf+t/5304tTexE9qf85+lz6nyMW+p+jr5W9ov85YjLVJwfpfzap9K8IHDEC
MZZHPA3ZX2II4Hj0jmqfR7FG7pJSTz6GqWTrM+VzRirt+3EzVt93Li9/8Y+sJI08KX8X71v338VO
YuRF/YOGbfokeynPPTZ9Xv2r/o2sJM1+Uv+qf3tdQV77o/3JYQz6gk/0RS8r0SXanxGjOSy0v9rf
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
f8c/acj7VwREYM8IxNmPIsuA/IRz6igjD9EuP+nMc9qRh/qffqZt6jN+6pOGR+rrIDP95N+QEX/l
z/0XLTHql5REr/Cs/hnxiX4NPknVv01Ogk8vR8GGMu1PQ0b7o/3R/kRLjPo1JdGrPGt/RnyiX4NP
0ujY1Pc4po4y9W9DRv2r/lX/RkuM+iUl0Ss8q39HfKJfg0/S6NjU9zimjjL1b0NG/av+Vf9GS4z6
JSXRKzyrf0d8ol+DT9Lo2NT3OKaOMvVvQ0b9q/5V/0ZLjPolJdErPKt/R3yiX4NP0ujY1Pc4po4y
9W9DRv2r/lX/RkuM+iUl0Ss8q39HfKJfg0/S6NjU9zimjjL1b0NG/av+Vf9GS4z6JSXRKzyfZP2b
9ZiKgAjsAoHeYaA7yqBXCHEuKIPSnnzakod4pj5tpn0zRq980jZ1GZM2GStlpWhrbPJ9eZ7Th2f5
b8coGIs/0tFI+Ws4RDayp9x/6p/o0sgEkpL9Qr4vz3P68Ey+b0MeUv80HPgbPINN8HL/uf+ylyIT
vbyQ78vznD5p27chD7n/Gg78df81LCIbkRf1j/onuiQy0e8X8n15ntMnbfs25CH1T8OBv+qfhkVk
I/Ki/lH/RJdEJvr9Qr4vz3P6pG3fhjyk/mk48Ff907CIbERe1D/qn+iSyES/X8j35XlOn7Tt25CH
1D8NB/6qfxoWkY3Ii/pH/RNdEpno9wv5vjzP6ZO2fRvykPqn4cBf9U/DIrIReVH/qH+iSyIT/X4h
35fnOX3Stm9DHlL/NBz4q/5pWEQ2Ii/qH/VPdElkot8v5PvyPKdP2vZtyEPqn4YDf9U/DYvIRuTl
uOqf8c2ZEwER2IYAmxeF1m/mGIRs6L6uz0/7xUjQJv+SIO2jNNMn5aQpK9k6D575yP9ibFbhJv5I
UJMh5W/Eghz7CcpeWyVH7j/1j/pX+6P9HfUluhOduUpvan9BSfuLjOh/VFHY2i/6Hw0P/a+d9aj+
p/6n/qf+p/6n/mfsJdZT/9v4w/hr9Kune8P4c8TG+GvEghyyAkVmVu0j2vDR/o54gZ32R/uzat+o
f9klTUbUvyMW5NS/DQ/tz852RPur/6H/pf+p/63/HXuJ9Vw3/miW1r9HhkCChCObgIy3DjouFCzO
lw8biTwpz7wjUpTsufKhHEodz3PljAGlX/+uqcszKR/5b8cf3IIx+BIoni0fyqFgDv59efqswp82
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
6/aq/+i/l+8/zpb+yBeylXUn3XT98fWWxT+FRcWTFH7BOPwpI78Of9pe8gSglwNlnXmpvSBlg1AW
QQeTPCMwfZ42PEPJR7Ao69uGH+VQ2qcNDiobBEFNWclWiqCu4p+59/zpDB/GPEr+zHvKn2fWmbWu
Wn/a7Hb9c/w3wV/+TY7Ef5RXsIgMley2y+3UhWij/F28/4Nd9pb7f7n+D0buP/dfLwvZQ+iaVfZf
/aP+mfpfkZ3Ik/pX/bss/oiMaH+0P70sRIdof7S/+h9jnIeeDLFH9L/0v/S/siNaGtsRe6L/qf+p
/zl//p89ov+t/93LQnQoGlX/a/Sz9L9GW6v/OcrFiMr43U32k/6H/of+h/7H3P2L6Aj9L/2vXhb0
v5o86H/qf+82/kB22Ef76X+xR0O78X/pS79Qv+f7/LL9v1f+4ZEzwzyvsj+ZC33WiX/6sZPPei/J
tH8pl+ICWV8EJXnW2ZfxoiMgEXDqKUufCFIpqpT+uURKfS9gqU//KAKeob4ePvRnrPChnj5xvOKE
l6JKqUdBpP8q/um/ij9jwR/K+JvyZy4Qc+nXsg7/rJ/+e+VP//79HQX/o16//Mf96/sfdUn2V+Qj
+mO/91/GZy+Kv/jHlih/q+1/8NmN/Y/9Zc+5/9T/yIH6V/uj/dX+an+bLox9jX3U/22+gv7//p1/
6H/pf0a/6H/pf+l/6X/pf+l/YQv0P5scxD7qf+t/IwvGH8YfyAGEnvT8e/SZ4j9WcDp8pt//e/7f
EDL+Nv6Of2H8bfwd/an/fbF+jP+dO1u0OCr7i82H9oM/YzEOn03ff+mya/8DPOHZ6x/mAr6UQ319
8O/9X9pknL4t5VDK6JP+jE8eSj3pND+tp0/6UXdJEYu/VImXHyFPnrXmhZPvhSJ1pAhnBDKbLrfN
gxlpBIM0PNKP+mX8M2YEtDSt88rYPX82J+XwP1M+jA+FPyntd8M/DjLjQZvyb712z79f/zL+wXDZ
+um32/Wvw38n/OUv/srf7vSP+2+0Icv0n/pntf1T/6p/1b/q3934v9of7U9iOO3v5vFfsFP/qn/V
v+28Z7fnP+of9c+m52/qX3aN8Y/2V/ur/dX+8l2J/kfzI7Cl+e4oewNbkXLyxv/G//GhIhuk2NPs
I8/f257x+9f5798jL9ExkZvoGdLU0Tbl5NU/6h/1DzuhEXsDUv9qf6JHtb/H2/6ivw76/AGdsBf/
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
3IyZ8v6Z8dOOfOpIQ/LfLv+8O/Gf3//Kn/sveiZ6JTol5f0zOibtyKdO/QMajdS/6t/e/9L+aH/1
P/Q/sAu7jT/ip2FhtL8NA7DQ/2hY6H8hDY30v/S/9L9G3aj/qf+p/6n/qf+p/238cfH3b+yLxFSk
iSlS3j/jYaYt+dTpf4NGI/1v/W/971E36H/rf+t/63/rf+t/639v97/xGONnx6+OT53y/pn2aUc+
fndSypb5n+jgVfjTd5X/T3+o588zvJfxp37O/lNGH8bKOslD0/KMTTtoP/jjn4Vv0ow75Z/6ZfyZ
U+ZInnb9+rJ+2sAXHPv6jL+Kf+lyPCkv7XjObgQ688uLygvIy+5fTl4Sfabro1/KeHF52aTpRxs+
vGjKwrNkt/Lhn36kbM70IaVfz688bhN++vT9e/59vufPGFDPP/kp/7TLenkmT3sI3plvPw/q+VCX
sTNG5pJy+iU/5Z/1lyaVGCMfCub4h2f4r4M/bRnrIPhnbcwXWrb+dfjTf9P1y3/EXPxHLCIX2X/K
38773/2n/lH/NhlgL6AzpvZ/an+jZ2gPaf8aDsFF/dv8P+2P9mcn/5udo/5V/yIDkPZH+6v/0c6Y
2Av9mQ/+RXyx+FzsmeT1PxoW+l/6X+wF/U/9T/3P0Z/AdmAr2Bs96X/rf+t/tx1h/DHqC/1P/W/j
jzHmMv4asUjMidZM3vjT+BNZMP42/jb+PpnnD8SI+3X+yjibxt/r8CdWic0p2a187A9jzMkfP1JJ
P+p6SuxDWfz/9CfNeMkv45/yqf7Lj2MyTs8/a6Bf5jDlv8z/ol0o4zA/8uEPv03wT1/SrCU48Jz1
h08pqjTl3/dPm2OVBuxjNanJZAJyD2ZeBmleUF427fhM+zEsbft2tAnRZ0q0RXCoSz/SCCN1q/iX
6to3bcKf/pkjbSCeqQ+FJzygdfhnXMahX/DJOnfLn7lkvv36GZdPXz+Xh2/fP30yr1Jd60lDGWcV
/qw3Ywef9AsPntNmp/WHNyn9GHMVf3iEzyb804c0BL+e5C/+yp/7T/0z6mL0JXsi9pfn6FL174gF
tiO4kJ/av9SRhrQ/QaKl2l/tr/ZX+6v91f7GFmAv9T/0v/Q/tx8G9/uDPJ/4mOT1PxsmOX8KNvrf
RTgWhJz0xLP+l/6X/pf+V3SB/pf+p/63/rf+t/53fxmltw/k+cTHJm/8YfwROcB+RDaMvwoYCwKf
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
2LHRJ5/4l5qf4lVLdRWb64llrBh8qElLnLiW+MlHmOR5o7l1okm1LsuCaPIpJ4tBpGMsGy0LyReF
ncUiAkOLVw5agaIc+JNL+ZSDMYIfOsVJR0sdRPGqo3nRKo4c2DVP+hLV4sRV80OXxzFGyE8exau+
vgGwK44YDnxp2TZuQCTwjJg7lylajIARMAJGwAi0HIHOQnB9+umnwzPPPBN233330K9fv7TAadOm
hZEjR4Y111wz6autuj0Irg899FAoFAqpnHdwrYa6dUbACBgBI2AEjIARMAJGoDER0INZXQ901FX6
+qmjnhnPywgYASNgBIyAETACRsAILH0I6DrKBNel79x7xUbACBiBjohA37592cF1XDxmzJ9f5a6t
8PN0wMuTQFBFxN/TWFw/6RlD4GOMiN8n3qHixDdkrD4x+NNywBeU5KRA/PM4fFSHlgN//OjnvEPF
qab85Ks5KC7Xx1QpJzrFSaf5qj6tJK+fr0P2FreadIsDqjgymcpJcqJZAK0mTl/1KkFhEZA6EWwI
vjqwU4dWefAjBp/K+pqT6isPY0Q1iCMHebWDaj7f3F9+5CYfObQTq2KiKgm+mh82/MnFofnGbpo3
OajPTq34VvNXLrXkWD4e606ePPmW2FqMgBEwAkbACNSEQGchuL7xxhsBsiq7t+Zy8803h5VWWil8
5StfydWlfnsQXM8777xw/vnnh65du4YZM2aELl34l8BiBIyAETACRsAIGAEjYASMQKMjoAezhUKh
Qy/V108d+vR4ckbACBgBI2AEjIARMAJGYKlCQNdRJrguVafdizUCRsAIdEgElllmmdCnT59D4uTe
iMfMeIhsCkdPnET68PLyA0IAvvD98MtFsfLHF9KsOIP444OIK0gu5USHqD595dJc8MVOfWySPLbS
lxjNDX98VV+1tCbs5GXOxFQeqkuLDVE++povffmqvuYrf43xrVlI0haiySgXY01MffmwYPqIWp0M
FpnHoReI8idGOeQLSMpFKx/FCGQBLh+1OoGyE5cDrzz4yyevgY5D+RQrnebLGJFe+bRO9Lkv62P9
iHz1jcAOrmtHAs9t3sE14eMvRsAIGAEjUAMCnYXgWm1JL774Ynj88cfDZpttFrbZZptqLokUi0G7
vlZ1qkEJYXb77bcPL7zwQth6663Dk08+WUO0XY2AETACRsAIGAEjYASMgBHozAjowWyhUOh0y/D1
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
75/mYOE1R8ARcAQcAUdgfkFA+ygnuLacM94QgusZZ5xhL730kl1yySW25ppr1ruofILrJ598Yocd
dphBgr3xxhutQwceWFwro0ePNu47IY2VwXW77bZrtmvoTz31VCSs1tTU2IsvvljnE+vefPNN22mn
nYzvx+Cw22671YKQ95cMuvSREfa+++7L6zV79NFHI5F2tdVWsxEjRszV7wpHwBGYG4GQwZUU0xPD
MSMccPk4RMaE7EpbfD/pgypLUBXxlD4kbTMWUZ98yyd+4ThKZK9+4iOKLz06zaVYia38Ya+65iJO
oziWslEs+uljHHVEdUoO2aYl/rFXnFDNEcYhit8gciOBGypMRAvSxPELQVMnR4ROFoUtWU81cWzl
I1RjP/acvIXDIUC0cLVDV5a9nManjk9i6ATgRzaMl99QjbGJjyiG5t426Jin5i8b2RNDOkrs8EG/
1kSbeIjmgF/mgTAGW+as+Jq77BQfGwR7/uPXhAyud3gGVyBxcQQcAUfAESgHASe4loNWddh+9NFH
1q9fvzjZr776ypZeeumiE+e7wy677GI///yzXX755bbSSisVtS3Usc8++xgkviOPPNKuueaaQiau
q1IETjnsWXvkvnHW/8B+dvqF6zbZKo477rj4+CAuvnBBpxqF7K1bbrml6bs4F/dmzZplQ4YMyT6G
qbHXdcMNN8SLgJ06dbIJEyZYx44dGzuE+3MEHAFHwBFwBByBAgjoxmwmkynQW/2q+ZHg6vun6n/d
toQV+P6p9LPg+6fSsXJLR8ARcAQcAUegtSCgfZQTXFvOGW0IwfWuu+6ym2++2Xr27Bmv7Sv5w5df
fml//OMf7euvv47k1JqamrjgfIIr2UohuI4fP9422GCDWO/atWtM6EAiFe5rIQ0luEIwPfPMM613
79520003RZ9N/WeLLbaw119/Pd4v4/5ZMYHku+2229p//vOfaNu/P1y74gKRGLyuvfbanHsO3333
nRHnueees1NOOSUexb14jyPgCAiB2QTXSaFNBlf4eeI0UoeHB49PB/w8EVipY0sbPh821NUWNxE7
BH/yg9+Z4YA3iB029HPIv+Lnj1M/PhiLT8WXf9rYMRbfWod8wTcU/xIf9NOnfs0ZO3yqT36CKvIa
tUbiaSwlbfoQxZcPSvwyP5WhWploopWNrh0lH0wsXWCqx5I+6QBFoNHHWPVpUVpoapva0J8KdoxF
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
hjGenz1i8TUGG3H4MrO3nh9/6iP6WH/NRQ3v89boH7569eqT168pk0QgAhGIQARuTqAG15uzyjMC
EYhABCIQgQhEIAIRuN8E/GJ227ZdgqjBdZfP2qUiEIEIRCACEYhABCJwVgJ+jqrB9azPUPEIRCAC
ERgCVw2uH4365Yzfz7CHj4Y7+hdZ08fHGp3ZZjz69mwIpacPwRdhj+ZV49mnr49ZH3RyMeOPHX8E
m/WtyZ4x+LDWBzuCL7k8m/VZr/VZI9bXj5k98nEe+xhZG4/umvraibP+ejZsiL2U+mBzD/1W4kVu
FXwVxGE5CDPC5czrAYXCZb0AM5c69llj8Sev0Ea9zm8u9oXNPkIOBrmFvdbzPEIdt0MdfNZ7sO95
8FGw+XDWX33Ngb/1ma3Hvmt8kPU+6/nWXNgdPx79/RcvXjwnOIlABCIQgQicQqAG11No5RuBCEQg
AhGIQAQiEIEI3GcCfjG7bdsuMdTgustn7VIRiEAEIhCBCEQgAhE4KwE/R9XgetZnqHgEIhCBCAyB
y8vLi6dPn/561M9mfDWDnj16DZnpy0NH1kZSegjp0WNm4KOv85iuexb1I8Z81qEnEMEHGwMdMRdx
1sfOPjZ9Wetrj+GYDn7rWhszQpz1re3M/hrLuVdf9hFyEEN98zHLZ82hjRlZ495YbvGvyW4Reh1C
DsZ6eTY5vI/rYbGj4+8eOpcGgnvq+LDv2jqsEfNqN56ZX0S1Br746MdsTXKt8FmbHzvi4xGHuK+u
nbX62sx67GdNZh8Zf89kPdbkc40/a+Z3Z3wwv+D6237BdUgkEYhABCJwEoEaXE/ClXMEIhCBCEQg
AhGIQAQicI8J+MXstm27pFCD6y6ftUtFIAIRiEAEIhCBCETgrAT8HFWD61mfoeIRiEAEIjAErn7B
9ZejfjmDBleEnkKEHkP7A1mjM7Az6NFbfWf5nRiaUunlY9igqj82crEmF2tmBLtrde3WZqZnkHh9
8UHM4561nPHh7PhZ3zV72PFFzGUN15yLfkbijV1j0I/r4+d9jGF9J7HoXZJ4OXJ4MC6KjnBI9PVS
7hm7XpY91jzQCpM82IxxPaZr0OYlzqZQcgEbQceHQR4Goh3dPwxjsFmTPWLJT319PKc1Z+u6jvXJ
gY4Pw/qrfcyHvTW3ftSgHrHob8/4cBpcP6nBdUgkEYhABCJwEoEaXE/ClXMEIhCBCEQgAhGIQAQi
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
m5+bSP/96+rvk/Do71/9/Yufn/39k6+GQ+nvn/39k98bkf7+ffXnRf/+8PX37w98Rk/z9x++xyHX
+/nvz4P5+ff36PnvD+TYr48dHV9DxM84f/+yPj74Wo9YfdZyE2zozIkPOuPIz9//aBT16xYdPuzR
++8mxCDkYFh/6sxLTc+D7rhGVGp4P+sT8/+zd2/bdePItq73zVrv/7yzbjY/Mn8xzBySZVvKqrkq
ojUKQJw6EMQhQI/Kygd5/KN68pVz/OyjaRtPiU9Pf9X5zQd+42+c6T7Hnw0fnt7/UX0jfWcXwQo/
/8WNjH737+zyoV1fjurbu+UPvcIn4xcpw9d3/siV2vk5qr9Ogfy65W1R5+qQAc0g03zV6fQaDD2+
CqYSzT5OP2Rz8BM/vpJ9dhPzWeePrr57meGzRWRsZn/xozDY8lG/w6c3MdOLnx7cfkyLNx/2CBZ+
48PLN7+TTy87JVljVEf5UybTj4mtTo7iX63r78Rv/PUjO2X49UW7/vEbvkUzccKnnz/1CI9t/cAn
f9rRyYey+lE9dY1bDOEj9mj6iccW5eMVPnnjro9TL1t6/L6HT56fxReNK+6Vxfb5/smLWzob/3ud
7Py795Ndf7v/7P77+vyb++ieP6Kx58/mP/c8KLfY/OPKw+f62PzrxzvC5p+bf7ZPbP69+bf9Ee39
Y+8fe//Y+8er74/2h/KovX+Jxt6/9v51z4O9f73+9w8Rat8oRnv/2PvH3j+u9bL3r71/2RfR3r/2
/rX3r71/7f3r779/sT+WR+79UzT+vfdPectn73/eV3mO3H/Wtd87/+j1ro/qWY+n9KB8zDK+cuLb
X6de9fz63ZX150ej8cLq/pI/tkiJly8Y2eRjysj5qi/5O1jn774mPh6afmo/8fmTV4dPzm72G89T
f6vn3/j5UMZTotlPvPnkLyz6fKN4lfjP+ql4/NH39r/wk4WvRPUrPX67V0x5WJX0q9PLX2MohmR/
RDn+Eyd8zA7P9gxAAyJXz6YXqg94giTA6tOXwOfjqJ6BVNLzNCmUtZ8+aucnG3iI3DPx8dOv3+nU
P+1eCtvGwDYib2LVR/6aUNNX/9VVPJRtdhOfPLx8JVc+fcDMz6/g851d/g/WSdpkU0d7UrHTn+rh
0238xmL8ynj5zi68Q+UkunSaS8mVqHY+88tfNvHo9A7j1U8lef6O6klP/NoTP1s+p9/wOaL/q/jZ
zPEv/j1Xi+vG/15TO/+utWZO7Pq71krrZPefX9v/d/+99pU9f+69ZM/fPX+th83/nCr3WWtdbP67
+f/mn/ea2Pxz809nBSqX/JXvD9ls/rX5V3vJ5p+bf27+ufn33j/uc3W//+73371/7v17vz/s94f9
/rDfH+RG++9/9515vz/s95e+Je33pztXbp/w26buEHjPb3bf9f1Nzgr3V/HZ6CdqDDP/zW/fjOjh
eeb7Ty98ZeNXeugYvx+lKrNJrmwMzl6Epw6fDLHLlxLlKz346YSdTv8l1drK+gCLLVInU9bnfNEx
BuXUe+IXX37C+yz+jEV+62f4fCJ8/UiPHO8ZM+102PYejupb//D5alxsGv9RPfXo9P7xwprxwOMf
qbNpTMrwyZAyTGU60ya9fNdX5W8TsD+lAlmn81fntU+TEgAAQABJREFUkzdImOpzIGzi0/eiUEEk
E2A+63NBxeNr4tMJv5f11NdORt/DDx587Yn/tK//4dLFQ9myiV+dPgo/m/jwjRWpo8bCV3rs1PNf
CRtpT4yJz9bDv5JNdnP8yeGwV3qyrz/a4fGTb+Pggy3etK9vyvDV/bj1vfcPI/90w1evX0f1JO2J
n860r28M4vM58fWb7JV940mmjMIvLumEo52MTfxX+OSv7Bf/eu/FRhlt/K/53xwrRs0z7WRiFn/n
39/Xv/i8it+uv11/5kBzQxnt/rP7j/yjPbY50j6rncycib/77+6/z/zT/Hg1f/b82fNnz597bez5
a6e4aPOPzT82/7hzrFfn5+Zf195px9j88/pGufn35t+bf185hLXg+zd6tX/u/WPvH3v/uNfG3j+u
vcLfvX/s/WPvH3v/6I71Kn9IZr/Y+8feP+Sae//a+9fev+yI11p47/7lbP3s/Yvue/svGZr7rx89
onn/C48eX9NfdaX+znXMx8Q/mqccLxkeYt/658P4Gr85oY3w2OtLeWb9Iss2G7qe7OHUZ/wwsjP+
6vT45kuJstf25DtfbJ/8/ByiN3v9wQ9f3fjDV0/WWA7WyQsTTr6nL77ZFGOyxs9nWPyg/BR/PPpz
LHQ82ZNnp85npM03f/ieac/HtMlv/T3EP8i1f5k4/VOqY/lqYPH5V+8xUIPz48Je0lF9owKqRPlp
4Nrq5Nmrw0UFLTsy+uFr60M/bqRPNmm28zP7G9Z8gWFM/HxOWfj9V0rJ0Oxf/mc/Zn/Z5Kd6fpTG
l4/Gr91Y8MKPP7Hw6NSno/o2Uck86Gfj5wNlE77+we/9hZ18luz5Kf5kjTl78vqknPxk7Dywn/gH
643ohx/ziQ8DL5wZ7/Dz8R5+46nfEyvbyTNmeGSLv/Hf+bfrb/efay/c/ffv519nyJ4/V2zEw9P5
v+fvvX8eYXkj86W5ExNv84/Nvzb/3Pzb3rD3j71/7P3jPj83/9z8s+84ys5Ja8SDt/nn5t97/9j7
194/rzmw9+87fziOhzdyXuz9+zo3C4qY7PeHO6/Y+9fev6yJ/f5/5dZ7/9r7196/rtNy75/3OWmP
9Oz9e78//L/2/cWZ9yvnv93ho+8P1glSdv+YPPl3P/K0niZ+/TjY51pLj/08m/mli1c+f1RPPCX9
MOmgeO1rePUvnPDphkGPj3jaaOKz5zcMJRs+so3X+A/Rmzx7PusTf/goWzJU3+i7/9Z/ekhZ/aPx
z/jX1ydGfP7Uexp/+HxF4dOtTqbe+MmKWePW1/wo4+cjGdvi2vtPdohOYhM+hvZvE0d/SjrIzxwU
XoOus9rhxTNIA2jQ8ZVeQP/53OzCyD97pJ2MvymftvjaHpgwwj+qP/TPDzCf+I2BH3bwp7+wenn8
p8t29jf7g/32ErNnM/Hr9xOf/ye+Nv3Gp47EZ/YXPnuk7kmXD/gt4PD5qD7t8ZLhz/E3pvAP8Vv/
ioe+hq8MX/z59qAwyIunuocsoj/lfGZLZ8rJwufnFT4+4iO8/OOHnz3/dIs3nYlPL/v38L2bxk8f
/S7+c/yLv/Hf+Xetz11/r/e/3X92/93z58oV9vzd/GPzr80/N//+vfvP3j/2/rf33/s7xt6/9/69
9++9f/s+uN8f9vuDvcA8cC5U7veX/f6y31/2+4t/S9rvT0cQDtr7996/rYV5fzIvtJsbzs/nv7/i
7f1z75/mBZrzx9zY/OvOOzf/vObH5t+bf393/m0/+qr9Z/5Y8r3zz76HXu1/9kD85/rHy84ZirKf
+2k/6kxOt9938dn5TI7gNX4yOqjS+vuf4wkjH3Tgs0mG1/gbx5Tj9Vu2/IevpJudEum799/Y2YVx
VN/w8ek0/vyGR/dpiwcTRvizX/xNfO2nD3Z0Jj69iU8er3ikn562uicc5Yy/Nmr8+Zz4/GfvvTS+
eMn5edrDfhL8YvqUfboN6KuoySpgyOBfBRXmDEADN6CCXb8K+tRPVgALTsEOvwDhI3Z0+fIIHlkY
ftDJ1hNGvhoLn8ng12d61Y/qSdpTB2b4/MGnE2/i00X1ZeInY4dfHye+PoZPBz3xZ/zIPoPPV/hz
bO+NvzGST3z1ZPzU36P6Fo/qZPTD0+av/qt7ioU6He3eMV74+UsWfuNvPhwmZ1+U4fP5GXw2T3x2
+W78dMJXR+lUV36ET/85fjaL/+P73/jfc2vn3z03dv3d+6V9Y/efKx7FQrn7733ePs+/PX/2/N38
48f8056x+dd9xpaTd7Zs/nHHZvOPzT+cqXv/s2tu/tkeWSyUm39u/umcsEds/v3j97+9f+z9Y+8f
e/+wN5oHHrT3r/uOsfev69wst9r75z039v6598+9f+79e78/XHlDZ4SWOtr7996/9/693x/+Hd9f
5O6/s//MHPdV/u/Hm8Yz8z96z/3vFT6d1oOSDl/46mji51OJyML3Oyz5Bx6qP/VFSY6fDl5tJb/h
PzHY1Ce6KHzl5OV3fmPDo6efSgTjV/DpNwb24eszvyjf/IbPDn62dNQnvrqHL7rqiG59zscrWXjT
HgaasWm89U2bjZL/7NWRNnwl3Pqt1Lf81ad+v5juofI2FvXfogbyW8Z/GemsTilRwVSv8wUl3dpz
8HjPwZGz4bPA5X/aFuz8KvNHP93K+lFQD5UTJ/xsydVRuJV8VWenna7SQ+5JtzL8flR5qLyNc9pO
fDr5V6/vfBn/1J0+6MLVx2zq2yt8/lD9rn1x77988fnEZ5cNOdLOnzL8fNTf/LGpv+niIfaoWJK/
ev90Jr56cWCTf+XEV0fpa8MMtzJfjV8bkU8f2nTyF56y8R/V0yaZdvo/wydv/OwWf+O/889KuNbQ
rr/df3b/vc+Tzpg9f/b83fzjWhfOCmdma0N7868rX9788+P8f/PvvX/s/evaK+ybe//c++feP62E
K4fY++feP/f+eefT5dh7/9z7594/r3XhrNj75xWLmTv4NxVtZ6gHVfbvL+Sbf2/+vf/+di6PvX8d
YZh7yObfm39v/r35d9/z9/5x55qbf//n599O9d/Nf+XFPzv/6CBnZmuDTeslPh6qbE8l74eM5PlQ
n/jl6Eo2SvNPGWULI32y+qNOB8HPVqmNkmeTz/xlgy9n1G5M0zb9Q3z6TKakH37j18bPl5KupxhO
m/zn71D7W9/pZ5vvyvoevnYyvInPD5zKfLLBj+prtuT5yrcSTdvGgk/OBuGjfEx8etNHfcqWPH0+
foty9lvGfxnx4dEhT6TzBqiT+GFVL5jZNhjtbNjP9tQ9RG9+4+MhGH68OfH5RGTqycINky99p9fL
zzad2ofKD/3TjsLnC/HrQUq+ydRhhamdTfi1s4efnXr94Scd+OyTVR6sk5cMP/x49eU9fBjhKPNx
VN+o8YebDSy8j+KfDR1Um4/s8RsvuboHKds8G0v9zYZvMvzGrdTO33v4T1/a7+Hn62nT+PE/g1+/
Kw+zE5P94m/8d/5dc6B10frf9XfvE8XGfrH7z7XP7/6758+ev9da+Cj/Ke+onHvJ5h+bf2z+sfmH
OdC+sPnXnWO92jM3/9r8y91k88/NPzf/3PzTXrD59/vfXztDK8sz7J97/9j7h3nhQcrNPzf/LMd+
tWck2/xr86/Nvzb/2vxr88/Nvzf/lg/0b8ZyBFS7e4YSlVfE3/zzjsvm39+bf5trn51/7Wtzzpb/
4r2X/8z/uuic23O+q3v4SEe9959uZTrwp6365NELn6wxVJJXP6ontja+x2+72Id7VN908JJN3Lne
+aLDV7nBUX3DfOLT9yBl+NM2mbKxxpv9qM9z/PDQLNXpovqjDv+j+LPhW9/U6c9Snb8Zj4lLjuKl
X1sJPwztaaMeZvXipK3Ohs4fUaB/4oSPBlbHtNWRTs46Xu1sG2wygX3+MJHO/EEijHTCn211lC9Y
BTzZE19b38LiFw+Fl1zbS1SmF/7BOv2wzZe6vrCnp51vOsWELJuj+qaHB48evNpH9Y0aF3kYU69Y
8AF7+pq8bBoX3XjqT/z0+EDhq7OrL6/iT6e4qPOhXWzxwueHnM/8worItCd+Y6YDny++UWOho47C
hzV957O+TPz0Jr46euLjJ/sV/PAW/+/vf+N/TrVzXomFpzm28+/af0So/afY7Pq75spn9r/df+5z
TCyKR+vN/DKvajfHdv3t+pNLoN1/rjXS2tj9d/df++WePz+/f3TebP6/+f/mH5t/tR+Ub8ovNv/c
/Lv5UI6194+9f+z9w+6496+9f+7907nQ2bD3771/7/17vz/s95f9/uIsQM6G7gz2hqj75n5/2u9P
+/1pvz+1H/S9wT5h76hdjtleQr73j6+7fxTX4i2+P4v/vw4d+3ffA2b+zx7N/d87jnrf2q3/iacf
s9154p2HB59Oep0lxhLhaafT+GDiJa+tTIdMHa/69KUv+J6ILn5EVp+nb3X4iM/aSg9iq64P6sp8
qTf+ZOnXLzowtBv/UT39wCyOMGqHRy+/eNmnRx5+svTpROHD0p8oP/UZBp2Jn9/Goawv/Kgjeij8
+Hhk2bCffSD/JQLwp8RHfnTMoAtGHSev0+rPgB6sc2DJ8qP0Y0T6ZJ454AKKj8gmfrrZ0VevX/k/
WCc+Oaz4lXjZHtWT+Am3Ep7+smuCpEfGh4cc4fkvnSrph5+f+PSzPaon8YuHJgY/9Zs9oqeeD3I2
SvhoyqZ9/sjZRGFqT376lelN/N5/4+ODPl2y+PUDLz9H9Y3CVbKZduFTJuerMaij/LNLBiu+kp+J
TzcKtzJ8+hOfb74mBh/hvMLP/ivwn+PXP7T49w+p57vpvVf+6fvf+O/8N5fmHNv1t/vP7r+7//Y/
5Jl7Q+dO5Z4/d/73O/nXnr97/u75u/nH3GM3/9r8a/Ovzb82/7q/DcqT5JrlnZWbf27+aW54Nv8+
gvAXFY/K977/km/+ufnn5p/XHuI8QZt/bf61+dfmX/vvnz+ejeXdlZt/b/4thyzPPA/P0Y6/+ef9
e41+PyFWm3/v/eM/8f5lX/+q/Mf4frb+20Pey7+tFbLOnWI2zx+8qHXV/pMd/X63lG6+tMn1Nf3O
/2Tk7krZaKPw1NmgSrr56Uel4bBTV6L4SvFnO2X4E58/FD6ccCv58Bh3P1CtTwfrbxjs0lfCQ2xr
V+oPCl+dfW3l9DfHT3fqqTd+/hv/vJuSt382HnbhHNWTpl8M/nrvlfjpTQx8hKfvU1abvz8iwF9B
dbKgKyfBmYOcsmzweqEFV5td/ukIvpcSFdQw6at7slN6enFH9fSrfOLD9uBP/KN5Eh9+FDpx6KOJ
qR0+efj6zhZVVs+ezsSvP/T16YlfPLLnb9bZZ5uutode9WJJRz2Zvkf45GxQbboofvjK8Oe7m3rV
w6cfPp/Fkd70QZYNHE++qivZF3++J5FH6YbPNwpffeLTf4WP79EX5Rz/R/h8wfpqfD6L3eIfwRjk
/UQb/51/u/52/9n99zrXvur82/Nnz9/NP368f5RzbP5RJK49Z8/fPX/3/N3zV+6x+ce1N9oTOyd+
5/vD5l+bf23+tfmXvWO//117an/bV7X3+99+/9v7x94/9v6x94+9f+z9a++fV5a098+9f5cn7/eH
+/dHYmKPkC+oe/rNx6zv95f9/vLq+0tz5pg2J33V/ZOfn80/clSpbm2/uv80p9PpGwLb+qyer2ed
T5T/q3XpT93k9PnVRvC1kR9v+v1Zdtlop/Oss0dTVzs9JSKna3zqHrL6o96PR4/qWx/nfaG+6kt1
pYdtseDr+WQTvvYTX5+e4w+fLspv9TDZ0kWvdOHRbbzaSN/TDx8fL59hpps+vcaff7xo6qnTbTzh
p/vLJWd/Sg0oX7X5FSgBiFfgatNRx29wSgMzyHjPwOB75ovmp4cM8THxC1z46U98dvDyTSd89Sh8
bfVXvsLP/xxTNmQelH8yughPm04Y2kgf0ZSHRXfi00tWSUe9thI9xz/91x+8YsQm23zlm69s9KdY
xk8vDCVZ4z+qf2vTCZ8u4qeHDOlL7792uJXxlfUz/PxoNz564etjOmxRPtQnPj3tcCvTI8/2V/Dp
osW/49A72fjf83/n366/3X92/+3cqbRrmhd7/uz5u/nHtQ42/7ry7/Io8bBHRPie8nn8zT9F4d5D
1Df/3Pyz+6f1svnX5l/lXZXtE+bHnr97/poHm39s/jG/LW7+tfnn5t9OyovskZ69f1xnhajs/UsU
7hxKfe9fe//a+9e9Jvb+uffP7p2V7ZN7/7zXyd6/9v61968rx7Y/7P3z33f/7HvQr97/2H2U/5YX
vdr/yeb8137it0cqOzv4cg/BQ2z8qLPvmlNGZ95Zais9bPn1THxtciWd6kf1jfAQ/+HjaTduZVS/
KsOb+GToFX6+yVB2bCa+/oY7+8gmH0o6xZ+v2Z+j+Tbm7r/hkqHa8Nk2ruJFJ7w5LvXwwqcbvjqi
45n4+ckHPfXw6Yf/1KldmW44fP0WcfinxIdnvrCnXx2NZufpNWj2fjBpQhRccvrKntr02c720Tx5
dFElHaTNjn+k/cT3QqY8nHT5yib82nTSO6pnXbs+qjfO5LBg0vFfZjX+friaX2VP+Pk8RKdMG6V3
ta529frS+NLVJ/Zw9aUfrpI3fnX2KD+v2ng9r/qKB19Jr/HDafz1jxxfGX4+4+endtiHyYnBjk5E
b+I3RvxX8+/p94nHb/2sro3S/Rm+mP8ufhjs0XP82ot/hub8I07P97/x3/m36+/39r/df3b/3/Pv
2j8dMHv+XjEQi/aGzT9E46LNPzb/2vzz3hvcvzb/3vx78+/Nv3/n+0s5hvmDNv/a/MscQM2NzT+v
ePi7+efmn5t/3nvD5p+bf+/9Y+8fe//Y+8feP/7++wvrojuVspw6/mzLL9NVT7b5t2hctPn35t+b
f997w+bfH+ffctP21F/df+ce/d7+w+cz//VO2rvzQQ/Fr1+zTZ5eurNUZ2f+T794ns5f+MnDOVin
78nH62zBr16cak8Zf42PPV2/uaOjX//6q9RGE187n/hottUbv3qy6kp+5/ie+Poy+1c/pt9D5fSj
5JOs/uA9dcMnCz87WI1f/Bt/8onP7+Rrk1ce1bP+Cp8MsW989NT1HV/81ac8/IP961RHft3ytuBj
dq5O0nj6146n4wVr2htcg26gB+u0o4fia6vz5eUITmWy8A7RqVubjUd/J752+MmyOUQnxQ+DHz/O
zJ8yn9kqPXwr6Xj0d5bk/OOpo3xUn/jpht/46ZKhsCe+/hWvn+Hng00+8Bq/snHUH7zw6daHxgTT
k379bvzPic4Hn4iNejEKnw2ZEo8vuFF90E4n/OzYeCY+fRQ+efjZ1//8hH8a/vVn4ut7/S0OYf4K
Pl32i3/Hs3crNpM2/vd62Pl3z5ddf/e+ac3s/vP5/X/33z1/9vzd/GPzr/s83fzrvn9s/nlHYPPv
zb/NAbT3j3u/3PvH3j/6brT3r71/7v177999C+6bszOzuvnR9+f9/rDfH/b7w35/2O8Pdz693x/2
+8P+++uVR8sbov3+st9f9vvLtRr2+9N9Xu73p//c70/eTfS797/s5v4vR+K7++Or70/0s9WH+tL9
szsqvvzTDyXzk++D9eajvQePrSd9ZT/upEcWvj7Mpz7DoKPMvjL8+l95qJ7E/+wvn2HyWV/4ybZ6
/Ur/Z/jZH67eiK0n3PqtPfHZZg8HTfzsy/9rs6GHstfOlq/w63/jyYdy4ucHn42nevjGwc/EP5on
ha/BNh1lfuioz74dzd8jzv6UDEgHG6x6Ha5eUJ+lgaD4V+v6m23+8wmnIApqtuGzTleJ0imISjJ+
nkQXkXtgVKcffmW+6DQe9XzHf5aHyptOmHjq9ZeNH64qPXxWNt4nzqFyUn3RqI+zjD/xqp8Ojj8w
4KPGq2wyF39y/cq/dviT37iSVcZnh2qHz4d6/o25BRBv4qgXK/X8KZ9+DtZJ9CZpN1Z1Dyy8Jz5e
8qlb/T38xn+Yn/bKiO3EV1/8jf/Ov11/u//8uP/v/rvnz56/d370jMXmH9f6eOZ/m3+VbW7+ac1M
2vx77x97/7q/f+z9c+/f+/1hvz/s94f9/rDfH/b7w/z+vt9f9vvL85uDXAHPs98f7jiURxev7pza
k7Tp9u+P2Sl3/939d/ff6z7WnaT1pHzWd//Z/cec2O+/15nS2ayMxGeS9p4/e/5u/nHtnf9p+Vc/
wPzM+Wdd/2z/M75J9OUYz/ePN/PP9tT8Kz2zX+koy1vSP1infnbaSH/CV/fkh28ybQ/b/KYb/rQL
P5vKsCsPd2/4xjr9h9OPY9OdOPT5xlNHyet3OmTq5Gjq4z3x8Ywt/HDiK/OtzF888sbNz5QfzR/a
dL1/paeY6tPE5yO5uidd9fCeJZ2I3qRne8o+XQf4p5SPOqTT8ZoM2r3Y8PDiN9CCUmD57BFoRBaR
ZYvPn+ArEcza4SdTsm2jqM0Pvy3so/rWrq6kP/HV8cJT5wuGZ8biaJ48OvURj234/bCUX5TfcC7u
5Ue9vqT3xC8++D2NPxttfjzFWx0923yESa6Oly/1xlad/0j9yQ9fX5/xzy9ZNPEbX36n7+pKpOzp
/eOz5Wfiw/A0/id+Pp/4h8kP77z5h49+Fd/40eJfcfC3Oae+8b/mVPNfTOaes/Pvio+4oF1/Vww+
u//t/nPNm91/rzj4u/vvvafs+XPFYs+fe07s+fvjPadc2d6x5+8Vgz1/7zvsR/evzT+smr3/bf51
zQN/N/+6z9rNv65YbP51z4nNvzb/aj3s9697XTg7Nv++YrD59+bf9gi094/rfiGX6t/f5JievX8d
QTho7x9XHPzd+8d9pu7944pF+Zb5sfn35t/Nh82/773C2tj8+4rB5t+/l3+Xl/VvKp85f8y76Dn/
+HuV//L7zP+0UaV6+PnFa83jec/1lV16/zrqcPGUbPiSb+KFT4bIUTJ+quPnF2/OrWlHL6pf9MOn
O/Fnf8joosasnf/6SZ5vfapO14OHJj/8iffR+OsHP/QQH8VEn+qPevyj+han4o838cv/w3/m/89x
0OM/fP6MrXb4+IiuZ/LpTjwYjeuo/joB+FOqowW7ss7yr44vSDpcMPDIkLonf8p42cdT8jUDSBdV
kveCs8cjD1/Zi5xY9MM6qm/9j0fO7omfnA35xMcLH1a64ZPj8x0+HmKnr/iIbf7V45NF0yY5G37C
afxsGj87Pj0R+/qMF37jn/L81D+y8OtTvsLPRkl34sdr/NnyFT59fFRJ3uKpf6/w8dh4wphjx88+
HGX46vGP6puvj/DhsFF+Fj8b/Vn8jf/Ov2v97/rb/Wf33/vc6yzb8+f987+zdM/fzT82/7pzVuuh
/PuonlT+25rZ/HPz771/7P1j7x97//D9Ze9fe//a+9fev+SFaO+fVwz2/r337/f+/aG71H5/2O8P
+/3hPjP2+8N+f9nvT9d94sqmrrUhJp0Z+/1tv7/t97f9/rbf3/67v785E371+1vnSGfJ8/7R79Xs
L1E5WTbd8+f8oxtfmV/+EFz8iY+f72xqk+mDdrzuUtpkjf+ovumqZ1P/8MKtrF/5VupDGPxr92gn
o4v49+PQKF1lfsPJH3y8fKSXDRkdlE06+aJLRs/7R+nWBzb6lw1dsnjkbPKdXfhk+Uwnmyf+1D3M
3mIWFt7E52f6SsZvNH1OfvJPlxx9BelkvnSoAeCr41U/qmeglQWUXECUHr56OX4o6UUmnzjVn/j5
CDP/+oL4RCao/1IqPv8o2/r9fw/eEx8uPf7zjRc/H/WZr35celTPOl1+8elXHtXTT33VP7HI1xwr
Hwhv8tlqs2kc2R+sT+Prl/H3ntjOccL4aPzJX42fr8/E3/if8WcLN//KYlHctPG1PTMW/ddx4fde
ig+/bNmohx9WOOnVj8ln+xE+TPQRvpgv/sZ/59+1/nf9XfvB3GfUd//58ewTj91/9/zZ8/f9/Gfz
j2OTOGjzr/fz380/N//e+8feP/b+sfcP31/2/rX3L+fB3j9ljvdc2Pv33r/tjXNd7PeH/f6w3x/2
+4N9wV7gmf/+tN9fjoActN9f9vvLe//+ut+f9vvTfn/a70/7/Wm/P+33p59/f7syquvMeO/+2Zn6
Xv7Jrm886Vp/8rTn978w+v4x8dl2/1Gf+a86fHb8lhdX4qPsJv7ETA9P3yJtD9IHdb6eufjB+v/+
53j0JTmf2Zpz2uTq+TqqJ6VHhyzCT5ZN/pM9x0/+K+OHxVf+5/j1hz8yfHW6+VeHjxr/lDcednP8
fCVjGz4eWTHQTlb/0sFH+oJgsA2fnie7o/pnVKf+zMttzV8+G0y82rTxDMRAlYg8215GLwi/IPby
8sG2wLDD94SXbXaH6PT1Ch8Gql8FP5/1p77QDTu7ZI1n4ifDS/+v6tlfctQC0OYnu9r5pFv81PU7
3fCf7WlLHzUGMg/8cCtf+TnU/oafj/Dfa8NsnBOfzxn/3lv4tflF2eYvPnz0xI9HPxz1+ksen238
6TefEzt/U48vpO/1W5tO+vkIhxx+7crpd/HvGBa/4jnjJJZo47/zb9fftWash91/dv9tv2z/7Jwx
P/b82fO3+VA5z9XNP+49tPXTeppxspbQ5h+bf2z+sflHe4Oy/aL9o33WfrHn756/zYfK5s5sN3cq
zZupZy6hPX/2/Nnz514bu//u+bPn7/2dWyw6V5wXm3/c8Sgu81xVbw/p7G0+TT2xRHv+7vm75++e
v+0N7R322faP9hn7xe6/u/82HyqbO7Pd3Knc+9+9x4hTtOfvnr97/t5rY8+f//fuv/a7X9n/0+/s
6FyxZ9ovayuROeOZ6yhbZf46p+hF046udvrZhsPGOMLJDxtPPzY9qqeP7JX6HWUXnx3Snvhwe5KH
rz37FT5+PsjrA3z82kqUXTI8MvrphqMdPnnjYItmO9vK3n9tJTtPdkf1rY/hp0+G+NEf8uI9/dQX
dj1H9dRPVlyya3z08NjByV4ZhT95yX6prDO/ZPQJZYEpQHWygTJv8Orp9mPHAjH1vRxyJX1ED69g
zUDhT/x8KdHULZjh11846fOVXvj0Jv7RPP0qe3GV4U/bcPgwLr9Ur19TX73xNya8V/gH+41P/gqf
LT8oH9r6gfBQ45/4+sEnyra+xFOGywc9OvOBFw7dOX6yqXs0z/6mV7+efc6fki55+Ef1bTzq4adb
fLXJUDjqjVuJj17hs/eEW0m/Mal/Bn/qL/71Tjf+O/92/dlBdv/Z/ffHM7uzZ8+fPX/LOyrtFzOf
2PzjytOslfLK8n+xQTNem3/dcdrz95ofe/7s+TPvzHv+3ntq507lcz/d8+eO1Z4/9/cta2jP3+t8
2fzjysFEY/Ovzb/aJzf/vPaHzT83/9z881oLM/dWL++spDXP080/N/9sznSu7Pefa05s/n3tKXO/
2Pxz88/2ic0/r/Wx+efmn5t/XmuhXKKyvLOS1jxPviP/nD7DrXyFn3772sx/jGP2t/PPjx35ROzZ
osb99Bn+9KeeXj7yT6Ye6UM8vsjwkHp9fvqkyzddZTT9ZWMMxqWk6yFDU5/Pxl+fws8m+2JaP+jX
b371/RV+fumgJz47PqctvdqVjSV7OhN/9re+Gkv9Tz97uOnBR8VfHe583sOvD+GzLUZs6j/+l1CA
X+JsOGmAWDAMCBWwcCvJ1Z92BdbAkWDQS79AscvXUX3DqZ4+Hb6UPXTI+faERY7Pd4TXC6kky1Y9
v/lJL376swyH7tNu4odTf+l66JChcPBf1emkW/ke/pzE7PhjE74S4eVrYiaberNfdFH+8p2P3v+l
9ffxsOOPXTZ01cOsnjz89JRw+BDHaRc+G5QPOvmd+HRqTz+z/hF+4+eH/8W/3snG34zY+bfr7953
dv+59ur2W/FAteeeO+u7/15zSKyKWeffnj97/s+1svnH5h9y4s2/7Jabf23+tflXeWdl+Va5RO15
jsz65l933lXMNv+6vyHNubL5x+Yfm39s/rX55+afm3/v/UO+VN5ZWb5ZLlV75hGzvvnn5p/NlcrN
vzf/9u17v3/v9+95Vuz9c++fe//c++f/tvtnuXF3prmnlf9W0nnmP8me+9/0B4OcrnNTWx2Fnx/4
1dNJT5sfNvyoR+p4dLIn4y98dTpRevUtveTZ0ov6r5Q+8ecPX/PLpv5OjHylN2Xq0cTXN/r5e+Lj
/2z84fGFasN5VY9XyWbis0P8NX66CM+Tfhj6GP5RPWn6mfWJmw25ejiXhy/4G8AXuPqbC4NuYFOI
jxqU+nyJ2pEBp4+n/Txw4htLQfIC/BdRJ34y9ogs3/mcfTqVhs607yWFmV3j0O7X3XRQ9vgofPz6
0QvOhl79jZeudk++Jn7jT4cvxB9eNur5xHvqk+FF6WpXLx7a6jP+05ZN4wk/Hjs8lA3exK99Kg29
fLELv1+k54sNWfj6WP8rw6eLnni1lSjf7NRf4U+9j/DJvhLfOOunPqDFf//9b/x3/u36u/aJ/loT
7Y14tZXoo/1v95/df5sn12zZ80c83ss/yHb/aaZcpZjs/nPHpHgo0e6/Vxxe5d97/uz50zq5Zsme
P+Kx5881G573f7HZ87eVcpVisufvHZPioUR7/l5x2PP3mgvz+9/mH5t/tE9cq2TzD/HY/OOaDZt/
3LmFHMPc2Pzrmhv9FZPNv4rGNUeaK7ibf12x2fxr8y9rYfPPa49wtm7+fcXi2iGuv5t/bf65+fe1
Fv4T8u/yl3Kar85/X/l7vv9yzGf+rZ2sPYS/+hpPWf6hzkZs/f5KGeWvfbn4h8FH/cVDT7za6V1a
9w8us+EbDr18KbUnfuelMZHVX7o9vaPs09XOnt3U64ehT3w27BGdYjn9kNFDYVSvraxOFj4/jeOj
+LMJX70xsZ2kXX/xw1SixkxPvXFk9/THJn/ZxCv22l9GdfDLHA5HJlKBb1AFqIEX2AKmrc4WFQS8
ninrJc5J2w8bkxkjvwVfmd/wZxsOW4Rfn7TJ8kXmR6TGGD4eW3p4+a3PB+utH+rTrn7ih88PfpRf
bfWJj6cv/bCVj4nf+Buzdn3kC9Wfz+B/Zvz6A6+YNZ7w8NX5QtqoeOGnQ8+TrLHO+Ks3bnoT/2ie
9sY98dQ9+GGFET9sZX0kgxUG2Sv84nyIP8Qnn/hhsq/+u/j1mf1741/8jf/Ov3uPac3t+tv9p7mw
++/vnX97/jhd9/zf/GPzr80/X98/7A+bf23+ZY90/yzn2PzzjsXmX5t/lUv+yveXbDb/2Pxj84/N
P+wdyL6gPtt7/m7+sfnXnXNt/nnHYvPPzT/LJTf//Py/fxazzb83/978+8d8c/PPH+Ox+ffm3/8t
+Xd74av7p/sp/u/m385cv0di/9H5S+c9/OytyR7+EBu/f+qHkuT0vTsypTYKv/Eo6ddHbdRY0w8/
fTbhh5UOmb70myz42vTzSwflD1+dj/qj3fzLN960OZpvY00n/Mbf2OjWZz7U2aCJX7t+aOc7bOWM
zTP+jT+97Nnw6wkzHLr5T88YUPbZZk/Gplhnh8eWXSW8+pw9PYQf9sn46j/Av4sa9PRvgAiuekGg
G++onqRt8MmqFyRKAkmOKtXp8h0eHso2334MalLQZc8OkadDNuv1g171xoI3dcObfDhhhW+isKu/
6unMvjUmck8T6Ylf+1fww+MX1W78fOHl8xV+snT5ieiLlzLfLZAwkrNJnwzlMwy85/tPNt8LP1H+
890GAaM+pZsO/qzng174z75NfHr1Idv8Tfx49FHtX8G/LH+cl/GUi3/Ftdhu/O/9r5g0X2rv/Ptx
LbaGxOm5/ovdc/1PvrgW251/O//KP5oTzZXau/7u9SIWu/6ueJgnu//cOam5Ee3+e8elmChbO+0t
e/7s+bPnz3X/b020Xmrv+bvn75wL7aHmyZ6/9zmz5287x35/2fzrXhf3rNj8q72z/XTzz80/N//c
/HP++0/7ZXvE5t+bf8+50Blinmz+fecZm3+3c2z+vfn3vS7uWbH5d3tn++nm35t/b/7978u/5b1f
Gf/5+ydrXHvSq/X/r0Phvfy7/Kr9Qo6Bp42qz98/4c/zZ/Yhffbq7T/l+HiT6i9ePvPB76zP8Wan
RPUh/xO/8dNLnn5+0m/8dJF3F24lPj90fxWffthH9W3M1WHkE2+OH1629bt2ZXy26sXf+0fT9xxz
uI1fGzVO/smiyY+nrB/s1eGmO7EP9tdQHf0ab3/3wr+nwIY3eQZagGYA2Aga3YJwVM92PC+IDV3B
es++TaSXEL529nwV5OR80skeH+HpExs08el4+FVmTzfZlB/s076xsOvFZzOx8onnB7L0swkz/7DV
6TYW7eRKpP+wGv8rfDyUfTZ4r8aPF774NZZpP/H5bywzvnSK/1F9wy8m00YdsYGvLP78hzflbBqL
Ujv8bCb+IT79TPzG+gofVvH/CB/Wd+HX/8X39n6cH73/jf/Ov11/37P/7f5znb+7/+7+u+fPnr/2
AWeNcvOPKxabf23+tfnX5l/fcf/e/HPzz77lbP61+dfmX5t/bv6994+9f+39c+/fe/92Fuz3h/3+
sN8f9vvDfn/4+t8/7PeX/f6y31+u+9b8/qT+Xfmn3xy533g+Wn/OvPfyn/n7Le8P6S+f8/dP6nTJ
Ij7poYk/7cm1+31U5+/sc/b8o2mvT9mTT/vGzwZ+Y6GP6KL37KdNP4Kl65n9e9rziT7CZ59cPzzP
/hezQ/QWP1gR+36zx75Ykk//6vVfPZo2fJX/ktMLf9bJGn/42vV/9i//7Gedj8ljM+3Iv4wAfRcJ
WC+xOqwGp+6lzsFpowJGV6CVXmYv6qievGzp94KayOEow1f36BfCnzTxyeg20eFXZ1Pf6Tzx60Mv
lm2xSJ8P/Ai/J3/8hNkY6jNdlD++2LGZ+OpsyJB2fWEjhvkiQ3jqnvDpVq+fB+sk+rN/5E+cYh6f
YWNRR2RojgMmf/lPh1408cnrH0ztbOmT1Rd8tigb9fDxJn7jpzOJfhhPfD7ELsz38PkjQ6/w+TD/
X43/Z/j1je/Fv9/FfP/FRrnxv+aZudL83/m362/3n91/9/xxQvxIe/5+nP9s/nHnHJt/3bHY/Ou+
f9hRNv+/9tXNvzf/7h69949rX9j7196/9v6196+9f/1499La+9fev7pjljd0z1ImM1fiq+/9Y+8f
/ftPc0O594+9f7SP7P1j7x/OjL1/7f1r7197/9r7lwzpR9r7133HKG/onvHR/YPuZ/NPd5Vf+f2R
N+Q3Rx/h8+ndRXRR+a96+c/E12e69R0OubL1Qd5vnpIdrJPiz/FPn098Rny0/4ZbGf6MD/z6Dkc9
os+WT1j5OaonkbP3wFSGr05fWezow5h2R/Nt/Mmyqy+N/xU+2Sv8bCZ+8aofsMm10Yw/fvj4sMMn
Q/lJV1n+k44yO/hh6B8iLx7J4he3xoKfL/Uvozr7ZQ5fOGrADQpmwZllL6lBa9e/qSdoAoY369kf
7PMF8kMn/IIdX0Cnf3Ky+dKT46cfDl746vGP6g8ThKy+VlfyV0nOHjYeyh9Z/Zh6sz794JvAxYgM
r/Gppz/L8J7jp+9ByvSq12f8dMNnM/HJa8/x06tdn8IhY5d8jkPdwqsvR/Wsw+cH6R+iW//yV0me
/4lPjtJTPvGLs/4iOhO/8f4Mv/F+B75+Lf7H73/jf62ZnX/XXmA+fNX63/W3+8/uv7v/2k965Bvq
SrTnz54/zt49f/f8tSds/rH51+afTsb7nBSP37l/87H51517lHdUis/mH5t/bP6x+dfmn5t/bv65
+ffeP/b+sfcPmfHeP7onKPf+deWIxeIz//5rDu39c++f5kzPfv+/91XrY78/7PeH/7bvD+b9d/37
n30GiSl67/yx7tB762/uU5157WF89vuq/JD5/dPE5yP8o/rDv3s2fvLeP1/5o4/qx/xtVTb169K8
8dn0PYMuql/hKj3TV236Ufqv8OnM/s4f4n4Gnz18faP/HD8+njL86uUf2etnOkf1bbzJ49Hjo3E1
/olPjl7p4bEJv/7Rx4/4Q8WHXf5mmfxU/qo/AL6LPhpIL/2J3YDx6WjPF4Nfn8m9SFQQZ70XiJff
yid+PulGdDzhp1OZjH6LHGZ1/HRnSYdtNGWTN/HTp6sejvHHyw+5ejiVB+sHvjbKrvLi/n3iJn/i
059jnvjZKOuHiZyP5HxUp4daOMUfj870NcdPHoY6SneWE//Suv7SQeE3jolPni/y5/yb+OpTt/Z7
+Hyj78CvH8rFv+ffGfDHn43/FZCvnP87/651vetv95/df3f/Lf95HD1nc8+fPX9EYM/fK3/+ivx7
84/NP/b+da2nzT82/9j84/7OcmUb99/Nv65YbP6x+Ye8afOvax60Q5RLWh+f/f6bjXLP3z1/9/zd
87c8o32lMv6ev3v+7vm7+cfmX5t/2QeicsnNPzf/3vvHtSqsBSR3mvXWyiz/k+5f5Xpn5//6E+9P
8z/jnOPmV/u98YdbGX6/sfqrez/4mPOPnaf4T3y2ZOHXr/hKlI/pp/MPL8oX/HSV8emF/yz500d8
+miW049+Nv506LPlww9ZET0U1qzHq5z49PJbSQ8VR/oRnWJX38jCT46Xv3iV4U85/QjfA59f+k//
yef7P9Te7PLBTn2Wxsc3/qRne8p+u17Hf9vBB4b+y5oFwI8VDaCXp92L04cG3CDJ2fLxfCEF6BCd
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
+x9/KBv+UPgwIrLa4cP+cgrkyx0fDvlukAVTKQD41Y/qD4MlLyhTpp6fZ7+nvyYA/Ymf/cQnzza5
QHuZBbwXkFz5Ch8u32yVk+pTOmSNBT4+woPbjznDDi8/9J6Uv3SmfPpvzHjFYso/wg+3fvEVTXx+
6SSvT+mQh89++p34ZGGlx2fxwEN4fEy/Ez/cdKZetuHAbzEf1R+w8hN+48vH9Ms2OTv0ET45v9+F
P/s4+xl/8Tf+O/92/e3+8z37f/usvXf33/v8Ly57/uz5s+fPnj97/uz58x33r86ZPX83/9j8a/Ov
vj+1L2z+ufnn5p+bf27+ufnn5p/XP5p2JirRn/z7R+fs5t+bf2/+vfn35t/XPtC+aH/d/HPzz80/
N//c/PP//fyz3wJ91/7PrweVt4f5Kv+i+9758/RDD/GDyPm2d3WuH9WTn6ySTvjq8ZXh8+FHlfGO
6pse2yc+3sTnF9W/xp1OfsPPHxu8Jz59RK+6dv5/hp+dku7Ury/8kfdjUj+aRdmqNw48FH4+tPW9
8dfXfGQ/9dXxI7bP/Sc/9LKlHz9e+LNf9LKb+NXJ65/6l1KB+lKnfzlrUJoC0IBgVlcKqBLR83hJ
BS3b9AQvnQJTYE2ObCsP1ps+vYlPJxt6iI4X/MTHr99H9cSZ+E2KcJWTslV65rjo5gt/4h/NN9zs
0iFD9bnFUXuOAUZjgIX4E9eP8PkgT4+PV/hPncZwqJ8EK/xZzy8lfvNNt5jkO7v6lJwund6l9sSn
ny2b6spspi+2E5/eq/l3sM/+vsLXH7joM/jp1ffFv9//xn/n366/e99q/5t7xnP/2/1n9989f6yQ
PX83/7j3zvfyv+bJ5l9X7rz55+af3Yk2/978e/Pv+wzZ/Pv63jLPzL1/3N+SnJ17/9r7196/7BB7
/9r713127v3rjsX894fWyd4/9/65//60//6231/2+8t+f7lzx/3+cOcN+/1hvz/4vjBzxv3+st9f
+i2T3MHd4le+P9D1vLp/OIde7b/TpvkHl4++f6UT/xC9/f6K3/qcXrZKcmX3pHykM22eOtrJlfk6
qm91OvO/vkrPOOXfymymb3x6eEhfXvXxI3wyNo3/6Wvi1/fZn4mvPvHFnW7xP6pv8jDh0VEW/6N6
6tF53j/0M31ymPyjiZ//+qdEtZM3/tkPsi8nHf8umoEuKPA8BjwHrQ/xs8PrJZEV4PT4JJ/BmkHK
jxI//ad9LyG+l+ulI3VyMvaw1FHt/JNNX728JkvjTY99Mj7zW78P1ht+vsjSazz5q2RHRzsd2NWn
/ROfHp7x04OH1NnzOe21G3/lwTpJ2zsLI/v6WX9mzCY+J3zgsfmK91//+QxfieoXzN5/+Mb8Cp+N
p7Hli//Gr8RPh69X+PEXf+O/8+9YJAft+rvPn91/7vOn/XP33z1/9vy9c4vNP65zY/OvzT83/77u
LHv/2PvX3j/vM7J7tpi0Npwa8fH2/iUie/8yF+QS5sbev/b+5a7RPtH3vL1/3Hvr3j+OCXLQ3j/2
/uHscGaUY7RfzP0jmTkTH2/zDxHZ/MNc2Pxj86/NPzf/3vvH3j/2/nHnSeVTe//a+1dzYe+fZ9p8
5ozWxa/cP1h2b33eP8henT/ykuf64wOFn7x3REZHW37LL+IrHvz6glf+o/SQzf6koyTLlp8w0glH
u77Rj0+//3oqORmCFz7b/M1xNhY2+E98PEROt77hvcInD2fiZ8/fxKdbf598MrxwtPN/VE9ii/fZ
9x9+fVRG4YfBd/FT99CZNkfzawngdxHfBoEamNKA8A3cSzPISWTPfk19MjZ4TRI+86PMLx0PXnZ0
PX54mf1R/YHoskPVe1H5IZs44c9x5eOJj//E5zd61qc+X2HVf+OBi97Drw980f8/x1P/w1OS01Wi
ePU3/PxoT/za2fGBp52s+Cvxomwq8as3rvw88fOjbFx0PHjsPDDDT+9gnTIl/TC1Ed4r/OznOMLP
x2fxT6C/sLKdvMW/3qvYiLG4bvzvNSUmaOffPU/MkV1/n9v/zsnzV7x2/7nmzYzJ7r/3utr9d8+f
PX83/9j8a/MvZ8Hef655IF/Y/PvOEzb/3vvH3r/2/mVPdKf0vPf97RCdZL7s/XPvn+ZBpL737/tc
3fv33r+tib1/7f1r7197/9z7996/7QNI6Vwoh3ZO4G3+vfePvX/t/XPv39ccmL9nOrbHN7JftnfG
/N94/9R3/f7s/k8PKZ/jN2feu3+3p8zzxw8k85E/7XSdT8UfL6KbPsxo4uPBwuucU8djqwwfP95R
PfHZTH/h00Nk9VMbPx9s0Sv8/CjTY1ffkmuTP8f/xA/3UP0Bnx8POT/qYRzVtzGmkyy7J76xoPCV
2cbHe+/9Fws2SLt+5TNsJfzpL3z8L6c69eWO/3Ko8zAMyADCa6CCluyo/kAmgImaD8ICN+3VPcn4
YwOPfzI88nxNe7IefKSE33++OH5j0GbDP9JOpg0HHh/ZPvGnPVuUX/Zz/NooDG11Oig8ZX5/F58/
/XiFP8fwCr+x1h/xqU9sn/GCob98KdMN/xl/Psg8jfOonu1k+eHz1ftPP3n48bUnvj5pozC0s8fX
Tha+9q/gh1spNsa/+Bv/nX/HQjioNbbrb/ef3X9/PE9bG3v+3PnQnr/X2WlOmB9yCTT3TzJrqbyj
cvOPzb82/9z8e+8fe//Y+4dTc+8f5ZgzfxAX7WTyB3uG9uZfm3+ZG+bE5p+bf+/941gIB83909rY
+9feP7t3V+79e+/fe//e+/fev/f+LV9A3bFm/oCvncz5sfevvX/u/Xu/P+z3l//e7y9+O/cr798d
1Dny3v0DvzNmnuAn55UAAEAASURBVD/pJ5vt8Pkm7/5/VN9+P0U277/1w/3nf45n2vCBwn8lg4/f
+Onj9VvC+geHnja/SlT5Cp8P2Cj7q3X5UGf/u/iNSyl2M/+vnxOfDj5e8a9fxZss28aLRy97dU+6
yu6f6h4Uhva0107W+MnhkeHl/6ievGmv/i1Ux7/DueAV5F5CgzTwZA1OQJ+BeOrzWcDY94LYzfrR
PNtThx1/sD0tgPox8clRfWssSjJ47NjQ0c5eHda0wWP3xGcz8Y/mm051vrKd+Hxp8z3xj+ZJfDdG
jOJW38gmPl+o/tN7jp9+fsKfOtkr3xs/e+Pp3SjrU5hKxPdTP1n2dPR5xoKOduNvTNNfsvCNDaVT
XTn7yzd/H+Gz+VV8+mjxr3deLJQb/3u+7fzb9bf7z70eXu3/9ozdf3/t/Nvzx6zZ83fzj80/yrHN
BbT5133ebP61+dfmX/d62Pzr798f7Jmbf27+2Temz3x/2vzbqtn8e/Pvzb83/773ArW9f9z51t4/
9v6x9497Pez9Y+8f1oP8WelBe//a+9fev+51IW/obiGfKjb9/mHvn3aNO0bVlZt/3uft5p//O/LP
ucadiZ9Z//TaI8x7ddT8Vz7fv/2D3Tx/a7fHaKN88+PHm2zYo7n/XJxbNsfSONjh88m/urI+8xdG
uO11fOgbm3jqqHa+8t1Y6ODVpq8Nr77UfuLXN1jJ2CO/PyOvr3ykr7/0ihGZNj90wqt+sE7dMMiL
Gxm72X88+GHSRfmjHz5Z+PpT/+nge1Cy+OEr86dsjGy+nBrIlzs+HM7OF5R4tZsU8PEMtj4JFH3P
DNwMYPrK+fKnj/yko6wfTSr6r/D5nL6O5tkXvPrO1/PlT39snniz3XjiKRH+E59f/PCrN7Ypr06H
z/xlo3yOPxnbfGZ7sE5K57Pjp5+PbOpb+BzTgUmGnvj8oCc+/eKfnC/ER/j5C0P5Gfz6OvH5nmN5
4s8xfBafTX3jv/4u/vUON/5mxRUL5c6/e73s+rvmQ/Nj9x+R+LX9f/ffez0VO3vMnj97/jh79/y1
Ku447Pl77xd7/u75az0g+8TmH2cofun+ufnHvZ+I3t5/rz1l86/Nvzb/uvOu8tDNv+79cvOvzb82
/7pyrs0/N//e+8feP7pD2A/6t8WZMzz//W/vX3c+UezEa+8fe//Y+8feP7p3Vc69dO8fe//Y+4dT
89on/hPyT+tUjqP8bP5jHc++P89/vp7r/2D97fdX5QwTvz0Cj1x7/v7qaJ79nbZzToUdfmNil+90
8BA+Ht10lE/8fNY3bXV2dBtH/pX6Nn3RRU8f+ZllesbPR/S0/Wj87+Hrmz4jvrWLVWVjKv7ZhM+2
/tIl96BK+HRQuur5iq/Mx8SnN33kl/6XUYH4MofDUS/AoOagqxfMgj0Hn00BrF2g6ne+khckZZNH
P9LTPXX6Xr4y/IKtjY+afLXDr52v+JfVhfF//rJPl056yiYFufrEr8+NvzY7NH2xj984lU3er8Cf
PsJX/ur4p83P4s9344c/x1Z/4hm/uifq/U9bsmw+gz/ff3aV09cTn86v4uun8fJVnxf/CMaIR3FW
ot5FfG208d/5t+vvPuNaJ60N6+W5/+3+s/vvnj97/tobNv+4cojNv5wY93woz1KizpX4m3/dcdn8
484xmidzzmz+ca0ra8e5u/nX5l+bf23+ZT/Y/GvzL2fm5p9HEA5qPZRnKlF5RfzNP++4bP65+Wc5
dutkrplk1s7mn5t/7/1j7x97/9j7h/OgfGvzzyufKh7lmUrUuRp/8887Lpt/bv5Zjtk6mWsmmbWz
+efX559+M1aMPxt/+t5H+502qq3+ylf8uf+9wifPPqze/yzV6dFRhj91pq9D5dQzjxBZ+Pk6BX/J
1Ce+Oozsq0/8cqNKPmYdZva/ip+fyvo88flEyuTVi8vUafwzduTZNGY+4TZmvrLxX3lFtcNVovDi
1yZ7hZ8N/TlW9W+hOvotzg+nBU2JGkjtAhOfzrTpZWQraAWHjfYMKlttTxjpHay3/ywxGT/he9m1
ybT5nsTnxK+tjMIMn0++HPao/yxwekq6+kgXwciGLD4dfrSz0VaP8otX/xs/O/h0kn2En86hfmLm
h416/YHl4T9/R/Ut/o0F74k/x6KO+HgV//CnjT6Gn612deX0FT4MlC868SZ+vuhO/Mb/Hj67/H0W
/9X4F1/kL9r4/7j/FA9zpHliztXe+XfNm11/937/0f63+881X3b/v8/M9hWRab8xT/b8u+PRfitG
u//u+dN82PPXirj3EvU9f649orkx7x97/pohV3zK2fb8uWLi756/e//xvWHzr80/N/++98PyLXvk
5t+bfzcfyrHKJcyPzT83/zQvmhubf1/7hTWy9w87xN4/rI32zL1/nVPi/LP3r71/7f1r7597/977
996/9/5dPtB9U5Igd6rdHaNcivyfvH+Wz/8Kvr5/lP+Rvdr/xAI9x8/fxP/XXzrFhk06/E78fKVT
vLVbf+lMfPX85Du8iU/WWPQxwqvP+aWrzk9ybflAeGHWrm98he/9s699VM++xtfOf77xUH0ih1G7
vtEJkzyMqfdq/uWLX8QuG7JI/VX+g68PKPxigUdeX/JXG+bsP/0vpQb1pU5fODOgBgpTAKOCokxW
gNj0osk8BfOovrXxERn95wt6hc+G/34kSsfDNtzpjz55+Noe7erZVU5ddfZ0yZHSf+mVrMkDv3Yl
PXav8A/2T/HZ8aH0wKgf/fh2yujiK5/xP1gnNebGpZz9fdo98TkJRx0+n8V/4tdf8knaMCtf4dMn
D1+dPxR+dsnw679y4tONwq3MD/3s6ZL/DP85/uwXf+O/8+9aQ60zawrVrtz1d+07u//s/tv50TrZ
8+fHHENc5vm/5++1n9o7Nv+594/Nvzb/2vxr8y85ZnmmswPVrtz8c/PPzovNv648onWy+efmnzPH
Ni82//7x+7NzZPPvvX/s/WvvX+UP5RP2hvJMeyeqXbn55+afzZfmT/Nk86/Nvzb/uvZMORba/HPz
z/n7D+fo5t+bf2/+vfl3+VP5lL2hPNvZgWpX/ifl38568xjp32fyP7o/2//ySbdxV7Zu+Chu6YWv
Pc9feuKmv2jiv+fn0rz+sn3i+yHnE5+vicEar9+ZTVl9raSHwoEZVVfO8Rf/+kfG3sNf+j/Df46D
nQfVn6t14zd+mChMfaqO3/j5mzJ8uHM87J54B+vt93fqUz97fHZkEwP/2wnwP0W9cOWkXhaeuj4V
nF7QtCmI6dfOTy8hX0r+8HtxbFG6V+t+QROfDvz8wzMpo/fwydki9urp4iVTj2DQbdLTDz+dV/j0
2WZfX8N44sfPpxKP75/htyjow6k/T3ztcMLP9hC9pPDFP98U2Wuj8NTTSX9iVldOfLqT0sOb+Ooe
NPHnGNjSeeLj51f5M/xD5aTFv2Ilnhv/nX+7/q59Yfefe//f/ffOP/b82fN384/Nvzb/vM6HmXPP
+ubf113M2fnq/nNlGddeKlabf+/9Y+9fe//a+9fev0Rg7597/5RPob1/7/27f//Y7w/7/WG/P+z3
h/3+sN8fnAXzm8us7/eX/f7itwD7/Wm/v+33R7eom+yTkVxqv7/u9+ev+v5uXplfnz1/7c8/m39+
PPnq/mfuzjO/enO6/Z//SeSROr3Grz+ITXp9f+Df05minv2s4zX+fvhJHuV32jzx9Smbxq/teYXP
Jxm78I/qD7ra6Imvr4032St8tk98baQMv5KP+koHpXe17r4+8bXpIn0Sn2yVydVnX4/mSXieGYvG
dml801+g/yQVuBmEBj+DM4Omf7Xrq7ZnBjo/0zc8LxUPTXwBxsfLJr35EvHmi0k3/EN89gW/h0w9
fCVeJVk+08vmEJ2yfrSqnS1dpI2MHyVXT0ed/Dn+cH6Gn29+iod6xE/xx4PbM/sXfvp80at8xp9e
uvmZfT3Ep3zqqIetzK74x9MOt5Jsvhe2ZHNs4R/sk+h46JAhflBY6p/BT4+/bBd/47/z717Hu/6u
vcRegXb/2f13z589fzf/2Pxr88/rTNz8+46DswHt/eO+/4rJq/tfcSLf+9eVV+39c++fe//c+2fn
yN6/9/7t7IzMC8/eP/b+sfePa1Xs/eOOQ+fG3j/2/jH//W/vX9d5Ya+wb7ZniIs1s/fPvX+aB3v/
3vv33r/3/l0etffvvX//7v3bDzLLK17lX2TJK+VsH+0/5qO5mc7MXfJxiM/v7a/wyWb+k03lxO88
LEdiGy/86Su5kj++EBs+ykcr6SBylO/waqdHp/FPHfwoXx/h84HoeBoD2/fGf4jO/tHxGH99mf0L
X/9exb9+ha1kUznxD/aJwVcU/hw/W5QPdfLizEZ7jvNofi/Vqe9FubyH1UALaEHQ9sIEpMCxKSB4
BW/y80MPpXe1rr/paNFrYfATJr4flc5faIeTz/C169dRfZug6unGVz7x+/HqxKfzxJ84T7/w8dil
d1Tf8Pl+UuMxZqSdLX//53iMf8rDoZvP/IRfO53Kxl15uPgh/uw93jmc5/iffl/h5Zt9uMpJdCJ6
vf/38JM/8bWfeLMNoz6oJ3sPn+6r8S/+Hbvney2m8WdbzDf+9zotNjv/zIyL5vrf9bf7z+6/fz9/
9/zZ86ezo3O2c/XJn207bHrqyZTR7r93/rnnz54/e/7s+fO8/+75e58de/7cZ6rzojO1uMy2M3bP
373/mgOoubH51xUPfzf/3Pxznq+bf23+tfnXj//+MtdHeUZ5RWdK/Nm2v6annmzPH9G4aM+fPX/m
+trzZ8+fPX/2/HEu9PuHuT90znaudqbGn20nTHrqyfb8FY2L9vzd83eur/+G89ecjz4z/8WkvaN9
pn2lvST+1KtOF9V+hZ998XcGtv898fkKP7t8hsEeha1OhpTV2eWf7In/r4PX/CAP54kPD2/6VU8v
vnLW+eNfSRe+39xpG//EJw9HHYVRv2a7errph6/9Ch/Ge/j4/PWEUb9q15/0DpM3mvjqxpz+m9J3
VGYgvsP/9NnAwzTAgjMHTd6kU87g5C8+HwXL5BD0ynxmo6Q78ek3mZXadPKpDJ9ddXwUPn64Td7w
w6PPrjZ5/eUnOzqe6Tubg33SxM8O/vTzxOdjPnQnfv3ne8biaP6N6PAfBl9+HFs8lah+qk9sbTaz
v2Eq2fERzlE97eGh+OzVlXP8bOvbUX2j+oDxHj5/nic+m5/hs2kcn8FPvziEufgb/+ZCc27n366/
5oL9Qf25/7WfKHf/ufZx6yZ67v/Fa/ff+9za82/P/80/Nv/Y/OPaBzpznSHV9/zd/GPzr80/N/++
9khx6PvRfv+4coe9f+39S54wae+f9/dve8bev+/v/u2be//e+/fev/f+vffvvX/3naEcYr8/XJEo
Lnv/2vuXubD3z71/7/eH+z4ld9jvD/v9wd6Iyhs++/2B3s/yT3vuq/MX5nP+vcKn43HvzU+YfPjR
p5Jt9pX6p85OXWn99x9n5Cef2Rysk+ij8GHQ1Y8w5/jJED/5Cr/+Zq+dH7r1/6ietuyyZfO0D58d
WbpH9Qf8+sxH9b4fVMJnP+kVPv3ZfzrhKxszP9XrVxjKcCvpv4dPZnzfTs8OfDdggakUwKjgPdsF
+b1g5quXnZ9XdnhTL/x8hF1J18Lh05P9nBTZJk+XjjpKp7K+0UHxqyvzAx/NfjeJyNii5Or1Zdbx
wvlV/Pry3vjhhE8XhVFfwk8vnVP5+JN8tum+F/82Bzgov/xMzPxWTr3iz558kvbEz05Z/JXFNDk7
zxx/OsqpV98P9uILwqCN/84/a6X137pR7vq7EoTdf3b/7Wxpfez5s+fv5h+bf23+ee0D1kJ75Obf
e/+Y5+Tev+4Ll3UySVusNv++9pHmjXLvH3v/8P1p71/32dr6sG94Nv/Y/KO5sPnXNRc2/9z8c+6T
m38eB8VfZK+YpC1Wm39u/tlcsF42/977x96/9v6196+9f+79e+/f3S1nXi1f2O8P9/eHIxznN5lf
vX/aY9/Lv+ePMWd+9qxrh1vZu9GO6Hki9YmvPvO/ie/d9/6VbNPNpxJefmofrFN/6sULf/rHK//g
L5zfwS8O8NhPCrP41298+MY/97/kxuGpX42zkr1+p3NUT9L2RLVhqLPL5yzzlTy7xqadzrM8RN9L
AP9JmnjqHi8mfoETlAJbwLSRdlTwtHtxfHhQL33ihKX0tFDUw+fLxEITnw7ZJDzUC+YDzxM+XuNM
/6mjHT7MJvZRPfvQZG6c8dmgiR8PZnb15VQ+/tCB2ULBp8uPx3+RtbEf1VOm/Aifv/DoPvHJkbLn
o/i/h386Of6Q56d+NS46jZmOuhJlowwfn23jL/71wbgQeRS+9q/g068Pi3/FXUw2/jv/dv1dc2D3
n/v8sc/u/muH3PNnz99rHvi7+ced023+dcXiM/mvubP55xWDzb83/7Zm0N4/9v6x94+9f5gDe//a
+1ff/vb+uffv/f5wpkj7/fsKw/l37997/3aPRvv9Yb8/mAv7/eXeE97791frZb8/XTHY70/7/Wm/
P9kR9vvbfn/c74/f+f3xWmXX38+cv/rSN5BX999yXh6rl/+we57/9KLw/3Uw5v7Hhq++v9UH+Hxq
R2Fq9/uufOF1tsJSV6LubdoTX5tPvj7CZ48q1evXc/x8eupfNnioPuKzfeLj483450PJTzrqT/za
r/Dph39UT1+wPI2fb0/4/ETha6uj8NTp1g4fH6V/tb7pb0H+Jvc/uIUlSAVQ2yAFQDkHTJY8HXZ4
SMlXkzZdsvyQF9QwwqfDhk887Z5eyPSJ9x5++uEeqqevsPihg+JN/OdEyp+yPmXHF1Kya/zpkiF2
00Y9nrKxTN7BPvl81QfydLKhB5/PFoc2vcpsmuD1r37kSxnvqL7h8zOJfTbhvMJnQz7x+Zr4/ORj
4uNpN/ajehL+R/j8N24G9D369978ayyLf7//jf/Ov11/u//s/nudJ8fxcdKeP3v+bv7xfv63+dfm
n5t/X3cOB8beP/b+tffPvX/v94f9/rLfn67cSP7cnugbw35/u+Ky3x/3+2Pf362P/f6239/2+9t+
f3OfjuwL+/3pzhnEQ3z698f9/nTFQ1yQ0rP3j71/7P3jWht7/7j3hL1/3WfJ3r/2/vVP3r/K48w7
ectn5h+d7Ng885+D9fL3T2xe7f94E7+9kd+wjuobxZs25V9+nDrzr3IP5cSv3+Uk+dIXPO3w86eM
P31ly27i46P8hIXXGJX00lV+hJ+v7OqTkp3f3yFtuiib8Mle4eeLHpvs8Hvif4Q/dQ/Tt35kgxd+
Y238ZN9KOvdP0RywgSITLP4MtH4VBPwWioDPgKrj8dFYelF4+X5OJP91UmSC+qFocrwwYKr/3+Pp
h5zJwg3ziZ8evnr+1T0w2U78+UNXdvCRvsIvPuzew48Pj4/P4utT/o/q6f/V+JMp2eQ/rPgTX/3V
+Okav/E95cbxHH9YZOiJP/n8abP5Gf58/3x6wlcv/q/w6dWPn+GHQ18dzfdf/L8Ln3+xWPyN/84/
q2/X3+4/P57/9sbdf7/n/NvzZ8/fzT82/9r8c/PPzT/P9HPvf0cYuhfv/fc6Gzb/3PzzO74/bf69
+ffm35t/b/69+ffm35t/i8B+/937x96/rrxw7597/5Qb7f177997/75+f2MtfNXvX/b7w4/fH8T2
35V/eRfos/j0Pvr9k/Xy3u+f/I7Ld4f5/l/h57/912/emn9PfPz0+GYbvranPtWmo85u4teviX+o
nL8/oys/6vd/+SWvXj/gqXvIUJja1clf4deP/PX7u/fw08t348dnqx0mHf6nz6P5w/uf42dLF/0M
Hx7biQ9v4qeDj+rL1frGv3XqGyFeuoZr0Aaq7DmqJ/WyBa6XxcajXUCzU6L46vGmnTqqnPi9FLIn
fn7JPsJnR8fTy1R/NQ79M3nmGOgifPbZhV87n9myUYdPB83x1J/800mfrnp42sXlice+95EPtih/
YcTX9tQfutrpa6tPefjTLj/hayO2PcUfn79IX6f/iZ/tlPOjPcf/Cj/byvfw8ev3Uf1h/Nl+J/4c
x+Jv/P/p+b/zb9f/7n/XvrP77+6/u//e+d/mP6/z36/MP/f83fN3z989f507m39s/rH5x+Yf8i7f
pTb/2vzLHNjvj3d+8NXffzf/3vx78+97fW3+sfnH5h+bf23+ufn33j/2/rH3j71//TfeP90L/137
n3j/7PyVp9ND6p7uMeXws//84aPs1Kdd7Sd+fsm7f7+ym3pht3+EX5svlJ+rdbUnvrqHHtuf4R8q
py6b2Qfvkw+kn2i281/5fP+XxYXPfn43ePrRfuLrd0SG6Hn8SDcfysZZ/2dcG//P8LM93J0UlsYT
vzZZ+OrfSg34W0GG815AL4ZIELXJBKxAPIOVXnx6fgiKCnRlLyifdLJTn/h0vNz5Y1M6Uz95k44c
1sSPhx+uPmsjdT5R/cxH/uPTocsGJQ+frPGrTzv1Jz6d+bwav/+lBluyqXs0T15xUqJX+PVj/kAX
75U/fJTf4v8K37jTK47h8xFuJV3y4kenPqiTTd3ii0eGpv4Tn/wj/Of4n/6+G3+O35gW/8f3ufH/
3vm/8+/ef3b97f6z++/uvzOf2PNnz5/vzD/3/N3z1x7j/rP5x+Yfm39s/rH5xzUHrIXNvzb/2vzr
mgNyxa/+/rn55+afm39u/r33j71/7f1Txrn3j71/7P3DHEB7/9r7196/9v5lDuz9875/2xc9aJ6X
v/r7o1+5f8vRP3v/779kqn/6OX//5l22rz/xyeZ40lPO96/tQemzneOfZwhbROeJz6b7x8SfehOf
ryl7hT/HX8wOs7dxZz/HP8dDFzVO+o1/4p9Kx5/G2lgqySc+Pz2NSflq/GzJ0odrXPP3d0fzLf7q
sOpnfarv5PlSIrgTH694qvP3j1Cd/UfABki4lYKhXmCoar8XpPhKQWWXr6P6Zqv+9Ek/XTLUxEmX
3NOLzSZ+/cWf+PlVplP9YJ19efrCbzyv8Jt42ecvXf5MvomdjvJZ/xk+OWJn/BMfL1x1uh48bQ9S
GhNKXz0bPJT+jP8Tv4Wffv7CmPin07/8Tj/1JfxwKyf+1J3vP/xwK/Ebvzqasmddv/BQ5Z/gvzf+
OY5ZX/w77hv/ax7u/LvWcHtLa/Mz63/X3+5/u//fe2prZ545s77nzx2rPX/2/BGBPX/3/HWGbP5x
3xvtjZt/XXd7ZyYSE4/ztHLzz80/N/+8c6pjabytjVf1zT/vWNlD0OYfm39s/rH51+afm3/ObzWb
f2/+/fz3t+4dlXv/2PvH3j/unFo+3dp4Vd/7xx2rvX+YIXv/2vvn3j/3/vn6/ikuzgxkv+xsqfyq
/Iu/z9z/9OOj78+db/MeUZ1tcnWY2s/1n073j+zpo4mvPvOPbPFf1eNV8tcPV/mBiWDhl/+mj09H
CWPi00HJspl9SSc95cSfuq/Gn2926Tb+fE8d9Tmm+sSeTJucDw+fKLtX46fzxNCOnrJ8Jv/Hytmp
fwx0AIUvsAL9KhDpMKOTrrY6KuB08+PFxKeDyPBRL5VNPid+vsI4jYauNh1POOqIbz8MjY+H4OMj
OvUljPfw81v/lWjaqdMj49t/kTV/0/49fHb5PapvvsLItzY97fzCeeLPH8Ye4pPYTfx853PiM9BO
54lPPvHrDxv9gdP4j+pJZMW8908Q/iv938Gf7/8E/uvPn+BzUTyU6L3xL/7Xv3/x3vjfa2Xn366/
3X+sgvucFw97xO6/u/9+df5hnu35s+dPuar5sPuvKOz+695iLuz5s+fv5h+bf23+ufnn5p9f+/1P
nrH59+bfm39f68B62PuHKOz9Y+8fe//a++fev/f7w35/2O8P+/1hvz/s94f9/vC93x/ss199/7Ju
J/W9I15t5Uf4/RdBP/o9Faznb6umfhjpzHb1OX59LP944tNHyvzBzx4P9nv40z6MQ/2NskvGd78/
pDTtJ756fVLyk+5RPev1sXZ91U72Cr/19/T3/P3bE5/faMrwnu2Jr+6hk179Olj/HqqD/w502L0s
AUEFqJcgQPGmDl1tL7GFok2/iaVsEuePDn8F/onfhHvqs+tJxkeTKDt4eHTfww/zUPnbDyvJUBj1
V4mU6ag3fvra8PthK17xy+ZgvY3/Vfzp5Zdu9ur4HjrF8BV+MUkWzmF2UrYafMHgF4Xf+N/Dp0sW
RnbxlHz0/skRnFf49FF+2KanbOyNn25YMLLr/X8FfhiLv/Hf+XfPgdbyrr+/73+7/1wx2f33z8+/
PX/u/Gf3391/mwN7/tgZNv/d/GPzj+f9c/Ovzb/6/vGn3x/aY/f+f+ce+/3l+tbU3Nj958fvv7v/
7v67+++Vm+/582ff/9tj9/zd87e7/+Yfm3/s9x87437/2e8/+/1n7197/3Ln3N9/XDni3r//ffdv
59FXxX/mOB/df7pjvjf//dCUff7kz9r6ifD121NureQX0Zv49PKl/sSfP2wlm/j8vof/7M8r/NnH
w9VbrGcf1dnOvtGtz/AROTI29dme449f3+s/W7LOn2IEf37/mONnk31+n/j6+cRPBx9po/RgZoen
zn/vhj4evX+c6uw/DvwXYEEQgAJZX2pPWcGr3wKJV2Cznfx4+VNWNxlaFPGe+vqYLHwlmi+XXtQL
blLg50PpIXsPP538ZNtYtdEcJ3w+061N76mfTgtkjjFdZXFN/4lv/OFMWXbKKB/K6q/wn/qzbzCM
mT0q/uoTf8aFLMp24nv/MPKdbjr4s54PeuE33mx/Bz+MfNRe/I3/nAs7//6+/nf9XftXe8fuP/d5
UEyUrZ3WU+fvPGPST2f3391/51xoDpkne/7f68w6iXb/ueNSTJTNnebT7j/3/w1MMSletXf/3f13
zoXWkHny/7d3ZktuK0u2fDr9/9/bp6/ZhTPlhSAEsshSjZKHGSvnjMyFGEFu7ezvbmeyv1qO6/ci
e2/2V91Rn/I/+R/ffykT6ovt/G/+d8qCNgQ5yf/mf7EPvX9bcqDtREfExT5KdUd9yv/mf/O/6/s3
dUJ9sV38UfwxZUEbipwUf+x+Bj2R8j87LmJCqewoT/nf/G/+N//7N37/i42bv796i/3Tv2ov8THa
UPZjXD63/M88g2tZw9qj/aVPkieldXjIk3nUPROlvKb/s4/59EPux3NX/+l3nDrkPrN+5M9e8Djj
P/djDm3vwz7z/lvzJn/PO0vmexb50wd57snf/lv83fuywfbHtvPnnvRB3ucWf/qlWbfvw0sP+uGM
ThgIHBcXIB8IY/Q5RyDdhn76EFCI+hQwx12PIGjEmD/H4cN6hI0SYtw17DuVwHHXuJ79qUPuz1rq
rqcNzXHXH/mzv2f2LJfF2x/2oY81EHPpYy/2nvvf4u/cR/hzfnlt1Zf96XO9d5vj8Kbf+9OGKI/8
uSv3oJ818/6u37ovxPpb92cC46yn5ON66pDjYiYvSohxMZ/rL4Nj/Hh/zg65P+VcTx2a4+Ln/R2P
/y7/Pr8LeL/w8/mLn89S/B55/jwH14f/0hnxS/6SP/1P+rdkAd2AsBvZnxUTaD+zv8uXKB/5n6Un
6Ir2gzpEKT7KT/43/1v8fVGPF/+S/122Qvux0Mn/Fn8UfxV/Fn/2/ml/f1P+Uf5BLgHN/IK68QN1
aI6Xf6y8o/yr/Kv8a7cPvf/u/Xf5d/n3jB+Wdej9A5iUf5Z/ln+Wf5o/lX9/3/z7v5u9NpbBhz2T
/zLf/Jk6dGb/6buXfyMfzIEmf3IOPjP/ZM4x/ma9xHrONO3PkT/r6XPu5L91X33/KC/OwR1YY99W
fbn/vJ/jyv89/kf82RNernEv+iDP7DPjrsf7s4b7s4YP48fzsc9xr63r5X7yZ/3En373ZD51+iTH
WeP9j/xd41zXfmo5D/2pjH8xm6DQ5XkElzYPEuJh8qCdQwm4lMwHbOayJ318aFM6Nvu37ku/QkGb
tdDkr3DBH0F1zjy7/Oc6+TNP/lv1st470T/J87kPa72z97/Fn/F5f+Z5f8fgBQ/2h+AvhrSP/Gmf
3d95Ysd+8oCv4/RTn/enfeS/dV1ornMf788ensV5k788XMcc7+8YTF7jzxzO5z7y537z+TNPYr48
XHeP/3z+3oG9WAPFP/yVo+Rv6UX6l/3J/u7xx/IU62/+J/9b/HEd/xZ/3Y5/iz+X3URnir93T1L+
sfvT4u8Vd5d/lH9gF8q/yr/Kv8q/8ItHKv8s/yz/LP8krzRuLv8u/771/VvvH5YH7f1D7196/7RH
k71/Wlj0/f8eR/T+qfdPvX96n/dv+BrjcizNM/EHc+f7H/bRd838n34/x/jvFn/3YR3Efu6h/h/5
M891t/jPtZzlyJ9cxT0cY9/X+DvXtezN+byvZ6cNObZaa5798JK8P+vMo+Ydjvi7dt7f9zPs5Xkm
f/rZE6LfO9CWP/tN/ozx/tez0GauaymZzzr6/Uz+8tyGP4+80Odx3DkJAuBQFxyAos/2Vn0Bc86z
zvwJLvMFljpjkH20WStfS8YZ86Ef+W9Dl3XOkz/zrVPy4WHKV37yZ5w++VLSdl/XTf5zPv202Yc1
CB5150/+8tqGX/anj498PQd7cRd5yWfruprvOdnjjD/znUPd+9g3+XsO5nmeyZ9xyHmMzX2oH/Fn
/sSfcYi58na/WbrvPf7Md5711/jP+7PGj7hbum/8lywozxtkL89fzMHIevgvLCZeU/6TPyQo/c/+
7bYX26Hdtcz+Ll+d/8n/oBPTn0x9UU/yv8unFH8Uf6ALU1+Kv/a8r/hzE46Nir+Kv7ATfow7LfWr
xV/FX8Vf1/4UnTnqCX3oTPFX8ReyUPy15GCD4ur9d/EXiBR/FX/usdf0J0e/UvxV/FX8de1Pp76Y
pxR/FX8Wf5d/lH+Vf5V/XfvLn/T+37xZv/5I/MvzPvP/5Fn0c39K6Cz/pN+429L85MjfcUvnTf7s
5z2ozx+Cut9cxxz3o4S8P/vS535znndjT+vT/m3dF/L5s3ben0HWyYO2+9/izxzoOI8+1kz+7it/
5kz+jEPOm6X8xYv7S3OeuNBHXSzsZ81cK//Zx5xPIQ75lXTGnwcJCRzAz3nUFRzGIPpmP30KxFnp
Q2TeLTrjf+SjIvsQPZdnmSV8aCsUR76MQewBKbje33H3ZBz+kGe9xd/7yp+18mG9e1Onn7Z7KviM
Qbf4r9G1jrr7eCbb3p82NHnTtv81/ozP+7vWdfI7lkf+rJt0xn+e0fvf489+ky9zbX8Ff89MGf8l
oz5nntUk+5Uj9c85YvnM83dN+Cd/6V/6pz/Qpswy+7PQyP6u2Cj/cx0j6kvzv7fjXzTIePNY5n/y
P/mfPc+cvle9ocz/5H/wNfnf/C9yIBV/LNtZ/FX8dev9K7pyjDttF38WfxZ/Fn9iD87I/uLv4u/i
7/KP8q/yr/Kv3VOWf5Z/EiOVf//8/NtYd9fuPS/4iviX83imR/jzQ1KIuZByaR1bRb6vzbLN/MmL
+ZL9R/6ey70YP/L33QJ7OZ/SNfQ7Rz70SbOPNXyMP9zPvSjn+w/XisXZvVkjf8ojuQf93h8erJPm
HpM/46x3rvVjyX3Ym/4zsp99+Hh/59LHHPZgDJo8vf/k655r9if+9WCfyPKUlT+4BAg+tAHPcj6Q
CdbZOgWLMQSA+fwrp5SMUf5n+8yH4/6MOR/lcZ7j4OX+W/VyPuZDlMxz3H/S1/0o+TDuvuzHx/23
6mUOZ4f//2wfzun4kb/3cm/Wyd+z/Al/zsl+8t+ql/NxDmjiT1uejDPG2Sd/9vL+lNC8/7zH2f2Z
z7oz/qyd96d+9vzlf+/5s/b4/LeuC93jP+9P/d79n+XP/aD4337+4b/LR/KX/mV/bvuf7O/yJ/f8
r3EKtiT/s/DK/+Z/b8WfxR/FH9qH4q/ir+Kv4i/iJt/TYBv4GFcRURR/7e+XwIrP2fuX4k+kZfev
1MFJzCiLP3Z88r/53/xv/he7mP9dclD8UfxV/Fn8Xf6xYqPNNZR//cobZh5R/vX79//gA2E/e/97
gaL8c4Nh6k35964f5d8fm38jd/fe/zD21t8/8eyOv3+6Z/+wiYzfk39zj7P4E3s69Yiz/+/2MU5h
X/mT00/7K+/Jf5tywcb7i5NnIB+c3/8f+R/v7zj7soc09/0T/uImBuwL/p5z3v+Mv+s4J+OU7OH9
zX/n+5B5f/d3H9qMswel41v15TlQ9/5z3ZE/876MAOK7kEIkqJwLYAUMED3vGeCMs5b51JkDUYdY
63rm+HAYc2/38OF7Fvm5/rjWPY78mX/kTx/8555H/t5B/vK7xd895c955v0Z98MY/ORPG2L83v2d
Q3lcS5+YUkKTP235U877Mzbvr1LPs8iPtdBsMw+a/Om7xd+57kHb+ZPnrDv3yN+17in+7jfHvb9z
3dM5jE+es+7c+IPW/vypgxP0p88//JO/qXOznv4t2cj+LFujPNDK/ixMsr/PxZ9HGcr/5H+mz5l1
ZSX7m/0FAeWBev4HFIr/87/5394/LDuATcRGQtpHfKf+E1052tDir+KvGXPNurKi/Nie8pX9zf5m
f7O/2IH8T/63+APvWPxV/LnkoPi7/MP4ufyr/POYQ5V/l3/PnHvWlRXth+0ZX5R/X+ffYvUe8Ye6
6Z738Oe3c/BkDnTkT/uW/fcZugf5ND/SlN/kz1zI/VlzzL8Zc9y1rJH/3IPxI3/4sq/8t+qFbM/9
5570MweSB/vzYcy5no22Y9wBnvRZl9/WdaHZdo+z+zPZcerwgI78mTP5gzkEn3k215/xZw/ns9b9
qH8ZeeAvO8BgzFkERcA93+x3jKXW5zgg8+GB06+SOMeHQCkpHM5xX+fMfgWPtQqK4/RRn/z5wSYC
4xzG2N9yq17OyjznOE4bsqR/8px15s1zcyd4zPszhz7X0Ybm/Wm7j3w96z3+jEGsYf4Rf/eY/F3D
eTgna+njQ13+s58x9oC8xxynfsbfOfMc8p/3f42/PP+Ev3vEHxSv5S/878u/sgNu1pVtsHtE/l2X
/IFi8pf9e9z/qDvIjfX079pvv+Z/xS37gxRlf7I/2Z9H439tB3pjPfub/Z15Q/7n9/xbHQEb9Sb/
ixXJ/+Z/87/538feP2o7sRvWta3YU+r5n/wPNhVZmO/fkY/87643xR+bQGyU/83/5n/zv8c4gjY0
+4056Lc+x6kXfxR/FH8Uf2ELij9///2NdrP4Ey9S/PmvxN/KveVb5B+siC8g97kVfzDnlv1xDXOO
+LMv43wgSvo4rzy36mUdZ3Ev73OMf/jXUJ3jGKXz+X3eMf7euu7yn2eZ56PO3v7mb97fs1uyB59H
7i8/127LrrBwL/mzJ3X4H+/vHqyBbB/vQRuidH9K+63PcepivFW/ljzo155iPQTAEmjqgESbM1Ly
oI7KNcFkPiTolJDr5l3lwzjrGGO+gjb5+7D8oSr7Qe7BuApC/xl/78E45H2ow1v+9svfvTiX/Ckh
seA8z/J3f/aBN3egb96ffT33Pf7iM3HxPpT0s566xL6so8/PkT/j8qf0/vLx/syb93eN2N3jvy19
iP+8/zP82T/+t59/+Cd/j+h/+vc2+5f9yf7mf/I/t+Kv/G/+N/+7ZOBe/lH8Ufzxlvyz+Kv4q/ir
+Kv4a/lY7CHk+z/qxR/FH8hA8deyk/gLsJjvv4s/iz+LP6+/50En0JF73/9sw33/smFQ/FH8gY+V
ir+W3QCP4s/iz+LP4u/yj/IP4qR/Mf/CD75F/rGbj8Tf/tgTPtAx/qDvjL9xK6X5D/wg+mb8b//8
/Rd7zvevtCH50z76f/ahn5J50Gv8+QEpfCDXyEv+a3T9fYY/54M/+8zfuXl/xmc/e9Mnf+7BXPok
+dOm3/nuOe/PGPO9xxFn9z/2y39b+nU0L/11p9jBP4J5PBMgApznFsT5QHgQs589XEfJw5rzHadk
Xx6yykSfD846a+VPHzT3u8WfeY/w53yTP7zkN+/BfvOe8FUQKVnjuOuc43kprW/Vy5pH+Hse1kDu
IX/akKX8Led868xnX/GnhCYv19vn/u5B6R1Z67jrKDmj56R07Va94o/RgORF3X3sc3/3mPsy33Fl
4qv4e+74f83zD/9dz75C/8I//KeNnnbafuw1dl3/8572P/lL/pSz7N/nx1/pX/qX/u35Z/5vzxOV
i/x/8U/xX/Fv8f/v7x+xjZBx1LPvv1xHWfxb/Fv8Ufzhe/rir2VXsa/FH8UfxR/FH8fvf7ENkHFU
8dfCA98B6UNmXGE/pbgVfxZ/l3+Uf0w7oe3AThR/FX99ZvwFr+8of+Rmz37/je5MvdqaL79/mv6X
O8958/6sOcOfOZD7GP+wD+QetPXx9lMyf86Z8+ynnPrPj1YheVl3Hu1H+M/9PZt7sN5x9oOeuT9r
/bi3eTV7zTH5TJ6zznyIPvbgHEc64s+e0Nz7yH/N+KK/8+F90RGu2CqIgmQbYAHch8gi6tB8iDwc
17DH2QNg3H0oUWQSCoj57EH7uNfkzzz2lxQK9vLs7HHGH56P8Getd5nz4SV/xyd/z+79neMetD0j
fZ7ZeezlHozDi9L705b/Vr3UXeNenod5kPPph49neY2/Z5r82cP9HJffPf7yvMV/2/bqLvBw/1v8
5xowfU/+YsU54r/L33z+4b/LbPKX/mV/dt+m/9NGPGv/s7/5v/z/8i/FH8Ufxv/FX3v+oW8Bk+Kv
4q/ir+Iv7ID2gNwdMoc3pjQWpVRmnMcc378Uf+zY5X/292bIE3IGUVfelCXbyd8FovRvg0Gb8+j7
T22Vtiv92zFM/7I/2d/dtupv8j/Fv8W/ezxW/LXbiOKP/TcFYlH+V/6rz0RTsBf40vL/XVfKP/r9
B3ay/PN+/jl9ifH4e8UfvDN4Fn/Oc4+/+92yf4yfvf+kn31n/kUfbffi/mf83ZMx58x/fZV9mXO0
v2f3Zw+INe41+RsHO0eetK1TuoZ93Gvyd2/O5Trmsf9cc7z/Lf633v+4l3vD9wx/+iHOArnOs7lm
jX7xXw7z3YgHw8OEAA0AOaeAC6D9Amu5Tb2Q+/igFRTX03aMBfKiD6GDqMvnbD1rXHfkb1secz17
P8IfQZe/Ai4/93N/+bE3d6TNGsfZh755fxVp637pp++Z+7v/5M9+th33vK/xZ/4z/OVjCW+I9rz/
5M/4EX/PdYu/+DvP/eRryd7QPf48i/jvsgle4hr+5/Kf/P1uv9Ax9c4SWYLSv9v2L/uT/c3/5H+M
zbCX+d8Vaxd/FH+c5R/FX8VfxJTayfK/JQ/G3Zb4Eqj4u/j71vuX8o/yj/KP8o/yj2UH8JfGFeUf
5R/lH2jEso/ECuhG+Vf5V/nX7ifKP8s/0Qfzbsut60K0y7/2GFt9Mc4q/9ixQWDEpfiz+LP482JC
r37/9TfEn+i4ev6n9k889DuWC7nr97/MvWd/jfEpj/aHdZxZfp7ftnwt2QOizRz2O+PvGPtD7Csm
U/6P/JkLD/rhIR/5b10X8szwZ677eH7ajt26P3s65n1db1u+ltuSC53xZ47rJ/9fSy68xIu+yf94
fs8lX0vWMfYtiMt+J5qATpCoCzxndp6gCzZ3YYyH790Yo482H9bw4YecCslWvRDj7kUpUVcYmSN/
17Mf49Dk7x5n/P+zzXX9ZeH25xZ/xuf9qbO362/xZx3zJn/ax/vDV2J8noN++l7jDw9ozmMdn9f4
s06Sv23KI3/2o2/eX/6U3M87HPkzdrz/1vVC8qeUqM97vcafc8V/PaPwv5b/5C/9y/6c+1/sbfZ3
9x3gAeV/8r/FHyveI64q/rof/xZ/7ja0+LP4E3uB3eBT/F38Xfxd/H32/m8zD+Ufv+wkflMq/yj/
KP8o/zCvKP8q/8In3Pr+RTlhDp/i7/KP8q/yz/Lv3j/0/qX3L71/6f1L71/2+Nn3LJTEy/hJSon6
Z+Tf8Hkrf84MEevfi/8Zu6f/jN26Pz88ZeyYf5qHbENX/NmL+8z844w/cyTvz1qJPvA/8qfN3syl
hCidxzo+jnF25vJR/sVt67rQPf7iKj7e+xH+rDnjz9ngKcn/2Hcmf/D1LJQQ+3Gub0Ee6lsc5nAI
BEBB8ZwACgnqFBwfPg+Gfh+6D1BhcD3jPDTmU/fBbtXL/vDnny9mvfzdg7brt+pl3DH502b/41rn
sx4eR/6uP/JnH/aklD9zoDlGmzO/lT/r2e8R/twPkh/rPL/8H8WffVx/xp/xR+5/5O+erOUsEH0+
vzP8H+Xv82W+Z/ts/t4n/rv8KI8+H57JRz3/8F+4J3/Jn7Y2/bv2v9mf7G/+52Pir/xv/rf4u/yj
+LP4s/jz9/cvYlL8UfzxEe+/ir+Kv4q/ir+Kv4q/jDV6/9f7P+xB37/sNqH4u/i7+JtsYenEe33/
7n7FH7utyf/mf/O/f0f8QUzNB9LG0dZ+0k/bsY/4/RE8IHk8wp/f7j0S/3EPPpybfS35/dn/bh9s
Gf3Q5E+d/aF5f/Y62j/6mH/0v7ThN/lTZ7/5+7eteaHX+DPpDP9n+LMemvzn/RmjzZ6P3p89z+7P
evbhcyT4v/X3l8e9vqwtcF92gBuMFUSBp02dkjMrlPZvXZcx+hUQHt7ZQ2U961RAhZYH6npxmfyZ
x56O2WYO6xiT91a9tOVBv+c+48955M9+zOFzxp+57Df5b80X/p5BAfVc7sf64/3P+LOnezEuP/ah
n7Ox9/H+jDGHseP9vdvcj32Zf7z/1nV1f/nJ3/Oc8Wfta/w5Gzzlz3zIM1qnnOd9T/7wjP8uL2IO
xtYpw/93/XsP+U/+0r/sT/YHe5v/w9Pk/4t/lj1QFiiLP4o/jLeK/3/PP8n58B+UfCDa9/I/x4o/
ij+KP4q/ij8vZrP3TxsMvf/ZZYFa8WfxZ/Hn8pHF38Xf5Bjqw598/0PMUf5R/lH+Uf5R/kGk2fvv
3n+Xf5V/7raAWvnnHm/+xPxDm2bJ8/zT9++ufzT+Ro7u8ee3WIw7x/mU87xn+LMG/338/oF/oNJ+
1jEPmvvN+J/1kz9j0JR/2mf5B3Me4c85+Iif/P39m+1tytV56YfH2f3h6z29I215MO79Kb0/pfPl
P+/vmPMmf8bs36pXddrfgrjsd6YJKA8JsuQB+jAE23HvdXxAxzUqFeumAFhnPnV4ytfStYwjfMyF
GKfPPWgrCMxxnLO5x1Z9mcM6iHHms5Y1fCDXM8acyZ+641v1RXgnf9cwb/L3vMyF5O+eq3c/x+Tv
XOYc+dP2Dsc1Z/zh51mYL3/2gSznXkf85x3k7xm9P+Ut/vBx/lv4swZij/jvsj2fWfgnf+nfbqO1
edN2vNX+zT2yP9mfM/+f/c3+Zn+zv9gBKP+zZGH6zvzv2/KviWHxR/FH8ceyLeW/u40t/iz+LP4s
/iz+LP4u/yj/Kv/cYyP0AbtY/ln+iV6QQ/OBLGcucfz+s/x7YYUO9f6h9w+9f9j9CTqhry3/Kv8q
/1q+Qp2YvvNfi7+II/7k/sYpc49b/hder9kf7DZ7ue9WfYl/tOmMz/hH+8bc6f+d4zgl/OmH2Mcx
+FE/Pv95DuOvbdoVf+Z4Zvag7VlZAz95zftv3S/8rU/+7AWxHyT/eX/PRx90xp8++bsHc+1zreem
7b7MO+Pv2Rj/VuRlvtWhfh1GoaApyLOkH7Dps1/wGVOY2Id+Ssg1CBp9rOUByY+2cxV+2q6z3Lou
dMafOQrvXMsCxug74+/erpE/d3HMcuu60Bl/BlRe95rzqE/+nknhd42Ca5t18j+rMwZR/mf7yMM1
jk3+7H2GP2u8/5E/bch9PQttiPLs/o5N/tSf5c8aCD6c5Sv5wzv+61l8xfMP/+Qv/Uv/sD3Znw2E
Xzh8lv/N/mZ/s7/Z3+xv/if/m/8t/lh2oPjrsfdPxA5/8v6n+LP4s/iz+LP4s/iz+LP4s/iz+BM7
UPxd/P3I99/lH+Vf5Z+///4GG3rr9x/oDMSc8u/y7785/0bGj79/+ir5nzo36/fwd+x4Zn0j/di/
WXrfqf/OUecnf+uMWSf+4l8wda/JnzlH/syjj3mukT998rXcul7O7bj8OetZ/Me46yd/697xUf7u
BX/Wyp/yjP/WfcWfda6F55E/bcj7zZL+I3/6vhVx4O9KPmTPB5j0+UBsU/KBXOMYfTwk+qH5AGn7
wBRs+phLmx+VTmItffK3zZzX+LuXCud5PO+Rv3u7LzzoQ2iP/Occ9/P+zJ13kb/nOd6f9rz/3Jv6
2f3p5+Na295x8qdOv2NH/tvQFX/akpiwhrpt+TGPfW3LY/J/7f7u4Rr2kuT3Hvw922v3j7/o7887
/P9c/pO/JVfp37KX2DuwgJCN7N/yddnfi0hc/uT/7sc/gITuPBJ/ZH8vInWxOeCV/cn+5n+WTuR/
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
A7Fm8ldwme/H/dzzyJ99Jn/qzmUMOuNvHyV8WXPkTxv+noG5fGi7hrb8vd/k7xru6jjr6Udp2ce9
KJnnGtrydk/Gjvxpiz/znLtVX/Y640/fe/CHX/xv6x/PLPx/l//kL/3L/vy5/c/+5n/yv/nfW/F/
8UfxV/Fn8ecx/yz+Lv4u/i7+RgbIISixCc++fyr/KP8o/yj/KP9YdhR7iA2FtKXF38Xfxd9LP/z+
q/yj/KP8o/yj/KP8q/yz/Lv3D71/+Unvn8zv/vT9l3nBo/KvrTTPvMXf3JPyVv4J73v+l739uN/8
/Zlr2f9W/u+9vOdZ/L8tf+j9I3tN/pzp1v3Z83hm+s74swdzHaMu3bv/nOf8b1tykZ9IPhxLHpJ3
4QEohAqGD5J+COGEEEDnaGjoZy/GIH6UiSArCJOP/Fk7+4/8aTNH/uwJ/Xf7+KNP+XtW+FP/z/Y5
4791X3g6/8if83q3yZ/58mffM/7sJf//2epn/NnH+8OHuu1795/85/05B2PuK/9b93cepfy36mX9
I/w56+Q/8Wfso/lz1vi/Ln8f9fzDP/lL/9K/1/xf9udx/49NxR8/4n+zv9nf7G/2N/v7+4uO8o/y
r/LPFUsUfxV/Pfr+qfiz+Lv8o/yr/HO9i3/t/X/5V/lX+Vf5F/ay779W7OT3iuVf5V/IQvln+Wf5
5/3fv7zl9xd9/9P3P+Ufn5d/mAvi04j5oY/En/3laXxJ+Qh/1j4af7Hna/aHvfz93S3+7MEYn7Pv
X+hzbKu+1OmTv+s5E/PP7s/YM/gz9xn/w/5H/p6RfggsIHDxjMf4f85lnvdn3Y8hDv0TiXMLOA9P
sp+2D8g+24y5dj7UuY9JPw/fh+s+s61Au5b9mAfJ77iOMfZlzeTPfNfST5ty8mN8tuXrOW7xn/fY
trh5/yP/uc57eE7a8rX8E/7uy/m8/5H/sS1fy1v8J27s79mZ79pH+M993MP1lPHfZRg8IXCauNkn
XuIX/jt2t+R/4pj87bqrDKV/uwylf1ia7E/2N/8z/YY6kf99Pf4+xpsTx/xv/te4w7L4o/gDuwAV
fy0cwGPaTXq1neiLulP+t+tO+d/Sn/zv9fu+qUfqkPpDmf/ZdSj7i6VdeEy5sU95UX6yv7vsZH+z
v+hD/if/M79vm3Y0/7vH7vqQ4o/dhxR/EGkUf2Anpt0Qk+Kv3r9iL7Wdxd+77Sz+Lv4u/v6++cf0
Ydov/Rm+Dnok/iG/cv2j9o8fe+pTXWs540/idsi5xvH2seYR/pPf9OPU5cvZqU/+Z/ffplzItffs
P+d9Jv9kY+9K/cjftvM8r3eglG7Z37mHc791CSA/mXgQ0PEhIRg8DAWYOceH7wN1rsLmQ6RffBA2
xhW6rXrZ319iH/lPAZHPLf7uy17Mlf9xvvM4F8S8yZ8+z3GL/1w753KvyV/ej95/8mbfW/zdj7PL
H75H/uznGag/g/8j/OXt3M/mP+/vc534f/T947/LX/h/vv4lf8mfNjj9S//yv9fxV/7/Y+O//E/+
J/+zZCD/m//N/+Z/e/+w7CGxQfFX8ddHvn8s/iz+LP4s/uz7h/17teKP4g/0ofir+LP4u/i7+HvJ
ALrw3r9/KP8o/yj/+PfyjxVZrBjrs57/WTz3qP3xvI/aP/flOw3q/N6Ne0JHf/La/V1DeYs/fCD3
sjzyp3/y95z0H79/gRc059/iT84EsY970ube9+5/NpdzuA97TP7M/5HEJf4Gmg+D+9D2oRzrCpvz
KJnLPAWDPtf54O2z35L9WEdbOtuHMeYc+dOHALPmuE7BZg0kH89LeeTPfnxeu7/ztqmv8mcO5Jp7
/J3nmY9nOd6f+a/dnznQM/xfu7/7Ub7Gf97F+1ge8Xff+IPE77L4lucf/juWyp1l8rfbxYXS7zI3
dTH5W/iom5TZv8f8Lzqn3lmmf+mfcRm6BCkbZ/XsT/YH+VA2KLO/2d9H8j/kRttimf/J/+R/dp+i
XZ0x/6znf3es9EP5n/xP/mfJwLQV6MVb3v/qm89sUfYn+6Pdtcz+Zn+zv9lfZCD/g9dcPiL/W/xR
/LW+41cnjC0te/+z/IaxlDhNOzrrxd/F38qKZfF38Xfx9/PxN3rzXv4HXXw2/n2Gv3bfUj9BOfWf
OsR5qJ/FH/Qzjl957f7blKuY/h5/92TNPf7wda770ZYco32sO98xSvc74k//7GPuj6IJyo86+Dis
D4C78OEB8rF/q14R/ZAPlTp9rKHvSM6n330pIfFzL/nTnopxmbz9YR39kEpFXR5H/vJjDuT61/iz
t/9F7GXhrz+upzn5e9ZH+HtW9rh1f/mf7eevzif/W/if3d+5r/H/zzbhjP8t/OF1Nn/e1/NQQm+5
f/wXdh/9/JGzs+cZ/uEPAsnf7ne0qWf6kv1b+sLf7P8eK4FH/g8Ulp8BCz7IyL34J/+zAfQLI21L
9mfJTfZ3yYZ/tbfHdvH3QiT7u3BAb7K/+Z/8b/FH8VfxZ/H3ev97Fk+Wf6yYofc/vf8p/1y6UP5d
/k3cdOYv1BEkxXy8/HvpTfn3wqH8u/cPvX/p/UvvX3r/0vuXn/n+BR/+GfGf8eRb8m/OZ65C5PFa
/AWPScjm2fsP7dYj93cu+97jD5+z/f6U//H+3Ak+nMWz0ce8I/+t6+q3hp7fPc/ms+bHkhf8sRf4
dXAf0HywCBICzh0Zhxin7YNUCOiHGKOuECo4jNHPx70Y40d0Kipj9CnY8me+a5hzxn+eZ5vyG395
T/7Uj/w5iz/skz/8vM978j/ef2Nz9cOOyf8j7n/kz91u3f8Z/uwjXvBQJujn417xf1z+xAz8XpP/
8E/+0r9NUTbK/mR/8z977JX/Lf4wlij+Kv56NP9RZoo/i7/LP35//4EthdCT8q/yr/KvizqUf20w
lH+Uf+AT/BhLFX8Xfxd/X3//0/cP598/aTPKv8q/yr/Kv2a+SX22yz/LP8s/yz9BALtQ/rnnXthG
YymwKf4u/p6/P/sO+Qe2G9mk5DzorzL7TPzP3Lfo/zP8jUXhA3HOW/EHcx7Rv2f4ww+MHuEP7yN/
MfbcjrOfY4/gzzpIW8taiLP9aOJCfwupRNyHB+xDn/c7e5A8ROYq7M637dgUHnFzrWOuPfJ3Pv3U
3RsH9X/bB4Gyb6teCL7u45h9tCH5U2dMcp33Pfa73z3+zplnu8X/1v3la/nM/eUPz1l3D/ac93z0
/uzlfo/c/x5/8b91/zP84x/+yd/S3fTvtv1XRrI/u70Ai2n/s797nJP/IyJYNOMC+yiVHXUr+5P9
uRV/KyPZ3+zvlAVtCPYk/5P/wT6U/z3+/gFdUp/yv/nf/O/5+z91pPhjtxdgkf9deGxQFH9sGOR/
iz+Kv4q/sANS7392uygmlPpOY4vi7+Lv4u/i7/kdv/ZCG1H+Uf4xZUEfgpz0/nP3s8UfWo4VZ5iX
7b3FH+qO+vRT4i+eoTG1d6DvvfR/+hj2hcRojlE/8mfeM/nf3Ps1/L3fPMuRv3LOHEmsXvv9F373
rfEXe3uWR+/vecQM/sc7egfn2v6R5XwoP/ICh0N7H0of/rHOktnHg1RAWAMxTh/lnLs1X/oQDBSE
eUeBnmuoK0QoAzTHXY+wTf6soY81KsFWvZB7HvnP8Xl/17MOkr/Kydxb/Jnretfe4s9dnPMaf/F9
7f5H/u7/DP6en71c7/nu8Qffr+TPM4n/tfz5/D7j+Yd/8pf+pX/6D2wPhExkfx6Pf8QP3CDKR/xv
9jf7m/3N/mo/Lsbjl/3I/mZ/j/nvM/ln/mf5lnv5b/43/5v/zf/mf9f70eKPhQA2ofir+Kv467Hv
f7Sf6A1EWfxZ/IkcFH8vXSDXQCcg/Uv5R/kHsqD9vAjHkI/8z24//C4fjKZ/mfhRh+Z49if7g93N
/uZ/8r8X8/jj4g9y8e9u/znfe/gf/BX7PPP+4b/bfGPJrfqq/2MO+7vmXvyBzvB5Bv9t+qv5n3t6
V/aHvD/jnE//fY8/c9nnFv7swXrm/VXkhf+mS/kgKRFSSgSBOkTbBzmFwjFKxhlzD/oIphF0+vwg
GBDz5eE611I6xlzGPYsCSj/EXGjyl+d/tn4UlfUQc+/xl8+RP+0z/vTzgc74c/9b/DmHd3zt/rf4
w/fIn728/z3+z+D/DH/mxn89l/C/Lf/J38fof/qX/cn+Zn+xA/mf/M+t+DP/m//9iPyj+KP4o/ij
+KP4o/ir+LP4s/jz8ffP2Mxb79/P3j9v0397/1v8VfxV/FX8VfxV/FX8VfxV/FX89ejvH4o/i7/L
P1bs6Ltxc6zyL5BY35n4Gyra2Azo2d8//evfPyFPyth7/v6LZ/HW/I+1z+g/cvDM82d/ZeeZ58+6
P9E/z0gpf0pw5xz0+7l1f+ZBrHEP2qxzjPaPJy70t5MBkQ/Oh8+DpW6pcPjQbYPPrXkqNuNzvoLF
WvnbJ3/G5r6MM/cR/sxh7S3+GAX5YnigI3/vbXnkbz9rz875CH/meI5n+U88n+XvXTj7V/Cf+Mef
p/C8/P3J8w//Xe6Tv+Qv/cv+fKb/zf5mf/U7lsnfiqOJZWc8a5xtzApe9BX/LJzwXRMvcaKPOvkN
9YlX9if7o92xzP4sPUFXpj5lfxYe2pXsb/4n/3vtT6e9UE/oy/8WfxR/FX9iC4q/lxxsUFy+lDXu
tCz+XPggK9OfFH8uPPSrxZ/Fn8Wf1/5k2gv1hL7iz+LP4s/lP4q/Fg7FX8Wfvf9/2/t/fOpXxJ/o
rH79rfxZz/mhZ56/dvNR/u79bPzBOtb4Me+xfI2/57RkH+rgZZ0Sol9iHLLvFn/H1+y/5K+A/CXX
ebmGSsL9FCBLhYL2Gdmv4EzFYb57Ms4YpBCxdtadO8sjf8YmPcqfwA6lgSbPWZ98PduR/9ph/3uL
v+d0T/g8y5+18t85Xtdu8XfWe/GXj/ta2s/94HXv+f/J/eUjX0v74x/+yV/6l/1ZdkD7mP1fMc2f
+l/9jLha2p//yf/kf/I/+Z/8D3ZAyv/mf4kRij/+7P2HcZZ6ZWl/8VfxV/FX8VfxV/FX8ZfecclC
8UfxV/Fn8Wffvy27iC5A2kXr5uqz9PtX84zLwvHH/vKP8o/yj/KP8o/yj/KP3UHqS4s/n4s/iTvA
7r3iD/Z6a/znM9yf6l67Ff/Y79pHn7/3Zv1b7s8dWSdN/thmyHF4zFjQubO8h793vGz6N/wRmL/h
Lsc78L+0UAH4MSgPj4cL0Z7CgVAw7sdxS8e3KZc5lJD7Umct8xRoxuBPP2ehZMz2kf82dBljnLX8
7xj+s32YN/m7/9Z9mUfJGj6P8Ge9+/L8+bi/+zzK33u57ln+G+tX+XNez8f84/3l/Zb7s9+f3N/n
7xk+4v6vPX95d//n5b/nn/yn/7t91ZY8av+zf7vvzf5mf/P/e3yGbTiLf2f8mf/N/+Z/87/md8Uf
K54o/nr8/YcyU/xV/FX8Vfzl+8Hiz+Lv8o8VT/ieHt0o/9q//yj/LP8s/yz/LP+8fo9d/ln++ejv
D8q/d90p/yz/LP9cMWX597+RfyPv+oCPsn/E6PCA1C/qyJi8KW/xdx5r+fj7t6366u+/eIdgfMj8
R/mz5uz9A+ckHz/+/m/eQ92hPP7+i3mS93Lt2f2Z6zzODrkvdfMfz0PfX0Nc7m+mqRjUvS8Pegot
AuLc+fCnwDgHvI5r6WOctexNnTkQdehR/gq/+00B9/xn/OHL2rfyd0/v/xb+3p/7vvX+78Hfs3OO
Z/F/L/5fff/48/R7/sn/koNH7W/6v4Iqbegz/kf7z9rsz5K79C/9A4Hsz3Pxd/ZnT0SxpeDxWvyf
/X17/gO2U+ZmPfyTv/Qv+5P93YzkRtpD6ugFxHun/E/+563vH/O/xR8z5pp17U3292Jqs78bDPod
y/xP/rf4o/ij+GPZRnwmpH3Ed+o/wUif6pzir+KvGXPNurKi/NhWdijzv/nf/G/+N//7M/2vthwd
5jv/r7D/+pD34K+vekv84w9TxUJ/5562xYzyeHbmQG/lz1r2YF9js3v84eP8rfoS6z3KnzV/HQnY
X3exkwspJAoBpQ+fknHnzDZbzX7H6Lc+x9mXD0pKP0qCwjjnjD9CTL9z2Nf2Vr3qdy791uc66vKg
/gh/zsq8uc+f8j+7/8bi5Wzszz2hM/6chQ80z+Wd6bc+x6mz9xl/cXVd/EEx/JO/3/UfPeIDTf1S
d+i3Psepp3/Zn+zv0pu3+l/0iA809Uudo9/6HKee/qV/6V/6hy3I/ryefxX/Ff8d8190hw9ESa7I
R5+7VV/qc5x6/jf/m//N/2IL8r/539fe/xZ/FH8Uf1zHWdhOPhBl8VfxZ/H3nnOgF+YiUz+ol3+U
f5R/lH9gC8o/yj/KP/YYEt+o3ySegMq/yr/Kv3YdQS/wHXwgyvfMv9A39PA99Q+d9txviX9ZM+/5
7P3/hL/2CJ5zH9rQPJd3pN/6HKf+6P3h9VeTAP7Vl/x1uXlXBYMh+vnQp6BRR0hoM0aJAVQxt+rL
mMJECblmtfZ1k798mDP562gnf/fnX2clUOEckGdhfPbLnz0g/0XYt/JnHbz4Z50nn0f5i9uj/Dnv
vL/833r/Z/kzP/7X8s+zDv/Pkf/kL/3L/mR/8Ov68uxv/if/m//9jPi7+KP4o/ij+KP4o/ir+HO9
nyv+Lv4u/i7+Lv5+/vuH3r+v708e/f6j/Kv8q/yr/Kv8q/yr/Kv8q98/rPip/Kv8q/zr++dfvCvD
ZhHDQh+V/yELxEh8plzoMx/lvy1/OS9nfzb/4q5/wp/1fDg3H+5zjP/pF0fGIe9Jm3Mf++/d3zH2
+asJYP8lQkgQjClA3F8cFDSFibFJCp/zFZS5nzzO1rH+yN+1zGff+TLdPstn+Xs+11nKc55FHrf4
M+56708fNPeb9z/jP3nOOvvcuz/jR/7u7xj7fQX/r75//Jds9PyT//R/+RhsovZRu0k5be6sM/+t
9jf7k/1RttK/9A+7AmV/Fg7Z3+scYfoL6yCV/7md/4GPcmT+pX6JYfFv8W/+N/+b/8VaFn/oH/Qb
xujTX1gHr/xv/veZ97/KlzJU/FH8UfxR/FH8gTct/tA/FH/0/mPGCGd19KX4s/iz+HP/jwnVCUpI
O9r7v4WH/mXak+LP4s/iz2v90G48+/4HvdLWsKP72PdZ+ief9+CPf5n2wjr3eyb+YJ3nco+3vv8Q
T0r34JxHeo/7s7/nPu7/17UF9q+72J0LcWcVnRJBooQUWp0kcxVe52k8j2vcc66ZgjTHrVPOX38z
n/35r1Uo517yn2fcplzOx1zO7F625U8pz3n/uWab8rLXPf7szX6shajLT/6OU0KUZ/zfcv9H+Hue
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
HOYz5nznTd7ytXRP9nE+fdSZA7mfc+e8NSP+YANeYCNe4kT//DhXPI/zaYd/8pf+bYqwkfqhvqhX
9jsn/cv+ZH93fVFPpu+hjt5YqlPokPPpo84cSD1z7py3Zux7MuZ858U//z9lAPlI/paeqFPokfpC
H/X0D1R2eyJWE6c1I/ujToENdUicpu6pd5ZiOufTl/ylf9kftGLXJ3VFvVLPnANe6d+OlziBy/yA
G23xFEfn06bOHMhx5895a8aaw3zGnO+8yVu+lu7JPs6njzpzIPdz7py3ZsQfbMALbMRLnOifH+eK
53E+7X8d/w2CKARCIARCIARCIARCIARCIARC0lXgGQAAA3dJREFUIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIAT+FgT+P0RXhDu1pm7MAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378718</attachid>
            <date>2019-09-13 00:31:51 -0700</date>
            <delta_ts>2019-09-15 21:33:31 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>201675.diff</filename>
            <type>text/plain</type>
            <size>112787</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2Fu
dmFzLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZh
cy5qc29uCmluZGV4IDc5OGI5OTFjZDJiLi45ZmNiYTJkODA3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uCkBAIC0xOSwx
MSArMTksMTUgQEAKICAgICAgICAgICAgICJlbnVtIjogWyJjYW52YXMtMmQiLCAiYml0bWFwcmVu
ZGVyZXIiLCAid2ViZ2wiLCAid2ViZ2wyIiwgIndlYmdwdSJdLAogICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlRoZSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGJhY2tpbmcgdGhlIGNhbnZh
cyBlbGVtZW50LiIKICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIlBy
b2dyYW1UeXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAi
ZW51bSI6IFsiY29tcHV0ZSIsICJyZW5kZXIiXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAg
ICAgICAgICAiaWQiOiAiU2hhZGVyVHlwZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmci
LAotICAgICAgICAgICAgImVudW0iOiBbImZyYWdtZW50IiwgInZlcnRleCJdLAotICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlNoYWRlciB0eXBlLiBXZWJHTCBzdXBwb3J0cyB2ZXJ0ZXggYW5k
IGZyYWdtZW50IHNoYWRlcnMuIgorICAgICAgICAgICAgImVudW0iOiBbImNvbXB1dGUiLCAiZnJh
Z21lbnQiLCAidmVydGV4Il0KICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlk
IjogIkNvbnRleHRBdHRyaWJ1dGVzIiwKQEAgLTEzNiw3ICsxNDAsOCBAQAogICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic2hhZGVyVHlwZSIsICIkcmVmIjogIlNoYWRlclR5cGUiIH0KICAgICAg
ICAgICAgIF0sCiAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNvbnRlbnQiLCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImVudHJ5UG9pbnQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlIH0K
ICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpAQCAtMTQ1LDcgKzE1MCw4IEBA
CiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InByb2dyYW1JZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNoYWRlclR5cGUiLCAiJHJlZiI6ICJTaGFkZXJUeXBlIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3RyaW5nIiB9CisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJlbnRyeVBvaW50IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKQEAgLTIyMywxNCAr
MjI5LDE1IEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1DcmVhdGVk
IiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCIsICJkZXNjcmlwdGlvbiI6ICJDYW52YXMg
aWRlbnRpZmllci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAi
JHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3JhbSBpZGVudGlmaWVyLiIg
fQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJ
ZCJ9ICwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1JZCIsICIkcmVmIjogIlBy
b2dyYW1JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1UeXBlIiwgIiRy
ZWYiOiAiUHJvZ3JhbVR5cGUiIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAg
ewogICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3JhbURlbGV0ZWQiLAogICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAiJHJl
ZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3JhbSBpZGVudGlmaWVyLiIgfQor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlk
IiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcAppbmRleCA3N2VjY2Jk
NzIzOS4uMTIwM2RjZTJhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcApAQCAtNTksMjEgKzU5LDE0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIFdITFNMIHsKIAotc3RydWN0IFNoYWRlck1vZHVsZSB7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0KLSAgICBTaGFkZXJNb2R1
bGUoY29uc3QgU3RyaW5nJiB3aGxzbFNvdXJjZSkKLSAgICAgICAgOiB3aGxzbFNvdXJjZSh3aGxz
bFNvdXJjZSkKLSAgICB7Ci0gICAgfQotCi0gICAgU3RyaW5nIHdobHNsU291cmNlOwotfTsKLQor
U2hhZGVyTW9kdWxlOjpTaGFkZXJNb2R1bGUoY29uc3QgU3RyaW5nJiB3aGxzbFNvdXJjZSkKKyAg
ICA6IHdobHNsU291cmNlKHdobHNsU291cmNlKQorewogfQogCi19Cit9IC8vIG5hbWVzcGFjZSBX
SExTTAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBzdGQgewogCkBAIC04
Miw3ICs3NSw3IEBAIHZvaWQgZGVmYXVsdF9kZWxldGU8V2ViQ29yZTo6V0hMU0w6OlNoYWRlck1v
ZHVsZT46Om9wZXJhdG9yKCkoV2ViQ29yZTo6V0hMU0w6OlNoCiAgICAgZGVsZXRlIHNoYWRlck1v
ZHVsZTsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2Ugc3RkCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQ
cmVwYXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBh
cmUuaAppbmRleCA2OTdmOWJlZDVhMC4uMDhlYTM5OGVkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5oCkBAIC0zOCwxMiArMzgs
MTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV0hMU0wgewogCi0vLyBIaWRl
IHRoZSBjb250ZW50cyBvZiB0aGUgU2hhZGVyTW9kdWxlLiBDbGllbnRzIG9mIHRoZSBjb21waWxl
ciBzaG91bGRuJ3QgY2FyZSB3aGF0J3MgaW5zaWRlIGl0Lgotc3RydWN0IFNoYWRlck1vZHVsZTsK
K3N0cnVjdCBTaGFkZXJNb2R1bGUgeworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRF
RDsKIAotfQorICAgIFNoYWRlck1vZHVsZShjb25zdCBTdHJpbmcmIHdobHNsU291cmNlKTsKIAot
fQorICAgIFN0cmluZyB3aGxzbFNvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdITFNMCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIHN0ZCB7CiAKQEAgLTUxLDcgKzU2
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgZGVmYXVsdF9kZWxldGU8V2ViQ29yZTo6V0hMU0w6OlNo
YWRlck1vZHVsZT4gewogICAgIHZvaWQgb3BlcmF0b3IoKShXZWJDb3JlOjpXSExTTDo6U2hhZGVy
TW9kdWxlKikgY29uc3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBzdGQKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCAxM2MyNDQ4OWM3MS4uNWU3YzE2NzdjZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQ
aXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lLmNwcApAQCAtMjgsMTggKzI4LDQzIEBACiAKICNpZiBFTkFCTEUoV0VCR1BV
KQogCisjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVUNvbXB1dGVQaXBl
bGluZTo6Y3JlYXRlKFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUpCitSZWY8
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZShXZWJH
UFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwg
T3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUocGlw
ZWxpbmUpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
KGRldmljZSwgV1RGTW92ZShwaXBlbGluZSksIGNvbXB1dGVTaGFkZXIpKTsKIH0KIAotV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lOjpXZWJHUFVDb21wdXRlUGlwZWxpbmUoUmVmUHRyPEdQVUNvbXB1dGVQ
aXBlbGluZT4mJiBwaXBlbGluZSkKLSAgICA6IG1fY29tcHV0ZVBpcGVsaW5lIHsgV1RGTW92ZShw
aXBlbGluZSkgfQorV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpXZWJHUFVDb21wdXRlUGlwZWxpbmUo
V2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxp
bmUsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBjb21wdXRlU2hhZGVyKQor
ICAgIDogV2ViR1BVUGlwZWxpbmUoZGV2aWNlKQorICAgICwgbV9jb21wdXRlUGlwZWxpbmUgeyBX
VEZNb3ZlKHBpcGVsaW5lKSB9CisgICAgLCBtX2NvbXB1dGVTaGFkZXIoY29tcHV0ZVNoYWRlcikK
IHsKIH0KIAorV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjp+V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKCkg
PSBkZWZhdWx0OworCitib29sIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6cmVjb21waWxlKCkKK3sK
KyAgICBpZiAobV9jb21wdXRlUGlwZWxpbmUpIHsKKyAgICAgICAgaWYgKG1fY29tcHV0ZVNoYWRl
cikgeworICAgICAgICAgICAgaWYgKGF1dG8mIHdlYkdQVUNvbXB1dGVTaGFkZXJNb2R1bGUgPSBt
X2NvbXB1dGVTaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0
byogZ3B1Q29tcHV0ZVNoYWRlck1vZHVsZSA9IHdlYkdQVUNvbXB1dGVTaGFkZXJNb2R1bGUtPm1v
ZHVsZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3Jp
cHRvciBjb21wdXRlU3RhZ2UobWFrZVJlZigqZ3B1Q29tcHV0ZVNoYWRlck1vZHVsZSksIHsgbV9j
b21wdXRlU2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG1fY29tcHV0ZVBpcGVsaW5lLT5yZWNvbXBpbGUoY29tcHV0ZVN0YWdlKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21wdXRlUGlwZWxpbmUuaAppbmRleCA5YTc1OGMwOWUyYi4uNzJhNDVhN2IzMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGlu
ZS5oCkBAIC0yNywyNCArMjcsMzYgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRl
ICJHUFVDb21wdXRlUGlwZWxpbmUuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQ29tcHV0ZVBpcGVsaW5l
PiB7CitjbGFzcyBHUFVDb21wdXRlUGlwZWxpbmU7CitjbGFzcyBXZWJHUFVEZXZpY2U7CisKK2Ns
YXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQaXBlbGluZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZShS
ZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmKTsKKyAgICB2aXJ0dWFsIH5XZWJHUFVDb21wdXRl
UGlwZWxpbmUoKTsKKworICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVh
dGUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiwgT3B0aW9uYWw8
V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+KTsKKworICAgIGJvb2wgaXNDb21wdXRlUGlwZWxp
bmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBjb25zdCBHUFVDb21wdXRlUGlwZWxp
bmUqIGNvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZVBpcGVsaW5lLmdl
dCgpOyB9CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVT
aGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVTaGFkZXI7IH0KKworICAgIGJvb2wgcmVj
b21waWxlKCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFJlZlB0cjxH
UFVDb21wdXRlUGlwZWxpbmU+JiYpOworICAgIFdlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVE
ZXZpY2UmLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmLCBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4pOwogCiAgICAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gbV9j
b21wdXRlUGlwZWxpbmU7CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+
IG1fY29tcHV0ZVNoYWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19XRUJHUFVQSVBFTElORShXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlw
ZWxpbmUsIGlzQ29tcHV0ZVBpcGVsaW5lKCkpCisKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQ
aXBlbGluZS5pZGwKaW5kZXggYTU1MmJhOTJmZDIuLjRiOGE3N2U0ODY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5p
ZGwKQEAgLTI3LDcgKzI3LDYgQEAKIFsKICAgICBDb25kaXRpb25hbD1XRUJHUFUsCiAgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAg
ICBJbnRlcmZhY2VOYW1lPUdQVUNvbXB1dGVQaXBlbGluZQogXSBpbnRlcmZhY2UgV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmNwcAppbmRleCBmYjk1ZGVkYjBjZi4uMTljNmIwNzVhYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMzksOCArMzks
MTAgQEAKICNpbmNsdWRlICJHUFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BVQnVmZmVy
RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVUNvbW1hbmRCdWZmZXIuaCIKKyNpbmNsdWRlICJH
UFVDb21wdXRlUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5j
bHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVTYW1wbGVyLmgiCiAjaW5jbHVkZSAiR1BVU2FtcGxl
ckRlc2NyaXB0b3IuaCIKQEAgLTIwOCwyOCArMjEwLDQ2IEBAIFJlZjxXZWJHUFVTaGFkZXJNb2R1
bGU+IFdlYkdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVVNoYWRlck1v
ZHVsCiAgICAgcmV0dXJuIFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFdURk1vdmUobW9kdWxl
KSk7CiB9CiAKLVJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3Jl
YXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQogewogICAgIG1fZXJyb3JTY29wZXMtPnNldEVycm9yUHJlZml4KCJHUFVEZXZp
Y2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUoKTogIik7CiAKICAgICBhdXRvIGdwdURlc2NyaXB0b3Ig
PSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcihtX2Vycm9y
U2NvcGVzKTsKICAgICBpZiAoIWdwdURlc2NyaXB0b3IpCi0gICAgICAgIHJldHVybiBXZWJHUFVS
ZW5kZXJQaXBlbGluZTo6Y3JlYXRlKG51bGxwdHIpOworICAgICAgICByZXR1cm4gV2ViR1BVUmVu
ZGVyUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwgV1RGOjpudWxsb3B0LCBXVEY6Om51
bGxvcHQpOwogCi0gICAgYXV0byBwaXBlbGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVSZW5kZXJQ
aXBlbGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7Ci0gICAgcmV0dXJuIFdlYkdQ
VVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV1RGTW92ZShwaXBlbGluZSkpOworICAgIGF1dG8gZ3B1
UGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoKmdwdURlc2NyaXB0
b3IsIG1fZXJyb3JTY29wZXMpOworCisgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEgdmVy
dGV4U2hhZGVyID0geyBkZXNjcmlwdG9yLnZlcnRleFN0YWdlLm1vZHVsZSwgZGVzY3JpcHRvci52
ZXJ0ZXhTdGFnZS5lbnRyeVBvaW50IH07CisKKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXI7CisgICAgaWYgKGRlc2NyaXB0b3IuZnJhZ21lbnRT
dGFnZSkKKyAgICAgICAgZnJhZ21lbnRTaGFkZXIgPSB7IHsgZGVzY3JpcHRvci5mcmFnbWVudFN0
YWdlLnZhbHVlKCkubW9kdWxlLCBkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UudmFsdWUoKS5lbnRy
eVBvaW50IH0gfTsKKworICAgIGF1dG8gd2ViR1BVUGlwZWxpbmUgPSBXZWJHUFVSZW5kZXJQaXBl
bGluZTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGdwdVBpcGVsaW5lKSwgdmVydGV4U2hhZGVyLCBm
cmFnbWVudFNoYWRlcik7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0
ZVdlYkdQVVBpcGVsaW5lKCp0aGlzLCB3ZWJHUFVQaXBlbGluZS5nZXQoKSk7CisKKyAgICByZXR1
cm4gd2ViR1BVUGlwZWxpbmU7CiB9CiAKLVJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQ
VURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBlbGlu
ZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5l
PiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIG1fZXJyb3JTY29wZXMtPnNl
dEVycm9yUHJlZml4KCJHUFVEZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCk6ICIpOwogCiAg
ICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRvcikK
LSAgICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKG51bGxwdHIpOwor
ICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIG51bGxw
dHIsIFdURjo6bnVsbG9wdCk7CiAKLSAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNy
ZWF0ZUNvbXB1dGVQaXBlbGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7Ci0gICAg
cmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpKTsK
KyAgICBhdXRvIGdwdVBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7CisKKyAgICBXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YSBjb21wdXRlU2hhZGVyID0geyBkZXNjcmlwdG9yLmNvbXB1dGVTdGFnZS5tb2R1
bGUsIGRlc2NyaXB0b3IuY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQgfTsKKworICAgIGF1dG8gd2Vi
R1BVUGlwZWxpbmUgPSBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92
ZShncHVQaXBlbGluZSksIGNvbXB1dGVTaGFkZXIpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZSgqdGhpcywgd2ViR1BVUGlwZWxpbmUuZ2V0
KCkpOworCisgICAgcmV0dXJuIHdlYkdQVVBpcGVsaW5lOwogfQogCiBSZWY8V2ViR1BVQ29tbWFu
ZEVuY29kZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tbWFuZEVuY29kZXIoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAppbmRleCBkOThmMjNj
NjczMy4uMjFiNTQxN2MyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5oCkBAIC05OSw4ICs5OSw4IEBAIHB1YmxpYzoKICAgICBSZWY8V2ViR1BVQmlu
ZEdyb3VwPiBjcmVhdGVCaW5kR3JvdXAoY29uc3QgV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvciYp
IGNvbnN0OwogCiAgICAgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVyTW9kdWxl
KGNvbnN0IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKLSAgICBSZWY8V2Vi
R1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvciYpIGNvbnN0OwotICAgIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxp
bmU+IGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yJikgY29uc3Q7CisgICAgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGVSZW5k
ZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKTsKKyAgICBS
ZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYpOwogCiAgICAgUmVmPFdlYkdQVUNvbW1hbmRF
bmNvZGVyPiBjcmVhdGVDb21tYW5kRW5jb2RlcigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEyMjgwMzE3MzBmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwCkBAIC0wLDAgKzEs
NzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BV
UGlwZWxpbmUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitIYXNoTWFwPFdlYkdQVVBp
cGVsaW5lKiwgV2ViR1BVRGV2aWNlKj4mIFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXMoY29uc3Qg
TG9ja0hvbGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8V2ViR1BV
UGlwZWxpbmUqLCBXZWJHUFVEZXZpY2UqPj4gaW5zdGFuY2VzOworICAgIHJldHVybiBpbnN0YW5j
ZXM7Cit9CisKK0xvY2smIFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXNNdXRleCgpCit7CisgICAg
c3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgaW5pdGlhbGl6ZU11dGV4OworICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVN
dXRleCwgW10geworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1
cm4gbXV0ZXguZ2V0KCk7Cit9CisKK1dlYkdQVVBpcGVsaW5lOjpXZWJHUFVQaXBlbGluZShXZWJH
UFVEZXZpY2UmIGRldmljZSkKKyAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChkZXZpY2Uu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQoreworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5j
ZXNNdXRleCgpKTsKKyAgICBpbnN0YW5jZXMobG9jaykuYWRkKHRoaXMsICZkZXZpY2UpOworfQor
CitXZWJHUFVQaXBlbGluZTo6fldlYkdQVVBpcGVsaW5lKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoKnRoaXMpOworCisgICAgewor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIEFTU0VS
VChpbnN0YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOworICAgICAgICBpbnN0YW5jZXMobG9j
aykucmVtb3ZlKHRoaXMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4zZmQxZTFkY2VlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIldlYkdQVVNoYWRl
ck1vZHVsZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OworY2xhc3MgV2ViR1BVRGV2aWNlOworCitjbGFzcyBXZWJHUFVQaXBlbGluZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYkdQVVBpcGVsaW5lPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
V2ViR1BVUGlwZWxpbmUoKTsKKworICAgIHN0YXRpYyBIYXNoTWFwPFdlYkdQVVBpcGVsaW5lKiwg
V2ViR1BVRGV2aWNlKj4mIGluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgc3RhdGlj
IExvY2smIGluc3RhbmNlc011dGV4KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQaXBl
bGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29tcHV0
ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7IH0KKworICAgIHN0cnVjdCBTaGFkZXJEYXRhIHsKKyAgICAgICAg
UmVmUHRyPFdlYkdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOworICAgICAgICBTdHJpbmcgZW50cnlQ
b2ludDsKKyAgICB9OworICAgIHZpcnR1YWwgYm9vbCByZWNvbXBpbGUoKSA9IDA7CisKK3Byb3Rl
Y3RlZDoKKyAgICBXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmKTsKKworICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dFQkdQVVBJ
UEVMSU5FKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGljYXRlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFRvVmFsdWVUeXBlTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpIHsgcmV0dXJuIHBpcGVsaW5lLnBy
ZWRpY2F0ZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaAppbmRleCBmZmJj
NWI4MTFkMy4uMWE0NDE0YWFjMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5o
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBXZWJHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3IgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JC
YXNlIHsKICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3I+IHRyeUNy
ZWF0ZUdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcigpIGNvbnN0OwogCi0gICAgUmVmUHRy
PGNvbnN0IFdlYkdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOworICAgIFJlZlB0cjxXZWJHUFVTaGFk
ZXJNb2R1bGU+IG1vZHVsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNw
cAppbmRleCAxZGM0ZGRmMWZmZC4uY2FmYmJjMWY5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKQEAgLTI4LDE4
ICsyOCw1MiBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lLmgiCisj
aW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgi
CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVUmVuZGVy
UGlwZWxpbmU6OmNyZWF0ZShSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUpCitS
ZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV2Vi
R1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwg
T3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9u
YWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVVJlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUp
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVUmVuZGVyUGlwZWxpbmUoZGV2aWNl
LCBXVEZNb3ZlKHBpcGVsaW5lKSwgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcikpOwogfQog
Ci1XZWJHUFVSZW5kZXJQaXBlbGluZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUoUmVmUHRyPEdQVVJl
bmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lKQotICAgIDogbV9yZW5kZXJQaXBlbGluZShXVEZNb3Zl
KHBpcGVsaW5lKSkKK1dlYkdQVVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZShX
ZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5l
LCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRp
b25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpCisgICAgOiBX
ZWJHUFVQaXBlbGluZShkZXZpY2UpCisgICAgLCBtX3JlbmRlclBpcGVsaW5lIHsgV1RGTW92ZShw
aXBlbGluZSkgfQorICAgICwgbV92ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVyKQorICAgICwgbV9m
cmFnbWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikKIHsKIH0KIAorV2ViR1BVUmVuZGVyUGlwZWxp
bmU6On5XZWJHUFVSZW5kZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBXZWJHUFVSZW5k
ZXJQaXBlbGluZTo6cmVjb21waWxlKCkKK3sKKyAgICBpZiAobV9yZW5kZXJQaXBlbGluZSkgewor
ICAgICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKKyAgICAgICAgICAgIGlmIChhdXRvJiB3ZWJH
UFVWZXJ0ZXhTaGFkZXJNb2R1bGUgPSBtX3ZlcnRleFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgewor
ICAgICAgICAgICAgICAgIGlmIChhdXRvKiBncHVWZXJ0ZXhTaGFkZXJNb2R1bGUgPSB3ZWJHUFVW
ZXJ0ZXhTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIEdQVVBy
b2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFnZShtYWtlUmVmKCpncHVWZXJ0ZXhT
aGFkZXJNb2R1bGUpLCB7IG1fdmVydGV4U2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgT3B0aW9uYWw8R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
PiBmcmFnbWVudFN0YWdlOworICAgICAgICAgICAgICAgICAgICBpZiAobV9mcmFnbWVudFNoYWRl
cikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8mIHdlYkdQVUZyYWdtZW50U2hh
ZGVyTW9kdWxlID0gbV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBncHVGcmFnbWVudFNoYWRlck1vZHVsZSA9IHdl
YkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnJhZ21lbnRTdGFnZSA9IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRv
cihtYWtlUmVmKCpncHVGcmFnbWVudFNoYWRlck1vZHVsZSksIHsgbV9mcmFnbWVudFNoYWRlci52
YWx1ZSgpLmVudHJ5UG9pbnQgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcmVuZGVyUGlwZWxp
bmUtPnJlY29tcGlsZSh2ZXJ0ZXhTdGFnZSwgZnJhZ21lbnRTdGFnZSk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBp
cGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBl
bGluZS5oCmluZGV4IGYzOWNmZWQ3MDkzLi4zMWM3ZWE0OGQ2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oCkBAIC0yNywy
NCArMjcsMzggQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVSZW5kZXJQ
aXBlbGluZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGlu
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVJlbmRlclBpcGVsaW5lPiB7CitjbGFzcyBHUFVS
ZW5kZXJQaXBlbGluZTsKK2NsYXNzIFdlYkdQVURldmljZTsKKworY2xhc3MgV2ViR1BVUmVuZGVy
UGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgV2ViR1BVUGlwZWxpbmUgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZShSZWZQdHI8R1BVUmVuZGVyUGlw
ZWxpbmU+JiYpOworICAgIHZpcnR1YWwgfldlYkdQVVJlbmRlclBpcGVsaW5lKCk7CisKKyAgICBz
dGF0aWMgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoV2ViR1BVRGV2aWNlJiwgUmVm
UHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVy
RGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4g
ZnJhZ21lbnRTaGFkZXIpOworCisgICAgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmUqIHJlbmRlclBpcGVs
aW5lKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJQaXBlbGluZS5nZXQoKTsgfQorICAgIE9wdGlv
bmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIoKSBjb25zdCB7IHJl
dHVybiBtX3ZlcnRleFNoYWRlcjsgfQorICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFk
ZXJEYXRhPiBmcmFnbWVudFNoYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRTaGFkZXI7
IH0KKworICAgIGJvb2wgcmVjb21waWxlKCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVUmVuZGVy
UGlwZWxpbmUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmKTsKKyAgICBXZWJHUFVSZW5kZXJQ
aXBlbGluZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIE9wdGlv
bmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdl
YkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcik7CiAKICAgICBSZWZQdHI8
R1BVUmVuZGVyUGlwZWxpbmU+IG1fcmVuZGVyUGlwZWxpbmU7CisgICAgT3B0aW9uYWw8V2ViR1BV
UGlwZWxpbmU6OlNoYWRlckRhdGE+IG1fdmVydGV4U2hhZGVyOworICAgIE9wdGlvbmFsPFdlYkdQ
VVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBtX2ZyYWdtZW50U2hhZGVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dFQkdQVVBJUEVMSU5FKFdl
YkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lLCBpc1JlbmRlclBpcGVsaW5lKCkpCisKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsCmluZGV4IGE5ODlmZDQxMGFjLi5hOWI0MDAw
YjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmlkbApAQCAtMjcsNyArMjcsNiBAQAogWwogICAgIENvbmRpdGlvbmFs
PVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAogICAgIEludGVyZmFjZU5hbWU9R1BVUmVuZGVyUGlwZWxpbmUKIF0gaW50
ZXJmYWNlIFdlYkdQVVJlbmRlclBpcGVsaW5lIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCmluZGV4IDgzNzcwNTNkMWFjLi43
NGFhZGRiNTM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2hhZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2hhZGVyTW9kdWxlLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgV2ViR1BVU2hhZGVyTW9k
dWxlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVU2hhZGVyTW9kdWxlPiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxXZWJHUFVTaGFkZXJNb2R1bGU+IGNyZWF0ZShSZWZQdHI8R1BVU2hhZGVy
TW9kdWxlPiYmKTsKIAotICAgIGNvbnN0IEdQVVNoYWRlck1vZHVsZSogbW9kdWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9tb2R1bGUuZ2V0KCk7IH0KKyAgICBHUFVTaGFkZXJNb2R1bGUqIG1vZHVsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViR1BV
U2hhZGVyTW9kdWxlKFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCA1N2U3NTBlNDE4MC4uMzE0MGI2NTQ5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNzEsNiArMzcx
LDcgQEAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAK
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZUVycm9yU2NvcGVzLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwCitNb2R1
bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVs
aW5lTGF5b3V0LmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
LmNwcApAQCAtMTg5MCw2ICsxODkxLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVFcnJvclNjb3Blcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWYWxp
ZGF0aW9uRXJyb3IuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmODc0MjE0NThl
NC4uYjZiMmRhOGViNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzk0LDYgKzEwMzk0LDEwIEBACiAJCTkxNzVDRTU5MjFF
MjgxRUMwMERGMkMyOCAvKiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0luc3BlY3RvckF1ZGl0QWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxNzVD
RTVBMjFFMjgxRUQwMERGMkMyNyAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxNzVDRTVBMjFF
MjgxRUQwMERGMkMyOCAvKiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJp
bGl0eU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTg2RjNCMzIzMjlG
QjA1MDBBRkY4NTcgLyogR1BVUGlwZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR1BVUGlwZWxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE4NkYz
QjYyMzI5RkI0RTAwQUZGODU3IC8qIFdlYkdQVVBpcGVsaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTE4NkYzQjcyMzI5RkI0RjAwQUZGODU3IC8qIFdlYkdQVVBpcGVsaW5l
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxODZGM0JBMjMyOUZFNjgwMEFGRjg1NyAvKiBH
UFVQaXBlbGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQ
aXBlbGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQjhGMEIzMjE5NTNE
NjUwMDBDMkIwMCAvKiBDZXJ0aWZpY2F0ZUluZm9CYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENlcnRpZmljYXRlSW5mb0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTFCOTUyMjIxRjU4QTU4MDAwOTMxREMyIC8qIFJlY29yZGluZ1N3aXp6bGVUeXBl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWNvcmRpbmdTd2l6emxlVHlwZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODM0Myw2ICsxODM0Nyw4IEBACiAJCQkJ
RDA4QUEwMkYyMjBEMEJENTAwNThDNTAyIC8qIEdQVUxvYWRPcC5oICovLAogCQkJCUQwOUFGQjM3
MjJEN0Q1QzYwMEM0NTM4QyAvKiBHUFVPYmplY3RCYXNlLmggKi8sCiAJCQkJRDA5QUZCMTkyMkQ2
Njk4QTAwQzQ1MzhDIC8qIEdQVU91dE9mTWVtb3J5RXJyb3IuaCAqLywKKwkJCQk5MTg2RjNCQTIz
MjlGRTY4MDBBRkY4NTcgLyogR1BVUGlwZWxpbmUuY3BwICovLAorCQkJCTkxODZGM0IzMjMyOUZC
MDUwMEFGRjg1NyAvKiBHUFVQaXBlbGluZS5oICovLAogCQkJCTMxMkZGOEM0MjFBNEMyRjQwMEVC
MTk5RCAvKiBHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJRDAwMzI4ODcyMUM5
QTRFNTAwNjIyQUE2IC8qIEdQVVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKIAkJCQlEMDAzMjg4NjIx
QzlBNEU1MDA2MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuaCAqLywKQEAgLTI2MDc3LDYgKzI2
MDgzLDggQEAKIAkJCQlEMDlBRkIwMzIyRDQwQ0M1MDBDNDUzOEMgLyogV2ViR1BVRGV2aWNlRXJy
b3JTY29wZXMuaWRsICovLAogCQkJCUQwOUFDMDBBMjMxNzM1QkUwMDE4Nzc2MiAvKiBXZWJHUFVE
ZXZpY2VFdmVudEhhbmRsZXIuaCAqLywKIAkJCQlEMDlBQzAwQjIzMTczNUJFMDAxODc3NjIgLyog
V2ViR1BVRGV2aWNlRXZlbnRIYW5kbGVyLmlkbCAqLywKKwkJCQk5MTg2RjNCNjIzMjlGQjRFMDBB
RkY4NTcgLyogV2ViR1BVUGlwZWxpbmUuY3BwICovLAorCQkJCTkxODZGM0I3MjMyOUZCNEYwMEFG
Rjg1NyAvKiBXZWJHUFVQaXBlbGluZS5oICovLAogCQkJCUQwQzQxOUYwMjE4M0VCMzEwMDlFQzFE
RSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJRDBDNDE5RjEyMTgz
RUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsICovLAogCQkJ
CUQwNUE5OUU1MjFDOUJGMkMwMDAzMkI3NSAvKiBXZWJHUFVQaXBlbGluZUxheW91dC5jcHAgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRleCA2YmEz
ODFhOWRmZS4uNTA2NTQ5NDhkMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xQcm9ncmFtLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKQogCisj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgi
CkBAIC02MCw2ICs2Miw3IEBAIFJlZjxXZWJHTFByb2dyYW0+IFdlYkdMUHJvZ3JhbTo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xQcm9ncmFtOjpXZWJHTFBy
b2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRP
YmplY3QoY3R4KQorICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGN0eC5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCiB7CiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFu
Y2VzTXV0ZXgoKSk7CkBAIC03MSw2ICs3NCw4IEBAIFdlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFt
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xQcm9ncmFtOjp+V2ViR0xQ
cm9ncmFtKCkKIHsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2Vi
R0xQcm9ncmFtKCp0aGlzKTsKKwogICAgIGRlbGV0ZU9iamVjdCgwKTsKIAogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXggODhhODk3OWQ0NWYuLjY3
NjlkMWQ0ZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaApA
QCAtMzIsNiArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogY2xhc3Mg
V2ViR0xTaGFkZXI7CiAKIGNsYXNzIFdlYkdMUHJvZ3JhbSBmaW5hbCA6IHB1YmxpYyBXZWJHTFNo
YXJlZE9iamVjdCB7CkBAIC00Miw2ICs0NCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSGFzaE1h
cDxXZWJHTFByb2dyYW0qLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4mIGluc3RhbmNlcyhj
b25zdCBMb2NrSG9sZGVyJik7CiAgICAgc3RhdGljIExvY2smIGluc3RhbmNlc011dGV4KCk7CiAK
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CisKICAgICB1bnNpZ25lZCBu
dW1BY3RpdmVBdHRyaWJMb2NhdGlvbnMoKTsKICAgICBHQzNEaW50IGdldEFjdGl2ZUF0dHJpYkxv
Y2F0aW9uKEdDM0R1aW50IGluZGV4KTsKIApAQCAtNzEsNiArNzUsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgY2FjaGVBY3RpdmVBdHRyaWJMb2NhdGlvbnMoR3JhcGhpY3NDb250ZXh0M0QqKTsKICAg
ICB2b2lkIGNhY2hlSW5mb0lmTmVlZGVkKCk7CiAKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKICAgICBWZWN0b3I8R0MzRGludD4gbV9hY3Rp
dmVBdHRyaWJMb2NhdGlvbnM7CiAKICAgICBHQzNEaW50IG1fbGlua1N0YXR1cyB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAKaW5kZXggMjI0ZTM0ZDgzMjcuLjZlZWE5MWZiMTk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzaG93
SGlnaHRsaWdodCgpCiAgICAgewotICAgICAgICBpZiAoIW1fcHJvZ3JhbSB8fCBMSUtFTFkoIUlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQobV9jb250
ZXh0LCAqbV9wcm9ncmFtKSkpCisgICAgICAgIGlmICghbV9wcm9ncmFtIHx8IExJS0VMWSghSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKG1fY29udGV4
dCwgKm1fcHJvZ3JhbSkpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmIChoYXNC
dWZmZXJCaW5kaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9CSU5ESU5HKSkgewpA
QCAtMTc1NCw3ICsxNzU0LDcgQEAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Y3JlYXRlUHJvZ3JhbSgpCiAgICAgYXV0byBwcm9ncmFtID0gV2ViR0xQcm9n
cmFtOjpjcmVhdGUoKnRoaXMpOwogICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgpKTsK
IAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbSgqdGhpcywg
cHJvZ3JhbS5nZXQoKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVX
ZWJHTFByb2dyYW0oKnRoaXMsIHByb2dyYW0uZ2V0KCkpOwogCiAgICAgcmV0dXJuIHByb2dyYW07
CiB9CkBAIC0xODQwLDcgKzE4NDAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQogdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSkKIHsKICAgICBpZiAocHJvZ3JhbSkKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbSgqdGhpcywgKnByb2dyYW0pOworICAgICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtKCpwcm9ncmFtKTsKIAog
ICAgIGRlbGV0ZU9iamVjdChwcm9ncmFtKTsKICAgICAvLyBXZSBkb24ndCByZXNldCBtX2N1cnJl
bnRQcm9ncmFtIHRvIDAgaGVyZSBiZWNhdXNlIHRoZSBkZWxldGlvbiBvZiB0aGUKQEAgLTIyNTUs
NyArMjI1NSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0FycmF5cyhH
QzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6CiAgICAgaWYgKCF2YWxpZGF0ZURy
YXdBcnJheXMoImRyYXdBcnJheXMiLCBtb2RlLCBmaXJzdCwgY291bnQsIDApKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkp
CisgICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpp
c1dlYkdMUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CkBAIC0yMzA5LDcgKzIzMDksNyBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyhHQzNEZW51bSBt
b2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDMwogICAgIGlmICghdmFsaWRhdGVEcmF3RWxlbWVudHMo
ImRyYXdFbGVtZW50cyIsIG1vZGUsIGNvdW50LCB0eXBlLCBvZmZzZXQsIG51bUVsZW1lbnRzLCAw
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3Vy
cmVudFByb2dyYW0pKQorICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dy
YW0pKQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVhcklmQ29tcG9zaXRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAppbmRleCA2OTY0NjUwNTM5Yi4uOTEyYzg0NWJiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0xMDc5LDI5
ICsxMDc5LDI5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFbmFibGVFeHRl
bnNpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RyCiAgICAgICAgIGNhbnZhc0FnZW50
LT5kaWRFbmFibGVFeHRlbnNpb24oY29udGV4dFdlYkdMQmFzZSwgZXh0ZW5zaW9uKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW1JbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK3ZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHTFByb2dyYW1JbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBpZiAo
SW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRlUHJv
Z3JhbShjb250ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKKyAgICAgICAgY2FudmFzQWdlbnQtPmRp
ZENyZWF0ZVdlYkdMUHJvZ3JhbShjb250ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZWxldGVQcm9ncmFtSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0p
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW1J
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKIHsKICAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICBj
YW52YXNBZ2VudC0+d2lsbERlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgICAgIGNhbnZhc0Fn
ZW50LT53aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShwcm9ncmFtKTsKIH0KIAotYm9vbCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiti
b29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBw
cm9ncmFtKQogewogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCi0gICAgICAgIHJldHVy
biBjYW52YXNBZ2VudC0+aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQocHJvZ3JhbSk7CisgICAgICAg
IHJldHVybiBjYW52YXNBZ2VudC0+aXNXZWJHTFByb2dyYW1EaXNhYmxlZChwcm9ncmFtKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1No
YWRlclByb2dyYW1IaWdobGlnaHRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBp
ZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlz
U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHByb2dyYW0pOworICAgICAgICByZXR1cm4gY2FudmFz
QWdlbnQtPmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQocHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogI2VuZGlmCkBAIC0xMTI0LDYgKzExMjQsMTggQEAgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxDb25maWd1cmVTd2FwQ2hhaW5JbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmIGkKICAgICBpZiAoYXV0byogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmlu
c3BlY3RvckNhbnZhc0FnZW50KCkpCiAgICAgICAgIGNhbnZhc0FnZW50LT53aWxsQ29uZmlndXJl
U3dhcENoYWluKGNvbnRleHRHUFUsIG5ld1N3YXBDaGFpbik7CiB9CisKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFdlYkdQ
VVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBpZiAoYXV0byogY2FudmFzQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCisgICAgICAgIGNhbnZhc0Fn
ZW50LT5kaWRDcmVhdGVXZWJHUFVQaXBlbGluZShkZXZpY2UsIHBpcGVsaW5lKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdQVVBpcGVsaW5l
JiBwaXBlbGluZSkKK3sKKyAgICBpZiAoYXV0byogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCisgICAgICAgIGNhbnZhc0FnZW50LT53aWxs
RGVzdHJveVdlYkdQVVBpcGVsaW5lKHBpcGVsaW5lKTsKK30KICNlbmRpZgogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX1VTQUdFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDgxZjNjZGNkYTI5Li41NDlhYTE3YTNlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaApAQCAtNjMsNiArNjMsNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAjaW5jbHVkZSAiR1BV
Q2FudmFzQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgIldl
YkdQVVBpcGVsaW5lLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0yODks
MTUgKzI5MCwxNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoUmVjb3JkaW5n
Q2FudmFzRnJhbWUoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGJvb2wgZm9yY2VEaXNwYXRjaCA9
IGZhbHNlKTsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgc3RhdGljIHZvaWQgZGlkRW5hYmxlRXh0
ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBjb25zdCBTdHJpbmcmKTsKLSAgICBz
dGF0aWMgdm9pZCBkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBX
ZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0aWMgdm9pZCB3aWxsRGVsZXRlUHJvZ3JhbShXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIGJvb2wgaXNT
aGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJv
Z3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCBk
aWRDcmVhdGVXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJv
Z3JhbSYpOworICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdlYkdMUHJv
Z3JhbSYpOworICAgIHN0YXRpYyBib29sIGlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyBib29sIGlzV2Vi
R0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJv
Z3JhbSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBzdGF0aWMgdm9pZCBkaWRD
cmVhdGVXZWJHUFVEZXZpY2UoV2ViR1BVRGV2aWNlJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERl
c3Ryb3lXZWJHUFVEZXZpY2UoV2ViR1BVRGV2aWNlJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbENv
bmZpZ3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0JiwgV2ViR1BVU3dhcENoYWluJik7Cisg
ICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwgV2Vi
R1BVUGlwZWxpbmUmKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5l
KFdlYkdQVVBpcGVsaW5lJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0
ZUNoYW5nZWQoUGFnZSYpOwpAQCAtNDgxLDE1ICs0ODQsMTcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBib29sIGZvcmNlRGlzcGF0Y2ggPSBmYWxz
ZSk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0YXRpYyB2b2lkIGRpZEVuYWJsZUV4dGVuc2lv
bkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBj
b25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVQcm9ncmFtSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3Jh
bSYpOwotICAgIHN0YXRpYyB2b2lkIHdpbGxEZWxldGVQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIGJvb2wgaXNTaGFkZXJQcm9ncmFt
RGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0mKTsKLSAgICBz
dGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdMUHJv
Z3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdMUHJvZ3Jh
bUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyBi
b29sIGlzV2ViR0xQcm9ncmFtRGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJH
TFByb2dyYW0mKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoV0VCR1BVKQogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxE
ZXN0cm95V2ViR1BVRGV2aWNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVRGV2aWNl
Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbENvbmZpZ3VyZVN3YXBDaGFpbkltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIEdQVUNhbnZhc0NvbnRleHQmLCBXZWJHUFVTd2FwQ2hhaW4mKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHUFVQaXBlbGluZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIFdlYkdQVURldmljZSYsIFdlYkdQVVBpcGVsaW5lJik7CisgICAgc3RhdGljIHZvaWQgd2ls
bERlc3Ryb3lXZWJHUFVQaXBlbGluZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdQVVBp
cGVsaW5lJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYpOwpAQCAtMTM4NCwzMyArMTM4OSwzMyBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEVuYWJsZUV4dGVuc2lvbihXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYQogICAgICAgICBkaWRFbmFibGVFeHRlbnNpb25JbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBjb250ZXh0V2ViR0xCYXNlLCBleHRlbnNpb24pOwogfQogCi1pbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFt
KQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHTFBy
b2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQ
cm9ncmFtJiBwcm9ncmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lk
KCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dFdlYkdMQmFzZS5jYW52YXNCYXNl
KCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgZGlkQ3JlYXRlUHJvZ3JhbUlt
cGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRXZWJHTEJhc2UsIHByb2dyYW0pOworICAg
ICAgICBkaWRDcmVhdGVXZWJHTFByb2dyYW1JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBjb250
ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBj
b250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsK
LSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3Ry
dW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2UuY2FudmFzQmFzZSgpLnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIHdpbGxEZWxldGVQcm9ncmFtSW1wbCgq
aW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChw
cm9ncmFtLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgIHdpbGxEZXN0cm95V2Vi
R0xQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7CiB9CiAKLWlubGlu
ZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKQoraW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdM
UHJvZ3JhbURpc2FibGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJh
c2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFMoZmFsc2UpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dFdlYkdMQmFzZS5j
YW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgcmV0dXJuIGlz
U2hhZGVyUHJvZ3JhbURpc2FibGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7
CisgICAgICAgIHJldHVybiBpc1dlYkdMUHJvZ3JhbURpc2FibGVkSW1wbCgqaW5zdHJ1bWVudGlu
Z0FnZW50cywgcHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1pbmxpbmUgYm9vbCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJv
Z3JhbSkKK2lubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dy
YW1IaWdobGlnaHRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNl
LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRF
TkRTKGZhbHNlKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2UuY2Fu
dmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIHJldHVybiBpc1No
YWRlclByb2dyYW1IaWdobGlnaHRlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0p
OworICAgICAgICByZXR1cm4gaXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZEltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIHByb2dyYW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KICNlbmRpZgpAQCAt
MTQzNiw2ICsxNDQxLDIwIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbENvbmZpZ3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0JiBjCiAgICAgaWYgKGF1dG8q
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250
ZXh0R1BVLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQogICAgICAgICB3
aWxsQ29uZmlndXJlU3dhcENoYWluSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dEdQ
VSwgbmV3U3dhcENoYWluKTsKIH0KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgV2ViR1BV
UGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2
b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvckNvbnRleHQoZGV2aWNlLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAg
ICAgIGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgZGV2
aWNlLCBwaXBlbGluZSk7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7
CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8q
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChwaXBl
bGluZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICB3aWxsRGVzdHJveVdlYkdQ
VVBpcGVsaW5lSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcGlwZWxpbmUpOworfQogI2VuZGlm
CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bmV0d29ya1N0YXRlQ2hh
bmdlZChQYWdlJiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclNoYWRlclByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclNoYWRlclByb2dyYW0uY3BwCmluZGV4IGQ1Mjk1NTBjZGM4Li40Y2VhN2VlY2I5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFt
LmNwcApAQCAtMjYsNTMgKzI2LDIyMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvclNoYWRlclByb2dyYW0uaCIKIAotI2lmIEVOQUJMRShXRUJHTCkKLQotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0j
aW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDYW52YXMu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KKyNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1ZhcmlhbnQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIEVOQUJM
RShXRUJHTCkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIldlYkdM
UHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNs
dWRlICJXZWJHTFNoYWRlci5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lkZW50aWZpZXJz
RmFjdG9yeS5oPgorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorI2luY2x1ZGUgIkdQVVNo
YWRlck1vZHVsZS5oIgorI2luY2x1ZGUgIldITFNMUHJlcGFyZS5oIgorI2luY2x1ZGUgIldlYkdQ
VUNvbXB1dGVQaXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisjaW5jbHVk
ZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUu
aCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNw
ZWN0b3I7CiAKKyNpZiBFTkFCTEUoV0VCR0wpCiBSZWY8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4g
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgSW5z
cGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShwcm9ncmFtLCBpbnNwZWN0b3JDYW52YXMpKTsKIH0K
KyNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkdQVSkKK1JlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
PiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5l
LCBJbnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcykKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKHBpcGVsaW5lLCBpbnNwZWN0b3JDYW52YXMp
KTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMKQogSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0sIEluc3BlY3Rv
ckNhbnZhcyYgaW5zcGVjdG9yQ2FudmFzKQogICAgIDogbV9pZGVudGlmaWVyKCJwcm9ncmFtOiIg
KyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkKLSAgICAsIG1fcHJvZ3Jh
bShwcm9ncmFtKQogICAgICwgbV9jYW52YXMoaW5zcGVjdG9yQ2FudmFzKQorICAgICwgbV9wcm9n
cmFtKHByb2dyYW0pCiB7CisgICAgQVNTRVJUKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+
KG1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSkpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShXZWJH
UFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3BlY3RvckNhbnZhcyYgaW5zcGVjdG9yQ2FudmFzKQor
ICAgIDogbV9pZGVudGlmaWVyKCJwaXBlbGluZToiICsgSWRlbnRpZmllcnNGYWN0b3J5OjpjcmVh
dGVJZGVudGlmaWVyKCkpCisgICAgLCBtX2NhbnZhcyhpbnNwZWN0b3JDYW52YXMpCisgICAgLCBt
X3Byb2dyYW0ocGlwZWxpbmUpCit7CisgICAgQVNTRVJUKG1fY2FudmFzLmRldmljZUNvbnRleHQo
KSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTCkKK1dlYkdMUHJvZ3JhbSogSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbTo6cHJvZ3JhbSgpIGNvbnN0Cit7CisgICAgaWYgKGF1dG8qIHByb2dy
YW1XcmFwcGVyID0gV1RGOjpnZXRfaWY8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHTFByb2dy
YW0+PihtX3Byb2dyYW0pKQorICAgICAgICByZXR1cm4gJnByb2dyYW1XcmFwcGVyLT5nZXQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdQVSkKK1dl
YkdQVVBpcGVsaW5lKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpwaXBlbGluZSgpIGNvbnN0Cit7
CisgICAgaWYgKGF1dG8qIHBpcGVsaW5lV3JhcHBlciA9IFdURjo6Z2V0X2lmPHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+PihtX3Byb2dyYW0pKQorICAgICAgICByZXR1cm4g
JnBpcGVsaW5lV3JhcHBlci0+Z2V0KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYK
KworI2lmIEVOQUJMRShXRUJHTCkKK3N0YXRpYyBXZWJHTFNoYWRlciogc2hhZGVyRm9yVHlwZShX
ZWJHTFByb2dyYW0mIHByb2dyYW0sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVy
VHlwZSBzaGFkZXJUeXBlKQoreworICAgIHN3aXRjaCAoc2hhZGVyVHlwZSkgeworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpGcmFnbWVudDoKKyAgICAg
ICAgcmV0dXJuIHByb2dyYW0uZ2V0QXR0YWNoZWRTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZS
QUdNRU5UX1NIQURFUik7CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6
U2hhZGVyVHlwZTo6VmVydGV4OgorICAgICAgICByZXR1cm4gcHJvZ3JhbS5nZXRBdHRhY2hlZFNo
YWRlcihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7CisKKyAgICAvLyBDb21wdXRl
IHNoYWRlcnMgYXJlIGEgV2ViR1BVIGNvbmNlcHQuCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDYW52YXM6OlNoYWRlclR5cGU6OkNvbXB1dGU6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorc3RhdGljIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiBzaGFkZXJGb3JUeXBlKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUpCit7CisgICAg
c3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52
YXM6OlNoYWRlclR5cGU6OkNvbXB1dGU6CisgICAgICAgIGlmIChpczxXZWJHUFVDb21wdXRlUGlw
ZWxpbmU+KHBpcGVsaW5lKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJHUFVDb21w
dXRlUGlwZWxpbmU+KHBpcGVsaW5lKS5jb21wdXRlU2hhZGVyKCk7CisgICAgICAgIGJyZWFrOwor
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6OkZyYWdt
ZW50OgorICAgICAgICBpZiAoaXM8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKSkKKyAg
ICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUp
LmZyYWdtZW50U2hhZGVyKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6OlZlcnRleDoKKyAgICAgICAgaWYgKGlzPFdl
YkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNh
c3Q8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKS52ZXJ0ZXhTaGFkZXIoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKK30KKyNlbmRpZgorCitPcHRpb25hbDxJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjpTaGFkZXJTb3VyY2VEYXRhPiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpyZXF1ZXN0U2hh
ZGVyU291cmNlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSBzaGFkZXJU
eXBlKQoreworI2lmICFFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoV0VCR1BVKQorICAgIFVOVVNF
RF9QQVJBTShzaGFkZXJUeXBlKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
bV9wcm9ncmFtLAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgWyZdIChzdGQ6OnJlZmVyZW5j
ZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4gcHJvZ3JhbVdyYXBwZXIpIC0+IE9wdGlvbmFsPFNoYWRl
clNvdXJjZURhdGE+IHsKKyAgICAgICAgICAgIGF1dG8mIHByb2dyYW0gPSBwcm9ncmFtV3JhcHBl
ci5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzaGFkZXIgPSBzaGFkZXJGb3JUeXBlKHBy
b2dyYW0sIHNoYWRlclR5cGUpKQorICAgICAgICAgICAgICAgIHJldHVybiB7IHsgc2hhZGVyLT5n
ZXRTb3VyY2UoKSwgV1RGOjpudWxsb3B0IH0gfTsKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgICAgIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBb
Jl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBl
cikgLT4gT3B0aW9uYWw8U2hhZGVyU291cmNlRGF0YT4geworICAgICAgICAgICAgYXV0byYgcGlw
ZWxpbmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byBzaGFk
ZXIgPSBzaGFkZXJGb3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHdlYkdQVU1vZHVsZSA9IHNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoYXV0byogZ3B1TW9kdWxlID0gd2ViR1BVTW9kdWxlLT5tb2R1
bGUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHdobHNsTW9kdWxlID0g
Z3B1TW9kdWxlLT53aGxzbE1vZHVsZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7IHsgd2hsc2xNb2R1bGUtPndobHNsU291cmNlLCBzaGFkZXIudmFsdWUoKS5lbnRyeVBv
aW50IH0gfTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0sCisj
ZW5kaWYKKyAgICAgICAgWyZdIChNb25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQor
ICAgICk7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIEluc3BlY3RvclNoYWRlclBy
b2dyYW06OmNvbnRleHQoKSBjb25zdAorYm9vbCBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjp1cGRh
dGVTaGFkZXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRlclR5
cGUsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcqIGVudHJ5UG9pbnQpCiB7Ci0g
ICAgQVNTRVJUKG1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSk7Ci0gICAgQVNTRVJUKGlzPFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U+KCptX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpKTsKLSAgICBy
ZXR1cm4gZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKm1fY2FudmFzLmNhbnZh
c0NvbnRleHQoKSk7Ci19CisjaWYgIUVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShXRUJHUFUpCisg
ICAgVU5VU0VEX1BBUkFNKHNoYWRlclR5cGUpOworICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOwor
I2VuZGlmCisjaWYgIUVOQUJMRShXRUJHUFUpCisgICAgVU5VU0VEX1BBUkFNKGVudHJ5UG9pbnQp
OworI2VuZGlmCiAKLVdlYkdMU2hhZGVyKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpzaGFkZXJG
b3JUeXBlKGNvbnN0IFN0cmluZyYgcHJvdG9jb2xUeXBlKQotewotICAgIEdDM0RlbnVtIHNoYWRl
clR5cGU7Ci0gICAgaWYgKHByb3RvY29sVHlwZSA9PSAidmVydGV4IikKLSAgICAgICAgc2hhZGVy
VHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSOwotICAgIGVsc2UgaWYgKHBy
b3RvY29sVHlwZSA9PSAiZnJhZ21lbnQiKQotICAgICAgICBzaGFkZXJUeXBlID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUjsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotCi0gICAgcmV0dXJuIG1fcHJvZ3JhbS5nZXRBdHRhY2hlZFNoYWRlcihzaGFkZXJUeXBl
KTsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3Byb2dyYW0sCisjaWYgRU5BQkxFKFdFQkdM
KQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiBwcm9n
cmFtV3JhcHBlcikgeworICAgICAgICAgICAgYXV0byYgcHJvZ3JhbSA9IHByb2dyYW1XcmFwcGVy
LmdldCgpOworICAgICAgICAgICAgaWYgKGF1dG8qIHNoYWRlciA9IHNoYWRlckZvclR5cGUocHJv
Z3JhbSwgc2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogY29udGV4dCA9
IG1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXM8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oY29udGV4dCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8mIGNvbnRleHRXZWJHTEJhc2UgPSBkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlPigqY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0V2Vi
R0xCYXNlLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0V2ViR0xCYXNlLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChzaGFkZXItPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRleHRXZWJHTEJhc2UubGlua1Byb2dyYW1XaXRob3V0SW52YWxpZGF0aW5n
QXR0cmliTG9jYXRpb25zKCZwcm9ncmFtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfSwKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAg
IFsmXSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4gcGlwZWxpbmVXcmFw
cGVyKSB7CisgICAgICAgICAgICBhdXRvJiBwaXBlbGluZSA9IHBpcGVsaW5lV3JhcHBlci5nZXQo
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIHNoYWRlciA9IHNoYWRlckZvclR5cGUocGlwZWxpbmUs
IHNoYWRlclR5cGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gd2ViR1BVTW9kdWxlID0g
c2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBn
cHVNb2R1bGUgPSB3ZWJHUFVNb2R1bGUtPm1vZHVsZSgpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoYXV0byogd2hsc2xNb2R1bGUgPSBncHVNb2R1bGUtPndobHNsTW9kdWxlKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTlVTRURfUEFSQU0od2hsc2xNb2R1bGUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdobHNsTW9kdWxlLT53aGxzbFNvdXJjZSA9IHNv
dXJjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnlQb2ludCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCA9ICpl
bnRyeVBvaW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXBlbGluZS5yZWNv
bXBpbGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0sCisjZW5kaWYKKyAgICAgICAgWyZdIChNb25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNo
YWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmgKaW5kZXggOTQ2N2U4NDdmNWQuLmI2YmI0ZmU2MDE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgKQEAgLTI2LDI1ICsy
Niw0NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0
b3JQcm90b2NvbE9iamVjdHMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zcGVj
dG9yQ2FudmFzOworCisjaWYgRU5BQkxFKFdFQkdMKQogY2xhc3MgV2ViR0xQcm9ncmFtOwogY2xh
c3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKLWNsYXNzIFdlYkdMU2hhZGVyOworI2VuZGlm
CiAKLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOworI2lmIEVOQUJMRShXRUJHUFUpCitjbGFz
cyBXZWJHUFVQaXBlbGluZTsKKyNlbmRpZgogCiBjbGFzcyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gewogcHVi
bGljOgorI2lmIEVOQUJMRShXRUJHTCkKICAgICBzdGF0aWMgUmVmPEluc3BlY3RvclNoYWRlclBy
b2dyYW0+IGNyZWF0ZShXZWJHTFByb2dyYW0mLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgor
I2lmIEVOQUJMRShXRUJHUFUpCisgICAgc3RhdGljIFJlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
PiBjcmVhdGUoV2ViR1BVUGlwZWxpbmUmLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgogCiAg
ICAgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CiAgICAgSW5zcGVjdG9yQ2FudmFzJiBjYW52YXMoKSBjb25zdCB7IHJldHVybiBtX2NhbnZh
czsgfQotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQoKSBjb25zdDsKLSAg
ICBXZWJHTFByb2dyYW0mIHByb2dyYW0oKSBjb25zdCB7IHJldHVybiBtX3Byb2dyYW07IH0KLSAg
ICBXZWJHTFNoYWRlciogc2hhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcmKTsKKworI2lmIEVOQUJM
RShXRUJHTCkKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0oKSBjb25zdDsKKyNlbmRpZgorI2lm
IEVOQUJMRShXRUJHUFUpCisgICAgV2ViR1BVUGlwZWxpbmUqIHBpcGVsaW5lKCkgY29uc3Q7Cisj
ZW5kaWYKKworICAgIHN0cnVjdCBTaGFkZXJTb3VyY2VEYXRhIHsKKyAgICAgICAgU3RyaW5nIHNv
dXJjZTsKKyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBlbnRyeVBvaW50OworICAgIH07CisgICAg
T3B0aW9uYWw8U2hhZGVyU291cmNlRGF0YT4gcmVxdWVzdFNoYWRlclNvdXJjZShJbnNwZWN0b3I6
OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUpOworICAgIGJvb2wgdXBkYXRlU2hhZGVyKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UsIGNvbnN0IFN0cmluZyogZW50cnlQb2ludCk7CiAKICAgICBib29sIGRpc2FibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9kaXNhYmxlZDsgfQogICAgIHZvaWQgc2V0RGlzYWJsZWQoYm9vbCBkaXNh
YmxlZCkgeyBtX2Rpc2FibGVkID0gZGlzYWJsZWQ7IH0KQEAgLTUyLDE1ICs3NCwyNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoaWdobGlnaHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faGlnaGxpZ2h0ZWQ7
IH0KICAgICB2b2lkIHNldEhpZ2hsaWdodGVkKGJvb2wgdmFsdWUpIHsgbV9oaWdobGlnaHRlZCA9
IHZhbHVlOyB9CiAKLSAgICB+SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSgpID0gZGVmYXVsdDsKLQog
cHJpdmF0ZToKKyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShX
ZWJHTFByb2dyYW0mLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJH
UFUpCisgICAgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShXZWJHUFVQaXBlbGluZSYsIEluc3BlY3Rv
ckNhbnZhcyYpOworI2VuZGlmCiAKICAgICBTdHJpbmcgbV9pZGVudGlmaWVyOwotICAgIFdlYkdM
UHJvZ3JhbSYgbV9wcm9ncmFtOwogICAgIEluc3BlY3RvckNhbnZhcyYgbV9jYW52YXM7CiAKKyAg
ICBWYXJpYW50PAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgc3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxXZWJHTFByb2dyYW0+LAorI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAg
c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4sCisjZW5kaWYKKyAgICAgICAg
TW9ub3N0YXRlCisgICAgPiBtX3Byb2dyYW07CisKICAgICBib29sIG1fZGlzYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9oaWdobGlnaHRlZCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNw
cAppbmRleCAxODUyMjQ4NWE2NS4uMTNjZWM0NjkyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC00
NiwxNCArNDYsMTggQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbmplY3RlZFNjcmlwdE1h
bmFnZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9iamVj
dHMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogI2lmIEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCi0jaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFdFQkdMMikKQEAgLTYyLDcgKzY2LDExIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogI2lu
Y2x1ZGUgIkdQVUNhbnZhc0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGlwZWxp
bmUuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGlu
ZS5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BV
U3dhcENoYWluLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQxLDcgKzE0
OSwxNyBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQog
ICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViR0xQcm9ncmFtOjppbnN0YW5jZXNNdXRleCgpKTsK
ICAgICAgICAgZm9yIChhdXRvJiBbcHJvZ3JhbSwgY29udGV4dFdlYkdMQmFzZV0gOiBXZWJHTFBy
b2dyYW06Omluc3RhbmNlcyhsb2NrKSkgewogICAgICAgICAgICAgaWYgKGNvbnRleHRXZWJHTEJh
c2UgJiYgZXhpc3RzSW5DdXJyZW50UGFnZShjb250ZXh0V2ViR0xCYXNlLT5jYW52YXNCYXNlKCku
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgICAgICAgICBkaWRDcmVhdGVQcm9n
cmFtKCpjb250ZXh0V2ViR0xCYXNlLCAqcHJvZ3JhbSk7CisgICAgICAgICAgICAgICAgZGlkQ3Jl
YXRlV2ViR0xQcm9ncmFtKCpjb250ZXh0V2ViR0xCYXNlLCAqcHJvZ3JhbSk7CisgICAgICAgIH0K
KyAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCisgICAgeworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2soV2ViR1BVUGlwZWxpbmU6Omluc3RhbmNlc011dGV4KCkpOworICAgICAgICBm
b3IgKGF1dG8mIFtwaXBlbGluZSwgZGV2aWNlXSA6IFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXMo
bG9jaykpIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UgJiYgZXhpc3RzSW5DdXJyZW50UGFnZShk
ZXZpY2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAgZGlkQ3Jl
YXRlV2ViR1BVUGlwZWxpbmUoKmRldmljZSwgKnBpcGVsaW5lKTsKICAgICAgICAgfQogICAgIH0K
ICNlbmRpZgpAQCAtMjgwLDg3ICsyOTgsNjEgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
c3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYKICAg
ICBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZSgqY29udGV4dCwgdHJ1ZSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFk
ZXJUeXBlLCBTdHJpbmcqIGNvbnRlbnQpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpyZXF1
ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBw
cm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZVN0cmluZywgU3RyaW5nKiBzb3VyY2Us
IE9wdGlvbmFsPFN0cmluZz4mIGVudHJ5UG9pbnQpCiB7Ci0jaWYgRU5BQkxFKFdFQkdMKQogICAg
IGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGFzc2VydEluc3BlY3RvclByb2dyYW0oZXJyb3JTdHJp
bmcsIHByb2dyYW1JZCk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvKiBzaGFkZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5zaGFkZXJGb3JUeXBl
KHNoYWRlclR5cGUpOwotICAgIGlmICghc2hhZGVyKSB7Ci0gICAgICAgIGVycm9yU3RyaW5nID0g
Ik1pc3Npbmcgc2hhZGVyIGZvciBnaXZlbiBzaGFkZXJUeXBlIl9zOworICAgIGF1dG8gc2hhZGVy
VHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Okluc3BlY3RvckhlbHBlcnM6OnBhcnNlRW51bVZh
bHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU+KHNo
YWRlclR5cGVTdHJpbmcpOworICAgIGlmICghc2hhZGVyVHlwZSkgeworICAgICAgICBlcnJvclN0
cmluZyA9IG1ha2VTdHJpbmcoIlVua25vd24gc2hhZGVyVHlwZTogIl9zLCBzaGFkZXJUeXBlU3Ry
aW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgICpjb250ZW50ID0gc2hhZGVyLT5n
ZXRTb3VyY2UoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0gICAgVU5V
U0VEX1BBUkFNKHNoYWRlclR5cGUpOwotICAgIFVOVVNFRF9QQVJBTShjb250ZW50KTsKLSAgICBl
cnJvclN0cmluZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlmCisgICAgYXV0byBkYXRhID0g
aW5zcGVjdG9yUHJvZ3JhbS0+cmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJUeXBlLnZhbHVlKCkp
OworICAgIGlmICghZGF0YSkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIHNoYWRl
ciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQiX3M7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICAqc291cmNlID0gZGF0YS52YWx1ZSgpLnNvdXJjZTsKKyAgICBp
ZiAoZGF0YS52YWx1ZSgpLmVudHJ5UG9pbnQpCisgICAgICAgIGVudHJ5UG9pbnQgPSBkYXRhLnZh
bHVlKCkuZW50cnlQb2ludC52YWx1ZSgpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50
Ojp1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBy
b2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkK
K3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYgZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5
cGVTdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcqIGVudHJ5UG9pbnQp
CiB7Ci0jaWYgRU5BQkxFKFdFQkdMKQogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGFzc2Vy
dEluc3BlY3RvclByb2dyYW0oZXJyb3JTdHJpbmcsIHByb2dyYW1JZCk7CiAgICAgaWYgKCFpbnNw
ZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvKiBzaGFkZXIgPSBpbnNw
ZWN0b3JQcm9ncmFtLT5zaGFkZXJGb3JUeXBlKHNoYWRlclR5cGUpOwotICAgIGlmICghc2hhZGVy
KSB7Ci0gICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgc2hhZGVyIGZvciBnaXZlbiBzaGFk
ZXJUeXBlIl9zOworICAgIGF1dG8gc2hhZGVyVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Oklu
c3BlY3RvckhlbHBlcnM6OnBhcnNlRW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDYW52YXM6OlNoYWRlclR5cGU+KHNoYWRlclR5cGVTdHJpbmcpOworICAgIGlmICghc2hh
ZGVyVHlwZSkgeworICAgICAgICBlcnJvclN0cmluZyA9IG1ha2VTdHJpbmcoIlVua25vd24gc2hh
ZGVyVHlwZTogIl9zLCBzaGFkZXJUeXBlU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTCA9IGluc3BlY3Rv
clByb2dyYW0tPmNvbnRleHQoKTsKLSAgICBjb250ZXh0V2ViR0wuc2hhZGVyU291cmNlKHNoYWRl
ciwgc291cmNlKTsKLSAgICBjb250ZXh0V2ViR0wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwotCi0g
ICAgaWYgKCFzaGFkZXItPmlzVmFsaWQoKSkgewotICAgICAgICBlcnJvclN0cmluZyA9ICJGYWls
ZWQgdG8gdXBkYXRlIHNoYWRlciJfczsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNv
bnRleHRXZWJHTC5saW5rUHJvZ3JhbVdpdGhvdXRJbnZhbGlkYXRpbmdBdHRyaWJMb2NhdGlvbnMo
Jmluc3BlY3RvclByb2dyYW0tPnByb2dyYW0oKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShw
cm9ncmFtSWQpOwotICAgIFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKLSAgICBVTlVTRURfUEFS
QU0oc291cmNlKTsKLSAgICBlcnJvclN0cmluZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlm
CisgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtLT51cGRhdGVTaGFkZXIoc2hhZGVyVHlwZS52YWx1
ZSgpLCBzb3VyY2UsIGVudHJ5UG9pbnQpKQorICAgICAgICBlcnJvclN0cmluZyA9ICJGYWlsZWQg
dG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQi
X3M7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnNldFNoYWRlclByb2dyYW1EaXNh
YmxlZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBi
b29sIGRpc2FibGVkKQogewotI2lmIEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGluc3BlY3RvclBy
b2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9ncmFtSWQpOwog
ICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW5zcGVj
dG9yUHJvZ3JhbS0+c2V0RGlzYWJsZWQoZGlzYWJsZWQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0ocHJvZ3JhbUlkKTsKLSAgICBVTlVTRURfUEFSQU0oZGlzYWJsZWQpOwotICAgIGVycm9yU3Ry
aW5nID0gIk5vdCBzdXBwb3J0ZWQiX3M7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6c2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgaGlnaGxpZ2h0ZWQpCiB7Ci0jaWYg
RU5BQkxFKFdFQkdMKQogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGFzc2VydEluc3BlY3Rv
clByb2dyYW0oZXJyb3JTdHJpbmcsIHByb2dyYW1JZCk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9n
cmFtKQogICAgICAgICByZXR1cm47CiAKICAgICBpbnNwZWN0b3JQcm9ncmFtLT5zZXRIaWdobGln
aHRlZChoaWdobGlnaHRlZCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwot
ICAgIFVOVVNFRF9QQVJBTShoaWdobGlnaHRlZCk7Ci0gICAgZXJyb3JTdHJpbmcgPSAiTm90IHN1
cHBvcnRlZCJfczsKLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpmcmFt
ZU5hdmlnYXRlZChGcmFtZSYgZnJhbWUpCkBAIC01NjgsNyArNTYwLDcgQEAgdm9pZCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6ZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGNvbnRleHQKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZXh0ZW5zaW9uRW5hYmxlZChp
bnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgZXh0ZW5zaW9uKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCit2b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50OjpkaWRDcmVhdGVXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYg
Y29udGV4dCwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yQ2Fu
dmFzID0gZmluZEluc3BlY3RvckNhbnZhcyhjb250ZXh0KTsKICAgICBBU1NFUlQoaW5zcGVjdG9y
Q2FudmFzKTsKQEAgLTU3OCwxMCArNTcwLDEwIEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OmRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwKICAg
ICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUo
cHJvZ3JhbSwgKmluc3BlY3RvckNhbnZhcyk7CiAgICAgU3RyaW5nIHByb2dyYW1JZGVudGlmaWVy
ID0gaW5zcGVjdG9yUHJvZ3JhbS0+aWRlbnRpZmllcigpOwogICAgIG1faWRlbnRpZmllclRvSW5z
cGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3JhbUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJv
Z3JhbSkpOwotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0
b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50aWZpZXIpOworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIo
KSwgcHJvZ3JhbUlkZW50aWZpZXIsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3Jh
bVR5cGU6OlJlbmRlcik7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZWxl
dGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAg
ICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsK
ICAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCkBAIC01OTEsNyArNTgzLDcgQEAgdm9pZCBJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlbGV0ZVByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFt
KQogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtRGVsZXRlZChpZGVudGlmaWVyKTsK
IH0KIAotYm9vbCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQo
V2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNXZWJH
TFByb2dyYW1EaXNhYmxlZChXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgYXV0byBpbnNw
ZWN0b3JQcm9ncmFtID0gZmluZEluc3BlY3RvclByb2dyYW0ocHJvZ3JhbSk7CiAgICAgQVNTRVJU
KGluc3BlY3RvclByb2dyYW0pOwpAQCAtNjAxLDcgKzU5Myw3IEBAIGJvb2wgSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQ6OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkK
ICAgICByZXR1cm4gaW5zcGVjdG9yUHJvZ3JhbS0+ZGlzYWJsZWQoKTsKIH0KIAotYm9vbCBJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNXZWJHTFByb2dyYW1IaWdo
bGlnaHRlZChXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgYXV0byBpbnNwZWN0b3JQcm9n
cmFtID0gZmluZEluc3BlY3RvclByb2dyYW0ocHJvZ3JhbSk7CiAgICAgQVNTRVJUKGluc3BlY3Rv
clByb2dyYW0pOwpAQCAtNjQ5LDYgKzY0MSwzNyBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50
Ojp3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQVUNhbnZhc0NvbnRleHQmIGNvbnRleHRHUFUsCiAK
ICAgICBub3RpZnlEZXZpY2VGb3JTd2FwQ2hhaW4obmV3U3dhcENoYWluKTsKIH0KKwordm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNl
JiBkZXZpY2UsIFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBhdXRvIGluc3BlY3Rv
ckNhbnZhcyA9IGZpbmRJbnNwZWN0b3JDYW52YXMoZGV2aWNlKTsKKyAgICBBU1NFUlQoaW5zcGVj
dG9yQ2FudmFzKTsKKyAgICBpZiAoIWluc3BlY3RvckNhbnZhcykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3Jl
YXRlKHBpcGVsaW5lLCAqaW5zcGVjdG9yQ2FudmFzKTsKKyAgICBTdHJpbmcgcHJvZ3JhbUlkZW50
aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5pZGVudGlmaWVyKCk7CisgICAgbV9pZGVudGlmaWVy
VG9JbnNwZWN0b3JQcm9ncmFtLnNldChwcm9ncmFtSWRlbnRpZmllciwgV1RGTW92ZShpbnNwZWN0
b3JQcm9ncmFtKSk7CisKKyAgICBPcHRpb25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6
OlByb2dyYW1UeXBlPiBwcm9ncmFtVHlwZTsKKyAgICBpZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVs
aW5lPihwaXBlbGluZSkpCisgICAgICAgIHByb2dyYW1UeXBlID0gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6Q29tcHV0ZTsKKyAgICBlbHNlIGlmIChpczxXZWJHUFVS
ZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcjsKKyAgICBBU1NFUlQocHJv
Z3JhbVR5cGUpOworCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGlu
c3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigpLCBwcm9ncmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5
cGUudmFsdWUoKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95
V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAgIGF1dG8gaW5z
cGVjdG9yUHJvZ3JhbSA9IGZpbmRJbnNwZWN0b3JQcm9ncmFtKHBpcGVsaW5lKTsKKyAgICBpZiAo
IWluc3BlY3RvclByb2dyYW0pCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBpZGVudGlm
aWVyID0gdW5iaW5kUHJvZ3JhbSgqaW5zcGVjdG9yUHJvZ3JhbSk7CisgICAgbV9mcm9udGVuZERp
c3BhdGNoZXItPnByb2dyYW1EZWxldGVkKGlkZW50aWZpZXIpOworfQogI2VuZGlmCiAKIHZvaWQg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0YXJ0UmVjb3JkaW5nKEluc3BlY3RvckNhbnZhcyYgaW5z
cGVjdG9yQ2FudmFzLCBJbnNwZWN0b3I6OlByb3RvY29sOjpSZWNvcmRpbmc6OkluaXRpYXRvciBp
bml0aWF0b3IsIFJlY29yZGluZ09wdGlvbnMmJiByZWNvcmRpbmdPcHRpb25zKQpAQCAtODA1LDcg
KzgyOCw2IEBAIFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+IEluc3BlY3RvckNhbnZhc0FnZW50Ojpm
aW5kSW5zcGVjdG9yQ2FudmFzKFdlYkdQVURldmljZSYKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxF
KFdFQkdMKQogU3RyaW5nIEluc3BlY3RvckNhbnZhc0FnZW50Ojp1bmJpbmRQcm9ncmFtKEluc3Bl
Y3RvclNoYWRlclByb2dyYW0mIGluc3BlY3RvclByb2dyYW0pCiB7CiAgICAgU3RyaW5nIGlkZW50
aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFtLmlkZW50aWZpZXIoKTsKQEAgLTgyNCwxMCArODQ2LDIy
IEBAIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
YXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShFcnJvCiAgICAgcmV0dXJuIGluc3BlY3RvclByb2dyYW07
CiB9CiAKKyNpZiBFTkFCTEUoV0VCR0wpCiBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4g
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZpbmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdMUHJvZ3JhbSYg
cHJvZ3JhbSkKIHsKICAgICBmb3IgKGF1dG8mIGluc3BlY3RvclByb2dyYW0gOiBtX2lkZW50aWZp
ZXJUb0luc3BlY3RvclByb2dyYW0udmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCZpbnNwZWN0b3JQ
cm9ncmFtLT5wcm9ncmFtKCkgPT0gJnByb2dyYW0pCisgICAgICAgIGlmIChpbnNwZWN0b3JQcm9n
cmFtLT5wcm9ncmFtKCkgPT0gJnByb2dyYW0pCisgICAgICAgICAgICByZXR1cm4gaW5zcGVjdG9y
UHJvZ3JhbTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lmIEVO
QUJMRShXRUJHUFUpCitSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQ6OmZpbmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkK
K3sKKyAgICBmb3IgKGF1dG8mIGluc3BlY3RvclByb2dyYW0gOiBtX2lkZW50aWZpZXJUb0luc3Bl
Y3RvclByb2dyYW0udmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGluc3BlY3RvclByb2dyYW0tPnBp
cGVsaW5lKCkgPT0gJnBpcGVsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGluc3BlY3RvclByb2dy
YW07CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IGJhZWRkNDY3
Y2Q5Li4wNDk2NzBhNmRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaApAQCAtMzMsMTAgKzMzLDcgQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5j
bHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogI2lmIEVOQUJM
RShXRUJHTCkKICNpbmNsdWRlICJJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgiCkBAIC01Niw2ICs1
Myw3IEBAIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAjaWYgRU5BQkxFKFdFQkdQ
VSkKIGNsYXNzIEdQVUNhbnZhc0NvbnRleHQ7CiBjbGFzcyBXZWJHUFVEZXZpY2U7CitjbGFzcyBX
ZWJHUFVQaXBlbGluZTsKIGNsYXNzIFdlYkdQVVN3YXBDaGFpbjsKICNlbmRpZgogCkBAIC04Myw4
ICs4MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVD
b3VudChFcnJvclN0cmluZyYsIGludCBjb3VudCk7CiAgICAgdm9pZCBzdGFydFJlY29yZGluZyhF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGNvbnN0IGludCogZnJhbWVDb3Vu
dCwgY29uc3QgaW50KiBtZW1vcnlMaW1pdCk7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCk7Ci0gICAgdm9pZCByZXF1ZXN0U2hhZGVy
U291cmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmlu
ZyYgc2hhZGVyVHlwZSwgU3RyaW5nKik7Ci0gICAgdm9pZCB1cGRhdGVTaGFkZXIoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZSk7CisgICAgdm9pZCByZXF1ZXN0U2hhZGVyU291cmNlKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlw
ZSwgU3RyaW5nKiBzb3VyY2UsIE9wdGlvbmFsPFN0cmluZz4mIGVudHJ5UG9pbnQpOworICAgIHZv
aWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNv
bnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmlu
ZyogZW50cnlQb2ludCk7CiAgICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCk7CiAgICAgdm9p
ZCBzZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHByb2dyYW1JZCwgYm9vbCBoaWdobGlnaHRlZCk7CiAKQEAgLTEwMywxNSArMTAxLDE3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNvbnNvbGVTdGFydFJlY29yZGluZ0NhbnZhcyhDYW52YXNSZW5kZXJp
bmdDb250ZXh0JiwgSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTT2JqZWN0KiBvcHRpb25zKTsKICNp
ZiBFTkFCTEUoV0VCR0wpCiAgICAgdm9pZCBkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZGlkQ3JlYXRlUHJvZ3Jh
bShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgdm9pZCB3
aWxsRGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0mKTsKLSAgICBib29sIGlzU2hhZGVyUHJvZ3Jh
bURpc2FibGVkKFdlYkdMUHJvZ3JhbSYpOwotICAgIGJvb2wgaXNTaGFkZXJQcm9ncmFtSGlnaGxp
Z2h0ZWQoV2ViR0xQcm9ncmFtJik7CisgICAgdm9pZCBkaWRDcmVhdGVXZWJHTFByb2dyYW0oV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHZvaWQgd2lsbERl
c3Ryb3lXZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFtJik7CisgICAgYm9vbCBpc1dlYkdMUHJvZ3Jh
bURpc2FibGVkKFdlYkdMUHJvZ3JhbSYpOworICAgIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdobGln
aHRlZChXZWJHTFByb2dyYW0mKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgdm9p
ZCBkaWRDcmVhdGVXZWJHUFVEZXZpY2UoV2ViR1BVRGV2aWNlJik7CiAgICAgdm9pZCB3aWxsRGVz
dHJveVdlYkdQVURldmljZShXZWJHUFVEZXZpY2UmKTsKICAgICB2b2lkIHdpbGxDb25maWd1cmVT
d2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYsIFdlYkdQVVN3YXBDaGFpbiYpOworICAgIHZvaWQg
ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwgV2ViR1BVUGlwZWxpbmUmKTsK
KyAgICB2b2lkIHdpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmKTsKICNl
bmRpZgogCiBwcml2YXRlOgpAQCAtMTM1LDExICsxMzUsMTQgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8SW5zcGVjdG9yQ2FudmFzPiBmaW5kSW5zcGVjdG9yQ2FudmFzKFdlYkdQVURldmljZSYpOwog
I2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgU3RyaW5nIHVuYmluZFByb2dyYW0oSW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbSYpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
PiBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9n
cmFtSWQpOworI2lmIEVOQUJMRShXRUJHTCkKICAgICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbT4gZmluZEluc3BlY3RvclByb2dyYW0oV2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoV0VCR1BVKQorICAgIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBmaW5kSW5z
cGVjdG9yUHJvZ3JhbShXZWJHUFVQaXBlbGluZSYpOworI2VuZGlmCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW5zcGVjdG9yOjpDYW52YXNGcm9udGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNw
YXRjaGVyOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OkNhbnZhc0JhY2tlbmREaXNwYXRjaGVyPiBt
X2JhY2tlbmREaXNwYXRjaGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCmluZGV4IDNmOGY3MTk5OGZkLi43
ZDg5ZTI5Y2YxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtMjcsNyArMjcsOCBAQAogCiAjaWYg
RU5BQkxFKFdFQkdQVSkKIAotI2luY2x1ZGUgIkdQVU9iamVjdEJhc2UuaCIKKyNpbmNsdWRlICJH
UFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgIldITFNMUHJlcGFyZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNDQsMTAgKzQ1LDE2IEBAIHN0cnVjdCBHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOwogdXNpbmcgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmUg
PSBNVExDb21wdXRlUGlwZWxpbmVTdGF0ZTsKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5l
U21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+OwogCi1jbGFzcyBH
UFVDb21wdXRlUGlwZWxpbmUgOiBwdWJsaWMgR1BVT2JqZWN0QmFzZSB7CitjbGFzcyBHUFVDb21w
dXRlUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgR1BVUGlwZWxpbmUgewogcHVibGljOgorICAgIHZp
cnR1YWwgfkdQVUNvbXB1dGVQaXBlbGluZSgpOworCiAgICAgc3RhdGljIFJlZlB0cjxHUFVDb21w
dXRlUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiwgR1BVRXJyb3JTY29wZXMmKTsKIAorICAgIGJvb2wgaXNDb21w
dXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBib29sIHJlY29tcGls
ZShjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3ImIGNvbXB1dGVTdGFnZSk7CisK
ICAgICBjb25zdCBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZSogcGxhdGZvcm1Db21wdXRlUGlwZWxp
bmUoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lLmdldCgpOyB9CiAK
ICAgICBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgY29tcHV0ZURpbWVuc2lvbnMoKSBjb25zdCB7
IHJldHVybiBtX2NvbXB1dGVEaW1lbnNpb25zOyB9CkBAIC02MSw0ICs2OCw2IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19HUFVQ
SVBFTElORShXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmUsIGlzQ29tcHV0ZVBpcGVsaW5lKCkp
CisKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjhkNzU2NmY0ZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVBp
cGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVRXJyb3JTY29w
ZXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BV
UGlwZWxpbmU6OkdQVVBpcGVsaW5lKEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKKyAgICA6
IEdQVU9iamVjdEJhc2UobWFrZVJlZihlcnJvclNjb3BlcykpCit7Cit9CisKK0dQVVBpcGVsaW5l
Ojp+R1BVUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi40YTEwZmJmZGMxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRl
ICJHUFVPYmplY3RCYXNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVRXJy
b3JTY29wZXM7CisKK2NsYXNzIEdQVVBpcGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJhc2Ugewor
cHVibGljOgorICAgIHZpcnR1YWwgfkdQVVBpcGVsaW5lKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworcHJvdGVj
dGVkOgorICAgIEdQVVBpcGVsaW5lKEdQVUVycm9yU2NvcGVzJik7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19HUFVQSVBFTElO
RShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19C
RUdJTihUb1ZhbHVlVHlwZU5hbWUpIFwKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2Vi
Q29yZTo6R1BVUGlwZWxpbmUmIHBpcGVsaW5lKSB7IHJldHVybiBwaXBlbGluZS5wcmVkaWNhdGU7
IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaAppbmRleCAwZWUx
YWZhMjNhOC4uMjdjMDYyOGVmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNj
cmlwdG9yLmgKQEAgLTM4LDEzICszOCwxMyBAQCBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VE
ZXNjcmlwdG9yQmFzZSB7CiB9OwogCiBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yIDogR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSB7Ci0gICAgR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2VEZXNjcmlwdG9yKFJlZjxjb25zdCBHUFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxl
LCBjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JCYXNlJiBiYXNlKQorICAgIEdQ
VVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcihSZWY8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVs
ZSwgY29uc3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSYgYmFzZSkKICAgICAg
ICAgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JCYXNlKGJhc2UpCiAgICAgICAgICwg
bW9kdWxlIHsgV1RGTW92ZShtb2R1bGUpIH0KICAgICB7CiAgICAgfQogCi0gICAgUmVmPGNvbnN0
IEdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOworICAgIFJlZjxHUFVTaGFkZXJNb2R1bGU+IG1vZHVs
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lLmgKaW5kZXggMzll
ZWMxZjBhYmQuLjBmODEyMTUyM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUuaApAQCAtMjcsNyArMjcsOCBA
QAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2luY2x1ZGUgIkdQVU9iamVjdEJhc2UuaCIKKyNp
bmNsdWRlICJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00
NiwxMCArNDcsMTYgQEAgY2xhc3MgR1BVRGV2aWNlOwogdXNpbmcgUGxhdGZvcm1SZW5kZXJQaXBl
bGluZSA9IE1UTFJlbmRlclBpcGVsaW5lU3RhdGU7CiB1c2luZyBQbGF0Zm9ybVJlbmRlclBpcGVs
aW5lU21hcnRQdHIgPSBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT47CiAKLWNsYXNz
IEdQVVJlbmRlclBpcGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJhc2UgeworY2xhc3MgR1BVUmVu
ZGVyUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgR1BVUGlwZWxpbmUgewogcHVibGljOgorICAgIHZp
cnR1YWwgfkdQVVJlbmRlclBpcGVsaW5lKCk7CisKICAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRl
clBpcGVsaW5lPiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yJiwgR1BVRXJyb3JTY29wZXMmKTsKIAorICAgIGJvb2wgaXNSZW5kZXJQ
aXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGJvb2wgcmVjb21waWxlKGNv
bnN0IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciYgdmVydGV4U3RhZ2UsIGNvbnN0IE9w
dGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcj4mIGZyYWdtZW50U3RhZ2UpOwor
CiAjaWYgVVNFKE1FVEFMKQogICAgIE1UTERlcHRoU3RlbmNpbFN0YXRlICpkZXB0aFN0ZW5jaWxT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwdGhTdGVuY2lsU3RhdGUuZ2V0KCk7IH0KICNlbmRp
ZgpAQCAtNzAsNCArNzcsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfR1BVUElQRUxJTkUoV2ViQ29yZTo6R1BVUmVuZGVyUGlw
ZWxpbmUsIGlzUmVuZGVyUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVy
TW9kdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVy
TW9kdWxlLmgKaW5kZXggODgzMDhkNjllMjMuLjljM2I0NmM0ODBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVyTW9kdWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5oCkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdQVVNoYWRlck1vZHVs
ZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3ImKTsKIAogICAgIFBsYXRmb3JtU2hhZGVyTW9kdWxlKiBwbGF0Zm9ybVNoYWRlck1vZHVs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2hsc2xNb2R1bGUgPyBudWxscHRyIDogbV9wbGF0Zm9ybVNo
YWRlck1vZHVsZS5nZXQoKTsgfQotICAgIGNvbnN0IFdITFNMOjpTaGFkZXJNb2R1bGUqIHdobHNs
TW9kdWxlKCkgY29uc3QgeyByZXR1cm4gbV93aGxzbE1vZHVsZS5nZXQoKTsgfQorICAgIFdITFNM
OjpTaGFkZXJNb2R1bGUqIHdobHNsTW9kdWxlKCkgY29uc3QgeyByZXR1cm4gbV93aGxzbE1vZHVs
ZS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIEdQVVNoYWRlck1vZHVsZShQbGF0Zm9ybVNoYWRl
ck1vZHVsZVNtYXJ0UHRyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFs
Lm1tCmluZGV4IGM2MWI4YWRjNDhhLi5iZWRkZTUyMTY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFs
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVD
b21wdXRlUGlwZWxpbmVNZXRhbC5tbQpAQCAtMTk3LDEyICsxOTcsMjAgQEAgUmVmUHRyPEdQVUNv
bXB1dGVQaXBlbGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2
aWNlJiBkZXZpY2UKIH0KIAogR1BVQ29tcHV0ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUo
UmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPiYmIHBpcGVsaW5lLCBXSExTTDo6Q29t
cHV0ZURpbWVuc2lvbnMgY29tcHV0ZURpbWVuc2lvbnMsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNj
b3BlcykKLSAgICA6IEdQVU9iamVjdEJhc2UobWFrZVJlZihlcnJvclNjb3BlcykpCisgICAgOiBH
UFVQaXBlbGluZShlcnJvclNjb3BlcykKICAgICAsIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUo
V1RGTW92ZShwaXBlbGluZSkpCiAgICAgLCBtX2NvbXB1dGVEaW1lbnNpb25zKGNvbXB1dGVEaW1l
bnNpb25zKQogewogfQogCitHUFVDb21wdXRlUGlwZWxpbmU6On5HUFVDb21wdXRlUGlwZWxpbmUo
KSA9IGRlZmF1bHQ7CisKK2Jvb2wgR1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUoY29uc3Qg
R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yJiBjb21wdXRlU3RhZ2UpCit7CisgICAgVU5V
U0VEX1BBUkFNKGNvbXB1dGVTdGFnZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVs
aW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQppbmRleCA2MzY4ZDFhZGViMi4uOWI2NzQ4M2Q2NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCkBAIC01MjksNyArNTI5
LDcgQEAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBHUFVSZW5kZXJQaXBlbGluZTo6dHJ5Q3Jl
YXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLAogfQogCiBHUFVSZW5kZXJQaXBlbGluZTo6R1BV
UmVuZGVyUGlwZWxpbmUoUmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0YXRlPiYmIGRlcHRoU3Rl
bmNpbCwgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIEdQVVBy
aW1pdGl2ZVRvcG9sb2d5IHRvcG9sb2d5LCBPcHRpb25hbDxHUFVJbmRleEZvcm1hdD4gZm9ybWF0
LCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCi0gICAgOiBHUFVPYmplY3RCYXNlKG1ha2VS
ZWYoZXJyb3JTY29wZXMpKQorICAgIDogR1BVUGlwZWxpbmUoZXJyb3JTY29wZXMpCiAgICAgLCBt
X2RlcHRoU3RlbmNpbFN0YXRlKFdURk1vdmUoZGVwdGhTdGVuY2lsKSkKICAgICAsIG1fcGxhdGZv
cm1SZW5kZXJQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKICAgICAsIG1fcHJpbWl0aXZlVG9w
b2xvZ3kodG9wb2xvZ3kpCkBAIC01MzcsNiArNTM3LDE1IEBAIEdQVVJlbmRlclBpcGVsaW5lOjpH
UFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYgZGVwdGhT
dGVuCiB7CiB9CiAKK0dQVVJlbmRlclBpcGVsaW5lOjp+R1BVUmVuZGVyUGlwZWxpbmUoKSA9IGRl
ZmF1bHQ7CisKK2Jvb2wgR1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZShjb25zdCBHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3ImIHZlcnRleFN0YWdlLCBjb25zdCBPcHRpb25hbDxHUFVQ
cm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3I+JiBmcmFnbWVudFN0YWdlKQoreworICAgIFVOVVNF
RF9QQVJBTSh2ZXJ0ZXhTdGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYWdtZW50U3RhZ2UpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGE2
YWE0MTEyZmJmLi43ODNiODVlY2MzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CkBAIC0yNjYsNiArMjY2LDkgQEAgbG9jYWxpemVkU3RyaW5nc1siQ29tcG9zaXRlZCJdID0gIkNv
bXBvc2l0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcHJlc3NlZCJdID0gIkNvbXByZXNzZWQi
OwogbG9jYWxpemVkU3RyaW5nc1siQ29tcHJlc3Npb24iXSA9ICJDb21wcmVzc2lvbiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJDb21wcmVzc2lvbjoiXSA9ICJDb21wcmVzc2lvbjoiOworbG9jYWxpemVk
U3RyaW5nc1siQ29tcHV0ZSJdID0gIkNvbXB1dGUiOworbG9jYWxpemVkU3RyaW5nc1siQ29tcHV0
ZSBQaXBlbGluZSAlZCJdID0gIkNvbXB1dGUgUGlwZWxpbmUgJWQiOworbG9jYWxpemVkU3RyaW5n
c1siQ29tcHV0ZSBTaGFkZXIiXSA9ICJDb21wdXRlIFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDb21wdXRlZCJdID0gIkNvbXB1dGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbmRpdGlvbiJd
ID0gIkNvbmRpdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb25kaXRpb25hbCBleHByZXNzaW9u
Il0gPSAiQ29uZGl0aW9uYWwgZXhwcmVzc2lvbiI7CkBAIC00NjMsNiArNDY2LDcgQEAgbG9jYWxp
emVkU3RyaW5nc1siRW5zdXJlIHRoYXQgb25seSBvbmUgbWFpbiBjb250ZW50IHNlY3Rpb24gaXMg
dXNlZCBvbiB0aGUgcGFnZS4KIGxvY2FsaXplZFN0cmluZ3NbIkVuc3VyZSB0aGF0IHZhbHVlcyBm
b3IgXHUwMDIyJXNcdTAwMjIgYXJlIHZhbGlkLiJdID0gIkVuc3VyZSB0aGF0IHZhbHVlcyBmb3Ig
XHUwMDIyJXNcdTAwMjIgYXJlIHZhbGlkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRlcmVkIEZ1
bGwtU2NyZWVuIE1vZGUiXSA9ICJFbnRlcmVkIEZ1bGwtU2NyZWVuIE1vZGUiOwogbG9jYWxpemVk
U3RyaW5nc1siRW50aXJlIFJlY29yZGluZyJdID0gIkVudGlyZSBSZWNvcmRpbmciOworbG9jYWxp
emVkU3RyaW5nc1siRW50cnkgcG9pbnQ6ICJdID0gIkVudHJ5IHBvaW50OiAiOwogbG9jYWxpemVk
U3RyaW5nc1siRXJyb3IiXSA9ICJFcnJvciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvcjogIl0g
PSAiRXJyb3I6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvcnMiXSA9ICJFcnJvcnMiOwpAQCAt
ODgxLDYgKzg4NSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSBXYXRjaCBFeHByZXNzaW9u
Il0gPSAiUmVtb3ZlIFdhdGNoIEV4cHJlc3Npb24iOwogbG9jYWxpemVkU3RyaW5nc1siUmVtb3Zl
IHByb2JlIl0gPSAiUmVtb3ZlIHByb2JlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSB0aGlz
IGJyZWFrcG9pbnQgYWN0aW9uIl0gPSAiUmVtb3ZlIHRoaXMgYnJlYWtwb2ludCBhY3Rpb24iOwog
bG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlZCBkZXNjZW5kYW50ICJdID0gIlJlbW92ZWQgZGVzY2Vu
ZGFudCAiOworbG9jYWxpemVkU3RyaW5nc1siUmVuZGVyIFBpcGVsaW5lICVkIl0gPSAiUmVuZGVy
IFBpcGVsaW5lICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbmRlcmluZyBGcmFtZXMiXSA9ICJS
ZW5kZXJpbmcgRnJhbWVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcGVhdGluZyBMaW5lYXIgR3Jh
ZGllbnQiXSA9ICJSZXBlYXRpbmcgTGluZWFyIEdyYWRpZW50IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlcGVhdGluZyBSYWRpYWwgR3JhZGllbnQiXSA9ICJSZXBlYXRpbmcgUmFkaWFsIEdyYWRpZW50
IjsKQEAgLTk5Nyw3ICsxMDAyLDYgQEAgbG9jYWxpemVkU3RyaW5nc1siU2Vzc2lvbiBTdG9yYWdl
Il0gPSAiU2Vzc2lvbiBTdG9yYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNldCB0byBBdXRvbWF0
aWNhbGx5IENvbnRpbnVlIl0gPSAiU2V0IHRvIEF1dG9tYXRpY2FsbHkgQ29udGludWUiOwogbG9j
YWxpemVkU3RyaW5nc1siU2V0dGVyIl0gPSAiU2V0dGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNl
dHRpbmdzIl0gPSAiU2V0dGluZ3MiOwotbG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIl0gPSAiU2hh
ZGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRlciBQcm9ncmFtcyJdID0gIlNoYWRlciBQcm9n
cmFtcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaGFkb3cgQ29udGVudCJdID0gIlNoYWRvdyBDb250
ZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyBDb250ZW50ICglcykiXSA9ICJTaGFkb3cg
Q29udGVudCAoJXMpIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCmluZGV4IDM4OWNi
NzEzMDZkLi4zOGYwMWJiNjY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCkBA
IC0yMzQsNyArMjM0LDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FudmFzLmVuYWJsZUV4dGVuc2lvbihleHRlbnNp
b24pOwogICAgIH0KIAotICAgIHByb2dyYW1DcmVhdGVkKGNhbnZhc0lkZW50aWZpZXIsIHByb2dy
YW1JZGVudGlmaWVyKQorICAgIHByb2dyYW1DcmVhdGVkKGNhbnZhc0lkZW50aWZpZXIsIHByb2dy
YW1JZGVudGlmaWVyLCBwcm9ncmFtVHlwZSkKICAgICB7CiAgICAgICAgIGxldCBjYW52YXMgPSB0
aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmdldChjYW52YXNJZGVudGlmaWVyKTsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQoY2FudmFzKTsKQEAgLTI0Myw3ICsyNDMsMTEgQEAgV0kuQ2FudmFzTWFu
YWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICBj
b25zb2xlLmFzc2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuaGFzKHByb2dy
YW1JZGVudGlmaWVyKSwgYFNoYWRlclByb2dyYW0gYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke3By
b2dyYW1JZGVudGlmaWVyfS5gKTsKIAotICAgICAgICBsZXQgcHJvZ3JhbSA9IG5ldyBXSS5TaGFk
ZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBjYW52YXMpOworICAgICAgICAvLyBDT01QQVRJ
QklMSVRZIChpT1MgMTMpOiBgcHJvZ3JhbVR5cGVgIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAg
ICBpZiAoIXByb2dyYW1UeXBlKQorICAgICAgICAgICAgcHJvZ3JhbVR5cGUgPSBXSS5TaGFkZXJQ
cm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKworICAgICAgICBsZXQgcHJvZ3JhbSA9IG5ldyBX
SS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBwcm9ncmFtVHlwZSwgY2FudmFzKTsK
ICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuc2V0KHByb2dyYW0uaWRl
bnRpZmllciwgcHJvZ3JhbSk7CiAKICAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0
aW9uLmFkZChwcm9ncmFtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IGI5MjlmMDYyMGZhLi43ZDU2ZWMxNzE2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0Nh
bnZhcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q2FudmFzLmpzCkBAIC00NSw3ICs0NSw3IEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbiA9IG5l
dyBXSS5TaGFkZXJQcm9ncmFtQ29sbGVjdGlvbjsKICAgICAgICAgdGhpcy5fcmVjb3JkaW5nQ29s
bGVjdGlvbiA9IG5ldyBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uOwogCi0gICAgICAgIHRoaXMuX25l
eHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlciA9IDE7CisgICAgICAgIHRoaXMuX25leHRTaGFk
ZXJQcm9ncmFtRGlzcGxheU51bWJlciA9IG51bGw7CiAKICAgICAgICAgdGhpcy5fcmVxdWVzdE5v
ZGVQcm9taXNlID0gbnVsbDsKIApAQCAtNDA5LDExICs0MDksMTUgQEAgV0kuQ2FudmFzID0gY2xh
c3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB7cmVjb3JkaW5nLCBp
bml0aWF0ZWRCeVVzZXJ9KTsKICAgICB9CiAKLSAgICBuZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlO
dW1iZXIoKQorICAgIG5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlckZvclByb2dyYW1UeXBl
KHByb2dyYW1UeXBlKQogICAgIHsKICAgICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuU2hhZGVyUHJv
Z3JhbS4KIAotICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVt
YmVyKys7CisgICAgICAgIGlmICghdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVy
KQorICAgICAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyID0ge307
CisKKyAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyW3Byb2dyYW1U
eXBlXSA9ICh0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXJbcHJvZ3JhbVR5cGVd
IHx8IDApICsgMTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxh
eU51bWJlcltwcm9ncmFtVHlwZV07CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dyYW0uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qcwpp
bmRleCBjMWVkOWM4YWM3Zi4uM2M4MWY4ODZhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TaGFkZXJQcm9ncmFtLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TaGFkZXJQcm9ncmFtLmpzCkBA
IC0yNSwyNyArMjUsODMgQEAKIAogV0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNzIFNoYWRlclByb2dy
YW0gZXh0ZW5kcyBXSS5PYmplY3QKIHsKLSAgICBjb25zdHJ1Y3RvcihpZGVudGlmaWVyLCBjYW52
YXMpCisgICAgY29uc3RydWN0b3IoaWRlbnRpZmllciwgcHJvZ3JhbVR5cGUsIGNhbnZhcykKICAg
ICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkZW50aWZpZXIpOworICAgICAgICBjb25zb2xl
LmFzc2VydChPYmplY3QudmFsdWVzKFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUpLmluY2x1ZGVz
KHByb2dyYW1UeXBlKSk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbnZhcyBpbnN0YW5jZW9m
IFdJLkNhbnZhcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KFNoYWRlclByb2dyYW0uX2NvbnRl
eHRUeXBlU3VwcG9ydHNQcm9ncmFtVHlwZShjYW52YXMuY29udGV4dFR5cGUsIHByb2dyYW1UeXBl
KSk7CiAKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0aGlzLl9pZGVudGlmaWVyID0gaWRl
bnRpZmllcjsKKyAgICAgICAgdGhpcy5fcHJvZ3JhbVR5cGUgPSBwcm9ncmFtVHlwZTsKICAgICAg
ICAgdGhpcy5fY2FudmFzID0gY2FudmFzOwotICAgICAgICB0aGlzLl91bmlxdWVEaXNwbGF5TnVt
YmVyID0gY2FudmFzLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlcigpOwogICAgICAgICB0
aGlzLl9kaXNhYmxlZCA9IGZhbHNlOwogICAgIH0KIAorICAgIC8vIFN0YXRpYworCisgICAgc3Rh
dGljIF9jb250ZXh0VHlwZVN1cHBvcnRzUHJvZ3JhbVR5cGUoY29udGV4dFR5cGUsIHByb2dyYW1U
eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0VHlwZSkgeworICAgICAgICBjYXNl
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAgcmV0dXJuIHByb2dyYW1UeXBlID09PSBTaGFk
ZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKworICAgICAgICBjYXNlIFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHUFU6CisgICAgICAgICAgICByZXR1cm4gcHJvZ3JhbVR5cGUgPT09IFNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZQorICAgICAgICAgICAgICAgIHx8IHByb2dy
YW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBzdGF0aWMgX3Byb2dyYW1UeXBlU3VwcG9ydHNTaGFkZXJUeXBlKHByb2dyYW1UeXBl
LCBzaGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChwcm9ncmFtVHlwZSkgeworICAg
ICAgICBjYXNlIFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAg
IHJldHVybiBzaGFkZXJUeXBlID09PSBTaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZTsK
KworICAgICAgICBjYXNlIFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAg
ICAgICAgcmV0dXJuIHNoYWRlclR5cGUgPT09IFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFn
bWVudAorICAgICAgICAgICAgICAgIHx8IHNoYWRlclR5cGUgPT09IFNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5WZXJ0ZXg7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydCgpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQg
aWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7IH0KKyAgICBnZXQgcHJvZ3Jh
bVR5cGUoKSB7IHJldHVybiB0aGlzLl9wcm9ncmFtVHlwZTsgfQogICAgIGdldCBjYW52YXMoKSB7
IHJldHVybiB0aGlzLl9jYW52YXM7IH0KIAogICAgIGdldCBkaXNwbGF5TmFtZSgpCiAgICAgewot
ICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIlByb2dyYW0gJWQiKS5mb3JtYXQodGhpcy5fdW5p
cXVlRGlzcGxheU51bWJlcik7CisgICAgICAgIGxldCBmb3JtYXQgPSBudWxsOworICAgICAgICBz
d2l0Y2ggKHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTDoKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0wyOgorICAgICAgICAgICAgZm9ybWF0ID0gV0kuVUlTdHJpbmcoIlByb2dyYW0gJWQiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHUFU6CisgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuX3Byb2dyYW1UeXBlKSB7CisgICAgICAg
ICAgICBjYXNlIFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAg
ICAgICBmb3JtYXQgPSBXSS5VSVN0cmluZygiQ29tcHV0ZSBQaXBlbGluZSAlZCIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTaGFkZXJQcm9ncmFtLlByb2dyYW1U
eXBlLlJlbmRlcjoKKyAgICAgICAgICAgICAgICBmb3JtYXQgPSBXSS5VSVN0cmluZygiUmVuZGVy
IFBpcGVsaW5lICVkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChmb3Jt
YXQpOworICAgICAgICBpZiAoIXRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIpCisgICAgICAgICAg
ICB0aGlzLl91bmlxdWVEaXNwbGF5TnVtYmVyID0gdGhpcy5fY2FudmFzLm5leHRTaGFkZXJQcm9n
cmFtRGlzcGxheU51bWJlckZvclByb2dyYW1UeXBlKHRoaXMuX3Byb2dyYW1UeXBlKTsKKyAgICAg
ICAgcmV0dXJuIGZvcm1hdC5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU51bWJlcik7CiAgICAg
fQogCiAgICAgZ2V0IGRpc2FibGVkKCkKQEAgLTU1LDYgKzExMSwxMiBAQCBXSS5TaGFkZXJQcm9n
cmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgc2V0IGRp
c2FibGVkKGRpc2FibGVkKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2NhbnZhcy5jb250ZXh0
VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9wcm9ncmFtVHlwZSA9PT0gU2hhZGVy
UHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCB0
aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIp
OworCiAgICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCA9PT0gZGlzYWJsZWQpCiAgICAgICAgICAg
ICByZXR1cm47CiAKQEAgLTY1LDY3ICsxMjcsNTkgQEAgV0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNz
IFNoYWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoU2hhZGVyUHJvZ3JhbS5FdmVudC5EaXNhYmxlZENoYW5nZWQpOwogICAg
IH0KIAotICAgIHJlcXVlc3RWZXJ0ZXhTaGFkZXJTb3VyY2UoY2FsbGJhY2spCisgICAgcmVxdWVz
dFNoYWRlclNvdXJjZShzaGFkZXJUeXBlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHRoaXMu
X3JlcXVlc3RTaGFkZXJTb3VyY2UoQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgsIGNhbGxi
YWNrKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoT2JqZWN0LnZhbHVlcyhTaGFkZXJQcm9ncmFt
LlNoYWRlclR5cGUpLmluY2x1ZGVzKHNoYWRlclR5cGUpKTsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQoU2hhZGVyUHJvZ3JhbS5fcHJvZ3JhbVR5cGVTdXBwb3J0c1NoYWRlclR5cGUodGhpcy5fcHJv
Z3JhbVR5cGUsIHNoYWRlclR5cGUpKTsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1Mg
MTMpOiBgY29udGVudGAgd2FzIHJlbmFtZWQgdG8gYHNvdXJjZWAuCisgICAgICAgIC8vIENPTVBB
VElCSUxJVFkgKGlPUyAxMyk6IGBlbnRyeVBvaW50YGAgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAg
ICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2UodGhpcy5faWRlbnRpZmllciwgc2hh
ZGVyVHlwZSwgKGVycm9yLCBzb3VyY2UsIGVudHJ5UG9pbnQpID0+IHsKKyAgICAgICAgICAgIGlm
IChlcnJvcikgeworICAgICAgICAgICAgICAgIFdJLnJlcG9ydEludGVybmFsRXJyb3IoZXJyb3Ip
OworICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIG51bGwpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FsbGJhY2soc291cmNlLCBl
bnRyeVBvaW50KTsKKyAgICAgICAgfSk7CiAgICAgfQogCi0gICAgcmVxdWVzdEZyYWdtZW50U2hh
ZGVyU291cmNlKGNhbGxiYWNrKQorICAgIHVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCBzb3VyY2Us
IHtlbnRyeVBvaW50fSA9IHt9KQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVxdWVzdFNoYWRlclNv
dXJjZShDYW52YXNBZ2VudC5TaGFkZXJUeXBlLkZyYWdtZW50LCBjYWxsYmFjayk7Ci0gICAgfQor
ICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFNoYWRlclByb2dyYW0uU2hhZGVy
VHlwZSkuaW5jbHVkZXMoc2hhZGVyVHlwZSkpOworICAgICAgICBjb25zb2xlLmFzc2VydChTaGFk
ZXJQcm9ncmFtLl9wcm9ncmFtVHlwZVN1cHBvcnRzU2hhZGVyVHlwZSh0aGlzLl9wcm9ncmFtVHlw
ZSwgc2hhZGVyVHlwZSkpOworICAgICAgICBjb25zb2xlLmFzc2VydCgoISFlbnRyeVBvaW50KSA9
PT0gKHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdQVSkpOwogCi0gICAgdXBkYXRlVmVydGV4U2hhZGVyKHNvdXJjZSkKLSAgICB7Ci0gICAgICAg
IHRoaXMuX3VwZGF0ZVNoYWRlcihDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCwgc291cmNl
KTsKLSAgICB9Ci0KLSAgICB1cGRhdGVGcmFnbWVudFNoYWRlcihzb3VyY2UpCi0gICAgewotICAg
ICAgICB0aGlzLl91cGRhdGVTaGFkZXIoQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwg
c291cmNlKTsKKyAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHRoaXMuX2lkZW50aWZp
ZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgZW50cnlQb2ludCk7CiAgICAgfQogCiAgICAgc2hvd0hp
Z2hsaWdodCgpCiAgICAgewotICAgICAgICBjb25zdCBoaWdobGlnaHRlZCA9IHRydWU7Ci0gICAg
ICAgIENhbnZhc0FnZW50LnNldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZCh0aGlzLl9pZGVudGlm
aWVyLCBoaWdobGlnaHRlZCwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dCghZXJyb3IsIGVycm9yKTsKLSAgICAgICAgfSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX3Byb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisKKyAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hh
ZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIHRydWUpOwogICAgIH0KIAog
ICAgIGhpZGVIaWdobGlnaHQoKQogICAgIHsKLSAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSBm
YWxzZTsKLSAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHRo
aXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVkLCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwotICAgICAgICB9KTsKLSAgICB9CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dy
YW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CiAKLSAgICAvLyBQ
cml2YXRlCi0KLSAgICBfcmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJUeXBlLCBjYWxsYmFjaykK
LSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2UodGhpcy5faWRl
bnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yLCBjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBp
ZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRl
bnQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlU2hhZGVyKHNoYWRlclR5cGUs
IHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcih0aGlzLl9p
ZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3VyY2UsIChlcnJvcikgPT4gewotICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQoIWVycm9yLCBlcnJvcik7Ci0gICAgICAgIH0pOworICAgICAgICBDYW52
YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQodGhpcy5faWRlbnRpZmllciwgZmFs
c2UpOwogICAgIH0KIH07CiAKK1dJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUgPSB7CisgICAg
Q29tcHV0ZTogImNvbXB1dGUiLAorICAgIFJlbmRlcjogInJlbmRlciIsCit9OworCiBXSS5TaGFk
ZXJQcm9ncmFtLlNoYWRlclR5cGUgPSB7Ci0gICAgRnJhZ21lbnQ6ICJzaGFkZXItdHlwZS1mcmFn
bWVudCIsCi0gICAgVmVydGV4OiAic2hhZGVyLXR5cGUtdmVydGV4IiwKKyAgICBDb21wdXRlOiAi
Y29tcHV0ZSIsCisgICAgRnJhZ21lbnQ6ICJmcmFnbWVudCIsCisgICAgVmVydGV4OiAidmVydGV4
IiwKIH07CiAKIFdJLlNoYWRlclByb2dyYW0uRXZlbnQgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9DYW52YXNPYnNlcnZlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2Vy
dmVyLmpzCmluZGV4IDNlNWRkNmMyYTcyLi42ZjUzNTc0NDM0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFz
T2JzZXJ2ZXIuanMKQEAgLTY3LDkgKzY3LDkgQEAgV0kuQ2FudmFzT2JzZXJ2ZXIgPSBjbGFzcyBD
YW52YXNPYnNlcnZlcgogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmV4dGVuc2lvbkVuYWJsZWQo
Y2FudmFzSWQsIGV4dGVuc2lvbik7CiAgICAgfQogCi0gICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFz
SWQsIHByb2dyYW1JZCkKKyAgICBwcm9ncmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBw
cm9ncmFtVHlwZSkKICAgICB7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIucHJvZ3JhbUNyZWF0
ZWQoY2FudmFzSWQsIHByb2dyYW1JZCk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucHJvZ3Jh
bUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCwgcHJvZ3JhbVR5cGUpOwogICAgIH0KIAogICAg
IHByb2dyYW1EZWxldGVkKHByb2dyYW1JZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29u
dGVudFZpZXcuY3NzCmluZGV4IDU1ZWY0MWY4MmY1Li4wZTQ4MDYzMTAwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCkBAIC0yMyw1MCArMjMsNTIgQEAKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29udGVudC12aWV3LnNo
YWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciB7CisuY29udGVudC12aWV3LnNoYWRl
ci1wcm9ncmFtID4gLnNoYWRlciB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4LWRpcmVj
dGlvbjogY29sdW1uOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB0b3A6IDA7CiAgICAg
Ym90dG9tOiAwOwotCi0gICAgLS1ib3JkZXItc3RhcnQtc3R5bGU6IDFweCBzb2xpZCBsaWdodGdy
ZXk7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50
ZXh0LWVkaXRvci5zaGFkZXIudmVydGV4LAotYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNo
YWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlci5mcmFnbWVudCB7CisuY29udGVudC12
aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5jb21wdXRlIHsKKyAgICByaWdodDogMDsKKyAg
ICBsZWZ0OiAwOworfQorCitib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAuc2hhZGVyLnZlcnRleCwKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXIt
cHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQgewogICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7
CiAgICAgbGVmdDogMDsKIH0KIAotYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlci5mcmFnbWVudCwKLWJvZHlbZGlyPXJ0bF0gLmNv
bnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIudmVydGV4IHsK
K2JvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJh
Z21lbnQsCitib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hh
ZGVyLnZlcnRleCB7CiAgICAgd2lkdGg6IGNhbGMoNTAlICsgMXB4KTsKICAgICByaWdodDogMDsK
IH0KIAotYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQt
ZWRpdG9yLnNoYWRlciArIC50ZXh0LWVkaXRvci5zaGFkZXIgewotICAgIGJvcmRlci1sZWZ0OiB2
YXIoLS1ib3JkZXItc3RhcnQtc3R5bGUpOworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+
IC5zaGFkZXIgKyAuc2hhZGVyIHsKKyAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJv
cmRlci1jb2xvcik7CiB9CiAKLWJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJv
Z3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgKyAudGV4dC1lZGl0b3Iuc2hhZGVyIHsKLSAgICBi
b3JkZXItcmlnaHQ6IHZhcigtLWJvcmRlci1zdGFydC1zdHlsZSk7Ci19Ci0KLS5jb250ZW50LXZp
ZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLnR5cGUtdGl0bGUgewor
LmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAqIHsKICAg
ICBwYWRkaW5nOiAycHggNHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUl
KTsKICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmV5OwogfQogCi0uY29udGVu
dC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciA+IC5Db2RlTWlycm9y
IHsKLSAgICB0b3A6IDE4cHg7CisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRl
ciA+IGhlYWRlciA+IC5zaGFkZXItdHlwZSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDAlLCA5NSUpOworfQorCisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciA+
IGhlYWRlciA+IC5lbnRyeS1wb2ludCA+IGlucHV0IHsKKyAgICBwYWRkaW5nOiAwIDFweDsKKyAg
ICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6IDExcHg7CiB9
CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12
aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciB7Ci0gICAgICAgIC0tYm9y
ZGVyLXN0YXJ0LXN0eWxlOiAxcHggc29saWQgdmFyKC0tdGV4dC1jb2xvci1xdWF0ZXJuYXJ5KTsK
LSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9y
LnNoYWRlciA+IC50eXBlLXRpdGxlIHsKKyAgICAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFt
ID4gLnNoYWRlciA+IGhlYWRlciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJh
Y2tncm91bmQtY29sb3IpOwogICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS10ZXh0
LWNvbG9yLXF1YXRlcm5hcnkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250
ZW50Vmlldy5qcwppbmRleCBkZDkyNTRlZDViZS4uZGZkMjliYWIzNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250
ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMKQEAgLTMxLDEzICszMSwyNCBAQCBXSS5TaGFk
ZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAgIHN1cGVyKHNoYWRlclByb2dyYW0pOwogCisgICAg
ICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZp
Z2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVs
b2FkRnVsbC5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdh
dGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0
eVByaW9yaXR5LkxvdzsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwg
dGhpcy5fcmVmcmVzaENvbnRlbnQsIHRoaXMpOworCiAgICAgICAgIGxldCBjb250ZW50RGlkQ2hh
bmdlRGVib3VuY2VyID0gbmV3IERlYm91bmNlcigoZXZlbnQpID0+IHsKICAgICAgICAgICAgIHRo
aXMuX2NvbnRlbnREaWRDaGFuZ2UoZXZlbnQpOwogICAgICAgICB9KTsKIAotICAgICAgICB0aGlz
LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXByb2dyYW0iKTsKKyAgICAgICAgdGhpcy5l
bGVtZW50LmNsYXNzTGlzdC5hZGQoInNoYWRlci1wcm9ncmFtIiwgdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5wcm9ncmFtVHlwZSk7CiAKICAgICAgICAgbGV0IGNyZWF0ZUVkaXRvciA9IChzaGFkZXJU
eXBlKSA9PiB7CisgICAgICAgICAgICBsZXQgY29udGFpbmVyID0gdGhpcy5lbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKworICAgICAgICAgICAgbGV0
IGhlYWRlciA9IGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJo
ZWFkZXIiKSk7CisKKyAgICAgICAgICAgIGxldCBzaGFkZXJUeXBlQ29udGFpbmVyID0gaGVhZGVy
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAg
IHNoYWRlclR5cGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXR5cGUiKTsKKwogICAg
ICAgICAgICAgbGV0IHRleHRFZGl0b3IgPSBuZXcgV0kuVGV4dEVkaXRvcjsKICAgICAgICAgICAg
IHRleHRFZGl0b3IucmVhZE9ubHkgPSBmYWxzZTsKICAgICAgICAgICAgIHRleHRFZGl0b3IuYWRk
RXZlbnRMaXN0ZW5lcihXSS5UZXh0RWRpdG9yLkV2ZW50LkZvY3VzZWQsIHRoaXMuX2VkaXRvckZv
Y3VzZWQsIHRoaXMpOwpAQCAtNDUsMzIgKzU2LDcxIEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50
VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRW
CiAgICAgICAgICAgICB0ZXh0RWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGV4dEVkaXRvci5F
dmVudC5Db250ZW50RGlkQ2hhbmdlLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBjb250
ZW50RGlkQ2hhbmdlRGVib3VuY2VyLmRlbGF5Rm9yVGltZSgyNTAsIGV2ZW50KTsKICAgICAgICAg
ICAgIH0sIHRoaXMpOwotICAgICAgICAgICAgdGV4dEVkaXRvci5lbGVtZW50LmNsYXNzTGlzdC5h
ZGQoInNoYWRlciIpOwotCi0gICAgICAgICAgICBsZXQgc2hhZGVyVHlwZUNvbnRhaW5lciA9IHRl
eHRFZGl0b3IuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyYmVnaW4iLCBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7Ci0gICAgICAgICAgICBzaGFkZXJUeXBlQ29udGFp
bmVyLmNsYXNzTGlzdC5hZGQoInR5cGUtdGl0bGUiKTsKIAogICAgICAgICAgICAgc3dpdGNoIChz
aGFkZXJUeXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlw
ZS5WZXJ0ZXg6Ci0gICAgICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50ZXh0Q29udGVu
dCA9IFdJLlVJU3RyaW5nKCJWZXJ0ZXggU2hhZGVyIik7Ci0gICAgICAgICAgICAgICAgdGV4dEVk
aXRvci5taW1lVHlwZSA9ICJ4LXNoYWRlci94LXZlcnRleCI7Ci0gICAgICAgICAgICAgICAgdGV4
dEVkaXRvci5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInZlcnRleCIpOworICAgICAgICAgICAgY2Fz
ZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgICAgICBz
aGFkZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIkNvbXB1dGUgU2hh
ZGVyIik7CisgICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4LXNoYWRlci94
LXZlcnRleCI7IC8vIFRyZWF0IHRoaXMgbGlrZSBhIHZlcnRleCBzaGFkZXIgZm9yIENvZGVNaXJy
b3IuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgV0kuU2hhZGVy
UHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50OgogICAgICAgICAgICAgICAgIHNoYWRlclR5cGVD
b250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQgU2hhZGVyIik7CiAg
ICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4LXNoYWRlci94LWZyYWdtZW50
IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZnJh
Z21lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBXSS5T
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4OgorICAgICAgICAgICAgICAgIHNoYWRlclR5
cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOwor
ICAgICAgICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSAieC1zaGFkZXIveC12ZXJ0ZXgi
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0
aGlzLmFkZFN1YnZpZXcodGV4dEVkaXRvcik7Ci0gICAgICAgICAgICByZXR1cm4gdGV4dEVkaXRv
cjsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0ZXh0RWRpdG9yLmVsZW1lbnQp
OworICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInNoYWRlciIsIHNoYWRlclR5
cGUpOworCisgICAgICAgICAgICBsZXQgZW50cnlQb2ludElucHV0ID0gbnVsbDsKKyAgICAgICAg
ICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSkgeworICAgICAgICAgICAgICAgIGxldCBlbnRyeVBv
aW50Q29udGFpbmVyID0gaGVhZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpKTsKKyAgICAgICAgICAgICAgICBlbnRyeVBvaW50Q29udGFpbmVyLmNsYXNzTGlzdC5h
ZGQoImVudHJ5LXBvaW50Iik7CisgICAgICAgICAgICAgICAgZW50cnlQb2ludENvbnRhaW5lci5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShXSS5VSVN0cmluZygiRW50cnkgcG9p
bnQ6ICIpKSk7CisKKyAgICAgICAgICAgICAgICBlbnRyeVBvaW50SW5wdXQgPSBlbnRyeVBvaW50
Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOwor
ICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIs
IHRoaXMuX2hhbmRsZUVudHJ5UG9pbnRJbnB1dElucHV0LmJpbmQodGhpcykpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICByZXR1cm4ge3RleHRFZGl0b3IsIGVudHJ5UG9pbnRJbnB1dH07
CiAgICAgICAgIH07CiAKLSAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yID0gY3JlYXRlRWRpdG9y
KFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgpOwotICAgICAgICB0aGlzLl9mcmFn
bWVudEVkaXRvciA9IGNyZWF0ZUVkaXRvcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJh
Z21lbnQpOwotICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWRpdG9yID0gdGhpcy5fdmVydGV4RWRp
dG9yOworICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUp
IHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6IHsK
KyAgICAgICAgICAgIGxldCBjb21wdXRlRWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5Db21wdXRlKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFZGl0
b3IgPSBjb21wdXRlRWRpdG9yLnRleHRFZGl0b3I7CisgICAgICAgICAgICB0aGlzLl9jb21wdXRl
RW50cnlQb2ludElucHV0ID0gY29tcHV0ZUVkaXRvci5lbnRyeVBvaW50SW5wdXQ7CisKKyAgICAg
ICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlzLl9jb21wdXRlRWRpdG9yOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyOiB7CisgICAgICAgICAgICBsZXQgdmVydGV4RWRpdG9yID0g
Y3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgpOworICAgICAg
ICAgICAgdGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRpdG9yLnRleHRFZGl0b3I7CisgICAg
ICAgICAgICB0aGlzLl92ZXJ0ZXhFbnRyeVBvaW50SW5wdXQgPSB2ZXJ0ZXhFZGl0b3IuZW50cnlQ
b2ludElucHV0OworCisgICAgICAgICAgICBsZXQgZnJhZ21lbnRFZGl0b3IgPSBjcmVhdGVFZGl0
b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAgICAgICAgIHRo
aXMuX2ZyYWdtZW50RWRpdG9yID0gZnJhZ21lbnRFZGl0b3IudGV4dEVkaXRvcjsKKyAgICAgICAg
ICAgIHRoaXMuX2ZyYWdtZW50RW50cnlQb2ludElucHV0ID0gZnJhZ21lbnRFZGl0b3IuZW50cnlQ
b2ludElucHV0OworCisgICAgICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWRpdG9yID0gdGhpcy5f
dmVydGV4RWRpdG9yOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCisgICAg
eworICAgICAgICByZXR1cm4gW3RoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbV07CiAg
ICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC03OSwyMiArMTI5LDMyIEBAIFdJLlNoYWRlclBy
b2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWCiAgICAgewogICAgICAgICBzdXBlci5zaG93bigpOwogCi0gICAgICAgIHRo
aXMuX3ZlcnRleEVkaXRvci5zaG93bigpOwotICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5z
aG93bigpOworICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5
cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6
CisgICAgICAgICAgICB0aGlzLl9jb21wdXRlRWRpdG9yLnNob3duKCk7CisgICAgICAgICAgICBi
cmVhazsKIAotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RWZXJ0ZXhTaGFk
ZXJTb3VyY2UoKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5z
dHJpbmcgPSBjb250ZW50IHx8ICIiOwotICAgICAgICB9KTsKKyAgICAgICAgY2FzZSBXSS5TaGFk
ZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjoKKyAgICAgICAgICAgIHRoaXMuX3ZlcnRleEVk
aXRvci5zaG93bigpOworICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3Iuc2hvd24oKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5yZXF1ZXN0RnJhZ21lbnRTaGFkZXJTb3VyY2UoKGNvbnRlbnQpID0+IHsKLSAgICAg
ICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnN0cmluZyA9IGNvbnRlbnQgfHwgIiI7Ci0gICAg
ICAgIH0pOworICAgICAgICB0aGlzLl9yZWZyZXNoQ29udGVudCgpOwogICAgIH0KIAogICAgIGhp
ZGRlbigpCiAgICAgewotICAgICAgICB0aGlzLl92ZXJ0ZXhFZGl0b3IuaGlkZGVuKCk7Ci0gICAg
ICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLmhpZGRlbigpOworICAgICAgICBzd2l0Y2ggKHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQ
cm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6CisgICAgICAgICAgICB0aGlzLl9jb21wdXRlRWRp
dG9yLmhpZGRlbigpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5TaGFk
ZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjoKKyAgICAgICAgICAgIHRoaXMuX3ZlcnRleEVk
aXRvci5oaWRkZW4oKTsKKyAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLmhpZGRlbigp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAgICBzdXBlci5oaWRkZW4o
KTsKICAgICB9CkBAIC0xMDYsMTQgKzE2NiwzNCBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZp
ZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vgog
CiAgICAgZ2V0IHNhdmVEYXRhKCkKICAgICB7Ci0gICAgICAgIGxldCBmaWxlbmFtZSA9IFdJLlVJ
U3RyaW5nKCJTaGFkZXIiKTsKLSAgICAgICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09
IHRoaXMuX3ZlcnRleEVkaXRvcikKLSAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmco
IlZlcnRleCIpOwotICAgICAgICBlbHNlIGlmICh0aGlzLl9sYXN0QWN0aXZlRWRpdG9yID09PSB0
aGlzLl9mcmFnbWVudEVkaXRvcikKKyAgICAgICAgbGV0IGZpbGVuYW1lID0gIiI7CisgICAgICAg
IHN3aXRjaCAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvcikgeworICAgICAgICBjYXNlIHRoaXMuX2Nv
bXB1dGVFZGl0b3I6CisgICAgICAgICAgICBmaWxlbmFtZSA9IFdJLlVJU3RyaW5nKCJDb21wdXRl
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlzLl9mcmFnbWVudEVkaXRv
cjoKICAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIkZyYWdtZW50Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlzLl92ZXJ0ZXhFZGl0b3I6CisgICAgICAg
ICAgICBmaWxlbmFtZSA9IFdJLlVJU3RyaW5nKCJWZXJ0ZXgiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZpbGVuYW1lKTsKKworICAgICAg
ICBsZXQgZXh0ZW5zaW9uID0gIiI7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5jYW52YXMuY29udGV4dFR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR0w6CisgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMjoK
KyAgICAgICAgICAgIGV4dGVuc2lvbiA9IFdJLnVubG9jYWxpemVkU3RyaW5nKCIuZ2xzbCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdQVToKKyAgICAgICAgICAgIGV4dGVuc2lvbiA9IFdJLnVubG9jYWxpemVkU3RyaW5nKCIud2hs
c2wiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGV4dGVuc2lvbik7CiAKICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHVybDogV0ku
RmlsZVV0aWxpdGllcy5pbnNwZWN0b3JVUkxGb3JGaWxlbmFtZShmaWxlbmFtZSArICIuZ2xzbCIp
LAorICAgICAgICAgICAgdXJsOiBXSS5GaWxlVXRpbGl0aWVzLmluc3BlY3RvclVSTEZvckZpbGVu
YW1lKGZpbGVuYW1lICsgZXh0ZW5zaW9uKSwKICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX2xh
c3RBY3RpdmVFZGl0b3Iuc3RyaW5nLAogICAgICAgICAgICAgZm9yY2VTYXZlQXM6IHRydWUsCiAg
ICAgICAgIH07CkBAIC0xNzEsNiArMjUxLDY1IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50Vmll
dyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAK
ICAgICAvLyBQcml2YXRlCiAKKyAgICBfcmVmcmVzaENvbnRlbnQoKQorICAgIHsKKyAgICAgICAg
bGV0IGNyZWF0ZUNhbGxiYWNrID0gKHRleHRFZGl0b3IsIGVudHJ5UG9pbnRJbnB1dCkgPT4gewor
ICAgICAgICAgICAgcmV0dXJuIChzb3VyY2UsIGVudHJ5UG9pbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICBpZiAoc291cmNlID09PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICB0ZXh0RWRpdG9yLnN0cmluZyA9IHNvdXJjZSB8fCAiIjsKKworICAgICAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghIWVudHJ5UG9pbnQpID09PSAoISFlbnRyeVBvaW50SW5w
dXQpKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnlQb2ludElucHV0KQorICAgICAgICAgICAg
ICAgICAgICBlbnRyeVBvaW50SW5wdXQudmFsdWUgPSBlbnRyeVBvaW50IHx8ICIiOworICAgICAg
ICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRP
YmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dy
YW1UeXBlLkNvbXB1dGU6CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVl
c3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUsIGNyZWF0
ZUNhbGxiYWNrKHRoaXMuX2NvbXB1dGVFZGl0b3IsIHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50SW5w
dXQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVj
dC5yZXF1ZXN0U2hhZGVyU291cmNlKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgs
IGNyZWF0ZUNhbGxiYWNrKHRoaXMuX3ZlcnRleEVkaXRvciwgdGhpcy5fdmVydGV4RW50cnlQb2lu
dElucHV0KSk7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFk
ZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50LCBjcmVhdGVDYWxs
YmFjayh0aGlzLl9mcmFnbWVudEVkaXRvciwgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQp
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCk7CisgICAgfQorCisgICAgX3VwZGF0ZVNoYWRlcihzaGFkZXJUeXBlKQorICAgIHsKKyAg
ICAgICAgbGV0IHVwZGF0ZVNoYWRlciA9ICh0ZXh0RWRpdG9yLCBlbnRyeVBvaW50SW5wdXQpID0+
IHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRleHRFZGl0b3IpOworCisgICAgICAgICAg
ICBsZXQgb3B0aW9ucyA9IHt9OworICAgICAgICAgICAgaWYgKGVudHJ5UG9pbnRJbnB1dCkKKyAg
ICAgICAgICAgICAgICBvcHRpb25zLmVudHJ5UG9pbnQgPSBlbnRyeVBvaW50SW5wdXQudmFsdWU7
CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihXSS5TaGFk
ZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsIHRleHRFZGl0b3Iuc3RyaW5nLCBvcHRpb25z
KTsKKyAgICAgICAgfTsKKworICAgICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKKyAgICAgICAg
Y2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHVw
ZGF0ZVNoYWRlcih0aGlzLl9jb21wdXRlRWRpdG9yLCB0aGlzLl9jb21wdXRlRW50cnlQb2ludElu
cHV0KTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5GcmFnbWVudDoKKyAgICAgICAgICAgIHVwZGF0ZVNoYWRlcih0aGlzLl9m
cmFnbWVudEVkaXRvciwgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQpOworICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZl
cnRleDoKKyAgICAgICAgICAgIHVwZGF0ZVNoYWRlcih0aGlzLl92ZXJ0ZXhFZGl0b3IsIHRoaXMu
X3ZlcnRleEVudHJ5UG9pbnRJbnB1dCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBjb25zb2xlLmFzc2VydCgpOworICAgIH0KKwogICAgIF9lZGl0b3JGb2N1c2Vk
KGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09IGV2
ZW50LnRhcmdldCkKQEAgLTE5Nyw5ICszMzYsMzkgQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRW
aWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYK
IAogICAgIF9jb250ZW50RGlkQ2hhbmdlKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKGV2ZW50
LnRhcmdldCA9PT0gdGhpcy5fdmVydGV4RWRpdG9yKQotICAgICAgICAgICAgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC51cGRhdGVWZXJ0ZXhTaGFkZXIodGhpcy5fdmVydGV4RWRpdG9yLnN0cmluZyk7
Ci0gICAgICAgIGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZnJhZ21lbnRFZGl0b3Ip
Ci0gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnVwZGF0ZUZyYWdtZW50U2hhZGVy
KHRoaXMuX2ZyYWdtZW50RWRpdG9yLnN0cmluZyk7CisgICAgICAgIHN3aXRjaCAoZXZlbnQudGFy
Z2V0KSB7CisgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUVkaXRvcjoKKyAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZSk7Cisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSB0aGlzLl9mcmFnbWVudEVkaXRvcjoK
KyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5
cGUuRnJhZ21lbnQpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgdGhpcy5f
dmVydGV4RWRpdG9yOgorICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKFdJLlNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlRW50cnlQ
b2ludElucHV0SW5wdXQoZXZlbnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2ZW50LnRhcmdl
dCkgeworICAgICAgICBjYXNlIHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50SW5wdXQ6CisgICAgICAg
ICAgICB0aGlzLl91cGRhdGVTaGFkZXIoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1
dGUpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgdGhpcy5fZnJhZ21lbnRF
bnRyeVBvaW50SW5wdXQ6CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoV0kuU2hhZGVy
UHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBjYXNlIHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRJbnB1dDoKKyAgICAgICAgICAgIHRoaXMu
X3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CiAg
ICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcwppbmRleCBj
ZGE3NWI0MTUyNC4uODdkOWU0ODQ1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtVHJl
ZUVsZW1lbnQuanMKQEAgLTMyLDEwICszMiwxMyBAQCBXSS5TaGFkZXJQcm9ncmFtVHJlZUVsZW1l
bnQgPSBjbGFzcyBTaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5HZW5lcmFsVAog
ICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7CiAgICAgICAgIHN1cGVyKCJzaGFkZXItcHJv
Z3JhbSIsIHNoYWRlclByb2dyYW0uZGlzcGxheU5hbWUsIHN1YnRpdGxlLCBzaGFkZXJQcm9ncmFt
KTsKIAotICAgICAgICB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOwotICAgICAgICB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudC50aXRs
ZSA9IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFByb2dyYW0iKTsKLSAgICAgICAgdGhpcy5fZGlzYWJs
ZWRJbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kaXNhYmxlZElt
YWdlRWxlbWVudENsaWNrZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuc3RhdHVzID0gdGhp
cy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQ7CisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4
dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMikgeworICAgICAgICAgICAgdGhpcy5fZGlzYWJs
ZWRJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAg
ICAgIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkRpc2Fi
bGUgUHJvZ3JhbSIpOworICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudENsaWNrZWQu
YmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVkSW1h
Z2VFbGVtZW50OworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC00NCwz
NCArNDcsNDIgQEAgV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50ID0gY2xhc3MgU2hhZGVyUHJv
Z3JhbVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZXJhbFQKICAgICB7CiAgICAgICAgIHN1cGVy
Lm9uYXR0YWNoKCk7CiAKLSAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExp
c3RlbmVyKFdJLlNoYWRlclByb2dyYW0uRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5k
bGVTaGFkZXJQcm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgbGV0IGNvbnRl
eHRUeXBlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5jYW52YXMuY29udGV4dFR5cGU7CisgICAg
ICAgIGlmIChjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IGNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKSB7CisgICAgICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2hhZGVyUHJvZ3Jh
bS5FdmVudC5EaXNhYmxlZENoYW5nZWQsIHRoaXMuX2hhbmRsZVNoYWRlclByb2dyYW1EaXNhYmxl
ZENoYW5nZWQsIHRoaXMpOwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZW92ZXIiLCB0aGlzLl9oYW5kbGVNb3VzZU92ZXIuYmluZCh0aGlzKSk7Ci0gICAgICAg
IHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIHRoaXMuX2hhbmRsZU1v
dXNlT3V0LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIm1vdXNlb3ZlciIsIHRoaXMuX2hhbmRsZU1vdXNlT3Zlci5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIHRoaXMu
X2hhbmRsZU1vdXNlT3V0LmJpbmQodGhpcykpOworICAgICAgICB9CiAgICAgfQogCiAgICAgb25k
ZXRhY2goKQogICAgIHsKLSAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLlNoYWRlclByb2dyYW0uRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9o
YW5kbGVTaGFkZXJQcm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgbGV0IGNv
bnRleHRUeXBlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5jYW52YXMuY29udGV4dFR5cGU7Cisg
ICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8
IGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKQorICAgICAgICAg
ICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNoYWRlclBy
b2dyYW0uRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQcm9ncmFtRGlz
YWJsZWRDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICBzdXBlci5vbmRldGFjaCgpOwogICAgIH0K
IAogICAgIGNhblNlbGVjdE9uTW91c2VEb3duKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRo
aXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpCisgICAgICAg
IGlmICh0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudCAmJiB0aGlzLl9kaXNhYmxlZEltYWdlRWxl
bWVudC5jb250YWlucyhldmVudC50YXJnZXQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICByZXR1cm4gc3VwZXIuY2FuU2VsZWN0T25Nb3VzZURvd24oZXZlbnQpOwogICAgIH0K
IAogICAgIHBvcHVsYXRlQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50KQogICAgIHsKLSAg
ICAgICAgbGV0IGRpc2FibGVkID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNhYmxlZDsKLSAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShkaXNhYmxlZCA/IFdJLlVJU3RyaW5nKCJFbmFi
bGUgUHJvZ3JhbSIpIDogV0kuVUlTdHJpbmcoIkRpc2FibGUgUHJvZ3JhbSIpLCAoKSA9PiB7Ci0g
ICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc2FibGVkID0gIWRpc2FibGVkOwot
ICAgICAgICB9KTsKKyAgICAgICAgbGV0IGNvbnRleHRUeXBlID0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5jYW52YXMuY29udGV4dFR5cGU7CisgICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR0wyKSB7CisgICAgICAgICAgICBsZXQgZGlzYWJsZWQgPSB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LmRpc2FibGVkOworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRl
bShkaXNhYmxlZCA/IFdJLlVJU3RyaW5nKCJFbmFibGUgUHJvZ3JhbSIpIDogV0kuVUlTdHJpbmco
IkRpc2FibGUgUHJvZ3JhbSIpLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKKyAgICAgICAgICAgIH0pOwogCi0gICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICAgICAgY29udGV4dE1l
bnUuYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIH0KIAogICAgICAgICBzdXBlci5wb3B1bGF0
ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7CiAgICAgfQo=
</data>
<flag name="commit-queue"
          id="394354"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378836</attachid>
            <date>2019-09-15 21:33:31 -0700</date>
            <delta_ts>2019-09-15 22:32:04 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>201675.diff</filename>
            <type>text/plain</type>
            <size>139769</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNv
dXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RT
aGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDY0YmNkZjNjNmNmLi5mOTJmNDk1ZDM4YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291
cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RTaGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDI4ICsxLDggQEAKLVRlc3QgY29tcGls
YXRpb24gb2Ygc2hhZGVycyBhZnRlciBiZWluZyBhdHRhY2hlZCB0byBhIHByb2dyYW0sIHdpdGgg
YW5kIHdpdGhvdXQgc3ludGF4IGVycm9ycy4KK0NvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnJlcXVl
c3RTaGFkZXJTb3VyY2UgY29tbWFuZC4KIAogCi09PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZh
cy5nZXRTaGFkZXJTb3VyY2UKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZS52ZXJ0ZXhTaGFkZXIKLQotICAgIHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAg
IGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOwotICAgIH0KLQotCi0tLSBS
dW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuZnJhZ21lbnRTaGFk
ZXIKLQotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9pZCBtYWluKHZvaWQp
IHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOwotICAg
IH0KLQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2Uu
aW52YWxpZFByb2dyYW1JZAorPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291
cmNlLlByb2dyYW1JZC5JbnZhbGlkCiBQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KIEVy
cm9yOiBNaXNzaW5nIHByb2dyYW0gZm9yIGdpdmVuIHByb2dyYW1JZAogCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuaW52YWxpZFNoYWRlclR5cGUKLVBB
U1M6IFNob3VsZCBwcm9kdWNlIGFuIGVycm9yLgotRXJyb3I6IE1pc3Npbmcgc2hhZGVyIGZvciBn
aXZlbiBzaGFkZXJUeXBlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NTIzYWY0ZDg3ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNv
dXJjZS13ZWJnbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorV2ViR0wgdGVzdHMgZm9y
IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0
IHN1aXRlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTAorLS0gUnVubmluZyB0ZXN0
IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMLlZlcnRleAorCisgICAgdm9p
ZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAs
IDEuMCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZS5XZWJHTC5GcmFnbWVudAorCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEu
MCwgMS4wLCAxLjAsIDEuMCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52
YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5TaGFkZXJUeXBlLkludmFsaWQKK1BBU1M6IFNo
b3VsZCBwcm9kdWNlIGFuIGVycm9yLgorRXJyb3I6IFVua25vd24gc2hhZGVyVHlwZTogSU5WQUxJ
RF9TSEFERVJfVFlQRQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi43OWY3NDc0NjFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sCkBA
IC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNo
YWRlci94LXZlcnRleCI+CisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRp
b24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0
IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICAgIHBy
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworICAgIH0KKzwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgY3JlYXRlUHJvZ3JhbSgid2ViZ2wi
KTsKKyAgICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIiKTsK
KworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291
cmNlLldlYkdMIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJD
YW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5WZXJ0ZXgiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIlRlc3RzIHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEgcHJvZ3JhbSdzIHZl
cnRleCBzaGFkZXIuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1sw
XTsKKyAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAgICAgICAgIHJl
amVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291
cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0
ZXgpCisgICAgICAgICAgICAudGhlbigoe3NvdXJjZSwgZW50cnlQb2ludH0pID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAoZW50cnlQb2ludCkKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkVudHJ5IHBvaW50OiAiICsgZW50cnlQb2ludCk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coc291cmNlKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAu
dGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5h
ZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5X
ZWJHTC5GcmFnbWVudCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVzdGluZyB0
aGUgc291cmNlIGNvZGUgb2YgYSBwcm9ncmFtJ3MgZnJhZ21lbnQgc2hhZGVyLiIsCisgICAgICAg
IHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9
IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICBpZiAoIXNo
YWRlclByb2dyYW0pIHsKKyAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHBy
b2dyYW0iKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50
aWZpZXIsIENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQpCisgICAgICAgICAgICAudGhl
bigoe3NvdXJjZSwgZW50cnlQb2ludH0pID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnlQ
b2ludCkKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVudHJ5IHBvaW50
OiAiICsgZW50cnlQb2ludCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coc291
cmNlKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3Qp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5TaGFkZXJUeXBlLkludmFs
aWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5cGVzIHNob3VsZCBj
YXVzZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1z
WzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAgICAgICAgICAgICAg
cmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5cGUgPSAiSU5WQUxJ
RF9TSEFERVJfVFlQRSI7CisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291
cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yKSA9PiB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHBy
b2R1Y2UgYW4gZXJyb3IuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVy
cm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorPHA+
V2ViR0wgdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbAppbmRleCBhNjg5YzE2OTcyNS4uOTFlNjBlYTQ4NDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNv
dXJjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRl
clNvdXJjZS5odG1sCkBAIC0yLDY0ICsyLDEyIEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hh
ZGVyL3gtdmVydGV4Ij4KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlv
biA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKLSAgICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQg
aWQ9ImZyYWdtZW50LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci0gICAgcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBn
bF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAsIDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+
CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIp
OwotICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0ZXgtc2hhZGVyIiwgImZyYWdtZW50LXNoYWRlciIpOwot
Ci0gICAgcnVuVGVzdCgpOwotfQotCiBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFzLmdldFNoYWRlclNvdXJjZSIp
OworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFz
LnJlcXVlc3RTaGFkZXJTb3VyY2UiKTsKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAg
ICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLnZlcnRleFNoYWRlciIsCi0gICAg
ICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVzdGluZyB0aGUgc291cmNlIGNvZGUgb2YgYSBw
cm9ncmFtJ3MgdmVydGV4IHNoYWRlci4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRl
clByb2dyYW1zWzBdOwotICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAg
ICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVl
c3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLlZlcnRleCkKLSAgICAgICAgICAgIC50aGVuKCh7Y29udGVudH0pID0+IEluc3BlY3Rv
clRlc3QubG9nKGNvbnRlbnQpKQotICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsK
LSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBu
YW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuZnJhZ21lbnRTaGFkZXIiLAotICAgICAg
ICBkZXNjcmlwdGlvbjogIlRlc3RzIHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEgcHJv
Z3JhbSdzIGZyYWdtZW50IHNoYWRlci4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRl
clByb2dyYW1zWzBdOwotICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAg
ICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVl
c3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLkZyYWdtZW50KQotICAgICAgICAgICAgLnRoZW4oKHtjb250ZW50fSkgPT4gSW5zcGVj
dG9yVGVzdC5sb2coY29udGVudCkpCi0gICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3Qp
OwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAg
IG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5pbnZhbGlkUHJvZ3JhbUlkIiwKKyAg
ICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLlByb2dyYW1JZC5JbnZhbGlk
IiwKICAgICAgICAgZGVzY3JpcHRpb246ICJJbnZhbGlkIHByb2dyYW0gaWRlbnRpZmllcnMgc2hv
dWxkIGNhdXNlIGFuIGVycm9yLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAg
ICAgICAgICAgICBjb25zdCBwcm9ncmFtSWQgPSAiSU5WQUxJRF9QUk9HUkFNX0lEIjsKQEAgLTcy
LDMwICsyMCwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB9CiAgICAgfSk7CiAKLSAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRl
clNvdXJjZS5pbnZhbGlkU2hhZGVyVHlwZSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxp
ZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCi0gICAgICAgIHRlc3QocmVz
b2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZh
c01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAgICAgICAgICBpZiAoIXNoYWRlclByb2dy
YW0pIHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29u
c3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElEX1NIQURFUl9UWVBFIjsKLSAgICAgICAgICAgIENhbnZh
c0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFk
ZXJUeXBlLCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoZXJyb3IsICJTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4iKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQogICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9ImxvYWQoKSI+Ci0gICAgPHA+VGVzdCBjb21waWxhdGlvbiBvZiBzaGFkZXJzIGFm
dGVyIGJlaW5nIGF0dGFjaGVkIHRvIGEgcHJvZ3JhbSwgd2l0aCBhbmQgd2l0aG91dCBzeW50YXgg
ZXJyb3JzLjwvcD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkNvbW1vbiB0ZXN0cyBm
b3IgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UgY29tbWFuZC48L3A+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci1leHBlY3RlZC50eHQKaW5kZXggOGYzZmVlOWUxNDAuLmNlMzdlOGU2YTljIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQu
dHh0CkBAIC0xLDM4ICsxLDggQEAKLUNPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVSUk9SOiAwOjE6
ICdJTlZBTElEJyA6IHN5bnRheCBlcnJvcgotQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogRVJST1I6
IDA6MTogJ0lOVkFMSUQnIDogc3ludGF4IGVycm9yCi1UZXN0IGNvbXBpbGF0aW9uIG9mIHNoYWRl
cnMgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQgdG8gYSBwcm9ncmFtLCB3aXRoIGFuZCB3aXRob3V0IHN5
bnRheCBlcnJvcnMuCitDb21tb24gdGVzdHMgZm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29tbWFu
ZC4KIAogCiA9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy51cGRhdGVTaGFkZXIKLS0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLnZlcnRleFNoYWRlclZhbGlkCi0K
LSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSwgMiwg
MywgNCk7Ci0gICAgfQotCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hh
ZGVyLmZyYWdtZW50U2hhZGVyVmFsaWQKLQotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owot
Ci0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjEs
IDAuMiwgMC4zLCAwLjQpOwotICAgIH0KLQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnVwZGF0ZVNoYWRlci5pbnZhbGlkUHJvZ3JhbUlkCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2Fu
dmFzLnVwZGF0ZVNoYWRlci5Qcm9ncmFtSWQuSW52YWxpZAogUEFTUzogU2hvdWxkIHByb2R1Y2Ug
YW4gZXJyb3IuCiBFcnJvcjogTWlzc2luZyBwcm9ncmFtIGZvciBnaXZlbiBwcm9ncmFtSWQKIAot
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuaW52YWxpZFNoYWRlclR5
cGUKLVBBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGVycm9yLgotRXJyb3I6IE1pc3Npbmcgc2hhZGVy
IGZvciBnaXZlbiBzaGFkZXJUeXBlCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBk
YXRlU2hhZGVyLmludmFsaWRWZXJ0ZXhTaGFkZXJTb3VyY2UKLVBBU1M6IFNob3VsZCBwcm9kdWNl
IGVycm9yLgotRXJyb3I6IEZhaWxlZCB0byB1cGRhdGUgc2hhZGVyCi0KLS0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRGcmFnbWVudFNoYWRlclNvdXJjZQot
UEFTUzogU2hvdWxkIHByb2R1Y2UgZXJyb3IuCi1FcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFk
ZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFk
ZXItd2ViZ2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRh
dGVTaGFkZXItd2ViZ2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yYmJiYTcyMThmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDM0IEBACitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBFUlJPUjogMDoxOiAnSU5WQUxJRCcgOiBz
eW50YXggZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVSUk9SOiAwOjE6ICdJTlZBTElE
JyA6IHN5bnRheCBlcnJvcgorV2ViR0wgdGVzdHMgZm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29t
bWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy51cGRhdGVTaGFkZXIuV2Vi
R0wKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRl
eC5WYWxpZAorCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KDEsIDIsIDMsIDQpOworICAgIH0KKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnVwZGF0ZVNoYWRlci5XZWJHTC5GcmFnbWVudC5WYWxpZAorCisgICAgcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3Ig
PSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5JbnZhbGlkCitQQVNTOiBTaG91
bGQgcHJvZHVjZSBlcnJvci4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZl
biBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52YWxpZAorUEFTUzogU2hvdWxk
IHByb2R1Y2UgZXJyb3IuCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4g
c2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlNoYWRlclR5cGUuSW52YWxpZAorUEFTUzogU2hvdWxk
IHByb2R1Y2UgYW4gZXJyb3IuCitFcnJvcjogVW5rbm93biBzaGFkZXJUeXBlOiBJTlZBTElEX1NI
QURFUl9UWVBFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci13ZWJnbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li41MjBlZmNhOTc0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLmh0bWwKQEAgLTAsMCArMSwxMzMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisgICAgdm9p
ZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAs
IDEuMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
CisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAs
IDEuMCwgMS4wLCAxLjApOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxv
YWQoKSB7CisgICAgY3JlYXRlUHJvZ3JhbSgid2ViZ2wiKTsKKyAgICBsaW5rUHJvZ3JhbSgidmVy
dGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIiKTsKKworICAgIHJ1blRlc3QoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFz
eW5jU3VpdGUoIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wiKTsKKworICAgIGZ1bmN0aW9uIHZh
bGlkU291cmNlVGVzdCh7bmFtZSwgc2hhZGVyVHlwZSwgc291cmNlfSkgeworICAgICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNh
bnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICAgICAgaWYgKCFzaGFk
ZXJQcm9ncmFtKSB7CisgICAgICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIg
cHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBsZXQgcHJvZ3JhbUlkID0gc2hhZGVyUHJvZ3JhbS5pZGVudGlm
aWVyOworCisgICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHByb2dyYW1J
ZCwgc2hhZGVyVHlwZSwgc291cmNlKQorICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IENhbnZh
c0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2UocHJvZ3JhbUlkLCBzaGFkZXJUeXBlKSkKKyAgICAg
ICAgICAgICAgICAudGhlbigoe3NvdXJjZSwgZW50cnlQb2ludH0pID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGVudHJ5UG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRW50cnkgcG9pbnQ6ICIgKyBlbnRyeVBvaW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coc291cmNlKTsKKyAgICAgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIHZhbGlkU291cmNlVGVzdCh7CisgICAgICAgIG5hbWU6ICJD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5WYWxpZCIsCisgICAgICAgIHNoYWRlclR5
cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAorICAgICAgICBzb3VyY2U6IGAKKyAg
ICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSwgMiwgMywg
NCk7CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIHZhbGlkU291cmNlVGVzdCh7CisgICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLkZyYWdtZW50LlZhbGlkIiwKKyAgICAg
ICAgc2hhZGVyVHlwZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwKKyAgICAgICAg
c291cmNlOiBgCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2b2lkIG1haW4o
dm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7
CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIGludmFsaWRTb3VyY2VUZXN0KHtu
YW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFk
ZXJQcm9ncmFtc1swXTsKKyAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNo
YWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGVycm9yLiIpOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaW52YWxpZFNvdXJjZVRlc3Qoewor
ICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5WZXJ0ZXguSW52YWxpZCIs
CisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAorICAg
ICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICB9KTsKKworICAgIGludmFsaWRTb3VyY2VUZXN0
KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52
YWxpZCIsCisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21l
bnQsCisgICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAorICAgIH0pOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5TaGFk
ZXJUeXBlLkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5
cGVzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNo
YWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAg
ICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5
cGUgPSAiSU5WQUxJRF9TSEFERVJfVFlQRSI7CisgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSAi
SU5WQUxJRF9TT1VSQ0UiOworICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHNo
YWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJyb3IpID0+IHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXJyb3IsICJTaG91bGQg
cHJvZHVjZSBhbiBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Cis8
cD5XZWJHTCB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci5odG1sCmluZGV4IGU0OWFkMmIzMTNjLi43YjBhNGNmZjkwZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sCkBAIC0yLDc0ICsyLDEyIEBACiA8
aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZl
cnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLSAgICB2b2lkIG1haW4odm9p
ZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKLSAg
ICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImZyYWdtZW50LXNoYWRlciIgdHlwZT0ieC1zaGFk
ZXIveC1mcmFnbWVudCI+Ci0gICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2b2lk
IG1haW4odm9pZCkgewotICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAs
IDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9hZCgpIHsKLSAg
ICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIpOwotICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0ZXgtc2hhZGVy
IiwgImZyYWdtZW50LXNoYWRlciIpOwotCi0gICAgcnVuVGVzdCgpOwotfQotCiBmdW5jdGlvbiB0
ZXN0KCkgewogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgi
Q2FudmFzLnVwZGF0ZVNoYWRlciIpOwogCi0gICAgZnVuY3Rpb24gdmFsaWRTb3VyY2VUZXN0KHtu
YW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7Ci0gICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
LSAgICAgICAgICAgIG5hbWUsCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFk
ZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICAgIGxldCBwcm9ncmFtSWQgPSBzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXI7Ci0KLSAgICAgICAg
ICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIocHJvZ3JhbUlkLCBzaGFkZXJUeXBlLCBz
b3VyY2UpCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gQ2FudmFzQWdlbnQucmVxdWVzdFNo
YWRlclNvdXJjZShwcm9ncmFtSWQsIHNoYWRlclR5cGUpKQotICAgICAgICAgICAgICAgIC50aGVu
KCh7Y29udGVudH0pID0+IEluc3BlY3RvclRlc3QubG9nKGNvbnRlbnQpKQotICAgICAgICAgICAg
ICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwot
ICAgIH0KLQotICAgIHZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBk
YXRlU2hhZGVyLnZlcnRleFNoYWRlclZhbGlkIiwKLSAgICAgICAgc2hhZGVyVHlwZTogQ2FudmFz
QWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgsCi0gICAgICAgIHNvdXJjZTogYAotICAgIHZvaWQgbWFp
bih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLCAyLCAzLCA0KTsKLSAgICB9
Ci1gLAotICAgIH0pOwotCi0gICAgdmFsaWRTb3VyY2VUZXN0KHsKLSAgICAgICAgbmFtZTogIkNh
bnZhcy51cGRhdGVTaGFkZXIuZnJhZ21lbnRTaGFkZXJWYWxpZCIsCi0gICAgICAgIHNoYWRlclR5
cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsCi0gICAgICAgIHNvdXJjZTogYAot
ICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAg
ICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjEsIDAuMiwgMC4zLCAwLjQpOwotICAgIH0KLWAs
Ci0gICAgfSk7Ci0KICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52
YXMudXBkYXRlU2hhZGVyLmludmFsaWRQcm9ncmFtSWQiLAorICAgICAgICBuYW1lOiAiQ2FudmFz
LnVwZGF0ZVNoYWRlci5Qcm9ncmFtSWQuSW52YWxpZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
SW52YWxpZCBwcm9ncmFtIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAogICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgY29uc3QgcHJvZ3JhbUlk
ID0gIklOVkFMSURfUFJPR1JBTV9JRCI7CkBAIC04Myw2MiArMjEsMTEgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICAgICAgfQogICAgIH0pOwogCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAg
ICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkU2hhZGVyVHlwZSIsCi0gICAg
ICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNlIGFuIGVy
cm9yLiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
c2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAg
ICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1p
c3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgY29uc3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElEX1NIQURFUl9U
WVBFIjsKLSAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9ICJJTlZBTElEX1NPVVJDRSI7Ci0gICAg
ICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVy
LCBzaGFkZXJUeXBlLCBzb3VyY2UsIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGFuIGVycm9yLiIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKLSAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAg
IH0pOwotCi0gICAgZnVuY3Rpb24gaW52YWxpZFNvdXJjZVRlc3Qoe25hbWUsIHNoYWRlclR5cGUs
IHNvdXJjZX0pIHsKLSAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFt
ZSwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAg
bGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwot
ICAgICAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAgICAgICAgICAg
ICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQu
dXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNl
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGVycm9yLCAiU2hvdWxkIHByb2R1Y2UgZXJyb3IuIik7Ci0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBpbnZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJD
YW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRWZXJ0ZXhTaGFkZXJTb3VyY2UiLAotICAgICAgICBz
aGFkZXJUeXBlOiBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCwKLSAgICAgICAgc291cmNl
OiAiSU5WQUxJRCIsCi0gICAgfSk7Ci0KLSAgICBpbnZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRGcmFnbWVudFNoYWRlclNvdXJjZSIs
Ci0gICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsCi0g
ICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAotICAgIH0pOwotCiAgICAgc3VpdGUucnVuVGVzdENh
c2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9h
ZCgpIj4KLSAgICA8cD5UZXN0IGNvbXBpbGF0aW9uIG9mIHNoYWRlcnMgYWZ0ZXIgYmVpbmcgYXR0
YWNoZWQgdG8gYSBwcm9ncmFtLCB3aXRoIGFuZCB3aXRob3V0IHN5bnRheCBlcnJvcnMuPC9wPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+Q29tbW9uIHRlc3RzIGZvciBDYW52YXMudXBk
YXRlU2hhZGVyIGNvbW1hbmQuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MjVlNjg1OWNmYS4uOTg5M2Q4OTQyOTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDAwLDEy
ICsyMDAwLDEzIEBAIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1p
dC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItc25hcHNo
b3RzLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wu
aHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRt
bCBbIFNraXAgXQotaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwgWyBT
a2lwIF0KK2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sIFsg
U2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwgWyBTa2lw
IF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwgWyBTa2lwIF0K
IGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWwgWyBT
a2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsMi5o
dG1sIFsgU2tpcCBdCi1pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sIFsgU2tpcCBd
CitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC5odG1sIFsgU2tpcCBdCisKICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMjIyMjIyMjIyAgICAgICAgICBFbmQgV2Vi
R0wgSXNzdWVzICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL0NhbnZhcy5qc29uCmluZGV4IDc5OGI5OTFjZDJiLi45ZmNiYTJkODA3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMu
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZh
cy5qc29uCkBAIC0xOSwxMSArMTksMTUgQEAKICAgICAgICAgICAgICJlbnVtIjogWyJjYW52YXMt
MmQiLCAiYml0bWFwcmVuZGVyZXIiLCAid2ViZ2wiLCAid2ViZ2wyIiwgIndlYmdwdSJdLAogICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGJh
Y2tpbmcgdGhlIGNhbnZhcyBlbGVtZW50LiIKICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImlkIjogIlByb2dyYW1UeXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIs
CisgICAgICAgICAgICAiZW51bSI6IFsiY29tcHV0ZSIsICJyZW5kZXIiXQorICAgICAgICB9LAog
ICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiU2hhZGVyVHlwZSIsCiAgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgImVudW0iOiBbImZyYWdtZW50IiwgInZlcnRl
eCJdLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNoYWRlciB0eXBlLiBXZWJHTCBzdXBw
b3J0cyB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcnMuIgorICAgICAgICAgICAgImVudW0iOiBb
ImNvbXB1dGUiLCAiZnJhZ21lbnQiLCAidmVydGV4Il0KICAgICAgICAgfSwKICAgICAgICAgewog
ICAgICAgICAgICAgImlkIjogIkNvbnRleHRBdHRyaWJ1dGVzIiwKQEAgLTEzNiw3ICsxNDAsOCBA
QAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2hhZGVyVHlwZSIsICIkcmVmIjogIlNoYWRl
clR5cGUiIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnQiLCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImVudHJ5UG9pbnQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpAQCAt
MTQ1LDcgKzE1MCw4IEBACiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInByb2dyYW1JZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNoYWRlclR5cGUiLCAiJHJlZiI6ICJTaGFkZXJUeXBlIiB9
LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3RyaW5nIiB9
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbnRyeVBvaW50IiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAg
IHsKQEAgLTIyMywxNCArMjI5LDE1IEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjog
InByb2dyYW1DcmVhdGVkIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCIsICJkZXNjcmlw
dGlvbiI6ICJDYW52YXMgaWRlbnRpZmllci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3Jh
bSBpZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAi
JHJlZiI6ICJDYW52YXNJZCJ9ICwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1J
ZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBy
b2dyYW1UeXBlIiwgIiRyZWYiOiAiUHJvZ3JhbVR5cGUiIH0KICAgICAgICAgICAgIF0KICAgICAg
ICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3JhbURlbGV0ZWQiLAog
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJw
cm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3JhbSBp
ZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkIiwgIiRy
ZWYiOiAiUHJvZ3JhbUlkIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNw
cAppbmRleCA3N2VjY2JkNzIzOS4uMTIwM2RjZTJhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcApAQCAtNTksMjEgKzU5
LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIFdITFNMIHsKIAotc3RydWN0
IFNoYWRlck1vZHVsZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0K
LSAgICBTaGFkZXJNb2R1bGUoY29uc3QgU3RyaW5nJiB3aGxzbFNvdXJjZSkKLSAgICAgICAgOiB3
aGxzbFNvdXJjZSh3aGxzbFNvdXJjZSkKLSAgICB7Ci0gICAgfQotCi0gICAgU3RyaW5nIHdobHNs
U291cmNlOwotfTsKLQorU2hhZGVyTW9kdWxlOjpTaGFkZXJNb2R1bGUoY29uc3QgU3RyaW5nJiB3
aGxzbFNvdXJjZSkKKyAgICA6IHdobHNsU291cmNlKHdobHNsU291cmNlKQorewogfQogCi19Cit9
IC8vIG5hbWVzcGFjZSBXSExTTAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFj
ZSBzdGQgewogCkBAIC04Miw3ICs3NSw3IEBAIHZvaWQgZGVmYXVsdF9kZWxldGU8V2ViQ29yZTo6
V0hMU0w6OlNoYWRlck1vZHVsZT46Om9wZXJhdG9yKCkoV2ViQ29yZTo6V0hMU0w6OlNoCiAgICAg
ZGVsZXRlIHNoYWRlck1vZHVsZTsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2Ugc3RkCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV0hMU0wvV0hMU0xQcmVwYXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTFByZXBhcmUuaAppbmRleCA2OTdmOWJlZDVhMC4uMDhlYTM5OGVkM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5o
CkBAIC0zOCwxMiArMzgsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV0hM
U0wgewogCi0vLyBIaWRlIHRoZSBjb250ZW50cyBvZiB0aGUgU2hhZGVyTW9kdWxlLiBDbGllbnRz
IG9mIHRoZSBjb21waWxlciBzaG91bGRuJ3QgY2FyZSB3aGF0J3MgaW5zaWRlIGl0Lgotc3RydWN0
IFNoYWRlck1vZHVsZTsKK3N0cnVjdCBTaGFkZXJNb2R1bGUgeworICAgIFdURl9NQUtFX1NUUlVD
VF9GQVNUX0FMTE9DQVRFRDsKIAotfQorICAgIFNoYWRlck1vZHVsZShjb25zdCBTdHJpbmcmIHdo
bHNsU291cmNlKTsKIAotfQorICAgIFN0cmluZyB3aGxzbFNvdXJjZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdITFNMCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIHN0ZCB7
CiAKQEAgLTUxLDcgKzU2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgZGVmYXVsdF9kZWxldGU8V2Vi
Q29yZTo6V0hMU0w6OlNoYWRlck1vZHVsZT4gewogICAgIHZvaWQgb3BlcmF0b3IoKShXZWJDb3Jl
OjpXSExTTDo6U2hhZGVyTW9kdWxlKikgY29uc3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBz
dGQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCAxM2MyNDQ4OWM3
MS4uY2FkNmNmMzY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcApAQCAtMjgsMTggKzI4LDQzIEBACiAKICNp
ZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCisjaW5j
bHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BV
RGV2aWNlLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdl
YkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYg
cGlwZWxpbmUpCitSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBXZWJHUFVDb21wdXRlUGlwZWxp
bmU6OmNyZWF0ZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGlu
ZT4mJiBwaXBlbGluZSwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1
dGVTaGFkZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lKFdURk1vdmUocGlwZWxpbmUpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lKGRldmljZSwgV1RGTW92ZShwaXBlbGluZSksIGNvbXB1dGVTaGFkZXIp
KTsKIH0KIAotV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpXZWJHUFVDb21wdXRlUGlwZWxpbmUoUmVm
UHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSkKLSAgICA6IG1fY29tcHV0ZVBpcGVs
aW5lIHsgV1RGTW92ZShwaXBlbGluZSkgfQorV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpXZWJHUFVD
b21wdXRlUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlw
ZWxpbmU+JiYgcGlwZWxpbmUsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBj
b21wdXRlU2hhZGVyKQorICAgIDogV2ViR1BVUGlwZWxpbmUoZGV2aWNlKQorICAgICwgbV9jb21w
dXRlUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCisgICAgLCBtX2NvbXB1dGVTaGFkZXIoY29t
cHV0ZVNoYWRlcikKIHsKIH0KIAorV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjp+V2ViR1BVQ29tcHV0
ZVBpcGVsaW5lKCkgPSBkZWZhdWx0OworCitib29sIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6cmVj
b21waWxlKGNvbnN0IFdlYkdQVURldmljZSYgZGV2aWNlKQoreworICAgIGlmIChtX2NvbXB1dGVQ
aXBlbGluZSkgeworICAgICAgICBpZiAobV9jb21wdXRlU2hhZGVyKSB7CisgICAgICAgICAgICBp
ZiAoYXV0byYgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9IG1fY29tcHV0ZVNoYWRlci52YWx1
ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBncHVDb21wdXRlU2hhZGVy
TW9kdWxlID0gd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZS0+bW9kdWxlKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIGNvbXB1dGVTdGFnZSht
YWtlUmVmKCpncHVDb21wdXRlU2hhZGVyTW9kdWxlKSwgeyBtX2NvbXB1dGVTaGFkZXIudmFsdWUo
KS5lbnRyeVBvaW50IH0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9jb21wdXRlUGlw
ZWxpbmUtPnJlY29tcGlsZShkZXZpY2UuZGV2aWNlKCksIGNvbXB1dGVTdGFnZSk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNv
bXB1dGVQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lLmgKaW5kZXggOWE3NThjMDllMmIuLjgxMjIzNWY3YmY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUu
aApAQCAtMjcsMjQgKzI3LDM2IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAi
R1BVQ29tcHV0ZVBpcGVsaW5lLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdlYkdQVUNv
bXB1dGVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4g
eworY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lOworY2xhc3MgV2ViR1BVRGV2aWNlOworCitjbGFz
cyBXZWJHUFVDb21wdXRlUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgV2ViR1BVUGlwZWxpbmUgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGUoUmVm
UHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJik7CisgICAgdmlydHVhbCB+V2ViR1BVQ29tcHV0ZVBp
cGVsaW5lKCk7CisKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRl
KFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIE9wdGlvbmFsPFdl
YkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPik7CisKKyAgICBib29sIGlzQ29tcHV0ZVBpcGVsaW5l
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5l
KiBjb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVQaXBlbGluZS5nZXQo
KTsgfQorICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBjb21wdXRlU2hh
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlU2hhZGVyOyB9CisKKyAgICBib29sIHJlY29t
cGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKTsKIAogcHJpdmF0ZToKLSAgICBXZWJHUFVDb21wdXRl
UGlwZWxpbmUoUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJik7CisgICAgV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIE9w
dGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPik7CiAKICAgICBSZWZQdHI8R1BVQ29t
cHV0ZVBpcGVsaW5lPiBtX2NvbXB1dGVQaXBlbGluZTsKKyAgICBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gbV9jb21wdXRlU2hhZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dFQkdQVVBJUEVMSU5FKFdlYkNvcmU6
OldlYkdQVUNvbXB1dGVQaXBlbGluZSwgaXNDb21wdXRlUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmlkbAppbmRleCBhNTUyYmE5MmZkMi4uNGI4YTc3ZTQ4
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1
dGVQaXBlbGluZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmlkbApAQCAtMjcsNyArMjcsNiBAQAogWwogICAgIENvbmRpdGlvbmFs
PVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAogICAgIEludGVyZmFjZU5hbWU9R1BVQ29tcHV0ZVBpcGVsaW5lCiBdIGlu
dGVyZmFjZSBXZWJHUFVDb21wdXRlUGlwZWxpbmUgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IGZiOTVkZWRiMGNmLi4xOWM2YjA3
NWFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2
aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2Uu
Y3BwCkBAIC0zOSw4ICszOSwxMCBAQAogI2luY2x1ZGUgIkdQVUJ1ZmZlckJpbmRpbmcuaCIKICNp
bmNsdWRlICJHUFVCdWZmZXJEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVQ29tbWFuZEJ1ZmZl
ci5oIgorI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZS5oIgogI2luY2x1ZGUgIkdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgogI2luY2x1ZGUgIkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVNhbXBsZXIuaCIKICNp
bmNsdWRlICJHUFVTYW1wbGVyRGVzY3JpcHRvci5oIgpAQCAtMjA4LDI4ICsyMTAsNDYgQEAgUmVm
PFdlYkdQVVNoYWRlck1vZHVsZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoY29u
c3QgV2ViR1BVU2hhZGVyTW9kdWwKICAgICByZXR1cm4gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVh
dGUoV1RGTW92ZShtb2R1bGUpKTsKIH0KIAotUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJH
UFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4g
V2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgbV9lcnJvclNjb3Blcy0+c2V0RXJy
b3JQcmVmaXgoIkdQVURldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZSgpOiAiKTsKIAogICAgIGF1
dG8gZ3B1RGVzY3JpcHRvciA9IGRlc2NyaXB0b3IudHJ5Q3JlYXRlR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yKG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRvcikKLSAgICAg
ICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUobnVsbHB0cik7CisgICAgICAg
IHJldHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBudWxscHRyLCBXVEY6
Om51bGxvcHQsIFdURjo6bnVsbG9wdCk7CiAKLSAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2Ut
PnRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsK
LSAgICByZXR1cm4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShXVEZNb3ZlKHBpcGVsaW5l
KSk7CisgICAgYXV0byBncHVQaXBlbGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVSZW5kZXJQaXBl
bGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7CisKKyAgICBXZWJHUFVQaXBlbGlu
ZTo6U2hhZGVyRGF0YSB2ZXJ0ZXhTaGFkZXIgPSB7IGRlc2NyaXB0b3IudmVydGV4U3RhZ2UubW9k
dWxlLCBkZXNjcmlwdG9yLnZlcnRleFN0YWdlLmVudHJ5UG9pbnQgfTsKKworICAgIE9wdGlvbmFs
PFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcjsKKyAgICBpZiAoZGVz
Y3JpcHRvci5mcmFnbWVudFN0YWdlKQorICAgICAgICBmcmFnbWVudFNoYWRlciA9IHsgeyBkZXNj
cmlwdG9yLmZyYWdtZW50U3RhZ2UudmFsdWUoKS5tb2R1bGUsIGRlc2NyaXB0b3IuZnJhZ21lbnRT
dGFnZS52YWx1ZSgpLmVudHJ5UG9pbnQgfSB9OworCisgICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9
IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZ3B1UGlwZWxpbmUp
LCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKTsKKworICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoKnRoaXMsIHdlYkdQVVBpcGVsaW5lLmdl
dCgpKTsKKworICAgIHJldHVybiB3ZWJHUFVQaXBlbGluZTsKIH0KIAotUmVmPFdlYkdQVUNvbXB1
dGVQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJH
UFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNv
bnN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAg
bV9lcnJvclNjb3Blcy0+c2V0RXJyb3JQcmVmaXgoIkdQVURldmljZS5jcmVhdGVDb21wdXRlUGlw
ZWxpbmUoKTogIik7CiAKICAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRyeUNy
ZWF0ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IobV9lcnJvclNjb3Blcyk7CiAgICAgaWYg
KCFncHVEZXNjcmlwdG9yKQotICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpj
cmVhdGUobnVsbHB0cik7CisgICAgICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNy
ZWF0ZSgqdGhpcywgbnVsbHB0ciwgV1RGOjpudWxsb3B0KTsKIAotICAgIGF1dG8gcGlwZWxpbmUg
PSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vy
cm9yU2NvcGVzKTsKLSAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoV1RG
TW92ZShwaXBlbGluZSkpOworICAgIGF1dG8gZ3B1UGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3Jl
YXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKKworICAg
IFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhIGNvbXB1dGVTaGFkZXIgPSB7IGRlc2NyaXB0b3Iu
Y29tcHV0ZVN0YWdlLm1vZHVsZSwgZGVzY3JpcHRvci5jb21wdXRlU3RhZ2UuZW50cnlQb2ludCB9
OworCisgICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3Jl
YXRlKCp0aGlzLCBXVEZNb3ZlKGdwdVBpcGVsaW5lKSwgY29tcHV0ZVNoYWRlcik7CisKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKCp0aGlzLCB3
ZWJHUFVQaXBlbGluZS5nZXQoKSk7CisKKyAgICByZXR1cm4gd2ViR1BVUGlwZWxpbmU7CiB9CiAK
IFJlZjxXZWJHUFVDb21tYW5kRW5jb2Rlcj4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21tYW5kRW5j
b2RlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmlj
ZS5oCmluZGV4IGQ5OGYyM2M2NzMzLi4yMWI1NDE3YzIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKQEAgLTk5LDggKzk5LDggQEAgcHVibGljOgog
ICAgIFJlZjxXZWJHUFVCaW5kR3JvdXA+IGNyZWF0ZUJpbmRHcm91cChjb25zdCBXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBj
cmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYpIGNv
bnN0OwotICAgIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVyUGlwZWxpbmUo
Y29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJikgY29uc3Q7Ci0gICAgUmVmPFdl
YkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKSBjb25zdDsKKyAgICBSZWY8V2ViR1BVUmVuZGVyUGlw
ZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciYpOworICAgIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZUNvbXB1dGVQ
aXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJik7CiAKICAgICBS
ZWY8V2ViR1BVQ29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTIyODAzMTczMGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGlu
ZS5jcHAKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0hhc2hNYXA8V2ViR1BVUGlwZWxpbmUqLCBXZWJHUFVEZXZpY2UqPiYgV2ViR1BVUGlwZWxpbmU6
Omluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SGFzaE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmljZSo+PiBpbnN0YW5jZXM7Cisg
ICAgcmV0dXJuIGluc3RhbmNlczsKK30KKworTG9jayYgV2ViR1BVUGlwZWxpbmU6Omluc3RhbmNl
c011dGV4KCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4Owor
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplTXV0ZXg7CisgICAgc3RkOjpjYWxs
X29uY2UoaW5pdGlhbGl6ZU11dGV4LCBbXSB7CisgICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOwor
ICAgIH0pOworICAgIHJldHVybiBtdXRleC5nZXQoKTsKK30KKworV2ViR1BVUGlwZWxpbmU6Oldl
YkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlKQorICAgIDogbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KGRldmljZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCit7CisgICAgTG9ja0hv
bGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIGluc3RhbmNlcyhsb2NrKS5hZGQodGhp
cywgJmRldmljZSk7Cit9CisKK1dlYkdQVVBpcGVsaW5lOjp+V2ViR1BVUGlwZWxpbmUoKQorewor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZSgq
dGhpcyk7CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgp
KTsKKyAgICAgICAgQVNTRVJUKGluc3RhbmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAg
ICAgIGluc3RhbmNlcyhsb2NrKS5yZW1vdmUodGhpcyk7CisgICAgfQorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmY3ODI0Yjk3NTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaApAQCAtMCwwICsxLDcwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5j
bHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBXZWJHUFVEZXZpY2U7CisKK2NsYXNzIFdl
YkdQVVBpcGVsaW5lIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVUGlwZWxpbmU+IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIH5XZWJHUFVQaXBlbGluZSgpOworCisgICAgc3RhdGljIEhhc2hNYXA8
V2ViR1BVUGlwZWxpbmUqLCBXZWJHUFVEZXZpY2UqPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xk
ZXImKTsKKyAgICBzdGF0aWMgTG9jayYgaW5zdGFuY2VzTXV0ZXgoKTsKKworICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNDb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQorCisgICAgc3RydWN0IFNoYWRl
ckRhdGEgeworICAgICAgICBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBtb2R1bGU7CisgICAg
ICAgIFN0cmluZyBlbnRyeVBvaW50OworICAgIH07CisgICAgdmlydHVhbCBib29sIHJlY29tcGls
ZShjb25zdCBXZWJHUFVEZXZpY2UmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBXZWJHUFVQaXBl
bGluZShXZWJHUFVEZXZpY2UmKTsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Rl
ZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dFQkdQVVBJUEVMSU5FKFRvVmFsdWVUeXBlTmFt
ZSwgcHJlZGljYXRlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFRvVmFsdWVUeXBl
TmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXZWJHUFVQaXBl
bGluZSYgcGlwZWxpbmUpIHsgcmV0dXJuIHBpcGVsaW5lLnByZWRpY2F0ZTsgfSBcCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaAppbmRleCBmZmJjNWI4MTFkMy4uMWE0NDE0YWFjMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oCkBAIC0zNyw3ICszNyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0
b3IgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JCYXNlIHsKICAgICBPcHRpb25hbDxH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3I+IHRyeUNyZWF0ZUdQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvcigpIGNvbnN0OwogCi0gICAgUmVmUHRyPGNvbnN0IFdlYkdQVVNoYWRlck1v
ZHVsZT4gbW9kdWxlOworICAgIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAppbmRleCAxZGM0ZGRmMWZmZC4u
NzcwZDAyNjU1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKQEAgLTI4LDE4ICsyOCw1MiBAQAogCiAjaWYgRU5B
QkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5o
IgorI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNl
LmgiCisjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgiCisjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJl
ZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShSZWZQ
dHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUpCitSZWY8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJl
ZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwgT3B0aW9uYWw8V2ViR1BVUGlwZWxp
bmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNo
YWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkdQVVJlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViR1BVUmVuZGVyUGlwZWxpbmUoZGV2aWNlLCBXVEZNb3ZlKHBpcGVsaW5lKSwg
dmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcikpOwogfQogCi1XZWJHUFVSZW5kZXJQaXBlbGlu
ZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVs
aW5lKQotICAgIDogbV9yZW5kZXJQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKK1dlYkdQVVJl
bmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwg
UmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lLCBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpCisgICAgOiBXZWJHUFVQaXBlbGluZShkZXZpY2Up
CisgICAgLCBtX3JlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQorICAgICwgbV92ZXJ0
ZXhTaGFkZXIodmVydGV4U2hhZGVyKQorICAgICwgbV9mcmFnbWVudFNoYWRlcihmcmFnbWVudFNo
YWRlcikKIHsKIH0KIAorV2ViR1BVUmVuZGVyUGlwZWxpbmU6On5XZWJHUFVSZW5kZXJQaXBlbGlu
ZSgpID0gZGVmYXVsdDsKKworYm9vbCBXZWJHUFVSZW5kZXJQaXBlbGluZTo6cmVjb21waWxlKGNv
bnN0IFdlYkdQVURldmljZSYgZGV2aWNlKQoreworICAgIGlmIChtX3JlbmRlclBpcGVsaW5lKSB7
CisgICAgICAgIGlmIChtX3ZlcnRleFNoYWRlcikgeworICAgICAgICAgICAgaWYgKGF1dG8mIHdl
YkdQVVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGdwdVZlcnRleFNoYWRlck1vZHVsZSA9IHdlYkdQ
VVZlcnRleFNoYWRlck1vZHVsZS0+bW9kdWxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgR1BV
UHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlKG1ha2VSZWYoKmdwdVZlcnRl
eFNoYWRlck1vZHVsZSksIHsgbV92ZXJ0ZXhTaGFkZXIudmFsdWUoKS5lbnRyeVBvaW50IH0pOwor
ICAgICAgICAgICAgICAgICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0
b3I+IGZyYWdtZW50U3RhZ2U7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hh
ZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byYgd2ViR1BVRnJhZ21lbnRT
aGFkZXJNb2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGdwdUZyYWdtZW50U2hhZGVyTW9kdWxlID0g
d2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmcmFnbWVudFN0YWdlID0gR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yKG1ha2VSZWYoKmdwdUZyYWdtZW50U2hhZGVyTW9kdWxlKSwgeyBtX2ZyYWdtZW50U2hhZGVy
LnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9yZW5kZXJQaXBl
bGluZS0+cmVjb21waWxlKGRldmljZS5kZXZpY2UoKSwgdmVydGV4U3RhZ2UsIGZyYWdtZW50U3Rh
Z2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaAppbmRleCBmMzljZmVkNzA5My4uNjc2ZDkwZGE1YTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBp
cGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVy
UGlwZWxpbmUuaApAQCAtMjcsMjQgKzI3LDM4IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0j
aW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
V2ViR1BVUmVuZGVyUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVSZW5kZXJQaXBl
bGluZT4geworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7CitjbGFzcyBXZWJHUFVEZXZpY2U7CisK
K2NsYXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lIGZpbmFsIDogcHVibGljIFdlYkdQVVBpcGVsaW5l
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUo
UmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmKTsKKyAgICB2aXJ0dWFsIH5XZWJHUFVSZW5kZXJQ
aXBlbGluZSgpOworCisgICAgc3RhdGljIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRl
KFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgT3B0aW9uYWw8V2Vi
R1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlw
ZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKTsKKworICAgIGJvb2wgaXNSZW5kZXJQ
aXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGNvbnN0IEdQVVJlbmRlclBp
cGVsaW5lKiByZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyUGlwZWxpbmUu
Z2V0KCk7IH0KKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4
U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhTaGFkZXI7IH0KKyAgICBPcHRpb25hbDxX
ZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVy
biBtX2ZyYWdtZW50U2hhZGVyOyB9CisKKyAgICBib29sIHJlY29tcGlsZShjb25zdCBXZWJHUFVE
ZXZpY2UmKTsKIAogcHJpdmF0ZToKLSAgICBXZWJHUFVSZW5kZXJQaXBlbGluZShSZWZQdHI8R1BV
UmVuZGVyUGlwZWxpbmU+JiYpOworICAgIFdlYkdQVVJlbmRlclBpcGVsaW5lKFdlYkdQVURldmlj
ZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6
OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRl
ckRhdGE+IGZyYWdtZW50U2hhZGVyKTsKIAogICAgIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4g
bV9yZW5kZXJQaXBlbGluZTsKKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0
YT4gbV92ZXJ0ZXhTaGFkZXI7CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRh
dGE+IG1fZnJhZ21lbnRTaGFkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfV0VCR1BVUElQRUxJTkUoV2ViQ29yZTo6V2ViR1BVUmVuZGVy
UGlwZWxpbmUsIGlzUmVuZGVyUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
aXBlbGluZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
aXBlbGluZS5pZGwKaW5kZXggYTk4OWZkNDEwYWMuLmE5YjQwMDBiNmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRs
CkBAIC0yNyw3ICsyNyw2IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCR1BVLAogICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR1BVLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAg
SW50ZXJmYWNlTmFtZT1HUFVSZW5kZXJQaXBlbGluZQogXSBpbnRlcmZhY2UgV2ViR1BVUmVuZGVy
UGlwZWxpbmUgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVNoYWRlck1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2hhZGVyTW9kdWxlLmgKaW5kZXggODM3NzA1M2QxYWMuLjc0YWFkZGI1MzQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaApA
QCAtMzgsNyArMzgsNyBAQCBjbGFzcyBXZWJHUFVTaGFkZXJNb2R1bGUgOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJHUFVTaGFkZXJNb2R1bGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkdQ
VVNoYWRlck1vZHVsZT4gY3JlYXRlKFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+JiYpOwogCi0gICAg
Y29uc3QgR1BVU2hhZGVyTW9kdWxlKiBtb2R1bGUoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZS5n
ZXQoKTsgfQorICAgIEdQVVNoYWRlck1vZHVsZSogbW9kdWxlKCkgY29uc3QgeyByZXR1cm4gbV9t
b2R1bGUuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBXZWJHUFVTaGFkZXJNb2R1bGUoUmVmUHRy
PEdQVVNoYWRlck1vZHVsZT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDU3ZTc1MGU0MTgwLi4zMTQw
YjY1NDllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3MSw2ICszNzEsNyBAQCBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3Bw
CiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBp
cGVsaW5lLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwCiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwCiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuY3BwCkBAIC0xODkwLDYgKzE4
OTEsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVUVycm9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2Nv
cGVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5jcHAKK3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVQaXBlbGluZUxheW91dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFt
bWFibGVQYXNzRW5jb2Rlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY4NzQyMTQ1OGU0Li5iNmIyZGE4ZWI2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTAzOTQsNiArMTAzOTQsMTAgQEAKIAkJOTE3NUNFNTkyMUUyODFFQzAwREYyQzI4IC8qIEpT
SW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE3NUNFNUEyMUUyODFFRDAwREYyQzI3
IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE3NUNFNUEyMUUyODFFRDAwREYyQzI4IC8qIEpT
SW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxODZGM0IzMjMyOUZCMDUwMEFGRjg1NyAvKiBHUFVQ
aXBlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQaXBlbGluZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTg2RjNCNjIzMjlGQjRFMDBBRkY4NTcg
LyogV2ViR1BVUGlwZWxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTg2
RjNCNzIzMjlGQjRGMDBBRkY4NTcgLyogV2ViR1BVUGlwZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUGlwZWxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTE4NkYzQkEyMzI5RkU2ODAwQUZGODU3IC8qIEdQVVBpcGVsaW5lLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBpcGVsaW5lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFCOEYwQjMyMTk1M0Q2NTAwMEMyQjAwIC8qIENlcnRp
ZmljYXRlSW5mb0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2VydGlm
aWNhdGVJbmZvQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MUI5NTIyMjFG
NThBNTgwMDA5MzFEQzIgLyogUmVjb3JkaW5nU3dpenpsZVR5cGVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlY29yZGluZ1N3aXp6bGVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE4MzQzLDYgKzE4MzQ3LDggQEAKIAkJCQlEMDhBQTAyRjIyMEQwQkQ1MDA1
OEM1MDIgLyogR1BVTG9hZE9wLmggKi8sCiAJCQkJRDA5QUZCMzcyMkQ3RDVDNjAwQzQ1MzhDIC8q
IEdQVU9iamVjdEJhc2UuaCAqLywKIAkJCQlEMDlBRkIxOTIyRDY2OThBMDBDNDUzOEMgLyogR1BV
T3V0T2ZNZW1vcnlFcnJvci5oICovLAorCQkJCTkxODZGM0JBMjMyOUZFNjgwMEFGRjg1NyAvKiBH
UFVQaXBlbGluZS5jcHAgKi8sCisJCQkJOTE4NkYzQjMyMzI5RkIwNTAwQUZGODU3IC8qIEdQVVBp
cGVsaW5lLmggKi8sCiAJCQkJMzEyRkY4QzQyMUE0QzJGNDAwRUIxOTlEIC8qIEdQVVBpcGVsaW5l
RGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQlEMDAzMjg4NzIxQzlBNEU1MDA2MjJBQTYgLyogR1BV
UGlwZWxpbmVMYXlvdXQuY3BwICovLAogCQkJCUQwMDMyODg2MjFDOUE0RTUwMDYyMkFBNiAvKiBH
UFVQaXBlbGluZUxheW91dC5oICovLApAQCAtMjYwNzcsNiArMjYwODMsOCBAQAogCQkJCUQwOUFG
QjAzMjJENDBDQzUwMEM0NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5pZGwgKi8sCiAJ
CQkJRDA5QUMwMEEyMzE3MzVCRTAwMTg3NzYyIC8qIFdlYkdQVURldmljZUV2ZW50SGFuZGxlci5o
ICovLAogCQkJCUQwOUFDMDBCMjMxNzM1QkUwMDE4Nzc2MiAvKiBXZWJHUFVEZXZpY2VFdmVudEhh
bmRsZXIuaWRsICovLAorCQkJCTkxODZGM0I2MjMyOUZCNEUwMEFGRjg1NyAvKiBXZWJHUFVQaXBl
bGluZS5jcHAgKi8sCisJCQkJOTE4NkYzQjcyMzI5RkI0RjAwQUZGODU3IC8qIFdlYkdQVVBpcGVs
aW5lLmggKi8sCiAJCQkJRDBDNDE5RjAyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5l
RGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQlEMEM0MTlGMTIxODNFQjMxMDA5RUMxREUgLyogV2Vi
R1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGwgKi8sCiAJCQkJRDA1QTk5RTUyMUM5QkYyQzAw
MDMyQjc1IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCmluZGV4IDZiYTM4MWE5ZGZlLi41MDY1NDk0OGQy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKQEAgLTYwLDYgKzYyLDcgQEAg
UmVmPFdlYkdMUHJvZ3JhbT4gV2ViR0xQcm9ncmFtOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY3R4KQogCiBXZWJHTFByb2dyYW06OldlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgpCiAgICAgOiBXZWJHTFNoYXJlZE9iamVjdChjdHgpCisgICAgLCBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY3R4LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKIHsK
ICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKQEAgLTcx
LDYgKzc0LDggQEAgV2ViR0xQcm9ncmFtOjpXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY3R4KQogCiBXZWJHTFByb2dyYW06On5XZWJHTFByb2dyYW0oKQogeworICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oKnRoaXMpOwor
CiAgICAgZGVsZXRlT2JqZWN0KDApOwogCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFByb2dyYW0uaAppbmRleCA4OGE4OTc5ZDQ1Zi4uNjc2OWQxZDRmNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCkBAIC0zMiw2ICszMiw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2Ns
YXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiBjbGFzcyBXZWJHTFNoYWRlcjsKIAogY2xh
c3MgV2ViR0xQcm9ncmFtIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKQEAgLTQy
LDYgKzQ0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBIYXNoTWFwPFdlYkdMUHJvZ3JhbSosIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsK
ICAgICBzdGF0aWMgTG9jayYgaW5zdGFuY2VzTXV0ZXgoKTsKIAorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7IH0KKwogICAgIHVuc2lnbmVkIG51bUFjdGl2ZUF0dHJpYkxvY2F0
aW9ucygpOwogICAgIEdDM0RpbnQgZ2V0QWN0aXZlQXR0cmliTG9jYXRpb24oR0MzRHVpbnQgaW5k
ZXgpOwogCkBAIC03MSw2ICs3NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYWNoZUFjdGl2ZUF0
dHJpYkxvY2F0aW9ucyhHcmFwaGljc0NvbnRleHQzRCopOwogICAgIHZvaWQgY2FjaGVJbmZvSWZO
ZWVkZWQoKTsKIAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKKwogICAgIFZlY3RvcjxHQzNEaW50PiBtX2FjdGl2ZUF0dHJpYkxvY2F0aW9uczsK
IAogICAgIEdDM0RpbnQgbV9saW5rU3RhdHVzIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAy
MjRlMzRkODMyNy4uNmVlYTkxZmIxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00MTEsNyArNDEx
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNob3dIaWdodGxpZ2h0KCkKICAgICB7
Ci0gICAgICAgIGlmICghbV9wcm9ncmFtIHx8IExJS0VMWSghSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjppc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChtX2NvbnRleHQsICptX3Byb2dyYW0pKSkK
KyAgICAgICAgaWYgKCFtX3Byb2dyYW0gfHwgTElLRUxZKCFJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQobV9jb250ZXh0LCAqbV9wcm9ncmFtKSkpCiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKGhhc0J1ZmZlckJpbmRpbmcoR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkcpKSB7CkBAIC0xNzU0LDcgKzE3NTQsNyBA
QCBSZWZQdHI8V2ViR0xQcm9ncmFtPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQ
cm9ncmFtKCkKICAgICBhdXRvIHByb2dyYW0gPSBXZWJHTFByb2dyYW06OmNyZWF0ZSgqdGhpcyk7
CiAgICAgYWRkU2hhcmVkT2JqZWN0KHByb2dyYW0uZ2V0KCkpOwogCi0gICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFtKCp0aGlzLCBwcm9ncmFtLmdldCgpKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbSgqdGhpcywg
cHJvZ3JhbS5nZXQoKSk7CiAKICAgICByZXR1cm4gcHJvZ3JhbTsKIH0KQEAgLTE4NDAsNyArMTg0
MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIo
V2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIpCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlbGV0ZVByb2dyYW0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtKQogewogICAgIGlmIChw
cm9ncmFtKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZWxldGVQcm9n
cmFtKCp0aGlzLCAqcHJvZ3JhbSk7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oKnByb2dyYW0pOwogCiAgICAgZGVsZXRlT2JqZWN0KHBy
b2dyYW0pOwogICAgIC8vIFdlIGRvbid0IHJlc2V0IG1fY3VycmVudFByb2dyYW0gdG8gMCBoZXJl
IGJlY2F1c2UgdGhlIGRlbGV0aW9uIG9mIHRoZQpAQCAtMjI1NSw3ICsyMjU1LDcgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0Rp
bnQgZmlyc3QsIEdDM0RzaXoKICAgICBpZiAoIXZhbGlkYXRlRHJhd0FycmF5cygiZHJhd0FycmF5
cyIsIG1vZGUsIGZpcnN0LCBjb3VudCwgMCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICht
X2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9n
cmFtRGlzYWJsZWQoKnRoaXMsICptX2N1cnJlbnRQcm9ncmFtKSkKKyAgICBpZiAobV9jdXJyZW50
UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJs
ZWQoKnRoaXMsICptX2N1cnJlbnRQcm9ncmFtKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2xl
YXJJZkNvbXBvc2l0ZWQoKTsKQEAgLTIzMDksNyArMjMwOSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3Vu
dCwgR0MzCiAgICAgaWYgKCF2YWxpZGF0ZURyYXdFbGVtZW50cygiZHJhd0VsZW1lbnRzIiwgbW9k
ZSwgY291bnQsIHR5cGUsIG9mZnNldCwgbnVtRWxlbWVudHMsIDApKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkpCisgICAg
aWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdM
UHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDY5NjQ2NTA1Mzli
Li45MTJjODQ1YmJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTEwNzksMjkgKzEwNzksMjkgQEAgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEVuYWJsZUV4dGVuc2lvbkltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdHIKICAgICAgICAgY2FudmFzQWdlbnQtPmRpZEVuYWJsZUV4dGVuc2lv
bihjb250ZXh0V2ViR0xCYXNlLCBleHRlbnNpb24pOwogfQogCi12b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdM
QmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFz
ZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2Vu
dCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50
KCkpCi0gICAgICAgIGNhbnZhc0FnZW50LT5kaWRDcmVhdGVQcm9ncmFtKGNvbnRleHRXZWJHTEJh
c2UsIHByb2dyYW0pOworICAgICAgICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRlV2ViR0xQcm9ncmFt
KGNvbnRleHRXZWJHTEJhc2UsIHByb2dyYW0pOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbERlbGV0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAg
IGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCi0gICAgICAgIGNhbnZhc0FnZW50LT53aWxsRGVs
ZXRlUHJvZ3JhbShwcm9ncmFtKTsKKyAgICAgICAgY2FudmFzQWdlbnQtPndpbGxEZXN0cm95V2Vi
R0xQcm9ncmFtKHByb2dyYW0pOwogfQogCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2Jvb2wgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYg
KEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgcmV0dXJuIGNhbnZhc0FnZW50LT5pc1No
YWRlclByb2dyYW1EaXNhYmxlZChwcm9ncmFtKTsKKyAgICAgICAgcmV0dXJuIGNhbnZhc0FnZW50
LT5pc1dlYkdMUHJvZ3JhbURpc2FibGVkKHByb2dyYW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdo
dGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFBy
b2dyYW0mIHByb2dyYW0pCitib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFBy
b2dyYW1IaWdobGlnaHRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIGlmIChJbnNwZWN0b3JDYW52YXNB
Z2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0Fn
ZW50KCkpCi0gICAgICAgIHJldHVybiBjYW52YXNBZ2VudC0+aXNTaGFkZXJQcm9ncmFtSGlnaGxp
Z2h0ZWQocHJvZ3JhbSk7CisgICAgICAgIHJldHVybiBjYW52YXNBZ2VudC0+aXNXZWJHTFByb2dy
YW1IaWdobGlnaHRlZChwcm9ncmFtKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKQEAg
LTExMjQsNiArMTEyNCwxOCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENv
bmZpZ3VyZVN3YXBDaGFpbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaQogICAgIGlmIChhdXRv
KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQo
KSkKICAgICAgICAgY2FudmFzQWdlbnQtPndpbGxDb25maWd1cmVTd2FwQ2hhaW4oY29udGV4dEdQ
VSwgbmV3U3dhcENoYWluKTsKIH0KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZVdlYkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBXZWJHUFVEZXZpY2UmIGRldmljZSwgV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5l
KQoreworICAgIGlmIChhdXRvKiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5z
cGVjdG9yQ2FudmFzQWdlbnQoKSkKKyAgICAgICAgY2FudmFzQWdlbnQtPmRpZENyZWF0ZVdlYkdQ
VVBpcGVsaW5lKGRldmljZSwgcGlwZWxpbmUpOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAg
IGlmIChhdXRvKiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2Fu
dmFzQWdlbnQoKSkKKyAgICAgICAgY2FudmFzQWdlbnQtPndpbGxEZXN0cm95V2ViR1BVUGlwZWxp
bmUocGlwZWxpbmUpOworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNBR0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKaW5kZXggODFmM2NkY2RhMjkuLjU0OWFhMTdhM2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC02Myw2ICs2Myw3
IEBACiAjaWYgRU5BQkxFKFdFQkdQVSkKICNpbmNsdWRlICJHUFVDYW52YXNDb250ZXh0LmgiCiAj
aW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKICNl
bmRpZgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTI4OSwxNSArMjkwLDE3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZShDYW52YXNS
ZW5kZXJpbmdDb250ZXh0JiwgYm9vbCBmb3JjZURpc3BhdGNoID0gZmFsc2UpOwogI2lmIEVOQUJM
RShXRUJHTCkKICAgICBzdGF0aWMgdm9pZCBkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0
ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAg
IHN0YXRpYyB2b2lkIHdpbGxEZWxldGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBXZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxl
ZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGlj
IGJvb2wgaXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdMUHJvZ3Jh
bShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGlj
IHZvaWQgd2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGlj
IGJvb2wgaXNXZWJHTFByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwg
V2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdobGlnaHRl
ZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoV0VCR1BVKQogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZShX
ZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVURldmljZShX
ZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQ
VUNhbnZhc0NvbnRleHQmLCBXZWJHUFVTd2FwQ2hhaW4mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRD
cmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmLCBXZWJHUFVQaXBlbGluZSYpOworICAg
IHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmKTsK
ICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlJik7CkBA
IC00ODEsMTUgKzQ4NCwxNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFJl
Y29yZGluZ0NhbnZhc0ZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCYsIGJvb2wgZm9yY2VEaXNwYXRjaCA9IGZhbHNlKTsKICNpZiBFTkFCTEUoV0VC
R0wpCiAgICAgc3RhdGljIHZvaWQgZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIGNvbnN0IFN0cmluZyYpOwotICAg
IHN0YXRpYyB2b2lkIGRpZENyZWF0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIHZv
aWQgd2lsbERlbGV0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dy
YW0mKTsKLSAgICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVy
UHJvZ3JhbUhpZ2hsaWdodGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFt
Jik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwor
ICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1E
aXNhYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0
YXRpYyBib29sIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCBXZWJHTFByb2dyYW0mKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3Rh
dGljIHZvaWQgZGlkQ3JlYXRlV2ViR1BVRGV2aWNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
V2ViR1BVRGV2aWNlJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVEZXZpY2VJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9p
ZCB3aWxsQ29uZmlndXJlU3dhcENoYWluSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgR1BVQ2Fu
dmFzQ29udGV4dCYsIFdlYkdQVVN3YXBDaGFpbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0
ZVdlYkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVRGV2aWNlJiwg
V2ViR1BVUGlwZWxpbmUmKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVVBpcGVs
aW5lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVUGlwZWxpbmUmKTsKICNlbmRpZgog
CiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJik7CkBAIC0xMzg0LDMzICsxMzg5LDMzIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhCiAg
ICAgICAgIGRpZEVuYWJsZUV4dGVuc2lvbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRl
eHRXZWJHTEJhc2UsIGV4dGVuc2lvbik7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBj
b250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7
CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpKQotICAgICAgICBkaWRDcmVhdGVQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0Fn
ZW50cywgY29udGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CisgICAgICAgIGRpZENyZWF0ZVdlYkdM
UHJvZ3JhbUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRXZWJHTEJhc2UsIHByb2dy
YW0pOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZWxl
dGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdl
YkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwotICAgIGlmIChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNv
bnRleHQoY29udGV4dFdlYkdMQmFzZS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSkKLSAgICAgICAgd2lsbERlbGV0ZVByb2dyYW1JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRz
LCBwcm9ncmFtKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KHByb2dyYW0uc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKSkKKyAgICAgICAgd2lsbERlc3Ryb3lXZWJHTFByb2dyYW1JbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKIH0KIAotaW5saW5lIGJvb2wgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUg
Ym9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBw
cm9ncmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7CiAgICAg
aWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICByZXR1cm4gaXNTaGFkZXJQcm9ncmFtRGlzYWJs
ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKKyAgICAgICAgcmV0dXJuIGlz
V2ViR0xQcm9ncmFtRGlzYWJsZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQoraW5saW5lIGJvb2wg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJv
Z3JhbSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoZmFsc2UpOwogICAgIGlm
IChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvckNvbnRleHQoY29udGV4dFdlYkdMQmFzZS5jYW52YXNCYXNlKCkuc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgcmV0dXJuIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdo
dGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7CisgICAgICAgIHJldHVybiBp
c1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3Jh
bSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogI2VuZGlmCkBAIC0xNDM2LDYgKzE0NDEsMjAgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ29uZmlndXJlU3dhcENo
YWluKEdQVUNhbnZhc0NvbnRleHQmIGMKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRHUFUuY2FudmFzQmFzZSgp
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCiAgICAgICAgIHdpbGxDb25maWd1cmVTd2FwQ2hh
aW5JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0R1BVLCBuZXdTd2FwQ2hhaW4pOwog
fQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdQ
VVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUp
Cit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1
dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChk
ZXZpY2Uuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViR1BV
UGlwZWxpbmVJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBkZXZpY2UsIHBpcGVsaW5lKTsKK30K
KworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQ
VVBpcGVsaW5lKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBGQVNUX1JFVFVSTl9J
Rl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KHBpcGVsaW5lLnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkpCisgICAgICAgIHdpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCBwaXBlbGluZSk7Cit9CiAjZW5kaWYKIAogaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5j
cHAKaW5kZXggZDUyOTU1MGNkYzguLjA1ODhkNGQ5YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCkBAIC0yNiw1MyArMjYs
MjI3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbS5oIgogCi0jaWYgRU5BQkxFKFdFQkdMKQotCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0QuaCIKLSNpbmNsdWRlICJHcmFwaGljc1R5cGVzM0QuaCIKLSNpbmNsdWRlICJIVE1MQ2FudmFz
RWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhcy5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0lkZW50aWZpZXJzRmFjdG9yeS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgRU5BQkxFKFdFQkdMKQorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVk
ZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgi
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5Lmg+CisjZW5kaWYK
KworI2lmIEVOQUJMRShXRUJHUFUpCisjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlLmgiCisjaW5j
bHVkZSAiV0hMU0xQcmVwYXJlLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmgi
CisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBl
bGluZS5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZS5oIgorI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAorI2lmIEVOQUJM
RShXRUJHTCkKIFJlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjpjcmVhdGUoV2ViR0xQcm9ncmFtJiBwcm9ncmFtLCBJbnNwZWN0b3JDYW52YXMmIGluc3Bl
Y3RvckNhbnZhcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtKHByb2dyYW0sIGluc3BlY3RvckNhbnZhcykpOwogfQorI2VuZGlmCiAKKyNpZiBFTkFC
TEUoV0VCR1BVKQorUmVmPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvclNoYWRlclBy
b2dyYW06OmNyZWF0ZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3BlY3RvckNhbnZhcyYg
aW5zcGVjdG9yQ2FudmFzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc3BlY3RvclNo
YWRlclByb2dyYW0ocGlwZWxpbmUsIGluc3BlY3RvckNhbnZhcykpOworfQorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoV0VCR0wpCiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JD
YW52YXMpCiAgICAgOiBtX2lkZW50aWZpZXIoInByb2dyYW06IiArIElkZW50aWZpZXJzRmFjdG9y
eTo6Y3JlYXRlSWRlbnRpZmllcigpKQotICAgICwgbV9wcm9ncmFtKHByb2dyYW0pCiAgICAgLCBt
X2NhbnZhcyhpbnNwZWN0b3JDYW52YXMpCisgICAgLCBtX3Byb2dyYW0ocHJvZ3JhbSkKIHsKKyAg
ICBBU1NFUlQoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4obV9jYW52YXMuY2FudmFzQ29u
dGV4dCgpKSk7CiB9CisjZW5kaWYKIAotV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbTo6Y29udGV4dCgpIGNvbnN0CisjaWYgRU5BQkxFKFdFQkdQVSkKK0lu
c3BlY3RvclNoYWRlclByb2dyYW06Okluc3BlY3RvclNoYWRlclByb2dyYW0oV2ViR1BVUGlwZWxp
bmUmIHBpcGVsaW5lLCBJbnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcykKKyAgICA6IG1f
aWRlbnRpZmllcigicGlwZWxpbmU6IiArIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRp
ZmllcigpKQorICAgICwgbV9jYW52YXMoaW5zcGVjdG9yQ2FudmFzKQorICAgICwgbV9wcm9ncmFt
KHBpcGVsaW5lKQogewotICAgIEFTU0VSVChtX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpOwotICAg
IEFTU0VSVChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPigqbV9jYW52YXMuY2FudmFzQ29u
dGV4dCgpKSk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+
KCptX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpOworICAgIEFTU0VSVChtX2NhbnZhcy5kZXZpY2VD
b250ZXh0KCkpOwogfQorI2VuZGlmCiAKLVdlYkdMU2hhZGVyKiBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjpzaGFkZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcHJvdG9jb2xUeXBlKQorI2lmIEVOQUJM
RShXRUJHTCkKK1dlYkdMUHJvZ3JhbSogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cHJvZ3JhbSgp
IGNvbnN0CiB7Ci0gICAgR0MzRGVudW0gc2hhZGVyVHlwZTsKLSAgICBpZiAocHJvdG9jb2xUeXBl
ID09ICJ2ZXJ0ZXgiKQotICAgICAgICBzaGFkZXJUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OlZF
UlRFWF9TSEFERVI7Ci0gICAgZWxzZSBpZiAocHJvdG9jb2xUeXBlID09ICJmcmFnbWVudCIpCi0g
ICAgICAgIHNoYWRlclR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRfU0hBREVSOwot
ICAgIGVsc2UKKyAgICBpZiAoYXV0byogcHJvZ3JhbVdyYXBwZXIgPSBXVEY6OmdldF9pZjxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4+KG1fcHJvZ3JhbSkpCisgICAgICAgIHJl
dHVybiAmcHJvZ3JhbVdyYXBwZXItPmdldCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorV2ViR1BVUGlwZWxpbmUqIEluc3BlY3RvclNoYWRl
clByb2dyYW06OnBpcGVsaW5lKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byogcGlwZWxpbmVXcmFw
cGVyID0gV1RGOjpnZXRfaWY8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4+
KG1fcHJvZ3JhbSkpCisgICAgICAgIHJldHVybiAmcGlwZWxpbmVXcmFwcGVyLT5nZXQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMKQorc3RhdGlj
IFdlYkdMU2hhZGVyKiBzaGFkZXJGb3JUeXBlKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgSW5zcGVj
dG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUpCit7CisgICAgc3dp
dGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6
OlNoYWRlclR5cGU6OkZyYWdtZW50OgorICAgICAgICByZXR1cm4gcHJvZ3JhbS5nZXRBdHRhY2hl
ZFNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRfU0hBREVSKTsKKworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpWZXJ0ZXg6CisgICAgICAg
IHJldHVybiBwcm9ncmFtLmdldEF0dGFjaGVkU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJU
RVhfU0hBREVSKTsKKworICAgIC8vIENvbXB1dGUgc2hhZGVycyBhcmUgYSBXZWJHUFUgY29uY2Vw
dC4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6Q29t
cHV0ZToKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCi0gICAgcmV0dXJuIG1fcHJv
Z3JhbS5nZXRBdHRhY2hlZFNoYWRlcihzaGFkZXJUeXBlKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKK3N0YXRpYyBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gc2hhZGVyRm9y
VHlwZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZh
czo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlKQoreworICAgIHN3aXRjaCAoc2hhZGVyVHlwZSkgewor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpDb21wdXRl
OgorICAgICAgICBpZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPihwaXBlbGluZSkpCisgICAg
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPihwaXBlbGluZSku
Y29tcHV0ZVNoYWRlcigpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpGcmFnbWVudDoKKyAgICAgICAgaWYgKGlzPFdl
YkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNh
c3Q8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKS5mcmFnbWVudFNoYWRlcigpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFk
ZXJUeXBlOjpWZXJ0ZXg6CisgICAgICAgIGlmIChpczxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlw
ZWxpbmUpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdQVVJlbmRlclBpcGVsaW5l
PihwaXBlbGluZSkudmVydGV4U2hhZGVyKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisjZW5k
aWYKKworT3B0aW9uYWw8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6U2hhZGVyU291cmNlRGF0YT4g
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cmVxdWVzdFNoYWRlclNvdXJjZShJbnNwZWN0b3I6OlBy
b3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSkKK3sKKyNpZiAhRU5BQkxFKFdF
QkdMKSAmJiAhRU5BQkxFKFdFQkdQVSkKKyAgICBVTlVTRURfUEFSQU0oc2hhZGVyVHlwZSk7Cisj
ZW5kaWYKKworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcHJvZ3JhbSwKKyNpZiBFTkFCTEUo
V0VCR0wpCisgICAgICAgIFsmXSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHTFByb2dyYW0+
IHByb2dyYW1XcmFwcGVyKSAtPiBPcHRpb25hbDxTaGFkZXJTb3VyY2VEYXRhPiB7CisgICAgICAg
ICAgICBhdXRvJiBwcm9ncmFtID0gcHJvZ3JhbVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBp
ZiAoYXV0byogc2hhZGVyID0gc2hhZGVyRm9yVHlwZShwcm9ncmFtLCBzaGFkZXJUeXBlKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4geyB7IHNoYWRlci0+Z2V0U291cmNlKCksIFdURjo6bnVsbG9w
dCB9IH07CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9LAorI2Vu
ZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAgWyZdIChzdGQ6OnJlZmVyZW5jZV93cmFw
cGVyPFdlYkdQVVBpcGVsaW5lPiBwaXBlbGluZVdyYXBwZXIpIC0+IE9wdGlvbmFsPFNoYWRlclNv
dXJjZURhdGE+IHsKKyAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlwZWxpbmVXcmFwcGVy
LmdldCgpOworICAgICAgICAgICAgaWYgKGF1dG8gc2hhZGVyID0gc2hhZGVyRm9yVHlwZShwaXBl
bGluZSwgc2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byB3ZWJHUFVNb2R1
bGUgPSBzaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1
dG8qIGdwdU1vZHVsZSA9IHdlYkdQVU1vZHVsZS0+bW9kdWxlKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChhdXRvKiB3aGxzbE1vZHVsZSA9IGdwdU1vZHVsZS0+d2hsc2xNb2R1bGUo
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB7IHdobHNsTW9kdWxlLT53
aGxzbFNvdXJjZSwgc2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9IH07CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9LAorI2VuZGlmCisgICAgICAgIFsmXSAoTW9u
b3N0YXRlKSB7CisjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoV0VCR1BVKQorICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisgICAgICAgIH0KKyAgICApOworfQorCitib29sIEluc3BlY3RvclNoYWRlclBy
b2dyYW06OnVwZGF0ZVNoYWRlcihJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5
cGUgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyogZW50cnlQ
b2ludCkKK3sKKyNpZiAhRU5BQkxFKFdFQkdMKSAmJiAhRU5BQkxFKFdFQkdQVSkKKyAgICBVTlVT
RURfUEFSQU0oc2hhZGVyVHlwZSk7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7CisjZW5kaWYK
KyNpZiAhRU5BQkxFKFdFQkdQVSkKKyAgICBVTlVTRURfUEFSQU0oZW50cnlQb2ludCk7CisjZW5k
aWYKKworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcHJvZ3JhbSwKKyNpZiBFTkFCTEUoV0VC
R0wpCisgICAgICAgIFsmXSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHTFByb2dyYW0+IHBy
b2dyYW1XcmFwcGVyKSB7CisgICAgICAgICAgICBhdXRvJiBwcm9ncmFtID0gcHJvZ3JhbVdyYXBw
ZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byogc2hhZGVyID0gc2hhZGVyRm9yVHlwZShw
cm9ncmFtLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBjb250ZXh0
ID0gbV9jYW52YXMuY2FudmFzQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChp
czxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPihjb250ZXh0KSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byYgY29udGV4dFdlYkdMQmFzZSA9IGRvd25jYXN0PFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U+KCpjb250ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRX
ZWJHTEJhc2Uuc2hhZGVyU291cmNlKHNoYWRlciwgc291cmNlKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRleHRXZWJHTEJhc2UuY29tcGlsZVNoYWRlcihzaGFkZXIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNoYWRlci0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5saW5rUHJvZ3JhbVdpdGhvdXRJbnZhbGlkYXRp
bmdBdHRyaWJMb2NhdGlvbnMoJnByb2dyYW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9LAorI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICAg
ICAgWyZdIChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdQVVBpcGVsaW5lPiBwaXBlbGluZVdy
YXBwZXIpIHsKKyAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlwZWxpbmVXcmFwcGVyLmdl
dCgpOworICAgICAgICAgICAgaWYgKGF1dG8qIGRldmljZSA9IG1fY2FudmFzLmRldmljZUNvbnRl
eHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHNoYWRlciA9IHNoYWRlckZvclR5cGUo
cGlwZWxpbmUsIHNoYWRlclR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHdl
YkdQVU1vZHVsZSA9IHNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGF1dG8qIGdwdU1vZHVsZSA9IHdlYkdQVU1vZHVsZS0+bW9kdWxlKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogd2hsc2xNb2R1bGUgPSBncHVNb2R1
bGUtPndobHNsTW9kdWxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5V
U0VEX1BBUkFNKHdobHNsTW9kdWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2hsc2xNb2R1bGUtPndobHNsU291cmNlID0gc291cmNlOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoZW50cnlQb2ludCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQgPSAqZW50cnlQb2ludDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpcGVsaW5lLnJlY29tcGlsZSgqZGV2aWNlKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyNlbmRpZgorICAgICAgICBbJl0gKE1v
bm9zdGF0ZSkgeworI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKyAgICApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclNoYWRlclByb2dyYW0uaAppbmRleCA5NDY3ZTg0N2Y1ZC4uYjZiYjRmZTYwMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0u
aApAQCAtMjYsMjUgKzI2LDQ3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBJbnNwZWN0b3JDYW52YXM7CisKKyNpZiBFTkFCTEUoV0VCR0wpCiBjbGFzcyBXZWJH
TFByb2dyYW07CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwotY2xhc3MgV2ViR0xT
aGFkZXI7CisjZW5kaWYKIAotdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CisjaWYgRU5BQkxF
KFdFQkdQVSkKK2NsYXNzIFdlYkdQVVBpcGVsaW5lOworI2VuZGlmCiAKIGNsYXNzIEluc3BlY3Rv
clNoYWRlclByb2dyYW0gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtPiB7CiBwdWJsaWM6CisjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0YXRpYyBSZWY8SW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbT4gY3JlYXRlKFdlYkdMUHJvZ3JhbSYsIEluc3BlY3RvckNhbnZh
cyYpOworI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICBzdGF0aWMgUmVmPEluc3BlY3Rv
clNoYWRlclByb2dyYW0+IGNyZWF0ZShXZWJHUFVQaXBlbGluZSYsIEluc3BlY3RvckNhbnZhcyYp
OworI2VuZGlmCiAKICAgICBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KICAgICBJbnNwZWN0b3JDYW52YXMmIGNhbnZhcygpIGNvbnN0IHsg
cmV0dXJuIG1fY2FudmFzOyB9Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4
dCgpIGNvbnN0OwotICAgIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvZ3JhbTsgfQotICAgIFdlYkdMU2hhZGVyKiBzaGFkZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYp
OworCisjaWYgRU5BQkxFKFdFQkdMKQorICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSgpIGNvbnN0
OworI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICBXZWJHUFVQaXBlbGluZSogcGlwZWxp
bmUoKSBjb25zdDsKKyNlbmRpZgorCisgICAgc3RydWN0IFNoYWRlclNvdXJjZURhdGEgeworICAg
ICAgICBTdHJpbmcgc291cmNlOworICAgICAgICBPcHRpb25hbDxTdHJpbmc+IGVudHJ5UG9pbnQ7
CisgICAgfTsKKyAgICBPcHRpb25hbDxTaGFkZXJTb3VyY2VEYXRhPiByZXF1ZXN0U2hhZGVyU291
cmNlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSk7CisgICAgYm9vbCB1
cGRhdGVTaGFkZXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nKiBlbnRyeVBvaW50KTsKIAogICAgIGJvb2wg
ZGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVkOyB9CiAgICAgdm9pZCBzZXREaXNh
YmxlZChib29sIGRpc2FibGVkKSB7IG1fZGlzYWJsZWQgPSBkaXNhYmxlZDsgfQpAQCAtNTIsMTUg
Kzc0LDI3IEBAIHB1YmxpYzoKICAgICBib29sIGhpZ2hsaWdodGVkKCkgY29uc3QgeyByZXR1cm4g
bV9oaWdobGlnaHRlZDsgfQogICAgIHZvaWQgc2V0SGlnaGxpZ2h0ZWQoYm9vbCB2YWx1ZSkgeyBt
X2hpZ2hsaWdodGVkID0gdmFsdWU7IH0KIAotICAgIH5JbnNwZWN0b3JTaGFkZXJQcm9ncmFtKCkg
PSBkZWZhdWx0OwotCiBwcml2YXRlOgorI2lmIEVOQUJMRShXRUJHTCkKICAgICBJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtKFdlYkdMUHJvZ3JhbSYsIEluc3BlY3RvckNhbnZhcyYpOworI2VuZGlmCisj
aWYgRU5BQkxFKFdFQkdQVSkKKyAgICBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKFdlYkdQVVBpcGVs
aW5lJiwgSW5zcGVjdG9yQ2FudmFzJik7CisjZW5kaWYKIAogICAgIFN0cmluZyBtX2lkZW50aWZp
ZXI7Ci0gICAgV2ViR0xQcm9ncmFtJiBtX3Byb2dyYW07CiAgICAgSW5zcGVjdG9yQ2FudmFzJiBt
X2NhbnZhczsKIAorICAgIFZhcmlhbnQ8CisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICBzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4sCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VC
R1BVKQorICAgICAgICBzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdQVVBpcGVsaW5lPiwKKyNl
bmRpZgorICAgICAgICBNb25vc3RhdGUKKyAgICA+IG1fcHJvZ3JhbTsKKwogICAgIGJvb2wgbV9k
aXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hpZ2hsaWdodGVkIHsgZmFsc2UgfTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q2FudmFzQWdlbnQuY3BwCmluZGV4IDE4NTIyNDg1YTY1Li4yYzAwMjhlNGJmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNB
Z2VudC5jcHAKQEAgLTQ2LDE0ICs0NiwxOCBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lu
amVjdGVkU2NyaXB0TWFuYWdlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3Rv
clByb3RvY29sT2JqZWN0cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIldlYkdMUHJv
Z3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLSNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoV0VCR0wyKQpAQCAtNjIsNyArNjYsMTEgQEAKIAogI2lmIEVOQUJM
RShXRUJHUFUpCiAjaW5jbHVkZSAiR1BVQ2FudmFzQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdQ
VUNvbXB1dGVQaXBlbGluZS5oIgogI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUg
IldlYkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCIKKyNp
bmNsdWRlICJXZWJHUFVTd2FwQ2hhaW4uaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC03Niw2ICs4NCw3IEBAIEluc3BlY3RvckNhbnZhc0FnZW50OjpJbnNwZWN0b3JDYW52YXNB
Z2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIoY29udGV4dC5pbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX2luc3BlY3RlZFBh
Z2UoY29udGV4dC5pbnNwZWN0ZWRQYWdlKQogICAgICwgbV9jYW52YXNEZXN0cm95ZWRUaW1lcigq
dGhpcywgJkluc3BlY3RvckNhbnZhc0FnZW50OjpjYW52YXNEZXN0cm95ZWRUaW1lckZpcmVkKQor
ICAgICwgbV9wcm9ncmFtRGVzdHJveWVkVGltZXIoKnRoaXMsICZJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6cHJvZ3JhbURlc3Ryb3llZFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTkzLDcgKzEwMiw3IEBA
IHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlCiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRp
c2NhcmRBZ2VudCgpCiB7Ci0gICAgY2xlYXJDYW52YXNEYXRhKCk7CisgICAgcmVzZXQoKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKQEAgLTE0
MSw3ICsxNTAsMTcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZW5hYmxlKEVycm9yU3Ry
aW5nJikKICAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdlYkdMUHJvZ3JhbTo6aW5zdGFuY2VzTXV0
ZXgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgW3Byb2dyYW0sIGNvbnRleHRXZWJHTEJhc2VdIDog
V2ViR0xQcm9ncmFtOjppbnN0YW5jZXMobG9jaykpIHsKICAgICAgICAgICAgIGlmIChjb250ZXh0
V2ViR0xCYXNlICYmIGV4aXN0c0luQ3VycmVudFBhZ2UoY29udGV4dFdlYkdMQmFzZS0+Y2FudmFz
QmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgICAgICAgICAgZGlkQ3Jl
YXRlUHJvZ3JhbSgqY29udGV4dFdlYkdMQmFzZSwgKnByb2dyYW0pOworICAgICAgICAgICAgICAg
IGRpZENyZWF0ZVdlYkdMUHJvZ3JhbSgqY29udGV4dFdlYkdMQmFzZSwgKnByb2dyYW0pOworICAg
ICAgICB9CisgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIHsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXNNdXRleCgpKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBbcGlwZWxpbmUsIGRldmljZV0gOiBXZWJHUFVQaXBlbGluZTo6aW5z
dGFuY2VzKGxvY2spKSB7CisgICAgICAgICAgICBpZiAoZGV2aWNlICYmIGV4aXN0c0luQ3VycmVu
dFBhZ2UoZGV2aWNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICAgICAgICAg
IGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKCpkZXZpY2UsICpwaXBlbGluZSk7CiAgICAgICAgIH0K
ICAgICB9CiAjZW5kaWYKQEAgLTE1MSw3ICsxNzAsNyBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0Fn
ZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKIHsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMu
c2V0SW5zcGVjdG9yQ2FudmFzQWdlbnQobnVsbHB0cik7CiAKLSAgICBjbGVhckNhbnZhc0RhdGEo
KTsKKyAgICByZXNldCgpOwogCiAgICAgbV9yZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQg
PSBXVEY6Om51bGxvcHQ7CiB9CkBAIC0yODAsOTMgKzI5OSw2NyBAQCB2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpzdG9wUmVjb3JkaW5nKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJgogICAgIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lKCpjb250ZXh0LCB0cnVl
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVxdWVzdFNoYWRlclNvdXJjZShF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBT
dHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyogY29udGVudCkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OnJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlU3RyaW5nLCBTdHJp
bmcqIHNvdXJjZSwgT3B0aW9uYWw8U3RyaW5nPiYgZW50cnlQb2ludCkKIHsKLSNpZiBFTkFCTEUo
V0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gYXNzZXJ0SW5zcGVjdG9yUHJvZ3Jh
bShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIHNoYWRlciA9IGluc3BlY3RvclByb2dyYW0tPnNo
YWRlckZvclR5cGUoc2hhZGVyVHlwZSk7Ci0gICAgaWYgKCFzaGFkZXIpIHsKLSAgICAgICAgZXJy
b3JTdHJpbmcgPSAiTWlzc2luZyBzaGFkZXIgZm9yIGdpdmVuIHNoYWRlclR5cGUiX3M7CisgICAg
YXV0byBzaGFkZXJUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6SW5zcGVjdG9ySGVscGVyczo6
cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hh
ZGVyVHlwZT4oc2hhZGVyVHlwZVN0cmluZyk7CisgICAgaWYgKCFzaGFkZXJUeXBlKSB7CisgICAg
ICAgIGVycm9yU3RyaW5nID0gbWFrZVN0cmluZygiVW5rbm93biBzaGFkZXJUeXBlOiAiX3MsIHNo
YWRlclR5cGVTdHJpbmcpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgKmNvbnRlbnQg
PSBzaGFkZXItPmdldFNvdXJjZSgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlk
KTsKLSAgICBVTlVTRURfUEFSQU0oc2hhZGVyVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbnRl
bnQpOwotICAgIGVycm9yU3RyaW5nID0gIk5vdCBzdXBwb3J0ZWQiX3M7Ci0jZW5kaWYKKyAgICBh
dXRvIGRhdGEgPSBpbnNwZWN0b3JQcm9ncmFtLT5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclR5
cGUudmFsdWUoKSk7CisgICAgaWYgKCFkYXRhKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIk1p
c3Npbmcgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZCJfczsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgICpzb3VyY2UgPSBkYXRhLnZhbHVlKCkuc291
cmNlOworICAgIGlmIChkYXRhLnZhbHVlKCkuZW50cnlQb2ludCkKKyAgICAgICAgZW50cnlQb2lu
dCA9IGRhdGEudmFsdWUoKS5lbnRyeVBvaW50LnZhbHVlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OnVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmlu
ZyYgc291cmNlKQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6dXBkYXRlU2hhZGVyKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmlu
ZyYgc2hhZGVyVHlwZVN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyog
ZW50cnlQb2ludCkKIHsKLSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9n
cmFtID0gYXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAg
ICBpZiAoIWluc3BlY3RvclByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIHNo
YWRlciA9IGluc3BlY3RvclByb2dyYW0tPnNoYWRlckZvclR5cGUoc2hhZGVyVHlwZSk7Ci0gICAg
aWYgKCFzaGFkZXIpIHsKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBzaGFkZXIgZm9y
IGdpdmVuIHNoYWRlclR5cGUiX3M7CisgICAgYXV0byBzaGFkZXJUeXBlID0gSW5zcGVjdG9yOjpQ
cm90b2NvbDo6SW5zcGVjdG9ySGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZT4oc2hhZGVyVHlwZVN0cmluZyk7Cisg
ICAgaWYgKCFzaGFkZXJUeXBlKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gbWFrZVN0cmluZygi
VW5rbm93biBzaGFkZXJUeXBlOiAiX3MsIHNoYWRlclR5cGVTdHJpbmcpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdM
ID0gaW5zcGVjdG9yUHJvZ3JhbS0+Y29udGV4dCgpOwotICAgIGNvbnRleHRXZWJHTC5zaGFkZXJT
b3VyY2Uoc2hhZGVyLCBzb3VyY2UpOwotICAgIGNvbnRleHRXZWJHTC5jb21waWxlU2hhZGVyKHNo
YWRlcik7Ci0KLSAgICBpZiAoIXNoYWRlci0+aXNWYWxpZCgpKSB7Ci0gICAgICAgIGVycm9yU3Ry
aW5nID0gIkZhaWxlZCB0byB1cGRhdGUgc2hhZGVyIl9zOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgY29udGV4dFdlYkdMLmxpbmtQcm9ncmFtV2l0aG91dEludmFsaWRhdGluZ0F0dHJp
YkxvY2F0aW9ucygmaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3JhbSgpKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0gICAgVU5VU0VEX1BBUkFNKHNoYWRlclR5cGUpOwotICAg
IFVOVVNFRF9QQVJBTShzb3VyY2UpOwotICAgIGVycm9yU3RyaW5nID0gIk5vdCBzdXBwb3J0ZWQi
X3M7Ci0jZW5kaWYKKyAgICBpZiAoIWluc3BlY3RvclByb2dyYW0tPnVwZGF0ZVNoYWRlcihzaGFk
ZXJUeXBlLnZhbHVlKCksIHNvdXJjZSwgZW50cnlQb2ludCkpCisgICAgICAgIGVycm9yU3RyaW5n
ID0gIkZhaWxlZCB0byB1cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVu
IHByb2dyYW1JZCJfczsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6c2V0U2hhZGVy
UHJvZ3JhbURpc2FibGVkKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBw
cm9ncmFtSWQsIGJvb2wgZGlzYWJsZWQpCiB7Ci0jaWYgRU5BQkxFKFdFQkdMKQogICAgIGF1dG8g
aW5zcGVjdG9yUHJvZ3JhbSA9IGFzc2VydEluc3BlY3RvclByb2dyYW0oZXJyb3JTdHJpbmcsIHBy
b2dyYW1JZCk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpbnNwZWN0b3JQcm9ncmFtLT5zZXREaXNhYmxlZChkaXNhYmxlZCk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVOVVNFRF9QQVJBTShkaXNhYmxlZCk7Ci0g
ICAgZXJyb3JTdHJpbmcgPSAiTm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgogfQogCiB2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBoaWdobGlnaHRl
ZCkKIHsKLSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gYXNz
ZXJ0SW5zcGVjdG9yUHJvZ3JhbShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAgICBpZiAoIWlu
c3BlY3RvclByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAogICAgIGluc3BlY3RvclByb2dyYW0t
PnNldEhpZ2hsaWdodGVkKGhpZ2hsaWdodGVkKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHBy
b2dyYW1JZCk7Ci0gICAgVU5VU0VEX1BBUkFNKGhpZ2hsaWdodGVkKTsKLSAgICBlcnJvclN0cmlu
ZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lJiBmcmFtZSkKIHsKICAgICBpZiAoZnJhbWUuaXNN
YWluRnJhbWUoKSkgewotICAgICAgICBjbGVhckNhbnZhc0RhdGEoKTsKKyAgICAgICAgcmVzZXQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTY4LDcgKzU2MSw3IEBAIHZvaWQgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OmRpZEVuYWJsZUV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiBjb250ZXh0CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmV4dGVuc2lvbkVuYWJs
ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIGV4dGVuc2lvbik7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJbnNwZWN0b3JD
YW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGNvbnRleHQsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3Rv
ckNhbnZhcyA9IGZpbmRJbnNwZWN0b3JDYW52YXMoY29udGV4dCk7CiAgICAgQVNTRVJUKGluc3Bl
Y3RvckNhbnZhcyk7CkBAIC01NzgsMjAgKzU3MSwxOSBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0Fn
ZW50OjpkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQs
CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3Jl
YXRlKHByb2dyYW0sICppbnNwZWN0b3JDYW52YXMpOwogICAgIFN0cmluZyBwcm9ncmFtSWRlbnRp
ZmllciA9IGluc3BlY3RvclByb2dyYW0tPmlkZW50aWZpZXIoKTsKICAgICBtX2lkZW50aWZpZXJU
b0luc3BlY3RvclByb2dyYW0uc2V0KHByb2dyYW1JZGVudGlmaWVyLCBXVEZNb3ZlKGluc3BlY3Rv
clByb2dyYW0pKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQoaW5z
cGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHByb2dyYW1JZGVudGlmaWVyKTsKKyAgICBtX2Zy
b250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlm
aWVyKCksIHByb2dyYW1JZGVudGlmaWVyLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlBy
b2dyYW1UeXBlOjpSZW5kZXIpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxs
RGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCit2b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50Ojp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7
CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3BlY3RvclByb2dyYW0ocHJvZ3Jh
bSk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1cm47CiAKLSAgICBT
dHJpbmcgaWRlbnRpZmllciA9IHVuYmluZFByb2dyYW0oKmluc3BlY3RvclByb2dyYW0pOwotICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtRGVsZXRlZChpZGVudGlmaWVyKTsKKyAgICB1
bmJpbmRQcm9ncmFtKCppbnNwZWN0b3JQcm9ncmFtKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQor
Ym9vbCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZChXZWJHTFBy
b2dyYW0mIHByb2dyYW0pCiB7CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3Bl
Y3RvclByb2dyYW0ocHJvZ3JhbSk7CiAgICAgQVNTRVJUKGluc3BlY3RvclByb2dyYW0pOwpAQCAt
NjAxLDcgKzU5Myw3IEBAIGJvb2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzU2hhZGVyUHJvZ3Jh
bURpc2FibGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKICAgICByZXR1cm4gaW5zcGVjdG9yUHJv
Z3JhbS0+ZGlzYWJsZWQoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNTaGFk
ZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mIHBy
b2dyYW0pCiB7CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3BlY3RvclByb2dy
YW0ocHJvZ3JhbSk7CiAgICAgQVNTRVJUKGluc3BlY3RvclByb2dyYW0pOwpAQCAtNjQ5LDYgKzY0
MSwzNiBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsQ29uZmlndXJlU3dhcENoYWlu
KEdQVUNhbnZhc0NvbnRleHQmIGNvbnRleHRHUFUsCiAKICAgICBub3RpZnlEZXZpY2VGb3JTd2Fw
Q2hhaW4obmV3U3dhcENoYWluKTsKIH0KKwordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlk
Q3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFdlYkdQVVBpcGVsaW5l
JiBwaXBlbGluZSkKK3sKKyAgICBhdXRvIGluc3BlY3RvckNhbnZhcyA9IGZpbmRJbnNwZWN0b3JD
YW52YXMoZGV2aWNlKTsKKyAgICBBU1NFUlQoaW5zcGVjdG9yQ2FudmFzKTsKKyAgICBpZiAoIWlu
c3BlY3RvckNhbnZhcykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpbnNwZWN0b3JQcm9n
cmFtID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHBpcGVsaW5lLCAqaW5zcGVjdG9y
Q2FudmFzKTsKKyAgICBTdHJpbmcgcHJvZ3JhbUlkZW50aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFt
LT5pZGVudGlmaWVyKCk7CisgICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnNldChw
cm9ncmFtSWRlbnRpZmllciwgV1RGTW92ZShpbnNwZWN0b3JQcm9ncmFtKSk7CisKKyAgICBPcHRp
b25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlPiBwcm9ncmFtVHlw
ZTsKKyAgICBpZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAg
IHByb2dyYW1UeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6
Q29tcHV0ZTsKKyAgICBlbHNlIGlmIChpczxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUp
KQorICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJv
Z3JhbVR5cGU6OlJlbmRlcjsKKyAgICBBU1NFUlQocHJvZ3JhbVR5cGUpOworCisgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmll
cigpLCBwcm9ncmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5cGUudmFsdWUoKSk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlw
ZWxpbmUmIHBpcGVsaW5lKQoreworICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGZpbmRJbnNw
ZWN0b3JQcm9ncmFtKHBpcGVsaW5lKTsKKyAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCisgICAg
ICAgIHJldHVybjsKKworICAgIHVuYmluZFByb2dyYW0oKmluc3BlY3RvclByb2dyYW0pOworfQog
I2VuZGlmCiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0YXJ0UmVjb3JkaW5nKEluc3Bl
Y3RvckNhbnZhcyYgaW5zcGVjdG9yQ2FudmFzLCBJbnNwZWN0b3I6OlByb3RvY29sOjpSZWNvcmRp
bmc6OkluaXRpYXRvciBpbml0aWF0b3IsIFJlY29yZGluZ09wdGlvbnMmJiByZWNvcmRpbmdPcHRp
b25zKQpAQCAtNjk0LDcgKzcxNiwxOCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpjYW52
YXNEZXN0cm95ZWRUaW1lckZpcmVkKCkKICAgICBtX3JlbW92ZWRDYW52YXNJZGVudGlmaWVycy5j
bGVhcigpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpjbGVhckNhbnZhc0RhdGEo
KQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cHJvZ3JhbURlc3Ryb3llZFRpbWVyRmlyZWQo
KQoreworICAgIGlmICghbV9yZW1vdmVkUHJvZ3JhbUlkZW50aWZpZXJzLnNpemUoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBpZGVudGlmaWVyIDogbV9yZW1vdmVkUHJvZ3Jh
bUlkZW50aWZpZXJzKQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbURlbGV0
ZWQoaWRlbnRpZmllcik7CisKKyAgICBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnMuY2xlYXIo
KTsKK30KKwordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQoKQogewogICAgIGZvciAo
YXV0byYgaW5zcGVjdG9yQ2FudmFzIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JDYW52YXMudmFs
dWVzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBpbnNwZWN0b3JDYW52YXMtPmNh
bnZhc0NvbnRleHQoKSkKQEAgLTcwMiwxMyArNzM1LDE0IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmNsZWFyQ2FudmFzRGF0YSgpCiAgICAgfQogCiAgICAgbV9pZGVudGlmaWVyVG9JbnNw
ZWN0b3JDYW52YXMuY2xlYXIoKTsKLSNpZiBFTkFCTEUoV0VCR0wpCi0gICAgbV9pZGVudGlmaWVy
VG9JbnNwZWN0b3JQcm9ncmFtLmNsZWFyKCk7CiAgICAgbV9yZW1vdmVkQ2FudmFzSWRlbnRpZmll
cnMuY2xlYXIoKTsKLSNlbmRpZgotCiAgICAgaWYgKG1fY2FudmFzRGVzdHJveWVkVGltZXIuaXNB
Y3RpdmUoKSkKICAgICAgICAgbV9jYW52YXNEZXN0cm95ZWRUaW1lci5zdG9wKCk7CisKKyAgICBt
X2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0uY2xlYXIoKTsKKyAgICBtX3JlbW92ZWRQcm9n
cmFtSWRlbnRpZmllcnMuY2xlYXIoKTsKKyAgICBpZiAobV9wcm9ncmFtRGVzdHJveWVkVGltZXIu
aXNBY3RpdmUoKSkKKyAgICAgICAgbV9wcm9ncmFtRGVzdHJveWVkVGltZXIuc3RvcCgpOwogfQog
CiBJbnNwZWN0b3JDYW52YXMmIEluc3BlY3RvckNhbnZhc0FnZW50OjpiaW5kQ2FudmFzKENhbnZh
c1JlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQsIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSkKQEAgLTgw
NSwxMyArODM5LDE4IEBAIFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+IEluc3BlY3RvckNhbnZhc0Fn
ZW50OjpmaW5kSW5zcGVjdG9yQ2FudmFzKFdlYkdQVURldmljZSYKIH0KICNlbmRpZgogCi0jaWYg
RU5BQkxFKFdFQkdMKQotU3RyaW5nIEluc3BlY3RvckNhbnZhc0FnZW50Ojp1bmJpbmRQcm9ncmFt
KEluc3BlY3RvclNoYWRlclByb2dyYW0mIGluc3BlY3RvclByb2dyYW0pCit2b2lkIEluc3BlY3Rv
ckNhbnZhc0FnZW50Ojp1bmJpbmRQcm9ncmFtKEluc3BlY3RvclNoYWRlclByb2dyYW0mIGluc3Bl
Y3RvclByb2dyYW0pCiB7CiAgICAgU3RyaW5nIGlkZW50aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFt
LmlkZW50aWZpZXIoKTsKICAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0ucmVtb3Zl
KGlkZW50aWZpZXIpOwogCi0gICAgcmV0dXJuIGlkZW50aWZpZXI7CisgICAgLy8gVGhpcyBjYW4g
YmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIEdDLiBEdWUgdG8gdGhlIHNpbmdsZS1wcm9jZXNzIG1v
ZGVsIHVzZWQgaW4gV2ViS2l0MSwgdGhlCisgICAgLy8gZXZlbnQgbXVzdCBiZSBkaXNwYXRjaGVk
IGZyb20gYSB0aW1lciB0byBwcmV2ZW50IHRoZSBmcm9udGVuZCBmcm9tIG1ha2luZyBKUyBhbGxv
Y2F0aW9ucworICAgIC8vIHdoaWxlIHRoZSBHQyBpcyBzdGlsbCBhY3RpdmUuCisgICAgbV9yZW1v
dmVkUHJvZ3JhbUlkZW50aWZpZXJzLmFwcGVuZChpZGVudGlmaWVyKTsKKworICAgIGlmICghbV9w
cm9ncmFtRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9wcm9ncmFtRGVzdHJv
eWVkVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtPiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6YXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkKQpAQCAtODI0LDEw
ICs4NjMsMjIgQEAgUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZh
c0FnZW50Ojphc3NlcnRJbnNwZWN0b3JQcm9ncmFtKEVycm8KICAgICByZXR1cm4gaW5zcGVjdG9y
UHJvZ3JhbTsKIH0KIAorI2lmIEVOQUJMRShXRUJHTCkKIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtPiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZmluZEluc3BlY3RvclByb2dyYW0oV2ViR0xQ
cm9ncmFtJiBwcm9ncmFtKQogewogICAgIGZvciAoYXV0byYgaW5zcGVjdG9yUHJvZ3JhbSA6IG1f
aWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS52YWx1ZXMoKSkgewotICAgICAgICBpZiAoJmlu
c3BlY3RvclByb2dyYW0tPnByb2dyYW0oKSA9PSAmcHJvZ3JhbSkKKyAgICAgICAgaWYgKGluc3Bl
Y3RvclByb2dyYW0tPnByb2dyYW0oKSA9PSAmcHJvZ3JhbSkKKyAgICAgICAgICAgIHJldHVybiBp
bnNwZWN0b3JQcm9ncmFtOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgor
CisjaWYgRU5BQkxFKFdFQkdQVSkKK1JlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6ZmluZEluc3BlY3RvclByb2dyYW0oV2ViR1BVUGlwZWxpbmUmIHBp
cGVsaW5lKQoreworICAgIGZvciAoYXV0byYgaW5zcGVjdG9yUHJvZ3JhbSA6IG1faWRlbnRpZmll
clRvSW5zcGVjdG9yUHJvZ3JhbS52YWx1ZXMoKSkgeworICAgICAgICBpZiAoaW5zcGVjdG9yUHJv
Z3JhbS0+cGlwZWxpbmUoKSA9PSAmcGlwZWxpbmUpCiAgICAgICAgICAgICByZXR1cm4gaW5zcGVj
dG9yUHJvZ3JhbTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXgg
YmFlZGQ0NjdjZDkuLjU5ZDU3YWIwZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC0zMywxMCArMzMsNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMu
aD4KICNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiAj
aWYgRU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIkluc3BlY3RvclNoYWRlclByb2dyYW0uaCIKQEAg
LTU2LDYgKzUzLDcgQEAgY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKICNpZiBFTkFC
TEUoV0VCR1BVKQogY2xhc3MgR1BVQ2FudmFzQ29udGV4dDsKIGNsYXNzIFdlYkdQVURldmljZTsK
K2NsYXNzIFdlYkdQVVBpcGVsaW5lOwogY2xhc3MgV2ViR1BVU3dhcENoYWluOwogI2VuZGlmCiAK
QEAgLTgzLDggKzgxLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVjb3JkaW5nQXV0b0NhcHR1
cmVGcmFtZUNvdW50KEVycm9yU3RyaW5nJiwgaW50IGNvdW50KTsKICAgICB2b2lkIHN0YXJ0UmVj
b3JkaW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgY29uc3QgaW50KiBm
cmFtZUNvdW50LCBjb25zdCBpbnQqIG1lbW9yeUxpbWl0KTsKICAgICB2b2lkIHN0b3BSZWNvcmRp
bmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkKTsKLSAgICB2b2lkIHJlcXVl
c3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29u
c3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcqKTsKLSAgICB2b2lkIHVwZGF0ZVNoYWRlcihF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRl
clR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlKTsKKyAgICB2b2lkIHJlcXVlc3RTaGFkZXJTb3Vy
Y2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBz
aGFkZXJUeXBlLCBTdHJpbmcqIHNvdXJjZSwgT3B0aW9uYWw8U3RyaW5nPiYgZW50cnlQb2ludCk7
CisgICAgdm9pZCB1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dy
YW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29u
c3QgU3RyaW5nKiBlbnRyeVBvaW50KTsKICAgICB2b2lkIHNldFNoYWRlclByb2dyYW1EaXNhYmxl
ZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGRpc2FibGVkKTsK
ICAgICB2b2lkIHNldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZChFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGhpZ2hsaWdodGVkKTsKIApAQCAtMTAzLDE1ICsxMDEs
MTcgQEAgcHVibGljOgogICAgIHZvaWQgY29uc29sZVN0YXJ0UmVjb3JkaW5nQ2FudmFzKENhbnZh
c1JlbmRlcmluZ0NvbnRleHQmLCBKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNPYmplY3QqIG9wdGlv
bnMpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICB2b2lkIGRpZEVuYWJsZUV4dGVuc2lvbihXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBkaWRDcmVh
dGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKLSAg
ICB2b2lkIHdpbGxEZWxldGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSYpOwotICAgIGJvb2wgaXNTaGFk
ZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJik7Ci0gICAgYm9vbCBpc1NoYWRlclByb2dy
YW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkdMUHJv
Z3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgdm9p
ZCB3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dyYW0mKTsKKyAgICBib29sIGlzV2Vi
R0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJik7CisgICAgYm9vbCBpc1dlYkdMUHJvZ3Jh
bUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdQVSkK
ICAgICB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZShXZWJHUFVEZXZpY2UmKTsKICAgICB2b2lk
IHdpbGxEZXN0cm95V2ViR1BVRGV2aWNlKFdlYkdQVURldmljZSYpOwogICAgIHZvaWQgd2lsbENv
bmZpZ3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0JiwgV2ViR1BVU3dhcENoYWluJik7Cisg
ICAgdm9pZCBkaWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmLCBXZWJHUFVQaXBl
bGluZSYpOworICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBlbGlu
ZSYpOwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xMjMsNyArMTIzLDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEluc3BlY3RvckNhbnZhcyYsIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlJlY29yZGluZzo6SW5pdGlhdG9yLCBSZWNvcmRpbmdPcHRpb25zJiYgPSB7IH0pOwogCiAg
ICAgdm9pZCBjYW52YXNEZXN0cm95ZWRUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBjbGVhckNhbnZh
c0RhdGEoKTsKKyAgICB2b2lkIHByb2dyYW1EZXN0cm95ZWRUaW1lckZpcmVkKCk7CisgICAgdm9p
ZCByZXNldCgpOworCiAgICAgSW5zcGVjdG9yQ2FudmFzJiBiaW5kQ2FudmFzKENhbnZhc1JlbmRl
cmluZ0NvbnRleHQmLCBib29sIGNhcHR1cmVCYWNrdHJhY2UpOwogI2lmIEVOQUJMRShXRUJHUFUp
CiAgICAgSW5zcGVjdG9yQ2FudmFzJiBiaW5kQ2FudmFzKFdlYkdQVURldmljZSYsIGJvb2wgY2Fw
dHVyZUJhY2t0cmFjZSk7CkBAIC0xMzUsMTEgKzEzNywxNCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxJbnNwZWN0b3JDYW52YXM+IGZpbmRJbnNwZWN0b3JDYW52YXMoV2ViR1BVRGV2aWNlJik7CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShXRUJHTCkKLSAgICBTdHJpbmcgdW5iaW5kUHJvZ3JhbShJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtJik7CisgICAgdm9pZCB1bmJpbmRQcm9ncmFtKEluc3BlY3RvclNo
YWRlclByb2dyYW0mKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gYXNzZXJ0
SW5zcGVjdG9yUHJvZ3JhbShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkKTsK
KyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IGZp
bmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlmCisjaWYgRU5BQkxFKFdF
QkdQVSkKKyAgICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gZmluZEluc3BlY3RvclBy
b2dyYW0oV2ViR1BVUGlwZWxpbmUmKTsKKyNlbmRpZgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPElu
c3BlY3Rvcjo6Q2FudmFzRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsK
ICAgICBSZWZQdHI8SW5zcGVjdG9yOjpDYW52YXNCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5k
RGlzcGF0Y2hlcjsKQEAgLTE0OCwxNCArMTUzLDE0IEBAIHByaXZhdGU6CiAgICAgUGFnZSYgbV9p
bnNwZWN0ZWRQYWdlOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JDYW52
YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhczsKLSNpZiBFTkFCTEUoV0VCR0wpCi0g
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4gbV9pZGVu
dGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtOwotI2VuZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gbV9y
ZW1vdmVkQ2FudmFzSWRlbnRpZmllcnM7CisgICAgVGltZXIgbV9jYW52YXNEZXN0cm95ZWRUaW1l
cjsKKworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4+
IG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbTsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3Jl
bW92ZWRQcm9ncmFtSWRlbnRpZmllcnM7CisgICAgVGltZXIgbV9wcm9ncmFtRGVzdHJveWVkVGlt
ZXI7CiAKICAgICBPcHRpb25hbDxzaXplX3Q+IG1fcmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNv
dW50OwotCi0gICAgVGltZXIgbV9jYW52YXNEZXN0cm95ZWRUaW1lcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaAppbmRleCAzZjhmNzE5OThmZC4uNjFiMWRh
ODQyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVDb21wdXRlUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKQEAgLTI3LDcgKzI3LDggQEAKIAogI2lmIEVOQUJM
RShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVPYmplY3RCYXNlLmgiCisjaW5jbHVkZSAiR1BVUGlw
ZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJXSExTTFByZXBhcmUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTQ0LDEwICs0NSwxNiBAQCBzdHJ1Y3QgR1BVQ29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvcjsKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lID0gTVRM
Q29tcHV0ZVBpcGVsaW5lU3RhdGU7CiB1c2luZyBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0
UHRyID0gUmV0YWluUHRyPE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPjsKIAotY2xhc3MgR1BVQ29t
cHV0ZVBpcGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJhc2UgeworY2xhc3MgR1BVQ29tcHV0ZVBp
cGVsaW5lIGZpbmFsIDogcHVibGljIEdQVVBpcGVsaW5lIHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFs
IH5HUFVDb21wdXRlUGlwZWxpbmUoKTsKKwogICAgIHN0YXRpYyBSZWZQdHI8R1BVQ29tcHV0ZVBp
cGVsaW5lPiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvciYsIEdQVUVycm9yU2NvcGVzJik7CiAKKyAgICBib29sIGlzQ29tcHV0ZVBp
cGVsaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgYm9vbCByZWNvbXBpbGUoY29u
c3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yJiBjb21w
dXRlU3RhZ2UpOworCiAgICAgY29uc3QgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmUqIHBsYXRmb3Jt
Q29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGlu
ZS5nZXQoKTsgfQogCiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlRGltZW5zaW9uczsgfQpAQCAtNjEsNCArNjgs
NiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfR1BVUElQRUxJTkUoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lLCBpc0NvbXB1
dGVQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZDc1NjZmNGU3NQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJHUFVQaXBlbGluZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUg
IkdQVUVycm9yU2NvcGVzLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0dQVVBpcGVsaW5lOjpHUFVQaXBlbGluZShHUFVFcnJvclNjb3BlcyYgZXJyb3JT
Y29wZXMpCisgICAgOiBHUFVPYmplY3RCYXNlKG1ha2VSZWYoZXJyb3JTY29wZXMpKQoreworfQor
CitHUFVQaXBlbGluZTo6fkdQVVBpcGVsaW5lKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGExMGZiZmRjMWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuaApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorCisjaW5jbHVkZSAiR1BVT2JqZWN0QmFzZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEdQVUVycm9yU2NvcGVzOworCitjbGFzcyBHUFVQaXBlbGluZSA6IHB1YmxpYyBHUFVP
YmplY3RCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HUFVQaXBlbGluZSgpOworCisgICAg
dmlydHVhbCBib29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0NvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKK3Byb3RlY3RlZDoKKyAgICBHUFVQaXBlbGluZShHUFVFcnJvclNjb3BlcyYpOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfR1BVUElQRUxJTkUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNU
eXBlKGNvbnN0IFdlYkNvcmU6OkdQVVBpcGVsaW5lJiBwaXBlbGluZSkgeyByZXR1cm4gcGlwZWxp
bmUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
LmgKaW5kZXggMGVlMWFmYTIzYTguLjI3YzA2MjhlZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvci5oCkBAIC0zOCwxMyArMzgsMTMgQEAgc3RydWN0IEdQVVByb2dy
YW1tYWJsZVN0YWdlRGVzY3JpcHRvckJhc2UgewogfTsKIAogc3RydWN0IEdQVVByb2dyYW1tYWJs
ZVN0YWdlRGVzY3JpcHRvciA6IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvckJhc2Ugewot
ICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcihSZWY8Y29uc3QgR1BVU2hhZGVyTW9k
dWxlPiYmIG1vZHVsZSwgY29uc3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSYg
YmFzZSkKKyAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IoUmVmPEdQVVNoYWRlck1v
ZHVsZT4mJiBtb2R1bGUsIGNvbnN0IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvckJhc2Um
IGJhc2UpCiAgICAgICAgIDogR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZShiYXNl
KQogICAgICAgICAsIG1vZHVsZSB7IFdURk1vdmUobW9kdWxlKSB9CiAgICAgewogICAgIH0KIAot
ICAgIFJlZjxjb25zdCBHUFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKKyAgICBSZWY8R1BVU2hhZGVy
TW9kdWxlPiBtb2R1bGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGlu
ZS5oCmluZGV4IDM5ZWVjMWYwYWJkLi5lOTM3ZWY3MWQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lLmgKQEAg
LTI3LDcgKzI3LDggQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVPYmpl
Y3RCYXNlLmgiCisjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVQcm9ncmFt
bWFibGVTdGFnZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgpAQCAtNDYsMTAgKzQ3LDE2IEBAIGNsYXNzIEdQVURldmljZTsKIHVzaW5nIFBsYXRm
b3JtUmVuZGVyUGlwZWxpbmUgPSBNVExSZW5kZXJQaXBlbGluZVN0YXRlOwogdXNpbmcgUGxhdGZv
cm1SZW5kZXJQaXBlbGluZVNtYXJ0UHRyID0gUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3Rh
dGU+OwogCi1jbGFzcyBHUFVSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNlIHsK
K2NsYXNzIEdQVVJlbmRlclBpcGVsaW5lIGZpbmFsIDogcHVibGljIEdQVVBpcGVsaW5lIHsKIHB1
YmxpYzoKKyAgICB2aXJ0dWFsIH5HUFVSZW5kZXJQaXBlbGluZSgpOworCiAgICAgc3RhdGljIFJl
ZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0
IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYsIEdQVUVycm9yU2NvcGVzJik7CiAKKyAgICBi
b29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBib29s
IHJlY29tcGlsZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3ImIHZlcnRleFN0YWdlLCBjb25zdCBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFn
ZURlc2NyaXB0b3I+JiBmcmFnbWVudFN0YWdlKTsKKwogI2lmIFVTRShNRVRBTCkKICAgICBNVExE
ZXB0aFN0ZW5jaWxTdGF0ZSAqZGVwdGhTdGVuY2lsU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rl
cHRoU3RlbmNpbFN0YXRlLmdldCgpOyB9CiAjZW5kaWYKQEAgLTcwLDQgKzc3LDYgQEAgcHJpdmF0
ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0dQ
VVBJUEVMSU5FKFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lLCBpc1JlbmRlclBpcGVsaW5lKCkp
CisKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5oCmluZGV4IDg4MzA4ZDY5ZTIz
Li45YzNiNDZjNDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVTaGFkZXJNb2R1bGUuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZp
Y2UmLCBjb25zdCBHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJik7CiAKICAgICBQbGF0Zm9ybVNo
YWRlck1vZHVsZSogcGxhdGZvcm1TaGFkZXJNb2R1bGUoKSBjb25zdCB7IHJldHVybiBtX3dobHNs
TW9kdWxlID8gbnVsbHB0ciA6IG1fcGxhdGZvcm1TaGFkZXJNb2R1bGUuZ2V0KCk7IH0KLSAgICBj
b25zdCBXSExTTDo6U2hhZGVyTW9kdWxlKiB3aGxzbE1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
d2hsc2xNb2R1bGUuZ2V0KCk7IH0KKyAgICBXSExTTDo6U2hhZGVyTW9kdWxlKiB3aGxzbE1vZHVs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2hsc2xNb2R1bGUuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAg
ICBHUFVTaGFkZXJNb2R1bGUoUGxhdGZvcm1TaGFkZXJNb2R1bGVTbWFydFB0ciYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21w
dXRlUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQppbmRleCBjNjFiOGFkYzQ4YS4uNDMx
YWZjYWUyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KQEAg
LTE5NywxMiArMTk3LDIxIEBAIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQVUNvbXB1dGVQ
aXBlbGluZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlCiB9CiAKIEdQVUNvbXB1
dGVQaXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxp
bmVTdGF0ZT4mJiBwaXBlbGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1l
bnNpb25zLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCi0gICAgOiBHUFVPYmplY3RCYXNl
KG1ha2VSZWYoZXJyb3JTY29wZXMpKQorICAgIDogR1BVUGlwZWxpbmUoZXJyb3JTY29wZXMpCiAg
ICAgLCBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQogICAgICwg
bV9jb21wdXRlRGltZW5zaW9ucyhjb21wdXRlRGltZW5zaW9ucykKIHsKIH0KIAorR1BVQ29tcHV0
ZVBpcGVsaW5lOjp+R1BVQ29tcHV0ZVBpcGVsaW5lKCkgPSBkZWZhdWx0OworCitib29sIEdQVUNv
bXB1dGVQaXBlbGluZTo6cmVjb21waWxlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3ImIGNvbXB1dGVTdGFnZSkKK3sKKyAgICBVTlVT
RURfUEFSQU0oZGV2aWNlKTsKKyAgICBVTlVTRURfUEFSQU0oY29tcHV0ZVN0YWdlKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4
IDYzNjhkMWFkZWIyLi4wMmY0NzllOGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVs
aW5lTWV0YWwubW0KQEAgLTUyOSw3ICs1MjksNyBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+
IEdQVVJlbmRlclBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsCiB9
CiAKIEdQVVJlbmRlclBpcGVsaW5lOjpHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVw
dGhTdGVuY2lsU3RhdGU+JiYgZGVwdGhTdGVuY2lsLCBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxp
bmVTdGF0ZT4mJiBwaXBlbGluZSwgR1BVUHJpbWl0aXZlVG9wb2xvZ3kgdG9wb2xvZ3ksIE9wdGlv
bmFsPEdQVUluZGV4Rm9ybWF0PiBmb3JtYXQsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykK
LSAgICA6IEdQVU9iamVjdEJhc2UobWFrZVJlZihlcnJvclNjb3BlcykpCisgICAgOiBHUFVQaXBl
bGluZShlcnJvclNjb3BlcykKICAgICAsIG1fZGVwdGhTdGVuY2lsU3RhdGUoV1RGTW92ZShkZXB0
aFN0ZW5jaWwpKQogICAgICwgbV9wbGF0Zm9ybVJlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxp
bmUpKQogICAgICwgbV9wcmltaXRpdmVUb3BvbG9neSh0b3BvbG9neSkKQEAgLTUzNyw2ICs1Mzcs
MTYgQEAgR1BVUmVuZGVyUGlwZWxpbmU6OkdQVVJlbmRlclBpcGVsaW5lKFJldGFpblB0cjxNVExE
ZXB0aFN0ZW5jaWxTdGF0ZT4mJiBkZXB0aFN0ZW4KIHsKIH0KIAorR1BVUmVuZGVyUGlwZWxpbmU6
On5HUFVSZW5kZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBHUFVSZW5kZXJQaXBlbGlu
ZTo6cmVjb21waWxlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVQcm9ncmFtbWFi
bGVTdGFnZURlc2NyaXB0b3ImIHZlcnRleFN0YWdlLCBjb25zdCBPcHRpb25hbDxHUFVQcm9ncmFt
bWFibGVTdGFnZURlc2NyaXB0b3I+JiBmcmFnbWVudFN0YWdlKQoreworICAgIFVOVVNFRF9QQVJB
TShkZXZpY2UpOworICAgIFVOVVNFRF9QQVJBTSh2ZXJ0ZXhTdGFnZSk7CisgICAgVU5VU0VEX1BB
UkFNKGZyYWdtZW50U3RhZ2UpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzCmluZGV4IGE2YWE0MTEyZmJmLi43ODNiODVlY2MzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0yNjYsNiArMjY2LDkgQEAgbG9jYWxpemVkU3RyaW5n
c1siQ29tcG9zaXRlZCJdID0gIkNvbXBvc2l0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcHJl
c3NlZCJdID0gIkNvbXByZXNzZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcHJlc3Npb24iXSA9
ICJDb21wcmVzc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2lvbjoiXSA9ICJDb21w
cmVzc2lvbjoiOworbG9jYWxpemVkU3RyaW5nc1siQ29tcHV0ZSJdID0gIkNvbXB1dGUiOworbG9j
YWxpemVkU3RyaW5nc1siQ29tcHV0ZSBQaXBlbGluZSAlZCJdID0gIkNvbXB1dGUgUGlwZWxpbmUg
JWQiOworbG9jYWxpemVkU3RyaW5nc1siQ29tcHV0ZSBTaGFkZXIiXSA9ICJDb21wdXRlIFNoYWRl
ciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlZCJdID0gIkNvbXB1dGVkIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkNvbmRpdGlvbiJdID0gIkNvbmRpdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJD
b25kaXRpb25hbCBleHByZXNzaW9uIl0gPSAiQ29uZGl0aW9uYWwgZXhwcmVzc2lvbiI7CkBAIC00
NjMsNiArNDY2LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIHRoYXQgb25seSBvbmUgbWFp
biBjb250ZW50IHNlY3Rpb24gaXMgdXNlZCBvbiB0aGUgcGFnZS4KIGxvY2FsaXplZFN0cmluZ3Nb
IkVuc3VyZSB0aGF0IHZhbHVlcyBmb3IgXHUwMDIyJXNcdTAwMjIgYXJlIHZhbGlkLiJdID0gIkVu
c3VyZSB0aGF0IHZhbHVlcyBmb3IgXHUwMDIyJXNcdTAwMjIgYXJlIHZhbGlkLiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJFbnRlcmVkIEZ1bGwtU2NyZWVuIE1vZGUiXSA9ICJFbnRlcmVkIEZ1bGwtU2Ny
ZWVuIE1vZGUiOwogbG9jYWxpemVkU3RyaW5nc1siRW50aXJlIFJlY29yZGluZyJdID0gIkVudGly
ZSBSZWNvcmRpbmciOworbG9jYWxpemVkU3RyaW5nc1siRW50cnkgcG9pbnQ6ICJdID0gIkVudHJ5
IHBvaW50OiAiOwogbG9jYWxpemVkU3RyaW5nc1siRXJyb3IiXSA9ICJFcnJvciI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJFcnJvcjogIl0gPSAiRXJyb3I6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJv
cnMiXSA9ICJFcnJvcnMiOwpAQCAtODgxLDYgKzg4NSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJl
bW92ZSBXYXRjaCBFeHByZXNzaW9uIl0gPSAiUmVtb3ZlIFdhdGNoIEV4cHJlc3Npb24iOwogbG9j
YWxpemVkU3RyaW5nc1siUmVtb3ZlIHByb2JlIl0gPSAiUmVtb3ZlIHByb2JlIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlbW92ZSB0aGlzIGJyZWFrcG9pbnQgYWN0aW9uIl0gPSAiUmVtb3ZlIHRoaXMg
YnJlYWtwb2ludCBhY3Rpb24iOwogbG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlZCBkZXNjZW5kYW50
ICJdID0gIlJlbW92ZWQgZGVzY2VuZGFudCAiOworbG9jYWxpemVkU3RyaW5nc1siUmVuZGVyIFBp
cGVsaW5lICVkIl0gPSAiUmVuZGVyIFBpcGVsaW5lICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJl
bmRlcmluZyBGcmFtZXMiXSA9ICJSZW5kZXJpbmcgRnJhbWVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlcGVhdGluZyBMaW5lYXIgR3JhZGllbnQiXSA9ICJSZXBlYXRpbmcgTGluZWFyIEdyYWRpZW50
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcGVhdGluZyBSYWRpYWwgR3JhZGllbnQiXSA9ICJSZXBl
YXRpbmcgUmFkaWFsIEdyYWRpZW50IjsKQEAgLTk5Nyw3ICsxMDAyLDYgQEAgbG9jYWxpemVkU3Ry
aW5nc1siU2Vzc2lvbiBTdG9yYWdlIl0gPSAiU2Vzc2lvbiBTdG9yYWdlIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlNldCB0byBBdXRvbWF0aWNhbGx5IENvbnRpbnVlIl0gPSAiU2V0IHRvIEF1dG9tYXRp
Y2FsbHkgQ29udGludWUiOwogbG9jYWxpemVkU3RyaW5nc1siU2V0dGVyIl0gPSAiU2V0dGVyIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlNldHRpbmdzIl0gPSAiU2V0dGluZ3MiOwotbG9jYWxpemVkU3Ry
aW5nc1siU2hhZGVyIl0gPSAiU2hhZGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRlciBQcm9n
cmFtcyJdID0gIlNoYWRlciBQcm9ncmFtcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaGFkb3cgQ29u
dGVudCJdID0gIlNoYWRvdyBDb250ZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyBDb250
ZW50ICglcykiXSA9ICJTaGFkb3cgQ29udGVudCAoJXMpIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNN
YW5hZ2VyLmpzCmluZGV4IDM4OWNiNzEzMDZkLi4zOGYwMWJiNjY2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9DYW52YXNNYW5hZ2VyLmpzCkBAIC0yMzQsNyArMjM0LDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9
IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FudmFzLmVu
YWJsZUV4dGVuc2lvbihleHRlbnNpb24pOwogICAgIH0KIAotICAgIHByb2dyYW1DcmVhdGVkKGNh
bnZhc0lkZW50aWZpZXIsIHByb2dyYW1JZGVudGlmaWVyKQorICAgIHByb2dyYW1DcmVhdGVkKGNh
bnZhc0lkZW50aWZpZXIsIHByb2dyYW1JZGVudGlmaWVyLCBwcm9ncmFtVHlwZSkKICAgICB7CiAg
ICAgICAgIGxldCBjYW52YXMgPSB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmdldChjYW52YXNJ
ZGVudGlmaWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2FudmFzKTsKQEAgLTI0Myw3ICsy
NDMsMTEgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBX
SS5PYmplY3QKIAogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlk
ZW50aWZpZXJNYXAuaGFzKHByb2dyYW1JZGVudGlmaWVyKSwgYFNoYWRlclByb2dyYW0gYWxyZWFk
eSBleGlzdHMgd2l0aCBpZCAke3Byb2dyYW1JZGVudGlmaWVyfS5gKTsKIAotICAgICAgICBsZXQg
cHJvZ3JhbSA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBjYW52YXMp
OworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMpOiBgcHJvZ3JhbVR5cGVgIGRpZCBu
b3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAoIXByb2dyYW1UeXBlKQorICAgICAgICAgICAgcHJv
Z3JhbVR5cGUgPSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKworICAgICAg
ICBsZXQgcHJvZ3JhbSA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBw
cm9ncmFtVHlwZSwgY2FudmFzKTsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZp
ZXJNYXAuc2V0KHByb2dyYW0uaWRlbnRpZmllciwgcHJvZ3JhbSk7CiAKICAgICAgICAgY2FudmFz
LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZChwcm9ncmFtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IGI5Mjlm
MDYyMGZhLi43ZDU2ZWMxNzE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCkBAIC00NSw3ICs0NSw3IEBAIFdJLkNhbnZh
cyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9zaGFkZXJQ
cm9ncmFtQ29sbGVjdGlvbiA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtQ29sbGVjdGlvbjsKICAgICAg
ICAgdGhpcy5fcmVjb3JkaW5nQ29sbGVjdGlvbiA9IG5ldyBXSS5SZWNvcmRpbmdDb2xsZWN0aW9u
OwogCi0gICAgICAgIHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlciA9IDE7Cisg
ICAgICAgIHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlciA9IG51bGw7CiAKICAg
ICAgICAgdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlID0gbnVsbDsKIApAQCAtNDA5LDExICs0MDks
MTUgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdT
dG9wcGVkLCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXJ9KTsKICAgICB9CiAKLSAgICBuZXh0
U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIoKQorICAgIG5leHRTaGFkZXJQcm9ncmFtRGlzcGxh
eU51bWJlckZvclByb2dyYW1UeXBlKHByb2dyYW1UeXBlKQogICAgIHsKICAgICAgICAgLy8gQ2Fs
bGVkIGZyb20gV0kuU2hhZGVyUHJvZ3JhbS4KIAotICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFNo
YWRlclByb2dyYW1EaXNwbGF5TnVtYmVyKys7CisgICAgICAgIGlmICghdGhpcy5fbmV4dFNoYWRl
clByb2dyYW1EaXNwbGF5TnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dy
YW1EaXNwbGF5TnVtYmVyID0ge307CisKKyAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1E
aXNwbGF5TnVtYmVyW3Byb2dyYW1UeXBlXSA9ICh0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3Bs
YXlOdW1iZXJbcHJvZ3JhbVR5cGVdIHx8IDApICsgMTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25l
eHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlcltwcm9ncmFtVHlwZV07CiAgICAgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1No
YWRlclByb2dyYW0uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvU2hhZGVyUHJvZ3JhbS5qcwppbmRleCBjMWVkOWM4YWM3Zi4uM2M4MWY4ODZhMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TaGFkZXJQ
cm9ncmFtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9TaGFkZXJQcm9ncmFtLmpzCkBAIC0yNSwyNyArMjUsODMgQEAKIAogV0kuU2hhZGVyUHJvZ3Jh
bSA9IGNsYXNzIFNoYWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmplY3QKIHsKLSAgICBjb25zdHJ1
Y3RvcihpZGVudGlmaWVyLCBjYW52YXMpCisgICAgY29uc3RydWN0b3IoaWRlbnRpZmllciwgcHJv
Z3JhbVR5cGUsIGNhbnZhcykKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkZW50aWZp
ZXIpOworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUpLmluY2x1ZGVzKHByb2dyYW1UeXBlKSk7CiAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KFNoYWRlclByb2dyYW0uX2NvbnRleHRUeXBlU3VwcG9ydHNQcm9ncmFtVHlwZShjYW52YXMuY29u
dGV4dFR5cGUsIHByb2dyYW1UeXBlKSk7CiAKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0
aGlzLl9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICAgICAgdGhpcy5fcHJvZ3JhbVR5cGUg
PSBwcm9ncmFtVHlwZTsKICAgICAgICAgdGhpcy5fY2FudmFzID0gY2FudmFzOwotICAgICAgICB0
aGlzLl91bmlxdWVEaXNwbGF5TnVtYmVyID0gY2FudmFzLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxh
eU51bWJlcigpOwogICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGZhbHNlOwogICAgIH0KIAorICAg
IC8vIFN0YXRpYworCisgICAgc3RhdGljIF9jb250ZXh0VHlwZVN1cHBvcnRzUHJvZ3JhbVR5cGUo
Y29udGV4dFR5cGUsIHByb2dyYW1UeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0
VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKKyAgICAg
ICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAgcmV0dXJu
IHByb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKworICAg
ICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFU6CisgICAgICAgICAgICByZXR1
cm4gcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZQorICAg
ICAgICAgICAgICAgIHx8IHByb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBl
LlJlbmRlcjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGF0aWMgX3Byb2dyYW1UeXBlU3VwcG9ydHNT
aGFkZXJUeXBlKHByb2dyYW1UeXBlLCBzaGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
IChwcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUu
Q29tcHV0ZToKKyAgICAgICAgICAgIHJldHVybiBzaGFkZXJUeXBlID09PSBTaGFkZXJQcm9ncmFt
LlNoYWRlclR5cGUuQ29tcHV0ZTsKKworICAgICAgICBjYXNlIFNoYWRlclByb2dyYW0uUHJvZ3Jh
bVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgcmV0dXJuIHNoYWRlclR5cGUgPT09IFNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudAorICAgICAgICAgICAgICAgIHx8IHNoYWRlclR5cGUg
PT09IFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXg7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zb2xlLmFzc2VydCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAg
Ly8gUHVibGljCiAKICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2lkZW50aWZp
ZXI7IH0KKyAgICBnZXQgcHJvZ3JhbVR5cGUoKSB7IHJldHVybiB0aGlzLl9wcm9ncmFtVHlwZTsg
fQogICAgIGdldCBjYW52YXMoKSB7IHJldHVybiB0aGlzLl9jYW52YXM7IH0KIAogICAgIGdldCBk
aXNwbGF5TmFtZSgpCiAgICAgewotICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIlByb2dyYW0g
JWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU51bWJlcik7CisgICAgICAgIGxldCBmb3Jt
YXQgPSBudWxsOworICAgICAgICBzd2l0Y2ggKHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSkgewor
ICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKKyAgICAgICAgY2FzZSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAgZm9ybWF0ID0gV0kuVUlT
dHJpbmcoIlByb2dyYW0gJWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFU6CisgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuX3By
b2dyYW1UeXBlKSB7CisgICAgICAgICAgICBjYXNlIFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUu
Q29tcHV0ZToKKyAgICAgICAgICAgICAgICBmb3JtYXQgPSBXSS5VSVN0cmluZygiQ29tcHV0ZSBQ
aXBlbGluZSAlZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBT
aGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjoKKyAgICAgICAgICAgICAgICBmb3JtYXQg
PSBXSS5VSVN0cmluZygiUmVuZGVyIFBpcGVsaW5lICVkIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBjb25zb2xlLmFzc2VydChmb3JtYXQpOworICAgICAgICBpZiAoIXRoaXMuX3VuaXF1ZURpc3Bs
YXlOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl91bmlxdWVEaXNwbGF5TnVtYmVyID0gdGhpcy5f
Y2FudmFzLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlckZvclByb2dyYW1UeXBlKHRoaXMu
X3Byb2dyYW1UeXBlKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdC5mb3JtYXQodGhpcy5fdW5pcXVl
RGlzcGxheU51bWJlcik7CiAgICAgfQogCiAgICAgZ2V0IGRpc2FibGVkKCkKQEAgLTU1LDYgKzEx
MSwxMiBAQCBXSS5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJ
Lk9iamVjdAogCiAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKQogICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQ
VSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9w
cm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpOworICAgICAg
ICBjb25zb2xlLmFzc2VydCh0aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHTCB8fCB0aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTDIpOworCiAgICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCA9PT0g
ZGlzYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTY1LDY3ICsxMjcsNTkgQEAgV0ku
U2hhZGVyUHJvZ3JhbSA9IGNsYXNzIFNoYWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoU2hhZGVyUHJvZ3JhbS5FdmVudC5E
aXNhYmxlZENoYW5nZWQpOwogICAgIH0KIAotICAgIHJlcXVlc3RWZXJ0ZXhTaGFkZXJTb3VyY2Uo
Y2FsbGJhY2spCisgICAgcmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJUeXBlLCBjYWxsYmFjaykK
ICAgICB7Ci0gICAgICAgIHRoaXMuX3JlcXVlc3RTaGFkZXJTb3VyY2UoQ2FudmFzQWdlbnQuU2hh
ZGVyVHlwZS5WZXJ0ZXgsIGNhbGxiYWNrKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoT2JqZWN0
LnZhbHVlcyhTaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUpLmluY2x1ZGVzKHNoYWRlclR5cGUpKTsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoU2hhZGVyUHJvZ3JhbS5fcHJvZ3JhbVR5cGVTdXBwb3J0
c1NoYWRlclR5cGUodGhpcy5fcHJvZ3JhbVR5cGUsIHNoYWRlclR5cGUpKTsKKworICAgICAgICAv
LyBDT01QQVRJQklMSVRZIChpT1MgMTMpOiBgY29udGVudGAgd2FzIHJlbmFtZWQgdG8gYHNvdXJj
ZWAuCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBlbnRyeVBvaW50YGAgZGlk
IG5vdCBleGlzdCB5ZXQuCisgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uo
dGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yLCBzb3VyY2UsIGVudHJ5UG9pbnQp
ID0+IHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIFdJLnJlcG9y
dEludGVybmFsRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIG51
bGwpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgY2FsbGJhY2soc291cmNlLCBlbnRyeVBvaW50KTsKKyAgICAgICAgfSk7CiAgICAgfQogCi0g
ICAgcmVxdWVzdEZyYWdtZW50U2hhZGVyU291cmNlKGNhbGxiYWNrKQorICAgIHVwZGF0ZVNoYWRl
cihzaGFkZXJUeXBlLCBzb3VyY2UsIHtlbnRyeVBvaW50fSA9IHt9KQogICAgIHsKLSAgICAgICAg
dGhpcy5fcmVxdWVzdFNoYWRlclNvdXJjZShDYW52YXNBZ2VudC5TaGFkZXJUeXBlLkZyYWdtZW50
LCBjYWxsYmFjayk7Ci0gICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVz
KFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZSkuaW5jbHVkZXMoc2hhZGVyVHlwZSkpOworICAgICAg
ICBjb25zb2xlLmFzc2VydChTaGFkZXJQcm9ncmFtLl9wcm9ncmFtVHlwZVN1cHBvcnRzU2hhZGVy
VHlwZSh0aGlzLl9wcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSkpOworICAgICAgICBjb25zb2xlLmFz
c2VydCgoISFlbnRyeVBvaW50KSA9PT0gKHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSkpOwogCi0gICAgdXBkYXRlVmVydGV4U2hhZGVyKHNv
dXJjZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLlZlcnRleCwgc291cmNlKTsKLSAgICB9Ci0KLSAgICB1cGRhdGVGcmFnbWVudFNoYWRl
cihzb3VyY2UpCi0gICAgewotICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoQ2FudmFzQWdlbnQu
U2hhZGVyVHlwZS5GcmFnbWVudCwgc291cmNlKTsKKyAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRl
U2hhZGVyKHRoaXMuX2lkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgZW50cnlQb2ludCk7
CiAgICAgfQogCiAgICAgc2hvd0hpZ2hsaWdodCgpCiAgICAgewotICAgICAgICBjb25zdCBoaWdo
bGlnaHRlZCA9IHRydWU7Ci0gICAgICAgIENhbnZhc0FnZW50LnNldFNoYWRlclByb2dyYW1IaWdo
bGlnaHRlZCh0aGlzLl9pZGVudGlmaWVyLCBoaWdobGlnaHRlZCwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IsIGVycm9yKTsKLSAgICAgICAgfSk7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlBy
b2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisKKyAgICAg
ICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lkZW50aWZp
ZXIsIHRydWUpOwogICAgIH0KIAogICAgIGhpZGVIaWdobGlnaHQoKQogICAgIHsKLSAgICAgICAg
Y29uc3QgaGlnaGxpZ2h0ZWQgPSBmYWxzZTsKLSAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVy
UHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVkLCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwotICAgICAg
ICB9KTsKLSAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dyYW1UeXBlID09
PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdMMik7CiAKLSAgICAvLyBQcml2YXRlCi0KLSAgICBfcmVxdWVzdFNoYWRlclNvdXJjZShz
aGFkZXJUeXBlLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RT
aGFkZXJTb3VyY2UodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yLCBjb250ZW50
KSA9PiB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFj
ayhudWxsKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGNhbGxiYWNrKGNvbnRlbnQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBfdXBk
YXRlU2hhZGVyKHNoYWRlclR5cGUsIHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50
LnVwZGF0ZVNoYWRlcih0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3VyY2UsIChlcnJv
cikgPT4gewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWVycm9yLCBlcnJvcik7Ci0gICAg
ICAgIH0pOworICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQo
dGhpcy5faWRlbnRpZmllciwgZmFsc2UpOwogICAgIH0KIH07CiAKK1dJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUgPSB7CisgICAgQ29tcHV0ZTogImNvbXB1dGUiLAorICAgIFJlbmRlcjogInJl
bmRlciIsCit9OworCiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUgPSB7Ci0gICAgRnJhZ21l
bnQ6ICJzaGFkZXItdHlwZS1mcmFnbWVudCIsCi0gICAgVmVydGV4OiAic2hhZGVyLXR5cGUtdmVy
dGV4IiwKKyAgICBDb21wdXRlOiAiY29tcHV0ZSIsCisgICAgRnJhZ21lbnQ6ICJmcmFnbWVudCIs
CisgICAgVmVydGV4OiAidmVydGV4IiwKIH07CiAKIFdJLlNoYWRlclByb2dyYW0uRXZlbnQgPSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9DYW52YXNPYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCmluZGV4IDNlNWRkNmMyYTcyLi42ZjUzNTc0NDM0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvQ2FudmFzT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKQEAgLTY3LDkgKzY3LDkgQEAgV0kuQ2Fu
dmFzT2JzZXJ2ZXIgPSBjbGFzcyBDYW52YXNPYnNlcnZlcgogICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmV4dGVuc2lvbkVuYWJsZWQoY2FudmFzSWQsIGV4dGVuc2lvbik7CiAgICAgfQogCi0gICAg
cHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCkKKyAgICBwcm9ncmFtQ3JlYXRlZChj
YW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSkKICAgICB7Ci0gICAgICAgIFdJLmNhbnZh
c01hbmFnZXIucHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCk7CisgICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIucHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCwgcHJvZ3Jh
bVR5cGUpOwogICAgIH0KIAogICAgIHByb2dyYW1EZWxldGVkKHByb2dyYW1JZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dy
YW1Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCmluZGV4IDU1ZWY0MWY4MmY1Li4wZTQ4
MDYzMTAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCkBA
IC0yMyw1MCArMjMsNTIgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0uY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciB7
CisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciB7CisgICAgZGlzcGxheTog
ZmxleDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKICAgICB0b3A6IDA7CiAgICAgYm90dG9tOiAwOwotCi0gICAgLS1ib3JkZXItc3RhcnQtc3R5
bGU6IDFweCBzb2xpZCBsaWdodGdyZXk7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmll
dy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIudmVydGV4LAotYm9keVtkaXI9
cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlci5m
cmFnbWVudCB7CisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5jb21wdXRl
IHsKKyAgICByaWdodDogMDsKKyAgICBsZWZ0OiAwOworfQorCitib2R5W2Rpcj1sdHJdIC5jb250
ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLnZlcnRleCwKK2JvZHlbZGlyPXJ0bF0g
LmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQgewogICAgIHdp
ZHRoOiBjYWxjKDUwJSAtIDFweCk7CiAgICAgbGVmdDogMDsKIH0KIAotYm9keVtkaXI9bHRyXSAu
Y29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlci5mcmFnbWVu
dCwKLWJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVk
aXRvci5zaGFkZXIudmVydGV4IHsKK2JvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXIt
cHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQsCitib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcu
c2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLnZlcnRleCB7CiAgICAgd2lkdGg6IGNhbGMoNTAlICsg
MXB4KTsKICAgICByaWdodDogMDsKIH0KIAotYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNo
YWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciArIC50ZXh0LWVkaXRvci5zaGFkZXIg
ewotICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1ib3JkZXItc3RhcnQtc3R5bGUpOworLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgKyAuc2hhZGVyIHsKKyAgICBib3JkZXItbGVm
dDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiB9CiAKLWJvZHlbZGlyPXJ0bF0gLmNv
bnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgKyAudGV4dC1l
ZGl0b3Iuc2hhZGVyIHsKLSAgICBib3JkZXItcmlnaHQ6IHZhcigtLWJvcmRlci1zdGFydC1zdHls
ZSk7Ci19Ci0KLS5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hh
ZGVyID4gLnR5cGUtdGl0bGUgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFk
ZXIgPiBoZWFkZXIgPiAqIHsKICAgICBwYWRkaW5nOiAycHggNHB4OwotICAgIGJhY2tncm91bmQt
Y29sb3I6IGhzbCgwLCAwJSwgOTUlKTsKICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGln
aHRncmV5OwogfQogCi0uY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9y
LnNoYWRlciA+IC5Db2RlTWlycm9yIHsKLSAgICB0b3A6IDE4cHg7CisuY29udGVudC12aWV3LnNo
YWRlci1wcm9ncmFtID4gLnNoYWRlciA+IGhlYWRlciA+IC5zaGFkZXItdHlwZSB7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NSUpOworfQorCisuY29udGVudC12aWV3LnNoYWRl
ci1wcm9ncmFtID4gLnNoYWRlciA+IGhlYWRlciA+IC5lbnRyeS1wb2ludCA+IGlucHV0IHsKKyAg
ICBwYWRkaW5nOiAwIDFweDsKKyAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKKyAg
ICBmb250LXNpemU6IDExcHg7CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRh
cmspIHsKLSAgICAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNo
YWRlciB7Ci0gICAgICAgIC0tYm9yZGVyLXN0YXJ0LXN0eWxlOiAxcHggc29saWQgdmFyKC0tdGV4
dC1jb2xvci1xdWF0ZXJuYXJ5KTsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciA+IC50eXBlLXRpdGxlIHsKKyAgICAuY29udGVu
dC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciA+IGhlYWRlciB7CiAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3IpOwogICAgICAgICBib3JkZXItYm90
dG9tLWNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXF1YXRlcm5hcnkpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dy
YW1Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcwppbmRleCBkZDkyNTRlZDViZS4uZGZkMjli
YWIzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMKQEAgLTMx
LDEzICszMSwyNCBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQ
cm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgICAgIHN1cGVyKHNo
YWRlclByb2dyYW0pOwogCisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJS
ZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlz
Ll9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2
aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKKyAgICAgICAgdGhpcy5fcmVmcmVz
aEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fcmVmcmVzaENvbnRlbnQsIHRoaXMpOworCiAgICAg
ICAgIGxldCBjb250ZW50RGlkQ2hhbmdlRGVib3VuY2VyID0gbmV3IERlYm91bmNlcigoZXZlbnQp
ID0+IHsKICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREaWRDaGFuZ2UoZXZlbnQpOwogICAgICAg
ICB9KTsKIAotICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXByb2dy
YW0iKTsKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInNoYWRlci1wcm9ncmFt
IiwgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSk7CiAKICAgICAgICAgbGV0IGNy
ZWF0ZUVkaXRvciA9IChzaGFkZXJUeXBlKSA9PiB7CisgICAgICAgICAgICBsZXQgY29udGFpbmVy
ID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
KTsKKworICAgICAgICAgICAgbGV0IGhlYWRlciA9IGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJoZWFkZXIiKSk7CisKKyAgICAgICAgICAgIGxldCBzaGFkZXJU
eXBlQ29udGFpbmVyID0gaGVhZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpKTsKKyAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgi
c2hhZGVyLXR5cGUiKTsKKwogICAgICAgICAgICAgbGV0IHRleHRFZGl0b3IgPSBuZXcgV0kuVGV4
dEVkaXRvcjsKICAgICAgICAgICAgIHRleHRFZGl0b3IucmVhZE9ubHkgPSBmYWxzZTsKICAgICAg
ICAgICAgIHRleHRFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXSS5UZXh0RWRpdG9yLkV2ZW50LkZv
Y3VzZWQsIHRoaXMuX2VkaXRvckZvY3VzZWQsIHRoaXMpOwpAQCAtNDUsMzIgKzU2LDcxIEBAIFdJ
LlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50Vmll
dyBleHRlbmRzIFdJLkNvbnRlbnRWCiAgICAgICAgICAgICB0ZXh0RWRpdG9yLmFkZEV2ZW50TGlz
dGVuZXIoV0kuVGV4dEVkaXRvci5FdmVudC5Db250ZW50RGlkQ2hhbmdlLCAoZXZlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICBjb250ZW50RGlkQ2hhbmdlRGVib3VuY2VyLmRlbGF5Rm9yVGltZSgy
NTAsIGV2ZW50KTsKICAgICAgICAgICAgIH0sIHRoaXMpOwotICAgICAgICAgICAgdGV4dEVkaXRv
ci5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInNoYWRlciIpOwotCi0gICAgICAgICAgICBsZXQgc2hh
ZGVyVHlwZUNvbnRhaW5lciA9IHRleHRFZGl0b3IuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1l
bnQoImFmdGVyYmVnaW4iLCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7Ci0gICAgICAg
ICAgICBzaGFkZXJUeXBlQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInR5cGUtdGl0bGUiKTsKIAog
ICAgICAgICAgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFdJLlNo
YWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXg6Ci0gICAgICAgICAgICAgICAgc2hhZGVyVHlw
ZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJWZXJ0ZXggU2hhZGVyIik7Ci0g
ICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4LXNoYWRlci94LXZlcnRleCI7
Ci0gICAgICAgICAgICAgICAgdGV4dEVkaXRvci5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInZlcnRl
eCIpOworICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0
ZToKKyAgICAgICAgICAgICAgICBzaGFkZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0ku
VUlTdHJpbmcoIkNvbXB1dGUgU2hhZGVyIik7CisgICAgICAgICAgICAgICAgdGV4dEVkaXRvci5t
aW1lVHlwZSA9ICJ4LXNoYWRlci94LXZlcnRleCI7IC8vIFRyZWF0IHRoaXMgbGlrZSBhIHZlcnRl
eCBzaGFkZXIgZm9yIENvZGVNaXJyb3IuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg
ICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50OgogICAgICAg
ICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygi
RnJhZ21lbnQgU2hhZGVyIik7CiAgICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9
ICJ4LXNoYWRlci94LWZyYWdtZW50IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1l
bnQuY2xhc3NMaXN0LmFkZCgiZnJhZ21lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4OgorICAg
ICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmlu
ZygiVmVydGV4IFNoYWRlciIpOworICAgICAgICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUg
PSAieC1zaGFkZXIveC12ZXJ0ZXgiOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGV4dEVkaXRvcik7Ci0gICAgICAg
ICAgICByZXR1cm4gdGV4dEVkaXRvcjsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGls
ZCh0ZXh0RWRpdG9yLmVsZW1lbnQpOworICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5h
ZGQoInNoYWRlciIsIHNoYWRlclR5cGUpOworCisgICAgICAgICAgICBsZXQgZW50cnlQb2ludElu
cHV0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSkgeworICAgICAg
ICAgICAgICAgIGxldCBlbnRyeVBvaW50Q29udGFpbmVyID0gaGVhZGVyLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBlbnRyeVBvaW50
Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImVudHJ5LXBvaW50Iik7CisgICAgICAgICAgICAgICAg
ZW50cnlQb2ludENvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShX
SS5VSVN0cmluZygiRW50cnkgcG9pbnQ6ICIpKSk7CisKKyAgICAgICAgICAgICAgICBlbnRyeVBv
aW50SW5wdXQgPSBlbnRyeVBvaW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucHV0IikpOworICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRJbnB1dC5hZGRF
dmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX2hhbmRsZUVudHJ5UG9pbnRJbnB1dElucHV0LmJp
bmQodGhpcykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4ge3RleHRFZGl0
b3IsIGVudHJ5UG9pbnRJbnB1dH07CiAgICAgICAgIH07CiAKLSAgICAgICAgdGhpcy5fdmVydGV4
RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgp
OwotICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvciA9IGNyZWF0ZUVkaXRvcihXSS5TaGFkZXJQ
cm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQpOwotICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWRp
dG9yID0gdGhpcy5fdmVydGV4RWRpdG9yOworICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50
ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlBy
b2dyYW1UeXBlLkNvbXB1dGU6IHsKKyAgICAgICAgICAgIGxldCBjb21wdXRlRWRpdG9yID0gY3Jl
YXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5Db21wdXRlKTsKKyAgICAgICAg
ICAgIHRoaXMuX2NvbXB1dGVFZGl0b3IgPSBjb21wdXRlRWRpdG9yLnRleHRFZGl0b3I7CisgICAg
ICAgICAgICB0aGlzLl9jb21wdXRlRW50cnlQb2ludElucHV0ID0gY29tcHV0ZUVkaXRvci5lbnRy
eVBvaW50SW5wdXQ7CisKKyAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlz
Ll9jb21wdXRlRWRpdG9yOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOiB7CisgICAgICAgICAg
ICBsZXQgdmVydGV4RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVy
VHlwZS5WZXJ0ZXgpOworICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRp
dG9yLnRleHRFZGl0b3I7CisgICAgICAgICAgICB0aGlzLl92ZXJ0ZXhFbnRyeVBvaW50SW5wdXQg
PSB2ZXJ0ZXhFZGl0b3IuZW50cnlQb2ludElucHV0OworCisgICAgICAgICAgICBsZXQgZnJhZ21l
bnRFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdt
ZW50KTsKKyAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gZnJhZ21lbnRFZGl0b3Iu
dGV4dEVkaXRvcjsKKyAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RW50cnlQb2ludElucHV0ID0g
ZnJhZ21lbnRFZGl0b3IuZW50cnlQb2ludElucHV0OworCisgICAgICAgICAgICB0aGlzLl9sYXN0
QWN0aXZlRWRpdG9yID0gdGhpcy5fdmVydGV4RWRpdG9yOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IG5h
dmlnYXRpb25JdGVtcygpCisgICAgeworICAgICAgICByZXR1cm4gW3RoaXMuX3JlZnJlc2hCdXR0
b25OYXZpZ2F0aW9uSXRlbV07CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC03OSwyMiAr
MTI5LDMyIEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dy
YW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAgICAgewogICAgICAgICBzdXBlci5z
aG93bigpOwogCi0gICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5zaG93bigpOwotICAgICAgICB0
aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOworICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFt
LlByb2dyYW1UeXBlLkNvbXB1dGU6CisgICAgICAgICAgICB0aGlzLl9jb21wdXRlRWRpdG9yLnNo
b3duKCk7CisgICAgICAgICAgICBicmVhazsKIAotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnJlcXVlc3RWZXJ0ZXhTaGFkZXJTb3VyY2UoKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAg
IHRoaXMuX3ZlcnRleEVkaXRvci5zdHJpbmcgPSBjb250ZW50IHx8ICIiOwotICAgICAgICB9KTsK
KyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjoKKyAgICAg
ICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5zaG93bigpOworICAgICAgICAgICAgdGhpcy5fZnJh
Z21lbnRFZGl0b3Iuc2hvd24oKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKLSAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0RnJhZ21lbnRTaGFkZXJTb3VyY2Uo
KGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnN0cmluZyA9
IGNvbnRlbnQgfHwgIiI7Ci0gICAgICAgIH0pOworICAgICAgICB0aGlzLl9yZWZyZXNoQ29udGVu
dCgpOwogICAgIH0KIAogICAgIGhpZGRlbigpCiAgICAgewotICAgICAgICB0aGlzLl92ZXJ0ZXhF
ZGl0b3IuaGlkZGVuKCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLmhpZGRlbigpOwor
ICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAg
ICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6CisgICAgICAg
ICAgICB0aGlzLl9jb21wdXRlRWRpdG9yLmhpZGRlbigpOworICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjoKKyAgICAg
ICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5oaWRkZW4oKTsKKyAgICAgICAgICAgIHRoaXMuX2Zy
YWdtZW50RWRpdG9yLmhpZGRlbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAog
ICAgICAgICBzdXBlci5oaWRkZW4oKTsKICAgICB9CkBAIC0xMDYsMTQgKzE2NiwzNCBAQCBXSS5T
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VgogCiAgICAgZ2V0IHNhdmVEYXRhKCkKICAgICB7Ci0gICAgICAg
IGxldCBmaWxlbmFtZSA9IFdJLlVJU3RyaW5nKCJTaGFkZXIiKTsKLSAgICAgICAgaWYgKHRoaXMu
X2xhc3RBY3RpdmVFZGl0b3IgPT09IHRoaXMuX3ZlcnRleEVkaXRvcikKLSAgICAgICAgICAgIGZp
bGVuYW1lID0gV0kuVUlTdHJpbmcoIlZlcnRleCIpOwotICAgICAgICBlbHNlIGlmICh0aGlzLl9s
YXN0QWN0aXZlRWRpdG9yID09PSB0aGlzLl9mcmFnbWVudEVkaXRvcikKKyAgICAgICAgbGV0IGZp
bGVuYW1lID0gIiI7CisgICAgICAgIHN3aXRjaCAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvcikgewor
ICAgICAgICBjYXNlIHRoaXMuX2NvbXB1dGVFZGl0b3I6CisgICAgICAgICAgICBmaWxlbmFtZSA9
IFdJLlVJU3RyaW5nKCJDb21wdXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGlzLl9mcmFnbWVudEVkaXRvcjoKICAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJp
bmcoIkZyYWdtZW50Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlzLl92
ZXJ0ZXhFZGl0b3I6CisgICAgICAgICAgICBmaWxlbmFtZSA9IFdJLlVJU3RyaW5nKCJWZXJ0ZXgi
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGZpbGVuYW1lKTsKKworICAgICAgICBsZXQgZXh0ZW5zaW9uID0gIiI7CisgICAgICAgIHN3aXRj
aCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5jYW52YXMuY29udGV4dFR5cGUpIHsKKyAgICAgICAg
Y2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0w6CisgICAgICAgIGNhc2UgV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMMjoKKyAgICAgICAgICAgIGV4dGVuc2lvbiA9IFdJLnVubG9jYWxp
emVkU3RyaW5nKCIuZ2xzbCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0ku
Q2FudmFzLkNvbnRleHRUeXBlLldlYkdQVToKKyAgICAgICAgICAgIGV4dGVuc2lvbiA9IFdJLnVu
bG9jYWxpemVkU3RyaW5nKCIud2hsc2wiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV4dGVuc2lvbik7CiAKICAgICAgICAgcmV0dXJuIHsK
LSAgICAgICAgICAgIHVybDogV0kuRmlsZVV0aWxpdGllcy5pbnNwZWN0b3JVUkxGb3JGaWxlbmFt
ZShmaWxlbmFtZSArICIuZ2xzbCIpLAorICAgICAgICAgICAgdXJsOiBXSS5GaWxlVXRpbGl0aWVz
Lmluc3BlY3RvclVSTEZvckZpbGVuYW1lKGZpbGVuYW1lICsgZXh0ZW5zaW9uKSwKICAgICAgICAg
ICAgIGNvbnRlbnQ6IHRoaXMuX2xhc3RBY3RpdmVFZGl0b3Iuc3RyaW5nLAogICAgICAgICAgICAg
Zm9yY2VTYXZlQXM6IHRydWUsCiAgICAgICAgIH07CkBAIC0xNzEsNiArMjUxLDY1IEBAIFdJLlNo
YWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICAvLyBQcml2YXRlCiAKKyAgICBfcmVmcmVzaENvbnRl
bnQoKQorICAgIHsKKyAgICAgICAgbGV0IGNyZWF0ZUNhbGxiYWNrID0gKHRleHRFZGl0b3IsIGVu
dHJ5UG9pbnRJbnB1dCkgPT4geworICAgICAgICAgICAgcmV0dXJuIChzb3VyY2UsIGVudHJ5UG9p
bnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlID09PSBudWxsKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLnN0cmluZyA9IHNvdXJj
ZSB8fCAiIjsKKworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghIWVudHJ5UG9pbnQp
ID09PSAoISFlbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnlQb2lu
dElucHV0KQorICAgICAgICAgICAgICAgICAgICBlbnRyeVBvaW50SW5wdXQudmFsdWUgPSBlbnRy
eVBvaW50IHx8ICIiOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICBzd2l0
Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBX
SS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6CisgICAgICAgICAgICB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFk
ZXJUeXBlLkNvbXB1dGUsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2NvbXB1dGVFZGl0b3IsIHRoaXMu
X2NvbXB1dGVFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAg
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0U2hhZGVyU291cmNlKFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5WZXJ0ZXgsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX3ZlcnRleEVkaXRvciwg
dGhpcy5fdmVydGV4RW50cnlQb2ludElucHV0KSk7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBl
LkZyYWdtZW50LCBjcmVhdGVDYWxsYmFjayh0aGlzLl9mcmFnbWVudEVkaXRvciwgdGhpcy5fZnJh
Z21lbnRFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgfQorCisgICAgX3VwZGF0ZVNoYWRlcihz
aGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgbGV0IHVwZGF0ZVNoYWRlciA9ICh0ZXh0RWRpdG9y
LCBlbnRyeVBvaW50SW5wdXQpID0+IHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRleHRF
ZGl0b3IpOworCisgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OworICAgICAgICAgICAgaWYg
KGVudHJ5UG9pbnRJbnB1dCkKKyAgICAgICAgICAgICAgICBvcHRpb25zLmVudHJ5UG9pbnQgPSBl
bnRyeVBvaW50SW5wdXQudmFsdWU7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnVwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsIHRleHRF
ZGl0b3Iuc3RyaW5nLCBvcHRpb25zKTsKKyAgICAgICAgfTsKKworICAgICAgICBzd2l0Y2ggKHNo
YWRlclR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29t
cHV0ZToKKyAgICAgICAgICAgIHVwZGF0ZVNoYWRlcih0aGlzLl9jb21wdXRlRWRpdG9yLCB0aGlz
Ll9jb21wdXRlRW50cnlQb2ludElucHV0KTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudDoKKyAgICAgICAgICAg
IHVwZGF0ZVNoYWRlcih0aGlzLl9mcmFnbWVudEVkaXRvciwgdGhpcy5fZnJhZ21lbnRFbnRyeVBv
aW50SW5wdXQpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgV0kuU2hhZGVy
UHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKKyAgICAgICAgICAgIHVwZGF0ZVNoYWRlcih0aGlz
Ll92ZXJ0ZXhFZGl0b3IsIHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRJbnB1dCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydCgpOworICAgIH0K
KwogICAgIF9lZGl0b3JGb2N1c2VkKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2xh
c3RBY3RpdmVFZGl0b3IgPT09IGV2ZW50LnRhcmdldCkKQEAgLTE5Nyw5ICszMzYsMzkgQEAgV0ku
U2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgIF9jb250ZW50RGlkQ2hhbmdlKGV2ZW50KQogICAg
IHsKLSAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fdmVydGV4RWRpdG9yKQotICAg
ICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC51cGRhdGVWZXJ0ZXhTaGFkZXIodGhpcy5f
dmVydGV4RWRpdG9yLnN0cmluZyk7Ci0gICAgICAgIGVsc2UgaWYgKGV2ZW50LnRhcmdldCA9PT0g
dGhpcy5fZnJhZ21lbnRFZGl0b3IpCi0gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnVwZGF0ZUZyYWdtZW50U2hhZGVyKHRoaXMuX2ZyYWdtZW50RWRpdG9yLnN0cmluZyk7CisgICAg
ICAgIHN3aXRjaCAoZXZlbnQudGFyZ2V0KSB7CisgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUVk
aXRvcjoKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNo
YWRlclR5cGUuQ29tcHV0ZSk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSB0
aGlzLl9mcmFnbWVudEVkaXRvcjoKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5T
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQpOworICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGNhc2UgdGhpcy5fdmVydGV4RWRpdG9yOgorICAgICAgICAgICAgdGhpcy5fdXBk
YXRlU2hhZGVyKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKKyAgICB9
CisKKyAgICBfaGFuZGxlRW50cnlQb2ludElucHV0SW5wdXQoZXZlbnQpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKGV2ZW50LnRhcmdldCkgeworICAgICAgICBjYXNlIHRoaXMuX2NvbXB1dGVFbnRy
eVBvaW50SW5wdXQ6CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoV0kuU2hhZGVyUHJv
Z3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGNhc2UgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQ6CisgICAgICAgICAgICB0aGlzLl91
cGRhdGVTaGFkZXIoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRJbnB1
dDoKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRl
clR5cGUuVmVydGV4KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1U
cmVlRWxlbWVudC5qcwppbmRleCBjZGE3NWI0MTUyNC4uODdkOWU0ODQ1YWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1U
cmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQuanMKQEAgLTMyLDEwICszMiwxMyBAQCBXSS5T
aGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQgPSBjbGFzcyBTaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQg
ZXh0ZW5kcyBXSS5HZW5lcmFsVAogICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7CiAgICAg
ICAgIHN1cGVyKCJzaGFkZXItcHJvZ3JhbSIsIHNoYWRlclByb2dyYW0uZGlzcGxheU5hbWUsIHN1
YnRpdGxlLCBzaGFkZXJQcm9ncmFtKTsKIAotICAgICAgICB0aGlzLl9kaXNhYmxlZEltYWdlRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICB0aGlzLl9kaXNh
YmxlZEltYWdlRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFByb2dyYW0iKTsK
LSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudENsaWNrZWQuYmluZCh0aGlzKSk7Ci0gICAg
ICAgIHRoaXMuc3RhdHVzID0gdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQ7CisgICAgICAgIGxl
dCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBl
OworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
TCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMikgeworICAg
ICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbWciKTsKKyAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LnRpdGxl
ID0gV0kuVUlTdHJpbmcoIkRpc2FibGUgUHJvZ3JhbSIpOworICAgICAgICAgICAgdGhpcy5fZGlz
YWJsZWRJbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kaXNhYmxl
ZEltYWdlRWxlbWVudENsaWNrZWQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLnN0YXR1
cyA9IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50OworICAgICAgICB9CiAgICAgfQogCiAgICAg
Ly8gUHJvdGVjdGVkCkBAIC00NCwzNCArNDcsNDIgQEAgV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVt
ZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZXJhbFQK
ICAgICB7CiAgICAgICAgIHN1cGVyLm9uYXR0YWNoKCk7CiAKLSAgICAgICAgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLlNoYWRlclByb2dyYW0uRXZlbnQuRGlzYWJs
ZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQcm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgbGV0IGNvbnRleHRUeXBlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5jYW52
YXMuY29udGV4dFR5cGU7CisgICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNv
bnRleHRUeXBlLldlYkdMIHx8IGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0wyKSB7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlz
dGVuZXIoV0kuU2hhZGVyUHJvZ3JhbS5FdmVudC5EaXNhYmxlZENoYW5nZWQsIHRoaXMuX2hhbmRs
ZVNoYWRlclByb2dyYW1EaXNhYmxlZENoYW5nZWQsIHRoaXMpOwogCi0gICAgICAgIHRoaXMuZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCB0aGlzLl9oYW5kbGVNb3VzZU92ZXIu
YmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZW91dCIsIHRoaXMuX2hhbmRsZU1vdXNlT3V0LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhp
cy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIHRoaXMuX2hhbmRsZU1vdXNl
T3Zlci5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZW91dCIsIHRoaXMuX2hhbmRsZU1vdXNlT3V0LmJpbmQodGhpcykpOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgb25kZXRhY2goKQogICAgIHsKLSAgICAgICAgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNoYWRlclByb2dyYW0uRXZlbnQuRGlz
YWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQcm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0
aGlzKTsKKyAgICAgICAgbGV0IGNvbnRleHRUeXBlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5j
YW52YXMuY29udGV4dFR5cGU7CisgICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMIHx8IGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViR0wyKQorICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLlNoYWRlclByb2dyYW0uRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9o
YW5kbGVTaGFkZXJQcm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICBzdXBl
ci5vbmRldGFjaCgpOwogICAgIH0KIAogICAgIGNhblNlbGVjdE9uTW91c2VEb3duKGV2ZW50KQog
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LmNvbnRhaW5zKGV2
ZW50LnRhcmdldCkpCisgICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudCAmJiB0
aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gc3VwZXIuY2FuU2VsZWN0T25Nb3Vz
ZURvd24oZXZlbnQpOwogICAgIH0KIAogICAgIHBvcHVsYXRlQ29udGV4dE1lbnUoY29udGV4dE1l
bnUsIGV2ZW50KQogICAgIHsKLSAgICAgICAgbGV0IGRpc2FibGVkID0gdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5kaXNhYmxlZDsKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShkaXNhYmxl
ZCA/IFdJLlVJU3RyaW5nKCJFbmFibGUgUHJvZ3JhbSIpIDogV0kuVUlTdHJpbmcoIkRpc2FibGUg
UHJvZ3JhbSIpLCAoKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRp
c2FibGVkID0gIWRpc2FibGVkOwotICAgICAgICB9KTsKKyAgICAgICAgbGV0IGNvbnRleHRUeXBl
ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5jYW52YXMuY29udGV4dFR5cGU7CisgICAgICAgIGlm
IChjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IGNvbnRleHRU
eXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKSB7CisgICAgICAgICAgICBsZXQg
ZGlzYWJsZWQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc2FibGVkOworICAgICAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShkaXNhYmxlZCA/IFdJLlVJU3RyaW5nKCJFbmFibGUgUHJv
Z3JhbSIpIDogV0kuVUlTdHJpbmcoIkRpc2FibGUgUHJvZ3JhbSIpLCAoKSA9PiB7CisgICAgICAg
ICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKKyAg
ICAgICAgICAgIH0pOwogCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwor
ICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIH0KIAog
ICAgICAgICBzdXBlci5wb3B1bGF0ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7CiAg
ICAgfQo=
</data>
<flag name="commit-queue"
          id="394489"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378840</attachid>
            <date>2019-09-15 22:32:04 -0700</date>
            <delta_ts>2019-09-16 07:59:51 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>201675.diff</filename>
            <type>text/plain</type>
            <size>140689</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNv
dXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RT
aGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDY0YmNkZjNjNmNmLi5mOTJmNDk1ZDM4YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291
cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RTaGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDI4ICsxLDggQEAKLVRlc3QgY29tcGls
YXRpb24gb2Ygc2hhZGVycyBhZnRlciBiZWluZyBhdHRhY2hlZCB0byBhIHByb2dyYW0sIHdpdGgg
YW5kIHdpdGhvdXQgc3ludGF4IGVycm9ycy4KK0NvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnJlcXVl
c3RTaGFkZXJTb3VyY2UgY29tbWFuZC4KIAogCi09PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZh
cy5nZXRTaGFkZXJTb3VyY2UKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZS52ZXJ0ZXhTaGFkZXIKLQotICAgIHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAg
IGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOwotICAgIH0KLQotCi0tLSBS
dW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuZnJhZ21lbnRTaGFk
ZXIKLQotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9pZCBtYWluKHZvaWQp
IHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOwotICAg
IH0KLQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2Uu
aW52YWxpZFByb2dyYW1JZAorPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291
cmNlLlByb2dyYW1JZC5JbnZhbGlkCiBQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KIEVy
cm9yOiBNaXNzaW5nIHByb2dyYW0gZm9yIGdpdmVuIHByb2dyYW1JZAogCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuaW52YWxpZFNoYWRlclR5cGUKLVBB
U1M6IFNob3VsZCBwcm9kdWNlIGFuIGVycm9yLgotRXJyb3I6IE1pc3Npbmcgc2hhZGVyIGZvciBn
aXZlbiBzaGFkZXJUeXBlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NTIzYWY0ZDg3ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNv
dXJjZS13ZWJnbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorV2ViR0wgdGVzdHMgZm9y
IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0
IHN1aXRlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTAorLS0gUnVubmluZyB0ZXN0
IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMLlZlcnRleAorCisgICAgdm9p
ZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAs
IDEuMCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZS5XZWJHTC5GcmFnbWVudAorCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEu
MCwgMS4wLCAxLjAsIDEuMCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52
YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5TaGFkZXJUeXBlLkludmFsaWQKK1BBU1M6IFNo
b3VsZCBwcm9kdWNlIGFuIGVycm9yLgorRXJyb3I6IFVua25vd24gc2hhZGVyVHlwZTogSU5WQUxJ
RF9TSEFERVJfVFlQRQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi43OWY3NDc0NjFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sCkBA
IC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNo
YWRlci94LXZlcnRleCI+CisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRp
b24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0
IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICAgIHBy
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworICAgIH0KKzwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgY3JlYXRlUHJvZ3JhbSgid2ViZ2wi
KTsKKyAgICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIiKTsK
KworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291
cmNlLldlYkdMIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJD
YW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5WZXJ0ZXgiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIlRlc3RzIHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEgcHJvZ3JhbSdzIHZl
cnRleCBzaGFkZXIuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1sw
XTsKKyAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAgICAgICAgIHJl
amVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291
cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0
ZXgpCisgICAgICAgICAgICAudGhlbigoe3NvdXJjZSwgZW50cnlQb2ludH0pID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAoZW50cnlQb2ludCkKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkVudHJ5IHBvaW50OiAiICsgZW50cnlQb2ludCk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coc291cmNlKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAu
dGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5h
ZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5X
ZWJHTC5GcmFnbWVudCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVzdGluZyB0
aGUgc291cmNlIGNvZGUgb2YgYSBwcm9ncmFtJ3MgZnJhZ21lbnQgc2hhZGVyLiIsCisgICAgICAg
IHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9
IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICBpZiAoIXNo
YWRlclByb2dyYW0pIHsKKyAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHBy
b2dyYW0iKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50
aWZpZXIsIENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQpCisgICAgICAgICAgICAudGhl
bigoe3NvdXJjZSwgZW50cnlQb2ludH0pID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnlQ
b2ludCkKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVudHJ5IHBvaW50
OiAiICsgZW50cnlQb2ludCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coc291
cmNlKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3Qp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5TaGFkZXJUeXBlLkludmFs
aWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5cGVzIHNob3VsZCBj
YXVzZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1z
WzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAgICAgICAgICAgICAg
cmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5cGUgPSAiSU5WQUxJ
RF9TSEFERVJfVFlQRSI7CisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291
cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yKSA9PiB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHBy
b2R1Y2UgYW4gZXJyb3IuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVy
cm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorPHA+
V2ViR0wgdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbAppbmRleCBhNjg5YzE2OTcyNS4uOTFlNjBlYTQ4NDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNv
dXJjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRl
clNvdXJjZS5odG1sCkBAIC0yLDY0ICsyLDEyIEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hh
ZGVyL3gtdmVydGV4Ij4KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlv
biA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKLSAgICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQg
aWQ9ImZyYWdtZW50LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci0gICAgcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBn
bF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAsIDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+
CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIp
OwotICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0ZXgtc2hhZGVyIiwgImZyYWdtZW50LXNoYWRlciIpOwot
Ci0gICAgcnVuVGVzdCgpOwotfQotCiBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFzLmdldFNoYWRlclNvdXJjZSIp
OworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFz
LnJlcXVlc3RTaGFkZXJTb3VyY2UiKTsKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAg
ICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLnZlcnRleFNoYWRlciIsCi0gICAg
ICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVzdGluZyB0aGUgc291cmNlIGNvZGUgb2YgYSBw
cm9ncmFtJ3MgdmVydGV4IHNoYWRlci4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRl
clByb2dyYW1zWzBdOwotICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAg
ICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVl
c3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLlZlcnRleCkKLSAgICAgICAgICAgIC50aGVuKCh7Y29udGVudH0pID0+IEluc3BlY3Rv
clRlc3QubG9nKGNvbnRlbnQpKQotICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsK
LSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBu
YW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuZnJhZ21lbnRTaGFkZXIiLAotICAgICAg
ICBkZXNjcmlwdGlvbjogIlRlc3RzIHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEgcHJv
Z3JhbSdzIGZyYWdtZW50IHNoYWRlci4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRl
clByb2dyYW1zWzBdOwotICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAg
ICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVl
c3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLkZyYWdtZW50KQotICAgICAgICAgICAgLnRoZW4oKHtjb250ZW50fSkgPT4gSW5zcGVj
dG9yVGVzdC5sb2coY29udGVudCkpCi0gICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3Qp
OwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAg
IG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5pbnZhbGlkUHJvZ3JhbUlkIiwKKyAg
ICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLlByb2dyYW1JZC5JbnZhbGlk
IiwKICAgICAgICAgZGVzY3JpcHRpb246ICJJbnZhbGlkIHByb2dyYW0gaWRlbnRpZmllcnMgc2hv
dWxkIGNhdXNlIGFuIGVycm9yLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAg
ICAgICAgICAgICBjb25zdCBwcm9ncmFtSWQgPSAiSU5WQUxJRF9QUk9HUkFNX0lEIjsKQEAgLTcy
LDMwICsyMCwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB9CiAgICAgfSk7CiAKLSAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRl
clNvdXJjZS5pbnZhbGlkU2hhZGVyVHlwZSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxp
ZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCi0gICAgICAgIHRlc3QocmVz
b2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZh
c01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAgICAgICAgICBpZiAoIXNoYWRlclByb2dy
YW0pIHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29u
c3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElEX1NIQURFUl9UWVBFIjsKLSAgICAgICAgICAgIENhbnZh
c0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFk
ZXJUeXBlLCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoZXJyb3IsICJTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4iKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQogICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9ImxvYWQoKSI+Ci0gICAgPHA+VGVzdCBjb21waWxhdGlvbiBvZiBzaGFkZXJzIGFm
dGVyIGJlaW5nIGF0dGFjaGVkIHRvIGEgcHJvZ3JhbSwgd2l0aCBhbmQgd2l0aG91dCBzeW50YXgg
ZXJyb3JzLjwvcD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkNvbW1vbiB0ZXN0cyBm
b3IgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UgY29tbWFuZC48L3A+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci1leHBlY3RlZC50eHQKaW5kZXggOGYzZmVlOWUxNDAuLmNlMzdlOGU2YTljIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQu
dHh0CkBAIC0xLDM4ICsxLDggQEAKLUNPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVSUk9SOiAwOjE6
ICdJTlZBTElEJyA6IHN5bnRheCBlcnJvcgotQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogRVJST1I6
IDA6MTogJ0lOVkFMSUQnIDogc3ludGF4IGVycm9yCi1UZXN0IGNvbXBpbGF0aW9uIG9mIHNoYWRl
cnMgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQgdG8gYSBwcm9ncmFtLCB3aXRoIGFuZCB3aXRob3V0IHN5
bnRheCBlcnJvcnMuCitDb21tb24gdGVzdHMgZm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29tbWFu
ZC4KIAogCiA9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy51cGRhdGVTaGFkZXIKLS0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLnZlcnRleFNoYWRlclZhbGlkCi0K
LSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSwgMiwg
MywgNCk7Ci0gICAgfQotCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hh
ZGVyLmZyYWdtZW50U2hhZGVyVmFsaWQKLQotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owot
Ci0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjEs
IDAuMiwgMC4zLCAwLjQpOwotICAgIH0KLQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnVwZGF0ZVNoYWRlci5pbnZhbGlkUHJvZ3JhbUlkCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2Fu
dmFzLnVwZGF0ZVNoYWRlci5Qcm9ncmFtSWQuSW52YWxpZAogUEFTUzogU2hvdWxkIHByb2R1Y2Ug
YW4gZXJyb3IuCiBFcnJvcjogTWlzc2luZyBwcm9ncmFtIGZvciBnaXZlbiBwcm9ncmFtSWQKIAot
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuaW52YWxpZFNoYWRlclR5
cGUKLVBBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGVycm9yLgotRXJyb3I6IE1pc3Npbmcgc2hhZGVy
IGZvciBnaXZlbiBzaGFkZXJUeXBlCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBk
YXRlU2hhZGVyLmludmFsaWRWZXJ0ZXhTaGFkZXJTb3VyY2UKLVBBU1M6IFNob3VsZCBwcm9kdWNl
IGVycm9yLgotRXJyb3I6IEZhaWxlZCB0byB1cGRhdGUgc2hhZGVyCi0KLS0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRGcmFnbWVudFNoYWRlclNvdXJjZQot
UEFTUzogU2hvdWxkIHByb2R1Y2UgZXJyb3IuCi1FcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFk
ZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFk
ZXItd2ViZ2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRh
dGVTaGFkZXItd2ViZ2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yYmJiYTcyMThmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDM0IEBACitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBFUlJPUjogMDoxOiAnSU5WQUxJRCcgOiBz
eW50YXggZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVSUk9SOiAwOjE6ICdJTlZBTElE
JyA6IHN5bnRheCBlcnJvcgorV2ViR0wgdGVzdHMgZm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29t
bWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy51cGRhdGVTaGFkZXIuV2Vi
R0wKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRl
eC5WYWxpZAorCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KDEsIDIsIDMsIDQpOworICAgIH0KKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnVwZGF0ZVNoYWRlci5XZWJHTC5GcmFnbWVudC5WYWxpZAorCisgICAgcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3Ig
PSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5JbnZhbGlkCitQQVNTOiBTaG91
bGQgcHJvZHVjZSBlcnJvci4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZl
biBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52YWxpZAorUEFTUzogU2hvdWxk
IHByb2R1Y2UgZXJyb3IuCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4g
c2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlNoYWRlclR5cGUuSW52YWxpZAorUEFTUzogU2hvdWxk
IHByb2R1Y2UgYW4gZXJyb3IuCitFcnJvcjogVW5rbm93biBzaGFkZXJUeXBlOiBJTlZBTElEX1NI
QURFUl9UWVBFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci13ZWJnbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li41MjBlZmNhOTc0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLmh0bWwKQEAgLTAsMCArMSwxMzMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisgICAgdm9p
ZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAs
IDEuMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
CisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAs
IDEuMCwgMS4wLCAxLjApOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxv
YWQoKSB7CisgICAgY3JlYXRlUHJvZ3JhbSgid2ViZ2wiKTsKKyAgICBsaW5rUHJvZ3JhbSgidmVy
dGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIiKTsKKworICAgIHJ1blRlc3QoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFz
eW5jU3VpdGUoIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wiKTsKKworICAgIGZ1bmN0aW9uIHZh
bGlkU291cmNlVGVzdCh7bmFtZSwgc2hhZGVyVHlwZSwgc291cmNlfSkgeworICAgICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNh
bnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICAgICAgaWYgKCFzaGFk
ZXJQcm9ncmFtKSB7CisgICAgICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIg
cHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBsZXQgcHJvZ3JhbUlkID0gc2hhZGVyUHJvZ3JhbS5pZGVudGlm
aWVyOworCisgICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHByb2dyYW1J
ZCwgc2hhZGVyVHlwZSwgc291cmNlKQorICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IENhbnZh
c0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2UocHJvZ3JhbUlkLCBzaGFkZXJUeXBlKSkKKyAgICAg
ICAgICAgICAgICAudGhlbigoe3NvdXJjZSwgZW50cnlQb2ludH0pID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGVudHJ5UG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRW50cnkgcG9pbnQ6ICIgKyBlbnRyeVBvaW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coc291cmNlKTsKKyAgICAgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIHZhbGlkU291cmNlVGVzdCh7CisgICAgICAgIG5hbWU6ICJD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5WYWxpZCIsCisgICAgICAgIHNoYWRlclR5
cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAorICAgICAgICBzb3VyY2U6IGAKKyAg
ICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSwgMiwgMywg
NCk7CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIHZhbGlkU291cmNlVGVzdCh7CisgICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLkZyYWdtZW50LlZhbGlkIiwKKyAgICAg
ICAgc2hhZGVyVHlwZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwKKyAgICAgICAg
c291cmNlOiBgCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2b2lkIG1haW4o
dm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7
CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIGludmFsaWRTb3VyY2VUZXN0KHtu
YW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFk
ZXJQcm9ncmFtc1swXTsKKyAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNo
YWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGVycm9yLiIpOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaW52YWxpZFNvdXJjZVRlc3Qoewor
ICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5WZXJ0ZXguSW52YWxpZCIs
CisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAorICAg
ICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICB9KTsKKworICAgIGludmFsaWRTb3VyY2VUZXN0
KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52
YWxpZCIsCisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21l
bnQsCisgICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAorICAgIH0pOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5TaGFk
ZXJUeXBlLkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5
cGVzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNo
YWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAg
ICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5
cGUgPSAiSU5WQUxJRF9TSEFERVJfVFlQRSI7CisgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSAi
SU5WQUxJRF9TT1VSQ0UiOworICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHNo
YWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJyb3IpID0+IHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXJyb3IsICJTaG91bGQg
cHJvZHVjZSBhbiBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Cis8
cD5XZWJHTCB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci5odG1sCmluZGV4IGU0OWFkMmIzMTNjLi43YjBhNGNmZjkwZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sCkBAIC0yLDc0ICsyLDEyIEBACiA8
aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZl
cnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLSAgICB2b2lkIG1haW4odm9p
ZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKLSAg
ICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImZyYWdtZW50LXNoYWRlciIgdHlwZT0ieC1zaGFk
ZXIveC1mcmFnbWVudCI+Ci0gICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2b2lk
IG1haW4odm9pZCkgewotICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAs
IDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9hZCgpIHsKLSAg
ICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIpOwotICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0ZXgtc2hhZGVy
IiwgImZyYWdtZW50LXNoYWRlciIpOwotCi0gICAgcnVuVGVzdCgpOwotfQotCiBmdW5jdGlvbiB0
ZXN0KCkgewogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgi
Q2FudmFzLnVwZGF0ZVNoYWRlciIpOwogCi0gICAgZnVuY3Rpb24gdmFsaWRTb3VyY2VUZXN0KHtu
YW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7Ci0gICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
LSAgICAgICAgICAgIG5hbWUsCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFk
ZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICAgIGxldCBwcm9ncmFtSWQgPSBzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXI7Ci0KLSAgICAgICAg
ICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIocHJvZ3JhbUlkLCBzaGFkZXJUeXBlLCBz
b3VyY2UpCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gQ2FudmFzQWdlbnQucmVxdWVzdFNo
YWRlclNvdXJjZShwcm9ncmFtSWQsIHNoYWRlclR5cGUpKQotICAgICAgICAgICAgICAgIC50aGVu
KCh7Y29udGVudH0pID0+IEluc3BlY3RvclRlc3QubG9nKGNvbnRlbnQpKQotICAgICAgICAgICAg
ICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwot
ICAgIH0KLQotICAgIHZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBk
YXRlU2hhZGVyLnZlcnRleFNoYWRlclZhbGlkIiwKLSAgICAgICAgc2hhZGVyVHlwZTogQ2FudmFz
QWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgsCi0gICAgICAgIHNvdXJjZTogYAotICAgIHZvaWQgbWFp
bih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLCAyLCAzLCA0KTsKLSAgICB9
Ci1gLAotICAgIH0pOwotCi0gICAgdmFsaWRTb3VyY2VUZXN0KHsKLSAgICAgICAgbmFtZTogIkNh
bnZhcy51cGRhdGVTaGFkZXIuZnJhZ21lbnRTaGFkZXJWYWxpZCIsCi0gICAgICAgIHNoYWRlclR5
cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsCi0gICAgICAgIHNvdXJjZTogYAot
ICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAg
ICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjEsIDAuMiwgMC4zLCAwLjQpOwotICAgIH0KLWAs
Ci0gICAgfSk7Ci0KICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52
YXMudXBkYXRlU2hhZGVyLmludmFsaWRQcm9ncmFtSWQiLAorICAgICAgICBuYW1lOiAiQ2FudmFz
LnVwZGF0ZVNoYWRlci5Qcm9ncmFtSWQuSW52YWxpZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
SW52YWxpZCBwcm9ncmFtIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAogICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgY29uc3QgcHJvZ3JhbUlk
ID0gIklOVkFMSURfUFJPR1JBTV9JRCI7CkBAIC04Myw2MiArMjEsMTEgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICAgICAgfQogICAgIH0pOwogCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAg
ICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkU2hhZGVyVHlwZSIsCi0gICAg
ICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNlIGFuIGVy
cm9yLiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
c2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAg
ICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1p
c3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgY29uc3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElEX1NIQURFUl9U
WVBFIjsKLSAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9ICJJTlZBTElEX1NPVVJDRSI7Ci0gICAg
ICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVy
LCBzaGFkZXJUeXBlLCBzb3VyY2UsIChlcnJvcikgPT4gewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGFuIGVycm9yLiIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKLSAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAg
IH0pOwotCi0gICAgZnVuY3Rpb24gaW52YWxpZFNvdXJjZVRlc3Qoe25hbWUsIHNoYWRlclR5cGUs
IHNvdXJjZX0pIHsKLSAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFt
ZSwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAg
bGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwot
ICAgICAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAgICAgICAgICAg
ICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQu
dXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNl
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGVycm9yLCAiU2hvdWxkIHByb2R1Y2UgZXJyb3IuIik7Ci0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBpbnZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJD
YW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRWZXJ0ZXhTaGFkZXJTb3VyY2UiLAotICAgICAgICBz
aGFkZXJUeXBlOiBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCwKLSAgICAgICAgc291cmNl
OiAiSU5WQUxJRCIsCi0gICAgfSk7Ci0KLSAgICBpbnZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRGcmFnbWVudFNoYWRlclNvdXJjZSIs
Ci0gICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsCi0g
ICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAotICAgIH0pOwotCiAgICAgc3VpdGUucnVuVGVzdENh
c2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9h
ZCgpIj4KLSAgICA8cD5UZXN0IGNvbXBpbGF0aW9uIG9mIHNoYWRlcnMgYWZ0ZXIgYmVpbmcgYXR0
YWNoZWQgdG8gYSBwcm9ncmFtLCB3aXRoIGFuZCB3aXRob3V0IHN5bnRheCBlcnJvcnMuPC9wPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+Q29tbW9uIHRlc3RzIGZvciBDYW52YXMudXBk
YXRlU2hhZGVyIGNvbW1hbmQuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlYTc4Njg0NWJiMy4uYWMzOTI0ZjUwZWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDAwLDEy
ICsyMDAwLDEzIEBAIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1p
dC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItc25hcHNo
b3RzLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wu
aHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRt
bCBbIFNraXAgXQotaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwgWyBT
a2lwIF0KK2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sIFsg
U2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwgWyBTa2lw
IF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwgWyBTa2lwIF0K
IGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWwgWyBT
a2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsMi5o
dG1sIFsgU2tpcCBdCi1pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sIFsgU2tpcCBd
CitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC5odG1sIFsgU2tpcCBdCisKICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMjIyMjIyMjIyAgICAgICAgICBFbmQgV2Vi
R0wgSXNzdWVzICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL0NhbnZhcy5qc29uCmluZGV4IDc5OGI5OTFjZDJiLi45ZmNiYTJkODA3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMu
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZh
cy5qc29uCkBAIC0xOSwxMSArMTksMTUgQEAKICAgICAgICAgICAgICJlbnVtIjogWyJjYW52YXMt
MmQiLCAiYml0bWFwcmVuZGVyZXIiLCAid2ViZ2wiLCAid2ViZ2wyIiwgIndlYmdwdSJdLAogICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGJh
Y2tpbmcgdGhlIGNhbnZhcyBlbGVtZW50LiIKICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImlkIjogIlByb2dyYW1UeXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIs
CisgICAgICAgICAgICAiZW51bSI6IFsiY29tcHV0ZSIsICJyZW5kZXIiXQorICAgICAgICB9LAog
ICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiU2hhZGVyVHlwZSIsCiAgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgImVudW0iOiBbImZyYWdtZW50IiwgInZlcnRl
eCJdLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNoYWRlciB0eXBlLiBXZWJHTCBzdXBw
b3J0cyB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcnMuIgorICAgICAgICAgICAgImVudW0iOiBb
ImNvbXB1dGUiLCAiZnJhZ21lbnQiLCAidmVydGV4Il0KICAgICAgICAgfSwKICAgICAgICAgewog
ICAgICAgICAgICAgImlkIjogIkNvbnRleHRBdHRyaWJ1dGVzIiwKQEAgLTEzNiw3ICsxNDAsOCBA
QAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2hhZGVyVHlwZSIsICIkcmVmIjogIlNoYWRl
clR5cGUiIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnQiLCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImVudHJ5UG9pbnQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpAQCAt
MTQ1LDcgKzE1MCw4IEBACiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInByb2dyYW1JZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNoYWRlclR5cGUiLCAiJHJlZiI6ICJTaGFkZXJUeXBlIiB9
LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3RyaW5nIiB9
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbnRyeVBvaW50IiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAg
IHsKQEAgLTIyMywxNCArMjI5LDE1IEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjog
InByb2dyYW1DcmVhdGVkIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCIsICJkZXNjcmlw
dGlvbiI6ICJDYW52YXMgaWRlbnRpZmllci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3Jh
bSBpZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAi
JHJlZiI6ICJDYW52YXNJZCJ9ICwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1J
ZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBy
b2dyYW1UeXBlIiwgIiRyZWYiOiAiUHJvZ3JhbVR5cGUiIH0KICAgICAgICAgICAgIF0KICAgICAg
ICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3JhbURlbGV0ZWQiLAog
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJw
cm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3JhbSBp
ZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkIiwgIiRy
ZWYiOiAiUHJvZ3JhbUlkIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNw
cAppbmRleCA3N2VjY2JkNzIzOS4uMTIwM2RjZTJhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcApAQCAtNTksMjEgKzU5
LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIFdITFNMIHsKIAotc3RydWN0
IFNoYWRlck1vZHVsZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0K
LSAgICBTaGFkZXJNb2R1bGUoY29uc3QgU3RyaW5nJiB3aGxzbFNvdXJjZSkKLSAgICAgICAgOiB3
aGxzbFNvdXJjZSh3aGxzbFNvdXJjZSkKLSAgICB7Ci0gICAgfQotCi0gICAgU3RyaW5nIHdobHNs
U291cmNlOwotfTsKLQorU2hhZGVyTW9kdWxlOjpTaGFkZXJNb2R1bGUoY29uc3QgU3RyaW5nJiB3
aGxzbFNvdXJjZSkKKyAgICA6IHdobHNsU291cmNlKHdobHNsU291cmNlKQorewogfQogCi19Cit9
IC8vIG5hbWVzcGFjZSBXSExTTAorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFj
ZSBzdGQgewogCkBAIC04Miw3ICs3NSw3IEBAIHZvaWQgZGVmYXVsdF9kZWxldGU8V2ViQ29yZTo6
V0hMU0w6OlNoYWRlck1vZHVsZT46Om9wZXJhdG9yKCkoV2ViQ29yZTo6V0hMU0w6OlNoCiAgICAg
ZGVsZXRlIHNoYWRlck1vZHVsZTsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2Ugc3RkCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV0hMU0wvV0hMU0xQcmVwYXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTFByZXBhcmUuaAppbmRleCA2OTdmOWJlZDVhMC4uMDhlYTM5OGVkM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5o
CkBAIC0zOCwxMiArMzgsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV0hM
U0wgewogCi0vLyBIaWRlIHRoZSBjb250ZW50cyBvZiB0aGUgU2hhZGVyTW9kdWxlLiBDbGllbnRz
IG9mIHRoZSBjb21waWxlciBzaG91bGRuJ3QgY2FyZSB3aGF0J3MgaW5zaWRlIGl0Lgotc3RydWN0
IFNoYWRlck1vZHVsZTsKK3N0cnVjdCBTaGFkZXJNb2R1bGUgeworICAgIFdURl9NQUtFX1NUUlVD
VF9GQVNUX0FMTE9DQVRFRDsKIAotfQorICAgIFNoYWRlck1vZHVsZShjb25zdCBTdHJpbmcmIHdo
bHNsU291cmNlKTsKIAotfQorICAgIFN0cmluZyB3aGxzbFNvdXJjZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdITFNMCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIHN0ZCB7
CiAKQEAgLTUxLDcgKzU2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgZGVmYXVsdF9kZWxldGU8V2Vi
Q29yZTo6V0hMU0w6OlNoYWRlck1vZHVsZT4gewogICAgIHZvaWQgb3BlcmF0b3IoKShXZWJDb3Jl
OjpXSExTTDo6U2hhZGVyTW9kdWxlKikgY29uc3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBz
dGQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCBjZDExZWNiYjNl
Yy4uNjljNjYxNDIyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcApAQCAtMjgsMTkgKzI4LDQ0IEBACiAKICNp
ZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCisjaW5j
bHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUo
UmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVy
cm9yU2NvcGVzKQorUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lOjpjcmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxp
bmU+JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgT3B0aW9uYWw8V2Vi
R1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpLCBlcnJv
clNjb3BlcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVUNvbXB1dGVQaXBlbGlu
ZShkZXZpY2UsIFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3BlcywgY29tcHV0ZVNoYWRlcikp
OwogfQogCi1XZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShSZWZQ
dHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JT
Y29wZXMpCi0gICAgOiBHUFVPYmplY3RCYXNlKG1ha2VSZWYoZXJyb3JTY29wZXMpKQotICAgICwg
bV9jb21wdXRlUGlwZWxpbmUgeyBXVEZNb3ZlKHBpcGVsaW5lKSB9CitXZWJHUFVDb21wdXRlUGlw
ZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRy
PEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2Nv
cGVzLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcikK
KyAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmljZSwgZXJyb3JTY29wZXMpCisgICAgLCBtX2NvbXB1
dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKKyAgICAsIG1fY29tcHV0ZVNoYWRlcihjb21w
dXRlU2hhZGVyKQogewogfQogCitXZWJHUFVDb21wdXRlUGlwZWxpbmU6On5XZWJHUFVDb21wdXRl
UGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNv
bXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCit7CisgICAgaWYgKG1fY29tcHV0ZVBp
cGVsaW5lKSB7CisgICAgICAgIGlmIChtX2NvbXB1dGVTaGFkZXIpIHsKKyAgICAgICAgICAgIGlm
IChhdXRvJiB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlID0gbV9jb21wdXRlU2hhZGVyLnZhbHVl
KCkubW9kdWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGdwdUNvbXB1dGVTaGFkZXJN
b2R1bGUgPSB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkgeworICAgICAgICAg
ICAgICAgICAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IgY29tcHV0ZVN0YWdlKG1h
a2VSZWYoKmdwdUNvbXB1dGVTaGFkZXJNb2R1bGUpLCB7IG1fY29tcHV0ZVNoYWRlci52YWx1ZSgp
LmVudHJ5UG9pbnQgfSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2NvbXB1dGVQaXBl
bGluZS0+cmVjb21waWxlKGRldmljZS5kZXZpY2UoKSwgY29tcHV0ZVN0YWdlKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
R1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21w
dXRlUGlwZWxpbmUuaAppbmRleCAyZWQ3Yzk4MDRiYS4uMzQ1YzllMmRmNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5o
CkBAIC0yNywyNCArMjcsMzcgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJH
UFVDb21wdXRlUGlwZWxpbmUuaCIKLSNpbmNsdWRlICJHUFVPYmplY3RCYXNlLmgiCi0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXZWJHUFVDb21w
dXRlUGlwZWxpbmUgOiBwdWJsaWMgR1BVT2JqZWN0QmFzZSB7CitjbGFzcyBHUFVDb21wdXRlUGlw
ZWxpbmU7CitjbGFzcyBHUFVFcnJvclNjb3BlczsKK2NsYXNzIFdlYkdQVURldmljZTsKKworY2xh
c3MgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lIGZpbmFsIDogcHVibGljIFdlYkdQVVBpcGVsaW5lIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlKFJl
ZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJik7CisgICAgdmlydHVh
bCB+V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKCk7CisKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1
dGVQaXBlbGluZT4gY3JlYXRlKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxp
bmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRh
dGE+IGNvbXB1dGVTaGFkZXIpOworCisgICAgYm9vbCBpc0NvbXB1dGVQaXBlbGluZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZSogY29tcHV0
ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KKyAg
ICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29tcHV0ZVNoYWRlcjsgfQorCisgICAgYm9vbCByZWNvbXBpbGUoY29u
c3QgV2ViR1BVRGV2aWNlJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
KFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJik7CisgICAgV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxp
bmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRh
dGE+IGNvbXB1dGVTaGFkZXIpOwogCiAgICAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gbV9j
b21wdXRlUGlwZWxpbmU7CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+
IG1fY29tcHV0ZVNoYWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19XRUJHUFVQSVBFTElORShXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlw
ZWxpbmUsIGlzQ29tcHV0ZVBpcGVsaW5lKCkpCisKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQ
aXBlbGluZS5pZGwKaW5kZXggYTU1MmJhOTJmZDIuLjRiOGE3N2U0ODY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5p
ZGwKQEAgLTI3LDcgKzI3LDYgQEAKIFsKICAgICBDb25kaXRpb25hbD1XRUJHUFUsCiAgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAg
ICBJbnRlcmZhY2VOYW1lPUdQVUNvbXB1dGVQaXBlbGluZQogXSBpbnRlcmZhY2UgV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmNwcAppbmRleCA1ZWJmMDgzODVhNi4uYjY2NWY4M2U1MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMzksOCArMzks
MTAgQEAKICNpbmNsdWRlICJHUFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BVQnVmZmVy
RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVUNvbW1hbmRCdWZmZXIuaCIKKyNpbmNsdWRlICJH
UFVDb21wdXRlUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yLmgiCiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5j
bHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVTYW1wbGVyLmgiCiAjaW5jbHVkZSAiR1BVU2FtcGxl
ckRlc2NyaXB0b3IuaCIKQEAgLTIwOCwyOCArMjEwLDQ2IEBAIFJlZjxXZWJHUFVTaGFkZXJNb2R1
bGU+IFdlYkdQVURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVVNoYWRlck1v
ZHVsCiAgICAgcmV0dXJuIFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFdURk1vdmUobW9kdWxl
KSk7CiB9CiAKLVJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3Jl
YXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQogewogICAgIG1fZXJyb3JTY29wZXMtPnNldEVycm9yUHJlZml4KCJHUFVEZXZp
Y2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUoKTogIik7CiAKICAgICBhdXRvIGdwdURlc2NyaXB0b3Ig
PSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcihtX2Vycm9y
U2NvcGVzKTsKICAgICBpZiAoIWdwdURlc2NyaXB0b3IpCi0gICAgICAgIHJldHVybiBXZWJHUFVS
ZW5kZXJQaXBlbGluZTo6Y3JlYXRlKG51bGxwdHIsIG1fZXJyb3JTY29wZXMpOworICAgICAgICBy
ZXR1cm4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwgbV9lcnJv
clNjb3BlcywgV1RGOjpudWxsb3B0LCBXVEY6Om51bGxvcHQpOwogCi0gICAgYXV0byBwaXBlbGlu
ZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVSZW5kZXJQaXBlbGluZSgqZ3B1RGVzY3JpcHRvciwgbV9l
cnJvclNjb3Blcyk7Ci0gICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV1RG
TW92ZShwaXBlbGluZSksIG1fZXJyb3JTY29wZXMpOworICAgIGF1dG8gZ3B1UGlwZWxpbmUgPSBt
X2RldmljZS0+dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IsIG1fZXJyb3JT
Y29wZXMpOworCisgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEgdmVydGV4U2hhZGVyID0g
eyBkZXNjcmlwdG9yLnZlcnRleFN0YWdlLm1vZHVsZSwgZGVzY3JpcHRvci52ZXJ0ZXhTdGFnZS5l
bnRyeVBvaW50IH07CisKKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4g
ZnJhZ21lbnRTaGFkZXI7CisgICAgaWYgKGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZSkKKyAgICAg
ICAgZnJhZ21lbnRTaGFkZXIgPSB7IHsgZGVzY3JpcHRvci5mcmFnbWVudFN0YWdlLnZhbHVlKCku
bW9kdWxlLCBkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UudmFsdWUoKS5lbnRyeVBvaW50IH0gfTsK
KworICAgIGF1dG8gd2ViR1BVUGlwZWxpbmUgPSBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRl
KCp0aGlzLCBXVEZNb3ZlKGdwdVBpcGVsaW5lKSwgbV9lcnJvclNjb3BlcywgdmVydGV4U2hhZGVy
LCBmcmFnbWVudFNoYWRlcik7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENy
ZWF0ZVdlYkdQVVBpcGVsaW5lKCp0aGlzLCB3ZWJHUFVQaXBlbGluZS5nZXQoKSk7CisKKyAgICBy
ZXR1cm4gd2ViR1BVUGlwZWxpbmU7CiB9CiAKLVJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdl
YkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVQ29tcHV0ZVBpcGVs
aW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIG1fZXJyb3JTY29wZXMt
PnNldEVycm9yUHJlZml4KCJHUFVEZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCk6ICIpOwog
CiAgICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRv
cikKLSAgICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKG51bGxwdHIs
IG1fZXJyb3JTY29wZXMpOworICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpj
cmVhdGUoKnRoaXMsIG51bGxwdHIsIG1fZXJyb3JTY29wZXMsIFdURjo6bnVsbG9wdCk7CiAKLSAg
ICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZSgqZ3B1
RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7Ci0gICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBl
bGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVzKTsKKyAgICBhdXRv
IGdwdVBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUNvbXB1dGVQaXBlbGluZSgqZ3B1RGVz
Y3JpcHRvciwgbV9lcnJvclNjb3Blcyk7CisKKyAgICBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0
YSBjb21wdXRlU2hhZGVyID0geyBkZXNjcmlwdG9yLmNvbXB1dGVTdGFnZS5tb2R1bGUsIGRlc2Ny
aXB0b3IuY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQgfTsKKworICAgIGF1dG8gd2ViR1BVUGlwZWxp
bmUgPSBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShncHVQaXBl
bGluZSksIG1fZXJyb3JTY29wZXMsIGNvbXB1dGVTaGFkZXIpOworCisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZSgqdGhpcywgd2ViR1BVUGlwZWxp
bmUuZ2V0KCkpOworCisgICAgcmV0dXJuIHdlYkdQVVBpcGVsaW5lOwogfQogCiBSZWY8V2ViR1BV
Q29tbWFuZEVuY29kZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tbWFuZEVuY29kZXIoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAppbmRleCBk
OThmMjNjNjczMy4uMjFiNTQxN2MyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5oCkBAIC05OSw4ICs5OSw4IEBAIHB1YmxpYzoKICAgICBSZWY8V2Vi
R1BVQmluZEdyb3VwPiBjcmVhdGVCaW5kR3JvdXAoY29uc3QgV2ViR1BVQmluZEdyb3VwRGVzY3Jp
cHRvciYpIGNvbnN0OwogCiAgICAgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVy
TW9kdWxlKGNvbnN0IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKLSAgICBS
ZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpIGNvbnN0OwotICAgIFJlZjxXZWJHUFVDb21wdXRl
UGlwZWxpbmU+IGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yJikgY29uc3Q7CisgICAgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVh
dGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKTsK
KyAgICBSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29u
c3QgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYpOwogCiAgICAgUmVmPFdlYkdQVUNv
bW1hbmRFbmNvZGVyPiBjcmVhdGVDb21tYW5kRW5jb2RlcigpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVhZWU4YmQ4NDYwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViR1BVUGlwZWxpbmUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVF
cnJvclNjb3Blcy5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2Uu
aCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0hhc2hNYXA8V2ViR1BVUGlwZWxpbmUqLCBXZWJHUFVEZXZpY2Uq
PiYgV2ViR1BVUGlwZWxpbmU6Omluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmlj
ZSo+PiBpbnN0YW5jZXM7CisgICAgcmV0dXJuIGluc3RhbmNlczsKK30KKworTG9jayYgV2ViR1BV
UGlwZWxpbmU6Omluc3RhbmNlc011dGV4KCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJv
eWVkPExvY2s+IG11dGV4OworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplTXV0
ZXg7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU11dGV4LCBbXSB7CisgICAgICAgIG11
dGV4LmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBtdXRleC5nZXQoKTsKK30KKwor
V2ViR1BVUGlwZWxpbmU6OldlYkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBHUFVF
cnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCisgICAgOiBHUFVPYmplY3RCYXNlKG1ha2VSZWYoZXJy
b3JTY29wZXMpKQorICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGRldmljZS5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4
KCkpOworICAgIGluc3RhbmNlcyhsb2NrKS5hZGQodGhpcywgJmRldmljZSk7Cit9CisKK1dlYkdQ
VVBpcGVsaW5lOjp+V2ViR1BVUGlwZWxpbmUoKQoreworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZSgqdGhpcyk7CisKKyAgICB7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICAgICAgQVNTRVJUKGluc3Rh
bmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAgICAgIGluc3RhbmNlcyhsb2NrKS5yZW1v
dmUodGhpcyk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVBpcGVsaW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY2OGUx
ZWQ5MjJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmUuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVT2JqZWN0QmFzZS5oIgor
I2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
K2NsYXNzIEdQVUVycm9yU2NvcGVzOworY2xhc3MgV2ViR1BVRGV2aWNlOworCitjbGFzcyBXZWJH
UFVQaXBlbGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5XZWJHUFVQaXBlbGluZSgpOworCisgICAgc3RhdGljIEhhc2hNYXA8V2ViR1BVUGlwZWxpbmUq
LCBXZWJHUFVEZXZpY2UqPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBzdGF0
aWMgTG9jayYgaW5zdGFuY2VzTXV0ZXgoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBp
cGVsaW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb21w
dXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsgfQorCisgICAgc3RydWN0IFNoYWRlckRhdGEgeworICAgICAg
ICBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBtb2R1bGU7CisgICAgICAgIFN0cmluZyBlbnRy
eVBvaW50OworICAgIH07CisgICAgdmlydHVhbCBib29sIHJlY29tcGlsZShjb25zdCBXZWJHUFVE
ZXZpY2UmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZp
Y2UmLCBHUFVFcnJvclNjb3BlcyYpOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0VCR1BVUElQRUxJTkUoVG9WYWx1ZVR5cGVO
YW1lLCBwcmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5
cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldlYkdQVVBp
cGVsaW5lJiBwaXBlbGluZSkgeyByZXR1cm4gcGlwZWxpbmUucHJlZGljYXRlOyB9IFwKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVT
dGFnZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBy
b2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oCmluZGV4IGZmYmM1YjgxMWQzLi4xYTQ0MTRhYWMx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3Jp
cHRvciA6IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvckJhc2UgewogICAgIE9wdGlvbmFs
PEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcj4gdHJ5Q3JlYXRlR1BVUHJvZ3JhbW1hYmxl
U3RhZ2VEZXNjcmlwdG9yKCkgY29uc3Q7CiAKLSAgICBSZWZQdHI8Y29uc3QgV2ViR1BVU2hhZGVy
TW9kdWxlPiBtb2R1bGU7CisgICAgUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCmluZGV4IDE3YWVkYzZkNWI2
Li5lYmVlZTFjMTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcApAQCAtMjgsMTkgKzI4LDUzIEBACiAKICNpZiBF
TkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNpbmNsdWRlICJH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQaXBl
bGluZS5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRl
ck1vZHVsZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdl
YkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBp
cGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCitSZWY8V2ViR1BVUmVuZGVyUGlw
ZWxpbmU+IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2Us
IFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVy
cm9yU2NvcGVzLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hh
ZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVUmVuZGVyUGlwZWxpbmUoV1RGTW92
ZShwaXBlbGluZSksIGVycm9yU2NvcGVzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUoZGV2aWNlLCBXVEZNb3ZlKHBpcGVsaW5lKSwgZXJyb3JTY29wZXMs
IHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpKTsKIH0KIAotV2ViR1BVUmVuZGVyUGlwZWxp
bmU6OldlYkdQVVJlbmRlclBpcGVsaW5lKFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBl
bGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQotICAgIDogR1BVT2JqZWN0QmFzZSht
YWtlUmVmKGVycm9yU2NvcGVzKSkKK1dlYkdQVVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQ
aXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYm
IHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMsIE9wdGlvbmFsPFdlYkdQVVBp
cGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcikKKyAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmlj
ZSwgZXJyb3JTY29wZXMpCiAgICAgLCBtX3JlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUp
KQorICAgICwgbV92ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVyKQorICAgICwgbV9mcmFnbWVudFNo
YWRlcihmcmFnbWVudFNoYWRlcikKIHsKIH0KIAorV2ViR1BVUmVuZGVyUGlwZWxpbmU6On5XZWJH
UFVSZW5kZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBXZWJHUFVSZW5kZXJQaXBlbGlu
ZTo6cmVjb21waWxlKGNvbnN0IFdlYkdQVURldmljZSYgZGV2aWNlKQoreworICAgIGlmIChtX3Jl
bmRlclBpcGVsaW5lKSB7CisgICAgICAgIGlmIChtX3ZlcnRleFNoYWRlcikgeworICAgICAgICAg
ICAgaWYgKGF1dG8mIHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hhZGVyLnZh
bHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGdwdVZlcnRleFNoYWRl
ck1vZHVsZSA9IHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZS0+bW9kdWxlKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlKG1h
a2VSZWYoKmdwdVZlcnRleFNoYWRlck1vZHVsZSksIHsgbV92ZXJ0ZXhTaGFkZXIudmFsdWUoKS5l
bnRyeVBvaW50IH0pOworICAgICAgICAgICAgICAgICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFi
bGVTdGFnZURlc2NyaXB0b3I+IGZyYWdtZW50U3RhZ2U7CisgICAgICAgICAgICAgICAgICAgIGlm
IChtX2ZyYWdtZW50U2hhZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byYg
d2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVyLnZhbHVlKCkubW9k
dWxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGdwdUZyYWdtZW50
U2hhZGVyTW9kdWxlID0gd2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFN0YWdlID0gR1BVUHJvZ3JhbW1h
YmxlU3RhZ2VEZXNjcmlwdG9yKG1ha2VSZWYoKmdwdUZyYWdtZW50U2hhZGVyTW9kdWxlKSwgeyBt
X2ZyYWdtZW50U2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9yZW5kZXJQaXBlbGluZS0+cmVjb21waWxlKGRldmljZS5kZXZpY2UoKSwgdmVydGV4U3Rh
Z2UsIGZyYWdtZW50U3RhZ2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaAppbmRleCA4ZjAwY2E2NjUw
Yy4uMTg4MTgwODFlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVJlbmRlclBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaApAQCAtMjcsMjQgKzI3LDM5IEBACiAKICNpZiBFTkFC
TEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiR1BVT2JqZWN0QmFzZS5oIgotI2luY2x1ZGUgIkdQVVJl
bmRlclBpcGVsaW5lLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgIldlYkdQ
VVBpcGVsaW5lLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNl
IHsKK2NsYXNzIEdQVVJlbmRlclBpcGVsaW5lOworY2xhc3MgR1BVRXJyb3JTY29wZXM7CitjbGFz
cyBXZWJHUFVEZXZpY2U7CisKK2NsYXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lIGZpbmFsIDogcHVi
bGljIFdlYkdQVVBpcGVsaW5lIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVVJlbmRl
clBpcGVsaW5lPiBjcmVhdGUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNj
b3BlcyYpOworICAgIHZpcnR1YWwgfldlYkdQVVJlbmRlclBpcGVsaW5lKCk7CisKKyAgICBzdGF0
aWMgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoV2ViR1BVRGV2aWNlJiwgUmVmUHRy
PEdQVVJlbmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYsIE9wdGlvbmFsPFdlYkdQVVBp
cGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcik7CisKKyAgICBib29sIGlzUmVuZGVyUGlwZWxp
bmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBjb25zdCBHUFVSZW5kZXJQaXBlbGlu
ZSogcmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclBpcGVsaW5lLmdldCgp
OyB9CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyOyB9CisgICAgT3B0aW9uYWw8V2ViR1BV
UGlwZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9m
cmFnbWVudFNoYWRlcjsgfQorCisgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNl
Jik7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVUmVuZGVyUGlwZWxpbmUoUmVmUHRyPEdQVVJlbmRl
clBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYpOworICAgIFdlYkdQVVJlbmRlclBpcGVsaW5l
KFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29w
ZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBP
cHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpOwogCiAg
ICAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBtX3JlbmRlclBpcGVsaW5lOworICAgIE9wdGlv
bmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBtX3ZlcnRleFNoYWRlcjsKKyAgICBPcHRp
b25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gbV9mcmFnbWVudFNoYWRlcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XRUJHUFVQ
SVBFTElORShXZWJDb3JlOjpXZWJHUFVSZW5kZXJQaXBlbGluZSwgaXNSZW5kZXJQaXBlbGluZSgp
KQorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbAppbmRleCBhOTg5ZmQ0MTBh
Yy4uYTliNDAwMGI2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwKQEAgLTI3LDcgKzI3LDYgQEAKIFsKICAgICBD
b25kaXRpb25hbD1XRUJHUFUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBJbnRlcmZhY2VOYW1lPUdQVVJlbmRlclBpcGVs
aW5lCiBdIGludGVyZmFjZSBXZWJHUFVSZW5kZXJQaXBlbGluZSB7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaAppbmRleCA4Mzc3
MDUzZDFhYy4uNzRhYWRkYjUzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFdlYkdQ
VVNoYWRlck1vZHVsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNoYWRlck1vZHVsZT4gewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVhdGUoUmVmUHRy
PEdQVVNoYWRlck1vZHVsZT4mJik7CiAKLSAgICBjb25zdCBHUFVTaGFkZXJNb2R1bGUqIG1vZHVs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlLmdldCgpOyB9CisgICAgR1BVU2hhZGVyTW9kdWxl
KiBtb2R1bGUoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZS5nZXQoKTsgfQogCiBwcml2YXRlOgog
ICAgIFdlYkdQVVNoYWRlck1vZHVsZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggNTdlNzUwZTQxODAuLjMxNDBiNjU0OWUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
MzcxLDYgKzM3MSw3IEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVl
LmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVQaXBlbGluZUxheW91dC5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdl
RGVzY3JpcHRvci5jcHAKQEAgLTE4OTAsNiArMTg5MSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3IuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3JTY29wZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVVmFsaWRhdGlvbkVycm9yLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVs
aW5lLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
Y2Q3ODg5ZGUxMzUuLjQyNGU1MjNkODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDM5Miw2ICsxMDM5MiwxMCBAQAogCQk5
MTc1Q0U1OTIxRTI4MUVDMDBERjJDMjggLyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnNwZWN0
b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjcgLyogSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmls
aXR5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1
ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjggLyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlP
YmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnNwZWN0b3JBdWRp
dEFjY2Vzc2liaWxpdHlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE4
NkYzQjMyMzI5RkIwNTAwQUZGODU3IC8qIEdQVVBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdQVVBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkxODZGM0I2MjMyOUZCNEUwMEFGRjg1NyAvKiBXZWJHUFVQaXBlbGluZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVQaXBlbGluZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxODZGM0I3MjMyOUZCNEYwMEFGRjg1NyAvKiBXZWJH
UFVQaXBlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVQaXBl
bGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTg2RjNCQTIzMjlGRTY4MDBB
RkY4NTcgLyogR1BVUGlwZWxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gR1BVUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MUI4
RjBCMzIxOTUzRDY1MDAwQzJCMDAgLyogQ2VydGlmaWNhdGVJbmZvQmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDZXJ0aWZpY2F0ZUluZm9CYXNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkxQjk1MjIyMUY1OEE1ODAwMDkzMURDMiAvKiBSZWNvcmRpbmdT
d2l6emxlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVjb3JkaW5nU3dpenpsZVR5cGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBB
WFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgzNDAsNiArMTgzNDQs
OCBAQAogCQkJCUQwOEFBMDJGMjIwRDBCRDUwMDU4QzUwMiAvKiBHUFVMb2FkT3AuaCAqLywKIAkJ
CQlEMDlBRkIzNzIyRDdENUM2MDBDNDUzOEMgLyogR1BVT2JqZWN0QmFzZS5oICovLAogCQkJCUQw
OUFGQjE5MjJENjY5OEEwMEM0NTM4QyAvKiBHUFVPdXRPZk1lbW9yeUVycm9yLmggKi8sCisJCQkJ
OTE4NkYzQkEyMzI5RkU2ODAwQUZGODU3IC8qIEdQVVBpcGVsaW5lLmNwcCAqLywKKwkJCQk5MTg2
RjNCMzIzMjlGQjA1MDBBRkY4NTcgLyogR1BVUGlwZWxpbmUuaCAqLywKIAkJCQkzMTJGRjhDNDIx
QTRDMkY0MDBFQjE5OUQgLyogR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCUQw
MDMyODg3MjFDOUE0RTUwMDYyMkFBNiAvKiBHUFVQaXBlbGluZUxheW91dC5jcHAgKi8sCiAJCQkJ
RDAwMzI4ODYyMUM5QTRFNTAwNjIyQUE2IC8qIEdQVVBpcGVsaW5lTGF5b3V0LmggKi8sCkBAIC0y
NjA3Niw2ICsyNjA4Miw4IEBACiAJCQkJRDA5QUZCMDMyMkQ0MENDNTAwQzQ1MzhDIC8qIFdlYkdQ
VURldmljZUVycm9yU2NvcGVzLmlkbCAqLywKIAkJCQlEMDlBQzAwQTIzMTczNUJFMDAxODc3NjIg
LyogV2ViR1BVRGV2aWNlRXZlbnRIYW5kbGVyLmggKi8sCiAJCQkJRDA5QUMwMEIyMzE3MzVCRTAw
MTg3NzYyIC8qIFdlYkdQVURldmljZUV2ZW50SGFuZGxlci5pZGwgKi8sCisJCQkJOTE4NkYzQjYy
MzI5RkI0RTAwQUZGODU3IC8qIFdlYkdQVVBpcGVsaW5lLmNwcCAqLywKKwkJCQk5MTg2RjNCNzIz
MjlGQjRGMDBBRkY4NTcgLyogV2ViR1BVUGlwZWxpbmUuaCAqLywKIAkJCQlEMEM0MTlGMDIxODNF
QjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAogCQkJCUQw
QzQxOUYxMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlk
bCAqLywKIAkJCQlEMDVBOTlFNTIxQzlCRjJDMDAwMzJCNzUgLyogV2ViR1BVUGlwZWxpbmVMYXlv
dXQuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAK
aW5kZXggNmJhMzgxYTlkZmUuLjUwNjU0OTQ4ZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShX
RUJHTCkKIAorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5o
IgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNsdWRlICJXZWJH
TFNoYWRlci5oIgpAQCAtNjAsNiArNjIsNyBAQCBSZWY8V2ViR0xQcm9ncmFtPiBXZWJHTFByb2dy
YW06OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdMUHJvZ3Jh
bTo6V2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKICAgICA6IFdl
YkdMU2hhcmVkT2JqZWN0KGN0eCkKKyAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjdHgu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogewogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBs
b2NrKGluc3RhbmNlc011dGV4KCkpOwpAQCAtNzEsNiArNzQsOCBAQCBXZWJHTFByb2dyYW06Oldl
YkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdMUHJvZ3Jh
bTo6fldlYkdMUHJvZ3JhbSgpCiB7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
RGVzdHJveVdlYkdMUHJvZ3JhbSgqdGhpcyk7CisKICAgICBkZWxldGVPYmplY3QoMCk7CiAKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCmluZGV4IDg4YTg5
NzlkNDVmLi42NzY5ZDFkNGY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmgKQEAgLTMyLDYgKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTsKIGNsYXNzIFdlYkdMU2hhZGVyOwogCiBjbGFzcyBXZWJHTFByb2dyYW0gZmluYWwgOiBwdWJs
aWMgV2ViR0xTaGFyZWRPYmplY3QgewpAQCAtNDIsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIEhhc2hNYXA8V2ViR0xQcm9ncmFtKiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+JiBp
bnN0YW5jZXMoY29uc3QgTG9ja0hvbGRlciYpOwogICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNN
dXRleCgpOwogCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQorCiAgICAg
dW5zaWduZWQgbnVtQWN0aXZlQXR0cmliTG9jYXRpb25zKCk7CiAgICAgR0MzRGludCBnZXRBY3Rp
dmVBdHRyaWJMb2NhdGlvbihHQzNEdWludCBpbmRleCk7CiAKQEAgLTcxLDYgKzc1LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNhY2hlQWN0aXZlQXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29udGV4
dDNEKik7CiAgICAgdm9pZCBjYWNoZUluZm9JZk5lZWRlZCgpOwogCisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworCiAgICAgVmVjdG9yPEdDM0Rp
bnQ+IG1fYWN0aXZlQXR0cmliTG9jYXRpb25zOwogCiAgICAgR0MzRGludCBtX2xpbmtTdGF0dXMg
eyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDIyNGUzNGQ4MzI3Li42ZWVhOTFmYjE5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKQEAgLTQxMSw3ICs0MTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IHZvaWQgc2hvd0hpZ2h0bGlnaHQoKQogICAgIHsKLSAgICAgICAgaWYgKCFtX3Byb2dyYW0gfHwg
TElLRUxZKCFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdo
dGVkKG1fY29udGV4dCwgKm1fcHJvZ3JhbSkpKQorICAgICAgICBpZiAoIW1fcHJvZ3JhbSB8fCBM
SUtFTFkoIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRl
ZChtX2NvbnRleHQsICptX3Byb2dyYW0pKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBpZiAoaGFzQnVmZmVyQmluZGluZyhHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQklO
RElORykpIHsKQEAgLTE3NTQsNyArMTc1NCw3IEBAIFJlZlB0cjxXZWJHTFByb2dyYW0+IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVByb2dyYW0oKQogICAgIGF1dG8gcHJvZ3JhbSA9
IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKCp0aGlzKTsKICAgICBhZGRTaGFyZWRPYmplY3QocHJvZ3Jh
bS5nZXQoKSk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dy
YW0oKnRoaXMsIHByb2dyYW0uZ2V0KCkpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKCp0aGlzLCBwcm9ncmFtLmdldCgpKTsKIAogICAgIHJldHVy
biBwcm9ncmFtOwogfQpAQCAtMTg0MCw3ICsxODQwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTEZyYW1lYnVmZmVyKiBmcmFtZWJ1ZmZl
cikKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUHJvZ3JhbShXZWJHTFBy
b2dyYW0qIHByb2dyYW0pCiB7CiAgICAgaWYgKHByb2dyYW0pCi0gICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbERlbGV0ZVByb2dyYW0oKnRoaXMsICpwcm9ncmFtKTsKKyAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSgqcHJv
Z3JhbSk7CiAKICAgICBkZWxldGVPYmplY3QocHJvZ3JhbSk7CiAgICAgLy8gV2UgZG9uJ3QgcmVz
ZXQgbV9jdXJyZW50UHJvZ3JhbSB0byAwIGhlcmUgYmVjYXVzZSB0aGUgZGVsZXRpb24gb2YgdGhl
CkBAIC0yMjU1LDcgKzIyNTUsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRy
YXdBcnJheXMoR0MzRGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpegogICAgIGlmICgh
dmFsaWRhdGVEcmF3QXJyYXlzKCJkcmF3QXJyYXlzIiwgbW9kZSwgZmlyc3QsIGNvdW50LCAwKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVu
dFByb2dyYW0pKQorICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0p
KQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVhcklmQ29tcG9zaXRlZCgpOwpAQCAtMjMwOSw3
ICsyMzA5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3RWxlbWVudHMo
R0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzMKICAgICBpZiAoIXZhbGlkYXRlRHJh
d0VsZW1lbnRzKCJkcmF3RWxlbWVudHMiLCBtb2RlLCBjb3VudCwgdHlwZSwgb2Zmc2V0LCBudW1F
bGVtZW50cywgMCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2N1cnJlbnRQcm9ncmFt
ICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoKnRo
aXMsICptX2N1cnJlbnRQcm9ncmFtKSkKKyAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1
cnJlbnRQcm9ncmFtKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKaW5kZXggNjk2NDY1MDUzOWIuLjkxMmM4NDViYmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApA
QCAtMTA3OSwyOSArMTA3OSwyOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
RW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cgogICAgICAgICBj
YW52YXNBZ2VudC0+ZGlkRW5hYmxlRXh0ZW5zaW9uKGNvbnRleHRXZWJHTEJhc2UsIGV4dGVuc2lv
bik7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFt
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0p
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7
CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgY2FudmFzQWdlbnQtPmRp
ZENyZWF0ZVByb2dyYW0oY29udGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CisgICAgICAgIGNhbnZh
c0FnZW50LT5kaWRDcmVhdGVXZWJHTFByb2dyYW0oY29udGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2Vi
R0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBX
ZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBj
YW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkK
LSAgICAgICAgY2FudmFzQWdlbnQtPndpbGxEZWxldGVQcm9ncmFtKHByb2dyYW0pOworICAgICAg
ICBjYW52YXNBZ2VudC0+d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0ocHJvZ3JhbSk7CiB9CiAKLWJv
b2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBw
cm9ncmFtKQorYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlz
YWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdM
UHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZh
c0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAg
ICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKHByb2dyYW0p
OworICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQocHJv
Z3JhbSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2Jvb2wgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0p
CiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgcmV0dXJuIGNhbnZh
c0FnZW50LT5pc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChwcm9ncmFtKTsKKyAgICAgICAgcmV0
dXJuIGNhbnZhc0FnZW50LT5pc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKHByb2dyYW0pOwogICAg
IHJldHVybiBmYWxzZTsKIH0KICNlbmRpZgpAQCAtMTEyNCw2ICsxMTI0LDE4IEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ29uZmlndXJlU3dhcENoYWluSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpCiAgICAgaWYgKGF1dG8qIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQogICAgICAgICBjYW52YXNBZ2VudC0+d2ls
bENvbmZpZ3VyZVN3YXBDaGFpbihjb250ZXh0R1BVLCBuZXdTd2FwQ2hhaW4pOwogfQorCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmVJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdQVURldmljZSYgZGV2
aWNlLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgaWYgKGF1dG8qIGNhbnZhc0Fn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQorICAgICAg
ICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoZGV2aWNlLCBwaXBlbGluZSk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBp
cGVsaW5lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJH
UFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgaWYgKGF1dG8qIGNhbnZhc0FnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQorICAgICAgICBjYW52YXNB
Z2VudC0+d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShwaXBlbGluZSk7Cit9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA4MWYzY2RjZGEyOS4uNTQ5YWEx
N2EzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKQEAgLTYzLDYgKzYzLDcgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogI2lu
Y2x1ZGUgIkdQVUNhbnZhc0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNp
bmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewpAQCAtMjg5LDE1ICsyOTAsMTcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlz
aFJlY29yZGluZ0NhbnZhc0ZyYW1lKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBib29sIGZvcmNl
RGlzcGF0Y2ggPSBmYWxzZSk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0YXRpYyB2b2lkIGRp
ZEVuYWJsZUV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgY29uc3QgU3RyaW5n
Jik7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIHZvaWQgd2lsbERlbGV0ZVByb2dy
YW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRp
YyBib29sIGlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBXZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1IaWdobGln
aHRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3Rh
dGljIHZvaWQgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdMUHJvZ3Jh
bShXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMUHJvZ3JhbURpc2FibGVk
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMg
Ym9vbCBpc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBXZWJHTFByb2dyYW0mKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3RhdGlj
IHZvaWQgZGlkQ3JlYXRlV2ViR1BVRGV2aWNlKFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2
b2lkIHdpbGxEZXN0cm95V2ViR1BVRGV2aWNlKFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2
b2lkIHdpbGxDb25maWd1cmVTd2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYsIFdlYkdQVVN3YXBD
aGFpbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKFdlYkdQVURl
dmljZSYsIFdlYkdQVVBpcGVsaW5lJik7CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJH
UFVQaXBlbGluZShXZWJHUFVQaXBlbGluZSYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCBu
ZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UmKTsKQEAgLTQ4MSwxNSArNDg0LDE3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWVJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBDYW52YXNSZW5kZXJpbmdDb250ZXh0JiwgYm9vbCBmb3JjZURpc3Bh
dGNoID0gZmFsc2UpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBzdGF0aWMgdm9pZCBkaWRFbmFi
bGVFeHRlbnNpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlUHJvZ3Jh
bUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBX
ZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0aWMgdm9pZCB3aWxsRGVsZXRlUHJvZ3JhbUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hh
ZGVyUHJvZ3JhbURpc2FibGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFt
Jik7Ci0gICAgc3RhdGljIGJvb2wgaXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVh
dGVXZWJHTFByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lX
ZWJHTFByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0mKTsKKyAg
ICBzdGF0aWMgYm9vbCBpc1dlYkdMUHJvZ3JhbURpc2FibGVkSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdo
bGlnaHRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHUFVEZXZp
Y2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMg
dm9pZCB3aWxsRGVzdHJveVdlYkdQVURldmljZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdl
YkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxDb25maWd1cmVTd2FwQ2hhaW5JbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBHUFVDYW52YXNDb250ZXh0JiwgV2ViR1BVU3dhcENoYWlu
Jik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmVJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJHUFVEZXZpY2UmLCBXZWJHUFVQaXBlbGluZSYpOworICAgIHN0YXRp
YyB2b2lkIHdpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
LCBXZWJHUFVQaXBlbGluZSYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCBsYXllclRyZWVE
aWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKQEAgLTEzODQsMzMgKzEzODksMzMg
QEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFbmFibGVFeHRlbnNp
b24oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmEKICAgICAgICAgZGlkRW5hYmxlRXh0ZW5zaW9uSW1w
bCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dFdlYkdMQmFzZSwgZXh0ZW5zaW9uKTsKIH0K
IAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFt
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3Jl
YXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJh
c2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2Uu
Y2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIGRpZENyZWF0
ZVByb2dyYW1JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0V2ViR0xCYXNlLCBwcm9n
cmFtKTsKKyAgICAgICAgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0Fn
ZW50cywgY29udGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlbGV0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQoraW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShX
ZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZh
c0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICB3aWxsRGVsZXRlUHJv
Z3JhbUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOworICAgIGlmIChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
ckNvbnRleHQocHJvZ3JhbS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICB3aWxs
RGVzdHJveVdlYkdMUHJvZ3JhbUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOwog
fQogCi1pbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3Jh
bURpc2FibGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdl
YkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2lubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250
ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5f
SUZfTk9fRlJPTlRFTkRTKGZhbHNlKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRX
ZWJHTEJhc2UuY2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAg
IHJldHVybiBpc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMs
IHByb2dyYW0pOworICAgICAgICByZXR1cm4gaXNXZWJHTFByb2dyYW1EaXNhYmxlZEltcGwoKmlu
c3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotaW5s
aW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1IaWdobGln
aHRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFBy
b2dyYW0mIHByb2dyYW0pCitpbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlz
V2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4
dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lG
X05PX0ZST05URU5EUyhmYWxzZSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0V2Vi
R0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICBy
ZXR1cm4gaXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRz
LCBwcm9ncmFtKTsKKyAgICAgICAgcmV0dXJuIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBs
KCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAj
ZW5kaWYKQEAgLTE0MzYsNiArMTQ0MSwyMCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxDb25maWd1cmVTd2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYgYwogICAg
IGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNv
bnRleHQoY29udGV4dEdQVS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
ICAgICAgICAgd2lsbENvbmZpZ3VyZVN3YXBDaGFpbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMs
IGNvbnRleHRHUFUsIG5ld1N3YXBDaGFpbik7CiB9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZp
Y2UsIFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGRldmljZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpKQorICAgICAgICBkaWRDcmVhdGVXZWJHUFVQaXBlbGluZUltcGwoKmluc3RydW1lbnRpbmdB
Z2VudHMsIGRldmljZSwgcGlwZWxpbmUpOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmIHBp
cGVsaW5lKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAg
IGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNv
bnRleHQocGlwZWxpbmUuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgd2lsbERl
c3Ryb3lXZWJHUFVQaXBlbGluZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBpcGVsaW5lKTsK
K30KICNlbmRpZgogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5ldHdv
cmtTdGF0ZUNoYW5nZWQoUGFnZSYgcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcAppbmRleCBkNTI5NTUwY2RjOC4uMDU4OGQ0
ZDlhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFk
ZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbS5jcHAKQEAgLTI2LDUzICsyNiwyMjcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wp
Ci0KLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzVHlw
ZXMzRC5oIgotI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yQ2FudmFzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
KyNpZiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNs
dWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
ZGVudGlmaWVyc0ZhY3RvcnkuaD4KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKyNpbmNs
dWRlICJHUFVTaGFkZXJNb2R1bGUuaCIKKyNpbmNsdWRlICJXSExTTFByZXBhcmUuaCIKKyNpbmNs
dWRlICJXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5o
IgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVU2hh
ZGVyTW9kdWxlLmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSW5zcGVjdG9yOwogCisjaWYgRU5BQkxFKFdFQkdMKQogUmVmPEluc3BlY3RvclNoYWRl
clByb2dyYW0+IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNyZWF0ZShXZWJHTFByb2dyYW0mIHBy
b2dyYW0sIEluc3BlY3RvckNhbnZhcyYgaW5zcGVjdG9yQ2FudmFzKQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluc3BlY3RvclNoYWRlclByb2dyYW0ocHJvZ3JhbSwgaW5zcGVjdG9yQ2Fu
dmFzKSk7CiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJHUFUpCitSZWY8SW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFdlYkdQVVBpcGVsaW5l
JiBwaXBlbGluZSwgSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShwaXBlbGluZSwgaW5zcGVj
dG9yQ2FudmFzKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTCkKIEluc3BlY3RvclNo
YWRlclByb2dyYW06Okluc3BlY3RvclNoYWRlclByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFt
LCBJbnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcykKICAgICA6IG1faWRlbnRpZmllcigi
cHJvZ3JhbToiICsgSWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCi0gICAg
LCBtX3Byb2dyYW0ocHJvZ3JhbSkKICAgICAsIG1fY2FudmFzKGluc3BlY3RvckNhbnZhcykKKyAg
ICAsIG1fcHJvZ3JhbShwcm9ncmFtKQogeworICAgIEFTU0VSVChpczxXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlPihtX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpKTsKIH0KKyNlbmRpZgogCi1XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjb250ZXh0KCkg
Y29uc3QKKyNpZiBFTkFCTEUoV0VCR1BVKQorSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6SW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3BlY3RvckNhbnZh
cyYgaW5zcGVjdG9yQ2FudmFzKQorICAgIDogbV9pZGVudGlmaWVyKCJwaXBlbGluZToiICsgSWRl
bnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCisgICAgLCBtX2NhbnZhcyhpbnNw
ZWN0b3JDYW52YXMpCisgICAgLCBtX3Byb2dyYW0ocGlwZWxpbmUpCiB7Ci0gICAgQVNTRVJUKG1f
Y2FudmFzLmNhbnZhc0NvbnRleHQoKSk7Ci0gICAgQVNTRVJUKGlzPFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U+KCptX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpKTsKLSAgICByZXR1cm4gZG93bmNh
c3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKm1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSk7
CisgICAgQVNTRVJUKG1fY2FudmFzLmRldmljZUNvbnRleHQoKSk7CiB9CisjZW5kaWYKIAotV2Vi
R0xTaGFkZXIqIEluc3BlY3RvclNoYWRlclByb2dyYW06OnNoYWRlckZvclR5cGUoY29uc3QgU3Ry
aW5nJiBwcm90b2NvbFR5cGUpCisjaWYgRU5BQkxFKFdFQkdMKQorV2ViR0xQcm9ncmFtKiBJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtOjpwcm9ncmFtKCkgY29uc3QKIHsKLSAgICBHQzNEZW51bSBzaGFk
ZXJUeXBlOwotICAgIGlmIChwcm90b2NvbFR5cGUgPT0gInZlcnRleCIpCi0gICAgICAgIHNoYWRl
clR5cGUgPSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUjsKLSAgICBlbHNlIGlmIChw
cm90b2NvbFR5cGUgPT0gImZyYWdtZW50IikKLSAgICAgICAgc2hhZGVyVHlwZSA9IEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVI7Ci0gICAgZWxzZQorICAgIGlmIChhdXRvKiBwcm9n
cmFtV3JhcHBlciA9IFdURjo6Z2V0X2lmPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9n
cmFtPj4obV9wcm9ncmFtKSkKKyAgICAgICAgcmV0dXJuICZwcm9ncmFtV3JhcHBlci0+Z2V0KCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCitX
ZWJHUFVQaXBlbGluZSogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cGlwZWxpbmUoKSBjb25zdAor
eworICAgIGlmIChhdXRvKiBwaXBlbGluZVdyYXBwZXIgPSBXVEY6OmdldF9pZjxzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPFdlYkdQVVBpcGVsaW5lPj4obV9wcm9ncmFtKSkKKyAgICAgICAgcmV0dXJu
ICZwaXBlbGluZVdyYXBwZXItPmdldCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoV0VCR0wpCitzdGF0aWMgV2ViR0xTaGFkZXIqIHNoYWRlckZvclR5cGUo
V2ViR0xQcm9ncmFtJiBwcm9ncmFtLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRl
clR5cGUgc2hhZGVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6RnJhZ21lbnQ6CisgICAg
ICAgIHJldHVybiBwcm9ncmFtLmdldEF0dGFjaGVkU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFHTUVOVF9TSEFERVIpOworCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6
OlNoYWRlclR5cGU6OlZlcnRleDoKKyAgICAgICAgcmV0dXJuIHByb2dyYW0uZ2V0QXR0YWNoZWRT
aGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOworCisgICAgLy8gQ29tcHV0
ZSBzaGFkZXJzIGFyZSBhIFdlYkdQVSBjb25jZXB0LgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpDb21wdXRlOgogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CiAKLSAgICByZXR1cm4gbV9wcm9ncmFtLmdldEF0dGFjaGVkU2hhZGVyKHNoYWRl
clR5cGUpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorc3RhdGljIE9wdGlvbmFsPFdlYkdQVVBp
cGVsaW5lOjpTaGFkZXJEYXRhPiBzaGFkZXJGb3JUeXBlKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGlu
ZSwgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUpCit7
CisgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpDYW52YXM6OlNoYWRlclR5cGU6OkNvbXB1dGU6CisgICAgICAgIGlmIChpczxXZWJHUFVDb21w
dXRlUGlwZWxpbmU+KHBpcGVsaW5lKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJH
UFVDb21wdXRlUGlwZWxpbmU+KHBpcGVsaW5lKS5jb21wdXRlU2hhZGVyKCk7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6
OkZyYWdtZW50OgorICAgICAgICBpZiAoaXM8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5l
KSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlw
ZWxpbmUpLmZyYWdtZW50U2hhZGVyKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6OlZlcnRleDoKKyAgICAgICAgaWYg
KGlzPFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKS52ZXJ0ZXhTaGFkZXIoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKyNlbmRpZgorCitPcHRpb25hbDxJbnNwZWN0b3JTaGFk
ZXJQcm9ncmFtOjpTaGFkZXJTb3VyY2VEYXRhPiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpyZXF1
ZXN0U2hhZGVyU291cmNlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSBz
aGFkZXJUeXBlKQoreworI2lmICFFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoV0VCR1BVKQorICAg
IFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24obV9wcm9ncmFtLAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgWyZdIChzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4gcHJvZ3JhbVdyYXBwZXIpIC0+IE9wdGlvbmFs
PFNoYWRlclNvdXJjZURhdGE+IHsKKyAgICAgICAgICAgIGF1dG8mIHByb2dyYW0gPSBwcm9ncmFt
V3JhcHBlci5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzaGFkZXIgPSBzaGFkZXJGb3JU
eXBlKHByb2dyYW0sIHNoYWRlclR5cGUpKQorICAgICAgICAgICAgICAgIHJldHVybiB7IHsgc2hh
ZGVyLT5nZXRTb3VyY2UoKSwgV1RGOjpudWxsb3B0IH0gfTsKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgICAgIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAg
ICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5l
V3JhcHBlcikgLT4gT3B0aW9uYWw8U2hhZGVyU291cmNlRGF0YT4geworICAgICAgICAgICAgYXV0
byYgcGlwZWxpbmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0
byBzaGFkZXIgPSBzaGFkZXJGb3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAg
ICAgICAgICAgIGlmIChhdXRvIHdlYkdQVU1vZHVsZSA9IHNoYWRlci52YWx1ZSgpLm1vZHVsZSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogZ3B1TW9kdWxlID0gd2ViR1BVTW9kdWxl
LT5tb2R1bGUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHdobHNsTW9k
dWxlID0gZ3B1TW9kdWxlLT53aGxzbE1vZHVsZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7IHsgd2hsc2xNb2R1bGUtPndobHNsU291cmNlLCBzaGFkZXIudmFsdWUoKS5l
bnRyeVBvaW50IH0gfTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAg
IH0sCisjZW5kaWYKKyAgICAgICAgWyZdIChNb25vc3RhdGUpIHsKKyNpZiBFTkFCTEUoV0VCR0wp
IHx8IEVOQUJMRShXRUJHUFUpCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNl
bmRpZgorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgICk7
Cit9CisKK2Jvb2wgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZSwgY29uc3QgU3RyaW5nKiBlbnRyeVBvaW50KQoreworI2lmICFFTkFCTEUoV0VCR0wp
ICYmICFFTkFCTEUoV0VCR1BVKQorICAgIFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKKyAgICBV
TlVTRURfUEFSQU0oc291cmNlKTsKKyNlbmRpZgorI2lmICFFTkFCTEUoV0VCR1BVKQorICAgIFVO
VVNFRF9QQVJBTShlbnRyeVBvaW50KTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdURjo6c3dpdGNo
T24obV9wcm9ncmFtLAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgWyZdIChzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4gcHJvZ3JhbVdyYXBwZXIpIHsKKyAgICAgICAgICAg
IGF1dG8mIHByb2dyYW0gPSBwcm9ncmFtV3JhcHBlci5nZXQoKTsKKyAgICAgICAgICAgIGlmIChh
dXRvKiBzaGFkZXIgPSBzaGFkZXJGb3JUeXBlKHByb2dyYW0sIHNoYWRlclR5cGUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBtX2NhbnZhcy5jYW52YXNDb250ZXh0KCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+
KGNvbnRleHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvJiBjb250ZXh0V2ViR0xC
YXNlID0gZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKmNvbnRleHQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5zaGFkZXJTb3VyY2Uoc2hhZGVy
LCBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5jb21w
aWxlU2hhZGVyKHNoYWRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhZGVyLT5p
c1ZhbGlkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0V2ViR0xCYXNl
LmxpbmtQcm9ncmFtV2l0aG91dEludmFsaWRhdGluZ0F0dHJpYkxvY2F0aW9ucygmcHJvZ3JhbSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0sCisjZW5k
aWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBlcikgeworICAgICAgICAgICAgYXV0byYg
cGlwZWxpbmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byog
ZGV2aWNlID0gbV9jYW52YXMuZGV2aWNlQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8gc2hhZGVyID0gc2hhZGVyRm9yVHlwZShwaXBlbGluZSwgc2hhZGVyVHlwZSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gd2ViR1BVTW9kdWxlID0gc2hhZGVyLnZhbHVlKCku
bW9kdWxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogZ3B1TW9kdWxlID0g
d2ViR1BVTW9kdWxlLT5tb2R1bGUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChhdXRvKiB3aGxzbE1vZHVsZSA9IGdwdU1vZHVsZS0+d2hsc2xNb2R1bGUoKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVTlVTRURfUEFSQU0od2hsc2xNb2R1bGUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGxzbE1vZHVsZS0+d2hsc2xTb3VyY2UgPSBz
b3VyY2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeVBvaW50KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZGVyLnZhbHVlKCkuZW50cnlQ
b2ludCA9ICplbnRyeVBvaW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cGlwZWxpbmUucmVjb21waWxlKCpkZXZpY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9LAorI2VuZGlmCisgICAgICAgIFsmXSAoTW9ub3N0YXRlKSB7CisjaWYgRU5BQkxFKFdFQkdM
KSB8fCBFTkFCTEUoV0VCR1BVKQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisj
ZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCmluZGV4
IDk0NjdlODQ3ZjVkLi5iNmJiNGZlNjAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCkBAIC0yNiwyNSArMjYsNDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xPYmpl
Y3RzLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluc3BlY3RvckNhbnZhczsKKwor
I2lmIEVOQUJMRShXRUJHTCkKIGNsYXNzIFdlYkdMUHJvZ3JhbTsKIGNsYXNzIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U7Ci1jbGFzcyBXZWJHTFNoYWRlcjsKKyNlbmRpZgogCi10eXBlZGVmIFN0
cmluZyBFcnJvclN0cmluZzsKKyNpZiBFTkFCTEUoV0VCR1BVKQorY2xhc3MgV2ViR1BVUGlwZWxp
bmU7CisjZW5kaWYKIAogY2xhc3MgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPEluc3BlY3RvclNoYWRlclByb2dyYW0+IHsKIHB1YmxpYzoKKyNpZiBFTkFC
TEUoV0VCR0wpCiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBjcmVhdGUo
V2ViR0xQcm9ncmFtJiwgSW5zcGVjdG9yQ2FudmFzJik7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VC
R1BVKQorICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gY3JlYXRlKFdlYkdQ
VVBpcGVsaW5lJiwgSW5zcGVjdG9yQ2FudmFzJik7CisjZW5kaWYKIAogICAgIGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIEluc3Bl
Y3RvckNhbnZhcyYgY2FudmFzKCkgY29uc3QgeyByZXR1cm4gbV9jYW52YXM7IH0KLSAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KCkgY29uc3Q7Ci0gICAgV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmFtOyB9Ci0gICAgV2ViR0xTaGFkZXIq
IHNoYWRlckZvclR5cGUoY29uc3QgU3RyaW5nJik7CisKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtKCkgY29uc3Q7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BV
KQorICAgIFdlYkdQVVBpcGVsaW5lKiBwaXBlbGluZSgpIGNvbnN0OworI2VuZGlmCisKKyAgICBz
dHJ1Y3QgU2hhZGVyU291cmNlRGF0YSB7CisgICAgICAgIFN0cmluZyBzb3VyY2U7CisgICAgICAg
IE9wdGlvbmFsPFN0cmluZz4gZW50cnlQb2ludDsKKyAgICB9OworICAgIE9wdGlvbmFsPFNoYWRl
clNvdXJjZURhdGE+IHJlcXVlc3RTaGFkZXJTb3VyY2UoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2Fu
dmFzOjpTaGFkZXJUeXBlKTsKKyAgICBib29sIHVwZGF0ZVNoYWRlcihJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDYW52YXM6OlNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJp
bmcqIGVudHJ5UG9pbnQpOwogCiAgICAgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlzYWJsZWQ7IH0KICAgICB2b2lkIHNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpIHsgbV9kaXNh
YmxlZCA9IGRpc2FibGVkOyB9CkBAIC01MiwxNSArNzQsMjcgQEAgcHVibGljOgogICAgIGJvb2wg
aGlnaGxpZ2h0ZWQoKSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodGVkOyB9CiAgICAgdm9pZCBz
ZXRIaWdobGlnaHRlZChib29sIHZhbHVlKSB7IG1faGlnaGxpZ2h0ZWQgPSB2YWx1ZTsgfQogCi0g
ICAgfkluc3BlY3RvclNoYWRlclByb2dyYW0oKSA9IGRlZmF1bHQ7Ci0KIHByaXZhdGU6CisjaWYg
RU5BQkxFKFdFQkdMKQogICAgIEluc3BlY3RvclNoYWRlclByb2dyYW0oV2ViR0xQcm9ncmFtJiwg
SW5zcGVjdG9yQ2FudmFzJik7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIEluc3Bl
Y3RvclNoYWRlclByb2dyYW0oV2ViR1BVUGlwZWxpbmUmLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNl
bmRpZgogCiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsKLSAgICBXZWJHTFByb2dyYW0mIG1fcHJv
Z3JhbTsKICAgICBJbnNwZWN0b3JDYW52YXMmIG1fY2FudmFzOwogCisgICAgVmFyaWFudDwKKyNp
ZiBFTkFCTEUoV0VCR0wpCisgICAgICAgIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9n
cmFtPiwKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAgIHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+LAorI2VuZGlmCisgICAgICAgIE1vbm9zdGF0ZQorICAg
ID4gbV9wcm9ncmFtOworCiAgICAgYm9vbCBtX2Rpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1faGlnaGxpZ2h0ZWQgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggMTg1MjI0
ODVhNjUuLjJjMDAyOGU0YmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtNDYsMTQgKzQ2LDE4IEBA
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFC
TEUoV0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgot
I2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTDIpCkBA
IC02Miw3ICs2NiwxMSBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKICNpbmNsdWRlICJHUFVDYW52
YXNDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCiAjaW5jbHVk
ZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRl
ICJXZWJHUFVSZW5kZXJQaXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQVVN3YXBDaGFpbi5oIgog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc2LDYgKzg0LDcgQEAgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6Okluc3BlY3RvckNhbnZhc0FnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRl
eHQpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihjb250ZXh0LmluamVjdGVkU2NyaXB0
TWFuYWdlcikKICAgICAsIG1faW5zcGVjdGVkUGFnZShjb250ZXh0Lmluc3BlY3RlZFBhZ2UpCiAg
ICAgLCBtX2NhbnZhc0Rlc3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OmNhbnZhc0Rlc3Ryb3llZFRpbWVyRmlyZWQpCisgICAgLCBtX3Byb2dyYW1EZXN0cm95ZWRUaW1l
cigqdGhpcywgJkluc3BlY3RvckNhbnZhc0FnZW50Ojpwcm9ncmFtRGVzdHJveWVkVGltZXJGaXJl
ZCkKIHsKIH0KIApAQCAtOTMsNyArMTAyLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmUKIAog
dm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzY2FyZEFnZW50KCkKIHsKLSAgICBjbGVhckNh
bnZhc0RhdGEoKTsKKyAgICByZXNldCgpOwogfQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50
OjplbmFibGUoRXJyb3JTdHJpbmcmKQpAQCAtMTQxLDcgKzE1MCwxNyBAQCB2b2lkIEluc3BlY3Rv
ckNhbnZhc0FnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogICAgICAgICBMb2NrSG9sZGVyIGxv
Y2soV2ViR0xQcm9ncmFtOjppbnN0YW5jZXNNdXRleCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBb
cHJvZ3JhbSwgY29udGV4dFdlYkdMQmFzZV0gOiBXZWJHTFByb2dyYW06Omluc3RhbmNlcyhsb2Nr
KSkgewogICAgICAgICAgICAgaWYgKGNvbnRleHRXZWJHTEJhc2UgJiYgZXhpc3RzSW5DdXJyZW50
UGFnZShjb250ZXh0V2ViR0xCYXNlLT5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSkKLSAgICAgICAgICAgICAgICBkaWRDcmVhdGVQcm9ncmFtKCpjb250ZXh0V2ViR0xCYXNl
LCAqcHJvZ3JhbSk7CisgICAgICAgICAgICAgICAgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKCpjb250
ZXh0V2ViR0xCYXNlLCAqcHJvZ3JhbSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworI2lm
IEVOQUJMRShXRUJHUFUpCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViR1BVUGlw
ZWxpbmU6Omluc3RhbmNlc011dGV4KCkpOworICAgICAgICBmb3IgKGF1dG8mIFtwaXBlbGluZSwg
ZGV2aWNlXSA6IFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAg
IGlmIChkZXZpY2UgJiYgZXhpc3RzSW5DdXJyZW50UGFnZShkZXZpY2UtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoKmRl
dmljZSwgKnBpcGVsaW5lKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTUxLDcgKzE3
MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQog
ewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRJbnNwZWN0b3JDYW52YXNBZ2VudChudWxs
cHRyKTsKIAotICAgIGNsZWFyQ2FudmFzRGF0YSgpOworICAgIHJlc2V0KCk7CiAKICAgICBtX3Jl
Y29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudCA9IFdURjo6bnVsbG9wdDsKIH0KQEAgLTI4MCw5
MyArMjk5LDY3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0b3BSZWNvcmRpbmcoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmCiAgICAgZGlkRmluaXNoUmVjb3Jk
aW5nQ2FudmFzRnJhbWUoKmNvbnRleHQsIHRydWUpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50OjpyZXF1ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgU3RyaW5nKiBj
b250ZW50KQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVxdWVzdFNoYWRlclNvdXJjZShF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBT
dHJpbmcmIHNoYWRlclR5cGVTdHJpbmcsIFN0cmluZyogc291cmNlLCBPcHRpb25hbDxTdHJpbmc+
JiBlbnRyeVBvaW50KQogewotI2lmIEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGluc3BlY3RvclBy
b2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9ncmFtSWQpOwog
ICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byog
c2hhZGVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+c2hhZGVyRm9yVHlwZShzaGFkZXJUeXBlKTsKLSAg
ICBpZiAoIXNoYWRlcikgewotICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIHNoYWRlciBm
b3IgZ2l2ZW4gc2hhZGVyVHlwZSJfczsKKyAgICBhdXRvIHNoYWRlclR5cGUgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpJbnNwZWN0b3JIZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlPihzaGFkZXJUeXBlU3RyaW5nKTsK
KyAgICBpZiAoIXNoYWRlclR5cGUpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBtYWtlU3RyaW5n
KCJVbmtub3duIHNoYWRlclR5cGU6ICJfcywgc2hhZGVyVHlwZVN0cmluZyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICAqY29udGVudCA9IHNoYWRlci0+Z2V0U291cmNlKCk7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVOVVNFRF9QQVJBTShzaGFkZXJU
eXBlKTsKLSAgICBVTlVTRURfUEFSQU0oY29udGVudCk7Ci0gICAgZXJyb3JTdHJpbmcgPSAiTm90
IHN1cHBvcnRlZCJfczsKLSNlbmRpZgorICAgIGF1dG8gZGF0YSA9IGluc3BlY3RvclByb2dyYW0t
PnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyVHlwZS52YWx1ZSgpKTsKKyAgICBpZiAoIWRhdGEp
IHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVy
VHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgKnNvdXJjZSA9IGRhdGEudmFsdWUoKS5zb3VyY2U7CisgICAgaWYgKGRhdGEudmFsdWUoKS5l
bnRyeVBvaW50KQorICAgICAgICBlbnRyeVBvaW50ID0gZGF0YS52YWx1ZSgpLmVudHJ5UG9pbnQu
dmFsdWUoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6dXBkYXRlU2hhZGVyKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0
cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCit2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50Ojp1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nKiBlbnRyeVBvaW50KQogewotI2lmIEVOQUJMRShX
RUJHTCkKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFt
KGVycm9yU3RyaW5nLCBwcm9ncmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogc2hhZGVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+c2hh
ZGVyRm9yVHlwZShzaGFkZXJUeXBlKTsKLSAgICBpZiAoIXNoYWRlcikgewotICAgICAgICBlcnJv
clN0cmluZyA9ICJNaXNzaW5nIHNoYWRlciBmb3IgZ2l2ZW4gc2hhZGVyVHlwZSJfczsKKyAgICBh
dXRvIHNoYWRlclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpJbnNwZWN0b3JIZWxwZXJzOjpw
YXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFk
ZXJUeXBlPihzaGFkZXJUeXBlU3RyaW5nKTsKKyAgICBpZiAoIXNoYWRlclR5cGUpIHsKKyAgICAg
ICAgZXJyb3JTdHJpbmcgPSBtYWtlU3RyaW5nKCJVbmtub3duIHNoYWRlclR5cGU6ICJfcywgc2hh
ZGVyVHlwZVN0cmluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0wgPSBpbnNwZWN0b3JQcm9ncmFtLT5jb250ZXh0
KCk7Ci0gICAgY29udGV4dFdlYkdMLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7Ci0gICAg
Y29udGV4dFdlYkdMLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKLQotICAgIGlmICghc2hhZGVyLT5p
c1ZhbGlkKCkpIHsKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIHVwZGF0ZSBzaGFk
ZXIiX3M7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb250ZXh0V2ViR0wubGlua1By
b2dyYW1XaXRob3V0SW52YWxpZGF0aW5nQXR0cmliTG9jYXRpb25zKCZpbnNwZWN0b3JQcm9ncmFt
LT5wcm9ncmFtKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBV
TlVTRURfUEFSQU0oc2hhZGVyVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7Ci0gICAg
ZXJyb3JTdHJpbmcgPSAiTm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgorICAgIGlmICghaW5zcGVj
dG9yUHJvZ3JhbS0+dXBkYXRlU2hhZGVyKHNoYWRlclR5cGUudmFsdWUoKSwgc291cmNlLCBlbnRy
eVBvaW50KSkKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIg
b2YgZ2l2ZW4gc2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkIl9zOwogfQogCiB2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCkKIHsK
LSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gYXNzZXJ0SW5z
cGVjdG9yUHJvZ3JhbShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAgICBpZiAoIWluc3BlY3Rv
clByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAogICAgIGluc3BlY3RvclByb2dyYW0tPnNldERp
c2FibGVkKGRpc2FibGVkKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGRpc2FibGVkKTsKLSAgICBlcnJvclN0cmluZyA9ICJOb3Qgc3VwcG9y
dGVkIl9zOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnNldFNoYWRl
clByb2dyYW1IaWdobGlnaHRlZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcHJvZ3JhbUlkLCBib29sIGhpZ2hsaWdodGVkKQogewotI2lmIEVOQUJMRShXRUJHTCkKICAg
ICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3Ry
aW5nLCBwcm9ncmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaW5zcGVjdG9yUHJvZ3JhbS0+c2V0SGlnaGxpZ2h0ZWQoaGlnaGxpZ2h0ZWQp
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBVTlVTRURfUEFSQU0o
aGlnaGxpZ2h0ZWQpOwotICAgIGVycm9yU3RyaW5nID0gIk5vdCBzdXBwb3J0ZWQiX3M7Ci0jZW5k
aWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUm
IGZyYW1lKQogewogICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIGNsZWFy
Q2FudmFzRGF0YSgpOworICAgICAgICByZXNldCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC01NjgsNyArNTYxLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkRW5hYmxl
RXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlci0+ZXh0ZW5zaW9uRW5hYmxlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZp
ZXIoKSwgZXh0ZW5zaW9uKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3Jl
YXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dy
YW0mIHByb2dyYW0pCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHTFBy
b2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQcm9ncmFtJiBw
cm9ncmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yQ2FudmFzID0gZmluZEluc3BlY3RvckNhbnZh
cyhjb250ZXh0KTsKICAgICBBU1NFUlQoaW5zcGVjdG9yQ2FudmFzKTsKQEAgLTU3OCwyMCArNTcx
LDE5IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVByb2dyYW0oV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0g
PSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUocHJvZ3JhbSwgKmluc3BlY3RvckNhbnZh
cyk7CiAgICAgU3RyaW5nIHByb2dyYW1JZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+aWRl
bnRpZmllcigpOwogICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3Jh
bUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJvZ3JhbSkpOwotICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwg
cHJvZ3JhbUlkZW50aWZpZXIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3Jl
YXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50aWZpZXIsIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcik7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZWxldGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSYg
cHJvZ3JhbSkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR0xQcm9n
cmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0g
PSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBpZiAoIWluc3BlY3RvclByb2dy
YW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBpZGVudGlmaWVyID0gdW5iaW5kUHJv
Z3JhbSgqaW5zcGVjdG9yUHJvZ3JhbSk7Ci0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dy
YW1EZWxldGVkKGlkZW50aWZpZXIpOworICAgIHVuYmluZFByb2dyYW0oKmluc3BlY3RvclByb2dy
YW0pOwogfQogCi1ib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1NoYWRlclByb2dyYW1EaXNh
YmxlZChXZWJHTFByb2dyYW0mIHByb2dyYW0pCitib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojpp
c1dlYkdMUHJvZ3JhbURpc2FibGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRv
IGluc3BlY3RvclByb2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBB
U1NFUlQoaW5zcGVjdG9yUHJvZ3JhbSk7CkBAIC02MDEsNyArNTkzLDcgQEAgYm9vbCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJiBwcm9n
cmFtKQogICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtLT5kaXNhYmxlZCgpOwogfQogCi1ib29s
IEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJHTFBy
b2dyYW0mIHByb2dyYW0pCitib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1dlYkdMUHJvZ3Jh
bUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3Rv
clByb2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBBU1NFUlQoaW5z
cGVjdG9yUHJvZ3JhbSk7CkBAIC02NDksNiArNjQxLDM2IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OndpbGxDb25maWd1cmVTd2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYgY29udGV4dEdQ
VSwKIAogICAgIG5vdGlmeURldmljZUZvclN3YXBDaGFpbihuZXdTd2FwQ2hhaW4pOwogfQorCit2
b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVE
ZXZpY2UmIGRldmljZSwgV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAgIGF1dG8gaW5z
cGVjdG9yQ2FudmFzID0gZmluZEluc3BlY3RvckNhbnZhcyhkZXZpY2UpOworICAgIEFTU0VSVChp
bnNwZWN0b3JDYW52YXMpOworICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
OjpjcmVhdGUocGlwZWxpbmUsICppbnNwZWN0b3JDYW52YXMpOworICAgIFN0cmluZyBwcm9ncmFt
SWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0tPmlkZW50aWZpZXIoKTsKKyAgICBtX2lkZW50
aWZpZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KHByb2dyYW1JZGVudGlmaWVyLCBXVEZNb3ZlKGlu
c3BlY3RvclByb2dyYW0pKTsKKworICAgIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNh
bnZhczo6UHJvZ3JhbVR5cGU+IHByb2dyYW1UeXBlOworICAgIGlmIChpczxXZWJHUFVDb21wdXRl
UGlwZWxpbmU+KHBpcGVsaW5lKSkKKyAgICAgICAgcHJvZ3JhbVR5cGUgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpDb21wdXRlOworICAgIGVsc2UgaWYgKGlzPFdl
YkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgIHByb2dyYW1UeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6UmVuZGVyOworICAgIEFTU0VS
VChwcm9ncmFtVHlwZSk7CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0
ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHByb2dyYW1JZGVudGlmaWVyLCBwcm9n
cmFtVHlwZS52YWx1ZSgpKTsKK30KKwordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERl
c3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgYXV0
byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3BlY3RvclByb2dyYW0ocGlwZWxpbmUpOworICAg
IGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5iaW5kUHJv
Z3JhbSgqaW5zcGVjdG9yUHJvZ3JhbSk7Cit9CiAjZW5kaWYKIAogdm9pZCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6c3RhcnRSZWNvcmRpbmcoSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMs
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlY29yZGluZzo6SW5pdGlhdG9yIGluaXRpYXRvciwgUmVj
b3JkaW5nT3B0aW9ucyYmIHJlY29yZGluZ09wdGlvbnMpCkBAIC02OTQsNyArNzE2LDE4IEBAIHZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNhbnZhc0Rlc3Ryb3llZFRpbWVyRmlyZWQoKQogICAg
IG1fcmVtb3ZlZENhbnZhc0lkZW50aWZpZXJzLmNsZWFyKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmNsZWFyQ2FudmFzRGF0YSgpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50
Ojpwcm9ncmFtRGVzdHJveWVkVGltZXJGaXJlZCgpCit7CisgICAgaWYgKCFtX3JlbW92ZWRQcm9n
cmFtSWRlbnRpZmllcnMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8m
IGlkZW50aWZpZXIgOiBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnMpCisgICAgICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtRGVsZXRlZChpZGVudGlmaWVyKTsKKworICAgIG1fcmVt
b3ZlZFByb2dyYW1JZGVudGlmaWVycy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50OjpyZXNldCgpCiB7CiAgICAgZm9yIChhdXRvJiBpbnNwZWN0b3JDYW52YXMgOiBtX2lk
ZW50aWZpZXJUb0luc3BlY3RvckNhbnZhcy52YWx1ZXMoKSkgewogICAgICAgICBpZiAoYXV0byog
Y29udGV4dCA9IGluc3BlY3RvckNhbnZhcy0+Y2FudmFzQ29udGV4dCgpKQpAQCAtNzAyLDEzICs3
MzUsMTQgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y2xlYXJDYW52YXNEYXRhKCkKICAg
ICB9CiAKICAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhcy5jbGVhcigpOwotI2lmIEVO
QUJMRShXRUJHTCkKLSAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0uY2xlYXIoKTsK
ICAgICBtX3JlbW92ZWRDYW52YXNJZGVudGlmaWVycy5jbGVhcigpOwotI2VuZGlmCi0KICAgICBp
ZiAobV9jYW52YXNEZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX2NhbnZhc0Rl
c3Ryb3llZFRpbWVyLnN0b3AoKTsKKworICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3Jh
bS5jbGVhcigpOworICAgIG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5jbGVhcigpOworICAg
IGlmIChtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3Byb2dy
YW1EZXN0cm95ZWRUaW1lci5zdG9wKCk7CiB9CiAKIEluc3BlY3RvckNhbnZhcyYgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmJpbmRDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCwg
Ym9vbCBjYXB0dXJlQmFja3RyYWNlKQpAQCAtODA1LDEzICs4MzksMTggQEAgUmVmUHRyPEluc3Bl
Y3RvckNhbnZhcz4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZpbmRJbnNwZWN0b3JDYW52YXMoV2Vi
R1BVRGV2aWNlJgogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCR0wpCi1TdHJpbmcgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OnVuYmluZFByb2dyYW0oSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSYgaW5z
cGVjdG9yUHJvZ3JhbSkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVuYmluZFByb2dyYW0o
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSYgaW5zcGVjdG9yUHJvZ3JhbSkKIHsKICAgICBTdHJpbmcg
aWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0uaWRlbnRpZmllcigpOwogICAgIG1faWRlbnRp
ZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5yZW1vdmUoaWRlbnRpZmllcik7CiAKLSAgICByZXR1cm4g
aWRlbnRpZmllcjsKKyAgICAvLyBUaGlzIGNhbiBiZSBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gR0Mu
IER1ZSB0byB0aGUgc2luZ2xlLXByb2Nlc3MgbW9kZWwgdXNlZCBpbiBXZWJLaXQxLCB0aGUKKyAg
ICAvLyBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQgZnJvbSBhIHRpbWVyIHRvIHByZXZlbnQgdGhl
IGZyb250ZW5kIGZyb20gbWFraW5nIEpTIGFsbG9jYXRpb25zCisgICAgLy8gd2hpbGUgdGhlIEdD
IGlzIHN0aWxsIGFjdGl2ZS4KKyAgICBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnMuYXBwZW5k
KGlkZW50aWZpZXIpOworCisgICAgaWYgKCFtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5pc0FjdGl2
ZSgpKQorICAgICAgICBtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
IH0KIAogUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZhc0FnZW50
Ojphc3NlcnRJbnNwZWN0b3JQcm9ncmFtKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBwcm9ncmFtSWQpCkBAIC04MjQsMTAgKzg2MywyMiBAQCBSZWZQdHI8SW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmFzc2VydEluc3BlY3RvclByb2dy
YW0oRXJybwogICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtOwogfQogCisjaWYgRU5BQkxFKFdF
QkdMKQogUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZhc0FnZW50
OjpmaW5kSW5zcGVjdG9yUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgZm9y
IChhdXRvJiBpbnNwZWN0b3JQcm9ncmFtIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFt
LnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICgmaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3JhbSgpID09
ICZwcm9ncmFtKQorICAgICAgICBpZiAoaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3JhbSgpID09ICZw
cm9ncmFtKQorICAgICAgICAgICAgcmV0dXJuIGluc3BlY3RvclByb2dyYW07CisgICAgfQorICAg
IHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorUmVmUHRy
PEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZhc0FnZW50OjpmaW5kSW5zcGVj
dG9yUHJvZ3JhbShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgZm9yIChhdXRvJiBp
bnNwZWN0b3JQcm9ncmFtIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnZhbHVlcygp
KSB7CisgICAgICAgIGlmIChpbnNwZWN0b3JQcm9ncmFtLT5waXBlbGluZSgpID09ICZwaXBlbGlu
ZSkKICAgICAgICAgICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtOwogICAgIH0KICAgICByZXR1
cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCBiYWVkZDQ2N2NkOS4uNTlkNTdhYjBlYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmgKQEAgLTMzLDEwICszMyw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPGluaXRpYWxpemVyX2xp
c3Q+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKICNpZiBFTkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAi
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oIgpAQCAtNTYsNiArNTMsNyBAQCBjbGFzcyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOwogI2lmIEVOQUJMRShXRUJHUFUpCiBjbGFzcyBHUFVDYW52YXND
b250ZXh0OwogY2xhc3MgV2ViR1BVRGV2aWNlOworY2xhc3MgV2ViR1BVUGlwZWxpbmU7CiBjbGFz
cyBXZWJHUFVTd2FwQ2hhaW47CiAjZW5kaWYKIApAQCAtODMsOCArODEsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoRXJyb3JTdHJpbmcmLCBp
bnQgY291bnQpOwogICAgIHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGNhbnZhc0lkLCBjb25zdCBpbnQqIGZyYW1lQ291bnQsIGNvbnN0IGludCogbWVtb3J5
TGltaXQpOwogICAgIHZvaWQgc3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY2FudmFzSWQpOwotICAgIHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmlu
ZyopOwotICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBw
cm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2Up
OworICAgIHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyogc291cmNlLCBP
cHRpb25hbDxTdHJpbmc+JiBlbnRyeVBvaW50KTsKKyAgICB2b2lkIHVwZGF0ZVNoYWRlcihFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5
cGUsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcqIGVudHJ5UG9pbnQpOwogICAg
IHZvaWQgc2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBwcm9ncmFtSWQsIGJvb2wgZGlzYWJsZWQpOwogICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbUhp
Z2hsaWdodGVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgaGln
aGxpZ2h0ZWQpOwogCkBAIC0xMDMsMTUgKzEwMSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25z
b2xlU3RhcnRSZWNvcmRpbmdDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpKU09iamVjdCogb3B0aW9ucyk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAg
IHZvaWQgZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBjb25z
dCBTdHJpbmcmKTsKLSAgICB2b2lkIGRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHZvaWQgd2lsbERlbGV0ZVByb2dyYW0oV2Vi
R0xQcm9ncmFtJik7Ci0gICAgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFByb2dy
YW0mKTsKLSAgICBib29sIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYp
OworICAgIHZvaWQgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdl
YkdMUHJvZ3JhbSYpOworICAgIGJvb2wgaXNXZWJHTFByb2dyYW1EaXNhYmxlZChXZWJHTFByb2dy
YW0mKTsKKyAgICBib29sIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9ncmFtJik7
CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIHZvaWQgZGlkQ3JlYXRlV2ViR1BVRGV2
aWNlKFdlYkdQVURldmljZSYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVEZXZpY2UoV2Vi
R1BVRGV2aWNlJik7CiAgICAgdm9pZCB3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQVUNhbnZhc0Nv
bnRleHQmLCBXZWJHUFVTd2FwQ2hhaW4mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkdQVVBpcGVs
aW5lKFdlYkdQVURldmljZSYsIFdlYkdQVVBpcGVsaW5lJik7CisgICAgdm9pZCB3aWxsRGVzdHJv
eVdlYkdQVVBpcGVsaW5lKFdlYkdQVVBpcGVsaW5lJik7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAg
LTEyMyw3ICsxMjMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRSZWNvcmRpbmcoSW5zcGVj
dG9yQ2FudmFzJiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6UmVjb3JkaW5nOjpJbml0aWF0b3IsIFJl
Y29yZGluZ09wdGlvbnMmJiA9IHsgfSk7CiAKICAgICB2b2lkIGNhbnZhc0Rlc3Ryb3llZFRpbWVy
RmlyZWQoKTsKLSAgICB2b2lkIGNsZWFyQ2FudmFzRGF0YSgpOworICAgIHZvaWQgcHJvZ3JhbURl
c3Ryb3llZFRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJlc2V0KCk7CisKICAgICBJbnNwZWN0b3JD
YW52YXMmIGJpbmRDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGJvb2wgY2FwdHVyZUJh
Y2t0cmFjZSk7CiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBJbnNwZWN0b3JDYW52YXMmIGJpbmRD
YW52YXMoV2ViR1BVRGV2aWNlJiwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKTsKQEAgLTEzNSwxMSAr
MTM3LDE0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3BlY3RvckNhbnZhcz4gZmluZEluc3Bl
Y3RvckNhbnZhcyhXZWJHUFVEZXZpY2UmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQkdMKQot
ICAgIFN0cmluZyB1bmJpbmRQcm9ncmFtKEluc3BlY3RvclNoYWRlclByb2dyYW0mKTsKKyAgICB2
b2lkIHVuYmluZFByb2dyYW0oSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSYpOwogICAgIFJlZlB0cjxJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQpOworI2lmIEVOQUJMRShXRUJHTCkKICAgICBSZWZQ
dHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gZmluZEluc3BlY3RvclByb2dyYW0oV2ViR0xQcm9n
cmFtJik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIFJlZlB0cjxJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtPiBmaW5kSW5zcGVjdG9yUHJvZ3JhbShXZWJHUFVQaXBlbGluZSYpOworI2Vu
ZGlmCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDYW52YXNGcm9udGVuZERpc3Bh
dGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OkNhbnZh
c0JhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwpAQCAtMTQ4LDE0ICsxNTMs
MTQgQEAgcHJpdmF0ZToKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiAKICAgICBIYXNoTWFw
PFN0cmluZywgUmVmUHRyPEluc3BlY3RvckNhbnZhcz4+IG1faWRlbnRpZmllclRvSW5zcGVjdG9y
Q2FudmFzOwotI2lmIEVOQUJMRShXRUJHTCkKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPElu
c3BlY3RvclNoYWRlclByb2dyYW0+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW07Ci0j
ZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRDYW52YXNJZGVudGlmaWVyczsKKyAg
ICBUaW1lciBtX2NhbnZhc0Rlc3Ryb3llZFRpbWVyOworCisgICAgSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4gbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9n
cmFtOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVyczsKKyAg
ICBUaW1lciBtX3Byb2dyYW1EZXN0cm95ZWRUaW1lcjsKIAogICAgIE9wdGlvbmFsPHNpemVfdD4g
bV9yZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQ7Ci0KLSAgICBUaW1lciBtX2NhbnZhc0Rl
c3Ryb3llZFRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGlu
ZS5oCmluZGV4IGNhZmM2ZTRlZjE4Li42NmUzMjYxOTc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaApA
QCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVVBp
cGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCiAj
aW5jbHVkZSAiV0hMU0xQcmVwYXJlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC00NCwxMCArNDYsMTYgQEAgc3RydWN0IEdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3I7CiB1c2luZyBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZSA9IE1U
TENvbXB1dGVQaXBlbGluZVN0YXRlOwogdXNpbmcgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTbWFy
dFB0ciA9IFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT47CiAKLWNsYXNzIEdQVUNv
bXB1dGVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXB1dGVQaXBlbGluZT4gewor
Y2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lIGZpbmFsIDogcHVibGljIEdQVVBpcGVsaW5lIHsKIHB1
YmxpYzoKKyAgICB2aXJ0dWFsIH5HUFVDb21wdXRlUGlwZWxpbmUoKTsKKwogICAgIHN0YXRpYyBS
ZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgY29u
c3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIEdQVUVycm9yU2NvcGVzJik7CiAKKyAg
ICBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAg
Ym9vbCByZWNvbXBpbGUoY29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yJiBjb21wdXRlU3RhZ2UpOworCiAgICAgY29uc3QgUGxhdGZvcm1Db21wdXRl
UGlwZWxpbmUqIHBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybUNvbXB1dGVQaXBlbGluZS5nZXQoKTsgfQogCiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNp
b25zIGNvbXB1dGVEaW1lbnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlRGltZW5zaW9u
czsgfQpAQCAtNjEsNCArNjksNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfR1BVUElQRUxJTkUoV2ViQ29yZTo6R1BVQ29tcHV0
ZVBpcGVsaW5lLCBpc0NvbXB1dGVQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQ
aXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlw
ZWxpbmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43Yzg4MTY1
NTQzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVQaXBlbGluZS5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgorCisjaWYgRU5BQkxFKFdF
QkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVQaXBlbGluZTo6fkdQVVBpcGVsaW5l
KCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVUGlwZWxpbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTQy
ZWU4ZDdhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUGlwZWxpbmUuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVQaXBlbGluZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEdQVVBpcGVsaW5lPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R1BVUGlw
ZWxpbmUoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb21wdXRlUGlwZWxpbmUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVm
aW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfR1BVUElQRUxJTkUoVG9WYWx1ZVR5cGVOYW1lLCBw
cmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1l
KSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkdQVVBpcGVsaW5lJiBw
aXBlbGluZSkgeyByZXR1cm4gcGlwZWxpbmUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJv
Z3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKaW5kZXggMGVlMWFmYTIzYTguLjI3YzA2MjhlZjdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJv
Z3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oCkBAIC0zOCwxMyAr
MzgsMTMgQEAgc3RydWN0IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvckJhc2UgewogfTsK
IAogc3RydWN0IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciA6IEdQVVByb2dyYW1tYWJs
ZVN0YWdlRGVzY3JpcHRvckJhc2UgewotICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRv
cihSZWY8Y29uc3QgR1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSwgY29uc3QgR1BVUHJvZ3JhbW1h
YmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSYgYmFzZSkKKyAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3IoUmVmPEdQVVNoYWRlck1vZHVsZT4mJiBtb2R1bGUsIGNvbnN0IEdQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvckJhc2UmIGJhc2UpCiAgICAgICAgIDogR1BVUHJvZ3JhbW1hYmxl
U3RhZ2VEZXNjcmlwdG9yQmFzZShiYXNlKQogICAgICAgICAsIG1vZHVsZSB7IFdURk1vdmUobW9k
dWxlKSB9CiAgICAgewogICAgIH0KIAotICAgIFJlZjxjb25zdCBHUFVTaGFkZXJNb2R1bGU+IG1v
ZHVsZTsKKyAgICBSZWY8R1BVU2hhZGVyTW9kdWxlPiBtb2R1bGU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZS5oCmluZGV4IDgzYzhlMWQ5ZDgxLi4yMTliMTVlZmI4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJl
bmRlclBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVJlbmRlclBpcGVsaW5lLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lmIEVOQUJMRShXRUJH
UFUpCiAKKyNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJs
ZVN0YWdlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
ci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CkBAIC00NiwxMCArNDgsMTYgQEAgY2xhc3MgR1BVRXJyb3JTY29wZXM7CiB1c2luZyBQbGF0
Zm9ybVJlbmRlclBpcGVsaW5lID0gTVRMUmVuZGVyUGlwZWxpbmVTdGF0ZTsKIHVzaW5nIFBsYXRm
b3JtUmVuZGVyUGlwZWxpbmVTbWFydFB0ciA9IFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0
YXRlPjsKIAotY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVS
ZW5kZXJQaXBlbGluZT4geworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMg
R1BVUGlwZWxpbmUgewogcHVibGljOgorICAgIHZpcnR1YWwgfkdQVVJlbmRlclBpcGVsaW5lKCk7
CisKICAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiB0cnlDcmVhdGUoY29uc3Qg
R1BVRGV2aWNlJiwgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgR1BVRXJyb3JT
Y29wZXMmKTsKIAorICAgIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKworICAgIGJvb2wgcmVjb21waWxlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVVBy
b2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciYgdmVydGV4U3RhZ2UsIGNvbnN0IE9wdGlvbmFsPEdQ
VVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcj4mIGZyYWdtZW50U3RhZ2UpOworCiAjaWYgVVNF
KE1FVEFMKQogICAgIE1UTERlcHRoU3RlbmNpbFN0YXRlICpkZXB0aFN0ZW5jaWxTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVwdGhTdGVuY2lsU3RhdGUuZ2V0KCk7IH0KICNlbmRpZgpAQCAtNzAs
NCArNzgsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfR1BVUElQRUxJTkUoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmUsIGlz
UmVuZGVyUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVyTW9kdWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVyTW9kdWxlLmgK
aW5kZXggODgzMDhkNjllMjMuLjljM2I0NmM0ODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hhZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5oCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4gdHJ5Q3Jl
YXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKTsK
IAogICAgIFBsYXRmb3JtU2hhZGVyTW9kdWxlKiBwbGF0Zm9ybVNoYWRlck1vZHVsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fd2hsc2xNb2R1bGUgPyBudWxscHRyIDogbV9wbGF0Zm9ybVNoYWRlck1vZHVs
ZS5nZXQoKTsgfQotICAgIGNvbnN0IFdITFNMOjpTaGFkZXJNb2R1bGUqIHdobHNsTW9kdWxlKCkg
Y29uc3QgeyByZXR1cm4gbV93aGxzbE1vZHVsZS5nZXQoKTsgfQorICAgIFdITFNMOjpTaGFkZXJN
b2R1bGUqIHdobHNsTW9kdWxlKCkgY29uc3QgeyByZXR1cm4gbV93aGxzbE1vZHVsZS5nZXQoKTsg
fQogCiBwcml2YXRlOgogICAgIEdQVVNoYWRlck1vZHVsZShQbGF0Zm9ybVNoYWRlck1vZHVsZVNt
YXJ0UHRyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCmluZGV4
IDdkOGY4YjI4MThmLi43Yjc4YzQ1NTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlw
ZWxpbmVNZXRhbC5tbQpAQCAtMTk4LDExICsxOTgsMjEgQEAgUmVmUHRyPEdQVUNvbXB1dGVQaXBl
bGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UKIH0KIAogR1BVQ29tcHV0ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUoUmV0YWluUHRy
PE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPiYmIHBpcGVsaW5lLCBXSExTTDo6Q29tcHV0ZURpbWVu
c2lvbnMgY29tcHV0ZURpbWVuc2lvbnMpCi0gICAgOiBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5l
KFdURk1vdmUocGlwZWxpbmUpKQorICAgIDogR1BVUGlwZWxpbmUoKQorICAgICwgbV9wbGF0Zm9y
bUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKICAgICAsIG1fY29tcHV0ZURpbWVu
c2lvbnMoY29tcHV0ZURpbWVuc2lvbnMpCiB7CiB9CiAKK0dQVUNvbXB1dGVQaXBlbGluZTo6fkdQ
VUNvbXB1dGVQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBHUFVDb21wdXRlUGlwZWxpbmU6
OnJlY29tcGlsZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29uc3QgR1BVUHJvZ3JhbW1hYmxl
U3RhZ2VEZXNjcmlwdG9yJiBjb21wdXRlU3RhZ2UpCit7CisgICAgVU5VU0VEX1BBUkFNKGRldmlj
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbXB1dGVTdGFnZSk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVJlbmRlclBpcGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQppbmRleCAyODI0MDg3NDk4OS4u
MjhjM2NkNGM1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCkBA
IC01MzAsMTMgKzUzMCwyNCBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBp
cGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsCiB9CiAKIEdQVVJlbmRl
clBpcGVsaW5lOjpHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3Rh
dGU+JiYgZGVwdGhTdGVuY2lsLCBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4mJiBw
aXBlbGluZSwgR1BVUHJpbWl0aXZlVG9wb2xvZ3kgdG9wb2xvZ3ksIE9wdGlvbmFsPEdQVUluZGV4
Rm9ybWF0PiBmb3JtYXQpCi0gICAgOiBtX2RlcHRoU3RlbmNpbFN0YXRlKFdURk1vdmUoZGVwdGhT
dGVuY2lsKSkKKyAgICA6IEdQVVBpcGVsaW5lKCkKKyAgICAsIG1fZGVwdGhTdGVuY2lsU3RhdGUo
V1RGTW92ZShkZXB0aFN0ZW5jaWwpKQogICAgICwgbV9wbGF0Zm9ybVJlbmRlclBpcGVsaW5lKFdU
Rk1vdmUocGlwZWxpbmUpKQogICAgICwgbV9wcmltaXRpdmVUb3BvbG9neSh0b3BvbG9neSkKICAg
ICAsIG1faW5kZXhGb3JtYXQoZm9ybWF0KQogewogfQogCitHUFVSZW5kZXJQaXBlbGluZTo6fkdQ
VVJlbmRlclBpcGVsaW5lKCkgPSBkZWZhdWx0OworCitib29sIEdQVVJlbmRlclBpcGVsaW5lOjpy
ZWNvbXBpbGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvciYgdmVydGV4U3RhZ2UsIGNvbnN0IE9wdGlvbmFsPEdQVVByb2dyYW1tYWJs
ZVN0YWdlRGVzY3JpcHRvcj4mIGZyYWdtZW50U3RhZ2UpCit7CisgICAgVU5VU0VEX1BBUkFNKGRl
dmljZSk7CisgICAgVU5VU0VEX1BBUkFNKHZlcnRleFN0YWdlKTsKKyAgICBVTlVTRURfUEFSQU0o
ZnJhZ21lbnRTdGFnZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMKaW5kZXggYTZhYTQxMTJmYmYuLjc4M2I4NWVjYzNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKQEAgLTI2Niw2ICsyNjYsOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJD
b21wb3NpdGVkIl0gPSAiQ29tcG9zaXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2Vk
Il0gPSAiQ29tcHJlc3NlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2lvbiJdID0gIkNv
bXByZXNzaW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbXByZXNzaW9uOiJdID0gIkNvbXByZXNz
aW9uOiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlIl0gPSAiQ29tcHV0ZSI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJDb21wdXRlIFBpcGVsaW5lICVkIl0gPSAiQ29tcHV0ZSBQaXBlbGluZSAlZCI7
Citsb2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlIFNoYWRlciJdID0gIkNvbXB1dGUgU2hhZGVyIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkNvbXB1dGVkIl0gPSAiQ29tcHV0ZWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siQ29uZGl0aW9uIl0gPSAiQ29uZGl0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbmRp
dGlvbmFsIGV4cHJlc3Npb24iXSA9ICJDb25kaXRpb25hbCBleHByZXNzaW9uIjsKQEAgLTQ2Myw2
ICs0NjYsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgdGhhdCBvbmx5IG9uZSBtYWluIGNv
bnRlbnQgc2VjdGlvbiBpcyB1c2VkIG9uIHRoZSBwYWdlLgogbG9jYWxpemVkU3RyaW5nc1siRW5z
dXJlIHRoYXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIl0gPSAiRW5zdXJl
IHRoYXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVudGVyZWQgRnVsbC1TY3JlZW4gTW9kZSJdID0gIkVudGVyZWQgRnVsbC1TY3JlZW4g
TW9kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRpcmUgUmVjb3JkaW5nIl0gPSAiRW50aXJlIFJl
Y29yZGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbnRyeSBwb2ludDogIl0gPSAiRW50cnkgcG9p
bnQ6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvciJdID0gIkVycm9yIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVycm9yOiAiXSA9ICJFcnJvcjogIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVycm9ycyJd
ID0gIkVycm9ycyI7CkBAIC04ODEsNiArODg1LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVtb3Zl
IFdhdGNoIEV4cHJlc3Npb24iXSA9ICJSZW1vdmUgV2F0Y2ggRXhwcmVzc2lvbiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJSZW1vdmUgcHJvYmUiXSA9ICJSZW1vdmUgcHJvYmUiOwogbG9jYWxpemVkU3Ry
aW5nc1siUmVtb3ZlIHRoaXMgYnJlYWtwb2ludCBhY3Rpb24iXSA9ICJSZW1vdmUgdGhpcyBicmVh
a3BvaW50IGFjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmVkIGRlc2NlbmRhbnQgIl0g
PSAiUmVtb3ZlZCBkZXNjZW5kYW50ICI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZW5kZXIgUGlwZWxp
bmUgJWQiXSA9ICJSZW5kZXIgUGlwZWxpbmUgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siUmVuZGVy
aW5nIEZyYW1lcyJdID0gIlJlbmRlcmluZyBGcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVw
ZWF0aW5nIExpbmVhciBHcmFkaWVudCJdID0gIlJlcGVhdGluZyBMaW5lYXIgR3JhZGllbnQiOwog
bG9jYWxpemVkU3RyaW5nc1siUmVwZWF0aW5nIFJhZGlhbCBHcmFkaWVudCJdID0gIlJlcGVhdGlu
ZyBSYWRpYWwgR3JhZGllbnQiOwpAQCAtOTk3LDcgKzEwMDIsNiBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJTZXNzaW9uIFN0b3JhZ2UiXSA9ICJTZXNzaW9uIFN0b3JhZ2UiOwogbG9jYWxpemVkU3RyaW5n
c1siU2V0IHRvIEF1dG9tYXRpY2FsbHkgQ29udGludWUiXSA9ICJTZXQgdG8gQXV0b21hdGljYWxs
eSBDb250aW51ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZXR0ZXIiXSA9ICJTZXR0ZXIiOwogbG9j
YWxpemVkU3RyaW5nc1siU2V0dGluZ3MiXSA9ICJTZXR0aW5ncyI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJTaGFkZXIiXSA9ICJTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIFByb2dyYW1z
Il0gPSAiU2hhZGVyIFByb2dyYW1zIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyBDb250ZW50
Il0gPSAiU2hhZG93IENvbnRlbnQiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZG93IENvbnRlbnQg
KCVzKSJdID0gIlNoYWRvdyBDb250ZW50ICglcykiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFn
ZXIuanMKaW5kZXggMzg5Y2I3MTMwNmQuLjM4ZjAxYmI2NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Nh
bnZhc01hbmFnZXIuanMKQEAgLTIzNCw3ICsyMzQsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xh
c3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYW52YXMuZW5hYmxl
RXh0ZW5zaW9uKGV4dGVuc2lvbik7CiAgICAgfQogCi0gICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFz
SWRlbnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIpCisgICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFz
SWRlbnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlKQogICAgIHsKICAgICAg
ICAgbGV0IGNhbnZhcyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50
aWZpZXIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChjYW52YXMpOwpAQCAtMjQzLDcgKzI0Mywx
MSBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRp
Zmllck1hcC5oYXMocHJvZ3JhbUlkZW50aWZpZXIpLCBgU2hhZGVyUHJvZ3JhbSBhbHJlYWR5IGV4
aXN0cyB3aXRoIGlkICR7cHJvZ3JhbUlkZW50aWZpZXJ9LmApOwogCi0gICAgICAgIGxldCBwcm9n
cmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZpZXIsIGNhbnZhcyk7Cisg
ICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBwcm9ncmFtVHlwZWAgZGlkIG5vdCBl
eGlzdCB5ZXQuCisgICAgICAgIGlmICghcHJvZ3JhbVR5cGUpCisgICAgICAgICAgICBwcm9ncmFt
VHlwZSA9IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOworCisgICAgICAgIGxl
dCBwcm9ncmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZpZXIsIHByb2dy
YW1UeXBlLCBjYW52YXMpOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1h
cC5zZXQocHJvZ3JhbS5pZGVudGlmaWVyLCBwcm9ncmFtKTsKIAogICAgICAgICBjYW52YXMuc2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKaW5kZXggYjkyOWYwNjIw
ZmEuLjdkNTZlYzE3MTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuQ2FudmFzID0g
Y2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dy
YW1Db2xsZWN0aW9uID0gbmV3IFdJLlNoYWRlclByb2dyYW1Db2xsZWN0aW9uOwogICAgICAgICB0
aGlzLl9yZWNvcmRpbmdDb2xsZWN0aW9uID0gbmV3IFdJLlJlY29yZGluZ0NvbGxlY3Rpb247CiAK
LSAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyID0gMTsKKyAgICAg
ICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyID0gbnVsbDsKIAogICAgICAg
ICB0aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2UgPSBudWxsOwogCkBAIC00MDksMTEgKzQwOSwxNSBA
QCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3Bw
ZWQsIHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlcn0pOwogICAgIH0KIAotICAgIG5leHRTaGFk
ZXJQcm9ncmFtRGlzcGxheU51bWJlcigpCisgICAgbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVt
YmVyRm9yUHJvZ3JhbVR5cGUocHJvZ3JhbVR5cGUpCiAgICAgewogICAgICAgICAvLyBDYWxsZWQg
ZnJvbSBXSS5TaGFkZXJQcm9ncmFtLgogCi0gICAgICAgIHJldHVybiB0aGlzLl9uZXh0U2hhZGVy
UHJvZ3JhbURpc3BsYXlOdW1iZXIrKzsKKyAgICAgICAgaWYgKCF0aGlzLl9uZXh0U2hhZGVyUHJv
Z3JhbURpc3BsYXlOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURp
c3BsYXlOdW1iZXIgPSB7fTsKKworICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3Bs
YXlOdW1iZXJbcHJvZ3JhbVR5cGVdID0gKHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51
bWJlcltwcm9ncmFtVHlwZV0gfHwgMCkgKyAxOworICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFNo
YWRlclByb2dyYW1EaXNwbGF5TnVtYmVyW3Byb2dyYW1UeXBlXTsKICAgICB9CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVy
UHJvZ3JhbS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9T
aGFkZXJQcm9ncmFtLmpzCmluZGV4IGMxZWQ5YzhhYzdmLi4zYzgxZjg4NmEyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dy
YW0uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1No
YWRlclByb2dyYW0uanMKQEAgLTI1LDI3ICsyNSw4MyBAQAogCiBXSS5TaGFkZXJQcm9ncmFtID0g
Y2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9y
KGlkZW50aWZpZXIsIGNhbnZhcykKKyAgICBjb25zdHJ1Y3RvcihpZGVudGlmaWVyLCBwcm9ncmFt
VHlwZSwgY2FudmFzKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaWRlbnRpZmllcik7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5Qcm9n
cmFtVHlwZSkuaW5jbHVkZXMocHJvZ3JhbVR5cGUpKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQo
Y2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoU2hh
ZGVyUHJvZ3JhbS5fY29udGV4dFR5cGVTdXBwb3J0c1Byb2dyYW1UeXBlKGNhbnZhcy5jb250ZXh0
VHlwZSwgcHJvZ3JhbVR5cGUpKTsKIAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMu
X2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgICAgICB0aGlzLl9wcm9ncmFtVHlwZSA9IHBy
b2dyYW1UeXBlOwogICAgICAgICB0aGlzLl9jYW52YXMgPSBjYW52YXM7Ci0gICAgICAgIHRoaXMu
X3VuaXF1ZURpc3BsYXlOdW1iZXIgPSBjYW52YXMubmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVt
YmVyKCk7CiAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZmFsc2U7CiAgICAgfQogCisgICAgLy8g
U3RhdGljCisKKyAgICBzdGF0aWMgX2NvbnRleHRUeXBlU3VwcG9ydHNQcm9ncmFtVHlwZShjb250
ZXh0VHlwZSwgcHJvZ3JhbVR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKGNvbnRleHRUeXBl
KSB7CisgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgorICAgICAgICBj
YXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CisgICAgICAgICAgICByZXR1cm4gcHJv
Z3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOworCisgICAgICAg
IGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVToKKyAgICAgICAgICAgIHJldHVybiBw
cm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlCisgICAgICAg
ICAgICAgICAgfHwgcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVu
ZGVyOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0YXRpYyBfcHJvZ3JhbVR5cGVTdXBwb3J0c1NoYWRl
clR5cGUocHJvZ3JhbVR5cGUsIHNoYWRlclR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHBy
b2dyYW1UeXBlKSB7CisgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21w
dXRlOgorICAgICAgICAgICAgcmV0dXJuIHNoYWRlclR5cGUgPT09IFNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5Db21wdXRlOworCisgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlw
ZS5SZW5kZXI6CisgICAgICAgICAgICByZXR1cm4gc2hhZGVyVHlwZSA9PT0gU2hhZGVyUHJvZ3Jh
bS5TaGFkZXJUeXBlLkZyYWdtZW50CisgICAgICAgICAgICAgICAgfHwgc2hhZGVyVHlwZSA9PT0g
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDsKKyAgICAgICAgfQorCisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICAvLyBQ
dWJsaWMKIAogICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRlbnRpZmllcjsg
fQorICAgIGdldCBwcm9ncmFtVHlwZSgpIHsgcmV0dXJuIHRoaXMuX3Byb2dyYW1UeXBlOyB9CiAg
ICAgZ2V0IGNhbnZhcygpIHsgcmV0dXJuIHRoaXMuX2NhbnZhczsgfQogCiAgICAgZ2V0IGRpc3Bs
YXlOYW1lKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUHJvZ3JhbSAlZCIp
LmZvcm1hdCh0aGlzLl91bmlxdWVEaXNwbGF5TnVtYmVyKTsKKyAgICAgICAgbGV0IGZvcm1hdCA9
IG51bGw7CisgICAgICAgIHN3aXRjaCAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlKSB7CisgICAg
ICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgorICAgICAgICBjYXNlIFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CisgICAgICAgICAgICBmb3JtYXQgPSBXSS5VSVN0cmlu
ZygiUHJvZ3JhbSAlZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdQVToKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fcHJvZ3Jh
bVR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21w
dXRlOgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IFdJLlVJU3RyaW5nKCJDb21wdXRlIFBpcGVs
aW5lICVkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNoYWRl
clByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IFdJ
LlVJU3RyaW5nKCJSZW5kZXIgUGlwZWxpbmUgJWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGZvcm1hdCk7CisgICAgICAgIGlmICghdGhpcy5fdW5pcXVlRGlzcGxheU51
bWJlcikKKyAgICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIgPSB0aGlzLl9jYW52
YXMubmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyRm9yUHJvZ3JhbVR5cGUodGhpcy5fcHJv
Z3JhbVR5cGUpOworICAgICAgICByZXR1cm4gZm9ybWF0LmZvcm1hdCh0aGlzLl91bmlxdWVEaXNw
bGF5TnVtYmVyKTsKICAgICB9CiAKICAgICBnZXQgZGlzYWJsZWQoKQpAQCAtNTUsNiArMTExLDEy
IEBAIFdJLlNoYWRlclByb2dyYW0gPSBjbGFzcyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAKICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpCiAgICAgeworICAgICAgICBpZiAodGhp
cy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dy
YW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNv
bnRleHRUeXBlLldlYkdMMik7CisKICAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkID09PSBkaXNh
YmxlZCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjUsNjcgKzEyNyw1OSBAQCBXSS5TaGFk
ZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhTaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2Fi
bGVkQ2hhbmdlZCk7CiAgICAgfQogCi0gICAgcmVxdWVzdFZlcnRleFNoYWRlclNvdXJjZShjYWxs
YmFjaykKKyAgICByZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclR5cGUsIGNhbGxiYWNrKQogICAg
IHsKLSAgICAgICAgdGhpcy5fcmVxdWVzdFNoYWRlclNvdXJjZShDYW52YXNBZ2VudC5TaGFkZXJU
eXBlLlZlcnRleCwgY2FsbGJhY2spOworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFs
dWVzKFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZSkuaW5jbHVkZXMoc2hhZGVyVHlwZSkpOworICAg
ICAgICBjb25zb2xlLmFzc2VydChTaGFkZXJQcm9ncmFtLl9wcm9ncmFtVHlwZVN1cHBvcnRzU2hh
ZGVyVHlwZSh0aGlzLl9wcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSkpOworCisgICAgICAgIC8vIENP
TVBBVElCSUxJVFkgKGlPUyAxMyk6IGBjb250ZW50YCB3YXMgcmVuYW1lZCB0byBgc291cmNlYC4K
KyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzKTogYGVudHJ5UG9pbnRgYCBkaWQgbm90
IGV4aXN0IHlldC4KKyAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZSh0aGlz
Ll9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCAoZXJyb3IsIHNvdXJjZSwgZW50cnlQb2ludCkgPT4g
eworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgV0kucmVwb3J0SW50
ZXJuYWxFcnJvcihlcnJvcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgbnVsbCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBj
YWxsYmFjayhzb3VyY2UsIGVudHJ5UG9pbnQpOworICAgICAgICB9KTsKICAgICB9CiAKLSAgICBy
ZXF1ZXN0RnJhZ21lbnRTaGFkZXJTb3VyY2UoY2FsbGJhY2spCisgICAgdXBkYXRlU2hhZGVyKHNo
YWRlclR5cGUsIHNvdXJjZSwge2VudHJ5UG9pbnR9ID0ge30pCiAgICAgewotICAgICAgICB0aGlz
Ll9yZXF1ZXN0U2hhZGVyU291cmNlKENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsIGNh
bGxiYWNrKTsKLSAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hh
ZGVyUHJvZ3JhbS5TaGFkZXJUeXBlKS5pbmNsdWRlcyhzaGFkZXJUeXBlKSk7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KFNoYWRlclByb2dyYW0uX3Byb2dyYW1UeXBlU3VwcG9ydHNTaGFkZXJUeXBl
KHRoaXMuX3Byb2dyYW1UeXBlLCBzaGFkZXJUeXBlKSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCghIWVudHJ5UG9pbnQpID09PSAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR1BVKSk7CiAKLSAgICB1cGRhdGVWZXJ0ZXhTaGFkZXIoc291cmNl
KQotICAgIHsKLSAgICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKENhbnZhc0FnZW50LlNoYWRlclR5
cGUuVmVydGV4LCBzb3VyY2UpOwotICAgIH0KLQotICAgIHVwZGF0ZUZyYWdtZW50U2hhZGVyKHNv
dXJjZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLkZyYWdtZW50LCBzb3VyY2UpOworICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFk
ZXIodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCBlbnRyeVBvaW50KTsKICAg
ICB9CiAKICAgICBzaG93SGlnaGxpZ2h0KCkKICAgICB7Ci0gICAgICAgIGNvbnN0IGhpZ2hsaWdo
dGVkID0gdHJ1ZTsKLSAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdo
dGVkKHRoaXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVkLCAoZXJyb3IpID0+IHsKLSAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwotICAgICAgICB9KTsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQodGhpcy5fcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3Jh
bVR5cGUuUmVuZGVyKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fY2FudmFzLmNvbnRl
eHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgdGhpcy5fY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKworICAgICAgICBD
YW52YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQodGhpcy5faWRlbnRpZmllciwg
dHJ1ZSk7CiAgICAgfQogCiAgICAgaGlkZUhpZ2hsaWdodCgpCiAgICAgewotICAgICAgICBjb25z
dCBoaWdobGlnaHRlZCA9IGZhbHNlOwotICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFkZXJQcm9n
cmFtSGlnaGxpZ2h0ZWQodGhpcy5faWRlbnRpZmllciwgaGlnaGxpZ2h0ZWQsIChlcnJvcikgPT4g
ewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWVycm9yLCBlcnJvcik7Ci0gICAgICAgIH0p
OwotICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcHJvZ3JhbVR5cGUgPT09IFNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wg
fHwgdGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2Vi
R0wyKTsKIAotICAgIC8vIFByaXZhdGUKLQotICAgIF9yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRl
clR5cGUsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRl
clNvdXJjZSh0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCAoZXJyb3IsIGNvbnRlbnQpID0+
IHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51
bGwpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgY2FsbGJhY2soY29udGVudCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIF91cGRhdGVT
aGFkZXIoc2hhZGVyVHlwZSwgc291cmNlKQotICAgIHsKLSAgICAgICAgQ2FudmFzQWdlbnQudXBk
YXRlU2hhZGVyKHRoaXMuX2lkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IsIGVycm9yKTsKLSAgICAgICAg
fSk7CisgICAgICAgIENhbnZhc0FnZW50LnNldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZCh0aGlz
Ll9pZGVudGlmaWVyLCBmYWxzZSk7CiAgICAgfQogfTsKIAorV0kuU2hhZGVyUHJvZ3JhbS5Qcm9n
cmFtVHlwZSA9IHsKKyAgICBDb21wdXRlOiAiY29tcHV0ZSIsCisgICAgUmVuZGVyOiAicmVuZGVy
IiwKK307CisKIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZSA9IHsKLSAgICBGcmFnbWVudDog
InNoYWRlci10eXBlLWZyYWdtZW50IiwKLSAgICBWZXJ0ZXg6ICJzaGFkZXItdHlwZS12ZXJ0ZXgi
LAorICAgIENvbXB1dGU6ICJjb21wdXRlIiwKKyAgICBGcmFnbWVudDogImZyYWdtZW50IiwKKyAg
ICBWZXJ0ZXg6ICJ2ZXJ0ZXgiLAogfTsKIAogV0kuU2hhZGVyUHJvZ3JhbS5FdmVudCA9IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0Nh
bnZhc09ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKaW5kZXggM2U1ZGQ2YzJhNzIuLjZmNTM1NzQ0MzQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9D
YW52YXNPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9DYW52YXNPYnNlcnZlci5qcwpAQCAtNjcsOSArNjcsOSBAQCBXSS5DYW52YXNP
YnNlcnZlciA9IGNsYXNzIENhbnZhc09ic2VydmVyCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
ZXh0ZW5zaW9uRW5hYmxlZChjYW52YXNJZCwgZXh0ZW5zaW9uKTsKICAgICB9CiAKLSAgICBwcm9n
cmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkKQorICAgIHByb2dyYW1DcmVhdGVkKGNhbnZh
c0lkLCBwcm9ncmFtSWQsIHByb2dyYW1UeXBlKQogICAgIHsKLSAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5wcm9ncmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkKTsKKyAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5wcm9ncmFtQ3JlYXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlw
ZSk7CiAgICAgfQogCiAgICAgcHJvZ3JhbURlbGV0ZWQocHJvZ3JhbUlkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKaW5kZXggNTVlZjQxZjgyZjUuLjBlNDgwNjMx
MDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKQEAgLTIz
LDUwICsyMyw1MiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LS5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyIHsKKy5j
b250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyIHsKKyAgICBkaXNwbGF5OiBmbGV4
OworICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgcG9zaXRpb246IGFic29sdXRlOwog
ICAgIHRvcDogMDsKICAgICBib3R0b206IDA7Ci0KLSAgICAtLWJvcmRlci1zdGFydC1zdHlsZTog
MXB4IHNvbGlkIGxpZ2h0Z3JleTsKIH0KIAotYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNo
YWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlci52ZXJ0ZXgsCi1ib2R5W2Rpcj1ydGxd
IC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLmZyYWdt
ZW50IHsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmNvbXB1dGUgewor
ICAgIHJpZ2h0OiAwOworICAgIGxlZnQ6IDA7Cit9CisKK2JvZHlbZGlyPWx0cl0gLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4LAorYm9keVtkaXI9cnRsXSAuY29u
dGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5mcmFnbWVudCB7CiAgICAgd2lkdGg6
IGNhbGMoNTAlIC0gMXB4KTsKICAgICBsZWZ0OiAwOwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250
ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLmZyYWdtZW50LAot
Ym9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9y
LnNoYWRlci52ZXJ0ZXggeworYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9n
cmFtID4gLnNoYWRlci5mcmFnbWVudCwKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFk
ZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4IHsKICAgICB3aWR0aDogY2FsYyg1MCUgKyAxcHgp
OwogICAgIHJpZ2h0OiAwOwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVy
LXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsgLnRleHQtZWRpdG9yLnNoYWRlciB7Ci0g
ICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJvcmRlci1zdGFydC1zdHlsZSk7CisuY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciArIC5zaGFkZXIgeworICAgIGJvcmRlci1sZWZ0OiAx
cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKIH0KIAotYm9keVtkaXI9cnRsXSAuY29udGVu
dC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciArIC50ZXh0LWVkaXRv
ci5zaGFkZXIgewotICAgIGJvcmRlci1yaWdodDogdmFyKC0tYm9yZGVyLXN0YXJ0LXN0eWxlKTsK
LX0KLQotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIg
PiAudHlwZS10aXRsZSB7CisuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciA+
IGhlYWRlciA+ICogewogICAgIHBhZGRpbmc6IDJweCA0cHg7Ci0gICAgYmFja2dyb3VuZC1jb2xv
cjogaHNsKDAsIDAlLCA5NSUpOwogICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdy
ZXk7CiB9CiAKLS5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hh
ZGVyID4gLkNvZGVNaXJyb3IgewotICAgIHRvcDogMThweDsKKy5jb250ZW50LXZpZXcuc2hhZGVy
LXByb2dyYW0gPiAuc2hhZGVyID4gaGVhZGVyID4gLnNoYWRlci10eXBlIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7Cit9CisKKy5jb250ZW50LXZpZXcuc2hhZGVyLXBy
b2dyYW0gPiAuc2hhZGVyID4gaGVhZGVyID4gLmVudHJ5LXBvaW50ID4gaW5wdXQgeworICAgIHBh
ZGRpbmc6IDAgMXB4OworICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlOworICAgIGZv
bnQtc2l6ZTogMTFweDsKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykg
ewotICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVy
IHsKLSAgICAgICAgLS1ib3JkZXItc3RhcnQtc3R5bGU6IDFweCBzb2xpZCB2YXIoLS10ZXh0LWNv
bG9yLXF1YXRlcm5hcnkpOwotICAgIH0KLQotICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLnR5cGUtdGl0bGUgeworICAgIC5jb250ZW50LXZp
ZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyID4gaGVhZGVyIHsKICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7CiAgICAgICAgIGJvcmRlci1ib3R0b20t
Y29sb3I6IHZhcigtLXRleHQtY29sb3ItcXVhdGVybmFyeSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCmluZGV4IGRkOTI1NGVkNWJlLi5iOGVkZGJiNmE4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcwpAQCAtMzEsMTMg
KzMxLDI0IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dy
YW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICAgICAgc3VwZXIoc2hhZGVy
UHJvZ3JhbSk7CiAKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
bmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJl
c2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3Jl
ZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0
aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoQ29udGVudCwgdGhpcyk7CisKICAgICAgICAg
bGV0IGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIgPSBuZXcgRGVib3VuY2VyKChldmVudCkgPT4g
ewogICAgICAgICAgICAgdGhpcy5fY29udGVudERpZENoYW5nZShldmVudCk7CiAgICAgICAgIH0p
OwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzaGFkZXItcHJvZ3JhbSIp
OworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXByb2dyYW0iLCB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnByb2dyYW1UeXBlKTsKIAogICAgICAgICBsZXQgY3JlYXRl
RWRpdG9yID0gKHNoYWRlclR5cGUpID0+IHsKKyAgICAgICAgICAgIGxldCBjb250YWluZXIgPSB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwor
CisgICAgICAgICAgICBsZXQgaGVhZGVyID0gY29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICAgICAgbGV0IHNoYWRlclR5cGVD
b250YWluZXIgPSBoZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
IikpOworICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJzaGFk
ZXItdHlwZSIpOworCiAgICAgICAgICAgICBsZXQgdGV4dEVkaXRvciA9IG5ldyBXSS5UZXh0RWRp
dG9yOwogICAgICAgICAgICAgdGV4dEVkaXRvci5yZWFkT25seSA9IGZhbHNlOwogICAgICAgICAg
ICAgdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlRleHRFZGl0b3IuRXZlbnQuRm9jdXNl
ZCwgdGhpcy5fZWRpdG9yRm9jdXNlZCwgdGhpcyk7CkBAIC00NSwzMiArNTYsNzYgQEAgV0kuU2hh
ZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgICAgIHRleHRFZGl0b3IuYWRkRXZlbnRMaXN0ZW5l
cihXSS5UZXh0RWRpdG9yLkV2ZW50LkNvbnRlbnREaWRDaGFuZ2UsIChldmVudCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIuZGVsYXlGb3JUaW1lKDI1MCwg
ZXZlbnQpOwogICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgICAgICB0ZXh0RWRpdG9yLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyIik7Ci0KLSAgICAgICAgICAgIGxldCBzaGFkZXJU
eXBlQ29udGFpbmVyID0gdGV4dEVkaXRvci5lbGVtZW50Lmluc2VydEFkamFjZW50RWxlbWVudCgi
YWZ0ZXJiZWdpbiIsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICAgICAgICAg
IHNoYWRlclR5cGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgidHlwZS10aXRsZSIpOwogCiAgICAg
ICAgICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgV0kuU2hhZGVy
UHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKLSAgICAgICAgICAgICAgICBzaGFkZXJUeXBlQ29u
dGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleCBTaGFkZXIiKTsKLSAgICAg
ICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gIngtc2hhZGVyL3gtdmVydGV4IjsKLSAg
ICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmVydGV4Iik7
CisgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5Db21wdXRlOgor
ICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0
cmluZygiQ29tcHV0ZSBTaGFkZXIiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVU
eXBlID0gIngtc2hhZGVyL3gtdmVydGV4IjsgLy8gVHJlYXQgdGhpcyBsaWtlIGEgdmVydGV4IHNo
YWRlciBmb3IgQ29kZU1pcnJvci4KICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAg
ICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQ6CiAgICAgICAgICAg
ICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJGcmFn
bWVudCBTaGFkZXIiKTsKICAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gIngt
c2hhZGVyL3gtZnJhZ21lbnQiOwotICAgICAgICAgICAgICAgIHRleHRFZGl0b3IuZWxlbWVudC5j
bGFzc0xpc3QuYWRkKCJmcmFnbWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXg6CisgICAgICAg
ICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJW
ZXJ0ZXggU2hhZGVyIik7CisgICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4
LXNoYWRlci94LXZlcnRleCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0ZXh0RWRpdG9yKTsKLSAgICAgICAgICAg
IHJldHVybiB0ZXh0RWRpdG9yOworICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRl
eHRFZGl0b3IuZWxlbWVudCk7CisgICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgi
c2hhZGVyIiwgc2hhZGVyVHlwZSk7CisKKyAgICAgICAgICAgIGxldCBlbnRyeVBvaW50SW5wdXQg
PSBudWxsOworICAgICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKSB7CisgICAgICAgICAg
ICAgICAgbGV0IGVudHJ5UG9pbnRDb250YWluZXIgPSBoZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRDb250
YWluZXIuY2xhc3NMaXN0LmFkZCgiZW50cnktcG9pbnQiKTsKKyAgICAgICAgICAgICAgICBlbnRy
eVBvaW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdJLlVJ
U3RyaW5nKCJFbnRyeSBwb2ludDogIikpKTsKKworICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRJ
bnB1dCA9IGVudHJ5UG9pbnRDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKSk7CisgICAgICAgICAgICAgICAgZW50cnlQb2ludElucHV0LmFkZEV2ZW50
TGlzdGVuZXIoImlucHV0IiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRl
bnREaWRDaGFuZ2VEZWJvdW5jZXIuZGVsYXlGb3JUaW1lKDI1MCwgZXZlbnQpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4ge2NvbnRhaW5l
ciwgdGV4dEVkaXRvciwgZW50cnlQb2ludElucHV0fTsKICAgICAgICAgfTsKIAotICAgICAgICB0
aGlzLl92ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJU
eXBlLlZlcnRleCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9y
KFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7Ci0gICAgICAgIHRoaXMuX2xh
c3RBY3RpdmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CisgICAgICAgIHN3aXRjaCAodGhp
cy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRl
clByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZTogeworICAgICAgICAgICAgbGV0IGNvbXB1dGVF
ZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUp
OworICAgICAgICAgICAgdGhpcy5fY29tcHV0ZUNvbnRhaW5lciA9IGNvbXB1dGVFZGl0b3IuY29u
dGFpbmVyOworICAgICAgICAgICAgdGhpcy5fY29tcHV0ZUVkaXRvciA9IGNvbXB1dGVFZGl0b3Iu
dGV4dEVkaXRvcjsKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50SW5wdXQgPSBj
b21wdXRlRWRpdG9yLmVudHJ5UG9pbnRJbnB1dDsKKworICAgICAgICAgICAgdGhpcy5fbGFzdEFj
dGl2ZUVkaXRvciA9IHRoaXMuX2NvbXB1dGVFZGl0b3I7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorCisgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5k
ZXI6IHsKKyAgICAgICAgICAgIGxldCB2ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hh
ZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCk7CisgICAgICAgICAgICB0aGlzLl92ZXJ0ZXhD
b250YWluZXIgPSB2ZXJ0ZXhFZGl0b3IuY29udGFpbmVyOworICAgICAgICAgICAgdGhpcy5fdmVy
dGV4RWRpdG9yID0gdmVydGV4RWRpdG9yLnRleHRFZGl0b3I7CisgICAgICAgICAgICB0aGlzLl92
ZXJ0ZXhFbnRyeVBvaW50SW5wdXQgPSB2ZXJ0ZXhFZGl0b3IuZW50cnlQb2ludElucHV0OworCisg
ICAgICAgICAgICBsZXQgZnJhZ21lbnRFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJv
Z3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAgICAgICAgIHRoaXMuX2ZyYWdtZW50Q29u
dGFpbmVyID0gZnJhZ21lbnRFZGl0b3IuY29udGFpbmVyOworICAgICAgICAgICAgdGhpcy5fZnJh
Z21lbnRFZGl0b3IgPSBmcmFnbWVudEVkaXRvci50ZXh0RWRpdG9yOworICAgICAgICAgICAgdGhp
cy5fZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQgPSBmcmFnbWVudEVkaXRvci5lbnRyeVBvaW50SW5w
dXQ7CisKKyAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhF
ZGl0b3I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgLy8gUHVibGljCisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBbdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKICAgICB9CiAK
ICAgICAvLyBQcm90ZWN0ZWQKQEAgLTc5LDIyICsxMzQsMzIgQEAgV0kuU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29u
dGVudFYKICAgICB7CiAgICAgICAgIHN1cGVyLnNob3duKCk7CiAKLSAgICAgICAgdGhpcy5fdmVy
dGV4RWRpdG9yLnNob3duKCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnNob3duKCk7
CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgewor
ICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAg
ICAgICAgIHRoaXMuX2NvbXB1dGVFZGl0b3Iuc2hvd24oKTsKKyAgICAgICAgICAgIGJyZWFrOwog
Ci0gICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFZlcnRleFNoYWRlclNvdXJj
ZSgoY29udGVudCkgPT4gewotICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnN0cmluZyA9
IGNvbnRlbnQgfHwgIiI7Ci0gICAgICAgIH0pOworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnNo
b3duKCk7CisgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KIAotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnJlcXVlc3RGcmFnbWVudFNoYWRlclNvdXJjZSgoY29udGVudCkgPT4gewotICAgICAgICAgICAg
dGhpcy5fZnJhZ21lbnRFZGl0b3Iuc3RyaW5nID0gY29udGVudCB8fCAiIjsKLSAgICAgICAgfSk7
CisgICAgICAgIHRoaXMuX3JlZnJlc2hDb250ZW50KCk7CiAgICAgfQogCiAgICAgaGlkZGVuKCkK
ICAgICB7Ci0gICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5oaWRkZW4oKTsKLSAgICAgICAgdGhp
cy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNl
bnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFZGl0b3IuaGlk
ZGVuKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLmhp
ZGRlbigpOworICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQogCiAgICAgICAgIHN1cGVyLmhpZGRlbigpOwogICAg
IH0KQEAgLTEwNiwxNCArMTcxLDM0IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNs
YXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBn
ZXQgc2F2ZURhdGEoKQogICAgIHsKLSAgICAgICAgbGV0IGZpbGVuYW1lID0gV0kuVUlTdHJpbmco
IlNoYWRlciIpOwotICAgICAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9PT0gdGhpcy5f
dmVydGV4RWRpdG9yKQotICAgICAgICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiVmVydGV4
Iik7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09IHRoaXMuX2Zy
YWdtZW50RWRpdG9yKQorICAgICAgICBsZXQgZmlsZW5hbWUgPSAiIjsKKyAgICAgICAgc3dpdGNo
ICh0aGlzLl9sYXN0QWN0aXZlRWRpdG9yKSB7CisgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUVk
aXRvcjoKKyAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIkNvbXB1dGUiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaXMuX2ZyYWdtZW50RWRpdG9yOgogICAg
ICAgICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRvcjoKKyAgICAgICAgICAgIGZp
bGVuYW1lID0gV0kuVUlTdHJpbmcoIlZlcnRleCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmlsZW5hbWUpOworCisgICAgICAgIGxldCBl
eHRlbnNpb24gPSAiIjsKKyAgICAgICAgc3dpdGNoICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNh
bnZhcy5jb250ZXh0VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTDoKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAg
ICAgICAgZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi5nbHNsIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVOgor
ICAgICAgICAgICAgZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi53aGxzbCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQoZXh0
ZW5zaW9uKTsKIAogICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgdXJsOiBXSS5GaWxlVXRp
bGl0aWVzLmluc3BlY3RvclVSTEZvckZpbGVuYW1lKGZpbGVuYW1lICsgIi5nbHNsIiksCisgICAg
ICAgICAgICB1cmw6IFdJLkZpbGVVdGlsaXRpZXMuaW5zcGVjdG9yVVJMRm9yRmlsZW5hbWUoZmls
ZW5hbWUgKyBleHRlbnNpb24pLAogICAgICAgICAgICAgY29udGVudDogdGhpcy5fbGFzdEFjdGl2
ZUVkaXRvci5zdHJpbmcsCiAgICAgICAgICAgICBmb3JjZVNhdmVBczogdHJ1ZSwKICAgICAgICAg
fTsKQEAgLTE3MSw2ICsyNTYsNzggQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xh
c3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgIC8v
IFByaXZhdGUKIAorICAgIF9yZWZyZXNoQ29udGVudCgpCisgICAgeworICAgICAgICBsZXQgY3Jl
YXRlQ2FsbGJhY2sgPSAoY29udGFpbmVyLCB0ZXh0RWRpdG9yLCBlbnRyeVBvaW50SW5wdXQpID0+
IHsKKyAgICAgICAgICAgIHJldHVybiAoc291cmNlLCBlbnRyeVBvaW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKHNvdXJjZSA9PT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBjb250
YWluZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5wYXJlbnROb2RlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGFpbmVyKSB7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgdGhpcy5fY29tcHV0ZUNvbnRhaW5lcjoKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSB0aGlzLl92ZXJ0ZXhDb250YWluZXI6CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVs
ZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmJlZ2luIiwgY29udGFpbmVyKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
dGhpcy5fZnJhZ21lbnRDb250YWluZXI6CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVs
ZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLCBjb250YWluZXIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLnN0cmluZyA9IHNvdXJj
ZSB8fCAiIjsKKworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghIWVudHJ5UG9pbnQp
ID09PSAoISFlbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnlQb2lu
dElucHV0KQorICAgICAgICAgICAgICAgICAgICBlbnRyeVBvaW50SW5wdXQudmFsdWUgPSBlbnRy
eVBvaW50IHx8ICIiOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICBzd2l0
Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBX
SS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6CisgICAgICAgICAgICB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFk
ZXJUeXBlLkNvbXB1dGUsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2NvbXB1dGVDb250YWluZXIsIHRo
aXMuX2NvbXB1dGVFZGl0b3IsIHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5
cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0U2hh
ZGVyU291cmNlKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsIGNyZWF0ZUNhbGxi
YWNrKHRoaXMuX3ZlcnRleENvbnRhaW5lciwgdGhpcy5fdmVydGV4RWRpdG9yLCB0aGlzLl92ZXJ0
ZXhFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
cmVxdWVzdFNoYWRlclNvdXJjZShXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQs
IGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2ZyYWdtZW50Q29udGFpbmVyLCB0aGlzLl9mcmFnbWVudEVk
aXRvciwgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgfQorCisgICAg
X3VwZGF0ZVNoYWRlcihzaGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgbGV0IHVwZGF0ZVNoYWRl
ciA9ICh0ZXh0RWRpdG9yLCBlbnRyeVBvaW50SW5wdXQpID0+IHsKKyAgICAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHRleHRFZGl0b3IpOworCisgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHt9Owor
ICAgICAgICAgICAgaWYgKGVudHJ5UG9pbnRJbnB1dCkKKyAgICAgICAgICAgICAgICBvcHRpb25z
LmVudHJ5UG9pbnQgPSBlbnRyeVBvaW50SW5wdXQudmFsdWU7CisgICAgICAgICAgICB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUu
RnJhZ21lbnQsIHRleHRFZGl0b3Iuc3RyaW5nLCBvcHRpb25zKTsKKyAgICAgICAgfTsKKworICAg
ICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFt
LlNoYWRlclR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHVwZGF0ZVNoYWRlcih0aGlzLl9jb21w
dXRlRWRpdG9yLCB0aGlzLl9jb21wdXRlRW50cnlQb2ludElucHV0KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVu
dDoKKyAgICAgICAgICAgIHVwZGF0ZVNoYWRlcih0aGlzLl9mcmFnbWVudEVkaXRvciwgdGhpcy5f
ZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKKyAgICAgICAgICAgIHVw
ZGF0ZVNoYWRlcih0aGlzLl92ZXJ0ZXhFZGl0b3IsIHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRJbnB1
dCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFz
c2VydCgpOworICAgIH0KKwogICAgIF9lZGl0b3JGb2N1c2VkKGV2ZW50KQogICAgIHsKICAgICAg
ICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09IGV2ZW50LnRhcmdldCkKQEAgLTE5Nyw5
ICszNTQsMjMgQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJv
Z3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKIAogICAgIF9jb250ZW50RGlkQ2hh
bmdlKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fdmVy
dGV4RWRpdG9yKQotICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC51cGRhdGVWZXJ0
ZXhTaGFkZXIodGhpcy5fdmVydGV4RWRpdG9yLnN0cmluZyk7Ci0gICAgICAgIGVsc2UgaWYgKGV2
ZW50LnRhcmdldCA9PT0gdGhpcy5fZnJhZ21lbnRFZGl0b3IpCi0gICAgICAgICAgICB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnVwZGF0ZUZyYWdtZW50U2hhZGVyKHRoaXMuX2ZyYWdtZW50RWRpdG9y
LnN0cmluZyk7CisgICAgICAgIHN3aXRjaCAoZXZlbnQudGFyZ2V0KSB7CisgICAgICAgIGNhc2Ug
dGhpcy5fY29tcHV0ZUVkaXRvcjoKKyAgICAgICAgY2FzZSB0aGlzLl9jb21wdXRlRW50cnlQb2lu
dElucHV0OgorICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKFdJLlNoYWRlclByb2dyYW0u
U2hhZGVyVHlwZS5Db21wdXRlKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNl
IHRoaXMuX2ZyYWdtZW50RWRpdG9yOgorICAgICAgICBjYXNlIHRoaXMuX2ZyYWdtZW50RW50cnlQ
b2ludElucHV0OgorICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
Y2FzZSB0aGlzLl92ZXJ0ZXhFZGl0b3I6CisgICAgICAgIGNhc2UgdGhpcy5fdmVydGV4RW50cnlQ
b2ludElucHV0OgorICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5WZXJ0ZXgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbVRyZWVFbGVt
ZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVy
UHJvZ3JhbVRyZWVFbGVtZW50LmpzCmluZGV4IGNkYTc1YjQxNTI0Li44N2Q5ZTQ4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVy
UHJvZ3JhbVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcwpAQCAtMzIsMTAgKzMyLDEz
IEBAIFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudCA9IGNsYXNzIFNoYWRlclByb2dyYW1UcmVl
RWxlbWVudCBleHRlbmRzIFdJLkdlbmVyYWxUCiAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVs
bDsKICAgICAgICAgc3VwZXIoInNoYWRlci1wcm9ncmFtIiwgc2hhZGVyUHJvZ3JhbS5kaXNwbGF5
TmFtZSwgc3VidGl0bGUsIHNoYWRlclByb2dyYW0pOwogCi0gICAgICAgIHRoaXMuX2Rpc2FibGVk
SW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgIHRo
aXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkRpc2FibGUgUHJv
Z3JhbSIpOwotICAgICAgICB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50Q2xpY2tlZC5iaW5kKHRoaXMp
KTsKLSAgICAgICAgdGhpcy5zdGF0dXMgPSB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudDsKKyAg
ICAgICAgbGV0IGNvbnRleHRUeXBlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5jYW52YXMuY29u
dGV4dFR5cGU7CisgICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdMIHx8IGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wy
KSB7CisgICAgICAgICAgICB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1l
bnQudGl0bGUgPSBXSS5VSVN0cmluZygiRGlzYWJsZSBQcm9ncmFtIik7CisgICAgICAgICAgICB0
aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMu
X2Rpc2FibGVkSW1hZ2VFbGVtZW50Q2xpY2tlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRo
aXMuc3RhdHVzID0gdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQ7CisgICAgICAgIH0KICAgICB9
CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTQ0LDM0ICs0Nyw0MiBAQCBXSS5TaGFkZXJQcm9ncmFt
VHJlZUVsZW1lbnQgPSBjbGFzcyBTaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5H
ZW5lcmFsVAogICAgIHsKICAgICAgICAgc3VwZXIub25hdHRhY2goKTsKIAotICAgICAgICB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2hhZGVyUHJvZ3JhbS5FdmVu
dC5EaXNhYmxlZENoYW5nZWQsIHRoaXMuX2hhbmRsZVNoYWRlclByb2dyYW1EaXNhYmxlZENoYW5n
ZWQsIHRoaXMpOworICAgICAgICBsZXQgY29udGV4dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LmNhbnZhcy5jb250ZXh0VHlwZTsKKyAgICAgICAgaWYgKGNvbnRleHRUeXBlID09PSBXSS5D
YW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTDIpIHsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRk
RXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhp
cy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAKLSAgICAgICAg
dGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIHRoaXMuX2hhbmRsZU1v
dXNlT3Zlci5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlb3V0IiwgdGhpcy5faGFuZGxlTW91c2VPdXQuYmluZCh0aGlzKSk7CisgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5faGFu
ZGxlTW91c2VPdmVyLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5faGFuZGxlTW91c2VPdXQuYmluZCh0aGlzKSk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBvbmRldGFjaCgpCiAgICAgewotICAgICAgICB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2hhZGVyUHJvZ3JhbS5F
dmVudC5EaXNhYmxlZENoYW5nZWQsIHRoaXMuX2hhbmRsZVNoYWRlclByb2dyYW1EaXNhYmxlZENo
YW5nZWQsIHRoaXMpOworICAgICAgICBsZXQgY29udGV4dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZTsKKyAgICAgICAgaWYgKGNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHTDIpCisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJl
bW92ZUV2ZW50TGlzdGVuZXIoV0kuU2hhZGVyUHJvZ3JhbS5FdmVudC5EaXNhYmxlZENoYW5nZWQs
IHRoaXMuX2hhbmRsZVNoYWRlclByb2dyYW1EaXNhYmxlZENoYW5nZWQsIHRoaXMpOwogCiAgICAg
ICAgIHN1cGVyLm9uZGV0YWNoKCk7CiAgICAgfQogCiAgICAgY2FuU2VsZWN0T25Nb3VzZURvd24o
ZXZlbnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuY29u
dGFpbnMoZXZlbnQudGFyZ2V0KSkKKyAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVt
ZW50ICYmIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBzdXBlci5jYW5TZWxl
Y3RPbk1vdXNlRG93bihldmVudCk7CiAgICAgfQogCiAgICAgcG9wdWxhdGVDb250ZXh0TWVudShj
b250ZXh0TWVudSwgZXZlbnQpCiAgICAgewotICAgICAgICBsZXQgZGlzYWJsZWQgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LmRpc2FibGVkOwotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVt
KGRpc2FibGVkID8gV0kuVUlTdHJpbmcoIkVuYWJsZSBQcm9ncmFtIikgOiBXSS5VSVN0cmluZygi
RGlzYWJsZSBQcm9ncmFtIiksICgpID0+IHsKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRP
YmplY3QuZGlzYWJsZWQgPSAhZGlzYWJsZWQ7Ci0gICAgICAgIH0pOworICAgICAgICBsZXQgY29u
dGV4dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZTsKKyAg
ICAgICAgaWYgKGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwg
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpIHsKKyAgICAgICAg
ICAgIGxldCBkaXNhYmxlZCA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZGlzYWJsZWQ7CisgICAg
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKGRpc2FibGVkID8gV0kuVUlTdHJpbmcoIkVu
YWJsZSBQcm9ncmFtIikgOiBXSS5VSVN0cmluZygiRGlzYWJsZSBQcm9ncmFtIiksICgpID0+IHsK
KyAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc2FibGVkID0gIWRpc2Fi
bGVkOworICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJh
dG9yKCk7CisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAg
ICAgfQogCiAgICAgICAgIHN1cGVyLnBvcHVsYXRlQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2
ZW50KTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378862</attachid>
            <date>2019-09-16 07:59:55 -0700</date>
            <delta_ts>2019-09-16 19:11:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201675-20190916235953.patch</filename>
            <type>text/plain</type>
            <size>210376</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDYwNGRiZDRhZTE4OWYwNjIwZDY3YjdjOWRmYzJl
ODg0NzlkYTFlNDQuLjRiMmU2ZDM1NGQ3MDc1ZWVhZmVjNmUwYmFkNDY2MDJhNGZmZmIyMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTE2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHNob3cgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5q
c29uOgorICAgICAgICAgLSBhZGQgYSBgUHJvZ3JhbVR5cGVgIGVudW0gdGhhdCBjb252ZXlzIHRo
ZSB0eXBlIG9mIHNoYWRlciBwcm9ncmFtL3BpcGVsaW5lIHdoZW4gbm90aWZ5aW5nCisgICAgICAg
ICAgIHRoZSBmcm9udGVuZCBvZiBhIG5ldyBwcm9ncmFtCisgICAgICAgICAtIGluY2x1ZGUgYW4g
YGVudHJ5UG9pbnRgIHdoZW4gcmVzcG9uZGluZyB0byBgcmVxdWVzdFNoYWRlclNvdXJjZWAgZm9y
IGFwcGxpY2FibGUgc2hhZGVycworICAgICAgICAgLSBhbGxvdyBgdXBkYXRlU2hhZGVyYCB0byBh
bHNvIG1vZGlmeSB0aGUgYGVudHJ5UG9pbnRgIG9mIGFwcGxpY2FibGUgc2hhZGVycworCiAyMDE5
LTA5LTE1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTGVh
ayBvZiBOU01hcFRhYmxlIGluIC1bSlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
OndpdGhPd25lcjpdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlZmIxZmU3MjA4NTZkMmQzMTAzZDc0NDcwZDdj
MDdiOTVkMDg3Zi4uZjMwYjIyOWU1ZjNmZjI4Njk2YWFjNGE4MzczM2JhYTgyZDYyNWRhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2MCBAQAorMjAxOS0wOS0xNiAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ2FudmFzOiBzaG93IFdl
YkdQVSBzaGFkZXIgcGlwZWxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDE2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNl
LXdlYmdwdS5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dy
YW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2NhbnZh
cy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwKKworICAgICAgICBDcmVhdGUgY29tbW9uIGJhc2Ug
Y2xhc3NlcyBmb3IgYFdlYkdQVVBpcGVsaW5lYCBhbmQgYEdQVVBpcGVsaW5lYCBzbyB0aGF0IFdl
YiBJbnNwZWN0b3IgY2FuCisgICAgICAgIGluc3RydW1lbnQgYm90aCByZW5kZXIgYW5kIGNvbXB1
dGUgc2hhZGVyIHBpcGVsaW5lcy4KKworICAgICAgICBSZWZhY3RvciBgSW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbWAgdG8gc3VwcG9ydCBib3RoIGBXZWJHTFByb2dyYW1gIGFuZCBgV2ViR1BVUGlwZWxp
bmVgIHNvCisgICAgICAgIHRoYXQgdGhlIHNhbWUgb2JqZWN0IGNhbiBiZSB1c2VkIGZvciBhbGwg
dHlwZXMgb2Ygc2hhZGVyICJwcm9ncmFtInMuCisKKyAgICAgICAgQWxsb3cgdGhlIGBlbnRyeVBv
aW50YCBvZiBgV2ViR1BVUGlwZWxpbmVgcyB0byBiZSBlZGl0ZWQgYWxvbmdzaWRlIHRoZSBzb3Vy
Y2UgY29kZS4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZSBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQ
aXBlbGluZSBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVQaXBlbGluZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5lOjpp
c1JlbmRlclBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5l
Ojppc0NvbXB1dGVQaXBlbGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBl
bGluZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VVBpcGVsaW5lOjppbnN0YW5jZXNNdXRleCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBl
bGluZTo6V2ViR1BVUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmU6
On5XZWJHUFVQaXBlbGluZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBp
cGVsaW5lLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBp
cGVsaW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVUGlwZWxpbmU6OmlzUmVuZGVy
UGlwZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUGlwZWxpbmU6OmlzQ29tcHV0
ZVBpcGVsaW5lIGNvbnN0KToKKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1
dGVQaXBlbGluZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNvbXB1
dGVQaXBlbGluZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQ
aXBlbGluZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGlu
ZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1
dGVQaXBlbGluZTo6cmVjb21waWxlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0
ZVBpcGVsaW5lOjppc0NvbXB1dGVQaXBlbGluZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6cmVjb21waWxlKTogQWRkZWQuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdQVVJlbmRlclBpcGVsaW5lOjpyZW5kZXJQaXBlbGluZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVSZW5kZXJQaXBlbGluZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZSk6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZS5oOgorICAgICAgICAo
V2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OmlzUmVuZGVyUGlwZWxpbmUpOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRh
bC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5lU3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OnRyeUNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZSk6IEFkZGVkLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVN0YWdl
RGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNj
cmlwdG9yOjpHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IpOgorCisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
UFVTaGFkZXJNb2R1bGU6Om1vZHVsZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVNoYWRlck1vZHVsZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVU2hhZGVyTW9k
dWxlOjp3aGxzbE1vZHVsZSBjb25zdCk6CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExT
TC9XSExTTFByZXBhcmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBy
ZXBhcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OlNoYWRlck1vZHVsZTo6U2hhZGVy
TW9kdWxlKToKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06Okluc3BlY3RvclNoYWRlclByb2dyYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cHJvZ3JhbSBjb25zdCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cGlwZWxp
bmUgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNoYWRlckZvclR5cGUpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OnJlcXVlc3RTaGFk
ZXJTb3VyY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dy
YW06OnVwZGF0ZVNoYWRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbTo6Y29udGV4dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpzaGFkZXJGb3JUeXBlKTogRGVsZXRlZC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpJbnNwZWN0b3JDYW52YXNBZ2VudCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzY2FyZEFnZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OnJlcXVlc3RTaGFkZXJTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVwZGF0ZVNoYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6c2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtSGlnaGxp
Z2h0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZyYW1lTmF2
aWdhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVh
dGVXZWJHTFByb2dyYW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZh
c0FnZW50Ojp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojppc1dlYkdMUHJvZ3JhbUhp
Z2hsaWdodGVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cHJvZ3JhbURlc3Ryb3llZFRp
bWVyRmlyZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50
OjpyZXNldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OnVuYmluZFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OmZpbmRJbnNwZWN0b3JQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZh
c0FnZW50OjpkaWRDcmVhdGVQcm9ncmFtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVsZXRlUHJvZ3JhbSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzU2hh
ZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNhbnZhc0FnZW50OjpjbGVhckNhbnZhc0RhdGEpOiBEZWxldGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2Vi
R0xQcm9ncmFtKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVh
dGVXZWJHUFVQaXBlbGluZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW0pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
RGVsZXRlUHJvZ3JhbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxp
Z2h0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDcmVhdGVXZWJHTFByb2dyYW1JbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtSW1wbCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJv
Z3JhbURpc2FibGVkSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQ
aXBlbGluZUltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZUltcGwpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbUltcGwp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsRGVsZXRlUHJvZ3JhbUltcGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclBy
b2dyYW1IaWdobGlnaHRlZEltcGwpOiBEZWxldGVkLgorCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFtKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUHJvZ3JhbTo6fldlYkdMUHJvZ3JhbSk6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JTY29wZWRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0OjpzaG93SGlnaHRsaWdodCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFt
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZVBy
b2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJh
d0FycmF5cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
cmF3RWxlbWVudHMpOgorICAgICAgICBSZW5hbWUgV2ViR0wgcHJvZ3JhbSBpbnN0cnVtZW50YXRp
b24gcG9pbnRzIHRvIGJlIGxlc3MgYW1iaWd1b3VzLgorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA5
LTE1ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBE
ZXJpdmVkIGRpY3Rpb25hcmllcyBzaG91bGQgaW5oZXJpdCB0aGVpciBpbmhlcml0ZWQgZGljdGlv
bmFyaWVzJyBwYXJ0aWFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMGRhNjkzMWQxOTY2
YTU5NDZiYTNjMjU4YTQzMWE0NDY1YWI4ZDA1Yi4uMTQxM2Q4NDFlMWUyNWNmYmM4OWYxNzI0ZDRm
MGQ3NTkzNzU4MzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAK
KzIwMTktMDktMTYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IENhbnZhczogc2hvdyBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNjc1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvdyBXZWJHUFUg
c2hhZGVyIHBpcGVsaW5lcyAoInByb2dyYW1zIikgdW5kZXJuZWF0aCBlYWNoIGNvcnJlc3BvbmRp
bmcgV2ViR1BVIGRldmljZS4KKworICAgICAgICBEb24ndCBoaWdobGlnaHQgb3Igc2hvdyBhIGRp
c2FibGUgdG9nZ2xlIGZvciBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lcywgYXMgdGhleSBkb24ndCBo
YXZlCisgICAgICAgIHRob3NlIGNhcGFiaWxpdGllcy9jb25jZXB0cy4gU3RpbGwgYWxsb3cgZWRp
dGluZyBvZiBzaGFkZXIgc291cmNlLCBhcyB3ZWxsIGFzIGBlbnRyeVBvaW50YHMuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzOgorICAgICAgICAo
V0kuQ2FudmFzT2JzZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1DcmVhdGVkKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5D
YW52YXNNYW5hZ2VyLnByb3RvdHlwZS5wcm9ncmFtQ3JlYXRlZCk6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01vZGVscy9DYW52YXMuanM6CisgICAgICAgIChXSS5DYW52YXMucHJvdG90eXBl
Lm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlckZvclByb2dyYW1UeXBlKTogQWRkZWQuCisg
ICAgICAgIChXSS5DYW52YXMucHJvdG90eXBlLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJl
cik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9TaGFkZXJQcm9n
cmFtLmpzOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbSk6CisgICAgICAgIChXSS5TaGFkZXJQ
cm9ncmFtLl9jb250ZXh0VHlwZVN1cHBvcnRzUHJvZ3JhbVR5cGUpOgorICAgICAgICAoV0kuU2hh
ZGVyUHJvZ3JhbS5fcHJvZ3JhbVR5cGVTdXBwb3J0c1NoYWRlclR5cGUpOgorICAgICAgICAoV0ku
U2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHByb2dyYW1UeXBlKToKKyAgICAgICAgKFdJLlNo
YWRlclByb2dyYW0ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5TaGFk
ZXJQcm9ncmFtLnByb3RvdHlwZS5zZXQgZGlzYWJsZWQpOgorICAgICAgICAoV0kuU2hhZGVyUHJv
Z3JhbS5wcm90b3R5cGUucmVxdWVzdFNoYWRlclNvdXJjZSk6CisgICAgICAgIChXSS5TaGFkZXJQ
cm9ncmFtLnByb3RvdHlwZS51cGRhdGVTaGFkZXIpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3Jh
bS5wcm90b3R5cGUuc2hvd0hpZ2hsaWdodCk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnBy
b3RvdHlwZS5oaWRlSGlnaGxpZ2h0KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90
eXBlLnJlcXVlc3RWZXJ0ZXhTaGFkZXJTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoV0kuU2hh
ZGVyUHJvZ3JhbS5wcm90b3R5cGUucmVxdWVzdEZyYWdtZW50U2hhZGVyU291cmNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90eXBlLnVwZGF0ZVZlcnRleFNoYWRl
cik6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS51cGRhdGVG
cmFnbWVudFNoYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3Rv
dHlwZS5fcmVxdWVzdFNoYWRlclNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQ
cm9ncmFtLnByb3RvdHlwZS5fdXBkYXRlU2hhZGVyKTogRGVsZXRlZC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1D
b250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6IEFkZGVkLgorICAgICAg
ICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6CisgICAgICAg
IChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLmhpZGRlbik6CisgICAgICAg
IChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzYXZlRGF0YSk6Cisg
ICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoQ29u
dGVudCk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLl91
cGRhdGVTaGFkZXIpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fY29udGVudERpZENoYW5nZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9T
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFk
ZXItcHJvZ3JhbSA+IC5zaGFkZXIpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyLmNvbXB1dGUpOiBBZGRlZC4KKyAgICAgICAgKGJvZHlbZGly
PWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4LCk6IEFk
ZGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFt
ID4gLnNoYWRlci5mcmFnbWVudCwpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyICsgLnNoYWRlcik6IEFkZGVkLgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAqKTogQWRkZWQuCisg
ICAgICAgICguY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciA+IGhlYWRlciA+
IC5zaGFkZXItdHlwZSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFkZXItcHJv
Z3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAuZW50cnktcG9pbnQgPiBpbnB1dCk6IEFkZGVkLgor
ICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmll
dy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIpOiBBZGRlZC4KKyAgICAgICAgKC5j
b250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+
IC50ZXh0LWVkaXRvci5zaGFkZXIudmVydGV4LCk6IERlbGV0ZWQuCisgICAgICAgIChib2R5W2Rp
cj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVy
LmZyYWdtZW50LCk6IERlbGV0ZWQuCisgICAgICAgIChib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZp
ZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsgLnRleHQtZWRpdG9yLnNo
YWRlcik6IERlbGV0ZWQuCisgICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsgLnRleHQtZWRpdG9yLnNoYWRlcik6
IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQt
ZWRpdG9yLnNoYWRlciA+IC50eXBlLXRpdGxlKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLkNvZGVNaXJyb3Ip
OiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFt
VHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQpOgor
ICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmF0dGFjaCk6
CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uZGV0YWNo
KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudC5wcm90b3R5cGUuY2FuU2Vs
ZWN0T25Nb3VzZURvd24pOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50LnBy
b3RvdHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToKKworICAgICAgICAqIExvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKwogMjAxOS0wOS0xMyAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhUTUwg
Rm9ybWF0dGVyIC0gWE1MIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uCmluZGV4IDc5OGI5OTFjZDJiMGVjNjJhZDJjMTEz
NDc4OWZiMzdlYjRiNDYwNGQuLjlmY2JhMmQ4MDdlOTI3Zjg2ODRmOGNiYTE0MTIxYWY3YmY5MTY0
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
Q2FudmFzLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9DYW52YXMuanNvbgpAQCAtMTksMTEgKzE5LDE1IEBACiAgICAgICAgICAgICAiZW51bSI6IFsi
Y2FudmFzLTJkIiwgImJpdG1hcHJlbmRlcmVyIiwgIndlYmdsIiwgIndlYmdsMiIsICJ3ZWJncHUi
XSwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgdHlwZSBvZiByZW5kZXJpbmcgY29u
dGV4dCBiYWNraW5nIHRoZSBjYW52YXMgZWxlbWVudC4iCiAgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJpZCI6ICJQcm9ncmFtVHlwZSIsCisgICAgICAgICAgICAidHlwZSI6ICJz
dHJpbmciLAorICAgICAgICAgICAgImVudW0iOiBbImNvbXB1dGUiLCAicmVuZGVyIl0KKyAgICAg
ICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlkIjogIlNoYWRlclR5cGUiLAogICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICJlbnVtIjogWyJmcmFnbWVudCIs
ICJ2ZXJ0ZXgiXSwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTaGFkZXIgdHlwZS4gV2Vi
R0wgc3VwcG9ydHMgdmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXJzLiIKKyAgICAgICAgICAgICJl
bnVtIjogWyJjb21wdXRlIiwgImZyYWdtZW50IiwgInZlcnRleCJdCiAgICAgICAgIH0sCiAgICAg
ICAgIHsKICAgICAgICAgICAgICJpZCI6ICJDb250ZXh0QXR0cmlidXRlcyIsCkBAIC0xMzYsNyAr
MTQwLDggQEAKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNoYWRlclR5cGUiLCAiJHJlZiI6
ICJTaGFkZXJUeXBlIiB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgInJldHVybnMiOiBb
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiB9
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbnRyeVBvaW50IiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAg
IHsKQEAgLTE0NSw3ICsxNTAsOCBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiIH0s
CiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaGFkZXJUeXBlIiwgIiRyZWYiOiAiU2hhZGVy
VHlwZSIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZSIsICJ0eXBlIjogInN0
cmluZyIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3Ry
aW5nIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW50cnlQb2ludCIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAog
ICAgICAgICB7CkBAIC0yMjMsMTQgKzIyOSwxNSBAQAogICAgICAgICB7CiAgICAgICAgICAgICAi
bmFtZSI6ICJwcm9ncmFtQ3JlYXRlZCIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQiLCAi
ZGVzY3JpcHRpb24iOiAiQ2FudmFzIGlkZW50aWZpZXIuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlkIiwgImRlc2NyaXB0aW9uIjog
IlByb2dyYW0gaWRlbnRpZmllci4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbnZh
c0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQifSAsCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJw
cm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJwcm9ncmFtVHlwZSIsICIkcmVmIjogIlByb2dyYW1UeXBlIiB9CiAgICAgICAgICAgICBd
CiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1EZWxl
dGVkIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlkIiwgImRlc2NyaXB0aW9uIjogIlBy
b2dyYW0gaWRlbnRpZmllci4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1J
ZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfQogICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAg
XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQ
cmVwYXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJl
cGFyZS5jcHAKaW5kZXggNzdlY2NiZDcyMzkzMGMwZGJhZDQ1ZTEyYWFkZjkwM2RjZTE5NDlhOC4u
MTIwM2RjZTJhZDJjMTc4MTBjYjgxZjEwNDBlZDVkNjBhMjY2NzdhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwCkBAIC01
OSwyMSArNTksMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV0hMU0wgewog
Ci1zdHJ1Y3QgU2hhZGVyTW9kdWxlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1
YmxpYzoKLQotICAgIFNoYWRlck1vZHVsZShjb25zdCBTdHJpbmcmIHdobHNsU291cmNlKQotICAg
ICAgICA6IHdobHNsU291cmNlKHdobHNsU291cmNlKQotICAgIHsKLSAgICB9Ci0KLSAgICBTdHJp
bmcgd2hsc2xTb3VyY2U7Ci19OwotCitTaGFkZXJNb2R1bGU6OlNoYWRlck1vZHVsZShjb25zdCBT
dHJpbmcmIHdobHNsU291cmNlKQorICAgIDogd2hsc2xTb3VyY2Uod2hsc2xTb3VyY2UpCit7CiB9
CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdITFNMCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
bmFtZXNwYWNlIHN0ZCB7CiAKQEAgLTgyLDcgKzc1LDcgQEAgdm9pZCBkZWZhdWx0X2RlbGV0ZTxX
ZWJDb3JlOjpXSExTTDo6U2hhZGVyTW9kdWxlPjo6b3BlcmF0b3IoKShXZWJDb3JlOjpXSExTTDo6
U2gKICAgICBkZWxldGUgc2hhZGVyTW9kdWxlOwogfQogCi19Cit9IC8vIG5hbWVzcGFjZSBzdGQK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5oCmluZGV4IDY5N2Y5YmVkNWEwNTFjYmVhMTZiMWM2
ZDg3M2MxNDViNzUzNDdkZmEuLjA4ZWEzOThlZDNjYzkxMWRmODhmMWY4MWU0NGIxY2UwNTg5MzIx
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNM
UHJlcGFyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNM
UHJlcGFyZS5oCkBAIC0zOCwxMiArMzgsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1l
c3BhY2UgV0hMU0wgewogCi0vLyBIaWRlIHRoZSBjb250ZW50cyBvZiB0aGUgU2hhZGVyTW9kdWxl
LiBDbGllbnRzIG9mIHRoZSBjb21waWxlciBzaG91bGRuJ3QgY2FyZSB3aGF0J3MgaW5zaWRlIGl0
Lgotc3RydWN0IFNoYWRlck1vZHVsZTsKK3N0cnVjdCBTaGFkZXJNb2R1bGUgeworICAgIFdURl9N
QUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKIAotfQorICAgIFNoYWRlck1vZHVsZShjb25zdCBT
dHJpbmcmIHdobHNsU291cmNlKTsKIAotfQorICAgIFN0cmluZyB3aGxzbFNvdXJjZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdITFNMCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNw
YWNlIHN0ZCB7CiAKQEAgLTUxLDcgKzU2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgZGVmYXVsdF9k
ZWxldGU8V2ViQ29yZTo6V0hMU0w6OlNoYWRlck1vZHVsZT4gewogICAgIHZvaWQgb3BlcmF0b3Io
KShXZWJDb3JlOjpXSExTTDo6U2hhZGVyTW9kdWxlKikgY29uc3Q7CiB9OwogCi19Cit9IC8vIG5h
bWVzcGFjZSBzdGQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCBj
ZDExZWNiYjNlYzZlZDVjMTliOTZkMjNmMzZiODdlMTNmNDk3MzVhLi4zNTM1MzkyMzM1ZjRlZjhj
NTQ2NzgwYjczZGIwOWFhMzAyYWI2OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKQEAgLTI4LDE5ICsyOCw0
MyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGlu
ZS5oIgorI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgiCisjaW5jbHVkZSAiR1BVUGlwZWxpbmUu
aCIKKyNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRl
ICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdQVUNvbXB1dGVQaXBl
bGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoUmVmUHRyPEdQVUNvbXB1dGVQaXBl
bGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQorUmVmPFdlYkdQ
VUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoV2ViR1BVRGV2
aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUsIEdQVUVy
cm9yU2NvcGVzJiBlcnJvclNjb3BlcywgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRh
dGE+IGNvbXB1dGVTaGFkZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3BlcykpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkdQVUNvbXB1dGVQaXBlbGluZShkZXZpY2UsIFdURk1vdmUocGlw
ZWxpbmUpLCBlcnJvclNjb3BlcywgY29tcHV0ZVNoYWRlcikpOwogfQogCi1XZWJHUFVDb21wdXRl
UGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5l
PiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCi0gICAgOiBHUFVPYmpl
Y3RCYXNlKG1ha2VSZWYoZXJyb3JTY29wZXMpKQotICAgICwgbV9jb21wdXRlUGlwZWxpbmUgeyBX
VEZNb3ZlKHBpcGVsaW5lKSB9CitXZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQ
aXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4m
JiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzLCBPcHRpb25hbDxXZWJHUFVQ
aXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcikKKyAgICA6IFdlYkdQVVBpcGVsaW5l
KGRldmljZSwgZXJyb3JTY29wZXMpCisgICAgLCBtX2NvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBp
cGVsaW5lKSkKKyAgICAsIG1fY29tcHV0ZVNoYWRlcihjb21wdXRlU2hhZGVyKQogewogfQogCitX
ZWJHUFVDb21wdXRlUGlwZWxpbmU6On5XZWJHUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1bHQ7
CisKK2Jvb2wgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2
aWNlJiBkZXZpY2UpCit7CisgICAgaWYgKG1fY29tcHV0ZVBpcGVsaW5lICYmIG1fY29tcHV0ZVNo
YWRlcikgeworICAgICAgICBpZiAoYXV0byYgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9IG1f
Y29tcHV0ZVNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGdw
dUNvbXB1dGVTaGFkZXJNb2R1bGUgPSB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlLT5tb2R1bGUo
KSkgeworICAgICAgICAgICAgICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciBjb21w
dXRlU3RhZ2UobWFrZVJlZigqZ3B1Q29tcHV0ZVNoYWRlck1vZHVsZSksIHsgbV9jb21wdXRlU2hh
ZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9jb21w
dXRlUGlwZWxpbmUtPnJlY29tcGlsZShkZXZpY2UuZGV2aWNlKCksIFdURk1vdmUoY29tcHV0ZVN0
YWdlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BV
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRl
UGlwZWxpbmUuaAppbmRleCAyZWQ3Yzk4MDRiYWFhYWRmNzI1MDM2MzVjNzk2YWQ0YjgzNTNkN2Q0
Li44YTc5NTEyYzQ3NjVmZGNiNGNjN2Q2YTdjNjdhM2U0Y2Q5ZmQwMzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaApA
QCAtMjcsMjQgKzI3LDQxIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiR1BV
Q29tcHV0ZVBpcGVsaW5lLmgiCi0jaW5jbHVkZSAiR1BVT2JqZWN0QmFzZS5oIgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJhc2UgewotcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGUoUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGlu
ZT4mJiwgR1BVRXJyb3JTY29wZXMmKTsKK2NsYXNzIEdQVUNvbXB1dGVQaXBlbGluZTsKK2NsYXNz
IEdQVVBpcGVsaW5lOworY2xhc3MgR1BVRXJyb3JTY29wZXM7CitjbGFzcyBXZWJHUFVEZXZpY2U7
CiAKK2NsYXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQaXBl
bGluZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKCk7CisK
KyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlKFdlYkdQVURldmlj
ZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgT3B0aW9u
YWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIpOworCisgICAgYm9v
bCBpc0NvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIGNvbXB1dGVQaXBlbGluZSgpOyB9CiAgICAgY29uc3Qg
R1BVQ29tcHV0ZVBpcGVsaW5lKiBjb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2Nv
bXB1dGVQaXBlbGluZS5nZXQoKTsgfQorICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFk
ZXJEYXRhPiBjb21wdXRlU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlU2hhZGVyOyB9
CisKKyAgICBib29sIHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKTsKIAogcHJpdmF0ZToK
LSAgICBXZWJHUFVDb21wdXRlUGlwZWxpbmUoUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiwg
R1BVRXJyb3JTY29wZXMmKTsKKyAgICBXZWJHUFVDb21wdXRlUGlwZWxpbmUoV2ViR1BVRGV2aWNl
JiwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29wZXMmLCBPcHRpb25h
bDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcik7CiAKICAgICBSZWZQ
dHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiBtX2NvbXB1dGVQaXBlbGluZTsKKworICAgIC8vIFByc2Vy
dmVkIGZvciBXZWIgSW5zcGVjdG9yIHJlY29tcGlsYXRpb24uCisgICAgT3B0aW9uYWw8V2ViR1BV
UGlwZWxpbmU6OlNoYWRlckRhdGE+IG1fY29tcHV0ZVNoYWRlcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XRUJHUFVQSVBFTElORShXZWJD
b3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmUsIGlzQ29tcHV0ZVBpcGVsaW5lKCkpCisKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwKaW5kZXggYTU1MmJhOTJmZDI5NzE5YmRj
ZmY1NTJkMWZhNmUzZTljMzM3ODlhZC4uNGI4YTc3ZTQ4NjlhMDczNjc4Y2IwMjU2MDU0YWY2MDc3
NzQxZTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsCkBAIC0yNyw3ICsyNyw2IEBACiBbCiAgICAgQ29uZGl0
aW9uYWw9V0VCR1BVLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCiAgICAgSW50ZXJmYWNlTmFtZT1HUFVDb21wdXRlUGlwZWxpbmUK
IF0gaW50ZXJmYWNlIFdlYkdQVUNvbXB1dGVQaXBlbGluZSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKaW5kZXggNWViZjA4Mzg1YTYzOTQ3
MTdlZTgxNzgzOGIyYjllMmY4OWFmMmY1My4uOTRhOThmMzdjZmFiMjZmMzFlZTdjYjMxMGQzNWJl
ZGYyMzNjNTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVE
ZXZpY2UuY3BwCkBAIC0zOSw4ICszOSwxMCBAQAogI2luY2x1ZGUgIkdQVUJ1ZmZlckJpbmRpbmcu
aCIKICNpbmNsdWRlICJHUFVCdWZmZXJEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVQ29tbWFu
ZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZS5oIgogI2luY2x1ZGUgIkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVT
dGFnZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgogI2luY2x1
ZGUgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVNhbXBsZXIu
aCIKICNpbmNsdWRlICJHUFVTYW1wbGVyRGVzY3JpcHRvci5oIgpAQCAtMjA4LDI4ICsyMTAsNDQg
QEAgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1
bGUoY29uc3QgV2ViR1BVU2hhZGVyTW9kdWwKICAgICByZXR1cm4gV2ViR1BVU2hhZGVyTW9kdWxl
OjpjcmVhdGUoV1RGTW92ZShtb2R1bGUpKTsKIH0KIAotUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5l
PiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJHUFVSZW5kZXJQaXBl
bGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgbV9lcnJvclNjb3Blcy0+
c2V0RXJyb3JQcmVmaXgoIkdQVURldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZSgpOiAiKTsKIAog
ICAgIGF1dG8gZ3B1RGVzY3JpcHRvciA9IGRlc2NyaXB0b3IudHJ5Q3JlYXRlR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRvcikK
LSAgICAgICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUobnVsbHB0ciwgbV9l
cnJvclNjb3Blcyk7CisgICAgICAgIHJldHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRl
KCp0aGlzLCBudWxscHRyLCBtX2Vycm9yU2NvcGVzLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9w
dCk7CiAKLSAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZVJlbmRlclBpcGVs
aW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKLSAgICByZXR1cm4gV2ViR1BVUmVu
ZGVyUGlwZWxpbmU6OmNyZWF0ZShXVEZNb3ZlKHBpcGVsaW5lKSwgbV9lcnJvclNjb3Blcyk7Cisg
ICAgYXV0byBncHVQaXBlbGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVSZW5kZXJQaXBlbGluZSgq
Z3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7CisKKyAgICBXZWJHUFVQaXBlbGluZTo6U2hh
ZGVyRGF0YSB2ZXJ0ZXhTaGFkZXIgPSB7IGRlc2NyaXB0b3IudmVydGV4U3RhZ2UubW9kdWxlLCBk
ZXNjcmlwdG9yLnZlcnRleFN0YWdlLmVudHJ5UG9pbnQgfTsKKworICAgIE9wdGlvbmFsPFdlYkdQ
VVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcjsKKyAgICBpZiAoZGVzY3JpcHRv
ci5mcmFnbWVudFN0YWdlKQorICAgICAgICBmcmFnbWVudFNoYWRlciA9IHsgeyBkZXNjcmlwdG9y
LmZyYWdtZW50U3RhZ2UudmFsdWUoKS5tb2R1bGUsIGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZS52
YWx1ZSgpLmVudHJ5UG9pbnQgfSB9OworCisgICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQ
VVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZ3B1UGlwZWxpbmUpLCBtX2Vy
cm9yU2NvcGVzLCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKTsKKyAgICBpZiAod2ViR1BV
UGlwZWxpbmUtPmlzVmFsaWQoKSkKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDcmVhdGVXZWJHUFVQaXBlbGluZSgqdGhpcywgd2ViR1BVUGlwZWxpbmUuZ2V0KCkpOworICAg
IHJldHVybiB3ZWJHUFVQaXBlbGluZTsKIH0KIAotUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4g
V2ViR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxXZWJHUFVDb21wdXRlUGlw
ZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgbV9lcnJvclNjb3Bl
cy0+c2V0RXJyb3JQcmVmaXgoIkdQVURldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoKTogIik7
CiAKICAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IobV9lcnJvclNjb3Blcyk7CiAgICAgaWYgKCFncHVEZXNjcmlw
dG9yKQotICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUobnVsbHB0
ciwgbV9lcnJvclNjb3Blcyk7CisgICAgICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6
OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwgbV9lcnJvclNjb3BlcywgV1RGOjpudWxsb3B0KTsKIAot
ICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpn
cHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKLSAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lOjpjcmVhdGUoV1RGTW92ZShwaXBlbGluZSksIG1fZXJyb3JTY29wZXMpOworICAgIGF1
dG8gZ3B1UGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVE
ZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKKworICAgIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJE
YXRhIGNvbXB1dGVTaGFkZXIgPSB7IGRlc2NyaXB0b3IuY29tcHV0ZVN0YWdlLm1vZHVsZSwgZGVz
Y3JpcHRvci5jb21wdXRlU3RhZ2UuZW50cnlQb2ludCB9OworCisgICAgYXV0byB3ZWJHUFVQaXBl
bGluZSA9IFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGdwdVBp
cGVsaW5lKSwgbV9lcnJvclNjb3BlcywgY29tcHV0ZVNoYWRlcik7CisgICAgaWYgKHdlYkdQVVBp
cGVsaW5lLT5pc1ZhbGlkKCkpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlV2ViR1BVUGlwZWxpbmUoKnRoaXMsIHdlYkdQVVBpcGVsaW5lLmdldCgpKTsKKyAgICBy
ZXR1cm4gd2ViR1BVUGlwZWxpbmU7CiB9CiAKIFJlZjxXZWJHUFVDb21tYW5kRW5jb2Rlcj4gV2Vi
R1BVRGV2aWNlOjpjcmVhdGVDb21tYW5kRW5jb2RlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCmluZGV4IGQ5OGYyM2M2NzMzYzlhNDJlMDgy
OWRiZDQxOGZlODVlNTZmNzMzZjguLjIxYjU0MTdjMjEwYTc1ZjhiYjk5YzIyNzMxMjE0Y2JkMjAz
OWQxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5o
CkBAIC05OSw4ICs5OSw4IEBAIHB1YmxpYzoKICAgICBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVh
dGVCaW5kR3JvdXAoY29uc3QgV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvciYpIGNvbnN0OwogCiAg
ICAgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQ
VVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBjb25zdDsKLSAgICBSZWY8V2ViR1BVUmVuZGVyUGlw
ZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciYpIGNvbnN0OwotICAgIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZUNv
bXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJikgY29u
c3Q7CisgICAgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGluZShj
b25zdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKTsKKyAgICBSZWY8V2ViR1BVQ29t
cHV0ZVBpcGVsaW5lPiBjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvciYpOwogCiAgICAgUmVmPFdlYkdQVUNvbW1hbmRFbmNvZGVyPiBjcmVh
dGVDb21tYW5kRW5jb2RlcigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFlZThiZDg0NjBlMzI2M2U1
NDU2Mjk0MzM1OWI2OGU3MDM1MTFjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgi
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitIYXNoTWFwPFdlYkdQVVBpcGVsaW5lKiwgV2ViR1BVRGV2aWNlKj4mIFdlYkdQVVBpcGVsaW5l
OjppbnN0YW5jZXMoY29uc3QgTG9ja0hvbGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hNYXA8V2ViR1BVUGlwZWxpbmUqLCBXZWJHUFVEZXZpY2UqPj4gaW5zdGFuY2VzOwor
ICAgIHJldHVybiBpbnN0YW5jZXM7Cit9CisKK0xvY2smIFdlYkdQVVBpcGVsaW5lOjppbnN0YW5j
ZXNNdXRleCgpCit7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsK
KyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU11dGV4OworICAgIHN0ZDo6Y2Fs
bF9vbmNlKGluaXRpYWxpemVNdXRleCwgW10geworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsK
KyAgICB9KTsKKyAgICByZXR1cm4gbXV0ZXguZ2V0KCk7Cit9CisKK1dlYkdQVVBpcGVsaW5lOjpX
ZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgR1BVRXJyb3JTY29wZXMmIGVycm9y
U2NvcGVzKQorICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVmKGVycm9yU2NvcGVzKSkKKyAgICAs
IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChkZXZpY2Uuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQoreworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICBpbnN0YW5j
ZXMobG9jaykuYWRkKHRoaXMsICZkZXZpY2UpOworfQorCitXZWJHUFVQaXBlbGluZTo6fldlYkdQ
VVBpcGVsaW5lKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95
V2ViR1BVUGlwZWxpbmUoKnRoaXMpOworCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIEFTU0VSVChpbnN0YW5jZXMobG9jaykuY29udGFp
bnModGhpcykpOworICAgICAgICBpbnN0YW5jZXMobG9jaykucmVtb3ZlKHRoaXMpOworICAgIH0K
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5l
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY1ZGY3ZmIzYWJlYzk0NDJhMjljZWU2OWZmNzllYjU0NjA2NWEyYmEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5o
CkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVPYmplY3RCYXNlLmgiCisjaW5jbHVkZSAiV2ViR1BV
U2hhZGVyTW9kdWxlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgR1BVRXJyb3JT
Y29wZXM7CitjbGFzcyBXZWJHUFVEZXZpY2U7CisKK2NsYXNzIFdlYkdQVVBpcGVsaW5lIDogcHVi
bGljIEdQVU9iamVjdEJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdQVVBpcGVsaW5l
KCk7CisKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmljZSo+
JiBpbnN0YW5jZXMoY29uc3QgTG9ja0hvbGRlciYpOworICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5j
ZXNNdXRleCgpOworCisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NvbXB1dGVQaXBlbGluZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0OyB9CisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCA9IDA7CisKKyAgICBzdHJ1
Y3QgU2hhZGVyRGF0YSB7CisgICAgICAgIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IG1vZHVs
ZTsKKyAgICAgICAgU3RyaW5nIGVudHJ5UG9pbnQ7CisgICAgfTsKKyAgICB2aXJ0dWFsIGJvb2wg
cmVjb21waWxlKGNvbnN0IFdlYkdQVURldmljZSYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIFdl
YkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYsIEdQVUVycm9yU2NvcGVzJik7CisKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XRUJH
UFVQSVBFTElORShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19CRUdJTihUb1ZhbHVlVHlwZU5hbWUpIFwKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUo
Y29uc3QgV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKSB7IHJldHVybiBwaXBlbGlu
ZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKaW5kZXgg
ZmZiYzViODExZDNjMDBjMWZmYTk2ODdjZjYwYTZjOTc1ZGJjNTM3ZC4uMWE0NDE0YWFjMTA3MzY3
OTEwZTFiMzU4NGQyMjhkMzVlYmI1OGRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFdlYkdQ
VVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciA6IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3Jp
cHRvckJhc2UgewogICAgIE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcj4g
dHJ5Q3JlYXRlR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yKCkgY29uc3Q7CiAKLSAgICBS
ZWZQdHI8Y29uc3QgV2ViR1BVU2hhZGVyTW9kdWxlPiBtb2R1bGU7CisgICAgUmVmUHRyPFdlYkdQ
VVNoYWRlck1vZHVsZT4gbW9kdWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxp
bmUuY3BwCmluZGV4IDE3YWVkYzZkNWI2MTdlODkxZjIxNjJjZGFiNmJjNDgzYjViOTA0YTQuLjAw
ZTZjYWQyZTYyOGFmODE3YWVhNWJmZGFjNjkzMTkwM2E0YmNlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKQEAg
LTI4LDE5ICsyOCw1MiBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVUVy
cm9yU2NvcGVzLmgiCisjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5o
IgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVs
ZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVVJl
bmRlclBpcGVsaW5lOjpjcmVhdGUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5l
LCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCitSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+
IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0
cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2Nv
cGVzLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBP
cHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBl
bGluZSksIGVycm9yU2NvcGVzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVUmVu
ZGVyUGlwZWxpbmUoZGV2aWNlLCBXVEZNb3ZlKHBpcGVsaW5lKSwgZXJyb3JTY29wZXMsIHZlcnRl
eFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpKTsKIH0KIAotV2ViR1BVUmVuZGVyUGlwZWxpbmU6Oldl
YkdQVVJlbmRlclBpcGVsaW5lKFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwg
R1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQotICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVm
KGVycm9yU2NvcGVzKSkKK1dlYkdQVVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGlu
ZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVs
aW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFk
ZXJEYXRhPiBmcmFnbWVudFNoYWRlcikKKyAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmljZSwgZXJy
b3JTY29wZXMpCiAgICAgLCBtX3JlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQorICAg
ICwgbV92ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVyKQorICAgICwgbV9mcmFnbWVudFNoYWRlcihm
cmFnbWVudFNoYWRlcikKIHsKIH0KIAorV2ViR1BVUmVuZGVyUGlwZWxpbmU6On5XZWJHUFVSZW5k
ZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBXZWJHUFVSZW5kZXJQaXBlbGluZTo6cmVj
b21waWxlKGNvbnN0IFdlYkdQVURldmljZSYgZGV2aWNlKQoreworICAgIGlmIChtX3JlbmRlclBp
cGVsaW5lICYmIG1fdmVydGV4U2hhZGVyKSB7CisgICAgICAgIGlmIChhdXRvJiB3ZWJHUFVWZXJ0
ZXhTaGFkZXJNb2R1bGUgPSBtX3ZlcnRleFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAg
ICAgICAgaWYgKGF1dG8qIGdwdVZlcnRleFNoYWRlck1vZHVsZSA9IHdlYkdQVVZlcnRleFNoYWRl
ck1vZHVsZS0+bW9kdWxlKCkpIHsKKyAgICAgICAgICAgICAgICBHUFVQcm9ncmFtbWFibGVTdGFn
ZURlc2NyaXB0b3IgdmVydGV4U3RhZ2UobWFrZVJlZigqZ3B1VmVydGV4U2hhZGVyTW9kdWxlKSwg
eyBtX3ZlcnRleFNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQgfSk7CisgICAgICAgICAgICAgICAg
T3B0aW9uYWw8R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yPiBmcmFnbWVudFN0YWdlOwor
ICAgICAgICAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvJiB3ZWJHUFVGcmFnbWVudFNoYWRlck1vZHVsZSA9IG1fZnJhZ21lbnRTaGFk
ZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBn
cHVGcmFnbWVudFNoYWRlck1vZHVsZSA9IHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlLT5tb2R1
bGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFN0YWdlID0gR1BVUHJv
Z3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yKG1ha2VSZWYoKmdwdUZyYWdtZW50U2hhZGVyTW9kdWxl
KSwgeyBtX2ZyYWdtZW50U2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbV9y
ZW5kZXJQaXBlbGluZS0+cmVjb21waWxlKGRldmljZS5kZXZpY2UoKSwgV1RGTW92ZSh2ZXJ0ZXhT
dGFnZSksIFdURk1vdmUoZnJhZ21lbnRTdGFnZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oCmluZGV4IDhmMDBjYTY2NTBjYmU3YzBi
YjM5ODhmZmM2NTk0ZmFlYTkzYzk2MjYuLjkyYTNhYzkxODM0Zjc5OWM1NDhlNzhlN2I3MmQ1ZWZh
YTczMzQ1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGlwZWxpbmUuaApAQCAtMjcsMjQgKzI3LDQzIEBACiAKICNpZiBFTkFCTEUoV0VC
R1BVKQogCi0jaW5jbHVkZSAiR1BVT2JqZWN0QmFzZS5oIgotI2luY2x1ZGUgIkdQVVJlbmRlclBp
cGVsaW5lLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgIldlYkdQVVBpcGVs
aW5lLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNlIHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoUmVmUHRy
PEdQVVJlbmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYpOworY2xhc3MgR1BVUGlwZWxp
bmU7CitjbGFzcyBHUFVSZW5kZXJQaXBlbGluZTsKK2NsYXNzIEdQVUVycm9yU2NvcGVzOworY2xh
c3MgV2ViR1BVRGV2aWNlOwogCitjbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGluZSBmaW5hbCA6IHB1
YmxpYyBXZWJHUFVQaXBlbGluZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BVUmVuZGVy
UGlwZWxpbmUoKTsKKworICAgIHN0YXRpYyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0
ZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIEdQVUVycm9yU2Nv
cGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwg
T3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKTsKKwor
ICAgIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlclBpcGVsaW5lKCk7IH0KICAgICBj
b25zdCBHUFVSZW5kZXJQaXBlbGluZSogcmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBt
X3JlbmRlclBpcGVsaW5lLmdldCgpOyB9CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNo
YWRlckRhdGE+IHZlcnRleFNoYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyOyB9
CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudFNoYWRlcjsgfQorCisgICAgYm9vbCByZWNvbXBp
bGUoY29uc3QgV2ViR1BVRGV2aWNlJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVUmVuZGVyUGlw
ZWxpbmUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYpOworICAg
IFdlYkdQVVJlbmRlclBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBl
bGluZT4mJiwgR1BVRXJyb3JTY29wZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVy
RGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4g
ZnJhZ21lbnRTaGFkZXIpOwogCiAgICAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBtX3JlbmRl
clBpcGVsaW5lOworCisgICAgLy8gUHJzZXJ2ZWQgZm9yIFdlYiBJbnNwZWN0b3IgcmVjb21waWxh
dGlvbi4KKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gbV92ZXJ0ZXhT
aGFkZXI7CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IG1fZnJhZ21l
bnRTaGFkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfV0VCR1BVUElQRUxJTkUoV2ViQ29yZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUsIGlz
UmVuZGVyUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwK
aW5kZXggYTk4OWZkNDEwYWNiY2QzYjQ5OWFiMzFhNzM0OGM2NWYyZTc1Y2RiYi4uYTliNDAwMGI2
ZjFiMWEyMjgwYmMzMmIyYmYzMzcyMTY2ZGEzMTQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbApAQCAtMjcsNyAr
MjcsNiBAQAogWwogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1l
PVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIEludGVyZmFjZU5h
bWU9R1BVUmVuZGVyUGlwZWxpbmUKIF0gaW50ZXJmYWNlIFdlYkdQVVJlbmRlclBpcGVsaW5lIHsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFk
ZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1v
ZHVsZS5oCmluZGV4IDgzNzcwNTNkMWFjZTcyMzkwOWNiM2M4OTYyN2Y0ZDhjNjJiMWVhZWUuLjc0
YWFkZGI1MzQ3NWFmZGQ0ZTJiZjRiYWZmYTMyMTQ5NmViY2Q1ODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCkBAIC0zOCw3ICsz
OCw3IEBAIGNsYXNzIFdlYkdQVVNoYWRlck1vZHVsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQ
VVNoYWRlck1vZHVsZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR1BVU2hhZGVyTW9k
dWxlPiBjcmVhdGUoUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJik7CiAKLSAgICBjb25zdCBHUFVT
aGFkZXJNb2R1bGUqIG1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlLmdldCgpOyB9Cisg
ICAgR1BVU2hhZGVyTW9kdWxlKiBtb2R1bGUoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZS5nZXQo
KTsgfQogCiBwcml2YXRlOgogICAgIFdlYkdQVVNoYWRlck1vZHVsZShSZWZQdHI8R1BVU2hhZGVy
TW9kdWxlPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTdlNzUwZTQxODBjZDdiM2YyYTE5YTdhZTU4
MWNiNDMyOGExMWJmMi4uMzE0MGI2NTQ5ZTI3ODllOTczNTQzYTU4YWY2MjYxNjI1OTkwNDgwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTM3MSw2ICszNzEsNyBAQCBNb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwCiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNw
cAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwCiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuY3BwCkBAIC0xODkwLDYgKzE4OTEsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVUVycm9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVzLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5jcHAKK3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBl
bGluZUxheW91dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVQYXNz
RW5jb2Rlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGNkNzg4OWRlMTM1MTIyZmJkZDM5OGExNWQ4ZDEwNzdkNTg3M2Iz
YmQuLjQyNGU1MjNkODI0YWVhZjY3NDVlNzY2MjU2NzJkMTI3YjRiM2QzZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzky
LDYgKzEwMzkyLDEwIEBACiAJCTkxNzVDRTU5MjFFMjgxRUMwMERGMkMyOCAvKiBKU0luc3BlY3Rv
ckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxNzVDRTVBMjFFMjgxRUQwMERGMkMyNyAvKiBJbnNw
ZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkxNzVDRTVBMjFFMjgxRUQwMERGMkMyOCAvKiBKU0luc3BlY3Rv
ckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MTg2RjNCMzIzMjlGQjA1MDBBRkY4NTcgLyogR1BVUGlwZWxpbmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUGlwZWxpbmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE4NkYzQjYyMzI5RkI0RTAwQUZGODU3IC8qIFdlYkdQ
VVBpcGVsaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQ
VVBpcGVsaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE4NkYzQjcyMzI5
RkI0RjAwQUZGODU3IC8qIFdlYkdQVVBpcGVsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkxODZGM0JBMjMyOUZFNjgwMEFGRjg1NyAvKiBHUFVQaXBlbGluZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQaXBlbGluZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkxQjhGMEIzMjE5NTNENjUwMDBDMkIwMCAvKiBDZXJ0aWZpY2F0ZUlu
Zm9CYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENlcnRpZmljYXRlSW5m
b0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFCOTUyMjIxRjU4QTU4MDAw
OTMxREMyIC8qIFJlY29yZGluZ1N3aXp6bGVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWNvcmRp
bmdTd2l6emxlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFDOUYyRjgx
QUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODM0MCw2ICsxODM0NCw4IEBACiAJCQkJRDA4QUEwMkYyMjBEMEJENTAwNThDNTAyIC8q
IEdQVUxvYWRPcC5oICovLAogCQkJCUQwOUFGQjM3MjJEN0Q1QzYwMEM0NTM4QyAvKiBHUFVPYmpl
Y3RCYXNlLmggKi8sCiAJCQkJRDA5QUZCMTkyMkQ2Njk4QTAwQzQ1MzhDIC8qIEdQVU91dE9mTWVt
b3J5RXJyb3IuaCAqLywKKwkJCQk5MTg2RjNCQTIzMjlGRTY4MDBBRkY4NTcgLyogR1BVUGlwZWxp
bmUuY3BwICovLAorCQkJCTkxODZGM0IzMjMyOUZCMDUwMEFGRjg1NyAvKiBHUFVQaXBlbGluZS5o
ICovLAogCQkJCTMxMkZGOEM0MjFBNEMyRjQwMEVCMTk5RCAvKiBHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmggKi8sCiAJCQkJRDAwMzI4ODcyMUM5QTRFNTAwNjIyQUE2IC8qIEdQVVBpcGVsaW5l
TGF5b3V0LmNwcCAqLywKIAkJCQlEMDAzMjg4NjIxQzlBNEU1MDA2MjJBQTYgLyogR1BVUGlwZWxp
bmVMYXlvdXQuaCAqLywKQEAgLTI2MDc2LDYgKzI2MDgyLDggQEAKIAkJCQlEMDlBRkIwMzIyRDQw
Q0M1MDBDNDUzOEMgLyogV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaWRsICovLAogCQkJCUQwOUFD
MDBBMjMxNzM1QkUwMDE4Nzc2MiAvKiBXZWJHUFVEZXZpY2VFdmVudEhhbmRsZXIuaCAqLywKIAkJ
CQlEMDlBQzAwQjIzMTczNUJFMDAxODc3NjIgLyogV2ViR1BVRGV2aWNlRXZlbnRIYW5kbGVyLmlk
bCAqLywKKwkJCQk5MTg2RjNCNjIzMjlGQjRFMDBBRkY4NTcgLyogV2ViR1BVUGlwZWxpbmUuY3Bw
ICovLAorCQkJCTkxODZGM0I3MjMyOUZCNEYwMEFGRjg1NyAvKiBXZWJHUFVQaXBlbGluZS5oICov
LAogCQkJCUQwQzQxOUYwMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmggKi8sCiAJCQkJRDBDNDE5RjEyMTgzRUIzMTAwOUVDMURFIC8qIFdlYkdQVVBpcGVs
aW5lRGVzY3JpcHRvckJhc2UuaWRsICovLAogCQkJCUQwNUE5OUU1MjFDOUJGMkMwMDAzMkI3NSAv
KiBXZWJHUFVQaXBlbGluZUxheW91dC5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRleCA2YmEzODFhOWRmZTVjZjgyYmIxNjUyNTlkYjFiYThk
YWUzZGZjYmIyLi41MDY1NDk0OGQyYWQxNGE0NDEwODFhYzU0YmI4NGQzZjc5YjhlMzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTI4LDYgKzI4
LDggQEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgpAQCAtNjAsNiArNjIsNyBAQCBSZWY8V2Vi
R0xQcm9ncmFtPiBXZWJHTFByb2dyYW06OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjdHgpCiAKIFdlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmIGN0eCkKICAgICA6IFdlYkdMU2hhcmVkT2JqZWN0KGN0eCkKKyAgICAsIG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dChjdHguc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogewogICAgIHsK
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOwpAQCAtNzEsNiArNzQs
OCBAQCBXZWJHTFByb2dyYW06OldlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjdHgpCiAKIFdlYkdMUHJvZ3JhbTo6fldlYkdMUHJvZ3JhbSgpCiB7CisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSgqdGhpcyk7CisKICAgICBk
ZWxldGVPYmplY3QoMCk7CiAKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UHJvZ3JhbS5oCmluZGV4IDg4YTg5NzlkNDVmNjdhYTM3ZTJjMGU5MzdlM2QxOTQxYTZjMmZmM2Qu
LjY3NjlkMWQ0ZjUyMDk1NDE0YjVhZjMyN2Q1YzRlMjIzZDllNzJiMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCkBAIC0zMiw2ICszMiw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiBjbGFzcyBXZWJHTFNoYWRlcjsKIAogY2xhc3MgV2Vi
R0xQcm9ncmFtIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKQEAgLTQyLDYgKzQ0
LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBIYXNoTWFwPFdlYkdMUHJvZ3JhbSosIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UqPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKICAgICBz
dGF0aWMgTG9jayYgaW5zdGFuY2VzTXV0ZXgoKTsKIAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7IH0KKwogICAgIHVuc2lnbmVkIG51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucygp
OwogICAgIEdDM0RpbnQgZ2V0QWN0aXZlQXR0cmliTG9jYXRpb24oR0MzRHVpbnQgaW5kZXgpOwog
CkBAIC03MSw2ICs3NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYWNoZUFjdGl2ZUF0dHJpYkxv
Y2F0aW9ucyhHcmFwaGljc0NvbnRleHQzRCopOwogICAgIHZvaWQgY2FjaGVJbmZvSWZOZWVkZWQo
KTsKIAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKKwogICAgIFZlY3RvcjxHQzNEaW50PiBtX2FjdGl2ZUF0dHJpYkxvY2F0aW9uczsKIAogICAg
IEdDM0RpbnQgbV9saW5rU3RhdHVzIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAyMjRlMzRk
ODMyN2FkYjg1NWI5NDcxM2VkZjNjNjBhODU4Nzg1ZjcyLi42ZWVhOTFmYjE5OTNiMDRjZWUzODAz
MDBkYWI3NWYwMjBlYTkzOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNDExLDcgKzQxMSw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzaG93SGlnaHRsaWdodCgpCiAgICAgewotICAg
ICAgICBpZiAoIW1fcHJvZ3JhbSB8fCBMSUtFTFkoIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQobV9jb250ZXh0LCAqbV9wcm9ncmFtKSkpCisgICAg
ICAgIGlmICghbV9wcm9ncmFtIHx8IExJS0VMWSghSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpp
c1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKG1fY29udGV4dCwgKm1fcHJvZ3JhbSkpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmIChoYXNCdWZmZXJCaW5kaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUl9CSU5ESU5HKSkgewpAQCAtMTc1NCw3ICsxNzU0LDcgQEAgUmVm
UHRyPFdlYkdMUHJvZ3JhbT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlUHJvZ3Jh
bSgpCiAgICAgYXV0byBwcm9ncmFtID0gV2ViR0xQcm9ncmFtOjpjcmVhdGUoKnRoaXMpOwogICAg
IGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgpKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbSgqdGhpcywgcHJvZ3JhbS5nZXQoKSk7CisgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHTFByb2dyYW0oKnRoaXMsIHByb2dy
YW0uZ2V0KCkpOwogCiAgICAgcmV0dXJuIHByb2dyYW07CiB9CkBAIC0xODQwLDcgKzE4NDAsNyBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdM
RnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpkZWxldGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKIHsKICAgICBpZiAocHJvZ3Jh
bSkKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbSgq
dGhpcywgKnByb2dyYW0pOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxE
ZXN0cm95V2ViR0xQcm9ncmFtKCpwcm9ncmFtKTsKIAogICAgIGRlbGV0ZU9iamVjdChwcm9ncmFt
KTsKICAgICAvLyBXZSBkb24ndCByZXNldCBtX2N1cnJlbnRQcm9ncmFtIHRvIDAgaGVyZSBiZWNh
dXNlIHRoZSBkZWxldGlvbiBvZiB0aGUKQEAgLTIyNTUsNyArMjI1NSw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6CiAgICAgaWYgKCF2YWxpZGF0ZURyYXdBcnJheXMoImRyYXdBcnJheXMiLCBt
b2RlLCBmaXJzdCwgY291bnQsIDApKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9jdXJy
ZW50UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURp
c2FibGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkpCisgICAgaWYgKG1fY3VycmVudFByb2dy
YW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkKCp0
aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNsZWFySWZD
b21wb3NpdGVkKCk7CkBAIC0yMzA5LDcgKzIzMDksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmRyYXdFbGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdD
MwogICAgIGlmICghdmFsaWRhdGVEcmF3RWxlbWVudHMoImRyYXdFbGVtZW50cyIsIG1vZGUsIGNv
dW50LCB0eXBlLCBvZmZzZXQsIG51bUVsZW1lbnRzLCAwKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1No
YWRlclByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0pKQorICAgIGlmICht
X2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dy
YW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0pKQogICAgICAgICByZXR1cm47CiAK
ICAgICBjbGVhcklmQ29tcG9zaXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA2OTY0NjUwNTM5YjNiZjM5
MjBkMTRjZGFlMTBjMTE1MWY0MWVmOTQ3Li45MTJjODQ1YmJmMmEzN2VjMjkyYjY2NDcyYmU5OTAy
Yzg4NDg1ZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMTA3OSwyOSArMTA3OSwyOSBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cgogICAgICAgICBjYW52YXNBZ2VudC0+ZGlkRW5hYmxlRXh0ZW5zaW9uKGNv
bnRleHRXZWJHTEJhc2UsIGV4dGVuc2lvbik7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNl
LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBX
ZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBj
YW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkK
LSAgICAgICAgY2FudmFzQWdlbnQtPmRpZENyZWF0ZVByb2dyYW0oY29udGV4dFdlYkdMQmFzZSwg
cHJvZ3JhbSk7CisgICAgICAgIGNhbnZhc0FnZW50LT5kaWRDcmVhdGVXZWJHTFByb2dyYW0oY29u
dGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYg
KEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgY2FudmFzQWdlbnQtPndpbGxEZWxldGVQ
cm9ncmFtKHByb2dyYW0pOworICAgICAgICBjYW52YXNBZ2VudC0+d2lsbERlc3Ryb3lXZWJHTFBy
b2dyYW0ocHJvZ3JhbSk7CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1No
YWRlclByb2dyYW1EaXNhYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGlu
c3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBpZiAoSW5z
cGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNw
ZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlzU2hhZGVy
UHJvZ3JhbURpc2FibGVkKHByb2dyYW0pOworICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlz
V2ViR0xQcm9ncmFtRGlzYWJsZWQocHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKK2Jvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3Jh
bUhpZ2hsaWdodGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50
KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQo
KSkKLSAgICAgICAgcmV0dXJuIGNhbnZhc0FnZW50LT5pc1NoYWRlclByb2dyYW1IaWdobGlnaHRl
ZChwcm9ncmFtKTsKKyAgICAgICAgcmV0dXJuIGNhbnZhc0FnZW50LT5pc1dlYkdMUHJvZ3JhbUhp
Z2hsaWdodGVkKHByb2dyYW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KICNlbmRpZgpAQCAtMTEy
NCw2ICsxMTI0LDE4IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ29uZmln
dXJlU3dhcENoYWluSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpCiAgICAgaWYgKGF1dG8qIGNh
bnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQog
ICAgICAgICBjYW52YXNBZ2VudC0+d2lsbENvbmZpZ3VyZVN3YXBDaGFpbihjb250ZXh0R1BVLCBu
ZXdTd2FwQ2hhaW4pOwogfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3Jl
YXRlV2ViR1BVUGlwZWxpbmVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdB
Z2VudHMsIFdlYkdQVURldmljZSYgZGV2aWNlLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7
CisgICAgaWYgKGF1dG8qIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0
b3JDYW52YXNBZ2VudCgpKQorICAgICAgICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRlV2ViR1BVUGlw
ZWxpbmUoZGV2aWNlLCBwaXBlbGluZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgaWYg
KGF1dG8qIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNB
Z2VudCgpKQorICAgICAgICBjYW52YXNBZ2VudC0+d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShw
aXBlbGluZSk7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApp
bmRleCA4MWYzY2RjZGEyOWZjZTFiOTVlN2NiYjlkNTY4OTA4ZmM3YTc5MWMzLi41NDlhYTE3YTNl
YTNhN2I5MTViZWM3MmIyYmIyODIxMTY2MzY3ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC02Myw2ICs2Myw3IEBA
CiAjaWYgRU5BQkxFKFdFQkdQVSkKICNpbmNsdWRlICJHUFVDYW52YXNDb250ZXh0LmgiCiAjaW5j
bHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKICNlbmRp
ZgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTI4OSwxNSArMjkwLDE3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZShDYW52YXNSZW5k
ZXJpbmdDb250ZXh0JiwgYm9vbCBmb3JjZURpc3BhdGNoID0gZmFsc2UpOwogI2lmIEVOQUJMRShX
RUJHTCkKICAgICBzdGF0aWMgdm9pZCBkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVBy
b2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0
YXRpYyB2b2lkIHdpbGxEZWxldGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBX
ZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIGJv
b2wgaXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYs
IFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdMUHJvZ3JhbShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIHZv
aWQgd2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJv
b2wgaXNXZWJHTFByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2Vi
R0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoV0VCR1BVKQogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZShXZWJH
UFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVURldmljZShXZWJH
UFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQVUNh
bnZhc0NvbnRleHQmLCBXZWJHUFVTd2FwQ2hhaW4mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVh
dGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmLCBXZWJHUFVQaXBlbGluZSYpOworICAgIHN0
YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmKTsKICNl
bmRpZgogCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlJik7CkBAIC00
ODEsMTUgKzQ4NCwxNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFJlY29y
ZGluZ0NhbnZhc0ZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dCYsIGJvb2wgZm9yY2VEaXNwYXRjaCA9IGZhbHNlKTsKICNpZiBFTkFCTEUoV0VCR0wp
CiAgICAgc3RhdGljIHZvaWQgZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0
YXRpYyB2b2lkIGRpZENyZWF0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIHZvaWQg
d2lsbERlbGV0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0m
KTsKLSAgICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVyUHJv
Z3JhbUhpZ2hsaWdodGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7
CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOworICAg
IHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1EaXNh
YmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRp
YyBib29sIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
LCBXZWJHTFByb2dyYW0mKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3RhdGlj
IHZvaWQgZGlkQ3JlYXRlV2ViR1BVRGV2aWNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2Vi
R1BVRGV2aWNlJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVEZXZpY2VJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3
aWxsQ29uZmlndXJlU3dhcENoYWluSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgR1BVQ2FudmFz
Q29udGV4dCYsIFdlYkdQVVN3YXBDaGFpbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdl
YkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVRGV2aWNlJiwgV2Vi
R1BVUGlwZWxpbmUmKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5l
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVUGlwZWxpbmUmKTsKICNlbmRpZgogCiAg
ICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
Jik7CkBAIC0xMzg0LDMzICsxMzg5LDMzIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhCiAgICAg
ICAgIGRpZEVuYWJsZUV4dGVuc2lvbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRX
ZWJHTEJhc2UsIGV4dGVuc2lvbik7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250
ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAg
ICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9y
Q29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpKQotICAgICAgICBkaWRDcmVhdGVQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50
cywgY29udGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CisgICAgICAgIGRpZENyZWF0ZVdlYkdMUHJv
Z3JhbUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRXZWJHTEJhc2UsIHByb2dyYW0p
OwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZWxldGVQ
cm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdM
UHJvZ3JhbSYgcHJvZ3JhbSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIEZB
U1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwotICAgIGlmIChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRl
eHQoY29udGV4dFdlYkdMQmFzZS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KSkKLSAgICAgICAgd2lsbERlbGV0ZVByb2dyYW1JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBw
cm9ncmFtKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KHByb2dyYW0uc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSkKKyAgICAgICAgd2lsbERlc3Ryb3lXZWJHTFByb2dyYW1JbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKIH0KIAotaW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUgYm9v
bCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9n
cmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7CiAgICAgaWYg
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5n
QWdlbnRzRm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpKQotICAgICAgICByZXR1cm4gaXNTaGFkZXJQcm9ncmFtRGlzYWJsZWRJ
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKKyAgICAgICAgcmV0dXJuIGlzV2Vi
R0xQcm9ncmFtRGlzYWJsZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYg
Y29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQoraW5saW5lIGJvb2wgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3Jh
bSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoZmFsc2UpOwogICAgIGlmIChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckNvbnRleHQoY29udGV4dFdlYkdMQmFzZS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKSkKLSAgICAgICAgcmV0dXJuIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVk
SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7CisgICAgICAgIHJldHVybiBpc1dl
YkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogI2VuZGlmCkBAIC0xNDM2LDYgKzE0NDEsMjAgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ29uZmlndXJlU3dhcENoYWlu
KEdQVUNhbnZhc0NvbnRleHQmIGMKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9
IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRHUFUuY2FudmFzQmFzZSgpLnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCiAgICAgICAgIHdpbGxDb25maWd1cmVTd2FwQ2hhaW5J
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0R1BVLCBuZXdTd2FwQ2hhaW4pOwogfQor
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdQVVBp
cGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7
CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8q
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChkZXZp
Y2Uuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViR1BVUGlw
ZWxpbmVJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBkZXZpY2UsIHBpcGVsaW5lKTsKK30KKwor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBp
cGVsaW5lKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9O
T19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9
IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KHBpcGVsaW5lLnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkpCisgICAgICAgIHdpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBwaXBlbGluZSk7Cit9CiAjZW5kaWYKIAogaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAK
aW5kZXggZDUyOTU1MGNkYzg5YTg1OTRiMmViOGRkNDc2NTdmYjEyYTM4MGM4MS4uZGRhOWZlY2M5
OTc5NzM1MGNmYzRhOGY5MDc1ZDY2NmIzYmIzZjgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcApAQCAtMjYsNTMgKzI2LDIy
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvclNoYWRlclByb2dy
YW0uaCIKIAotI2lmIEVOQUJMRShXRUJHTCkKLQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNE
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSFRNTENhbnZhc0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDYW52YXMuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIEVOQUJMRShXRUJHTCkKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUg
IldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lkZW50aWZpZXJzRmFjdG9yeS5oPgorI2VuZGlmCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1
ZGUgIldITFNMUHJlcGFyZS5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZS5oIgor
I2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxp
bmUuaCIKKyNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKKyNlbmRpZgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKKyNpZiBFTkFCTEUo
V0VCR0wpCiBSZWY8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bTo6Y3JlYXRlKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0
b3JDYW52YXMpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbShwcm9ncmFtLCBpbnNwZWN0b3JDYW52YXMpKTsKIH0KKyNlbmRpZgogCisjaWYgRU5BQkxF
KFdFQkdQVSkKK1JlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjpjcmVhdGUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lLCBJbnNwZWN0b3JDYW52YXMmIGlu
c3BlY3RvckNhbnZhcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JTaGFk
ZXJQcm9ncmFtKHBpcGVsaW5lLCBpbnNwZWN0b3JDYW52YXMpKTsKK30KKyNlbmRpZgorCisjaWYg
RU5BQkxFKFdFQkdMKQogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6SW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0sIEluc3BlY3RvckNhbnZhcyYgaW5zcGVjdG9yQ2Fu
dmFzKQogICAgIDogbV9pZGVudGlmaWVyKCJwcm9ncmFtOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6
OmNyZWF0ZUlkZW50aWZpZXIoKSkKLSAgICAsIG1fcHJvZ3JhbShwcm9ncmFtKQogICAgICwgbV9j
YW52YXMoaW5zcGVjdG9yQ2FudmFzKQorICAgICwgbV9wcm9ncmFtKHByb2dyYW0pCiB7CisgICAg
QVNTRVJUKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KG1fY2FudmFzLmNhbnZhc0NvbnRl
eHQoKSkpOwogfQorI2VuZGlmCiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIEluc3BlY3Rv
clNoYWRlclByb2dyYW06OmNvbnRleHQoKSBjb25zdAorI2lmIEVOQUJMRShXRUJHUFUpCitJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKFdlYkdQVVBpcGVsaW5l
JiBwaXBlbGluZSwgSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCisgICAgOiBtX2lk
ZW50aWZpZXIoInBpcGVsaW5lOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZp
ZXIoKSkKKyAgICAsIG1fY2FudmFzKGluc3BlY3RvckNhbnZhcykKKyAgICAsIG1fcHJvZ3JhbShw
aXBlbGluZSkKIHsKLSAgICBBU1NFUlQobV9jYW52YXMuY2FudmFzQ29udGV4dCgpKTsKLSAgICBB
U1NFUlQoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKm1fY2FudmFzLmNhbnZhc0NvbnRl
eHQoKSkpOwotICAgIHJldHVybiBkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPigq
bV9jYW52YXMuY2FudmFzQ29udGV4dCgpKTsKKyAgICBBU1NFUlQobV9jYW52YXMuZGV2aWNlQ29u
dGV4dCgpKTsKIH0KKyNlbmRpZgogCi1XZWJHTFNoYWRlciogSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bTo6c2hhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHByb3RvY29sVHlwZSkKKyNpZiBFTkFCTEUo
V0VCR0wpCitXZWJHTFByb2dyYW0qIEluc3BlY3RvclNoYWRlclByb2dyYW06OnByb2dyYW0oKSBj
b25zdAogewotICAgIEdDM0RlbnVtIHNoYWRlclR5cGU7Ci0gICAgaWYgKHByb3RvY29sVHlwZSA9
PSAidmVydGV4IikKLSAgICAgICAgc2hhZGVyVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJU
RVhfU0hBREVSOwotICAgIGVsc2UgaWYgKHByb3RvY29sVHlwZSA9PSAiZnJhZ21lbnQiKQotICAg
ICAgICBzaGFkZXJUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUjsKLSAg
ICBlbHNlCisgICAgaWYgKGF1dG8qIHByb2dyYW1XcmFwcGVyID0gV1RGOjpnZXRfaWY8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxXZWJHTFByb2dyYW0+PihtX3Byb2dyYW0pKQorICAgICAgICByZXR1
cm4gJnByb2dyYW1XcmFwcGVyLT5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRp
ZgorCisjaWYgRU5BQkxFKFdFQkdQVSkKK1dlYkdQVVBpcGVsaW5lKiBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtOjpwaXBlbGluZSgpIGNvbnN0Cit7CisgICAgaWYgKGF1dG8qIHBpcGVsaW5lV3JhcHBl
ciA9IFdURjo6Z2V0X2lmPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+Piht
X3Byb2dyYW0pKQorICAgICAgICByZXR1cm4gJnBpcGVsaW5lV3JhcHBlci0+Z2V0KCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTCkKK3N0YXRpYyBX
ZWJHTFNoYWRlciogc2hhZGVyRm9yVHlwZShXZWJHTFByb2dyYW0mIHByb2dyYW0sIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlKQoreworICAgIHN3aXRj
aCAoc2hhZGVyVHlwZSkgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpT
aGFkZXJUeXBlOjpGcmFnbWVudDoKKyAgICAgICAgcmV0dXJuIHByb2dyYW0uZ2V0QXR0YWNoZWRT
aGFkZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUik7CisKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6VmVydGV4OgorICAgICAgICBy
ZXR1cm4gcHJvZ3JhbS5nZXRBdHRhY2hlZFNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVY
X1NIQURFUik7CisKKyAgICAvLyBDb21wdXRlIHNoYWRlcnMgYXJlIGEgV2ViR1BVIGNvbmNlcHQu
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6OkNvbXB1
dGU6CiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KIAotICAgIHJldHVybiBtX3Byb2dy
YW0uZ2V0QXR0YWNoZWRTaGFkZXIoc2hhZGVyVHlwZSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUp
CitzdGF0aWMgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHNoYWRlckZvclR5
cGUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6
OlNoYWRlclR5cGUgc2hhZGVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6Q29tcHV0ZToK
KyAgICAgICAgaWYgKGlzPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUpLmNv
bXB1dGVTaGFkZXIoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6RnJhZ21lbnQ6CisgICAgICAgIGlmIChpczxXZWJH
UFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkuZnJhZ21lbnRTaGFkZXIoKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVy
VHlwZTo6VmVydGV4OgorICAgICAgICBpZiAoaXM8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVs
aW5lKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJHUFVSZW5kZXJQaXBlbGluZT4o
cGlwZWxpbmUpLnZlcnRleFNoYWRlcigpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorI2VuZGlm
CisKK09wdGlvbmFsPEluc3BlY3RvclNoYWRlclByb2dyYW06OlNoYWRlclNvdXJjZURhdGE+IElu
c3BlY3RvclNoYWRlclByb2dyYW06OnJlcXVlc3RTaGFkZXJTb3VyY2UoSW5zcGVjdG9yOjpQcm90
b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUpCit7CisjaWYgIUVOQUJMRShXRUJH
TCkgJiYgIUVOQUJMRShXRUJHUFUpCisgICAgVU5VU0VEX1BBUkFNKHNoYWRlclR5cGUpOworI2Vu
ZGlmCisKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3Byb2dyYW0sCisjaWYgRU5BQkxFKFdF
QkdMKQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiBw
cm9ncmFtV3JhcHBlcikgLT4gT3B0aW9uYWw8U2hhZGVyU291cmNlRGF0YT4geworICAgICAgICAg
ICAgYXV0byYgcHJvZ3JhbSA9IHByb2dyYW1XcmFwcGVyLmdldCgpOworICAgICAgICAgICAgaWYg
KGF1dG8qIHNoYWRlciA9IHNoYWRlckZvclR5cGUocHJvZ3JhbSwgc2hhZGVyVHlwZSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHsgeyBzaGFkZXItPmdldFNvdXJjZSgpLCBXVEY6Om51bGxvcHQg
fSB9OworICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfSwKKyNlbmRp
ZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAgIFsmXSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBl
cjxXZWJHUFVQaXBlbGluZT4gcGlwZWxpbmVXcmFwcGVyKSAtPiBPcHRpb25hbDxTaGFkZXJTb3Vy
Y2VEYXRhPiB7CisgICAgICAgICAgICBhdXRvJiBwaXBlbGluZSA9IHBpcGVsaW5lV3JhcHBlci5n
ZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHNoYWRlciA9IHNoYWRlckZvclR5cGUocGlwZWxp
bmUsIHNoYWRlclR5cGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gd2ViR1BVTW9kdWxl
ID0gc2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRv
KiBncHVNb2R1bGUgPSB3ZWJHUFVNb2R1bGUtPm1vZHVsZSgpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoYXV0byogd2hsc2xNb2R1bGUgPSBncHVNb2R1bGUtPndobHNsTW9kdWxlKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyB3aGxzbE1vZHVsZS0+d2hs
c2xTb3VyY2UsIHNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQgfSB9OworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfSwKKyNlbmRpZgorICAgICAgICBbJl0gKE1vbm9z
dGF0ZSkgeworI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgICAgICB9CisgICAgKTsKK30KKworYm9vbCBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjp1cGRhdGVTaGFkZXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBl
IHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcqIGVudHJ5UG9p
bnQpCit7CisjaWYgIUVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShXRUJHUFUpCisgICAgVU5VU0VE
X1BBUkFNKHNoYWRlclR5cGUpOworICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOworI2VuZGlmCisj
aWYgIUVOQUJMRShXRUJHUFUpCisgICAgVU5VU0VEX1BBUkFNKGVudHJ5UG9pbnQpOworI2VuZGlm
CisKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3Byb2dyYW0sCisjaWYgRU5BQkxFKFdFQkdM
KQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiBwcm9n
cmFtV3JhcHBlcikgeworICAgICAgICAgICAgYXV0byYgcHJvZ3JhbSA9IHByb2dyYW1XcmFwcGVy
LmdldCgpOworICAgICAgICAgICAgaWYgKGF1dG8qIHNoYWRlciA9IHNoYWRlckZvclR5cGUocHJv
Z3JhbSwgc2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogY29udGV4dCA9
IG1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXM8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oY29udGV4dCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8mIGNvbnRleHRXZWJHTEJhc2UgPSBkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlPigqY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0V2Vi
R0xCYXNlLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0V2ViR0xCYXNlLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChzaGFkZXItPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRleHRXZWJHTEJhc2UubGlua1Byb2dyYW1XaXRob3V0SW52YWxpZGF0aW5n
QXR0cmliTG9jYXRpb25zKCZwcm9ncmFtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfSwKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAg
IFsmXSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4gcGlwZWxpbmVXcmFw
cGVyKSB7CisgICAgICAgICAgICBhdXRvJiBwaXBlbGluZSA9IHBpcGVsaW5lV3JhcHBlci5nZXQo
KTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkZXZpY2UgPSBtX2NhbnZhcy5kZXZpY2VDb250ZXh0
KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXIgPSBzaGFkZXJGb3JUeXBlKHBp
cGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byB3ZWJH
UFVNb2R1bGUgPSBzaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvKiBncHVNb2R1bGUgPSB3ZWJHUFVNb2R1bGUtPm1vZHVsZSgpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHdobHNsTW9kdWxlID0gZ3B1TW9kdWxl
LT53aGxzbE1vZHVsZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdobHNs
TW9kdWxlLT53aGxzbFNvdXJjZSA9IHNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGVudHJ5UG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaGFkZXIudmFsdWUoKS5lbnRyeVBvaW50ID0gKmVudHJ5UG9pbnQ7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChwaXBlbGluZS5yZWNvbXBpbGUoKmRldmljZSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0sCisjZW5kaWYKKyAgICAgICAgWyZdIChNb25vc3Rh
dGUpIHsKKyNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShXRUJHUFUpCisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmgKaW5kZXggOTQ2N2U4NDdmNWQzZDkyZDE0OTAwZTRiODU1OTYxYWE2
YWRlNjZjZS4uYjZiYjRmZTYwMTRmNDBhYTgxYzc0MDVhNTY0OTQzZTI1OTM4MjA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCkBA
IC0yNiwyNSArMjYsNDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEluc3BlY3RvckNhbnZhczsKKworI2lmIEVOQUJMRShXRUJHTCkKIGNsYXNzIFdlYkdMUHJv
Z3JhbTsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7Ci1jbGFzcyBXZWJHTFNoYWRl
cjsKKyNlbmRpZgogCi10eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKKyNpZiBFTkFCTEUoV0VC
R1BVKQorY2xhc3MgV2ViR1BVUGlwZWxpbmU7CisjZW5kaWYKIAogY2xhc3MgSW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvclNoYWRlclByb2dy
YW0+IHsKIHB1YmxpYzoKKyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgc3RhdGljIFJlZjxJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtPiBjcmVhdGUoV2ViR0xQcm9ncmFtJiwgSW5zcGVjdG9yQ2FudmFzJik7
CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbT4gY3JlYXRlKFdlYkdQVVBpcGVsaW5lJiwgSW5zcGVjdG9yQ2FudmFzJik7Cisj
ZW5kaWYKIAogICAgIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQogICAgIEluc3BlY3RvckNhbnZhcyYgY2FudmFzKCkgY29uc3QgeyByZXR1
cm4gbV9jYW52YXM7IH0KLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KCkg
Y29uc3Q7Ci0gICAgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9wcm9n
cmFtOyB9Ci0gICAgV2ViR0xTaGFkZXIqIHNoYWRlckZvclR5cGUoY29uc3QgU3RyaW5nJik7CisK
KyNpZiBFTkFCTEUoV0VCR0wpCisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtKCkgY29uc3Q7Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIFdlYkdQVVBpcGVsaW5lKiBwaXBlbGluZSgp
IGNvbnN0OworI2VuZGlmCisKKyAgICBzdHJ1Y3QgU2hhZGVyU291cmNlRGF0YSB7CisgICAgICAg
IFN0cmluZyBzb3VyY2U7CisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gZW50cnlQb2ludDsKKyAg
ICB9OworICAgIE9wdGlvbmFsPFNoYWRlclNvdXJjZURhdGE+IHJlcXVlc3RTaGFkZXJTb3VyY2Uo
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlKTsKKyAgICBib29sIHVwZGF0
ZVNoYWRlcihJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUsIGNvbnN0IFN0
cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcqIGVudHJ5UG9pbnQpOwogCiAgICAgYm9vbCBkaXNh
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0KICAgICB2b2lkIHNldERpc2FibGVk
KGJvb2wgZGlzYWJsZWQpIHsgbV9kaXNhYmxlZCA9IGRpc2FibGVkOyB9CkBAIC01MiwxNSArNzQs
MjcgQEAgcHVibGljOgogICAgIGJvb2wgaGlnaGxpZ2h0ZWQoKSBjb25zdCB7IHJldHVybiBtX2hp
Z2hsaWdodGVkOyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHRlZChib29sIHZhbHVlKSB7IG1faGln
aGxpZ2h0ZWQgPSB2YWx1ZTsgfQogCi0gICAgfkluc3BlY3RvclNoYWRlclByb2dyYW0oKSA9IGRl
ZmF1bHQ7Ci0KIHByaXZhdGU6CisjaWYgRU5BQkxFKFdFQkdMKQogICAgIEluc3BlY3RvclNoYWRl
clByb2dyYW0oV2ViR0xQcm9ncmFtJiwgSW5zcGVjdG9yQ2FudmFzJik7CisjZW5kaWYKKyNpZiBF
TkFCTEUoV0VCR1BVKQorICAgIEluc3BlY3RvclNoYWRlclByb2dyYW0oV2ViR1BVUGlwZWxpbmUm
LCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgogCiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsK
LSAgICBXZWJHTFByb2dyYW0mIG1fcHJvZ3JhbTsKICAgICBJbnNwZWN0b3JDYW52YXMmIG1fY2Fu
dmFzOwogCisgICAgVmFyaWFudDwKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgICAgIHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiwKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJHUFUp
CisgICAgICAgIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+LAorI2VuZGlm
CisgICAgICAgIE1vbm9zdGF0ZQorICAgID4gbV9wcm9ncmFtOworCiAgICAgYm9vbCBtX2Rpc2Fi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faGlnaGxpZ2h0ZWQgeyBmYWxzZSB9OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52
YXNBZ2VudC5jcHAKaW5kZXggMTg1MjI0ODVhNjUyMmI1NWQzMjgzMGIxNmYzZjhjYzYyMGQzN2Yz
Yy4uMjc4YWRmZDhlODBiYTY2M2UxYzQ1MjRjZDE2ZGM2OTk0ZWNjYzkwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2Vu
dC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgog
I2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTUFnZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oIgogI2lu
Y2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgog
I2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKQEAgLTQ2LDE0ICs0NywxOCBAQAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luamVjdGVkU2NyaXB0TWFuYWdlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKFdFQkdMKQogI2lu
Y2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLSNpbmNsdWRlICJXZWJH
TFNoYWRlci5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCR0wyKQpAQCAtNjIsNyArNjcsMTEg
QEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAjaW5jbHVkZSAiR1BVQ2FudmFzQ29udGV4dC5oIgor
I2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZS5oIgogI2luY2x1ZGUgIldlYkdQVURldmlj
ZS5oIgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVy
UGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJHUFVTd2FwQ2hhaW4uaCIKICNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC03Niw2ICs4NSw3IEBAIEluc3BlY3RvckNhbnZhc0FnZW50OjpJ
bnNwZWN0b3JDYW52YXNBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgICwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIoY29udGV4dC5pbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAg
LCBtX2luc3BlY3RlZFBhZ2UoY29udGV4dC5pbnNwZWN0ZWRQYWdlKQogICAgICwgbV9jYW52YXNE
ZXN0cm95ZWRUaW1lcigqdGhpcywgJkluc3BlY3RvckNhbnZhc0FnZW50OjpjYW52YXNEZXN0cm95
ZWRUaW1lckZpcmVkKQorICAgICwgbV9wcm9ncmFtRGVzdHJveWVkVGltZXIoKnRoaXMsICZJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6cHJvZ3JhbURlc3Ryb3llZFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAg
LTkzLDcgKzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlCiAKIHZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmRpc2NhcmRBZ2VudCgpCiB7Ci0gICAgY2xlYXJDYW52YXNEYXRhKCk7Cisg
ICAgcmVzZXQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZW5hYmxlKEVycm9y
U3RyaW5nJikKQEAgLTE0MSw3ICsxNTEsMTcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
ZW5hYmxlKEVycm9yU3RyaW5nJikKICAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdlYkdMUHJvZ3Jh
bTo6aW5zdGFuY2VzTXV0ZXgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgW3Byb2dyYW0sIGNvbnRl
eHRXZWJHTEJhc2VdIDogV2ViR0xQcm9ncmFtOjppbnN0YW5jZXMobG9jaykpIHsKICAgICAgICAg
ICAgIGlmIChjb250ZXh0V2ViR0xCYXNlICYmIGV4aXN0c0luQ3VycmVudFBhZ2UoY29udGV4dFdl
YkdMQmFzZS0+Y2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAg
ICAgICAgICAgZGlkQ3JlYXRlUHJvZ3JhbSgqY29udGV4dFdlYkdMQmFzZSwgKnByb2dyYW0pOwor
ICAgICAgICAgICAgICAgIGRpZENyZWF0ZVdlYkdMUHJvZ3JhbSgqY29udGV4dFdlYkdMQmFzZSwg
KnByb2dyYW0pOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BV
KQorICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdlYkdQVVBpcGVsaW5lOjppbnN0YW5j
ZXNNdXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBbcGlwZWxpbmUsIGRldmljZV0gOiBXZWJH
UFVQaXBlbGluZTo6aW5zdGFuY2VzKGxvY2spKSB7CisgICAgICAgICAgICBpZiAoZGV2aWNlICYm
IGV4aXN0c0luQ3VycmVudFBhZ2UoZGV2aWNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpICYm
IHBpcGVsaW5lLT5pc1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgZGlkQ3JlYXRlV2ViR1BVUGlw
ZWxpbmUoKmRldmljZSwgKnBpcGVsaW5lKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAt
MTUxLDcgKzE3MSw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2FibGUoRXJyb3JT
dHJpbmcmKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRJbnNwZWN0b3JDYW52YXNB
Z2VudChudWxscHRyKTsKIAotICAgIGNsZWFyQ2FudmFzRGF0YSgpOworICAgIHJlc2V0KCk7CiAK
ICAgICBtX3JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudCA9IFdURjo6bnVsbG9wdDsKIH0K
QEAgLTI4MCw5MyArMzAwLDY3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0b3BSZWNv
cmRpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmCiAgICAgZGlkRmlu
aXNoUmVjb3JkaW5nQ2FudmFzRnJhbWUoKmNvbnRleHQsIHRydWUpOwogfQogCi12b2lkIEluc3Bl
Y3RvckNhbnZhc0FnZW50OjpyZXF1ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwg
U3RyaW5nKiBjb250ZW50KQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVxdWVzdFNoYWRl
clNvdXJjZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlk
LCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGVTdHJpbmcsIFN0cmluZyogc291cmNlLCBPcHRpb25h
bDxTdHJpbmc+JiBlbnRyeVBvaW50KQogewotI2lmIEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGlu
c3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9n
cmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYXV0byogc2hhZGVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+c2hhZGVyRm9yVHlwZShzaGFkZXJU
eXBlKTsKLSAgICBpZiAoIXNoYWRlcikgewotICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5n
IHNoYWRlciBmb3IgZ2l2ZW4gc2hhZGVyVHlwZSJfczsKKyAgICBhdXRvIHNoYWRlclR5cGUgPSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpJbnNwZWN0b3JIZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21T
dHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlPihzaGFkZXJUeXBl
U3RyaW5nKTsKKyAgICBpZiAoIXNoYWRlclR5cGUpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBt
YWtlU3RyaW5nKCJVbmtub3duIHNoYWRlclR5cGU6ICJfcywgc2hhZGVyVHlwZVN0cmluZyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAqY29udGVudCA9IHNoYWRlci0+Z2V0U291cmNl
KCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVOVVNFRF9QQVJB
TShzaGFkZXJUeXBlKTsKLSAgICBVTlVTRURfUEFSQU0oY29udGVudCk7Ci0gICAgZXJyb3JTdHJp
bmcgPSAiTm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgorICAgIGF1dG8gZGF0YSA9IGluc3BlY3Rv
clByb2dyYW0tPnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyVHlwZS52YWx1ZSgpKTsKKyAgICBp
ZiAoIWRhdGEpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBzaGFkZXIgb2YgZ2l2
ZW4gc2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkIl9zOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgKnNvdXJjZSA9IGRhdGEudmFsdWUoKS5zb3VyY2U7CisgICAgaWYgKGRhdGEu
dmFsdWUoKS5lbnRyeVBvaW50KQorICAgICAgICBlbnRyeVBvaW50ID0gZGF0YS52YWx1ZSgpLmVu
dHJ5UG9pbnQudmFsdWUoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6dXBkYXRl
U2hhZGVyKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQs
IGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCit2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50Ojp1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nKiBlbnRyeVBvaW50KQogewotI2lm
IEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0
b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9ncmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJv
Z3JhbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogc2hhZGVyID0gaW5zcGVjdG9yUHJv
Z3JhbS0+c2hhZGVyRm9yVHlwZShzaGFkZXJUeXBlKTsKLSAgICBpZiAoIXNoYWRlcikgewotICAg
ICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIHNoYWRlciBmb3IgZ2l2ZW4gc2hhZGVyVHlwZSJf
czsKKyAgICBhdXRvIHNoYWRlclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpJbnNwZWN0b3JI
ZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2Fu
dmFzOjpTaGFkZXJUeXBlPihzaGFkZXJUeXBlU3RyaW5nKTsKKyAgICBpZiAoIXNoYWRlclR5cGUp
IHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBtYWtlU3RyaW5nKCJVbmtub3duIHNoYWRlclR5cGU6
ICJfcywgc2hhZGVyVHlwZVN0cmluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0wgPSBpbnNwZWN0b3JQcm9ncmFt
LT5jb250ZXh0KCk7Ci0gICAgY29udGV4dFdlYkdMLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJj
ZSk7Ci0gICAgY29udGV4dFdlYkdMLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKLQotICAgIGlmICgh
c2hhZGVyLT5pc1ZhbGlkKCkpIHsKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIHVw
ZGF0ZSBzaGFkZXIiX3M7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb250ZXh0V2Vi
R0wubGlua1Byb2dyYW1XaXRob3V0SW52YWxpZGF0aW5nQXR0cmliTG9jYXRpb25zKCZpbnNwZWN0
b3JQcm9ncmFtLT5wcm9ncmFtKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlk
KTsKLSAgICBVTlVTRURfUEFSQU0oc2hhZGVyVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJj
ZSk7Ci0gICAgZXJyb3JTdHJpbmcgPSAiTm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgorICAgIGlm
ICghaW5zcGVjdG9yUHJvZ3JhbS0+dXBkYXRlU2hhZGVyKHNoYWRlclR5cGUudmFsdWUoKSwgc291
cmNlLCBlbnRyeVBvaW50KSkKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIHVwZGF0
ZSBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkIl9zOwogfQog
CiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNh
YmxlZCkKIHsKLSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0g
YXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAgICBpZiAo
IWluc3BlY3RvclByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAogICAgIGluc3BlY3RvclByb2dy
YW0tPnNldERpc2FibGVkKGRpc2FibGVkKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb2dy
YW1JZCk7Ci0gICAgVU5VU0VEX1BBUkFNKGRpc2FibGVkKTsKLSAgICBlcnJvclN0cmluZyA9ICJO
b3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OnNldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGhpZ2hsaWdodGVkKQogewotI2lmIEVOQUJMRShX
RUJHTCkKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFt
KGVycm9yU3RyaW5nLCBwcm9ncmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaW5zcGVjdG9yUHJvZ3JhbS0+c2V0SGlnaGxpZ2h0ZWQoaGln
aGxpZ2h0ZWQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBVTlVT
RURfUEFSQU0oaGlnaGxpZ2h0ZWQpOwotICAgIGVycm9yU3RyaW5nID0gIk5vdCBzdXBwb3J0ZWQi
X3M7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZnJhbWVOYXZpZ2F0
ZWQoRnJhbWUmIGZyYW1lKQogewogICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7Ci0gICAg
ICAgIGNsZWFyQ2FudmFzRGF0YSgpOworICAgICAgICByZXNldCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC01NjgsNyArNTYyLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
ZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQKICAg
ICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZXh0ZW5zaW9uRW5hYmxlZChpbnNwZWN0b3JDYW52YXMt
PmlkZW50aWZpZXIoKSwgZXh0ZW5zaW9uKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBX
ZWJHTFByb2dyYW0mIHByb2dyYW0pCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVh
dGVXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQ
cm9ncmFtJiBwcm9ncmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yQ2FudmFzID0gZmluZEluc3Bl
Y3RvckNhbnZhcyhjb250ZXh0KTsKICAgICBBU1NFUlQoaW5zcGVjdG9yQ2FudmFzKTsKQEAgLTU3
OCwyMCArNTcyLDE5IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVByb2dy
YW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwKICAgICBhdXRvIGluc3BlY3Rv
clByb2dyYW0gPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUocHJvZ3JhbSwgKmluc3Bl
Y3RvckNhbnZhcyk7CiAgICAgU3RyaW5nIHByb2dyYW1JZGVudGlmaWVyID0gaW5zcGVjdG9yUHJv
Z3JhbS0+aWRlbnRpZmllcigpOwogICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5z
ZXQocHJvZ3JhbUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJvZ3JhbSkpOwotICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50
aWZpZXIoKSwgcHJvZ3JhbUlkZW50aWZpZXIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5w
cm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50
aWZpZXIsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcik7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZWxldGVQcm9ncmFtKFdlYkdM
UHJvZ3JhbSYgcHJvZ3JhbSkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95
V2ViR0xQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3Rv
clByb2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBpZiAoIWluc3Bl
Y3RvclByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBpZGVudGlmaWVyID0g
dW5iaW5kUHJvZ3JhbSgqaW5zcGVjdG9yUHJvZ3JhbSk7Ci0gICAgbV9mcm9udGVuZERpc3BhdGNo
ZXItPnByb2dyYW1EZWxldGVkKGlkZW50aWZpZXIpOworICAgIHVuYmluZFByb2dyYW0oKmluc3Bl
Y3RvclByb2dyYW0pOwogfQogCi1ib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1NoYWRlclBy
b2dyYW1EaXNhYmxlZChXZWJHTFByb2dyYW0mIHByb2dyYW0pCitib29sIEluc3BlY3RvckNhbnZh
c0FnZW50Ojppc1dlYkdMUHJvZ3JhbURpc2FibGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsK
ICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFt
KTsKICAgICBBU1NFUlQoaW5zcGVjdG9yUHJvZ3JhbSk7CkBAIC02MDEsNyArNTk0LDcgQEAgYm9v
bCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9n
cmFtJiBwcm9ncmFtKQogICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtLT5kaXNhYmxlZCgpOwog
fQogCi1ib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1NoYWRlclByb2dyYW1IaWdobGlnaHRl
ZChXZWJHTFByb2dyYW0mIHByb2dyYW0pCitib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1dl
YkdMUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRv
IGluc3BlY3RvclByb2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBB
U1NFUlQoaW5zcGVjdG9yUHJvZ3JhbSk7CkBAIC02NDksNiArNjQyLDM4IEBAIHZvaWQgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OndpbGxDb25maWd1cmVTd2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYg
Y29udGV4dEdQVSwKIAogICAgIG5vdGlmeURldmljZUZvclN3YXBDaGFpbihuZXdTd2FwQ2hhaW4p
OwogfQorCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHUFVQaXBlbGlu
ZShXZWJHUFVEZXZpY2UmIGRldmljZSwgV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAg
IGF1dG8gaW5zcGVjdG9yQ2FudmFzID0gZmluZEluc3BlY3RvckNhbnZhcyhkZXZpY2UpOworICAg
IEFTU0VSVChpbnNwZWN0b3JDYW52YXMpOworICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBBU1NFUlQocGlwZWxpbmUuaXNWYWxpZCgpKTsKKworICAgIGF1
dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNyZWF0ZShwaXBl
bGluZSwgKmluc3BlY3RvckNhbnZhcyk7CisgICAgU3RyaW5nIHByb2dyYW1JZGVudGlmaWVyID0g
aW5zcGVjdG9yUHJvZ3JhbS0+aWRlbnRpZmllcigpOworICAgIG1faWRlbnRpZmllclRvSW5zcGVj
dG9yUHJvZ3JhbS5zZXQocHJvZ3JhbUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJvZ3Jh
bSkpOworCisgICAgT3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFt
VHlwZT4gcHJvZ3JhbVR5cGU7CisgICAgaWYgKGlzPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlw
ZWxpbmUpKQorICAgICAgICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZh
czo6UHJvZ3JhbVR5cGU6OkNvbXB1dGU7CisgICAgZWxzZSBpZiAoaXM8V2ViR1BVUmVuZGVyUGlw
ZWxpbmU+KHBpcGVsaW5lKSkKKyAgICAgICAgcHJvZ3JhbVR5cGUgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpSZW5kZXI7CisgICAgQVNTRVJUKHByb2dyYW1UeXBl
KTsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JD
YW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlLnZhbHVl
KCkpOworfQorCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveVdlYkdQVVBp
cGVsaW5lKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBhdXRvIGluc3BlY3RvclBy
b2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwaXBlbGluZSk7CisgICAgaWYgKCFpbnNwZWN0
b3JQcm9ncmFtKQorICAgICAgICByZXR1cm47CisKKyAgICB1bmJpbmRQcm9ncmFtKCppbnNwZWN0
b3JQcm9ncmFtKTsKK30KICNlbmRpZgogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpzdGFy
dFJlY29yZGluZyhJbnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcywgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6UmVjb3JkaW5nOjpJbml0aWF0b3IgaW5pdGlhdG9yLCBSZWNvcmRpbmdPcHRpb25z
JiYgcmVjb3JkaW5nT3B0aW9ucykKQEAgLTY5NCw3ICs3MTksMTggQEAgdm9pZCBJbnNwZWN0b3JD
YW52YXNBZ2VudDo6Y2FudmFzRGVzdHJveWVkVGltZXJGaXJlZCgpCiAgICAgbV9yZW1vdmVkQ2Fu
dmFzSWRlbnRpZmllcnMuY2xlYXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
Y2xlYXJDYW52YXNEYXRhKCkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnByb2dyYW1EZXN0
cm95ZWRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoIW1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVy
cy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgaWRlbnRpZmllciA6
IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycykKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXItPnByb2dyYW1EZWxldGVkKGlkZW50aWZpZXIpOworCisgICAgbV9yZW1vdmVkUHJvZ3JhbUlk
ZW50aWZpZXJzLmNsZWFyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlc2V0
KCkKIHsKICAgICBmb3IgKGF1dG8mIGluc3BlY3RvckNhbnZhcyA6IG1faWRlbnRpZmllclRvSW5z
cGVjdG9yQ2FudmFzLnZhbHVlcygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb250ZXh0ID0gaW5z
cGVjdG9yQ2FudmFzLT5jYW52YXNDb250ZXh0KCkpCkBAIC03MDIsMTMgKzczOCwxNCBAQCB2b2lk
IEluc3BlY3RvckNhbnZhc0FnZW50OjpjbGVhckNhbnZhc0RhdGEoKQogICAgIH0KIAogICAgIG1f
aWRlbnRpZmllclRvSW5zcGVjdG9yQ2FudmFzLmNsZWFyKCk7Ci0jaWYgRU5BQkxFKFdFQkdMKQot
ICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5jbGVhcigpOwogICAgIG1fcmVtb3Zl
ZENhbnZhc0lkZW50aWZpZXJzLmNsZWFyKCk7Ci0jZW5kaWYKLQogICAgIGlmIChtX2NhbnZhc0Rl
c3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fY2FudmFzRGVzdHJveWVkVGltZXIu
c3RvcCgpOworCisgICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLmNsZWFyKCk7Cisg
ICAgbV9yZW1vdmVkUHJvZ3JhbUlkZW50aWZpZXJzLmNsZWFyKCk7CisgICAgaWYgKG1fcHJvZ3Jh
bURlc3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fcHJvZ3JhbURlc3Ryb3llZFRp
bWVyLnN0b3AoKTsKIH0KIAogSW5zcGVjdG9yQ2FudmFzJiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
YmluZENhbnZhcyhDYW52YXNSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0LCBib29sIGNhcHR1cmVC
YWNrdHJhY2UpCkBAIC04MDUsMTMgKzg0MiwxOCBAQCBSZWZQdHI8SW5zcGVjdG9yQ2FudmFzPiBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6ZmluZEluc3BlY3RvckNhbnZhcyhXZWJHUFVEZXZpY2UmCiB9
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJHTCkKLVN0cmluZyBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6dW5iaW5kUHJvZ3JhbShJbnNwZWN0b3JTaGFkZXJQcm9ncmFtJiBpbnNwZWN0b3JQcm9ncmFt
KQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6dW5iaW5kUHJvZ3JhbShJbnNwZWN0b3JTaGFk
ZXJQcm9ncmFtJiBpbnNwZWN0b3JQcm9ncmFtKQogewogICAgIFN0cmluZyBpZGVudGlmaWVyID0g
aW5zcGVjdG9yUHJvZ3JhbS5pZGVudGlmaWVyKCk7CiAgICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0
b3JQcm9ncmFtLnJlbW92ZShpZGVudGlmaWVyKTsKIAotICAgIHJldHVybiBpZGVudGlmaWVyOwor
ICAgIC8vIFRoaXMgY2FuIGJlIGNhbGxlZCBpbiByZXNwb25zZSB0byBHQy4gRHVlIHRvIHRoZSBz
aW5nbGUtcHJvY2VzcyBtb2RlbCB1c2VkIGluIFdlYktpdDEsIHRoZQorICAgIC8vIGV2ZW50IG11
c3QgYmUgZGlzcGF0Y2hlZCBmcm9tIGEgdGltZXIgdG8gcHJldmVudCB0aGUgZnJvbnRlbmQgZnJv
bSBtYWtpbmcgSlMgYWxsb2NhdGlvbnMKKyAgICAvLyB3aGlsZSB0aGUgR0MgaXMgc3RpbGwgYWN0
aXZlLgorICAgIG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5hcHBlbmQoaWRlbnRpZmllcik7
CisKKyAgICBpZiAoIW1fcHJvZ3JhbURlc3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
IG1fcHJvZ3JhbURlc3Ryb3llZFRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCiBSZWZQdHI8
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmFzc2VydEluc3Bl
Y3RvclByb2dyYW0oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dy
YW1JZCkKQEAgLTgyNCwxMCArODY2LDIyIEBAIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
PiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6YXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShFcnJvCiAgICAg
cmV0dXJuIGluc3BlY3RvclByb2dyYW07CiB9CiAKKyNpZiBFTkFCTEUoV0VCR0wpCiBSZWZQdHI8
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZpbmRJbnNwZWN0
b3JQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBmb3IgKGF1dG8mIGluc3Bl
Y3RvclByb2dyYW0gOiBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0udmFsdWVzKCkpIHsK
LSAgICAgICAgaWYgKCZpbnNwZWN0b3JQcm9ncmFtLT5wcm9ncmFtKCkgPT0gJnByb2dyYW0pCisg
ICAgICAgIGlmIChpbnNwZWN0b3JQcm9ncmFtLT5wcm9ncmFtKCkgPT0gJnByb2dyYW0pCisgICAg
ICAgICAgICByZXR1cm4gaW5zcGVjdG9yUHJvZ3JhbTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCitSZWZQdHI8SW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZpbmRJbnNwZWN0b3JQcm9ncmFtKFdl
YkdQVVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBmb3IgKGF1dG8mIGluc3BlY3RvclByb2dy
YW0gOiBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0udmFsdWVzKCkpIHsKKyAgICAgICAg
aWYgKGluc3BlY3RvclByb2dyYW0tPnBpcGVsaW5lKCkgPT0gJnBpcGVsaW5lKQogICAgICAgICAg
ICAgcmV0dXJuIGluc3BlY3RvclByb2dyYW07CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52
YXNBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52
YXNBZ2VudC5oCmluZGV4IGJhZWRkNDY3Y2Q5NzE3ZDY1NmJjNzM3NmUwZWViZDIyM2QyYzBmYTYu
LmMwZTBlM2Q4MWI1ODgzMTAzOWFjN2ZjMTU5YzgwMDM3ZDBkMDFiYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgK
QEAgLTMzLDE0ICszMyw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJv
bnRlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgRU5BQkxF
KFdFQkdMKQotI2luY2x1ZGUgIkluc3BlY3RvclNoYWRlclByb2dyYW0uaCIKLSNlbmRpZgorI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyOwpAQCAtNDksNiArNDIsNyBAQCBjbGFzcyBJbmplY3RlZFNjcmlw
dE1hbmFnZXI7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQ7CitjbGFzcyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOwogI2lmIEVOQUJMRShXRUJHTCkK
IGNsYXNzIFdlYkdMUHJvZ3JhbTsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CkBA
IC01Niw2ICs1MCw3IEBAIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAjaWYgRU5B
QkxFKFdFQkdQVSkKIGNsYXNzIEdQVUNhbnZhc0NvbnRleHQ7CiBjbGFzcyBXZWJHUFVEZXZpY2U7
CitjbGFzcyBXZWJHUFVQaXBlbGluZTsKIGNsYXNzIFdlYkdQVVN3YXBDaGFpbjsKICNlbmRpZgog
CkBAIC04Myw4ICs3OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlY29yZGluZ0F1dG9DYXB0
dXJlRnJhbWVDb3VudChFcnJvclN0cmluZyYsIGludCBjb3VudCk7CiAgICAgdm9pZCBzdGFydFJl
Y29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGNvbnN0IGludCog
ZnJhbWVDb3VudCwgY29uc3QgaW50KiBtZW1vcnlMaW1pdCk7CiAgICAgdm9pZCBzdG9wUmVjb3Jk
aW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCk7Ci0gICAgdm9pZCByZXF1
ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNv
bnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgU3RyaW5nKik7Ci0gICAgdm9pZCB1cGRhdGVTaGFkZXIo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFk
ZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSk7CisgICAgdm9pZCByZXF1ZXN0U2hhZGVyU291
cmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYg
c2hhZGVyVHlwZSwgU3RyaW5nKiBzb3VyY2UsIE9wdGlvbmFsPFN0cmluZz4mIGVudHJ5UG9pbnQp
OworICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9n
cmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNv
bnN0IFN0cmluZyogZW50cnlQb2ludCk7CiAgICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtRGlzYWJs
ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCk7
CiAgICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBoaWdobGlnaHRlZCk7CiAKQEAgLTEwMywxNSArOTgs
MTcgQEAgcHVibGljOgogICAgIHZvaWQgY29uc29sZVN0YXJ0UmVjb3JkaW5nQ2FudmFzKENhbnZh
c1JlbmRlcmluZ0NvbnRleHQmLCBKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNPYmplY3QqIG9wdGlv
bnMpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICB2b2lkIGRpZEVuYWJsZUV4dGVuc2lvbihXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBkaWRDcmVh
dGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKLSAg
ICB2b2lkIHdpbGxEZWxldGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSYpOwotICAgIGJvb2wgaXNTaGFk
ZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJik7Ci0gICAgYm9vbCBpc1NoYWRlclByb2dy
YW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkdMUHJv
Z3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgdm9p
ZCB3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dyYW0mKTsKKyAgICBib29sIGlzV2Vi
R0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJik7CisgICAgYm9vbCBpc1dlYkdMUHJvZ3Jh
bUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdQVSkK
ICAgICB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZShXZWJHUFVEZXZpY2UmKTsKICAgICB2b2lk
IHdpbGxEZXN0cm95V2ViR1BVRGV2aWNlKFdlYkdQVURldmljZSYpOwogICAgIHZvaWQgd2lsbENv
bmZpZ3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0JiwgV2ViR1BVU3dhcENoYWluJik7Cisg
ICAgdm9pZCBkaWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmLCBXZWJHUFVQaXBl
bGluZSYpOworICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBlbGlu
ZSYpOwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xMjMsNyArMTIwLDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEluc3BlY3RvckNhbnZhcyYsIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlJlY29yZGluZzo6SW5pdGlhdG9yLCBSZWNvcmRpbmdPcHRpb25zJiYgPSB7IH0pOwogCiAg
ICAgdm9pZCBjYW52YXNEZXN0cm95ZWRUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBjbGVhckNhbnZh
c0RhdGEoKTsKKyAgICB2b2lkIHByb2dyYW1EZXN0cm95ZWRUaW1lckZpcmVkKCk7CisgICAgdm9p
ZCByZXNldCgpOworCiAgICAgSW5zcGVjdG9yQ2FudmFzJiBiaW5kQ2FudmFzKENhbnZhc1JlbmRl
cmluZ0NvbnRleHQmLCBib29sIGNhcHR1cmVCYWNrdHJhY2UpOwogI2lmIEVOQUJMRShXRUJHUFUp
CiAgICAgSW5zcGVjdG9yQ2FudmFzJiBiaW5kQ2FudmFzKFdlYkdQVURldmljZSYsIGJvb2wgY2Fw
dHVyZUJhY2t0cmFjZSk7CkBAIC0xMzUsMTEgKzEzNCwxNCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxJbnNwZWN0b3JDYW52YXM+IGZpbmRJbnNwZWN0b3JDYW52YXMoV2ViR1BVRGV2aWNlJik7CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShXRUJHTCkKLSAgICBTdHJpbmcgdW5iaW5kUHJvZ3JhbShJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtJik7CisgICAgdm9pZCB1bmJpbmRQcm9ncmFtKEluc3BlY3RvclNo
YWRlclByb2dyYW0mKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gYXNzZXJ0
SW5zcGVjdG9yUHJvZ3JhbShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkKTsK
KyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IGZp
bmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlmCisjaWYgRU5BQkxFKFdF
QkdQVSkKKyAgICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gZmluZEluc3BlY3RvclBy
b2dyYW0oV2ViR1BVUGlwZWxpbmUmKTsKKyNlbmRpZgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPElu
c3BlY3Rvcjo6Q2FudmFzRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsK
ICAgICBSZWZQdHI8SW5zcGVjdG9yOjpDYW52YXNCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5k
RGlzcGF0Y2hlcjsKQEAgLTE0OCwxNCArMTUwLDE0IEBAIHByaXZhdGU6CiAgICAgUGFnZSYgbV9p
bnNwZWN0ZWRQYWdlOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JDYW52
YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhczsKLSNpZiBFTkFCTEUoV0VCR0wpCi0g
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4gbV9pZGVu
dGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtOwotI2VuZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gbV9y
ZW1vdmVkQ2FudmFzSWRlbnRpZmllcnM7CisgICAgVGltZXIgbV9jYW52YXNEZXN0cm95ZWRUaW1l
cjsKKworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4+
IG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbTsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3Jl
bW92ZWRQcm9ncmFtSWRlbnRpZmllcnM7CisgICAgVGltZXIgbV9wcm9ncmFtRGVzdHJveWVkVGlt
ZXI7CiAKICAgICBPcHRpb25hbDxzaXplX3Q+IG1fcmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNv
dW50OwotCi0gICAgVGltZXIgbV9jYW52YXNEZXN0cm95ZWRUaW1lcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaAppbmRleCBjYWZjNmU0ZWYxODVkNDNhNzg0
N2M5MGZiZjdiN2Y1OTc0N2M5NzRhLi45ZmY1MTk4MGI2MWVhOTY4OTNiNGFiMWQyMWI0OGZmM2M5
NGJjNjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpZiBFTkFC
TEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXSExTTFByZXBhcmUuaCIKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM4
LDI3ICs0MCwzOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVURldmljZTsKIGNs
YXNzIEdQVUVycm9yU2NvcGVzOworY2xhc3MgR1BVUGlwZWxpbmVMYXlvdXQ7CiAKIHN0cnVjdCBH
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOwogCiB1c2luZyBQbGF0Zm9ybUNvbXB1dGVQaXBl
bGluZSA9IE1UTENvbXB1dGVQaXBlbGluZVN0YXRlOwogdXNpbmcgUGxhdGZvcm1Db21wdXRlUGlw
ZWxpbmVTbWFydFB0ciA9IFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT47CiAKLWNs
YXNzIEdQVUNvbXB1dGVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXB1dGVQaXBl
bGluZT4geworY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lIGZpbmFsIDogcHVibGljIEdQVVBpcGVs
aW5lIHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5HUFVDb21wdXRlUGlwZWxpbmUoKTsKKwogICAg
IHN0YXRpYyBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2
aWNlJiwgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIEdQVUVycm9yU2NvcGVz
Jik7CiAKKyAgICBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorCisgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVUHJvZ3JhbW1hYmxl
U3RhZ2VEZXNjcmlwdG9yJiYgY29tcHV0ZVN0YWdlKTsKKwogICAgIGNvbnN0IFBsYXRmb3JtQ29t
cHV0ZVBpcGVsaW5lKiBwbGF0Zm9ybUNvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGxhdGZvcm1Db21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KIAogICAgIFdITFNMOjpDb21wdXRlRGlt
ZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZURpbWVu
c2lvbnM7IH0KIAogcHJpdmF0ZToKLSAgICBHUFVDb21wdXRlUGlwZWxpbmUoUGxhdGZvcm1Db21w
dXRlUGlwZWxpbmVTbWFydFB0ciYmLCBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMpOworICAgIEdQ
VUNvbXB1dGVQaXBlbGluZShQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRyJiYsIFdITFNM
OjpDb21wdXRlRGltZW5zaW9ucywgR1BVUGlwZWxpbmVMYXlvdXQmKTsKIAogICAgIFBsYXRmb3Jt
Q29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZTsKICAgICBX
SExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgbV9jb21wdXRlRGltZW5zaW9ucyB7IDAsIDAsIDAgfTsK
KworICAgIC8vIFByc2VydmVkIGZvciBXZWIgSW5zcGVjdG9yIHJlY29tcGlsYXRpb24uCisgICAg
UmVmUHRyPEdQVVBpcGVsaW5lTGF5b3V0PiBtX2xheW91dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19HUFVQSVBFTElORShXZWJDb3JlOjpH
UFVDb21wdXRlUGlwZWxpbmUsIGlzQ29tcHV0ZVBpcGVsaW5lKCkpCisKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVQaXBlbGluZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M4ODE2NTU0MzU3MTIzMTA1YjZlOWU3Yzg4
MzM0MWZjMmJkODI2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgorCisjaWYg
RU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVQaXBlbGluZTo6fkdQ
VVBpcGVsaW5lKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUGlwZWxpbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDJlZThkN2EzYjdlZmYxOTkwNmU5
NTAwODEwZjM0NDJjM2NlYjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVUGlwZWxp
bmUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVQaXBlbGluZT4geworcHVibGljOgorICAgIHZpcnR1
YWwgfkdQVVBpcGVsaW5lKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29tcHV0ZVBpcGVs
aW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0dQVVBJUEVMSU5FKFRvVmFsdWVU
eXBlTmFtZSwgcHJlZGljYXRlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFRvVmFs
dWVUeXBlTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpHUFVQ
aXBlbGluZSYgcGlwZWxpbmUpIHsgcmV0dXJuIHBpcGVsaW5lLnByZWRpY2F0ZTsgfSBcCitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oCmluZGV4IDBlZTFhZmEyM2E4MzM2
NzY2Zjg2MDI4MzQyOTZkMzAzNWJmY2NkYzkuLjI3YzA2MjhlZjdhMzAzNWU1OTIyMWZlZDk4N2Q1
ZjU3ZGIwN2FkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgK
QEAgLTM4LDEzICszOCwxMyBAQCBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
QmFzZSB7CiB9OwogCiBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIDogR1BV
UHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSB7Ci0gICAgR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yKFJlZjxjb25zdCBHUFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlLCBjb25zdCBH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JCYXNlJiBiYXNlKQorICAgIEdQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvcihSZWY8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSwgY29uc3Qg
R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSYgYmFzZSkKICAgICAgICAgOiBHUFVQ
cm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JCYXNlKGJhc2UpCiAgICAgICAgICwgbW9kdWxlIHsg
V1RGTW92ZShtb2R1bGUpIH0KICAgICB7CiAgICAgfQogCi0gICAgUmVmPGNvbnN0IEdQVVNoYWRl
ck1vZHVsZT4gbW9kdWxlOworICAgIFJlZjxHUFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVSZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lLmgKaW5kZXggODNjOGUxZDlkODE4
ZTFkYzdhN2IyNDIwNzI4ZTVjOTA2OGQ2MGMwNS4uZWViM2YxYjU1ZjI3Y2M3Mjk3ZmE5ZDhjOTcy
NGZkOGY3YjYxNWU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lm
IEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQ
VVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CkBAIC00NiwxMCArNDgsMTYgQEAgY2xhc3MgR1BVRXJyb3JTY29wZXM7
CiB1c2luZyBQbGF0Zm9ybVJlbmRlclBpcGVsaW5lID0gTVRMUmVuZGVyUGlwZWxpbmVTdGF0ZTsK
IHVzaW5nIFBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTbWFydFB0ciA9IFJldGFpblB0cjxNVExSZW5k
ZXJQaXBlbGluZVN0YXRlPjsKIAotY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmUgOiBwdWJsaWMgUmVm
Q291bnRlZDxHUFVSZW5kZXJQaXBlbGluZT4geworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmUgZmlu
YWwgOiBwdWJsaWMgR1BVUGlwZWxpbmUgewogcHVibGljOgorICAgIHZpcnR1YWwgfkdQVVJlbmRl
clBpcGVsaW5lKCk7CisKICAgICBzdGF0aWMgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiB0cnlD
cmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
JiwgR1BVRXJyb3JTY29wZXMmKTsKIAorICAgIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGJvb2wgcmVjb21waWxlKGNvbnN0IEdQVURldmljZSYs
IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciYmIHZlcnRleFN0YWdlLCBPcHRpb25hbDxH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3I+JiYgZnJhZ21lbnRTdGFnZSk7CisKICNpZiBV
U0UoTUVUQUwpCiAgICAgTVRMRGVwdGhTdGVuY2lsU3RhdGUgKmRlcHRoU3RlbmNpbFN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXB0aFN0ZW5jaWxTdGF0ZS5nZXQoKTsgfQogI2VuZGlmCkBAIC01
OSwxNSArNjcsMjEgQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIFVTRShNRVRBTCkKLSAgICBH
UFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYsIFBsYXRm
b3JtUmVuZGVyUGlwZWxpbmVTbWFydFB0ciYmLCBHUFVQcmltaXRpdmVUb3BvbG9neSwgT3B0aW9u
YWw8R1BVSW5kZXhGb3JtYXQ+KTsKKyAgICBHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRM
RGVwdGhTdGVuY2lsU3RhdGU+JiYsIFBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTbWFydFB0ciYmLCBH
UFVQcmltaXRpdmVUb3BvbG9neSwgT3B0aW9uYWw8R1BVSW5kZXhGb3JtYXQ+LCBHUFVQaXBlbGlu
ZUxheW91dCYsIGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvckJhc2UmKTsKIAogICAg
IFJldGFpblB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4gbV9kZXB0aFN0ZW5jaWxTdGF0ZTsKICNl
bmRpZiAvLyBVU0UoTUVUQUwpCiAgICAgUGxhdGZvcm1SZW5kZXJQaXBlbGluZVNtYXJ0UHRyIG1f
cGxhdGZvcm1SZW5kZXJQaXBlbGluZTsKICAgICBHUFVQcmltaXRpdmVUb3BvbG9neSBtX3ByaW1p
dGl2ZVRvcG9sb2d5OwogICAgIE9wdGlvbmFsPEdQVUluZGV4Rm9ybWF0PiBtX2luZGV4Rm9ybWF0
OworCisgICAgLy8gUHJzZXJ2ZWQgZm9yIFdlYiBJbnNwZWN0b3IgcmVjb21waWxhdGlvbi4KKyAg
ICBSZWZQdHI8R1BVUGlwZWxpbmVMYXlvdXQ+IG1fbGF5b3V0OworICAgIEdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvckJhc2UgbV9yZW5kZXJEZXNjcmlwdG9yQmFzZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19HUFVQSVBFTElORShXZWJD
b3JlOjpHUFVSZW5kZXJQaXBlbGluZSwgaXNSZW5kZXJQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVTaGFkZXJNb2R1bGUuaAppbmRleCA4ODMwOGQ2OWUyMzM2NjdjOGRhZjZlMDM0
Y2ZlOTAwMjc3MDBjY2FmLi45YzNiNDZjNDgwZTc0ODZjMjMzYWZmNWFkYTEyYTA5YTU0YzU2MDVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVU2hh
ZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVNoYWRlck1vZHVsZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
UHRyPEdQVVNoYWRlck1vZHVsZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQ
VVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKTsKIAogICAgIFBsYXRmb3JtU2hhZGVyTW9kdWxlKiBw
bGF0Zm9ybVNoYWRlck1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2hsc2xNb2R1bGUgPyBudWxs
cHRyIDogbV9wbGF0Zm9ybVNoYWRlck1vZHVsZS5nZXQoKTsgfQotICAgIGNvbnN0IFdITFNMOjpT
aGFkZXJNb2R1bGUqIHdobHNsTW9kdWxlKCkgY29uc3QgeyByZXR1cm4gbV93aGxzbE1vZHVsZS5n
ZXQoKTsgfQorICAgIFdITFNMOjpTaGFkZXJNb2R1bGUqIHdobHNsTW9kdWxlKCkgY29uc3QgeyBy
ZXR1cm4gbV93aGxzbE1vZHVsZS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIEdQVVNoYWRlck1v
ZHVsZShQbGF0Zm9ybVNoYWRlck1vZHVsZVNtYXJ0UHRyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1l
dGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNv
bXB1dGVQaXBlbGluZU1ldGFsLm1tCmluZGV4IDdkOGY4YjI4MThmMTc4NDUzODE3ZWRmNjIzOTgz
NTE5MjY1YjIwY2YuLjI1ODI5ZWE2ZWE3OTU5ZWU4ZDA2ZjE0Y2Y2NDNjOTcyMDVhMTMyODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVD
b21wdXRlUGlwZWxpbmVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbXBvcnQgIkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbXBvcnQgIkdQ
VURldmljZS5oIgogI2ltcG9ydCAiR1BVRXJyb3JTY29wZXMuaCIKKyNpbXBvcnQgIkdQVVBpcGVs
aW5lTGF5b3V0LmgiCiAjaW1wb3J0ICJHUFVQaXBlbGluZU1ldGFsQ29udmVydExheW91dC5oIgog
I2ltcG9ydCAiV0hMU0xQcmVwYXJlLmgiCiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTk0
LDE1ICsxOTUsMzUgQEAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gR1BVQ29tcHV0ZVBpcGVs
aW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UKICAgICBpZiAoIWNyZWF0ZVJl
c3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEdQVUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKGNyZWF0ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSks
IGNyZWF0ZVJlc3VsdC0+Y29tcHV0ZURpbWVuc2lvbnMpKTsKKyAgICBBU1NFUlQoZGVzY3JpcHRv
ci5sYXlvdXQpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVQ29tcHV0ZVBpcGVsaW5lKFdU
Rk1vdmUoY3JlYXRlUmVzdWx0LT5waXBlbGluZVN0YXRlKSwgY3JlYXRlUmVzdWx0LT5jb21wdXRl
RGltZW5zaW9ucywgKmRlc2NyaXB0b3IubGF5b3V0KSk7CiB9CiAKLUdQVUNvbXB1dGVQaXBlbGlu
ZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4m
JiBwaXBlbGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zKQot
ICAgIDogbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKK0dQVUNv
bXB1dGVQaXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlw
ZWxpbmVTdGF0ZT4mJiBwaXBlbGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVE
aW1lbnNpb25zLCBHUFVQaXBlbGluZUxheW91dCYgbGF5b3V0KQorICAgIDogR1BVUGlwZWxpbmUo
KQorICAgICwgbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKICAg
ICAsIG1fY29tcHV0ZURpbWVuc2lvbnMoY29tcHV0ZURpbWVuc2lvbnMpCisgICAgLCBtX2xheW91
dChtYWtlUmVmKGxheW91dCkpCiB7CiB9CiAKK0dQVUNvbXB1dGVQaXBlbGluZTo6fkdQVUNvbXB1
dGVQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBHUFVDb21wdXRlUGlwZWxpbmU6OnJlY29t
cGlsZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yJiYgY29tcHV0ZVN0YWdlKQoreworICAgIGlmIChtX2xheW91dCkgeworICAgICAgICBHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IobWFrZVJlZigqbV9sYXlvdXQpLCBX
VEZNb3ZlKGNvbXB1dGVTdGFnZSkpOworICAgICAgICBhdXRvIGVycm9yU2NvcGVzID0gR1BVRXJy
b3JTY29wZXM6OmNyZWF0ZShbXSAoR1BVRXJyb3ImJikgeyB9KTsKKyAgICAgICAgaWYgKGF1dG8g
Y3JlYXRlUmVzdWx0ID0gdHJ5Q3JlYXRlTVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGUoZGV2aWNlLCBk
ZXNjcmlwdG9yLCBlcnJvclNjb3BlcykpIHsKKyAgICAgICAgICAgIG1fcGxhdGZvcm1Db21wdXRl
UGlwZWxpbmUgPSBXVEZNb3ZlKGNyZWF0ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSk7CisgICAgICAg
ICAgICBtX2NvbXB1dGVEaW1lbnNpb25zID0gY3JlYXRlUmVzdWx0LT5jb21wdXRlRGltZW5zaW9u
czsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQppbmRleCAy
ODI0MDg3NDk4OTcxMDRmODdiYjA2YTk1ZmNiYjdiNjc2ODliMzhhLi45ZjRkMDczYTQzOTIyMWQx
Y2I0NDBhOWVjNDYyN2M5MmY3ZDhlNTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxp
bmVNZXRhbC5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiR1BVRXJyb3JTY29wZXMuaCIK
ICNpbXBvcnQgIkdQVUxpbWl0cy5oIgogI2ltcG9ydCAiR1BVUGlwZWxpbmVNZXRhbENvbnZlcnRM
YXlvdXQuaCIKKyNpbXBvcnQgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2ltcG9y
dCAiR1BVVXRpbHMuaCIKICNpbXBvcnQgIldITFNMUHJlcGFyZS5oIgogI2ltcG9ydCAiV0hMU0xW
ZXJ0ZXhCdWZmZXJJbmRleENhbGN1bGF0b3IuaCIKQEAgLTQ4Myw3ICs0ODQsNyBAQCBzdGF0aWMg
UmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcj4gY29udmVydFJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvcihjbwogICAgIHJldHVybiBtdGxEZXNjcmlwdG9yOwogfQogCi1zdGF0aWMg
UmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IHRyeUNyZWF0ZU10bFJlbmRlclBpcGVs
aW5lU3RhdGUoY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBj
b25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQorc3Rh
dGljIFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiB0cnlDcmVhdGVNdGxSZW5kZXJQ
aXBlbGluZVN0YXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykK
IHsKICAgICBpZiAoIWRldmljZS5wbGF0Zm9ybURldmljZSgpKSB7CiAgICAgICAgIGVycm9yU2Nv
cGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcigiSW52YWxpZCBHUFVEZXZpY2UhIik7CkBAIC01MjIs
MjEgKzUyMyw0MSBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRlclBpcGVsaW5l
Ojp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsCiAKICAgICAvLyBGSVhNRTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODM4NyBkZXB0aFN0ZW5jaWxB
dHRhY2htZW50RGVzY3JpcHRvciBpc24ndCBpbXBsZW1lbnRlZCB5ZXQgZm9yIFdITFNMIGNvbXBp
bGVyLgogCi0gICAgYXV0byBwaXBlbGluZSA9IHRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5lU3Rh
dGUoZGVzY3JpcHRvciwgZGV2aWNlLCBlcnJvclNjb3Blcyk7CisgICAgYXV0byBwaXBlbGluZSA9
IHRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5lU3RhdGUoZGV2aWNlLCBkZXNjcmlwdG9yLCBlcnJv
clNjb3Blcyk7CiAgICAgaWYgKCFwaXBlbGluZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVVJlbmRlclBpcGVsaW5lKFdURk1vdmUoZGVwdGhT
dGVuY2lsKSwgV1RGTW92ZShwaXBlbGluZSksIGRlc2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3ks
IGRlc2NyaXB0b3IudmVydGV4SW5wdXQuaW5kZXhGb3JtYXQpKTsKKyAgICBBU1NFUlQoZGVzY3Jp
cHRvci5sYXlvdXQpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGlwZWxpbmUo
V1RGTW92ZShkZXB0aFN0ZW5jaWwpLCBXVEZNb3ZlKHBpcGVsaW5lKSwgZGVzY3JpcHRvci5wcmlt
aXRpdmVUb3BvbG9neSwgZGVzY3JpcHRvci52ZXJ0ZXhJbnB1dC5pbmRleEZvcm1hdCwgKmRlc2Ny
aXB0b3IubGF5b3V0LCBkZXNjcmlwdG9yKSk7CiB9CiAKLUdQVVJlbmRlclBpcGVsaW5lOjpHUFVS
ZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYgZGVwdGhTdGVu
Y2lsLCBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4mJiBwaXBlbGluZSwgR1BVUHJp
bWl0aXZlVG9wb2xvZ3kgdG9wb2xvZ3ksIE9wdGlvbmFsPEdQVUluZGV4Rm9ybWF0PiBmb3JtYXQp
Ci0gICAgOiBtX2RlcHRoU3RlbmNpbFN0YXRlKFdURk1vdmUoZGVwdGhTdGVuY2lsKSkKK0dQVVJl
bmRlclBpcGVsaW5lOjpHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2ls
U3RhdGU+JiYgZGVwdGhTdGVuY2lsLCBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4m
JiBwaXBlbGluZSwgR1BVUHJpbWl0aXZlVG9wb2xvZ3kgdG9wb2xvZ3ksIE9wdGlvbmFsPEdQVUlu
ZGV4Rm9ybWF0PiBmb3JtYXQsIEdQVVBpcGVsaW5lTGF5b3V0JiBsYXlvdXQsIGNvbnN0IEdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvckJhc2UmIHJlbmRlckRlc2NyaXB0b3JCYXNlKQorICAgIDog
R1BVUGlwZWxpbmUoKQorICAgICwgbV9kZXB0aFN0ZW5jaWxTdGF0ZShXVEZNb3ZlKGRlcHRoU3Rl
bmNpbCkpCiAgICAgLCBtX3BsYXRmb3JtUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkp
CiAgICAgLCBtX3ByaW1pdGl2ZVRvcG9sb2d5KHRvcG9sb2d5KQogICAgICwgbV9pbmRleEZvcm1h
dChmb3JtYXQpCisgICAgLCBtX2xheW91dChtYWtlUmVmKGxheW91dCkpCisgICAgLCBtX3JlbmRl
ckRlc2NyaXB0b3JCYXNlKHJlbmRlckRlc2NyaXB0b3JCYXNlKQogewogfQogCitHUFVSZW5kZXJQ
aXBlbGluZTo6fkdQVVJlbmRlclBpcGVsaW5lKCkgPSBkZWZhdWx0OworCitib29sIEdQVVJlbmRl
clBpcGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvciYmIHZlcnRleFN0YWdlLCBPcHRpb25hbDxHUFVQcm9ncmFtbWFi
bGVTdGFnZURlc2NyaXB0b3I+JiYgZnJhZ21lbnRTdGFnZSkKK3sKKyAgICBpZiAobV9sYXlvdXQp
IHsKKyAgICAgICAgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IobWFrZVJl
ZigqbV9sYXlvdXQpLCBXVEZNb3ZlKHZlcnRleFN0YWdlKSwgV1RGTW92ZShmcmFnbWVudFN0YWdl
KSwgbV9yZW5kZXJEZXNjcmlwdG9yQmFzZSk7CisgICAgICAgIGF1dG8gZXJyb3JTY29wZXMgPSBH
UFVFcnJvclNjb3Blczo6Y3JlYXRlKFtdIChHUFVFcnJvciYmKSB7IH0pOworICAgICAgICBpZiAo
YXV0byBwaXBlbGluZSA9IHRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5lU3RhdGUoZGV2aWNlLCBk
ZXNjcmlwdG9yLCBlcnJvclNjb3BlcykpIHsKKyAgICAgICAgICAgIG1fcGxhdGZvcm1SZW5kZXJQ
aXBlbGluZSA9IFdURk1vdmUocGlwZWxpbmUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcwppbmRleCBhNmFhNDExMmZiZmQ0MTNiNDE2ZThkMzM2MTExZjUyNjI2NWRiYTBk
Li43ODNiODVlY2MzYmY4NWUwMmI2MTNjMWE2NjViM2IwMjMxNWExMmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTI2Niw2ICsyNjYsOSBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJDb21wb3NpdGVkIl0gPSAiQ29tcG9zaXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVz
c2VkIl0gPSAiQ29tcHJlc3NlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2lvbiJdID0g
IkNvbXByZXNzaW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbXByZXNzaW9uOiJdID0gIkNvbXBy
ZXNzaW9uOiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlIl0gPSAiQ29tcHV0ZSI7Citsb2Nh
bGl6ZWRTdHJpbmdzWyJDb21wdXRlIFBpcGVsaW5lICVkIl0gPSAiQ29tcHV0ZSBQaXBlbGluZSAl
ZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlIFNoYWRlciJdID0gIkNvbXB1dGUgU2hhZGVy
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbXB1dGVkIl0gPSAiQ29tcHV0ZWQiOwogbG9jYWxpemVk
U3RyaW5nc1siQ29uZGl0aW9uIl0gPSAiQ29uZGl0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNv
bmRpdGlvbmFsIGV4cHJlc3Npb24iXSA9ICJDb25kaXRpb25hbCBleHByZXNzaW9uIjsKQEAgLTQ2
Myw2ICs0NjYsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgdGhhdCBvbmx5IG9uZSBtYWlu
IGNvbnRlbnQgc2VjdGlvbiBpcyB1c2VkIG9uIHRoZSBwYWdlLgogbG9jYWxpemVkU3RyaW5nc1si
RW5zdXJlIHRoYXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIl0gPSAiRW5z
dXJlIHRoYXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkVudGVyZWQgRnVsbC1TY3JlZW4gTW9kZSJdID0gIkVudGVyZWQgRnVsbC1TY3Jl
ZW4gTW9kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRpcmUgUmVjb3JkaW5nIl0gPSAiRW50aXJl
IFJlY29yZGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbnRyeSBwb2ludDogIl0gPSAiRW50cnkg
cG9pbnQ6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvciJdID0gIkVycm9yIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkVycm9yOiAiXSA9ICJFcnJvcjogIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVycm9y
cyJdID0gIkVycm9ycyI7CkBAIC04ODEsNiArODg1LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVt
b3ZlIFdhdGNoIEV4cHJlc3Npb24iXSA9ICJSZW1vdmUgV2F0Y2ggRXhwcmVzc2lvbiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZW1vdmUgcHJvYmUiXSA9ICJSZW1vdmUgcHJvYmUiOwogbG9jYWxpemVk
U3RyaW5nc1siUmVtb3ZlIHRoaXMgYnJlYWtwb2ludCBhY3Rpb24iXSA9ICJSZW1vdmUgdGhpcyBi
cmVha3BvaW50IGFjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmVkIGRlc2NlbmRhbnQg
Il0gPSAiUmVtb3ZlZCBkZXNjZW5kYW50ICI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZW5kZXIgUGlw
ZWxpbmUgJWQiXSA9ICJSZW5kZXIgUGlwZWxpbmUgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siUmVu
ZGVyaW5nIEZyYW1lcyJdID0gIlJlbmRlcmluZyBGcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1si
UmVwZWF0aW5nIExpbmVhciBHcmFkaWVudCJdID0gIlJlcGVhdGluZyBMaW5lYXIgR3JhZGllbnQi
OwogbG9jYWxpemVkU3RyaW5nc1siUmVwZWF0aW5nIFJhZGlhbCBHcmFkaWVudCJdID0gIlJlcGVh
dGluZyBSYWRpYWwgR3JhZGllbnQiOwpAQCAtOTk3LDcgKzEwMDIsNiBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJTZXNzaW9uIFN0b3JhZ2UiXSA9ICJTZXNzaW9uIFN0b3JhZ2UiOwogbG9jYWxpemVkU3Ry
aW5nc1siU2V0IHRvIEF1dG9tYXRpY2FsbHkgQ29udGludWUiXSA9ICJTZXQgdG8gQXV0b21hdGlj
YWxseSBDb250aW51ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZXR0ZXIiXSA9ICJTZXR0ZXIiOwog
bG9jYWxpemVkU3RyaW5nc1siU2V0dGluZ3MiXSA9ICJTZXR0aW5ncyI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJTaGFkZXIiXSA9ICJTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIFByb2dy
YW1zIl0gPSAiU2hhZGVyIFByb2dyYW1zIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyBDb250
ZW50Il0gPSAiU2hhZG93IENvbnRlbnQiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZG93IENvbnRl
bnQgKCVzKSJdID0gIlNoYWRvdyBDb250ZW50ICglcykiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01h
bmFnZXIuanMKaW5kZXggMzg5Y2I3MTMwNmQ1MzY4YTM1MjdlZTg2YzM4ZDIwOWUxNWJmNTg5ZC4u
MzhmMDFiYjY2NjdlYzAwODMwN2YwZTNmNTJmNDJkZmUyYmUxZjU4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9DYW52YXNNYW5hZ2VyLmpzCkBAIC0yMzQsNyArMjM0LDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9
IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FudmFzLmVu
YWJsZUV4dGVuc2lvbihleHRlbnNpb24pOwogICAgIH0KIAotICAgIHByb2dyYW1DcmVhdGVkKGNh
bnZhc0lkZW50aWZpZXIsIHByb2dyYW1JZGVudGlmaWVyKQorICAgIHByb2dyYW1DcmVhdGVkKGNh
bnZhc0lkZW50aWZpZXIsIHByb2dyYW1JZGVudGlmaWVyLCBwcm9ncmFtVHlwZSkKICAgICB7CiAg
ICAgICAgIGxldCBjYW52YXMgPSB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmdldChjYW52YXNJ
ZGVudGlmaWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2FudmFzKTsKQEAgLTI0Myw3ICsy
NDMsMTEgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBX
SS5PYmplY3QKIAogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlk
ZW50aWZpZXJNYXAuaGFzKHByb2dyYW1JZGVudGlmaWVyKSwgYFNoYWRlclByb2dyYW0gYWxyZWFk
eSBleGlzdHMgd2l0aCBpZCAke3Byb2dyYW1JZGVudGlmaWVyfS5gKTsKIAotICAgICAgICBsZXQg
cHJvZ3JhbSA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBjYW52YXMp
OworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMpOiBgcHJvZ3JhbVR5cGVgIGRpZCBu
b3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAoIXByb2dyYW1UeXBlKQorICAgICAgICAgICAgcHJv
Z3JhbVR5cGUgPSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKworICAgICAg
ICBsZXQgcHJvZ3JhbSA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBw
cm9ncmFtVHlwZSwgY2FudmFzKTsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZp
ZXJNYXAuc2V0KHByb2dyYW0uaWRlbnRpZmllciwgcHJvZ3JhbSk7CiAKICAgICAgICAgY2FudmFz
LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZChwcm9ncmFtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IGI5Mjlm
MDYyMGZhYTljZDJiZmIxNGRmYWY1NzkxMTE5ODQ1NGYzNjQuLjdkNTZlYzE3MTZmYWUyMjNkYTk2
NmY4NjA0MGYxNmRhZGY0MjFmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwpAQCAtNDUsNyArNDUsNyBAQCBXSS5DYW52
YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fc2hhZGVy
UHJvZ3JhbUNvbGxlY3Rpb24gPSBuZXcgV0kuU2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb247CiAgICAg
ICAgIHRoaXMuX3JlY29yZGluZ0NvbGxlY3Rpb24gPSBuZXcgV0kuUmVjb3JkaW5nQ29sbGVjdGlv
bjsKIAotICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIgPSAxOwor
ICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIgPSBudWxsOwogCiAg
ICAgICAgIHRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZSA9IG51bGw7CiAKQEAgLTQwOSwxMSArNDA5
LDE1IEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5n
U3RvcHBlZCwge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyfSk7CiAgICAgfQogCi0gICAgbmV4
dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyKCkKKyAgICBuZXh0U2hhZGVyUHJvZ3JhbURpc3Bs
YXlOdW1iZXJGb3JQcm9ncmFtVHlwZShwcm9ncmFtVHlwZSkKICAgICB7CiAgICAgICAgIC8vIENh
bGxlZCBmcm9tIFdJLlNoYWRlclByb2dyYW0uCiAKLSAgICAgICAgcmV0dXJuIHRoaXMuX25leHRT
aGFkZXJQcm9ncmFtRGlzcGxheU51bWJlcisrOworICAgICAgICBpZiAoIXRoaXMuX25leHRTaGFk
ZXJQcm9ncmFtRGlzcGxheU51bWJlcikKKyAgICAgICAgICAgIHRoaXMuX25leHRTaGFkZXJQcm9n
cmFtRGlzcGxheU51bWJlciA9IHt9OworCisgICAgICAgIHRoaXMuX25leHRTaGFkZXJQcm9ncmFt
RGlzcGxheU51bWJlcltwcm9ncmFtVHlwZV0gPSAodGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNw
bGF5TnVtYmVyW3Byb2dyYW1UeXBlXSB8fCAwKSArIDE7CisgICAgICAgIHJldHVybiB0aGlzLl9u
ZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXJbcHJvZ3JhbVR5cGVdOwogICAgIH0KIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9T
aGFkZXJQcm9ncmFtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1NoYWRlclByb2dyYW0uanMKaW5kZXggYzFlZDljOGFjN2ZjNDIwN2U3YjgwZmQ3MGMyMGY3
NjhmMDgxZDE2OS4uM2M4MWY4ODZhMjE5YTg5MmY3M2MxM2JmOTdkN2RiMDZhZTFlZjZlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRl
clByb2dyYW0uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1NoYWRlclByb2dyYW0uanMKQEAgLTI1LDI3ICsyNSw4MyBAQAogCiBXSS5TaGFkZXJQcm9n
cmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0
cnVjdG9yKGlkZW50aWZpZXIsIGNhbnZhcykKKyAgICBjb25zdHJ1Y3RvcihpZGVudGlmaWVyLCBw
cm9ncmFtVHlwZSwgY2FudmFzKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaWRlbnRp
Zmllcik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hhZGVyUHJvZ3Jh
bS5Qcm9ncmFtVHlwZSkuaW5jbHVkZXMocHJvZ3JhbVR5cGUpKTsKICAgICAgICAgY29uc29sZS5h
c3NlcnQoY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQoU2hhZGVyUHJvZ3JhbS5fY29udGV4dFR5cGVTdXBwb3J0c1Byb2dyYW1UeXBlKGNhbnZhcy5j
b250ZXh0VHlwZSwgcHJvZ3JhbVR5cGUpKTsKIAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAg
IHRoaXMuX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgICAgICB0aGlzLl9wcm9ncmFtVHlw
ZSA9IHByb2dyYW1UeXBlOwogICAgICAgICB0aGlzLl9jYW52YXMgPSBjYW52YXM7Ci0gICAgICAg
IHRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIgPSBjYW52YXMubmV4dFNoYWRlclByb2dyYW1EaXNw
bGF5TnVtYmVyKCk7CiAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZmFsc2U7CiAgICAgfQogCisg
ICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgX2NvbnRleHRUeXBlU3VwcG9ydHNQcm9ncmFtVHlw
ZShjb250ZXh0VHlwZSwgcHJvZ3JhbVR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKGNvbnRl
eHRUeXBlKSB7CisgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgorICAg
ICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CisgICAgICAgICAgICByZXR1
cm4gcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOworCisg
ICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVToKKyAgICAgICAgICAgIHJl
dHVybiBwcm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlCisg
ICAgICAgICAgICAgICAgfHwgcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5
cGUuUmVuZGVyOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0YXRpYyBfcHJvZ3JhbVR5cGVTdXBwb3J0
c1NoYWRlclR5cGUocHJvZ3JhbVR5cGUsIHNoYWRlclR5cGUpCisgICAgeworICAgICAgICBzd2l0
Y2ggKHByb2dyYW1UeXBlKSB7CisgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlw
ZS5Db21wdXRlOgorICAgICAgICAgICAgcmV0dXJuIHNoYWRlclR5cGUgPT09IFNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5Db21wdXRlOworCisgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9n
cmFtVHlwZS5SZW5kZXI6CisgICAgICAgICAgICByZXR1cm4gc2hhZGVyVHlwZSA9PT0gU2hhZGVy
UHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50CisgICAgICAgICAgICAgICAgfHwgc2hhZGVyVHlw
ZSA9PT0gU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAg
ICAvLyBQdWJsaWMKIAogICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRlbnRp
ZmllcjsgfQorICAgIGdldCBwcm9ncmFtVHlwZSgpIHsgcmV0dXJuIHRoaXMuX3Byb2dyYW1UeXBl
OyB9CiAgICAgZ2V0IGNhbnZhcygpIHsgcmV0dXJuIHRoaXMuX2NhbnZhczsgfQogCiAgICAgZ2V0
IGRpc3BsYXlOYW1lKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUHJvZ3Jh
bSAlZCIpLmZvcm1hdCh0aGlzLl91bmlxdWVEaXNwbGF5TnVtYmVyKTsKKyAgICAgICAgbGV0IGZv
cm1hdCA9IG51bGw7CisgICAgICAgIHN3aXRjaCAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlKSB7
CisgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgorICAgICAgICBjYXNl
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CisgICAgICAgICAgICBmb3JtYXQgPSBXSS5V
SVN0cmluZygiUHJvZ3JhbSAlZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVToKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5f
cHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlw
ZS5Db21wdXRlOgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IFdJLlVJU3RyaW5nKCJDb21wdXRl
IFBpcGVsaW5lICVkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgICAgIGZvcm1h
dCA9IFdJLlVJU3RyaW5nKCJSZW5kZXIgUGlwZWxpbmUgJWQiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGZvcm1hdCk7CisgICAgICAgIGlmICghdGhpcy5fdW5pcXVlRGlz
cGxheU51bWJlcikKKyAgICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIgPSB0aGlz
Ll9jYW52YXMubmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyRm9yUHJvZ3JhbVR5cGUodGhp
cy5fcHJvZ3JhbVR5cGUpOworICAgICAgICByZXR1cm4gZm9ybWF0LmZvcm1hdCh0aGlzLl91bmlx
dWVEaXNwbGF5TnVtYmVyKTsKICAgICB9CiAKICAgICBnZXQgZGlzYWJsZWQoKQpAQCAtNTUsNiAr
MTExLDEyIEBAIFdJLlNoYWRlclByb2dyYW0gPSBjbGFzcyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMg
V0kuT2JqZWN0CiAKICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpCiAgICAgeworICAgICAgICBp
ZiAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2Vi
R1BVKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X3Byb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisKICAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkID09
PSBkaXNhYmxlZCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjUsNjcgKzEyNyw1OSBAQCBX
SS5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhTaGFkZXJQcm9ncmFtLkV2ZW50
LkRpc2FibGVkQ2hhbmdlZCk7CiAgICAgfQogCi0gICAgcmVxdWVzdFZlcnRleFNoYWRlclNvdXJj
ZShjYWxsYmFjaykKKyAgICByZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclR5cGUsIGNhbGxiYWNr
KQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVxdWVzdFNoYWRlclNvdXJjZShDYW52YXNBZ2VudC5T
aGFkZXJUeXBlLlZlcnRleCwgY2FsbGJhY2spOworICAgICAgICBjb25zb2xlLmFzc2VydChPYmpl
Y3QudmFsdWVzKFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZSkuaW5jbHVkZXMoc2hhZGVyVHlwZSkp
OworICAgICAgICBjb25zb2xlLmFzc2VydChTaGFkZXJQcm9ncmFtLl9wcm9ncmFtVHlwZVN1cHBv
cnRzU2hhZGVyVHlwZSh0aGlzLl9wcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSkpOworCisgICAgICAg
IC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBjb250ZW50YCB3YXMgcmVuYW1lZCB0byBgc291
cmNlYC4KKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzKTogYGVudHJ5UG9pbnRgYCBk
aWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJj
ZSh0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCAoZXJyb3IsIHNvdXJjZSwgZW50cnlQb2lu
dCkgPT4geworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgV0kucmVw
b3J0SW50ZXJuYWxFcnJvcihlcnJvcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwg
bnVsbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBjYWxsYmFjayhzb3VyY2UsIGVudHJ5UG9pbnQpOworICAgICAgICB9KTsKICAgICB9CiAK
LSAgICByZXF1ZXN0RnJhZ21lbnRTaGFkZXJTb3VyY2UoY2FsbGJhY2spCisgICAgdXBkYXRlU2hh
ZGVyKHNoYWRlclR5cGUsIHNvdXJjZSwge2VudHJ5UG9pbnR9ID0ge30pCiAgICAgewotICAgICAg
ICB0aGlzLl9yZXF1ZXN0U2hhZGVyU291cmNlKENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21l
bnQsIGNhbGxiYWNrKTsKLSAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1
ZXMoU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlKS5pbmNsdWRlcyhzaGFkZXJUeXBlKSk7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KFNoYWRlclByb2dyYW0uX3Byb2dyYW1UeXBlU3VwcG9ydHNTaGFk
ZXJUeXBlKHRoaXMuX3Byb2dyYW1UeXBlLCBzaGFkZXJUeXBlKSk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCghIWVudHJ5UG9pbnQpID09PSAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKSk7CiAKLSAgICB1cGRhdGVWZXJ0ZXhTaGFkZXIo
c291cmNlKQotICAgIHsKLSAgICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKENhbnZhc0FnZW50LlNo
YWRlclR5cGUuVmVydGV4LCBzb3VyY2UpOwotICAgIH0KLQotICAgIHVwZGF0ZUZyYWdtZW50U2hh
ZGVyKHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihDYW52YXNBZ2Vu
dC5TaGFkZXJUeXBlLkZyYWdtZW50LCBzb3VyY2UpOworICAgICAgICBDYW52YXNBZ2VudC51cGRh
dGVTaGFkZXIodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCBlbnRyeVBvaW50
KTsKICAgICB9CiAKICAgICBzaG93SGlnaGxpZ2h0KCkKICAgICB7Ci0gICAgICAgIGNvbnN0IGhp
Z2hsaWdodGVkID0gdHJ1ZTsKLSAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJvZ3JhbUhp
Z2hsaWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVkLCAoZXJyb3IpID0+IHsKLSAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwotICAgICAgICB9KTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuUmVuZGVyKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgdGhpcy5fY2Fu
dmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKworICAg
ICAgICBDYW52YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQodGhpcy5faWRlbnRp
ZmllciwgdHJ1ZSk7CiAgICAgfQogCiAgICAgaGlkZUhpZ2hsaWdodCgpCiAgICAgewotICAgICAg
ICBjb25zdCBoaWdobGlnaHRlZCA9IGZhbHNlOwotICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFk
ZXJQcm9ncmFtSGlnaGxpZ2h0ZWQodGhpcy5faWRlbnRpZmllciwgaGlnaGxpZ2h0ZWQsIChlcnJv
cikgPT4gewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWVycm9yLCBlcnJvcik7Ci0gICAg
ICAgIH0pOwotICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcHJvZ3JhbVR5cGUg
PT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0wgfHwgdGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViR0wyKTsKIAotICAgIC8vIFByaXZhdGUKLQotICAgIF9yZXF1ZXN0U2hhZGVyU291cmNl
KHNoYWRlclR5cGUsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVz
dFNoYWRlclNvdXJjZSh0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCAoZXJyb3IsIGNvbnRl
bnQpID0+IHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIGNhbGxi
YWNrKG51bGwpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgY2FsbGJhY2soY29udGVudCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIF91
cGRhdGVTaGFkZXIoc2hhZGVyVHlwZSwgc291cmNlKQotICAgIHsKLSAgICAgICAgQ2FudmFzQWdl
bnQudXBkYXRlU2hhZGVyKHRoaXMuX2lkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgKGVy
cm9yKSA9PiB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IsIGVycm9yKTsKLSAg
ICAgICAgfSk7CisgICAgICAgIENhbnZhc0FnZW50LnNldFNoYWRlclByb2dyYW1IaWdobGlnaHRl
ZCh0aGlzLl9pZGVudGlmaWVyLCBmYWxzZSk7CiAgICAgfQogfTsKIAorV0kuU2hhZGVyUHJvZ3Jh
bS5Qcm9ncmFtVHlwZSA9IHsKKyAgICBDb21wdXRlOiAiY29tcHV0ZSIsCisgICAgUmVuZGVyOiAi
cmVuZGVyIiwKK307CisKIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZSA9IHsKLSAgICBGcmFn
bWVudDogInNoYWRlci10eXBlLWZyYWdtZW50IiwKLSAgICBWZXJ0ZXg6ICJzaGFkZXItdHlwZS12
ZXJ0ZXgiLAorICAgIENvbXB1dGU6ICJjb21wdXRlIiwKKyAgICBGcmFnbWVudDogImZyYWdtZW50
IiwKKyAgICBWZXJ0ZXg6ICJ2ZXJ0ZXgiLAogfTsKIAogV0kuU2hhZGVyUHJvZ3JhbS5FdmVudCA9
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL0NhbnZhc09ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKaW5kZXggM2U1ZGQ2YzJhNzJjMjZjY2MxMmVm
NjRiZjYyMDRjMGY4NjkwMjE2OS4uNmY1MzU3NDQzNDZmMjA3MTIwY2JlOWU5ZDNjYTI3ZjRjYmVl
YTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKQEAgLTY3LDkgKzY3LDkgQEAgV0ku
Q2FudmFzT2JzZXJ2ZXIgPSBjbGFzcyBDYW52YXNPYnNlcnZlcgogICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmV4dGVuc2lvbkVuYWJsZWQoY2FudmFzSWQsIGV4dGVuc2lvbik7CiAgICAgfQogCi0g
ICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCkKKyAgICBwcm9ncmFtQ3JlYXRl
ZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSkKICAgICB7Ci0gICAgICAgIFdJLmNh
bnZhc01hbmFnZXIucHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCk7CisgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIucHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCwgcHJv
Z3JhbVR5cGUpOwogICAgIH0KIAogICAgIHByb2dyYW1EZWxldGVkKHByb2dyYW1JZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclBy
b2dyYW1Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCmluZGV4IDU1ZWY0MWY4MmY1YmQ1
NGIzZjk3NzlhZGQ3ZTNhOWU1Y2U5ZTUxYTAuLjBlNDgwNjMxMDBjYjczNWJiYjc0ZjYyZTVkMmZk
NmQzZDZjN2JkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNz
cwpAQCAtMjMsNTAgKzIzLDUyIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFk
ZXIgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgeworICAgIGRpc3Bs
YXk6IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CiAgICAgdG9wOiAwOwogICAgIGJvdHRvbTogMDsKLQotICAgIC0tYm9yZGVyLXN0YXJ0
LXN0eWxlOiAxcHggc29saWQgbGlnaHRncmV5OwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLnZlcnRleCwKLWJvZHlb
ZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFk
ZXIuZnJhZ21lbnQgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuY29t
cHV0ZSB7CisgICAgcmlnaHQ6IDA7CisgICAgbGVmdDogMDsKK30KKworYm9keVtkaXI9bHRyXSAu
Y29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXgsCitib2R5W2Rpcj1y
dGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50IHsKICAg
ICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpOwogICAgIGxlZnQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0
cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIuZnJh
Z21lbnQsCi1ib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4
dC1lZGl0b3Iuc2hhZGVyLnZlcnRleCB7Citib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50LAorYm9keVtkaXI9cnRsXSAuY29udGVudC12
aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXggewogICAgIHdpZHRoOiBjYWxjKDUw
JSArIDFweCk7CiAgICAgcmlnaHQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmll
dy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgKyAudGV4dC1lZGl0b3Iuc2hh
ZGVyIHsKLSAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXN0YXJ0LXN0eWxlKTsKKy5jb250
ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyICsgLnNoYWRlciB7CisgICAgYm9yZGVy
LWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogfQogCi1ib2R5W2Rpcj1ydGxd
IC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsgLnRl
eHQtZWRpdG9yLnNoYWRlciB7Ci0gICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1ib3JkZXItc3RhcnQt
c3R5bGUpOwotfQotCi0uY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9y
LnNoYWRlciA+IC50eXBlLXRpdGxlIHsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
c2hhZGVyID4gaGVhZGVyID4gKiB7CiAgICAgcGFkZGluZzogMnB4IDRweDsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk
IGxpZ2h0Z3JleTsKIH0KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVk
aXRvci5zaGFkZXIgPiAuQ29kZU1pcnJvciB7Ci0gICAgdG9wOiAxOHB4OworLmNvbnRlbnQtdmll
dy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAuc2hhZGVyLXR5cGUgeworICAg
IGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUlKTsKK30KKworLmNvbnRlbnQtdmlldy5z
aGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAuZW50cnktcG9pbnQgPiBpbnB1dCB7
CisgICAgcGFkZGluZzogMCAxcHg7CisgICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7
CisgICAgZm9udC1zaXplOiAxMXB4OwogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1l
OiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRv
ci5zaGFkZXIgewotICAgICAgICAtLWJvcmRlci1zdGFydC1zdHlsZTogMXB4IHNvbGlkIHZhcigt
LXRleHQtY29sb3ItcXVhdGVybmFyeSk7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQtdmlldy5zaGFk
ZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgPiAudHlwZS10aXRsZSB7CisgICAgLmNv
bnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgewogICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICAgYm9yZGVy
LWJvdHRvbS1jb2xvcjogdmFyKC0tdGV4dC1jb2xvci1xdWF0ZXJuYXJ5KTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQ
cm9ncmFtQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuanMKaW5kZXggZGQ5MjU0ZWQ1YmVlMDA4
NTZlMjMyYTUyZmYwYjcyZDViOTIzNDM4NC4uNmI2Yjc5NDE4NTg1OWU5YWJlY2Y0NjI2YmQyNjZj
NWE3Y2IwMGYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcwpA
QCAtMzEsMTMgKzMxLDI0IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNo
YWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICAgICAgc3Vw
ZXIoc2hhZGVyUHJvZ3JhbSk7CiAKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRp
b25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJp
bmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAg
IHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBX
SS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9y
ZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZp
Z2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoQ29udGVudCwgdGhpcyk7CisK
ICAgICAgICAgbGV0IGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIgPSBuZXcgRGVib3VuY2VyKChl
dmVudCkgPT4gewogICAgICAgICAgICAgdGhpcy5fY29udGVudERpZENoYW5nZShldmVudCk7CiAg
ICAgICAgIH0pOwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzaGFkZXIt
cHJvZ3JhbSIpOworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXBy
b2dyYW0iLCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnByb2dyYW1UeXBlKTsKIAogICAgICAgICBs
ZXQgY3JlYXRlRWRpdG9yID0gKHNoYWRlclR5cGUpID0+IHsKKyAgICAgICAgICAgIGxldCBjb250
YWluZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2IikpOworCisgICAgICAgICAgICBsZXQgaGVhZGVyID0gY29udGFpbmVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICAgICAgbGV0IHNo
YWRlclR5cGVDb250YWluZXIgPSBoZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOworICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci5jbGFzc0xpc3Qu
YWRkKCJzaGFkZXItdHlwZSIpOworCiAgICAgICAgICAgICBsZXQgdGV4dEVkaXRvciA9IG5ldyBX
SS5UZXh0RWRpdG9yOwogICAgICAgICAgICAgdGV4dEVkaXRvci5yZWFkT25seSA9IGZhbHNlOwog
ICAgICAgICAgICAgdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlRleHRFZGl0b3IuRXZl
bnQuRm9jdXNlZCwgdGhpcy5fZWRpdG9yRm9jdXNlZCwgdGhpcyk7CkBAIC00NSwzMiArNTYsNzYg
QEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgICAgIHRleHRFZGl0b3IuYWRkRXZl
bnRMaXN0ZW5lcihXSS5UZXh0RWRpdG9yLkV2ZW50LkNvbnRlbnREaWRDaGFuZ2UsIChldmVudCkg
PT4gewogICAgICAgICAgICAgICAgIGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIuZGVsYXlGb3JU
aW1lKDI1MCwgZXZlbnQpOwogICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgICAgICB0ZXh0
RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyIik7Ci0KLSAgICAgICAgICAgIGxl
dCBzaGFkZXJUeXBlQ29udGFpbmVyID0gdGV4dEVkaXRvci5lbGVtZW50Lmluc2VydEFkamFjZW50
RWxlbWVudCgiYWZ0ZXJiZWdpbiIsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAg
ICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgidHlwZS10aXRsZSIp
OwogCiAgICAgICAgICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKLSAgICAgICAgICAgIGNhc2Ug
V0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKLSAgICAgICAgICAgICAgICBzaGFk
ZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleCBTaGFkZXIi
KTsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gIngtc2hhZGVyL3gtdmVy
dGV4IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
dmVydGV4Iik7CisgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5D
b21wdXRlOgorICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQg
PSBXSS5VSVN0cmluZygiQ29tcHV0ZSBTaGFkZXIiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRp
dG9yLm1pbWVUeXBlID0gIngtc2hhZGVyL3gtdmVydGV4IjsgLy8gVHJlYXQgdGhpcyBsaWtlIGEg
dmVydGV4IHNoYWRlciBmb3IgQ29kZU1pcnJvci4KICAgICAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQ6CiAg
ICAgICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJU3Ry
aW5nKCJGcmFnbWVudCBTaGFkZXIiKTsKICAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVU
eXBlID0gIngtc2hhZGVyL3gtZnJhZ21lbnQiOwotICAgICAgICAgICAgICAgIHRleHRFZGl0b3Iu
ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJmcmFnbWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXg6
CisgICAgICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IFdJLlVJ
U3RyaW5nKCJWZXJ0ZXggU2hhZGVyIik7CisgICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1l
VHlwZSA9ICJ4LXNoYWRlci94LXZlcnRleCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0ZXh0RWRpdG9yKTsKLSAg
ICAgICAgICAgIHJldHVybiB0ZXh0RWRpdG9yOworICAgICAgICAgICAgY29udGFpbmVyLmFwcGVu
ZENoaWxkKHRleHRFZGl0b3IuZWxlbWVudCk7CisgICAgICAgICAgICBjb250YWluZXIuY2xhc3NM
aXN0LmFkZCgic2hhZGVyIiwgc2hhZGVyVHlwZSk7CisKKyAgICAgICAgICAgIGxldCBlbnRyeVBv
aW50SW5wdXQgPSBudWxsOworICAgICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
Y2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKSB7Cisg
ICAgICAgICAgICAgICAgbGV0IGVudHJ5UG9pbnRDb250YWluZXIgPSBoZWFkZXIuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGVudHJ5
UG9pbnRDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZW50cnktcG9pbnQiKTsKKyAgICAgICAgICAg
ICAgICBlbnRyeVBvaW50Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKFdJLlVJU3RyaW5nKCJFbnRyeSBwb2ludDogIikpKTsKKworICAgICAgICAgICAgICAgIGVu
dHJ5UG9pbnRJbnB1dCA9IGVudHJ5UG9pbnRDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW5wdXQiKSk7CisgICAgICAgICAgICAgICAgZW50cnlQb2ludElucHV0
LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIuZGVsYXlGb3JUaW1lKDI1MCwgZXZlbnQpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4g
e2NvbnRhaW5lciwgdGV4dEVkaXRvciwgZW50cnlQb2ludElucHV0fTsKICAgICAgICAgfTsKIAot
ICAgICAgICB0aGlzLl92ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3Jh
bS5TaGFkZXJUeXBlLlZlcnRleCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gY3Jl
YXRlRWRpdG9yKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7Ci0gICAgICAg
IHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CisgICAgICAgIHN3
aXRjaCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNl
IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZTogeworICAgICAgICAgICAgbGV0
IGNvbXB1dGVFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBl
LkNvbXB1dGUpOworICAgICAgICAgICAgdGhpcy5fY29tcHV0ZUNvbnRhaW5lciA9IGNvbXB1dGVF
ZGl0b3IuY29udGFpbmVyOworICAgICAgICAgICAgdGhpcy5fY29tcHV0ZUVkaXRvciA9IGNvbXB1
dGVFZGl0b3IudGV4dEVkaXRvcjsKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50
SW5wdXQgPSBjb21wdXRlRWRpdG9yLmVudHJ5UG9pbnRJbnB1dDsKKworICAgICAgICAgICAgdGhp
cy5fbGFzdEFjdGl2ZUVkaXRvciA9IHRoaXMuX2NvbXB1dGVFZGl0b3I7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFt
VHlwZS5SZW5kZXI6IHsKKyAgICAgICAgICAgIGxldCB2ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0
b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCk7CisgICAgICAgICAgICB0aGlz
Ll92ZXJ0ZXhDb250YWluZXIgPSB2ZXJ0ZXhFZGl0b3IuY29udGFpbmVyOworICAgICAgICAgICAg
dGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRpdG9yLnRleHRFZGl0b3I7CisgICAgICAgICAg
ICB0aGlzLl92ZXJ0ZXhFbnRyeVBvaW50SW5wdXQgPSB2ZXJ0ZXhFZGl0b3IuZW50cnlQb2ludElu
cHV0OworCisgICAgICAgICAgICBsZXQgZnJhZ21lbnRFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0ku
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAgICAgICAgIHRoaXMuX2Zy
YWdtZW50Q29udGFpbmVyID0gZnJhZ21lbnRFZGl0b3IuY29udGFpbmVyOworICAgICAgICAgICAg
dGhpcy5fZnJhZ21lbnRFZGl0b3IgPSBmcmFnbWVudEVkaXRvci50ZXh0RWRpdG9yOworICAgICAg
ICAgICAgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQgPSBmcmFnbWVudEVkaXRvci5lbnRy
eVBvaW50SW5wdXQ7CisKKyAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlz
Ll92ZXJ0ZXhFZGl0b3I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBbdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsK
ICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTc5LDIyICsxMzQsMzIgQEAgV0kuU2hhZGVy
UHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFYKICAgICB7CiAgICAgICAgIHN1cGVyLnNob3duKCk7CiAKLSAgICAgICAg
dGhpcy5fdmVydGV4RWRpdG9yLnNob3duKCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9y
LnNob3duKCk7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFt
VHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0
ZToKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFZGl0b3Iuc2hvd24oKTsKKyAgICAgICAgICAg
IGJyZWFrOwogCi0gICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFZlcnRleFNo
YWRlclNvdXJjZSgoY29udGVudCkgPT4gewotICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9y
LnN0cmluZyA9IGNvbnRlbnQgfHwgIiI7Ci0gICAgICAgIH0pOworICAgICAgICBjYXNlIFdJLlNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4
RWRpdG9yLnNob3duKCk7CisgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAotICAgICAgICB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LnJlcXVlc3RGcmFnbWVudFNoYWRlclNvdXJjZSgoY29udGVudCkgPT4gewotICAg
ICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3Iuc3RyaW5nID0gY29udGVudCB8fCAiIjsKLSAg
ICAgICAgfSk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hDb250ZW50KCk7CiAgICAgfQogCiAgICAg
aGlkZGVuKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5oaWRkZW4oKTsKLSAg
ICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAgIHN3aXRjaCAodGhp
cy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRl
clByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVF
ZGl0b3IuaGlkZGVuKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLlNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4
RWRpdG9yLmhpZGRlbigpOworICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVu
KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogCiAgICAgICAgIHN1cGVyLmhpZGRl
bigpOwogICAgIH0KQEAgLTEwNiwxNCArMTcxLDM0IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50
VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRW
CiAKICAgICBnZXQgc2F2ZURhdGEoKQogICAgIHsKLSAgICAgICAgbGV0IGZpbGVuYW1lID0gV0ku
VUlTdHJpbmcoIlNoYWRlciIpOwotICAgICAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9
PT0gdGhpcy5fdmVydGV4RWRpdG9yKQotICAgICAgICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmlu
ZygiVmVydGV4Iik7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09
IHRoaXMuX2ZyYWdtZW50RWRpdG9yKQorICAgICAgICBsZXQgZmlsZW5hbWUgPSAiIjsKKyAgICAg
ICAgc3dpdGNoICh0aGlzLl9sYXN0QWN0aXZlRWRpdG9yKSB7CisgICAgICAgIGNhc2UgdGhpcy5f
Y29tcHV0ZUVkaXRvcjoKKyAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIkNvbXB1
dGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaXMuX2ZyYWdtZW50RWRp
dG9yOgogICAgICAgICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRvcjoKKyAgICAg
ICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIlZlcnRleCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmlsZW5hbWUpOworCisgICAg
ICAgIGxldCBleHRlbnNpb24gPSAiIjsKKyAgICAgICAgc3dpdGNoICh0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTDoKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wy
OgorICAgICAgICAgICAgZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi5nbHNsIik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR1BVOgorICAgICAgICAgICAgZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi53
aGxzbCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY29uc29sZS5h
c3NlcnQoZXh0ZW5zaW9uKTsKIAogICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgdXJsOiBX
SS5GaWxlVXRpbGl0aWVzLmluc3BlY3RvclVSTEZvckZpbGVuYW1lKGZpbGVuYW1lICsgIi5nbHNs
IiksCisgICAgICAgICAgICB1cmw6IFdJLkZpbGVVdGlsaXRpZXMuaW5zcGVjdG9yVVJMRm9yRmls
ZW5hbWUoZmlsZW5hbWUgKyBleHRlbnNpb24pLAogICAgICAgICAgICAgY29udGVudDogdGhpcy5f
bGFzdEFjdGl2ZUVkaXRvci5zdHJpbmcsCiAgICAgICAgICAgICBmb3JjZVNhdmVBczogdHJ1ZSwK
ICAgICAgICAgfTsKQEAgLTE3MSw2ICsyNTYsNzggQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRW
aWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYK
IAogICAgIC8vIFByaXZhdGUKIAorICAgIF9yZWZyZXNoQ29udGVudCgpCisgICAgeworICAgICAg
ICBsZXQgY3JlYXRlQ2FsbGJhY2sgPSAoY29udGFpbmVyLCB0ZXh0RWRpdG9yLCBlbnRyeVBvaW50
SW5wdXQpID0+IHsKKyAgICAgICAgICAgIHJldHVybiAoc291cmNlLCBlbnRyeVBvaW50KSA9PiB7
CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZSA9PT0gbnVsbCkgeworICAgICAgICAgICAgICAg
ICAgICBjb250YWluZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5wYXJlbnRO
b2RlKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGFpbmVyKSB7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUNvbnRhaW5lcjoKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSB0aGlzLl92ZXJ0ZXhDb250YWluZXI6CisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmJlZ2luIiwgY29udGFp
bmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgdGhpcy5fZnJhZ21lbnRDb250YWluZXI6CisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLCBjb250YWlu
ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLnN0cmlu
ZyA9IHNvdXJjZSB8fCAiIjsKKworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghIWVu
dHJ5UG9pbnQpID09PSAoISFlbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgICAgICBpZiAo
ZW50cnlQb2ludElucHV0KQorICAgICAgICAgICAgICAgICAgICBlbnRyeVBvaW50SW5wdXQudmFs
dWUgPSBlbnRyeVBvaW50IHx8ICIiOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAg
ICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAg
ICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6CisgICAgICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJv
Z3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2NvbXB1dGVDb250
YWluZXIsIHRoaXMuX2NvbXB1dGVFZGl0b3IsIHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50SW5wdXQp
KTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5y
ZXF1ZXN0U2hhZGVyU291cmNlKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsIGNy
ZWF0ZUNhbGxiYWNrKHRoaXMuX3ZlcnRleENvbnRhaW5lciwgdGhpcy5fdmVydGV4RWRpdG9yLCB0
aGlzLl92ZXJ0ZXhFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50
ZWRPYmplY3QucmVxdWVzdFNoYWRlclNvdXJjZShXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUu
RnJhZ21lbnQsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2ZyYWdtZW50Q29udGFpbmVyLCB0aGlzLl9m
cmFnbWVudEVkaXRvciwgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50SW5wdXQpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAg
fQorCisgICAgX3VwZGF0ZVNoYWRlcihzaGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgbGV0IHVw
ZGF0ZVNoYWRlciA9ICh0ZXh0RWRpdG9yLCBlbnRyeVBvaW50SW5wdXQpID0+IHsKKyAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRleHRFZGl0b3IpOworCisgICAgICAgICAgICBsZXQgb3B0aW9u
cyA9IHt9OworICAgICAgICAgICAgaWYgKGVudHJ5UG9pbnRJbnB1dCkKKyAgICAgICAgICAgICAg
ICBvcHRpb25zLmVudHJ5UG9pbnQgPSBlbnRyeVBvaW50SW5wdXQudmFsdWU7CisgICAgICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCB0ZXh0RWRp
dG9yLnN0cmluZywgb3B0aW9ucyk7CisgICAgICAgIH07CisKKyAgICAgICAgc3dpdGNoIChzaGFk
ZXJUeXBlKSB7CisgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1
dGU6CisgICAgICAgICAgICB1cGRhdGVTaGFkZXIodGhpcy5fY29tcHV0ZUVkaXRvciwgdGhpcy5f
Y29tcHV0ZUVudHJ5UG9pbnRJbnB1dCk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
Y2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQ6CisgICAgICAgICAgICB1
cGRhdGVTaGFkZXIodGhpcy5fZnJhZ21lbnRFZGl0b3IsIHRoaXMuX2ZyYWdtZW50RW50cnlQb2lu
dElucHV0KTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXg6CisgICAgICAgICAgICB1cGRhdGVTaGFkZXIodGhpcy5f
dmVydGV4RWRpdG9yLCB0aGlzLl92ZXJ0ZXhFbnRyeVBvaW50SW5wdXQpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKKyAgICB9CisK
ICAgICBfZWRpdG9yRm9jdXNlZChldmVudCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9sYXN0
QWN0aXZlRWRpdG9yID09PSBldmVudC50YXJnZXQpCkBAIC0xOTcsOSArMzU0LDIzIEBAIFdJLlNo
YWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBfY29udGVudERpZENoYW5nZShldmVudCkKICAgICB7
Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuX3ZlcnRleEVkaXRvcikKLSAgICAg
ICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QudXBkYXRlVmVydGV4U2hhZGVyKHRoaXMuX3Zl
cnRleEVkaXRvci5zdHJpbmcpOwotICAgICAgICBlbHNlIGlmIChldmVudC50YXJnZXQgPT09IHRo
aXMuX2ZyYWdtZW50RWRpdG9yKQotICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC51
cGRhdGVGcmFnbWVudFNoYWRlcih0aGlzLl9mcmFnbWVudEVkaXRvci5zdHJpbmcpOworICAgICAg
ICBzd2l0Y2ggKGV2ZW50LnRhcmdldCkgeworICAgICAgICBjYXNlIHRoaXMuX2NvbXB1dGVFZGl0
b3I6CisgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUVudHJ5UG9pbnRJbnB1dDoKKyAgICAgICAg
ICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0
ZSk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSB0aGlzLl9mcmFnbWVudEVk
aXRvcjoKKyAgICAgICAgY2FzZSB0aGlzLl9mcmFnbWVudEVudHJ5UG9pbnRJbnB1dDoKKyAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJh
Z21lbnQpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgdGhpcy5fdmVydGV4
RWRpdG9yOgorICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVudHJ5UG9pbnRJbnB1dDoKKyAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVy
dGV4KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVu
dC5qcwppbmRleCBjZGE3NWI0MTUyNDA0ZGJjY2IwOTk5NDFkM2RiNWI3NzM5ZDUyMTMyLi44N2Q5
ZTQ4NDVhZmFiMzY3MDQyOTA5NjUyZTI0NmU4NDhlY2QwNDliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtVHJlZUVsZW1l
bnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hh
ZGVyUHJvZ3JhbVRyZWVFbGVtZW50LmpzCkBAIC0zMiwxMCArMzIsMTMgQEAgV0kuU2hhZGVyUHJv
Z3JhbVRyZWVFbGVtZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50IGV4dGVuZHMg
V0kuR2VuZXJhbFQKICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOwogICAgICAgICBzdXBl
cigic2hhZGVyLXByb2dyYW0iLCBzaGFkZXJQcm9ncmFtLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwg
c2hhZGVyUHJvZ3JhbSk7CiAKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFn
ZUVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiRGlzYWJsZSBQcm9ncmFtIik7Ci0gICAgICAg
IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy5fZGlzYWJsZWRJbWFnZUVsZW1lbnRDbGlja2VkLmJpbmQodGhpcykpOwotICAgICAgICB0aGlz
LnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50OworICAgICAgICBsZXQgY29udGV4
dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZTsKKyAgICAg
ICAgaWYgKGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpIHsKKyAgICAgICAgICAg
IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1n
Iik7CisgICAgICAgICAgICB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudC50aXRsZSA9IFdJLlVJ
U3RyaW5nKCJEaXNhYmxlIFByb2dyYW0iKTsKKyAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkSW1h
Z2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZGlzYWJsZWRJbWFnZUVs
ZW1lbnRDbGlja2VkLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSB0aGlz
Ll9kaXNhYmxlZEltYWdlRWxlbWVudDsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3Rl
Y3RlZApAQCAtNDQsMzQgKzQ3LDQyIEBAIFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudCA9IGNs
YXNzIFNoYWRlclByb2dyYW1UcmVlRWxlbWVudCBleHRlbmRzIFdJLkdlbmVyYWxUCiAgICAgewog
ICAgICAgICBzdXBlci5vbmF0dGFjaCgpOwogCi0gICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdl
ZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CisgICAg
ICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRl
eHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMikg
eworICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJ
LlNoYWRlclByb2dyYW0uRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQ
cm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKIAotICAgICAgICB0aGlzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5faGFuZGxlTW91c2VPdmVyLmJpbmQodGhp
cykpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCB0
aGlzLl9oYW5kbGVNb3VzZU91dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCB0aGlzLl9oYW5kbGVNb3VzZU92ZXIuYmlu
ZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2VvdXQiLCB0aGlzLl9oYW5kbGVNb3VzZU91dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQogICAg
IH0KIAogICAgIG9uZGV0YWNoKCkKICAgICB7Ci0gICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hh
bmdlZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7Cisg
ICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNv
bnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdM
MikKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5l
cihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hh
ZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAgc3VwZXIub25kZXRh
Y2goKTsKICAgICB9CiAKICAgICBjYW5TZWxlY3RPbk1vdXNlRG93bihldmVudCkKICAgICB7Ci0g
ICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudC5jb250YWlucyhldmVudC50YXJn
ZXQpKQorICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgJiYgdGhpcy5fZGlz
YWJsZWRJbWFnZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHN1cGVyLmNhblNlbGVjdE9uTW91c2VEb3duKGV2
ZW50KTsKICAgICB9CiAKICAgICBwb3B1bGF0ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVu
dCkKICAgICB7Ci0gICAgICAgIGxldCBkaXNhYmxlZCA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
ZGlzYWJsZWQ7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oZGlzYWJsZWQgPyBXSS5V
SVN0cmluZygiRW5hYmxlIFByb2dyYW0iKSA6IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFByb2dyYW0i
KSwgKCkgPT4gewotICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNhYmxlZCA9
ICFkaXNhYmxlZDsKLSAgICAgICAgfSk7CisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4
dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMikgeworICAgICAgICAgICAgbGV0IGRpc2FibGVk
ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNhYmxlZDsKKyAgICAgICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZEl0ZW0oZGlzYWJsZWQgPyBXSS5VSVN0cmluZygiRW5hYmxlIFByb2dyYW0iKSA6
IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFByb2dyYW0iKSwgKCkgPT4geworICAgICAgICAgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZGlzYWJsZWQgPSAhZGlzYWJsZWQ7CisgICAgICAgICAg
ICB9KTsKIAotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICB9CiAKICAgICAgICAg
c3VwZXIucG9wdWxhdGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZlbnQpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1OWQ1NDNhM2E1MWEyMGE4NjQ3MzJlMWQ2MGU1Y2EzNjc1MWJiODgzLi4wYjZiYzEwMGYx
MTNlNzVlOTU1Yzc4NTAyYTJhYjRiNDExODc1MWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIw
MTktMDktMTYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENhbnZhczogc2hvdyBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNjc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BsaXQgZXhpc3Rpbmcg
c2hhZGVyIHRlc3RzIGludG8gV2ViR0wgYW5kIFdlYkdQVSBzdWItdGVzdHMgZm9yIGRpZmZlcmVu
dCBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJT
b3VyY2UuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3Vy
Y2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVy
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQu
dHh0OgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ3B1LmpzOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13
ZWJncHUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9n
cmFtLWFkZC1yZW1vdmUtd2ViZ3B1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWw6IEFkZGVk
LgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMtd2ViZ2wuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcy4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mcmFtZUNvdW50Lmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnVsbC5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLW1lbW9yeUxpbWl0Lmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtc25hcHNob3RzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZyYW1lQ291bnQuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItZnVsbC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1pdC5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1zbmFwc2hvdHMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2Vi
Z2wuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVy
U291cmNlLXdlYmdsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy9zZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y2FudmFzL3NldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZC5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wyLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ2wuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ2wtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDE5LTA5LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmUtc3luYyBIVE1MIHdlYi1wbGF0Zm9ybS10ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsLmh0
bWwKaW5kZXggMzJmNTU5YmJhYzI0ZDg5MTNiNDAyMTI1M2Q4Y2NiN2Q5NjkzNWFiMi4uZTk4M2Yx
OTY3ZGI0YzJmNmRlMWY2ZDNlMzkwOWNlZDVhYzAxOTYzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wuaHRtbApAQCAtMyw3
ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAg
ICBhdHRyaWJ1dGUgdmVjNCB0ZXN0OwogICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsMi5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRt
bAppbmRleCAxM2UxYTAxZTU3YmIwMTgxMmE4N2EzZmE4NGUyMmI1MDk4ZThjZmJjLi4zNzYzNzA5
NDYzZGRjNjk4NWYxMThjMDBlMDAyMzFjM2IxZjNlMmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsMi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wyLmh0bWwKQEAgLTMs
NyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAg
ICAgYXR0cmlidXRlIHZlYzQgdGVzdDsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnJhbWVDb3Vu
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnJh
bWVDb3VudC5odG1sCmluZGV4IGYyNDAyNzZlODE1MDllMTdhMzdmMTk1ZDNmZTI3YWU5YzY3YmM5
NjAuLjhkOWE2ZGMwMTdjMTgzY2VkYmU4YTc1YTk4MDkzNmUyZWUxYWMwYzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1lQ291bnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1m
cmFtZUNvdW50Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzQgdGVzdDsKICAgICB2b2lkIG1h
aW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmctd2ViZ2wtZnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmctd2ViZ2wtZnVsbC5odG1sCmluZGV4IGM3NDM2MWJiNTllN2ZkZjA5YTVkNWQwZmQ0MThh
MzZjNDkxZTQyZTUuLjc2MTMzZWUyMjhmYmNhZGU3NjllMzllOGQzMGEzZGU2ZTM3MDFjMjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZ1
bGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJn
bC1mdWxsLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNo
YWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzQgdGVzdDsKICAgICB2b2lkIG1haW4o
dm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRp
bmctd2ViZ2wtbWVtb3J5TGltaXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLXdlYmdsLW1lbW9yeUxpbWl0Lmh0bWwKaW5kZXggNjRiZmYzMWM1ZGExZjJiNzhi
NDBlZTlhOTFkMzk5ZGFlY2E1OTJhZS4uODk1NTgxN2YyZWI1ZWRkNDEwNzE5YzIxMTE0ZjcxY2Rh
MDM0MmRiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRp
bmctd2ViZ2wtbWVtb3J5TGltaXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlY29yZGluZy13ZWJnbC1tZW1vcnlMaW1pdC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3Jk
aW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRl
clByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0i
dmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2
ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLXNuYXBzaG90cy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtc25hcHNob3RzLmh0bWwKaW5k
ZXggYjcwYzdjNTllZTZhMGIwM2Y1YWMxOWVmOGMwMWIxZjY1NjgwMTZiOS4uM2Q1NTg4ZDVmMTUy
MTI4ODI3NDRjM2U3YWI4MzE0MjcxZjMyMGRiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtc25hcHNob3RzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtc25hcHNob3RzLmh0bWwKQEAg
LTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+
CiAgICAgYXR0cmlidXRlIHZlYzMgcG9zaXRpb247CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1m
cmFtZUNvdW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13
ZWJnbDItZnJhbWVDb3VudC5odG1sCmluZGV4IDRjYTdjMWQ5MDVkMDlmMzUzYjY0NGJjOTUwOTU0
ZGViMDliMGViOGEuLjUwZmJlZGUxNTdmMWYyZDJiMTI4OWIyYmIwZjI2ZDM3M2ZmNTM5YzUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1m
cmFtZUNvdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRp
bmctd2ViZ2wyLWZyYW1lQ291bnQuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0
aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dy
YW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFk
ZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjNCB0ZXN0Owog
ICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlY29yZGluZy13ZWJnbDItZnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZ1bGwuaHRtbAppbmRleCBiYTY4ZTE3NTRhNDljNTE1
YzYzNjBiZWY1NTFkODIzNTE0NzhhMTkwLi4xODc0ZWE5M2RkNWI5MzNhZjkwM2I5MTRkMmI0N2Nk
MzI0Mjc3ZDg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29y
ZGluZy13ZWJnbDItZnVsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLXdlYmdsMi1mdWxsLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9n
cmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hh
ZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzQgdGVzdDsK
ICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItbWVtb3J5TGltaXQuaHRtbAppbmRleCAw
MTc0YjBhY2MzZTE0NzUyMTNhZWZlYWNjYmY0MzcwMDgxNzI2ODVjLi44NjA0ZGY2MWNjY2NkNjEz
YzdkNWVhNmYzNzdmNmRmYjFjMjUwNWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItbWVtb3J5TGltaXQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItbWVtb3J5TGltaXQuaHRtbApA
QCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4KICAgICBhdHRyaWJ1dGUgdmVjNCB0ZXN0OwogICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItc25h
cHNob3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJn
bDItc25hcHNob3RzLmh0bWwKaW5kZXggODJmMjdjOWQ2NGY3ZGEzMjg2NTU5MjFlZTMwODg4OTM5
ZjZjYjU5ZS4uOWU5YTRhOGNlZWVkYzg3NjlhMzRiOWU5MTQzNDBhOWNkMDg5OWQ5NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLXNuYXBz
aG90cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdl
YmdsMi1zbmFwc2hvdHMuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsKICAg
ICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggNjRiY2Rm
M2M2Y2ZhOTYwNGZhNDJjZmY2N2Q0NDZlYzcyYWM5NjA2My4uZjkyZjQ5NWQzOGNlNjg1M2EzYTUz
NTRhYTU4MTNlMGJjNGNlMTU1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDI4
ICsxLDggQEAKLVRlc3QgY29tcGlsYXRpb24gb2Ygc2hhZGVycyBhZnRlciBiZWluZyBhdHRhY2hl
ZCB0byBhIHByb2dyYW0sIHdpdGggYW5kIHdpdGhvdXQgc3ludGF4IGVycm9ycy4KK0NvbW1vbiB0
ZXN0cyBmb3IgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UgY29tbWFuZC4KIAogCi09PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IENhbnZhcy5nZXRTaGFkZXJTb3VyY2UKLS0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS52ZXJ0ZXhTaGFkZXIKLQotICAgIHZvaWQg
bWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAx
LjApOwotICAgIH0KLQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFk
ZXJTb3VyY2UuZnJhZ21lbnRTaGFkZXIKLQotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owot
Ci0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAs
IDEuMCwgMS4wLCAxLjApOwotICAgIH0KLQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnJlcXVlc3RTaGFkZXJTb3VyY2UuaW52YWxpZFByb2dyYW1JZAorPT0gUnVubmluZyB0ZXN0IHN1
aXRlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENh
bnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLlByb2dyYW1JZC5JbnZhbGlkCiBQQVNTOiBTaG91bGQg
cHJvZHVjZSBhbiBlcnJvci4KIEVycm9yOiBNaXNzaW5nIHByb2dyYW0gZm9yIGdpdmVuIHByb2dy
YW1JZAogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2Uu
aW52YWxpZFNoYWRlclR5cGUKLVBBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGVycm9yLgotRXJyb3I6
IE1pc3Npbmcgc2hhZGVyIGZvciBnaXZlbiBzaGFkZXJUeXBlCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Ut
d2ViZ2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MjNhZjRkODdmMGU2ZTU4YWMyNGI1M2Ji
NDgwN2E4ZDY4MzYzMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjQgQEAKK1dlYkdMIHRlc3RzIGZvciBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZSBjb21tYW5k
LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2Uu
V2ViR0wKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5X
ZWJHTC5WZXJ0ZXgKKworICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX1Bvc2l0aW9u
ID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOworICAgIH0KKworCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wuRnJhZ21lbnQKKworICAgIHBy
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworICAgIH0KKworCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wuU2hhZGVy
VHlwZS5JbnZhbGlkCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KK0Vycm9yOiBVbmtu
b3duIHNoYWRlclR5cGU6IElOVkFMSURfU0hBREVSX1RZUEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kODVhMWIwMTZlNjZmYmI0NDI5NWYwZWRhNWVhYmIxZWRjYzkyNTU0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hh
ZGVyU291cmNlLXdlYmdsLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
aWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICB2b2lkIG1h
aW4odm9pZCkgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4w
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZyYWdtZW50LXNoYWRlciIgdHlwZT0i
eC1zaGFkZXIveC1mcmFnbWVudCI+CisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAg
ICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4w
LCAxLjAsIDEuMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgp
IHsKKyAgICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIpOworICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0ZXgt
c2hhZGVyIiwgImZyYWdtZW50LXNoYWRlciIpOworCisgICAgcnVuVGVzdCgpOworfQorCitmdW5j
dGlvbiB0ZXN0KCkgeworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZSgiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wiKTsKKworICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldl
YkdMLlZlcnRleCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVzdGluZyB0aGUg
c291cmNlIGNvZGUgb2YgYSBwcm9ncmFtJ3MgdmVydGV4IHNoYWRlci4iLAorICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5j
YW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQ
cm9ncmFtKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFt
IikKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVy
LCBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCkKKyAgICAgICAgICAgIC50aGVuKCh7c291
cmNlLCBlbnRyeVBvaW50fSkgPT4geworICAgICAgICAgICAgICAgIGlmIChlbnRyeVBvaW50KQor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRW50cnkgcG9pbnQ6ICIgKyBl
bnRyeVBvaW50KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhzb3VyY2UpOwor
ICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMLkZyYWdtZW50IiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJUZXN0cyByZXF1ZXN0aW5nIHRoZSBzb3VyY2UgY29kZSBvZiBhIHByb2dyYW0n
cyBmcmFnbWVudCBzaGFkZXIuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9n
cmFtc1swXTsKKyAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAgICAg
ICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hh
ZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgQ2FudmFzQWdlbnQuU2hhZGVyVHlw
ZS5GcmFnbWVudCkKKyAgICAgICAgICAgIC50aGVuKCh7c291cmNlLCBlbnRyeVBvaW50fSkgPT4g
eworICAgICAgICAgICAgICAgIGlmIChlbnRyeVBvaW50KQorICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiRW50cnkgcG9pbnQ6ICIgKyBlbnRyeVBvaW50KTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhzb3VyY2UpOworICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVy
U291cmNlLldlYkdMLlNoYWRlclR5cGUuSW52YWxpZCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
SW52YWxpZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCisgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJ
LmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICBpZiAoIXNoYWRl
clByb2dyYW0pIHsKKyAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dy
YW0iKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgY29uc3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElEX1NIQURFUl9UWVBFIjsKKyAgICAgICAgICAg
IENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVy
LCBzaGFkZXJUeXBlLCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZXJyb3IsICJTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4iKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Cis8cD5XZWJHTCB0ZXN0cyBmb3IgQ2FudmFzLnJlcXVl
c3RTaGFkZXJTb3VyY2UgY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRl
clNvdXJjZS13ZWJncHUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYzQ2YjdkZGIxNzVjYWMy
ZThkMGE5MDVlMzdmZjVjNDRiZTQzN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQxIEBACitXZWJHUFUgdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVyU291
cmNlIGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZS5XZWJHUFUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNo
YWRlclNvdXJjZS5XZWJHUFUuUHJvZ3JhbS5jb21wdXRlLlNoYWRlci5jb21wdXRlCitFbnRyeSBw
b2ludDogY29tcHV0ZVNoYWRlcgorYAorW251bXRocmVhZHMoMiwgMSwgMSldCitjb21wdXRlIHZv
aWQgY29tcHV0ZVNoYWRlcihkZXZpY2UgZmxvYXRbXSBidWZmZXIgOiByZWdpc3Rlcih1MCksIGZs
b2F0MyB0aHJlYWRJRCA6IFNWX0Rpc3BhdGNoVGhyZWFkSUQpIHsKKyAgICBidWZmZXJbdWludCh0
aHJlYWRJRC54KV0gPSBidWZmZXJbdWludCh0aHJlYWRJRC54KV0gKiAyLjA7Cit9CitgCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHUFUuUHJv
Z3JhbS5jb21wdXRlLlNoYWRlci5mcmFnbWVudAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhj
ZXB0aW9uLgorRXJyb3I6IE1pc3Npbmcgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdp
dmVuIHByb2dyYW1JZAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFk
ZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0uY29tcHV0ZS5TaGFkZXIudmVydGV4CitQQVNTOiBTaG91
bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBzaGFkZXIgb2YgZ2l2ZW4g
c2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
YW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHUFUuUHJvZ3JhbS5yZW5kZXIuU2hhZGVyLmNv
bXB1dGUKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0Vycm9yOiBNaXNzaW5n
IHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdQVS5Qcm9ncmFt
LnJlbmRlci5TaGFkZXIuZnJhZ21lbnQKK0VudHJ5IHBvaW50OiBmcmFnbWVudFNoYWRlcgorYAor
ZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IFNWX1Bvc2l0
aW9uKSA6IFNWX1RhcmdldCAwIHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CitgCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHUFUuUHJvZ3Jh
bS5yZW5kZXIuU2hhZGVyLnZlcnRleAorRW50cnkgcG9pbnQ6IHZlcnRleFNoYWRlcgorYAordmVy
dGV4IGZsb2F0NCB2ZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogYXR0cmlidXRlKDApLCBm
bG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0aW9uIHsKKyAgICByZXR1cm4gcG9zaXRp
b247Cit9CitgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVx
dWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDkyY2RmODYz
NmM1OTUzOTIzYmQ1Y2M0MzJlZjdmYmY0Yzc2NGVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sCkBA
IC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxp
dGllcy13ZWJncHUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDYW52YXMucmVx
dWVzdFNoYWRlclNvdXJjZS5XZWJHUFUiKTsKKworICAgIGZvciAobGV0IHByb2dyYW1UeXBlIG9m
IE9iamVjdC52YWx1ZXMoV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZSkpIHsKKyAgICAgICAg
Zm9yIChsZXQgc2hhZGVyVHlwZSBvZiBPYmplY3QudmFsdWVzKFdJLlNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZSkpIHsKKyAgICAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAg
ICAgICBuYW1lOiBgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0uJHtw
cm9ncmFtVHlwZX0uU2hhZGVyLiR7c2hhZGVyVHlwZX1gLAorICAgICAgICAgICAgICAgIGFzeW5j
IHRlc3QoKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gSW5zcGVj
dG9yVGVzdC5TaGFkZXJQcm9ncmFtLnByb2dyYW1Gb3JUeXBlKHByb2dyYW1UeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iOworCisgICAgICAgICAgICAgICAgICAg
IGxldCBpc0NvbXB1dGVQcm9ncmFtID0gcHJvZ3JhbVR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuQ29tcHV0ZTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGlzQ29tcHV0ZVNo
YWRlciA9IHNoYWRlclR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5Db21wdXRl
OworICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb21wdXRlUHJvZ3JhbSAhPT0gaXNDb21wdXRl
U2hhZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4
cGVjdEV4Y2VwdGlvbihhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXdhaXQgSW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtLmxvZ1NvdXJjZShzaGFkZXJQcm9ncmFt
LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRl
c3QuU2hhZGVyUHJvZ3JhbS5sb2dTb3VyY2Uoc2hhZGVyUHJvZ3JhbSwgc2hhZGVyVHlwZSk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJsb2FkKCkiPgorPHA+V2ViR1BVIHRlc3RzIGZvciBDYW52YXMucmVxdWVz
dFNoYWRlclNvdXJjZSBjb21tYW5kLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwKaW5k
ZXggYTY4OWMxNjk3MjUwMmU1ZTIxYWIwMjUyMWJlMDQ2ZmZjNjhhMjc1OC4uOTFlNjBlYTQ4NDRm
ZjRjZDRmOTcyODk3NmM5MDIyYzU0YmQ5MTc2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwKQEAgLTIsNjQgKzIsMTIg
QEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBp
ZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotICAgIHZvaWQgbWFp
bih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjAp
OwotICAgIH0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iZnJhZ21lbnQtc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LWZyYWdtZW50Ij4KLSAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLQotICAg
IHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAxLjAs
IDEuMCwgMS4wKTsKLSAgICB9Ci08L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2FkKCkg
ewotICAgIGNyZWF0ZVByb2dyYW0oIndlYmdsIik7Ci0gICAgbGlua1Byb2dyYW0oInZlcnRleC1z
aGFkZXIiLCAiZnJhZ21lbnQtc2hhZGVyIik7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KIGZ1bmN0
aW9uIHRlc3QoKSB7Ci0gICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1
aXRlKCJDYW52YXMuZ2V0U2hhZGVyU291cmNlIik7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZSIpOwogCiAg
ICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFk
ZXJTb3VyY2UudmVydGV4U2hhZGVyIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0cyByZXF1
ZXN0aW5nIHRoZSBzb3VyY2UgY29kZSBvZiBhIHByb2dyYW0ncyB2ZXJ0ZXggc2hhZGVyLiIsCi0g
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgc2hhZGVyUHJv
Z3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAgICAgICAgICBp
ZiAoIXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hh
ZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFt
LmlkZW50aWZpZXIsIENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4KQotICAgICAgICAgICAg
LnRoZW4oKHtjb250ZW50fSkgPT4gSW5zcGVjdG9yVGVzdC5sb2coY29udGVudCkpCi0gICAgICAg
ICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNv
dXJjZS5mcmFnbWVudFNoYWRlciIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVz
dGluZyB0aGUgc291cmNlIGNvZGUgb2YgYSBwcm9ncmFtJ3MgZnJhZ21lbnQgc2hhZGVyLiIsCi0g
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgc2hhZGVyUHJv
Z3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAgICAgICAgICBp
ZiAoIXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hh
ZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFt
LmlkZW50aWZpZXIsIENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQpCi0gICAgICAgICAg
ICAudGhlbigoe2NvbnRlbnR9KSA9PiBJbnNwZWN0b3JUZXN0LmxvZyhjb250ZW50KSkKLSAgICAg
ICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVy
U291cmNlLmludmFsaWRQcm9ncmFtSWQiLAorICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RT
aGFkZXJTb3VyY2UuUHJvZ3JhbUlkLkludmFsaWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIklu
dmFsaWQgcHJvZ3JhbSBpZGVudGlmaWVycyBzaG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZCA9
ICJJTlZBTElEX1BST0dSQU1fSUQiOwpAQCAtNzIsMzAgKzIwLDExIEBAIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgIH0KICAgICB9KTsKIAotICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAg
ICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLmludmFsaWRTaGFkZXJUeXBlIiwK
LSAgICAgICAgZGVzY3JpcHRpb246ICJJbnZhbGlkIHNoYWRlciB0eXBlcyBzaG91bGQgY2F1c2Ug
YW4gZXJyb3IuIiwKLSAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
IGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsK
LSAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAgICAgICAgIHJlamVj
dCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBjb25zdCBzaGFkZXJUeXBlID0gIklOVkFMSURfU0hB
REVSX1RZUEUiOwotICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShz
aGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUsIChlcnJvcikgPT4gewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNl
IGFuIGVycm9yLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjog
IiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfQotICAgIH0pOwotCiAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7
CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLSAgICA8cD5U
ZXN0IGNvbXBpbGF0aW9uIG9mIHNoYWRlcnMgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQgdG8gYSBwcm9n
cmFtLCB3aXRoIGFuZCB3aXRob3V0IHN5bnRheCBlcnJvcnMuPC9wPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+Q29tbW9uIHRlc3RzIGZvciBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJj
ZSBjb21tYW5kLjwvcD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmds
LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ2wuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI3NWM0NDFhYWZjNzNiOTEwNzk0NWIz
Y2Q3M2Y5Y2E2N2UxZTY1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCkBAIC0w
LDAgKzEsMTMwIEBACitsZXQgY29udGV4dDsKK2xldCBwcm9ncmFtOworCitmdW5jdGlvbiBjcmVh
dGVQcm9ncmFtKGNvbnRleHRUeXBlKSB7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICBjb250
ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dChjb250ZXh0
VHlwZSk7CisKKyAgICBwcm9ncmFtID0gY29udGV4dC5jcmVhdGVQcm9ncmFtKCk7Cit9CisKK2Z1
bmN0aW9uIGxpbmtQcm9ncmFtKHZlcnRleFNoYWRlcklkZW50aWZpZXIsIGZyYWdtZW50U2hhZGVy
SWRlbnRpZmllcikgeworICAgIGZ1bmN0aW9uIHR5cGVGb3JTY3JpcHQoc2NyaXB0KSB7CisgICAg
ICAgIGlmIChzY3JpcHQudHlwZSA9PT0gIngtc2hhZGVyL3gtdmVydGV4IikKKyAgICAgICAgICAg
IHJldHVybiBjb250ZXh0LlZFUlRFWF9TSEFERVI7CisgICAgICAgIGlmIChzY3JpcHQudHlwZSA9
PT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuRlJB
R01FTlRfU0hBREVSOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5leHBlY3Rl
ZCBzY3JpcHQgeC1zaGFkZXIgdHlwZTogIiArIHNjcmlwdC50eXBlKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjcmVhdGVTaGFkZXJGcm9tU2NyaXB0KHNjcmlwdElkZW50aWZpZXIpIHsKKyAgICAg
ICAgbGV0IHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdElkZW50aWZpZXIp
OworICAgICAgICBsZXQgc2hhZGVyID0gY29udGV4dC5jcmVhdGVTaGFkZXIodHlwZUZvclNjcmlw
dChzY3JpcHQpKTsKKyAgICAgICAgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgc2hhZGVy
KTsKKyAgICAgICAgY29udGV4dC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzY3JpcHQudGV4dCk7Cisg
ICAgICAgIGNvbnRleHQuY29tcGlsZVNoYWRlcihzaGFkZXIpOworICAgIH0KKworICAgIGNyZWF0
ZVNoYWRlckZyb21TY3JpcHQodmVydGV4U2hhZGVySWRlbnRpZmllcik7CisgICAgY3JlYXRlU2hh
ZGVyRnJvbVNjcmlwdChmcmFnbWVudFNoYWRlcklkZW50aWZpZXIpOworICAgIGNvbnRleHQubGlu
a1Byb2dyYW0ocHJvZ3JhbSk7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVByb2dyYW0oKSB7CisgICAg
Y29udGV4dC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOworICAgIHByb2dyYW0gPSBudWxsOworfQor
CitmdW5jdGlvbiBkZWxldGVDb250ZXh0KCkgeworICAgIGNvbnRleHQgPSBudWxsOworICAgIC8v
IEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBv
dGhlcndpc2UgdGhlIGZyb250ZW5kCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4g
eyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKK30KKworVGVzdFBhZ2UucmVnaXN0ZXJJ
bml0aWFsaXplcigoKSA9PiB7CisgICAgbGV0IHN1aXRlID0gbnVsbDsKKworICAgIGZ1bmN0aW9u
IHdoZW5Qcm9ncmFtQWRkZWQoY2FsbGJhY2spIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQg
b25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2Vz
WzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNv
bGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGxldCBw
cm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiQWRkZWQgU2hhZGVy
UHJvZ3JhbS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFt
LmNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUg
YSBwYXJlbnQgQ2FudmFzLiIpOworICAgICAgICAgICAgY2FsbGJhY2socHJvZ3JhbSk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHdoZW5Qcm9ncmFtUmVtb3ZlZChjYWxsYmFj
aykgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7Cisg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rp
b24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3Zl
ZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBsZXQgcHJvZ3JhbSA9IGV2ZW50LmRhdGEuaXRl
bTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtIGluc3RhbmNl
b2YgV0kuU2hhZGVyUHJvZ3JhbSwgIlJlbW92ZWQgU2hhZGVyUHJvZ3JhbS4iKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZhcyBpbnN0YW5jZW9mIFdJ
LkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJlbnQgQ2FudmFzLiIpOwor
ICAgICAgICAgICAgY2FsbGJhY2socHJvZ3JhbSk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IHdpbmRvdy5pbml0aWFsaXplVGVzdFN1aXRlID0gZnVuY3Rpb24oY29udGV4dFR5cGUpIHsKKyAg
ICAgICAgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoYENhbnZhcy5TaGFk
ZXJQcm9ncmFtLiR7Y29udGV4dFR5cGV9YCk7CisKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0ucmVsb2FkUGFnZWAsCisgICAgICAg
ICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgU2hhZGVyUHJvZ3JhbUFkZGVkIGlzIHNlbnQg
Zm9yIGEgcHJvZ3JhbSBjcmVhdGVkIGJlZm9yZSBDYW52YXNBZ2VudCBpcyBlbmFibGVkLiIsCisg
ICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIC8vIFRo
aXMgY2FuJ3QgdXNlIGBhd2FpdEV2ZW50YCBzaW5jZSB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGhh
cHBlbnMgb24gdGhlIG5leHQgdGljay4KKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRk
ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbUFkZGVkKChw
cm9ncmFtKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
CisgICAgICAgIHJldHVybiBzdWl0ZTsKKyAgICB9CisKKyAgICAgd2luZG93LmFkZFNpbXBsZVRl
c3RDYXNlID0gZnVuY3Rpb24oY29udGV4dFR5cGUpIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uU2hhZGVyUHJvZ3JhbUFkZGVk
YCwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhZGRlZC9yZW1vdmVkIGV2
ZW50cyBhcmUgc2VudC4iLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgICAgICB3aGVuUHJvZ3JhbUFkZGVkKChhZGRlZFByb2dyYW0pID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgd2hlblByb2dyYW1SZW1vdmVkKChyZW1vdmVkUHJvZ3JhbSkgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZW1vdmVk
UHJvZ3JhbSwgYWRkZWRQcm9ncmFtLCAiUmVtb3ZlZCB0aGUgcHJldmlvdXNseSBhZGRlZCBTaGFk
ZXJQcm9ncmFtLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGBkZWxldGVQcm9ncmFtKClgKTsKKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVByb2dy
YW0oIiR7Y29udGV4dFR5cGV9IilgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgd2luZG93LmFkZFBhcmVudENhbnZhc1JlbW92ZWRUZXN0Q2FzZSA9IGZ1bmN0aW9u
KGNvbnRleHRUeXBlKSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAg
IG5hbWU6IGAke3N1aXRlLm5hbWV9LlBhcmVudENhbnZhc1JlbW92ZWRgLAorICAgICAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBTaGFkZXJQcm9ncmFtIGlzIHJlbW92ZWQgYmVm
b3JlIGl0J3MgcGFyZW50IENhbnZhcy4iLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOworCisgICAg
ICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5D
YW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4geworICAgICAgICAg
ICAgICAgICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtUmVtb3ZlZCgocHJvZ3JhbSkgPT4geworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGNhbnZhc1JlbW92ZWQsICJS
ZW1vdmVkIFNoYWRlclByb2dyYW0gYmVmb3JlIENhbnZhcy4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlUHJvZ3JhbSgiJHtjb250ZXh0VHlwZX0i
KWApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlbGV0
ZUNvbnRleHQoKWApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9Cit9KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclBy
b2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
Nzg3NTUyYmMwNjBkNjIzMGViNGNiNmIwODlkNzljNWY0ZDNmN2IyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMtd2ViZ3B1LmpzCkBAIC0wLDAgKzEsMTE1IEBACitpZiAod2luZG93LmludGVybmFs
cykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdQVUVuYWJsZWQodHJ1ZSk7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitjb25zdCBjb21wdXRlU2hh
ZGVyU291cmNlID0gYAorW251bXRocmVhZHMoMiwgMSwgMSldCitjb21wdXRlIHZvaWQgY29tcHV0
ZVNoYWRlcihkZXZpY2UgZmxvYXRbXSBidWZmZXIgOiByZWdpc3Rlcih1MCksIGZsb2F0MyB0aHJl
YWRJRCA6IFNWX0Rpc3BhdGNoVGhyZWFkSUQpIHsKKyAgICBidWZmZXJbdWludCh0aHJlYWRJRC54
KV0gPSBidWZmZXJbdWludCh0aHJlYWRJRC54KV0gKiAyLjA7Cit9CitgOworCitjb25zdCB2ZXJ0
ZXhTaGFkZXJTb3VyY2UgPSBgCit2ZXJ0ZXggZmxvYXQ0IHZlcnRleFNoYWRlcihmbG9hdDQgcG9z
aXRpb24gOiBhdHRyaWJ1dGUoMCksIGZsb2F0IGkgOiBhdHRyaWJ1dGUoMSkpIDogU1ZfUG9zaXRp
b24geworICAgIHJldHVybiBwb3NpdGlvbjsKK30KK2A7CisKK2NvbnN0IGZyYWdtZW50U2hhZGVy
U291cmNlID0gYAorZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50U2hhZGVyKGZsb2F0NCBwb3NpdGlv
biA6IFNWX1Bvc2l0aW9uKSA6IFNWX1RhcmdldCAwIHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9
CitgOworCitsZXQgZGV2aWNlID0gbnVsbDsKKworYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29tcHV0
ZVBpcGVsaW5lKGNvbXB1dGVDb2RlID0gY29tcHV0ZVNoYWRlclNvdXJjZSkgeworICAgIC8vIENv
cGllZCBmcm9tIHdlYmdwdS93aGxzbC9jb21wdXRlLmh0bWwuCisKKyAgICBjb25zdCBzaGFkZXJN
b2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2RlOiBjb21wdXRlQ29kZX0pOwor
ICAgIGNvbnN0IGNvbXB1dGVTdGFnZSA9IHttb2R1bGU6IHNoYWRlck1vZHVsZSwgZW50cnlQb2lu
dDogImNvbXB1dGVTaGFkZXIifTsKKworICAgIGNvbnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0
b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzogMCwgdmlzaWJpbGl0eTogNywgdHlwZTogInN0b3Jh
Z2UtYnVmZmVyIn1dfTsKKyAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSBkZXZpY2UuY3JlYXRl
QmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91dERlc2NyaXB0b3IpOworICAgIGNvbnN0IHBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kR3JvdXBMYXlvdXRzOiBbYmluZEdyb3VwTGF5
b3V0XX07CisgICAgY29uc3QgcGlwZWxpbmVMYXlvdXQgPSBkZXZpY2UuY3JlYXRlUGlwZWxpbmVM
YXlvdXQocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKTsKKworICAgIGRldmljZS5jcmVhdGVDb21w
dXRlUGlwZWxpbmUoe2NvbXB1dGVTdGFnZSwgbGF5b3V0OiBwaXBlbGluZUxheW91dH0pOworfQor
Cithc3luYyBmdW5jdGlvbiBjcmVhdGVSZW5kZXJQaXBlbGluZSh2ZXJ0ZXhDb2RlID0gdmVydGV4
U2hhZGVyU291cmNlLCBmcmFnbWVudENvZGUgPSBmcmFnbWVudFNoYWRlclNvdXJjZSkgeworICAg
IC8vIENvcGllZCBmcm9tIHdlYmdwdS93aGxzbC93aGxzbC5odG1sLgorCisgICAgY29uc3QgdmVy
dGV4U2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7Y29kZTogdmVydGV4
Q29kZX0pOworICAgIGNvbnN0IHZlcnRleFN0YWdlID0ge21vZHVsZTogdmVydGV4U2hhZGVyTW9k
dWxlLCBlbnRyeVBvaW50OiAidmVydGV4U2hhZGVyIn07CisKKyAgICBjb25zdCBmcmFnbWVudFNo
YWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoe2NvZGU6IGZyYWdtZW50Q29k
ZX0pOworICAgIGNvbnN0IGZyYWdtZW50U3RhZ2UgPSB7bW9kdWxlOiBmcmFnbWVudFNoYWRlck1v
ZHVsZSwgZW50cnlQb2ludDogImZyYWdtZW50U2hhZGVyIn07CisKKyAgICBjb25zdCBwcmltaXRp
dmVUb3BvbG9neSA9ICJ0cmlhbmdsZS1zdHJpcCI7CisgICAgY29uc3QgcmFzdGVyaXphdGlvblN0
YXRlID0ge2Zyb250RmFjZTogImN3IiwgY3VsbE1vZGU6ICJub25lIn07CisgICAgY29uc3QgYWxw
aGFCbGVuZCA9IHt9OworICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7fTsKKyAgICBjb25zdCBjb2xv
clN0YXRlcyA9IFt7Zm9ybWF0OiAicmdiYTh1bm9ybSIsIGFscGhhQmxlbmQsIGNvbG9yQmxlbmQs
IHdyaXRlTWFzazogMTV9XTsgLy8gR1BVQ29sb3JXcml0ZS5BTEwKKyAgICBjb25zdCBkZXB0aFN0
ZW5jaWxTdGF0ZSA9IG51bGw7CisgICAgCisgICAgY29uc3QgYXR0cmlidXRlMCA9IHtzaGFkZXJM
b2NhdGlvbjogMCwgZm9ybWF0OiAiZmxvYXQ0In07CisgICAgY29uc3QgYXR0cmlidXRlMSA9IHtz
aGFkZXJMb2NhdGlvbjogMSwgZm9ybWF0OiAiZmxvYXQifTsKKyAgICBjb25zdCBpbnB1dDAgPSB7
c3RyaWRlOiAxNiwgYXR0cmlidXRlU2V0OiBbYXR0cmlidXRlMF19OworICAgIGNvbnN0IGlucHV0
MSA9IHtzdHJpZGU6IDQsIGF0dHJpYnV0ZVNldDogW2F0dHJpYnV0ZTFdfTsKKyAgICBjb25zdCBp
bnB1dHMgPSBbaW5wdXQwLCBpbnB1dDFdOworICAgIGNvbnN0IHZlcnRleElucHV0ID0ge3ZlcnRl
eEJ1ZmZlcnM6IGlucHV0c307CisKKyAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
ID0ge2JpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHZpc2liaWxpdHk6IDcsIHR5cGU6ICJ1bmlmb3Jt
LWJ1ZmZlciJ9XX07CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZUJp
bmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKKyAgICBjb25zdCBwaXBl
bGluZUxheW91dERlc2NyaXB0b3IgPSB7YmluZEdyb3VwTGF5b3V0czogW2JpbmRHcm91cExheW91
dF19OworICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5lTGF5
b3V0KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcik7CisKKyAgICBkZXZpY2UuY3JlYXRlUmVuZGVy
UGlwZWxpbmUoe3ZlcnRleFN0YWdlLCBmcmFnbWVudFN0YWdlLCBwcmltaXRpdmVUb3BvbG9neSwg
cmFzdGVyaXphdGlvblN0YXRlLCBjb2xvclN0YXRlcywgZGVwdGhTdGVuY2lsU3RhdGUsIHZlcnRl
eElucHV0LCBzYW1wbGVDb3VudDogMSwgbGF5b3V0OiBwaXBlbGluZUxheW91dH0pOworfQorCitm
dW5jdGlvbiBkZWxldGVEZXZpY2UoKSB7CisgICAgZGV2aWNlID0gbnVsbDsKKyAgICAvLyBGb3Jj
ZSBHQyB0byBtYWtlIHN1cmUgdGhlIGRldmljZSBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUg
ZnJvbnRlbmQKKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQu
Q2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxl
ci5jb2xsZWN0KCk7IH0sIDApOworfQorCithc3luYyBmdW5jdGlvbiBsb2FkKCkgeworICAgIGxl
dCBhZGFwdGVyID0gYXdhaXQgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRlcigpOworICAgIGRl
dmljZSA9IGF3YWl0IGFkYXB0ZXIucmVxdWVzdERldmljZSgpOworCisgICAgYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgICAgICBjcmVhdGVDb21wdXRlUGlwZWxpbmUoKSwKKyAgICAgICAgY3JlYXRl
UmVuZGVyUGlwZWxpbmUoKSwKKyAgICBdKTsKKworICAgIGlmICh3aW5kb3cuYmVmb3JlVGVzdCkK
KyAgICAgICAgYXdhaXQgYmVmb3JlVGVzdCgpOworCisgICAgcnVuVGVzdCgpOworfQorCitUZXN0
UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBpZiAoIUluc3BlY3RvclRlc3Qu
U2hhZGVyUHJvZ3JhbSkKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtID0ge307
CisKKyAgICBJbnNwZWN0b3JUZXN0LlNoYWRlclByb2dyYW0ucHJvZ3JhbUZvclR5cGUgPSBmdW5j
dGlvbihwcm9ncmFtVHlwZSkgeworICAgICAgICBmb3IgKGxldCBzaGFkZXJQcm9ncmFtIG9mIFdJ
LmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXMpIHsKKyAgICAgICAgICAgIGlmIChzaGFkZXJQ
cm9ncmFtLnByb2dyYW1UeXBlID09PSBwcm9ncmFtVHlwZSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2hhZGVyUHJvZ3JhbTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9
OworCisgICAgSW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtLmxvZ1NvdXJjZSA9IGFzeW5jIGZ1
bmN0aW9uKHNoYWRlclByb2dyYW0sIHNoYWRlclR5cGUpIHsKKyAgICAgICAgbGV0IHtzb3VyY2Us
IGVudHJ5UG9pbnR9ID0gYXdhaXQgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFk
ZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUpOworICAgICAgICBpZiAoZW50cnlQb2lu
dCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFbnRyeSBwb2ludDogIiArIGVudHJ5
UG9pbnQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiYCIgKyBzb3VyY2UgKyAiYCIpOwor
ICAgIH07Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVz
b3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDUyNzVjNDQxYWFmYzczYjkxMDc5NDViM2NkNzNmOWNhNjdlMWU2
NWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotbGV0IGNvbnRleHQ7Ci1sZXQgcHJv
Z3JhbTsKLQotZnVuY3Rpb24gY3JlYXRlUHJvZ3JhbShjb250ZXh0VHlwZSkgewotICAgIGlmICgh
Y29udGV4dCkKLSAgICAgICAgY29udGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZh
cyIpLmdldENvbnRleHQoY29udGV4dFR5cGUpOwotCi0gICAgcHJvZ3JhbSA9IGNvbnRleHQuY3Jl
YXRlUHJvZ3JhbSgpOwotfQotCi1mdW5jdGlvbiBsaW5rUHJvZ3JhbSh2ZXJ0ZXhTaGFkZXJJZGVu
dGlmaWVyLCBmcmFnbWVudFNoYWRlcklkZW50aWZpZXIpIHsKLSAgICBmdW5jdGlvbiB0eXBlRm9y
U2NyaXB0KHNjcmlwdCkgewotICAgICAgICBpZiAoc2NyaXB0LnR5cGUgPT09ICJ4LXNoYWRlci94
LXZlcnRleCIpCi0gICAgICAgICAgICByZXR1cm4gY29udGV4dC5WRVJURVhfU0hBREVSOwotICAg
ICAgICBpZiAoc2NyaXB0LnR5cGUgPT09ICJ4LXNoYWRlci94LWZyYWdtZW50IikKLSAgICAgICAg
ICAgIHJldHVybiBjb250ZXh0LkZSQUdNRU5UX1NIQURFUjsKLQotICAgICAgICBjb25zb2xlLmFz
c2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgc2NyaXB0IHgtc2hhZGVyIHR5cGU6ICIgKyBzY3JpcHQu
dHlwZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY3JlYXRlU2hhZGVyRnJvbVNjcmlwdChzY3Jp
cHRJZGVudGlmaWVyKSB7Ci0gICAgICAgIGxldCBzY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChzY3JpcHRJZGVudGlmaWVyKTsKLSAgICAgICAgbGV0IHNoYWRlciA9IGNvbnRleHQuY3Jl
YXRlU2hhZGVyKHR5cGVGb3JTY3JpcHQoc2NyaXB0KSk7Ci0gICAgICAgIGNvbnRleHQuYXR0YWNo
U2hhZGVyKHByb2dyYW0sIHNoYWRlcik7Ci0gICAgICAgIGNvbnRleHQuc2hhZGVyU291cmNlKHNo
YWRlciwgc2NyaXB0LnRleHQpOwotICAgICAgICBjb250ZXh0LmNvbXBpbGVTaGFkZXIoc2hhZGVy
KTsKLSAgICB9Ci0KLSAgICBjcmVhdGVTaGFkZXJGcm9tU2NyaXB0KHZlcnRleFNoYWRlcklkZW50
aWZpZXIpOwotICAgIGNyZWF0ZVNoYWRlckZyb21TY3JpcHQoZnJhZ21lbnRTaGFkZXJJZGVudGlm
aWVyKTsKLSAgICBjb250ZXh0LmxpbmtQcm9ncmFtKHByb2dyYW0pOwotfQotCi1mdW5jdGlvbiBk
ZWxldGVQcm9ncmFtKCkgewotICAgIGNvbnRleHQuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKLSAg
ICBwcm9ncmFtID0gbnVsbDsKLX0KLQotZnVuY3Rpb24gZGVsZXRlQ29udGV4dCgpIHsKLSAgICBj
b250ZXh0ID0gbnVsbDsKLSAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBl
bGVtZW50IGlzIGRlc3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMg
bm90IHJlY2VpdmUgV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4K
LSAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7Ci19
Ci0KLVRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewotICAgIGxldCBzdWl0ZSA9
IG51bGw7Ci0KLSAgICBmdW5jdGlvbiB3aGVuUHJvZ3JhbUFkZGVkKGNhbGxiYWNrKSB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3Ro
ID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKLSAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9
PiB7Ci0gICAgICAgICAgICBsZXQgcHJvZ3JhbSA9IGV2ZW50LmRhdGEuaXRlbTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVy
UHJvZ3JhbSwgIkFkZGVkIFNoYWRlclByb2dyYW0uIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFk
ZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKLSAgICAgICAgICAgIGNh
bGxiYWNrKHByb2dyYW0pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB3aGVu
UHJvZ3JhbVJlbW92ZWQoY2FsbGJhY2spIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
V0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25s
eSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBd
LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxl
Y3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgbGV0IHBy
b2dyYW0gPSBldmVudC5kYXRhLml0ZW07Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0sICJSZW1vdmVkIFNoYWRl
clByb2dyYW0uIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3Jh
bS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZl
IGEgcGFyZW50IENhbnZhcy4iKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKHByb2dyYW0pOwotICAg
ICAgICB9KTsKLSAgICB9Ci0KLSAgICB3aW5kb3cuaW5pdGlhbGl6ZVRlc3RTdWl0ZSA9IGZ1bmN0
aW9uKGNvbnRleHRUeXBlKSB7Ci0gICAgICAgIHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKGBDYW52YXMuU2hhZGVyUHJvZ3JhbS4ke2NvbnRleHRUeXBlfWApOwotCi0gICAg
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6IGAke3N1aXRlLm5hbWV9
LnJlbG9hZFBhZ2VgLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRl
clByb2dyYW1BZGRlZCBpcyBzZW50IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFz
QWdlbnQgaXMgZW5hYmxlZC4iLAotICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsK
LSAgICAgICAgICAgICAgICAvLyBUaGlzIGNhbid0IHVzZSBgYXdhaXRFdmVudGAgc2luY2UgdGhl
IHByb21pc2UgcmVzb2x1dGlvbiBoYXBwZW5zIG9uIHRoZSBuZXh0IHRpY2suCi0gICAgICAgICAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgd2hlblByb2dyYW1BZGRlZCgocHJvZ3JhbSkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9
KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICByZXR1cm4gc3VpdGU7Ci0gICAgfQotCi0g
ICAgIHdpbmRvdy5hZGRTaW1wbGVUZXN0Q2FzZSA9IGZ1bmN0aW9uKGNvbnRleHRUeXBlKSB7Ci0g
ICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6IGAke3N1aXRlLm5h
bWV9LlNoYWRlclByb2dyYW1BZGRlZGAsCi0gICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNr
IHRoYXQgYWRkZWQvcmVtb3ZlZCBldmVudHMgYXJlIHNlbnQuIiwKLSAgICAgICAgICAgIHRlc3Qo
cmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgd2hlblByb2dyYW1BZGRlZCgoYWRk
ZWRQcm9ncmFtKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtUmVtb3ZlZCgo
cmVtb3ZlZFByb2dyYW0pID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwocmVtb3ZlZFByb2dyYW0sIGFkZGVkUHJvZ3JhbSwgIlJlbW92ZWQgdGhl
IHByZXZpb3VzbHkgYWRkZWQgU2hhZGVyUHJvZ3JhbS4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZGVsZXRlUHJvZ3JhbSgpYCk7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGBjcmVhdGVQcm9ncmFtKCIke2NvbnRleHRUeXBlfSIpYCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIHdpbmRvdy5hZGRQYXJlbnRDYW52YXNSZW1v
dmVkVGVzdENhc2UgPSBmdW5jdGlvbihjb250ZXh0VHlwZSkgewotICAgICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5QYXJlbnRDYW52YXNS
ZW1vdmVkYCwKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCB0aGUgU2hhZGVy
UHJvZ3JhbSBpcyByZW1vdmVkIGJlZm9yZSBpdCdzIHBhcmVudCBDYW52YXMuIiwKLSAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgbGV0IGNhbnZhc1Jl
bW92ZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xl
RmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCAo
ZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbVJlbW92ZWQo
KHByb2dyYW0pID0+IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RG
YWxzZShjYW52YXNSZW1vdmVkLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtIGJlZm9yZSBDYW52YXMu
Iik7Ci0gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgICB9KTsK
LQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVBy
b2dyYW0oIiR7Y29udGV4dFR5cGV9IilgKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGBkZWxldGVDb250ZXh0KClgKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSk7Ci0gICAgfQotfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3NldFNoYWRlclByb2dyYW1EaXNhYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQuaHRtbAppbmRleCA2NTdhM2FiOGMxZmZk
Yjg2Y2UwODcwZGE0NzJiOTZhZGYyMTkyOGIwLi5kMzllYzMwOTVlMWJlNTQ4M2U3Y2FjMmQ3MWY5
ZDI0MzIxNDFkZjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Nl
dFNoYWRlclByb2dyYW1EaXNhYmxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvc2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRt
bD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJp
YnV0ZSB2ZWMzIHBvc2l0aW9uOwogICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFtSGlnaGxp
Z2h0ZWQuaHRtbAppbmRleCBkNDA4OWMzODE1YTY5NGRhMTU2YmUwMjAxMTM4YTQ1NmQ2MGJjZjBh
Li44YTc5NDNkNTVjZDZjMWNiZDA1NGJiMDhjMWVmYmQ2MmY2OTMzMGMxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0U2hhZGVyUHJvZ3JhbUhp
Z2hsaWdodGVkLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIg
dHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uOwog
ICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wuaHRtbAppbmRl
eCAyY2U3OWYyY2E3YTdlZWY2Y2NhYzA3Y2MzNDg5YmUxYWU4NDVjYTBhLi4zYzYzMTFkOTIzODU3
M2E2MTU5MDE1OWEyOGVjNzg0MmY4ZTQwNDQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmds
Lmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMt
d2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgbGV0
IHN1aXRlID0gaW5pdGlhbGl6ZVRlc3RTdWl0ZSgid2ViZ2wiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsMi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1v
dmUtd2ViZ2wyLmh0bWwKaW5kZXggMjYzZmZjYWMwYjliM2Y3NTAwOTFkODJkM2I4N2RiZDgwM2E3
OTEzMi4uOTJmYTMwNjFmZjU4ZDJjZDVlZThiZTExYjI5Njc4OWE4ZWUxOWQ3OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUt
d2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9n
cmFtLWFkZC1yZW1vdmUtd2ViZ2wyLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFk
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclBy
b2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTDJFbmFibGVk
KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQ
cm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDkzZmIzMjE1Y2U1M2JlYjAzNjUyYjgyOWFjN2E1M2Q1MjhmZDZmZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3Jh
bS1hZGQtcmVtb3ZlLXdlYmdwdS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorQ09OU09M
RSBNRVNTQUdFOiBHUFVEZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCk6IFdITFNMIGNvbXBp
bGUgZXJyb3I6IENhbm5vdCBsZXg6IENhbm5vdCBjb25zdW1lIHRva2VuCitDT05TT0xFIE1FU1NB
R0U6IEdQVURldmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZSgpOiBXSExTTCBjb21waWxlIGVycm9y
OiBDYW5ub3QgbGV4OiBDYW5ub3QgY29uc3VtZSB0b2tlbgorQ09OU09MRSBNRVNTQUdFOiBHUFVE
ZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCk6IFdITFNMIGNvbXBpbGUgZXJyb3I6IENhbm5v
dCBsZXg6IENhbm5vdCBjb25zdW1lIHRva2VuCitDT05TT0xFIE1FU1NBR0U6IEdQVURldmljZS5j
cmVhdGVSZW5kZXJQaXBlbGluZSgpOiBXSExTTCBjb21waWxlIGVycm9yOiBDYW5ub3QgbGV4OiBD
YW5ub3QgY29uc3VtZSB0b2tlbgorVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgdHJhY2tzIGNyZWF0
aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiBXZWJHUFUgc2hhZGVyIHByb2dyYW1zLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkV4aXN0aW5nCitQQVNTOiBB
ZGRlZCAiY29tcHV0ZSBTaGFkZXJQcm9ncmFtLgorUEFTUzogQWRkZWQgInJlbmRlciBTaGFkZXJQ
cm9ncmFtLgorUEFTUzogVGhlcmUgc2hvdWxkIGJlIHR3byBTaGFkZXJQcm9ncmFtLgorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkFkZGVkLkNvbXB1
dGUuVmFsaWQKK1BBU1M6IEFkZGVkICJjb21wdXRlIFNoYWRlclByb2dyYW0uCisKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuQWRkZWQuQ29tcHV0ZS5J
bnZhbGlkCitQQVNTOiBTaG91bGQgbm90IGNyZWF0ZSBhIFNoYWRlclByb2dyYW0gZm9yIGFuIGlu
dmFsaWQgZGVzY3JpcHRvci4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5TaGFkZXJQ
cm9ncmFtLldlYkdQVS5BZGRlZC5SZW5kZXIuVmFsaWQKK1BBU1M6IEFkZGVkICJyZW5kZXIgU2hh
ZGVyUHJvZ3JhbS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5TaGFkZXJQcm9ncmFt
LldlYkdQVS5BZGRlZC5SZW5kZXIuSW52YWxpZAorUEFTUzogU2hvdWxkIG5vdCBjcmVhdGUgYSBT
aGFkZXJQcm9ncmFtIGZvciBhbiBpbnZhbGlkIGRlc2NyaXB0b3IuCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuUGFyZW50RGV2aWNlUmVtb3ZlZAor
UEFTUzogUmVtb3ZlZCBTaGFkZXJQcm9ncmFtIGJlZm9yZSBDYW52YXMuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdl
YmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFk
ZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdlYWZkZWM0Y2UxMjU3YzZhMmExMmIy
ZTIxZGUwZTA4MTAxZDI3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCkBAIC0wLDAgKzEs
MTQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2Vi
Z3B1LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuYmVmb3JlVGVzdCA9IGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgY3JlYXRlQ29tcHV0
ZVBpcGVsaW5lKCJJTlZBTElEIiksCisgICAgICAgIGNyZWF0ZVJlbmRlclBpcGVsaW5lKCJJTlZB
TElEIiwgIklOVkFMSUQiKSwKKyAgICBdKTsKK307CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAg
bGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVy
UHJvZ3JhbS5XZWJHUFVgKTsKKworICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzWzBdOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3Vs
ZCBiZSBhIGNhbnZhcy4iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52
YXMuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7
CisKKyAgICBhc3luYyBmdW5jdGlvbiBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgewor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgbGV0IGxpc3RlbmVySXRlbUFkZGVkID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwor
ICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLnByb2dyYW1UeXBlICE9PSBwcm9ncmFtVHlwZSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCBgQWRk
ZWQgIiR7cHJvZ3JhbVR5cGV9IFNoYWRlclByb2dyYW0uYCk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQocHJvZ3JhbS5jYW52YXMgPT09IGNhbnZhcywgIlNoYWRlclByb2dy
YW0gc2hvdWxkIGJlIGZvciB0aGUga25vd24gQ2FudmFzLiIpOworCisgICAgICAgICAgICAgICAg
cmVzb2x2ZShwcm9ncmFtKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJv
Z3JhbS5XZWJHUFUuRXhpc3RpbmciLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQg
U2hhZGVyUHJvZ3JhbUFkZGVkIGlzIHNlbnQgZm9yIGEgcHJvZ3JhbSBjcmVhdGVkIGJlZm9yZSBD
YW52YXNBZ2VudCBpcyBlbmFibGVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAg
ICAgICBhc3luYyBmdW5jdGlvbiBjaGVja0V4aXN0cyhwcm9ncmFtVHlwZSkgeworICAgICAgICAg
ICAgICAgIGlmIChJbnNwZWN0b3JUZXN0LlNoYWRlclByb2dyYW0ucHJvZ3JhbUZvclR5cGUocHJv
Z3JhbVR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgQWRk
ZWQgIiR7cHJvZ3JhbVR5cGV9IFNoYWRlclByb2dyYW0uYCk7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBhd2FpdCBhd2Fp
dFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBjaGVja0V4aXN0cyhXSS5TaGFk
ZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGUpLAorICAgICAgICAgICAgICAgIGNoZWNrRXhp
c3RzKFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyKSwKKyAgICAgICAgICAgIF0p
OworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5zaGFkZXJQ
cm9ncmFtQ29sbGVjdGlvbi5zaXplLCAyLCAiVGhlcmUgc2hvdWxkIGJlIHR3byBTaGFkZXJQcm9n
cmFtLiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuQWRkZWQuQ29tcHV0ZS5W
YWxpZCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhZGRlZC9yZW1vdmVkIGV2
ZW50cyBhcmUgc2VudC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGF3YWl0UHJvZ3JhbUFkZGVkKFdJLlNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZSksCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKClgKSwKKyAgICAg
ICAgICAgIF0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuQWRkZWQuQ29tcHV0
ZS5JbnZhbGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3JlbW92
ZWQgZXZlbnRzIGFyZSBzZW50LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAg
ICBsZXQgc2hhZGVyUHJvZ3JhbUFkZGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIGxldCBsaXN0
ZW5lciA9IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgc2hhZGVyUHJvZ3JhbUFkZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVDb21w
dXRlUGlwZWxpbmUoIklOVkFMSUQiKWApOworCisgICAgICAgICAgICBjYW52YXMuc2hhZGVyUHJv
Z3JhbUNvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1BZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxz
ZShzaGFkZXJQcm9ncmFtQWRkZWQsICJTaG91bGQgbm90IGNyZWF0ZSBhIFNoYWRlclByb2dyYW0g
Zm9yIGFuIGludmFsaWQgZGVzY3JpcHRvci4iKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLlNoYWRlclByb2dyYW0u
V2ViR1BVLkFkZGVkLlJlbmRlci5WYWxpZCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sg
dGhhdCBhZGRlZC9yZW1vdmVkIGV2ZW50cyBhcmUgc2VudC4iLAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGF3
YWl0UHJvZ3JhbUFkZGVkKFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyKSwKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVSZW5kZXJQ
aXBlbGluZSgpYCksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLlNoYWRlclByb2dyYW0u
V2ViR1BVLkFkZGVkLlJlbmRlci5JbnZhbGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVj
ayB0aGF0IGFkZGVkL3JlbW92ZWQgZXZlbnRzIGFyZSBzZW50LiIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbUFkZGVkID0gZmFsc2U7CisKKyAg
ICAgICAgICAgIGxldCBsaXN0ZW5lciA9IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5z
aW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgc2hhZGVyUHJvZ3JhbUFkZGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBjcmVhdGVSZW5kZXJQaXBlbGluZSgiSU5WQUxJRCIsICJJTlZBTElEIilgKTsKKwor
ICAgICAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2Uoc2hhZGVyUHJvZ3JhbUFkZGVkLCAiU2hvdWxk
IG5vdCBjcmVhdGUgYSBTaGFkZXJQcm9ncmFtIGZvciBhbiBpbnZhbGlkIGRlc2NyaXB0b3IuIik7
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkNhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5QYXJlbnREZXZpY2VSZW1vdmVkIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBTaGFkZXJQcm9ncmFtIGlzIHJl
bW92ZWQgYmVmb3JlIGl0J3MgcGFyZW50IENhbnZhcy4iLAorICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgICAgbGV0IGNhbnZhc1JlbW92ZWQgPSBmYWxzZTsKKworICAg
ICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IGxldCBzaGFkZXJQcm9ncmFtQ291bnQgPSBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24u
c2l6ZTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lckl0ZW1SZW1vdmVkID0gY2FudmFzLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKC0tc2hhZGVyUHJv
Z3JhbUNvdW50KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAg
ICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5D
b2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCBsaXN0ZW5lckl0ZW1SZW1vdmVkKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGNhbnZhc1JlbW92ZWQsICJSZW1v
dmVkIFNoYWRlclByb2dyYW0gYmVmb3JlIENhbnZhcy4iKTsKKyAgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShgZGVsZXRlRGV2aWNlKClgKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
c3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0IHRoYXQgQ2FudmFzTWFuYWdlciB0cmFj
a3MgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uIG9mIFdlYkdQVSBzaGFkZXIgcHJvZ3JhbXMuPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQudHh0CmluZGV4IDhmM2ZlZTllMTQwNGViMmM0ZDA4
NDIwNmI2Y2VmN2M4YzQ0YTc0YzEuLmNlMzdlOGU2YTljODAwZWZjOGY3ZjA2ZWNjNDUyY2E0MzFj
YjEwMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hh
ZGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci1leHBlY3RlZC50eHQKQEAgLTEsMzggKzEsOCBAQAotQ09OU09MRSBNRVNTQUdFOiBX
ZWJHTDogRVJST1I6IDA6MTogJ0lOVkFMSUQnIDogc3ludGF4IGVycm9yCi1DT05TT0xFIE1FU1NB
R0U6IFdlYkdMOiBFUlJPUjogMDoxOiAnSU5WQUxJRCcgOiBzeW50YXggZXJyb3IKLVRlc3QgY29t
cGlsYXRpb24gb2Ygc2hhZGVycyBhZnRlciBiZWluZyBhdHRhY2hlZCB0byBhIHByb2dyYW0sIHdp
dGggYW5kIHdpdGhvdXQgc3ludGF4IGVycm9ycy4KK0NvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnVw
ZGF0ZVNoYWRlciBjb21tYW5kLgogCiAKID09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnVw
ZGF0ZVNoYWRlcgotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIudmVy
dGV4U2hhZGVyVmFsaWQKLQotICAgIHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0
aW9uID0gdmVjNCgxLCAyLCAzLCA0KTsKLSAgICB9Ci0KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENhbnZhcy51cGRhdGVTaGFkZXIuZnJhZ21lbnRTaGFkZXJWYWxpZAotCi0gICAgcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9GcmFn
Q29sb3IgPSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7Ci0gICAgfQotCi0KLS0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRQcm9ncmFtSWQKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLlByb2dyYW1JZC5JbnZhbGlkCiBQQVNT
OiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KIEVycm9yOiBNaXNzaW5nIHByb2dyYW0gZm9yIGdp
dmVuIHByb2dyYW1JZAogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRl
ci5pbnZhbGlkU2hhZGVyVHlwZQotUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuCi1FcnJv
cjogTWlzc2luZyBzaGFkZXIgZm9yIGdpdmVuIHNoYWRlclR5cGUKLQotLS0gUnVubmluZyB0ZXN0
IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuaW52YWxpZFZlcnRleFNoYWRlclNvdXJjZQotUEFT
UzogU2hvdWxkIHByb2R1Y2UgZXJyb3IuCi1FcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIK
LQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuaW52YWxpZEZyYWdt
ZW50U2hhZGVyU291cmNlCi1QQVNTOiBTaG91bGQgcHJvZHVjZSBlcnJvci4KLUVycm9yOiBGYWls
ZWQgdG8gdXBkYXRlIHNoYWRlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmJiYmE3MjE4ZmY1YjNjYzRhZTk1YjNhOTA1ZDFkMzBmNmVjYmE1NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBFUlJPUjog
MDoxOiAnSU5WQUxJRCcgOiBzeW50YXggZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVS
Uk9SOiAwOjE6ICdJTlZBTElEJyA6IHN5bnRheCBlcnJvcgorV2ViR0wgdGVzdHMgZm9yIENhbnZh
cy51cGRhdGVTaGFkZXIgY29tbWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZh
cy51cGRhdGVTaGFkZXIuV2ViR0wKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRl
U2hhZGVyLldlYkdMLlZlcnRleC5WYWxpZAorCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAg
ICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEsIDIsIDMsIDQpOworICAgIH0KKworCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5GcmFnbWVudC5WYWxpZAorCisg
ICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAg
ICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7CisgICAgfQorCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5J
bnZhbGlkCitQQVNTOiBTaG91bGQgcHJvZHVjZSBlcnJvci4KK0Vycm9yOiBGYWlsZWQgdG8gdXBk
YXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52
YWxpZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgZXJyb3IuCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0
ZSBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlNoYWRlclR5cGUuSW52
YWxpZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuCitFcnJvcjogVW5rbm93biBzaGFk
ZXJUeXBlOiBJTlZBTElEX1NIQURFUl9UWVBFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1ZGQ1YzI1
ZWIyNmM4NDA0NmFjMWM3ZTE5MjA5MDMyYTE3ZGRiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC5odG1sCkBAIC0wLDAg
KzEsMTMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMt
d2ViZ2wuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1z
aGFkZXIveC12ZXJ0ZXgiPgorICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX1Bvc2l0
aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlw
dCBpZD0iZnJhZ21lbnQtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAg
IGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkgeworICAgIGNyZWF0ZVByb2dyYW0oIndlYmds
Iik7CisgICAgbGlua1Byb2dyYW0oInZlcnRleC1zaGFkZXIiLCAiZnJhZ21lbnQtc2hhZGVyIik7
CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDYW52YXMudXBkYXRlU2hhZGVyLldl
YkdMIik7CisKKyAgICBmdW5jdGlvbiB2YWxpZFNvdXJjZVRlc3Qoe25hbWUsIHNoYWRlclR5cGUs
IHNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFt
ZSwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAg
bGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwor
ICAgICAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAgICAgICAgICAg
ICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IHByb2dyYW1J
ZCA9IHNoYWRlclByb2dyYW0uaWRlbnRpZmllcjsKKworICAgICAgICAgICAgICAgIENhbnZhc0Fn
ZW50LnVwZGF0ZVNoYWRlcihwcm9ncmFtSWQsIHNoYWRlclR5cGUsIHNvdXJjZSkKKyAgICAgICAg
ICAgICAgICAudGhlbigoKSA9PiBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHByb2dy
YW1JZCwgc2hhZGVyVHlwZSkpCisgICAgICAgICAgICAgICAgLnRoZW4oKHtzb3VyY2UsIGVudHJ5
UG9pbnR9KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeVBvaW50KQorICAgICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVudHJ5IHBvaW50OiAiICsgZW50
cnlQb2ludCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHNvdXJjZSk7
CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWpl
Y3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICB2YWxpZFNvdXJj
ZVRlc3QoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5WZXJ0ZXgu
VmFsaWQiLAorICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRl
eCwKKyAgICAgICAgc291cmNlOiBgCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KDEsIDIsIDMsIDQpOworICAgIH0KK2AsCisgICAgfSk7CisKKyAgICB2
YWxpZFNvdXJjZVRlc3QoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJH
TC5GcmFnbWVudC5WYWxpZCIsCisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRl
clR5cGUuRnJhZ21lbnQsCisgICAgICAgIHNvdXJjZTogYAorICAgIHByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfRnJhZ0NvbG9yID0g
dmVjNCgwLjEsIDAuMiwgMC4zLCAwLjQpOworICAgIH0KK2AsCisgICAgfSk7CisKKyAgICBmdW5j
dGlvbiBpbnZhbGlkU291cmNlVGVzdCh7bmFtZSwgc2hhZGVyVHlwZSwgc291cmNlfSkgeworICAg
ICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAg
dGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3Jh
bSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICAgICAg
aWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAgICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2lu
ZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hh
ZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3VyY2UsIChlcnJvcikgPT4gewor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXJyb3IsICJTaG91
bGQgcHJvZHVjZSBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGludmFsaWRTb3VyY2VUZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFk
ZXIuV2ViR0wuVmVydGV4LkludmFsaWQiLAorICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNBZ2Vu
dC5TaGFkZXJUeXBlLlZlcnRleCwKKyAgICAgICAgc291cmNlOiAiSU5WQUxJRCIsCisgICAgfSk7
CisKKyAgICBpbnZhbGlkU291cmNlVGVzdCh7CisgICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRl
U2hhZGVyLldlYkdMLkZyYWdtZW50LkludmFsaWQiLAorICAgICAgICBzaGFkZXJUeXBlOiBDYW52
YXNBZ2VudC5TaGFkZXJUeXBlLkZyYWdtZW50LAorICAgICAgICBzb3VyY2U6ICJJTlZBTElEIiwK
KyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNhbnZh
cy51cGRhdGVTaGFkZXIuV2ViR0wuU2hhZGVyVHlwZS5JbnZhbGlkIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJJbnZhbGlkIHNoYWRlciB0eXBlcyBzaG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKKyAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9n
cmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKKyAgICAgICAgICAgIGlm
ICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFk
ZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBjb25zdCBzaGFkZXJUeXBlID0gIklOVkFMSURfU0hBREVSX1RZUEUiOworICAg
ICAgICAgICAgY29uc3Qgc291cmNlID0gIklOVkFMSURfU09VUkNFIjsKKyAgICAgICAgICAgIENh
bnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5
cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuIik7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJsb2FkKCkiPgorPHA+V2ViR0wgdGVzdHMgZm9yIENhbnZhcy51cGRhdGVT
aGFkZXIgY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYmVkMzcyMjNjNzVjMGZlNTg1NjFlODJhYjBkMTQ5NjVjNGFjYmZl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVT
aGFkZXItd2ViZ3B1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitXZWJHUFUgdGVzdHMg
Zm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29tbWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2Fu
dmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuQ29tcHV0ZS5WYWxpZAorUEFTUzogU291cmNlIHNob3Vs
ZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hh
ZGVyLldlYkdQVS5Db21wdXRlLkludmFsaWQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2Vw
dGlvbi4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBl
IGZvciBnaXZlbiBwcm9ncmFtSWQKK1BBU1M6IFNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuVmVydGV4
LlZhbGlkCitQQVNTOiBTb3VyY2Ugc2hvdWxkIGhhdmUgY2hhbmdlZC4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLlZlcnRleC5JbnZhbGlkCitQQVNT
OiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBz
aGFkZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCitQQVNTOiBTb3Vy
Y2Ugc2hvdWxkIGhhdmUgY2hhbmdlZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51
cGRhdGVTaGFkZXIuV2ViR1BVLkZyYWdtZW50LlZhbGlkCitQQVNTOiBTb3VyY2Ugc2hvdWxkIGhh
dmUgY2hhbmdlZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIu
V2ViR1BVLkZyYWdtZW50LkludmFsaWQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlv
bi4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZv
ciBnaXZlbiBwcm9ncmFtSWQKK1BBU1M6IFNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJn
cHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdw
dS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUzOWQ0OTk3YzA5MTA4YTM4NGQzMjk5OTgxNjc4ODBiNDQ3ODBj
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci13ZWJncHUuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUFzeW5jU3VpdGUoIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVIik7CisKKyAgICBmdW5jdGlv
biB0ZXN0KHtuYW1lLCBwcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSwgc291cmNlLCBlbnRyeVBvaW50
LCBzaG91bGRUaHJvd30pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAg
ICAgbmFtZSwKKyAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgbGV0
IHNoYWRlclByb2dyYW0gPSBJbnNwZWN0b3JUZXN0LlNoYWRlclByb2dyYW0ucHJvZ3JhbUZvclR5
cGUocHJvZ3JhbVR5cGUpOworICAgICAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkKKyAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iOworCisgICAg
ICAgICAgICAgICAgbGV0IG9yaWdpbmFsU291cmNlID0gYXdhaXQgQ2FudmFzQWdlbnQucmVxdWVz
dFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUpOworCisg
ICAgICAgICAgICAgICAgaWYgKHNob3VsZFRocm93KSB7CisgICAgICAgICAgICAgICAgICAgIGF3
YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGF3YWl0IENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9n
cmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgZW50cnlQb2ludCk7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
ICAgICBhd2FpdCBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlm
aWVyLCBzaGFkZXJUeXBlLCBzb3VyY2UsIGVudHJ5UG9pbnQpOworCisgICAgICAgICAgICAgICAg
bGV0IG5ld1NvdXJjZSA9IGF3YWl0IENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hh
ZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFkZXJUeXBlKTsKKworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG9yaWdpbmFsU291cmNlLCBuZXdTb3Vy
Y2UsICJTb3VyY2Ugc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgdGVzdCh7CisgICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRl
U2hhZGVyLldlYkdQVS5Db21wdXRlLlZhbGlkIiwKKyAgICAgICAgcHJvZ3JhbVR5cGU6IFdJLlNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZSwKKyAgICAgICAgc2hhZGVyVHlwZTogV0ku
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUsCisgICAgICAgIHNvdXJjZTogYAorW251
bXRocmVhZHMoMiwgMSwgMSldCitjb21wdXRlIHZvaWQgbmV3Q29tcHV0ZVNoYWRlcihkZXZpY2Ug
ZmxvYXRbXSBidWZmZXIgOiByZWdpc3Rlcih1MCksIGZsb2F0MyB0aHJlYWRJRCA6IFNWX0Rpc3Bh
dGNoVGhyZWFkSUQpIHsKKyAgICBidWZmZXJbdWludCh0aHJlYWRJRC54KV0gPSBidWZmZXJbdWlu
dCh0aHJlYWRJRC54KV0gKiAyLjA7Cit9CitgLAorICAgICAgICBlbnRyeVBvaW50OiAibmV3Q29t
cHV0ZVNoYWRlciIsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZh
cy51cGRhdGVTaGFkZXIuV2ViR1BVLkNvbXB1dGUuSW52YWxpZCIsCisgICAgICAgIHByb2dyYW1U
eXBlOiBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGUsCisgICAgICAgIHNoYWRl
clR5cGU6IFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5Db21wdXRlLAorICAgICAgICBzb3Vy
Y2U6ICJJTlZBTElEIiwKKyAgICAgICAgZW50cnlQb2ludDogIklOVkFMSUQiLAorICAgICAgICBz
aG91bGRUaHJvdzogdHJ1ZSwKKyAgICB9KTsKKworICAgIHRlc3QoeworICAgICAgICBuYW1lOiAi
Q2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuVmVydGV4LlZhbGlkIiwKKyAgICAgICAgcHJvZ3Jh
bVR5cGU6IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyLAorICAgICAgICBzaGFk
ZXJUeXBlOiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4LAorICAgICAgICBzb3Vy
Y2U6IGAKK3ZlcnRleCBmbG9hdDQgbmV3VmVydGV4U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IGF0
dHJpYnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkgOiBTVl9Qb3NpdGlvbiB7CisgICAg
cmV0dXJuIHBvc2l0aW9uOworfQorYCwKKyAgICAgICAgZW50cnlQb2ludDogIm5ld1ZlcnRleFNo
YWRlciIsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRh
dGVTaGFkZXIuV2ViR1BVLlZlcnRleC5JbnZhbGlkIiwKKyAgICAgICAgcHJvZ3JhbVR5cGU6IFdJ
LlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyLAorICAgICAgICBzaGFkZXJUeXBlOiBX
SS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4LAorICAgICAgICBzb3VyY2U6ICJJTlZB
TElEIiwKKyAgICAgICAgZW50cnlQb2ludDogIklOVkFMSUQiLAorICAgICAgICBzaG91bGRUaHJv
dzogdHJ1ZSwKKyAgICB9KTsKKworICAgIHRlc3QoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVw
ZGF0ZVNoYWRlci5XZWJHUFUuRnJhZ21lbnQuVmFsaWQiLAorICAgICAgICBwcm9ncmFtVHlwZTog
V0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIsCisgICAgICAgIHNoYWRlclR5cGU6
IFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCwKKyAgICAgICAgc291cmNlOiBg
CitmcmFnbWVudCBmbG9hdDQgbmV3RnJhZ21lbnRTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1Zf
UG9zaXRpb24pIDogU1ZfVGFyZ2V0IDAgeworICAgIHJldHVybiBwb3NpdGlvbjsKK30KK2AsCisg
ICAgICAgIGVudHJ5UG9pbnQ6ICJuZXdGcmFnbWVudFNoYWRlciIsCisgICAgfSk7CisKKyAgICB0
ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLkZyYWdtZW50
LkludmFsaWQiLAorICAgICAgICBwcm9ncmFtVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFt
VHlwZS5SZW5kZXIsCisgICAgICAgIHNoYWRlclR5cGU6IFdJLlNoYWRlclByb2dyYW0uU2hhZGVy
VHlwZS5GcmFnbWVudCwKKyAgICAgICAgc291cmNlOiAiSU5WQUxJRCIsCisgICAgICAgIGVudHJ5
UG9pbnQ6ICJJTlZBTElEIiwKKyAgICAgICAgc2hvdWxkVGhyb3c6IHRydWUsCisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorPHA+V2ViR1BVIHRlc3RzIGZvciBDYW52YXMudXBk
YXRlU2hhZGVyIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLmh0bWwKaW5kZXggZTQ5YWQyYjMxM2M3Nzc2
ZTEwOThkMDg1ZTU3NDZkZjY2YWJmMGEzYS4uN2IwYTRjZmY5MGQzMzkyYzkzZjg0N2I2NzBmYWU5
MDQ3NmMwMGNmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRh
dGVTaGFkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci5odG1sCkBAIC0yLDc0ICsyLDEyIEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVy
L3gtdmVydGV4Ij4KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9
IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKLSAgICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9
ImZyYWdtZW50LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci0gICAgcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9G
cmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAsIDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+CiA8
c2NyaXB0PgotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIpOwot
ICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0ZXgtc2hhZGVyIiwgImZyYWdtZW50LXNoYWRlciIpOwotCi0g
ICAgcnVuVGVzdCgpOwotfQotCiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGxldCBzdWl0ZSA9IElu
c3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFzLnVwZGF0ZVNoYWRlciIpOwogCi0g
ICAgZnVuY3Rpb24gdmFsaWRTb3VyY2VUZXN0KHtuYW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7
Ci0gICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWUsCi0gICAgICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQ
cm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCJN
aXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGxldCBwcm9ncmFtSWQgPSBzaGFkZXJQ
cm9ncmFtLmlkZW50aWZpZXI7Ci0KLSAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVT
aGFkZXIocHJvZ3JhbUlkLCBzaGFkZXJUeXBlLCBzb3VyY2UpCi0gICAgICAgICAgICAgICAgLnRo
ZW4oKCkgPT4gQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShwcm9ncmFtSWQsIHNoYWRl
clR5cGUpKQotICAgICAgICAgICAgICAgIC50aGVuKCh7Y29udGVudH0pID0+IEluc3BlY3RvclRl
c3QubG9nKGNvbnRlbnQpKQotICAgICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIHZhbGlkU291cmNlVGVz
dCh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLnZlcnRleFNoYWRlclZhbGlk
IiwKLSAgICAgICAgc2hhZGVyVHlwZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgsCi0g
ICAgICAgIHNvdXJjZTogYAotICAgIHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0
aW9uID0gdmVjNCgxLCAyLCAzLCA0KTsKLSAgICB9Ci1gLAotICAgIH0pOwotCi0gICAgdmFsaWRT
b3VyY2VUZXN0KHsKLSAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuZnJhZ21lbnRT
aGFkZXJWYWxpZCIsCi0gICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUu
RnJhZ21lbnQsCi0gICAgICAgIHNvdXJjZTogYAotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OwotCi0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgw
LjEsIDAuMiwgMC4zLCAwLjQpOwotICAgIH0KLWAsCi0gICAgfSk7Ci0KICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRQcm9n
cmFtSWQiLAorICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5Qcm9ncmFtSWQuSW52
YWxpZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBwcm9ncmFtIGlkZW50aWZpZXJz
IHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewogICAgICAgICAgICAgY29uc3QgcHJvZ3JhbUlkID0gIklOVkFMSURfUFJPR1JBTV9JRCI7CkBA
IC04Myw2MiArMjEsMTEgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgfQogICAgIH0pOwog
Ci0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNo
YWRlci5pbnZhbGlkU2hhZGVyVHlwZSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBz
aGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCi0gICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01h
bmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0p
IHsKLSAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29uc3Qg
c2hhZGVyVHlwZSA9ICJJTlZBTElEX1NIQURFUl9UWVBFIjsKLSAgICAgICAgICAgIGNvbnN0IHNv
dXJjZSA9ICJJTlZBTElEX1NPVVJDRSI7Ci0gICAgICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVT
aGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3VyY2UsIChlcnJv
cikgPT4gewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwg
IlNob3VsZCBwcm9kdWNlIGFuIGVycm9yLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgZnVuY3Rpb24gaW52YWxp
ZFNvdXJjZVRlc3Qoe25hbWUsIHNoYWRlclR5cGUsIHNvdXJjZX0pIHsKLSAgICAgICAgc3VpdGUu
YWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZSwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52
YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwotICAgICAgICAgICAgICAgIGlmICghc2hhZGVy
UHJvZ3JhbSkgewotICAgICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHBy
b2dyYW0iKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0u
aWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHByb2R1Y2Ug
ZXJyb3IuIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjog
IiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpbnZhbGlk
U291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRW
ZXJ0ZXhTaGFkZXJTb3VyY2UiLAotICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLlZlcnRleCwKLSAgICAgICAgc291cmNlOiAiSU5WQUxJRCIsCi0gICAgfSk7Ci0KLSAg
ICBpbnZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVy
LmludmFsaWRGcmFnbWVudFNoYWRlclNvdXJjZSIsCi0gICAgICAgIHNoYWRlclR5cGU6IENhbnZh
c0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsCi0gICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAot
ICAgIH0pOwotCiAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3Njcmlw
dD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLSAgICA8cD5UZXN0IGNvbXBpbGF0
aW9uIG9mIHNoYWRlcnMgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQgdG8gYSBwcm9ncmFtLCB3aXRoIGFu
ZCB3aXRob3V0IHN5bnRheCBlcnJvcnMuPC9wPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+Q29tbW9uIHRlc3RzIGZvciBDYW52YXMudXBkYXRlU2hhZGVyIGNvbW1hbmQuPC9wPgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBlYTc4Njg0NWJiMzU5YTljZGNjNmZhMmQ0OTExMTcyMDY0NmQxMTRlLi5hYzM5MjRmNTBl
ZjgxYWQyOWU3ZWRlNDU3NmZhOWM2MDFjNDk4ZTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjAwMCwxMiArMjAwMCwxMyBAQCBpbnNwZWN0b3IvY2Fu
dmFzL3JlY29yZGluZy13ZWJnbDItbWVtb3J5TGltaXQuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9y
L2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLXNuYXBzaG90cy5odG1sIFsgU2tpcCBdCiBpbnNwZWN0
b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9j
YW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwgWyBTa2lwIF0KLWluc3BlY3Rvci9jYW52
YXMvcmVxdWVzdFNoYWRlclNvdXJjZS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jlc29s
dmVDb250ZXh0LXdlYmdsMi5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclBy
b2dyYW0tYWRkLXJlbW92ZS13ZWJnbC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3No
YWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbDIuaHRtbCBbIFNraXAgXQotaW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXIuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy91cGRhdGVT
aGFkZXItd2ViZ2wuaHRtbCBbIFNraXAgXQorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMj
IyMjIyMjIyMjIyMjIyMgICAgICAgICAgRW5kIFdlYkdMIElzc3VlcyAgICAgICAgICAgICAgIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378927</attachid>
            <date>2019-09-16 19:11:39 -0700</date>
            <delta_ts>2019-09-23 13:23:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201675-20190917111137.patch</filename>
            <type>text/plain</type>
            <size>212344</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDYwNGRiZDRhZTE4OWYwNjIwZDY3YjdjOWRmYzJl
ODg0NzlkYTFlNDQuLjgxZmZhMDliNTAwNzk2MzY5NjZlYjVhMTZkOTQ0ZDI1NGI4YTJmYWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA5LTE2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHNob3cgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NQorCisgICAgICAgIFJldmlld2VkIGJ5
IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9DYW52YXMu
anNvbjoKKyAgICAgICAgQWRkIGEgYFByb2dyYW1UeXBlYCBlbnVtIHRoYXQgY29udmV5cyB0aGUg
dHlwZSBvZiBzaGFkZXIgcHJvZ3JhbS9waXBlbGluZSB3aGVuIG5vdGlmeWluZyB0aGUKKyAgICAg
ICAgZnJvbnRlbmQgb2YgYSBuZXcgcHJvZ3JhbQorCiAyMDE5LTA5LTE1ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTGVhayBvZiBOU01hcFRhYmxlIGluIC1b
SlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjpdCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNmFlMjQxMWI0YjM1Zjg3OTdlZDViZjA4MzcxMzY4N2Q4ODI4YmZkNS4uYTJkZjg2MjRj
YWIxYTVlZDE0M2RlNzk0OGQ3NGRhNTAzNzc0YjFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
NiBAQAorMjAxOS0wOS0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogQ2FudmFzOiBzaG93IFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE2NzUK
KworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgVGVzdHM6
IGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbAorICAgICAg
ICAgICAgICAgaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1
Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdw
dS5odG1sCisKKyAgICAgICAgQ3JlYXRlIGNvbW1vbiBiYXNlIGNsYXNzZXMgZm9yIGBXZWJHUFVQ
aXBlbGluZWAgYW5kIGBHUFVQaXBlbGluZWAgc28gdGhhdCBXZWIgSW5zcGVjdG9yIGNhbgorICAg
ICAgICBpbnN0cnVtZW50IGJvdGggcmVuZGVyIGFuZCBjb21wdXRlIHNoYWRlciBwaXBlbGluZXMu
CisKKyAgICAgICAgUmVmYWN0b3IgYEluc3BlY3RvclNoYWRlclByb2dyYW1gIHRvIHN1cHBvcnQg
Ym90aCBgV2ViR0xQcm9ncmFtYCBhbmQgYFdlYkdQVVBpcGVsaW5lYCBzbworICAgICAgICB0aGF0
IHRoZSBzYW1lIG9iamVjdCBjYW4gYmUgdXNlZCBmb3IgYWxsIHR5cGVzIG9mIHNoYWRlciAicHJv
Z3JhbSJzLgorCisgICAgICAgIEtlZXAgYSBjb3B5IG9mIGVhY2ggc2hhZGVyIG1vZHVsZSdzIHNv
dXJjZSwgYW5kIGFsbG93IHRoZSBzaGFkZXIgbW9kdWxlIHRvIGJlIHVwZGF0ZWQuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpj
cmVhdGVTaGFkZXJNb2R1bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNl
OjpjcmVhdGVSZW5kZXJQaXBlbGluZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
RGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUgY29uc3Qp
OiBEZWxldGVkLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZTo6aXNSZW5kZXJQaXBlbGlu
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZTo6aXNDb21wdXRlUGlw
ZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmU6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBp
cGVsaW5lLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZTo6aW5z
dGFuY2VzTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmU6OldlYkdQVVBp
cGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5lOjp+V2ViR1BVUGlwZWxp
bmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lOjppc1JlbmRlclBpcGVsaW5lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVBpcGVsaW5lOjppc0NvbXB1dGVQaXBlbGluZSBjb25z
dCk6CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjb21wdXRlUGlwZWxpbmUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBl
bGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1
dGVQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OnJl
Y29tcGlsZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21w
dXRlUGlwZWxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZTo6aXND
b21wdXRlUGlwZWxpbmUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVD
b21wdXRlUGlwZWxpbmU6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRl
UGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21w
dXRlUGlwZWxpbmU6OnJlY29tcGlsZSk6IEFkZGVkLgorCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBpcGVsaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJQaXBl
bGluZTo6cmVuZGVyUGlwZWxpbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VVJlbmRlclBpcGVsaW5lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUmVuZGVy
UGlwZWxpbmU6OldlYkdQVVJlbmRlclBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VVJlbmRlclBpcGVsaW5lOjpyZWNvbXBpbGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJl
bmRlclBpcGVsaW5lOjppc1JlbmRlclBpcGVsaW5lKTogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW06CisgICAgICAg
IChXZWJDb3JlOjp0cnlDcmVhdGVNdGxSZW5kZXJQaXBlbGluZVN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lOjp0cnlDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVUmVuZGVyUGlwZWxpbmU6OkdQVVJlbmRlclBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVVJlbmRlclBpcGVsaW5lOjpyZWNvbXBpbGUpOiBBZGRlZC4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
U2hhZGVyTW9kdWxlOjpzb3VyY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVU2hh
ZGVyTW9kdWxlOjp1cGRhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3I6OkdQVVByb2dyYW1tYWJsZVN0YWdl
RGVzY3JpcHRvcik6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OnByb2dyYW0gY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OnBp
cGVsaW5lIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpzaGFkZXJGb3JUeXBlKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpyZXF1ZXN0
U2hhZGVyU291cmNlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtOjp1cGRhdGVTaGFkZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clNoYWRlclByb2dyYW06OmNvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6c2hhZGVyRm9yVHlwZSk6IERlbGV0ZWQuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVjdG9yQ2FudmFzQWdlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2NhcmRBZ2VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNhbnZhc0FnZW50OjpyZXF1ZXN0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojp1cGRhdGVTaGFkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnNldFNoYWRlclByb2dyYW1EaXNhYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6c2V0U2hhZGVyUHJvZ3JhbUhp
Z2hsaWdodGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpmcmFt
ZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlk
Q3JlYXRlV2ViR0xQcm9ncmFtKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
YW52YXNBZ2VudDo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0pOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojppc1dlYkdMUHJvZ3JhbURpc2FibGVkKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNXZWJHTFByb2dy
YW1IaWdobGlnaHRlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnByb2dyYW1EZXN0cm95
ZWRUaW1lckZpcmVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNB
Z2VudDo6cmVzZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50Ojp1bmJpbmRQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpmaW5kSW5zcGVjdG9yUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
YW52YXNBZ2VudDo6ZGlkQ3JlYXRlUHJvZ3JhbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlbGV0ZVByb2dyYW0pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzU2hhZGVyUHJvZ3JhbURpc2Fi
bGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojpp
c1NoYWRlclByb2dyYW1IaWdobGlnaHRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6Y2xlYXJDYW52YXNEYXRhKTogRGVsZXRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJv
eVdlYkdMUHJvZ3JhbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlV2ViR1BVUGlwZWxpbmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZSk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFt
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbERlbGV0ZVByb2dyYW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbUhp
Z2hsaWdodGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbUltcGwpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJH
TFByb2dyYW1EaXNhYmxlZEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZEltcGwpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
R1BVUGlwZWxpbmVJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBsKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW1J
bXBsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbERlbGV0ZVByb2dyYW1JbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWRJbXBsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFk
ZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKTogRGVsZXRlZC4KKworICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUHJvZ3JhbS5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OldlYkdMUHJvZ3JhbSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06On5XZWJHTFByb2dyYW0pOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodDo6c2hvd0hpZ2h0bGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlUHJv
Z3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxl
dGVQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRyYXdBcnJheXMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZHJhd0VsZW1lbnRzKToKKyAgICAgICAgUmVuYW1lIFdlYkdMIHByb2dyYW0gaW5zdHJ1bWVu
dGF0aW9uIHBvaW50cyB0byBiZSBsZXNzIGFtYmlndW91cy4KKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAx
OS0wOS0xNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRWxp
bWluYXRlIHNlcGFyYXRlIHNpbXBsZSBsaW5lIGxheW91dCBwYXRoIGZyb20gVGV4dEl0ZXJhdG9y
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAwZGE2OTMxZDE5NjZhNTk0NmJhM2MyNThhNDMx
YTQ0NjVhYjhkMDViLi40N2U0NjkyZTU2NjNmNWIyMzIzNWU1YzMyMTczMjVlOTZiMjdkMjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxOS0wOS0xNiAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Q2FudmFzOiBzaG93IFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE2NzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgU2hvdyBXZWJHUFUgc2hhZGVyIHBpcGVsaW5l
cyAoInByb2dyYW1zIikgdW5kZXJuZWF0aCBlYWNoIGNvcnJlc3BvbmRpbmcgV2ViR1BVIGRldmlj
ZS4KKworICAgICAgICBBbGxvdyBlZGl0aW5nIG9mIGF0dGFjaGVkIHNoYWRlciBtb2R1bGVzIGZv
ciBlYWNoIFdlYkdQVSBzaGFkZXIgcGlwZWxpbmUsIGJ1dCBkb24ndCBhbGxvdworICAgICAgICBo
aWdobGlnaHRpbmcvZGlzYWJsaW5nLCBhcyBXZWJHUFUgcGlwZWxpbmVzIGRvbid0IGhhdmUgdGhv
c2UgY2FwYWJpbGl0aWVzL2NvbmNlcHRzIHlldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5DYW52YXNPYnNlcnZlci5w
cm90b3R5cGUucHJvZ3JhbUNyZWF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvQ2FudmFzTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90
eXBlLnByb2dyYW1DcmVhdGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0Nh
bnZhcy5qczoKKyAgICAgICAgKFdJLkNhbnZhcy5wcm90b3R5cGUubmV4dFNoYWRlclByb2dyYW1E
aXNwbGF5TnVtYmVyRm9yUHJvZ3JhbVR5cGUpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhcy5w
cm90b3R5cGUubmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyKTogRGVsZXRlZC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dyYW0uanM6CisgICAgICAgIChX
SS5TaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0uY29udGV4dFR5cGVT
dXBwb3J0c1Byb2dyYW1UeXBlKTogQWRkZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnBy
b2dyYW1UeXBlU3VwcG9ydHNTaGFkZXJUeXBlKTogQWRkZWQuCisgICAgICAgIChXSS5TaGFkZXJQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvZ3JhbVR5cGUpOiBBZGRlZC4KKyAgICAgICAgKFdJLlNo
YWRlclByb2dyYW0ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5TaGFk
ZXJQcm9ncmFtLnByb3RvdHlwZS5zZXQgZGlzYWJsZWQpOgorICAgICAgICAoV0kuU2hhZGVyUHJv
Z3JhbS5wcm90b3R5cGUucmVxdWVzdFNoYWRlclNvdXJjZSk6CisgICAgICAgIChXSS5TaGFkZXJQ
cm9ncmFtLnByb3RvdHlwZS51cGRhdGVTaGFkZXIpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3Jh
bS5wcm90b3R5cGUuc2hvd0hpZ2hsaWdodCk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnBy
b3RvdHlwZS5oaWRlSGlnaGxpZ2h0KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90
eXBlLnJlcXVlc3RWZXJ0ZXhTaGFkZXJTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoV0kuU2hh
ZGVyUHJvZ3JhbS5wcm90b3R5cGUucmVxdWVzdEZyYWdtZW50U2hhZGVyU291cmNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90eXBlLnVwZGF0ZVZlcnRleFNoYWRl
cik6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS51cGRhdGVG
cmFnbWVudFNoYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3Rv
dHlwZS5fcmVxdWVzdFNoYWRlclNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQ
cm9ncmFtLnByb3RvdHlwZS5fdXBkYXRlU2hhZGVyKTogRGVsZXRlZC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1D
b250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6IEFkZGVkLgorICAgICAg
ICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6CisgICAgICAg
IChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLmhpZGRlbik6CisgICAgICAg
IChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzYXZlRGF0YSk6Cisg
ICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoQ29u
dGVudCk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLl91
cGRhdGVTaGFkZXIpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fY29udGVudERpZENoYW5nZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9T
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFk
ZXItcHJvZ3JhbSA+IC5zaGFkZXIpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyLmNvbXB1dGUpOiBBZGRlZC4KKyAgICAgICAgKGJvZHlbZGly
PWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4LCk6IEFk
ZGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFt
ID4gLnNoYWRlci5mcmFnbWVudCwpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hh
ZGVyLXByb2dyYW0gPiAuc2hhZGVyICsgLnNoYWRlcik6IEFkZGVkLgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAqKTogQWRkZWQuCisg
ICAgICAgICguY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciA+IGhlYWRlciA+
IC5zaGFkZXItdHlwZSk6IEFkZGVkLgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNj
aGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFk
ZXIpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4
dC1lZGl0b3Iuc2hhZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRl
bnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIudmVydGV4LCk6IERl
bGV0ZWQuCisgICAgICAgIChib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLmZyYWdtZW50LCk6IERlbGV0ZWQuCisgICAgICAgIChi
b2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iu
c2hhZGVyICsgLnRleHQtZWRpdG9yLnNoYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChib2R5W2Rp
cj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVy
ICsgLnRleHQtZWRpdG9yLnNoYWRlcik6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciA+IC50eXBlLXRpdGxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0
b3Iuc2hhZGVyID4gLkNvZGVNaXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuU2hhZGVy
UHJvZ3JhbVRyZWVFbGVtZW50KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVu
dC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVt
ZW50LnByb3RvdHlwZS5vbmRldGFjaCk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtVHJlZUVs
ZW1lbnQucHJvdG90eXBlLmNhblNlbGVjdE9uTW91c2VEb3duKToKKyAgICAgICAgKFdJLlNoYWRl
clByb2dyYW1UcmVlRWxlbWVudC5wcm90b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisKKyAg
ICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKIDIw
MTktMDktMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBIVE1MIEZvcm1hdHRlciAtIFhNTCBtb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbgppbmRleCA3
OThiOTkxY2QyYjBlYzYyYWQyYzExMzQ3ODlmYjM3ZWI0YjQ2MDRkLi44YWVlNTVlMTg0ODE1NjFj
MjFiYjQ0ODE4NjA3MDBkMmQ5NTc3ZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24KQEAgLTE5LDExICsxOSwxNSBAQAog
ICAgICAgICAgICAgImVudW0iOiBbImNhbnZhcy0yZCIsICJiaXRtYXByZW5kZXJlciIsICJ3ZWJn
bCIsICJ3ZWJnbDIiLCAid2ViZ3B1Il0sCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhl
IHR5cGUgb2YgcmVuZGVyaW5nIGNvbnRleHQgYmFja2luZyB0aGUgY2FudmFzIGVsZW1lbnQuIgog
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiUHJvZ3JhbVR5cGUiLAor
ICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJjb21w
dXRlIiwgInJlbmRlciJdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJpZCI6
ICJTaGFkZXJUeXBlIiwKICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAg
ICAiZW51bSI6IFsiZnJhZ21lbnQiLCAidmVydGV4Il0sCi0gICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiU2hhZGVyIHR5cGUuIFdlYkdMIHN1cHBvcnRzIHZlcnRleCBhbmQgZnJhZ21lbnQgc2hh
ZGVycy4iCisgICAgICAgICAgICAiZW51bSI6IFsiY29tcHV0ZSIsICJmcmFnbWVudCIsICJ2ZXJ0
ZXgiXQogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiQ29udGV4dEF0
dHJpYnV0ZXMiLApAQCAtMTM2LDcgKzE0MCw3IEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzaGFkZXJUeXBlIiwgIiRyZWYiOiAiU2hhZGVyVHlwZSIgfQogICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVu
dCIsICJ0eXBlIjogInN0cmluZyIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNl
IiwgInR5cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAg
IHsKQEAgLTIyMywxNCArMjI3LDE1IEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjog
InByb2dyYW1DcmVhdGVkIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCIsICJkZXNjcmlw
dGlvbiI6ICJDYW52YXMgaWRlbnRpZmllci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3Jh
bSBpZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAi
JHJlZiI6ICJDYW52YXNJZCJ9ICwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1J
ZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBy
b2dyYW1UeXBlIiwgIiRyZWYiOiAiUHJvZ3JhbVR5cGUiIH0KICAgICAgICAgICAgIF0KICAgICAg
ICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAicHJvZ3JhbURlbGV0ZWQiLAog
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJw
cm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiUHJvZ3JhbSBp
ZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkIiwgIiRy
ZWYiOiAiUHJvZ3JhbUlkIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lLmNwcAppbmRleCBjZDExZWNiYjNlYzZlZDVjMTliOTZkMjNmMzZiODdlMTNmNDk3MzVhLi4z
NTM1MzkyMzM1ZjRlZjhjNTQ2NzgwYjczZGIwOWFhMzAyYWI2OGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAK
QEAgLTI4LDE5ICsyOCw0MyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQ
VUNvbXB1dGVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVzLmgiCisjaW5jbHVk
ZSAiR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0
b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdl
YkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoUmVmUHRy
PEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2Nv
cGVzKQorUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpj
cmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYg
cGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgT3B0aW9uYWw8V2ViR1BVUGlw
ZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3Bl
cykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVUNvbXB1dGVQaXBlbGluZShkZXZp
Y2UsIFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3BlcywgY29tcHV0ZVNoYWRlcikpOwogfQog
Ci1XZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShSZWZQdHI8R1BV
Q29tcHV0ZVBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMp
Ci0gICAgOiBHUFVPYmplY3RCYXNlKG1ha2VSZWYoZXJyb3JTY29wZXMpKQotICAgICwgbV9jb21w
dXRlUGlwZWxpbmUgeyBXVEZNb3ZlKHBpcGVsaW5lKSB9CitXZWJHUFVDb21wdXRlUGlwZWxpbmU6
OldlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVUNv
bXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzLCBP
cHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcikKKyAgICA6
IFdlYkdQVVBpcGVsaW5lKGRldmljZSwgZXJyb3JTY29wZXMpCisgICAgLCBtX2NvbXB1dGVQaXBl
bGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKKyAgICAsIG1fY29tcHV0ZVNoYWRlcihjb21wdXRlU2hh
ZGVyKQogewogfQogCitXZWJHUFVDb21wdXRlUGlwZWxpbmU6On5XZWJHUFVDb21wdXRlUGlwZWxp
bmUoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUo
Y29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCit7CisgICAgaWYgKG1fY29tcHV0ZVBpcGVsaW5l
ICYmIG1fY29tcHV0ZVNoYWRlcikgeworICAgICAgICBpZiAoYXV0byYgd2ViR1BVQ29tcHV0ZVNo
YWRlck1vZHVsZSA9IG1fY29tcHV0ZVNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAg
ICAgaWYgKGF1dG8qIGdwdUNvbXB1dGVTaGFkZXJNb2R1bGUgPSB3ZWJHUFVDb21wdXRlU2hhZGVy
TW9kdWxlLT5tb2R1bGUoKSkgeworICAgICAgICAgICAgICAgIEdQVVByb2dyYW1tYWJsZVN0YWdl
RGVzY3JpcHRvciBjb21wdXRlU3RhZ2UobWFrZVJlZigqZ3B1Q29tcHV0ZVNoYWRlck1vZHVsZSks
IHsgbV9jb21wdXRlU2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUtPnJlY29tcGlsZShkZXZpY2UuZGV2aWNlKCksIFdU
Rk1vdmUoY29tcHV0ZVN0YWdlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaAppbmRleCAyZWQ3Yzk4MDRiYWFhYWRmNzI1MDM2MzVj
Nzk2YWQ0YjgzNTNkN2Q0Li5jMWE3MTgwODQ3OTg3NjU3NmE5OGExOTI3M2FlNjU3MGVhNWY5NTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRl
UGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21w
dXRlUGlwZWxpbmUuaApAQCAtMjcsMjQgKzI3LDQxIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQog
Ci0jaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCi0jaW5jbHVkZSAiR1BVT2JqZWN0QmFz
ZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJhc2UgewotcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGUoUmVmUHRyPEdQ
VUNvbXB1dGVQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29wZXMmKTsKK2NsYXNzIEdQVUNvbXB1dGVQ
aXBlbGluZTsKK2NsYXNzIEdQVVBpcGVsaW5lOworY2xhc3MgR1BVRXJyb3JTY29wZXM7CitjbGFz
cyBXZWJHUFVEZXZpY2U7CiAKK2NsYXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZSBmaW5hbCA6IHB1
YmxpYyBXZWJHUFVQaXBlbGluZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BVQ29tcHV0
ZVBpcGVsaW5lKCk7CisKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gY3Jl
YXRlKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQVUVycm9y
U2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFk
ZXIpOworCisgICAgYm9vbCBpc0NvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIGNvbXB1dGVQaXBlbGluZSgp
OyB9CiAgICAgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lKiBjb21wdXRlUGlwZWxpbmUoKSBjb25z
dCB7IHJldHVybiBtX2NvbXB1dGVQaXBlbGluZS5nZXQoKTsgfQorICAgIE9wdGlvbmFsPFdlYkdQ
VVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBjb21wdXRlU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9j
b21wdXRlU2hhZGVyOyB9CisKKyAgICBib29sIHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2Um
KTsKIAogcHJpdmF0ZToKLSAgICBXZWJHUFVDb21wdXRlUGlwZWxpbmUoUmVmUHRyPEdQVUNvbXB1
dGVQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29wZXMmKTsKKyAgICBXZWJHUFVDb21wdXRlUGlwZWxp
bmUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiwgR1BVRXJyb3JT
Y29wZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRl
cik7CiAKICAgICBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiBtX2NvbXB1dGVQaXBlbGluZTsK
KworICAgIC8vIFByZXNlcnZlZCBmb3IgV2ViIEluc3BlY3RvciByZWNvbXBpbGF0aW9uLgorICAg
IE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBtX2NvbXB1dGVTaGFkZXI7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0VC
R1BVUElQRUxJTkUoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lLCBpc0NvbXB1dGVQaXBl
bGluZSgpKQorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsCmluZGV4IGE1
NTJiYTkyZmQyOTcxOWJkY2ZmNTUyZDFmYTZlM2U5YzMzNzg5YWQuLjRiOGE3N2U0ODY5YTA3MzY3
OGNiMDI1NjA1NGFmNjA3Nzc0MWUzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmlkbApAQCAtMjcsNyArMjcsNiBA
QAogWwogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQ
VSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIEludGVyZmFjZU5hbWU9R1BV
Q29tcHV0ZVBpcGVsaW5lCiBdIGludGVyZmFjZSBXZWJHUFVDb21wdXRlUGlwZWxpbmUgewogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4
IDVlYmYwODM4NWE2Mzk0NzE3ZWU4MTc4MzhiMmI5ZTJmODlhZjJmNTMuLmE3YTQ5MWNhYmQ0ZTI3
YmQ0OGQzYmZlNzA2OThkMjk3M2Q2NWRiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMzksOCArMzksMTAgQEAKICNpbmNsdWRlICJH
UFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BVQnVmZmVyRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgIkdQVUNvbW1hbmRCdWZmZXIuaCIKKyNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmUu
aCIKICNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAi
R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiR1BVUmVuZGVyUGlw
ZWxpbmUuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNs
dWRlICJHUFVTYW1wbGVyLmgiCiAjaW5jbHVkZSAiR1BVU2FtcGxlckRlc2NyaXB0b3IuaCIKQEAg
LTIwNSwzMSArMjA3LDQ3IEBAIFJlZjxXZWJHUFVTaGFkZXJNb2R1bGU+IFdlYkdQVURldmljZTo6
Y3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVVNoYWRlck1vZHVsCiB7CiAgICAgLy8gRklY
TUU6IFdoYXQgY2FuIGJlIHZhbGlkYXRlZCBoZXJlPwogICAgIGF1dG8gbW9kdWxlID0gbV9kZXZp
Y2UtPnRyeUNyZWF0ZVNoYWRlck1vZHVsZShHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIHsgZGVz
Y3JpcHRvci5jb2RlIH0pOwotICAgIHJldHVybiBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShX
VEZNb3ZlKG1vZHVsZSkpOworICAgIHJldHVybiBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShX
VEZNb3ZlKG1vZHVsZSksIGRlc2NyaXB0b3IuY29kZSk7CiB9CiAKLVJlZjxXZWJHUFVSZW5kZXJQ
aXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2Vi
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIG1fZXJyb3JT
Y29wZXMtPnNldEVycm9yUHJlZml4KCJHUFVEZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUoKTog
Iik7CiAKICAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvcihtX2Vycm9yU2NvcGVzKTsKICAgICBpZiAoIWdwdURlc2Ny
aXB0b3IpCi0gICAgICAgIHJldHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKG51bGxw
dHIsIG1fZXJyb3JTY29wZXMpOworICAgICAgICByZXR1cm4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6
OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwgbV9lcnJvclNjb3BlcywgV1RGOjpudWxsb3B0LCBXVEY6
Om51bGxvcHQpOwogCi0gICAgYXV0byBwaXBlbGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVSZW5k
ZXJQaXBlbGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7Ci0gICAgcmV0dXJuIFdl
YkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV1RGTW92ZShwaXBlbGluZSksIG1fZXJyb3JTY29w
ZXMpOworICAgIGF1dG8gZ3B1UGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlUmVuZGVyUGlw
ZWxpbmUoKmdwdURlc2NyaXB0b3IsIG1fZXJyb3JTY29wZXMpOworCisgICAgV2ViR1BVUGlwZWxp
bmU6OlNoYWRlckRhdGEgdmVydGV4U2hhZGVyID0geyBkZXNjcmlwdG9yLnZlcnRleFN0YWdlLm1v
ZHVsZSwgZGVzY3JpcHRvci52ZXJ0ZXhTdGFnZS5lbnRyeVBvaW50IH07CisKKyAgICBPcHRpb25h
bDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXI7CisgICAgaWYgKGRl
c2NyaXB0b3IuZnJhZ21lbnRTdGFnZSkKKyAgICAgICAgZnJhZ21lbnRTaGFkZXIgPSB7IHsgZGVz
Y3JpcHRvci5mcmFnbWVudFN0YWdlLnZhbHVlKCkubW9kdWxlLCBkZXNjcmlwdG9yLmZyYWdtZW50
U3RhZ2UudmFsdWUoKS5lbnRyeVBvaW50IH0gfTsKKworICAgIGF1dG8gd2ViR1BVUGlwZWxpbmUg
PSBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGdwdVBpcGVsaW5l
KSwgbV9lcnJvclNjb3BlcywgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcik7CisgICAgaWYg
KHdlYkdQVVBpcGVsaW5lLT5pc1ZhbGlkKCkpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoKnRoaXMsIHdlYkdQVVBpcGVsaW5lLmdldCgp
KTsKKyAgICByZXR1cm4gd2ViR1BVUGlwZWxpbmU7CiB9CiAKLVJlZjxXZWJHUFVDb21wdXRlUGlw
ZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CitSZWY8V2ViR1BVQ29t
cHV0ZVBpcGVsaW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBX
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIG1fZXJy
b3JTY29wZXMtPnNldEVycm9yUHJlZml4KCJHUFVEZXZpY2UuY3JlYXRlQ29tcHV0ZVBpcGVsaW5l
KCk6ICIpOwogCiAgICAgYXV0byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVH
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1
RGVzY3JpcHRvcikKLSAgICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRl
KG51bGxwdHIsIG1fZXJyb3JTY29wZXMpOworICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lOjpjcmVhdGUoKnRoaXMsIG51bGxwdHIsIG1fZXJyb3JTY29wZXMsIFdURjo6bnVsbG9w
dCk7CiAKLSAgICBhdXRvIHBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUNvbXB1dGVQaXBl
bGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7Ci0gICAgcmV0dXJuIFdlYkdQVUNv
bXB1dGVQaXBlbGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVzKTsK
KyAgICBhdXRvIGdwdVBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNjb3Blcyk7CisKKyAgICBXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YSBjb21wdXRlU2hhZGVyID0geyBkZXNjcmlwdG9yLmNvbXB1dGVTdGFnZS5tb2R1
bGUsIGRlc2NyaXB0b3IuY29tcHV0ZVN0YWdlLmVudHJ5UG9pbnQgfTsKKworICAgIGF1dG8gd2Vi
R1BVUGlwZWxpbmUgPSBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92
ZShncHVQaXBlbGluZSksIG1fZXJyb3JTY29wZXMsIGNvbXB1dGVTaGFkZXIpOworICAgIGlmICh3
ZWJHUFVQaXBlbGluZS0+aXNWYWxpZCgpKQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKCp0aGlzLCB3ZWJHUFVQaXBlbGluZS5nZXQoKSk7
CisgICAgcmV0dXJuIHdlYkdQVVBpcGVsaW5lOwogfQogCiBSZWY8V2ViR1BVQ29tbWFuZEVuY29k
ZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tbWFuZEVuY29kZXIoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAppbmRleCBkOThmMjNjNjczM2M5
YTQyZTA4MjlkYmQ0MThmZTg1ZTU2ZjczM2Y4Li4yMWI1NDE3YzIxMGE3NWY4YmI5OWMyMjczMTIx
NGNiZDIwMzlkMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVE
ZXZpY2UuaApAQCAtOTksOCArOTksOCBAQCBwdWJsaWM6CiAgICAgUmVmPFdlYkdQVUJpbmRHcm91
cD4gY3JlYXRlQmluZEdyb3VwKGNvbnN0IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3ImKSBjb25z
dDsKIAogICAgIFJlZjxXZWJHUFVTaGFkZXJNb2R1bGU+IGNyZWF0ZVNoYWRlck1vZHVsZShjb25z
dCBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJikgY29uc3Q7Ci0gICAgUmVmPFdlYkdQVVJl
bmRlclBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImKSBjb25zdDsKLSAgICBSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBj
cmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ciYpIGNvbnN0OworICAgIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVyUGlw
ZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJik7CisgICAgUmVmPFdl
YkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKTsKIAogICAgIFJlZjxXZWJHUFVDb21tYW5kRW5jb2Rl
cj4gY3JlYXRlQ29tbWFuZEVuY29kZXIoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhZWU4YmQ4NDYw
ZTMyNjNlNTQ1NjI5NDMzNTliNjhlNzAzNTExYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAKQEAgLTAsMCArMSw3OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBl
bGluZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVUVycm9yU2NvcGVz
LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworSGFzaE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmljZSo+JiBXZWJHUFVQ
aXBlbGluZTo6aW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxIYXNoTWFwPFdlYkdQVVBpcGVsaW5lKiwgV2ViR1BVRGV2aWNlKj4+IGluc3Rh
bmNlczsKKyAgICByZXR1cm4gaW5zdGFuY2VzOworfQorCitMb2NrJiBXZWJHUFVQaXBlbGluZTo6
aW5zdGFuY2VzTXV0ZXgoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8TG9jaz4g
bXV0ZXg7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVNdXRleDsKKyAgICBz
dGQ6OmNhbGxfb25jZShpbml0aWFsaXplTXV0ZXgsIFtdIHsKKyAgICAgICAgbXV0ZXguY29uc3Ry
dWN0KCk7CisgICAgfSk7CisgICAgcmV0dXJuIG11dGV4LmdldCgpOworfQorCitXZWJHUFVQaXBl
bGluZTo6V2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIEdQVUVycm9yU2NvcGVz
JiBlcnJvclNjb3BlcykKKyAgICA6IEdQVU9iamVjdEJhc2UobWFrZVJlZihlcnJvclNjb3Blcykp
CisgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoZGV2aWNlLnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAg
aW5zdGFuY2VzKGxvY2spLmFkZCh0aGlzLCAmZGV2aWNlKTsKK30KKworV2ViR1BVUGlwZWxpbmU6
On5XZWJHUFVQaXBlbGluZSgpCit7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
RGVzdHJveVdlYkdQVVBpcGVsaW5lKCp0aGlzKTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgICAgICBBU1NFUlQoaW5zdGFuY2VzKGxvY2sp
LmNvbnRhaW5zKHRoaXMpKTsKKyAgICAgICAgaW5zdGFuY2VzKGxvY2spLnJlbW92ZSh0aGlzKTsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZTMyM2M3OWJmMTk4MjU4MjM2MmE3M2Y4YTY3NWYxMjhiNGE2ZjcxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlw
ZWxpbmUuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVT2JqZWN0QmFzZS5oIgorI2luY2x1ZGUg
IldlYkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIEdQ
VUVycm9yU2NvcGVzOworY2xhc3MgV2ViR1BVRGV2aWNlOworCitjbGFzcyBXZWJHUFVQaXBlbGlu
ZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJHUFVQ
aXBlbGluZSgpOworCisgICAgc3RhdGljIEhhc2hNYXA8V2ViR1BVUGlwZWxpbmUqLCBXZWJHUFVE
ZXZpY2UqPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBzdGF0aWMgTG9jayYg
aW5zdGFuY2VzTXV0ZXgoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb21wdXRlUGlwZWxp
bmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgPSAwOworCisg
ICAgc3RydWN0IFNoYWRlckRhdGEgeworICAgICAgICBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxl
PiBtb2R1bGU7CisgICAgICAgIFN0cmluZyBlbnRyeVBvaW50OworICAgIH07CisKKyAgICB2aXJ0
dWFsIGJvb2wgcmVjb21waWxlKGNvbnN0IFdlYkdQVURldmljZSYpID0gMDsKKworcHJvdGVjdGVk
OgorICAgIFdlYkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYsIEdQVUVycm9yU2NvcGVzJik7CisK
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19XRUJHUFVQSVBFTElORShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihUb1ZhbHVlVHlwZU5hbWUpIFwKKyAgICBzdGF0aWMgYm9v
bCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKSB7IHJldHVy
biBwaXBlbGluZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
LmgKaW5kZXggZmZiYzViODExZDNjMDBjMWZmYTk2ODdjZjYwYTZjOTc1ZGJjNTM3ZC4uMWE0NDE0
YWFjMTA3MzY3OTEwZTFiMzU4NGQyMjhkMzVlYmI1OGRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3Ry
dWN0IFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciA6IEdQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvckJhc2UgewogICAgIE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvcj4gdHJ5Q3JlYXRlR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yKCkgY29uc3Q7
CiAKLSAgICBSZWZQdHI8Y29uc3QgV2ViR1BVU2hhZGVyTW9kdWxlPiBtb2R1bGU7CisgICAgUmVm
UHRyPFdlYkdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuY3BwCmluZGV4IDE3YWVkYzZkNWI2MTdlODkxZjIxNjJjZGFiNmJjNDgzYjVi
OTA0YTQuLmZlOTU3ZjU3MGEyZjE2YzczZGY5MjI5MTQzN2ViZmFiZTNiN2ZjMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGlu
ZS5jcHAKQEAgLTI4LDE5ICsyOCw1MSBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1
ZGUgIkdQVUVycm9yU2NvcGVzLmgiCisjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRl
ICJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJHUFVSZW5kZXJQ
aXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoUmVm
UHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JT
Y29wZXMpCitSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpj
cmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBw
aXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzLCBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViR1BVUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSksIGVycm9yU2NvcGVzKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVUmVuZGVyUGlwZWxpbmUoZGV2aWNlLCBXVEZN
b3ZlKHBpcGVsaW5lKSwgZXJyb3JTY29wZXMsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIp
KTsKIH0KIAotV2ViR1BVUmVuZGVyUGlwZWxpbmU6OldlYkdQVVJlbmRlclBpcGVsaW5lKFJlZlB0
cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2Nv
cGVzKQotICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVmKGVycm9yU2NvcGVzKSkKK1dlYkdQVVJl
bmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwg
UmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJy
b3JTY29wZXMsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFk
ZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcikK
KyAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmljZSwgZXJyb3JTY29wZXMpCiAgICAgLCBtX3JlbmRl
clBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQorICAgICwgbV92ZXJ0ZXhTaGFkZXIodmVydGV4
U2hhZGVyKQorICAgICwgbV9mcmFnbWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikKIHsKIH0KIAor
V2ViR1BVUmVuZGVyUGlwZWxpbmU6On5XZWJHUFVSZW5kZXJQaXBlbGluZSgpID0gZGVmYXVsdDsK
KworYm9vbCBXZWJHUFVSZW5kZXJQaXBlbGluZTo6cmVjb21waWxlKGNvbnN0IFdlYkdQVURldmlj
ZSYgZGV2aWNlKQoreworICAgIGlmIChtX3JlbmRlclBpcGVsaW5lICYmIG1fdmVydGV4U2hhZGVy
KSB7CisgICAgICAgIGlmIChhdXRvJiB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1bGUgPSBtX3ZlcnRl
eFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGdwdVZlcnRl
eFNoYWRlck1vZHVsZSA9IHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZS0+bW9kdWxlKCkpIHsKKyAg
ICAgICAgICAgICAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IgdmVydGV4U3RhZ2Uo
bWFrZVJlZigqZ3B1VmVydGV4U2hhZGVyTW9kdWxlKSwgeyBtX3ZlcnRleFNoYWRlci52YWx1ZSgp
LmVudHJ5UG9pbnQgfSk7CisgICAgICAgICAgICAgICAgT3B0aW9uYWw8R1BVUHJvZ3JhbW1hYmxl
U3RhZ2VEZXNjcmlwdG9yPiBmcmFnbWVudFN0YWdlOworICAgICAgICAgICAgICAgIGlmIChtX2Zy
YWdtZW50U2hhZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvJiB3ZWJHUFVGcmFn
bWVudFNoYWRlck1vZHVsZSA9IG1fZnJhZ21lbnRTaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBncHVGcmFnbWVudFNoYWRlck1vZHVsZSA9
IHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmcmFnbWVudFN0YWdlID0gR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
KG1ha2VSZWYoKmdwdUZyYWdtZW50U2hhZGVyTW9kdWxlKSwgeyBtX2ZyYWdtZW50U2hhZGVyLnZh
bHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbV9yZW5kZXJQaXBlbGluZS0+cmVjb21waWxl
KGRldmljZS5kZXZpY2UoKSwgV1RGTW92ZSh2ZXJ0ZXhTdGFnZSksIFdURk1vdmUoZnJhZ21lbnRT
dGFnZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxz
ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRl
clBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
aXBlbGluZS5oCmluZGV4IDhmMDBjYTY2NTBjYmU3YzBiYjM5ODhmZmM2NTk0ZmFlYTkzYzk2MjYu
LmIyYjgwOTQwZTVmYzJhZTBiM2E3OWFiYTUzNTRkMTNkOTAwNDNiODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaApAQCAt
MjcsMjQgKzI3LDQzIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiR1BVT2Jq
ZWN0QmFzZS5oIgotI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXZWJHUFVSZW5kZXJQaXBl
bGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdl
YkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmLCBH
UFVFcnJvclNjb3BlcyYpOworY2xhc3MgR1BVUGlwZWxpbmU7CitjbGFzcyBHUFVSZW5kZXJQaXBl
bGluZTsKK2NsYXNzIEdQVUVycm9yU2NvcGVzOworY2xhc3MgV2ViR1BVRGV2aWNlOwogCitjbGFz
cyBXZWJHUFVSZW5kZXJQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQaXBlbGluZSB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BVUmVuZGVyUGlwZWxpbmUoKTsKKworICAgIHN0YXRp
YyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8
R1BVUmVuZGVyUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlw
ZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6
OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKTsKKworICAgIGJvb2wgaXNSZW5kZXJQaXBlbGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIHJlbmRlclBpcGVsaW5lKCk7IH0KICAgICBjb25zdCBHUFVSZW5kZXJQaXBlbGluZSog
cmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclBpcGVsaW5lLmdldCgpOyB9
CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyOyB9CisgICAgT3B0aW9uYWw8V2ViR1BVUGlw
ZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFn
bWVudFNoYWRlcjsgfQorCisgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJik7
CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVUmVuZGVyUGlwZWxpbmUoUmVmUHRyPEdQVVJlbmRlclBp
cGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYpOworICAgIFdlYkdQVVJlbmRlclBpcGVsaW5lKFdl
YkdQVURldmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29wZXMm
LCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRp
b25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpOwogCiAgICAg
UmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBtX3JlbmRlclBpcGVsaW5lOworCisgICAgLy8gUHJl
c2VydmVkIGZvciBXZWIgSW5zcGVjdG9yIHJlY29tcGlsYXRpb24uCisgICAgT3B0aW9uYWw8V2Vi
R1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IG1fdmVydGV4U2hhZGVyOworICAgIE9wdGlvbmFsPFdl
YkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBtX2ZyYWdtZW50U2hhZGVyOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dFQkdQVVBJUEVMSU5F
KFdlYkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lLCBpc1JlbmRlclBpcGVsaW5lKCkpCisKICNl
bmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsCmluZGV4IGE5ODlmZDQxMGFjYmNkM2I0
OTlhYjMxYTczNDhjNjVmMmU3NWNkYmIuLmE5YjQwMDBiNmYxYjFhMjI4MGJjMzJiMmJmMzM3MjE2
NmRhMzE0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwKQEAgLTI3LDcgKzI3LDYgQEAKIFsKICAgICBDb25kaXRp
b25hbD1XRUJHUFUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCi0gICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSwKICAgICBJbnRlcmZhY2VOYW1lPUdQVVJlbmRlclBpcGVsaW5lCiBd
IGludGVyZmFjZSBXZWJHUFVSZW5kZXJQaXBlbGluZSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKaW5kZXggZWU4NWY5
MmFiYzlmYWIzMTYyZjYzYjhiN2NhMGQ4YjAxYjQzN2M5MC4uZDMxNDU0NWRkM2Y0NmNlODYyMDhm
M2Q1NDZhZmY3MTQ0MjczM2M5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuY3BwCkBAIC0yOCwxOCArMjgsMjkgQEAKIAogI2lm
IEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgi
CisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxXZWJHUFVTaGFkZXJNb2R1bGU+IFdlYkdQVVNoYWRl
ck1vZHVsZTo6Y3JlYXRlKFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlKQorUmVmPFdl
YkdQVVNoYWRlck1vZHVsZT4gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoUmVmUHRyPEdQVVNo
YWRlck1vZHVsZT4mJiBtb2R1bGUsIGNvbnN0IFN0cmluZyYgc291cmNlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkdQVVNoYWRlck1vZHVsZShXVEZNb3ZlKG1vZHVsZSkpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVTaGFkZXJNb2R1bGUoV1RGTW92ZShtb2R1bGUp
LCBzb3VyY2UpKTsKIH0KIAotV2ViR1BVU2hhZGVyTW9kdWxlOjpXZWJHUFVTaGFkZXJNb2R1bGUo
UmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJiBtb2R1bGUpCitXZWJHUFVTaGFkZXJNb2R1bGU6Oldl
YkdQVVNoYWRlck1vZHVsZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UpCiAgICAgOiBtX21vZHVsZShXVEZNb3ZlKG1vZHVsZSkpCisgICAgLCBt
X3NvdXJjZShzb3VyY2UpCiB7CiB9CiAKK3ZvaWQgV2ViR1BVU2hhZGVyTW9kdWxlOjp1cGRhdGUo
Y29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IFN0cmluZyYgc291cmNlKQoreworICAg
IG1fc291cmNlID0gc291cmNlOworICAgIG1fbW9kdWxlID0gR1BVU2hhZGVyTW9kdWxlOjp0cnlD
cmVhdGUoZGV2aWNlLmRldmljZSgpLCB7IG1fc291cmNlIH0pOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaAppbmRleCA4Mzc3MDUzZDFh
Y2U3MjM5MDljYjNjODk2MjdmNGQ4YzYyYjFlYWVlLi43ODY0NjExOTExYjY3MmMyNjQ5MGVkODdk
MzY2ZjRlYWIxODUyZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVTaGFkZXJNb2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVTaGFkZXJNb2R1bGUuaApAQCAtMjgsMjIgKzI4LDI5IEBACiAjaWYgRU5BQkxFKFdF
QkdQVSkKIAogI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgotCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBXZWJHUFVEZXZpY2U7CisKIGNs
YXNzIFdlYkdQVVNoYWRlck1vZHVsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVNoYWRlck1v
ZHVsZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVh
dGUoUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJik7CisgICAgc3RhdGljIFJlZjxXZWJHUFVTaGFk
ZXJNb2R1bGU+IGNyZWF0ZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmLCBjb25zdCBTdHJpbmcm
IHNvdXJjZSk7CiAKLSAgICBjb25zdCBHUFVTaGFkZXJNb2R1bGUqIG1vZHVsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbW9kdWxlLmdldCgpOyB9CisgICAgR1BVU2hhZGVyTW9kdWxlKiBtb2R1bGUoKSBj
b25zdCB7IHJldHVybiBtX21vZHVsZS5nZXQoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgc291cmNl
KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KKworICAgIHZvaWQgdXBkYXRlKGNvbnN0IFdl
YkdQVURldmljZSYsIGNvbnN0IFN0cmluZyYgc291cmNlKTsKIAogcHJpdmF0ZToKLSAgICBXZWJH
UFVTaGFkZXJNb2R1bGUoUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJik7CisgICAgV2ViR1BVU2hh
ZGVyTW9kdWxlKFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+JiYsIGNvbnN0IFN0cmluZyYgc291cmNl
KTsKIAogICAgIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+IG1fbW9kdWxlOworCisgICAgLy8gUHJl
c2VydmVkIGZvciBXZWIgSW5zcGVjdG9yIHJlY29tcGlsYXRpb24uCisgICAgU3RyaW5nIG1fc291
cmNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1N2U3
NTBlNDE4MGNkN2IzZjJhMTlhN2FlNTgxY2I0MzI4YTExYmYyLi4zMTQwYjY1NDllMjc4OWU5NzM1
NDNhNThhZjYyNjE2MjU5OTA0ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzcxLDYgKzM3MSw3IEBA
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VF
cnJvclNjb3Blcy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcAorTW9kdWxlcy93
ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxh
eW91dC5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5j
cHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5jcHAK
QEAgLTE4OTAsNiArMTg5MSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3Bw
CiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRXJyb3JTY29wZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVmFsaWRhdGlv
bkVycm9yLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGVlZGRiNTU5ODNmZGRi
MzkxODJhNmViMDRiYTczZDc1YmQ0NDVmOS4uNjQ0ODE4NDFhODA5Y2ZjNDkzNzRiOGQyOWZmODNl
NDI4Mzg3OTZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTAzOTIsNiArMTAzOTIsMTAgQEAKIAkJOTE3NUNFNTkyMUUyODFF
QzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE3NUNFNUEy
MUUyODFFRDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxp
dHlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE3NUNFNUEyMUUyODFF
RDAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5
T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxODZGM0IzMjMyOUZCMDUw
MEFGRjg1NyAvKiBHUFVQaXBlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHUFVQaXBlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTg2RjNCNjIz
MjlGQjRFMDBBRkY4NTcgLyogV2ViR1BVUGlwZWxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MTg2RjNCNzIzMjlGQjRGMDBBRkY4NTcgLyogV2ViR1BVUGlwZWxpbmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUGlwZWxpbmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE4NkYzQkEyMzI5RkU2ODAwQUZGODU3IC8qIEdQVVBp
cGVsaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBpcGVs
aW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFCOEYwQjMyMTk1M0Q2NTAw
MEMyQjAwIC8qIENlcnRpZmljYXRlSW5mb0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2VydGlmaWNhdGVJbmZvQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MUI5NTIyMjFGNThBNTgwMDA5MzFEQzIgLyogUmVjb3JkaW5nU3dpenpsZVR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlY29yZGluZ1N3aXp6bGVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzQwLDYgKzE4MzQ0LDggQEAKIAkJCQlEMDhB
QTAyRjIyMEQwQkQ1MDA1OEM1MDIgLyogR1BVTG9hZE9wLmggKi8sCiAJCQkJRDA5QUZCMzcyMkQ3
RDVDNjAwQzQ1MzhDIC8qIEdQVU9iamVjdEJhc2UuaCAqLywKIAkJCQlEMDlBRkIxOTIyRDY2OThB
MDBDNDUzOEMgLyogR1BVT3V0T2ZNZW1vcnlFcnJvci5oICovLAorCQkJCTkxODZGM0JBMjMyOUZF
NjgwMEFGRjg1NyAvKiBHUFVQaXBlbGluZS5jcHAgKi8sCisJCQkJOTE4NkYzQjMyMzI5RkIwNTAw
QUZGODU3IC8qIEdQVVBpcGVsaW5lLmggKi8sCiAJCQkJMzEyRkY4QzQyMUE0QzJGNDAwRUIxOTlE
IC8qIEdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQlEMDAzMjg4NzIxQzlBNEU1
MDA2MjJBQTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuY3BwICovLAogCQkJCUQwMDMyODg2MjFDOUE0
RTUwMDYyMkFBNiAvKiBHUFVQaXBlbGluZUxheW91dC5oICovLApAQCAtMjYwNzYsNiArMjYwODIs
OCBAQAogCQkJCUQwOUFGQjAzMjJENDBDQzUwMEM0NTM4QyAvKiBXZWJHUFVEZXZpY2VFcnJvclNj
b3Blcy5pZGwgKi8sCiAJCQkJRDA5QUMwMEEyMzE3MzVCRTAwMTg3NzYyIC8qIFdlYkdQVURldmlj
ZUV2ZW50SGFuZGxlci5oICovLAogCQkJCUQwOUFDMDBCMjMxNzM1QkUwMDE4Nzc2MiAvKiBXZWJH
UFVEZXZpY2VFdmVudEhhbmRsZXIuaWRsICovLAorCQkJCTkxODZGM0I2MjMyOUZCNEUwMEFGRjg1
NyAvKiBXZWJHUFVQaXBlbGluZS5jcHAgKi8sCisJCQkJOTE4NkYzQjcyMzI5RkI0RjAwQUZGODU3
IC8qIFdlYkdQVVBpcGVsaW5lLmggKi8sCiAJCQkJRDBDNDE5RjAyMTgzRUIzMTAwOUVDMURFIC8q
IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKIAkJCQlEMEM0MTlGMTIxODNFQjMx
MDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5pZGwgKi8sCiAJCQkJRDA1
QTk5RTUyMUM5QkYyQzAwMDMyQjc1IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCmluZGV4IDZiYTM4MWE5
ZGZlNWNmODJiYjE2NTI1OWRiMWJhOGRhZTNkZmNiYjIuLjUwNjU0OTQ4ZDJhZDE0YTQ0MTA4MWFj
NTRiYjg0ZDNmNzliOGUzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKQogCisjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCkBA
IC02MCw2ICs2Miw3IEBAIFJlZjxXZWJHTFByb2dyYW0+IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xQcm9ncmFtOjpXZWJHTFByb2dy
YW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRPYmpl
Y3QoY3R4KQorICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGN0eC5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCiB7CiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2Vz
TXV0ZXgoKSk7CkBAIC03MSw2ICs3NCw4IEBAIFdlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFtKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xQcm9ncmFtOjp+V2ViR0xQcm9n
cmFtKCkKIHsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQ
cm9ncmFtKCp0aGlzKTsKKwogICAgIGRlbGV0ZU9iamVjdCgwKTsKIAogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXggODhhODk3OWQ0NWY2N2FhMzdl
MmMwZTkzN2UzZDE5NDFhNmMyZmYzZC4uNjc2OWQxZDRmNTIwOTU0MTRiNWFmMzI3ZDVjNGUyMjNk
OWU3MmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKQEAg
LTMyLDYgKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OworY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIGNsYXNzIFdl
YkdMU2hhZGVyOwogCiBjbGFzcyBXZWJHTFByb2dyYW0gZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFy
ZWRPYmplY3QgewpAQCAtNDIsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEhhc2hNYXA8
V2ViR0xQcm9ncmFtKiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+JiBpbnN0YW5jZXMoY29u
c3QgTG9ja0hvbGRlciYpOwogICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNNdXRleCgpOwogCisg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQorCiAgICAgdW5zaWduZWQgbnVt
QWN0aXZlQXR0cmliTG9jYXRpb25zKCk7CiAgICAgR0MzRGludCBnZXRBY3RpdmVBdHRyaWJMb2Nh
dGlvbihHQzNEdWludCBpbmRleCk7CiAKQEAgLTcxLDYgKzc1LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNhY2hlQWN0aXZlQXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29udGV4dDNEKik7CiAgICAg
dm9pZCBjYWNoZUluZm9JZk5lZWRlZCgpOwogCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworCiAgICAgVmVjdG9yPEdDM0RpbnQ+IG1fYWN0aXZl
QXR0cmliTG9jYXRpb25zOwogCiAgICAgR0MzRGludCBtX2xpbmtTdGF0dXMgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCmluZGV4IDIyNGUzNGQ4MzI3YWRiODU1Yjk0NzEzZWRmM2M2MGE4NTg3ODVmNzIu
LjZlZWE5MWZiMTk5M2IwNGNlZTM4MDMwMGRhYjc1ZjAyMGVhOTM4YjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwCkBAIC00MTEsNyArNDExLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNob3dI
aWdodGxpZ2h0KCkKICAgICB7Ci0gICAgICAgIGlmICghbV9wcm9ncmFtIHx8IExJS0VMWSghSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChtX2NvbnRl
eHQsICptX3Byb2dyYW0pKSkKKyAgICAgICAgaWYgKCFtX3Byb2dyYW0gfHwgTElLRUxZKCFJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQobV9jb250ZXh0
LCAqbV9wcm9ncmFtKSkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKGhhc0J1
ZmZlckJpbmRpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkcpKSB7CkBA
IC0xNzU0LDcgKzE3NTQsNyBAQCBSZWZQdHI8V2ViR0xQcm9ncmFtPiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKCkKICAgICBhdXRvIHByb2dyYW0gPSBXZWJHTFByb2dy
YW06OmNyZWF0ZSgqdGhpcyk7CiAgICAgYWRkU2hhcmVkT2JqZWN0KHByb2dyYW0uZ2V0KCkpOwog
Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFtKCp0aGlzLCBw
cm9ncmFtLmdldCgpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdl
YkdMUHJvZ3JhbSgqdGhpcywgcHJvZ3JhbS5nZXQoKSk7CiAKICAgICByZXR1cm4gcHJvZ3JhbTsK
IH0KQEAgLTE4NDAsNyArMTg0MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIpCiB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZVByb2dyYW0oV2ViR0xQcm9ncmFtKiBwcm9n
cmFtKQogewogICAgIGlmIChwcm9ncmFtKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxEZWxldGVQcm9ncmFtKCp0aGlzLCAqcHJvZ3JhbSk7CisgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oKnByb2dyYW0pOwogCiAg
ICAgZGVsZXRlT2JqZWN0KHByb2dyYW0pOwogICAgIC8vIFdlIGRvbid0IHJlc2V0IG1fY3VycmVu
dFByb2dyYW0gdG8gMCBoZXJlIGJlY2F1c2UgdGhlIGRlbGV0aW9uIG9mIHRoZQpAQCAtMjI1NSw3
ICsyMjU1LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzKEdD
M0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXoKICAgICBpZiAoIXZhbGlkYXRlRHJh
d0FycmF5cygiZHJhd0FycmF5cyIsIG1vZGUsIGZpcnN0LCBjb3VudCwgMCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1cnJlbnRQcm9ncmFtKSkK
KyAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlz
V2ViR0xQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1cnJlbnRQcm9ncmFtKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKQEAgLTIzMDksNyArMjMwOSw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVtIG1v
ZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzCiAgICAgaWYgKCF2YWxpZGF0ZURyYXdFbGVtZW50cygi
ZHJhd0VsZW1lbnRzIiwgbW9kZSwgY291bnQsIHR5cGUsIG9mZnNldCwgbnVtRWxlbWVudHMsIDAp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJy
ZW50UHJvZ3JhbSkpCisgICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3Jh
bSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CmluZGV4IDY5NjQ2NTA1MzliM2JmMzkyMGQxNGNkYWUxMGMxMTUxZjQxZWY5NDcuLjkxMmM4NDVi
YmYyYTM3ZWMyOTJiNjY0NzJiZTk5MDJjODg0ODVlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0xMDc5LDI5
ICsxMDc5LDI5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFbmFibGVFeHRl
bnNpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RyCiAgICAgICAgIGNhbnZhc0FnZW50
LT5kaWRFbmFibGVFeHRlbnNpb24oY29udGV4dFdlYkdMQmFzZSwgZXh0ZW5zaW9uKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW1JbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK3ZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHTFByb2dyYW1JbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBpZiAo
SW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRlUHJv
Z3JhbShjb250ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKKyAgICAgICAgY2FudmFzQWdlbnQtPmRp
ZENyZWF0ZVdlYkdMUHJvZ3JhbShjb250ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZWxldGVQcm9ncmFtSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0p
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW1J
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKIHsKICAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICBj
YW52YXNBZ2VudC0+d2lsbERlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgICAgIGNhbnZhc0Fn
ZW50LT53aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShwcm9ncmFtKTsKIH0KIAotYm9vbCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiti
b29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBw
cm9ncmFtKQogewogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCi0gICAgICAgIHJldHVy
biBjYW52YXNBZ2VudC0+aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQocHJvZ3JhbSk7CisgICAgICAg
IHJldHVybiBjYW52YXNBZ2VudC0+aXNXZWJHTFByb2dyYW1EaXNhYmxlZChwcm9ncmFtKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1No
YWRlclByb2dyYW1IaWdobGlnaHRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBp
ZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlz
U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHByb2dyYW0pOworICAgICAgICByZXR1cm4gY2FudmFz
QWdlbnQtPmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQocHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogI2VuZGlmCkBAIC0xMTI0LDYgKzExMjQsMTggQEAgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxDb25maWd1cmVTd2FwQ2hhaW5JbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmIGkKICAgICBpZiAoYXV0byogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmlu
c3BlY3RvckNhbnZhc0FnZW50KCkpCiAgICAgICAgIGNhbnZhc0FnZW50LT53aWxsQ29uZmlndXJl
U3dhcENoYWluKGNvbnRleHRHUFUsIG5ld1N3YXBDaGFpbik7CiB9CisKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFdlYkdQ
VVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBpZiAoYXV0byogY2FudmFzQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCisgICAgICAgIGNhbnZhc0Fn
ZW50LT5kaWRDcmVhdGVXZWJHUFVQaXBlbGluZShkZXZpY2UsIHBpcGVsaW5lKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdQVVBpcGVsaW5l
JiBwaXBlbGluZSkKK3sKKyAgICBpZiAoYXV0byogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCisgICAgICAgIGNhbnZhc0FnZW50LT53aWxs
RGVzdHJveVdlYkdQVVBpcGVsaW5lKHBpcGVsaW5lKTsKK30KICNlbmRpZgogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX1VTQUdFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDgxZjNjZGNkYTI5ZmNlMWI5NWU3Y2JiOWQ1Njg5
MDhmYzdhNzkxYzMuLjU0OWFhMTdhM2VhM2E3YjkxNWJlYzcyYjJiYjI4MjExNjYzNjdmZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKQEAgLTYzLDYgKzYzLDcgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogI2luY2x1ZGUgIkdQ
VUNhbnZhc0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJX
ZWJHUFVQaXBlbGluZS5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMjg5
LDE1ICsyOTAsMTcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFJlY29yZGlu
Z0NhbnZhc0ZyYW1lKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBib29sIGZvcmNlRGlzcGF0Y2gg
PSBmYWxzZSk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0YXRpYyB2b2lkIGRpZEVuYWJsZUV4
dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgY29uc3QgU3RyaW5nJik7Ci0gICAg
c3RhdGljIHZvaWQgZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwg
V2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIHZvaWQgd2lsbERlbGV0ZVByb2dyYW0oV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlz
U2hhZGVyUHJvZ3JhbURpc2FibGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFBy
b2dyYW0mKTsKLSAgICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIHZvaWQg
ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFBy
b2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFBy
b2dyYW0mKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMUHJvZ3JhbURpc2FibGVkKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dl
YkdMUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFBy
b2dyYW0mKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3RhdGljIHZvaWQgZGlk
Q3JlYXRlV2ViR1BVRGV2aWNlKFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxE
ZXN0cm95V2ViR1BVRGV2aWNlKFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxD
b25maWd1cmVTd2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYsIFdlYkdQVVN3YXBDaGFpbiYpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFdl
YkdQVVBpcGVsaW5lJik7CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVQaXBlbGlu
ZShXZWJHUFVQaXBlbGluZSYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3Rh
dGVDaGFuZ2VkKFBhZ2UmKTsKQEAgLTQ4MSwxNSArNDg0LDE3IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBDYW52YXNSZW5kZXJpbmdDb250ZXh0JiwgYm9vbCBmb3JjZURpc3BhdGNoID0gZmFs
c2UpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBzdGF0aWMgdm9pZCBkaWRFbmFibGVFeHRlbnNp
b25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlUHJvZ3JhbUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dy
YW0mKTsKLSAgICBzdGF0aWMgdm9pZCB3aWxsRGVsZXRlUHJvZ3JhbUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVyUHJvZ3Jh
bURpc2FibGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAg
c3RhdGljIGJvb2wgaXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHTFBy
b2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJHTFByb2dy
YW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMg
Ym9vbCBpc1dlYkdMUHJvZ3JhbURpc2FibGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2Vi
R0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKFdFQkdQVSkKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHUFVEZXZpY2VJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxs
RGVzdHJveVdlYkdQVURldmljZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdQVURldmlj
ZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxDb25maWd1cmVTd2FwQ2hhaW5JbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBHUFVDYW52YXNDb250ZXh0JiwgV2ViR1BVU3dhcENoYWluJik7CisgICAg
c3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmVJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCBXZWJHUFVEZXZpY2UmLCBXZWJHUFVQaXBlbGluZSYpOworICAgIHN0YXRpYyB2b2lkIHdp
bGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHUFVQ
aXBlbGluZSYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2VJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKQEAgLTEzODQsMzMgKzEzODksMzMgQEAgaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmEKICAgICAgICAgZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbCgqaW5zdHJ1
bWVudGluZ0FnZW50cywgY29udGV4dFdlYkdMQmFzZSwgZXh0ZW5zaW9uKTsKIH0KIAotaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3Jh
bSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQ
cm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdM
UHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9p
ZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9
IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2UuY2FudmFzQmFz
ZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIGRpZENyZWF0ZVByb2dyYW1J
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKKyAg
ICAgICAgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29u
dGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbERlbGV0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYg
Y29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQoraW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dy
YW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICB3aWxsRGVsZXRlUHJvZ3JhbUltcGwo
Kmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOworICAgIGlmIChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQo
cHJvZ3JhbS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICB3aWxsRGVzdHJveVdl
YkdMUHJvZ3JhbUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOwogfQogCi1pbmxp
bmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVk
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKK2lubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJH
TFByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xC
YXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKGZhbHNlKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2Uu
Y2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIHJldHVybiBp
c1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dyYW0p
OworICAgICAgICByZXR1cm4gaXNXZWJHTFByb2dyYW1EaXNhYmxlZEltcGwoKmluc3RydW1lbnRp
bmdBZ2VudHMsIHByb2dyYW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotaW5saW5lIGJvb2wg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHBy
b2dyYW0pCitpbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9n
cmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFz
ZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05U
RU5EUyhmYWxzZSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0V2ViR0xCYXNlLmNh
bnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICByZXR1cm4gaXNT
aGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFt
KTsKKyAgICAgICAgcmV0dXJuIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAjZW5kaWYKQEAg
LTE0MzYsNiArMTQ0MSwyMCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxDb25maWd1cmVTd2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYgYwogICAgIGlmIChhdXRv
KiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29u
dGV4dEdQVS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKICAgICAgICAg
d2lsbENvbmZpZ3VyZVN3YXBDaGFpbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRH
UFUsIG5ld1N3YXBDaGFpbik7CiB9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFdlYkdQ
VVBpcGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMo
dm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JDb250ZXh0KGRldmljZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAg
ICAgICBkaWRDcmVhdGVXZWJHUFVQaXBlbGluZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGRl
dmljZSwgcGlwZWxpbmUpOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQor
eworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRv
KiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQocGlw
ZWxpbmUuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgd2lsbERlc3Ryb3lXZWJH
UFVQaXBlbGluZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBpcGVsaW5lKTsKK30KICNlbmRp
ZgogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5ldHdvcmtTdGF0ZUNo
YW5nZWQoUGFnZSYgcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtLmNwcAppbmRleCBkNTI5NTUwY2RjODlhODU5NGIyZWI4ZGQ0NzY1
N2ZiMTJhMzgwYzgxLi5iM2RmOTA5NzdkMWNkOGQ4NzZjMjllN2Y1MWIxYzY4MTMwYWRhMGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dy
YW0uY3BwCkBAIC0yNiw1MyArMjYsMjEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oIgogCi0jaWYgRU5BQkxFKFdFQkdMKQotCi0jaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJHcmFwaGljc1R5cGVzM0QuaCIK
LSNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNhbnZh
cy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lkZW50aWZpZXJzRmFjdG9yeS5oPgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3
dGYvVmFyaWFudC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgRU5B
QkxFKFdFQkdMKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiV2Vi
R0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2lu
Y2x1ZGUgIldlYkdMU2hhZGVyLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmll
cnNGYWN0b3J5Lmg+CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCisjaW5jbHVkZSAiR1BV
U2hhZGVyTW9kdWxlLmgiCisjaW5jbHVkZSAiV0hMU0xQcmVwYXJlLmgiCisjaW5jbHVkZSAiV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKKyNpbmNs
dWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVs
ZS5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIElu
c3BlY3RvcjsKIAorI2lmIEVOQUJMRShXRUJHTCkKIFJlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
PiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUoV2ViR0xQcm9ncmFtJiBwcm9ncmFtLCBJ
bnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKHByb2dyYW0sIGluc3BlY3RvckNhbnZhcykpOwog
fQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCR1BVKQorUmVmPEluc3BlY3RvclNoYWRlclByb2dy
YW0+IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNyZWF0ZShXZWJHUFVQaXBlbGluZSYgcGlwZWxp
bmUsIEluc3BlY3RvckNhbnZhcyYgaW5zcGVjdG9yQ2FudmFzKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluc3BlY3RvclNoYWRlclByb2dyYW0ocGlwZWxpbmUsIGluc3BlY3RvckNhbnZh
cykpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR0wpCiBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgSW5zcGVj
dG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCiAgICAgOiBtX2lkZW50aWZpZXIoInByb2dyYW06
IiArIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKQotICAgICwgbV9wcm9n
cmFtKHByb2dyYW0pCiAgICAgLCBtX2NhbnZhcyhpbnNwZWN0b3JDYW52YXMpCisgICAgLCBtX3By
b2dyYW0ocHJvZ3JhbSkKIHsKKyAgICBBU1NFUlQoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4obV9jYW52YXMuY2FudmFzQ29udGV4dCgpKSk7CiB9CisjZW5kaWYKIAotV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y29udGV4dCgpIGNvbnN0Cisj
aWYgRU5BQkxFKFdFQkdQVSkKK0luc3BlY3RvclNoYWRlclByb2dyYW06Okluc3BlY3RvclNoYWRl
clByb2dyYW0oV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lLCBJbnNwZWN0b3JDYW52YXMmIGluc3Bl
Y3RvckNhbnZhcykKKyAgICA6IG1faWRlbnRpZmllcigicGlwZWxpbmU6IiArIElkZW50aWZpZXJz
RmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKQorICAgICwgbV9jYW52YXMoaW5zcGVjdG9yQ2Fu
dmFzKQorICAgICwgbV9wcm9ncmFtKHBpcGVsaW5lKQogewotICAgIEFTU0VSVChtX2NhbnZhcy5j
YW52YXNDb250ZXh0KCkpOwotICAgIEFTU0VSVChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
PigqbV9jYW52YXMuY2FudmFzQ29udGV4dCgpKSk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U+KCptX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpOworICAgIEFT
U0VSVChtX2NhbnZhcy5kZXZpY2VDb250ZXh0KCkpOwogfQorI2VuZGlmCiAKLVdlYkdMU2hhZGVy
KiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpzaGFkZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcHJv
dG9jb2xUeXBlKQorI2lmIEVOQUJMRShXRUJHTCkKK1dlYkdMUHJvZ3JhbSogSW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbTo6cHJvZ3JhbSgpIGNvbnN0CiB7Ci0gICAgR0MzRGVudW0gc2hhZGVyVHlwZTsK
LSAgICBpZiAocHJvdG9jb2xUeXBlID09ICJ2ZXJ0ZXgiKQotICAgICAgICBzaGFkZXJUeXBlID0g
R3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI7Ci0gICAgZWxzZSBpZiAocHJvdG9jb2xU
eXBlID09ICJmcmFnbWVudCIpCi0gICAgICAgIHNoYWRlclR5cGUgPSBHcmFwaGljc0NvbnRleHQz
RDo6RlJBR01FTlRfU0hBREVSOwotICAgIGVsc2UKKyAgICBpZiAoYXV0byogcHJvZ3JhbVdyYXBw
ZXIgPSBXVEY6OmdldF9pZjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4+KG1f
cHJvZ3JhbSkpCisgICAgICAgIHJldHVybiAmcHJvZ3JhbVdyYXBwZXItPmdldCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorV2ViR1BVUGlw
ZWxpbmUqIEluc3BlY3RvclNoYWRlclByb2dyYW06OnBpcGVsaW5lKCkgY29uc3QKK3sKKyAgICBp
ZiAoYXV0byogcGlwZWxpbmVXcmFwcGVyID0gV1RGOjpnZXRfaWY8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxXZWJHUFVQaXBlbGluZT4+KG1fcHJvZ3JhbSkpCisgICAgICAgIHJldHVybiAmcGlwZWxp
bmVXcmFwcGVyLT5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYg
RU5BQkxFKFdFQkdMKQorc3RhdGljIFdlYkdMU2hhZGVyKiBzaGFkZXJGb3JUeXBlKFdlYkdMUHJv
Z3JhbSYgcHJvZ3JhbSwgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNo
YWRlclR5cGUpCit7CisgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6OkZyYWdtZW50OgorICAgICAgICByZXR1
cm4gcHJvZ3JhbS5nZXRBdHRhY2hlZFNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRf
U0hBREVSKTsKKworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJU
eXBlOjpWZXJ0ZXg6CisgICAgICAgIHJldHVybiBwcm9ncmFtLmdldEF0dGFjaGVkU2hhZGVyKEdy
YXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSKTsKKworICAgIC8vIENvbXB1dGUgc2hhZGVy
cyBhcmUgYSBXZWJHUFUgY29uY2VwdC4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNh
bnZhczo6U2hhZGVyVHlwZTo6Q29tcHV0ZToKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQogCi0gICAgcmV0dXJuIG1fcHJvZ3JhbS5nZXRBdHRhY2hlZFNoYWRlcihzaGFkZXJUeXBlKTsK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRp
ZgorCisjaWYgRU5BQkxFKFdFQkdQVSkKK3N0YXRpYyBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YT4gc2hhZGVyRm9yVHlwZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlKQoreworICAgIHN3
aXRjaCAoc2hhZGVyVHlwZSkgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFz
OjpTaGFkZXJUeXBlOjpDb21wdXRlOgorICAgICAgICBpZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVs
aW5lPihwaXBlbGluZSkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2ViR1BVQ29tcHV0
ZVBpcGVsaW5lPihwaXBlbGluZSkuY29tcHV0ZVNoYWRlcigpOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpGcmFnbWVu
dDoKKyAgICAgICAgaWYgKGlzPFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCisgICAg
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKS5m
cmFnbWVudFNoYWRlcigpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpWZXJ0ZXg6CisgICAgICAgIGlmIChpczxXZWJH
UFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkudmVydGV4U2hhZGVyKCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Cit9CisjZW5kaWYKKworU3RyaW5nIEluc3BlY3RvclNoYWRlclByb2dyYW06
OnJlcXVlc3RTaGFkZXJTb3VyY2UoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJU
eXBlIHNoYWRlclR5cGUpCit7CisjaWYgIUVOQUJMRShXRUJHTCkgJiYgIUVOQUJMRShXRUJHUFUp
CisgICAgVU5VU0VEX1BBUkFNKHNoYWRlclR5cGUpOworI2VuZGlmCisKKyAgICByZXR1cm4gV1RG
Ojpzd2l0Y2hPbihtX3Byb2dyYW0sCisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICBbJl0gKHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiBwcm9ncmFtV3JhcHBlcikgeworICAg
ICAgICAgICAgYXV0byYgcHJvZ3JhbSA9IHByb2dyYW1XcmFwcGVyLmdldCgpOworICAgICAgICAg
ICAgaWYgKGF1dG8qIHNoYWRlciA9IHNoYWRlckZvclR5cGUocHJvZ3JhbSwgc2hhZGVyVHlwZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHNoYWRlci0+Z2V0U291cmNlKCk7CisgICAgICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BV
KQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+IHBp
cGVsaW5lV3JhcHBlcikgeworICAgICAgICAgICAgYXV0byYgcGlwZWxpbmUgPSBwaXBlbGluZVdy
YXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXJEYXRhID0gc2hhZGVyRm9y
VHlwZShwaXBlbGluZSwgc2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBt
b2R1bGUgPSBzaGFkZXJEYXRhLnZhbHVlKCkubW9kdWxlKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbW9kdWxlLT5zb3VyY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICAgICAgfSwKKyNlbmRpZgorICAgICAgICBbJl0gKE1vbm9zdGF0ZSkg
eworI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7Cisg
ICAgICAgIH0KKyAgICApOworfQorCitib29sIEluc3BlY3RvclNoYWRlclByb2dyYW06OnVwZGF0
ZVNoYWRlcihJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCit7CisjaWYgIUVOQUJMRShXRUJHTCkgJiYgIUVOQUJM
RShXRUJHUFUpCisgICAgVU5VU0VEX1BBUkFNKHNoYWRlclR5cGUpOworICAgIFVOVVNFRF9QQVJB
TShzb3VyY2UpOworI2VuZGlmCisKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3Byb2dyYW0s
CisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
V2ViR0xQcm9ncmFtPiBwcm9ncmFtV3JhcHBlcikgeworICAgICAgICAgICAgYXV0byYgcHJvZ3Jh
bSA9IHByb2dyYW1XcmFwcGVyLmdldCgpOworICAgICAgICAgICAgaWYgKGF1dG8qIHNoYWRlciA9
IHNoYWRlckZvclR5cGUocHJvZ3JhbSwgc2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoYXV0byogY29udGV4dCA9IG1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oY29udGV4dCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8mIGNvbnRleHRXZWJHTEJhc2UgPSBkb3duY2Fz
dDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPigqY29udGV4dCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjb250ZXh0V2ViR0xCYXNlLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0V2ViR0xCYXNlLmNvbXBpbGVTaGFkZXIoc2hh
ZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaGFkZXItPmlzVmFsaWQoKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRXZWJHTEJhc2UubGlua1Byb2dyYW1X
aXRob3V0SW52YWxpZGF0aW5nQXR0cmliTG9jYXRpb25zKCZwcm9ncmFtKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyNlbmRpZgorI2lmIEVOQUJM
RShXRUJHUFUpCisgICAgICAgIFsmXSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBl
bGluZT4gcGlwZWxpbmVXcmFwcGVyKSB7CisgICAgICAgICAgICBhdXRvJiBwaXBlbGluZSA9IHBp
cGVsaW5lV3JhcHBlci5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkZXZpY2UgPSBtX2Nh
bnZhcy5kZXZpY2VDb250ZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXJE
YXRhID0gc2hhZGVyRm9yVHlwZShwaXBlbGluZSwgc2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGF1dG8gbW9kdWxlID0gc2hhZGVyRGF0YS52YWx1ZSgpLm1vZHVsZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLT51cGRhdGUoKmRldmljZSwgc291cmNlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXBlbGluZS5yZWNvbXBpbGUoKmRldmljZSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0sCisjZW5kaWYKKyAgICAgICAgWyZdIChNb25vc3RhdGUp
IHsKKyNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShXRUJHUFUpCisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
RU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
aGFkZXJQcm9ncmFtLmgKaW5kZXggOTQ2N2U4NDdmNWQzZDkyZDE0OTAwZTRiODU1OTYxYWE2YWRl
NjZjZS4uMGUwZTExNjdlODUzMGVlZGQzOTc3NmM4MzliMWEyYWIxYzk3ODMzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCkBAIC0y
NiwyNSArMjYsNDMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEluc3BlY3RvckNhbnZhczsKKworI2lmIEVOQUJMRShXRUJHTCkKIGNsYXNzIFdlYkdMUHJvZ3Jh
bTsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7Ci1jbGFzcyBXZWJHTFNoYWRlcjsK
KyNlbmRpZgogCi10eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKKyNpZiBFTkFCTEUoV0VCR1BV
KQorY2xhc3MgV2ViR1BVUGlwZWxpbmU7CisjZW5kaWYKIAogY2xhc3MgSW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvclNoYWRlclByb2dyYW0+
IHsKIHB1YmxpYzoKKyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtPiBjcmVhdGUoV2ViR0xQcm9ncmFtJiwgSW5zcGVjdG9yQ2FudmFzJik7Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIHN0YXRpYyBSZWY8SW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbT4gY3JlYXRlKFdlYkdQVVBpcGVsaW5lJiwgSW5zcGVjdG9yQ2FudmFzJik7CisjZW5k
aWYKIAogICAgIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQogICAgIEluc3BlY3RvckNhbnZhcyYgY2FudmFzKCkgY29uc3QgeyByZXR1cm4g
bV9jYW52YXM7IH0KLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KCkgY29u
c3Q7Ci0gICAgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmFt
OyB9Ci0gICAgV2ViR0xTaGFkZXIqIHNoYWRlckZvclR5cGUoY29uc3QgU3RyaW5nJik7CisKKyNp
ZiBFTkFCTEUoV0VCR0wpCisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtKCkgY29uc3Q7CisjZW5k
aWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIFdlYkdQVVBpcGVsaW5lKiBwaXBlbGluZSgpIGNv
bnN0OworI2VuZGlmCisKKyAgICBTdHJpbmcgcmVxdWVzdFNoYWRlclNvdXJjZShJbnNwZWN0b3I6
OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUpOworICAgIGJvb2wgdXBkYXRlU2hhZGVyKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UpOwogCiAgICAgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0K
ICAgICB2b2lkIHNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpIHsgbV9kaXNhYmxlZCA9IGRpc2Fi
bGVkOyB9CkBAIC01MiwxNSArNzAsMjcgQEAgcHVibGljOgogICAgIGJvb2wgaGlnaGxpZ2h0ZWQo
KSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodGVkOyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHRl
ZChib29sIHZhbHVlKSB7IG1faGlnaGxpZ2h0ZWQgPSB2YWx1ZTsgfQogCi0gICAgfkluc3BlY3Rv
clNoYWRlclByb2dyYW0oKSA9IGRlZmF1bHQ7Ci0KIHByaXZhdGU6CisjaWYgRU5BQkxFKFdFQkdM
KQogICAgIEluc3BlY3RvclNoYWRlclByb2dyYW0oV2ViR0xQcm9ncmFtJiwgSW5zcGVjdG9yQ2Fu
dmFzJik7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIEluc3BlY3RvclNoYWRlclBy
b2dyYW0oV2ViR1BVUGlwZWxpbmUmLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgogCiAgICAg
U3RyaW5nIG1faWRlbnRpZmllcjsKLSAgICBXZWJHTFByb2dyYW0mIG1fcHJvZ3JhbTsKICAgICBJ
bnNwZWN0b3JDYW52YXMmIG1fY2FudmFzOwogCisgICAgVmFyaWFudDwKKyNpZiBFTkFCTEUoV0VC
R0wpCisgICAgICAgIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiwKKyNlbmRp
ZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAgIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2Vi
R1BVUGlwZWxpbmU+LAorI2VuZGlmCisgICAgICAgIE1vbm9zdGF0ZQorICAgID4gbV9wcm9ncmFt
OworCiAgICAgYm9vbCBtX2Rpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faGlnaGxpZ2h0
ZWQgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggMTg1MjI0ODVhNjUyMmI1NWQz
MjgzMGIxNmYzZjhjYzYyMGQzN2YzYy4uMzAzMjFhNmY1NDBiMGU0MzZhMmY0M2EwZjljZTc1ZTQz
NzE3M2Q5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJI
VE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNs
dWRlICJKU0V4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKQEAgLTQ2LDE0ICs0
NywxOCBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luamVjdGVkU2NyaXB0TWFuYWdlci5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAj
aWYgRU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldl
YkdMUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCIKLSNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VC
R0wyKQpAQCAtNjIsNyArNjcsMTEgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAjaW5jbHVkZSAi
R1BVQ2FudmFzQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZS5oIgog
I2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisj
aW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJHUFVTd2FwQ2hh
aW4uaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03Niw2ICs4NSw3IEBAIElu
c3BlY3RvckNhbnZhc0FnZW50OjpJbnNwZWN0b3JDYW52YXNBZ2VudChQYWdlQWdlbnRDb250ZXh0
JiBjb250ZXh0KQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoY29udGV4dC5pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX2luc3BlY3RlZFBhZ2UoY29udGV4dC5pbnNwZWN0ZWRQ
YWdlKQogICAgICwgbV9jYW52YXNEZXN0cm95ZWRUaW1lcigqdGhpcywgJkluc3BlY3RvckNhbnZh
c0FnZW50OjpjYW52YXNEZXN0cm95ZWRUaW1lckZpcmVkKQorICAgICwgbV9wcm9ncmFtRGVzdHJv
eWVkVGltZXIoKnRoaXMsICZJbnNwZWN0b3JDYW52YXNBZ2VudDo6cHJvZ3JhbURlc3Ryb3llZFRp
bWVyRmlyZWQpCiB7CiB9CiAKQEAgLTkzLDcgKzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlCiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2NhcmRBZ2VudCgpCiB7Ci0gICAg
Y2xlYXJDYW52YXNEYXRhKCk7CisgICAgcmVzZXQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKQEAgLTE0MSw3ICsxNTEsMTcgQEAgdm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKICAgICAgICAgTG9ja0hv
bGRlciBsb2NrKFdlYkdMUHJvZ3JhbTo6aW5zdGFuY2VzTXV0ZXgoKSk7CiAgICAgICAgIGZvciAo
YXV0byYgW3Byb2dyYW0sIGNvbnRleHRXZWJHTEJhc2VdIDogV2ViR0xQcm9ncmFtOjppbnN0YW5j
ZXMobG9jaykpIHsKICAgICAgICAgICAgIGlmIChjb250ZXh0V2ViR0xCYXNlICYmIGV4aXN0c0lu
Q3VycmVudFBhZ2UoY29udGV4dFdlYkdMQmFzZS0+Y2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkpCi0gICAgICAgICAgICAgICAgZGlkQ3JlYXRlUHJvZ3JhbSgqY29udGV4dFdl
YkdMQmFzZSwgKnByb2dyYW0pOworICAgICAgICAgICAgICAgIGRpZENyZWF0ZVdlYkdMUHJvZ3Jh
bSgqY29udGV4dFdlYkdMQmFzZSwgKnByb2dyYW0pOworICAgICAgICB9CisgICAgfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdl
YkdQVVBpcGVsaW5lOjppbnN0YW5jZXNNdXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBbcGlw
ZWxpbmUsIGRldmljZV0gOiBXZWJHUFVQaXBlbGluZTo6aW5zdGFuY2VzKGxvY2spKSB7CisgICAg
ICAgICAgICBpZiAoZGV2aWNlICYmIGV4aXN0c0luQ3VycmVudFBhZ2UoZGV2aWNlLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpICYmIHBpcGVsaW5lLT5pc1ZhbGlkKCkpCisgICAgICAgICAgICAg
ICAgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoKmRldmljZSwgKnBpcGVsaW5lKTsKICAgICAgICAg
fQogICAgIH0KICNlbmRpZgpAQCAtMTUxLDcgKzE3MSw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50
cy5zZXRJbnNwZWN0b3JDYW52YXNBZ2VudChudWxscHRyKTsKIAotICAgIGNsZWFyQ2FudmFzRGF0
YSgpOworICAgIHJlc2V0KCk7CiAKICAgICBtX3JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3Vu
dCA9IFdURjo6bnVsbG9wdDsKIH0KQEAgLTI4MCw5MyArMzAwLDY1IEBAIHZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OnN0b3BSZWNvcmRpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmCiAgICAgZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWUoKmNvbnRleHQsIHRy
dWUpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpyZXF1ZXN0U2hhZGVyU291cmNl
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0
IFN0cmluZyYgc2hhZGVyVHlwZSwgU3RyaW5nKiBjb250ZW50KQordm9pZCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6cmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGVTdHJpbmcsIFN0
cmluZyogb3V0U291cmNlKQogewotI2lmIEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGluc3BlY3Rv
clByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9ncmFtSWQp
OwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byogc2hhZGVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+c2hhZGVyRm9yVHlwZShzaGFkZXJUeXBlKTsK
LSAgICBpZiAoIXNoYWRlcikgewotICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIHNoYWRl
ciBmb3IgZ2l2ZW4gc2hhZGVyVHlwZSJfczsKKyAgICBhdXRvIHNoYWRlclR5cGUgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpJbnNwZWN0b3JIZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlPihzaGFkZXJUeXBlU3RyaW5n
KTsKKyAgICBpZiAoIXNoYWRlclR5cGUpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBtYWtlU3Ry
aW5nKCJVbmtub3duIHNoYWRlclR5cGU6ICJfcywgc2hhZGVyVHlwZVN0cmluZyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICAqY29udGVudCA9IHNoYWRlci0+Z2V0U291cmNlKCk7Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVOVVNFRF9QQVJBTShzaGFk
ZXJUeXBlKTsKLSAgICBVTlVTRURfUEFSQU0oY29udGVudCk7Ci0gICAgZXJyb3JTdHJpbmcgPSAi
Tm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgorICAgIGF1dG8gc291cmNlID0gaW5zcGVjdG9yUHJv
Z3JhbS0+cmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJUeXBlLnZhbHVlKCkpOworICAgIGlmICgh
c291cmNlKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgc2hhZGVyIG9mIGdpdmVu
IHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZCJfczsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgICpvdXRTb3VyY2UgPSBzb3VyY2U7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OnVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291
cmNlKQordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6dXBkYXRlU2hhZGVyKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hh
ZGVyVHlwZVN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2UpCiB7Ci0jaWYgRU5BQkxFKFdFQkdM
KQogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGFzc2VydEluc3BlY3RvclByb2dyYW0oZXJy
b3JTdHJpbmcsIHByb2dyYW1JZCk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBhdXRvKiBzaGFkZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5zaGFkZXJG
b3JUeXBlKHNoYWRlclR5cGUpOwotICAgIGlmICghc2hhZGVyKSB7Ci0gICAgICAgIGVycm9yU3Ry
aW5nID0gIk1pc3Npbmcgc2hhZGVyIGZvciBnaXZlbiBzaGFkZXJUeXBlIl9zOworICAgIGF1dG8g
c2hhZGVyVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Okluc3BlY3RvckhlbHBlcnM6OnBhcnNl
RW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5
cGU+KHNoYWRlclR5cGVTdHJpbmcpOworICAgIGlmICghc2hhZGVyVHlwZSkgeworICAgICAgICBl
cnJvclN0cmluZyA9IG1ha2VTdHJpbmcoIlVua25vd24gc2hhZGVyVHlwZTogIl9zLCBzaGFkZXJU
eXBlU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmIGNvbnRleHRXZWJHTCA9IGluc3BlY3RvclByb2dyYW0tPmNvbnRleHQoKTsK
LSAgICBjb250ZXh0V2ViR0wuc2hhZGVyU291cmNlKHNoYWRlciwgc291cmNlKTsKLSAgICBjb250
ZXh0V2ViR0wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwotCi0gICAgaWYgKCFzaGFkZXItPmlzVmFs
aWQoKSkgewotICAgICAgICBlcnJvclN0cmluZyA9ICJGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciJf
czsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNvbnRleHRXZWJHTC5saW5rUHJvZ3Jh
bVdpdGhvdXRJbnZhbGlkYXRpbmdBdHRyaWJMb2NhdGlvbnMoJmluc3BlY3RvclByb2dyYW0tPnBy
b2dyYW0oKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVOVVNF
RF9QQVJBTShzaGFkZXJUeXBlKTsKLSAgICBVTlVTRURfUEFSQU0oc291cmNlKTsKLSAgICBlcnJv
clN0cmluZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlmCisgICAgaWYgKCFpbnNwZWN0b3JQ
cm9ncmFtLT51cGRhdGVTaGFkZXIoc2hhZGVyVHlwZS52YWx1ZSgpLCBzb3VyY2UpKQorICAgICAg
ICBlcnJvclN0cmluZyA9ICJGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJU
eXBlIGZvciBnaXZlbiBwcm9ncmFtSWQiX3M7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OnNldFNoYWRlclByb2dyYW1EaXNhYmxlZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGRpc2FibGVkKQogewotI2lmIEVOQUJMRShXRUJH
TCkKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVy
cm9yU3RyaW5nLCBwcm9ncmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaW5zcGVjdG9yUHJvZ3JhbS0+c2V0RGlzYWJsZWQoZGlzYWJsZWQp
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBVTlVTRURfUEFSQU0o
ZGlzYWJsZWQpOwotICAgIGVycm9yU3RyaW5nID0gIk5vdCBzdXBwb3J0ZWQiX3M7Ci0jZW5kaWYK
IH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6c2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdo
dGVkKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJv
b2wgaGlnaGxpZ2h0ZWQpCiB7Ci0jaWYgRU5BQkxFKFdFQkdMKQogICAgIGF1dG8gaW5zcGVjdG9y
UHJvZ3JhbSA9IGFzc2VydEluc3BlY3RvclByb2dyYW0oZXJyb3JTdHJpbmcsIHByb2dyYW1JZCk7
CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1cm47CiAKICAgICBpbnNw
ZWN0b3JQcm9ncmFtLT5zZXRIaWdobGlnaHRlZChoaWdobGlnaHRlZCk7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVOVVNFRF9QQVJBTShoaWdobGlnaHRlZCk7Ci0g
ICAgZXJyb3JTdHJpbmcgPSAiTm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgogfQogCiB2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50OjpmcmFtZU5hdmlnYXRlZChGcmFtZSYgZnJhbWUpCiB7CiAgICAg
aWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKLSAgICAgICAgY2xlYXJDYW52YXNEYXRhKCk7Cisg
ICAgICAgIHJlc2V0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU2OCw3ICs1NjAs
NyBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dAogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5l
eHRlbnNpb25FbmFibGVkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigpLCBleHRlbnNpb24p
OwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVQcm9ncmFtKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK3Zv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbShXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAg
YXV0byBpbnNwZWN0b3JDYW52YXMgPSBmaW5kSW5zcGVjdG9yQ2FudmFzKGNvbnRleHQpOwogICAg
IEFTU0VSVChpbnNwZWN0b3JDYW52YXMpOwpAQCAtNTc4LDIwICs1NzAsMTkgQEAgdm9pZCBJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjb250ZXh0LAogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IEluc3BlY3RvclNoYWRl
clByb2dyYW06OmNyZWF0ZShwcm9ncmFtLCAqaW5zcGVjdG9yQ2FudmFzKTsKICAgICBTdHJpbmcg
cHJvZ3JhbUlkZW50aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5pZGVudGlmaWVyKCk7CiAgICAg
bV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnNldChwcm9ncmFtSWRlbnRpZmllciwgV1RG
TW92ZShpbnNwZWN0b3JQcm9ncmFtKSk7Ci0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dy
YW1DcmVhdGVkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigpLCBwcm9ncmFtSWRlbnRpZmll
cik7CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3BlY3RvckNh
bnZhcy0+aWRlbnRpZmllcigpLCBwcm9ncmFtSWRlbnRpZmllciwgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6UmVuZGVyKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6d2lsbERlbGV0ZVByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFt
JiBwcm9ncmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGZpbmRJbnNwZWN0b3JQ
cm9ncmFtKHByb2dyYW0pOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgU3RyaW5nIGlkZW50aWZpZXIgPSB1bmJpbmRQcm9ncmFtKCppbnNwZWN0b3JQ
cm9ncmFtKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbURlbGV0ZWQoaWRlbnRp
Zmllcik7CisgICAgdW5iaW5kUHJvZ3JhbSgqaW5zcGVjdG9yUHJvZ3JhbSk7CiB9CiAKLWJvb2wg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKK2Jvb2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzV2ViR0xQcm9ncmFtRGlz
YWJsZWQoV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3Jh
bSA9IGZpbmRJbnNwZWN0b3JQcm9ncmFtKHByb2dyYW0pOwogICAgIEFTU0VSVChpbnNwZWN0b3JQ
cm9ncmFtKTsKQEAgLTYwMSw3ICs1OTIsNyBAQCBib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojpp
c1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFByb2dyYW0mIHByb2dyYW0pCiAgICAgcmV0dXJu
IGluc3BlY3RvclByb2dyYW0tPmRpc2FibGVkKCk7CiB9CiAKLWJvb2wgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkK
K2Jvb2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2Vi
R0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGZpbmRJ
bnNwZWN0b3JQcm9ncmFtKHByb2dyYW0pOwogICAgIEFTU0VSVChpbnNwZWN0b3JQcm9ncmFtKTsK
QEAgLTY0OSw2ICs2NDAsMzggQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbENvbmZp
Z3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0JiBjb250ZXh0R1BVLAogCiAgICAgbm90aWZ5
RGV2aWNlRm9yU3dhcENoYWluKG5ld1N3YXBDaGFpbik7CiB9CisKK3ZvaWQgSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQ6OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBX
ZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgYXV0byBpbnNwZWN0b3JDYW52YXMgPSBm
aW5kSW5zcGVjdG9yQ2FudmFzKGRldmljZSk7CisgICAgQVNTRVJUKGluc3BlY3RvckNhbnZhcyk7
CisgICAgaWYgKCFpbnNwZWN0b3JDYW52YXMpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VS
VChwaXBlbGluZS5pc1ZhbGlkKCkpOworCisgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gSW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHBpcGVsaW5lLCAqaW5zcGVjdG9yQ2FudmFzKTsK
KyAgICBTdHJpbmcgcHJvZ3JhbUlkZW50aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5pZGVudGlm
aWVyKCk7CisgICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnNldChwcm9ncmFtSWRl
bnRpZmllciwgV1RGTW92ZShpbnNwZWN0b3JQcm9ncmFtKSk7CisKKyAgICBPcHRpb25hbDxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlPiBwcm9ncmFtVHlwZTsKKyAgICBp
ZiAoaXM8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgIHByb2dyYW1U
eXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6Q29tcHV0ZTsK
KyAgICBlbHNlIGlmIChpczxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAg
ICBwcm9ncmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6
OlJlbmRlcjsKKyAgICBBU1NFUlQocHJvZ3JhbVR5cGUpOworCisgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigpLCBwcm9n
cmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5cGUudmFsdWUoKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmIHBp
cGVsaW5lKQoreworICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGZpbmRJbnNwZWN0b3JQcm9n
cmFtKHBpcGVsaW5lKTsKKyAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCisgICAgICAgIHJldHVy
bjsKKworICAgIHVuYmluZFByb2dyYW0oKmluc3BlY3RvclByb2dyYW0pOworfQogI2VuZGlmCiAK
IHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0YXJ0UmVjb3JkaW5nKEluc3BlY3RvckNhbnZh
cyYgaW5zcGVjdG9yQ2FudmFzLCBJbnNwZWN0b3I6OlByb3RvY29sOjpSZWNvcmRpbmc6OkluaXRp
YXRvciBpbml0aWF0b3IsIFJlY29yZGluZ09wdGlvbnMmJiByZWNvcmRpbmdPcHRpb25zKQpAQCAt
Njk0LDcgKzcxNywxOCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpjYW52YXNEZXN0cm95
ZWRUaW1lckZpcmVkKCkKICAgICBtX3JlbW92ZWRDYW52YXNJZGVudGlmaWVycy5jbGVhcigpOwog
fQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpjbGVhckNhbnZhc0RhdGEoKQordm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6cHJvZ3JhbURlc3Ryb3llZFRpbWVyRmlyZWQoKQoreworICAg
IGlmICghbV9yZW1vdmVkUHJvZ3JhbUlkZW50aWZpZXJzLnNpemUoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZm9yIChhdXRvJiBpZGVudGlmaWVyIDogbV9yZW1vdmVkUHJvZ3JhbUlkZW50aWZp
ZXJzKQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbURlbGV0ZWQoaWRlbnRp
Zmllcik7CisKKyAgICBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnMuY2xlYXIoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQoKQogewogICAgIGZvciAoYXV0byYgaW5z
cGVjdG9yQ2FudmFzIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JDYW52YXMudmFsdWVzKCkpIHsK
ICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBpbnNwZWN0b3JDYW52YXMtPmNhbnZhc0NvbnRl
eHQoKSkKQEAgLTcwMiwxMyArNzM2LDE0IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNs
ZWFyQ2FudmFzRGF0YSgpCiAgICAgfQogCiAgICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JDYW52
YXMuY2xlYXIoKTsKLSNpZiBFTkFCTEUoV0VCR0wpCi0gICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0
b3JQcm9ncmFtLmNsZWFyKCk7CiAgICAgbV9yZW1vdmVkQ2FudmFzSWRlbnRpZmllcnMuY2xlYXIo
KTsKLSNlbmRpZgotCiAgICAgaWYgKG1fY2FudmFzRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkK
ICAgICAgICAgbV9jYW52YXNEZXN0cm95ZWRUaW1lci5zdG9wKCk7CisKKyAgICBtX2lkZW50aWZp
ZXJUb0luc3BlY3RvclByb2dyYW0uY2xlYXIoKTsKKyAgICBtX3JlbW92ZWRQcm9ncmFtSWRlbnRp
ZmllcnMuY2xlYXIoKTsKKyAgICBpZiAobV9wcm9ncmFtRGVzdHJveWVkVGltZXIuaXNBY3RpdmUo
KSkKKyAgICAgICAgbV9wcm9ncmFtRGVzdHJveWVkVGltZXIuc3RvcCgpOwogfQogCiBJbnNwZWN0
b3JDYW52YXMmIEluc3BlY3RvckNhbnZhc0FnZW50OjpiaW5kQ2FudmFzKENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQmIGNvbnRleHQsIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSkKQEAgLTgwNSwxMyArODQw
LDE4IEBAIFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+IEluc3BlY3RvckNhbnZhc0FnZW50OjpmaW5k
SW5zcGVjdG9yQ2FudmFzKFdlYkdQVURldmljZSYKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFdF
QkdMKQotU3RyaW5nIEluc3BlY3RvckNhbnZhc0FnZW50Ojp1bmJpbmRQcm9ncmFtKEluc3BlY3Rv
clNoYWRlclByb2dyYW0mIGluc3BlY3RvclByb2dyYW0pCit2b2lkIEluc3BlY3RvckNhbnZhc0Fn
ZW50Ojp1bmJpbmRQcm9ncmFtKEluc3BlY3RvclNoYWRlclByb2dyYW0mIGluc3BlY3RvclByb2dy
YW0pCiB7CiAgICAgU3RyaW5nIGlkZW50aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFtLmlkZW50aWZp
ZXIoKTsKICAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0ucmVtb3ZlKGlkZW50aWZp
ZXIpOwogCi0gICAgcmV0dXJuIGlkZW50aWZpZXI7CisgICAgLy8gVGhpcyBjYW4gYmUgY2FsbGVk
IGluIHJlc3BvbnNlIHRvIEdDLiBEdWUgdG8gdGhlIHNpbmdsZS1wcm9jZXNzIG1vZGVsIHVzZWQg
aW4gV2ViS2l0MSwgdGhlCisgICAgLy8gZXZlbnQgbXVzdCBiZSBkaXNwYXRjaGVkIGZyb20gYSB0
aW1lciB0byBwcmV2ZW50IHRoZSBmcm9udGVuZCBmcm9tIG1ha2luZyBKUyBhbGxvY2F0aW9ucwor
ICAgIC8vIHdoaWxlIHRoZSBHQyBpcyBzdGlsbCBhY3RpdmUuCisgICAgbV9yZW1vdmVkUHJvZ3Jh
bUlkZW50aWZpZXJzLmFwcGVuZChpZGVudGlmaWVyKTsKKworICAgIGlmICghbV9wcm9ncmFtRGVz
dHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9wcm9ncmFtRGVzdHJveWVkVGltZXIu
c3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6YXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkKQpAQCAtODI0LDEwICs4NjQsMjIg
QEAgUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZhc0FnZW50Ojph
c3NlcnRJbnNwZWN0b3JQcm9ncmFtKEVycm8KICAgICByZXR1cm4gaW5zcGVjdG9yUHJvZ3JhbTsK
IH0KIAorI2lmIEVOQUJMRShXRUJHTCkKIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6ZmluZEluc3BlY3RvclByb2dyYW0oV2ViR0xQcm9ncmFtJiBw
cm9ncmFtKQogewogICAgIGZvciAoYXV0byYgaW5zcGVjdG9yUHJvZ3JhbSA6IG1faWRlbnRpZmll
clRvSW5zcGVjdG9yUHJvZ3JhbS52YWx1ZXMoKSkgewotICAgICAgICBpZiAoJmluc3BlY3RvclBy
b2dyYW0tPnByb2dyYW0oKSA9PSAmcHJvZ3JhbSkKKyAgICAgICAgaWYgKGluc3BlY3RvclByb2dy
YW0tPnByb2dyYW0oKSA9PSAmcHJvZ3JhbSkKKyAgICAgICAgICAgIHJldHVybiBpbnNwZWN0b3JQ
cm9ncmFtOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYgRU5B
QkxFKFdFQkdQVSkKK1JlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6ZmluZEluc3BlY3RvclByb2dyYW0oV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQor
eworICAgIGZvciAoYXV0byYgaW5zcGVjdG9yUHJvZ3JhbSA6IG1faWRlbnRpZmllclRvSW5zcGVj
dG9yUHJvZ3JhbS52YWx1ZXMoKSkgeworICAgICAgICBpZiAoaW5zcGVjdG9yUHJvZ3JhbS0+cGlw
ZWxpbmUoKSA9PSAmcGlwZWxpbmUpCiAgICAgICAgICAgICByZXR1cm4gaW5zcGVjdG9yUHJvZ3Jh
bTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXggYmFlZGQ0Njdj
ZDk3MTdkNjU2YmM3Mzc2ZTBlZWJkMjIzZDJjMGZhNi4uNjBjNTZlOTZmYjY1MDE0OWJjN2ViNzg1
MmIyNTBiYTc4NmVjYjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaApAQCAtMzMsMTQgKzMzLDcgQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5j
bHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoV0VCR0wpCi0jaW5jbHVkZSAiSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5oIgotI2VuZGlmCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAog
bmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CkBAIC00
OSw2ICs0Miw3IEBAIGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKK2NsYXNzIEluc3BlY3RvclNo
YWRlclByb2dyYW07CiAjaWYgRU5BQkxFKFdFQkdMKQogY2xhc3MgV2ViR0xQcm9ncmFtOwogY2xh
c3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKQEAgLTU2LDYgKzUwLDcgQEAgY2xhc3MgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKICNpZiBFTkFCTEUoV0VCR1BVKQogY2xhc3MgR1BVQ2Fu
dmFzQ29udGV4dDsKIGNsYXNzIFdlYkdQVURldmljZTsKK2NsYXNzIFdlYkdQVVBpcGVsaW5lOwog
Y2xhc3MgV2ViR1BVU3dhcENoYWluOwogI2VuZGlmCiAKQEAgLTgzLDcgKzc4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KEVycm9yU3RyaW5n
JiwgaW50IGNvdW50KTsKICAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBjYW52YXNJZCwgY29uc3QgaW50KiBmcmFtZUNvdW50LCBjb25zdCBpbnQqIG1l
bW9yeUxpbWl0KTsKICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGNhbnZhc0lkKTsKLSAgICB2b2lkIHJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBT
dHJpbmcqKTsKKyAgICB2b2lkIHJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcqIHNv
dXJjZSk7CiAgICAgdm9pZCB1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZSk7CiAgICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCk7CiAgICAgdm9pZCBzZXRTaGFkZXJQ
cm9ncmFtSGlnaGxpZ2h0ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwg
Ym9vbCBoaWdobGlnaHRlZCk7CkBAIC0xMDMsMTUgKzk4LDE3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNvbnNvbGVTdGFydFJlY29yZGluZ0NhbnZhcyhDYW52YXNSZW5kZXJpbmdDb250ZXh0JiwgSlND
OjpFeGVjU3RhdGUmLCBKU0M6OkpTT2JqZWN0KiBvcHRpb25zKTsKICNpZiBFTkFCTEUoV0VCR0wp
CiAgICAgdm9pZCBkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYs
IGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgdm9pZCB3aWxsRGVsZXRlUHJvZ3Jh
bShXZWJHTFByb2dyYW0mKTsKLSAgICBib29sIGlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKFdlYkdM
UHJvZ3JhbSYpOwotICAgIGJvb2wgaXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9n
cmFtJik7CisgICAgdm9pZCBkaWRDcmVhdGVXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJHTFByb2dy
YW0oV2ViR0xQcm9ncmFtJik7CisgICAgYm9vbCBpc1dlYkdMUHJvZ3JhbURpc2FibGVkKFdlYkdM
UHJvZ3JhbSYpOworICAgIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChXZWJHTFByb2dy
YW0mKTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgdm9pZCBkaWRDcmVhdGVXZWJH
UFVEZXZpY2UoV2ViR1BVRGV2aWNlJik7CiAgICAgdm9pZCB3aWxsRGVzdHJveVdlYkdQVURldmlj
ZShXZWJHUFVEZXZpY2UmKTsKICAgICB2b2lkIHdpbGxDb25maWd1cmVTd2FwQ2hhaW4oR1BVQ2Fu
dmFzQ29udGV4dCYsIFdlYkdQVVN3YXBDaGFpbiYpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViR1BV
UGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwgV2ViR1BVUGlwZWxpbmUmKTsKKyAgICB2b2lkIHdpbGxE
ZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmKTsKICNlbmRpZgogCiBwcml2YXRl
OgpAQCAtMTIzLDcgKzEyMCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFJlY29yZGluZyhJ
bnNwZWN0b3JDYW52YXMmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpSZWNvcmRpbmc6OkluaXRpYXRv
ciwgUmVjb3JkaW5nT3B0aW9ucyYmID0geyB9KTsKIAogICAgIHZvaWQgY2FudmFzRGVzdHJveWVk
VGltZXJGaXJlZCgpOwotICAgIHZvaWQgY2xlYXJDYW52YXNEYXRhKCk7CisgICAgdm9pZCBwcm9n
cmFtRGVzdHJveWVkVGltZXJGaXJlZCgpOworICAgIHZvaWQgcmVzZXQoKTsKKwogICAgIEluc3Bl
Y3RvckNhbnZhcyYgYmluZENhbnZhcyhDYW52YXNSZW5kZXJpbmdDb250ZXh0JiwgYm9vbCBjYXB0
dXJlQmFja3RyYWNlKTsKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIEluc3BlY3RvckNhbnZhcyYg
YmluZENhbnZhcyhXZWJHUFVEZXZpY2UmLCBib29sIGNhcHR1cmVCYWNrdHJhY2UpOwpAQCAtMTM1
LDExICsxMzQsMTQgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW5zcGVjdG9yQ2FudmFzPiBmaW5k
SW5zcGVjdG9yQ2FudmFzKFdlYkdQVURldmljZSYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VC
R0wpCi0gICAgU3RyaW5nIHVuYmluZFByb2dyYW0oSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSYpOwor
ICAgIHZvaWQgdW5iaW5kUHJvZ3JhbShJbnNwZWN0b3JTaGFkZXJQcm9ncmFtJik7CiAgICAgUmVm
UHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IGFzc2VydEluc3BlY3RvclByb2dyYW0oRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCk7CisjaWYgRU5BQkxFKFdFQkdMKQogICAg
IFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBmaW5kSW5zcGVjdG9yUHJvZ3JhbShXZWJH
TFByb2dyYW0mKTsKICNlbmRpZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgUmVmUHRyPEluc3Bl
Y3RvclNoYWRlclByb2dyYW0+IGZpbmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdQVVBpcGVsaW5lJik7
CisjZW5kaWYKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNhbnZhc0Zyb250ZW5k
RGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6
Q2FudmFzQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CkBAIC0xNDgsMTQg
KzE1MCwxNCBAQCBwcml2YXRlOgogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIAogICAgIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yQ2FudmFzPj4gbV9pZGVudGlmaWVyVG9JbnNw
ZWN0b3JDYW52YXM7Ci0jaWYgRU5BQkxFKFdFQkdMKQotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQ
dHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4+IG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3Jh
bTsKLSNlbmRpZgogICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZENhbnZhc0lkZW50aWZpZXJz
OworICAgIFRpbWVyIG1fY2FudmFzRGVzdHJveWVkVGltZXI7CisKKyAgICBIYXNoTWFwPFN0cmlu
ZywgUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+PiBtX2lkZW50aWZpZXJUb0luc3BlY3Rv
clByb2dyYW07CisgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkUHJvZ3JhbUlkZW50aWZpZXJz
OworICAgIFRpbWVyIG1fcHJvZ3JhbURlc3Ryb3llZFRpbWVyOwogCiAgICAgT3B0aW9uYWw8c2l6
ZV90PiBtX3JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudDsKLQotICAgIFRpbWVyIG1fY2Fu
dmFzRGVzdHJveWVkVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVs
aW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBp
cGVsaW5lLmgKaW5kZXggY2FmYzZlNGVmMTg1ZDQzYTc4NDdjOTBmYmY3YjdmNTk3NDdjOTc0YS4u
YjU2OTlkNDcyOWI3M2E3MTY1MjIwM2NjYTA2ZTA5NDE2NDM4OGU0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxp
bmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUg
IkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
LmgiCiAjaW5jbHVkZSAiV0hMU0xQcmVwYXJlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zOCwyNyArNDAsMzkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBHUFVEZXZpY2U7CiBjbGFzcyBHUFVFcnJvclNjb3BlczsKK2Ns
YXNzIEdQVVBpcGVsaW5lTGF5b3V0OwogCiBzdHJ1Y3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvcjsKIAogdXNpbmcgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmUgPSBNVExDb21wdXRlUGlwZWxp
bmVTdGF0ZTsKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHIgPSBSZXRhaW5Q
dHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+OwogCi1jbGFzcyBHUFVDb21wdXRlUGlwZWxpbmUg
OiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb21wdXRlUGlwZWxpbmU+IHsKK2NsYXNzIEdQVUNvbXB1
dGVQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBHUFVQaXBlbGluZSB7CiBwdWJsaWM6CisgICAgdmly
dHVhbCB+R1BVQ29tcHV0ZVBpcGVsaW5lKCk7CisKICAgICBzdGF0aWMgUmVmUHRyPEdQVUNvbXB1
dGVQaXBlbGluZT4gdHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYsIGNvbnN0IEdQVUNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3ImLCBHUFVFcnJvclNjb3BlcyYpOwogCisgICAgYm9vbCBpc0NvbXB1
dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGJvb2wgcmVjb21waWxl
KGNvbnN0IEdQVURldmljZSYsIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciYmIGNvbXB1
dGVTdGFnZSk7CisKICAgICBjb25zdCBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZSogcGxhdGZvcm1D
b21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5l
LmdldCgpOyB9CiAKICAgICBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMgY29tcHV0ZURpbWVuc2lv
bnMoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVEaW1lbnNpb25zOyB9CiAKIHByaXZhdGU6Ci0g
ICAgR1BVQ29tcHV0ZVBpcGVsaW5lKFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHImJiwg
V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zKTsKKyAgICBHUFVDb21wdXRlUGlwZWxpbmUoUGxhdGZv
cm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciYmLCBXSExTTDo6Q29tcHV0ZURpbWVuc2lvbnMsIEdQ
VVBpcGVsaW5lTGF5b3V0Jik7CiAKICAgICBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRy
IG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmU7CiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25z
IG1fY29tcHV0ZURpbWVuc2lvbnMgeyAwLCAwLCAwIH07CisKKyAgICAvLyBQcmVzZXJ2ZWQgZm9y
IFdlYiBJbnNwZWN0b3IgcmVjb21waWxhdGlvbi4KKyAgICBSZWZQdHI8R1BVUGlwZWxpbmVMYXlv
dXQ+IG1fbGF5b3V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0dQVVBJUEVMSU5FKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGluZSwgaXND
b21wdXRlUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43Yzg4MTY1NTQzNTcxMjMxMDViNmU5ZTdjODgzMzQxZmMyYmQ4MjZkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVs
aW5lLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0dQVVBpcGVsaW5lOjp+R1BVUGlwZWxpbmUoKSA9IGRlZmF1bHQ7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxp
bmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk0MmVlOGQ3YTNiN2VmZjE5OTA2ZTk1MDA4MTBmMzQ0MmMzY2ViNDUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UGlwZWxpbmUuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVVBpcGVsaW5lPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R1BVUGlwZWxpbmUoKTsKKwor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfR1BVUElQRUxJTkUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1lKSBcCisgICAgc3Rh
dGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkdQVVBpcGVsaW5lJiBwaXBlbGluZSkgeyBy
ZXR1cm4gcGlwZWxpbmUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5E
KCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yLmgKaW5kZXggMGVlMWFmYTIzYTgzMzY3NjZmODYwMjgzNDI5NmQzMDM1YmZj
Y2RjOS4uMjdjMDYyOGVmN2EzMDM1ZTU5MjIxZmVkOTg3ZDVmNTdkYjA3YWQxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaApAQCAtMzgsMTMgKzM4LDEzIEBAIHN0
cnVjdCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JCYXNlIHsKIH07CiAKIHN0cnVjdCBH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3JCYXNlIHsKLSAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IoUmVmPGNvbnN0
IEdQVVNoYWRlck1vZHVsZT4mJiBtb2R1bGUsIGNvbnN0IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvckJhc2UmIGJhc2UpCisgICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yKFJl
ZjxHUFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlLCBjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3JCYXNlJiBiYXNlKQogICAgICAgICA6IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3Jp
cHRvckJhc2UoYmFzZSkKICAgICAgICAgLCBtb2R1bGUgeyBXVEZNb3ZlKG1vZHVsZSkgfQogICAg
IHsKICAgICB9CiAKLSAgICBSZWY8Y29uc3QgR1BVU2hhZGVyTW9kdWxlPiBtb2R1bGU7CisgICAg
UmVmPEdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJl
bmRlclBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
UmVuZGVyUGlwZWxpbmUuaAppbmRleCA4M2M4ZTFkOWQ4MThlMWRjN2E3YjI0MjA3MjhlNWM5MDY4
ZDYwYzA1Li5hMDgwMGQ0NWY4Yjk0M2YxMGRiOWEzYzg3NTYxNmU1ZWE0YzIyNGViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlwZWxp
bmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVy
UGlwZWxpbmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2lu
Y2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNj
cmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2
LDEwICs0OCwxNiBAQCBjbGFzcyBHUFVFcnJvclNjb3BlczsKIHVzaW5nIFBsYXRmb3JtUmVuZGVy
UGlwZWxpbmUgPSBNVExSZW5kZXJQaXBlbGluZVN0YXRlOwogdXNpbmcgUGxhdGZvcm1SZW5kZXJQ
aXBlbGluZVNtYXJ0UHRyID0gUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+OwogCi1j
bGFzcyBHUFVSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVJlbmRlclBpcGVs
aW5lPiB7CitjbGFzcyBHUFVSZW5kZXJQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBHUFVQaXBlbGlu
ZSB7CiBwdWJsaWM6CisgICAgdmlydHVhbCB+R1BVUmVuZGVyUGlwZWxpbmUoKTsKKwogICAgIHN0
YXRpYyBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2Um
LCBjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBHUFVFcnJvclNjb3BlcyYpOwog
CisgICAgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisg
ICAgYm9vbCByZWNvbXBpbGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VE
ZXNjcmlwdG9yJiYgdmVydGV4U3RhZ2UsIE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvcj4mJiBmcmFnbWVudFN0YWdlKTsKKwogI2lmIFVTRShNRVRBTCkKICAgICBNVExEZXB0
aFN0ZW5jaWxTdGF0ZSAqZGVwdGhTdGVuY2lsU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RlcHRo
U3RlbmNpbFN0YXRlLmdldCgpOyB9CiAjZW5kaWYKQEAgLTU5LDE1ICs2NywyMSBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAjaWYgVVNFKE1FVEFMKQotICAgIEdQVVJlbmRlclBpcGVsaW5lKFJldGFp
blB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4mJiwgUGxhdGZvcm1SZW5kZXJQaXBlbGluZVNtYXJ0
UHRyJiYsIEdQVVByaW1pdGl2ZVRvcG9sb2d5LCBPcHRpb25hbDxHUFVJbmRleEZvcm1hdD4pOwor
ICAgIEdQVVJlbmRlclBpcGVsaW5lKFJldGFpblB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4mJiwg
UGxhdGZvcm1SZW5kZXJQaXBlbGluZVNtYXJ0UHRyJiYsIEdQVVByaW1pdGl2ZVRvcG9sb2d5LCBP
cHRpb25hbDxHUFVJbmRleEZvcm1hdD4sIEdQVVBpcGVsaW5lTGF5b3V0JiwgY29uc3QgR1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSYpOwogCiAgICAgUmV0YWluUHRyPE1UTERlcHRoU3Rl
bmNpbFN0YXRlPiBtX2RlcHRoU3RlbmNpbFN0YXRlOwogI2VuZGlmIC8vIFVTRShNRVRBTCkKICAg
ICBQbGF0Zm9ybVJlbmRlclBpcGVsaW5lU21hcnRQdHIgbV9wbGF0Zm9ybVJlbmRlclBpcGVsaW5l
OwogICAgIEdQVVByaW1pdGl2ZVRvcG9sb2d5IG1fcHJpbWl0aXZlVG9wb2xvZ3k7CiAgICAgT3B0
aW9uYWw8R1BVSW5kZXhGb3JtYXQ+IG1faW5kZXhGb3JtYXQ7CisKKyAgICAvLyBQcmVzZXJ2ZWQg
Zm9yIFdlYiBJbnNwZWN0b3IgcmVjb21waWxhdGlvbi4KKyAgICBSZWZQdHI8R1BVUGlwZWxpbmVM
YXlvdXQ+IG1fbGF5b3V0OworICAgIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvckJhc2UgbV9y
ZW5kZXJEZXNjcmlwdG9yQmFzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19HUFVQSVBFTElORShXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGlu
ZSwgaXNSZW5kZXJQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21w
dXRlUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQppbmRleCA3ZDhmOGIyODE4ZjE3ODQ1
MzgxN2VkZjYyMzk4MzUxOTI2NWIyMGNmLi4yNTgyOWVhNmVhNzk1OWVlOGQwNmYxNGNmNjQzYzk3
MjA1YTEzMjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCkBA
IC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgi
CiAjaW1wb3J0ICJHUFVEZXZpY2UuaCIKICNpbXBvcnQgIkdQVUVycm9yU2NvcGVzLmgiCisjaW1w
b3J0ICJHUFVQaXBlbGluZUxheW91dC5oIgogI2ltcG9ydCAiR1BVUGlwZWxpbmVNZXRhbENvbnZl
cnRMYXlvdXQuaCIKICNpbXBvcnQgIldITFNMUHJlcGFyZS5oIgogI2ltcG9ydCA8TWV0YWwvTWV0
YWwuaD4KQEAgLTE5NCwxNSArMTk1LDM1IEBAIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+IEdQ
VUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlCiAgICAg
aWYgKCFjcmVhdGVSZXN1bHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBHUFVDb21wdXRlUGlwZWxpbmUoV1RGTW92ZShjcmVhdGVSZXN1bHQtPnBp
cGVsaW5lU3RhdGUpLCBjcmVhdGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zKSk7CisgICAgQVNT
RVJUKGRlc2NyaXB0b3IubGF5b3V0KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUNvbXB1
dGVQaXBlbGluZShXVEZNb3ZlKGNyZWF0ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSksIGNyZWF0ZVJl
c3VsdC0+Y29tcHV0ZURpbWVuc2lvbnMsICpkZXNjcmlwdG9yLmxheW91dCkpOwogfQogCi1HUFVD
b21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShSZXRhaW5QdHI8TVRMQ29tcHV0ZVBp
cGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRl
RGltZW5zaW9ucykKLSAgICA6IG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RGTW92ZShwaXBl
bGluZSkpCitHUFVDb21wdXRlUGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShSZXRhaW5QdHI8
TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21wdXRlRGltZW5z
aW9ucyBjb21wdXRlRGltZW5zaW9ucywgR1BVUGlwZWxpbmVMYXlvdXQmIGxheW91dCkKKyAgICA6
IEdQVVBpcGVsaW5lKCkKKyAgICAsIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RGTW92ZShw
aXBlbGluZSkpCiAgICAgLCBtX2NvbXB1dGVEaW1lbnNpb25zKGNvbXB1dGVEaW1lbnNpb25zKQor
ICAgICwgbV9sYXlvdXQobWFrZVJlZihsYXlvdXQpKQogewogfQogCitHUFVDb21wdXRlUGlwZWxp
bmU6On5HUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgR1BVQ29tcHV0ZVBp
cGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVVByb2dyYW1tYWJs
ZVN0YWdlRGVzY3JpcHRvciYmIGNvbXB1dGVTdGFnZSkKK3sKKyAgICBpZiAobV9sYXlvdXQpIHsK
KyAgICAgICAgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yKG1ha2VSZWYo
Km1fbGF5b3V0KSwgV1RGTW92ZShjb21wdXRlU3RhZ2UpKTsKKyAgICAgICAgYXV0byBlcnJvclNj
b3BlcyA9IEdQVUVycm9yU2NvcGVzOjpjcmVhdGUoW10gKEdQVUVycm9yJiYpIHsgfSk7CisgICAg
ICAgIGlmIChhdXRvIGNyZWF0ZVJlc3VsdCA9IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0
YXRlKGRldmljZSwgZGVzY3JpcHRvciwgZXJyb3JTY29wZXMpKSB7CisgICAgICAgICAgICBtX3Bs
YXRmb3JtQ29tcHV0ZVBpcGVsaW5lID0gV1RGTW92ZShjcmVhdGVSZXN1bHQtPnBpcGVsaW5lU3Rh
dGUpOworICAgICAgICAgICAgbV9jb21wdXRlRGltZW5zaW9ucyA9IGNyZWF0ZVJlc3VsdC0+Y29t
cHV0ZURpbWVuc2lvbnM7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0
YWwubW0KaW5kZXggMjgyNDA4NzQ5ODk3MTA0Zjg3YmIwNmE5NWZjYmI3YjY3Njg5YjM4YS4uOWY0
ZDA3M2E0MzkyMjFkMWNiNDQwYTllYzQ2MjdjOTJmN2Q4ZTU2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0
YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQ
VVJlbmRlclBpcGVsaW5lTWV0YWwubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdQVUVy
cm9yU2NvcGVzLmgiCiAjaW1wb3J0ICJHUFVMaW1pdHMuaCIKICNpbXBvcnQgIkdQVVBpcGVsaW5l
TWV0YWxDb252ZXJ0TGF5b3V0LmgiCisjaW1wb3J0ICJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuaCIKICNpbXBvcnQgIkdQVVV0aWxzLmgiCiAjaW1wb3J0ICJXSExTTFByZXBhcmUuaCIKICNp
bXBvcnQgIldITFNMVmVydGV4QnVmZmVySW5kZXhDYWxjdWxhdG9yLmgiCkBAIC00ODMsNyArNDg0
LDcgQEAgc3RhdGljIFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IGNvbnZl
cnRSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IoY28KICAgICByZXR1cm4gbXRsRGVzY3JpcHRvcjsK
IH0KIAotc3RhdGljIFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiB0cnlDcmVhdGVN
dGxSZW5kZXJQaXBlbGluZVN0YXRlKGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYg
ZGVzY3JpcHRvciwgY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVUVycm9yU2NvcGVzJiBlcnJv
clNjb3BlcykKK3N0YXRpYyBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gdHJ5Q3Jl
YXRlTXRsUmVuZGVyUGlwZWxpbmVTdGF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgY29uc3Qg
R1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBHUFVFcnJvclNjb3BlcyYg
ZXJyb3JTY29wZXMpCiB7CiAgICAgaWYgKCFkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSkgewogICAg
ICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZpeGVkRXJyb3IoIkludmFsaWQgR1BVRGV2aWNl
ISIpOwpAQCAtNTIyLDIxICs1MjMsNDEgQEAgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiBHUFVS
ZW5kZXJQaXBlbGluZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLAogCiAgICAg
Ly8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgzODcg
ZGVwdGhTdGVuY2lsQXR0YWNobWVudERlc2NyaXB0b3IgaXNuJ3QgaW1wbGVtZW50ZWQgeWV0IGZv
ciBXSExTTCBjb21waWxlci4KIAotICAgIGF1dG8gcGlwZWxpbmUgPSB0cnlDcmVhdGVNdGxSZW5k
ZXJQaXBlbGluZVN0YXRlKGRlc2NyaXB0b3IsIGRldmljZSwgZXJyb3JTY29wZXMpOworICAgIGF1
dG8gcGlwZWxpbmUgPSB0cnlDcmVhdGVNdGxSZW5kZXJQaXBlbGluZVN0YXRlKGRldmljZSwgZGVz
Y3JpcHRvciwgZXJyb3JTY29wZXMpOwogICAgIGlmICghcGlwZWxpbmUpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVSZW5kZXJQaXBlbGluZShX
VEZNb3ZlKGRlcHRoU3RlbmNpbCksIFdURk1vdmUocGlwZWxpbmUpLCBkZXNjcmlwdG9yLnByaW1p
dGl2ZVRvcG9sb2d5LCBkZXNjcmlwdG9yLnZlcnRleElucHV0LmluZGV4Rm9ybWF0KSk7CisgICAg
QVNTRVJUKGRlc2NyaXB0b3IubGF5b3V0KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVVJl
bmRlclBpcGVsaW5lKFdURk1vdmUoZGVwdGhTdGVuY2lsKSwgV1RGTW92ZShwaXBlbGluZSksIGRl
c2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3ksIGRlc2NyaXB0b3IudmVydGV4SW5wdXQuaW5kZXhG
b3JtYXQsICpkZXNjcmlwdG9yLmxheW91dCwgZGVzY3JpcHRvcikpOwogfQogCi1HUFVSZW5kZXJQ
aXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUoUmV0YWluUHRyPE1UTERlcHRoU3RlbmNpbFN0YXRl
PiYmIGRlcHRoU3RlbmNpbCwgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+JiYgcGlw
ZWxpbmUsIEdQVVByaW1pdGl2ZVRvcG9sb2d5IHRvcG9sb2d5LCBPcHRpb25hbDxHUFVJbmRleEZv
cm1hdD4gZm9ybWF0KQotICAgIDogbV9kZXB0aFN0ZW5jaWxTdGF0ZShXVEZNb3ZlKGRlcHRoU3Rl
bmNpbCkpCitHUFVSZW5kZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUoUmV0YWluUHRyPE1U
TERlcHRoU3RlbmNpbFN0YXRlPiYmIGRlcHRoU3RlbmNpbCwgUmV0YWluUHRyPE1UTFJlbmRlclBp
cGVsaW5lU3RhdGU+JiYgcGlwZWxpbmUsIEdQVVByaW1pdGl2ZVRvcG9sb2d5IHRvcG9sb2d5LCBP
cHRpb25hbDxHUFVJbmRleEZvcm1hdD4gZm9ybWF0LCBHUFVQaXBlbGluZUxheW91dCYgbGF5b3V0
LCBjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3JCYXNlJiByZW5kZXJEZXNjcmlwdG9y
QmFzZSkKKyAgICA6IEdQVVBpcGVsaW5lKCkKKyAgICAsIG1fZGVwdGhTdGVuY2lsU3RhdGUoV1RG
TW92ZShkZXB0aFN0ZW5jaWwpKQogICAgICwgbV9wbGF0Zm9ybVJlbmRlclBpcGVsaW5lKFdURk1v
dmUocGlwZWxpbmUpKQogICAgICwgbV9wcmltaXRpdmVUb3BvbG9neSh0b3BvbG9neSkKICAgICAs
IG1faW5kZXhGb3JtYXQoZm9ybWF0KQorICAgICwgbV9sYXlvdXQobWFrZVJlZihsYXlvdXQpKQor
ICAgICwgbV9yZW5kZXJEZXNjcmlwdG9yQmFzZShyZW5kZXJEZXNjcmlwdG9yQmFzZSkKIHsKIH0K
IAorR1BVUmVuZGVyUGlwZWxpbmU6On5HUFVSZW5kZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKwor
Ym9vbCBHUFVSZW5kZXJQaXBlbGluZTo6cmVjb21waWxlKGNvbnN0IEdQVURldmljZSYgZGV2aWNl
LCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3ImJiB2ZXJ0ZXhTdGFnZSwgT3B0aW9uYWw8
R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yPiYmIGZyYWdtZW50U3RhZ2UpCit7CisgICAg
aWYgKG1fbGF5b3V0KSB7CisgICAgICAgIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciBkZXNj
cmlwdG9yKG1ha2VSZWYoKm1fbGF5b3V0KSwgV1RGTW92ZSh2ZXJ0ZXhTdGFnZSksIFdURk1vdmUo
ZnJhZ21lbnRTdGFnZSksIG1fcmVuZGVyRGVzY3JpcHRvckJhc2UpOworICAgICAgICBhdXRvIGVy
cm9yU2NvcGVzID0gR1BVRXJyb3JTY29wZXM6OmNyZWF0ZShbXSAoR1BVRXJyb3ImJikgeyB9KTsK
KyAgICAgICAgaWYgKGF1dG8gcGlwZWxpbmUgPSB0cnlDcmVhdGVNdGxSZW5kZXJQaXBlbGluZVN0
YXRlKGRldmljZSwgZGVzY3JpcHRvciwgZXJyb3JTY29wZXMpKSB7CisgICAgICAgICAgICBtX3Bs
YXRmb3JtUmVuZGVyUGlwZWxpbmUgPSBXVEZNb3ZlKHBpcGVsaW5lKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggYTZhYTQxMTJmYmZkNDEzYjQxNmU4ZDMzNjEx
MWY1MjYyNjVkYmEwZC4uNzgzYjg1ZWNjM2JmODVlMDJiNjEzYzFhNjY1YjNiMDIzMTVhMTJiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0yNjYsNiArMjY2LDkgQEAgbG9j
YWxpemVkU3RyaW5nc1siQ29tcG9zaXRlZCJdID0gIkNvbXBvc2l0ZWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siQ29tcHJlc3NlZCJdID0gIkNvbXByZXNzZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29t
cHJlc3Npb24iXSA9ICJDb21wcmVzc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2lv
bjoiXSA9ICJDb21wcmVzc2lvbjoiOworbG9jYWxpemVkU3RyaW5nc1siQ29tcHV0ZSJdID0gIkNv
bXB1dGUiOworbG9jYWxpemVkU3RyaW5nc1siQ29tcHV0ZSBQaXBlbGluZSAlZCJdID0gIkNvbXB1
dGUgUGlwZWxpbmUgJWQiOworbG9jYWxpemVkU3RyaW5nc1siQ29tcHV0ZSBTaGFkZXIiXSA9ICJD
b21wdXRlIFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlZCJdID0gIkNvbXB1dGVk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbmRpdGlvbiJdID0gIkNvbmRpdGlvbiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJDb25kaXRpb25hbCBleHByZXNzaW9uIl0gPSAiQ29uZGl0aW9uYWwgZXhwcmVz
c2lvbiI7CkBAIC00NjMsNiArNDY2LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIHRoYXQg
b25seSBvbmUgbWFpbiBjb250ZW50IHNlY3Rpb24gaXMgdXNlZCBvbiB0aGUgcGFnZS4KIGxvY2Fs
aXplZFN0cmluZ3NbIkVuc3VyZSB0aGF0IHZhbHVlcyBmb3IgXHUwMDIyJXNcdTAwMjIgYXJlIHZh
bGlkLiJdID0gIkVuc3VyZSB0aGF0IHZhbHVlcyBmb3IgXHUwMDIyJXNcdTAwMjIgYXJlIHZhbGlk
LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRlcmVkIEZ1bGwtU2NyZWVuIE1vZGUiXSA9ICJFbnRl
cmVkIEZ1bGwtU2NyZWVuIE1vZGUiOwogbG9jYWxpemVkU3RyaW5nc1siRW50aXJlIFJlY29yZGlu
ZyJdID0gIkVudGlyZSBSZWNvcmRpbmciOworbG9jYWxpemVkU3RyaW5nc1siRW50cnkgcG9pbnQ6
ICJdID0gIkVudHJ5IHBvaW50OiAiOwogbG9jYWxpemVkU3RyaW5nc1siRXJyb3IiXSA9ICJFcnJv
ciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvcjogIl0gPSAiRXJyb3I6ICI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJFcnJvcnMiXSA9ICJFcnJvcnMiOwpAQCAtODgxLDYgKzg4NSw3IEBAIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlbW92ZSBXYXRjaCBFeHByZXNzaW9uIl0gPSAiUmVtb3ZlIFdhdGNoIEV4cHJl
c3Npb24iOwogbG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlIHByb2JlIl0gPSAiUmVtb3ZlIHByb2Jl
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSB0aGlzIGJyZWFrcG9pbnQgYWN0aW9uIl0gPSAi
UmVtb3ZlIHRoaXMgYnJlYWtwb2ludCBhY3Rpb24iOwogbG9jYWxpemVkU3RyaW5nc1siUmVtb3Zl
ZCBkZXNjZW5kYW50ICJdID0gIlJlbW92ZWQgZGVzY2VuZGFudCAiOworbG9jYWxpemVkU3RyaW5n
c1siUmVuZGVyIFBpcGVsaW5lICVkIl0gPSAiUmVuZGVyIFBpcGVsaW5lICVkIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlbmRlcmluZyBGcmFtZXMiXSA9ICJSZW5kZXJpbmcgRnJhbWVzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlcGVhdGluZyBMaW5lYXIgR3JhZGllbnQiXSA9ICJSZXBlYXRpbmcgTGlu
ZWFyIEdyYWRpZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcGVhdGluZyBSYWRpYWwgR3JhZGll
bnQiXSA9ICJSZXBlYXRpbmcgUmFkaWFsIEdyYWRpZW50IjsKQEAgLTk5Nyw3ICsxMDAyLDYgQEAg
bG9jYWxpemVkU3RyaW5nc1siU2Vzc2lvbiBTdG9yYWdlIl0gPSAiU2Vzc2lvbiBTdG9yYWdlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlNldCB0byBBdXRvbWF0aWNhbGx5IENvbnRpbnVlIl0gPSAiU2V0
IHRvIEF1dG9tYXRpY2FsbHkgQ29udGludWUiOwogbG9jYWxpemVkU3RyaW5nc1siU2V0dGVyIl0g
PSAiU2V0dGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNldHRpbmdzIl0gPSAiU2V0dGluZ3MiOwot
bG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIl0gPSAiU2hhZGVyIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlNoYWRlciBQcm9ncmFtcyJdID0gIlNoYWRlciBQcm9ncmFtcyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJTaGFkb3cgQ29udGVudCJdID0gIlNoYWRvdyBDb250ZW50IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlNoYWRvdyBDb250ZW50ICglcykiXSA9ICJTaGFkb3cgQ29udGVudCAoJXMpIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9DYW52YXNNYW5hZ2VyLmpzCmluZGV4IDM4OWNiNzEzMDZkNTM2OGEzNTI3ZWU4NmMzOGQy
MDllMTViZjU4OWQuLjM4ZjAxYmI2NjY3ZWMwMDgzMDdmMGUzZjUyZjQyZGZlMmJlMWY1ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0NhbnZhc01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpAQCAtMjM0LDcgKzIzNCw3IEBAIFdJLkNh
bnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIGNhbnZhcy5lbmFibGVFeHRlbnNpb24oZXh0ZW5zaW9uKTsKICAgICB9CiAKLSAgICBwcm9n
cmFtQ3JlYXRlZChjYW52YXNJZGVudGlmaWVyLCBwcm9ncmFtSWRlbnRpZmllcikKKyAgICBwcm9n
cmFtQ3JlYXRlZChjYW52YXNJZGVudGlmaWVyLCBwcm9ncmFtSWRlbnRpZmllciwgcHJvZ3JhbVR5
cGUpCiAgICAgewogICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5fY2FudmFzSWRlbnRpZmllck1h
cC5nZXQoY2FudmFzSWRlbnRpZmllcik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbnZhcyk7
CkBAIC0yNDMsNyArMjQzLDExIEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3No
YWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmhhcyhwcm9ncmFtSWRlbnRpZmllciksIGBTaGFkZXJQ
cm9ncmFtIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHtwcm9ncmFtSWRlbnRpZmllcn0uYCk7CiAK
LSAgICAgICAgbGV0IHByb2dyYW0gPSBuZXcgV0kuU2hhZGVyUHJvZ3JhbShwcm9ncmFtSWRlbnRp
ZmllciwgY2FudmFzKTsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzKTogYHByb2dy
YW1UeXBlYCBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKCFwcm9ncmFtVHlwZSkKKyAg
ICAgICAgICAgIHByb2dyYW1UeXBlID0gV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5k
ZXI7CisKKyAgICAgICAgbGV0IHByb2dyYW0gPSBuZXcgV0kuU2hhZGVyUHJvZ3JhbShwcm9ncmFt
SWRlbnRpZmllciwgcHJvZ3JhbVR5cGUsIGNhbnZhcyk7CiAgICAgICAgIHRoaXMuX3NoYWRlclBy
b2dyYW1JZGVudGlmaWVyTWFwLnNldChwcm9ncmFtLmlkZW50aWZpZXIsIHByb2dyYW0pOwogCiAg
ICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hZGQocHJvZ3JhbSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFz
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5q
cwppbmRleCBiOTI5ZjA2MjBmYWE5Y2QyYmZiMTRkZmFmNTc5MTExOTg0NTRmMzY0Li43ZDU2ZWMx
NzE2ZmFlMjIzZGE5NjZmODYwNDBmMTZkYWRmNDIxZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKQEAgLTQ1LDcgKzQ1
LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IHRoaXMuX3NoYWRlclByb2dyYW1Db2xsZWN0aW9uID0gbmV3IFdJLlNoYWRlclByb2dyYW1Db2xs
ZWN0aW9uOwogICAgICAgICB0aGlzLl9yZWNvcmRpbmdDb2xsZWN0aW9uID0gbmV3IFdJLlJlY29y
ZGluZ0NvbGxlY3Rpb247CiAKLSAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5
TnVtYmVyID0gMTsKKyAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVy
ID0gbnVsbDsKIAogICAgICAgICB0aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2UgPSBudWxsOwogCkBA
IC00MDksMTEgKzQwOSwxNSBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzLkV2
ZW50LlJlY29yZGluZ1N0b3BwZWQsIHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlcn0pOwogICAg
IH0KIAotICAgIG5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlcigpCisgICAgbmV4dFNoYWRl
clByb2dyYW1EaXNwbGF5TnVtYmVyRm9yUHJvZ3JhbVR5cGUocHJvZ3JhbVR5cGUpCiAgICAgewog
ICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5TaGFkZXJQcm9ncmFtLgogCi0gICAgICAgIHJldHVy
biB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIrKzsKKyAgICAgICAgaWYgKCF0
aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl9u
ZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIgPSB7fTsKKworICAgICAgICB0aGlzLl9uZXh0
U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXJbcHJvZ3JhbVR5cGVdID0gKHRoaXMuX25leHRTaGFk
ZXJQcm9ncmFtRGlzcGxheU51bWJlcltwcm9ncmFtVHlwZV0gfHwgMCkgKyAxOworICAgICAgICBy
ZXR1cm4gdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyW3Byb2dyYW1UeXBlXTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvU2hhZGVyUHJvZ3JhbS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9TaGFkZXJQcm9ncmFtLmpzCmluZGV4IGMxZWQ5YzhhYzdmYzQyMDdl
N2I4MGZkNzBjMjBmNzY4ZjA4MWQxNjkuLjY3ZjQ5ODQ1MDdkNDA2NjUwODU2NWYyY2FlZjk3YzVl
ZGNlYjYyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9TaGFkZXJQcm9ncmFtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9TaGFkZXJQcm9ncmFtLmpzCkBAIC0yNSwyNyArMjUsODMgQEAKIAog
V0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNzIFNoYWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmplY3QK
IHsKLSAgICBjb25zdHJ1Y3RvcihpZGVudGlmaWVyLCBjYW52YXMpCisgICAgY29uc3RydWN0b3Io
aWRlbnRpZmllciwgcHJvZ3JhbVR5cGUsIGNhbnZhcykKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGlkZW50aWZpZXIpOworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVz
KFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUpLmluY2x1ZGVzKHByb2dyYW1UeXBlKSk7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcyk7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KFNoYWRlclByb2dyYW0uY29udGV4dFR5cGVTdXBwb3J0c1Byb2dyYW1U
eXBlKGNhbnZhcy5jb250ZXh0VHlwZSwgcHJvZ3JhbVR5cGUpKTsKIAogICAgICAgICBzdXBlcigp
OwogCiAgICAgICAgIHRoaXMuX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgICAgICB0aGlz
Ll9wcm9ncmFtVHlwZSA9IHByb2dyYW1UeXBlOwogICAgICAgICB0aGlzLl9jYW52YXMgPSBjYW52
YXM7Ci0gICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIgPSBjYW52YXMubmV4dFNoYWRl
clByb2dyYW1EaXNwbGF5TnVtYmVyKCk7CiAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZmFsc2U7
CiAgICAgfQogCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgY29udGV4dFR5cGVTdXBwb3J0
c1Byb2dyYW1UeXBlKGNvbnRleHRUeXBlLCBwcm9ncmFtVHlwZSkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAoY29udGV4dFR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0w6CisgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMjoKKyAgICAg
ICAgICAgIHJldHVybiBwcm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5S
ZW5kZXI7CisKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVOgorICAg
ICAgICAgICAgcmV0dXJuIHByb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBl
LkNvbXB1dGUKKyAgICAgICAgICAgICAgICB8fCBwcm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3Jh
bS5Qcm9ncmFtVHlwZS5SZW5kZXI7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2Vy
dCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RhdGljIHByb2dyYW1U
eXBlU3VwcG9ydHNTaGFkZXJUeXBlKHByb2dyYW1UeXBlLCBzaGFkZXJUeXBlKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChwcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHJldHVybiBzaGFkZXJUeXBlID09PSBT
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZTsKKworICAgICAgICBjYXNlIFNoYWRlclBy
b2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgcmV0dXJuIHNoYWRlclR5cGUg
PT09IFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudAorICAgICAgICAgICAgICAgIHx8
IHNoYWRlclR5cGUgPT09IFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXg7CisgICAgICAg
IH0KKworICAgICAgICBjb25zb2xlLmFzc2VydCgpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRo
aXMuX2lkZW50aWZpZXI7IH0KKyAgICBnZXQgcHJvZ3JhbVR5cGUoKSB7IHJldHVybiB0aGlzLl9w
cm9ncmFtVHlwZTsgfQogICAgIGdldCBjYW52YXMoKSB7IHJldHVybiB0aGlzLl9jYW52YXM7IH0K
IAogICAgIGdldCBkaXNwbGF5TmFtZSgpCiAgICAgewotICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIlByb2dyYW0gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU51bWJlcik7CisgICAg
ICAgIGxldCBmb3JtYXQgPSBudWxsOworICAgICAgICBzd2l0Y2ggKHRoaXMuX2NhbnZhcy5jb250
ZXh0VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKKyAg
ICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAgZm9y
bWF0ID0gV0kuVUlTdHJpbmcoIlByb2dyYW0gJWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFU6CisgICAgICAgICAgICBzd2l0
Y2ggKHRoaXMuX3Byb2dyYW1UeXBlKSB7CisgICAgICAgICAgICBjYXNlIFNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgICAgICBmb3JtYXQgPSBXSS5VSVN0cmlu
ZygiQ29tcHV0ZSBQaXBlbGluZSAlZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjoKKyAgICAgICAgICAg
ICAgICBmb3JtYXQgPSBXSS5VSVN0cmluZygiUmVuZGVyIFBpcGVsaW5lICVkIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChmb3JtYXQpOworICAgICAgICBpZiAoIXRoaXMu
X3VuaXF1ZURpc3BsYXlOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl91bmlxdWVEaXNwbGF5TnVt
YmVyID0gdGhpcy5fY2FudmFzLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlckZvclByb2dy
YW1UeXBlKHRoaXMuX3Byb2dyYW1UeXBlKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdC5mb3JtYXQo
dGhpcy5fdW5pcXVlRGlzcGxheU51bWJlcik7CiAgICAgfQogCiAgICAgZ2V0IGRpc2FibGVkKCkK
QEAgLTU1LDYgKzExMSwxMiBAQCBXSS5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3Jh
bSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKQogICAgIHsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fY2Fu
dmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgdGhpcy5f
Y2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKwor
ICAgICAgICBpZiAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR1BVKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGlmICh0aGlzLl9k
aXNhYmxlZCA9PT0gZGlzYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTY1LDY3ICsx
MjcsNTcgQEAgV0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNzIFNoYWRlclByb2dyYW0gZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoU2hhZGVyUHJv
Z3JhbS5FdmVudC5EaXNhYmxlZENoYW5nZWQpOwogICAgIH0KIAotICAgIHJlcXVlc3RWZXJ0ZXhT
aGFkZXJTb3VyY2UoY2FsbGJhY2spCisgICAgcmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJUeXBl
LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHRoaXMuX3JlcXVlc3RTaGFkZXJTb3VyY2UoQ2Fu
dmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgsIGNhbGxiYWNrKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoT2JqZWN0LnZhbHVlcyhTaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUpLmluY2x1ZGVzKHNo
YWRlclR5cGUpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoU2hhZGVyUHJvZ3JhbS5wcm9ncmFt
VHlwZVN1cHBvcnRzU2hhZGVyVHlwZSh0aGlzLl9wcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSkpOwor
CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBjb250ZW50YCB3YXMgcmVuYW1l
ZCB0byBgc291cmNlYC4KKyAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZSh0
aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCAoZXJyb3IsIHNvdXJjZSkgPT4geworICAgICAg
ICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJv
cihlcnJvcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgbnVsbCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYWxsYmFjayhz
b3VyY2UpOworICAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXF1ZXN0RnJhZ21lbnRTaGFkZXJT
b3VyY2UoY2FsbGJhY2spCisgICAgdXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHNvdXJjZSkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX3JlcXVlc3RTaGFkZXJTb3VyY2UoQ2FudmFzQWdlbnQuU2hhZGVy
VHlwZS5GcmFnbWVudCwgY2FsbGJhY2spOwotICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQo
T2JqZWN0LnZhbHVlcyhTaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUpLmluY2x1ZGVzKHNoYWRlclR5
cGUpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoU2hhZGVyUHJvZ3JhbS5wcm9ncmFtVHlwZVN1
cHBvcnRzU2hhZGVyVHlwZSh0aGlzLl9wcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSkpOwogCi0gICAg
dXBkYXRlVmVydGV4U2hhZGVyKHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNo
YWRlcihDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCwgc291cmNlKTsKLSAgICB9Ci0KLSAg
ICB1cGRhdGVGcmFnbWVudFNoYWRlcihzb3VyY2UpCi0gICAgewotICAgICAgICB0aGlzLl91cGRh
dGVTaGFkZXIoQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwgc291cmNlKTsKKyAgICAg
ICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHRoaXMuX2lkZW50aWZpZXIsIHNoYWRlclR5cGUs
IHNvdXJjZSk7CiAgICAgfQogCiAgICAgc2hvd0hpZ2hsaWdodCgpCiAgICAgewotICAgICAgICBj
b25zdCBoaWdobGlnaHRlZCA9IHRydWU7Ci0gICAgICAgIENhbnZhc0FnZW50LnNldFNoYWRlclBy
b2dyYW1IaWdobGlnaHRlZCh0aGlzLl9pZGVudGlmaWVyLCBoaWdobGlnaHRlZCwgKGVycm9yKSA9
PiB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IsIGVycm9yKTsKLSAgICAgICAg
fSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dyYW1UeXBlID09PSBTaGFkZXJQ
cm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IHRo
aXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7
CisKKyAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMu
X2lkZW50aWZpZXIsIHRydWUpOwogICAgIH0KIAogICAgIGhpZGVIaWdobGlnaHQoKQogICAgIHsK
LSAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSBmYWxzZTsKLSAgICAgICAgQ2FudmFzQWdlbnQu
c2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVk
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3Ip
OwotICAgICAgICB9KTsKLSAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dy
YW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNv
bnRleHRUeXBlLldlYkdMMik7CiAKLSAgICAvLyBQcml2YXRlCi0KLSAgICBfcmVxdWVzdFNoYWRl
clNvdXJjZShzaGFkZXJUeXBlLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50
LnJlcXVlc3RTaGFkZXJTb3VyY2UodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9y
LCBjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAg
ICBjYWxsYmFjayhudWxsKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRlbnQpOwotICAgICAgICB9KTsKLSAgICB9Ci0K
LSAgICBfdXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIENh
bnZhc0FnZW50LnVwZGF0ZVNoYWRlcih0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3Vy
Y2UsIChlcnJvcikgPT4gewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWVycm9yLCBlcnJv
cik7Ci0gICAgICAgIH0pOworICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGln
aGxpZ2h0ZWQodGhpcy5faWRlbnRpZmllciwgZmFsc2UpOwogICAgIH0KIH07CiAKK1dJLlNoYWRl
clByb2dyYW0uUHJvZ3JhbVR5cGUgPSB7CisgICAgQ29tcHV0ZTogImNvbXB1dGUiLAorICAgIFJl
bmRlcjogInJlbmRlciIsCit9OworCiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUgPSB7Ci0g
ICAgRnJhZ21lbnQ6ICJzaGFkZXItdHlwZS1mcmFnbWVudCIsCi0gICAgVmVydGV4OiAic2hhZGVy
LXR5cGUtdmVydGV4IiwKKyAgICBDb21wdXRlOiAiY29tcHV0ZSIsCisgICAgRnJhZ21lbnQ6ICJm
cmFnbWVudCIsCisgICAgVmVydGV4OiAidmVydGV4IiwKIH07CiAKIFdJLlNoYWRlclByb2dyYW0u
RXZlbnQgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9DYW52YXNPYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCmluZGV4IDNlNWRkNmMyYTcyYzI2
Y2NjMTJlZjY0YmY2MjA0YzBmODY5MDIxNjkuLjZmNTM1NzQ0MzQ2ZjIwNzEyMGNiZTllOWQzY2Ey
N2Y0Y2JlZWEwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCkBAIC02Nyw5ICs2Nyw5
IEBAIFdJLkNhbnZhc09ic2VydmVyID0gY2xhc3MgQ2FudmFzT2JzZXJ2ZXIKICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5leHRlbnNpb25FbmFibGVkKGNhbnZhc0lkLCBleHRlbnNpb24pOwogICAg
IH0KIAotICAgIHByb2dyYW1DcmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQpCisgICAgcHJvZ3Jh
bUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCwgcHJvZ3JhbVR5cGUpCiAgICAgewotICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLnByb2dyYW1DcmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQpOwor
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnByb2dyYW1DcmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFt
SWQsIHByb2dyYW1UeXBlKTsKICAgICB9CiAKICAgICBwcm9ncmFtRGVsZXRlZChwcm9ncmFtSWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b2RlTWlycm9yQWRkaXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcwppbmRleCA5YWZjNGFiOTBlMWJlYzJhYzQz
ZjVlNTIxZjU0MDA1ZWUyOTg0ZDNiLi4zYTNhYWRmMjVkYTMwN2JjMDg4OWMyNTE3ODMzNmJjOWQ3
YTRhMWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKQEAgLTY4Miw2ICs2ODIs
MTEgQEAKICAgICBleHRyYUpTT05UeXBlcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUpIHsKICAgICAg
ICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKHR5cGUsIHtuYW1lOiAiamF2YXNjcmlwdCIsIGpzb246
IHRydWV9KTsKICAgICB9KTsKKworICAgIC8vIEZJWE1FOiBBZGQgV0hMU0wgc3BlY2lmaWMgbW9k
ZXMuCisgICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ4LXBpcGVsaW5lL3gtY29tcHV0ZSIsICJ4
LXNoYWRlci94LXZlcnRleCIpOworICAgIENvZGVNaXJyb3IuZGVmaW5lTUlNRSgieC1waXBlbGlu
ZS94LWZyYWdtZW50IiwgIngtc2hhZGVyL3gtZnJhZ21lbnQiKTsKKyAgICBDb2RlTWlycm9yLmRl
ZmluZU1JTUUoIngtcGlwZWxpbmUveC12ZXJ0ZXgiLCAieC1zaGFkZXIveC12ZXJ0ZXgiKTsKIH0p
KCk7CiAKIFdJLmNvbXBhcmVDb2RlTWlycm9yUG9zaXRpb25zID0gZnVuY3Rpb24oYSwgYikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRl
clByb2dyYW1Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCmluZGV4IDU1ZWY0MWY4MmY1
YmQ1NGIzZjk3NzlhZGQ3ZTNhOWU1Y2U5ZTUxYTAuLjBkMGE3N2FlNDQ0MTAyMGU5YzAxNmVmZDgz
M2UwYjhlODc0ZmNkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3
LmNzcwpAQCAtMjMsNTAgKzIzLDQ2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5z
aGFkZXIgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgeworICAgIGRp
c3BsYXk6IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CiAgICAgdG9wOiAwOwogICAgIGJvdHRvbTogMDsKLQotICAgIC0tYm9yZGVyLXN0
YXJ0LXN0eWxlOiAxcHggc29saWQgbGlnaHRncmV5OwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250
ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLnZlcnRleCwKLWJv
ZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5z
aGFkZXIuZnJhZ21lbnQgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIu
Y29tcHV0ZSB7CisgICAgcmlnaHQ6IDA7CisgICAgbGVmdDogMDsKK30KKworYm9keVtkaXI9bHRy
XSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXgsCitib2R5W2Rp
cj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50IHsK
ICAgICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpOwogICAgIGxlZnQ6IDA7CiB9CiAKLWJvZHlbZGly
PWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIu
ZnJhZ21lbnQsCi1ib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
dGV4dC1lZGl0b3Iuc2hhZGVyLnZlcnRleCB7Citib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcu
c2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50LAorYm9keVtkaXI9cnRsXSAuY29udGVu
dC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXggewogICAgIHdpZHRoOiBjYWxj
KDUwJSArIDFweCk7CiAgICAgcmlnaHQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgKyAudGV4dC1lZGl0b3Iu
c2hhZGVyIHsKLSAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXN0YXJ0LXN0eWxlKTsKKy5j
b250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyICsgLnNoYWRlciB7CisgICAgYm9y
ZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogfQogCi1ib2R5W2Rpcj1y
dGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsg
LnRleHQtZWRpdG9yLnNoYWRlciB7Ci0gICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1ib3JkZXItc3Rh
cnQtc3R5bGUpOwotfQotCi0uY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRp
dG9yLnNoYWRlciA+IC50eXBlLXRpdGxlIHsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0g
PiAuc2hhZGVyID4gaGVhZGVyID4gKiB7CiAgICAgcGFkZGluZzogMnB4IDRweDsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNv
bGlkIGxpZ2h0Z3JleTsKIH0KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0
LWVkaXRvci5zaGFkZXIgPiAuQ29kZU1pcnJvciB7Ci0gICAgdG9wOiAxOHB4OworLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAuc2hhZGVyLXR5cGUgewor
ICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUlKTsKIH0KIAogQG1lZGlhIChwcmVm
ZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyIHsKLSAgICAgICAgLS1ib3JkZXItc3RhcnQtc3R5bGU6
IDFweCBzb2xpZCB2YXIoLS10ZXh0LWNvbG9yLXF1YXRlcm5hcnkpOwotICAgIH0KLQotICAgIC5j
b250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLnR5cGUt
dGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyID4gaGVh
ZGVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7
CiAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRleHQtY29sb3ItcXVhdGVybmFy
eSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCmluZGV4
IGRkOTI1NGVkNWJlZTAwODU2ZTIzMmE1MmZmMGI3MmQ1YjkyMzQzODQuLjk2OTUyYTlkOGFkYmZk
NDcwNjcyNzBlNDNlZTFhY2U4MTlmYWZkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFt
Q29udGVudFZpZXcuanMKQEAgLTMxLDEzICszMSwyNiBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVu
dFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50
VgogCiAgICAgICAgIHN1cGVyKHNoYWRlclByb2dyYW0pOwogCisgICAgICAgIGxldCBpc1dlYkdQ
VSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHUFU7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25J
dGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmco
IlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5O
YXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9yZWZy
ZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0
aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoQ29udGVudCwgdGhpcyk7CisKICAg
ICAgICAgbGV0IGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIgPSBuZXcgRGVib3VuY2VyKChldmVu
dCkgPT4gewogICAgICAgICAgICAgdGhpcy5fY29udGVudERpZENoYW5nZShldmVudCk7CiAgICAg
ICAgIH0pOwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzaGFkZXItcHJv
Z3JhbSIpOworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXByb2dy
YW0iLCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnByb2dyYW1UeXBlKTsKIAogICAgICAgICBsZXQg
Y3JlYXRlRWRpdG9yID0gKHNoYWRlclR5cGUpID0+IHsKKyAgICAgICAgICAgIGxldCBjb250YWlu
ZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
IikpOworCisgICAgICAgICAgICBsZXQgaGVhZGVyID0gY29udGFpbmVyLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICAgICAgbGV0IHNoYWRl
clR5cGVDb250YWluZXIgPSBoZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2IikpOworICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRk
KCJzaGFkZXItdHlwZSIpOworCiAgICAgICAgICAgICBsZXQgdGV4dEVkaXRvciA9IG5ldyBXSS5U
ZXh0RWRpdG9yOwogICAgICAgICAgICAgdGV4dEVkaXRvci5yZWFkT25seSA9IGZhbHNlOwogICAg
ICAgICAgICAgdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlRleHRFZGl0b3IuRXZlbnQu
Rm9jdXNlZCwgdGhpcy5fZWRpdG9yRm9jdXNlZCwgdGhpcyk7CkBAIC00NSwzMiArNTgsNjEgQEAg
V0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgICAgIHRleHRFZGl0b3IuYWRkRXZlbnRM
aXN0ZW5lcihXSS5UZXh0RWRpdG9yLkV2ZW50LkNvbnRlbnREaWRDaGFuZ2UsIChldmVudCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIuZGVsYXlGb3JUaW1l
KDI1MCwgZXZlbnQpOwogICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgICAgICB0ZXh0RWRp
dG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyIik7Ci0KLSAgICAgICAgICAgIGxldCBz
aGFkZXJUeXBlQ29udGFpbmVyID0gdGV4dEVkaXRvci5lbGVtZW50Lmluc2VydEFkamFjZW50RWxl
bWVudCgiYWZ0ZXJiZWdpbiIsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICAg
ICAgICAgIHNoYWRlclR5cGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgidHlwZS10aXRsZSIpOwog
CiAgICAgICAgICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgV0ku
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKLSAgICAgICAgICAgICAgICBzaGFkZXJU
eXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleCBTaGFkZXIiKTsK
LSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gIngtc2hhZGVyL3gtdmVydGV4
IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmVy
dGV4Iik7CisgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5Db21w
dXRlOgorICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBX
SS5VSVN0cmluZygiQ29tcHV0ZSBTaGFkZXIiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9y
Lm1pbWVUeXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGluZS94LWNvbXB1dGUiIDogIngtc2hhZGVy
L3gtY29tcHV0ZSI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2Ug
V0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50OgogICAgICAgICAgICAgICAgIHNo
YWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQgU2hh
ZGVyIik7Ci0gICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4LXNoYWRlci94
LWZyYWdtZW50IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgiZnJhZ21lbnQiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0g
aXNXZWJHUFUgPyAieC1waXBlbGluZS94LWZyYWdtZW50IiA6ICJ4LXNoYWRlci94LWZyYWdtZW50
IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQ
cm9ncmFtLlNoYWRlclR5cGUuVmVydGV4OgorICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250
YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOworICAgICAg
ICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gt
dmVydGV4IiA6ICJ4LXNoYWRlci94LXZlcnRleCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0ZXh0RWRpdG9yKTsK
LSAgICAgICAgICAgIHJldHVybiB0ZXh0RWRpdG9yOworICAgICAgICAgICAgY29udGFpbmVyLmFw
cGVuZENoaWxkKHRleHRFZGl0b3IuZWxlbWVudCk7CisgICAgICAgICAgICBjb250YWluZXIuY2xh
c3NMaXN0LmFkZCgic2hhZGVyIiwgc2hhZGVyVHlwZSk7CisKKyAgICAgICAgICAgIHJldHVybiB7
Y29udGFpbmVyLCB0ZXh0RWRpdG9yfTsKICAgICAgICAgfTsKIAotICAgICAgICB0aGlzLl92ZXJ0
ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRl
eCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRl
clByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7Ci0gICAgICAgIHRoaXMuX2xhc3RBY3RpdmVF
ZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNl
bnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuQ29tcHV0ZTogeworICAgICAgICAgICAgbGV0IGNvbXB1dGVFZGl0b3IgPSBj
cmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUpOworICAgICAg
ICAgICAgdGhpcy5fY29tcHV0ZUNvbnRhaW5lciA9IGNvbXB1dGVFZGl0b3IuY29udGFpbmVyOwor
ICAgICAgICAgICAgdGhpcy5fY29tcHV0ZUVkaXRvciA9IGNvbXB1dGVFZGl0b3IudGV4dEVkaXRv
cjsKKworICAgICAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9IHRoaXMuX2NvbXB1dGVF
ZGl0b3I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgV0ku
U2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXI6IHsKKyAgICAgICAgICAgIGxldCB2ZXJ0
ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRl
eCk7CisgICAgICAgICAgICB0aGlzLl92ZXJ0ZXhDb250YWluZXIgPSB2ZXJ0ZXhFZGl0b3IuY29u
dGFpbmVyOworICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRpdG9yLnRl
eHRFZGl0b3I7CisKKyAgICAgICAgICAgIGxldCBmcmFnbWVudEVkaXRvciA9IGNyZWF0ZUVkaXRv
cihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQpOworICAgICAgICAgICAgdGhp
cy5fZnJhZ21lbnRDb250YWluZXIgPSBmcmFnbWVudEVkaXRvci5jb250YWluZXI7CisgICAgICAg
ICAgICB0aGlzLl9mcmFnbWVudEVkaXRvciA9IGZyYWdtZW50RWRpdG9yLnRleHRFZGl0b3I7CisK
KyAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAg
Ly8gUHVibGljCisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBbdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKICAgICB9CiAKICAgICAv
LyBQcm90ZWN0ZWQKQEAgLTc5LDIyICsxMjEsMzIgQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRW
aWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYK
ICAgICB7CiAgICAgICAgIHN1cGVyLnNob3duKCk7CiAKLSAgICAgICAgdGhpcy5fdmVydGV4RWRp
dG9yLnNob3duKCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnNob3duKCk7CisgICAg
ICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAg
ICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAg
IHRoaXMuX2NvbXB1dGVFZGl0b3Iuc2hvd24oKTsKKyAgICAgICAgICAgIGJyZWFrOwogCi0gICAg
ICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFZlcnRleFNoYWRlclNvdXJjZSgoY29u
dGVudCkgPT4gewotICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnN0cmluZyA9IGNvbnRl
bnQgfHwgIiI7Ci0gICAgICAgIH0pOworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJv
Z3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnNob3duKCk7
CisgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KIAotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVl
c3RGcmFnbWVudFNoYWRlclNvdXJjZSgoY29udGVudCkgPT4gewotICAgICAgICAgICAgdGhpcy5f
ZnJhZ21lbnRFZGl0b3Iuc3RyaW5nID0gY29udGVudCB8fCAiIjsKLSAgICAgICAgfSk7CisgICAg
ICAgIHRoaXMuX3JlZnJlc2hDb250ZW50KCk7CiAgICAgfQogCiAgICAgaGlkZGVuKCkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5oaWRkZW4oKTsKLSAgICAgICAgdGhpcy5fZnJh
Z21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3Jh
bVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFZGl0b3IuaGlkZGVuKCk7
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJv
Z3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLmhpZGRlbigp
OworICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQogCiAgICAgICAgIHN1cGVyLmhpZGRlbigpOwogICAgIH0KQEAg
LTEwNiwxNCArMTU4LDM0IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNo
YWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBnZXQgc2F2
ZURhdGEoKQogICAgIHsKLSAgICAgICAgbGV0IGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIlNoYWRl
ciIpOwotICAgICAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9PT0gdGhpcy5fdmVydGV4
RWRpdG9yKQotICAgICAgICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiVmVydGV4Iik7Ci0g
ICAgICAgIGVsc2UgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09IHRoaXMuX2ZyYWdtZW50
RWRpdG9yKQorICAgICAgICBsZXQgZmlsZW5hbWUgPSAiIjsKKyAgICAgICAgc3dpdGNoICh0aGlz
Ll9sYXN0QWN0aXZlRWRpdG9yKSB7CisgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUVkaXRvcjoK
KyAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIkNvbXB1dGUiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaXMuX2ZyYWdtZW50RWRpdG9yOgogICAgICAgICAg
ICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRvcjoKKyAgICAgICAgICAgIGZpbGVuYW1l
ID0gV0kuVUlTdHJpbmcoIlZlcnRleCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgY29uc29sZS5hc3NlcnQoZmlsZW5hbWUpOworCisgICAgICAgIGxldCBleHRlbnNp
b24gPSAiIjsKKyAgICAgICAgc3dpdGNoICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5j
b250ZXh0VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoK
KyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAg
ZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi5nbHNsIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVOgorICAgICAg
ICAgICAgZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi53c2wiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV4dGVuc2lvbik7
CiAKICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHVybDogV0kuRmlsZVV0aWxpdGllcy5p
bnNwZWN0b3JVUkxGb3JGaWxlbmFtZShmaWxlbmFtZSArICIuZ2xzbCIpLAorICAgICAgICAgICAg
dXJsOiBXSS5GaWxlVXRpbGl0aWVzLmluc3BlY3RvclVSTEZvckZpbGVuYW1lKGZpbGVuYW1lICsg
ZXh0ZW5zaW9uKSwKICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX2xhc3RBY3RpdmVFZGl0b3Iu
c3RyaW5nLAogICAgICAgICAgICAgZm9yY2VTYXZlQXM6IHRydWUsCiAgICAgICAgIH07CkBAIC0x
NzEsNiArMjQzLDY1IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRl
clByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICAvLyBQcml2YXRl
CiAKKyAgICBfcmVmcmVzaENvbnRlbnQoKQorICAgIHsKKyAgICAgICAgbGV0IGNyZWF0ZUNhbGxi
YWNrID0gKGNvbnRhaW5lciwgdGV4dEVkaXRvcikgPT4geworICAgICAgICAgICAgcmV0dXJuIChz
b3VyY2UsIGVudHJ5UG9pbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlID09PSBu
dWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGlmICghY29udGFpbmVyLnBhcmVudE5vZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
IChjb250YWluZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzLl9jb21wdXRlQ29u
dGFpbmVyOgorICAgICAgICAgICAgICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleENvbnRhaW5lcjoK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1l
bnQoImFmdGVyYmVnaW4iLCBjb250YWluZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzLl9mcmFnbWVudENvbnRhaW5lcjoK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1l
bnQoImJlZm9yZWVuZCIsIGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIHRleHRFZGl0b3Iuc3RyaW5nID0gc291cmNlIHx8ICIiOworICAgICAgICAgICAgfTsK
KyAgICAgICAgfTsKKworICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJv
Z3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNv
bXB1dGU6CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJT
b3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUsIGNyZWF0ZUNhbGxiYWNr
KHRoaXMuX2NvbXB1dGVDb250YWluZXIsIHRoaXMuX2NvbXB1dGVFZGl0b3IpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUu
UmVuZGVyOgorICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0U2hhZGVy
U291cmNlKFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsIGNyZWF0ZUNhbGxiYWNr
KHRoaXMuX3ZlcnRleENvbnRhaW5lciwgdGhpcy5fdmVydGV4RWRpdG9yKSk7CisgICAgICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJv
Z3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50LCBjcmVhdGVDYWxsYmFjayh0aGlzLl9mcmFnbWVudENv
bnRhaW5lciwgdGhpcy5fZnJhZ21lbnRFZGl0b3IpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgfQorCisgICAgX3VwZGF0
ZVNoYWRlcihzaGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7
CisgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGU6CisgICAg
ICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCB0
aGlzLl9jb21wdXRlRWRpdG9yLnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQ6CisgICAgICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCB0aGlzLl9m
cmFnbWVudEVkaXRvci5zdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNh
c2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKKyAgICAgICAgICAgIHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QudXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHRoaXMuX3ZlcnRleEVk
aXRvci5zdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoKTsKKyAgICB9CisKICAgICBfZWRpdG9yRm9jdXNlZChldmVudCkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLl9sYXN0QWN0aXZlRWRpdG9yID09PSBldmVudC50YXJnZXQp
CkBAIC0xOTcsOSArMzI4LDIwIEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNz
IFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBfY29u
dGVudERpZENoYW5nZShldmVudCkKICAgICB7Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09
IHRoaXMuX3ZlcnRleEVkaXRvcikKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
dXBkYXRlVmVydGV4U2hhZGVyKHRoaXMuX3ZlcnRleEVkaXRvci5zdHJpbmcpOwotICAgICAgICBl
bHNlIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuX2ZyYWdtZW50RWRpdG9yKQotICAgICAgICAg
ICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC51cGRhdGVGcmFnbWVudFNoYWRlcih0aGlzLl9mcmFn
bWVudEVkaXRvci5zdHJpbmcpOworICAgICAgICBzd2l0Y2ggKGV2ZW50LnRhcmdldCkgeworICAg
ICAgICBjYXNlIHRoaXMuX2NvbXB1dGVFZGl0b3I6CisgICAgICAgICAgICB0aGlzLl91cGRhdGVT
aGFkZXIoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUpOworICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGNhc2UgdGhpcy5fZnJhZ21lbnRFZGl0b3I6CisgICAgICAgICAg
ICB0aGlzLl91cGRhdGVTaGFkZXIoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50
KTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRv
cjoKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRl
clR5cGUuVmVydGV4KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1U
cmVlRWxlbWVudC5qcwppbmRleCBjZGE3NWI0MTUyNDA0ZGJjY2IwOTk5NDFkM2RiNWI3NzM5ZDUy
MTMyLi5jMmQzZjc1MzRkZDdhNmY0NGEzZTAxYjE5YzUxOTAxMzc1Nzg2YjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFt
VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50LmpzCkBAIC0zMiwxMCArMzIsMTQgQEAgV0ku
U2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50
IGV4dGVuZHMgV0kuR2VuZXJhbFQKICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOwogICAg
ICAgICBzdXBlcigic2hhZGVyLXByb2dyYW0iLCBzaGFkZXJQcm9ncmFtLmRpc3BsYXlOYW1lLCBz
dWJ0aXRsZSwgc2hhZGVyUHJvZ3JhbSk7CiAKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgdGhpcy5fZGlz
YWJsZWRJbWFnZUVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiRGlzYWJsZSBQcm9ncmFtIik7
Ci0gICAgICAgIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnRDbGlja2VkLmJpbmQodGhpcykpOwotICAg
ICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50OworICAgICAgICAv
LyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIGRpc2FibGluZy9oaWdobGlnaHRpbmcgV2ViR1BVIHNo
YWRlciBwaXBlbGluZXMuCisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50
ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMMikgeworICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgIHRoaXMu
X2Rpc2FibGVkSW1hZ2VFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkRpc2FibGUgUHJvZ3Jh
bSIpOworICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudENsaWNrZWQuYmluZCh0aGlz
KSk7CisgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50
OworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC00NCwzNCArNDgsNDUg
QEAgV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVF
bGVtZW50IGV4dGVuZHMgV0kuR2VuZXJhbFQKICAgICB7CiAgICAgICAgIHN1cGVyLm9uYXR0YWNo
KCk7CiAKLSAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJ
LlNoYWRlclByb2dyYW0uRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQ
cm9ncmFtRGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBzdXBw
b3J0IGZvciBkaXNhYmxpbmcvaGlnaGxpZ2h0aW5nIFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVzLgor
ICAgICAgICBsZXQgY29udGV4dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5j
b250ZXh0VHlwZTsKKyAgICAgICAgaWYgKGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR0wgfHwgY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
TDIpIHsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5l
cihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hh
ZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIHRoaXMuX2hhbmRsZU1vdXNlT3Zlci5iaW5k
KHRoaXMpKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0
IiwgdGhpcy5faGFuZGxlTW91c2VPdXQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLmVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5faGFuZGxlTW91c2VPdmVy
LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlb3V0IiwgdGhpcy5faGFuZGxlTW91c2VPdXQuYmluZCh0aGlzKSk7CisgICAgICAgIH0K
ICAgICB9CiAKICAgICBvbmRldGFjaCgpCiAgICAgewotICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2hhZGVyUHJvZ3JhbS5FdmVudC5EaXNhYmxl
ZENoYW5nZWQsIHRoaXMuX2hhbmRsZVNoYWRlclByb2dyYW1EaXNhYmxlZENoYW5nZWQsIHRoaXMp
OworICAgICAgICAvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIGRpc2FibGluZy9oaWdobGlnaHRp
bmcgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMuCisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMikKKyAgICAgICAgICAgIHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRp
c2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwg
dGhpcyk7CiAKICAgICAgICAgc3VwZXIub25kZXRhY2goKTsKICAgICB9CiAKICAgICBjYW5TZWxl
Y3RPbk1vdXNlRG93bihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZElt
YWdlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKQorICAgICAgICBpZiAodGhpcy5fZGlz
YWJsZWRJbWFnZUVsZW1lbnQgJiYgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuY29udGFpbnMo
ZXZlbnQudGFyZ2V0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJu
IHN1cGVyLmNhblNlbGVjdE9uTW91c2VEb3duKGV2ZW50KTsKICAgICB9CiAKICAgICBwb3B1bGF0
ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCkKICAgICB7Ci0gICAgICAgIGxldCBkaXNh
YmxlZCA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZGlzYWJsZWQ7Ci0gICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZEl0ZW0oZGlzYWJsZWQgPyBXSS5VSVN0cmluZygiRW5hYmxlIFByb2dyYW0iKSA6
IFdJLlVJU3RyaW5nKCJEaXNhYmxlIFByb2dyYW0iKSwgKCkgPT4gewotICAgICAgICAgICAgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKLSAgICAgICAgfSk7Cisg
ICAgICAgIC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgZGlzYWJsaW5nL2hpZ2hsaWdodGluZyBX
ZWJHUFUgc2hhZGVyIHBpcGVsaW5lcy4KKyAgICAgICAgbGV0IGNvbnRleHRUeXBlID0gdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5jYW52YXMuY29udGV4dFR5cGU7CisgICAgICAgIGlmIChjb250ZXh0
VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IGNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKSB7CisgICAgICAgICAgICBsZXQgZGlzYWJsZWQg
PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc2FibGVkOworICAgICAgICAgICAgY29udGV4dE1l
bnUuYXBwZW5kSXRlbShkaXNhYmxlZCA/IFdJLlVJU3RyaW5nKCJFbmFibGUgUHJvZ3JhbSIpIDog
V0kuVUlTdHJpbmcoIkRpc2FibGUgUHJvZ3JhbSIpLCAoKSA9PiB7CisgICAgICAgICAgICAgICAg
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKKyAgICAgICAgICAg
IH0pOwogCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICAg
ICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIH0KIAogICAgICAgICBz
dXBlci5wb3B1bGF0ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDFhYjgzZTg0OTQ2MjdiNWM1NTRhMDc5ZDcyMmU2YWI3ZTBlNGEwZTYuLjBjNjFjMmMzYzQ0
ZTQzMGU5MjQ4NjlhY2ExY2MwZjJjMzBlMDdmYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAx
OS0wOS0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogQ2FudmFzOiBzaG93IFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE2NzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgU3BsaXQgZXhpc3Rpbmcg
c2hhZGVyIHRlc3RzIGludG8gV2ViR0wgYW5kIFdlYkdQVSBzdWItdGVzdHMgZm9yIGRpZmZlcmVu
dCBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJT
b3VyY2UuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3Vy
Y2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVy
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQu
dHh0OgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ3B1LmpzOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13
ZWJncHUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9n
cmFtLWFkZC1yZW1vdmUtd2ViZ3B1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWw6IEFkZGVk
LgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMtd2ViZ2wuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcy4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mcmFtZUNvdW50Lmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnVsbC5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLW1lbW9yeUxpbWl0Lmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtc25hcHNob3RzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZyYW1lQ291bnQuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItZnVsbC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1pdC5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1zbmFwc2hvdHMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2Vi
Z2wuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVy
U291cmNlLXdlYmdsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy9zZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y2FudmFzL3NldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZC5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wyLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ2wuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ2wtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA5LTE2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBFbGltaW5hdGUgc2VwYXJhdGUg
c2ltcGxlIGxpbmUgbGF5b3V0IHBhdGggZnJvbSBUZXh0SXRlcmF0b3IKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wuaHRtbAppbmRl
eCAzMmY1NTliYmFjMjRkODkxM2I0MDIxMjUzZDhjY2I3ZDk2OTM1YWIyLi5lOTgzZjE5NjdkYjRj
MmY2ZGUxZjZkM2UzOTA5Y2VkNWFjMDE5NjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbC5odG1sCkBAIC0zLDcgKzMsNyBA
QAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJp
YnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsMi5odG1sCmluZGV4
IDEzZTFhMDFlNTdiYjAxODEyYTg3YTNmYTg0ZTIyYjUwOThlOGNmYmMuLjM3NjM3MDk0NjNkZGM2
OTg1ZjExOGMwMGUwMDIzMWMzYjFmM2UyZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRtbApAQCAtMyw3ICszLDcg
QEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlY29yZGluZy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRy
aWJ1dGUgdmVjNCB0ZXN0OwogICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mcmFtZUNvdW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mcmFtZUNvdW50
Lmh0bWwKaW5kZXggZjI0MDI3NmU4MTUwOWUxN2EzN2YxOTVkM2ZlMjdhZTljNjdiYzk2MC4uOGQ5
YTZkYzAxN2MxODNjZWRiZThhNzVhOTgwOTM2ZTJlZTFhYzBjMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnJhbWVDb3VudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1lQ291
bnQuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmds
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVy
L3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjNCB0ZXN0OwogICAgIHZvaWQgbWFpbih2b2lk
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13
ZWJnbC1mdWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13
ZWJnbC1mdWxsLmh0bWwKaW5kZXggYzc0MzYxYmI1OWU3ZmRmMDlhNWQ1ZDBmZDQxOGEzNmM0OTFl
NDJlNS4uNzYxMzNlZTIyOGZiY2FkZTc2OWUzOWU4ZDMwYTNkZTZlMzcwMWMyMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnVsbC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZ1bGwu
aHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gt
dmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjNCB0ZXN0OwogICAgIHZvaWQgbWFpbih2b2lkKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJn
bC1tZW1vcnlMaW1pdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRp
bmctd2ViZ2wtbWVtb3J5TGltaXQuaHRtbAppbmRleCA2NGJmZjMxYzVkYTFmMmI3OGI0MGVlOWE5
MWQzOTlkYWVjYTU5MmFlLi44OTU1ODE3ZjJlYjVlZGQ0MTA3MTljMjExMTRmNzFjZGEwMzQyZGI1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJn
bC1tZW1vcnlMaW1pdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVj
b3JkaW5nLXdlYmdsLW1lbW9yeUxpbWl0Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQ
cm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgt
c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzQgdGVz
dDsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtc25hcHNob3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1zbmFwc2hvdHMuaHRtbAppbmRleCBiNzBj
N2M1OWVlNmEwYjAzZjVhYzE5ZWY4YzAxYjFmNjU2ODAxNmI5Li4zZDU1ODhkNWYxNTIxMjg4Mjc0
NGMzZTdhYjgzMTQyNzFmMzIwZGI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlY29yZGluZy13ZWJnbC1zbmFwc2hvdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1zbmFwc2hvdHMuaHRtbApAQCAtMyw3ICsz
LDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBh
dHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZyYW1lQ291
bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1m
cmFtZUNvdW50Lmh0bWwKaW5kZXggNGNhN2MxZDkwNWQwOWYzNTNiNjQ0YmM5NTA5NTRkZWIwOWIw
ZWI4YS4uNTBmYmVkZTE1N2YxZjJkMmIxMjg5YjJiYjBmMjZkMzczZmY1MzljNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZyYW1lQ291
bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJn
bDItZnJhbWVDb3VudC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGls
aXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlw
ZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9p
ZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLXdlYmdsMi1mdWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlY29yZGluZy13ZWJnbDItZnVsbC5odG1sCmluZGV4IGJhNjhlMTc1NGE0OWM1MTVjNjM2MGJl
ZjU1MWQ4MjM1MTQ3OGExOTAuLjE4NzRlYTkzZGQ1YjkzM2FmOTAzYjkxNGQyYjQ3Y2QzMjQyNzdk
ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdl
YmdsMi1mdWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRp
bmctd2ViZ2wyLWZ1bGwuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjNCB0ZXN0OwogICAgIHZv
aWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlY29yZGluZy13ZWJnbDItbWVtb3J5TGltaXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1pdC5odG1sCmluZGV4IDAxNzRiMGFj
YzNlMTQ3NTIxM2FlZmVhY2NiZjQzNzAwODE3MjY4NWMuLjg2MDRkZjYxY2NjY2Q2MTNjN2Q1ZWE2
ZjM3N2Y2ZGZiMWMyNTA1YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1pdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1pdC5odG1sCkBAIC0zLDcg
KzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAg
IGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1zbmFwc2hvdHMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1zbmFw
c2hvdHMuaHRtbAppbmRleCA4MmYyN2M5ZDY0ZjdkYTMyODY1NTkyMWVlMzA4ODg5MzlmNmNiNTll
Li45ZTlhNGE4Y2VlZWRjODc2OWEzNGI5ZTkxNDM0MGE5Y2QwODk5ZDk0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItc25hcHNob3RzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLXNu
YXBzaG90cy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMt
d2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1z
aGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uOwogICAgIHZvaWQg
bWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RTaGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLWV4cGVjdGVkLnR4dAppbmRleCA2NGJjZGYzYzZjZmE5
NjA0ZmE0MmNmZjY3ZDQ0NmVjNzJhYzk2MDYzLi5mOTJmNDk1ZDM4Y2U2ODUzYTNhNTM1NGFhNTgx
M2UwYmM0Y2UxNTVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RTaGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTEsMjggKzEsOCBA
QAotVGVzdCBjb21waWxhdGlvbiBvZiBzaGFkZXJzIGFmdGVyIGJlaW5nIGF0dGFjaGVkIHRvIGEg
cHJvZ3JhbSwgd2l0aCBhbmQgd2l0aG91dCBzeW50YXggZXJyb3JzLgorQ29tbW9uIHRlc3RzIGZv
ciBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZSBjb21tYW5kLgogCiAKLT09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogQ2FudmFzLmdldFNoYWRlclNvdXJjZQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENh
bnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLnZlcnRleFNoYWRlcgotCi0gICAgdm9pZCBtYWluKHZv
aWQpIHsKLSAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7Ci0g
ICAgfQotCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJj
ZS5mcmFnbWVudFNoYWRlcgotCi0gICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2
b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAx
LjAsIDEuMCk7Ci0gICAgfQotCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVz
dFNoYWRlclNvdXJjZS5pbnZhbGlkUHJvZ3JhbUlkCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENh
bnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJl
cXVlc3RTaGFkZXJTb3VyY2UuUHJvZ3JhbUlkLkludmFsaWQKIFBBU1M6IFNob3VsZCBwcm9kdWNl
IGFuIGVycm9yLgogRXJyb3I6IE1pc3NpbmcgcHJvZ3JhbSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCiAK
LS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5pbnZhbGlk
U2hhZGVyVHlwZQotUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuCi1FcnJvcjogTWlzc2lu
ZyBzaGFkZXIgZm9yIGdpdmVuIHNoYWRlclR5cGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUyM2FmNGQ4N2YwZTZlNThhYzI0YjUzYmI0ODA3YThk
NjgzNjMyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAor
V2ViR0wgdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTAor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMLlZl
cnRleAorCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0
KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
YW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5GcmFnbWVudAorCisgICAgcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFn
Q29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAsIDEuMCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5TaGFkZXJUeXBlLklu
dmFsaWQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGVycm9yLgorRXJyb3I6IFVua25vd24gc2hh
ZGVyVHlwZTogSU5WQUxJRF9TSEFERVJfVFlQRQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBiMmI3NTA4MzJjYzBhMWIwMzZiM2Y4OWIxNDFiMzBmYzk2ZWJiODYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3Vy
Y2Utd2ViZ2wuaHRtbApAQCAtMCwwICsxLDg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0idmVy
dGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorICAgIHZvaWQgbWFpbih2b2lk
KSB7CisgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOworICAg
IH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZnJhZ21lbnQtc2hhZGVyIiB0eXBlPSJ4LXNoYWRl
ci94LWZyYWdtZW50Ij4KKyAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAgIHZvaWQg
bWFpbih2b2lkKSB7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAxLjAsIDEuMCwg
MS4wKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkgeworICAg
IGNyZWF0ZVByb2dyYW0oIndlYmdsIik7CisgICAgbGlua1Byb2dyYW0oInZlcnRleC1zaGFkZXIi
LCAiZnJhZ21lbnQtc2hhZGVyIik7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKSB7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJD
YW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTCIpOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wuVmVy
dGV4IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0cyByZXF1ZXN0aW5nIHRoZSBzb3VyY2Ug
Y29kZSBvZiBhIHByb2dyYW0ncyB2ZXJ0ZXggc2hhZGVyLiIsCisgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01h
bmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0p
IHsKKyAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQ2FudmFz
QWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIENhbnZh
c0FnZW50LlNoYWRlclR5cGUuVmVydGV4KQorICAgICAgICAgICAgLnRoZW4oKHtzb3VyY2V9KSA9
PiBJbnNwZWN0b3JUZXN0LmxvZyhzb3VyY2UpKQorICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSwg
cmVqZWN0KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wuRnJhZ21lbnQi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3RzIHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBjb2Rl
IG9mIGEgcHJvZ3JhbSdzIGZyYWdtZW50IHNoYWRlci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5h
Z2VyLnNoYWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7
CisgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIENhbnZhc0Fn
ZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBDYW52YXNB
Z2VudC5TaGFkZXJUeXBlLkZyYWdtZW50KQorICAgICAgICAgICAgLnRoZW4oKHtzb3VyY2V9KSA9
PiBJbnNwZWN0b3JUZXN0LmxvZyhzb3VyY2UpKQorICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSwg
cmVqZWN0KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wuU2hhZGVyVHlw
ZS5JbnZhbGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJJbnZhbGlkIHNoYWRlciB0eXBlcyBz
aG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsK
KyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQ
cm9ncmFtc1swXTsKKyAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAg
ICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBzaGFkZXJUeXBlID0g
IklOVkFMSURfU0hBREVSX1RZUEUiOworICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNo
YWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUsIChlcnJvcikg
PT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNo
b3VsZCBwcm9kdWNlIGFuIGVycm9yLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJFcnJvcjogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgp
Ij4KKzxwPldlYkdMIHRlc3RzIGZvciBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZSBjb21tYW5k
LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGFlNTZmYWUxOWQwYTAzMDA5ZTcxNDU4NDQwMzlmNDAwNjU5ZGQ3
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dFNoYWRlclNvdXJjZS13ZWJncHUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1dlYkdQ
VSB0ZXN0cyBmb3IgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UgY29tbWFuZC4KKworCis9PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdQVQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdQVS5Qcm9n
cmFtLmNvbXB1dGUuU2hhZGVyLmNvbXB1dGUKKworW251bXRocmVhZHMoMiwgMSwgMSldCitjb21w
dXRlIHZvaWQgY29tcHV0ZVNoYWRlcihkZXZpY2UgZmxvYXRbXSBidWZmZXIgOiByZWdpc3Rlcih1
MCksIGZsb2F0MyB0aHJlYWRJRCA6IFNWX0Rpc3BhdGNoVGhyZWFkSUQpIHsKKyAgICBidWZmZXJb
dWludCh0aHJlYWRJRC54KV0gPSBidWZmZXJbdWludCh0aHJlYWRJRC54KV0gKiAyLjA7Cit9CisK
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdQ
VS5Qcm9ncmFtLmNvbXB1dGUuU2hhZGVyLmZyYWdtZW50CitQQVNTOiBTaG91bGQgcHJvZHVjZSBh
biBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBm
b3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVz
dFNoYWRlclNvdXJjZS5XZWJHUFUuUHJvZ3JhbS5jb21wdXRlLlNoYWRlci52ZXJ0ZXgKK1BBU1M6
IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0Vycm9yOiBNaXNzaW5nIHNoYWRlciBvZiBn
aXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdQVS5Qcm9ncmFtLnJlbmRlci5TaGFk
ZXIuY29tcHV0ZQorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IE1p
c3Npbmcgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZAorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlBy
b2dyYW0ucmVuZGVyLlNoYWRlci5mcmFnbWVudAorCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRT
aGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFyZ2V0IDAgeworICAg
IHJldHVybiBwb3NpdGlvbjsKK30KKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJl
cXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0ucmVuZGVyLlNoYWRlci52ZXJ0ZXgKKwor
dmVydGV4IGZsb2F0NCB2ZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogYXR0cmlidXRlKDAp
LCBmbG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0aW9uIHsKKyAgICByZXR1cm4gcG9z
aXRpb247Cit9CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYmU2MGVk
MWEyYjllMGM5ZDA5NTlhMWNmOGE2MDA0M2QyZDY4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0bWwK
QEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdwdS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy5y
ZXF1ZXN0U2hhZGVyU291cmNlLldlYkdQVSIpOworCisgICAgZm9yIChsZXQgcHJvZ3JhbVR5cGUg
b2YgT2JqZWN0LnZhbHVlcyhXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlKSkgeworICAgICAg
ICBmb3IgKGxldCBzaGFkZXJUeXBlIG9mIE9iamVjdC52YWx1ZXMoV0kuU2hhZGVyUHJvZ3JhbS5T
aGFkZXJUeXBlKSkgeworICAgICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAg
ICAgICAgIG5hbWU6IGBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHUFUuUHJvZ3JhbS4k
e3Byb2dyYW1UeXBlfS5TaGFkZXIuJHtzaGFkZXJUeXBlfWAsCisgICAgICAgICAgICAgICAgYXN5
bmMgdGVzdCgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBJbnNw
ZWN0b3JUZXN0LlNoYWRlclByb2dyYW0ucHJvZ3JhbUZvclR5cGUocHJvZ3JhbVR5cGUpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pCisgICAgICAgICAgICAgICAgICAg
ICAgICB0aHJvdyAiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSI7CisKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvZ1NoYWRlciA9IGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB7c291cmNlfSA9IGF3YWl0IENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hh
ZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFkZXJUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIH07CisK
KyAgICAgICAgICAgICAgICAgICAgbGV0IGlzQ29tcHV0ZVByb2dyYW0gPSBwcm9ncmFtVHlwZSA9
PT0gV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlOworICAgICAgICAgICAgICAg
ICAgICBsZXQgaXNDb21wdXRlU2hhZGVyID0gc2hhZGVyVHlwZSA9PT0gV0kuU2hhZGVyUHJvZ3Jh
bS5TaGFkZXJUeXBlLkNvbXB1dGU7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0NvbXB1dGVQ
cm9ncmFtICE9PSBpc0NvbXB1dGVTaGFkZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBhd2Fp
dCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihsb2dTaGFkZXIpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBsb2dTaGFkZXIoKQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKzxwPldlYkdQVSB0ZXN0cyBmb3IgQ2FudmFzLnJlcXVl
c3RTaGFkZXJTb3VyY2UgY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS5odG1sCmlu
ZGV4IGE2ODljMTY5NzI1MDJlNWUyMWFiMDI1MjFiZTA0NmZmYzY4YTI3NTguLjkxZTYwZWE0ODQ0
ZmY0Y2Q0Zjk3Mjg5NzZjOTAyMmM1NGJkOTE3NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS5odG1sCkBAIC0yLDY0ICsyLDEy
IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
aWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLSAgICB2b2lkIG1h
aW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4w
KTsKLSAgICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImZyYWdtZW50LXNoYWRlciIgdHlwZT0i
eC1zaGFkZXIveC1mcmFnbWVudCI+Ci0gICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAg
ICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4w
LCAxLjAsIDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9hZCgp
IHsKLSAgICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIpOwotICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0ZXgt
c2hhZGVyIiwgImZyYWdtZW50LXNoYWRlciIpOwotCi0gICAgcnVuVGVzdCgpOwotfQotCiBmdW5j
dGlvbiB0ZXN0KCkgewotICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZSgiQ2FudmFzLmdldFNoYWRlclNvdXJjZSIpOworICAgIGxldCBzdWl0ZSA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UiKTsKIAog
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hh
ZGVyU291cmNlLnZlcnRleFNoYWRlciIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVx
dWVzdGluZyB0aGUgc291cmNlIGNvZGUgb2YgYSBwcm9ncmFtJ3MgdmVydGV4IHNoYWRlci4iLAot
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IHNoYWRlclBy
b2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwotICAgICAgICAgICAg
aWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNo
YWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3Jh
bS5pZGVudGlmaWVyLCBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCkKLSAgICAgICAgICAg
IC50aGVuKCh7Y29udGVudH0pID0+IEluc3BlY3RvclRlc3QubG9nKGNvbnRlbnQpKQotICAgICAg
ICAgICAgLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAg
c3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJT
b3VyY2UuZnJhZ21lbnRTaGFkZXIiLAotICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3RzIHJlcXVl
c3RpbmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEgcHJvZ3JhbSdzIGZyYWdtZW50IHNoYWRlci4iLAot
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IHNoYWRlclBy
b2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwotICAgICAgICAgICAg
aWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNo
YWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3Jh
bS5pZGVudGlmaWVyLCBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLkZyYWdtZW50KQotICAgICAgICAg
ICAgLnRoZW4oKHtjb250ZW50fSkgPT4gSW5zcGVjdG9yVGVzdC5sb2coY29udGVudCkpCi0gICAg
ICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRl
clNvdXJjZS5pbnZhbGlkUHJvZ3JhbUlkIiwKKyAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0
U2hhZGVyU291cmNlLlByb2dyYW1JZC5JbnZhbGlkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJJ
bnZhbGlkIHByb2dyYW0gaWRlbnRpZmllcnMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCiAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBjb25zdCBwcm9ncmFtSWQg
PSAiSU5WQUxJRF9QUk9HUkFNX0lEIjsKQEAgLTcyLDMwICsyMCwxMSBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICB9CiAgICAgfSk7CiAKLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAg
ICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5pbnZhbGlkU2hhZGVyVHlwZSIs
Ci0gICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNl
IGFuIGVycm9yLiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAg
ICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07
Ci0gICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICByZWpl
Y3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29uc3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElEX1NI
QURFUl9UWVBFIjsKLSAgICAgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uo
c2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCAoZXJyb3IpID0+IHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXJyb3IsICJTaG91bGQgcHJvZHVj
ZSBhbiBlcnJvci4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6
ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0KLSAgICB9KTsKLQogICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgp
OwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci0gICAgPHA+
VGVzdCBjb21waWxhdGlvbiBvZiBzaGFkZXJzIGFmdGVyIGJlaW5nIGF0dGFjaGVkIHRvIGEgcHJv
Z3JhbSwgd2l0aCBhbmQgd2l0aG91dCBzeW50YXggZXJyb3JzLjwvcD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPkNvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3Vy
Y2UgY29tbWFuZC48L3A+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJn
bC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dy
YW0tdXRpbGl0aWVzLXdlYmdsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyNzVjNDQxYWFmYzczYjkxMDc5NDVi
M2NkNzNmOWNhNjdlMWU2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcwpAQCAt
MCwwICsxLDEzMCBAQAorbGV0IGNvbnRleHQ7CitsZXQgcHJvZ3JhbTsKKworZnVuY3Rpb24gY3Jl
YXRlUHJvZ3JhbShjb250ZXh0VHlwZSkgeworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgY29u
dGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoY29udGV4
dFR5cGUpOworCisgICAgcHJvZ3JhbSA9IGNvbnRleHQuY3JlYXRlUHJvZ3JhbSgpOworfQorCitm
dW5jdGlvbiBsaW5rUHJvZ3JhbSh2ZXJ0ZXhTaGFkZXJJZGVudGlmaWVyLCBmcmFnbWVudFNoYWRl
cklkZW50aWZpZXIpIHsKKyAgICBmdW5jdGlvbiB0eXBlRm9yU2NyaXB0KHNjcmlwdCkgeworICAg
ICAgICBpZiAoc2NyaXB0LnR5cGUgPT09ICJ4LXNoYWRlci94LXZlcnRleCIpCisgICAgICAgICAg
ICByZXR1cm4gY29udGV4dC5WRVJURVhfU0hBREVSOworICAgICAgICBpZiAoc2NyaXB0LnR5cGUg
PT09ICJ4LXNoYWRlci94LWZyYWdtZW50IikKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LkZS
QUdNRU5UX1NIQURFUjsKKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0
ZWQgc2NyaXB0IHgtc2hhZGVyIHR5cGU6ICIgKyBzY3JpcHQudHlwZSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gY3JlYXRlU2hhZGVyRnJvbVNjcmlwdChzY3JpcHRJZGVudGlmaWVyKSB7CisgICAg
ICAgIGxldCBzY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JpcHRJZGVudGlmaWVy
KTsKKyAgICAgICAgbGV0IHNoYWRlciA9IGNvbnRleHQuY3JlYXRlU2hhZGVyKHR5cGVGb3JTY3Jp
cHQoc2NyaXB0KSk7CisgICAgICAgIGNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRl
cik7CisgICAgICAgIGNvbnRleHQuc2hhZGVyU291cmNlKHNoYWRlciwgc2NyaXB0LnRleHQpOwor
ICAgICAgICBjb250ZXh0LmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKyAgICB9CisKKyAgICBjcmVh
dGVTaGFkZXJGcm9tU2NyaXB0KHZlcnRleFNoYWRlcklkZW50aWZpZXIpOworICAgIGNyZWF0ZVNo
YWRlckZyb21TY3JpcHQoZnJhZ21lbnRTaGFkZXJJZGVudGlmaWVyKTsKKyAgICBjb250ZXh0Lmxp
bmtQcm9ncmFtKHByb2dyYW0pOworfQorCitmdW5jdGlvbiBkZWxldGVQcm9ncmFtKCkgeworICAg
IGNvbnRleHQuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKKyAgICBwcm9ncmFtID0gbnVsbDsKK30K
KworZnVuY3Rpb24gZGVsZXRlQ29udGV4dCgpIHsKKyAgICBjb250ZXh0ID0gbnVsbDsKKyAgICAv
LyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlzIGRlc3Ryb3llZCwg
b3RoZXJ3aXNlIHRoZSBmcm9udGVuZAorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICBzZXRUaW1lb3V0KCgpID0+
IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7Cit9CisKK1Rlc3RQYWdlLnJlZ2lzdGVy
SW5pdGlhbGl6ZXIoKCkgPT4geworICAgIGxldCBzdWl0ZSA9IG51bGw7CisKKyAgICBmdW5jdGlv
biB3aGVuUHJvZ3JhbUFkZGVkKGNhbGxiYWNrKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
c1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5D
b2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBsZXQg
cHJvZ3JhbSA9IGV2ZW50LmRhdGEuaXRlbTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIkFkZGVkIFNoYWRl
clByb2dyYW0uIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3Jh
bS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZl
IGEgcGFyZW50IENhbnZhcy4iKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHByb2dyYW0pOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB3aGVuUHJvZ3JhbVJlbW92ZWQoY2FsbGJh
Y2spIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52
YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwor
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0
aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92
ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0
ZW07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5j
ZW9mIFdJLlNoYWRlclByb2dyYW0sICJSZW1vdmVkIFNoYWRlclByb2dyYW0uIik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBX
SS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsK
KyAgICAgICAgICAgIGNhbGxiYWNrKHByb2dyYW0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICB3aW5kb3cuaW5pdGlhbGl6ZVRlc3RTdWl0ZSA9IGZ1bmN0aW9uKGNvbnRleHRUeXBlKSB7Cisg
ICAgICAgIHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hh
ZGVyUHJvZ3JhbS4ke2NvbnRleHRUeXBlfWApOworCisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgICAgIG5hbWU6IGAke3N1aXRlLm5hbWV9LnJlbG9hZFBhZ2VgLAorICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRlclByb2dyYW1BZGRlZCBpcyBzZW50
IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQgaXMgZW5hYmxlZC4iLAor
ICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICAvLyBU
aGlzIGNhbid0IHVzZSBgYXdhaXRFdmVudGAgc2luY2UgdGhlIHByb21pc2UgcmVzb2x1dGlvbiBo
YXBwZW5zIG9uIHRoZSBuZXh0IHRpY2suCisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0Fk
ZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgd2hlblByb2dyYW1BZGRlZCgo
cHJvZ3JhbSkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsK
KworICAgICAgICByZXR1cm4gc3VpdGU7CisgICAgfQorCisgICAgIHdpbmRvdy5hZGRTaW1wbGVU
ZXN0Q2FzZSA9IGZ1bmN0aW9uKGNvbnRleHRUeXBlKSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgICAgIG5hbWU6IGAke3N1aXRlLm5hbWV9LlNoYWRlclByb2dyYW1BZGRl
ZGAsCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYWRkZWQvcmVtb3ZlZCBl
dmVudHMgYXJlIHNlbnQuIiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICAgICAgd2hlblByb2dyYW1BZGRlZCgoYWRkZWRQcm9ncmFtKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtUmVtb3ZlZCgocmVtb3ZlZFByb2dyYW0pID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVtb3Zl
ZFByb2dyYW0sIGFkZGVkUHJvZ3JhbSwgIlJlbW92ZWQgdGhlIHByZXZpb3VzbHkgYWRkZWQgU2hh
ZGVyUHJvZ3JhbS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZShgZGVsZXRlUHJvZ3JhbSgpYCk7CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVQcm9n
cmFtKCIke2NvbnRleHRUeXBlfSIpYCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAg
IH0KKworICAgIHdpbmRvdy5hZGRQYXJlbnRDYW52YXNSZW1vdmVkVGVzdENhc2UgPSBmdW5jdGlv
bihjb250ZXh0VHlwZSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAg
ICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5QYXJlbnRDYW52YXNSZW1vdmVkYCwKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCB0aGUgU2hhZGVyUHJvZ3JhbSBpcyByZW1vdmVkIGJl
Zm9yZSBpdCdzIHBhcmVudCBDYW52YXMuIiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgICAgICAgbGV0IGNhbnZhc1JlbW92ZWQgPSBmYWxzZTsKKworICAg
ICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbVJlbW92ZWQoKHByb2dyYW0pID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShjYW52YXNSZW1vdmVkLCAi
UmVtb3ZlZCBTaGFkZXJQcm9ncmFtIGJlZm9yZSBDYW52YXMuIik7CisgICAgICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVByb2dyYW0oIiR7Y29udGV4dFR5cGV9
IilgKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkZWxl
dGVDb250ZXh0KClgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQ
cm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmNjZmUzYWI1ZDIxN2E3NDBiNTgxNTI3YmY4YjEzMDhmM2FmY2VmZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0t
dXRpbGl0aWVzLXdlYmdwdS5qcwpAQCAtMCwwICsxLDEwOCBAQAoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHUFVFbmFibGVkKHRydWUp
OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworY29uc3QgY29tcHV0ZVNo
YWRlclNvdXJjZSA9IGAKK1tudW10aHJlYWRzKDIsIDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1
dGVTaGFkZXIoZGV2aWNlIGZsb2F0W10gYnVmZmVyIDogcmVnaXN0ZXIodTApLCBmbG9hdDMgdGhy
ZWFkSUQgOiBTVl9EaXNwYXRjaFRocmVhZElEKSB7CisgICAgYnVmZmVyW3VpbnQodGhyZWFkSUQu
eCldID0gYnVmZmVyW3VpbnQodGhyZWFkSUQueCldICogMi4wOworfQorYDsKKworY29uc3QgdmVy
dGV4U2hhZGVyU291cmNlID0gYAordmVydGV4IGZsb2F0NCB2ZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBv
c2l0aW9uIDogYXR0cmlidXRlKDApLCBmbG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0
aW9uIHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CitgOworCitjb25zdCBmcmFnbWVudFNoYWRl
clNvdXJjZSA9IGAKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudFNoYWRlcihmbG9hdDQgcG9zaXRp
b24gOiBTVl9Qb3NpdGlvbikgOiBTVl9UYXJnZXQgMCB7CisgICAgcmV0dXJuIHBvc2l0aW9uOwor
fQorYDsKKworbGV0IGRldmljZSA9IG51bGw7CisKK2FzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvbXB1
dGVQaXBlbGluZShjb21wdXRlQ29kZSA9IGNvbXB1dGVTaGFkZXJTb3VyY2UpIHsKKyAgICAvLyBD
b3BpZWQgZnJvbSB3ZWJncHUvd2hsc2wvY29tcHV0ZS5odG1sLgorCisgICAgY29uc3Qgc2hhZGVy
TW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7Y29kZTogY29tcHV0ZUNvZGV9KTsK
KyAgICBjb25zdCBjb21wdXRlU3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUsIGVudHJ5UG9p
bnQ6ICJjb21wdXRlU2hhZGVyIn07CisKKyAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yID0ge2JpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHZpc2liaWxpdHk6IDcsIHR5cGU6ICJzdG9y
YWdlLWJ1ZmZlciJ9XX07CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0gZGV2aWNlLmNyZWF0
ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsKKyAgICBjb25zdCBw
aXBlbGluZUxheW91dERlc2NyaXB0b3IgPSB7YmluZEdyb3VwTGF5b3V0czogW2JpbmRHcm91cExh
eW91dF19OworICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNyZWF0ZVBpcGVsaW5l
TGF5b3V0KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcik7CisKKyAgICBkZXZpY2UuY3JlYXRlQ29t
cHV0ZVBpcGVsaW5lKHtjb21wdXRlU3RhZ2UsIGxheW91dDogcGlwZWxpbmVMYXlvdXR9KTsKK30K
KworYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGlwZWxpbmUodmVydGV4Q29kZSA9IHZlcnRl
eFNoYWRlclNvdXJjZSwgZnJhZ21lbnRDb2RlID0gZnJhZ21lbnRTaGFkZXJTb3VyY2UpIHsKKyAg
ICAvLyBDb3BpZWQgZnJvbSB3ZWJncHUvd2hsc2wvd2hsc2wuaHRtbC4KKworICAgIGNvbnN0IHZl
cnRleFNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoe2NvZGU6IHZlcnRl
eENvZGV9KTsKKyAgICBjb25zdCB2ZXJ0ZXhTdGFnZSA9IHttb2R1bGU6IHZlcnRleFNoYWRlck1v
ZHVsZSwgZW50cnlQb2ludDogInZlcnRleFNoYWRlciJ9OworCisgICAgY29uc3QgZnJhZ21lbnRT
aGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2RlOiBmcmFnbWVudENv
ZGV9KTsKKyAgICBjb25zdCBmcmFnbWVudFN0YWdlID0ge21vZHVsZTogZnJhZ21lbnRTaGFkZXJN
b2R1bGUsIGVudHJ5UG9pbnQ6ICJmcmFnbWVudFNoYWRlciJ9OworCisgICAgY29uc3QgcHJpbWl0
aXZlVG9wb2xvZ3kgPSAidHJpYW5nbGUtc3RyaXAiOworICAgIGNvbnN0IHJhc3Rlcml6YXRpb25T
dGF0ZSA9IHtmcm9udEZhY2U6ICJjdyIsIGN1bGxNb2RlOiAibm9uZSJ9OworICAgIGNvbnN0IGFs
cGhhQmxlbmQgPSB7fTsKKyAgICBjb25zdCBjb2xvckJsZW5kID0ge307CisgICAgY29uc3QgY29s
b3JTdGF0ZXMgPSBbe2Zvcm1hdDogInJnYmE4dW5vcm0iLCBhbHBoYUJsZW5kLCBjb2xvckJsZW5k
LCB3cml0ZU1hc2s6IDE1fV07IC8vIEdQVUNvbG9yV3JpdGUuQUxMCisgICAgY29uc3QgZGVwdGhT
dGVuY2lsU3RhdGUgPSBudWxsOworICAgIAorICAgIGNvbnN0IGF0dHJpYnV0ZTAgPSB7c2hhZGVy
TG9jYXRpb246IDAsIGZvcm1hdDogImZsb2F0NCJ9OworICAgIGNvbnN0IGF0dHJpYnV0ZTEgPSB7
c2hhZGVyTG9jYXRpb246IDEsIGZvcm1hdDogImZsb2F0In07CisgICAgY29uc3QgaW5wdXQwID0g
e3N0cmlkZTogMTYsIGF0dHJpYnV0ZVNldDogW2F0dHJpYnV0ZTBdfTsKKyAgICBjb25zdCBpbnB1
dDEgPSB7c3RyaWRlOiA0LCBhdHRyaWJ1dGVTZXQ6IFthdHRyaWJ1dGUxXX07CisgICAgY29uc3Qg
aW5wdXRzID0gW2lucHV0MCwgaW5wdXQxXTsKKyAgICBjb25zdCB2ZXJ0ZXhJbnB1dCA9IHt2ZXJ0
ZXhCdWZmZXJzOiBpbnB1dHN9OworCisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5OiA3LCB0eXBlOiAidW5pZm9y
bS1idWZmZXIifV19OworICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmljZS5jcmVhdGVC
aW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7CisgICAgY29uc3QgcGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlv
dXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxh
eW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOworCisgICAgZGV2aWNlLmNyZWF0ZVJlbmRl
clBpcGVsaW5lKHt2ZXJ0ZXhTdGFnZSwgZnJhZ21lbnRTdGFnZSwgcHJpbWl0aXZlVG9wb2xvZ3ks
IHJhc3Rlcml6YXRpb25TdGF0ZSwgY29sb3JTdGF0ZXMsIGRlcHRoU3RlbmNpbFN0YXRlLCB2ZXJ0
ZXhJbnB1dCwgc2FtcGxlQ291bnQ6IDEsIGxheW91dDogcGlwZWxpbmVMYXlvdXR9KTsKK30KKwor
ZnVuY3Rpb24gZGVsZXRlRGV2aWNlKCkgeworICAgIGRldmljZSA9IG51bGw7CisgICAgLy8gRm9y
Y2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBkZXZpY2UgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhl
IGZyb250ZW5kCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOyB9LCAwKTsKK30KKworYXN5bmMgZnVuY3Rpb24gbG9hZCgpIHsKKyAgICBs
ZXQgYWRhcHRlciA9IGF3YWl0IG5hdmlnYXRvci5ncHUucmVxdWVzdEFkYXB0ZXIoKTsKKyAgICBk
ZXZpY2UgPSBhd2FpdCBhZGFwdGVyLnJlcXVlc3REZXZpY2UoKTsKKworICAgIGF3YWl0IFByb21p
c2UuYWxsKFsKKyAgICAgICAgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCksCisgICAgICAgIGNyZWF0
ZVJlbmRlclBpcGVsaW5lKCksCisgICAgXSk7CisKKyAgICBpZiAod2luZG93LmJlZm9yZVRlc3Qp
CisgICAgICAgIGF3YWl0IGJlZm9yZVRlc3QoKTsKKworICAgIHJ1blRlc3QoKTsKK30KKworVGVz
dFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgaWYgKCFJbnNwZWN0b3JUZXN0
LlNoYWRlclByb2dyYW0pCisgICAgICAgIEluc3BlY3RvclRlc3QuU2hhZGVyUHJvZ3JhbSA9IHt9
OworCisgICAgSW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtLnByb2dyYW1Gb3JUeXBlID0gZnVu
Y3Rpb24ocHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgZm9yIChsZXQgc2hhZGVyUHJvZ3JhbSBvZiBX
SS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zKSB7CisgICAgICAgICAgICBpZiAoc2hhZGVy
UHJvZ3JhbS5wcm9ncmFtVHlwZSA9PT0gcHJvZ3JhbVR5cGUpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHNoYWRlclByb2dyYW07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAg
fTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJj
ZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTI3NWM0NDFhYWZjNzNiOTEwNzk0NWIzY2Q3M2Y5Y2E2N2UxZTY1ZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEzMCArMCwwIEBACi1sZXQgY29udGV4dDsKLWxldCBwcm9ncmFt
OwotCi1mdW5jdGlvbiBjcmVhdGVQcm9ncmFtKGNvbnRleHRUeXBlKSB7Ci0gICAgaWYgKCFjb250
ZXh0KQotICAgICAgICBjb250ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiku
Z2V0Q29udGV4dChjb250ZXh0VHlwZSk7Ci0KLSAgICBwcm9ncmFtID0gY29udGV4dC5jcmVhdGVQ
cm9ncmFtKCk7Ci19Ci0KLWZ1bmN0aW9uIGxpbmtQcm9ncmFtKHZlcnRleFNoYWRlcklkZW50aWZp
ZXIsIGZyYWdtZW50U2hhZGVySWRlbnRpZmllcikgewotICAgIGZ1bmN0aW9uIHR5cGVGb3JTY3Jp
cHQoc2NyaXB0KSB7Ci0gICAgICAgIGlmIChzY3JpcHQudHlwZSA9PT0gIngtc2hhZGVyL3gtdmVy
dGV4IikKLSAgICAgICAgICAgIHJldHVybiBjb250ZXh0LlZFUlRFWF9TSEFERVI7Ci0gICAgICAg
IGlmIChzY3JpcHQudHlwZSA9PT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKQotICAgICAgICAgICAg
cmV0dXJuIGNvbnRleHQuRlJBR01FTlRfU0hBREVSOwotCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGZhbHNlLCAiVW5leHBlY3RlZCBzY3JpcHQgeC1zaGFkZXIgdHlwZTogIiArIHNjcmlwdC50eXBl
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVTaGFkZXJGcm9tU2NyaXB0KHNjcmlwdElk
ZW50aWZpZXIpIHsKLSAgICAgICAgbGV0IHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KHNjcmlwdElkZW50aWZpZXIpOwotICAgICAgICBsZXQgc2hhZGVyID0gY29udGV4dC5jcmVhdGVT
aGFkZXIodHlwZUZvclNjcmlwdChzY3JpcHQpKTsKLSAgICAgICAgY29udGV4dC5hdHRhY2hTaGFk
ZXIocHJvZ3JhbSwgc2hhZGVyKTsKLSAgICAgICAgY29udGV4dC5zaGFkZXJTb3VyY2Uoc2hhZGVy
LCBzY3JpcHQudGV4dCk7Ci0gICAgICAgIGNvbnRleHQuY29tcGlsZVNoYWRlcihzaGFkZXIpOwot
ICAgIH0KLQotICAgIGNyZWF0ZVNoYWRlckZyb21TY3JpcHQodmVydGV4U2hhZGVySWRlbnRpZmll
cik7Ci0gICAgY3JlYXRlU2hhZGVyRnJvbVNjcmlwdChmcmFnbWVudFNoYWRlcklkZW50aWZpZXIp
OwotICAgIGNvbnRleHQubGlua1Byb2dyYW0ocHJvZ3JhbSk7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0
ZVByb2dyYW0oKSB7Ci0gICAgY29udGV4dC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOwotICAgIHBy
b2dyYW0gPSBudWxsOwotfQotCi1mdW5jdGlvbiBkZWxldGVDb250ZXh0KCkgewotICAgIGNvbnRl
eHQgPSBudWxsOwotICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1l
bnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3Qg
cmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgotICAg
IHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKLX0KLQot
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7Ci0gICAgbGV0IHN1aXRlID0gbnVs
bDsKLQotICAgIGZ1bmN0aW9uIHdoZW5Qcm9ncmFtQWRkZWQoY2FsbGJhY2spIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09
IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsK
LSAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9n
cmFtLCAiQWRkZWQgU2hhZGVyUHJvZ3JhbS4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRlclBy
b2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJlbnQgQ2FudmFzLiIpOwotICAgICAgICAgICAgY2FsbGJh
Y2socHJvZ3JhbSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHdoZW5Qcm9n
cmFtUmVtb3ZlZChjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJl
IG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF0uc2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlv
bi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgcHJvZ3Jh
bSA9IGV2ZW50LmRhdGEuaXRlbTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIlJlbW92ZWQgU2hhZGVyUHJv
Z3JhbS4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtLmNh
bnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUgYSBw
YXJlbnQgQ2FudmFzLiIpOwotICAgICAgICAgICAgY2FsbGJhY2socHJvZ3JhbSk7Ci0gICAgICAg
IH0pOwotICAgIH0KLQotICAgIHdpbmRvdy5pbml0aWFsaXplVGVzdFN1aXRlID0gZnVuY3Rpb24o
Y29udGV4dFR5cGUpIHsKLSAgICAgICAgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoYENhbnZhcy5TaGFkZXJQcm9ncmFtLiR7Y29udGV4dFR5cGV9YCk7Ci0KLSAgICAgICAg
c3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0ucmVs
b2FkUGFnZWAsCi0gICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgU2hhZGVyUHJv
Z3JhbUFkZGVkIGlzIHNlbnQgZm9yIGEgcHJvZ3JhbSBjcmVhdGVkIGJlZm9yZSBDYW52YXNBZ2Vu
dCBpcyBlbmFibGVkLiIsCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgICAgIC8vIFRoaXMgY2FuJ3QgdXNlIGBhd2FpdEV2ZW50YCBzaW5jZSB0aGUgcHJv
bWlzZSByZXNvbHV0aW9uIGhhcHBlbnMgb24gdGhlIG5leHQgdGljay4KLSAgICAgICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICB3
aGVuUHJvZ3JhbUFkZGVkKChwcm9ncmFtKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHJldHVybiBzdWl0ZTsKLSAgICB9Ci0KLSAgICAg
d2luZG93LmFkZFNpbXBsZVRlc3RDYXNlID0gZnVuY3Rpb24oY29udGV4dFR5cGUpIHsKLSAgICAg
ICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0u
U2hhZGVyUHJvZ3JhbUFkZGVkYCwKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhh
dCBhZGRlZC9yZW1vdmVkIGV2ZW50cyBhcmUgc2VudC4iLAotICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbUFkZGVkKChhZGRlZFBy
b2dyYW0pID0+IHsKLSAgICAgICAgICAgICAgICAgICAgd2hlblByb2dyYW1SZW1vdmVkKChyZW1v
dmVkUHJvZ3JhbSkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChyZW1vdmVkUHJvZ3JhbSwgYWRkZWRQcm9ncmFtLCAiUmVtb3ZlZCB0aGUgcHJl
dmlvdXNseSBhZGRlZCBTaGFkZXJQcm9ncmFtLiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkZWxldGVQcm9ncmFtKClgKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYGNyZWF0ZVByb2dyYW0oIiR7Y29udGV4dFR5cGV9IilgKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgd2luZG93LmFkZFBhcmVudENhbnZhc1JlbW92ZWRU
ZXN0Q2FzZSA9IGZ1bmN0aW9uKGNvbnRleHRUeXBlKSB7Ci0gICAgICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKLSAgICAgICAgICAgIG5hbWU6IGAke3N1aXRlLm5hbWV9LlBhcmVudENhbnZhc1JlbW92
ZWRgLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBTaGFkZXJQcm9n
cmFtIGlzIHJlbW92ZWQgYmVmb3JlIGl0J3MgcGFyZW50IENhbnZhcy4iLAotICAgICAgICAgICAg
dGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3Zl
ZCA9IGZhbHNlOwotCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJl
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVu
dCkgPT4gewotICAgICAgICAgICAgICAgICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtUmVtb3ZlZCgocHJv
Z3JhbSkgPT4gewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNl
KGNhbnZhc1JlbW92ZWQsICJSZW1vdmVkIFNoYWRlclByb2dyYW0gYmVmb3JlIENhbnZhcy4iKTsK
LSAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotCi0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlUHJvZ3Jh
bSgiJHtjb250ZXh0VHlwZX0iKWApOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoYGRlbGV0ZUNvbnRleHQoKWApOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICB9Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
c2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3NldFNoYWRlclByb2dyYW1EaXNhYmxlZC5odG1sCmluZGV4IDY1N2EzYWI4YzFmZmRiODZj
ZTA4NzBkYTQ3MmI5NmFkZjIxOTI4YjAuLmQzOWVjMzA5NWUxYmU1NDgzZTdjYWMyZDcxZjlkMjQz
MjE0MWRmMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0U2hh
ZGVyUHJvZ3JhbURpc2FibGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9zZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlk
PSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRl
IHZlYzMgcG9zaXRpb247CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFNoYWRlclByb2dyYW1IaWdobGlnaHRl
ZC5odG1sCmluZGV4IGQ0MDg5YzM4MTVhNjk0ZGExNTZiZTAyMDExMzhhNDU2ZDYwYmNmMGEuLjhh
Nzk0M2Q1NWNkNmMxY2JkMDU0YmIwOGMxZWZiZDYyZjY5MzMwYzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFtSGlnaGxp
Z2h0ZWQuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxp
dGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBl
PSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzMgcG9zaXRpb247CiAgICAg
dm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbC5odG1sCmluZGV4IDJj
ZTc5ZjJjYTdhN2VlZjZjY2FjMDdjYzM0ODliZTFhZTg0NWNhMGEuLjNjNjMxMWQ5MjM4NTczYTYx
NTkwMTU5YTI4ZWM3ODQyZjhlNDA0NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wuaHRt
bApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJn
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBsZXQgc3Vp
dGUgPSBpbml0aWFsaXplVGVzdFN1aXRlKCJ3ZWJnbCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13
ZWJnbDIuaHRtbAppbmRleCAyNjNmZmNhYzBiOWIzZjc1MDA5MWQ4MmQzYjg3ZGJkODAzYTc5MTMy
Li45MmZhMzA2MWZmNThkMmNkNWVlOGJlMTFiMjk2Nzg5YThlZTE5ZDc5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJn
bDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0t
YWRkLXJlbW92ZS13ZWJnbDIuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQ
cm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMMkVuYWJsZWQodHJ1
ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dy
YW0tYWRkLXJlbW92ZS13ZWJncHUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNjhkMWZiYWZiZmUzNGU2OGM5NGQ5ODc1M2NhMDI0ZDU1YzRmZThkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFk
ZC1yZW1vdmUtd2ViZ3B1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitDT05TT0xFIE1F
U1NBR0U6IEdQVURldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoKTogV0hMU0wgY29tcGlsZSBl
cnJvcjogQ2Fubm90IGxleDogQ2Fubm90IGNvbnN1bWUgdG9rZW4KK0NPTlNPTEUgTUVTU0FHRTog
R1BVRGV2aWNlLmNyZWF0ZVJlbmRlclBpcGVsaW5lKCk6IFdITFNMIGNvbXBpbGUgZXJyb3I6IENh
bm5vdCBsZXg6IENhbm5vdCBjb25zdW1lIHRva2VuCitDT05TT0xFIE1FU1NBR0U6IEdQVURldmlj
ZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoKTogV0hMU0wgY29tcGlsZSBlcnJvcjogQ2Fubm90IGxl
eDogQ2Fubm90IGNvbnN1bWUgdG9rZW4KK0NPTlNPTEUgTUVTU0FHRTogR1BVRGV2aWNlLmNyZWF0
ZVJlbmRlclBpcGVsaW5lKCk6IFdITFNMIGNvbXBpbGUgZXJyb3I6IENhbm5vdCBsZXg6IENhbm5v
dCBjb25zdW1lIHRva2VuCitUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciB0cmFja3MgY3JlYXRpb24g
YW5kIGRlc3RydWN0aW9uIG9mIFdlYkdQVSBzaGFkZXIgcHJvZ3JhbXMuCisKKworPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuRXhpc3RpbmcKK1BBU1M6IEFkZGVk
ICJjb21wdXRlIiBTaGFkZXJQcm9ncmFtLgorUEFTUzogQWRkZWQgInJlbmRlciIgU2hhZGVyUHJv
Z3JhbS4KK1BBU1M6IFRoZXJlIHNob3VsZCBiZSB0d28gU2hhZGVyUHJvZ3JhbS4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21wdXRl
LlZhbGlkCitQQVNTOiBBZGRlZCAiY29tcHV0ZSIgU2hhZGVyUHJvZ3JhbS4KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21wdXRlLklu
dmFsaWQKK1BBU1M6IFNob3VsZCBub3QgY3JlYXRlIGEgU2hhZGVyUHJvZ3JhbSBmb3IgYW4gaW52
YWxpZCBkZXNjcmlwdG9yLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLlNoYWRlclBy
b2dyYW0uV2ViR1BVLkFkZGVkLlJlbmRlci5WYWxpZAorUEFTUzogQWRkZWQgInJlbmRlciIgU2hh
ZGVyUHJvZ3JhbS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5TaGFkZXJQcm9ncmFt
LldlYkdQVS5BZGRlZC5SZW5kZXIuSW52YWxpZAorUEFTUzogU2hvdWxkIG5vdCBjcmVhdGUgYSBT
aGFkZXJQcm9ncmFtIGZvciBhbiBpbnZhbGlkIGRlc2NyaXB0b3IuCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuUGFyZW50RGV2aWNlUmVtb3ZlZAor
UEFTUzogUmVtb3ZlZCBTaGFkZXJQcm9ncmFtIGJlZm9yZSBDYW52YXMuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdl
YmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFk
ZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc4NzEwZTlmZDYzNTNhMzA0M2YxZWMx
NjViYTU5ZTA3Y2ZkNDBjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCkBAIC0wLDAgKzEs
MTQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2Vi
Z3B1LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuYmVmb3JlVGVzdCA9IGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgY3JlYXRlQ29tcHV0
ZVBpcGVsaW5lKCJJTlZBTElEIiksCisgICAgICAgIGNyZWF0ZVJlbmRlclBpcGVsaW5lKCJJTlZB
TElEIiwgIklOVkFMSUQiKSwKKyAgICBdKTsKK307CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAg
bGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVy
UHJvZ3JhbS5XZWJHUFVgKTsKKworICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzWzBdOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3Vs
ZCBiZSBhIGNhbnZhcy4iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52
YXMuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7
CisKKyAgICBhc3luYyBmdW5jdGlvbiBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgewor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgbGV0IGxpc3RlbmVySXRlbUFkZGVkID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwor
ICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLnByb2dyYW1UeXBlICE9PSBwcm9ncmFtVHlwZSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCBgQWRk
ZWQgIiR7cHJvZ3JhbVR5cGV9IiBTaGFkZXJQcm9ncmFtLmApOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KHByb2dyYW0uY2FudmFzID09PSBjYW52YXMsICJTaGFkZXJQcm9n
cmFtIHNob3VsZCBiZSBmb3IgdGhlIGtub3duIENhbnZhcy4iKTsKKworICAgICAgICAgICAgICAg
IHJlc29sdmUocHJvZ3JhbSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLlNoYWRlclBy
b2dyYW0uV2ViR1BVLkV4aXN0aW5nIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0
IFNoYWRlclByb2dyYW1BZGRlZCBpcyBzZW50IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUg
Q2FudmFzQWdlbnQgaXMgZW5hYmxlZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAg
ICAgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tFeGlzdHMocHJvZ3JhbVR5cGUpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoSW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtLnByb2dyYW1Gb3JUeXBlKHBy
b2dyYW1UeXBlKSkgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYEFk
ZGVkICIke3Byb2dyYW1UeXBlfSIgU2hhZGVyUHJvZ3JhbS5gKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGF3YWl0IGF3
YWl0UHJvZ3JhbUFkZGVkKHByb2dyYW1UeXBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGNoZWNrRXhpc3RzKFdJLlNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZSksCisgICAgICAgICAgICAgICAgY2hlY2tF
eGlzdHMoV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY2FudmFzLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uLnNpemUsIDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIFNoYWRlclBy
b2dyYW0uIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkNhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21wdXRl
LlZhbGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3JlbW92ZWQg
ZXZlbnRzIGFyZSBzZW50LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBh
d2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYXdhaXRQcm9ncmFtQWRkZWQoV0ku
U2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlKSwKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVDb21wdXRlUGlwZWxpbmUoKWApLAorICAg
ICAgICAgICAgXSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21w
dXRlLkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYWRkZWQvcmVt
b3ZlZCBldmVudHMgYXJlIHNlbnQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAg
ICAgIGxldCBzaGFkZXJQcm9ncmFtQWRkZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgbGV0IGxp
c3RlbmVyID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExp
c3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICBzaGFkZXJQcm9ncmFtQWRkZWQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUNv
bXB1dGVQaXBlbGluZSgiSU5WQUxJRCIpYCk7CisKKyAgICAgICAgICAgIGNhbnZhcy5zaGFkZXJQ
cm9ncmFtQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkLCBsaXN0ZW5lcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZh
bHNlKHNoYWRlclByb2dyYW1BZGRlZCwgIlNob3VsZCBub3QgY3JlYXRlIGEgU2hhZGVyUHJvZ3Jh
bSBmb3IgYW4gaW52YWxpZCBkZXNjcmlwdG9yLiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3Jh
bS5XZWJHUFUuQWRkZWQuUmVuZGVyLlZhbGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVj
ayB0aGF0IGFkZGVkL3JlbW92ZWQgZXZlbnRzIGFyZSBzZW50LiIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAg
YXdhaXRQcm9ncmFtQWRkZWQoV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpLAor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVJlbmRl
clBpcGVsaW5lKClgKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3Jh
bS5XZWJHUFUuQWRkZWQuUmVuZGVyLkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNo
ZWNrIHRoYXQgYWRkZWQvcmVtb3ZlZCBldmVudHMgYXJlIHNlbnQuIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtQWRkZWQgPSBmYWxzZTsKKwor
ICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9u
LnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBzaGFkZXJQcm9ncmFtQWRkZWQgPSB0cnVlOwor
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGNyZWF0ZVJlbmRlclBpcGVsaW5lKCJJTlZBTElEIiwgIklOVkFMSUQiKWApOwor
CisgICAgICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24ucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgbGlzdGVuZXIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShzaGFkZXJQcm9ncmFtQWRkZWQsICJTaG91
bGQgbm90IGNyZWF0ZSBhIFNoYWRlclByb2dyYW0gZm9yIGFuIGludmFsaWQgZGVzY3JpcHRvci4i
KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLlBhcmVudERldmljZVJlbW92ZWQi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIFNoYWRlclByb2dyYW0gaXMg
cmVtb3ZlZCBiZWZvcmUgaXQncyBwYXJlbnQgQ2FudmFzLiIsCisgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOworCisg
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgbGV0IHNoYWRlclByb2dyYW1Db3VudCA9IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlv
bi5zaXplOworICAgICAgICAgICAgbGV0IGxpc3RlbmVySXRlbVJlbW92ZWQgPSBjYW52YXMuc2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50
Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoLS1zaGFkZXJQ
cm9ncmFtQ291bnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
ICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIGxpc3RlbmVySXRlbVJlbW92ZWQpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY2FudmFzUmVtb3ZlZCwgIlJl
bW92ZWQgU2hhZGVyUHJvZ3JhbSBiZWZvcmUgQ2FudmFzLiIpOworICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGBkZWxldGVEZXZpY2UoKWApOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIHRy
YWNrcyBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2YgV2ViR1BVIHNoYWRlciBwcm9ncmFtcy48
L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3VwZGF0ZVNoYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3VwZGF0ZVNoYWRlci1leHBlY3RlZC50eHQKaW5kZXggOGYzZmVlOWUxNDA0ZWIyYzRk
MDg0MjA2YjZjZWY3YzhjNDRhNzRjMS4uY2UzN2U4ZTZhOWM4MDBlZmM4ZjdmMDZlY2M0NTJjYTQz
MWNiMTAxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVT
aGFkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLWV4cGVjdGVkLnR4dApAQCAtMSwzOCArMSw4IEBACi1DT05TT0xFIE1FU1NBR0U6
IFdlYkdMOiBFUlJPUjogMDoxOiAnSU5WQUxJRCcgOiBzeW50YXggZXJyb3IKLUNPTlNPTEUgTUVT
U0FHRTogV2ViR0w6IEVSUk9SOiAwOjE6ICdJTlZBTElEJyA6IHN5bnRheCBlcnJvcgotVGVzdCBj
b21waWxhdGlvbiBvZiBzaGFkZXJzIGFmdGVyIGJlaW5nIGF0dGFjaGVkIHRvIGEgcHJvZ3JhbSwg
d2l0aCBhbmQgd2l0aG91dCBzeW50YXggZXJyb3JzLgorQ29tbW9uIHRlc3RzIGZvciBDYW52YXMu
dXBkYXRlU2hhZGVyIGNvbW1hbmQuCiAKIAogPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDYW52YXMu
dXBkYXRlU2hhZGVyCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci52
ZXJ0ZXhTaGFkZXJWYWxpZAotCi0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KDEsIDIsIDMsIDQpOwotICAgIH0KLQotCi0tLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5mcmFnbWVudFNoYWRlclZhbGlkCi0KLSAgICBwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKLQotICAgIHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX0Zy
YWdDb2xvciA9IHZlYzQoMC4xLCAwLjIsIDAuMywgMC40KTsKLSAgICB9Ci0KLQotLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuaW52YWxpZFByb2dyYW1JZAorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuUHJvZ3JhbUlkLkludmFsaWQKIFBB
U1M6IFNob3VsZCBwcm9kdWNlIGFuIGVycm9yLgogRXJyb3I6IE1pc3NpbmcgcHJvZ3JhbSBmb3Ig
Z2l2ZW4gcHJvZ3JhbUlkCiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hh
ZGVyLmludmFsaWRTaGFkZXJUeXBlCi1QQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KLUVy
cm9yOiBNaXNzaW5nIHNoYWRlciBmb3IgZ2l2ZW4gc2hhZGVyVHlwZQotCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkVmVydGV4U2hhZGVyU291cmNlCi1Q
QVNTOiBTaG91bGQgcHJvZHVjZSBlcnJvci4KLUVycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRl
cgotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkRnJh
Z21lbnRTaGFkZXJTb3VyY2UKLVBBU1M6IFNob3VsZCBwcm9kdWNlIGVycm9yLgotRXJyb3I6IEZh
aWxlZCB0byB1cGRhdGUgc2hhZGVyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yYmJiYTcyMThmZjViM2NjNGFlOTViM2E5MDVkMWQzMGY2ZWNiYTU0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ2wtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzQgQEAKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVSUk9S
OiAwOjE6ICdJTlZBTElEJyA6IHN5bnRheCBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDog
RVJST1I6IDA6MTogJ0lOVkFMSUQnIDogc3ludGF4IGVycm9yCitXZWJHTCB0ZXN0cyBmb3IgQ2Fu
dmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2Fu
dmFzLnVwZGF0ZVNoYWRlci5XZWJHTAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRh
dGVTaGFkZXIuV2ViR0wuVmVydGV4LlZhbGlkCisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAg
ICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSwgMiwgMywgNCk7CisgICAgfQorCisKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLkZyYWdtZW50LlZhbGlkCisK
KyAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAgIHZvaWQgbWFpbih2b2lkKSB7Cisg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICB9CisK
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuVmVydGV4
LkludmFsaWQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGVycm9yLgorRXJyb3I6IEZhaWxlZCB0byB1
cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZAorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5GcmFnbWVudC5J
bnZhbGlkCitQQVNTOiBTaG91bGQgcHJvZHVjZSBlcnJvci4KK0Vycm9yOiBGYWlsZWQgdG8gdXBk
YXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuU2hhZGVyVHlwZS5J
bnZhbGlkCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KK0Vycm9yOiBVbmtub3duIHNo
YWRlclR5cGU6IElOVkFMSURfU0hBREVSX1RZUEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ1Nzhl
NGUzOTg3OGExMDQ0YzhiMjAzYTE0MDY0YjY5YzdlMTNhYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLmh0bWwKQEAgLTAs
MCArMSwxMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy13ZWJnbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LXZlcnRleCI+CisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorICAg
IHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAg
ICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworICAgIH0KKzwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgY3JlYXRlUHJvZ3JhbSgid2Vi
Z2wiKTsKKyAgICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIi
KTsKKworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgc3Vp
dGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy51cGRhdGVTaGFkZXIu
V2ViR0wiKTsKKworICAgIGZ1bmN0aW9uIHZhbGlkU291cmNlVGVzdCh7bmFtZSwgc2hhZGVyVHlw
ZSwgc291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBu
YW1lLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAg
ICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07
CisgICAgICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAgICAgICAgICAgICAg
ICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsZXQgcHJvZ3Jh
bUlkID0gc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyOworCisgICAgICAgICAgICAgICAgQ2FudmFz
QWdlbnQudXBkYXRlU2hhZGVyKHByb2dyYW1JZCwgc2hhZGVyVHlwZSwgc291cmNlKQorICAgICAg
ICAgICAgICAgIC50aGVuKCgpID0+IENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2UocHJv
Z3JhbUlkLCBzaGFkZXJUeXBlKSkKKyAgICAgICAgICAgICAgICAudGhlbigoe3NvdXJjZX0pID0+
IEluc3BlY3RvclRlc3QubG9nKHNvdXJjZSkpCisgICAgICAgICAgICAgICAgLnRoZW4ocmVzb2x2
ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgdmFs
aWRTb3VyY2VUZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wu
VmVydGV4LlZhbGlkIiwKKyAgICAgICAgc2hhZGVyVHlwZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlw
ZS5WZXJ0ZXgsCisgICAgICAgIHNvdXJjZTogYAorICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAg
ICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLCAyLCAzLCA0KTsKKyAgICB9CitgLAorICAgIH0pOwor
CisgICAgdmFsaWRTb3VyY2VUZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFk
ZXIuV2ViR0wuRnJhZ21lbnQuVmFsaWQiLAorICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNBZ2Vu
dC5TaGFkZXJUeXBlLkZyYWdtZW50LAorICAgICAgICBzb3VyY2U6IGAKKyAgICBwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKworICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX0ZyYWdD
b2xvciA9IHZlYzQoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICB9CitgLAorICAgIH0pOworCisg
ICAgZnVuY3Rpb24gaW52YWxpZFNvdXJjZVRlc3Qoe25hbWUsIHNoYWRlclR5cGUsIHNvdXJjZX0p
IHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwKKyAgICAg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgbGV0IHNoYWRl
clByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOworICAgICAgICAg
ICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAgICAgICAgICAgICByZWplY3Qo
Ik1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hh
ZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJyb3Ip
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9y
LCAiU2hvdWxkIHByb2R1Y2UgZXJyb3IuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBpbnZhbGlkU291cmNlVGVzdCh7CisgICAgICAgIG5hbWU6ICJDYW52YXMudXBk
YXRlU2hhZGVyLldlYkdMLlZlcnRleC5JbnZhbGlkIiwKKyAgICAgICAgc2hhZGVyVHlwZTogQ2Fu
dmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgsCisgICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAor
ICAgIH0pOworCisgICAgaW52YWxpZFNvdXJjZVRlc3QoeworICAgICAgICBuYW1lOiAiQ2FudmFz
LnVwZGF0ZVNoYWRlci5XZWJHTC5GcmFnbWVudC5JbnZhbGlkIiwKKyAgICAgICAgc2hhZGVyVHlw
ZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwKKyAgICAgICAgc291cmNlOiAiSU5W
QUxJRCIsCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlNoYWRlclR5cGUuSW52YWxpZCIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiSW52YWxpZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNhdXNlIGFuIGVycm9y
LiIsCisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBsZXQgc2hh
ZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAg
ICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKKyAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Np
bmcgc2hhZGVyIHByb2dyYW0iKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgY29uc3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElEX1NIQURFUl9UWVBF
IjsKKyAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9ICJJTlZBTElEX1NPVVJDRSI7CisgICAgICAg
ICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBz
aGFkZXJUeXBlLCBzb3VyY2UsIChlcnJvcikgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGFuIGVycm9yLiIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKKyAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0p
OworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKzxwPldlYkdMIHRlc3RzIGZvciBDYW52YXMu
dXBkYXRlU2hhZGVyIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJlZDM3MjIzYzc1YzBmZTU4NTYxZTgyYWIwZDE0OTY1
YzRhY2JmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
dXBkYXRlU2hhZGVyLXdlYmdwdS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorV2ViR1BV
IHRlc3RzIGZvciBDYW52YXMudXBkYXRlU2hhZGVyIGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0
ZXN0IHN1aXRlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLkNvbXB1dGUuVmFsaWQKK1BBU1M6IFNvdXJj
ZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVw
ZGF0ZVNoYWRlci5XZWJHUFUuQ29tcHV0ZS5JbnZhbGlkCitQQVNTOiBTaG91bGQgcHJvZHVjZSBh
biBleGNlcHRpb24uCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4gc2hh
ZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCitQQVNTOiBTb3VyY2Ugc2hvdWxkIGhhdmUgY2hh
bmdlZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BV
LlZlcnRleC5WYWxpZAorUEFTUzogU291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5WZXJ0ZXguSW52YWxp
ZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IEZhaWxlZCB0byB1
cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZAorUEFT
UzogU291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5GcmFnbWVudC5WYWxpZAorUEFTUzogU291cmNlIHNo
b3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRl
U2hhZGVyLldlYkdQVS5GcmFnbWVudC5JbnZhbGlkCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBl
eGNlcHRpb24uCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVy
VHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCitQQVNTOiBTb3VyY2Ugc2hvdWxkIGhhdmUgY2hhbmdl
ZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFk
ZXItd2ViZ3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci13ZWJncHUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDJhZGRjZjk5NTljNGM2ZjM5OTU1YTgxYjRiYzA5
MjFmMGRlYmI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwKQEAgLTAsMCArMSw5OSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVIik7CisKKyAgICBm
dW5jdGlvbiB0ZXN0KHtuYW1lLCBwcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSwgc291cmNlLCBzaG91
bGRUaHJvd30pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFt
ZSwKKyAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgbGV0IHNoYWRl
clByb2dyYW0gPSBJbnNwZWN0b3JUZXN0LlNoYWRlclByb2dyYW0ucHJvZ3JhbUZvclR5cGUocHJv
Z3JhbVR5cGUpOworICAgICAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkKKyAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iOworCisgICAgICAgICAg
ICAgICAgbGV0IG9yaWdpbmFsU291cmNlID0gYXdhaXQgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRl
clNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUpOworCisgICAgICAg
ICAgICAgICAgaWYgKHNob3VsZFRocm93KSB7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IElu
c3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGF3YWl0IENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlk
ZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBhd2FpdCBDYW52YXNB
Z2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBz
b3VyY2UpOworCisgICAgICAgICAgICAgICAgbGV0IG5ld1NvdXJjZSA9IGF3YWl0IENhbnZhc0Fn
ZW50LnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyLCBzaGFkZXJU
eXBlKTsKKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0Vx
dWFsKG9yaWdpbmFsU291cmNlLCBuZXdTb3VyY2UsICJTb3VyY2Ugc2hvdWxkIGhhdmUgY2hhbmdl
ZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgdGVzdCh7Cisg
ICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5Db21wdXRlLlZhbGlkIiwK
KyAgICAgICAgcHJvZ3JhbVR5cGU6IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0
ZSwKKyAgICAgICAgc2hhZGVyVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1
dGUsCisgICAgICAgIHNvdXJjZTogYAorW251bXRocmVhZHMoMiwgMSwgMSldCitjb21wdXRlIHZv
aWQgbmV3Q29tcHV0ZVNoYWRlcihkZXZpY2UgZmxvYXRbXSBidWZmZXIgOiByZWdpc3Rlcih1MCks
IGZsb2F0MyB0aHJlYWRJRCA6IFNWX0Rpc3BhdGNoVGhyZWFkSUQpIHsKKyAgICBidWZmZXJbdWlu
dCh0aHJlYWRJRC54KV0gPSBidWZmZXJbdWludCh0aHJlYWRJRC54KV0gKiAyLjA7Cit9CitgLAor
ICAgIH0pOworCisgICAgdGVzdCh7CisgICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVy
LldlYkdQVS5Db21wdXRlLkludmFsaWQiLAorICAgICAgICBwcm9ncmFtVHlwZTogV0kuU2hhZGVy
UHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlLAorICAgICAgICBzaGFkZXJUeXBlOiBXSS5TaGFk
ZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZSwKKyAgICAgICAgc291cmNlOiAiSU5WQUxJRCIs
CisgICAgICAgIHNob3VsZFRocm93OiB0cnVlLAorICAgIH0pOworCisgICAgdGVzdCh7CisgICAg
ICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5WZXJ0ZXguVmFsaWQiLAorICAg
ICAgICBwcm9ncmFtVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIsCisg
ICAgICAgIHNoYWRlclR5cGU6IFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsCisg
ICAgICAgIHNvdXJjZTogYAordmVydGV4IGZsb2F0NCBuZXdWZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBv
c2l0aW9uIDogYXR0cmlidXRlKDApLCBmbG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0
aW9uIHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CitgLAorICAgIH0pOworCisgICAgdGVzdCh7
CisgICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5WZXJ0ZXguSW52YWxp
ZCIsCisgICAgICAgIHByb2dyYW1UeXBlOiBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJl
bmRlciwKKyAgICAgICAgc2hhZGVyVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZl
cnRleCwKKyAgICAgICAgc291cmNlOiAiSU5WQUxJRCIsCisgICAgICAgIHNob3VsZFRocm93OiB0
cnVlLAorICAgIH0pOworCisgICAgdGVzdCh7CisgICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRl
U2hhZGVyLldlYkdQVS5GcmFnbWVudC5WYWxpZCIsCisgICAgICAgIHByb2dyYW1UeXBlOiBXSS5T
aGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlciwKKyAgICAgICAgc2hhZGVyVHlwZTogV0ku
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50LAorICAgICAgICBzb3VyY2U6IGAKK2Zy
YWdtZW50IGZsb2F0NCBuZXdGcmFnbWVudFNoYWRlcihmbG9hdDQgcG9zaXRpb24gOiBTVl9Qb3Np
dGlvbikgOiBTVl9UYXJnZXQgMCB7CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQorYCwKKyAgICB9
KTsKKworICAgIHRlc3QoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJH
UFUuRnJhZ21lbnQuSW52YWxpZCIsCisgICAgICAgIHByb2dyYW1UeXBlOiBXSS5TaGFkZXJQcm9n
cmFtLlByb2dyYW1UeXBlLlJlbmRlciwKKyAgICAgICAgc2hhZGVyVHlwZTogV0kuU2hhZGVyUHJv
Z3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50LAorICAgICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAg
ICAgICAgc2hvdWxkVGhyb3c6IHRydWUsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2Fz
ZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2Fk
KCkiPgorPHA+V2ViR1BVIHRlc3RzIGZvciBDYW52YXMudXBkYXRlU2hhZGVyIGNvbW1hbmQuPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLmh0bWwKaW5kZXggZTQ5YWQyYjMxM2M3Nzc2ZTEwOThkMDg1ZTU3NDZkZjY2YWJm
MGEzYS4uN2IwYTRjZmY5MGQzMzkyYzkzZjg0N2I2NzBmYWU5MDQ3NmMwMGNmYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sCkBAIC0yLDc0ICsy
LDEyIEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLSAgICB2b2lk
IG1haW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwg
MS4wKTsKLSAgICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImZyYWdtZW50LXNoYWRlciIgdHlw
ZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci0gICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0K
LSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwg
MS4wLCAxLjAsIDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9h
ZCgpIHsKLSAgICBjcmVhdGVQcm9ncmFtKCJ3ZWJnbCIpOwotICAgIGxpbmtQcm9ncmFtKCJ2ZXJ0
ZXgtc2hhZGVyIiwgImZyYWdtZW50LXNoYWRlciIpOwotCi0gICAgcnVuVGVzdCgpOwotfQotCiBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiQ2FudmFzLnVwZGF0ZVNoYWRlciIpOwogCi0gICAgZnVuY3Rpb24gdmFsaWRTb3Vy
Y2VUZXN0KHtuYW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7Ci0gICAgICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWUsCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFu
YWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dy
YW0pIHsKLSAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFt
IikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgICAgIGxldCBwcm9ncmFtSWQgPSBzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXI7Ci0K
LSAgICAgICAgICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIocHJvZ3JhbUlkLCBzaGFk
ZXJUeXBlLCBzb3VyY2UpCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gQ2FudmFzQWdlbnQu
cmVxdWVzdFNoYWRlclNvdXJjZShwcm9ncmFtSWQsIHNoYWRlclR5cGUpKQotICAgICAgICAgICAg
ICAgIC50aGVuKCh7Y29udGVudH0pID0+IEluc3BlY3RvclRlc3QubG9nKGNvbnRlbnQpKQotICAg
ICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0pOwotICAgIH0KLQotICAgIHZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJD
YW52YXMudXBkYXRlU2hhZGVyLnZlcnRleFNoYWRlclZhbGlkIiwKLSAgICAgICAgc2hhZGVyVHlw
ZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgsCi0gICAgICAgIHNvdXJjZTogYAotICAg
IHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLCAyLCAzLCA0
KTsKLSAgICB9Ci1gLAotICAgIH0pOwotCi0gICAgdmFsaWRTb3VyY2VUZXN0KHsKLSAgICAgICAg
bmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuZnJhZ21lbnRTaGFkZXJWYWxpZCIsCi0gICAgICAg
IHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsCi0gICAgICAgIHNv
dXJjZTogYAotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9pZCBtYWluKHZv
aWQpIHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjEsIDAuMiwgMC4zLCAwLjQpOwot
ICAgIH0KLWAsCi0gICAgfSk7Ci0KICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5h
bWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRQcm9ncmFtSWQiLAorICAgICAgICBuYW1l
OiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5Qcm9ncmFtSWQuSW52YWxpZCIsCiAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiSW52YWxpZCBwcm9ncmFtIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJv
ci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgY29uc3Qg
cHJvZ3JhbUlkID0gIklOVkFMSURfUFJPR1JBTV9JRCI7CkBAIC04Myw2MiArMjEsMTEgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgfQogICAgIH0pOwogCi0gICAgc3VpdGUuYWRkVGVzdENh
c2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkU2hhZGVyVHlw
ZSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBzaGFkZXIgdHlwZXMgc2hvdWxkIGNh
dXNlIGFuIGVycm9yLiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAg
ICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNb
MF07Ci0gICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICBy
ZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29uc3Qgc2hhZGVyVHlwZSA9ICJJTlZBTElE
X1NIQURFUl9UWVBFIjsKLSAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9ICJJTlZBTElEX1NPVVJD
RSI7Ci0gICAgICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIoc2hhZGVyUHJvZ3JhbS5p
ZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3VyY2UsIChlcnJvcikgPT4gewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGFuIGVy
cm9yLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIGVy
cm9yKTsKLSAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfQotICAgIH0pOwotCi0gICAgZnVuY3Rpb24gaW52YWxpZFNvdXJjZVRlc3Qoe25hbWUsIHNo
YWRlclR5cGUsIHNvdXJjZX0pIHsKLSAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAg
ICAgICAgbmFtZSwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAg
ICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dy
YW1zWzBdOwotICAgICAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAg
ICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgQ2Fu
dmFzQWdlbnQudXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlw
ZSwgc291cmNlLCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHByb2R1Y2UgZXJyb3IuIik7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fQotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpbnZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRWZXJ0ZXhTaGFkZXJTb3VyY2UiLAot
ICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCwKLSAgICAg
ICAgc291cmNlOiAiSU5WQUxJRCIsCi0gICAgfSk7Ci0KLSAgICBpbnZhbGlkU291cmNlVGVzdCh7
Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmludmFsaWRGcmFnbWVudFNoYWRl
clNvdXJjZSIsCi0gICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJh
Z21lbnQsCi0gICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAotICAgIH0pOwotCiAgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9u
bG9hZD0ibG9hZCgpIj4KLSAgICA8cD5UZXN0IGNvbXBpbGF0aW9uIG9mIHNoYWRlcnMgYWZ0ZXIg
YmVpbmcgYXR0YWNoZWQgdG8gYSBwcm9ncmFtLCB3aXRoIGFuZCB3aXRob3V0IHN5bnRheCBlcnJv
cnMuPC9wPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+Q29tbW9uIHRlc3RzIGZvciBD
YW52YXMudXBkYXRlU2hhZGVyIGNvbW1hbmQuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNGI4Njc0YTEyZTU3Mzhj
N2UyZTNlZDM2NjZjMzVhZjA4Y2QxMTdhLi5hMmViYWZjZTQzMzdhYWVhOWZhNjc1MGFkZjgyMTMx
OGRkMjEzNzRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTE1MCw3ICsxMTUwLDEwIEBAIHdlYmtpdC5vcmcvYi8xNjg0NjYgaHR0cC90ZXN0cy9zZWN1
cml0eS9ieXBhc3NpbmctY29ycy1jaGVja3MtZm9yLWV4dGVuc2lvbi11cmxzCiB3ZWJraXQub3Jn
L2IvMTkxMDA1IHdlYmdwdS8gWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9y
L2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzE5MTAwNSBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy13ZWJncHUuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTAwNSBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFk
ZXJTb3VyY2Utd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVj
dG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzE5MTAwNSBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJn
cHUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTAwNSBpbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJncHUuaHRtbCBbIFNraXAgXQogCiAjIE5vIHN1cHBvcnQgZm9yIHJlc291
cmNlIGxvYWQgc3RhdGlzdGljcyB5ZXQKIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy8gWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYzBkOTMyMDA2YWY1NGZiMWY2YmQ2NmQ0MGE1N2Y2NjUyMGQ0YmNhNS4uN2YxYmZlMDI2NWIy
NDA1N2RjNjAxMDZlOTg1M2ZlYTVhNGJiNWM4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1LDcgKzQ1LDEwIEBAIHdlYmtpdC5vcmcvYi8yMDAzMDgg
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2NvbnRlbnQtb2JzZXJ2YXRpb24vbm9uLXZpc2libGUtY29u
dGVuCiB3ZWJncHUgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2Vi
Z3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLXdl
YmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Ut
d2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z3B1Lmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13
ZWJncHUuaHRtbCBbIFNraXAgXQogCiAjIEVuY3J5cHRlZCBNZWRpYSBFeHRlbnNpb25zIGFyZSBu
b3QgZW5hYmxlZAogbWVkaWEvZW5jcnlwdGVkLW1lZGlhLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQzNDkzMmQxY2ViNzM2MGIzZGY3ZDQz
MDc3Yzk0NjQyZGNhZjJiMjkuLmIxZmU1ZjA1OGFlZDVkNjc5ZDYwYjc4ODQ3ODdjMTljZmUyZDMz
MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTQ3LDcgKzQ3LDEwIEBAIGNzcy1kYXJrLW1vZGUgWyBTa2lwIF0KIHdlYmdwdSBbIFNraXAg
XQogaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQog
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0K
K2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbCBbIFNraXAg
XQogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQor
aW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgWyBT
a2lwIF0KK2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5odG1sIFsgU2tpcCBd
CiAKICMgTWVkaWEgU3RyZWFtIEFQSSB0ZXN0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFdLMSB5
ZXQuCiBmYXN0L21lZGlhc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGUyZTY4NGVmNzc4MTIwMjE1NWY1MGZkMGNkMjZiNzAzYWUzMmVmNWYuLmJh
ZGYxYTdhOTgyYmRiZDZkYzE1ZGFlMzY3ZWRlOThhNmY4MzRlMDkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzgxLDcgKzE3ODEsMTAgQEAgd2Via2l0
Lm9yZy9iLzE5MDk3NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jaGEKIHdlYmtpdC5vcmcvYi8xOTkyNzUgWyBIaWdoU2llcnJhIF0gd2Vi
Z3B1IFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rv
ci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8xOTkyNzUgWyBIaWdoU2llcnJhIF0gaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9k
ZXMtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTkyNzUgWyBIaWdoU2llcnJh
IF0gaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tp
cCBdCiB3ZWJraXQub3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTkyNzUg
WyBIaWdoU2llcnJhIF0gaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUt
d2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTkyNzUgWyBIaWdoU2llcnJhIF0g
aW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogd2Vi
a2l0Lm9yZy9iLzE4OTY4MCBwbGF0Zm9ybS9tYWMvbWVkaWEvYXVkaW8tc2Vzc2lvbi1jYXRlZ29y
eS12aWRlby1wYXVzZWQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTA1NjQ0OGVhM2NiZGQ0NThhMDlhYjZmNTA0
NzcwYTVlMjdlMTU2ZS4uMjE2Yzk5NDk3NTg2NjgwODFkMTQwZTYzNWQxMjA2ODM3OTQwNDkzNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwMDEsMTIg
KzIwMDEsMTMgQEAgaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLW1lbW9yeUxpbWl0
Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1zbmFwc2hv
dHMuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5o
dG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1s
IFsgU2tpcCBdCi1pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbCBbIFNr
aXAgXQoraW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLmh0bWwgWyBT
a2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbCBbIFNraXAg
XQogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbCBbIFNraXAgXQog
aW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wuaHRtbCBbIFNr
aXAgXQogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wyLmh0
bWwgWyBTa2lwIF0KLWluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLmh0bWwgWyBTa2lwIF0K
K2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLmh0bWwgWyBTa2lwIF0KKwogIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyMjIyMjIyMjIyMjIyMjICAgICAgICAgIEVuZCBXZWJH
TCBJc3N1ZXMgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwpAQCAtNDI0Myw3ICs0MjQ0LDEwIEBAIHdlYmtpdC5vcmcvYi8xOTA1MjAg
ZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXdp
dGgtCiB3ZWJncHUgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2Vi
Z3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLXdl
YmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Ut
d2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z3B1Lmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13
ZWJncHUuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTkxMTk0IGZhc3QvYmxvY2svYmFz
aWMvaW5saW5lLWNvbnRlbnQtd2l0aC1mbG9hdGluZy1pbWFnZS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMTkxMTk0IGZhc3QvYmxvY2svYmFzaWMvaW5saW5lLWNvbnRlbnQtd2l0aC1m
bG9hdGluZy1pbWFnZXMyLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ0MWFjNTE1ZjIwZTVjMDY5ZTY0NGI3
YTJiZmQ4OGZkNDExNDczMjYuLmVjYjk0NTMzZTk5YTQ1YWVlNjI2N2ZjNTkyZGMwMTEzYzdjYzY3
NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjk4LDcgKzI5OCwxMCBAQCB3ZWJnbC93ZWJnbDItcmVuZGVyaW5nLWNvbnRleHQtb2J0
YWluLmh0bWwgWyBTa2lwIF0KIHdlYmdwdSBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9jcmVh
dGUtY29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
Q2xpZW50Tm9kZXMtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9yZXNv
bHZlQ29udGV4dC13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQ
cm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMv
dXBkYXRlU2hhZGVyLXdlYmdwdS5odG1sIFsgU2tpcCBdCiAKICMgV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUIGlzIGRpc2FibGVkCiBtZWRpYS9haXJwbGF5LXRhcmdldC1hdmFpbGFiaWxpdHkuaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBkNWY4NWVkOWFmY2RjYjcyNmMzMjBjZjI4ZDMyNGE3ZmFiODM5ZTVjLi5lZjUwOGY3MjliNjJi
NzM1NzZjOGE5ZDcwZTM4ZTA1NTQ0Mjc5ZTI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMzAzLDcgKzMwMywxMCBAQCBCdWcoV1BFKSBqcy9zdHJpbmdp
bXBsLXRvLWpzc3RyaW5nLW9uLWxhcmdlLXN0cmluZ3MtMy5odG1sIFsgU2tpcCBdCiB3ZWJncHUg
WyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBT
a2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLXdlYmdwdS5odG1sIFsg
U2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0bWwg
WyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBT
a2lwIF0KK2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5o
dG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUuaHRtbCBb
IFNraXAgXQogCiAjIFNraXBwZWQgZHVlIHRvIHVudGVzdGFibGUgRFJNIGtleSBzeXN0ZW0uIENs
ZWFyS2V5IGNvdW50ZXJwYXJ0cyBhcmUgdGVzdGVkIGluc3RlYWQuCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tY2hlY2staW5pdGRhdGEtdHlwZS5o
dHRwcy5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379387</attachid>
            <date>2019-09-23 13:23:48 -0700</date>
            <delta_ts>2019-09-23 14:11:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201675-20190923132347.patch</filename>
            <type>text/plain</type>
            <size>216704</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGMzZDlkMzZiMjg3YjBjMThhMWEzMGI5Nzk4OGIy
MGJiZWViMmE4N2QuLjg1Y2Q1OTdjNTk4YjUzZDY4ZTJiZTY1ZmYwNDYxNjU5MGEzY2JjNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA5LTIzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHNob3cgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTU1NDM0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uOgorICAgICAgICBBZGQgYSBg
UHJvZ3JhbVR5cGVgIGVudW0gdGhhdCBjb252ZXlzIHRoZSB0eXBlIG9mIHNoYWRlciBwcm9ncmFt
L3BpcGVsaW5lIHdoZW4gbm90aWZ5aW5nIHRoZQorICAgICAgICBmcm9udGVuZCBvZiBhIG5ldyBw
cm9ncmFtCisKIDIwMTktMDktMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSlNDXSBJbnQ1MlJlcChEb3VibGVSZXBBbnlJbnRVc2UpIHNob3VsZCBub3Qg
Y2FsbCBvcGVyYXRpb24gZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYjM4YTU5MGU4ZWFhODgzMzA1
NzFlMTE0MTljMDI0YWU1ZGNmZjYzLi5iZjA0MzBiYjc4MTRiNDgxODlmMThjNmY3MmEwN2NkMGI4
OWU0NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTU3IEBACisyMDE5LTA5LTIzICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW52
YXM6IHNob3cgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU1NDM0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAg
ICAgIFRlc3RzOiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0
bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJncHUuaHRtbAorCisgICAgICAgIENyZWF0ZSBjb21tb24gYmFzZSBjbGFzc2VzIGZv
ciBgV2ViR1BVUGlwZWxpbmVgIGFuZCBgR1BVUGlwZWxpbmVgIHNvIHRoYXQgV2ViIEluc3BlY3Rv
ciBjYW4KKyAgICAgICAgaW5zdHJ1bWVudCBib3RoIHJlbmRlciBhbmQgY29tcHV0ZSBzaGFkZXIg
cGlwZWxpbmVzLgorCisgICAgICAgIFJlZmFjdG9yIGBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtYCB0
byBzdXBwb3J0IGJvdGggYFdlYkdMUHJvZ3JhbWAgYW5kIGBXZWJHUFVQaXBlbGluZWAgc28KKyAg
ICAgICAgdGhhdCB0aGUgc2FtZSBvYmplY3QgY2FuIGJlIHVzZWQgZm9yIGFsbCB0eXBlcyBvZiBz
aGFkZXIgInByb2dyYW0icy4KKworICAgICAgICBLZWVwIGEgY29weSBvZiBlYWNoIHNoYWRlciBt
b2R1bGUncyBzb3VyY2UsIGFuZCBhbGxvdyB0aGUgc2hhZGVyIG1vZHVsZSB0byBiZSB1cGRhdGVk
LgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VURldmljZTo6Y3JlYXRlU2hhZGVyTW9kdWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdQVURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVs
aW5lIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBp
cGVsaW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmU6OmlzUmVu
ZGVyUGlwZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmU6Omlz
Q29tcHV0ZVBpcGVsaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5l
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XZWJHUFVQaXBlbGluZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlw
ZWxpbmU6Omluc3RhbmNlc011dGV4KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5l
OjpXZWJHUFVQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZTo6fldl
YkdQVVBpcGVsaW5lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxp
bmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxp
bmUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZTo6aXNSZW5kZXJQaXBl
bGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZTo6aXNDb21wdXRlUGlw
ZWxpbmUgY29uc3QpOgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxp
bmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y29tcHV0ZVBp
cGVsaW5lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21wdXRlUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVs
aW5lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpX
ZWJHUFVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tcHV0ZVBp
cGVsaW5lOjpyZWNvbXBpbGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGlw
ZWxpbmU6OmlzQ29tcHV0ZVBpcGVsaW5lKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVQ29tcHV0ZVBpcGVsaW5lOjpHUFVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUpOiBBZGRlZC4KKworICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
UmVuZGVyUGlwZWxpbmU6OnJlbmRlclBpcGVsaW5lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdQVVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHUFVSZW5kZXJQaXBlbGluZTo6cmVjb21waWxlKTogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVsaW5lLmg6CisgICAgICAgIChXZWJD
b3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6aXNSZW5kZXJQaXBlbGluZSk6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1t
OgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTXRsUmVuZGVyUGlwZWxpbmVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVJlbmRlclBpcGVsaW5lOjpHUFVSZW5kZXJQaXBlbGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVSZW5kZXJQaXBlbGluZTo6cmVjb21waWxlKTogQWRkZWQuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdQVVNoYWRlck1vZHVsZTo6c291cmNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVVNoYWRlck1vZHVsZTo6dXBkYXRlKTogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yOjpHUFVQcm9ncmFt
bWFibGVTdGFnZURlc2NyaXB0b3IpOgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclNo
YWRlclByb2dyYW0uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6SW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpw
cm9ncmFtIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtOjpwaXBlbGluZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hhZGVy
Rm9yVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bTo6cmVxdWVzdFNoYWRlclNvdXJjZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjb250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OnNoYWRlckZvclR5cGUpOiBEZWxl
dGVkLgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6Okluc3BlY3RvckNhbnZhc0Fn
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaXNjYXJkQWdl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmVuYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVxdWVzdFNoYWRlclNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6dXBkYXRlU2hhZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtRGlz
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnNldFNoYWRl
clByb2dyYW1IaWdobGlnaHRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNB
Z2VudDo6ZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNXZWJHTFByb2dyYW1EaXNh
YmxlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6Omlz
V2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZSk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR1BVUGlwZWxp
bmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojpwcm9n
cmFtRGVzdHJveWVkVGltZXJGaXJlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OnJlc2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDYW52YXNBZ2VudDo6dW5iaW5kUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDYW52YXNBZ2VudDo6ZmluZEluc3BlY3RvclByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVByb2dyYW0pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZWxldGVQcm9ncmFtKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojppc1NoYWRlclBy
b2dyYW1EaXNhYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52
YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNsZWFyQ2FudmFzRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHTFByb2dy
YW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhp
Z2hsaWdodGVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3Jl
YXRlUHJvZ3JhbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxEZWxldGVQcm9ncmFtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRl
clByb2dyYW1IaWdobGlnaHRlZCk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbUltcGwpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHTFByb2dy
YW1JbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWRJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBs
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZVdlYkdQVVBpcGVsaW5lSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lSW1wbCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVh
dGVQcm9ncmFtSW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxEZWxldGVQcm9ncmFtSW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVk
SW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbCk6IERlbGV0ZWQuCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xQcm9ncmFtOjpXZWJHTFByb2dy
YW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xQcm9ncmFtOjp+V2ViR0xQcm9ncmFtKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclNjb3BlZFNoYWRlclByb2dyYW1IaWdobGlnaHQ6OnNob3dI
aWdodGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmNyZWF0ZVByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZGVsZXRlUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkcmF3QXJyYXlzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyk6CisgICAgICAgIFJlbmFtZSBXZWJHTCBwcm9ncmFt
IGluc3RydW1lbnRhdGlvbiBwb2ludHMgdG8gYmUgbGVzcyBhbWJpZ3VvdXMuCisKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTktMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWR1Y2UgdXNlIG9mIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpIGluIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNWVkZDM1NTk1ODY4N2Y2YTc1MGU5M2IyNTg0
ZjhiNmY3MDRlNTZlYS4uNDI1NDNkNzBhZjRmOWE0MmQ4ODNiYjczOTBlOGQ2ZTM1Y2JjMjYzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTktMDktMjMgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IENhbnZhczogc2hvdyBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNjc1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NTU0MzQ1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisK
KyAgICAgICAgU2hvdyBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lcyAoInByb2dyYW1zIikgdW5kZXJu
ZWF0aCBlYWNoIGNvcnJlc3BvbmRpbmcgV2ViR1BVIGRldmljZS4KKworICAgICAgICBBbGxvdyBl
ZGl0aW5nIG9mIGF0dGFjaGVkIHNoYWRlciBtb2R1bGVzIGZvciBlYWNoIFdlYkdQVSBzaGFkZXIg
cGlwZWxpbmUsIGJ1dCBkb24ndCBhbGxvdworICAgICAgICBoaWdobGlnaHRpbmcvZGlzYWJsaW5n
LCBhcyBXZWJHUFUgcGlwZWxpbmVzIGRvbid0IGhhdmUgdGhvc2UgY2FwYWJpbGl0aWVzL2NvbmNl
cHRzIHlldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2
ZXIuanM6CisgICAgICAgIChXSS5DYW52YXNPYnNlcnZlci5wcm90b3R5cGUucHJvZ3JhbUNyZWF0
ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5q
czoKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnByb2dyYW1DcmVhdGVkKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qczoKKyAgICAgICAgKFdJ
LkNhbnZhcy5wcm90b3R5cGUubmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyRm9yUHJvZ3Jh
bVR5cGUpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhcy5wcm90b3R5cGUubmV4dFNoYWRlclBy
b2dyYW1EaXNwbGF5TnVtYmVyKTogRGVsZXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
TW9kZWxzL1NoYWRlclByb2dyYW0uanM6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtKToKKyAg
ICAgICAgKFdJLlNoYWRlclByb2dyYW0uY29udGV4dFR5cGVTdXBwb3J0c1Byb2dyYW1UeXBlKTog
QWRkZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb2dyYW1UeXBlU3VwcG9ydHNTaGFk
ZXJUeXBlKTogQWRkZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS5nZXQg
cHJvZ3JhbVR5cGUpOiBBZGRlZC4KKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90eXBl
LmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS5z
ZXQgZGlzYWJsZWQpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUucmVxdWVz
dFNoYWRlclNvdXJjZSk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS51cGRh
dGVTaGFkZXIpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuc2hvd0hpZ2hs
aWdodCk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS5oaWRlSGlnaGxpZ2h0
KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90eXBlLnJlcXVlc3RWZXJ0ZXhTaGFk
ZXJTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUu
cmVxdWVzdEZyYWdtZW50U2hhZGVyU291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLlNoYWRl
clByb2dyYW0ucHJvdG90eXBlLnVwZGF0ZVZlcnRleFNoYWRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS51cGRhdGVGcmFnbWVudFNoYWRlcik6IERlbGV0
ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS5fcmVxdWVzdFNoYWRlclNv
dXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS5fdXBk
YXRlU2hhZGVyKTogRGVsZXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2hh
ZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3KToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1Db250ZW50Vmlldy5wcm90b3R5cGUu
Z2V0IG5hdmlnYXRpb25JdGVtcyk6IEFkZGVkLgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29u
dGVudFZpZXcucHJvdG90eXBlLmhpZGRlbik6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtQ29u
dGVudFZpZXcucHJvdG90eXBlLmdldCBzYXZlRGF0YSk6CisgICAgICAgIChXSS5TaGFkZXJQcm9n
cmFtQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoQ29udGVudCk6CisgICAgICAgIChXSS5T
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVTaGFkZXIpOgorICAgICAg
ICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3RvdHlwZS5fY29udGVudERpZENoYW5n
ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZp
ZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIp
OiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVy
LmNvbXB1dGUpOiBBZGRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5z
aGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIudmVydGV4LCk6IEFkZGVkLgorICAgICAgICAoYm9keVtk
aXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5mcmFnbWVudCwp
OiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVy
ICsgLnNoYWRlcik6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3Jh
bSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAqKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciA+IGhlYWRlciA+IC5zaGFkZXItdHlwZSk6IEFkZGVk
LgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIpOiBBZGRlZC4KKyAgICAgICAg
KC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3Jh
bSA+IC50ZXh0LWVkaXRvci5zaGFkZXIudmVydGV4LCk6IERlbGV0ZWQuCisgICAgICAgIChib2R5
W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hh
ZGVyLmZyYWdtZW50LCk6IERlbGV0ZWQuCisgICAgICAgIChib2R5W2Rpcj1sdHJdIC5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsgLnRleHQtZWRpdG9y
LnNoYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcu
c2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsgLnRleHQtZWRpdG9yLnNoYWRl
cik6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRl
eHQtZWRpdG9yLnNoYWRlciA+IC50eXBlLXRpdGxlKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250
ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLkNvZGVNaXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFk
ZGl0aW9ucy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3Jh
bVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50KToK
KyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gp
OgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmRldGFj
aCk6CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQucHJvdG90eXBlLmNhblNl
bGVjdE9uTW91c2VEb3duKToKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudC5w
cm90b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKIDIwMTktMDktMjAgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhUTUwgRm9y
bWF0dGVyIC0gYmV0dGVyIGluZGVudGF0aW9uL25ld2xpbmUgaGFuZGxpbmcgZm9yIHNlbGYgY2xv
c2luZyB0YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL0NhbnZhcy5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9DYW52YXMuanNvbgppbmRleCA3OThiOTkxY2QyYjBlYzYyYWQyYzExMzQ3ODlmYjM3ZWI0
YjQ2MDRkLi44YWVlNTVlMTg0ODE1NjFjMjFiYjQ0ODE4NjA3MDBkMmQ5NTc3ZjRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29u
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpz
b24KQEAgLTE5LDExICsxOSwxNSBAQAogICAgICAgICAgICAgImVudW0iOiBbImNhbnZhcy0yZCIs
ICJiaXRtYXByZW5kZXJlciIsICJ3ZWJnbCIsICJ3ZWJnbDIiLCAid2ViZ3B1Il0sCiAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHR5cGUgb2YgcmVuZGVyaW5nIGNvbnRleHQgYmFja2lu
ZyB0aGUgY2FudmFzIGVsZW1lbnQuIgogICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAiaWQiOiAiUHJvZ3JhbVR5cGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAg
ICAgICAgICAgICJlbnVtIjogWyJjb21wdXRlIiwgInJlbmRlciJdCisgICAgICAgIH0sCiAgICAg
ICAgIHsKICAgICAgICAgICAgICJpZCI6ICJTaGFkZXJUeXBlIiwKICAgICAgICAgICAgICJ0eXBl
IjogInN0cmluZyIsCi0gICAgICAgICAgICAiZW51bSI6IFsiZnJhZ21lbnQiLCAidmVydGV4Il0s
Ci0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2hhZGVyIHR5cGUuIFdlYkdMIHN1cHBvcnRz
IHZlcnRleCBhbmQgZnJhZ21lbnQgc2hhZGVycy4iCisgICAgICAgICAgICAiZW51bSI6IFsiY29t
cHV0ZSIsICJmcmFnbWVudCIsICJ2ZXJ0ZXgiXQogICAgICAgICB9LAogICAgICAgICB7CiAgICAg
ICAgICAgICAiaWQiOiAiQ29udGV4dEF0dHJpYnV0ZXMiLApAQCAtMTM2LDcgKzE0MCw3IEBACiAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaGFkZXJUeXBlIiwgIiRyZWYiOiAiU2hhZGVyVHlw
ZSIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIsICJ0eXBlIjogInN0cmluZyIgfQorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAg
ICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKQEAgLTIyMywxNCArMjI3LDE1IEBACiAgICAgICAg
IHsKICAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1DcmVhdGVkIiwKICAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAiJHJl
ZiI6ICJDYW52YXNJZCIsICJkZXNjcmlwdGlvbiI6ICJDYW52YXMgaWRlbnRpZmllci4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQi
LCAiZGVzY3JpcHRpb24iOiAiUHJvZ3JhbSBpZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCJ9ICwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInByb2dyYW1JZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1UeXBlIiwgIiRyZWYiOiAiUHJvZ3JhbVR5cGUi
IH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5h
bWUiOiAicHJvZ3JhbURlbGV0ZWQiLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAi
ZGVzY3JpcHRpb24iOiAiUHJvZ3JhbSBpZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlkIiB9CiAgICAgICAgICAgICBd
CiAgICAgICAgIH0KICAgICBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCBjZDExZWNiYjNlYzZlZDVjMTli
OTZkMjNmMzZiODdlMTNmNDk3MzVhLi4zNTM1MzkyMzM1ZjRlZjhjNTQ2NzgwYjczZGIwOWFhMzAy
YWI2OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21wdXRlUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKQEAgLTI4LDE5ICsyOCw0MyBAQAogCiAjaWYgRU5BQkxF
KFdFQkdQVSkKIAorI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQ
VUVycm9yU2NvcGVzLmgiCisjaW5jbHVkZSAiR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVQ
cm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIK
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lOjpjcmVhdGUoUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwg
R1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQorUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4g
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0
cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNj
b3BlcywgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdURk1v
dmUocGlwZWxpbmUpLCBlcnJvclNjb3BlcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkdQVUNvbXB1dGVQaXBlbGluZShkZXZpY2UsIFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3Bl
cywgY29tcHV0ZVNoYWRlcikpOwogfQogCi1XZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNv
bXB1dGVQaXBlbGluZShSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVF
cnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCi0gICAgOiBHUFVPYmplY3RCYXNlKG1ha2VSZWYoZXJy
b3JTY29wZXMpKQotICAgICwgbV9jb21wdXRlUGlwZWxpbmUgeyBXVEZNb3ZlKHBpcGVsaW5lKSB9
CitXZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVEZXZp
Y2UmIGRldmljZSwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJy
b3JTY29wZXMmIGVycm9yU2NvcGVzLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0
YT4gY29tcHV0ZVNoYWRlcikKKyAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmljZSwgZXJyb3JTY29w
ZXMpCisgICAgLCBtX2NvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKKyAgICAsIG1f
Y29tcHV0ZVNoYWRlcihjb21wdXRlU2hhZGVyKQogewogfQogCitXZWJHUFVDb21wdXRlUGlwZWxp
bmU6On5XZWJHUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCit7Cisg
ICAgaWYgKG1fY29tcHV0ZVBpcGVsaW5lICYmIG1fY29tcHV0ZVNoYWRlcikgeworICAgICAgICBp
ZiAoYXV0byYgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9IG1fY29tcHV0ZVNoYWRlci52YWx1
ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGdwdUNvbXB1dGVTaGFkZXJNb2R1
bGUgPSB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkgeworICAgICAgICAgICAg
ICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciBjb21wdXRlU3RhZ2UobWFrZVJlZigq
Z3B1Q29tcHV0ZVNoYWRlck1vZHVsZSksIHsgbV9jb21wdXRlU2hhZGVyLnZhbHVlKCkuZW50cnlQ
b2ludCB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUtPnJlY29t
cGlsZShkZXZpY2UuZGV2aWNlKCksIFdURk1vdmUoY29tcHV0ZVN0YWdlKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaAppbmRleCAy
ZWQ3Yzk4MDRiYWFhYWRmNzI1MDM2MzVjNzk2YWQ0YjgzNTNkN2Q0Li5jMWE3MTgwODQ3OTg3NjU3
NmE5OGExOTI3M2FlNjU3MGVhNWY5NTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaApAQCAtMjcsMjQgKzI3LDQxIEBA
CiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCi0jaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lLmgi
Ci0jaW5jbHVkZSAiR1BVT2JqZWN0QmFzZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNp
bmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lIDogcHVibGlj
IEdQVU9iamVjdEJhc2UgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29tcHV0ZVBp
cGVsaW5lPiBjcmVhdGUoUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29w
ZXMmKTsKK2NsYXNzIEdQVUNvbXB1dGVQaXBlbGluZTsKK2NsYXNzIEdQVVBpcGVsaW5lOworY2xh
c3MgR1BVRXJyb3JTY29wZXM7CitjbGFzcyBXZWJHUFVEZXZpY2U7CiAKK2NsYXNzIFdlYkdQVUNv
bXB1dGVQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBXZWJHUFVQaXBlbGluZSB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKCk7CisKKyAgICBzdGF0aWMgUmVmPFdl
YkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21w
dXRlUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6
OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIpOworCisgICAgYm9vbCBpc0NvbXB1dGVQaXBlbGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIGNvbXB1dGVQaXBlbGluZSgpOyB9CiAgICAgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5l
KiBjb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVQaXBlbGluZS5nZXQo
KTsgfQorICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBjb21wdXRlU2hh
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlU2hhZGVyOyB9CisKKyAgICBib29sIHJlY29t
cGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKTsKIAogcHJpdmF0ZToKLSAgICBXZWJHUFVDb21wdXRl
UGlwZWxpbmUoUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29wZXMmKTsK
KyAgICBXZWJHUFVDb21wdXRlUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVUNvbXB1
dGVQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29wZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcik7CiAKICAgICBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVs
aW5lPiBtX2NvbXB1dGVQaXBlbGluZTsKKworICAgIC8vIFByZXNlcnZlZCBmb3IgV2ViIEluc3Bl
Y3RvciByZWNvbXBpbGF0aW9uLgorICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJE
YXRhPiBtX2NvbXB1dGVTaGFkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfV0VCR1BVUElQRUxJTkUoV2ViQ29yZTo6V2ViR1BVQ29tcHV0
ZVBpcGVsaW5lLCBpc0NvbXB1dGVQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQ
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1
dGVQaXBlbGluZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21w
dXRlUGlwZWxpbmUuaWRsCmluZGV4IGE1NTJiYTkyZmQyOTcxOWJkY2ZmNTUyZDFmYTZlM2U5YzMz
Nzg5YWQuLjRiOGE3N2U0ODY5YTA3MzY3OGNiMDI1NjA1NGFmNjA3Nzc0MWUzZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lLmlkbApAQCAtMjcsNyArMjcsNiBAQAogWwogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAogICAgIEludGVyZmFjZU5hbWU9R1BVQ29tcHV0ZVBpcGVsaW5lCiBdIGludGVyZmFjZSBXZWJH
UFVDb21wdXRlUGlwZWxpbmUgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuY3BwCmluZGV4IDVlYmYwODM4NWE2Mzk0NzE3ZWU4MTc4MzhiMmI5ZTJm
ODlhZjJmNTMuLmZlODllMzAxYWY5NTBmZWIwZmE0MDE1Y2UyNWZlMjg2NGQyN2M2N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMzks
OCArMzksMTAgQEAKICNpbmNsdWRlICJHUFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVkZSAiR1BV
QnVmZmVyRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVUNvbW1hbmRCdWZmZXIuaCIKKyNpbmNs
dWRlICJHUFVDb21wdXRlUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgi
CisjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUuaCIKICNpbmNsdWRlICJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJHUFVTYW1wbGVyLmgiCiAjaW5jbHVkZSAiR1BV
U2FtcGxlckRlc2NyaXB0b3IuaCIKQEAgLTYxLDYgKzYzLDcgQEAKICNpbmNsdWRlICJXZWJHUFVD
b21tYW5kRW5jb2Rlci5oIgogI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZS5oIgogI2lu
Y2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJH
UFVQaXBlbGluZS5oIgogI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lTGF5b3V0LmgiCiAjaW5jbHVk
ZSAiV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVUHJv
Z3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCkBAIC0xMjQsMTcgKzEyNywzMiBAQCBXZWJHUFVE
ZXZpY2U6OldlYkdQVURldmljZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8
Y29uc3QgV2ViR1BVQWRhcAogewogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aXNEb2N1bWVudCgpKTsKIAotICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsK
LSAgICBpbnN0YW5jZXMobG9jaykuYWRkKHRoaXMpOworICAgIHsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgICAgICBpbnN0YW5jZXMobG9jaykuYWRkKHRo
aXMpOworICAgIH0KIH0KIAogV2ViR1BVRGV2aWNlOjp+V2ViR1BVRGV2aWNlKCkKIHsKICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVRGV2aWNlKCp0aGlzKTsK
IAotICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKLSAgICBBU1NFUlQoaW5z
dGFuY2VzKGxvY2spLmNvbnRhaW5zKHRoaXMpKTsKLSAgICBpbnN0YW5jZXMobG9jaykucmVtb3Zl
KHRoaXMpOworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkp
OworICAgICAgICBBU1NFUlQoaW5zdGFuY2VzKGxvY2spLmNvbnRhaW5zKHRoaXMpKTsKKyAgICAg
ICAgaW5zdGFuY2VzKGxvY2spLnJlbW92ZSh0aGlzKTsKKyAgICB9CisKKyAgICB7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhXZWJHUFVQaXBlbGluZTo6aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAg
ICAgIGZvciAoYXV0byYgZW50cnkgOiBXZWJHUFVQaXBlbGluZTo6aW5zdGFuY2VzKGxvY2spKSB7
CisgICAgICAgICAgICBpZiAoZW50cnkudmFsdWUgPT0gdGhpcykgeworICAgICAgICAgICAgICAg
IC8vIERvbid0IHJlbW92ZSBhbnkgV2ViR1BVUGlwZWxpbmUgZnJvbSB0aGUgaW5zdGFuY2VzIGxp
c3QsIGFzIHRoZXkgbWF5IHN0aWxsIGV4aXN0LgorICAgICAgICAgICAgICAgIC8vIE9ubHkgcmVt
b3ZlIHRoZSBhc3NvY2lhdGlvbiB3aXRoIGEgV2ViR1BVIGRldmljZS4KKyAgICAgICAgICAgICAg
ICBlbnRyeS52YWx1ZSA9IG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CiB9CiAKIFJlZjxXZWJHUFVCdWZmZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlQnVmZmVyKGNvbnN0
IEdQVUJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpIGNvbnN0CkBAIC0yMDUsMzEgKzIyMyw0
NyBAQCBSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVNoYWRlck1v
ZHVsZShjb25zdCBXZWJHUFVTaGFkZXJNb2R1bAogewogICAgIC8vIEZJWE1FOiBXaGF0IGNhbiBi
ZSB2YWxpZGF0ZWQgaGVyZT8KICAgICBhdXRvIG1vZHVsZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVT
aGFkZXJNb2R1bGUoR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvciB7IGRlc2NyaXB0b3IuY29kZSB9
KTsKLSAgICByZXR1cm4gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoV1RGTW92ZShtb2R1bGUp
KTsKKyAgICByZXR1cm4gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoV1RGTW92ZShtb2R1bGUp
LCBkZXNjcmlwdG9yLmNvZGUpOwogfQogCi1SZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQ
VURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBX
ZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBtX2Vycm9yU2NvcGVzLT5zZXRFcnJv
clByZWZpeCgiR1BVRGV2aWNlLmNyZWF0ZVJlbmRlclBpcGVsaW5lKCk6ICIpOwogCiAgICAgYXV0
byBncHVEZXNjcmlwdG9yID0gZGVzY3JpcHRvci50cnlDcmVhdGVHUFVSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3IobV9lcnJvclNjb3Blcyk7CiAgICAgaWYgKCFncHVEZXNjcmlwdG9yKQotICAgICAg
ICByZXR1cm4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShudWxscHRyLCBtX2Vycm9yU2Nv
cGVzKTsKKyAgICAgICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMs
IG51bGxwdHIsIG1fZXJyb3JTY29wZXMsIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKIAot
ICAgIGF1dG8gcGlwZWxpbmUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoKmdw
dURlc2NyaXB0b3IsIG1fZXJyb3JTY29wZXMpOwotICAgIHJldHVybiBXZWJHUFVSZW5kZXJQaXBl
bGluZTo6Y3JlYXRlKFdURk1vdmUocGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVzKTsKKyAgICBhdXRv
IGdwdVBpcGVsaW5lID0gbV9kZXZpY2UtPnRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKCpncHVEZXNj
cmlwdG9yLCBtX2Vycm9yU2NvcGVzKTsKKworICAgIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRh
IHZlcnRleFNoYWRlciA9IHsgZGVzY3JpcHRvci52ZXJ0ZXhTdGFnZS5tb2R1bGUsIGRlc2NyaXB0
b3IudmVydGV4U3RhZ2UuZW50cnlQb2ludCB9OworCisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxp
bmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyOworICAgIGlmIChkZXNjcmlwdG9yLmZyYWdt
ZW50U3RhZ2UpCisgICAgICAgIGZyYWdtZW50U2hhZGVyID0geyB7IGRlc2NyaXB0b3IuZnJhZ21l
bnRTdGFnZS52YWx1ZSgpLm1vZHVsZSwgZGVzY3JpcHRvci5mcmFnbWVudFN0YWdlLnZhbHVlKCku
ZW50cnlQb2ludCB9IH07CisKKyAgICBhdXRvIHdlYkdQVVBpcGVsaW5lID0gV2ViR1BVUmVuZGVy
UGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShncHVQaXBlbGluZSksIG1fZXJyb3JTY29w
ZXMsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpOworICAgIGlmICh3ZWJHUFVQaXBlbGlu
ZS0+aXNWYWxpZCgpKQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0
ZVdlYkdQVVBpcGVsaW5lKCp0aGlzLCB3ZWJHUFVQaXBlbGluZS5nZXQoKSk7CisgICAgcmV0dXJu
IHdlYkdQVVBpcGVsaW5lOwogfQogCi1SZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBXZWJHUFVE
ZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKSBjb25zdAorUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4g
V2ViR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBtX2Vycm9yU2NvcGVzLT5zZXRF
cnJvclByZWZpeCgiR1BVRGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSgpOiAiKTsKIAogICAg
IGF1dG8gZ3B1RGVzY3JpcHRvciA9IGRlc2NyaXB0b3IudHJ5Q3JlYXRlR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvcihtX2Vycm9yU2NvcGVzKTsKICAgICBpZiAoIWdwdURlc2NyaXB0b3IpCi0g
ICAgICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZShudWxscHRyLCBtX2Vy
cm9yU2NvcGVzKTsKKyAgICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRl
KCp0aGlzLCBudWxscHRyLCBtX2Vycm9yU2NvcGVzLCBXVEY6Om51bGxvcHQpOwogCi0gICAgYXV0
byBwaXBlbGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2Ny
aXB0b3IsIG1fZXJyb3JTY29wZXMpOwotICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6
OmNyZWF0ZShXVEZNb3ZlKHBpcGVsaW5lKSwgbV9lcnJvclNjb3Blcyk7CisgICAgYXV0byBncHVQ
aXBlbGluZSA9IG1fZGV2aWNlLT50cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0
b3IsIG1fZXJyb3JTY29wZXMpOworCisgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEgY29t
cHV0ZVNoYWRlciA9IHsgZGVzY3JpcHRvci5jb21wdXRlU3RhZ2UubW9kdWxlLCBkZXNjcmlwdG9y
LmNvbXB1dGVTdGFnZS5lbnRyeVBvaW50IH07CisKKyAgICBhdXRvIHdlYkdQVVBpcGVsaW5lID0g
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZ3B1UGlwZWxpbmUp
LCBtX2Vycm9yU2NvcGVzLCBjb21wdXRlU2hhZGVyKTsKKyAgICBpZiAod2ViR1BVUGlwZWxpbmUt
PmlzVmFsaWQoKSkKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVX
ZWJHUFVQaXBlbGluZSgqdGhpcywgd2ViR1BVUGlwZWxpbmUuZ2V0KCkpOworICAgIHJldHVybiB3
ZWJHUFVQaXBlbGluZTsKIH0KIAogUmVmPFdlYkdQVUNvbW1hbmRFbmNvZGVyPiBXZWJHUFVEZXZp
Y2U6OmNyZWF0ZUNvbW1hbmRFbmNvZGVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXggZDk4ZjIzYzY3MzNjOWE0MmUwODI5ZGJkNDE4
ZmU4NWU1NmY3MzNmOC4uMjFiNTQxN2MyMTBhNzVmOGJiOTljMjI3MzEyMTRjYmQyMDM5ZDFhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKQEAgLTk5
LDggKzk5LDggQEAgcHVibGljOgogICAgIFJlZjxXZWJHUFVCaW5kR3JvdXA+IGNyZWF0ZUJpbmRH
cm91cChjb25zdCBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yJikgY29uc3Q7CiAKICAgICBSZWY8
V2ViR1BVU2hhZGVyTW9kdWxlPiBjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVU2hhZGVy
TW9kdWxlRGVzY3JpcHRvciYpIGNvbnN0OwotICAgIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4g
Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
JikgY29uc3Q7Ci0gICAgUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlQ29tcHV0ZVBp
cGVsaW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKSBjb25zdDsKKyAg
ICBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpOworICAgIFJlZjxXZWJHUFVDb21wdXRlUGlw
ZWxpbmU+IGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yJik7CiAKICAgICBSZWY8V2ViR1BVQ29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1h
bmRFbmNvZGVyKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVBpcGVsaW5lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTEyMTU5OGYyOWZkNzQyZjVlMTVkN2My
ZGYyNDAwM2EwYTRhODUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKKworI2lm
IEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVFcnJvclNjb3Blcy5oIgorI2luY2x1ZGUg
Ikluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0hhc2hN
YXA8V2ViR1BVUGlwZWxpbmUqLCBXZWJHUFVEZXZpY2UqPiYgV2ViR1BVUGlwZWxpbmU6Omluc3Rh
bmNlcyhjb25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFz
aE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmljZSo+PiBpbnN0YW5jZXM7CisgICAgcmV0
dXJuIGluc3RhbmNlczsKK30KKworTG9jayYgV2ViR1BVUGlwZWxpbmU6Omluc3RhbmNlc011dGV4
KCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OworICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplTXV0ZXg7CisgICAgc3RkOjpjYWxsX29uY2Uo
aW5pdGlhbGl6ZU11dGV4LCBbXSB7CisgICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOworICAgIH0p
OworICAgIHJldHVybiBtdXRleC5nZXQoKTsKK30KKworV2ViR1BVUGlwZWxpbmU6OldlYkdQVVBp
cGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMp
CisgICAgOiBHUFVPYmplY3RCYXNlKG1ha2VSZWYoZXJyb3JTY29wZXMpKQorICAgICwgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KGRldmljZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCit7Cisg
ICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisKKyAgICB7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICAgICAgaW5zdGFuY2VzKGxvY2sp
LmFkZCh0aGlzLCAmZGV2aWNlKTsKKyAgICB9Cit9CisKK1dlYkdQVVBpcGVsaW5lOjp+V2ViR1BV
UGlwZWxpbmUoKQoreworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lX
ZWJHUFVQaXBlbGluZSgqdGhpcyk7CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhp
bnN0YW5jZXNNdXRleCgpKTsKKyAgICAgICAgQVNTRVJUKGluc3RhbmNlcyhsb2NrKS5jb250YWlu
cyh0aGlzKSk7CisgICAgICAgIGluc3RhbmNlcyhsb2NrKS5yZW1vdmUodGhpcyk7CisgICAgfQor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWUzMjNjNzliZjE5ODI1ODIzNjJhNzNmOGE2NzVmMTI4YjRhNmY3MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgK
QEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQkdQVSkKKworI2luY2x1ZGUgIkdQVU9iamVjdEJhc2UuaCIKKyNpbmNsdWRlICJXZWJHUFVT
aGFkZXJNb2R1bGUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBHUFVFcnJvclNj
b3BlczsKK2NsYXNzIFdlYkdQVURldmljZTsKKworY2xhc3MgV2ViR1BVUGlwZWxpbmUgOiBwdWJs
aWMgR1BVT2JqZWN0QmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViR1BVUGlwZWxpbmUo
KTsKKworICAgIHN0YXRpYyBIYXNoTWFwPFdlYkdQVVBpcGVsaW5lKiwgV2ViR1BVRGV2aWNlKj4m
IGluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgc3RhdGljIExvY2smIGluc3RhbmNl
c011dGV4KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsKKworICAgIHN0cnVj
dCBTaGFkZXJEYXRhIHsKKyAgICAgICAgUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVsZT4gbW9kdWxl
OworICAgICAgICBTdHJpbmcgZW50cnlQb2ludDsKKyAgICB9OworCisgICAgdmlydHVhbCBib29s
IHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBX
ZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmLCBHUFVFcnJvclNjb3BlcyYpOworCisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0VC
R1BVUElQRUxJTkUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OldlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSkgeyByZXR1cm4gcGlwZWxp
bmUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oCmluZGV4
IGZmYmM1YjgxMWQzYzAwYzFmZmE5Njg3Y2Y2MGE2Yzk3NWRiYzUzN2QuLjFhNDQxNGFhYzEwNzM2
NzkxMGUxYjM1ODRkMjI4ZDM1ZWJiNThkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3Jp
cHRvci5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBXZWJH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3JCYXNlIHsKICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3I+
IHRyeUNyZWF0ZUdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcigpIGNvbnN0OwogCi0gICAg
UmVmUHRyPGNvbnN0IFdlYkdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOworICAgIFJlZlB0cjxXZWJH
UFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVs
aW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVs
aW5lLmNwcAppbmRleCAxN2FlZGM2ZDViNjE3ZTg5MWYyMTYyY2RhYjZiYzQ4M2I1YjkwNGE0Li5m
ZTk1N2Y1NzBhMmYxNmM3M2RmOTIyOTE0MzdlYmZhYmUzYjdmYzA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCkBA
IC0yOCwxOSArMjgsNTEgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRlICJHUFVF
cnJvclNjb3Blcy5oIgorI2luY2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVUHJv
Z3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmUu
aCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdQ
VVJlbmRlclBpcGVsaW5lPiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKFJlZlB0cjxHUFVS
ZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQor
UmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKFdl
YkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUs
IEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNo
YWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRh
dGE+IGZyYWdtZW50U2hhZGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVVJl
bmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3BlcykpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkdQVVJlbmRlclBpcGVsaW5lKGRldmljZSwgV1RGTW92ZShwaXBl
bGluZSksIGVycm9yU2NvcGVzLCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKSk7CiB9CiAK
LVdlYkdQVVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZShSZWZQdHI8R1BVUmVu
ZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKLSAg
ICA6IEdQVU9iamVjdEJhc2UobWFrZVJlZihlcnJvclNjb3BlcykpCitXZWJHUFVSZW5kZXJQaXBl
bGluZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxH
UFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVz
LCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRp
b25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpCisgICAgOiBX
ZWJHUFVQaXBlbGluZShkZXZpY2UsIGVycm9yU2NvcGVzKQogICAgICwgbV9yZW5kZXJQaXBlbGlu
ZShXVEZNb3ZlKHBpcGVsaW5lKSkKKyAgICAsIG1fdmVydGV4U2hhZGVyKHZlcnRleFNoYWRlcikK
KyAgICAsIG1fZnJhZ21lbnRTaGFkZXIoZnJhZ21lbnRTaGFkZXIpCiB7CiB9CiAKK1dlYkdQVVJl
bmRlclBpcGVsaW5lOjp+V2ViR1BVUmVuZGVyUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisKK2Jvb2wg
V2ViR1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmIGRldmlj
ZSkKK3sKKyAgICBpZiAobV9yZW5kZXJQaXBlbGluZSAmJiBtX3ZlcnRleFNoYWRlcikgeworICAg
ICAgICBpZiAoYXV0byYgd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlID0gbV92ZXJ0ZXhTaGFkZXIu
dmFsdWUoKS5tb2R1bGUpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBncHVWZXJ0ZXhTaGFkZXJN
b2R1bGUgPSB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKSB7CisgICAgICAgICAg
ICAgICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlKG1ha2VSZWYo
KmdwdVZlcnRleFNoYWRlck1vZHVsZSksIHsgbV92ZXJ0ZXhTaGFkZXIudmFsdWUoKS5lbnRyeVBv
aW50IH0pOworICAgICAgICAgICAgICAgIE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvcj4gZnJhZ21lbnRTdGFnZTsKKyAgICAgICAgICAgICAgICBpZiAobV9mcmFnbWVudFNo
YWRlcikgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byYgd2ViR1BVRnJhZ21lbnRTaGFk
ZXJNb2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoYXV0byogZ3B1RnJhZ21lbnRTaGFkZXJNb2R1bGUgPSB3ZWJHUFVG
cmFnbWVudFNoYWRlck1vZHVsZS0+bW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnJhZ21lbnRTdGFnZSA9IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcihtYWtlUmVm
KCpncHVGcmFnbWVudFNoYWRlck1vZHVsZSksIHsgbV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLmVu
dHJ5UG9pbnQgfSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcmVuZGVyUGlwZWxpbmUtPnJlY29tcGlsZShkZXZpY2Uu
ZGV2aWNlKCksIFdURk1vdmUodmVydGV4U3RhZ2UpLCBXVEZNb3ZlKGZyYWdtZW50U3RhZ2UpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUu
aAppbmRleCA4ZjAwY2E2NjUwY2JlN2MwYmIzOTg4ZmZjNjU5NGZhZWE5M2M5NjI2Li5iMmI4MDk0
MGU1ZmMyYWUwYjNhNzlhYmE1MzU0ZDEzZDkwMDQzYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmgKQEAgLTI3LDI0ICsy
Nyw0MyBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAotI2luY2x1ZGUgIkdQVU9iamVjdEJhc2Uu
aCIKLSNpbmNsdWRlICJHUFVSZW5kZXJQaXBlbGluZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV2ViR1BVUmVuZGVyUGlwZWxpbmUgOiBw
dWJsaWMgR1BVT2JqZWN0QmFzZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJHUFVSZW5k
ZXJQaXBlbGluZT4gY3JlYXRlKFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgR1BVRXJyb3JT
Y29wZXMmKTsKK2NsYXNzIEdQVVBpcGVsaW5lOworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmU7Citj
bGFzcyBHUFVFcnJvclNjb3BlczsKK2NsYXNzIFdlYkdQVURldmljZTsKIAorY2xhc3MgV2ViR1BV
UmVuZGVyUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgV2ViR1BVUGlwZWxpbmUgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfldlYkdQVVJlbmRlclBpcGVsaW5lKCk7CisKKyAgICBzdGF0aWMgUmVmPFdl
YkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVVJlbmRl
clBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpT
aGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJE
YXRhPiBmcmFnbWVudFNoYWRlcik7CisKKyAgICBib29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBy
ZW5kZXJQaXBlbGluZSgpOyB9CiAgICAgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmUqIHJlbmRlclBp
cGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJQaXBlbGluZS5nZXQoKTsgfQorICAgIE9w
dGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIoKSBjb25zdCB7
IHJldHVybiBtX3ZlcnRleFNoYWRlcjsgfQorICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpT
aGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRTaGFk
ZXI7IH0KKworICAgIGJvb2wgcmVjb21waWxlKGNvbnN0IFdlYkdQVURldmljZSYpOwogCiBwcml2
YXRlOgotICAgIFdlYkdQVVJlbmRlclBpcGVsaW5lKFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4m
JiwgR1BVRXJyb3JTY29wZXMmKTsKKyAgICBXZWJHUFVSZW5kZXJQaXBlbGluZShXZWJHUFVEZXZp
Y2UmLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgT3B0aW9u
YWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2Vi
R1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKTsKIAogICAgIFJlZlB0cjxH
UFVSZW5kZXJQaXBlbGluZT4gbV9yZW5kZXJQaXBlbGluZTsKKworICAgIC8vIFByZXNlcnZlZCBm
b3IgV2ViIEluc3BlY3RvciByZWNvbXBpbGF0aW9uLgorICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVs
aW5lOjpTaGFkZXJEYXRhPiBtX3ZlcnRleFNoYWRlcjsKKyAgICBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gbV9mcmFnbWVudFNoYWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XRUJHUFVQSVBFTElORShXZWJDb3Jl
OjpXZWJHUFVSZW5kZXJQaXBlbGluZSwgaXNSZW5kZXJQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbAppbmRleCBhOTg5ZmQ0MTBhY2JjZDNiNDk5YWIzMWE3
MzQ4YzY1ZjJlNzVjZGJiLi5hOWI0MDAwYjZmMWIxYTIyODBiYzMyYjJiZjMzNzIxNjZkYTMxNDI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQ
aXBlbGluZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuaWRsCkBAIC0yNyw3ICsyNyw2IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9V0VC
R1BVLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCiAgICAgSW50ZXJmYWNlTmFtZT1HUFVSZW5kZXJQaXBlbGluZQogXSBpbnRlcmZh
Y2UgV2ViR1BVUmVuZGVyUGlwZWxpbmUgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUuY3BwCmluZGV4IGVlODVmOTJhYmM5ZmFi
MzE2MmY2M2I4YjdjYTBkOGIwMWI0MzdjOTAuLmQzMTQ1NDVkZDNmNDZjZTg2MjA4ZjNkNTQ2YWZm
NzE0NDI3MzNjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVNoYWRlck1vZHVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVU2hhZGVyTW9kdWxlLmNwcApAQCAtMjgsMTggKzI4LDI5IEBACiAKICNpZiBFTkFCTEUo
V0VCR1BVKQogCisjaW5jbHVkZSAiR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgorI2luY2x1
ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVTaGFkZXJNb2R1bGU6
OmNyZWF0ZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSkKK1JlZjxXZWJHUFVTaGFk
ZXJNb2R1bGU+IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFJlZlB0cjxHUFVTaGFkZXJNb2R1
bGU+JiYgbW9kdWxlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJHUFVTaGFkZXJNb2R1bGUoV1RGTW92ZShtb2R1bGUpKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViR1BVU2hhZGVyTW9kdWxlKFdURk1vdmUobW9kdWxlKSwgc291cmNl
KSk7CiB9CiAKLVdlYkdQVVNoYWRlck1vZHVsZTo6V2ViR1BVU2hhZGVyTW9kdWxlKFJlZlB0cjxH
UFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlKQorV2ViR1BVU2hhZGVyTW9kdWxlOjpXZWJHUFVTaGFk
ZXJNb2R1bGUoUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJiBtb2R1bGUsIGNvbnN0IFN0cmluZyYg
c291cmNlKQogICAgIDogbV9tb2R1bGUoV1RGTW92ZShtb2R1bGUpKQorICAgICwgbV9zb3VyY2Uo
c291cmNlKQogewogfQogCit2b2lkIFdlYkdQVVNoYWRlck1vZHVsZTo6dXBkYXRlKGNvbnN0IFdl
YkdQVURldmljZSYgZGV2aWNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICBtX3NvdXJj
ZSA9IHNvdXJjZTsKKyAgICBtX21vZHVsZSA9IEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKGRl
dmljZS5kZXZpY2UoKSwgeyBtX3NvdXJjZSB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVU2hhZGVyTW9kdWxlLmgKaW5kZXggODM3NzA1M2QxYWNlNzIzOTA5
Y2IzYzg5NjI3ZjRkOGM2MmIxZWFlZS4uNzg2NDYxMTkxMWI2NzJjMjY0OTBlZDg3ZDM2NmY0ZWFi
MTg1MmVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
U2hhZGVyTW9kdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
U2hhZGVyTW9kdWxlLmgKQEAgLTI4LDIyICsyOCwyOSBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAK
ICNpbmNsdWRlICJHUFVTaGFkZXJNb2R1bGUuaCIKLQorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgV2ViR1BVRGV2aWNlOworCiBjbGFzcyBXZWJH
UFVTaGFkZXJNb2R1bGUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVTaGFkZXJNb2R1bGU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gY3JlYXRlKFJlZlB0
cjxHUFVTaGFkZXJNb2R1bGU+JiYpOworICAgIHN0YXRpYyBSZWY8V2ViR1BVU2hhZGVyTW9kdWxl
PiBjcmVhdGUoUmVmUHRyPEdQVVNoYWRlck1vZHVsZT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2Up
OwogCi0gICAgY29uc3QgR1BVU2hhZGVyTW9kdWxlKiBtb2R1bGUoKSBjb25zdCB7IHJldHVybiBt
X21vZHVsZS5nZXQoKTsgfQorICAgIEdQVVNoYWRlck1vZHVsZSogbW9kdWxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9tb2R1bGUuZ2V0KCk7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlOyB9CisKKyAgICB2b2lkIHVwZGF0ZShjb25zdCBXZWJHUFVEZXZp
Y2UmLCBjb25zdCBTdHJpbmcmIHNvdXJjZSk7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVU2hhZGVy
TW9kdWxlKFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+JiYpOworICAgIFdlYkdQVVNoYWRlck1vZHVs
ZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZSk7CiAKICAg
ICBSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiBtX21vZHVsZTsKKworICAgIC8vIFByZXNlcnZlZCBm
b3IgV2ViIEluc3BlY3RvciByZWNvbXBpbGF0aW9uLgorICAgIFN0cmluZyBtX3NvdXJjZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZmQ0ZGQzMTM3ZWI0
YzVlMTFmMjBiM2U5YTVhM2MyNTczZTBlMjVmNC4uZjQwMzg0ZGE5OWY1YmMyZGMxNzJlZjZmNzZi
YzgzNGNjZWFlZDM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3Myw2ICszNzMsNyBAQCBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlRXJyb3JTY29w
ZXMuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVBpcGVsaW5lLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3Bw
CiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwCiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuY3BwCkBAIC0xODk4
LDYgKzE4OTksNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVy
cm9yU2NvcGVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZhbGlkYXRpb25FcnJvci5j
cHAKK3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9HUFVQaXBlbGluZUxheW91dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQ
cm9ncmFtbWFibGVQYXNzRW5jb2Rlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMwMGZjNGIwYTExY2VjODk0YzM2OTg3
MzBhZWUxNjAzMTdkN2I5ZWQuLjVjYTA4YzNmMTcwODFjNzMyMzc4MGMyODM4OTdjZjhhNDQ0OGQ2
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEwNDA2LDYgKzEwNDA2LDEwIEBACiAJCTkxNzVDRTU5MjFFMjgxRUMwMERGMkMy
OCAvKiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9i
amVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxNzVDRTVBMjFFMjgxRUQw
MERGMkMyNyAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxNzVDRTVBMjFFMjgxRUQwMERGMkMy
OCAvKiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTg2RjNCMzIzMjlGQjA1MDBBRkY4NTcg
LyogR1BVUGlwZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUGlw
ZWxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE4NkYzQjYyMzI5RkI0RTAw
QUZGODU3IC8qIFdlYkdQVVBpcGVsaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTE4NkYzQjcyMzI5RkI0RjAwQUZGODU3IC8qIFdlYkdQVVBpcGVsaW5lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkxODZGM0JBMjMyOUZFNjgwMEFGRjg1NyAvKiBHUFVQaXBlbGluZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQaXBlbGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQjhGMEIzMjE5NTNENjUwMDBDMkIwMCAv
KiBDZXJ0aWZpY2F0ZUluZm9CYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENlcnRpZmljYXRlSW5mb0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFC
OTUyMjIxRjU4QTU4MDAwOTMxREMyIC8qIFJlY29yZGluZ1N3aXp6bGVUeXBlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWNvcmRpbmdTd2l6emxlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODM5NCw2ICsxODM5OCw4IEBACiAJCQkJRDA4QUEwMkYyMjBE
MEJENTAwNThDNTAyIC8qIEdQVUxvYWRPcC5oICovLAogCQkJCUQwOUFGQjM3MjJEN0Q1QzYwMEM0
NTM4QyAvKiBHUFVPYmplY3RCYXNlLmggKi8sCiAJCQkJRDA5QUZCMTkyMkQ2Njk4QTAwQzQ1MzhD
IC8qIEdQVU91dE9mTWVtb3J5RXJyb3IuaCAqLywKKwkJCQk5MTg2RjNCQTIzMjlGRTY4MDBBRkY4
NTcgLyogR1BVUGlwZWxpbmUuY3BwICovLAorCQkJCTkxODZGM0IzMjMyOUZCMDUwMEFGRjg1NyAv
KiBHUFVQaXBlbGluZS5oICovLAogCQkJCTMxMkZGOEM0MjFBNEMyRjQwMEVCMTk5RCAvKiBHUFVQ
aXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJRDAwMzI4ODcyMUM5QTRFNTAwNjIyQUE2
IC8qIEdQVVBpcGVsaW5lTGF5b3V0LmNwcCAqLywKIAkJCQlEMDAzMjg4NjIxQzlBNEU1MDA2MjJB
QTYgLyogR1BVUGlwZWxpbmVMYXlvdXQuaCAqLywKQEAgLTI2MTI5LDYgKzI2MTM1LDggQEAKIAkJ
CQlEMDlBRkIwMzIyRDQwQ0M1MDBDNDUzOEMgLyogV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuaWRs
ICovLAogCQkJCUQwOUFDMDBBMjMxNzM1QkUwMDE4Nzc2MiAvKiBXZWJHUFVEZXZpY2VFdmVudEhh
bmRsZXIuaCAqLywKIAkJCQlEMDlBQzAwQjIzMTczNUJFMDAxODc3NjIgLyogV2ViR1BVRGV2aWNl
RXZlbnRIYW5kbGVyLmlkbCAqLywKKwkJCQk5MTg2RjNCNjIzMjlGQjRFMDBBRkY4NTcgLyogV2Vi
R1BVUGlwZWxpbmUuY3BwICovLAorCQkJCTkxODZGM0I3MjMyOUZCNEYwMEFGRjg1NyAvKiBXZWJH
UFVQaXBlbGluZS5oICovLAogCQkJCUQwQzQxOUYwMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQ
aXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCiAJCQkJRDBDNDE5RjEyMTgzRUIzMTAwOUVDMURF
IC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsICovLAogCQkJCUQwNUE5OUU1MjFD
OUJGMkMwMDAzMkI3NSAvKiBXZWJHUFVQaXBlbGluZUxheW91dC5jcHAgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRleCA2YmEzODFhOWRmZTVjZjgy
YmIxNjUyNTlkYjFiYThkYWUzZGZjYmIyLi5mZTFiMGM1ZDJjMDFhZGZjZjQwNGJlNTI2NDI3NThj
MWNjNTdmNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAorI2luY2x1ZGUgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgpAQCAtNjAsNyAr
NjIsMTAgQEAgUmVmPFdlYkdMUHJvZ3JhbT4gV2ViR0xQcm9ncmFtOjpjcmVhdGUoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogCiBXZWJHTFByb2dyYW06OldlYkdMUHJvZ3JhbShXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAgICAgOiBXZWJHTFNoYXJlZE9iamVjdChjdHgp
CisgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY3R4LnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKIHsKKyAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKwogICAgIHsK
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOwogICAgICAgICBpbnN0
YW5jZXMobG9jaykuYWRkKHRoaXMsICZjdHgpOwpAQCAtNzEsNiArNzYsOCBAQCBXZWJHTFByb2dy
YW06OldlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdM
UHJvZ3JhbTo6fldlYkdMUHJvZ3JhbSgpCiB7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSgqdGhpcyk7CisKICAgICBkZWxldGVPYmplY3QoMCk7
CiAKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCmluZGV4
IDg4YTg5NzlkNDVmNjdhYTM3ZTJjMGU5MzdlM2QxOTQxYTZjMmZmM2QuLjY3NjlkMWQ0ZjUyMDk1
NDE0YjVhZjMyN2Q1YzRlMjIzZDllNzJiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5oCkBAIC0zMiw2ICszMiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiBjbGFzcyBXZWJHTFNoYWRlcjsKIAogY2xhc3MgV2ViR0xQcm9ncmFtIGZpbmFs
IDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKQEAgLTQyLDYgKzQ0LDggQEAgcHVibGljOgog
ICAgIHN0YXRpYyBIYXNoTWFwPFdlYkdMUHJvZ3JhbSosIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UqPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKICAgICBzdGF0aWMgTG9jayYgaW5z
dGFuY2VzTXV0ZXgoKTsKIAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0K
KwogICAgIHVuc2lnbmVkIG51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucygpOwogICAgIEdDM0RpbnQg
Z2V0QWN0aXZlQXR0cmliTG9jYXRpb24oR0MzRHVpbnQgaW5kZXgpOwogCkBAIC03MSw2ICs3NSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYWNoZUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyhHcmFwaGlj
c0NvbnRleHQzRCopOwogICAgIHZvaWQgY2FjaGVJbmZvSWZOZWVkZWQoKTsKIAorICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKwogICAgIFZlY3Rv
cjxHQzNEaW50PiBtX2FjdGl2ZUF0dHJpYkxvY2F0aW9uczsKIAogICAgIEdDM0RpbnQgbV9saW5r
U3RhdHVzIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAyMjRlMzRkODMyN2FkYjg1NWI5NDcx
M2VkZjNjNjBhODU4Nzg1ZjcyLi42ZWVhOTFmYjE5OTNiMDRjZWUzODAzMDBkYWI3NWYwMjBlYTkz
OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdm9pZCBzaG93SGlnaHRsaWdodCgpCiAgICAgewotICAgICAgICBpZiAoIW1fcHJv
Z3JhbSB8fCBMSUtFTFkoIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFt
SGlnaGxpZ2h0ZWQobV9jb250ZXh0LCAqbV9wcm9ncmFtKSkpCisgICAgICAgIGlmICghbV9wcm9n
cmFtIHx8IExJS0VMWSghSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhp
Z2hsaWdodGVkKG1fY29udGV4dCwgKm1fcHJvZ3JhbSkpKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGlmIChoYXNCdWZmZXJCaW5kaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJV
RkZFUl9CSU5ESU5HKSkgewpAQCAtMTc1NCw3ICsxNzU0LDcgQEAgUmVmUHRyPFdlYkdMUHJvZ3Jh
bT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlUHJvZ3JhbSgpCiAgICAgYXV0byBw
cm9ncmFtID0gV2ViR0xQcm9ncmFtOjpjcmVhdGUoKnRoaXMpOwogICAgIGFkZFNoYXJlZE9iamVj
dChwcm9ncmFtLmdldCgpKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3Jl
YXRlUHJvZ3JhbSgqdGhpcywgcHJvZ3JhbS5nZXQoKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVXZWJHTFByb2dyYW0oKnRoaXMsIHByb2dyYW0uZ2V0KCkpOwogCiAg
ICAgcmV0dXJuIHByb2dyYW07CiB9CkBAIC0xODQwLDcgKzE4NDAsNyBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZy
YW1lYnVmZmVyKQogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVQcm9ncmFt
KFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKIHsKICAgICBpZiAocHJvZ3JhbSkKLSAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbSgqdGhpcywgKnByb2dyYW0p
OworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9n
cmFtKCpwcm9ncmFtKTsKIAogICAgIGRlbGV0ZU9iamVjdChwcm9ncmFtKTsKICAgICAvLyBXZSBk
b24ndCByZXNldCBtX2N1cnJlbnRQcm9ncmFtIHRvIDAgaGVyZSBiZWNhdXNlIHRoZSBkZWxldGlv
biBvZiB0aGUKQEAgLTIyNTUsNyArMjI1NSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6CiAg
ICAgaWYgKCF2YWxpZGF0ZURyYXdBcnJheXMoImRyYXdBcnJheXMiLCBtb2RlLCBmaXJzdCwgY291
bnQsIDApKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAq
bV9jdXJyZW50UHJvZ3JhbSkpCisgICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50
UHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNsZWFySWZDb21wb3NpdGVkKCk7CkBA
IC0yMzA5LDcgKzIzMDksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdF
bGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDMwogICAgIGlmICghdmFs
aWRhdGVEcmF3RWxlbWVudHMoImRyYXdFbGVtZW50cyIsIG1vZGUsIGNvdW50LCB0eXBlLCBvZmZz
ZXQsIG51bUVsZW1lbnRzLCAwKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY3VycmVu
dFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNh
YmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0pKQorICAgIGlmIChtX2N1cnJlbnRQcm9ncmFt
ICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgqdGhp
cywgKm1fY3VycmVudFByb2dyYW0pKQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVhcklmQ29t
cG9zaXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA2OTY0NjUwNTM5YjNiZjM5MjBkMTRjZGFlMTBjMTE1
MWY0MWVmOTQ3Li45MTJjODQ1YmJmMmEzN2VjMjkyYjY2NDcyYmU5OTAyYzg4NDg1ZTRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcApAQCAtMTA3OSwyOSArMTA3OSwyOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cgog
ICAgICAgICBjYW52YXNBZ2VudC0+ZGlkRW5hYmxlRXh0ZW5zaW9uKGNvbnRleHRXZWJHTEJhc2Us
IGV4dGVuc2lvbik7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVh
dGVQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0m
IHByb2dyYW0pCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQ
cm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHBy
b2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgY2FudmFz
QWdlbnQtPmRpZENyZWF0ZVByb2dyYW0oY29udGV4dFdlYkdMQmFzZSwgcHJvZ3JhbSk7CisgICAg
ICAgIGNhbnZhc0FnZW50LT5kaWRDcmVhdGVXZWJHTFByb2dyYW0oY29udGV4dFdlYkdMQmFzZSwg
cHJvZ3JhbSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVsZXRl
UHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2Vi
R0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxE
ZXN0cm95V2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZh
c0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFz
QWdlbnQoKSkKLSAgICAgICAgY2FudmFzQWdlbnQtPndpbGxEZWxldGVQcm9ncmFtKHByb2dyYW0p
OworICAgICAgICBjYW52YXNBZ2VudC0+d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0ocHJvZ3JhbSk7
CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNh
YmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQ
cm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQ
cm9ncmFtRGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdl
bnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2Vu
dCgpKQotICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlzU2hhZGVyUHJvZ3JhbURpc2FibGVk
KHByb2dyYW0pOworICAgICAgICByZXR1cm4gY2FudmFzQWdlbnQtPmlzV2ViR0xQcm9ncmFtRGlz
YWJsZWQocHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK2Jv
b2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0m
IHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgcmV0
dXJuIGNhbnZhc0FnZW50LT5pc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChwcm9ncmFtKTsKKyAg
ICAgICAgcmV0dXJuIGNhbnZhc0FnZW50LT5pc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKHByb2dy
YW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KICNlbmRpZgpAQCAtMTEyNCw2ICsxMTI0LDE4IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ29uZmlndXJlU3dhcENoYWluSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpCiAgICAgaWYgKGF1dG8qIGNhbnZhc0FnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQogICAgICAgICBjYW52YXNB
Z2VudC0+d2lsbENvbmZpZ3VyZVN3YXBDaGFpbihjb250ZXh0R1BVLCBuZXdTd2FwQ2hhaW4pOwog
fQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxp
bmVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdQVURl
dmljZSYgZGV2aWNlLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgaWYgKGF1dG8q
IGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgp
KQorICAgICAgICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoZGV2aWNlLCBw
aXBlbGluZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJv
eVdlYkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgaWYgKGF1dG8qIGNhbnZhc0Fn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQorICAgICAg
ICBjYW52YXNBZ2VudC0+d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShwaXBlbGluZSk7Cit9CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA4MWYzY2RjZGEy
OWZjZTFiOTVlN2NiYjlkNTY4OTA4ZmM3YTc5MWMzLi41NDlhYTE3YTNlYTNhN2I5MTViZWM3MmIy
YmIyODIxMTY2MzY3ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC02Myw2ICs2Myw3IEBACiAjaWYgRU5BQkxFKFdF
QkdQVSkKICNpbmNsdWRlICJHUFVDYW52YXNDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR1BVRGV2
aWNlLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKICNlbmRpZgogCiBuYW1lc3BhY2Ug
SW5zcGVjdG9yIHsKQEAgLTI4OSwxNSArMjkwLDE3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZShDYW52YXNSZW5kZXJpbmdDb250ZXh0Jiwg
Ym9vbCBmb3JjZURpc3BhdGNoID0gZmFsc2UpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBzdGF0
aWMgdm9pZCBkaWRFbmFibGVFeHRlbnNpb24oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIGNv
bnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyB2b2lkIHdpbGxE
ZWxldGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsK
LSAgICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIGJvb2wgaXNTaGFkZXJQcm9n
cmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYp
OworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lX
ZWJHTFByb2dyYW0oV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dy
YW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Cisg
ICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR1BVKQog
ICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZShXZWJHUFVEZXZpY2UmKTsKICAg
ICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVURldmljZShXZWJHUFVEZXZpY2UmKTsKICAg
ICBzdGF0aWMgdm9pZCB3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQVUNhbnZhc0NvbnRleHQmLCBX
ZWJHUFVTd2FwQ2hhaW4mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHUFVQaXBlbGlu
ZShXZWJHUFVEZXZpY2UmLCBXZWJHUFVQaXBlbGluZSYpOworICAgIHN0YXRpYyB2b2lkIHdpbGxE
ZXN0cm95V2ViR1BVUGlwZWxpbmUoV2ViR1BVUGlwZWxpbmUmKTsKICNlbmRpZgogCiAgICAgc3Rh
dGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlJik7CkBAIC00ODEsMTUgKzQ4NCwxNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1l
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGJvb2wg
Zm9yY2VEaXNwYXRjaCA9IGZhbHNlKTsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgc3RhdGljIHZv
aWQgZGlkRW5hYmxlRXh0ZW5zaW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyB2b2lkIGRpZENy
ZWF0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIHZvaWQgd2lsbERlbGV0ZVByb2dy
YW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0aWMg
Ym9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdl
YkdMUHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVk
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7CisgICAgc3RhdGljIHZv
aWQgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyB2b2lkIHdp
bGxEZXN0cm95V2ViR0xQcm9ncmFtSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9n
cmFtJik7CisgICAgc3RhdGljIGJvb2wgaXNXZWJHTFByb2dyYW1EaXNhYmxlZEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyBib29sIGlzV2ViR0xQ
cm9ncmFtSGlnaGxpZ2h0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0m
KTsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRl
V2ViR1BVRGV2aWNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVRGV2aWNlJik7CiAg
ICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVEZXZpY2VJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBXZWJHUFVEZXZpY2UmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsQ29uZmlndXJlU3dh
cENoYWluSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgR1BVQ2FudmFzQ29udGV4dCYsIFdlYkdQ
VVN3YXBDaGFpbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVRGV2aWNlJiwgV2ViR1BVUGlwZWxpbmUmKTsK
KyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgV2ViR1BVUGlwZWxpbmUmKTsKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQg
bGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CkBAIC0xMzg0LDMz
ICsxMzg5LDMzIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRW5h
YmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhCiAgICAgICAgIGRpZEVuYWJsZUV4
dGVuc2lvbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRXZWJHTEJhc2UsIGV4dGVu
c2lvbik7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3Jl
YXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xCYXNlLCBX
ZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250
ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5f
SUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0
V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAg
ICBkaWRDcmVhdGVQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dFdlYkdM
QmFzZSwgcHJvZ3JhbSk7CisgICAgICAgIGRpZENyZWF0ZVdlYkdMUHJvZ3JhbUltcGwoKmluc3Ry
dW1lbnRpbmdBZ2VudHMsIGNvbnRleHRXZWJHTEJhc2UsIHByb2dyYW0pOwogfQogCi1pbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZWxldGVQcm9ncmFtKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3Jh
bSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJH
TFByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05P
X0ZST05URU5EUyh2b2lkKCkpOwotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dFdlYkdM
QmFzZS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgd2ls
bERlbGV0ZVByb2dyYW1JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKKyAgICBp
ZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JDb250ZXh0KHByb2dyYW0uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAg
ICAgICAgd2lsbERlc3Ryb3lXZWJHTFByb2dyYW1JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBw
cm9ncmFtKTsKIH0KIAotaW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1No
YWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2Vi
R0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIEZB
U1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4
dChjb250ZXh0V2ViR0xCYXNlLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
KQotICAgICAgICByZXR1cm4gaXNTaGFkZXJQcm9ncmFtRGlzYWJsZWRJbXBsKCppbnN0cnVtZW50
aW5nQWdlbnRzLCBwcm9ncmFtKTsKKyAgICAgICAgcmV0dXJuIGlzV2ViR0xQcm9ncmFtRGlzYWJs
ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9n
cmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFz
ZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQoraW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBGQVNU
X1JFVFVSTl9JRl9OT19GUk9OVEVORFMoZmFsc2UpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQo
Y29udGV4dFdlYkdMQmFzZS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
LSAgICAgICAgcmV0dXJuIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgcHJvZ3JhbSk7CisgICAgICAgIHJldHVybiBpc1dlYkdMUHJvZ3JhbUhpZ2hs
aWdodGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogI2VuZGlmCkBAIC0xNDM2LDYgKzE0NDEsMjAgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQVUNhbnZhc0NvbnRl
eHQmIGMKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdB
Z2VudHNGb3JDb250ZXh0KGNvbnRleHRHUFUuY2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkpCiAgICAgICAgIHdpbGxDb25maWd1cmVTd2FwQ2hhaW5JbXBsKCppbnN0cnVtZW50
aW5nQWdlbnRzLCBjb250ZXh0R1BVLCBuZXdTd2FwQ2hhaW4pOwogfQorCitpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKFdlYkdQVURl
dmljZSYgZGV2aWNlLCBXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgRkFTVF9SRVRV
Uk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdB
Z2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChkZXZpY2Uuc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmVJbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCBkZXZpY2UsIHBpcGVsaW5lKTsKK30KKworaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKFdlYkdQVVBp
cGVsaW5lJiBwaXBlbGluZSkKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9p
ZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdB
Z2VudHNGb3JDb250ZXh0KHBpcGVsaW5lLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAg
ICAgIHdpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmVJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBw
aXBlbGluZSk7Cit9CiAjZW5kaWYKIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggZDUyOTU1MGNk
Yzg5YTg1OTRiMmViOGRkNDc2NTdmYjEyYTM4MGM4MS4uN2FmNzE5NjMyOGYxMGM2OTYxYmQyN2Y4
MzM5MGM5NDdhZWU2MDg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcApAQCAtMjYsNTMgKzI2LDIxMyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvclNoYWRlclByb2dyYW0uaCIKIAotI2lmIEVO
QUJMRShXRUJHTCkKLQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAi
R3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDYW52YXMuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVudGlm
aWVyc0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworI2lmIEVOQUJMRShXRUJHTCkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0lkZW50aWZpZXJzRmFjdG9yeS5oPgorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorI2luY2x1ZGUgIkdQVVNoYWRlck1vZHVsZS5oIgorI2luY2x1ZGUgIldITFNMUHJlcGFy
ZS5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQ
VVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCIKKyNpbmNsdWRl
ICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKKyNpZiBFTkFCTEUoV0VCR0wpCiBSZWY8SW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFdlYkdM
UHJvZ3JhbSYgcHJvZ3JhbSwgSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShwcm9ncmFtLCBp
bnNwZWN0b3JDYW52YXMpKTsKIH0KKyNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkdQVSkKK1JlZjxJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjcmVhdGUoV2Vi
R1BVUGlwZWxpbmUmIHBpcGVsaW5lLCBJbnNwZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcykK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKHBpcGVs
aW5lLCBpbnNwZWN0b3JDYW52YXMpKTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMKQog
SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShXZWJHTFByb2dy
YW0mIHByb2dyYW0sIEluc3BlY3RvckNhbnZhcyYgaW5zcGVjdG9yQ2FudmFzKQogICAgIDogbV9p
ZGVudGlmaWVyKCJwcm9ncmFtOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZp
ZXIoKSkKLSAgICAsIG1fcHJvZ3JhbShwcm9ncmFtKQogICAgICwgbV9jYW52YXMoaW5zcGVjdG9y
Q2FudmFzKQorICAgICwgbV9wcm9ncmFtKHByb2dyYW0pCiB7CisgICAgQVNTRVJUKGlzPFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U+KG1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSkpOwogfQorI2Vu
ZGlmCiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIEluc3BlY3RvclNoYWRlclByb2dyYW06
OmNvbnRleHQoKSBjb25zdAorI2lmIEVOQUJMRShXRUJHUFUpCitJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSwgSW5z
cGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCisgICAgOiBtX2lkZW50aWZpZXIoInBpcGVs
aW5lOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkKKyAgICAsIG1f
Y2FudmFzKGluc3BlY3RvckNhbnZhcykKKyAgICAsIG1fcHJvZ3JhbShwaXBlbGluZSkKIHsKLSAg
ICBBU1NFUlQobV9jYW52YXMuY2FudmFzQ29udGV4dCgpKTsKLSAgICBBU1NFUlQoaXM8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZT4oKm1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSkpOwotICAgIHJl
dHVybiBkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPigqbV9jYW52YXMuY2FudmFz
Q29udGV4dCgpKTsKKyAgICBBU1NFUlQobV9jYW52YXMuZGV2aWNlQ29udGV4dCgpKTsKIH0KKyNl
bmRpZgogCi1XZWJHTFNoYWRlciogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6c2hhZGVyRm9yVHlw
ZShjb25zdCBTdHJpbmcmIHByb3RvY29sVHlwZSkKKyNpZiBFTkFCTEUoV0VCR0wpCitXZWJHTFBy
b2dyYW0qIEluc3BlY3RvclNoYWRlclByb2dyYW06OnByb2dyYW0oKSBjb25zdAogewotICAgIEdD
M0RlbnVtIHNoYWRlclR5cGU7Ci0gICAgaWYgKHByb3RvY29sVHlwZSA9PSAidmVydGV4IikKLSAg
ICAgICAgc2hhZGVyVHlwZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSOwotICAg
IGVsc2UgaWYgKHByb3RvY29sVHlwZSA9PSAiZnJhZ21lbnQiKQotICAgICAgICBzaGFkZXJUeXBl
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUjsKLSAgICBlbHNlCisgICAgaWYg
KGF1dG8qIHByb2dyYW1XcmFwcGVyID0gV1RGOjpnZXRfaWY8c3RkOjpyZWZlcmVuY2Vfd3JhcHBl
cjxXZWJHTFByb2dyYW0+PihtX3Byb2dyYW0pKQorICAgICAgICByZXR1cm4gJnByb2dyYW1XcmFw
cGVyLT5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxF
KFdFQkdQVSkKK1dlYkdQVVBpcGVsaW5lKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpwaXBlbGlu
ZSgpIGNvbnN0Cit7CisgICAgaWYgKGF1dG8qIHBpcGVsaW5lV3JhcHBlciA9IFdURjo6Z2V0X2lm
PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+PihtX3Byb2dyYW0pKQorICAg
ICAgICByZXR1cm4gJnBpcGVsaW5lV3JhcHBlci0+Z2V0KCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTCkKK3N0YXRpYyBXZWJHTFNoYWRlciogc2hh
ZGVyRm9yVHlwZShXZWJHTFByb2dyYW0mIHByb2dyYW0sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNh
bnZhczo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlKQoreworICAgIHN3aXRjaCAoc2hhZGVyVHlwZSkg
eworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpGcmFn
bWVudDoKKyAgICAgICAgcmV0dXJuIHByb2dyYW0uZ2V0QXR0YWNoZWRTaGFkZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUik7CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6VmVydGV4OgorICAgICAgICByZXR1cm4gcHJvZ3JhbS5n
ZXRBdHRhY2hlZFNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUik7CisKKyAg
ICAvLyBDb21wdXRlIHNoYWRlcnMgYXJlIGEgV2ViR1BVIGNvbmNlcHQuCisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6OkNvbXB1dGU6CiAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KIAotICAgIHJldHVybiBtX3Byb2dyYW0uZ2V0QXR0YWNoZWRT
aGFkZXIoc2hhZGVyVHlwZSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCitzdGF0aWMgT3B0aW9u
YWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHNoYWRlckZvclR5cGUoV2ViR1BVUGlwZWxp
bmUmIHBpcGVsaW5lLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUgc2hh
ZGVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6Q29tcHV0ZToKKyAgICAgICAgaWYgKGlz
PFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUpLmNvbXB1dGVTaGFkZXIoKTsK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlOjpGcmFnbWVudDoKKyAgICAgICAgaWYgKGlzPFdlYkdQ
VVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8
V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKS5mcmFnbWVudFNoYWRlcigpOworICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpD
YW52YXM6OlNoYWRlclR5cGU6OlZlcnRleDoKKyAgICAgICAgaWYgKGlzPFdlYkdQVVJlbmRlclBp
cGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+KHBpcGVsaW5lKS52ZXJ0ZXhTaGFkZXIoKTsKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworfQorI2VuZGlmCisKK1N0cmluZyBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtOjpyZXF1ZXN0U2hhZGVyU291cmNlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hh
ZGVyVHlwZSBzaGFkZXJUeXBlKQoreworI2lmICFFTkFCTEUoV0VCR0wpICYmICFFTkFCTEUoV0VC
R1BVKQorICAgIFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKKyNlbmRpZgorCisgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wcm9ncmFtLAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgWyZd
IChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4gcHJvZ3JhbVdyYXBwZXIpIHsK
KyAgICAgICAgICAgIGF1dG8mIHByb2dyYW0gPSBwcm9ncmFtV3JhcHBlci5nZXQoKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBzaGFkZXIgPSBzaGFkZXJGb3JUeXBlKHByb2dyYW0sIHNoYWRlclR5
cGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBzaGFkZXItPmdldFNvdXJjZSgpOworICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9LAorI2VuZGlmCisjaWYgRU5BQkxFKFdF
QkdQVSkKKyAgICAgICAgWyZdIChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdQVVBpcGVsaW5l
PiBwaXBlbGluZVdyYXBwZXIpIHsKKyAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlwZWxp
bmVXcmFwcGVyLmdldCgpOworICAgICAgICAgICAgaWYgKGF1dG8gc2hhZGVyRGF0YSA9IHNoYWRl
ckZvclR5cGUocGlwZWxpbmUsIHNoYWRlclR5cGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1
dG8gbW9kdWxlID0gc2hhZGVyRGF0YS52YWx1ZSgpLm1vZHVsZSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1vZHVsZS0+c291cmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIH0sCisjZW5kaWYKKyAgICAgICAgWyZdIChNb25vc3Rh
dGUpIHsKKyNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShXRUJHUFUpCisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgICAgICB9CisgICAgKTsKK30KKworYm9vbCBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjp1
cGRhdGVTaGFkZXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRl
clR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlKQoreworI2lmICFFTkFCTEUoV0VCR0wpICYmICFF
TkFCTEUoV0VCR1BVKQorICAgIFVOVVNFRF9QQVJBTShzaGFkZXJUeXBlKTsKKyAgICBVTlVTRURf
UEFSQU0oc291cmNlKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wcm9n
cmFtLAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgWyZdIChzdGQ6OnJlZmVyZW5jZV93cmFw
cGVyPFdlYkdMUHJvZ3JhbT4gcHJvZ3JhbVdyYXBwZXIpIHsKKyAgICAgICAgICAgIGF1dG8mIHBy
b2dyYW0gPSBwcm9ncmFtV3JhcHBlci5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzaGFk
ZXIgPSBzaGFkZXJGb3JUeXBlKHByb2dyYW0sIHNoYWRlclR5cGUpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8qIGNvbnRleHQgPSBtX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KGNvbnRleHQp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvJiBjb250ZXh0V2ViR0xCYXNlID0gZG93
bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKmNvbnRleHQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzb3VyY2Up
OworICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5jb21waWxlU2hhZGVy
KHNoYWRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhZGVyLT5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0V2ViR0xCYXNlLmxpbmtQcm9n
cmFtV2l0aG91dEludmFsaWRhdGluZ0F0dHJpYkxvY2F0aW9ucygmcHJvZ3JhbSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0sCisjZW5kaWYKKyNpZiBF
TkFCTEUoV0VCR1BVKQorICAgICAgICBbJl0gKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BV
UGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBlcikgeworICAgICAgICAgICAgYXV0byYgcGlwZWxpbmUg
PSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byogZGV2aWNlID0g
bV9jYW52YXMuZGV2aWNlQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gc2hh
ZGVyRGF0YSA9IHNoYWRlckZvclR5cGUocGlwZWxpbmUsIHNoYWRlclR5cGUpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChhdXRvIG1vZHVsZSA9IHNoYWRlckRhdGEudmFsdWUoKS5tb2R1bGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZS0+dXBkYXRlKCpkZXZpY2UsIHNvdXJj
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlwZWxpbmUucmVjb21waWxlKCpkZXZp
Y2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9LAorI2VuZGlmCisgICAgICAgIFsmXSAoTW9ub3N0
YXRlKSB7CisjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoV0VCR1BVKQorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgICk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5oCmluZGV4IDk0NjdlODQ3ZjVkM2Q5MmQxNDkwMGU0Yjg1NTk2MWFh
NmFkZTY2Y2UuLjBlMGUxMTY3ZTg1MzBlZWRkMzk3NzZjODM5YjFhMmFiMWM5NzgzMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaApA
QCAtMjYsMjUgKzI2LDQzIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBJbnNwZWN0b3JDYW52YXM7CisKKyNpZiBFTkFCTEUoV0VCR0wpCiBjbGFzcyBXZWJHTFBy
b2dyYW07CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwotY2xhc3MgV2ViR0xTaGFk
ZXI7CisjZW5kaWYKIAotdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CisjaWYgRU5BQkxFKFdF
QkdQVSkKK2NsYXNzIFdlYkdQVVBpcGVsaW5lOworI2VuZGlmCiAKIGNsYXNzIEluc3BlY3RvclNo
YWRlclByb2dyYW0gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtPiB7CiBwdWJsaWM6CisjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0YXRpYyBSZWY8SW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbT4gY3JlYXRlKFdlYkdMUHJvZ3JhbSYsIEluc3BlY3RvckNhbnZhcyYp
OworI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICBzdGF0aWMgUmVmPEluc3BlY3RvclNo
YWRlclByb2dyYW0+IGNyZWF0ZShXZWJHUFVQaXBlbGluZSYsIEluc3BlY3RvckNhbnZhcyYpOwor
I2VuZGlmCiAKICAgICBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2lkZW50aWZpZXI7IH0KICAgICBJbnNwZWN0b3JDYW52YXMmIGNhbnZhcygpIGNvbnN0IHsgcmV0
dXJuIG1fY2FudmFzOyB9Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCgp
IGNvbnN0OwotICAgIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
Z3JhbTsgfQotICAgIFdlYkdMU2hhZGVyKiBzaGFkZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYpOwor
CisjaWYgRU5BQkxFKFdFQkdMKQorICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSgpIGNvbnN0Owor
I2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICBXZWJHUFVQaXBlbGluZSogcGlwZWxpbmUo
KSBjb25zdDsKKyNlbmRpZgorCisgICAgU3RyaW5nIHJlcXVlc3RTaGFkZXJTb3VyY2UoSW5zcGVj
dG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlKTsKKyAgICBib29sIHVwZGF0ZVNoYWRl
cihJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYg
c291cmNlKTsKIAogICAgIGJvb2wgZGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVk
OyB9CiAgICAgdm9pZCBzZXREaXNhYmxlZChib29sIGRpc2FibGVkKSB7IG1fZGlzYWJsZWQgPSBk
aXNhYmxlZDsgfQpAQCAtNTIsMTUgKzcwLDI3IEBAIHB1YmxpYzoKICAgICBib29sIGhpZ2hsaWdo
dGVkKCkgY29uc3QgeyByZXR1cm4gbV9oaWdobGlnaHRlZDsgfQogICAgIHZvaWQgc2V0SGlnaGxp
Z2h0ZWQoYm9vbCB2YWx1ZSkgeyBtX2hpZ2hsaWdodGVkID0gdmFsdWU7IH0KIAotICAgIH5JbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtKCkgPSBkZWZhdWx0OwotCiBwcml2YXRlOgorI2lmIEVOQUJMRShX
RUJHTCkKICAgICBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtKFdlYkdMUHJvZ3JhbSYsIEluc3BlY3Rv
ckNhbnZhcyYpOworI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICBJbnNwZWN0b3JTaGFk
ZXJQcm9ncmFtKFdlYkdQVVBpcGVsaW5lJiwgSW5zcGVjdG9yQ2FudmFzJik7CisjZW5kaWYKIAog
ICAgIFN0cmluZyBtX2lkZW50aWZpZXI7Ci0gICAgV2ViR0xQcm9ncmFtJiBtX3Byb2dyYW07CiAg
ICAgSW5zcGVjdG9yQ2FudmFzJiBtX2NhbnZhczsKIAorICAgIFZhcmlhbnQ8CisjaWYgRU5BQkxF
KFdFQkdMKQorICAgICAgICBzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3JhbT4sCisj
ZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgICAgICBzdGQ6OnJlZmVyZW5jZV93cmFwcGVy
PFdlYkdQVVBpcGVsaW5lPiwKKyNlbmRpZgorICAgICAgICBNb25vc3RhdGUKKyAgICA+IG1fcHJv
Z3JhbTsKKwogICAgIGJvb2wgbV9kaXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hpZ2hs
aWdodGVkIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IDE4NTIyNDg1YTY1MjJi
NTVkMzI4MzBiMTZmM2Y4Y2M2MjBkMzdmM2MuLjMwMzIxYTZmNTQwYjBlNDM2YTJmNDNhMGY5Y2U3
NWU0MzcxNzNkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvclNoYWRlclByb2dyYW0uaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAj
aW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJNaWNyb3Rhc2tzLmgiCkBAIC00Niwx
NCArNDcsMTggQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbmplY3RlZFNjcmlwdE1hbmFn
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogI2lmIEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRl
ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmgiCi0jaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFdFQkdMMikKQEAgLTYyLDcgKzY3LDExIEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogI2luY2x1
ZGUgIkdQVUNhbnZhc0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGlwZWxpbmUu
aCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5o
IgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVU3dh
cENoYWluLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzYsNiArODUsNyBA
QCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVjdG9yQ2FudmFzQWdlbnQoUGFnZUFnZW50Q29u
dGV4dCYgY29udGV4dCkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNvbnRleHQuaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9pbnNwZWN0ZWRQYWdlKGNvbnRleHQuaW5zcGVj
dGVkUGFnZSkKICAgICAsIG1fY2FudmFzRGVzdHJveWVkVGltZXIoKnRoaXMsICZJbnNwZWN0b3JD
YW52YXNBZ2VudDo6Y2FudmFzRGVzdHJveWVkVGltZXJGaXJlZCkKKyAgICAsIG1fcHJvZ3JhbURl
c3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnByb2dyYW1EZXN0cm95
ZWRUaW1lckZpcmVkKQogewogfQogCkBAIC05Myw3ICsxMDMsNyBAQCB2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaXNjYXJkQWdlbnQoKQogewot
ICAgIGNsZWFyQ2FudmFzRGF0YSgpOworICAgIHJlc2V0KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYpCkBAIC0xNDEsNyArMTUxLDE3IEBAIHZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYpCiAgICAgICAgIExv
Y2tIb2xkZXIgbG9jayhXZWJHTFByb2dyYW06Omluc3RhbmNlc011dGV4KCkpOwogICAgICAgICBm
b3IgKGF1dG8mIFtwcm9ncmFtLCBjb250ZXh0V2ViR0xCYXNlXSA6IFdlYkdMUHJvZ3JhbTo6aW5z
dGFuY2VzKGxvY2spKSB7CiAgICAgICAgICAgICBpZiAoY29udGV4dFdlYkdMQmFzZSAmJiBleGlz
dHNJbkN1cnJlbnRQYWdlKGNvbnRleHRXZWJHTEJhc2UtPmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpKQotICAgICAgICAgICAgICAgIGRpZENyZWF0ZVByb2dyYW0oKmNvbnRl
eHRXZWJHTEJhc2UsICpwcm9ncmFtKTsKKyAgICAgICAgICAgICAgICBkaWRDcmVhdGVXZWJHTFBy
b2dyYW0oKmNvbnRleHRXZWJHTEJhc2UsICpwcm9ncmFtKTsKKyAgICAgICAgfQorICAgIH0KKyNl
bmRpZgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
ayhXZWJHUFVQaXBlbGluZTo6aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIGZvciAoYXV0byYg
W3BpcGVsaW5lLCBkZXZpY2VdIDogV2ViR1BVUGlwZWxpbmU6Omluc3RhbmNlcyhsb2NrKSkgewor
ICAgICAgICAgICAgaWYgKGRldmljZSAmJiBleGlzdHNJbkN1cnJlbnRQYWdlKGRldmljZS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKSAmJiBwaXBlbGluZS0+aXNWYWxpZCgpKQorICAgICAgICAg
ICAgICAgIGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKCpkZXZpY2UsICpwaXBlbGluZSk7CiAgICAg
ICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTE1MSw3ICsxNzEsNyBAQCB2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKIHsKICAgICBtX2luc3RydW1lbnRpbmdB
Z2VudHMuc2V0SW5zcGVjdG9yQ2FudmFzQWdlbnQobnVsbHB0cik7CiAKLSAgICBjbGVhckNhbnZh
c0RhdGEoKTsKKyAgICByZXNldCgpOwogCiAgICAgbV9yZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1l
Q291bnQgPSBXVEY6Om51bGxvcHQ7CiB9CkBAIC0yODAsOTMgKzMwMCw2NSBAQCB2b2lkIEluc3Bl
Y3RvckNhbnZhc0FnZW50OjpzdG9wUmVjb3JkaW5nKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJgogICAgIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lKCpjb250ZXh0
LCB0cnVlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVxdWVzdFNoYWRlclNv
dXJjZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBj
b25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyogY29udGVudCkKK3ZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OnJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlU3RyaW5n
LCBTdHJpbmcqIG91dFNvdXJjZSkKIHsKLSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgYXV0byBpbnNw
ZWN0b3JQcm9ncmFtID0gYXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShlcnJvclN0cmluZywgcHJvZ3Jh
bUlkKTsKICAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAotICAg
IGF1dG8qIHNoYWRlciA9IGluc3BlY3RvclByb2dyYW0tPnNoYWRlckZvclR5cGUoc2hhZGVyVHlw
ZSk7Ci0gICAgaWYgKCFzaGFkZXIpIHsKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBz
aGFkZXIgZm9yIGdpdmVuIHNoYWRlclR5cGUiX3M7CisgICAgYXV0byBzaGFkZXJUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6SW5zcGVjdG9ySGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3Ry
aW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZT4oc2hhZGVyVHlwZVN0
cmluZyk7CisgICAgaWYgKCFzaGFkZXJUeXBlKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gbWFr
ZVN0cmluZygiVW5rbm93biBzaGFkZXJUeXBlOiAiX3MsIHNoYWRlclR5cGVTdHJpbmcpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgKmNvbnRlbnQgPSBzaGFkZXItPmdldFNvdXJjZSgp
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBVTlVTRURfUEFSQU0o
c2hhZGVyVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbnRlbnQpOwotICAgIGVycm9yU3RyaW5n
ID0gIk5vdCBzdXBwb3J0ZWQiX3M7Ci0jZW5kaWYKKyAgICBhdXRvIHNvdXJjZSA9IGluc3BlY3Rv
clByb2dyYW0tPnJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyVHlwZS52YWx1ZSgpKTsKKyAgICBp
ZiAoIXNvdXJjZSkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIHNoYWRlciBvZiBn
aXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQiX3M7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAqb3V0U291cmNlID0gc291cmNlOwogfQogCi12b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50Ojp1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZSkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVwZGF0ZVNoYWRlcihFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcm
IHNoYWRlclR5cGVTdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlKQogewotI2lmIEVOQUJMRShX
RUJHTCkKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFt
KGVycm9yU3RyaW5nLCBwcm9ncmFtSWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogc2hhZGVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+c2hh
ZGVyRm9yVHlwZShzaGFkZXJUeXBlKTsKLSAgICBpZiAoIXNoYWRlcikgewotICAgICAgICBlcnJv
clN0cmluZyA9ICJNaXNzaW5nIHNoYWRlciBmb3IgZ2l2ZW4gc2hhZGVyVHlwZSJfczsKKyAgICBh
dXRvIHNoYWRlclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpJbnNwZWN0b3JIZWxwZXJzOjpw
YXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFk
ZXJUeXBlPihzaGFkZXJUeXBlU3RyaW5nKTsKKyAgICBpZiAoIXNoYWRlclR5cGUpIHsKKyAgICAg
ICAgZXJyb3JTdHJpbmcgPSBtYWtlU3RyaW5nKCJVbmtub3duIHNoYWRlclR5cGU6ICJfcywgc2hh
ZGVyVHlwZVN0cmluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0wgPSBpbnNwZWN0b3JQcm9ncmFtLT5jb250ZXh0
KCk7Ci0gICAgY29udGV4dFdlYkdMLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7Ci0gICAg
Y29udGV4dFdlYkdMLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKLQotICAgIGlmICghc2hhZGVyLT5p
c1ZhbGlkKCkpIHsKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIHVwZGF0ZSBzaGFk
ZXIiX3M7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb250ZXh0V2ViR0wubGlua1By
b2dyYW1XaXRob3V0SW52YWxpZGF0aW5nQXR0cmliTG9jYXRpb25zKCZpbnNwZWN0b3JQcm9ncmFt
LT5wcm9ncmFtKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBV
TlVTRURfUEFSQU0oc2hhZGVyVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7Ci0gICAg
ZXJyb3JTdHJpbmcgPSAiTm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgorICAgIGlmICghaW5zcGVj
dG9yUHJvZ3JhbS0+dXBkYXRlU2hhZGVyKHNoYWRlclR5cGUudmFsdWUoKSwgc291cmNlKSkKKyAg
ICAgICAgZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4gc2hh
ZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkIl9zOwogfQogCiB2b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCkKIHsKLSNpZiBFTkFCTEUo
V0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gYXNzZXJ0SW5zcGVjdG9yUHJvZ3Jh
bShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGluc3BlY3RvclByb2dyYW0tPnNldERpc2FibGVkKGRpc2Fi
bGVkKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0gICAgVU5VU0VEX1BB
UkFNKGRpc2FibGVkKTsKLSAgICBlcnJvclN0cmluZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnNldFNoYWRlclByb2dyYW1IaWdo
bGlnaHRlZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlk
LCBib29sIGhpZ2hsaWdodGVkKQogewotI2lmIEVOQUJMRShXRUJHTCkKICAgICBhdXRvIGluc3Bl
Y3RvclByb2dyYW0gPSBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKGVycm9yU3RyaW5nLCBwcm9ncmFt
SWQpOwogICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aW5zcGVjdG9yUHJvZ3JhbS0+c2V0SGlnaGxpZ2h0ZWQoaGlnaGxpZ2h0ZWQpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0ocHJvZ3JhbUlkKTsKLSAgICBVTlVTRURfUEFSQU0oaGlnaGxpZ2h0ZWQp
OwotICAgIGVycm9yU3RyaW5nID0gIk5vdCBzdXBwb3J0ZWQiX3M7Ci0jZW5kaWYKIH0KIAogdm9p
ZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmIGZyYW1lKQogewog
ICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIGNsZWFyQ2FudmFzRGF0YSgp
OworICAgICAgICByZXNldCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01NjgsNyAr
NTYwLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkRW5hYmxlRXh0ZW5zaW9uKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ci0+ZXh0ZW5zaW9uRW5hYmxlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgZXh0ZW5z
aW9uKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkQ3JlYXRlUHJvZ3JhbShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0mIHByb2dyYW0p
Cit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHTFByb2dyYW0oV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewog
ICAgIGF1dG8gaW5zcGVjdG9yQ2FudmFzID0gZmluZEluc3BlY3RvckNhbnZhcyhjb250ZXh0KTsK
ICAgICBBU1NFUlQoaW5zcGVjdG9yQ2FudmFzKTsKQEAgLTU3OCwyMCArNTcwLDE5IEBAIHZvaWQg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dCwKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtOjpjcmVhdGUocHJvZ3JhbSwgKmluc3BlY3RvckNhbnZhcyk7CiAgICAgU3Ry
aW5nIHByb2dyYW1JZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+aWRlbnRpZmllcigpOwog
ICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3JhbUlkZW50aWZpZXIs
IFdURk1vdmUoaW5zcGVjdG9yUHJvZ3JhbSkpOwotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5w
cm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50
aWZpZXIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0
b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgcHJvZ3JhbUlkZW50aWZpZXIsIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OlJlbmRlcik7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OndpbGxEZWxldGVQcm9ncmFtKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKK3Zv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdlYkdMUHJv
Z3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBmaW5kSW5zcGVj
dG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCiAgICAgICAg
IHJldHVybjsKIAotICAgIFN0cmluZyBpZGVudGlmaWVyID0gdW5iaW5kUHJvZ3JhbSgqaW5zcGVj
dG9yUHJvZ3JhbSk7Ci0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1EZWxldGVkKGlk
ZW50aWZpZXIpOworICAgIHVuYmluZFByb2dyYW0oKmluc3BlY3RvclByb2dyYW0pOwogfQogCi1i
b29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFBy
b2dyYW0mIHByb2dyYW0pCitib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1dlYkdMUHJvZ3Jh
bURpc2FibGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3RvclBy
b2dyYW0gPSBmaW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBBU1NFUlQoaW5zcGVj
dG9yUHJvZ3JhbSk7CkBAIC02MDEsNyArNTkyLDcgQEAgYm9vbCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogICAgIHJl
dHVybiBpbnNwZWN0b3JQcm9ncmFtLT5kaXNhYmxlZCgpOwogfQogCi1ib29sIEluc3BlY3RvckNh
bnZhc0FnZW50Ojppc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mIHByb2dy
YW0pCitib29sIEluc3BlY3RvckNhbnZhc0FnZW50Ojppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVk
KFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBm
aW5kSW5zcGVjdG9yUHJvZ3JhbShwcm9ncmFtKTsKICAgICBBU1NFUlQoaW5zcGVjdG9yUHJvZ3Jh
bSk7CkBAIC02NDksNiArNjQwLDM4IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxD
b25maWd1cmVTd2FwQ2hhaW4oR1BVQ2FudmFzQ29udGV4dCYgY29udGV4dEdQVSwKIAogICAgIG5v
dGlmeURldmljZUZvclN3YXBDaGFpbihuZXdTd2FwQ2hhaW4pOwogfQorCit2b2lkIEluc3BlY3Rv
ckNhbnZhc0FnZW50OjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmlj
ZSwgV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAgIGF1dG8gaW5zcGVjdG9yQ2FudmFz
ID0gZmluZEluc3BlY3RvckNhbnZhcyhkZXZpY2UpOworICAgIEFTU0VSVChpbnNwZWN0b3JDYW52
YXMpOworICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAgICByZXR1cm47CisKKyAgICBB
U1NFUlQocGlwZWxpbmUuaXNWYWxpZCgpKTsKKworICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9
IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNyZWF0ZShwaXBlbGluZSwgKmluc3BlY3RvckNhbnZh
cyk7CisgICAgU3RyaW5nIHByb2dyYW1JZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS0+aWRl
bnRpZmllcigpOworICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3Jh
bUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJvZ3JhbSkpOworCisgICAgT3B0aW9uYWw8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZT4gcHJvZ3JhbVR5cGU7Cisg
ICAgaWYgKGlzPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUpKQorICAgICAgICBwcm9n
cmFtVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU6OkNvbXB1
dGU7CisgICAgZWxzZSBpZiAoaXM8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKSkKKyAg
ICAgICAgcHJvZ3JhbVR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1U
eXBlOjpSZW5kZXI7CisgICAgQVNTRVJUKHByb2dyYW1UeXBlKTsKKworICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5wcm9ncmFtQ3JlYXRlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwg
cHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlLnZhbHVlKCkpOworfQorCit2b2lkIEluc3Bl
Y3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKFdlYkdQVVBpcGVsaW5l
JiBwaXBlbGluZSkKK3sKKyAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBmaW5kSW5zcGVjdG9y
UHJvZ3JhbShwaXBlbGluZSk7CisgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQorICAgICAgICBy
ZXR1cm47CisKKyAgICB1bmJpbmRQcm9ncmFtKCppbnNwZWN0b3JQcm9ncmFtKTsKK30KICNlbmRp
ZgogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpzdGFydFJlY29yZGluZyhJbnNwZWN0b3JD
YW52YXMmIGluc3BlY3RvckNhbnZhcywgSW5zcGVjdG9yOjpQcm90b2NvbDo6UmVjb3JkaW5nOjpJ
bml0aWF0b3IgaW5pdGlhdG9yLCBSZWNvcmRpbmdPcHRpb25zJiYgcmVjb3JkaW5nT3B0aW9ucykK
QEAgLTY5NCw3ICs3MTcsMTggQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y2FudmFzRGVz
dHJveWVkVGltZXJGaXJlZCgpCiAgICAgbV9yZW1vdmVkQ2FudmFzSWRlbnRpZmllcnMuY2xlYXIo
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y2xlYXJDYW52YXNEYXRhKCkKK3Zv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnByb2dyYW1EZXN0cm95ZWRUaW1lckZpcmVkKCkKK3sK
KyAgICBpZiAoIW1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5zaXplKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGZvciAoYXV0byYgaWRlbnRpZmllciA6IG1fcmVtb3ZlZFByb2dyYW1JZGVu
dGlmaWVycykKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1EZWxldGVkKGlk
ZW50aWZpZXIpOworCisgICAgbV9yZW1vdmVkUHJvZ3JhbUlkZW50aWZpZXJzLmNsZWFyKCk7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlc2V0KCkKIHsKICAgICBmb3IgKGF1dG8m
IGluc3BlY3RvckNhbnZhcyA6IG1faWRlbnRpZmllclRvSW5zcGVjdG9yQ2FudmFzLnZhbHVlcygp
KSB7CiAgICAgICAgIGlmIChhdXRvKiBjb250ZXh0ID0gaW5zcGVjdG9yQ2FudmFzLT5jYW52YXND
b250ZXh0KCkpCkBAIC03MDIsMTMgKzczNiwxNCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50
OjpjbGVhckNhbnZhc0RhdGEoKQogICAgIH0KIAogICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9y
Q2FudmFzLmNsZWFyKCk7Ci0jaWYgRU5BQkxFKFdFQkdMKQotICAgIG1faWRlbnRpZmllclRvSW5z
cGVjdG9yUHJvZ3JhbS5jbGVhcigpOwogICAgIG1fcmVtb3ZlZENhbnZhc0lkZW50aWZpZXJzLmNs
ZWFyKCk7Ci0jZW5kaWYKLQogICAgIGlmIChtX2NhbnZhc0Rlc3Ryb3llZFRpbWVyLmlzQWN0aXZl
KCkpCiAgICAgICAgIG1fY2FudmFzRGVzdHJveWVkVGltZXIuc3RvcCgpOworCisgICAgbV9pZGVu
dGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLmNsZWFyKCk7CisgICAgbV9yZW1vdmVkUHJvZ3JhbUlk
ZW50aWZpZXJzLmNsZWFyKCk7CisgICAgaWYgKG1fcHJvZ3JhbURlc3Ryb3llZFRpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgIG1fcHJvZ3JhbURlc3Ryb3llZFRpbWVyLnN0b3AoKTsKIH0KIAogSW5z
cGVjdG9yQ2FudmFzJiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6YmluZENhbnZhcyhDYW52YXNSZW5k
ZXJpbmdDb250ZXh0JiBjb250ZXh0LCBib29sIGNhcHR1cmVCYWNrdHJhY2UpCkBAIC04MDUsMTMg
Kzg0MCwxOCBAQCBSZWZQdHI8SW5zcGVjdG9yQ2FudmFzPiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
ZmluZEluc3BlY3RvckNhbnZhcyhXZWJHUFVEZXZpY2UmCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShXRUJHTCkKLVN0cmluZyBJbnNwZWN0b3JDYW52YXNBZ2VudDo6dW5iaW5kUHJvZ3JhbShJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtJiBpbnNwZWN0b3JQcm9ncmFtKQordm9pZCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6dW5iaW5kUHJvZ3JhbShJbnNwZWN0b3JTaGFkZXJQcm9ncmFtJiBpbnNwZWN0b3JQ
cm9ncmFtKQogewogICAgIFN0cmluZyBpZGVudGlmaWVyID0gaW5zcGVjdG9yUHJvZ3JhbS5pZGVu
dGlmaWVyKCk7CiAgICAgbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnJlbW92ZShpZGVu
dGlmaWVyKTsKIAotICAgIHJldHVybiBpZGVudGlmaWVyOworICAgIC8vIFRoaXMgY2FuIGJlIGNh
bGxlZCBpbiByZXNwb25zZSB0byBHQy4gRHVlIHRvIHRoZSBzaW5nbGUtcHJvY2VzcyBtb2RlbCB1
c2VkIGluIFdlYktpdDEsIHRoZQorICAgIC8vIGV2ZW50IG11c3QgYmUgZGlzcGF0Y2hlZCBmcm9t
IGEgdGltZXIgdG8gcHJldmVudCB0aGUgZnJvbnRlbmQgZnJvbSBtYWtpbmcgSlMgYWxsb2NhdGlv
bnMKKyAgICAvLyB3aGlsZSB0aGUgR0MgaXMgc3RpbGwgYWN0aXZlLgorICAgIG1fcmVtb3ZlZFBy
b2dyYW1JZGVudGlmaWVycy5hcHBlbmQoaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fcHJvZ3Jh
bURlc3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fcHJvZ3JhbURlc3Ryb3llZFRp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCiBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmFzc2VydEluc3BlY3RvclByb2dyYW0oRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCkKQEAgLTgyNCwxMCArODY0
LDIyIEBAIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6YXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShFcnJvCiAgICAgcmV0dXJuIGluc3BlY3RvclByb2dy
YW07CiB9CiAKKyNpZiBFTkFCTEUoV0VCR0wpCiBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZpbmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKIHsKICAgICBmb3IgKGF1dG8mIGluc3BlY3RvclByb2dyYW0gOiBtX2lkZW50
aWZpZXJUb0luc3BlY3RvclByb2dyYW0udmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCZpbnNwZWN0
b3JQcm9ncmFtLT5wcm9ncmFtKCkgPT0gJnByb2dyYW0pCisgICAgICAgIGlmIChpbnNwZWN0b3JQ
cm9ncmFtLT5wcm9ncmFtKCkgPT0gJnByb2dyYW0pCisgICAgICAgICAgICByZXR1cm4gaW5zcGVj
dG9yUHJvZ3JhbTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lm
IEVOQUJMRShXRUJHUFUpCitSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmZpbmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGlu
ZSkKK3sKKyAgICBmb3IgKGF1dG8mIGluc3BlY3RvclByb2dyYW0gOiBtX2lkZW50aWZpZXJUb0lu
c3BlY3RvclByb2dyYW0udmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGluc3BlY3RvclByb2dyYW0t
PnBpcGVsaW5lKCkgPT0gJnBpcGVsaW5lKQogICAgICAgICAgICAgcmV0dXJuIGluc3BlY3RvclBy
b2dyYW07CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IGJhZWRk
NDY3Y2Q5NzE3ZDY1NmJjNzM3NmUwZWViZDIyM2QyYzBmYTYuLjYwYzU2ZTk2ZmI2NTAxNDliYzdl
Yjc4NTJiMjUwYmE3ODZlY2I3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKQEAgLTMzLDE0ICszMyw3IEBACiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgog
I2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIklu
c3BlY3RvclNoYWRlclByb2dyYW0uaCIKLSNlbmRpZgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwpA
QCAtNDksNiArNDIsNyBAQCBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ7CitjbGFzcyBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtOwogI2lmIEVOQUJMRShXRUJHTCkKIGNsYXNzIFdlYkdMUHJvZ3JhbTsK
IGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CkBAIC01Niw2ICs1MCw3IEBAIGNsYXNz
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAjaWYgRU5BQkxFKFdFQkdQVSkKIGNsYXNzIEdQ
VUNhbnZhc0NvbnRleHQ7CiBjbGFzcyBXZWJHUFVEZXZpY2U7CitjbGFzcyBXZWJHUFVQaXBlbGlu
ZTsKIGNsYXNzIFdlYkdQVVN3YXBDaGFpbjsKICNlbmRpZgogCkBAIC04Myw3ICs3OCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudChFcnJvclN0
cmluZyYsIGludCBjb3VudCk7CiAgICAgdm9pZCBzdGFydFJlY29yZGluZyhFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGNvbnN0IGludCogZnJhbWVDb3VudCwgY29uc3QgaW50
KiBtZW1vcnlMaW1pdCk7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBjYW52YXNJZCk7Ci0gICAgdm9pZCByZXF1ZXN0U2hhZGVyU291cmNlKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlw
ZSwgU3RyaW5nKik7CisgICAgdm9pZCByZXF1ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgU3RyaW5n
KiBzb3VyY2UpOwogICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2UpOwogICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgZGlzYWJsZWQpOwogICAgIHZvaWQgc2V0U2hh
ZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFt
SWQsIGJvb2wgaGlnaGxpZ2h0ZWQpOwpAQCAtMTAzLDE1ICs5OCwxNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjb25zb2xlU3RhcnRSZWNvcmRpbmdDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYs
IEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU09iamVjdCogb3B0aW9ucyk7CiAjaWYgRU5BQkxFKFdF
QkdMKQogICAgIHZvaWQgZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotICAgIHZvaWQgd2lsbERlbGV0ZVBy
b2dyYW0oV2ViR0xQcm9ncmFtJik7Ci0gICAgYm9vbCBpc1NoYWRlclByb2dyYW1EaXNhYmxlZChX
ZWJHTFByb2dyYW0mKTsKLSAgICBib29sIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdM
UHJvZ3JhbSYpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95V2ViR0xQ
cm9ncmFtKFdlYkdMUHJvZ3JhbSYpOworICAgIGJvb2wgaXNXZWJHTFByb2dyYW1EaXNhYmxlZChX
ZWJHTFByb2dyYW0mKTsKKyAgICBib29sIGlzV2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQ
cm9ncmFtJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgIHZvaWQgZGlkQ3JlYXRl
V2ViR1BVRGV2aWNlKFdlYkdQVURldmljZSYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVE
ZXZpY2UoV2ViR1BVRGV2aWNlJik7CiAgICAgdm9pZCB3aWxsQ29uZmlndXJlU3dhcENoYWluKEdQ
VUNhbnZhc0NvbnRleHQmLCBXZWJHUFVTd2FwQ2hhaW4mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdl
YkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFdlYkdQVVBpcGVsaW5lJik7CisgICAgdm9pZCB3
aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKFdlYkdQVVBpcGVsaW5lJik7CiAjZW5kaWYKIAogcHJp
dmF0ZToKQEAgLTEyMyw3ICsxMjAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRSZWNvcmRp
bmcoSW5zcGVjdG9yQ2FudmFzJiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6UmVjb3JkaW5nOjpJbml0
aWF0b3IsIFJlY29yZGluZ09wdGlvbnMmJiA9IHsgfSk7CiAKICAgICB2b2lkIGNhbnZhc0Rlc3Ry
b3llZFRpbWVyRmlyZWQoKTsKLSAgICB2b2lkIGNsZWFyQ2FudmFzRGF0YSgpOworICAgIHZvaWQg
cHJvZ3JhbURlc3Ryb3llZFRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJlc2V0KCk7CisKICAgICBJ
bnNwZWN0b3JDYW52YXMmIGJpbmRDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGJvb2wg
Y2FwdHVyZUJhY2t0cmFjZSk7CiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBJbnNwZWN0b3JDYW52
YXMmIGJpbmRDYW52YXMoV2ViR1BVRGV2aWNlJiwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKTsKQEAg
LTEzNSwxMSArMTM0LDE0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3BlY3RvckNhbnZhcz4g
ZmluZEluc3BlY3RvckNhbnZhcyhXZWJHUFVEZXZpY2UmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KFdFQkdMKQotICAgIFN0cmluZyB1bmJpbmRQcm9ncmFtKEluc3BlY3RvclNoYWRlclByb2dyYW0m
KTsKKyAgICB2b2lkIHVuYmluZFByb2dyYW0oSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSYpOwogICAg
IFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBhc3NlcnRJbnNwZWN0b3JQcm9ncmFtKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQpOworI2lmIEVOQUJMRShXRUJHTCkK
ICAgICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gZmluZEluc3BlY3RvclByb2dyYW0o
V2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCR1BVKQorICAgIFJlZlB0cjxJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBmaW5kSW5zcGVjdG9yUHJvZ3JhbShXZWJHUFVQaXBlbGlu
ZSYpOworI2VuZGlmCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDYW52YXNGcm9u
dGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxJbnNwZWN0
b3I6OkNhbnZhc0JhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwpAQCAtMTQ4
LDE0ICsxNTAsMTQgQEAgcHJpdmF0ZToKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiAKICAg
ICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvckNhbnZhcz4+IG1faWRlbnRpZmllclRv
SW5zcGVjdG9yQ2FudmFzOwotI2lmIEVOQUJMRShXRUJHTCkKLSAgICBIYXNoTWFwPFN0cmluZywg
UmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvclBy
b2dyYW07Ci0jZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRDYW52YXNJZGVudGlm
aWVyczsKKyAgICBUaW1lciBtX2NhbnZhc0Rlc3Ryb3llZFRpbWVyOworCisgICAgSGFzaE1hcDxT
dHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPj4gbV9pZGVudGlmaWVyVG9JbnNw
ZWN0b3JQcm9ncmFtOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlm
aWVyczsKKyAgICBUaW1lciBtX3Byb2dyYW1EZXN0cm95ZWRUaW1lcjsKIAogICAgIE9wdGlvbmFs
PHNpemVfdD4gbV9yZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQ7Ci0KLSAgICBUaW1lciBt
X2NhbnZhc0Rlc3Ryb3llZFRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQ
aXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1
dGVQaXBlbGluZS5oCmluZGV4IGNhZmM2ZTRlZjE4NWQ0M2E3ODQ3YzkwZmJmN2I3ZjU5NzQ3Yzk3
NGEuLjM5MWNlYWUxODdhZDEzZGI1Yzk2Y2ZhZmZhYmFkNGMxN2RiMGRlNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBp
cGVsaW5lLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNs
dWRlICJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3Jp
cHRvci5oIgogI2luY2x1ZGUgIldITFNMUHJlcGFyZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzgsMjcgKzQwLDM5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVRGV2aWNlOwogY2xhc3MgR1BVRXJyb3JTY29wZXM7
CitjbGFzcyBHUFVQaXBlbGluZUxheW91dDsKIAogc3RydWN0IEdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3I7CiAKIHVzaW5nIFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lID0gTVRMQ29tcHV0ZVBp
cGVsaW5lU3RhdGU7CiB1c2luZyBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRyID0gUmV0
YWluUHRyPE1UTENvbXB1dGVQaXBlbGluZVN0YXRlPjsKIAotY2xhc3MgR1BVQ29tcHV0ZVBpcGVs
aW5lIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29tcHV0ZVBpcGVsaW5lPiB7CitjbGFzcyBHUFVD
b21wdXRlUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgR1BVUGlwZWxpbmUgewogcHVibGljOgorICAg
IHZpcnR1YWwgfkdQVUNvbXB1dGVQaXBlbGluZSgpOworCiAgICAgc3RhdGljIFJlZlB0cjxHUFVD
b21wdXRlUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmLCBjb25zdCBHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiwgR1BVRXJyb3JTY29wZXMmKTsKIAorICAgIGJvb2wgaXND
b21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBib29sIHJlY29t
cGlsZShjb25zdCBHUFVEZXZpY2UmLCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3ImJiBj
b21wdXRlU3RhZ2UpOworCiAgICAgY29uc3QgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmUqIHBsYXRm
b3JtQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUNvbXB1dGVQaXBl
bGluZS5nZXQoKTsgfQogCiAgICAgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1l
bnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlRGltZW5zaW9uczsgfQogCiBwcml2YXRl
OgotICAgIEdQVUNvbXB1dGVQaXBlbGluZShQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZVNtYXJ0UHRy
JiYsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyk7CisgICAgR1BVQ29tcHV0ZVBpcGVsaW5lKFBs
YXRmb3JtQ29tcHV0ZVBpcGVsaW5lU21hcnRQdHImJiwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25z
LCBjb25zdCBSZWZQdHI8R1BVUGlwZWxpbmVMYXlvdXQ+Jik7CiAKICAgICBQbGF0Zm9ybUNvbXB1
dGVQaXBlbGluZVNtYXJ0UHRyIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmU7CiAgICAgV0hMU0w6
OkNvbXB1dGVEaW1lbnNpb25zIG1fY29tcHV0ZURpbWVuc2lvbnMgeyAwLCAwLCAwIH07CisKKyAg
ICAvLyBQcmVzZXJ2ZWQgZm9yIFdlYiBJbnNwZWN0b3IgcmVjb21waWxhdGlvbi4KKyAgICBSZWZQ
dHI8R1BVUGlwZWxpbmVMYXlvdXQ+IG1fbGF5b3V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0dQVVBJUEVMSU5FKFdlYkNvcmU6OkdQVUNv
bXB1dGVQaXBlbGluZSwgaXNDb21wdXRlUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVRXJyb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVy
cm9yLmNwcAppbmRleCBiYjI4ZDRmYzEyYzhhMjQ3MjhjZTIwNjViZDI3MjFkYmFmODJiZmVmLi5k
MGYzYTk4N2NiMmI3NjA1NzhkOGNhZjkwYjQ4MDA4YTFhYWU2ZGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRXJyb3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvci5jcHAKQEAgLTM2LDggKzM2
LDEwIEBAIEdQVUVycm9yIGNyZWF0ZUVycm9yKEdQVUVycm9yRmlsdGVyIGZpbHRlciwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIHN3aXRjaCAoZmlsdGVyKSB7CiAgICAgY2FzZSBHUFVF
cnJvckZpbHRlcjo6T3V0T2ZNZW1vcnk6CisgICAgICAgIFdURkxvZ0Fsd2F5cygiY2FzZSBHUFVF
cnJvckZpbHRlcjo6T3V0T2ZNZW1vcnk6Iik7CiAgICAgICAgIHJldHVybiBHUFVFcnJvcihSZWZQ
dHI8R1BVT3V0T2ZNZW1vcnlFcnJvcj4oR1BVT3V0T2ZNZW1vcnlFcnJvcjo6Y3JlYXRlKCkpKTsK
ICAgICBjYXNlIEdQVUVycm9yRmlsdGVyOjpWYWxpZGF0aW9uOgorICAgICAgICBXVEZMb2dBbHdh
eXMoImNhc2UgR1BVRXJyb3JGaWx0ZXI6OlZhbGlkYXRpb246ICVzIiwgbWVzc2FnZS51dGY4KCku
ZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIEdQVUVycm9yKFJlZlB0cjxHUFVWYWxpZGF0aW9uRXJy
b3I+KEdQVVZhbGlkYXRpb25FcnJvcjo6Y3JlYXRlKG1lc3NhZ2UpKSk7CiAgICAgY2FzZSBHUFVF
cnJvckZpbHRlcjo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43Yzg4MTY1NTQzNTcxMjMxMDViNmU5ZTdjODgzMzQxZmMyYmQ4MjZkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBp
cGVsaW5lLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0dQVVBpcGVsaW5lOjp+R1BVUGlwZWxpbmUoKSA9IGRlZmF1
bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlw
ZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGlu
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk0MmVlOGQ3YTNiN2VmZjE5OTA2ZTk1MDA4MTBmMzQ0MmMzY2ViNDUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVUGlwZWxpbmUuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEdQVVBpcGVsaW5lPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R1BVUGlwZWxpbmUoKTsK
KworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfR1BVUElQRUxJTkUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUp
IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1lKSBcCisgICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkdQVVBpcGVsaW5lJiBwaXBlbGluZSkg
eyByZXR1cm4gcGlwZWxpbmUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RU5EKCkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxl
U3RhZ2VEZXNjcmlwdG9yLmgKaW5kZXggMGVlMWFmYTIzYTgzMzY3NjZmODYwMjgzNDI5NmQzMDM1
YmZjY2RjOS4uMjdjMDYyOGVmN2EzMDM1ZTU5MjIxZmVkOTg3ZDVmNTdkYjA3YWQxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJs
ZVN0YWdlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaApAQCAtMzgsMTMgKzM4LDEzIEBA
IHN0cnVjdCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3JCYXNlIHsKIH07CiAKIHN0cnVj
dCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3JCYXNlIHsKLSAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IoUmVmPGNv
bnN0IEdQVVNoYWRlck1vZHVsZT4mJiBtb2R1bGUsIGNvbnN0IEdQVVByb2dyYW1tYWJsZVN0YWdl
RGVzY3JpcHRvckJhc2UmIGJhc2UpCisgICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
KFJlZjxHUFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlLCBjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFn
ZURlc2NyaXB0b3JCYXNlJiBiYXNlKQogICAgICAgICA6IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvckJhc2UoYmFzZSkKICAgICAgICAgLCBtb2R1bGUgeyBXVEZNb3ZlKG1vZHVsZSkgfQog
ICAgIHsKICAgICB9CiAKLSAgICBSZWY8Y29uc3QgR1BVU2hhZGVyTW9kdWxlPiBtb2R1bGU7Cisg
ICAgUmVmPEdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVJlbmRlclBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVUmVuZGVyUGlwZWxpbmUuaAppbmRleCA4M2M4ZTFkOWQ4MThlMWRjN2E3YjI0MjA3MjhlNWM5
MDY4ZDYwYzA1Li5hYzI1ODNmNTc4ZTJlZmRhODFhNGVkYzAzMDNjNTc5ODBhNjdmZjRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVuZGVyUGlw
ZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUmVu
ZGVyUGlwZWxpbmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAor
I2luY2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VE
ZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAg
LTQ2LDEwICs0OCwxNiBAQCBjbGFzcyBHUFVFcnJvclNjb3BlczsKIHVzaW5nIFBsYXRmb3JtUmVu
ZGVyUGlwZWxpbmUgPSBNVExSZW5kZXJQaXBlbGluZVN0YXRlOwogdXNpbmcgUGxhdGZvcm1SZW5k
ZXJQaXBlbGluZVNtYXJ0UHRyID0gUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+Owog
Ci1jbGFzcyBHUFVSZW5kZXJQaXBlbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVJlbmRlclBp
cGVsaW5lPiB7CitjbGFzcyBHUFVSZW5kZXJQaXBlbGluZSBmaW5hbCA6IHB1YmxpYyBHUFVQaXBl
bGluZSB7CiBwdWJsaWM6CisgICAgdmlydHVhbCB+R1BVUmVuZGVyUGlwZWxpbmUoKTsKKwogICAg
IHN0YXRpYyBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IHRyeUNyZWF0ZShjb25zdCBHUFVEZXZp
Y2UmLCBjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBHUFVFcnJvclNjb3BlcyYp
OwogCisgICAgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQor
CisgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yJiYgdmVydGV4U3RhZ2UsIE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdl
RGVzY3JpcHRvcj4mJiBmcmFnbWVudFN0YWdlKTsKKwogI2lmIFVTRShNRVRBTCkKICAgICBNVExE
ZXB0aFN0ZW5jaWxTdGF0ZSAqZGVwdGhTdGVuY2lsU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rl
cHRoU3RlbmNpbFN0YXRlLmdldCgpOyB9CiAjZW5kaWYKQEAgLTU5LDE1ICs2NywyMSBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAjaWYgVVNFKE1FVEFMKQotICAgIEdQVVJlbmRlclBpcGVsaW5lKFJl
dGFpblB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4mJiwgUGxhdGZvcm1SZW5kZXJQaXBlbGluZVNt
YXJ0UHRyJiYsIEdQVVByaW1pdGl2ZVRvcG9sb2d5LCBPcHRpb25hbDxHUFVJbmRleEZvcm1hdD4p
OworICAgIEdQVVJlbmRlclBpcGVsaW5lKFJldGFpblB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4m
JiwgUGxhdGZvcm1SZW5kZXJQaXBlbGluZVNtYXJ0UHRyJiYsIEdQVVByaW1pdGl2ZVRvcG9sb2d5
LCBPcHRpb25hbDxHUFVJbmRleEZvcm1hdD4sIGNvbnN0IFJlZlB0cjxHUFVQaXBlbGluZUxheW91
dD4mLCBjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3JCYXNlJik7CiAKICAgICBSZXRh
aW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+IG1fZGVwdGhTdGVuY2lsU3RhdGU7CiAjZW5kaWYg
Ly8gVVNFKE1FVEFMKQogICAgIFBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTbWFydFB0ciBtX3BsYXRm
b3JtUmVuZGVyUGlwZWxpbmU7CiAgICAgR1BVUHJpbWl0aXZlVG9wb2xvZ3kgbV9wcmltaXRpdmVU
b3BvbG9neTsKICAgICBPcHRpb25hbDxHUFVJbmRleEZvcm1hdD4gbV9pbmRleEZvcm1hdDsKKwor
ICAgIC8vIFByZXNlcnZlZCBmb3IgV2ViIEluc3BlY3RvciByZWNvbXBpbGF0aW9uLgorICAgIFJl
ZlB0cjxHUFVQaXBlbGluZUxheW91dD4gbV9sYXlvdXQ7CisgICAgR1BVUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yQmFzZSBtX3JlbmRlckRlc2NyaXB0b3JCYXNlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0dQVVBJUEVMSU5FKFdlYkNvcmU6
OkdQVVJlbmRlclBpcGVsaW5lLCBpc1JlbmRlclBpcGVsaW5lKCkpCisKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCmluZGV4
IDdkOGY4YjI4MThmMTc4NDUzODE3ZWRmNjIzOTgzNTE5MjY1YjIwY2YuLmMyMDAwYTFlOTYxMzBm
YTQzYzQ1N2JhMWZiNTFlOWZjODU3Yzc4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBp
cGVsaW5lTWV0YWwubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaCIKICNpbXBvcnQgIkdQVURldmljZS5oIgogI2ltcG9ydCAiR1BVRXJy
b3JTY29wZXMuaCIKKyNpbXBvcnQgIkdQVVBpcGVsaW5lTGF5b3V0LmgiCiAjaW1wb3J0ICJHUFVQ
aXBlbGluZU1ldGFsQ29udmVydExheW91dC5oIgogI2ltcG9ydCAiV0hMU0xQcmVwYXJlLmgiCiAj
aW1wb3J0IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTk0LDE1ICsxOTUsMzIgQEAgUmVmUHRyPEdQVUNv
bXB1dGVQaXBlbGluZT4gR1BVQ29tcHV0ZVBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2
aWNlJiBkZXZpY2UKICAgICBpZiAoIWNyZWF0ZVJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUNvbXB1dGVQaXBlbGluZShXVEZNb3Zl
KGNyZWF0ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSksIGNyZWF0ZVJlc3VsdC0+Y29tcHV0ZURpbWVu
c2lvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUNvbXB1dGVQaXBlbGluZShXVEZN
b3ZlKGNyZWF0ZVJlc3VsdC0+cGlwZWxpbmVTdGF0ZSksIGNyZWF0ZVJlc3VsdC0+Y29tcHV0ZURp
bWVuc2lvbnMsIGRlc2NyaXB0b3IubGF5b3V0KSk7CiB9CiAKLUdQVUNvbXB1dGVQaXBlbGluZTo6
R1BVQ29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxpbmVTdGF0ZT4mJiBw
aXBlbGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1lbnNpb25zKQotICAg
IDogbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKK0dQVUNvbXB1
dGVQaXBlbGluZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKFJldGFpblB0cjxNVExDb21wdXRlUGlwZWxp
bmVTdGF0ZT4mJiBwaXBlbGluZSwgV0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zIGNvbXB1dGVEaW1l
bnNpb25zLCBjb25zdCBSZWZQdHI8R1BVUGlwZWxpbmVMYXlvdXQ+JiBsYXlvdXQpCisgICAgOiBH
UFVQaXBlbGluZSgpCisgICAgLCBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKFdURk1vdmUocGlw
ZWxpbmUpKQogICAgICwgbV9jb21wdXRlRGltZW5zaW9ucyhjb21wdXRlRGltZW5zaW9ucykKKyAg
ICAsIG1fbGF5b3V0KGxheW91dCkKIHsKIH0KIAorR1BVQ29tcHV0ZVBpcGVsaW5lOjp+R1BVQ29t
cHV0ZVBpcGVsaW5lKCkgPSBkZWZhdWx0OworCitib29sIEdQVUNvbXB1dGVQaXBlbGluZTo6cmVj
b21waWxlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3ImJiBjb21wdXRlU3RhZ2UpCit7CisgICAgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ciBkZXNjcmlwdG9yKG1ha2VSZWZQdHIobV9sYXlvdXQuZ2V0KCkpLCBXVEZNb3ZlKGNvbXB1dGVT
dGFnZSkpOworICAgIGF1dG8gZXJyb3JTY29wZXMgPSBHUFVFcnJvclNjb3Blczo6Y3JlYXRlKFtd
IChHUFVFcnJvciYmKSB7IH0pOworICAgIGlmIChhdXRvIGNyZWF0ZVJlc3VsdCA9IHRyeUNyZWF0
ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGRldmljZSwgZGVzY3JpcHRvciwgZXJyb3JTY29wZXMp
KSB7CisgICAgICAgIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUgPSBXVEZNb3ZlKGNyZWF0ZVJl
c3VsdC0+cGlwZWxpbmVTdGF0ZSk7CisgICAgICAgIG1fY29tcHV0ZURpbWVuc2lvbnMgPSBjcmVh
dGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNpb25zOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFs
Lm1tCmluZGV4IDI4MjQwODc0OTg5NzEwNGY4N2JiMDZhOTVmY2JiN2I2NzY4OWIzOGEuLjA0NGYx
ZmViNmM1N2YwYzI4NTM3ZWE1MzRiYzI0YzQ1NzliMDJmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFs
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVS
ZW5kZXJQaXBlbGluZU1ldGFsLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJHUFVFcnJv
clNjb3Blcy5oIgogI2ltcG9ydCAiR1BVTGltaXRzLmgiCiAjaW1wb3J0ICJHUFVQaXBlbGluZU1l
dGFsQ29udmVydExheW91dC5oIgorI2ltcG9ydCAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
LmgiCiAjaW1wb3J0ICJHUFVVdGlscy5oIgogI2ltcG9ydCAiV0hMU0xQcmVwYXJlLmgiCiAjaW1w
b3J0ICJXSExTTFZlcnRleEJ1ZmZlckluZGV4Q2FsY3VsYXRvci5oIgpAQCAtNDgzLDcgKzQ4NCw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yPiBjb252ZXJ0
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yKGNvCiAgICAgcmV0dXJuIG10bERlc2NyaXB0b3I7CiB9
CiAKLXN0YXRpYyBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gdHJ5Q3JlYXRlTXRs
UmVuZGVyUGlwZWxpbmVTdGF0ZShjb25zdCBHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IsIGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JT
Y29wZXMpCitzdGF0aWMgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IHRyeUNyZWF0
ZU10bFJlbmRlclBpcGVsaW5lU3RhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgR1BVRXJyb3JTY29wZXMmIGVy
cm9yU2NvcGVzKQogewogICAgIGlmICghZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkpIHsKICAgICAg
ICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKCJJbnZhbGlkIEdQVURldmljZSEi
KTsKQEAgLTUyMiwyMSArNTIzLDM4IEBAIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4gR1BVUmVu
ZGVyUGlwZWxpbmU6OnRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwKIAogICAgIC8v
IEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4Mzg3IGRl
cHRoU3RlbmNpbEF0dGFjaG1lbnREZXNjcmlwdG9yIGlzbid0IGltcGxlbWVudGVkIHlldCBmb3Ig
V0hMU0wgY29tcGlsZXIuCiAKLSAgICBhdXRvIHBpcGVsaW5lID0gdHJ5Q3JlYXRlTXRsUmVuZGVy
UGlwZWxpbmVTdGF0ZShkZXNjcmlwdG9yLCBkZXZpY2UsIGVycm9yU2NvcGVzKTsKKyAgICBhdXRv
IHBpcGVsaW5lID0gdHJ5Q3JlYXRlTXRsUmVuZGVyUGlwZWxpbmVTdGF0ZShkZXZpY2UsIGRlc2Ny
aXB0b3IsIGVycm9yU2NvcGVzKTsKICAgICBpZiAoIXBpcGVsaW5lKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGlwZWxpbmUoV1RG
TW92ZShkZXB0aFN0ZW5jaWwpLCBXVEZNb3ZlKHBpcGVsaW5lKSwgZGVzY3JpcHRvci5wcmltaXRp
dmVUb3BvbG9neSwgZGVzY3JpcHRvci52ZXJ0ZXhJbnB1dC5pbmRleEZvcm1hdCkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgR1BVUmVuZGVyUGlwZWxpbmUoV1RGTW92ZShkZXB0aFN0ZW5jaWwp
LCBXVEZNb3ZlKHBpcGVsaW5lKSwgZGVzY3JpcHRvci5wcmltaXRpdmVUb3BvbG9neSwgZGVzY3Jp
cHRvci52ZXJ0ZXhJbnB1dC5pbmRleEZvcm1hdCwgZGVzY3JpcHRvci5sYXlvdXQsIGRlc2NyaXB0
b3IpKTsKIH0KIAotR1BVUmVuZGVyUGlwZWxpbmU6OkdQVVJlbmRlclBpcGVsaW5lKFJldGFpblB0
cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4mJiBkZXB0aFN0ZW5jaWwsIFJldGFpblB0cjxNVExSZW5k
ZXJQaXBlbGluZVN0YXRlPiYmIHBpcGVsaW5lLCBHUFVQcmltaXRpdmVUb3BvbG9neSB0b3BvbG9n
eSwgT3B0aW9uYWw8R1BVSW5kZXhGb3JtYXQ+IGZvcm1hdCkKLSAgICA6IG1fZGVwdGhTdGVuY2ls
U3RhdGUoV1RGTW92ZShkZXB0aFN0ZW5jaWwpKQorR1BVUmVuZGVyUGlwZWxpbmU6OkdQVVJlbmRl
clBpcGVsaW5lKFJldGFpblB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4mJiBkZXB0aFN0ZW5jaWws
IFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiYmIHBpcGVsaW5lLCBHUFVQcmltaXRp
dmVUb3BvbG9neSB0b3BvbG9neSwgT3B0aW9uYWw8R1BVSW5kZXhGb3JtYXQ+IGZvcm1hdCwgY29u
c3QgUmVmUHRyPEdQVVBpcGVsaW5lTGF5b3V0PiYgbGF5b3V0LCBjb25zdCBHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3JCYXNlJiByZW5kZXJEZXNjcmlwdG9yQmFzZSkKKyAgICA6IEdQVVBpcGVs
aW5lKCkKKyAgICAsIG1fZGVwdGhTdGVuY2lsU3RhdGUoV1RGTW92ZShkZXB0aFN0ZW5jaWwpKQog
ICAgICwgbV9wbGF0Zm9ybVJlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQogICAgICwg
bV9wcmltaXRpdmVUb3BvbG9neSh0b3BvbG9neSkKICAgICAsIG1faW5kZXhGb3JtYXQoZm9ybWF0
KQorICAgICwgbV9sYXlvdXQobGF5b3V0KQorICAgICwgbV9yZW5kZXJEZXNjcmlwdG9yQmFzZShy
ZW5kZXJEZXNjcmlwdG9yQmFzZSkKIHsKIH0KIAorR1BVUmVuZGVyUGlwZWxpbmU6On5HUFVSZW5k
ZXJQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBHUFVSZW5kZXJQaXBlbGluZTo6cmVjb21w
aWxlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0
b3ImJiB2ZXJ0ZXhTdGFnZSwgT3B0aW9uYWw8R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
PiYmIGZyYWdtZW50U3RhZ2UpCit7CisgICAgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIGRl
c2NyaXB0b3IobWFrZVJlZlB0cihtX2xheW91dC5nZXQoKSksIFdURk1vdmUodmVydGV4U3RhZ2Up
LCBXVEZNb3ZlKGZyYWdtZW50U3RhZ2UpLCBtX3JlbmRlckRlc2NyaXB0b3JCYXNlKTsKKyAgICBh
dXRvIGVycm9yU2NvcGVzID0gR1BVRXJyb3JTY29wZXM6OmNyZWF0ZShbXSAoR1BVRXJyb3ImJikg
eyB9KTsKKyAgICBpZiAoYXV0byBwaXBlbGluZSA9IHRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5l
U3RhdGUoZGV2aWNlLCBkZXNjcmlwdG9yLCBlcnJvclNjb3BlcykpIHsKKyAgICAgICAgbV9wbGF0
Zm9ybVJlbmRlclBpcGVsaW5lID0gV1RGTW92ZShwaXBlbGluZSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzCmluZGV4IGQ4ZDEyNTFhMDQyMDk2MWMzZjZjOWU2YzhlMzU4MjdkODhmYmU2OTAuLjJj
MTNlNzIxOThiMzRlYTc2YzI4NWQ1ZDk3NTc3NzQxZDQwOWNkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcwpAQCAtMjY2LDYgKzI2Niw5IEBAIGxvY2FsaXplZFN0cmluZ3NbIkNv
bXBvc2l0ZWQiXSA9ICJDb21wb3NpdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbXByZXNzZWQi
XSA9ICJDb21wcmVzc2VkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbXByZXNzaW9uIl0gPSAiQ29t
cHJlc3Npb24iOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcHJlc3Npb246Il0gPSAiQ29tcHJlc3Np
b246IjsKK2xvY2FsaXplZFN0cmluZ3NbIkNvbXB1dGUiXSA9ICJDb21wdXRlIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIkNvbXB1dGUgUGlwZWxpbmUgJWQiXSA9ICJDb21wdXRlIFBpcGVsaW5lICVkIjsK
K2xvY2FsaXplZFN0cmluZ3NbIkNvbXB1dGUgU2hhZGVyIl0gPSAiQ29tcHV0ZSBTaGFkZXIiOwog
bG9jYWxpemVkU3RyaW5nc1siQ29tcHV0ZWQiXSA9ICJDb21wdXRlZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJDb25kaXRpb24iXSA9ICJDb25kaXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siQ29uZGl0
aW9uYWwgZXhwcmVzc2lvbiJdID0gIkNvbmRpdGlvbmFsIGV4cHJlc3Npb24iOwpAQCAtNDYzLDYg
KzQ2Niw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkVuc3VyZSB0aGF0IG9ubHkgb25lIG1haW4gY29u
dGVudCBzZWN0aW9uIGlzIHVzZWQgb24gdGhlIHBhZ2UuCiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1
cmUgdGhhdCB2YWx1ZXMgZm9yIFx1MDAyMiVzXHUwMDIyIGFyZSB2YWxpZC4iXSA9ICJFbnN1cmUg
dGhhdCB2YWx1ZXMgZm9yIFx1MDAyMiVzXHUwMDIyIGFyZSB2YWxpZC4iOwogbG9jYWxpemVkU3Ry
aW5nc1siRW50ZXJlZCBGdWxsLVNjcmVlbiBNb2RlIl0gPSAiRW50ZXJlZCBGdWxsLVNjcmVlbiBN
b2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVudGlyZSBSZWNvcmRpbmciXSA9ICJFbnRpcmUgUmVj
b3JkaW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIkVudHJ5IHBvaW50OiAiXSA9ICJFbnRyeSBwb2lu
dDogIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVycm9yIl0gPSAiRXJyb3IiOwogbG9jYWxpemVkU3Ry
aW5nc1siRXJyb3I6ICJdID0gIkVycm9yOiAiOwogbG9jYWxpemVkU3RyaW5nc1siRXJyb3JzIl0g
PSAiRXJyb3JzIjsKQEAgLTg4MCw2ICs4ODQsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmUg
V2F0Y2ggRXhwcmVzc2lvbiJdID0gIlJlbW92ZSBXYXRjaCBFeHByZXNzaW9uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlbW92ZSBwcm9iZSJdID0gIlJlbW92ZSBwcm9iZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZW1vdmUgdGhpcyBicmVha3BvaW50IGFjdGlvbiJdID0gIlJlbW92ZSB0aGlzIGJyZWFr
cG9pbnQgYWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZWQgZGVzY2VuZGFudCAiXSA9
ICJSZW1vdmVkIGRlc2NlbmRhbnQgIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJlbmRlciBQaXBlbGlu
ZSAlZCJdID0gIlJlbmRlciBQaXBlbGluZSAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW5kZXJp
bmcgRnJhbWVzIl0gPSAiUmVuZGVyaW5nIEZyYW1lcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXBl
YXRpbmcgTGluZWFyIEdyYWRpZW50Il0gPSAiUmVwZWF0aW5nIExpbmVhciBHcmFkaWVudCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZXBlYXRpbmcgUmFkaWFsIEdyYWRpZW50Il0gPSAiUmVwZWF0aW5n
IFJhZGlhbCBHcmFkaWVudCI7CkBAIC05OTYsNyArMTAwMSw2IEBAIGxvY2FsaXplZFN0cmluZ3Nb
IlNlc3Npb24gU3RvcmFnZSJdID0gIlNlc3Npb24gU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJTZXQgdG8gQXV0b21hdGljYWxseSBDb250aW51ZSJdID0gIlNldCB0byBBdXRvbWF0aWNhbGx5
IENvbnRpbnVlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNldHRlciJdID0gIlNldHRlciI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJTZXR0aW5ncyJdID0gIlNldHRpbmdzIjsKLWxvY2FsaXplZFN0cmluZ3Nb
IlNoYWRlciJdID0gIlNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaGFkZXIgUHJvZ3JhbXMi
XSA9ICJTaGFkZXIgUHJvZ3JhbXMiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZG93IENvbnRlbnQi
XSA9ICJTaGFkb3cgQ29udGVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaGFkb3cgQ29udGVudCAo
JXMpIl0gPSAiU2hhZG93IENvbnRlbnQgKCVzKSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdl
ci5qcwppbmRleCAzODljYjcxMzA2ZDUzNjhhMzUyN2VlODZjMzhkMjA5ZTE1YmY1ODlkLi4zOGYw
MWJiNjY2N2VjMDA4MzA3ZjBlM2Y1MmY0MmRmZTJiZTFmNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Nh
bnZhc01hbmFnZXIuanMKQEAgLTIzNCw3ICsyMzQsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xh
c3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYW52YXMuZW5hYmxl
RXh0ZW5zaW9uKGV4dGVuc2lvbik7CiAgICAgfQogCi0gICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFz
SWRlbnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIpCisgICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFz
SWRlbnRpZmllciwgcHJvZ3JhbUlkZW50aWZpZXIsIHByb2dyYW1UeXBlKQogICAgIHsKICAgICAg
ICAgbGV0IGNhbnZhcyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50
aWZpZXIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChjYW52YXMpOwpAQCAtMjQzLDcgKzI0Mywx
MSBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRp
Zmllck1hcC5oYXMocHJvZ3JhbUlkZW50aWZpZXIpLCBgU2hhZGVyUHJvZ3JhbSBhbHJlYWR5IGV4
aXN0cyB3aXRoIGlkICR7cHJvZ3JhbUlkZW50aWZpZXJ9LmApOwogCi0gICAgICAgIGxldCBwcm9n
cmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZpZXIsIGNhbnZhcyk7Cisg
ICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBwcm9ncmFtVHlwZWAgZGlkIG5vdCBl
eGlzdCB5ZXQuCisgICAgICAgIGlmICghcHJvZ3JhbVR5cGUpCisgICAgICAgICAgICBwcm9ncmFt
VHlwZSA9IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOworCisgICAgICAgIGxl
dCBwcm9ncmFtID0gbmV3IFdJLlNoYWRlclByb2dyYW0ocHJvZ3JhbUlkZW50aWZpZXIsIHByb2dy
YW1UeXBlLCBjYW52YXMpOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1h
cC5zZXQocHJvZ3JhbS5pZGVudGlmaWVyLCBwcm9ncmFtKTsKIAogICAgICAgICBjYW52YXMuc2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24uYWRkKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKaW5kZXggYjkyOWYwNjIw
ZmFhOWNkMmJmYjE0ZGZhZjU3OTExMTk4NDU0ZjM2NC4uN2Q1NmVjMTcxNmZhZTIyM2RhOTY2Zjg2
MDQwZjE2ZGFkZjQyMWY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCkBAIC00NSw3ICs0NSw3IEBAIFdJLkNhbnZhcyA9
IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9zaGFkZXJQcm9n
cmFtQ29sbGVjdGlvbiA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtQ29sbGVjdGlvbjsKICAgICAgICAg
dGhpcy5fcmVjb3JkaW5nQ29sbGVjdGlvbiA9IG5ldyBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uOwog
Ci0gICAgICAgIHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlciA9IDE7CisgICAg
ICAgIHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlciA9IG51bGw7CiAKICAgICAg
ICAgdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlID0gbnVsbDsKIApAQCAtNDA5LDExICs0MDksMTUg
QEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9w
cGVkLCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXJ9KTsKICAgICB9CiAKLSAgICBuZXh0U2hh
ZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIoKQorICAgIG5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51
bWJlckZvclByb2dyYW1UeXBlKHByb2dyYW1UeXBlKQogICAgIHsKICAgICAgICAgLy8gQ2FsbGVk
IGZyb20gV0kuU2hhZGVyUHJvZ3JhbS4KIAotICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFNoYWRl
clByb2dyYW1EaXNwbGF5TnVtYmVyKys7CisgICAgICAgIGlmICghdGhpcy5fbmV4dFNoYWRlclBy
b2dyYW1EaXNwbGF5TnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1E
aXNwbGF5TnVtYmVyID0ge307CisKKyAgICAgICAgdGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNw
bGF5TnVtYmVyW3Byb2dyYW1UeXBlXSA9ICh0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlO
dW1iZXJbcHJvZ3JhbVR5cGVdIHx8IDApICsgMTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25leHRT
aGFkZXJQcm9ncmFtRGlzcGxheU51bWJlcltwcm9ncmFtVHlwZV07CiAgICAgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRl
clByb2dyYW0uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
U2hhZGVyUHJvZ3JhbS5qcwppbmRleCBjMWVkOWM4YWM3ZmM0MjA3ZTdiODBmZDcwYzIwZjc2OGYw
ODFkMTY5Li5jOWI2ZTAzMjFmMjIwYjdjYTJjMDUzNDlmYTA2NTEzMjI1MjhlOWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJv
Z3JhbS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
U2hhZGVyUHJvZ3JhbS5qcwpAQCAtMjUsMjcgKzI1LDgzIEBACiAKIFdJLlNoYWRlclByb2dyYW0g
PSBjbGFzcyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMgV0kuT2JqZWN0CiB7Ci0gICAgY29uc3RydWN0
b3IoaWRlbnRpZmllciwgY2FudmFzKQorICAgIGNvbnN0cnVjdG9yKGlkZW50aWZpZXIsIHByb2dy
YW1UeXBlLCBjYW52YXMpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChpZGVudGlmaWVy
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoT2JqZWN0LnZhbHVlcyhTaGFkZXJQcm9ncmFtLlBy
b2dyYW1UeXBlKS5pbmNsdWRlcyhwcm9ncmFtVHlwZSkpOwogICAgICAgICBjb25zb2xlLmFzc2Vy
dChjYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMpOworICAgICAgICBjb25zb2xlLmFzc2VydChT
aGFkZXJQcm9ncmFtLmNvbnRleHRUeXBlU3VwcG9ydHNQcm9ncmFtVHlwZShjYW52YXMuY29udGV4
dFR5cGUsIHByb2dyYW1UeXBlKSk7CiAKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0aGlz
Ll9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICAgICAgdGhpcy5fcHJvZ3JhbVR5cGUgPSBw
cm9ncmFtVHlwZTsKICAgICAgICAgdGhpcy5fY2FudmFzID0gY2FudmFzOwotICAgICAgICB0aGlz
Ll91bmlxdWVEaXNwbGF5TnVtYmVyID0gY2FudmFzLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51
bWJlcigpOwogICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGZhbHNlOwogICAgIH0KIAorICAgIC8v
IFN0YXRpYworCisgICAgc3RhdGljIGNvbnRleHRUeXBlU3VwcG9ydHNQcm9ncmFtVHlwZShjb250
ZXh0VHlwZSwgcHJvZ3JhbVR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKGNvbnRleHRUeXBl
KSB7CisgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgorICAgICAgICBj
YXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CisgICAgICAgICAgICByZXR1cm4gcHJv
Z3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOworCisgICAgICAg
IGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVToKKyAgICAgICAgICAgIHJldHVybiBw
cm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlCisgICAgICAg
ICAgICAgICAgfHwgcHJvZ3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVu
ZGVyOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0YXRpYyBwcm9ncmFtVHlwZVN1cHBvcnRzU2hhZGVy
VHlwZShwcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocHJv
Z3JhbVR5cGUpIHsKKyAgICAgICAgY2FzZSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1
dGU6CisgICAgICAgICAgICByZXR1cm4gc2hhZGVyVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5TaGFk
ZXJUeXBlLkNvbXB1dGU7CisKKyAgICAgICAgY2FzZSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBl
LlJlbmRlcjoKKyAgICAgICAgICAgIHJldHVybiBzaGFkZXJUeXBlID09PSBTaGFkZXJQcm9ncmFt
LlNoYWRlclR5cGUuRnJhZ21lbnQKKyAgICAgICAgICAgICAgICB8fCBzaGFkZXJUeXBlID09PSBT
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4OworICAgICAgICB9CisKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIC8vIFB1
YmxpYwogCiAgICAgZ2V0IGlkZW50aWZpZXIoKSB7IHJldHVybiB0aGlzLl9pZGVudGlmaWVyOyB9
CisgICAgZ2V0IHByb2dyYW1UeXBlKCkgeyByZXR1cm4gdGhpcy5fcHJvZ3JhbVR5cGU7IH0KICAg
ICBnZXQgY2FudmFzKCkgeyByZXR1cm4gdGhpcy5fY2FudmFzOyB9CiAKICAgICBnZXQgZGlzcGxh
eU5hbWUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJQcm9ncmFtICVkIiku
Zm9ybWF0KHRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIpOworICAgICAgICBsZXQgZm9ybWF0ID0g
bnVsbDsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9jYW52YXMuY29udGV4dFR5cGUpIHsKKyAgICAg
ICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0w6CisgICAgICAgIGNhc2UgV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdMMjoKKyAgICAgICAgICAgIGZvcm1hdCA9IFdJLlVJU3RyaW5n
KCJQcm9ncmFtICVkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR1BVOgorICAgICAgICAgICAgc3dpdGNoICh0aGlzLl9wcm9ncmFt
VHlwZSkgeworICAgICAgICAgICAgY2FzZSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1
dGU6CisgICAgICAgICAgICAgICAgZm9ybWF0ID0gV0kuVUlTdHJpbmcoIkNvbXB1dGUgUGlwZWxp
bmUgJWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU2hhZGVy
UHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXI6CisgICAgICAgICAgICAgICAgZm9ybWF0ID0gV0ku
VUlTdHJpbmcoIlJlbmRlciBQaXBlbGluZSAlZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY29u
c29sZS5hc3NlcnQoZm9ybWF0KTsKKyAgICAgICAgaWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TnVt
YmVyKQorICAgICAgICAgICAgdGhpcy5fdW5pcXVlRGlzcGxheU51bWJlciA9IHRoaXMuX2NhbnZh
cy5uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXJGb3JQcm9ncmFtVHlwZSh0aGlzLl9wcm9n
cmFtVHlwZSk7CisgICAgICAgIHJldHVybiBmb3JtYXQuZm9ybWF0KHRoaXMuX3VuaXF1ZURpc3Bs
YXlOdW1iZXIpOwogICAgIH0KIAogICAgIGdldCBkaXNhYmxlZCgpCkBAIC01NSw2ICsxMTEsMTIg
QEAgV0kuU2hhZGVyUHJvZ3JhbSA9IGNsYXNzIFNoYWRlclByb2dyYW0gZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgIHNldCBkaXNhYmxlZChkaXNhYmxlZCkKICAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuX3Byb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJl
bmRlcik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisKKyAgICAgICAgaWYgKHRoaXMu
X2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSkKKyAg
ICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT09IGRpc2Fi
bGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NSw2NyArMTI3LDU3IEBAIFdJLlNoYWRl
clByb2dyYW0gPSBjbGFzcyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFNoYWRlclByb2dyYW0uRXZlbnQuRGlzYWJs
ZWRDaGFuZ2VkKTsKICAgICB9CiAKLSAgICByZXF1ZXN0VmVydGV4U2hhZGVyU291cmNlKGNhbGxi
YWNrKQorICAgIHJlcXVlc3RTaGFkZXJTb3VyY2Uoc2hhZGVyVHlwZSwgY2FsbGJhY2spCiAgICAg
ewotICAgICAgICB0aGlzLl9yZXF1ZXN0U2hhZGVyU291cmNlKENhbnZhc0FnZW50LlNoYWRlclR5
cGUuVmVydGV4LCBjYWxsYmFjayk7Ci0gICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChPYmpl
Y3QudmFsdWVzKFNoYWRlclByb2dyYW0uU2hhZGVyVHlwZSkuaW5jbHVkZXMoc2hhZGVyVHlwZSkp
OworICAgICAgICBjb25zb2xlLmFzc2VydChTaGFkZXJQcm9ncmFtLnByb2dyYW1UeXBlU3VwcG9y
dHNTaGFkZXJUeXBlKHRoaXMuX3Byb2dyYW1UeXBlLCBzaGFkZXJUeXBlKSk7CiAKLSAgICByZXF1
ZXN0RnJhZ21lbnRTaGFkZXJTb3VyY2UoY2FsbGJhY2spCi0gICAgewotICAgICAgICB0aGlzLl9y
ZXF1ZXN0U2hhZGVyU291cmNlKENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21lbnQsIGNhbGxi
YWNrKTsKLSAgICB9Ci0KLSAgICB1cGRhdGVWZXJ0ZXhTaGFkZXIoc291cmNlKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fdXBkYXRlU2hhZGVyKENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LCBz
b3VyY2UpOwotICAgIH0KLQotICAgIHVwZGF0ZUZyYWdtZW50U2hhZGVyKHNvdXJjZSkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihDYW52YXNBZ2VudC5TaGFkZXJUeXBlLkZyYWdt
ZW50LCBzb3VyY2UpOwotICAgIH0KLQotICAgIHNob3dIaWdobGlnaHQoKQotICAgIHsKLSAgICAg
ICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSB0cnVlOwotICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFk
ZXJQcm9ncmFtSGlnaGxpZ2h0ZWQodGhpcy5faWRlbnRpZmllciwgaGlnaGxpZ2h0ZWQsIChlcnJv
cikgPT4gewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIWVycm9yLCBlcnJvcik7Ci0gICAg
ICAgIH0pOwotICAgIH0KLQotICAgIGhpZGVIaWdobGlnaHQoKQotICAgIHsKLSAgICAgICAgY29u
c3QgaGlnaGxpZ2h0ZWQgPSBmYWxzZTsKLSAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJv
Z3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVkLCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwotICAgICAgICB9
KTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfcmVxdWVzdFNoYWRlclNvdXJjZShz
aGFkZXJUeXBlLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RT
aGFkZXJTb3VyY2UodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yLCBjb250ZW50
KSA9PiB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGBjb250ZW50YCB3YXMg
cmVuYW1lZCB0byBgc291cmNlYC4KKyAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNv
dXJjZSh0aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCAoZXJyb3IsIHNvdXJjZSkgPT4gewog
ICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJu
YWxFcnJvcihlcnJvcik7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjYWxsYmFjayhj
b250ZW50KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHNvdXJjZSk7CiAgICAgICAgIH0pOwogICAg
IH0KIAotICAgIF91cGRhdGVTaGFkZXIoc2hhZGVyVHlwZSwgc291cmNlKQorICAgIHVwZGF0ZVNo
YWRlcihzaGFkZXJUeXBlLCBzb3VyY2UpCiAgICAgewotICAgICAgICBDYW52YXNBZ2VudC51cGRh
dGVTaGFkZXIodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJyb3IpID0+
IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwotICAgICAgICB9
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoT2JqZWN0LnZhbHVlcyhTaGFkZXJQcm9ncmFtLlNo
YWRlclR5cGUpLmluY2x1ZGVzKHNoYWRlclR5cGUpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
U2hhZGVyUHJvZ3JhbS5wcm9ncmFtVHlwZVN1cHBvcnRzU2hhZGVyVHlwZSh0aGlzLl9wcm9ncmFt
VHlwZSwgc2hhZGVyVHlwZSkpOworCisgICAgICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcih0
aGlzLl9pZGVudGlmaWVyLCBzaGFkZXJUeXBlLCBzb3VyY2UpOworICAgIH0KKworICAgIHNob3dI
aWdobGlnaHQoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcHJvZ3JhbVR5
cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyKTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViR0wgfHwgdGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR0wyKTsKKworICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGln
aGxpZ2h0ZWQodGhpcy5faWRlbnRpZmllciwgdHJ1ZSk7CisgICAgfQorCisgICAgaGlkZUhpZ2hs
aWdodCgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9wcm9ncmFtVHlwZSA9
PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpOworICAgICAgICBjb25zb2xlLmFz
c2VydCh0aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTCB8fCB0aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHTDIpOworCisgICAgICAgIENhbnZhc0FnZW50LnNldFNoYWRlclByb2dyYW1IaWdobGln
aHRlZCh0aGlzLl9pZGVudGlmaWVyLCBmYWxzZSk7CiAgICAgfQogfTsKIAorV0kuU2hhZGVyUHJv
Z3JhbS5Qcm9ncmFtVHlwZSA9IHsKKyAgICBDb21wdXRlOiAiY29tcHV0ZSIsCisgICAgUmVuZGVy
OiAicmVuZGVyIiwKK307CisKIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZSA9IHsKLSAgICBG
cmFnbWVudDogInNoYWRlci10eXBlLWZyYWdtZW50IiwKLSAgICBWZXJ0ZXg6ICJzaGFkZXItdHlw
ZS12ZXJ0ZXgiLAorICAgIENvbXB1dGU6ICJjb21wdXRlIiwKKyAgICBGcmFnbWVudDogImZyYWdt
ZW50IiwKKyAgICBWZXJ0ZXg6ICJ2ZXJ0ZXgiLAogfTsKIAogV0kuU2hhZGVyUHJvZ3JhbS5FdmVu
dCA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0NhbnZhc09ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKaW5kZXggM2U1ZGQ2YzJhNzJjMjZjY2Mx
MmVmNjRiZjYyMDRjMGY4NjkwMjE2OS4uNmY1MzU3NDQzNDZmMjA3MTIwY2JlOWU5ZDNjYTI3ZjRj
YmVlYTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ2FudmFzT2JzZXJ2ZXIuanMKQEAgLTY3LDkgKzY3LDkgQEAg
V0kuQ2FudmFzT2JzZXJ2ZXIgPSBjbGFzcyBDYW52YXNPYnNlcnZlcgogICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmV4dGVuc2lvbkVuYWJsZWQoY2FudmFzSWQsIGV4dGVuc2lvbik7CiAgICAgfQog
Ci0gICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCkKKyAgICBwcm9ncmFtQ3Jl
YXRlZChjYW52YXNJZCwgcHJvZ3JhbUlkLCBwcm9ncmFtVHlwZSkKICAgICB7Ci0gICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIucHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCk7CisgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIucHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWQsIHByb2dyYW1JZCwg
cHJvZ3JhbVR5cGUpOwogICAgIH0KIAogICAgIHByb2dyYW1EZWxldGVkKHByb2dyYW1JZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCmluZGV4IGNiMzNhN2E5MDA5
NGZmMDM0NmZlMjU4MDc1MmM3ZDFkNWJkYjliMjguLmIzNDI4ZjU0YWU2Mzg0Zjk4MzY2YmY3NThj
NjU0NzM1NmJhZjY3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5qcwpAQCAtMjcxLDcgKzI3MSw4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAg
ICAgICAgICAgdGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50SW5wdXRFbGVtZW50
Ll9fY2FjaGVkRm9udCA9IGNvbXB1dGVkU3R5bGUuZm9udDsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgY29udGV4dC5mb250ID0gdGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNv
dW50SW5wdXRFbGVtZW50Ll9fY2FjaGVkRm9udDsKKyAgICAgICAgICAgIGlmICh0aGlzLl9yZWNv
cmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnRJbnB1dEVsZW1lbnQuX19jYWNoZWRGb250KQorICAg
ICAgICAgICAgICAgIGNvbnRleHQuZm9udCA9IHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlRnJh
bWVDb3VudElucHV0RWxlbWVudC5fX2NhY2hlZEZvbnQ7CiAgICAgICAgICAgICBsZXQgdGV4dE1l
dHJpY3MgPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlRnJh
bWVDb3VudElucHV0RWxlbWVudC52YWx1ZSB8fCB0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZUZy
YW1lQ291bnRJbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIpOwogICAgICAgICAgICAgdGhpcy5fcmVj
b3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50SW5wdXRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5
KCJ3aWR0aCIsICh0ZXh0TWV0cmljcy53aWR0aCArICgyICogQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5yZWNvcmRpbmdBdXRvQ2FwdHVyZUlucHV0TWFyZ2luKSkgKyAicHgiKTsKICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcwppbmRleCA5YWZjNGFiOTBlMWJlYzJh
YzQzZjVlNTIxZjU0MDA1ZWUyOTg0ZDNiLi4zYTNhYWRmMjVkYTMwN2JjMDg4OWMyNTE3ODMzNmJj
OWQ3YTRhMWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKQEAgLTY4Miw2ICs2
ODIsMTEgQEAKICAgICBleHRyYUpTT05UeXBlcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUpIHsKICAg
ICAgICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKHR5cGUsIHtuYW1lOiAiamF2YXNjcmlwdCIsIGpz
b246IHRydWV9KTsKICAgICB9KTsKKworICAgIC8vIEZJWE1FOiBBZGQgV0hMU0wgc3BlY2lmaWMg
bW9kZXMuCisgICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ4LXBpcGVsaW5lL3gtY29tcHV0ZSIs
ICJ4LXNoYWRlci94LXZlcnRleCIpOworICAgIENvZGVNaXJyb3IuZGVmaW5lTUlNRSgieC1waXBl
bGluZS94LWZyYWdtZW50IiwgIngtc2hhZGVyL3gtZnJhZ21lbnQiKTsKKyAgICBDb2RlTWlycm9y
LmRlZmluZU1JTUUoIngtcGlwZWxpbmUveC12ZXJ0ZXgiLCAieC1zaGFkZXIveC12ZXJ0ZXgiKTsK
IH0pKCk7CiAKIFdJLmNvbXBhcmVDb2RlTWlycm9yUG9zaXRpb25zID0gZnVuY3Rpb24oYSwgYikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1No
YWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCmluZGV4IDU1ZWY0MWY4
MmY1YmQ1NGIzZjk3NzlhZGQ3ZTNhOWU1Y2U5ZTUxYTAuLjBkMGE3N2FlNDQ0MTAyMGU5YzAxNmVm
ZDgzM2UwYjhlODc0ZmNkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRW
aWV3LmNzcwpAQCAtMjMsNTAgKzIzLDQ2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRv
ci5zaGFkZXIgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgeworICAg
IGRpc3BsYXk6IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CiAgICAgdG9wOiAwOwogICAgIGJvdHRvbTogMDsKLQotICAgIC0tYm9yZGVy
LXN0YXJ0LXN0eWxlOiAxcHggc29saWQgbGlnaHRncmV5OwogfQogCi1ib2R5W2Rpcj1sdHJdIC5j
b250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLnZlcnRleCwK
LWJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRv
ci5zaGFkZXIuZnJhZ21lbnQgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFk
ZXIuY29tcHV0ZSB7CisgICAgcmlnaHQ6IDA7CisgICAgbGVmdDogMDsKK30KKworYm9keVtkaXI9
bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXgsCitib2R5
W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50
IHsKICAgICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpOwogICAgIGxlZnQ6IDA7CiB9CiAKLWJvZHlb
ZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFk
ZXIuZnJhZ21lbnQsCi1ib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0g
PiAudGV4dC1lZGl0b3Iuc2hhZGVyLnZlcnRleCB7Citib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZp
ZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50LAorYm9keVtkaXI9cnRsXSAuY29u
dGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXggewogICAgIHdpZHRoOiBj
YWxjKDUwJSArIDFweCk7CiAgICAgcmlnaHQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRl
bnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgKyAudGV4dC1lZGl0
b3Iuc2hhZGVyIHsKLSAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXN0YXJ0LXN0eWxlKTsK
Ky5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyICsgLnNoYWRlciB7CisgICAg
Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogfQogCi1ib2R5W2Rp
cj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVy
ICsgLnRleHQtZWRpdG9yLnNoYWRlciB7Ci0gICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1ib3JkZXIt
c3RhcnQtc3R5bGUpOwotfQotCi0uY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQt
ZWRpdG9yLnNoYWRlciA+IC50eXBlLXRpdGxlIHsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAuc2hhZGVyID4gaGVhZGVyID4gKiB7CiAgICAgcGFkZGluZzogMnB4IDRweDsKLSAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4
IHNvbGlkIGxpZ2h0Z3JleTsKIH0KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50
ZXh0LWVkaXRvci5zaGFkZXIgPiAuQ29kZU1pcnJvciB7Ci0gICAgdG9wOiAxOHB4OworLmNvbnRl
bnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAuc2hhZGVyLXR5cGUg
eworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUlKTsKIH0KIAogQG1lZGlhIChw
cmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXBy
b2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyIHsKLSAgICAgICAgLS1ib3JkZXItc3RhcnQtc3R5
bGU6IDFweCBzb2xpZCB2YXIoLS10ZXh0LWNvbG9yLXF1YXRlcm5hcnkpOwotICAgIH0KLQotICAg
IC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLnR5
cGUtdGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyID4g
aGVhZGVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xv
cik7CiAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRleHQtY29sb3ItcXVhdGVy
bmFyeSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCmlu
ZGV4IGRkOTI1NGVkNWJlZTAwODU2ZTIzMmE1MmZmMGI3MmQ1YjkyMzQzODQuLjQyNjQ1ZDhjMzU5
YjU5YzBjZTczNGUwOTljMzkzMTYzODVhZDE1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9n
cmFtQ29udGVudFZpZXcuanMKQEAgLTMxLDEzICszMSwyNiBAQCBXSS5TaGFkZXJQcm9ncmFtQ29u
dGVudFZpZXcgPSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VgogCiAgICAgICAgIHN1cGVyKHNoYWRlclByb2dyYW0pOwogCisgICAgICAgIGxldCBpc1dl
YkdQVSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHUFU7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRp
b25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJp
bmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAg
IHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBX
SS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9y
ZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZp
Z2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoQ29udGVudCwgdGhpcyk7CisK
ICAgICAgICAgbGV0IGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIgPSBuZXcgRGVib3VuY2VyKChl
dmVudCkgPT4gewogICAgICAgICAgICAgdGhpcy5fY29udGVudERpZENoYW5nZShldmVudCk7CiAg
ICAgICAgIH0pOwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzaGFkZXIt
cHJvZ3JhbSIpOworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXBy
b2dyYW0iLCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnByb2dyYW1UeXBlKTsKIAogICAgICAgICBs
ZXQgY3JlYXRlRWRpdG9yID0gKHNoYWRlclR5cGUpID0+IHsKKyAgICAgICAgICAgIGxldCBjb250
YWluZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2IikpOworCisgICAgICAgICAgICBsZXQgaGVhZGVyID0gY29udGFpbmVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICAgICAgbGV0IHNo
YWRlclR5cGVDb250YWluZXIgPSBoZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOworICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci5jbGFzc0xpc3Qu
YWRkKCJzaGFkZXItdHlwZSIpOworCiAgICAgICAgICAgICBsZXQgdGV4dEVkaXRvciA9IG5ldyBX
SS5UZXh0RWRpdG9yOwogICAgICAgICAgICAgdGV4dEVkaXRvci5yZWFkT25seSA9IGZhbHNlOwog
ICAgICAgICAgICAgdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlRleHRFZGl0b3IuRXZl
bnQuRm9jdXNlZCwgdGhpcy5fZWRpdG9yRm9jdXNlZCwgdGhpcyk7CkBAIC00NSwzMiArNTgsNjEg
QEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgICAgIHRleHRFZGl0b3IuYWRkRXZl
bnRMaXN0ZW5lcihXSS5UZXh0RWRpdG9yLkV2ZW50LkNvbnRlbnREaWRDaGFuZ2UsIChldmVudCkg
PT4gewogICAgICAgICAgICAgICAgIGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIuZGVsYXlGb3JU
aW1lKDI1MCwgZXZlbnQpOwogICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgICAgICB0ZXh0
RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyIik7Ci0KLSAgICAgICAgICAgIGxl
dCBzaGFkZXJUeXBlQ29udGFpbmVyID0gdGV4dEVkaXRvci5lbGVtZW50Lmluc2VydEFkamFjZW50
RWxlbWVudCgiYWZ0ZXJiZWdpbiIsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAg
ICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgidHlwZS10aXRsZSIp
OwogCiAgICAgICAgICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKLSAgICAgICAgICAgIGNhc2Ug
V0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKLSAgICAgICAgICAgICAgICBzaGFk
ZXJUeXBlQ29udGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleCBTaGFkZXIi
KTsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gIngtc2hhZGVyL3gtdmVy
dGV4IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
dmVydGV4Iik7CisgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5D
b21wdXRlOgorICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQg
PSBXSS5VSVN0cmluZygiQ29tcHV0ZSBTaGFkZXIiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRp
dG9yLm1pbWVUeXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGluZS94LWNvbXB1dGUiIDogIngtc2hh
ZGVyL3gtY29tcHV0ZSI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNh
c2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50OgogICAgICAgICAgICAgICAg
IHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQg
U2hhZGVyIik7Ci0gICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4LXNoYWRl
ci94LWZyYWdtZW50IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NM
aXN0LmFkZCgiZnJhZ21lbnQiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBl
ID0gaXNXZWJHUFUgPyAieC1waXBlbGluZS94LWZyYWdtZW50IiA6ICJ4LXNoYWRlci94LWZyYWdt
ZW50IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBXSS5TaGFk
ZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4OgorICAgICAgICAgICAgICAgIHNoYWRlclR5cGVD
b250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOworICAg
ICAgICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5l
L3gtdmVydGV4IiA6ICJ4LXNoYWRlci94LXZlcnRleCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0ZXh0RWRpdG9y
KTsKLSAgICAgICAgICAgIHJldHVybiB0ZXh0RWRpdG9yOworICAgICAgICAgICAgY29udGFpbmVy
LmFwcGVuZENoaWxkKHRleHRFZGl0b3IuZWxlbWVudCk7CisgICAgICAgICAgICBjb250YWluZXIu
Y2xhc3NMaXN0LmFkZCgic2hhZGVyIiwgc2hhZGVyVHlwZSk7CisKKyAgICAgICAgICAgIHJldHVy
biB7Y29udGFpbmVyLCB0ZXh0RWRpdG9yfTsKICAgICAgICAgfTsKIAotICAgICAgICB0aGlzLl92
ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZl
cnRleCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNo
YWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7Ci0gICAgICAgIHRoaXMuX2xhc3RBY3Rp
dmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZTogeworICAgICAgICAgICAgbGV0IGNvbXB1dGVFZGl0b3Ig
PSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUpOworICAg
ICAgICAgICAgdGhpcy5fY29tcHV0ZUNvbnRhaW5lciA9IGNvbXB1dGVFZGl0b3IuY29udGFpbmVy
OworICAgICAgICAgICAgdGhpcy5fY29tcHV0ZUVkaXRvciA9IGNvbXB1dGVFZGl0b3IudGV4dEVk
aXRvcjsKKworICAgICAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9IHRoaXMuX2NvbXB1
dGVFZGl0b3I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2Ug
V0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXI6IHsKKyAgICAgICAgICAgIGxldCB2
ZXJ0ZXhFZGl0b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZl
cnRleCk7CisgICAgICAgICAgICB0aGlzLl92ZXJ0ZXhDb250YWluZXIgPSB2ZXJ0ZXhFZGl0b3Iu
Y29udGFpbmVyOworICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRpdG9y
LnRleHRFZGl0b3I7CisKKyAgICAgICAgICAgIGxldCBmcmFnbWVudEVkaXRvciA9IGNyZWF0ZUVk
aXRvcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQpOworICAgICAgICAgICAg
dGhpcy5fZnJhZ21lbnRDb250YWluZXIgPSBmcmFnbWVudEVkaXRvci5jb250YWluZXI7CisgICAg
ICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvciA9IGZyYWdtZW50RWRpdG9yLnRleHRFZGl0b3I7
CisKKyAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0
b3I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisg
ICAgLy8gUHVibGljCisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBbdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKICAgICB9CiAKICAg
ICAvLyBQcm90ZWN0ZWQKQEAgLTc5LDIyICsxMjEsMzIgQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFYKICAgICB7CiAgICAgICAgIHN1cGVyLnNob3duKCk7CiAKLSAgICAgICAgdGhpcy5fdmVydGV4
RWRpdG9yLnNob3duKCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnNob3duKCk7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAg
ICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAg
ICAgIHRoaXMuX2NvbXB1dGVFZGl0b3Iuc2hvd24oKTsKKyAgICAgICAgICAgIGJyZWFrOwogCi0g
ICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFZlcnRleFNoYWRlclNvdXJjZSgo
Y29udGVudCkgPT4gewotICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnN0cmluZyA9IGNv
bnRlbnQgfHwgIiI7Ci0gICAgICAgIH0pOworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnNob3du
KCk7CisgICAgICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KIAotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJl
cXVlc3RGcmFnbWVudFNoYWRlclNvdXJjZSgoY29udGVudCkgPT4gewotICAgICAgICAgICAgdGhp
cy5fZnJhZ21lbnRFZGl0b3Iuc3RyaW5nID0gY29udGVudCB8fCAiIjsKLSAgICAgICAgfSk7Cisg
ICAgICAgIHRoaXMuX3JlZnJlc2hDb250ZW50KCk7CiAgICAgfQogCiAgICAgaGlkZGVuKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX3ZlcnRleEVkaXRvci5oaWRkZW4oKTsKLSAgICAgICAgdGhpcy5f
ZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJv
Z3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFZGl0b3IuaGlkZGVu
KCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLmhpZGRl
bigpOworICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogCiAgICAgICAgIHN1cGVyLmhpZGRlbigpOwogICAgIH0K
QEAgLTEwNiwxNCArMTU4LDM0IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNz
IFNoYWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBnZXQg
c2F2ZURhdGEoKQogICAgIHsKLSAgICAgICAgbGV0IGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIlNo
YWRlciIpOwotICAgICAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9PT0gdGhpcy5fdmVy
dGV4RWRpdG9yKQotICAgICAgICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiVmVydGV4Iik7
Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09IHRoaXMuX2ZyYWdt
ZW50RWRpdG9yKQorICAgICAgICBsZXQgZmlsZW5hbWUgPSAiIjsKKyAgICAgICAgc3dpdGNoICh0
aGlzLl9sYXN0QWN0aXZlRWRpdG9yKSB7CisgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUVkaXRv
cjoKKyAgICAgICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIkNvbXB1dGUiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaXMuX2ZyYWdtZW50RWRpdG9yOgogICAgICAg
ICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRvcjoKKyAgICAgICAgICAgIGZpbGVu
YW1lID0gV0kuVUlTdHJpbmcoIlZlcnRleCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmlsZW5hbWUpOworCisgICAgICAgIGxldCBleHRl
bnNpb24gPSAiIjsKKyAgICAgICAgc3dpdGNoICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZh
cy5jb250ZXh0VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
TDoKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAg
ICAgZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi5nbHNsIik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVOgorICAg
ICAgICAgICAgZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi53c2wiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV4dGVuc2lv
bik7CiAKICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHVybDogV0kuRmlsZVV0aWxpdGll
cy5pbnNwZWN0b3JVUkxGb3JGaWxlbmFtZShmaWxlbmFtZSArICIuZ2xzbCIpLAorICAgICAgICAg
ICAgdXJsOiBXSS5GaWxlVXRpbGl0aWVzLmluc3BlY3RvclVSTEZvckZpbGVuYW1lKGZpbGVuYW1l
ICsgZXh0ZW5zaW9uKSwKICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX2xhc3RBY3RpdmVFZGl0
b3Iuc3RyaW5nLAogICAgICAgICAgICAgZm9yY2VTYXZlQXM6IHRydWUsCiAgICAgICAgIH07CkBA
IC0xNzEsNiArMjQzLDY1IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNo
YWRlclByb2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICAvLyBQcml2
YXRlCiAKKyAgICBfcmVmcmVzaENvbnRlbnQoKQorICAgIHsKKyAgICAgICAgbGV0IGNyZWF0ZUNh
bGxiYWNrID0gKGNvbnRhaW5lciwgdGV4dEVkaXRvcikgPT4geworICAgICAgICAgICAgcmV0dXJu
IChzb3VyY2UpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlID09PSBudWxsKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghY29u
dGFpbmVyLnBhcmVudE5vZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb250YWlu
ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzLl9jb21wdXRlQ29udGFpbmVyOgor
ICAgICAgICAgICAgICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleENvbnRhaW5lcjoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVy
YmVnaW4iLCBjb250YWluZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzLl9mcmFnbWVudENvbnRhaW5lcjoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9y
ZWVuZCIsIGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRl
eHRFZGl0b3Iuc3RyaW5nID0gc291cmNlIHx8ICIiOworICAgICAgICAgICAgfTsKKyAgICAgICAg
fTsKKworICAgICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUp
IHsKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6Cisg
ICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0ku
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2Nv
bXB1dGVDb250YWluZXIsIHRoaXMuX2NvbXB1dGVFZGl0b3IpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgor
ICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0U2hhZGVyU291cmNlKFdJ
LlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX3Zl
cnRleENvbnRhaW5lciwgdGhpcy5fdmVydGV4RWRpdG9yKSk7CisgICAgICAgICAgICB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFk
ZXJUeXBlLkZyYWdtZW50LCBjcmVhdGVDYWxsYmFjayh0aGlzLl9mcmFnbWVudENvbnRhaW5lciwg
dGhpcy5fZnJhZ21lbnRFZGl0b3IpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgfQorCisgICAgX3VwZGF0ZVNoYWRlcihz
aGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgICAg
IGNhc2UgV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGU6CisgICAgICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCB0aGlzLl9jb21w
dXRlRWRpdG9yLnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBX
SS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQ6CisgICAgICAgICAgICB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCB0aGlzLl9mcmFnbWVudEVk
aXRvci5zdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgV0kuU2hh
ZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50
ZWRPYmplY3QudXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHRoaXMuX3ZlcnRleEVkaXRvci5zdHJp
bmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoKTsKKyAgICB9CisKICAgICBfZWRpdG9yRm9jdXNlZChldmVudCkKICAgICB7CiAgICAg
ICAgIGlmICh0aGlzLl9sYXN0QWN0aXZlRWRpdG9yID09PSBldmVudC50YXJnZXQpCkBAIC0xOTcs
OSArMzI4LDIwIEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclBy
b2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBfY29udGVudERpZENo
YW5nZShldmVudCkKICAgICB7Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuX3Zl
cnRleEVkaXRvcikKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QudXBkYXRlVmVy
dGV4U2hhZGVyKHRoaXMuX3ZlcnRleEVkaXRvci5zdHJpbmcpOwotICAgICAgICBlbHNlIGlmIChl
dmVudC50YXJnZXQgPT09IHRoaXMuX2ZyYWdtZW50RWRpdG9yKQotICAgICAgICAgICAgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC51cGRhdGVGcmFnbWVudFNoYWRlcih0aGlzLl9mcmFnbWVudEVkaXRv
ci5zdHJpbmcpOworICAgICAgICBzd2l0Y2ggKGV2ZW50LnRhcmdldCkgeworICAgICAgICBjYXNl
IHRoaXMuX2NvbXB1dGVFZGl0b3I6CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoV0ku
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUpOworICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGNhc2UgdGhpcy5fZnJhZ21lbnRFZGl0b3I6CisgICAgICAgICAgICB0aGlzLl91
cGRhdGVTaGFkZXIoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRvcjoKKyAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVy
dGV4KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVu
dC5qcwppbmRleCBjZGE3NWI0MTUyNDA0ZGJjY2IwOTk5NDFkM2RiNWI3NzM5ZDUyMTMyLi5jMmQz
Zjc1MzRkZDdhNmY0NGEzZTAxYjE5YzUxOTAxMzc1Nzg2YjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtVHJlZUVsZW1l
bnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hh
ZGVyUHJvZ3JhbVRyZWVFbGVtZW50LmpzCkBAIC0zMiwxMCArMzIsMTQgQEAgV0kuU2hhZGVyUHJv
Z3JhbVRyZWVFbGVtZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50IGV4dGVuZHMg
V0kuR2VuZXJhbFQKICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOwogICAgICAgICBzdXBl
cigic2hhZGVyLXByb2dyYW0iLCBzaGFkZXJQcm9ncmFtLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwg
c2hhZGVyUHJvZ3JhbSk7CiAKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFn
ZUVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiRGlzYWJsZSBQcm9ncmFtIik7Ci0gICAgICAg
IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy5fZGlzYWJsZWRJbWFnZUVsZW1lbnRDbGlja2VkLmJpbmQodGhpcykpOwotICAgICAgICB0aGlz
LnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50OworICAgICAgICAvLyBGSVhNRTog
YWRkIHN1cHBvcnQgZm9yIGRpc2FibGluZy9oaWdobGlnaHRpbmcgV2ViR1BVIHNoYWRlciBwaXBl
bGluZXMuCisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
Y2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdMMikgeworICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVk
SW1hZ2VFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkRpc2FibGUgUHJvZ3JhbSIpOworICAg
ICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudENsaWNrZWQuYmluZCh0aGlzKSk7CisgICAg
ICAgICAgICB0aGlzLnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50OworICAgICAg
ICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC00NCwzNCArNDgsNDUgQEAgV0kuU2hh
ZGVyUHJvZ3JhbVRyZWVFbGVtZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50IGV4
dGVuZHMgV0kuR2VuZXJhbFQKICAgICB7CiAgICAgICAgIHN1cGVyLm9uYXR0YWNoKCk7CiAKLSAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLlNoYWRlclBy
b2dyYW0uRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQcm9ncmFtRGlz
YWJsZWRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBk
aXNhYmxpbmcvaGlnaGxpZ2h0aW5nIFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVzLgorICAgICAgICBs
ZXQgY29udGV4dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0VHlw
ZTsKKyAgICAgICAgaWYgKGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2Vi
R0wgfHwgY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpIHsKKyAg
ICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5TaGFk
ZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJvZ3Jh
bURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNlb3ZlciIsIHRoaXMuX2hhbmRsZU1vdXNlT3Zlci5iaW5kKHRoaXMpKTsK
LSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5f
aGFuZGxlTW91c2VPdXQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5faGFuZGxlTW91c2VPdmVyLmJpbmQodGhp
cykpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0
IiwgdGhpcy5faGFuZGxlTW91c2VPdXQuYmluZCh0aGlzKSk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICBvbmRldGFjaCgpCiAgICAgewotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJl
bW92ZUV2ZW50TGlzdGVuZXIoV0kuU2hhZGVyUHJvZ3JhbS5FdmVudC5EaXNhYmxlZENoYW5nZWQs
IHRoaXMuX2hhbmRsZVNoYWRlclByb2dyYW1EaXNhYmxlZENoYW5nZWQsIHRoaXMpOworICAgICAg
ICAvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIGRpc2FibGluZy9oaWdobGlnaHRpbmcgV2ViR1BV
IHNoYWRlciBwaXBlbGluZXMuCisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdMMikKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hh
bmdlZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAK
ICAgICAgICAgc3VwZXIub25kZXRhY2goKTsKICAgICB9CiAKICAgICBjYW5TZWxlY3RPbk1vdXNl
RG93bihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVu
dC5jb250YWlucyhldmVudC50YXJnZXQpKQorICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWRJbWFn
ZUVsZW1lbnQgJiYgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFy
Z2V0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHN1cGVyLmNh
blNlbGVjdE9uTW91c2VEb3duKGV2ZW50KTsKICAgICB9CiAKICAgICBwb3B1bGF0ZUNvbnRleHRN
ZW51KGNvbnRleHRNZW51LCBldmVudCkKICAgICB7Ci0gICAgICAgIGxldCBkaXNhYmxlZCA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuZGlzYWJsZWQ7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZEl0ZW0oZGlzYWJsZWQgPyBXSS5VSVN0cmluZygiRW5hYmxlIFByb2dyYW0iKSA6IFdJLlVJU3Ry
aW5nKCJEaXNhYmxlIFByb2dyYW0iKSwgKCkgPT4gewotICAgICAgICAgICAgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKLSAgICAgICAgfSk7CisgICAgICAgIC8v
IEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgZGlzYWJsaW5nL2hpZ2hsaWdodGluZyBXZWJHUFUgc2hh
ZGVyIHBpcGVsaW5lcy4KKyAgICAgICAgbGV0IGNvbnRleHRUeXBlID0gdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5jYW52YXMuY29udGV4dFR5cGU7CisgICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMIHx8IGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuV2ViR0wyKSB7CisgICAgICAgICAgICBsZXQgZGlzYWJsZWQgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LmRpc2FibGVkOworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
SXRlbShkaXNhYmxlZCA/IFdJLlVJU3RyaW5nKCJFbmFibGUgUHJvZ3JhbSIpIDogV0kuVUlTdHJp
bmcoIkRpc2FibGUgUHJvZ3JhbSIpLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKKyAgICAgICAgICAgIH0pOwogCi0g
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIH0KIAogICAgICAgICBzdXBlci5wb3B1
bGF0ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMyNWY2
YzUzOThmY2RmZWQzNDA1YmZkNThmMWRjM2U4OGI4NDJjMmYuLjA5OWEyYmNkODc5YTVkMGQ4NDc5
OTQ3MzVlMmQ0MjBjZjZhOWQ2YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxOS0wOS0yMyAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQ2FudmFzOiBzaG93IFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE2NzUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU1NTQzNDUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4K
KworICAgICAgICBTcGxpdCBleGlzdGluZyBzaGFkZXIgdGVzdHMgaW50byBXZWJHTCBhbmQgV2Vi
R1BVIHN1Yi10ZXN0cyBmb3IgZGlmZmVyZW50IHBsYXRmb3Jtcy4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL3VwZGF0ZVNoYWRlci1leHBlY3RlZC50eHQ6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanM6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNl
LXdlYmdwdS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
c2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJn
cHUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci13ZWJncHUuaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qczogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLmpzLgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2Vi
Z2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmds
Mi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1l
Q291bnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1m
dWxsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtbWVt
b3J5TGltaXQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJn
bC1zbmFwc2hvdHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13
ZWJnbDItZnJhbWVDb3VudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3Jk
aW5nLXdlYmdsMi1mdWxsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRp
bmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmctd2ViZ2wyLXNuYXBzaG90cy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52
YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NldFNoYWRlclByb2dyYW1EaXNhYmxlZC5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdo
dGVkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1y
ZW1vdmUtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dy
YW0tYWRkLXJlbW92ZS13ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJnbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3VwZGF0ZVNoYWRlci13ZWJnbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJv
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMTktMDktMjEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbUG9pbnRlciBFdmVudHNdIHRvdWNoLWFjdGlvbiBzZXQgdG8gcGFuLXggb3IgcGFu
LXkgYWxvbmUgc2hvdWxkIGRpc2FibGUgc2Nyb2xsaW5nIGFsdG9nZXRoZXIgaWYgdGhlIGludGlh
bCBnZXN0dXJlIGlzIGluIHRoZSBkaXNhbGxvd2VkIGRpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbC5odG1sCmluZGV4
IDMyZjU1OWJiYWMyNGQ4OTEzYjQwMjEyNTNkOGNjYjdkOTY5MzVhYjIuLmU5ODNmMTk2N2RiNGMy
ZjZkZTFmNmQzZTM5MDljZWQ1YWMwMTk2MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsLmh0bWwKQEAgLTMsNyArMyw3IEBA
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmli
dXRlIHZlYzQgdGVzdDsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wyLmh0bWwKaW5kZXgg
MTNlMWEwMWU1N2JiMDE4MTJhODdhM2ZhODRlMjJiNTA5OGU4Y2ZiYy4uMzc2MzcwOTQ2M2RkYzY5
ODVmMTE4YzAwZTAwMjMxYzNiMWYzZTJkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsMi5odG1sCkBAIC0zLDcgKzMsNyBA
QAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJp
YnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1lQ291bnQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1lQ291bnQu
aHRtbAppbmRleCBmMjQwMjc2ZTgxNTA5ZTE3YTM3ZjE5NWQzZmUyN2FlOWM2N2JjOTYwLi44ZDlh
NmRjMDE3YzE4M2NlZGJlOGE3NWE5ODA5MzZlMmVlMWFjMGMyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mcmFtZUNvdW50Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnJhbWVDb3Vu
dC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQp
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdl
YmdsLWZ1bGwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdl
YmdsLWZ1bGwuaHRtbAppbmRleCBjNzQzNjFiYjU5ZTdmZGYwOWE1ZDVkMGZkNDE4YTM2YzQ5MWU0
MmU1Li43NjEzM2VlMjI4ZmJjYWRlNzY5ZTM5ZThkMzBhM2RlNmUzNzAxYzIyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mdWxsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnVsbC5o
dG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12
ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmds
LW1lbW9yeUxpbWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGlu
Zy13ZWJnbC1tZW1vcnlMaW1pdC5odG1sCmluZGV4IDY0YmZmMzFjNWRhMWYyYjc4YjQwZWU5YTkx
ZDM5OWRhZWNhNTkyYWUuLjg5NTU4MTdmMmViNWVkZDQxMDcxOWMyMTExNGY3MWNkYTAzNDJkYjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmds
LW1lbW9yeUxpbWl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmctd2ViZ2wtbWVtb3J5TGltaXQuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlY29yZGluZy11dGls
aXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFt
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclBy
b2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1z
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjNCB0ZXN0
OwogICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1zbmFwc2hvdHMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLXNuYXBzaG90cy5odG1sCmluZGV4IGI3MGM3
YzU5ZWU2YTBiMDNmNWFjMTllZjhjMDFiMWY2NTY4MDE2YjkuLjNkNTU4OGQ1ZjE1MjEyODgyNzQ0
YzNlN2FiODMxNDI3MWYzMjBkYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVjb3JkaW5nLXdlYmdsLXNuYXBzaG90cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLXNuYXBzaG90cy5odG1sCkBAIC0zLDcgKzMs
NyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0
dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uOwogICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItZnJhbWVDb3Vu
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZy
YW1lQ291bnQuaHRtbAppbmRleCA0Y2E3YzFkOTA1ZDA5ZjM1M2I2NDRiYzk1MDk1NGRlYjA5YjBl
YjhhLi41MGZiZWRlMTU3ZjFmMmQyYjEyODliMmJiMGYyNmQzNzNmZjUzOWM1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItZnJhbWVDb3Vu
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmds
Mi1mcmFtZUNvdW50Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxp
dGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBl
PSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzQgdGVzdDsKICAgICB2b2lk
IG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmctd2ViZ2wyLWZ1bGwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLXdlYmdsMi1mdWxsLmh0bWwKaW5kZXggYmE2OGUxNzU0YTQ5YzUxNWM2MzYwYmVm
NTUxZDgyMzUxNDc4YTE5MC4uMTg3NGVhOTNkZDViOTMzYWY5MDNiOTE0ZDJiNDdjZDMyNDI3N2Q4
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2Vi
Z2wyLWZ1bGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGlu
Zy13ZWJnbDItZnVsbC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGls
aXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlw
ZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9p
ZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1pdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWwKaW5kZXggMDE3NGIwYWNj
M2UxNDc1MjEzYWVmZWFjY2JmNDM3MDA4MTcyNjg1Yy4uODYwNGRmNjFjY2NjZDYxM2M3ZDVlYTZm
Mzc3ZjZkZmIxYzI1MDViNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZWNvcmRpbmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWwKQEAgLTMsNyAr
Myw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAg
YXR0cmlidXRlIHZlYzQgdGVzdDsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLXNuYXBzaG90cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLXNuYXBz
aG90cy5odG1sCmluZGV4IDgyZjI3YzlkNjRmN2RhMzI4NjU1OTIxZWUzMDg4ODkzOWY2Y2I1OWUu
LjllOWE0YThjZWVlZGM4NzY5YTM0YjllOTE0MzQwYTljZDA4OTlkOTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1zbmFwc2hvdHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItc25h
cHNob3RzLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNo
YWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzMgcG9zaXRpb247CiAgICAgdm9pZCBt
YWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVx
dWVzdFNoYWRlclNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDY0YmNkZjNjNmNmYTk2
MDRmYTQyY2ZmNjdkNDQ2ZWM3MmFjOTYwNjMuLmY5MmY0OTVkMzhjZTY4NTNhM2E1MzU0YWE1ODEz
ZTBiYzRjZTE1NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVx
dWVzdFNoYWRlclNvdXJjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLWV4cGVjdGVkLnR4dApAQCAtMSwyOCArMSw4IEBA
Ci1UZXN0IGNvbXBpbGF0aW9uIG9mIHNoYWRlcnMgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQgdG8gYSBw
cm9ncmFtLCB3aXRoIGFuZCB3aXRob3V0IHN5bnRheCBlcnJvcnMuCitDb21tb24gdGVzdHMgZm9y
IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuCiAKIAotPT0gUnVubmluZyB0ZXN0
IHN1aXRlOiBDYW52YXMuZ2V0U2hhZGVyU291cmNlCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2Fu
dmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UudmVydGV4U2hhZGVyCi0KLSAgICB2b2lkIG1haW4odm9p
ZCkgewotICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKLSAg
ICB9Ci0KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNl
LmZyYWdtZW50U2hhZGVyCi0KLSAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLQotICAgIHZv
aWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAxLjAsIDEu
MCwgMS4wKTsKLSAgICB9Ci0KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0
U2hhZGVyU291cmNlLmludmFsaWRQcm9ncmFtSWQKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2Fu
dmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVx
dWVzdFNoYWRlclNvdXJjZS5Qcm9ncmFtSWQuSW52YWxpZAogUEFTUzogU2hvdWxkIHByb2R1Y2Ug
YW4gZXJyb3IuCiBFcnJvcjogTWlzc2luZyBwcm9ncmFtIGZvciBnaXZlbiBwcm9ncmFtSWQKIAot
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLmludmFsaWRT
aGFkZXJUeXBlCi1QQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KLUVycm9yOiBNaXNzaW5n
IHNoYWRlciBmb3IgZ2l2ZW4gc2hhZGVyVHlwZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTIzYWY0ZDg3ZjBlNmU1OGFjMjRiNTNiYjQ4MDdhOGQ2
ODM2MzI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitX
ZWJHTCB0ZXN0cyBmb3IgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UgY29tbWFuZC4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wuVmVy
dGV4CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQo
MC4wLCAwLjAsIDAuMCwgMS4wKTsKKyAgICB9CisKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENh
bnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMLkZyYWdtZW50CisKKyAgICBwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKworICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX0ZyYWdD
b2xvciA9IHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAgICB9CisKKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMLlNoYWRlclR5cGUuSW52
YWxpZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuCitFcnJvcjogVW5rbm93biBzaGFk
ZXJUeXBlOiBJTlZBTElEX1NIQURFUl9UWVBFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGIyYjc1MDgzMmNjMGExYjAzNmIzZjg5YjE0MWIzMGZjOTZlYmI4NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJj
ZS13ZWJnbC5odG1sCkBAIC0wLDAgKzEsODcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFk
ZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0
ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisgICAgdm9pZCBtYWluKHZvaWQp
IHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisgICAg
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVy
L3gtZnJhZ21lbnQiPgorICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgdm9pZCBt
YWluKHZvaWQpIHsKKyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAx
LjApOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAg
Y3JlYXRlUHJvZ3JhbSgid2ViZ2wiKTsKKyAgICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRlciIs
ICJmcmFnbWVudC1zaGFkZXIiKTsKKworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVz
dCgpIHsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNh
bnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5WZXJ0
ZXgiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3RzIHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBj
b2RlIG9mIGEgcHJvZ3JhbSdzIHZlcnRleCBzaGFkZXIuIiwKKyAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFu
YWdlci5zaGFkZXJQcm9ncmFtc1swXTsKKyAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkg
eworICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBDYW52YXNB
Z2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgQ2FudmFz
QWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgpCisgICAgICAgICAgICAudGhlbigoe3NvdXJjZX0pID0+
IEluc3BlY3RvclRlc3QubG9nKHNvdXJjZSkpCisgICAgICAgICAgICAudGhlbihyZXNvbHZlLCBy
ZWplY3QpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5GcmFnbWVudCIs
CisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVzdGluZyB0aGUgc291cmNlIGNvZGUg
b2YgYSBwcm9ncmFtJ3MgZnJhZ21lbnQgc2hhZGVyLiIsCisgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFn
ZXIuc2hhZGVyUHJvZ3JhbXNbMF07CisgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsK
KyAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQ2FudmFzQWdl
bnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIENhbnZhc0Fn
ZW50LlNoYWRlclR5cGUuRnJhZ21lbnQpCisgICAgICAgICAgICAudGhlbigoe3NvdXJjZX0pID0+
IEluc3BlY3RvclRlc3QubG9nKHNvdXJjZSkpCisgICAgICAgICAgICAudGhlbihyZXNvbHZlLCBy
ZWplY3QpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5TaGFkZXJUeXBl
LkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5cGVzIHNo
b3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclBy
b2dyYW1zWzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAgICAgICAg
ICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5cGUgPSAi
SU5WQUxJRF9TSEFERVJfVFlQRSI7CisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hh
ZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yKSA9
PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hv
dWxkIHByb2R1Y2UgYW4gZXJyb3IuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNB
bmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCki
PgorPHA+V2ViR0wgdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQu
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYWEwZTRmMWYwNTU5MzQ4Yzg4M2I0MTljZjc1NGUxY2JlYWE1ZGIw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
U2hhZGVyU291cmNlLXdlYmdwdS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorV2ViR1BV
IHRlc3RzIGZvciBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZSBjb21tYW5kLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dy
YW0uY29tcHV0ZS5TaGFkZXIuY29tcHV0ZQorCitbbnVtdGhyZWFkcygyLCAxLCAxKV0KK2NvbXB1
dGUgdm9pZCBjb21wdXRlU2hhZGVyKGRldmljZSBmbG9hdFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUw
KSwgZmxvYXQzIHRocmVhZElEIDogU1ZfRGlzcGF0Y2hUaHJlYWRJRCkgeworICAgIGJ1ZmZlclt1
aW50KHRocmVhZElELngpXSA9IGJ1ZmZlclt1aW50KHRocmVhZElELngpXSAqIDIuMDsKK30KKwor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BV
LlByb2dyYW0uY29tcHV0ZS5TaGFkZXIuZnJhZ21lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFu
IGV4Y2VwdGlvbi4KK0Vycm9yOiBNaXNzaW5nIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZv
ciBnaXZlbiBwcm9ncmFtSWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0
U2hhZGVyU291cmNlLldlYkdQVS5Qcm9ncmFtLmNvbXB1dGUuU2hhZGVyLnZlcnRleAorUEFTUzog
U2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IE1pc3Npbmcgc2hhZGVyIG9mIGdp
dmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZAorCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0ucmVuZGVyLlNoYWRl
ci5jb21wdXRlCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlz
c2luZyBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHUFUuUHJv
Z3JhbS5yZW5kZXIuU2hhZGVyLmZyYWdtZW50CisKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVy
KGZsb2F0NCBwb3NpdGlvbiA6IGF0dHJpYnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkg
OiBTVl9Qb3NpdGlvbiB7CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQorCitmcmFnbWVudCBmbG9h
dDQgZnJhZ21lbnRTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFy
Z2V0IDAgeworICAgIHJldHVybiBwb3NpdGlvbjsKK30KKworCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0ucmVuZGVyLlNoYWRl
ci52ZXJ0ZXgKKwordmVydGV4IGZsb2F0NCB2ZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDog
YXR0cmlidXRlKDApLCBmbG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0aW9uIHsKKyAg
ICByZXR1cm4gcG9zaXRpb247Cit9CisKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudFNoYWRlcihm
bG9hdDQgcG9zaXRpb24gOiBTVl9Qb3NpdGlvbikgOiBTVl9UYXJnZXQgMCB7CisgICAgcmV0dXJu
IHBvc2l0aW9uOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmJl
NjBlZDFhMmI5ZTBjOWQwOTU5YTFjZjhhNjAwNDNkMmQ2OGU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5o
dG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFt
LXV0aWxpdGllcy13ZWJncHUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3Qo
KSB7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDYW52
YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHUFUiKTsKKworICAgIGZvciAobGV0IHByb2dyYW1U
eXBlIG9mIE9iamVjdC52YWx1ZXMoV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZSkpIHsKKyAg
ICAgICAgZm9yIChsZXQgc2hhZGVyVHlwZSBvZiBPYmplY3QudmFsdWVzKFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgICAgICAgICBuYW1lOiBgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dy
YW0uJHtwcm9ncmFtVHlwZX0uU2hhZGVyLiR7c2hhZGVyVHlwZX1gLAorICAgICAgICAgICAgICAg
IGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0g
SW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtLnByb2dyYW1Gb3JUeXBlKHByb2dyYW1UeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iOworCisgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2dTaGFkZXIgPSBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQge3NvdXJjZX0gPSBhd2FpdCBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNl
KHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICB9
OworCisgICAgICAgICAgICAgICAgICAgIGxldCBpc0NvbXB1dGVQcm9ncmFtID0gcHJvZ3JhbVR5
cGUgPT09IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZTsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGlzQ29tcHV0ZVNoYWRlciA9IHNoYWRlclR5cGUgPT09IFdJLlNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5Db21wdXRlOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb21w
dXRlUHJvZ3JhbSAhPT0gaXNDb21wdXRlU2hhZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAg
YXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24obG9nU2hhZGVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbG9nU2hhZGVy
KCkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Cis8cD5XZWJHUFUgdGVzdHMgZm9yIENhbnZhcy5y
ZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRt
bAppbmRleCBhNjg5YzE2OTcyNTAyZTVlMjFhYjAyNTIxYmUwNDZmZmM2OGEyNzU4Li45MWU2MGVh
NDg0NGZmNGNkNGY5NzI4OTc2YzkwMjJjNTRiZDkxNzY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbApAQCAtMiw2NCAr
MiwxMiBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci0gICAgdm9p
ZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAs
IDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owot
Ci0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAs
IDEuMCwgMS4wLCAxLjApOwotICAgIH0KLTwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIGxv
YWQoKSB7Ci0gICAgY3JlYXRlUHJvZ3JhbSgid2ViZ2wiKTsKLSAgICBsaW5rUHJvZ3JhbSgidmVy
dGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIiKTsKLQotICAgIHJ1blRlc3QoKTsKLX0KLQog
ZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFz
eW5jU3VpdGUoIkNhbnZhcy5nZXRTaGFkZXJTb3VyY2UiKTsKKyAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIik7
CiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVz
dFNoYWRlclNvdXJjZS52ZXJ0ZXhTaGFkZXIiLAotICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3Rz
IHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEgcHJvZ3JhbSdzIHZlcnRleCBzaGFkZXIu
IiwKLSAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBzaGFk
ZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAg
ICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2lu
ZyBzaGFkZXIgcHJvZ3JhbSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclBy
b2dyYW0uaWRlbnRpZmllciwgQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgpCi0gICAgICAg
ICAgICAudGhlbigoe2NvbnRlbnR9KSA9PiBJbnNwZWN0b3JUZXN0LmxvZyhjb250ZW50KSkKLSAg
ICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQot
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hh
ZGVyU291cmNlLmZyYWdtZW50U2hhZGVyIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0cyBy
ZXF1ZXN0aW5nIHRoZSBzb3VyY2UgY29kZSBvZiBhIHByb2dyYW0ncyBmcmFnbWVudCBzaGFkZXIu
IiwKLSAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBzaGFk
ZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAg
ICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2lu
ZyBzaGFkZXIgcHJvZ3JhbSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclBy
b2dyYW0uaWRlbnRpZmllciwgQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCkKLSAgICAg
ICAgICAgIC50aGVuKCh7Y29udGVudH0pID0+IEluc3BlY3RvclRlc3QubG9nKGNvbnRlbnQpKQot
ICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKLSAgICAgICAgfQotICAgIH0pOwot
Ci0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RT
aGFkZXJTb3VyY2UuaW52YWxpZFByb2dyYW1JZCIsCisgICAgICAgIG5hbWU6ICJDYW52YXMucmVx
dWVzdFNoYWRlclNvdXJjZS5Qcm9ncmFtSWQuSW52YWxpZCIsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiSW52YWxpZCBwcm9ncmFtIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAog
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgY29uc3QgcHJvZ3Jh
bUlkID0gIklOVkFMSURfUFJPR1JBTV9JRCI7CkBAIC03MiwzMCArMjAsMTEgQEAgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICAgICAgfQogICAgIH0pOwogCi0gICAgc3VpdGUuYWRkVGVzdENhc2Uoewot
ICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuaW52YWxpZFNoYWRlclR5
cGUiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5cGVzIHNob3VsZCBj
YXVzZSBhbiBlcnJvci4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAg
ICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1z
WzBdOwotICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAgICAgICAgICAg
cmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5cGUgPSAiSU5WQUxJ
RF9TSEFERVJfVFlQRSI7Ci0gICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291
cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHBy
b2R1Y2UgYW4gZXJyb3IuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVy
cm9yOiAiICsgZXJyb3IpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9Ci0gICAgfSk7Ci0KICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotICAg
IDxwPlRlc3QgY29tcGlsYXRpb24gb2Ygc2hhZGVycyBhZnRlciBiZWluZyBhdHRhY2hlZCB0byBh
IHByb2dyYW0sIHdpdGggYW5kIHdpdGhvdXQgc3ludGF4IGVycm9ycy48L3A+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8cD5Db21tb24gdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVy
U291cmNlIGNvbW1hbmQuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMt
d2ViZ2wuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQ
cm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjc1YzQ0MWFhZmM3M2I5MTA3
OTQ1YjNjZDczZjljYTY3ZTFlNjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMK
QEAgLTAsMCArMSwxMzAgQEAKK2xldCBjb250ZXh0OworbGV0IHByb2dyYW07CisKK2Z1bmN0aW9u
IGNyZWF0ZVByb2dyYW0oY29udGV4dFR5cGUpIHsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAg
IGNvbnRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KGNv
bnRleHRUeXBlKTsKKworICAgIHByb2dyYW0gPSBjb250ZXh0LmNyZWF0ZVByb2dyYW0oKTsKK30K
KworZnVuY3Rpb24gbGlua1Byb2dyYW0odmVydGV4U2hhZGVySWRlbnRpZmllciwgZnJhZ21lbnRT
aGFkZXJJZGVudGlmaWVyKSB7CisgICAgZnVuY3Rpb24gdHlwZUZvclNjcmlwdChzY3JpcHQpIHsK
KyAgICAgICAgaWYgKHNjcmlwdC50eXBlID09PSAieC1zaGFkZXIveC12ZXJ0ZXgiKQorICAgICAg
ICAgICAgcmV0dXJuIGNvbnRleHQuVkVSVEVYX1NIQURFUjsKKyAgICAgICAgaWYgKHNjcmlwdC50
eXBlID09PSAieC1zaGFkZXIveC1mcmFnbWVudCIpCisgICAgICAgICAgICByZXR1cm4gY29udGV4
dC5GUkFHTUVOVF9TSEFERVI7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4
cGVjdGVkIHNjcmlwdCB4LXNoYWRlciB0eXBlOiAiICsgc2NyaXB0LnR5cGUpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGNyZWF0ZVNoYWRlckZyb21TY3JpcHQoc2NyaXB0SWRlbnRpZmllcikgewor
ICAgICAgICBsZXQgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyaXB0SWRlbnRp
Zmllcik7CisgICAgICAgIGxldCBzaGFkZXIgPSBjb250ZXh0LmNyZWF0ZVNoYWRlcih0eXBlRm9y
U2NyaXB0KHNjcmlwdCkpOworICAgICAgICBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBz
aGFkZXIpOworICAgICAgICBjb250ZXh0LnNoYWRlclNvdXJjZShzaGFkZXIsIHNjcmlwdC50ZXh0
KTsKKyAgICAgICAgY29udGV4dC5jb21waWxlU2hhZGVyKHNoYWRlcik7CisgICAgfQorCisgICAg
Y3JlYXRlU2hhZGVyRnJvbVNjcmlwdCh2ZXJ0ZXhTaGFkZXJJZGVudGlmaWVyKTsKKyAgICBjcmVh
dGVTaGFkZXJGcm9tU2NyaXB0KGZyYWdtZW50U2hhZGVySWRlbnRpZmllcik7CisgICAgY29udGV4
dC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKK30KKworZnVuY3Rpb24gZGVsZXRlUHJvZ3JhbSgpIHsK
KyAgICBjb250ZXh0LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgcHJvZ3JhbSA9IG51bGw7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZUNvbnRleHQoKSB7CisgICAgY29udGV4dCA9IG51bGw7Cisg
ICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBjYW52YXMgZWxlbWVudCBpcyBkZXN0cm95
ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgc2V0VGltZW91dCgo
KSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOworfQorCitUZXN0UGFnZS5yZWdp
c3RlckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBsZXQgc3VpdGUgPSBudWxsOworCisgICAgZnVu
Y3Rpb24gd2hlblByb2dyYW1BZGRlZChjYWxsYmFjaykgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNo
b3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
bGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0sICJBZGRlZCBT
aGFkZXJQcm9ncmFtLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHBy
b2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQg
aGF2ZSBhIHBhcmVudCBDYW52YXMuIik7CisgICAgICAgICAgICBjYWxsYmFjayhwcm9ncmFtKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2hlblByb2dyYW1SZW1vdmVkKGNh
bGxiYWNrKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4i
KTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1S
ZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0
YS5pdGVtOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5z
dGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3RhbmNl
b2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMu
Iik7CisgICAgICAgICAgICBjYWxsYmFjayhwcm9ncmFtKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgd2luZG93LmluaXRpYWxpemVUZXN0U3VpdGUgPSBmdW5jdGlvbihjb250ZXh0VHlwZSkg
eworICAgICAgICBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZShgQ2FudmFz
LlNoYWRlclByb2dyYW0uJHtjb250ZXh0VHlwZX1gKTsKKworICAgICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5yZWxvYWRQYWdlYCwKKyAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBTaGFkZXJQcm9ncmFtQWRkZWQgaXMg
c2VudCBmb3IgYSBwcm9ncmFtIGNyZWF0ZWQgYmVmb3JlIENhbnZhc0FnZW50IGlzIGVuYWJsZWQu
IiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAg
Ly8gVGhpcyBjYW4ndCB1c2UgYGF3YWl0RXZlbnRgIHNpbmNlIHRoZSBwcm9taXNlIHJlc29sdXRp
b24gaGFwcGVucyBvbiB0aGUgbmV4dCB0aWNrLgorICAgICAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52
YXNBZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRk
ZWQoKHByb2dyYW0pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSk7CisKKyAgICAgICAgcmV0dXJuIHN1aXRlOworICAgIH0KKworICAgICB3aW5kb3cuYWRkU2lt
cGxlVGVzdENhc2UgPSBmdW5jdGlvbihjb250ZXh0VHlwZSkgeworICAgICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5TaGFkZXJQcm9ncmFt
QWRkZWRgLAorICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3JlbW92
ZWQgZXZlbnRzIGFyZSBzZW50LiIsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKGFkZGVkUHJvZ3JhbSkgPT4gewor
ICAgICAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbVJlbW92ZWQoKHJlbW92ZWRQcm9ncmFtKSA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJl
bW92ZWRQcm9ncmFtLCBhZGRlZFByb2dyYW0sICJSZW1vdmVkIHRoZSBwcmV2aW91c2x5IGFkZGVk
IFNoYWRlclByb2dyYW0uIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoYGRlbGV0ZVByb2dyYW0oKWApOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRl
UHJvZ3JhbSgiJHtjb250ZXh0VHlwZX0iKWApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsK
KyAgICB9CisKKyAgICB3aW5kb3cuYWRkUGFyZW50Q2FudmFzUmVtb3ZlZFRlc3RDYXNlID0gZnVu
Y3Rpb24oY29udGV4dFR5cGUpIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uUGFyZW50Q2FudmFzUmVtb3ZlZGAsCisgICAgICAg
ICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIFNoYWRlclByb2dyYW0gaXMgcmVtb3Zl
ZCBiZWZvcmUgaXQncyBwYXJlbnQgQ2FudmFzLiIsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CisK
KyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVy
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgICAgd2hlblByb2dyYW1SZW1vdmVkKChwcm9ncmFtKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY2FudmFzUmVtb3Zl
ZCwgIlJlbW92ZWQgU2hhZGVyUHJvZ3JhbSBiZWZvcmUgQ2FudmFzLiIpOworICAgICAgICAgICAg
ICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVQcm9ncmFtKCIke2NvbnRleHRU
eXBlfSIpYCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShg
ZGVsZXRlQ29udGV4dCgpYCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KK30p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZlNDhkOGZkODUxMTQ2NTg5OGZkM2IwNDUwZGU4OTUxMzc0NDliZTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9n
cmFtLXV0aWxpdGllcy13ZWJncHUuanMKQEAgLTAsMCArMSwxMDAgQEAKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR1BVRW5hYmxlZCh0
cnVlKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2NvbnN0IGNvbXB1
dGVQaXBlbGluZVNvdXJjZSA9IGAKK1tudW10aHJlYWRzKDIsIDEsIDEpXQorY29tcHV0ZSB2b2lk
IGNvbXB1dGVTaGFkZXIoZGV2aWNlIGZsb2F0W10gYnVmZmVyIDogcmVnaXN0ZXIodTApLCBmbG9h
dDMgdGhyZWFkSUQgOiBTVl9EaXNwYXRjaFRocmVhZElEKSB7CisgICAgYnVmZmVyW3VpbnQodGhy
ZWFkSUQueCldID0gYnVmZmVyW3VpbnQodGhyZWFkSUQueCldICogMi4wOworfQorYDsKKworY29u
c3QgcmVuZGVyUGlwZWxpbmVTb3VyY2UgPSBgCit2ZXJ0ZXggZmxvYXQ0IHZlcnRleFNoYWRlcihm
bG9hdDQgcG9zaXRpb24gOiBhdHRyaWJ1dGUoMCksIGZsb2F0IGkgOiBhdHRyaWJ1dGUoMSkpIDog
U1ZfUG9zaXRpb24geworICAgIHJldHVybiBwb3NpdGlvbjsKK30KKworZnJhZ21lbnQgZmxvYXQ0
IGZyYWdtZW50U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IFNWX1Bvc2l0aW9uKSA6IFNWX1Rhcmdl
dCAwIHsKKyAgICByZXR1cm4gcG9zaXRpb247Cit9CitgOworCitsZXQgZGV2aWNlID0gbnVsbDsK
KworYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvZGUgPSBjb21wdXRlUGlw
ZWxpbmVTb3VyY2UpIHsKKyAgICAvLyBDb3BpZWQgZnJvbSB3ZWJncHUvd2hsc2wvY29tcHV0ZS5o
dG1sLgorICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUo
e2NvZGV9KTsKKyAgICBjb25zdCBjb21wdXRlU3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUs
IGVudHJ5UG9pbnQ6ICJjb21wdXRlU2hhZGVyIn07CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5OiA3LCB0eXBl
OiAic3RvcmFnZS1idWZmZXIifV19OworICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmlj
ZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7CisgICAg
Y29uc3QgcGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91dHM6IFtiaW5k
R3JvdXBMYXlvdXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQ
aXBlbGluZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOworICAgIGRldmljZS5jcmVh
dGVDb21wdXRlUGlwZWxpbmUoe2NvbXB1dGVTdGFnZSwgbGF5b3V0OiBwaXBlbGluZUxheW91dH0p
OworfQorCithc3luYyBmdW5jdGlvbiBjcmVhdGVSZW5kZXJQaXBlbGluZShjb2RlID0gcmVuZGVy
UGlwZWxpbmVTb3VyY2UpIHsKKyAgICAvLyBDb3BpZWQgZnJvbSB3ZWJncHUvd2hsc2wvd2hsc2wu
aHRtbC4KKyAgICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxl
KHtjb2RlfSk7CisgICAgY29uc3QgdmVydGV4U3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUs
IGVudHJ5UG9pbnQ6ICJ2ZXJ0ZXhTaGFkZXIifTsKKyAgICBjb25zdCBmcmFnbWVudFNoYWRlck1v
ZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoe2NvZGV9KTsKKyAgICBjb25zdCBmcmFn
bWVudFN0YWdlID0ge21vZHVsZTogc2hhZGVyTW9kdWxlLCBlbnRyeVBvaW50OiAiZnJhZ21lbnRT
aGFkZXIifTsKKyAgICBjb25zdCBwcmltaXRpdmVUb3BvbG9neSA9ICJ0cmlhbmdsZS1zdHJpcCI7
CisgICAgY29uc3QgcmFzdGVyaXphdGlvblN0YXRlID0ge2Zyb250RmFjZTogImN3IiwgY3VsbE1v
ZGU6ICJub25lIn07CisgICAgY29uc3QgYWxwaGFCbGVuZCA9IHt9OworICAgIGNvbnN0IGNvbG9y
QmxlbmQgPSB7fTsKKyAgICBjb25zdCBjb2xvclN0YXRlcyA9IFt7Zm9ybWF0OiAicmdiYTh1bm9y
bSIsIGFscGhhQmxlbmQsIGNvbG9yQmxlbmQsIHdyaXRlTWFzazogMTV9XTsgLy8gR1BVQ29sb3JX
cml0ZS5BTEwKKyAgICBjb25zdCBkZXB0aFN0ZW5jaWxTdGF0ZSA9IG51bGw7CisgICAgY29uc3Qg
YXR0cmlidXRlMCA9IHtzaGFkZXJMb2NhdGlvbjogMCwgZm9ybWF0OiAiZmxvYXQ0In07CisgICAg
Y29uc3QgYXR0cmlidXRlMSA9IHtzaGFkZXJMb2NhdGlvbjogMSwgZm9ybWF0OiAiZmxvYXQifTsK
KyAgICBjb25zdCBpbnB1dDAgPSB7c3RyaWRlOiAxNiwgYXR0cmlidXRlU2V0OiBbYXR0cmlidXRl
MF19OworICAgIGNvbnN0IGlucHV0MSA9IHtzdHJpZGU6IDQsIGF0dHJpYnV0ZVNldDogW2F0dHJp
YnV0ZTFdfTsKKyAgICBjb25zdCBpbnB1dHMgPSBbaW5wdXQwLCBpbnB1dDFdOworICAgIGNvbnN0
IHZlcnRleElucHV0ID0ge3ZlcnRleEJ1ZmZlcnM6IGlucHV0c307CisgICAgY29uc3QgYmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5
OiA3LCB0eXBlOiAidW5pZm9ybS1idWZmZXIifV19OworICAgIGNvbnN0IGJpbmRHcm91cExheW91
dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
cik7CisgICAgY29uc3QgcGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91
dHM6IFtiaW5kR3JvdXBMYXlvdXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmlj
ZS5jcmVhdGVQaXBlbGluZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOworICAgIGRl
dmljZS5jcmVhdGVSZW5kZXJQaXBlbGluZSh7dmVydGV4U3RhZ2UsIGZyYWdtZW50U3RhZ2UsIHBy
aW1pdGl2ZVRvcG9sb2d5LCByYXN0ZXJpemF0aW9uU3RhdGUsIGNvbG9yU3RhdGVzLCBkZXB0aFN0
ZW5jaWxTdGF0ZSwgdmVydGV4SW5wdXQsIHNhbXBsZUNvdW50OiAxLCBsYXlvdXQ6IHBpcGVsaW5l
TGF5b3V0fSk7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURldmljZSgpIHsKKyAgICBkZXZpY2UgPSBu
dWxsOworICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgZGV2aWNlIGlzIGRlc3Ryb3ll
ZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICBzZXRUaW1lb3V0KCgp
ID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IGxvYWQoKSB7CisgICAgbGV0IGFkYXB0ZXIgPSBhd2FpdCBuYXZpZ2F0b3IuZ3B1LnJlcXVlc3RB
ZGFwdGVyKCk7CisgICAgZGV2aWNlID0gYXdhaXQgYWRhcHRlci5yZXF1ZXN0RGV2aWNlKCk7CisK
KyAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgIGNyZWF0ZUNvbXB1dGVQaXBlbGluZSgp
LAorICAgICAgICBjcmVhdGVSZW5kZXJQaXBlbGluZSgpLAorICAgIF0pOworCisgICAgaWYgKHdp
bmRvdy5iZWZvcmVUZXN0KQorICAgICAgICBhd2FpdCBiZWZvcmVUZXN0KCk7CisKKyAgICBydW5U
ZXN0KCk7Cit9CisKK1Rlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4geworICAgIGlm
ICghSW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtKQorICAgICAgICBJbnNwZWN0b3JUZXN0LlNo
YWRlclByb2dyYW0gPSB7fTsKKworICAgIEluc3BlY3RvclRlc3QuU2hhZGVyUHJvZ3JhbS5wcm9n
cmFtRm9yVHlwZSA9IGZ1bmN0aW9uKHByb2dyYW1UeXBlKSB7CisgICAgICAgIGxldCByZXN1bHQg
PSBudWxsOworICAgICAgICBmb3IgKGxldCBzaGFkZXJQcm9ncmFtIG9mIFdJLmNhbnZhc01hbmFn
ZXIuc2hhZGVyUHJvZ3JhbXMpIHsKKyAgICAgICAgICAgIGlmIChzaGFkZXJQcm9ncmFtLnByb2dy
YW1UeXBlID09PSBwcm9ncmFtVHlwZSkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KCFyZXN1bHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNoYWRlclByb2dyYW07
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNl
cy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1Mjc1YzQ0MWFhZmM3M2I5MTA3OTQ1YjNjZDczZjljYTY3ZTFlNjVlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLWxldCBjb250ZXh0OwotbGV0IHByb2dyYW07
Ci0KLWZ1bmN0aW9uIGNyZWF0ZVByb2dyYW0oY29udGV4dFR5cGUpIHsKLSAgICBpZiAoIWNvbnRl
eHQpCi0gICAgICAgIGNvbnRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5n
ZXRDb250ZXh0KGNvbnRleHRUeXBlKTsKLQotICAgIHByb2dyYW0gPSBjb250ZXh0LmNyZWF0ZVBy
b2dyYW0oKTsKLX0KLQotZnVuY3Rpb24gbGlua1Byb2dyYW0odmVydGV4U2hhZGVySWRlbnRpZmll
ciwgZnJhZ21lbnRTaGFkZXJJZGVudGlmaWVyKSB7Ci0gICAgZnVuY3Rpb24gdHlwZUZvclNjcmlw
dChzY3JpcHQpIHsKLSAgICAgICAgaWYgKHNjcmlwdC50eXBlID09PSAieC1zaGFkZXIveC12ZXJ0
ZXgiKQotICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuVkVSVEVYX1NIQURFUjsKLSAgICAgICAg
aWYgKHNjcmlwdC50eXBlID09PSAieC1zaGFkZXIveC1mcmFnbWVudCIpCi0gICAgICAgICAgICBy
ZXR1cm4gY29udGV4dC5GUkFHTUVOVF9TSEFERVI7Ci0KLSAgICAgICAgY29uc29sZS5hc3NlcnQo
ZmFsc2UsICJVbmV4cGVjdGVkIHNjcmlwdCB4LXNoYWRlciB0eXBlOiAiICsgc2NyaXB0LnR5cGUp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNyZWF0ZVNoYWRlckZyb21TY3JpcHQoc2NyaXB0SWRl
bnRpZmllcikgewotICAgICAgICBsZXQgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
c2NyaXB0SWRlbnRpZmllcik7Ci0gICAgICAgIGxldCBzaGFkZXIgPSBjb250ZXh0LmNyZWF0ZVNo
YWRlcih0eXBlRm9yU2NyaXB0KHNjcmlwdCkpOwotICAgICAgICBjb250ZXh0LmF0dGFjaFNoYWRl
cihwcm9ncmFtLCBzaGFkZXIpOwotICAgICAgICBjb250ZXh0LnNoYWRlclNvdXJjZShzaGFkZXIs
IHNjcmlwdC50ZXh0KTsKLSAgICAgICAgY29udGV4dC5jb21waWxlU2hhZGVyKHNoYWRlcik7Ci0g
ICAgfQotCi0gICAgY3JlYXRlU2hhZGVyRnJvbVNjcmlwdCh2ZXJ0ZXhTaGFkZXJJZGVudGlmaWVy
KTsKLSAgICBjcmVhdGVTaGFkZXJGcm9tU2NyaXB0KGZyYWdtZW50U2hhZGVySWRlbnRpZmllcik7
Ci0gICAgY29udGV4dC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLX0KLQotZnVuY3Rpb24gZGVsZXRl
UHJvZ3JhbSgpIHsKLSAgICBjb250ZXh0LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7Ci0gICAgcHJv
Z3JhbSA9IG51bGw7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUNvbnRleHQoKSB7Ci0gICAgY29udGV4
dCA9IG51bGw7Ci0gICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBjYW52YXMgZWxlbWVu
dCBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBkb2VzIG5vdCBy
ZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCi0gICAg
c2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwotfQotCi1U
ZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKLSAgICBsZXQgc3VpdGUgPSBudWxs
OwotCi0gICAgZnVuY3Rpb24gd2hlblByb2dyYW1BZGRlZChjYWxsYmFjaykgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0g
MSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewot
ICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dy
YW0sICJBZGRlZCBTaGFkZXJQcm9ncmFtLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJv
Z3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMuIik7Ci0gICAgICAgICAgICBjYWxsYmFj
ayhwcm9ncmFtKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gd2hlblByb2dy
YW1SZW1vdmVkKGNhbGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUg
b25lIGNhbnZhcy4iKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGxldCBwcm9ncmFt
ID0gZXZlbnQuZGF0YS5pdGVtOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9n
cmFtLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2Fu
dmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBh
cmVudCBDYW52YXMuIik7Ci0gICAgICAgICAgICBjYWxsYmFjayhwcm9ncmFtKTsKLSAgICAgICAg
fSk7Ci0gICAgfQotCi0gICAgd2luZG93LmluaXRpYWxpemVUZXN0U3VpdGUgPSBmdW5jdGlvbihj
b250ZXh0VHlwZSkgewotICAgICAgICBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZShgQ2FudmFzLlNoYWRlclByb2dyYW0uJHtjb250ZXh0VHlwZX1gKTsKLQotICAgICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5yZWxv
YWRQYWdlYCwKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBTaGFkZXJQcm9n
cmFtQWRkZWQgaXMgc2VudCBmb3IgYSBwcm9ncmFtIGNyZWF0ZWQgYmVmb3JlIENhbnZhc0FnZW50
IGlzIGVuYWJsZWQuIiwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
ICAgICAgICAgICAgLy8gVGhpcyBjYW4ndCB1c2UgYGF3YWl0RXZlbnRgIHNpbmNlIHRoZSBwcm9t
aXNlIHJlc29sdXRpb24gaGFwcGVucyBvbiB0aGUgbmV4dCB0aWNrLgotICAgICAgICAgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdl
ci5FdmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHdo
ZW5Qcm9ncmFtQWRkZWQoKHByb2dyYW0pID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgcmV0dXJuIHN1aXRlOwotICAgIH0KLQotICAgICB3
aW5kb3cuYWRkU2ltcGxlVGVzdENhc2UgPSBmdW5jdGlvbihjb250ZXh0VHlwZSkgewotICAgICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5T
aGFkZXJQcm9ncmFtQWRkZWRgLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0
IGFkZGVkL3JlbW92ZWQgZXZlbnRzIGFyZSBzZW50LiIsCi0gICAgICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKGFkZGVkUHJv
Z3JhbSkgPT4gewotICAgICAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbVJlbW92ZWQoKHJlbW92
ZWRQcm9ncmFtKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHJlbW92ZWRQcm9ncmFtLCBhZGRlZFByb2dyYW0sICJSZW1vdmVkIHRoZSBwcmV2
aW91c2x5IGFkZGVkIFNoYWRlclByb2dyYW0uIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlbGV0ZVByb2dyYW0oKWApOwotICAgICAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZShgY3JlYXRlUHJvZ3JhbSgiJHtjb250ZXh0VHlwZX0iKWApOwotICAgICAgICAgICAgfQot
ICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB3aW5kb3cuYWRkUGFyZW50Q2FudmFzUmVtb3ZlZFRl
c3RDYXNlID0gZnVuY3Rpb24oY29udGV4dFR5cGUpIHsKLSAgICAgICAgc3VpdGUuYWRkVGVzdENh
c2UoewotICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uUGFyZW50Q2FudmFzUmVtb3Zl
ZGAsCi0gICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIFNoYWRlclByb2dy
YW0gaXMgcmVtb3ZlZCBiZWZvcmUgaXQncyBwYXJlbnQgQ2FudmFzLiIsCi0gICAgICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVk
ID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50
KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgd2hlblByb2dyYW1SZW1vdmVkKChwcm9n
cmFtKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2Uo
Y2FudmFzUmVtb3ZlZCwgIlJlbW92ZWQgU2hhZGVyUHJvZ3JhbSBiZWZvcmUgQ2FudmFzLiIpOwot
ICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVQcm9ncmFt
KCIke2NvbnRleHRUeXBlfSIpYCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShgZGVsZXRlQ29udGV4dCgpYCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0p
OwotICAgIH0KLX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9z
ZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvc2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkLmh0bWwKaW5kZXggNjU3YTNhYjhjMWZmZGI4NmNl
MDg3MGRhNDcyYjk2YWRmMjE5MjhiMC4uZDM5ZWMzMDk1ZTFiZTU0ODNlN2NhYzJkNzFmOWQyNDMy
MTQxZGYwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRTaGFk
ZXJQcm9ncmFtRGlzYWJsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3NldFNoYWRlclByb2dyYW1EaXNhYmxlZC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFk
ZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9
InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUg
dmVjMyBwb3NpdGlvbjsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVk
Lmh0bWwKaW5kZXggZDQwODljMzgxNWE2OTRkYTE1NmJlMDIwMTEzOGE0NTZkNjBiY2YwYS4uOGE3
OTQzZDU1Y2Q2YzFjYmQwNTRiYjA4YzFlZmJkNjJmNjkzMzBjMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFNoYWRlclByb2dyYW1IaWdobGln
aHRlZC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0
aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9
Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsKICAgICB2
b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWwKaW5kZXggMmNl
NzlmMmNhN2E3ZWVmNmNjYWMwN2NjMzQ4OWJlMWFlODQ1Y2EwYS4uM2M2MzExZDkyMzg1NzNhNjE1
OTAxNTlhMjhlYzc4NDJmOGU0MDQ0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbC5odG1s
CkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmds
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGxldCBzdWl0
ZSA9IGluaXRpYWxpemVUZXN0U3VpdGUoIndlYmdsIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbDIuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdl
YmdsMi5odG1sCmluZGV4IDI2M2ZmY2FjMGI5YjNmNzUwMDkxZDgyZDNiODdkYmQ4MDNhNzkxMzIu
LjkyZmEzMDYxZmY1OGQyY2Q1ZWU4YmUxMWIyOTY3ODlhOGVlMTlkNzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmds
Mi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1h
ZGQtcmVtb3ZlLXdlYmdsMi5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFt
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclBy
b2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBpZiAod2luZG93
LmludGVybmFscykKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR0wyRW5hYmxlZCh0cnVl
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3Jh
bS1hZGQtcmVtb3ZlLXdlYmdwdS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM2OGQxZmJhZmJmZTM0ZTY4Yzk0ZDk4NzUzY2EwMjRkNTVjNGZlOGQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRk
LXJlbW92ZS13ZWJncHUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK0NPTlNPTEUgTUVT
U0FHRTogR1BVRGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSgpOiBXSExTTCBjb21waWxlIGVy
cm9yOiBDYW5ub3QgbGV4OiBDYW5ub3QgY29uc3VtZSB0b2tlbgorQ09OU09MRSBNRVNTQUdFOiBH
UFVEZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUoKTogV0hMU0wgY29tcGlsZSBlcnJvcjogQ2Fu
bm90IGxleDogQ2Fubm90IGNvbnN1bWUgdG9rZW4KK0NPTlNPTEUgTUVTU0FHRTogR1BVRGV2aWNl
LmNyZWF0ZUNvbXB1dGVQaXBlbGluZSgpOiBXSExTTCBjb21waWxlIGVycm9yOiBDYW5ub3QgbGV4
OiBDYW5ub3QgY29uc3VtZSB0b2tlbgorQ09OU09MRSBNRVNTQUdFOiBHUFVEZXZpY2UuY3JlYXRl
UmVuZGVyUGlwZWxpbmUoKTogV0hMU0wgY29tcGlsZSBlcnJvcjogQ2Fubm90IGxleDogQ2Fubm90
IGNvbnN1bWUgdG9rZW4KK1Rlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIHRyYWNrcyBjcmVhdGlvbiBh
bmQgZGVzdHJ1Y3Rpb24gb2YgV2ViR1BVIHNoYWRlciBwcm9ncmFtcy4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVQorLS0gUnVubmluZyB0ZXN0
IGNhc2U6IENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5FeGlzdGluZworUEFTUzogQWRkZWQg
ImNvbXB1dGUiIFNoYWRlclByb2dyYW0uCitQQVNTOiBBZGRlZCAicmVuZGVyIiBTaGFkZXJQcm9n
cmFtLgorUEFTUzogVGhlcmUgc2hvdWxkIGJlIHR3byBTaGFkZXJQcm9ncmFtLgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkFkZGVkLkNvbXB1dGUu
VmFsaWQKK1BBU1M6IEFkZGVkICJjb21wdXRlIiBTaGFkZXJQcm9ncmFtLgorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkFkZGVkLkNvbXB1dGUuSW52
YWxpZAorUEFTUzogU2hvdWxkIG5vdCBjcmVhdGUgYSBTaGFkZXJQcm9ncmFtIGZvciBhbiBpbnZh
bGlkIGRlc2NyaXB0b3IuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMuU2hhZGVyUHJv
Z3JhbS5XZWJHUFUuQWRkZWQuUmVuZGVyLlZhbGlkCitQQVNTOiBBZGRlZCAicmVuZGVyIiBTaGFk
ZXJQcm9ncmFtLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLlNoYWRlclByb2dyYW0u
V2ViR1BVLkFkZGVkLlJlbmRlci5JbnZhbGlkCitQQVNTOiBTaG91bGQgbm90IGNyZWF0ZSBhIFNo
YWRlclByb2dyYW0gZm9yIGFuIGludmFsaWQgZGVzY3JpcHRvci4KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5QYXJlbnREZXZpY2VSZW1vdmVkCitQ
QVNTOiBSZW1vdmVkIFNoYWRlclByb2dyYW0gYmVmb3JlIENhbnZhcy4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2Vi
Z3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRk
LXJlbW92ZS13ZWJncHUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDBmYWI3ODM4MTMwY2M5NGIwM2JmOTFk
OTZmMjI3MDkwNGViMDEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKQEAgLTAsMCArMSwx
NDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJn
cHUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRvdy5iZWZvcmVUZXN0ID0gYXN5bmMgZnVu
Y3Rpb24oKSB7CisgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICBjcmVhdGVDb21wdXRl
UGlwZWxpbmUoIklOVkFMSUQiKSwKKyAgICAgICAgY3JlYXRlUmVuZGVyUGlwZWxpbmUoIklOVkFM
SUQiKSwKKyAgICBdKTsKK307CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHN1aXRlID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJH
UFVgKTsKKworICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOwor
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhIGNhbnZh
cy4iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2Vz
Lmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CisKKyAgICBhc3lu
YyBmdW5jdGlvbiBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgeworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgbGV0IGxp
c3RlbmVySXRlbUFkZGVkID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAg
ICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOworICAgICAgICAgICAg
ICAgIGlmIChwcm9ncmFtLnByb2dyYW1UeXBlICE9PSBwcm9ncmFtVHlwZSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCBgQWRkZWQgIiR7cHJvZ3Jh
bVR5cGV9IiBTaGFkZXJQcm9ncmFtLmApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KHByb2dyYW0uY2FudmFzID09PSBjYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBi
ZSBmb3IgdGhlIGtub3duIENhbnZhcy4iKTsKKworICAgICAgICAgICAgICAgIHJlc29sdmUocHJv
Z3JhbSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BV
LkV4aXN0aW5nIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRlclByb2dy
YW1BZGRlZCBpcyBzZW50IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQg
aXMgZW5hYmxlZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgYXN5bmMg
ZnVuY3Rpb24gY2hlY2tFeGlzdHMocHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgICAgICAgICBpZiAo
SW5zcGVjdG9yVGVzdC5TaGFkZXJQcm9ncmFtLnByb2dyYW1Gb3JUeXBlKHByb2dyYW1UeXBlKSkg
eworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYEFkZGVkICIke3Byb2dy
YW1UeXBlfSIgU2hhZGVyUHJvZ3JhbS5gKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGF3YWl0IGF3YWl0UHJvZ3JhbUFk
ZGVkKHByb2dyYW1UeXBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXdhaXQgUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGNoZWNrRXhpc3RzKFdJLlNoYWRlclByb2dyYW0u
UHJvZ3JhbVR5cGUuQ29tcHV0ZSksCisgICAgICAgICAgICAgICAgY2hlY2tFeGlzdHMoV0kuU2hh
ZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpLAorICAgICAgICAgICAgXSk7CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY2FudmFzLnNoYWRlclByb2dyYW1Db2xs
ZWN0aW9uLnNpemUsIDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIFNoYWRlclByb2dyYW0uIik7Cisg
ICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkNhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21wdXRlLlZhbGlkIiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3JlbW92ZWQgZXZlbnRzIGFyZSBz
ZW50LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNl
LmFsbChbCisgICAgICAgICAgICAgICAgYXdhaXRQcm9ncmFtQWRkZWQoV0kuU2hhZGVyUHJvZ3Jh
bS5Qcm9ncmFtVHlwZS5Db21wdXRlKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGBjcmVhdGVDb21wdXRlUGlwZWxpbmUoKWApLAorICAgICAgICAgICAgXSk7
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkNhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21wdXRlLkludmFsaWQi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYWRkZWQvcmVtb3ZlZCBldmVudHMg
YXJlIHNlbnQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBzaGFk
ZXJQcm9ncmFtQWRkZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gY2Fu
dmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNv
bGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBz
aGFkZXJQcm9ncmFtQWRkZWQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZSgiSU5WQUxJRCIpYCk7CisKKyAgICAgICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVj
dGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBs
aXN0ZW5lcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKHNoYWRlclBy
b2dyYW1BZGRlZCwgIlNob3VsZCBub3QgY3JlYXRlIGEgU2hhZGVyUHJvZ3JhbSBmb3IgYW4gaW52
YWxpZCBkZXNjcmlwdG9yLiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuQWRk
ZWQuUmVuZGVyLlZhbGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVk
L3JlbW92ZWQgZXZlbnRzIGFyZSBzZW50LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAg
ICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYXdhaXRQcm9ncmFt
QWRkZWQoV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpLAorICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVJlbmRlclBpcGVsaW5lKClg
KSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuQWRk
ZWQuUmVuZGVyLkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYWRk
ZWQvcmVtb3ZlZCBldmVudHMgYXJlIHNlbnQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAg
ICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtQWRkZWQgPSBmYWxzZTsKKworICAgICAgICAgICAg
bGV0IGxpc3RlbmVyID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgICAgICBzaGFkZXJQcm9ncmFtQWRkZWQgPSB0cnVlOworICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNy
ZWF0ZVJlbmRlclBpcGVsaW5lKCJJTlZBTElEIilgKTsKKworICAgICAgICAgICAgY2FudmFzLnNo
YWRlclByb2dyYW1Db2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RmFsc2Uoc2hhZGVyUHJvZ3JhbUFkZGVkLCAiU2hvdWxkIG5vdCBjcmVhdGUgYSBTaGFkZXJQ
cm9ncmFtIGZvciBhbiBpbnZhbGlkIGRlc2NyaXB0b3IuIik7CisgICAgICAgIH0KKyAgICB9KTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy5TaGFkZXJQ
cm9ncmFtLldlYkdQVS5QYXJlbnREZXZpY2VSZW1vdmVkIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGF0IHRoZSBTaGFkZXJQcm9ncmFtIGlzIHJlbW92ZWQgYmVmb3JlIGl0J3MgcGFy
ZW50IENhbnZhcy4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAg
ICAgbGV0IGNhbnZhc1JlbW92ZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c1JlbW92ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0
cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtQ291
bnQgPSBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2l6ZTsKKyAgICAgICAgICAgIGxl
dCBsaXN0ZW5lckl0ZW1SZW1vdmVkID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9
PiB7CisgICAgICAgICAgICAgICAgaWYgKC0tc2hhZGVyUHJvZ3JhbUNvdW50KQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3Jh
bUNvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1S
ZW1vdmVkLCBsaXN0ZW5lckl0ZW1SZW1vdmVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEZhbHNlKGNhbnZhc1JlbW92ZWQsICJSZW1vdmVkIFNoYWRlclByb2dyYW0gYmVm
b3JlIENhbnZhcy4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZGVsZXRlRGV2
aWNlKClgKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4K
KyAgICA8cD5UZXN0IHRoYXQgQ2FudmFzTWFuYWdlciB0cmFja3MgY3JlYXRpb24gYW5kIGRlc3Ry
dWN0aW9uIG9mIFdlYkdQVSBzaGFkZXIgcHJvZ3JhbXMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDhmM2ZlZTllMTQwNGViMmM0ZDA4NDIwNmI2Y2VmN2M4YzQ0YTc0YzEu
LmNlMzdlOGU2YTljODAwZWZjOGY3ZjA2ZWNjNDUyY2E0MzFjYjEwMTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci1leHBlY3RlZC50eHQK
QEAgLTEsMzggKzEsOCBAQAotQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogRVJST1I6IDA6MTogJ0lO
VkFMSUQnIDogc3ludGF4IGVycm9yCi1DT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBFUlJPUjogMDox
OiAnSU5WQUxJRCcgOiBzeW50YXggZXJyb3IKLVRlc3QgY29tcGlsYXRpb24gb2Ygc2hhZGVycyBh
ZnRlciBiZWluZyBhdHRhY2hlZCB0byBhIHByb2dyYW0sIHdpdGggYW5kIHdpdGhvdXQgc3ludGF4
IGVycm9ycy4KK0NvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLgog
CiAKID09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnVwZGF0ZVNoYWRlcgotLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIudmVydGV4U2hhZGVyVmFsaWQKLQotICAg
IHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLCAyLCAzLCA0
KTsKLSAgICB9Ci0KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIu
ZnJhZ21lbnRTaGFkZXJWYWxpZAotCi0gICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAg
ICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwgMC4y
LCAwLjMsIDAuNCk7Ci0gICAgfQotCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBk
YXRlU2hhZGVyLmludmFsaWRQcm9ncmFtSWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMu
dXBkYXRlU2hhZGVyLlByb2dyYW1JZC5JbnZhbGlkCiBQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBl
cnJvci4KIEVycm9yOiBNaXNzaW5nIHByb2dyYW0gZm9yIGdpdmVuIHByb2dyYW1JZAogCi0tLSBS
dW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkU2hhZGVyVHlwZQot
UEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuCi1FcnJvcjogTWlzc2luZyBzaGFkZXIgZm9y
IGdpdmVuIHNoYWRlclR5cGUKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVT
aGFkZXIuaW52YWxpZFZlcnRleFNoYWRlclNvdXJjZQotUEFTUzogU2hvdWxkIHByb2R1Y2UgZXJy
b3IuCi1FcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIKLQotLS0gUnVubmluZyB0ZXN0IGNh
c2U6IENhbnZhcy51cGRhdGVTaGFkZXIuaW52YWxpZEZyYWdtZW50U2hhZGVyU291cmNlCi1QQVNT
OiBTaG91bGQgcHJvZHVjZSBlcnJvci4KLUVycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlcgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13
ZWJnbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJnbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJiYmE3MjE4ZmY1YjNjYzRhZTk1
YjNhOTA1ZDFkMzBmNmVjYmE1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0
IEBACitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBFUlJPUjogMDoxOiAnSU5WQUxJRCcgOiBzeW50
YXggZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVSUk9SOiAwOjE6ICdJTlZBTElEJyA6
IHN5bnRheCBlcnJvcgorV2ViR0wgdGVzdHMgZm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29tbWFu
ZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5W
YWxpZAorCisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0
KDEsIDIsIDMsIDQpOworICAgIH0KKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVw
ZGF0ZVNoYWRlci5XZWJHTC5GcmFnbWVudC5WYWxpZAorCisgICAgcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2
ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5JbnZhbGlkCitQQVNTOiBTaG91bGQg
cHJvZHVjZSBlcnJvci4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBz
aGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENh
bnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52YWxpZAorUEFTUzogU2hvdWxkIHBy
b2R1Y2UgZXJyb3IuCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4gc2hh
ZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52
YXMudXBkYXRlU2hhZGVyLldlYkdMLlNoYWRlclR5cGUuSW52YWxpZAorUEFTUzogU2hvdWxkIHBy
b2R1Y2UgYW4gZXJyb3IuCitFcnJvcjogVW5rbm93biBzaGFkZXJUeXBlOiBJTlZBTElEX1NIQURF
Ul9UWVBFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRl
U2hhZGVyLXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJnbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkNTc4ZTRlMzk4NzhhMTA0NGM4YjIwM2ExNDA2
NGI2OWM3ZTEzYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3VwZGF0ZVNoYWRlci13ZWJnbC5odG1sCkBAIC0wLDAgKzEsMTI5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorICAg
IHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwg
MC4wLCAxLjApOworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZnJhZ21lbnQtc2hhZGVy
IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKworICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQo
MS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlv
biBsb2FkKCkgeworICAgIGNyZWF0ZVByb2dyYW0oIndlYmdsIik7CisgICAgbGlua1Byb2dyYW0o
InZlcnRleC1zaGFkZXIiLCAiZnJhZ21lbnQtc2hhZGVyIik7CisKKyAgICBydW5UZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMIik7CisKKyAgICBmdW5jdGlv
biB2YWxpZFNvdXJjZVRlc3Qoe25hbWUsIHNoYWRlclR5cGUsIHNvdXJjZX0pIHsKKyAgICAgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIHRlc3Qo
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBX
SS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgICAgIGlmICgh
c2hhZGVyUHJvZ3JhbSkgeworICAgICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hh
ZGVyIHByb2dyYW0iKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgbGV0IHByb2dyYW1JZCA9IHNoYWRlclByb2dyYW0uaWRl
bnRpZmllcjsKKworICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihwcm9n
cmFtSWQsIHNoYWRlclR5cGUsIHNvdXJjZSkKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBD
YW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHByb2dyYW1JZCwgc2hhZGVyVHlwZSkpCisg
ICAgICAgICAgICAgICAgLnRoZW4oKHtzb3VyY2V9KSA9PiBJbnNwZWN0b3JUZXN0LmxvZyhzb3Vy
Y2UpKQorICAgICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZhbGlkU291cmNlVGVzdCh7CisgICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5WYWxpZCIsCisgICAgICAg
IHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAorICAgICAgICBzb3Vy
Y2U6IGAKKyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQo
MSwgMiwgMywgNCk7CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIHZhbGlkU291cmNlVGVzdCh7
CisgICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLkZyYWdtZW50LlZhbGlk
IiwKKyAgICAgICAgc2hhZGVyVHlwZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwK
KyAgICAgICAgc291cmNlOiBgCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2
b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwgMC4yLCAw
LjMsIDAuNCk7CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIGludmFsaWRTb3Vy
Y2VUZXN0KHtuYW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgeworICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFu
YWdlci5zaGFkZXJQcm9ncmFtc1swXTsKKyAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dy
YW0pIHsKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFt
IikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlkZW50
aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGVycm9y
LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBl
cnJvcik7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaW52YWxpZFNvdXJj
ZVRlc3QoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5WZXJ0ZXgu
SW52YWxpZCIsCisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVy
dGV4LAorICAgICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICB9KTsKKworICAgIGludmFsaWRT
b3VyY2VUZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJh
Z21lbnQuSW52YWxpZCIsCisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5
cGUuRnJhZ21lbnQsCisgICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5X
ZWJHTC5TaGFkZXJUeXBlLkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQg
c2hhZGVyIHR5cGVzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNN
YW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFt
KSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0
IHNoYWRlclR5cGUgPSAiSU5WQUxJRF9TSEFERVJfVFlQRSI7CisgICAgICAgICAgICBjb25zdCBz
b3VyY2UgPSAiSU5WQUxJRF9TT1VSQ0UiOworICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRl
U2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJy
b3IpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXJyb3Is
ICJTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RD
YXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Imxv
YWQoKSI+Cis8cD5XZWJHTCB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLjwv
cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJiZWQzNzIyM2M3NWMwZmU1ODU2MWU4MmFiMGQxNDk2NWM0YWNiZmUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK1dlYkdQVSB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0
ZVNoYWRlciBjb21tYW5kLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnVwZGF0
ZVNoYWRlci5XZWJHUFUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVy
LldlYkdQVS5Db21wdXRlLlZhbGlkCitQQVNTOiBTb3VyY2Ugc2hvdWxkIGhhdmUgY2hhbmdlZC4K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLkNvbXB1
dGUuSW52YWxpZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IEZh
aWxlZCB0byB1cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dy
YW1JZAorUEFTUzogU291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5WZXJ0ZXguVmFsaWQKK1BBU1M6IFNv
dXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnVwZGF0ZVNoYWRlci5XZWJHUFUuVmVydGV4LkludmFsaWQKK1BBU1M6IFNob3VsZCBwcm9kdWNl
IGFuIGV4Y2VwdGlvbi4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBz
aGFkZXJUeXBlIGZvciBnaXZlbiBwcm9ncmFtSWQKK1BBU1M6IFNvdXJjZSBzaG91bGQgaGF2ZSBj
aGFuZ2VkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJH
UFUuRnJhZ21lbnQuVmFsaWQKK1BBU1M6IFNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuRnJhZ21lbnQu
SW52YWxpZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IEZhaWxl
ZCB0byB1cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1J
ZAorUEFTUzogU291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTNjMGU4NjRhNDNiNzJiMTdjMzM1YTY1ODI2NmJmYzkwNzVlOTViMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5o
dG1sCkBAIC0wLDAgKzEsMTA3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ3B1LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
KCkgeworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2Fu
dmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUiKTsKKworICAgIGZ1bmN0aW9uIHRlc3Qoe25hbWUsIHBy
b2dyYW1UeXBlLCBzaGFkZXJUeXBlLCBzb3VyY2UsIHNob3VsZFRocm93fSkgeworICAgICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IEluc3BlY3RvclRl
c3QuU2hhZGVyUHJvZ3JhbS5wcm9ncmFtRm9yVHlwZShwcm9ncmFtVHlwZSk7CisgICAgICAgICAg
ICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKQorICAgICAgICAgICAgICAgICAgICB0aHJvdyAiTWlz
c2luZyBzaGFkZXIgcHJvZ3JhbSI7CisKKyAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxTb3Vy
Y2UgPSBhd2FpdCBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0u
aWRlbnRpZmllciwgc2hhZGVyVHlwZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkVGhy
b3cpIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNl
cHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgQ2FudmFz
QWdlbnQudXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwg
c291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFk
ZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSk7CisKKyAgICAgICAgICAg
ICAgICBsZXQgbmV3U291cmNlID0gYXdhaXQgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJj
ZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUpOworCisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwob3JpZ2luYWxTb3VyY2UsIG5l
d1NvdXJjZSwgIlNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICAgICAgfQor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51
cGRhdGVTaGFkZXIuV2ViR1BVLkNvbXB1dGUuVmFsaWQiLAorICAgICAgICBwcm9ncmFtVHlwZTog
V0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlLAorICAgICAgICBzaGFkZXJUeXBl
OiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZSwKKyAgICAgICAgc291cmNlOiBg
Ly8gQ0hBTkdFRCBDT01QVVRFCitbbnVtdGhyZWFkcygyLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBj
b21wdXRlU2hhZGVyKGRldmljZSBmbG9hdFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUwKSwgZmxvYXQz
IHRocmVhZElEIDogU1ZfRGlzcGF0Y2hUaHJlYWRJRCkgeworICAgIGJ1ZmZlclt1aW50KHRocmVh
ZElELngpXSA9IGJ1ZmZlclt1aW50KHRocmVhZElELngpXSAqIDIuMDsKK30KK2AsCisgICAgfSk7
CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BV
LkNvbXB1dGUuSW52YWxpZCIsCisgICAgICAgIHByb2dyYW1UeXBlOiBXSS5TaGFkZXJQcm9ncmFt
LlByb2dyYW1UeXBlLkNvbXB1dGUsCisgICAgICAgIHNoYWRlclR5cGU6IFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5Db21wdXRlLAorICAgICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICAg
ICAgc2hvdWxkVGhyb3c6IHRydWUsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFt
ZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLlZlcnRleC5WYWxpZCIsCisgICAgICAgIHBy
b2dyYW1UeXBlOiBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlciwKKyAgICAgICAg
c2hhZGVyVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCwKKyAgICAgICAg
c291cmNlOiBgLy8gQ0hBTkdFRCBWRVJURVgKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVyKGZs
b2F0NCBwb3NpdGlvbiA6IGF0dHJpYnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkgOiBT
Vl9Qb3NpdGlvbiB7CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQorCitmcmFnbWVudCBmbG9hdDQg
ZnJhZ21lbnRTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFyZ2V0
IDAgeworICAgIHJldHVybiBwb3NpdGlvbjsKK30KK2AsCisgICAgfSk7CisKKyAgICB0ZXN0KHsK
KyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLlZlcnRleC5JbnZhbGlk
IiwKKyAgICAgICAgcHJvZ3JhbVR5cGU6IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVu
ZGVyLAorICAgICAgICBzaGFkZXJUeXBlOiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVy
dGV4LAorICAgICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICAgICAgc2hvdWxkVGhyb3c6IHRy
dWUsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVT
aGFkZXIuV2ViR1BVLkZyYWdtZW50LlZhbGlkIiwKKyAgICAgICAgcHJvZ3JhbVR5cGU6IFdJLlNo
YWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyLAorICAgICAgICBzaGFkZXJUeXBlOiBXSS5T
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsCisgICAgICAgIHNvdXJjZTogYC8vIENI
QU5HRUQgRlJBR01FTlQKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVyKGZsb2F0NCBwb3NpdGlv
biA6IGF0dHJpYnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkgOiBTVl9Qb3NpdGlvbiB7
CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQorCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRTaGFk
ZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFyZ2V0IDAgeworICAgIHJl
dHVybiBwb3NpdGlvbjsKK30KK2AsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFt
ZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLkZyYWdtZW50LkludmFsaWQiLAorICAgICAg
ICBwcm9ncmFtVHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIsCisgICAg
ICAgIHNoYWRlclR5cGU6IFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCwKKyAg
ICAgICAgc291cmNlOiAiSU5WQUxJRCIsCisgICAgICAgIHNob3VsZFRocm93OiB0cnVlLAorICAg
IH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKzxwPldlYkdQVSB0ZXN0cyBmb3IgQ2Fu
dmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sCmluZGV4IGU0OWFkMmIz
MTNjNzc3NmUxMDk4ZDA4NWU1NzQ2ZGY2NmFiZjBhM2EuLjdiMGE0Y2ZmOTBkMzM5MmM5M2Y4NDdi
NjcwZmFlOTA0NzZjMDBjZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvdXBkYXRlU2hhZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91
cGRhdGVTaGFkZXIuaHRtbApAQCAtMiw3NCArMiwxMiBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0
aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LXZlcnRleCI+Ci0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotICAg
IHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAg
ICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOwotICAgIH0KLTwvc2Ny
aXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgY3JlYXRlUHJvZ3JhbSgid2Vi
Z2wiKTsKLSAgICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIi
KTsKLQotICAgIHJ1blRlc3QoKTsKLX0KLQogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBsZXQgc3Vp
dGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy51cGRhdGVTaGFkZXIi
KTsKIAotICAgIGZ1bmN0aW9uIHZhbGlkU291cmNlVGVzdCh7bmFtZSwgc2hhZGVyVHlwZSwgc291
cmNlfSkgewotICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lLAot
ICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBsZXQg
c2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAg
ICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJl
amVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBsZXQgcHJvZ3JhbUlkID0g
c2hhZGVyUHJvZ3JhbS5pZGVudGlmaWVyOwotCi0gICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQu
dXBkYXRlU2hhZGVyKHByb2dyYW1JZCwgc2hhZGVyVHlwZSwgc291cmNlKQotICAgICAgICAgICAg
ICAgIC50aGVuKCgpID0+IENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2UocHJvZ3JhbUlk
LCBzaGFkZXJUeXBlKSkKLSAgICAgICAgICAgICAgICAudGhlbigoe2NvbnRlbnR9KSA9PiBJbnNw
ZWN0b3JUZXN0LmxvZyhjb250ZW50KSkKLSAgICAgICAgICAgICAgICAudGhlbihyZXNvbHZlLCBy
ZWplY3QpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB2YWxpZFNv
dXJjZVRlc3QoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci52ZXJ0ZXhTaGFk
ZXJWYWxpZCIsCi0gICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVy
dGV4LAotICAgICAgICBzb3VyY2U6IGAKLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBn
bF9Qb3NpdGlvbiA9IHZlYzQoMSwgMiwgMywgNCk7Ci0gICAgfQotYCwKLSAgICB9KTsKLQotICAg
IHZhbGlkU291cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmZy
YWdtZW50U2hhZGVyVmFsaWQiLAotICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNBZ2VudC5TaGFk
ZXJUeXBlLkZyYWdtZW50LAotICAgICAgICBzb3VyY2U6IGAKLSAgICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKLQotICAgIHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX0ZyYWdDb2xvciA9
IHZlYzQoMC4xLCAwLjIsIDAuMywgMC40KTsKLSAgICB9Ci1gLAotICAgIH0pOwotCiAgICAgc3Vp
dGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZh
bGlkUHJvZ3JhbUlkIiwKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuUHJvZ3Jh
bUlkLkludmFsaWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgcHJvZ3JhbSBpZGVu
dGlmaWVycyBzaG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCBy
ZWplY3QpIHsKICAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZCA9ICJJTlZBTElEX1BST0dSQU1f
SUQiOwpAQCAtODMsNjIgKzIxLDExIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIH0KICAg
ICB9KTsKIAotICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkNhbnZhcy51
cGRhdGVTaGFkZXIuaW52YWxpZFNoYWRlclR5cGUiLAotICAgICAgICBkZXNjcmlwdGlvbjogIklu
dmFsaWQgc2hhZGVyIHR5cGVzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAotICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5j
YW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwotICAgICAgICAgICAgaWYgKCFzaGFkZXJQ
cm9ncmFtKSB7Ci0gICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFt
IikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGNvbnN0IHNoYWRlclR5cGUgPSAiSU5WQUxJRF9TSEFERVJfVFlQRSI7Ci0gICAgICAgICAgICBj
b25zdCBzb3VyY2UgPSAiSU5WQUxJRF9TT1VSQ0UiOwotICAgICAgICAgICAgQ2FudmFzQWdlbnQu
dXBkYXRlU2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNl
LCAoZXJyb3IpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZXJyb3IsICJTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4iKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGZ1bmN0aW9u
IGludmFsaWRTb3VyY2VUZXN0KHtuYW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7Ci0gICAgICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWUsCi0gICAgICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0g
V0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAgICAgICBpZiAo
IXNoYWRlclByb2dyYW0pIHsKLSAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNo
YWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQ
cm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBw
cm9kdWNlIGVycm9yLiIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RXJyb3I6ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
aW52YWxpZFNvdXJjZVRlc3QoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5p
bnZhbGlkVmVydGV4U2hhZGVyU291cmNlIiwKLSAgICAgICAgc2hhZGVyVHlwZTogQ2FudmFzQWdl
bnQuU2hhZGVyVHlwZS5WZXJ0ZXgsCi0gICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAotICAgIH0p
OwotCi0gICAgaW52YWxpZFNvdXJjZVRlc3QoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0
ZVNoYWRlci5pbnZhbGlkRnJhZ21lbnRTaGFkZXJTb3VyY2UiLAotICAgICAgICBzaGFkZXJUeXBl
OiBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLkZyYWdtZW50LAotICAgICAgICBzb3VyY2U6ICJJTlZB
TElEIiwKLSAgICB9KTsKLQogICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQog
PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci0gICAgPHA+VGVzdCBj
b21waWxhdGlvbiBvZiBzaGFkZXJzIGFmdGVyIGJlaW5nIGF0dGFjaGVkIHRvIGEgcHJvZ3JhbSwg
d2l0aCBhbmQgd2l0aG91dCBzeW50YXggZXJyb3JzLjwvcD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxwPkNvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLjwv
cD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNmUxOWUxNTEyM2U0NGFiNzcwMjhjNWRmMjY0OTQyMGE3ZjYyMzllZC4uOGQx
ZjEwZTBhZTFlZTc4MzM0MmUwZTQ4NWJlNGMzNjMzMjdlZTJkOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNTAsNyArMTE1MCwxMCBAQCB3ZWJraXQu
b3JnL2IvMTY4NDY2IGh0dHAvdGVzdHMvc2VjdXJpdHkvYnlwYXNzaW5nLWNvcnMtY2hlY2tzLWZv
ci1leHRlbnNpb24tdXJscwogd2Via2l0Lm9yZy9iLzE5MTAwNSB3ZWJncHUvIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTkxMDA1IGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1
Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q2xpZW50Tm9kZXMtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEwMDUg
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMTkxMDA1IGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9yL2NhbnZhcy9z
aGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi8xOTEwMDUgaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lw
IF0KIAogIyBObyBzdXBwb3J0IGZvciByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MgeWV0CiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA5MTk3MzViYzA3OWEyMmUxN2ZhNzg3ZmQ4
YmM1Yjg4MGE3NTc2YTguLjMxYmZhOTg0MThmODZiNjA4MmEzMWY1YjBhNzRkYmRlOTA5ZWQ2OGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NSw3ICs0
NSwxMCBAQCB3ZWJraXQub3JnL2IvMjAwMzA4IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50
LW9ic2VydmF0aW9uL25vbi12aXNpYmxlLWNvbnRlbgogd2ViZ3B1IFsgU2tpcCBdCiBpbnNwZWN0
b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3Iv
Y2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5z
cGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogIyBFbmNy
eXB0ZWQgTWVkaWEgRXh0ZW5zaW9ucyBhcmUgbm90IGVuYWJsZWQKIG1lZGlhL2VuY3J5cHRlZC1t
ZWRpYS8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBkMzQ5MzJkMWNlYjczNjBiM2RmN2Q0MzA3N2M5NDY0MmRjYWYyYjI5Li5iMWZlNWYwNThh
ZWQ1ZDY3OWQ2MGI3ODg0Nzg3YzE5Y2ZlMmQzMzBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC00Nyw3ICs0NywxMCBAQCBjc3MtZGFyay1t
b2RlIFsgU2tpcCBdCiB3ZWJncHUgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNv
bnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVu
dE5vZGVzLXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFk
ZXJTb3VyY2Utd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3Jh
bS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci13ZWJncHUuaHRtbCBbIFNraXAgXQogCiAjIE1lZGlhIFN0cmVhbSBBUEkgdGVzdGlu
ZyBpcyBub3Qgc3VwcG9ydGVkIGZvciBXSzEgeWV0LgogZmFzdC9tZWRpYXN0cmVhbQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYTVjNGRmMDgyZWJjNDFl
YTgwZjI5ODU5YTI2MDhhNzlmZWM0ODFiLi4zNzJiNWJkN2U4YjZhNjA0ZmFmM2NjNzczY2ZhZDQw
NjY2ODFjNGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTc4MSw3ICsxNzgxLDEwIEBAIHdlYmtpdC5vcmcvYi8xOTA5NzYgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2hhCiB3ZWJraXQub3Jn
L2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIHdlYmdwdSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE5
OTI3NSBbIEhpZ2hTaWVycmEgXSBpbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdw
dS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLXdlYmdwdS5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNo
YWRlclNvdXJjZS13ZWJncHUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE5OTI3NSBbIEhp
Z2hTaWVycmEgXSBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52
YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBdCit3ZWJraXQu
b3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVy
LXdlYmdwdS5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xODk2ODAgcGxhdGZvcm0vbWFj
L21lZGlhL2F1ZGlvLXNlc3Npb24tY2F0ZWdvcnktdmlkZW8tcGF1c2VkLmh0bWwgWyBQYXNzIFRp
bWVvdXQgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDc1MDNmZjQ4OWJlMTA0YWZlMzBhMTFjMzU3MDMzOGJlYTE3OTczYzEuLjM2ZDdmY2Y2NzI3OGEy
YmE5M2NjMzdhYzE1MmE2Y2IyOGQyNDhlYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0yMDAxLDEyICsyMDAxLDEzIEBAIGluc3BlY3Rvci9jYW52YXMv
cmVjb3JkaW5nLXdlYmdsMi1tZW1vcnlMaW1pdC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2Fu
dmFzL3JlY29yZGluZy13ZWJnbDItc25hcHNob3RzLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9j
YW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZh
cy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbCBbIFNraXAgXQotaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dFNoYWRlclNvdXJjZS13ZWJnbC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jlc29s
dmVDb250ZXh0LXdlYmdsLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ2wyLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3Jh
bS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVy
UHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsMi5odG1sIFsgU2tpcCBdCi1pbnNwZWN0b3IvY2FudmFz
L3VwZGF0ZVNoYWRlci5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci13ZWJnbC5odG1sIFsgU2tpcCBdCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMj
IyMjIyMjIyMjIyAgICAgICAgICBFbmQgV2ViR0wgSXNzdWVzICAgICAgICAgICAgICAjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTQyNDYsNyArNDI0
NywxMCBAQCB3ZWJraXQub3JnL2IvMTkwNTIwIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3Rl
LWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy13aXRoLQogd2ViZ3B1IFsgU2tpcCBdCiBpbnNwZWN0
b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3Iv
Y2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5z
cGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogd2Via2l0
Lm9yZy9iLzE5MTE5NCBmYXN0L2Jsb2NrL2Jhc2ljL2lubGluZS1jb250ZW50LXdpdGgtZmxvYXRp
bmctaW1hZ2UuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE5MTE5NCBmYXN0L2Jsb2Nr
L2Jhc2ljL2lubGluZS1jb250ZW50LXdpdGgtZmxvYXRpbmctaW1hZ2VzMi5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBhYmQ4Y2M5YjA4NmFjYmE3NGViMDFiNjI2ZTk1YmIzMzk2YTE4MWI2Li44Mjc1ZDBlZDRk
MGVmNWY4YjA4NTRlMjBmZjhmMmFlODQ1ZmM4YjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5OCw3ICsyOTgsMTAgQEAgd2ViZ2wv
d2ViZ2wyLXJlbmRlcmluZy1jb250ZXh0LW9idGFpbi5odG1sIFsgU2tpcCBdCiB3ZWJncHUgWyBT
a2lwIF0KIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lw
IF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLXdlYmdwdS5odG1sIFsgU2tp
cCBdCitpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0bWwgWyBT
a2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lw
IF0KK2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1s
IFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUuaHRtbCBbIFNr
aXAgXQogCiAjIFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCBpcyBkaXNhYmxlZAogbWVkaWEvYWly
cGxheS10YXJnZXQtYXZhaWxhYmlsaXR5Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmNkMWQxN2I1ZmVjMjBmNjMzNjdhYjJiNDBl
NmI3MTI5MjYwODczNC4uNjg2MGQ3OGU2MWIyNDU1ODYxZDUxMWNmMDJiNmI1YTBjZjRlYzU2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwMiw3ICsz
MDIsMTAgQEAgQnVnKFdQRSkganMvc3RyaW5naW1wbC10by1qc3N0cmluZy1vbi1sYXJnZS1zdHJp
bmdzLTMuaHRtbCBbIFNraXAgXQogd2ViZ3B1IFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL2Ny
ZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RDbGllbnROb2Rlcy13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jl
c29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3NoYWRl
clByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZh
cy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogIyBTa2lwcGVkIGR1ZSB0byB1
bnRlc3RhYmxlIERSTSBrZXkgc3lzdGVtLiBDbGVhcktleSBjb3VudGVycGFydHMgYXJlIHRlc3Rl
ZCBpbnN0ZWFkLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVk
aWEvZHJtLWNoZWNrLWluaXRkYXRhLXR5cGUuaHR0cHMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379393</attachid>
            <date>2019-09-23 14:11:17 -0700</date>
            <delta_ts>2019-09-23 15:27:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201675-20190923141116.patch</filename>
            <type>text/plain</type>
            <size>214643</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGMzZDlkMzZiMjg3YjBjMThhMWEzMGI5Nzk4OGIy
MGJiZWViMmE4N2QuLjg1Y2Q1OTdjNTk4YjUzZDY4ZTJiZTY1ZmYwNDYxNjU5MGEzY2JjNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA5LTIzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHNob3cgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTU1NDM0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uOgorICAgICAgICBBZGQgYSBg
UHJvZ3JhbVR5cGVgIGVudW0gdGhhdCBjb252ZXlzIHRoZSB0eXBlIG9mIHNoYWRlciBwcm9ncmFt
L3BpcGVsaW5lIHdoZW4gbm90aWZ5aW5nIHRoZQorICAgICAgICBmcm9udGVuZCBvZiBhIG5ldyBw
cm9ncmFtCisKIDIwMTktMDktMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSlNDXSBJbnQ1MlJlcChEb3VibGVSZXBBbnlJbnRVc2UpIHNob3VsZCBub3Qg
Y2FsbCBvcGVyYXRpb24gZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYjM4YTU5MGU4ZWFhODgzMzA1
NzFlMTE0MTljMDI0YWU1ZGNmZjYzLi4xNmFiYTIwNmRjYjJjMzAxY2E2Y2JlODBhMWU5MDFhZDVh
NzAzM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTU5IEBACisyMDE5LTA5LTIzICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW52
YXM6IHNob3cgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU1NDM0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAg
ICAgIFRlc3RzOiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0
bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJncHUuaHRtbAorCisgICAgICAgIENyZWF0ZSBjb21tb24gYmFzZSBjbGFzc2VzIGZv
ciBgV2ViR1BVUGlwZWxpbmVgIGFuZCBgR1BVUGlwZWxpbmVgIHNvIHRoYXQgV2ViIEluc3BlY3Rv
ciBjYW4KKyAgICAgICAgaW5zdHJ1bWVudCBib3RoIHJlbmRlciBhbmQgY29tcHV0ZSBzaGFkZXIg
cGlwZWxpbmVzLgorCisgICAgICAgIFJlZmFjdG9yIGBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtYCB0
byBzdXBwb3J0IGJvdGggYFdlYkdMUHJvZ3JhbWAgYW5kIGBXZWJHUFVQaXBlbGluZWAgc28KKyAg
ICAgICAgdGhhdCB0aGUgc2FtZSBvYmplY3QgY2FuIGJlIHVzZWQgZm9yIGFsbCB0eXBlcyBvZiBz
aGFkZXIgInByb2dyYW0icy4KKworICAgICAgICBLZWVwIGEgY29weSBvZiBlYWNoIHNoYWRlciBt
b2R1bGUncyBzb3VyY2UsIGFuZCBhbGxvdyB0aGUgc2hhZGVyIG1vZHVsZSB0byBiZSB1cGRhdGVk
LgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VURldmljZTo6V2ViR1BVRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6
fldlYkdQVURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZVNo
YWRlck1vZHVsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0
ZVJlbmRlclBpcGVsaW5lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZpY2U6
OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
RGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSBjb25zdCk6IERlbGV0
ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5lOjppc1JlbmRlclBpcGVsaW5lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5lOjppc0NvbXB1dGVQaXBlbGluZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZTo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXNN
dXRleCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVQaXBlbGluZTo6V2ViR1BVUGlwZWxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUGlwZWxpbmU6On5XZWJHUFVQaXBlbGluZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R1BVUGlwZWxpbmU6OmlzUmVuZGVyUGlwZWxpbmUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVUGlwZWxpbmU6OmlzQ29tcHV0ZVBpcGVsaW5lIGNvbnN0KToKKwor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGw6CisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNvbXB1dGVQaXBlbGluZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6V2ViR1BVQ29tcHV0ZVBpcGVs
aW5lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6cmVjb21waWxl
KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBl
bGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBpcGVsaW5lOjppc0NvbXB1dGVQ
aXBlbGluZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQ
aXBlbGluZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBlbGlu
ZTo6R1BVQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQaXBl
bGluZTo6cmVjb21waWxlKTogQWRkZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQaXBlbGluZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVu
ZGVyUGlwZWxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lOjpy
ZW5kZXJQaXBlbGluZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUmVuZGVy
UGlwZWxpbmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVSZW5kZXJQaXBlbGlu
ZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUmVuZGVy
UGlwZWxpbmU6OnJlY29tcGlsZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVSZW5kZXJQaXBlbGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGlw
ZWxpbmU6OmlzUmVuZGVyUGlwZWxpbmUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OnRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R1BVUmVuZGVyUGlwZWxpbmU6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5k
ZXJQaXBlbGluZTo6R1BVUmVuZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVu
ZGVyUGlwZWxpbmU6OnJlY29tcGlsZSk6IEFkZGVkLgorCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVU2hhZGVyTW9kdWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVTaGFkZXJN
b2R1bGU6OnNvdXJjZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVVNoYWRlck1vZHVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVTaGFkZXJNb2R1
bGU6OnVwZGF0ZSk6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dy
YW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQ
VVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcjo6R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yKToKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06Okluc3BlY3RvclNoYWRlclByb2dyYW0pOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cHJvZ3JhbSBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cGlwZWxpbmUg
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNoYWRlckZvclR5cGUpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OnJlcXVlc3RTaGFkZXJT
b3VyY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06
OnVwZGF0ZVNoYWRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbTo6Y29udGV4dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtOjpzaGFkZXJGb3JUeXBlKTogRGVsZXRlZC4KKworICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNhbnZhc0FnZW50OjpJbnNwZWN0b3JDYW52YXNBZ2VudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzY2FyZEFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OnJlcXVlc3RTaGFkZXJTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVwZGF0ZVNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6c2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZyYW1lTmF2aWdh
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVX
ZWJHTFByb2dyYW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50Ojp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojppc1dlYkdMUHJvZ3JhbUhpZ2hs
aWdodGVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6
ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNhbnZhc0FnZW50Ojp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cHJvZ3JhbURlc3Ryb3llZFRpbWVy
RmlyZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojpy
ZXNldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVu
YmluZFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZp
bmRJbnNwZWN0b3JQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpkaWRDcmVhdGVQcm9ncmFtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNhbnZhc0FnZW50Ojp3aWxsRGVsZXRlUHJvZ3JhbSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzU2hhZGVy
UHJvZ3JhbUhpZ2hsaWdodGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNhbnZhc0FnZW50OjpjbGVhckNhbnZhc0RhdGEpOiBEZWxldGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQ
cm9ncmFtKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVX
ZWJHUFVQaXBlbGluZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVVBpcGVsaW5lKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW0pOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVs
ZXRlUHJvZ3JhbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0
ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
cmVhdGVXZWJHTFByb2dyYW1JbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtSW1wbCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3Jh
bURpc2FibGVkSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBl
bGluZUltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZUltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbUltcGwpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
RGVsZXRlUHJvZ3JhbUltcGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZEltcGwpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dy
YW1IaWdobGlnaHRlZEltcGwpOiBEZWxldGVkLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xQcm9ncmFtLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFtKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUHJvZ3JhbTo6fldlYkdMUHJvZ3JhbSk6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTY29wZWRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0OjpzaG93SGlnaHRsaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZVByb2dy
YW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0Fy
cmF5cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3
RWxlbWVudHMpOgorICAgICAgICBSZW5hbWUgV2ViR0wgcHJvZ3JhbSBpbnN0cnVtZW50YXRpb24g
cG9pbnRzIHRvIGJlIGxlc3MgYW1iaWd1b3VzLgorCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA5LTIx
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHVzZSBv
ZiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSBpbiBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCmluZGV4IDVlZGQzNTU5NTg2ODdmNmE3NTBlOTNiMjU4NGY4YjZmNzA0ZTU2ZWEuLjQy
NTQzZDcwYWY0ZjlhNDJkODgzYmI3MzkwZThkNmUzNWNiYzI2MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTA5LTIzICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW52YXM6IHNob3cgV2Vi
R1BVIHNoYWRlciBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU1NDM0NTA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIFNob3cgV2Vi
R1BVIHNoYWRlciBwaXBlbGluZXMgKCJwcm9ncmFtcyIpIHVuZGVybmVhdGggZWFjaCBjb3JyZXNw
b25kaW5nIFdlYkdQVSBkZXZpY2UuCisKKyAgICAgICAgQWxsb3cgZWRpdGluZyBvZiBhdHRhY2hl
ZCBzaGFkZXIgbW9kdWxlcyBmb3IgZWFjaCBXZWJHUFUgc2hhZGVyIHBpcGVsaW5lLCBidXQgZG9u
J3QgYWxsb3cKKyAgICAgICAgaGlnaGxpZ2h0aW5nL2Rpc2FibGluZywgYXMgV2ViR1BVIHBpcGVs
aW5lcyBkb24ndCBoYXZlIHRob3NlIGNhcGFiaWxpdGllcy9jb25jZXB0cyB5ZXQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzOgorICAgICAgICAo
V0kuQ2FudmFzT2JzZXJ2ZXIucHJvdG90eXBlLnByb2dyYW1DcmVhdGVkKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5D
YW52YXNNYW5hZ2VyLnByb3RvdHlwZS5wcm9ncmFtQ3JlYXRlZCk6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01vZGVscy9DYW52YXMuanM6CisgICAgICAgIChXSS5DYW52YXMucHJvdG90eXBl
Lm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJlckZvclByb2dyYW1UeXBlKTogQWRkZWQuCisg
ICAgICAgIChXSS5DYW52YXMucHJvdG90eXBlLm5leHRTaGFkZXJQcm9ncmFtRGlzcGxheU51bWJl
cik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9TaGFkZXJQcm9n
cmFtLmpzOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbSk6CisgICAgICAgIChXSS5TaGFkZXJQ
cm9ncmFtLmNvbnRleHRUeXBlU3VwcG9ydHNQcm9ncmFtVHlwZSk6IEFkZGVkLgorICAgICAgICAo
V0kuU2hhZGVyUHJvZ3JhbS5wcm9ncmFtVHlwZVN1cHBvcnRzU2hhZGVyVHlwZSk6IEFkZGVkLgor
ICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHByb2dyYW1UeXBlKTogQWRk
ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUp
OgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuc2V0IGRpc2FibGVkKToKKyAg
ICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90eXBlLnJlcXVlc3RTaGFkZXJTb3VyY2UpOgor
ICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUudXBkYXRlU2hhZGVyKToKKyAgICAg
ICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90eXBlLnNob3dIaWdobGlnaHQpOgorICAgICAgICAo
V0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuaGlkZUhpZ2hsaWdodCk6CisgICAgICAgIChXSS5T
aGFkZXJQcm9ncmFtLnByb3RvdHlwZS5yZXF1ZXN0VmVydGV4U2hhZGVyU291cmNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW0ucHJvdG90eXBlLnJlcXVlc3RGcmFnbWVudFNo
YWRlclNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtLnByb3RvdHlw
ZS51cGRhdGVWZXJ0ZXhTaGFkZXIpOiBEZWxldGVkLgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3Jh
bS5wcm90b3R5cGUudXBkYXRlRnJhZ21lbnRTaGFkZXIpOiBEZWxldGVkLgorICAgICAgICAoV0ku
U2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuX3JlcXVlc3RTaGFkZXJTb3VyY2UpOiBEZWxldGVkLgor
ICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbS5wcm90b3R5cGUuX3VwZGF0ZVNoYWRlcik6IERlbGV0
ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50
Vmlldy5qczoKKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1Db250ZW50Vmlldyk6CisgICAgICAg
IChXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBuYXZpZ2F0aW9uSXRl
bXMpOiBBZGRlZC4KKyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1Db250ZW50Vmlldy5wcm90b3R5
cGUuc2hvd24pOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5oaWRkZW4pOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5nZXQgc2F2ZURhdGEpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fcmVmcmVzaENvbnRlbnQpOgorICAgICAgICAoV0kuU2hhZGVyUHJvZ3JhbUNvbnRl
bnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hhZGVyKToKKyAgICAgICAgKFdJLlNoYWRlclByb2dy
YW1Db250ZW50Vmlldy5wcm90b3R5cGUuX2NvbnRlbnREaWRDaGFuZ2UpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyKTogQWRkZWQuCisgICAgICAg
ICguY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci5jb21wdXRlKTogQWRkZWQu
CisgICAgICAgIChib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
c2hhZGVyLnZlcnRleCwpOiBBZGRlZC4KKyAgICAgICAgKGJvZHlbZGlyPWx0cl0gLmNvbnRlbnQt
dmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuZnJhZ21lbnQsKTogQWRkZWQuCisgICAgICAg
ICguY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlciArIC5zaGFkZXIpOiBBZGRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyID4gaGVh
ZGVyID4gKik6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+
IC5zaGFkZXIgPiBoZWFkZXIgPiAuc2hhZGVyLXR5cGUpOiBBZGRlZC4KKyAgICAgICAgKEBtZWRp
YSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dy
YW0gPiAuc2hhZGVyID4gaGVhZGVyKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LnNo
YWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChi
b2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iu
c2hhZGVyLnZlcnRleCwpOiBEZWxldGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVu
dC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlci5mcmFnbWVudCwpOiBE
ZWxldGVkLgorICAgICAgICAoYm9keVtkaXI9bHRyXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9n
cmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciArIC50ZXh0LWVkaXRvci5zaGFkZXIpOiBEZWxldGVk
LgorICAgICAgICAoYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4g
LnRleHQtZWRpdG9yLnNoYWRlciArIC50ZXh0LWVkaXRvci5zaGFkZXIpOiBEZWxldGVkLgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIg
PiAudHlwZS10aXRsZSk6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LnNoYWRlci1w
cm9ncmFtID4gLnRleHQtZWRpdG9yLnNoYWRlciA+IC5Db2RlTWlycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanM6CisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qczoK
KyAgICAgICAgKFdJLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudCk6CisgICAgICAgIChXSS5TaGFk
ZXJQcm9ncmFtVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAgKFdJLlNo
YWRlclByb2dyYW1UcmVlRWxlbWVudC5wcm90b3R5cGUub25kZXRhY2gpOgorICAgICAgICAoV0ku
U2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50LnByb3RvdHlwZS5jYW5TZWxlY3RPbk1vdXNlRG93bik6
CisgICAgICAgIChXSS5TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQucHJvdG90eXBlLnBvcHVsYXRl
Q29udGV4dE1lbnUpOgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzOgorCiAyMDE5LTA5LTIwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBIVE1MIEZvcm1hdHRlciAtIGJldHRlciBp
bmRlbnRhdGlvbi9uZXdsaW5lIGhhbmRsaW5nIGZvciBzZWxmIGNsb3NpbmcgdGFncwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNv
biBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24K
aW5kZXggNzk4Yjk5MWNkMmIwZWM2MmFkMmMxMTM0Nzg5ZmIzN2ViNGI0NjA0ZC4uOGFlZTU1ZTE4
NDgxNTYxYzIxYmI0NDgxODYwNzAwZDJkOTU3N2Y0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52YXMuanNvbgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NhbnZhcy5qc29uCkBAIC0xOSwxMSArMTks
MTUgQEAKICAgICAgICAgICAgICJlbnVtIjogWyJjYW52YXMtMmQiLCAiYml0bWFwcmVuZGVyZXIi
LCAid2ViZ2wiLCAid2ViZ2wyIiwgIndlYmdwdSJdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlRoZSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGJhY2tpbmcgdGhlIGNhbnZhcyBlbGVt
ZW50LiIKICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIlByb2dyYW1U
eXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6
IFsiY29tcHV0ZSIsICJyZW5kZXIiXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAg
ICAiaWQiOiAiU2hhZGVyVHlwZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAg
ICAgICAgICAgImVudW0iOiBbImZyYWdtZW50IiwgInZlcnRleCJdLAotICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIlNoYWRlciB0eXBlLiBXZWJHTCBzdXBwb3J0cyB2ZXJ0ZXggYW5kIGZyYWdt
ZW50IHNoYWRlcnMuIgorICAgICAgICAgICAgImVudW0iOiBbImNvbXB1dGUiLCAiZnJhZ21lbnQi
LCAidmVydGV4Il0KICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlkIjogIkNv
bnRleHRBdHRyaWJ1dGVzIiwKQEAgLTEzNiw3ICsxNDAsNyBAQAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAic2hhZGVyVHlwZSIsICIkcmVmIjogIlNoYWRlclR5cGUiIH0KICAgICAgICAgICAg
IF0sCiAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbnRlbnQiLCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAog
ICAgICAgICB7CkBAIC0yMjMsMTQgKzIyNywxNSBAQAogICAgICAgICB7CiAgICAgICAgICAgICAi
bmFtZSI6ICJwcm9ncmFtQ3JlYXRlZCIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQiLCAi
ZGVzY3JpcHRpb24iOiAiQ2FudmFzIGlkZW50aWZpZXIuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlkIiwgImRlc2NyaXB0aW9uIjog
IlByb2dyYW0gaWRlbnRpZmllci4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbnZh
c0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQifSAsCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJw
cm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJwcm9ncmFtVHlwZSIsICIkcmVmIjogIlByb2dyYW1UeXBlIiB9CiAgICAgICAgICAgICBd
CiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1EZWxl
dGVkIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYiOiAiUHJvZ3JhbUlkIiwgImRlc2NyaXB0aW9uIjogIlBy
b2dyYW0gaWRlbnRpZmllci4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2dyYW1J
ZCIsICIkcmVmIjogIlByb2dyYW1JZCIgfQogICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAg
XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1
dGVQaXBlbGluZS5jcHAKaW5kZXggY2QxMWVjYmIzZWM2ZWQ1YzE5Yjk2ZDIzZjM2Yjg3ZTEzZjQ5
NzM1YS4uMzUzNTM5MjMzNWY0ZWY4YzU0Njc4MGI3M2RiMDlhYTMwMmFiNjhmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxp
bmUuY3BwCkBAIC0yOCwxOSArMjgsNDMgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNs
dWRlICJHUFVDb21wdXRlUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJHUFVFcnJvclNjb3Blcy5oIgor
I2luY2x1ZGUgIkdQVVBpcGVsaW5lLmgiCisjaW5jbHVkZSAiR1BVUHJvZ3JhbW1hYmxlU3RhZ2VE
ZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRl
KFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBl
cnJvclNjb3BlcykKK1JlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVUNvbXB1dGVQaXBl
bGluZTo6Y3JlYXRlKFdlYkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVs
aW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMsIE9wdGlvbmFsPFdl
YkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBjb21wdXRlU2hhZGVyKQogewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkdQVUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSwgZXJy
b3JTY29wZXMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVDb21wdXRlUGlwZWxp
bmUoZGV2aWNlLCBXVEZNb3ZlKHBpcGVsaW5lKSwgZXJyb3JTY29wZXMsIGNvbXB1dGVTaGFkZXIp
KTsKIH0KIAotV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpXZWJHUFVDb21wdXRlUGlwZWxpbmUoUmVm
UHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9y
U2NvcGVzKQotICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVmKGVycm9yU2NvcGVzKSkKLSAgICAs
IG1fY29tcHV0ZVBpcGVsaW5lIHsgV1RGTW92ZShwaXBlbGluZSkgfQorV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lOjpXZWJHUFVDb21wdXRlUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0
cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNj
b3BlcywgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIp
CisgICAgOiBXZWJHUFVQaXBlbGluZShkZXZpY2UsIGVycm9yU2NvcGVzKQorICAgICwgbV9jb21w
dXRlUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCisgICAgLCBtX2NvbXB1dGVTaGFkZXIoY29t
cHV0ZVNoYWRlcikKIHsKIH0KIAorV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjp+V2ViR1BVQ29tcHV0
ZVBpcGVsaW5lKCkgPSBkZWZhdWx0OworCitib29sIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6cmVj
b21waWxlKGNvbnN0IFdlYkdQVURldmljZSYgZGV2aWNlKQoreworICAgIGlmIChtX2NvbXB1dGVQ
aXBlbGluZSAmJiBtX2NvbXB1dGVTaGFkZXIpIHsKKyAgICAgICAgaWYgKGF1dG8mIHdlYkdQVUNv
bXB1dGVTaGFkZXJNb2R1bGUgPSBtX2NvbXB1dGVTaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBncHVDb21wdXRlU2hhZGVyTW9kdWxlID0gd2ViR1BVQ29tcHV0
ZVNoYWRlck1vZHVsZS0+bW9kdWxlKCkpIHsKKyAgICAgICAgICAgICAgICBHUFVQcm9ncmFtbWFi
bGVTdGFnZURlc2NyaXB0b3IgY29tcHV0ZVN0YWdlKG1ha2VSZWYoKmdwdUNvbXB1dGVTaGFkZXJN
b2R1bGUpLCB7IG1fY29tcHV0ZVNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQgfSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIG1fY29tcHV0ZVBpcGVsaW5lLT5yZWNvbXBpbGUoZGV2aWNlLmRldmlj
ZSgpLCBXVEZNb3ZlKGNvbXB1dGVTdGFnZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmgKaW5kZXggMmVkN2M5ODA0YmFhYWFkZjcy
NTAzNjM1Yzc5NmFkNGI4MzUzZDdkNC4uYzFhNzE4MDg0Nzk4NzY1NzZhOThhMTkyNzNhZTY1NzBl
YTVmOTU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lLmgKQEAgLTI3LDI0ICsyNyw0MSBAQAogCiAjaWYgRU5BQkxFKFdF
QkdQVSkKIAotI2luY2x1ZGUgIkdQVUNvbXB1dGVQaXBlbGluZS5oIgotI2luY2x1ZGUgIkdQVU9i
amVjdEJhc2UuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSAiV2ViR1BVUGlw
ZWxpbmUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFdlYkdQVUNvbXB1dGVQaXBlbGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNlIHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gY3JlYXRlKFJl
ZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJik7CitjbGFzcyBHUFVD
b21wdXRlUGlwZWxpbmU7CitjbGFzcyBHUFVQaXBlbGluZTsKK2NsYXNzIEdQVUVycm9yU2NvcGVz
OworY2xhc3MgV2ViR1BVRGV2aWNlOwogCitjbGFzcyBXZWJHUFVDb21wdXRlUGlwZWxpbmUgZmlu
YWwgOiBwdWJsaWMgV2ViR1BVUGlwZWxpbmUgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdQ
VUNvbXB1dGVQaXBlbGluZSgpOworCisgICAgc3RhdGljIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxp
bmU+IGNyZWF0ZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmLCBH
UFVFcnJvclNjb3BlcyYsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBjb21w
dXRlU2hhZGVyKTsKKworICAgIGJvb2wgaXNDb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBjb21wdXRlUGlw
ZWxpbmUoKTsgfQogICAgIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZSogY29tcHV0ZVBpcGVsaW5l
KCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KKyAgICBPcHRpb25h
bDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fY29tcHV0ZVNoYWRlcjsgfQorCisgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgV2ViR1BV
RGV2aWNlJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFJlZlB0cjxH
UFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJik7CisgICAgV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQ
VUVycm9yU2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1
dGVTaGFkZXIpOwogCiAgICAgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4gbV9jb21wdXRlUGlw
ZWxpbmU7CisKKyAgICAvLyBQcmVzZXJ2ZWQgZm9yIFdlYiBJbnNwZWN0b3IgcmVjb21waWxhdGlv
bi4KKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gbV9jb21wdXRlU2hh
ZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX1dFQkdQVVBJUEVMSU5FKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZSwgaXNDb21w
dXRlUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmlkbApp
bmRleCBhNTUyYmE5MmZkMjk3MTliZGNmZjU1MmQxZmE2ZTNlOWMzMzc4OWFkLi40YjhhNzdlNDg2
OWEwNzM2NzhjYjAyNTYwNTRhZjYwNzc3NDFlM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxpbmUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5pZGwKQEAgLTI3LDcg
KzI3LDYgQEAKIFsKICAgICBDb25kaXRpb25hbD1XRUJHUFUsCiAgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJHUFUsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBJbnRlcmZhY2VO
YW1lPUdQVUNvbXB1dGVQaXBlbGluZQogXSBpbnRlcmZhY2UgV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
IHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVE
ZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNw
cAppbmRleCA1ZWJmMDgzODVhNjM5NDcxN2VlODE3ODM4YjJiOWUyZjg5YWYyZjUzLi43ZDVkZTc5
YzgwMjY1MThjNDA4MWFhMDJjNjg5NDI5ZjJiNzJmYTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTM5LDggKzM5LDEwIEBACiAjaW5j
bHVkZSAiR1BVQnVmZmVyQmluZGluZy5oIgogI2luY2x1ZGUgIkdQVUJ1ZmZlckRlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCisjaW5jbHVkZSAiR1BVQ29tcHV0ZVBp
cGVsaW5lLmgiCiAjaW5jbHVkZSAiR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVJl
bmRlclBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgi
CiAjaW5jbHVkZSAiR1BVU2FtcGxlci5oIgogI2luY2x1ZGUgIkdQVVNhbXBsZXJEZXNjcmlwdG9y
LmgiCkBAIC02MSw2ICs2Myw3IEBACiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEVuY29kZXIuaCIK
ICNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGlwZWxpbmUuaCIKICNpbmNsdWRlICJXZWJHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKICNp
bmNsdWRlICJXZWJHUFVQaXBlbGluZUxheW91dC5oIgogI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvci5oIgpAQCAtMTI0LDE3ICsxMjcsMzIgQEAgV2ViR1BVRGV2aWNlOjpXZWJHUFVEZXZp
Y2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPGNvbnN0IFdlYkdQVUFkYXAK
IHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LmlzRG9jdW1lbnQoKSk7CiAK
LSAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7Ci0gICAgaW5zdGFuY2VzKGxv
Y2spLmFkZCh0aGlzKTsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNN
dXRleCgpKTsKKyAgICAgICAgaW5zdGFuY2VzKGxvY2spLmFkZCh0aGlzKTsKKyAgICB9CiB9CiAK
IFdlYkdQVURldmljZTo6fldlYkdQVURldmljZSgpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRGVzdHJveVdlYkdQVURldmljZSgqdGhpcyk7CiAKLSAgICBMb2NrSG9sZGVy
IGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7Ci0gICAgQVNTRVJUKGluc3RhbmNlcyhsb2NrKS5jb250
YWlucyh0aGlzKSk7Ci0gICAgaW5zdGFuY2VzKGxvY2spLnJlbW92ZSh0aGlzKTsKKyAgICB7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9jayhXZWJHUFVQaXBlbGluZTo6aW5zdGFuY2VzTXV0ZXgoKSk7
CisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBXZWJHUFVQaXBlbGluZTo6aW5zdGFuY2VzKGxv
Y2spKSB7CisgICAgICAgICAgICBpZiAoZW50cnkudmFsdWUgPT0gdGhpcykgeworICAgICAgICAg
ICAgICAgIC8vIERvbid0IHJlbW92ZSBhbnkgV2ViR1BVUGlwZWxpbmUgZnJvbSB0aGUgaW5zdGFu
Y2VzIGxpc3QsIGFzIHRoZXkgbWF5IHN0aWxsIGV4aXN0LgorICAgICAgICAgICAgICAgIC8vIE9u
bHkgcmVtb3ZlIHRoZSBhc3NvY2lhdGlvbiB3aXRoIGEgV2ViR1BVIGRldmljZS4KKyAgICAgICAg
ICAgICAgICBlbnRyeS52YWx1ZSA9IG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgp
KTsKKyAgICAgICAgQVNTRVJUKGluc3RhbmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAg
ICAgIGluc3RhbmNlcyhsb2NrKS5yZW1vdmUodGhpcyk7CisgICAgfQogfQogCiBSZWY8V2ViR1BV
QnVmZmVyPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZmZXJEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKSBjb25zdApAQCAtMjA1LDMxICsyMjMsNDcgQEAgUmVmPFdlYkdQVVNo
YWRlck1vZHVsZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BV
U2hhZGVyTW9kdWwKIHsKICAgICAvLyBGSVhNRTogV2hhdCBjYW4gYmUgdmFsaWRhdGVkIGhlcmU/
CiAgICAgYXV0byBtb2R1bGUgPSBtX2RldmljZS0+dHJ5Q3JlYXRlU2hhZGVyTW9kdWxlKEdQVVNo
YWRlck1vZHVsZURlc2NyaXB0b3IgeyBkZXNjcmlwdG9yLmNvZGUgfSk7Ci0gICAgcmV0dXJuIFdl
YkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFdURk1vdmUobW9kdWxlKSk7CisgICAgcmV0dXJuIFdl
YkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKFdURk1vdmUobW9kdWxlKSwgZGVzY3JpcHRvci5jb2Rl
KTsKIH0KIAotUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJl
bmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikgY29uc3QKK1JlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVh
dGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IpCiB7CiAgICAgbV9lcnJvclNjb3Blcy0+c2V0RXJyb3JQcmVmaXgoIkdQVURldmlj
ZS5jcmVhdGVSZW5kZXJQaXBlbGluZSgpOiAiKTsKIAogICAgIGF1dG8gZ3B1RGVzY3JpcHRvciA9
IGRlc2NyaXB0b3IudHJ5Q3JlYXRlR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JT
Y29wZXMpOwogICAgIGlmICghZ3B1RGVzY3JpcHRvcikKLSAgICAgICAgcmV0dXJuIFdlYkdQVVJl
bmRlclBpcGVsaW5lOjpjcmVhdGUobnVsbHB0ciwgbV9lcnJvclNjb3Blcyk7CisgICAgICAgIHJl
dHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBudWxscHRyLCBtX2Vycm9y
U2NvcGVzLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCk7CiAKLSAgICBhdXRvIHBpcGVsaW5l
ID0gbV9kZXZpY2UtPnRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vy
cm9yU2NvcGVzKTsKLSAgICByZXR1cm4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShXVEZN
b3ZlKHBpcGVsaW5lKSwgbV9lcnJvclNjb3Blcyk7CisgICAgYXV0byBncHVQaXBlbGluZSA9IG1f
ZGV2aWNlLT50cnlDcmVhdGVSZW5kZXJQaXBlbGluZSgqZ3B1RGVzY3JpcHRvciwgbV9lcnJvclNj
b3Blcyk7CisKKyAgICBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YSB2ZXJ0ZXhTaGFkZXIgPSB7
IGRlc2NyaXB0b3IudmVydGV4U3RhZ2UubW9kdWxlLCBkZXNjcmlwdG9yLnZlcnRleFN0YWdlLmVu
dHJ5UG9pbnQgfTsKKworICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBm
cmFnbWVudFNoYWRlcjsKKyAgICBpZiAoZGVzY3JpcHRvci5mcmFnbWVudFN0YWdlKQorICAgICAg
ICBmcmFnbWVudFNoYWRlciA9IHsgeyBkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UudmFsdWUoKS5t
b2R1bGUsIGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZS52YWx1ZSgpLmVudHJ5UG9pbnQgfSB9Owor
CisgICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUo
KnRoaXMsIFdURk1vdmUoZ3B1UGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVzLCB2ZXJ0ZXhTaGFkZXIs
IGZyYWdtZW50U2hhZGVyKTsKKyAgICBpZiAod2ViR1BVUGlwZWxpbmUtPmlzVmFsaWQoKSkKKyAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZSgq
dGhpcywgd2ViR1BVUGlwZWxpbmUuZ2V0KCkpOworICAgIHJldHVybiB3ZWJHUFVQaXBlbGluZTsK
IH0KIAotUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21w
dXRlUGlwZWxpbmUoY29uc3QgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikgY29uc3QKK1JlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3Jl
YXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IpCiB7CiAgICAgbV9lcnJvclNjb3Blcy0+c2V0RXJyb3JQcmVmaXgoIkdQVURl
dmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoKTogIik7CiAKICAgICBhdXRvIGdwdURlc2NyaXB0
b3IgPSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IobV9l
cnJvclNjb3Blcyk7CiAgICAgaWYgKCFncHVEZXNjcmlwdG9yKQotICAgICAgICByZXR1cm4gV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUobnVsbHB0ciwgbV9lcnJvclNjb3Blcyk7CisgICAg
ICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwg
bV9lcnJvclNjb3BlcywgV1RGOjpudWxsb3B0KTsKIAotICAgIGF1dG8gcGlwZWxpbmUgPSBtX2Rl
dmljZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2Nv
cGVzKTsKLSAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoV1RGTW92ZShw
aXBlbGluZSksIG1fZXJyb3JTY29wZXMpOworICAgIGF1dG8gZ3B1UGlwZWxpbmUgPSBtX2Rldmlj
ZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVz
KTsKKworICAgIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhIGNvbXB1dGVTaGFkZXIgPSB7IGRl
c2NyaXB0b3IuY29tcHV0ZVN0YWdlLm1vZHVsZSwgZGVzY3JpcHRvci5jb21wdXRlU3RhZ2UuZW50
cnlQb2ludCB9OworCisgICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQVUNvbXB1dGVQaXBl
bGluZTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGdwdVBpcGVsaW5lKSwgbV9lcnJvclNjb3Blcywg
Y29tcHV0ZVNoYWRlcik7CisgICAgaWYgKHdlYkdQVVBpcGVsaW5lLT5pc1ZhbGlkKCkpCisgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoKnRo
aXMsIHdlYkdQVVBpcGVsaW5lLmdldCgpKTsKKyAgICByZXR1cm4gd2ViR1BVUGlwZWxpbmU7CiB9
CiAKIFJlZjxXZWJHUFVDb21tYW5kRW5jb2Rlcj4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21tYW5k
RW5jb2RlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5oCmluZGV4IGQ5OGYyM2M2NzMzYzlhNDJlMDgyOWRiZDQxOGZlODVlNTZmNzMzZjguLjIx
YjU0MTdjMjEwYTc1ZjhiYjk5YzIyNzMxMjE0Y2JkMjAzOWQxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCkBAIC05OSw4ICs5OSw4IEBAIHB1Ymxp
YzoKICAgICBSZWY8V2ViR1BVQmluZEdyb3VwPiBjcmVhdGVCaW5kR3JvdXAoY29uc3QgV2ViR1BV
QmluZEdyb3VwRGVzY3JpcHRvciYpIGNvbnN0OwogCiAgICAgUmVmPFdlYkdQVVNoYWRlck1vZHVs
ZT4gY3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3Im
KSBjb25zdDsKLSAgICBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVs
aW5lKGNvbnN0IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpIGNvbnN0OwotICAgIFJl
ZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IGNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXZWJH
UFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJikgY29uc3Q7CisgICAgUmVmPFdlYkdQVVJlbmRl
clBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3ImKTsKKyAgICBSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBjcmVhdGVDb21w
dXRlUGlwZWxpbmUoY29uc3QgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYpOwogCiAg
ICAgUmVmPFdlYkdQVUNvbW1hbmRFbmNvZGVyPiBjcmVhdGVDb21tYW5kRW5jb2RlcigpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBl
bGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2ExMjE1OThmMjlmZDc0MmY1ZTE1ZDdjMmRmMjQwMDNhMGE0YTg1Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBp
cGVsaW5lLmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVk
ZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3
dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitIYXNoTWFwPFdlYkdQVVBpcGVsaW5l
KiwgV2ViR1BVRGV2aWNlKj4mIFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXMoY29uc3QgTG9ja0hv
bGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8V2ViR1BVUGlwZWxp
bmUqLCBXZWJHUFVEZXZpY2UqPj4gaW5zdGFuY2VzOworICAgIHJldHVybiBpbnN0YW5jZXM7Cit9
CisKK0xvY2smIFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXNNdXRleCgpCit7CisgICAgc3RhdGlj
IExhenlOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgaW5pdGlhbGl6ZU11dGV4OworICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVNdXRleCwg
W10geworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gbXV0
ZXguZ2V0KCk7Cit9CisKK1dlYkdQVVBpcGVsaW5lOjpXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZp
Y2UmIGRldmljZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKQorICAgIDogR1BVT2JqZWN0
QmFzZShtYWtlUmVmKGVycm9yU2NvcGVzKSkKKyAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChkZXZpY2Uuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQoreworICAgIEFTU0VSVChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOworCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2soaW5z
dGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIGluc3RhbmNlcyhsb2NrKS5hZGQodGhpcywgJmRldmlj
ZSk7CisgICAgfQorfQorCitXZWJHUFVQaXBlbGluZTo6fldlYkdQVVBpcGVsaW5lKCkKK3sKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoKnRo
aXMpOworCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7
CisgICAgICAgIEFTU0VSVChpbnN0YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOworICAgICAg
ICBpbnN0YW5jZXMobG9jaykucmVtb3ZlKHRoaXMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMzIzYzc5YmYx
OTgyNTgyMzYyYTczZjhhNjc1ZjEyOGI0YTZmNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oCkBAIC0wLDAgKzEsNzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNs
dWRlICJHUFVPYmplY3RCYXNlLmgiCisjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgR1BVRXJyb3JTY29wZXM7CitjbGFzcyBXZWJH
UFVEZXZpY2U7CisKK2NsYXNzIFdlYkdQVVBpcGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJhc2Ug
eworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdQVVBpcGVsaW5lKCk7CisKKyAgICBzdGF0aWMg
SGFzaE1hcDxXZWJHUFVQaXBlbGluZSosIFdlYkdQVURldmljZSo+JiBpbnN0YW5jZXMoY29uc3Qg
TG9ja0hvbGRlciYpOworICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNNdXRleCgpOworCisgICAg
dmlydHVhbCBib29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0NvbXB1dGVQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CisgICAgdmlydHVh
bCBib29sIGlzVmFsaWQoKSBjb25zdCA9IDA7CisKKyAgICBzdHJ1Y3QgU2hhZGVyRGF0YSB7Cisg
ICAgICAgIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKKyAgICAgICAgU3RyaW5n
IGVudHJ5UG9pbnQ7CisgICAgfTsKKworICAgIHZpcnR1YWwgYm9vbCByZWNvbXBpbGUoY29uc3Qg
V2ViR1BVRGV2aWNlJikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgV2ViR1BVUGlwZWxpbmUoV2Vi
R1BVRGV2aWNlJiwgR1BVRXJyb3JTY29wZXMmKTsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dFQkdQVVBJUEVMSU5FKFRvVmFs
dWVUeXBlTmFtZSwgcHJlZGljYXRlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFRv
VmFsdWVUeXBlTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpX
ZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpIHsgcmV0dXJuIHBpcGVsaW5lLnByZWRpY2F0ZTsgfSBc
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BV
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaAppbmRleCBmZmJjNWI4MTFkM2MwMGMx
ZmZhOTY4N2NmNjBhNmM5NzVkYmM1MzdkLi4xYTQ0MTRhYWMxMDczNjc5MTBlMWIzNTg0ZDIyOGQz
NWViYjU4ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaApAQCAtMzcsNyAr
MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgV2ViR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2VEZXNjcmlwdG9yIDogR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSB7CiAgICAg
T3B0aW9uYWw8R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yPiB0cnlDcmVhdGVHUFVQcm9n
cmFtbWFibGVTdGFnZURlc2NyaXB0b3IoKSBjb25zdDsKIAotICAgIFJlZlB0cjxjb25zdCBXZWJH
UFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKKyAgICBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBt
b2R1bGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKaW5kZXggMTdh
ZWRjNmQ1YjYxN2U4OTFmMjE2MmNkYWI2YmM0ODNiNWI5MDRhNC4uZmU5NTdmNTcwYTJmMTZjNzNk
ZjkyMjkxNDM3ZWJmYWJlM2I3ZmMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcApAQCAtMjgsMTkgKzI4LDUxIEBA
CiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVRXJyb3JTY29wZXMuaCIKKyNp
bmNsdWRlICJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvci5oIgorI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2Vi
R1BVRGV2aWNlLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxXZWJHUFVSZW5kZXJQaXBlbGluZT4g
V2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYg
cGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKK1JlZjxXZWJHUFVSZW5kZXJQ
aXBlbGluZT4gV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNyZWF0ZShXZWJHUFVEZXZpY2UmIGRldmlj
ZSwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYg
ZXJyb3JTY29wZXMsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhT
aGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRl
cikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHUFVSZW5kZXJQaXBlbGluZShXVEZN
b3ZlKHBpcGVsaW5lKSwgZXJyb3JTY29wZXMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJHUFVSZW5kZXJQaXBlbGluZShkZXZpY2UsIFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3Bl
cywgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcikpOwogfQogCi1XZWJHUFVSZW5kZXJQaXBl
bGluZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUoUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBp
cGVsaW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMpCi0gICAgOiBHUFVPYmplY3RCYXNl
KG1ha2VSZWYoZXJyb3JTY29wZXMpKQorV2ViR1BVUmVuZGVyUGlwZWxpbmU6OldlYkdQVVJlbmRl
clBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+
JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgT3B0aW9uYWw8V2ViR1BV
UGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxp
bmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKQorICAgIDogV2ViR1BVUGlwZWxpbmUoZGV2
aWNlLCBlcnJvclNjb3BlcykKICAgICAsIG1fcmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBlbGlu
ZSkpCisgICAgLCBtX3ZlcnRleFNoYWRlcih2ZXJ0ZXhTaGFkZXIpCisgICAgLCBtX2ZyYWdtZW50
U2hhZGVyKGZyYWdtZW50U2hhZGVyKQogewogfQogCitXZWJHUFVSZW5kZXJQaXBlbGluZTo6fldl
YkdQVVJlbmRlclBpcGVsaW5lKCkgPSBkZWZhdWx0OworCitib29sIFdlYkdQVVJlbmRlclBpcGVs
aW5lOjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCit7CisgICAgaWYgKG1f
cmVuZGVyUGlwZWxpbmUgJiYgbV92ZXJ0ZXhTaGFkZXIpIHsKKyAgICAgICAgaWYgKGF1dG8mIHdl
YkdQVVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7
CisgICAgICAgICAgICBpZiAoYXV0byogZ3B1VmVydGV4U2hhZGVyTW9kdWxlID0gd2ViR1BVVmVy
dGV4U2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkgeworICAgICAgICAgICAgICAgIEdQVVByb2dyYW1t
YWJsZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFnZShtYWtlUmVmKCpncHVWZXJ0ZXhTaGFkZXJN
b2R1bGUpLCB7IG1fdmVydGV4U2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKKyAgICAgICAg
ICAgICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3I+IGZyYWdtZW50
U3RhZ2U7CisgICAgICAgICAgICAgICAgaWYgKG1fZnJhZ21lbnRTaGFkZXIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGF1dG8mIHdlYkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlID0gbV9mcmFn
bWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGF1dG8qIGdwdUZyYWdtZW50U2hhZGVyTW9kdWxlID0gd2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1
bGUtPm1vZHVsZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U3RhZ2Ug
PSBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IobWFrZVJlZigqZ3B1RnJhZ21lbnRTaGFk
ZXJNb2R1bGUpLCB7IG1fZnJhZ21lbnRTaGFkZXIudmFsdWUoKS5lbnRyeVBvaW50IH0pOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJl
dHVybiBtX3JlbmRlclBpcGVsaW5lLT5yZWNvbXBpbGUoZGV2aWNlLmRldmljZSgpLCBXVEZNb3Zl
KHZlcnRleFN0YWdlKSwgV1RGTW92ZShmcmFnbWVudFN0YWdlKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmgKaW5kZXggOGYwMGNhNjY1
MGNiZTdjMGJiMzk4OGZmYzY1OTRmYWVhOTNjOTYyNi4uYjJiODA5NDBlNWZjMmFlMGIzYTc5YWJh
NTM1NGQxM2Q5MDA0M2I4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oCkBAIC0yNywyNCArMjcsNDMgQEAKIAogI2lmIEVO
QUJMRShXRUJHUFUpCiAKLSNpbmNsdWRlICJHUFVPYmplY3RCYXNlLmgiCi0jaW5jbHVkZSAiR1BV
UmVuZGVyUGlwZWxpbmUuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSAiV2Vi
R1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJh
c2UgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0
ZShSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJik7CitjbGFzcyBH
UFVQaXBlbGluZTsKK2NsYXNzIEdQVVJlbmRlclBpcGVsaW5lOworY2xhc3MgR1BVRXJyb3JTY29w
ZXM7CitjbGFzcyBXZWJHUFVEZXZpY2U7CiAKK2NsYXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lIGZp
bmFsIDogcHVibGljIFdlYkdQVVBpcGVsaW5lIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJH
UFVSZW5kZXJQaXBlbGluZSgpOworCisgICAgc3RhdGljIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGlu
ZT4gY3JlYXRlKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgR1BV
RXJyb3JTY29wZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4
U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFk
ZXIpOworCisgICAgYm9vbCBpc1JlbmRlclBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorCisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyUGlwZWxpbmUoKTsg
fQogICAgIGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lKiByZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVuZGVyUGlwZWxpbmUuZ2V0KCk7IH0KKyAgICBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhT
aGFkZXI7IH0KKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21l
bnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2hhZGVyOyB9CisKKyAgICBib29s
IHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKTsKIAogcHJpdmF0ZToKLSAgICBXZWJHUFVS
ZW5kZXJQaXBlbGluZShSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVz
Jik7CisgICAgV2ViR1BVUmVuZGVyUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVVJl
bmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFk
ZXJEYXRhPiBmcmFnbWVudFNoYWRlcik7CiAKICAgICBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+
IG1fcmVuZGVyUGlwZWxpbmU7CisKKyAgICAvLyBQcmVzZXJ2ZWQgZm9yIFdlYiBJbnNwZWN0b3Ig
cmVjb21waWxhdGlvbi4KKyAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4g
bV92ZXJ0ZXhTaGFkZXI7CisgICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+
IG1fZnJhZ21lbnRTaGFkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfV0VCR1BVUElQRUxJTkUoV2ViQ29yZTo6V2ViR1BVUmVuZGVyUGlw
ZWxpbmUsIGlzUmVuZGVyUGlwZWxpbmUoKSkKKwogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBl
bGluZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBl
bGluZS5pZGwKaW5kZXggYTk4OWZkNDEwYWNiY2QzYjQ5OWFiMzFhNzM0OGM2NWYyZTc1Y2RiYi4u
YTliNDAwMGI2ZjFiMWEyMjgwYmMzMmIyYmYzMzcyMTY2ZGEzMTQyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmlkbApA
QCAtMjcsNyArMjcsNiBAQAogWwogICAgIENvbmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVk
QXRSdW50aW1lPVdlYkdQVSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIElu
dGVyZmFjZU5hbWU9R1BVUmVuZGVyUGlwZWxpbmUKIF0gaW50ZXJmYWNlIFdlYkdQVVJlbmRlclBp
cGVsaW5lIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVTaGFkZXJNb2R1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVU2hhZGVyTW9kdWxlLmNwcAppbmRleCBlZTg1ZjkyYWJjOWZhYjMxNjJmNjNiOGI3Y2EwZDhi
MDFiNDM3YzkwLi5kMzE0NTQ1ZGQzZjQ2Y2U4NjIwOGYzZDU0NmFmZjcxNDQyNzMzYzk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVs
ZS5jcHAKQEAgLTI4LDE4ICsyOCwyOSBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKIAorI2luY2x1
ZGUgIkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2Uu
aCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVm
PFdlYkdQVVNoYWRlck1vZHVsZT4gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoUmVmUHRyPEdQ
VVNoYWRlck1vZHVsZT4mJiBtb2R1bGUpCitSZWY8V2ViR1BVU2hhZGVyTW9kdWxlPiBXZWJHUFVT
aGFkZXJNb2R1bGU6OmNyZWF0ZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVU2hh
ZGVyTW9kdWxlKFdURk1vdmUobW9kdWxlKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkdQVVNoYWRlck1vZHVsZShXVEZNb3ZlKG1vZHVsZSksIHNvdXJjZSkpOwogfQogCi1XZWJHUFVT
aGFkZXJNb2R1bGU6OldlYkdQVVNoYWRlck1vZHVsZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxlPiYm
IG1vZHVsZSkKK1dlYkdQVVNoYWRlck1vZHVsZTo6V2ViR1BVU2hhZGVyTW9kdWxlKFJlZlB0cjxH
UFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKICAgICA6IG1f
bW9kdWxlKFdURk1vdmUobW9kdWxlKSkKKyAgICAsIG1fc291cmNlKHNvdXJjZSkKIHsKIH0KIAor
dm9pZCBXZWJHUFVTaGFkZXJNb2R1bGU6OnVwZGF0ZShjb25zdCBXZWJHUFVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCit7CisgICAgbV9zb3VyY2UgPSBzb3VyY2U7CisgICAg
bV9tb2R1bGUgPSBHUFVTaGFkZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsg
bV9zb3VyY2UgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVNoYWRlck1vZHVsZS5oCmluZGV4IDgzNzcwNTNkMWFjZTcyMzkwOWNiM2M4OTYyN2Y0ZDhjNjJi
MWVhZWUuLjc4NjQ2MTE5MTFiNjcyYzI2NDkwZWQ4N2QzNjZmNGVhYjE4NTJlY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5oCkBA
IC0yOCwyMiArMjgsMjkgQEAKICNpZiBFTkFCTEUoV0VCR1BVKQogCiAjaW5jbHVkZSAiR1BVU2hh
ZGVyTW9kdWxlLmgiCi0KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIFdlYkdQVURldmljZTsKKwogY2xhc3MgV2ViR1BVU2hhZGVyTW9kdWxlIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVU2hhZGVyTW9kdWxlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJHUFVTaGFkZXJNb2R1bGU+IGNyZWF0ZShSZWZQdHI8R1BVU2hhZGVyTW9kdWxl
PiYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdQVVNoYWRlck1vZHVsZT4gY3JlYXRlKFJlZlB0cjxH
UFVTaGFkZXJNb2R1bGU+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlKTsKIAotICAgIGNvbnN0IEdQ
VVNoYWRlck1vZHVsZSogbW9kdWxlKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGUuZ2V0KCk7IH0K
KyAgICBHUFVTaGFkZXJNb2R1bGUqIG1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlLmdl
dCgpOyB9CisgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZTsgfQorCisgICAgdm9pZCB1cGRhdGUoY29uc3QgV2ViR1BVRGV2aWNlJiwgY29uc3QgU3RyaW5n
JiBzb3VyY2UpOwogCiBwcml2YXRlOgotICAgIFdlYkdQVVNoYWRlck1vZHVsZShSZWZQdHI8R1BV
U2hhZGVyTW9kdWxlPiYmKTsKKyAgICBXZWJHUFVTaGFkZXJNb2R1bGUoUmVmUHRyPEdQVVNoYWRl
ck1vZHVsZT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2UpOwogCiAgICAgUmVmUHRyPEdQVVNoYWRl
ck1vZHVsZT4gbV9tb2R1bGU7CisKKyAgICAvLyBQcmVzZXJ2ZWQgZm9yIFdlYiBJbnNwZWN0b3Ig
cmVjb21waWxhdGlvbi4KKyAgICBTdHJpbmcgbV9zb3VyY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGZkNGRkMzEzN2ViNGM1ZTExZjIwYjNlOWE1YTNj
MjU3M2UwZTI1ZjQuLmY0MDM4NGRhOTlmNWJjMmRjMTcyZWY2Zjc2YmM4MzRjY2VhZWQzNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0zNzMsNiArMzczLDcgQEAgTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5j
cHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZUVycm9yU2NvcGVzLmNwcAogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUXVldWUuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAK
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lTGF5b3V0LmNwcAogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BV
UHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmNwcApAQCAtMTg5OCw2ICsxODk5LDcgQEAgcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVFcnJvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVFcnJvclNjb3Blcy5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVWYWxpZGF0aW9uRXJyb3IuY3BwCitwbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVUGlwZWxpbmUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxp
bmVMYXlvdXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUHJvZ3JhbW1hYmxlUGFzc0Vu
Y29kZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzMDBmYzRiMGExMWNlYzg5NGMzNjk4NzMwYWVlMTYwMzE3ZDdiOWVk
Li41Y2EwOGMzZjE3MDgxYzczMjM3ODBjMjgzODk3Y2Y4YTQ0NDhkNjBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDQwNiw2
ICsxMDQwNiwxMCBAQAogCQk5MTc1Q0U1OTIxRTI4MUVDMDBERjJDMjggLyogSlNJbnNwZWN0b3JB
dWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjcgLyogSW5zcGVj
dG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjggLyogSlNJbnNwZWN0b3JB
dWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTE4NkYzQjMyMzI5RkIwNTAwQUZGODU3IC8qIEdQVVBpcGVsaW5lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBpcGVsaW5lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxODZGM0I2MjMyOUZCNEUwMEFGRjg1NyAvKiBXZWJHUFVQ
aXBlbGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVQ
aXBlbGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxODZGM0I3MjMyOUZC
NEYwMEFGRjg1NyAvKiBXZWJHUFVQaXBlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHUFVQaXBlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MTg2RjNCQTIzMjlGRTY4MDBBRkY4NTcgLyogR1BVUGlwZWxpbmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUGlwZWxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MUI4RjBCMzIxOTUzRDY1MDAwQzJCMDAgLyogQ2VydGlmaWNhdGVJbmZv
QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDZXJ0aWZpY2F0ZUluZm9C
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQjk1MjIyMUY1OEE1ODAwMDkz
MURDMiAvKiBSZWNvcmRpbmdTd2l6emxlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVjb3JkaW5n
U3dpenpsZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQzlGMkY4MUFF
M0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTgzOTQsNiArMTgzOTgsOCBAQAogCQkJCUQwOEFBMDJGMjIwRDBCRDUwMDU4QzUwMiAvKiBH
UFVMb2FkT3AuaCAqLywKIAkJCQlEMDlBRkIzNzIyRDdENUM2MDBDNDUzOEMgLyogR1BVT2JqZWN0
QmFzZS5oICovLAogCQkJCUQwOUFGQjE5MjJENjY5OEEwMEM0NTM4QyAvKiBHUFVPdXRPZk1lbW9y
eUVycm9yLmggKi8sCisJCQkJOTE4NkYzQkEyMzI5RkU2ODAwQUZGODU3IC8qIEdQVVBpcGVsaW5l
LmNwcCAqLywKKwkJCQk5MTg2RjNCMzIzMjlGQjA1MDBBRkY4NTcgLyogR1BVUGlwZWxpbmUuaCAq
LywKIAkJCQkzMTJGRjhDNDIxQTRDMkY0MDBFQjE5OUQgLyogR1BVUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZS5oICovLAogCQkJCUQwMDMyODg3MjFDOUE0RTUwMDYyMkFBNiAvKiBHUFVQaXBlbGluZUxh
eW91dC5jcHAgKi8sCiAJCQkJRDAwMzI4ODYyMUM5QTRFNTAwNjIyQUE2IC8qIEdQVVBpcGVsaW5l
TGF5b3V0LmggKi8sCkBAIC0yNjEyOSw2ICsyNjEzNSw4IEBACiAJCQkJRDA5QUZCMDMyMkQ0MEND
NTAwQzQ1MzhDIC8qIFdlYkdQVURldmljZUVycm9yU2NvcGVzLmlkbCAqLywKIAkJCQlEMDlBQzAw
QTIzMTczNUJFMDAxODc3NjIgLyogV2ViR1BVRGV2aWNlRXZlbnRIYW5kbGVyLmggKi8sCiAJCQkJ
RDA5QUMwMEIyMzE3MzVCRTAwMTg3NzYyIC8qIFdlYkdQVURldmljZUV2ZW50SGFuZGxlci5pZGwg
Ki8sCisJCQkJOTE4NkYzQjYyMzI5RkI0RTAwQUZGODU3IC8qIFdlYkdQVVBpcGVsaW5lLmNwcCAq
LywKKwkJCQk5MTg2RjNCNzIzMjlGQjRGMDBBRkY4NTcgLyogV2ViR1BVUGlwZWxpbmUuaCAqLywK
IAkJCQlEMEM0MTlGMDIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZS5oICovLAogCQkJCUQwQzQxOUYxMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGlu
ZURlc2NyaXB0b3JCYXNlLmlkbCAqLywKIAkJCQlEMDVBOTlFNTIxQzlCRjJDMDAwMzJCNzUgLyog
V2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNmJhMzgxYTlkZmU1Y2Y4MmJiMTY1MjU5ZGIxYmE4ZGFl
M2RmY2JiMi4uZmUxYjBjNWQyYzAxYWRmY2Y0MDRiZTUyNjQyNzU4YzFjYzU3ZjVkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0yOCw2ICsyOCw4
IEBACiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAi
V2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKQEAgLTYwLDcgKzYyLDEwIEBAIFJlZjxXZWJH
TFByb2dyYW0+IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGN0eCkKIAogV2ViR0xQcm9ncmFtOjpXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRPYmplY3QoY3R4KQorICAgICwgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KGN0eC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiB7CisgICAgQVNT
RVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisKICAgICB7CiAgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKICAgICAgICAgaW5zdGFuY2VzKGxvY2spLmFkZCh0
aGlzLCAmY3R4KTsKQEAgLTcxLDYgKzc2LDggQEAgV2ViR0xQcm9ncmFtOjpXZWJHTFByb2dyYW0o
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogCiBXZWJHTFByb2dyYW06On5XZWJHTFBy
b2dyYW0oKQogeworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJH
TFByb2dyYW0oKnRoaXMpOworCiAgICAgZGVsZXRlT2JqZWN0KDApOwogCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaAppbmRleCA4OGE4OTc5ZDQ1ZjY3YWEz
N2UyYzBlOTM3ZTNkMTk0MWE2YzJmZjNkLi42NzY5ZDFkNGY1MjA5NTQxNGI1YWYzMjdkNWM0ZTIy
M2Q5ZTcyYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaApA
QCAtMzIsNiArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogY2xhc3Mg
V2ViR0xTaGFkZXI7CiAKIGNsYXNzIFdlYkdMUHJvZ3JhbSBmaW5hbCA6IHB1YmxpYyBXZWJHTFNo
YXJlZE9iamVjdCB7CkBAIC00Miw2ICs0NCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSGFzaE1h
cDxXZWJHTFByb2dyYW0qLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4mIGluc3RhbmNlcyhj
b25zdCBMb2NrSG9sZGVyJik7CiAgICAgc3RhdGljIExvY2smIGluc3RhbmNlc011dGV4KCk7CiAK
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CisKICAgICB1bnNpZ25lZCBu
dW1BY3RpdmVBdHRyaWJMb2NhdGlvbnMoKTsKICAgICBHQzNEaW50IGdldEFjdGl2ZUF0dHJpYkxv
Y2F0aW9uKEdDM0R1aW50IGluZGV4KTsKIApAQCAtNzEsNiArNzUsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgY2FjaGVBY3RpdmVBdHRyaWJMb2NhdGlvbnMoR3JhcGhpY3NDb250ZXh0M0QqKTsKICAg
ICB2b2lkIGNhY2hlSW5mb0lmTmVlZGVkKCk7CiAKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKICAgICBWZWN0b3I8R0MzRGludD4gbV9hY3Rp
dmVBdHRyaWJMb2NhdGlvbnM7CiAKICAgICBHQzNEaW50IG1fbGlua1N0YXR1cyB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAKaW5kZXggMjI0ZTM0ZDgzMjdhZGI4NTViOTQ3MTNlZGYzYzYwYTg1ODc4NWY3
Mi4uNmVlYTkxZmIxOTkzYjA0Y2VlMzgwMzAwZGFiNzVmMDIwZWE5MzhiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHAKQEAgLTQxMSw3ICs0MTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgc2hv
d0hpZ2h0bGlnaHQoKQogICAgIHsKLSAgICAgICAgaWYgKCFtX3Byb2dyYW0gfHwgTElLRUxZKCFJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKG1fY29u
dGV4dCwgKm1fcHJvZ3JhbSkpKQorICAgICAgICBpZiAoIW1fcHJvZ3JhbSB8fCBMSUtFTFkoIUlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChtX2NvbnRl
eHQsICptX3Byb2dyYW0pKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoaGFz
QnVmZmVyQmluZGluZyhHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQklORElORykpIHsK
QEAgLTE3NTQsNyArMTc1NCw3IEBAIFJlZlB0cjxXZWJHTFByb2dyYW0+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZVByb2dyYW0oKQogICAgIGF1dG8gcHJvZ3JhbSA9IFdlYkdMUHJv
Z3JhbTo6Y3JlYXRlKCp0aGlzKTsKICAgICBhZGRTaGFyZWRPYmplY3QocHJvZ3JhbS5nZXQoKSk7
CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW0oKnRoaXMs
IHByb2dyYW0uZ2V0KCkpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViR0xQcm9ncmFtKCp0aGlzLCBwcm9ncmFtLmdldCgpKTsKIAogICAgIHJldHVybiBwcm9ncmFt
OwogfQpAQCAtMTg0MCw3ICsxODQwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTEZyYW1lYnVmZmVyKiBmcmFtZWJ1ZmZlcikKIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0qIHBy
b2dyYW0pCiB7CiAgICAgaWYgKHByb2dyYW0pCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbERlbGV0ZVByb2dyYW0oKnRoaXMsICpwcm9ncmFtKTsKKyAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbSgqcHJvZ3JhbSk7CiAK
ICAgICBkZWxldGVPYmplY3QocHJvZ3JhbSk7CiAgICAgLy8gV2UgZG9uJ3QgcmVzZXQgbV9jdXJy
ZW50UHJvZ3JhbSB0byAwIGhlcmUgYmVjYXVzZSB0aGUgZGVsZXRpb24gb2YgdGhlCkBAIC0yMjU1
LDcgKzIyNTUsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXMo
R0MzRGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpegogICAgIGlmICghdmFsaWRhdGVE
cmF3QXJyYXlzKCJkcmF3QXJyYXlzIiwgbW9kZSwgZmlyc3QsIGNvdW50LCAwKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0p
KQorICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1fY3VycmVudFByb2dyYW0pKQogICAgICAg
ICByZXR1cm47CiAKICAgICBjbGVhcklmQ29tcG9zaXRlZCgpOwpAQCAtMjMwOSw3ICsyMzA5LDcg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3RWxlbWVudHMoR0MzRGVudW0g
bW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzMKICAgICBpZiAoIXZhbGlkYXRlRHJhd0VsZW1lbnRz
KCJkcmF3RWxlbWVudHMiLCBtb2RlLCBjb3VudCwgdHlwZSwgb2Zmc2V0LCBudW1FbGVtZW50cywg
MCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1
cnJlbnRQcm9ncmFtKSkKKyAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAmJiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoKnRoaXMsICptX2N1cnJlbnRQcm9n
cmFtKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKaW5kZXggNjk2NDY1MDUzOWIzYmYzOTIwZDE0Y2RhZTEwYzExNTFmNDFlZjk0Ny4uOTEyYzg0
NWJiZjJhMzdlYzI5MmI2NjQ3MmJlOTkwMmM4ODQ4NWU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTEwNzks
MjkgKzEwNzksMjkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEVuYWJsZUV4
dGVuc2lvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHIKICAgICAgICAgY2FudmFzQWdl
bnQtPmRpZEVuYWJsZUV4dGVuc2lvbihjb250ZXh0V2ViR0xCYXNlLCBleHRlbnNpb24pOwogfQog
Ci12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdMUHJvZ3JhbUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIGlm
IChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Lmluc3BlY3RvckNhbnZhc0FnZW50KCkpCi0gICAgICAgIGNhbnZhc0FnZW50LT5kaWRDcmVhdGVQ
cm9ncmFtKGNvbnRleHRXZWJHTEJhc2UsIHByb2dyYW0pOworICAgICAgICBjYW52YXNBZ2VudC0+
ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKGNvbnRleHRXZWJHTEJhc2UsIHByb2dyYW0pOwogfQogCi12
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlbGV0ZVByb2dyYW1JbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3Jh
bSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkdMUHJvZ3Jh
bUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9n
cmFtJiBwcm9ncmFtKQogewogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCi0gICAgICAg
IGNhbnZhc0FnZW50LT53aWxsRGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKKyAgICAgICAgY2FudmFz
QWdlbnQtPndpbGxEZXN0cm95V2ViR0xQcm9ncmFtKHByb2dyYW0pOwogfQogCi1ib29sIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkK
K2Jvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0m
IHByb2dyYW0pCiB7CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgcmV0
dXJuIGNhbnZhc0FnZW50LT5pc1NoYWRlclByb2dyYW1EaXNhYmxlZChwcm9ncmFtKTsKKyAgICAg
ICAgcmV0dXJuIGNhbnZhc0FnZW50LT5pc1dlYkdMUHJvZ3JhbURpc2FibGVkKHByb2dyYW0pOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlz
U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitib29sIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAg
IGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCi0gICAgICAgIHJldHVybiBjYW52YXNBZ2VudC0+
aXNTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQocHJvZ3JhbSk7CisgICAgICAgIHJldHVybiBjYW52
YXNBZ2VudC0+aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChwcm9ncmFtKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAjZW5kaWYKQEAgLTExMjQsNiArMTEyNCwxOCBAQCB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbENvbmZpZ3VyZVN3YXBDaGFpbkltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaQogICAgIGlmIChhdXRvKiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKICAgICAgICAgY2FudmFzQWdlbnQtPndpbGxDb25maWd1
cmVTd2FwQ2hhaW4oY29udGV4dEdQVSwgbmV3U3dhcENoYWluKTsKIH0KKwordm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHUFVEZXZpY2UmIGRldmljZSwgV2Vi
R1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAgIGlmIChhdXRvKiBjYW52YXNBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKKyAgICAgICAgY2FudmFz
QWdlbnQtPmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKGRldmljZSwgcGlwZWxpbmUpOworfQorCit2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViR1BVUGlwZWxp
bmUmIHBpcGVsaW5lKQoreworICAgIGlmIChhdXRvKiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKKyAgICAgICAgY2FudmFzQWdlbnQtPndp
bGxEZXN0cm95V2ViR1BVUGlwZWxpbmUocGlwZWxpbmUpOworfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfVVNBR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggODFmM2NkY2RhMjlmY2UxYjk1ZTdjYmI5ZDU2
ODkwOGZjN2E3OTFjMy4uNTQ5YWExN2EzZWEzYTdiOTE1YmVjNzJiMmJiMjgyMTE2NjM2N2ZkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtNjMsNiArNjMsNyBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAjaW5jbHVkZSAi
R1BVQ2FudmFzQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdQVURldmljZS5oIgorI2luY2x1ZGUg
IldlYkdQVVBpcGVsaW5lLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0y
ODksMTUgKzI5MCwxNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoUmVjb3Jk
aW5nQ2FudmFzRnJhbWUoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYsIGJvb2wgZm9yY2VEaXNwYXRj
aCA9IGZhbHNlKTsKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgc3RhdGljIHZvaWQgZGlkRW5hYmxl
RXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBjb25zdCBTdHJpbmcmKTsKLSAg
ICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBXZWJHTFByb2dyYW0mKTsKLSAgICBzdGF0aWMgdm9pZCB3aWxsRGVsZXRlUHJvZ3JhbShXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIGJvb2wg
aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdM
UHJvZ3JhbSYpOwotICAgIHN0YXRpYyBib29sIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgdm9p
ZCBkaWRDcmVhdGVXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdM
UHJvZ3JhbSYpOworICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdlYkdM
UHJvZ3JhbSYpOworICAgIHN0YXRpYyBib29sIGlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyBib29sIGlz
V2ViR0xQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdM
UHJvZ3JhbSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICBzdGF0aWMgdm9pZCBk
aWRDcmVhdGVXZWJHUFVEZXZpY2UoV2ViR1BVRGV2aWNlJik7CiAgICAgc3RhdGljIHZvaWQgd2ls
bERlc3Ryb3lXZWJHUFVEZXZpY2UoV2ViR1BVRGV2aWNlJik7CiAgICAgc3RhdGljIHZvaWQgd2ls
bENvbmZpZ3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0JiwgV2ViR1BVU3dhcENoYWluJik7
CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwg
V2ViR1BVUGlwZWxpbmUmKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdQVVBpcGVs
aW5lKFdlYkdQVVBpcGVsaW5lJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtT
dGF0ZUNoYW5nZWQoUGFnZSYpOwpAQCAtNDgxLDE1ICs0ODQsMTcgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBib29sIGZvcmNlRGlzcGF0Y2ggPSBm
YWxzZSk7CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0YXRpYyB2b2lkIGRpZEVuYWJsZUV4dGVu
c2lvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVQcm9ncmFtSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJv
Z3JhbSYpOwotICAgIHN0YXRpYyB2b2lkIHdpbGxEZWxldGVQcm9ncmFtSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIGJvb2wgaXNTaGFkZXJQcm9n
cmFtRGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJHTFByb2dyYW0mKTsKLSAg
ICBzdGF0aWMgYm9vbCBpc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdM
UHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBXZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkdMUHJv
Z3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRp
YyBib29sIGlzV2ViR0xQcm9ncmFtRGlzYWJsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBX
ZWJHTFByb2dyYW0mKTsKKyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVk
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoV0VCR1BVKQogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdQVURldmljZSYpOwogICAgIHN0YXRpYyB2b2lkIHdp
bGxEZXN0cm95V2ViR1BVRGV2aWNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViR1BVRGV2
aWNlJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbENvbmZpZ3VyZVN3YXBDaGFpbkltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYsIEdQVUNhbnZhc0NvbnRleHQmLCBXZWJHUFVTd2FwQ2hhaW4mKTsKKyAg
ICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJHUFVQaXBlbGluZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIFdlYkdQVURldmljZSYsIFdlYkdQVVBpcGVsaW5lJik7CisgICAgc3RhdGljIHZvaWQg
d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkdQ
VVBpcGVsaW5lJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5n
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYpOwpAQCAtMTM4NCwzMyArMTM4OSwzMyBAQCBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEVuYWJsZUV4dGVuc2lvbihXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYQogICAgICAgICBkaWRFbmFibGVFeHRlbnNpb25JbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0V2ViR0xCYXNlLCBleHRlbnNpb24pOwogfQogCi1pbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW0oV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9ncmFtJiBwcm9n
cmFtKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJH
TFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2Vi
R0xQcm9ncmFtJiBwcm9ncmFtKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2
b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dFdlYkdMQmFzZS5jYW52YXNC
YXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgZGlkQ3JlYXRlUHJvZ3Jh
bUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHRXZWJHTEJhc2UsIHByb2dyYW0pOwor
ICAgICAgICBkaWRDcmVhdGVXZWJHTFByb2dyYW1JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBj
b250ZXh0V2ViR0xCYXNlLCBwcm9ncmFtKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjb250ZXh0V2ViR0xCYXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCitpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViR0xQcm9ncmFtKFdlYkdMUHJv
Z3JhbSYgcHJvZ3JhbSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgp
KTsKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2UuY2FudmFzQmFzZSgp
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIHdpbGxEZWxldGVQcm9ncmFtSW1w
bCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4
dChwcm9ncmFtLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgIHdpbGxEZXN0cm95
V2ViR0xQcm9ncmFtSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3JhbSk7CiB9CiAKLWlu
bGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNTaGFkZXJQcm9ncmFtRGlzYWJs
ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dFdlYkdMQmFzZSwgV2ViR0xQcm9n
cmFtJiBwcm9ncmFtKQoraW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dl
YkdMUHJvZ3JhbURpc2FibGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJH
TEJhc2UsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFMoZmFsc2UpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dFdlYkdMQmFz
ZS5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgcmV0dXJu
IGlzU2hhZGVyUHJvZ3JhbURpc2FibGVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHJvZ3Jh
bSk7CisgICAgICAgIHJldHVybiBpc1dlYkdMUHJvZ3JhbURpc2FibGVkSW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgcHJvZ3JhbSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1pbmxpbmUgYm9v
bCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHRXZWJHTEJhc2UsIFdlYkdMUHJvZ3JhbSYg
cHJvZ3JhbSkKK2lubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFBy
b2dyYW1IaWdobGlnaHRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0V2ViR0xC
YXNlLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKGZhbHNlKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHRXZWJHTEJhc2Uu
Y2FudmFzQmFzZSgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIHJldHVybiBp
c1NoYWRlclByb2dyYW1IaWdobGlnaHRlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHByb2dy
YW0pOworICAgICAgICByZXR1cm4gaXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZEltcGwoKmluc3Ry
dW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOwogICAgIHJldHVybiBmYWxzZTsKIH0KICNlbmRpZgpA
QCAtMTQzNiw2ICsxNDQxLDIwIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbENvbmZpZ3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0JiBjCiAgICAgaWYgKGF1
dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChj
b250ZXh0R1BVLmNhbnZhc0Jhc2UoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQogICAgICAg
ICB3aWxsQ29uZmlndXJlU3dhcENoYWluSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4
dEdQVSwgbmV3U3dhcENoYWluKTsKIH0KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgV2Vi
R1BVUGlwZWxpbmUmIHBpcGVsaW5lKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5E
Uyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVu
dGluZ0FnZW50c0ZvckNvbnRleHQoZGV2aWNlLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisg
ICAgICAgIGRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywg
ZGV2aWNlLCBwaXBlbGluZSk7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUp
Cit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1
dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChw
aXBlbGluZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICB3aWxsRGVzdHJveVdl
YkdQVVBpcGVsaW5lSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcGlwZWxpbmUpOworfQogI2Vu
ZGlmCiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bmV0d29ya1N0YXRl
Q2hhbmdlZChQYWdlJiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclNoYWRlclByb2dyYW0uY3BwCmluZGV4IGQ1Mjk1NTBjZGM4OWE4NTk0YjJlYjhkZDQ3
NjU3ZmIxMmEzODBjODEuLjdhZjcxOTYzMjhmMTBjNjk2MWJkMjdmODMzOTBjOTQ3YWVlNjA4NDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbS5jcHAKQEAgLTI2LDUzICsyNiwyMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgiCiAKLSNpZiBFTkFCTEUoV0VCR0wpCi0KLSNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5o
IgotI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2Fu
dmFzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5Lmg+Cisj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9WYXJpYW50Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBF
TkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJX
ZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAj
aW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVudGlm
aWVyc0ZhY3RvcnkuaD4KKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKyNpbmNsdWRlICJH
UFVTaGFkZXJNb2R1bGUuaCIKKyNpbmNsdWRlICJXSExTTFByZXBhcmUuaCIKKyNpbmNsdWRlICJX
ZWJHUFVDb21wdXRlUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJHUFVQaXBlbGluZS5oIgorI2lu
Y2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCisjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9k
dWxlLmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SW5zcGVjdG9yOwogCisjaWYgRU5BQkxFKFdFQkdMKQogUmVmPEluc3BlY3RvclNoYWRlclByb2dy
YW0+IEluc3BlY3RvclNoYWRlclByb2dyYW06OmNyZWF0ZShXZWJHTFByb2dyYW0mIHByb2dyYW0s
IEluc3BlY3RvckNhbnZhcyYgaW5zcGVjdG9yQ2FudmFzKQogewogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluc3BlY3RvclNoYWRlclByb2dyYW0ocHJvZ3JhbSwgaW5zcGVjdG9yQ2FudmFzKSk7
CiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJHUFUpCitSZWY8SW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFdlYkdQVVBpcGVsaW5lJiBwaXBl
bGluZSwgSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JDYW52YXMpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShwaXBlbGluZSwgaW5zcGVjdG9yQ2Fu
dmFzKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHTCkKIEluc3BlY3RvclNoYWRlclBy
b2dyYW06Okluc3BlY3RvclNoYWRlclByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtLCBJbnNw
ZWN0b3JDYW52YXMmIGluc3BlY3RvckNhbnZhcykKICAgICA6IG1faWRlbnRpZmllcigicHJvZ3Jh
bToiICsgSWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCi0gICAgLCBtX3By
b2dyYW0ocHJvZ3JhbSkKICAgICAsIG1fY2FudmFzKGluc3BlY3RvckNhbnZhcykKKyAgICAsIG1f
cHJvZ3JhbShwcm9ncmFtKQogeworICAgIEFTU0VSVChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlPihtX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpKTsKIH0KKyNlbmRpZgogCi1XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpjb250ZXh0KCkgY29uc3QK
KyNpZiBFTkFCTEUoV0VCR1BVKQorSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6SW5zcGVjdG9yU2hh
ZGVyUHJvZ3JhbShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3BlY3RvckNhbnZhcyYgaW5z
cGVjdG9yQ2FudmFzKQorICAgIDogbV9pZGVudGlmaWVyKCJwaXBlbGluZToiICsgSWRlbnRpZmll
cnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCisgICAgLCBtX2NhbnZhcyhpbnNwZWN0b3JD
YW52YXMpCisgICAgLCBtX3Byb2dyYW0ocGlwZWxpbmUpCiB7Ci0gICAgQVNTRVJUKG1fY2FudmFz
LmNhbnZhc0NvbnRleHQoKSk7Ci0gICAgQVNTRVJUKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U+KCptX2NhbnZhcy5jYW52YXNDb250ZXh0KCkpKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKm1fY2FudmFzLmNhbnZhc0NvbnRleHQoKSk7CisgICAg
QVNTRVJUKG1fY2FudmFzLmRldmljZUNvbnRleHQoKSk7CiB9CisjZW5kaWYKIAotV2ViR0xTaGFk
ZXIqIEluc3BlY3RvclNoYWRlclByb2dyYW06OnNoYWRlckZvclR5cGUoY29uc3QgU3RyaW5nJiBw
cm90b2NvbFR5cGUpCisjaWYgRU5BQkxFKFdFQkdMKQorV2ViR0xQcm9ncmFtKiBJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtOjpwcm9ncmFtKCkgY29uc3QKIHsKLSAgICBHQzNEZW51bSBzaGFkZXJUeXBl
OwotICAgIGlmIChwcm90b2NvbFR5cGUgPT0gInZlcnRleCIpCi0gICAgICAgIHNoYWRlclR5cGUg
PSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUjsKLSAgICBlbHNlIGlmIChwcm90b2Nv
bFR5cGUgPT0gImZyYWdtZW50IikKLSAgICAgICAgc2hhZGVyVHlwZSA9IEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFHTUVOVF9TSEFERVI7Ci0gICAgZWxzZQorICAgIGlmIChhdXRvKiBwcm9ncmFtV3Jh
cHBlciA9IFdURjo6Z2V0X2lmPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPj4o
bV9wcm9ncmFtKSkKKyAgICAgICAgcmV0dXJuICZwcm9ncmFtV3JhcHBlci0+Z2V0KCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJHUFUpCitXZWJHUFVQ
aXBlbGluZSogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cGlwZWxpbmUoKSBjb25zdAoreworICAg
IGlmIChhdXRvKiBwaXBlbGluZVdyYXBwZXIgPSBXVEY6OmdldF9pZjxzdGQ6OnJlZmVyZW5jZV93
cmFwcGVyPFdlYkdQVVBpcGVsaW5lPj4obV9wcm9ncmFtKSkKKyAgICAgICAgcmV0dXJuICZwaXBl
bGluZVdyYXBwZXItPmdldCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoV0VCR0wpCitzdGF0aWMgV2ViR0xTaGFkZXIqIHNoYWRlckZvclR5cGUoV2ViR0xQ
cm9ncmFtJiBwcm9ncmFtLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUg
c2hhZGVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6RnJhZ21lbnQ6CisgICAgICAgIHJl
dHVybiBwcm9ncmFtLmdldEF0dGFjaGVkU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVO
VF9TSEFERVIpOworCisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRl
clR5cGU6OlZlcnRleDoKKyAgICAgICAgcmV0dXJuIHByb2dyYW0uZ2V0QXR0YWNoZWRTaGFkZXIo
R3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIpOworCisgICAgLy8gQ29tcHV0ZSBzaGFk
ZXJzIGFyZSBhIFdlYkdQVSBjb25jZXB0LgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
Q2FudmFzOjpTaGFkZXJUeXBlOjpDb21wdXRlOgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CiAKLSAgICByZXR1cm4gbV9wcm9ncmFtLmdldEF0dGFjaGVkU2hhZGVyKHNoYWRlclR5cGUp
OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorc3RhdGljIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiBzaGFkZXJGb3JUeXBlKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUpCit7CisgICAg
c3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52
YXM6OlNoYWRlclR5cGU6OkNvbXB1dGU6CisgICAgICAgIGlmIChpczxXZWJHUFVDb21wdXRlUGlw
ZWxpbmU+KHBpcGVsaW5lKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJHUFVDb21w
dXRlUGlwZWxpbmU+KHBpcGVsaW5lKS5jb21wdXRlU2hhZGVyKCk7CisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hh
ZGVyVHlwZTo6RnJhZ21lbnQ6CisgICAgICAgIGlmIChpczxXZWJHUFVSZW5kZXJQaXBlbGluZT4o
cGlwZWxpbmUpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdQVVJlbmRlclBpcGVs
aW5lPihwaXBlbGluZSkuZnJhZ21lbnRTaGFkZXIoKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBl
OjpWZXJ0ZXg6CisgICAgICAgIGlmIChpczxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUp
KQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBl
bGluZSkudmVydGV4U2hhZGVyKCk7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
K30KKyNlbmRpZgorCitTdHJpbmcgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6cmVxdWVzdFNoYWRl
clNvdXJjZShJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSkKK3sKKyNpZiAhRU5BQkxFKFdFQkdMKSAmJiAhRU5BQkxFKFdFQkdQVSkKKyAgICBVTlVTRURf
UEFSQU0oc2hhZGVyVHlwZSk7CisjZW5kaWYKKworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1f
cHJvZ3JhbSwKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgICAgIFsmXSAoc3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxXZWJHTFByb2dyYW0+IHByb2dyYW1XcmFwcGVyKSB7CisgICAgICAgICAgICBhdXRv
JiBwcm9ncmFtID0gcHJvZ3JhbVdyYXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byog
c2hhZGVyID0gc2hhZGVyRm9yVHlwZShwcm9ncmFtLCBzaGFkZXJUeXBlKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2hhZGVyLT5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKyAgICAgICAgfSwKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgICAgIFsm
XSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4gcGlwZWxpbmVXcmFwcGVy
KSB7CisgICAgICAgICAgICBhdXRvJiBwaXBlbGluZSA9IHBpcGVsaW5lV3JhcHBlci5nZXQoKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIHNoYWRlckRhdGEgPSBzaGFkZXJGb3JUeXBlKHBpcGVsaW5l
LCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIG1vZHVsZSA9IHNoYWRl
ckRhdGEudmFsdWUoKS5tb2R1bGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2R1bGUt
PnNvdXJjZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgICAgICB9LAorI2VuZGlmCisgICAgICAgIFsmXSAoTW9ub3N0YXRlKSB7CisjaWYgRU5BQkxF
KFdFQkdMKSB8fCBFTkFCTEUoV0VCR1BVKQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgfQorICAg
ICk7Cit9CisKK2Jvb2wgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZSkKK3sKKyNpZiAhRU5BQkxFKFdFQkdMKSAmJiAhRU5BQkxFKFdFQkdQVSkKKyAg
ICBVTlVTRURfUEFSQU0oc2hhZGVyVHlwZSk7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZSk7Cisj
ZW5kaWYKKworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcHJvZ3JhbSwKKyNpZiBFTkFCTEUo
V0VCR0wpCisgICAgICAgIFsmXSAoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHTFByb2dyYW0+
IHByb2dyYW1XcmFwcGVyKSB7CisgICAgICAgICAgICBhdXRvJiBwcm9ncmFtID0gcHJvZ3JhbVdy
YXBwZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoYXV0byogc2hhZGVyID0gc2hhZGVyRm9yVHlw
ZShwcm9ncmFtLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBjb250
ZXh0ID0gbV9jYW52YXMuY2FudmFzQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPihjb250ZXh0KSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byYgY29udGV4dFdlYkdMQmFzZSA9IGRvd25jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U+KCpjb250ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl
eHRXZWJHTEJhc2Uuc2hhZGVyU291cmNlKHNoYWRlciwgc291cmNlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRleHRXZWJHTEJhc2UuY29tcGlsZVNoYWRlcihzaGFkZXIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHNoYWRlci0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGV4dFdlYkdMQmFzZS5saW5rUHJvZ3JhbVdpdGhvdXRJbnZhbGlk
YXRpbmdBdHRyaWJMb2NhdGlvbnMoJnByb2dyYW0pOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9LAorI2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAg
ICAgICAgWyZdIChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdQVVBpcGVsaW5lPiBwaXBlbGlu
ZVdyYXBwZXIpIHsKKyAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlwZWxpbmVXcmFwcGVy
LmdldCgpOworICAgICAgICAgICAgaWYgKGF1dG8qIGRldmljZSA9IG1fY2FudmFzLmRldmljZUNv
bnRleHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHNoYWRlckRhdGEgPSBzaGFkZXJG
b3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
YXV0byBtb2R1bGUgPSBzaGFkZXJEYXRhLnZhbHVlKCkubW9kdWxlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBtb2R1bGUtPnVwZGF0ZSgqZGV2aWNlLCBzb3VyY2UpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHBpcGVsaW5lLnJlY29tcGlsZSgqZGV2aWNlKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfSwKKyNlbmRpZgorICAgICAgICBbJl0gKE1vbm9zdGF0ZSkgeworI2lmIEVOQUJM
RShXRUJHTCkgfHwgRU5BQkxFKFdFQkdQVSkKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0u
aAppbmRleCA5NDY3ZTg0N2Y1ZDNkOTJkMTQ5MDBlNGI4NTU5NjFhYTZhZGU2NmNlLi4wZTBlMTE2
N2U4NTMwZWVkZDM5Nzc2YzgzOWIxYTJhYjFjOTc4MzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgKQEAgLTI2LDI1ICsyNiw0MyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90
b2NvbE9iamVjdHMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zcGVjdG9yQ2Fu
dmFzOworCisjaWYgRU5BQkxFKFdFQkdMKQogY2xhc3MgV2ViR0xQcm9ncmFtOwogY2xhc3MgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKLWNsYXNzIFdlYkdMU2hhZGVyOworI2VuZGlmCiAKLXR5
cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOworI2lmIEVOQUJMRShXRUJHUFUpCitjbGFzcyBXZWJH
UFVQaXBlbGluZTsKKyNlbmRpZgogCiBjbGFzcyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtIGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbT4gewogcHVibGljOgor
I2lmIEVOQUJMRShXRUJHTCkKICAgICBzdGF0aWMgUmVmPEluc3BlY3RvclNoYWRlclByb2dyYW0+
IGNyZWF0ZShXZWJHTFByb2dyYW0mLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgorI2lmIEVO
QUJMRShXRUJHUFUpCisgICAgc3RhdGljIFJlZjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBjcmVh
dGUoV2ViR1BVUGlwZWxpbmUmLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRpZgogCiAgICAgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAg
ICAgSW5zcGVjdG9yQ2FudmFzJiBjYW52YXMoKSBjb25zdCB7IHJldHVybiBtX2NhbnZhczsgfQot
ICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQoKSBjb25zdDsKLSAgICBXZWJH
TFByb2dyYW0mIHByb2dyYW0oKSBjb25zdCB7IHJldHVybiBtX3Byb2dyYW07IH0KLSAgICBXZWJH
TFNoYWRlciogc2hhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcmKTsKKworI2lmIEVOQUJMRShXRUJH
TCkKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0oKSBjb25zdDsKKyNlbmRpZgorI2lmIEVOQUJM
RShXRUJHUFUpCisgICAgV2ViR1BVUGlwZWxpbmUqIHBpcGVsaW5lKCkgY29uc3Q7CisjZW5kaWYK
KworICAgIFN0cmluZyByZXF1ZXN0U2hhZGVyU291cmNlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNh
bnZhczo6U2hhZGVyVHlwZSk7CisgICAgYm9vbCB1cGRhdGVTaGFkZXIoSW5zcGVjdG9yOjpQcm90
b2NvbDo6Q2FudmFzOjpTaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSk7CiAKICAgICBi
b29sIGRpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZDsgfQogICAgIHZvaWQgc2V0
RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkgeyBtX2Rpc2FibGVkID0gZGlzYWJsZWQ7IH0KQEAgLTUy
LDE1ICs3MCwyNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoaWdobGlnaHRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1faGlnaGxpZ2h0ZWQ7IH0KICAgICB2b2lkIHNldEhpZ2hsaWdodGVkKGJvb2wgdmFsdWUp
IHsgbV9oaWdobGlnaHRlZCA9IHZhbHVlOyB9CiAKLSAgICB+SW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bSgpID0gZGVmYXVsdDsKLQogcHJpdmF0ZToKKyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbShXZWJHTFByb2dyYW0mLCBJbnNwZWN0b3JDYW52YXMmKTsKKyNlbmRp
ZgorI2lmIEVOQUJMRShXRUJHUFUpCisgICAgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbShXZWJHUFVQ
aXBlbGluZSYsIEluc3BlY3RvckNhbnZhcyYpOworI2VuZGlmCiAKICAgICBTdHJpbmcgbV9pZGVu
dGlmaWVyOwotICAgIFdlYkdMUHJvZ3JhbSYgbV9wcm9ncmFtOwogICAgIEluc3BlY3RvckNhbnZh
cyYgbV9jYW52YXM7CiAKKyAgICBWYXJpYW50PAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAg
c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHTFByb2dyYW0+LAorI2VuZGlmCisjaWYgRU5BQkxF
KFdFQkdQVSkKKyAgICAgICAgc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxXZWJHUFVQaXBlbGluZT4s
CisjZW5kaWYKKyAgICAgICAgTW9ub3N0YXRlCisgICAgPiBtX3Byb2dyYW07CisKICAgICBib29s
IG1fZGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oaWdobGlnaHRlZCB7IGZhbHNlIH07
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmNwcAppbmRleCAxODUyMjQ4NWE2NTIyYjU1ZDMyODMwYjE2ZjNmOGNj
NjIwZDM3ZjNjLi4zMDMyMWE2ZjU0MGIwZTQzNmEyZjQzYTBmOWNlNzVlNDM3MTczZDk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JTaGFkZXJQcm9ncmFt
LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIkpTRXhlY1N0
YXRlLmgiCiAjaW5jbHVkZSAiTWljcm90YXNrcy5oIgpAQCAtNDYsMTQgKzQ3LDE4IEBACiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoV0VC
R0wpCiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgotI2luY2x1
ZGUgIldlYkdMU2hhZGVyLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTDIpCkBAIC02Miw3
ICs2NywxMSBAQAogCiAjaWYgRU5BQkxFKFdFQkdQVSkKICNpbmNsdWRlICJHUFVDYW52YXNDb250
ZXh0LmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiV2Vi
R1BVRGV2aWNlLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmUuaCIKKyNpbmNsdWRlICJXZWJH
UFVSZW5kZXJQaXBlbGluZS5oIgorI2luY2x1ZGUgIldlYkdQVVN3YXBDaGFpbi5oIgogI2VuZGlm
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc2LDYgKzg1LDcgQEAgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6Okluc3BlY3RvckNhbnZhc0FnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiAg
ICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihjb250ZXh0LmluamVjdGVkU2NyaXB0TWFuYWdl
cikKICAgICAsIG1faW5zcGVjdGVkUGFnZShjb250ZXh0Lmluc3BlY3RlZFBhZ2UpCiAgICAgLCBt
X2NhbnZhc0Rlc3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNhbnZh
c0Rlc3Ryb3llZFRpbWVyRmlyZWQpCisgICAgLCBtX3Byb2dyYW1EZXN0cm95ZWRUaW1lcigqdGhp
cywgJkluc3BlY3RvckNhbnZhc0FnZW50Ojpwcm9ncmFtRGVzdHJveWVkVGltZXJGaXJlZCkKIHsK
IH0KIApAQCAtOTMsNyArMTAzLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmUKIAogdm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzY2FyZEFnZW50KCkKIHsKLSAgICBjbGVhckNhbnZhc0Rh
dGEoKTsKKyAgICByZXNldCgpOwogfQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjplbmFi
bGUoRXJyb3JTdHJpbmcmKQpAQCAtMTQxLDcgKzE1MSwxNyBAQCB2b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2Vi
R0xQcm9ncmFtOjppbnN0YW5jZXNNdXRleCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBbcHJvZ3Jh
bSwgY29udGV4dFdlYkdMQmFzZV0gOiBXZWJHTFByb2dyYW06Omluc3RhbmNlcyhsb2NrKSkgewog
ICAgICAgICAgICAgaWYgKGNvbnRleHRXZWJHTEJhc2UgJiYgZXhpc3RzSW5DdXJyZW50UGFnZShj
b250ZXh0V2ViR0xCYXNlLT5jYW52YXNCYXNlKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
LSAgICAgICAgICAgICAgICBkaWRDcmVhdGVQcm9ncmFtKCpjb250ZXh0V2ViR0xCYXNlLCAqcHJv
Z3JhbSk7CisgICAgICAgICAgICAgICAgZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKCpjb250ZXh0V2Vi
R0xCYXNlLCAqcHJvZ3JhbSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJHUFUpCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViR1BVUGlwZWxpbmU6
Omluc3RhbmNlc011dGV4KCkpOworICAgICAgICBmb3IgKGF1dG8mIFtwaXBlbGluZSwgZGV2aWNl
XSA6IFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAgIGlmIChk
ZXZpY2UgJiYgZXhpc3RzSW5DdXJyZW50UGFnZShkZXZpY2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkgJiYgcGlwZWxpbmUtPmlzVmFsaWQoKSkKKyAgICAgICAgICAgICAgICBkaWRDcmVhdGVX
ZWJHUFVQaXBlbGluZSgqZGV2aWNlLCAqcGlwZWxpbmUpOwogICAgICAgICB9CiAgICAgfQogI2Vu
ZGlmCkBAIC0xNTEsNyArMTcxLDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzYWJs
ZShFcnJvclN0cmluZyYpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEluc3BlY3Rv
ckNhbnZhc0FnZW50KG51bGxwdHIpOwogCi0gICAgY2xlYXJDYW52YXNEYXRhKCk7CisgICAgcmVz
ZXQoKTsKIAogICAgIG1fcmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50ID0gV1RGOjpudWxs
b3B0OwogfQpAQCAtMjgwLDkzICszMDAsNjUgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
c3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYKICAg
ICBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZSgqY29udGV4dCwgdHJ1ZSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFk
ZXJUeXBlLCBTdHJpbmcqIGNvbnRlbnQpCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpyZXF1
ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBw
cm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZVN0cmluZywgU3RyaW5nKiBvdXRTb3Vy
Y2UpCiB7Ci0jaWYgRU5BQkxFKFdFQkdMKQogICAgIGF1dG8gaW5zcGVjdG9yUHJvZ3JhbSA9IGFz
c2VydEluc3BlY3RvclByb2dyYW0oZXJyb3JTdHJpbmcsIHByb2dyYW1JZCk7CiAgICAgaWYgKCFp
bnNwZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvKiBzaGFkZXIgPSBp
bnNwZWN0b3JQcm9ncmFtLT5zaGFkZXJGb3JUeXBlKHNoYWRlclR5cGUpOwotICAgIGlmICghc2hh
ZGVyKSB7Ci0gICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgc2hhZGVyIGZvciBnaXZlbiBz
aGFkZXJUeXBlIl9zOworICAgIGF1dG8gc2hhZGVyVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6
Okluc3BlY3RvckhlbHBlcnM6OnBhcnNlRW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU+KHNoYWRlclR5cGVTdHJpbmcpOworICAgIGlmICgh
c2hhZGVyVHlwZSkgeworICAgICAgICBlcnJvclN0cmluZyA9IG1ha2VTdHJpbmcoIlVua25vd24g
c2hhZGVyVHlwZTogIl9zLCBzaGFkZXJUeXBlU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgICpjb250ZW50ID0gc2hhZGVyLT5nZXRTb3VyY2UoKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0gICAgVU5VU0VEX1BBUkFNKHNoYWRlclR5cGUpOwotICAg
IFVOVVNFRF9QQVJBTShjb250ZW50KTsKLSAgICBlcnJvclN0cmluZyA9ICJOb3Qgc3VwcG9ydGVk
Il9zOwotI2VuZGlmCisgICAgYXV0byBzb3VyY2UgPSBpbnNwZWN0b3JQcm9ncmFtLT5yZXF1ZXN0
U2hhZGVyU291cmNlKHNoYWRlclR5cGUudmFsdWUoKSk7CisgICAgaWYgKCFzb3VyY2UpIHsKKyAg
ICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBm
b3IgZ2l2ZW4gcHJvZ3JhbUlkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKm91
dFNvdXJjZSA9IHNvdXJjZTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6dXBkYXRl
U2hhZGVyKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQs
IGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCit2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50Ojp1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKIHsKLSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgYXV0byBp
bnNwZWN0b3JQcm9ncmFtID0gYXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShlcnJvclN0cmluZywgcHJv
Z3JhbUlkKTsKICAgICBpZiAoIWluc3BlY3RvclByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8qIHNoYWRlciA9IGluc3BlY3RvclByb2dyYW0tPnNoYWRlckZvclR5cGUoc2hhZGVy
VHlwZSk7Ci0gICAgaWYgKCFzaGFkZXIpIHsKLSAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2lu
ZyBzaGFkZXIgZm9yIGdpdmVuIHNoYWRlclR5cGUiX3M7CisgICAgYXV0byBzaGFkZXJUeXBlID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6SW5zcGVjdG9ySGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9t
U3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZT4oc2hhZGVyVHlw
ZVN0cmluZyk7CisgICAgaWYgKCFzaGFkZXJUeXBlKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0g
bWFrZVN0cmluZygiVW5rbm93biBzaGFkZXJUeXBlOiAiX3MsIHNoYWRlclR5cGVTdHJpbmcpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYg
Y29udGV4dFdlYkdMID0gaW5zcGVjdG9yUHJvZ3JhbS0+Y29udGV4dCgpOwotICAgIGNvbnRleHRX
ZWJHTC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzb3VyY2UpOwotICAgIGNvbnRleHRXZWJHTC5jb21w
aWxlU2hhZGVyKHNoYWRlcik7Ci0KLSAgICBpZiAoIXNoYWRlci0+aXNWYWxpZCgpKSB7Ci0gICAg
ICAgIGVycm9yU3RyaW5nID0gIkZhaWxlZCB0byB1cGRhdGUgc2hhZGVyIl9zOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgY29udGV4dFdlYkdMLmxpbmtQcm9ncmFtV2l0aG91dEludmFs
aWRhdGluZ0F0dHJpYkxvY2F0aW9ucygmaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3JhbSgpKTsKLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb2dyYW1JZCk7Ci0gICAgVU5VU0VEX1BBUkFNKHNoYWRl
clR5cGUpOwotICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOwotICAgIGVycm9yU3RyaW5nID0gIk5v
dCBzdXBwb3J0ZWQiX3M7Ci0jZW5kaWYKKyAgICBpZiAoIWluc3BlY3RvclByb2dyYW0tPnVwZGF0
ZVNoYWRlcihzaGFkZXJUeXBlLnZhbHVlKCksIHNvdXJjZSkpCisgICAgICAgIGVycm9yU3RyaW5n
ID0gIkZhaWxlZCB0byB1cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVu
IHByb2dyYW1JZCJfczsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6c2V0U2hhZGVy
UHJvZ3JhbURpc2FibGVkKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBw
cm9ncmFtSWQsIGJvb2wgZGlzYWJsZWQpCiB7Ci0jaWYgRU5BQkxFKFdFQkdMKQogICAgIGF1dG8g
aW5zcGVjdG9yUHJvZ3JhbSA9IGFzc2VydEluc3BlY3RvclByb2dyYW0oZXJyb3JTdHJpbmcsIHBy
b2dyYW1JZCk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpbnNwZWN0b3JQcm9ncmFtLT5zZXREaXNhYmxlZChkaXNhYmxlZCk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShwcm9ncmFtSWQpOwotICAgIFVOVVNFRF9QQVJBTShkaXNhYmxlZCk7Ci0g
ICAgZXJyb3JTdHJpbmcgPSAiTm90IHN1cHBvcnRlZCJfczsKLSNlbmRpZgogfQogCiB2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50OjpzZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBoaWdobGlnaHRl
ZCkKIHsKLSNpZiBFTkFCTEUoV0VCR0wpCiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gYXNz
ZXJ0SW5zcGVjdG9yUHJvZ3JhbShlcnJvclN0cmluZywgcHJvZ3JhbUlkKTsKICAgICBpZiAoIWlu
c3BlY3RvclByb2dyYW0pCiAgICAgICAgIHJldHVybjsKIAogICAgIGluc3BlY3RvclByb2dyYW0t
PnNldEhpZ2hsaWdodGVkKGhpZ2hsaWdodGVkKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHBy
b2dyYW1JZCk7Ci0gICAgVU5VU0VEX1BBUkFNKGhpZ2hsaWdodGVkKTsKLSAgICBlcnJvclN0cmlu
ZyA9ICJOb3Qgc3VwcG9ydGVkIl9zOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lJiBmcmFtZSkKIHsKICAgICBpZiAoZnJhbWUuaXNN
YWluRnJhbWUoKSkgewotICAgICAgICBjbGVhckNhbnZhc0RhdGEoKTsKKyAgICAgICAgcmVzZXQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTY4LDcgKzU2MCw3IEBAIHZvaWQgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OmRpZEVuYWJsZUV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiBjb250ZXh0CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmV4dGVuc2lvbkVuYWJs
ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIGV4dGVuc2lvbik7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQordm9pZCBJbnNwZWN0b3JD
YW52YXNBZ2VudDo6ZGlkQ3JlYXRlV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGNvbnRleHQsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKIHsKICAgICBhdXRvIGluc3BlY3Rv
ckNhbnZhcyA9IGZpbmRJbnNwZWN0b3JDYW52YXMoY29udGV4dCk7CiAgICAgQVNTRVJUKGluc3Bl
Y3RvckNhbnZhcyk7CkBAIC01NzgsMjAgKzU3MCwxOSBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0Fn
ZW50OjpkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQs
CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6Y3Jl
YXRlKHByb2dyYW0sICppbnNwZWN0b3JDYW52YXMpOwogICAgIFN0cmluZyBwcm9ncmFtSWRlbnRp
ZmllciA9IGluc3BlY3RvclByb2dyYW0tPmlkZW50aWZpZXIoKTsKICAgICBtX2lkZW50aWZpZXJU
b0luc3BlY3RvclByb2dyYW0uc2V0KHByb2dyYW1JZGVudGlmaWVyLCBXVEZNb3ZlKGluc3BlY3Rv
clByb2dyYW0pKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQoaW5z
cGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHByb2dyYW1JZGVudGlmaWVyKTsKKyAgICBtX2Zy
b250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNyZWF0ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlm
aWVyKCksIHByb2dyYW1JZGVudGlmaWVyLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlBy
b2dyYW1UeXBlOjpSZW5kZXIpOwogfQogCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxs
RGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCit2b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50Ojp3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7
CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3BlY3RvclByb2dyYW0ocHJvZ3Jh
bSk7CiAgICAgaWYgKCFpbnNwZWN0b3JQcm9ncmFtKQogICAgICAgICByZXR1cm47CiAKLSAgICBT
dHJpbmcgaWRlbnRpZmllciA9IHVuYmluZFByb2dyYW0oKmluc3BlY3RvclByb2dyYW0pOwotICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtRGVsZXRlZChpZGVudGlmaWVyKTsKKyAgICB1
bmJpbmRQcm9ncmFtKCppbnNwZWN0b3JQcm9ncmFtKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6aXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQor
Ym9vbCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZChXZWJHTFBy
b2dyYW0mIHByb2dyYW0pCiB7CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3Bl
Y3RvclByb2dyYW0ocHJvZ3JhbSk7CiAgICAgQVNTRVJUKGluc3BlY3RvclByb2dyYW0pOwpAQCAt
NjAxLDcgKzU5Miw3IEBAIGJvb2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmlzU2hhZGVyUHJvZ3Jh
bURpc2FibGVkKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKICAgICByZXR1cm4gaW5zcGVjdG9yUHJv
Z3JhbS0+ZGlzYWJsZWQoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aXNTaGFk
ZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorYm9vbCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6aXNXZWJHTFByb2dyYW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mIHBy
b2dyYW0pCiB7CiAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3BlY3RvclByb2dy
YW0ocHJvZ3JhbSk7CiAgICAgQVNTRVJUKGluc3BlY3RvclByb2dyYW0pOwpAQCAtNjQ5LDYgKzY0
MCwzOCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsQ29uZmlndXJlU3dhcENoYWlu
KEdQVUNhbnZhc0NvbnRleHQmIGNvbnRleHRHUFUsCiAKICAgICBub3RpZnlEZXZpY2VGb3JTd2Fw
Q2hhaW4obmV3U3dhcENoYWluKTsKIH0KKwordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlk
Q3JlYXRlV2ViR1BVUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFdlYkdQVVBpcGVsaW5l
JiBwaXBlbGluZSkKK3sKKyAgICBhdXRvIGluc3BlY3RvckNhbnZhcyA9IGZpbmRJbnNwZWN0b3JD
YW52YXMoZGV2aWNlKTsKKyAgICBBU1NFUlQoaW5zcGVjdG9yQ2FudmFzKTsKKyAgICBpZiAoIWlu
c3BlY3RvckNhbnZhcykKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKHBpcGVsaW5lLmlz
VmFsaWQoKSk7CisKKyAgICBhdXRvIGluc3BlY3RvclByb2dyYW0gPSBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtOjpjcmVhdGUocGlwZWxpbmUsICppbnNwZWN0b3JDYW52YXMpOworICAgIFN0cmluZyBw
cm9ncmFtSWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0tPmlkZW50aWZpZXIoKTsKKyAgICBt
X2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KHByb2dyYW1JZGVudGlmaWVyLCBXVEZN
b3ZlKGluc3BlY3RvclByb2dyYW0pKTsKKworICAgIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNhbnZhczo6UHJvZ3JhbVR5cGU+IHByb2dyYW1UeXBlOworICAgIGlmIChpczxXZWJHUFVD
b21wdXRlUGlwZWxpbmU+KHBpcGVsaW5lKSkKKyAgICAgICAgcHJvZ3JhbVR5cGUgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpDYW52YXM6OlByb2dyYW1UeXBlOjpDb21wdXRlOworICAgIGVsc2UgaWYg
KGlzPFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCisgICAgICAgIHByb2dyYW1UeXBl
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlwZTo6UmVuZGVyOworICAg
IEFTU0VSVChwcm9ncmFtVHlwZSk7CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3Jh
bUNyZWF0ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHByb2dyYW1JZGVudGlmaWVy
LCBwcm9ncmFtVHlwZS52YWx1ZSgpKTsKK30KKwordm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7Cisg
ICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gZmluZEluc3BlY3RvclByb2dyYW0ocGlwZWxpbmUp
OworICAgIGlmICghaW5zcGVjdG9yUHJvZ3JhbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5i
aW5kUHJvZ3JhbSgqaW5zcGVjdG9yUHJvZ3JhbSk7Cit9CiAjZW5kaWYKIAogdm9pZCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6c3RhcnRSZWNvcmRpbmcoSW5zcGVjdG9yQ2FudmFzJiBpbnNwZWN0b3JD
YW52YXMsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlY29yZGluZzo6SW5pdGlhdG9yIGluaXRpYXRv
ciwgUmVjb3JkaW5nT3B0aW9ucyYmIHJlY29yZGluZ09wdGlvbnMpCkBAIC02OTQsNyArNzE3LDE4
IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNhbnZhc0Rlc3Ryb3llZFRpbWVyRmlyZWQo
KQogICAgIG1fcmVtb3ZlZENhbnZhc0lkZW50aWZpZXJzLmNsZWFyKCk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OmNsZWFyQ2FudmFzRGF0YSgpCit2b2lkIEluc3BlY3RvckNhbnZh
c0FnZW50Ojpwcm9ncmFtRGVzdHJveWVkVGltZXJGaXJlZCgpCit7CisgICAgaWYgKCFtX3JlbW92
ZWRQcm9ncmFtSWRlbnRpZmllcnMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3Ig
KGF1dG8mIGlkZW50aWZpZXIgOiBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnMpCisgICAgICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wcm9ncmFtRGVsZXRlZChpZGVudGlmaWVyKTsKKworICAg
IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3Rv
ckNhbnZhc0FnZW50OjpyZXNldCgpCiB7CiAgICAgZm9yIChhdXRvJiBpbnNwZWN0b3JDYW52YXMg
OiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhcy52YWx1ZXMoKSkgewogICAgICAgICBpZiAo
YXV0byogY29udGV4dCA9IGluc3BlY3RvckNhbnZhcy0+Y2FudmFzQ29udGV4dCgpKQpAQCAtNzAy
LDEzICs3MzYsMTQgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y2xlYXJDYW52YXNEYXRh
KCkKICAgICB9CiAKICAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhcy5jbGVhcigpOwot
I2lmIEVOQUJMRShXRUJHTCkKLSAgICBtX2lkZW50aWZpZXJUb0luc3BlY3RvclByb2dyYW0uY2xl
YXIoKTsKICAgICBtX3JlbW92ZWRDYW52YXNJZGVudGlmaWVycy5jbGVhcigpOwotI2VuZGlmCi0K
ICAgICBpZiAobV9jYW52YXNEZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX2Nh
bnZhc0Rlc3Ryb3llZFRpbWVyLnN0b3AoKTsKKworICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9y
UHJvZ3JhbS5jbGVhcigpOworICAgIG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5jbGVhcigp
OworICAgIGlmIChtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBt
X3Byb2dyYW1EZXN0cm95ZWRUaW1lci5zdG9wKCk7CiB9CiAKIEluc3BlY3RvckNhbnZhcyYgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OmJpbmRDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY29u
dGV4dCwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKQpAQCAtODA1LDEzICs4NDAsMTggQEAgUmVmUHRy
PEluc3BlY3RvckNhbnZhcz4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZpbmRJbnNwZWN0b3JDYW52
YXMoV2ViR1BVRGV2aWNlJgogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCR0wpCi1TdHJpbmcg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVuYmluZFByb2dyYW0oSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bSYgaW5zcGVjdG9yUHJvZ3JhbSkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnVuYmluZFBy
b2dyYW0oSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbSYgaW5zcGVjdG9yUHJvZ3JhbSkKIHsKICAgICBT
dHJpbmcgaWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0uaWRlbnRpZmllcigpOwogICAgIG1f
aWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5yZW1vdmUoaWRlbnRpZmllcik7CiAKLSAgICBy
ZXR1cm4gaWRlbnRpZmllcjsKKyAgICAvLyBUaGlzIGNhbiBiZSBjYWxsZWQgaW4gcmVzcG9uc2Ug
dG8gR0MuIER1ZSB0byB0aGUgc2luZ2xlLXByb2Nlc3MgbW9kZWwgdXNlZCBpbiBXZWJLaXQxLCB0
aGUKKyAgICAvLyBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQgZnJvbSBhIHRpbWVyIHRvIHByZXZl
bnQgdGhlIGZyb250ZW5kIGZyb20gbWFraW5nIEpTIGFsbG9jYXRpb25zCisgICAgLy8gd2hpbGUg
dGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KKyAgICBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnMu
YXBwZW5kKGlkZW50aWZpZXIpOworCisgICAgaWYgKCFtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5p
c0FjdGl2ZSgpKQorICAgICAgICBtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5zdGFydE9uZVNob3Qo
MF9zKTsKIH0KIAogUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZh
c0FnZW50Ojphc3NlcnRJbnNwZWN0b3JQcm9ncmFtKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBwcm9ncmFtSWQpCkBAIC04MjQsMTAgKzg2NCwyMiBAQCBSZWZQdHI8SW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmFzc2VydEluc3BlY3Rv
clByb2dyYW0oRXJybwogICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtOwogfQogCisjaWYgRU5B
QkxFKFdFQkdMKQogUmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZh
c0FnZW50OjpmaW5kSW5zcGVjdG9yUHJvZ3JhbShXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAg
ICAgZm9yIChhdXRvJiBpbnNwZWN0b3JQcm9ncmFtIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQ
cm9ncmFtLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICgmaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3Jh
bSgpID09ICZwcm9ncmFtKQorICAgICAgICBpZiAoaW5zcGVjdG9yUHJvZ3JhbS0+cHJvZ3JhbSgp
ID09ICZwcm9ncmFtKQorICAgICAgICAgICAgcmV0dXJuIGluc3BlY3RvclByb2dyYW07CisgICAg
fQorICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
UmVmUHRyPEluc3BlY3RvclNoYWRlclByb2dyYW0+IEluc3BlY3RvckNhbnZhc0FnZW50OjpmaW5k
SW5zcGVjdG9yUHJvZ3JhbShXZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUpCit7CisgICAgZm9yIChh
dXRvJiBpbnNwZWN0b3JQcm9ncmFtIDogbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtLnZh
bHVlcygpKSB7CisgICAgICAgIGlmIChpbnNwZWN0b3JQcm9ncmFtLT5waXBlbGluZSgpID09ICZw
aXBlbGluZSkKICAgICAgICAgICAgIHJldHVybiBpbnNwZWN0b3JQcm9ncmFtOwogICAgIH0KICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCBiYWVkZDQ2N2NkOTcxN2Q2NTZiYzcz
NzZlMGVlYmQyMjNkMmMwZmE2Li42MGM1NmU5NmZiNjUwMTQ5YmM3ZWI3ODUyYjI1MGJhNzg2ZWNi
NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNhbnZhc0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDYW52YXNBZ2VudC5oCkBAIC0zMywxNCArMzMsNyBAQAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxpbml0aWFs
aXplcl9saXN0PgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtLmgiCi0jZW5kaWYKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKIGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKQEAgLTQ5LDYgKzQyLDcgQEAg
Y2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OworY2xhc3MgSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTsK
ICNpZiBFTkFCTEUoV0VCR0wpCiBjbGFzcyBXZWJHTFByb2dyYW07CiBjbGFzcyBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOwpAQCAtNTYsNiArNTAsNyBAQCBjbGFzcyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOwogI2lmIEVOQUJMRShXRUJHUFUpCiBjbGFzcyBHUFVDYW52YXNDb250ZXh0Owog
Y2xhc3MgV2ViR1BVRGV2aWNlOworY2xhc3MgV2ViR1BVUGlwZWxpbmU7CiBjbGFzcyBXZWJHUFVT
d2FwQ2hhaW47CiAjZW5kaWYKIApAQCAtODMsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoRXJyb3JTdHJpbmcmLCBpbnQgY291bnQp
OwogICAgIHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNh
bnZhc0lkLCBjb25zdCBpbnQqIGZyYW1lQ291bnQsIGNvbnN0IGludCogbWVtb3J5TGltaXQpOwog
ICAgIHZvaWQgc3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFz
SWQpOwotICAgIHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyopOworICAg
IHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJv
Z3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyogc291cmNlKTsKICAgICB2
b2lkIHVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBj
b25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlKTsKICAgICB2b2lk
IHNldFNoYWRlclByb2dyYW1EaXNhYmxlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJv
Z3JhbUlkLCBib29sIGRpc2FibGVkKTsKICAgICB2b2lkIHNldFNoYWRlclByb2dyYW1IaWdobGln
aHRlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGhpZ2hsaWdo
dGVkKTsKQEAgLTEwMywxNSArOTgsMTcgQEAgcHVibGljOgogICAgIHZvaWQgY29uc29sZVN0YXJ0
UmVjb3JkaW5nQ2FudmFzKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBKU0M6OkV4ZWNTdGF0ZSYs
IEpTQzo6SlNPYmplY3QqIG9wdGlvbnMpOwogI2lmIEVOQUJMRShXRUJHTCkKICAgICB2b2lkIGRp
ZEVuYWJsZUV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgY29uc3QgU3RyaW5n
Jik7Ci0gICAgdm9pZCBkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBXZWJHTFByb2dyYW0mKTsKLSAgICB2b2lkIHdpbGxEZWxldGVQcm9ncmFtKFdlYkdMUHJvZ3Jh
bSYpOwotICAgIGJvb2wgaXNTaGFkZXJQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJik7Ci0g
ICAgYm9vbCBpc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mKTsKKyAgICB2
b2lkIGRpZENyZWF0ZVdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgV2Vi
R0xQcm9ncmFtJik7CisgICAgdm9pZCB3aWxsRGVzdHJveVdlYkdMUHJvZ3JhbShXZWJHTFByb2dy
YW0mKTsKKyAgICBib29sIGlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoV2ViR0xQcm9ncmFtJik7Cisg
ICAgYm9vbCBpc1dlYkdMUHJvZ3JhbUhpZ2hsaWdodGVkKFdlYkdMUHJvZ3JhbSYpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICB2b2lkIGRpZENyZWF0ZVdlYkdQVURldmljZShXZWJH
UFVEZXZpY2UmKTsKICAgICB2b2lkIHdpbGxEZXN0cm95V2ViR1BVRGV2aWNlKFdlYkdQVURldmlj
ZSYpOwogICAgIHZvaWQgd2lsbENvbmZpZ3VyZVN3YXBDaGFpbihHUFVDYW52YXNDb250ZXh0Jiwg
V2ViR1BVU3dhcENoYWluJik7CisgICAgdm9pZCBkaWRDcmVhdGVXZWJHUFVQaXBlbGluZShXZWJH
UFVEZXZpY2UmLCBXZWJHUFVQaXBlbGluZSYpOworICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJHUFVQ
aXBlbGluZShXZWJHUFVQaXBlbGluZSYpOwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xMjMsNyAr
MTIwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEluc3BlY3RvckNhbnZh
cyYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlY29yZGluZzo6SW5pdGlhdG9yLCBSZWNvcmRpbmdP
cHRpb25zJiYgPSB7IH0pOwogCiAgICAgdm9pZCBjYW52YXNEZXN0cm95ZWRUaW1lckZpcmVkKCk7
Ci0gICAgdm9pZCBjbGVhckNhbnZhc0RhdGEoKTsKKyAgICB2b2lkIHByb2dyYW1EZXN0cm95ZWRU
aW1lckZpcmVkKCk7CisgICAgdm9pZCByZXNldCgpOworCiAgICAgSW5zcGVjdG9yQ2FudmFzJiBi
aW5kQ2FudmFzKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmLCBib29sIGNhcHR1cmVCYWNrdHJhY2Up
OwogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgSW5zcGVjdG9yQ2FudmFzJiBiaW5kQ2FudmFzKFdl
YkdQVURldmljZSYsIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSk7CkBAIC0xMzUsMTEgKzEzNCwxNCBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+IGZpbmRJbnNwZWN0b3JDYW52
YXMoV2ViR1BVRGV2aWNlJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJHTCkKLSAgICBTdHJp
bmcgdW5iaW5kUHJvZ3JhbShJbnNwZWN0b3JTaGFkZXJQcm9ncmFtJik7CisgICAgdm9pZCB1bmJp
bmRQcm9ncmFtKEluc3BlY3RvclNoYWRlclByb2dyYW0mKTsKICAgICBSZWZQdHI8SW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbT4gYXNzZXJ0SW5zcGVjdG9yUHJvZ3JhbShFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgcHJvZ3JhbUlkKTsKKyNpZiBFTkFCTEUoV0VCR0wpCiAgICAgUmVmUHRyPEluc3Bl
Y3RvclNoYWRlclByb2dyYW0+IGZpbmRJbnNwZWN0b3JQcm9ncmFtKFdlYkdMUHJvZ3JhbSYpOwog
I2VuZGlmCisjaWYgRU5BQkxFKFdFQkdQVSkKKyAgICBSZWZQdHI8SW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbT4gZmluZEluc3BlY3RvclByb2dyYW0oV2ViR1BVUGlwZWxpbmUmKTsKKyNlbmRpZgogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q2FudmFzRnJvbnRlbmREaXNwYXRjaGVyPiBt
X2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpDYW52YXNCYWNrZW5k
RGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKQEAgLTE0OCwxNCArMTUwLDE0IEBAIHBy
aXZhdGU6CiAgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOwogCiAgICAgSGFzaE1hcDxTdHJpbmcs
IFJlZlB0cjxJbnNwZWN0b3JDYW52YXM+PiBtX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhczsK
LSNpZiBFTkFCTEUoV0VCR0wpCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtPj4gbV9pZGVudGlmaWVyVG9JbnNwZWN0b3JQcm9ncmFtOwotI2VuZGlmCiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkQ2FudmFzSWRlbnRpZmllcnM7CisgICAgVGltZXIg
bV9jYW52YXNEZXN0cm95ZWRUaW1lcjsKKworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5z
cGVjdG9yU2hhZGVyUHJvZ3JhbT4+IG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbTsKKyAg
ICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnM7CisgICAgVGltZXIg
bV9wcm9ncmFtRGVzdHJveWVkVGltZXI7CiAKICAgICBPcHRpb25hbDxzaXplX3Q+IG1fcmVjb3Jk
aW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50OwotCi0gICAgVGltZXIgbV9jYW52YXNEZXN0cm95ZWRU
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVDb21wdXRlUGlwZWxpbmUuaAppbmRl
eCBjYWZjNmU0ZWYxODVkNDNhNzg0N2M5MGZiZjdiN2Y1OTc0N2M5NzRhLi4zOTFjZWFlMTg3YWQx
M2RiNWM5NmNmYWZmYWJhZDRjMTdkYjBkZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQ29tcHV0ZVBpcGVsaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUNvbXB1dGVQaXBlbGluZS5oCkBAIC0yNyw2
ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BVUGlwZWxpbmUu
aCIKKyNpbmNsdWRlICJHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IuaCIKICNpbmNsdWRl
ICJXSExTTFByZXBhcmUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KQEAgLTM4LDI3ICs0MCwzOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEdQVURldmljZTsKIGNsYXNzIEdQVUVycm9yU2NvcGVzOworY2xhc3MgR1BVUGlwZWxp
bmVMYXlvdXQ7CiAKIHN0cnVjdCBHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOwogCiB1c2lu
ZyBQbGF0Zm9ybUNvbXB1dGVQaXBlbGluZSA9IE1UTENvbXB1dGVQaXBlbGluZVN0YXRlOwogdXNp
bmcgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciA9IFJldGFpblB0cjxNVExDb21wdXRl
UGlwZWxpbmVTdGF0ZT47CiAKLWNsYXNzIEdQVUNvbXB1dGVQaXBlbGluZSA6IHB1YmxpYyBSZWZD
b3VudGVkPEdQVUNvbXB1dGVQaXBlbGluZT4geworY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lIGZp
bmFsIDogcHVibGljIEdQVVBpcGVsaW5lIHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5HUFVDb21w
dXRlUGlwZWxpbmUoKTsKKwogICAgIHN0YXRpYyBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiB0
cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgY29uc3QgR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYsIEdQVUVycm9yU2NvcGVzJik7CiAKKyAgICBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgR1BVRGV2
aWNlJiwgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yJiYgY29tcHV0ZVN0YWdlKTsKKwog
ICAgIGNvbnN0IFBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKiBwbGF0Zm9ybUNvbXB1dGVQaXBlbGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KIAog
ICAgIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fY29tcHV0ZURpbWVuc2lvbnM7IH0KIAogcHJpdmF0ZToKLSAgICBHUFVDb21wdXRl
UGlwZWxpbmUoUGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTbWFydFB0ciYmLCBXSExTTDo6Q29tcHV0
ZURpbWVuc2lvbnMpOworICAgIEdQVUNvbXB1dGVQaXBlbGluZShQbGF0Zm9ybUNvbXB1dGVQaXBl
bGluZVNtYXJ0UHRyJiYsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucywgY29uc3QgUmVmUHRyPEdQ
VVBpcGVsaW5lTGF5b3V0PiYpOwogCiAgICAgUGxhdGZvcm1Db21wdXRlUGlwZWxpbmVTbWFydFB0
ciBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lOwogICAgIFdITFNMOjpDb21wdXRlRGltZW5zaW9u
cyBtX2NvbXB1dGVEaW1lbnNpb25zIHsgMCwgMCwgMCB9OworCisgICAgLy8gUHJlc2VydmVkIGZv
ciBXZWIgSW5zcGVjdG9yIHJlY29tcGlsYXRpb24uCisgICAgUmVmUHRyPEdQVVBpcGVsaW5lTGF5
b3V0PiBtX2xheW91dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19HUFVQSVBFTElORShXZWJDb3JlOjpHUFVDb21wdXRlUGlwZWxpbmUsIGlz
Q29tcHV0ZVBpcGVsaW5lKCkpCisKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBlbGluZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2M4ODE2NTU0MzU3MTIzMTA1YjZlOWU3Yzg4MzM0MWZjMmJkODI2ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQaXBl
bGluZS5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJHUFVQaXBlbGluZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitHUFVQaXBlbGluZTo6fkdQVVBpcGVsaW5lKCkgPSBkZWZhdWx0
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVs
aW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45NDJlZThkN2EzYjdlZmYxOTkwNmU5NTAwODEwZjM0NDJjM2NlYjQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVBpcGVsaW5lLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVQaXBlbGluZT4geworcHVibGljOgorICAgIHZpcnR1YWwgfkdQVVBpcGVsaW5lKCk7CisK
KyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0dQVVBJUEVMSU5FKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGljYXRlKSBc
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFRvVmFsdWVUeXBlTmFtZSkgXAorICAgIHN0
YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpHUFVQaXBlbGluZSYgcGlwZWxpbmUpIHsg
cmV0dXJuIHBpcGVsaW5lLnByZWRpY2F0ZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VO
RCgpCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVByb2dyYW1tYWJsZVN0
YWdlRGVzY3JpcHRvci5oCmluZGV4IDBlZTFhZmEyM2E4MzM2NzY2Zjg2MDI4MzQyOTZkMzAzNWJm
Y2NkYzkuLjI3YzA2MjhlZjdhMzAzNWU1OTIyMWZlZDk4N2Q1ZjU3ZGIwN2FkMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVQcm9ncmFtbWFibGVT
dGFnZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yLmgKQEAgLTM4LDEzICszOCwxMyBAQCBz
dHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yQmFzZSB7CiB9OwogCiBzdHJ1Y3Qg
R1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIDogR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNj
cmlwdG9yQmFzZSB7Ci0gICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yKFJlZjxjb25z
dCBHUFVTaGFkZXJNb2R1bGU+JiYgbW9kdWxlLCBjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3JCYXNlJiBiYXNlKQorICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcihS
ZWY8R1BVU2hhZGVyTW9kdWxlPiYmIG1vZHVsZSwgY29uc3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VE
ZXNjcmlwdG9yQmFzZSYgYmFzZSkKICAgICAgICAgOiBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3JCYXNlKGJhc2UpCiAgICAgICAgICwgbW9kdWxlIHsgV1RGTW92ZShtb2R1bGUpIH0KICAg
ICB7CiAgICAgfQogCi0gICAgUmVmPGNvbnN0IEdQVVNoYWRlck1vZHVsZT4gbW9kdWxlOworICAg
IFJlZjxHUFVTaGFkZXJNb2R1bGU+IG1vZHVsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVS
ZW5kZXJQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVJlbmRlclBpcGVsaW5lLmgKaW5kZXggODNjOGUxZDlkODE4ZTFkYzdhN2IyNDIwNzI4ZTVjOTA2
OGQ2MGMwNS4uYWMyNTgzZjU3OGUyZWZkYTgxYTRlZGMwMzAzYzU3OTgwYTY3ZmY0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRlclBpcGVs
aW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVJlbmRl
clBpcGVsaW5lLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNp
bmNsdWRlICJHUFVQaXBlbGluZS5oIgorI2luY2x1ZGUgIkdQVVByb2dyYW1tYWJsZVN0YWdlRGVz
Y3JpcHRvci5oIgogI2luY2x1ZGUgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00
NiwxMCArNDgsMTYgQEAgY2xhc3MgR1BVRXJyb3JTY29wZXM7CiB1c2luZyBQbGF0Zm9ybVJlbmRl
clBpcGVsaW5lID0gTVRMUmVuZGVyUGlwZWxpbmVTdGF0ZTsKIHVzaW5nIFBsYXRmb3JtUmVuZGVy
UGlwZWxpbmVTbWFydFB0ciA9IFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0YXRlPjsKIAot
Y2xhc3MgR1BVUmVuZGVyUGlwZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVSZW5kZXJQaXBl
bGluZT4geworY2xhc3MgR1BVUmVuZGVyUGlwZWxpbmUgZmluYWwgOiBwdWJsaWMgR1BVUGlwZWxp
bmUgewogcHVibGljOgorICAgIHZpcnR1YWwgfkdQVVJlbmRlclBpcGVsaW5lKCk7CisKICAgICBz
dGF0aWMgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiB0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNl
JiwgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgR1BVRXJyb3JTY29wZXMmKTsK
IAorICAgIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKwor
ICAgIGJvb2wgcmVjb21waWxlKGNvbnN0IEdQVURldmljZSYsIEdQVVByb2dyYW1tYWJsZVN0YWdl
RGVzY3JpcHRvciYmIHZlcnRleFN0YWdlLCBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFnZURl
c2NyaXB0b3I+JiYgZnJhZ21lbnRTdGFnZSk7CisKICNpZiBVU0UoTUVUQUwpCiAgICAgTVRMRGVw
dGhTdGVuY2lsU3RhdGUgKmRlcHRoU3RlbmNpbFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kZXB0
aFN0ZW5jaWxTdGF0ZS5nZXQoKTsgfQogI2VuZGlmCkBAIC01OSwxNSArNjcsMjEgQEAgcHVibGlj
OgogCiBwcml2YXRlOgogI2lmIFVTRShNRVRBTCkKLSAgICBHUFVSZW5kZXJQaXBlbGluZShSZXRh
aW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYsIFBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTbWFy
dFB0ciYmLCBHUFVQcmltaXRpdmVUb3BvbG9neSwgT3B0aW9uYWw8R1BVSW5kZXhGb3JtYXQ+KTsK
KyAgICBHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYs
IFBsYXRmb3JtUmVuZGVyUGlwZWxpbmVTbWFydFB0ciYmLCBHUFVQcmltaXRpdmVUb3BvbG9neSwg
T3B0aW9uYWw8R1BVSW5kZXhGb3JtYXQ+LCBjb25zdCBSZWZQdHI8R1BVUGlwZWxpbmVMYXlvdXQ+
JiwgY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSYpOwogCiAgICAgUmV0YWlu
UHRyPE1UTERlcHRoU3RlbmNpbFN0YXRlPiBtX2RlcHRoU3RlbmNpbFN0YXRlOwogI2VuZGlmIC8v
IFVTRShNRVRBTCkKICAgICBQbGF0Zm9ybVJlbmRlclBpcGVsaW5lU21hcnRQdHIgbV9wbGF0Zm9y
bVJlbmRlclBpcGVsaW5lOwogICAgIEdQVVByaW1pdGl2ZVRvcG9sb2d5IG1fcHJpbWl0aXZlVG9w
b2xvZ3k7CiAgICAgT3B0aW9uYWw8R1BVSW5kZXhGb3JtYXQ+IG1faW5kZXhGb3JtYXQ7CisKKyAg
ICAvLyBQcmVzZXJ2ZWQgZm9yIFdlYiBJbnNwZWN0b3IgcmVjb21waWxhdGlvbi4KKyAgICBSZWZQ
dHI8R1BVUGlwZWxpbmVMYXlvdXQ+IG1fbGF5b3V0OworICAgIEdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvckJhc2UgbV9yZW5kZXJEZXNjcmlwdG9yQmFzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19HUFVQSVBFTElORShXZWJDb3JlOjpH
UFVSZW5kZXJQaXBlbGluZSwgaXNSZW5kZXJQaXBlbGluZSgpKQorCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbQppbmRleCA3
ZDhmOGIyODE4ZjE3ODQ1MzgxN2VkZjYyMzk4MzUxOTI2NWIyMGNmLi5jMjAwMGExZTk2MTMwZmE0
M2M0NTdiYTFmYjUxZTlmYzg1N2M3ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBl
bGluZU1ldGFsLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJHUFVDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yLmgiCiAjaW1wb3J0ICJHUFVEZXZpY2UuaCIKICNpbXBvcnQgIkdQVUVycm9y
U2NvcGVzLmgiCisjaW1wb3J0ICJHUFVQaXBlbGluZUxheW91dC5oIgogI2ltcG9ydCAiR1BVUGlw
ZWxpbmVNZXRhbENvbnZlcnRMYXlvdXQuaCIKICNpbXBvcnQgIldITFNMUHJlcGFyZS5oIgogI2lt
cG9ydCA8TWV0YWwvTWV0YWwuaD4KQEAgLTE5NCwxNSArMTk1LDMyIEBAIFJlZlB0cjxHUFVDb21w
dXRlUGlwZWxpbmU+IEdQVUNvbXB1dGVQaXBlbGluZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmlj
ZSYgZGV2aWNlCiAgICAgaWYgKCFjcmVhdGVSZXN1bHQpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVDb21wdXRlUGlwZWxpbmUoV1RGTW92ZShj
cmVhdGVSZXN1bHQtPnBpcGVsaW5lU3RhdGUpLCBjcmVhdGVSZXN1bHQtPmNvbXB1dGVEaW1lbnNp
b25zKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHUFVDb21wdXRlUGlwZWxpbmUoV1RGTW92
ZShjcmVhdGVSZXN1bHQtPnBpcGVsaW5lU3RhdGUpLCBjcmVhdGVSZXN1bHQtPmNvbXB1dGVEaW1l
bnNpb25zLCBkZXNjcmlwdG9yLmxheW91dCkpOwogfQogCi1HUFVDb21wdXRlUGlwZWxpbmU6OkdQ
VUNvbXB1dGVQaXBlbGluZShSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lU3RhdGU+JiYgcGlw
ZWxpbmUsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5zaW9ucykKLSAgICA6
IG1fcGxhdGZvcm1Db21wdXRlUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCitHUFVDb21wdXRl
UGlwZWxpbmU6OkdQVUNvbXB1dGVQaXBlbGluZShSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5l
U3RhdGU+JiYgcGlwZWxpbmUsIFdITFNMOjpDb21wdXRlRGltZW5zaW9ucyBjb21wdXRlRGltZW5z
aW9ucywgY29uc3QgUmVmUHRyPEdQVVBpcGVsaW5lTGF5b3V0PiYgbGF5b3V0KQorICAgIDogR1BV
UGlwZWxpbmUoKQorICAgICwgbV9wbGF0Zm9ybUNvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVs
aW5lKSkKICAgICAsIG1fY29tcHV0ZURpbWVuc2lvbnMoY29tcHV0ZURpbWVuc2lvbnMpCisgICAg
LCBtX2xheW91dChsYXlvdXQpCiB7CiB9CiAKK0dQVUNvbXB1dGVQaXBlbGluZTo6fkdQVUNvbXB1
dGVQaXBlbGluZSgpID0gZGVmYXVsdDsKKworYm9vbCBHUFVDb21wdXRlUGlwZWxpbmU6OnJlY29t
cGlsZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlw
dG9yJiYgY29tcHV0ZVN0YWdlKQoreworICAgIEdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Ig
ZGVzY3JpcHRvcihtYWtlUmVmUHRyKG1fbGF5b3V0LmdldCgpKSwgV1RGTW92ZShjb21wdXRlU3Rh
Z2UpKTsKKyAgICBhdXRvIGVycm9yU2NvcGVzID0gR1BVRXJyb3JTY29wZXM6OmNyZWF0ZShbXSAo
R1BVRXJyb3ImJikgeyB9KTsKKyAgICBpZiAoYXV0byBjcmVhdGVSZXN1bHQgPSB0cnlDcmVhdGVN
VExDb21wdXRlUGlwZWxpbmVTdGF0ZShkZXZpY2UsIGRlc2NyaXB0b3IsIGVycm9yU2NvcGVzKSkg
eworICAgICAgICBtX3BsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lID0gV1RGTW92ZShjcmVhdGVSZXN1
bHQtPnBpcGVsaW5lU3RhdGUpOworICAgICAgICBtX2NvbXB1dGVEaW1lbnNpb25zID0gY3JlYXRl
UmVzdWx0LT5jb21wdXRlRGltZW5zaW9uczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVJlbmRlclBpcGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5t
bQppbmRleCAyODI0MDg3NDk4OTcxMDRmODdiYjA2YTk1ZmNiYjdiNjc2ODliMzhhLi4wNDRmMWZl
YjZjNTdmMGMyODUzN2VhNTM0YmMyNGM0NTc5YjAyZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUmVu
ZGVyUGlwZWxpbmVNZXRhbC5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiR1BVRXJyb3JT
Y29wZXMuaCIKICNpbXBvcnQgIkdQVUxpbWl0cy5oIgogI2ltcG9ydCAiR1BVUGlwZWxpbmVNZXRh
bENvbnZlcnRMYXlvdXQuaCIKKyNpbXBvcnQgIkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5o
IgogI2ltcG9ydCAiR1BVVXRpbHMuaCIKICNpbXBvcnQgIldITFNMUHJlcGFyZS5oIgogI2ltcG9y
dCAiV0hMU0xWZXJ0ZXhCdWZmZXJJbmRleENhbGN1bGF0b3IuaCIKQEAgLTQ4Myw3ICs0ODQsNyBA
QCBzdGF0aWMgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcj4gY29udmVydFJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvcihjbwogICAgIHJldHVybiBtdGxEZXNjcmlwdG9yOwogfQog
Ci1zdGF0aWMgUmV0YWluUHRyPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IHRyeUNyZWF0ZU10bFJl
bmRlclBpcGVsaW5lU3RhdGUoY29uc3QgR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yLCBjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2Nv
cGVzKQorc3RhdGljIFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZVN0YXRlPiB0cnlDcmVhdGVN
dGxSZW5kZXJQaXBlbGluZVN0YXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25zdCBHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIEdQVUVycm9yU2NvcGVzJiBlcnJv
clNjb3BlcykKIHsKICAgICBpZiAoIWRldmljZS5wbGF0Zm9ybURldmljZSgpKSB7CiAgICAgICAg
IGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcigiSW52YWxpZCBHUFVEZXZpY2UhIik7
CkBAIC01MjIsMjEgKzUyMywzOCBAQCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+IEdQVVJlbmRl
clBpcGVsaW5lOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsCiAKICAgICAvLyBG
SVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODM4NyBkZXB0
aFN0ZW5jaWxBdHRhY2htZW50RGVzY3JpcHRvciBpc24ndCBpbXBsZW1lbnRlZCB5ZXQgZm9yIFdI
TFNMIGNvbXBpbGVyLgogCi0gICAgYXV0byBwaXBlbGluZSA9IHRyeUNyZWF0ZU10bFJlbmRlclBp
cGVsaW5lU3RhdGUoZGVzY3JpcHRvciwgZGV2aWNlLCBlcnJvclNjb3Blcyk7CisgICAgYXV0byBw
aXBlbGluZSA9IHRyeUNyZWF0ZU10bFJlbmRlclBpcGVsaW5lU3RhdGUoZGV2aWNlLCBkZXNjcmlw
dG9yLCBlcnJvclNjb3Blcyk7CiAgICAgaWYgKCFwaXBlbGluZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVVJlbmRlclBpcGVsaW5lKFdURk1v
dmUoZGVwdGhTdGVuY2lsKSwgV1RGTW92ZShwaXBlbGluZSksIGRlc2NyaXB0b3IucHJpbWl0aXZl
VG9wb2xvZ3ksIGRlc2NyaXB0b3IudmVydGV4SW5wdXQuaW5kZXhGb3JtYXQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEdQVVJlbmRlclBpcGVsaW5lKFdURk1vdmUoZGVwdGhTdGVuY2lsKSwg
V1RGTW92ZShwaXBlbGluZSksIGRlc2NyaXB0b3IucHJpbWl0aXZlVG9wb2xvZ3ksIGRlc2NyaXB0
b3IudmVydGV4SW5wdXQuaW5kZXhGb3JtYXQsIGRlc2NyaXB0b3IubGF5b3V0LCBkZXNjcmlwdG9y
KSk7CiB9CiAKLUdQVVJlbmRlclBpcGVsaW5lOjpHUFVSZW5kZXJQaXBlbGluZShSZXRhaW5QdHI8
TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYgZGVwdGhTdGVuY2lsLCBSZXRhaW5QdHI8TVRMUmVuZGVy
UGlwZWxpbmVTdGF0ZT4mJiBwaXBlbGluZSwgR1BVUHJpbWl0aXZlVG9wb2xvZ3kgdG9wb2xvZ3ks
IE9wdGlvbmFsPEdQVUluZGV4Rm9ybWF0PiBmb3JtYXQpCi0gICAgOiBtX2RlcHRoU3RlbmNpbFN0
YXRlKFdURk1vdmUoZGVwdGhTdGVuY2lsKSkKK0dQVVJlbmRlclBpcGVsaW5lOjpHUFVSZW5kZXJQ
aXBlbGluZShSZXRhaW5QdHI8TVRMRGVwdGhTdGVuY2lsU3RhdGU+JiYgZGVwdGhTdGVuY2lsLCBS
ZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4mJiBwaXBlbGluZSwgR1BVUHJpbWl0aXZl
VG9wb2xvZ3kgdG9wb2xvZ3ksIE9wdGlvbmFsPEdQVUluZGV4Rm9ybWF0PiBmb3JtYXQsIGNvbnN0
IFJlZlB0cjxHUFVQaXBlbGluZUxheW91dD4mIGxheW91dCwgY29uc3QgR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZSYgcmVuZGVyRGVzY3JpcHRvckJhc2UpCisgICAgOiBHUFVQaXBlbGlu
ZSgpCisgICAgLCBtX2RlcHRoU3RlbmNpbFN0YXRlKFdURk1vdmUoZGVwdGhTdGVuY2lsKSkKICAg
ICAsIG1fcGxhdGZvcm1SZW5kZXJQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKICAgICAsIG1f
cHJpbWl0aXZlVG9wb2xvZ3kodG9wb2xvZ3kpCiAgICAgLCBtX2luZGV4Rm9ybWF0KGZvcm1hdCkK
KyAgICAsIG1fbGF5b3V0KGxheW91dCkKKyAgICAsIG1fcmVuZGVyRGVzY3JpcHRvckJhc2UocmVu
ZGVyRGVzY3JpcHRvckJhc2UpCiB7CiB9CiAKK0dQVVJlbmRlclBpcGVsaW5lOjp+R1BVUmVuZGVy
UGlwZWxpbmUoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgR1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGls
ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9y
JiYgdmVydGV4U3RhZ2UsIE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcj4m
JiBmcmFnbWVudFN0YWdlKQoreworICAgIEdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciBkZXNj
cmlwdG9yKG1ha2VSZWZQdHIobV9sYXlvdXQuZ2V0KCkpLCBXVEZNb3ZlKHZlcnRleFN0YWdlKSwg
V1RGTW92ZShmcmFnbWVudFN0YWdlKSwgbV9yZW5kZXJEZXNjcmlwdG9yQmFzZSk7CisgICAgYXV0
byBlcnJvclNjb3BlcyA9IEdQVUVycm9yU2NvcGVzOjpjcmVhdGUoW10gKEdQVUVycm9yJiYpIHsg
fSk7CisgICAgaWYgKGF1dG8gcGlwZWxpbmUgPSB0cnlDcmVhdGVNdGxSZW5kZXJQaXBlbGluZVN0
YXRlKGRldmljZSwgZGVzY3JpcHRvciwgZXJyb3JTY29wZXMpKSB7CisgICAgICAgIG1fcGxhdGZv
cm1SZW5kZXJQaXBlbGluZSA9IFdURk1vdmUocGlwZWxpbmUpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwppbmRleCBkOGQxMjUxYTA0MjA5NjFjM2Y2YzllNmM4ZTM1ODI3ZDg4ZmJlNjkwLi4yYzEz
ZTcyMTk4YjM0ZWE3NmMyODVkNWQ5NzU3Nzc0MWQ0MDljZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMKQEAgLTI2Niw2ICsyNjYsOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDb21w
b3NpdGVkIl0gPSAiQ29tcG9zaXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2VkIl0g
PSAiQ29tcHJlc3NlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb21wcmVzc2lvbiJdID0gIkNvbXBy
ZXNzaW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbXByZXNzaW9uOiJdID0gIkNvbXByZXNzaW9u
OiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlIl0gPSAiQ29tcHV0ZSI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJDb21wdXRlIFBpcGVsaW5lICVkIl0gPSAiQ29tcHV0ZSBQaXBlbGluZSAlZCI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJDb21wdXRlIFNoYWRlciJdID0gIkNvbXB1dGUgU2hhZGVyIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkNvbXB1dGVkIl0gPSAiQ29tcHV0ZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siQ29uZGl0aW9uIl0gPSAiQ29uZGl0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvbmRpdGlv
bmFsIGV4cHJlc3Npb24iXSA9ICJDb25kaXRpb25hbCBleHByZXNzaW9uIjsKQEAgLTQ2Myw2ICs0
NjYsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgdGhhdCBvbmx5IG9uZSBtYWluIGNvbnRl
bnQgc2VjdGlvbiBpcyB1c2VkIG9uIHRoZSBwYWdlLgogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJl
IHRoYXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIl0gPSAiRW5zdXJlIHRo
YXQgdmFsdWVzIGZvciBcdTAwMjIlc1x1MDAyMiBhcmUgdmFsaWQuIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVudGVyZWQgRnVsbC1TY3JlZW4gTW9kZSJdID0gIkVudGVyZWQgRnVsbC1TY3JlZW4gTW9k
ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRpcmUgUmVjb3JkaW5nIl0gPSAiRW50aXJlIFJlY29y
ZGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbnRyeSBwb2ludDogIl0gPSAiRW50cnkgcG9pbnQ6
ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvciJdID0gIkVycm9yIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVycm9yOiAiXSA9ICJFcnJvcjogIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVycm9ycyJdID0g
IkVycm9ycyI7CkBAIC04ODAsNiArODg0LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlIFdh
dGNoIEV4cHJlc3Npb24iXSA9ICJSZW1vdmUgV2F0Y2ggRXhwcmVzc2lvbiI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJSZW1vdmUgcHJvYmUiXSA9ICJSZW1vdmUgcHJvYmUiOwogbG9jYWxpemVkU3RyaW5n
c1siUmVtb3ZlIHRoaXMgYnJlYWtwb2ludCBhY3Rpb24iXSA9ICJSZW1vdmUgdGhpcyBicmVha3Bv
aW50IGFjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmVkIGRlc2NlbmRhbnQgIl0gPSAi
UmVtb3ZlZCBkZXNjZW5kYW50ICI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZW5kZXIgUGlwZWxpbmUg
JWQiXSA9ICJSZW5kZXIgUGlwZWxpbmUgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siUmVuZGVyaW5n
IEZyYW1lcyJdID0gIlJlbmRlcmluZyBGcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVwZWF0
aW5nIExpbmVhciBHcmFkaWVudCJdID0gIlJlcGVhdGluZyBMaW5lYXIgR3JhZGllbnQiOwogbG9j
YWxpemVkU3RyaW5nc1siUmVwZWF0aW5nIFJhZGlhbCBHcmFkaWVudCJdID0gIlJlcGVhdGluZyBS
YWRpYWwgR3JhZGllbnQiOwpAQCAtOTk2LDcgKzEwMDEsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJT
ZXNzaW9uIFN0b3JhZ2UiXSA9ICJTZXNzaW9uIFN0b3JhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1si
U2V0IHRvIEF1dG9tYXRpY2FsbHkgQ29udGludWUiXSA9ICJTZXQgdG8gQXV0b21hdGljYWxseSBD
b250aW51ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZXR0ZXIiXSA9ICJTZXR0ZXIiOwogbG9jYWxp
emVkU3RyaW5nc1siU2V0dGluZ3MiXSA9ICJTZXR0aW5ncyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJT
aGFkZXIiXSA9ICJTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIFByb2dyYW1zIl0g
PSAiU2hhZGVyIFByb2dyYW1zIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyBDb250ZW50Il0g
PSAiU2hhZG93IENvbnRlbnQiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZG93IENvbnRlbnQgKCVz
KSJdID0gIlNoYWRvdyBDb250ZW50ICglcykiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIu
anMKaW5kZXggMzg5Y2I3MTMwNmQ1MzY4YTM1MjdlZTg2YzM4ZDIwOWUxNWJmNTg5ZC4uMzhmMDFi
YjY2NjdlYzAwODMwN2YwZTNmNTJmNDJkZmUyYmUxZjU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52
YXNNYW5hZ2VyLmpzCkBAIC0yMzQsNyArMjM0LDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNz
IENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FudmFzLmVuYWJsZUV4
dGVuc2lvbihleHRlbnNpb24pOwogICAgIH0KIAotICAgIHByb2dyYW1DcmVhdGVkKGNhbnZhc0lk
ZW50aWZpZXIsIHByb2dyYW1JZGVudGlmaWVyKQorICAgIHByb2dyYW1DcmVhdGVkKGNhbnZhc0lk
ZW50aWZpZXIsIHByb2dyYW1JZGVudGlmaWVyLCBwcm9ncmFtVHlwZSkKICAgICB7CiAgICAgICAg
IGxldCBjYW52YXMgPSB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmdldChjYW52YXNJZGVudGlm
aWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2FudmFzKTsKQEAgLTI0Myw3ICsyNDMsMTEg
QEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZp
ZXJNYXAuaGFzKHByb2dyYW1JZGVudGlmaWVyKSwgYFNoYWRlclByb2dyYW0gYWxyZWFkeSBleGlz
dHMgd2l0aCBpZCAke3Byb2dyYW1JZGVudGlmaWVyfS5gKTsKIAotICAgICAgICBsZXQgcHJvZ3Jh
bSA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBjYW52YXMpOworICAg
ICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMpOiBgcHJvZ3JhbVR5cGVgIGRpZCBub3QgZXhp
c3QgeWV0LgorICAgICAgICBpZiAoIXByb2dyYW1UeXBlKQorICAgICAgICAgICAgcHJvZ3JhbVR5
cGUgPSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKworICAgICAgICBsZXQg
cHJvZ3JhbSA9IG5ldyBXSS5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZGVudGlmaWVyLCBwcm9ncmFt
VHlwZSwgY2FudmFzKTsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAu
c2V0KHByb2dyYW0uaWRlbnRpZmllciwgcHJvZ3JhbSk7CiAKICAgICAgICAgY2FudmFzLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uLmFkZChwcm9ncmFtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IGI5MjlmMDYyMGZh
YTljZDJiZmIxNGRmYWY1NzkxMTE5ODQ1NGYzNjQuLjdkNTZlYzE3MTZmYWUyMjNkYTk2NmY4NjA0
MGYxNmRhZGY0MjFmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DYW52YXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwpAQCAtNDUsNyArNDUsNyBAQCBXSS5DYW52YXMgPSBj
bGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3Jh
bUNvbGxlY3Rpb24gPSBuZXcgV0kuU2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb247CiAgICAgICAgIHRo
aXMuX3JlY29yZGluZ0NvbGxlY3Rpb24gPSBuZXcgV0kuUmVjb3JkaW5nQ29sbGVjdGlvbjsKIAot
ICAgICAgICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIgPSAxOworICAgICAg
ICB0aGlzLl9uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXIgPSBudWxsOwogCiAgICAgICAg
IHRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZSA9IG51bGw7CiAKQEAgLTQwOSwxMSArNDA5LDE1IEBA
IFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBl
ZCwge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyfSk7CiAgICAgfQogCi0gICAgbmV4dFNoYWRl
clByb2dyYW1EaXNwbGF5TnVtYmVyKCkKKyAgICBuZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1i
ZXJGb3JQcm9ncmFtVHlwZShwcm9ncmFtVHlwZSkKICAgICB7CiAgICAgICAgIC8vIENhbGxlZCBm
cm9tIFdJLlNoYWRlclByb2dyYW0uCiAKLSAgICAgICAgcmV0dXJuIHRoaXMuX25leHRTaGFkZXJQ
cm9ncmFtRGlzcGxheU51bWJlcisrOworICAgICAgICBpZiAoIXRoaXMuX25leHRTaGFkZXJQcm9n
cmFtRGlzcGxheU51bWJlcikKKyAgICAgICAgICAgIHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlz
cGxheU51bWJlciA9IHt9OworCisgICAgICAgIHRoaXMuX25leHRTaGFkZXJQcm9ncmFtRGlzcGxh
eU51bWJlcltwcm9ncmFtVHlwZV0gPSAodGhpcy5fbmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVt
YmVyW3Byb2dyYW1UeXBlXSB8fCAwKSArIDE7CisgICAgICAgIHJldHVybiB0aGlzLl9uZXh0U2hh
ZGVyUHJvZ3JhbURpc3BsYXlOdW1iZXJbcHJvZ3JhbVR5cGVdOwogICAgIH0KIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TaGFkZXJQ
cm9ncmFtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1No
YWRlclByb2dyYW0uanMKaW5kZXggYzFlZDljOGFjN2ZjNDIwN2U3YjgwZmQ3MGMyMGY3NjhmMDgx
ZDE2OS4uYzliNmUwMzIxZjIyMGI3Y2EyYzA1MzQ5ZmEwNjUxMzIyNTI4ZTliYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NoYWRlclByb2dy
YW0uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1No
YWRlclByb2dyYW0uanMKQEAgLTI1LDI3ICsyNSw4MyBAQAogCiBXSS5TaGFkZXJQcm9ncmFtID0g
Y2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9y
KGlkZW50aWZpZXIsIGNhbnZhcykKKyAgICBjb25zdHJ1Y3RvcihpZGVudGlmaWVyLCBwcm9ncmFt
VHlwZSwgY2FudmFzKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaWRlbnRpZmllcik7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5Qcm9n
cmFtVHlwZSkuaW5jbHVkZXMocHJvZ3JhbVR5cGUpKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQo
Y2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoU2hh
ZGVyUHJvZ3JhbS5jb250ZXh0VHlwZVN1cHBvcnRzUHJvZ3JhbVR5cGUoY2FudmFzLmNvbnRleHRU
eXBlLCBwcm9ncmFtVHlwZSkpOwogCiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhpcy5f
aWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgICAgIHRoaXMuX3Byb2dyYW1UeXBlID0gcHJv
Z3JhbVR5cGU7CiAgICAgICAgIHRoaXMuX2NhbnZhcyA9IGNhbnZhczsKLSAgICAgICAgdGhpcy5f
dW5pcXVlRGlzcGxheU51bWJlciA9IGNhbnZhcy5uZXh0U2hhZGVyUHJvZ3JhbURpc3BsYXlOdW1i
ZXIoKTsKICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBmYWxzZTsKICAgICB9CiAKKyAgICAvLyBT
dGF0aWMKKworICAgIHN0YXRpYyBjb250ZXh0VHlwZVN1cHBvcnRzUHJvZ3JhbVR5cGUoY29udGV4
dFR5cGUsIHByb2dyYW1UeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0VHlwZSkg
eworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKKyAgICAgICAgY2Fz
ZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAgcmV0dXJuIHByb2dy
YW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcjsKKworICAgICAgICBj
YXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFU6CisgICAgICAgICAgICByZXR1cm4gcHJv
Z3JhbVR5cGUgPT09IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZQorICAgICAgICAg
ICAgICAgIHx8IHByb2dyYW1UeXBlID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRl
cjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHJvZ3JhbVR5cGVTdXBwb3J0c1NoYWRlclR5
cGUocHJvZ3JhbVR5cGUsIHNoYWRlclR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHByb2dy
YW1UeXBlKSB7CisgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRl
OgorICAgICAgICAgICAgcmV0dXJuIHNoYWRlclR5cGUgPT09IFNoYWRlclByb2dyYW0uU2hhZGVy
VHlwZS5Db21wdXRlOworCisgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5S
ZW5kZXI6CisgICAgICAgICAgICByZXR1cm4gc2hhZGVyVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5T
aGFkZXJUeXBlLkZyYWdtZW50CisgICAgICAgICAgICAgICAgfHwgc2hhZGVyVHlwZSA9PT0gU2hh
ZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICAvLyBQdWJs
aWMKIAogICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRlbnRpZmllcjsgfQor
ICAgIGdldCBwcm9ncmFtVHlwZSgpIHsgcmV0dXJuIHRoaXMuX3Byb2dyYW1UeXBlOyB9CiAgICAg
Z2V0IGNhbnZhcygpIHsgcmV0dXJuIHRoaXMuX2NhbnZhczsgfQogCiAgICAgZ2V0IGRpc3BsYXlO
YW1lKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUHJvZ3JhbSAlZCIpLmZv
cm1hdCh0aGlzLl91bmlxdWVEaXNwbGF5TnVtYmVyKTsKKyAgICAgICAgbGV0IGZvcm1hdCA9IG51
bGw7CisgICAgICAgIHN3aXRjaCAodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlKSB7CisgICAgICAg
IGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgorICAgICAgICBjYXNlIFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTDI6CisgICAgICAgICAgICBmb3JtYXQgPSBXSS5VSVN0cmluZygi
UHJvZ3JhbSAlZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdQVToKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fcHJvZ3JhbVR5
cGUpIHsKKyAgICAgICAgICAgIGNhc2UgU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRl
OgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IFdJLlVJU3RyaW5nKCJDb21wdXRlIFBpcGVsaW5l
ICVkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNoYWRlclBy
b2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IFdJLlVJ
U3RyaW5nKCJSZW5kZXIgUGlwZWxpbmUgJWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGZvcm1hdCk7CisgICAgICAgIGlmICghdGhpcy5fdW5pcXVlRGlzcGxheU51bWJl
cikKKyAgICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOdW1iZXIgPSB0aGlzLl9jYW52YXMu
bmV4dFNoYWRlclByb2dyYW1EaXNwbGF5TnVtYmVyRm9yUHJvZ3JhbVR5cGUodGhpcy5fcHJvZ3Jh
bVR5cGUpOworICAgICAgICByZXR1cm4gZm9ybWF0LmZvcm1hdCh0aGlzLl91bmlxdWVEaXNwbGF5
TnVtYmVyKTsKICAgICB9CiAKICAgICBnZXQgZGlzYWJsZWQoKQpAQCAtNTUsNiArMTExLDEyIEBA
IFdJLlNoYWRlclByb2dyYW0gPSBjbGFzcyBTaGFkZXJQcm9ncmFtIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpCiAgICAgeworICAgICAgICBjb25zb2xlLmFz
c2VydCh0aGlzLl9wcm9ncmFtVHlwZSA9PT0gU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5k
ZXIpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9jYW52YXMuY29udGV4dFR5cGUgPT09
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCB0aGlzLl9jYW52YXMuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOworCisgICAgICAgIGlmICh0aGlzLl9j
YW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpCisgICAg
ICAgICAgICByZXR1cm47CisKICAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkID09PSBkaXNhYmxl
ZCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjUsNjcgKzEyNyw1NyBAQCBXSS5TaGFkZXJQ
cm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3JhbSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhTaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVk
Q2hhbmdlZCk7CiAgICAgfQogCi0gICAgcmVxdWVzdFZlcnRleFNoYWRlclNvdXJjZShjYWxsYmFj
aykKKyAgICByZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclR5cGUsIGNhbGxiYWNrKQogICAgIHsK
LSAgICAgICAgdGhpcy5fcmVxdWVzdFNoYWRlclNvdXJjZShDYW52YXNBZ2VudC5TaGFkZXJUeXBl
LlZlcnRleCwgY2FsbGJhY2spOwotICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQoT2JqZWN0
LnZhbHVlcyhTaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUpLmluY2x1ZGVzKHNoYWRlclR5cGUpKTsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoU2hhZGVyUHJvZ3JhbS5wcm9ncmFtVHlwZVN1cHBvcnRz
U2hhZGVyVHlwZSh0aGlzLl9wcm9ncmFtVHlwZSwgc2hhZGVyVHlwZSkpOwogCi0gICAgcmVxdWVz
dEZyYWdtZW50U2hhZGVyU291cmNlKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVx
dWVzdFNoYWRlclNvdXJjZShDYW52YXNBZ2VudC5TaGFkZXJUeXBlLkZyYWdtZW50LCBjYWxsYmFj
ayk7Ci0gICAgfQotCi0gICAgdXBkYXRlVmVydGV4U2hhZGVyKHNvdXJjZSkKLSAgICB7Ci0gICAg
ICAgIHRoaXMuX3VwZGF0ZVNoYWRlcihDYW52YXNBZ2VudC5TaGFkZXJUeXBlLlZlcnRleCwgc291
cmNlKTsKLSAgICB9Ci0KLSAgICB1cGRhdGVGcmFnbWVudFNoYWRlcihzb3VyY2UpCi0gICAgewot
ICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVu
dCwgc291cmNlKTsKLSAgICB9Ci0KLSAgICBzaG93SGlnaGxpZ2h0KCkKLSAgICB7Ci0gICAgICAg
IGNvbnN0IGhpZ2hsaWdodGVkID0gdHJ1ZTsKLSAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVy
UHJvZ3JhbUhpZ2hsaWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIGhpZ2hsaWdodGVkLCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3IpOwotICAgICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBoaWRlSGlnaGxpZ2h0KCkKLSAgICB7Ci0gICAgICAgIGNvbnN0
IGhpZ2hsaWdodGVkID0gZmFsc2U7Ci0gICAgICAgIENhbnZhc0FnZW50LnNldFNoYWRlclByb2dy
YW1IaWdobGlnaHRlZCh0aGlzLl9pZGVudGlmaWVyLCBoaWdobGlnaHRlZCwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IsIGVycm9yKTsKLSAgICAgICAgfSk7
Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX3JlcXVlc3RTaGFkZXJTb3VyY2Uoc2hh
ZGVyVHlwZSwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hh
ZGVyU291cmNlKHRoaXMuX2lkZW50aWZpZXIsIHNoYWRlclR5cGUsIChlcnJvciwgY29udGVudCkg
PT4geworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMpOiBgY29udGVudGAgd2FzIHJl
bmFtZWQgdG8gYHNvdXJjZWAuCisgICAgICAgIENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3Vy
Y2UodGhpcy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yLCBzb3VyY2UpID0+IHsKICAg
ICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIFdJLnJlcG9ydEludGVybmFs
RXJyb3IoZXJyb3IpOwogICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY2FsbGJhY2soY29u
dGVudCk7CisgICAgICAgICAgICBjYWxsYmFjayhzb3VyY2UpOwogICAgICAgICB9KTsKICAgICB9
CiAKLSAgICBfdXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHNvdXJjZSkKKyAgICB1cGRhdGVTaGFk
ZXIoc2hhZGVyVHlwZSwgc291cmNlKQogICAgIHsKLSAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRl
U2hhZGVyKHRoaXMuX2lkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCghZXJyb3IsIGVycm9yKTsKLSAgICAgICAgfSk7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoU2hhZGVyUHJvZ3JhbS5TaGFk
ZXJUeXBlKS5pbmNsdWRlcyhzaGFkZXJUeXBlKSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KFNo
YWRlclByb2dyYW0ucHJvZ3JhbVR5cGVTdXBwb3J0c1NoYWRlclR5cGUodGhpcy5fcHJvZ3JhbVR5
cGUsIHNoYWRlclR5cGUpKTsKKworICAgICAgICBDYW52YXNBZ2VudC51cGRhdGVTaGFkZXIodGhp
cy5faWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlKTsKKyAgICB9CisKKyAgICBzaG93SGln
aGxpZ2h0KCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Byb2dyYW1UeXBl
ID09PSBTaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlcik7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdMIHx8IHRoaXMuX2NhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdMMik7CisKKyAgICAgICAgQ2FudmFzQWdlbnQuc2V0U2hhZGVyUHJvZ3JhbUhpZ2hs
aWdodGVkKHRoaXMuX2lkZW50aWZpZXIsIHRydWUpOworICAgIH0KKworICAgIGhpZGVIaWdobGln
aHQoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcHJvZ3JhbVR5cGUgPT09
IFNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyKTsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQodGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2Vi
R0wgfHwgdGhpcy5fY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0wyKTsKKworICAgICAgICBDYW52YXNBZ2VudC5zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0
ZWQodGhpcy5faWRlbnRpZmllciwgZmFsc2UpOwogICAgIH0KIH07CiAKK1dJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUgPSB7CisgICAgQ29tcHV0ZTogImNvbXB1dGUiLAorICAgIFJlbmRlcjog
InJlbmRlciIsCit9OworCiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUgPSB7Ci0gICAgRnJh
Z21lbnQ6ICJzaGFkZXItdHlwZS1mcmFnbWVudCIsCi0gICAgVmVydGV4OiAic2hhZGVyLXR5cGUt
dmVydGV4IiwKKyAgICBDb21wdXRlOiAiY29tcHV0ZSIsCisgICAgRnJhZ21lbnQ6ICJmcmFnbWVu
dCIsCisgICAgVmVydGV4OiAidmVydGV4IiwKIH07CiAKIFdJLlNoYWRlclByb2dyYW0uRXZlbnQg
PSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC9DYW52YXNPYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCmluZGV4IDNlNWRkNmMyYTcyYzI2Y2NjMTJl
ZjY0YmY2MjA0YzBmODY5MDIxNjkuLjZmNTM1NzQ0MzQ2ZjIwNzEyMGNiZTllOWQzY2EyN2Y0Y2Jl
ZWEwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0NhbnZhc09ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Byb3RvY29sL0NhbnZhc09ic2VydmVyLmpzCkBAIC02Nyw5ICs2Nyw5IEBAIFdJ
LkNhbnZhc09ic2VydmVyID0gY2xhc3MgQ2FudmFzT2JzZXJ2ZXIKICAgICAgICAgV0kuY2FudmFz
TWFuYWdlci5leHRlbnNpb25FbmFibGVkKGNhbnZhc0lkLCBleHRlbnNpb24pOwogICAgIH0KIAot
ICAgIHByb2dyYW1DcmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQpCisgICAgcHJvZ3JhbUNyZWF0
ZWQoY2FudmFzSWQsIHByb2dyYW1JZCwgcHJvZ3JhbVR5cGUpCiAgICAgewotICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnByb2dyYW1DcmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQpOworICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLnByb2dyYW1DcmVhdGVkKGNhbnZhc0lkLCBwcm9ncmFtSWQsIHBy
b2dyYW1UeXBlKTsKICAgICB9CiAKICAgICBwcm9ncmFtRGVsZXRlZChwcm9ncmFtSWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWly
cm9yQWRkaXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcwppbmRleCA5YWZjNGFiOTBlMWJlYzJhYzQzZjVlNTIx
ZjU0MDA1ZWUyOTg0ZDNiLi4zYTNhYWRmMjVkYTMwN2JjMDg4OWMyNTE3ODMzNmJjOWQ3YTRhMWFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b2RlTWlycm9yQWRkaXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKQEAgLTY4Miw2ICs2ODIsMTEgQEAK
ICAgICBleHRyYUpTT05UeXBlcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUpIHsKICAgICAgICAgQ29k
ZU1pcnJvci5kZWZpbmVNSU1FKHR5cGUsIHtuYW1lOiAiamF2YXNjcmlwdCIsIGpzb246IHRydWV9
KTsKICAgICB9KTsKKworICAgIC8vIEZJWE1FOiBBZGQgV0hMU0wgc3BlY2lmaWMgbW9kZXMuCisg
ICAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ4LXBpcGVsaW5lL3gtY29tcHV0ZSIsICJ4LXNoYWRl
ci94LXZlcnRleCIpOworICAgIENvZGVNaXJyb3IuZGVmaW5lTUlNRSgieC1waXBlbGluZS94LWZy
YWdtZW50IiwgIngtc2hhZGVyL3gtZnJhZ21lbnQiKTsKKyAgICBDb2RlTWlycm9yLmRlZmluZU1J
TUUoIngtcGlwZWxpbmUveC12ZXJ0ZXgiLCAieC1zaGFkZXIveC12ZXJ0ZXgiKTsKIH0pKCk7CiAK
IFdJLmNvbXBhcmVDb2RlTWlycm9yUG9zaXRpb25zID0gZnVuY3Rpb24oYSwgYikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dy
YW1Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcuY3NzCmluZGV4IDU1ZWY0MWY4MmY1YmQ1NGIz
Zjk3NzlhZGQ3ZTNhOWU1Y2U5ZTUxYTAuLjBkMGE3N2FlNDQ0MTAyMGU5YzAxNmVmZDgzM2UwYjhl
ODc0ZmNkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmNzcwpA
QCAtMjMsNTAgKzIzLDQ2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIg
eworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgeworICAgIGRpc3BsYXk6
IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CiAgICAgdG9wOiAwOwogICAgIGJvdHRvbTogMDsKLQotICAgIC0tYm9yZGVyLXN0YXJ0LXN0
eWxlOiAxcHggc29saWQgbGlnaHRncmV5OwogfQogCi1ib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZp
ZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyLnZlcnRleCwKLWJvZHlbZGly
PXJ0bF0gLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIu
ZnJhZ21lbnQgeworLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIuY29tcHV0
ZSB7CisgICAgcmlnaHQ6IDA7CisgICAgbGVmdDogMDsKK30KKworYm9keVtkaXI9bHRyXSAuY29u
dGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXgsCitib2R5W2Rpcj1ydGxd
IC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50IHsKICAgICB3
aWR0aDogY2FsYyg1MCUgLSAxcHgpOwogICAgIGxlZnQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0cl0g
LmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIuZnJhZ21l
bnQsCi1ib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1l
ZGl0b3Iuc2hhZGVyLnZlcnRleCB7Citib2R5W2Rpcj1sdHJdIC5jb250ZW50LXZpZXcuc2hhZGVy
LXByb2dyYW0gPiAuc2hhZGVyLmZyYWdtZW50LAorYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3
LnNoYWRlci1wcm9ncmFtID4gLnNoYWRlci52ZXJ0ZXggewogICAgIHdpZHRoOiBjYWxjKDUwJSAr
IDFweCk7CiAgICAgcmlnaHQ6IDA7CiB9CiAKLWJvZHlbZGlyPWx0cl0gLmNvbnRlbnQtdmlldy5z
aGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRvci5zaGFkZXIgKyAudGV4dC1lZGl0b3Iuc2hhZGVy
IHsKLSAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLXN0YXJ0LXN0eWxlKTsKKy5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyICsgLnNoYWRlciB7CisgICAgYm9yZGVyLWxl
ZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogfQogCi1ib2R5W2Rpcj1ydGxdIC5j
b250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyICsgLnRleHQt
ZWRpdG9yLnNoYWRlciB7Ci0gICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1ib3JkZXItc3RhcnQtc3R5
bGUpOwotfQotCi0uY29udGVudC12aWV3LnNoYWRlci1wcm9ncmFtID4gLnRleHQtZWRpdG9yLnNo
YWRlciA+IC50eXBlLXRpdGxlIHsKKy5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hh
ZGVyID4gaGVhZGVyID4gKiB7CiAgICAgcGFkZGluZzogMnB4IDRweDsKLSAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxp
Z2h0Z3JleTsKIH0KIAotLmNvbnRlbnQtdmlldy5zaGFkZXItcHJvZ3JhbSA+IC50ZXh0LWVkaXRv
ci5zaGFkZXIgPiAuQ29kZU1pcnJvciB7Ci0gICAgdG9wOiAxOHB4OworLmNvbnRlbnQtdmlldy5z
aGFkZXItcHJvZ3JhbSA+IC5zaGFkZXIgPiBoZWFkZXIgPiAuc2hhZGVyLXR5cGUgeworICAgIGJh
Y2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUlKTsKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNv
bG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAu
dGV4dC1lZGl0b3Iuc2hhZGVyIHsKLSAgICAgICAgLS1ib3JkZXItc3RhcnQtc3R5bGU6IDFweCBz
b2xpZCB2YXIoLS10ZXh0LWNvbG9yLXF1YXRlcm5hcnkpOwotICAgIH0KLQotICAgIC5jb250ZW50
LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAudGV4dC1lZGl0b3Iuc2hhZGVyID4gLnR5cGUtdGl0bGUg
eworICAgIC5jb250ZW50LXZpZXcuc2hhZGVyLXByb2dyYW0gPiAuc2hhZGVyID4gaGVhZGVyIHsK
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7CiAgICAg
ICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRleHQtY29sb3ItcXVhdGVybmFyeSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3LmpzCmluZGV4IGRkOTI1
NGVkNWJlZTAwODU2ZTIzMmE1MmZmMGI3MmQ1YjkyMzQzODQuLjQyNjQ1ZDhjMzU5YjU5YzBjZTcz
NGUwOTljMzkzMTYzODVhZDE1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1Db250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtQ29udGVu
dFZpZXcuanMKQEAgLTMxLDEzICszMSwyNiBAQCBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcg
PSBjbGFzcyBTaGFkZXJQcm9ncmFtQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VgogCiAg
ICAgICAgIHN1cGVyKHNoYWRlclByb2dyYW0pOwogCisgICAgICAgIGxldCBpc1dlYkdQVSA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHUFU7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
bmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJl
c2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3Jl
ZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0
aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoQ29udGVudCwgdGhpcyk7CisKICAgICAgICAg
bGV0IGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIgPSBuZXcgRGVib3VuY2VyKChldmVudCkgPT4g
ewogICAgICAgICAgICAgdGhpcy5fY29udGVudERpZENoYW5nZShldmVudCk7CiAgICAgICAgIH0p
OwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzaGFkZXItcHJvZ3JhbSIp
OworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyLXByb2dyYW0iLCB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnByb2dyYW1UeXBlKTsKIAogICAgICAgICBsZXQgY3JlYXRl
RWRpdG9yID0gKHNoYWRlclR5cGUpID0+IHsKKyAgICAgICAgICAgIGxldCBjb250YWluZXIgPSB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwor
CisgICAgICAgICAgICBsZXQgaGVhZGVyID0gY29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICAgICAgbGV0IHNoYWRlclR5cGVD
b250YWluZXIgPSBoZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
IikpOworICAgICAgICAgICAgc2hhZGVyVHlwZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJzaGFk
ZXItdHlwZSIpOworCiAgICAgICAgICAgICBsZXQgdGV4dEVkaXRvciA9IG5ldyBXSS5UZXh0RWRp
dG9yOwogICAgICAgICAgICAgdGV4dEVkaXRvci5yZWFkT25seSA9IGZhbHNlOwogICAgICAgICAg
ICAgdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlRleHRFZGl0b3IuRXZlbnQuRm9jdXNl
ZCwgdGhpcy5fZWRpdG9yRm9jdXNlZCwgdGhpcyk7CkBAIC00NSwzMiArNTgsNjEgQEAgV0kuU2hh
ZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFYKICAgICAgICAgICAgIHRleHRFZGl0b3IuYWRkRXZlbnRMaXN0ZW5l
cihXSS5UZXh0RWRpdG9yLkV2ZW50LkNvbnRlbnREaWRDaGFuZ2UsIChldmVudCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnRlbnREaWRDaGFuZ2VEZWJvdW5jZXIuZGVsYXlGb3JUaW1lKDI1MCwg
ZXZlbnQpOwogICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgICAgICB0ZXh0RWRpdG9yLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZGVyIik7Ci0KLSAgICAgICAgICAgIGxldCBzaGFkZXJU
eXBlQ29udGFpbmVyID0gdGV4dEVkaXRvci5lbGVtZW50Lmluc2VydEFkamFjZW50RWxlbWVudCgi
YWZ0ZXJiZWdpbiIsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICAgICAgICAg
IHNoYWRlclR5cGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgidHlwZS10aXRsZSIpOwogCiAgICAg
ICAgICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgV0kuU2hhZGVy
UHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleDoKLSAgICAgICAgICAgICAgICBzaGFkZXJUeXBlQ29u
dGFpbmVyLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlZlcnRleCBTaGFkZXIiKTsKLSAgICAg
ICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gIngtc2hhZGVyL3gtdmVydGV4IjsKLSAg
ICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmVydGV4Iik7
CisgICAgICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5Db21wdXRlOgor
ICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0
cmluZygiQ29tcHV0ZSBTaGFkZXIiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVU
eXBlID0gaXNXZWJHUFUgPyAieC1waXBlbGluZS94LWNvbXB1dGUiIDogIngtc2hhZGVyL3gtY29t
cHV0ZSI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgV0kuU2hh
ZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50OgogICAgICAgICAgICAgICAgIHNoYWRlclR5
cGVDb250YWluZXIudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQgU2hhZGVyIik7
Ci0gICAgICAgICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ4LXNoYWRlci94LWZyYWdt
ZW50IjsKLSAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
ZnJhZ21lbnQiKTsKKyAgICAgICAgICAgICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gaXNXZWJH
UFUgPyAieC1waXBlbGluZS94LWZyYWdtZW50IiA6ICJ4LXNoYWRlci94LWZyYWdtZW50IjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFt
LlNoYWRlclR5cGUuVmVydGV4OgorICAgICAgICAgICAgICAgIHNoYWRlclR5cGVDb250YWluZXIu
dGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVmVydGV4IFNoYWRlciIpOworICAgICAgICAgICAg
ICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSBpc1dlYkdQVSA/ICJ4LXBpcGVsaW5lL3gtdmVydGV4
IiA6ICJ4LXNoYWRlci94LXZlcnRleCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0ZXh0RWRpdG9yKTsKLSAgICAg
ICAgICAgIHJldHVybiB0ZXh0RWRpdG9yOworICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENo
aWxkKHRleHRFZGl0b3IuZWxlbWVudCk7CisgICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0
LmFkZCgic2hhZGVyIiwgc2hhZGVyVHlwZSk7CisKKyAgICAgICAgICAgIHJldHVybiB7Y29udGFp
bmVyLCB0ZXh0RWRpdG9yfTsKICAgICAgICAgfTsKIAotICAgICAgICB0aGlzLl92ZXJ0ZXhFZGl0
b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCk7Ci0g
ICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yID0gY3JlYXRlRWRpdG9yKFdJLlNoYWRlclByb2dy
YW0uU2hhZGVyVHlwZS5GcmFnbWVudCk7Ci0gICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3Ig
PSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3Jh
bVR5cGUuQ29tcHV0ZTogeworICAgICAgICAgICAgbGV0IGNvbXB1dGVFZGl0b3IgPSBjcmVhdGVF
ZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUpOworICAgICAgICAgICAg
dGhpcy5fY29tcHV0ZUNvbnRhaW5lciA9IGNvbXB1dGVFZGl0b3IuY29udGFpbmVyOworICAgICAg
ICAgICAgdGhpcy5fY29tcHV0ZUVkaXRvciA9IGNvbXB1dGVFZGl0b3IudGV4dEVkaXRvcjsKKwor
ICAgICAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9IHRoaXMuX2NvbXB1dGVFZGl0b3I7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgV0kuU2hhZGVy
UHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXI6IHsKKyAgICAgICAgICAgIGxldCB2ZXJ0ZXhFZGl0
b3IgPSBjcmVhdGVFZGl0b3IoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCk7Cisg
ICAgICAgICAgICB0aGlzLl92ZXJ0ZXhDb250YWluZXIgPSB2ZXJ0ZXhFZGl0b3IuY29udGFpbmVy
OworICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yID0gdmVydGV4RWRpdG9yLnRleHRFZGl0
b3I7CisKKyAgICAgICAgICAgIGxldCBmcmFnbWVudEVkaXRvciA9IGNyZWF0ZUVkaXRvcihXSS5T
aGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQpOworICAgICAgICAgICAgdGhpcy5fZnJh
Z21lbnRDb250YWluZXIgPSBmcmFnbWVudEVkaXRvci5jb250YWluZXI7CisgICAgICAgICAgICB0
aGlzLl9mcmFnbWVudEVkaXRvciA9IGZyYWdtZW50RWRpdG9yLnRleHRFZGl0b3I7CisKKyAgICAg
ICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPSB0aGlzLl92ZXJ0ZXhFZGl0b3I7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAgICB7CisgICAgICAgIHJldHVybiBb
dGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKICAgICB9CiAKICAgICAvLyBQcm90
ZWN0ZWQKQEAgLTc5LDIyICsxMjEsMzIgQEAgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3ID0g
Y2xhc3MgU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFYKICAgICB7
CiAgICAgICAgIHN1cGVyLnNob3duKCk7CiAKLSAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnNo
b3duKCk7Ci0gICAgICAgIHRoaXMuX2ZyYWdtZW50RWRpdG9yLnNob3duKCk7CisgICAgICAgIHN3
aXRjaCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5wcm9ncmFtVHlwZSkgeworICAgICAgICBjYXNl
IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZToKKyAgICAgICAgICAgIHRoaXMu
X2NvbXB1dGVFZGl0b3Iuc2hvd24oKTsKKyAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIHRo
aXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdFZlcnRleFNoYWRlclNvdXJjZSgoY29udGVudCkg
PT4gewotICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnN0cmluZyA9IGNvbnRlbnQgfHwg
IiI7Ci0gICAgICAgIH0pOworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5
cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLnNob3duKCk7CisgICAg
ICAgICAgICB0aGlzLl9mcmFnbWVudEVkaXRvci5zaG93bigpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KIAotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RGcmFn
bWVudFNoYWRlclNvdXJjZSgoY29udGVudCkgPT4gewotICAgICAgICAgICAgdGhpcy5fZnJhZ21l
bnRFZGl0b3Iuc3RyaW5nID0gY29udGVudCB8fCAiIjsKLSAgICAgICAgfSk7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hDb250ZW50KCk7CiAgICAgfQogCiAgICAgaGlkZGVuKCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX3ZlcnRleEVkaXRvci5oaWRkZW4oKTsKLSAgICAgICAgdGhpcy5fZnJhZ21lbnRF
ZGl0b3IuaGlkZGVuKCk7CisgICAgICAgIHN3aXRjaCAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5w
cm9ncmFtVHlwZSkgeworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUu
Q29tcHV0ZToKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFZGl0b3IuaGlkZGVuKCk7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5
cGUuUmVuZGVyOgorICAgICAgICAgICAgdGhpcy5fdmVydGV4RWRpdG9yLmhpZGRlbigpOworICAg
ICAgICAgICAgdGhpcy5fZnJhZ21lbnRFZGl0b3IuaGlkZGVuKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQogCiAgICAgICAgIHN1cGVyLmhpZGRlbigpOwogICAgIH0KQEAgLTEwNiwx
NCArMTU4LDM0IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclBy
b2dyYW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBnZXQgc2F2ZURhdGEo
KQogICAgIHsKLSAgICAgICAgbGV0IGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIlNoYWRlciIpOwot
ICAgICAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVkaXRvciA9PT0gdGhpcy5fdmVydGV4RWRpdG9y
KQotICAgICAgICAgICAgZmlsZW5hbWUgPSBXSS5VSVN0cmluZygiVmVydGV4Iik7Ci0gICAgICAg
IGVsc2UgaWYgKHRoaXMuX2xhc3RBY3RpdmVFZGl0b3IgPT09IHRoaXMuX2ZyYWdtZW50RWRpdG9y
KQorICAgICAgICBsZXQgZmlsZW5hbWUgPSAiIjsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9sYXN0
QWN0aXZlRWRpdG9yKSB7CisgICAgICAgIGNhc2UgdGhpcy5fY29tcHV0ZUVkaXRvcjoKKyAgICAg
ICAgICAgIGZpbGVuYW1lID0gV0kuVUlTdHJpbmcoIkNvbXB1dGUiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIHRoaXMuX2ZyYWdtZW50RWRpdG9yOgogICAgICAgICAgICAgZmls
ZW5hbWUgPSBXSS5VSVN0cmluZygiRnJhZ21lbnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRvcjoKKyAgICAgICAgICAgIGZpbGVuYW1lID0gV0ku
VUlTdHJpbmcoIlZlcnRleCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoZmlsZW5hbWUpOworCisgICAgICAgIGxldCBleHRlbnNpb24gPSAi
IjsKKyAgICAgICAgc3dpdGNoICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0
VHlwZSkgeworICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKKyAgICAg
ICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgorICAgICAgICAgICAgZXh0ZW5z
aW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi5nbHNsIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVOgorICAgICAgICAgICAg
ZXh0ZW5zaW9uID0gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIi53c2wiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV4dGVuc2lvbik7CiAKICAg
ICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHVybDogV0kuRmlsZVV0aWxpdGllcy5pbnNwZWN0
b3JVUkxGb3JGaWxlbmFtZShmaWxlbmFtZSArICIuZ2xzbCIpLAorICAgICAgICAgICAgdXJsOiBX
SS5GaWxlVXRpbGl0aWVzLmluc3BlY3RvclVSTEZvckZpbGVuYW1lKGZpbGVuYW1lICsgZXh0ZW5z
aW9uKSwKICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX2xhc3RBY3RpdmVFZGl0b3Iuc3RyaW5n
LAogICAgICAgICAgICAgZm9yY2VTYXZlQXM6IHRydWUsCiAgICAgICAgIH07CkBAIC0xNzEsNiAr
MjQzLDY1IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dy
YW1Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICAvLyBQcml2YXRlCiAKKyAg
ICBfcmVmcmVzaENvbnRlbnQoKQorICAgIHsKKyAgICAgICAgbGV0IGNyZWF0ZUNhbGxiYWNrID0g
KGNvbnRhaW5lciwgdGV4dEVkaXRvcikgPT4geworICAgICAgICAgICAgcmV0dXJuIChzb3VyY2Up
ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlID09PSBudWxsKSB7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyLnBh
cmVudE5vZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb250YWluZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzLl9jb21wdXRlQ29udGFpbmVyOgorICAgICAgICAg
ICAgICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleENvbnRhaW5lcjoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyYmVnaW4iLCBj
b250YWluZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSB0aGlzLl9mcmFnbWVudENvbnRhaW5lcjoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuZWxlbWVudC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsIGNv
bnRhaW5lcik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRleHRFZGl0b3Iu
c3RyaW5nID0gc291cmNlIHx8ICIiOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAg
ICAgICBzd2l0Y2ggKHRoaXMucmVwcmVzZW50ZWRPYmplY3QucHJvZ3JhbVR5cGUpIHsKKyAgICAg
ICAgY2FzZSBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLkNvbXB1dGU6CisgICAgICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJv
Z3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX2NvbXB1dGVDb250
YWluZXIsIHRoaXMuX2NvbXB1dGVFZGl0b3IpKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBjYXNlIFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyOgorICAgICAgICAg
ICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0U2hhZGVyU291cmNlKFdJLlNoYWRlclBy
b2dyYW0uU2hhZGVyVHlwZS5WZXJ0ZXgsIGNyZWF0ZUNhbGxiYWNrKHRoaXMuX3ZlcnRleENvbnRh
aW5lciwgdGhpcy5fdmVydGV4RWRpdG9yKSk7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlcXVlc3RTaGFkZXJTb3VyY2UoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZy
YWdtZW50LCBjcmVhdGVDYWxsYmFjayh0aGlzLl9mcmFnbWVudENvbnRhaW5lciwgdGhpcy5fZnJh
Z21lbnRFZGl0b3IpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCk7CisgICAgfQorCisgICAgX3VwZGF0ZVNoYWRlcihzaGFkZXJUeXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChzaGFkZXJUeXBlKSB7CisgICAgICAgIGNhc2UgV0ku
U2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkNvbXB1dGU6CisgICAgICAgICAgICB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCB0aGlzLl9jb21wdXRlRWRpdG9y
LnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBXSS5TaGFkZXJQ
cm9ncmFtLlNoYWRlclR5cGUuRnJhZ21lbnQ6CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnVwZGF0ZVNoYWRlcihzaGFkZXJUeXBlLCB0aGlzLl9mcmFnbWVudEVkaXRvci5zdHJp
bmcpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgV0kuU2hhZGVyUHJvZ3Jh
bS5TaGFkZXJUeXBlLlZlcnRleDoKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
dXBkYXRlU2hhZGVyKHNoYWRlclR5cGUsIHRoaXMuX3ZlcnRleEVkaXRvci5zdHJpbmcpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKTsK
KyAgICB9CisKICAgICBfZWRpdG9yRm9jdXNlZChldmVudCkKICAgICB7CiAgICAgICAgIGlmICh0
aGlzLl9sYXN0QWN0aXZlRWRpdG9yID09PSBldmVudC50YXJnZXQpCkBAIC0xOTcsOSArMzI4LDIw
IEBAIFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyA9IGNsYXNzIFNoYWRlclByb2dyYW1Db250
ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWCiAKICAgICBfY29udGVudERpZENoYW5nZShldmVu
dCkKICAgICB7Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuX3ZlcnRleEVkaXRv
cikKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QudXBkYXRlVmVydGV4U2hhZGVy
KHRoaXMuX3ZlcnRleEVkaXRvci5zdHJpbmcpOwotICAgICAgICBlbHNlIGlmIChldmVudC50YXJn
ZXQgPT09IHRoaXMuX2ZyYWdtZW50RWRpdG9yKQotICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC51cGRhdGVGcmFnbWVudFNoYWRlcih0aGlzLl9mcmFnbWVudEVkaXRvci5zdHJpbmcp
OworICAgICAgICBzd2l0Y2ggKGV2ZW50LnRhcmdldCkgeworICAgICAgICBjYXNlIHRoaXMuX2Nv
bXB1dGVFZGl0b3I6CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTaGFkZXIoV0kuU2hhZGVyUHJv
Z3JhbS5TaGFkZXJUeXBlLkNvbXB1dGUpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGNhc2UgdGhpcy5fZnJhZ21lbnRFZGl0b3I6CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTaGFk
ZXIoV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLkZyYWdtZW50KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBjYXNlIHRoaXMuX3ZlcnRleEVkaXRvcjoKKyAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZVNoYWRlcihXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCk7
CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcwppbmRl
eCBjZGE3NWI0MTUyNDA0ZGJjY2IwOTk5NDFkM2RiNWI3NzM5ZDUyMTMyLi5jMmQzZjc1MzRkZDdh
NmY0NGEzZTAxYjE5YzUxOTAxMzc1Nzg2YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2hhZGVyUHJvZ3Jh
bVRyZWVFbGVtZW50LmpzCkBAIC0zMiwxMCArMzIsMTQgQEAgV0kuU2hhZGVyUHJvZ3JhbVRyZWVF
bGVtZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZXJh
bFQKICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOwogICAgICAgICBzdXBlcigic2hhZGVy
LXByb2dyYW0iLCBzaGFkZXJQcm9ncmFtLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgc2hhZGVyUHJv
Z3JhbSk7CiAKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQu
dGl0bGUgPSBXSS5VSVN0cmluZygiRGlzYWJsZSBQcm9ncmFtIik7Ci0gICAgICAgIHRoaXMuX2Rp
c2FibGVkSW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZGlzYWJs
ZWRJbWFnZUVsZW1lbnRDbGlja2VkLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLnN0YXR1cyA9
IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50OworICAgICAgICAvLyBGSVhNRTogYWRkIHN1cHBv
cnQgZm9yIGRpc2FibGluZy9oaWdobGlnaHRpbmcgV2ViR1BVIHNoYWRlciBwaXBlbGluZXMuCisg
ICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2FudmFzLmNv
bnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdM
MikgeworICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVt
ZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkRpc2FibGUgUHJvZ3JhbSIpOworICAgICAgICAgICAg
dGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll9kaXNhYmxlZEltYWdlRWxlbWVudENsaWNrZWQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0
aGlzLnN0YXR1cyA9IHRoaXMuX2Rpc2FibGVkSW1hZ2VFbGVtZW50OworICAgICAgICB9CiAgICAg
fQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC00NCwzNCArNDgsNDUgQEAgV0kuU2hhZGVyUHJvZ3Jh
bVRyZWVFbGVtZW50ID0gY2xhc3MgU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50IGV4dGVuZHMgV0ku
R2VuZXJhbFQKICAgICB7CiAgICAgICAgIHN1cGVyLm9uYXR0YWNoKCk7CiAKLSAgICAgICAgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLlNoYWRlclByb2dyYW0uRXZl
bnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaGFkZXJQcm9ncmFtRGlzYWJsZWRDaGFu
Z2VkLCB0aGlzKTsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBkaXNhYmxpbmcv
aGlnaGxpZ2h0aW5nIFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVzLgorICAgICAgICBsZXQgY29udGV4
dFR5cGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNhbnZhcy5jb250ZXh0VHlwZTsKKyAgICAg
ICAgaWYgKGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wgfHwgY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpIHsKKyAgICAgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFt
LkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVk
Q2hhbmdlZCwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlb3ZlciIsIHRoaXMuX2hhbmRsZU1vdXNlT3Zlci5iaW5kKHRoaXMpKTsKLSAgICAgICAg
dGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5faGFuZGxlTW91
c2VPdXQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2VvdmVyIiwgdGhpcy5faGFuZGxlTW91c2VPdmVyLmJpbmQodGhpcykpOworICAg
ICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5f
aGFuZGxlTW91c2VPdXQuYmluZCh0aGlzKSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBvbmRl
dGFjaCgpCiAgICAgewotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50
TGlzdGVuZXIoV0kuU2hhZGVyUHJvZ3JhbS5FdmVudC5EaXNhYmxlZENoYW5nZWQsIHRoaXMuX2hh
bmRsZVNoYWRlclByb2dyYW1EaXNhYmxlZENoYW5nZWQsIHRoaXMpOworICAgICAgICAvLyBGSVhN
RTogYWRkIHN1cHBvcnQgZm9yIGRpc2FibGluZy9oaWdobGlnaHRpbmcgV2ViR1BVIHNoYWRlciBw
aXBlbGluZXMuCisgICAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuY2FudmFzLmNvbnRleHRUeXBlOworICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMMikKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXSS5TaGFkZXJQcm9ncmFtLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhp
cy5faGFuZGxlU2hhZGVyUHJvZ3JhbURpc2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAg
c3VwZXIub25kZXRhY2goKTsKICAgICB9CiAKICAgICBjYW5TZWxlY3RPbk1vdXNlRG93bihldmVu
dCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZEltYWdlRWxlbWVudC5jb250YWlu
cyhldmVudC50YXJnZXQpKQorICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQg
JiYgdGhpcy5fZGlzYWJsZWRJbWFnZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHN1cGVyLmNhblNlbGVjdE9u
TW91c2VEb3duKGV2ZW50KTsKICAgICB9CiAKICAgICBwb3B1bGF0ZUNvbnRleHRNZW51KGNvbnRl
eHRNZW51LCBldmVudCkKICAgICB7Ci0gICAgICAgIGxldCBkaXNhYmxlZCA9IHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuZGlzYWJsZWQ7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oZGlz
YWJsZWQgPyBXSS5VSVN0cmluZygiRW5hYmxlIFByb2dyYW0iKSA6IFdJLlVJU3RyaW5nKCJEaXNh
YmxlIFByb2dyYW0iKSwgKCkgPT4gewotICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVj
dC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKLSAgICAgICAgfSk7CisgICAgICAgIC8vIEZJWE1FOiBh
ZGQgc3VwcG9ydCBmb3IgZGlzYWJsaW5nL2hpZ2hsaWdodGluZyBXZWJHUFUgc2hhZGVyIHBpcGVs
aW5lcy4KKyAgICAgICAgbGV0IGNvbnRleHRUeXBlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5j
YW52YXMuY29udGV4dFR5cGU7CisgICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMIHx8IGNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViR0wyKSB7CisgICAgICAgICAgICBsZXQgZGlzYWJsZWQgPSB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmRpc2FibGVkOworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShkaXNh
YmxlZCA/IFdJLlVJU3RyaW5nKCJFbmFibGUgUHJvZ3JhbSIpIDogV0kuVUlTdHJpbmcoIkRpc2Fi
bGUgUHJvZ3JhbSIpLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5kaXNhYmxlZCA9ICFkaXNhYmxlZDsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGNv
bnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBw
ZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIH0KIAogICAgICAgICBzdXBlci5wb3B1bGF0ZUNvbnRl
eHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMyNWY2YzUzOThmY2Rm
ZWQzNDA1YmZkNThmMWRjM2U4OGI4NDJjMmYuLjA5OWEyYmNkODc5YTVkMGQ4NDc5OTQ3MzVlMmQ0
MjBjZjZhOWQ2YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxOS0wOS0yMyAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ2FudmFz
OiBzaG93IFdlYkdQVSBzaGFkZXIgcGlwZWxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE2NzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1
NTQzNDUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAg
ICBTcGxpdCBleGlzdGluZyBzaGFkZXIgdGVzdHMgaW50byBXZWJHTCBhbmQgV2ViR1BVIHN1Yi10
ZXN0cyBmb3IgZGlmZmVyZW50IHBsYXRmb3Jtcy4KKworICAgICAgICAqIGluc3BlY3Rvci9jYW52
YXMvcmVxdWVzdFNoYWRlclNvdXJjZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVxdWVzdFNoYWRlclNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci1leHBlY3RlZC50eHQ6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291
cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanM6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJv
Z3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13
ZWJncHUuaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNl
cy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qczogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpz
LgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsMi5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1lQ291bnQuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mdWxsLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtbWVtb3J5TGltaXQu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1zbmFwc2hv
dHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItZnJh
bWVDb3VudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmds
Mi1mdWxsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wy
LW1lbW9yeUxpbWl0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmct
d2ViZ2wyLXNuYXBzaG90cy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVz
dFNoYWRlclNvdXJjZS13ZWJnbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3NldFNoYWRlclByb2dyYW1EaXNhYmxlZC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2Vi
Z2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJl
bW92ZS13ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRl
ci13ZWJnbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJnbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTktMDktMjEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBb
UG9pbnRlciBFdmVudHNdIHRvdWNoLWFjdGlvbiBzZXQgdG8gcGFuLXggb3IgcGFuLXkgYWxvbmUg
c2hvdWxkIGRpc2FibGUgc2Nyb2xsaW5nIGFsdG9nZXRoZXIgaWYgdGhlIGludGlhbCBnZXN0dXJl
IGlzIGluIHRoZSBkaXNhbGxvd2VkIGRpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbC5odG1sCmluZGV4IDMyZjU1OWJi
YWMyNGQ4OTEzYjQwMjEyNTNkOGNjYjdkOTY5MzVhYjIuLmU5ODNmMTk2N2RiNGMyZjZkZTFmNmQz
ZTM5MDljZWQ1YWMwMTk2MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4K
IDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmct
dXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJv
Z3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFk
ZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0
ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzQg
dGVzdDsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvY29uc29sZS1yZWNvcmQtd2ViZ2wyLmh0bWwKaW5kZXggMTNlMWEwMWU1
N2JiMDE4MTJhODdhM2ZhODRlMjJiNTA5OGU4Y2ZiYy4uMzc2MzcwOTQ2M2RkYzY5ODVmMTE4YzAw
ZTAwMjMxYzNiMWYzZTJkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9jb25zb2xlLXJlY29yZC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL2NvbnNvbGUtcmVjb3JkLXdlYmdsMi5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3JkaW5n
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclBy
b2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVy
dGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWM0
IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1lQ291bnQuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZyYW1lQ291bnQuaHRtbAppbmRl
eCBmMjQwMjc2ZTgxNTA5ZTE3YTM3ZjE5NWQzZmUyN2FlOWM2N2JjOTYwLi44ZDlhNmRjMDE3YzE4
M2NlZGJlOGE3NWE5ODA5MzZlMmVlMWFjMGMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mcmFtZUNvdW50Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnJhbWVDb3VudC5odG1sCkBA
IC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgogICAgIGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZ1bGwu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLWZ1bGwu
aHRtbAppbmRleCBjNzQzNjFiYjU5ZTdmZGYwOWE1ZDVkMGZkNDE4YTM2YzQ5MWU0MmU1Li43NjEz
M2VlMjI4ZmJjYWRlNzY5ZTM5ZThkMzBhM2RlNmUzNzAxYzIyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1mdWxsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wtZnVsbC5odG1sCkBAIC0z
LDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgog
ICAgIGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZvaWQpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLW1lbW9yeUxp
bWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbC1t
ZW1vcnlMaW1pdC5odG1sCmluZGV4IDY0YmZmMzFjNWRhMWYyYjc4YjQwZWU5YTkxZDM5OWRhZWNh
NTkyYWUuLjg5NTU4MTdmMmViNWVkZDQxMDcxOWMyMTExNGY3MWNkYTAzNDJkYjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsLW1lbW9yeUxp
bWl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2Vi
Z2wtbWVtb3J5TGltaXQuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjNCB0ZXN0OwogICAgIHZv
aWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlY29yZGluZy13ZWJnbC1zbmFwc2hvdHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVjb3JkaW5nLXdlYmdsLXNuYXBzaG90cy5odG1sCmluZGV4IGI3MGM3YzU5ZWU2YTBi
MDNmNWFjMTllZjhjMDFiMWY2NTY4MDE2YjkuLjNkNTU4OGQ1ZjE1MjEyODgyNzQ0YzNlN2FiODMx
NDI3MWYzMjBkYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVj
b3JkaW5nLXdlYmdsLXNuYXBzaG90cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVjb3JkaW5nLXdlYmdsLXNuYXBzaG90cy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3Jk
aW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRl
clByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0i
dmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2
ZWMzIHBvc2l0aW9uOwogICAgIHZvaWQgbWFpbih2b2lkKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItZnJhbWVDb3VudC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZyYW1lQ291bnQu
aHRtbAppbmRleCA0Y2E3YzFkOTA1ZDA5ZjM1M2I2NDRiYzk1MDk1NGRlYjA5YjBlYjhhLi41MGZi
ZWRlMTU3ZjFmMmQyYjEyODliMmJiMGYyNmQzNzNmZjUzOWM1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItZnJhbWVDb3VudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1mcmFtZUNv
dW50Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJn
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRl
ci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzQgdGVzdDsKICAgICB2b2lkIG1haW4odm9p
ZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmct
d2ViZ2wyLWZ1bGwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5n
LXdlYmdsMi1mdWxsLmh0bWwKaW5kZXggYmE2OGUxNzU0YTQ5YzUxNWM2MzYwYmVmNTUxZDgyMzUx
NDc4YTE5MC4uMTg3NGVhOTNkZDViOTMzYWY5MDNiOTE0ZDJiNDdjZDMyNDI3N2Q4OSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLWZ1bGwu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDIt
ZnVsbC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2Vi
Z2wuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFk
ZXIveC12ZXJ0ZXgiPgogICAgIGF0dHJpYnV0ZSB2ZWM0IHRlc3Q7CiAgICAgdm9pZCBtYWluKHZv
aWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5n
LXdlYmdsMi1tZW1vcnlMaW1pdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWwKaW5kZXggMDE3NGIwYWNjM2UxNDc1MjEz
YWVmZWFjY2JmNDM3MDA4MTcyNjg1Yy4uODYwNGRmNjFjY2NjZDYxM2M3ZDVlYTZmMzc3ZjZkZmIx
YzI1MDViNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRp
bmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZWNvcmRpbmctd2ViZ2wyLW1lbW9yeUxpbWl0Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWNv
cmRpbmctdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlk
PSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CiAgICAgYXR0cmlidXRl
IHZlYzQgdGVzdDsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLXNuYXBzaG90cy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctd2ViZ2wyLXNuYXBzaG90cy5odG1s
CmluZGV4IDgyZjI3YzlkNjRmN2RhMzI4NjU1OTIxZWUzMDg4ODkzOWY2Y2I1OWUuLjllOWE0YThj
ZWVlZGM4NzY5YTM0YjllOTE0MzQwYTljZDA4OTlkOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLXdlYmdsMi1zbmFwc2hvdHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy13ZWJnbDItc25hcHNob3RzLmh0
bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZl
cnRleCI+CiAgICAgYXR0cmlidXRlIHZlYzMgcG9zaXRpb247CiAgICAgdm9pZCBtYWluKHZvaWQp
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRl
clNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RTaGFkZXJTb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDY0YmNkZjNjNmNmYTk2MDRmYTQyY2Zm
NjdkNDQ2ZWM3MmFjOTYwNjMuLmY5MmY0OTVkMzhjZTY4NTNhM2E1MzU0YWE1ODEzZTBiYzRjZTE1
NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRl
clNvdXJjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0U2hhZGVyU291cmNlLWV4cGVjdGVkLnR4dApAQCAtMSwyOCArMSw4IEBACi1UZXN0IGNv
bXBpbGF0aW9uIG9mIHNoYWRlcnMgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQgdG8gYSBwcm9ncmFtLCB3
aXRoIGFuZCB3aXRob3V0IHN5bnRheCBlcnJvcnMuCitDb21tb24gdGVzdHMgZm9yIENhbnZhcy5y
ZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuCiAKIAotPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBD
YW52YXMuZ2V0U2hhZGVyU291cmNlCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVl
c3RTaGFkZXJTb3VyY2UudmVydGV4U2hhZGVyCi0KLSAgICB2b2lkIG1haW4odm9pZCkgewotICAg
ICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKLSAgICB9Ci0KLQot
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLmZyYWdtZW50
U2hhZGVyCi0KLSAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLQotICAgIHZvaWQgbWFpbih2
b2lkKSB7Ci0gICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsK
LSAgICB9Ci0KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291
cmNlLmludmFsaWRQcm9ncmFtSWQKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnJlcXVl
c3RTaGFkZXJTb3VyY2UKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRl
clNvdXJjZS5Qcm9ncmFtSWQuSW52YWxpZAogUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3Iu
CiBFcnJvcjogTWlzc2luZyBwcm9ncmFtIGZvciBnaXZlbiBwcm9ncmFtSWQKIAotLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLmludmFsaWRTaGFkZXJUeXBl
Ci1QQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KLUVycm9yOiBNaXNzaW5nIHNoYWRlciBm
b3IgZ2l2ZW4gc2hhZGVyVHlwZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NTIzYWY0ZDg3ZjBlNmU1OGFjMjRiNTNiYjQ4MDdhOGQ2ODM2MzI3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hh
ZGVyU291cmNlLXdlYmdsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitXZWJHTCB0ZXN0
cyBmb3IgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UgY29tbWFuZC4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR0wuVmVydGV4CisKKyAg
ICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAs
IDAuMCwgMS4wKTsKKyAgICB9CisKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1
ZXN0U2hhZGVyU291cmNlLldlYkdMLkZyYWdtZW50CisKKyAgICBwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKworICAgIHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZl
YzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAgICB9CisKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlLldlYkdMLlNoYWRlclR5cGUuSW52YWxpZAorUEFT
UzogU2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IuCitFcnJvcjogVW5rbm93biBzaGFkZXJUeXBlOiBJ
TlZBTElEX1NIQURFUl9UWVBFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdsLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIy
Yjc1MDgzMmNjMGExYjAzNmIzZjg5YjE0MWIzMGZjOTZlYmI4NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJjZS13ZWJnbC5o
dG1sCkBAIC0wLDAgKzEsODcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFt
LXV0aWxpdGllcy13ZWJnbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVy
IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisgICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAg
ICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21l
bnQiPgorICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisgICAgdm9pZCBtYWluKHZvaWQp
IHsKKyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworICAg
IH0KKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgY3JlYXRlUHJv
Z3JhbSgid2ViZ2wiKTsKKyAgICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRlciIsICJmcmFnbWVu
dC1zaGFkZXIiKTsKKworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy5yZXF1
ZXN0U2hhZGVyU291cmNlLldlYkdMIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAg
ICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5WZXJ0ZXgiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIlRlc3RzIHJlcXVlc3RpbmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEg
cHJvZ3JhbSdzIHZlcnRleCBzaGFkZXIuIiwKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFk
ZXJQcm9ncmFtc1swXTsKKyAgICAgICAgICAgIGlmICghc2hhZGVyUHJvZ3JhbSkgeworICAgICAg
ICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIgcHJvZ3JhbSIpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1
ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgQ2FudmFzQWdlbnQuU2hh
ZGVyVHlwZS5WZXJ0ZXgpCisgICAgICAgICAgICAudGhlbigoe3NvdXJjZX0pID0+IEluc3BlY3Rv
clRlc3QubG9nKHNvdXJjZSkpCisgICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5GcmFnbWVudCIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiVGVzdHMgcmVxdWVzdGluZyB0aGUgc291cmNlIGNvZGUgb2YgYSBwcm9n
cmFtJ3MgZnJhZ21lbnQgc2hhZGVyLiIsCisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVy
UHJvZ3JhbXNbMF07CisgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKKyAgICAgICAg
ICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQ2FudmFzQWdlbnQucmVxdWVz
dFNoYWRlclNvdXJjZShzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIENhbnZhc0FnZW50LlNoYWRl
clR5cGUuRnJhZ21lbnQpCisgICAgICAgICAgICAudGhlbigoe3NvdXJjZX0pID0+IEluc3BlY3Rv
clRlc3QubG9nKHNvdXJjZSkpCisgICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHTC5TaGFkZXJUeXBlLkludmFsaWQi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5cGVzIHNob3VsZCBjYXVz
ZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAg
ICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBd
OworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAgICAgICAgICAgICAgcmVq
ZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5cGUgPSAiSU5WQUxJRF9T
SEFERVJfVFlQRSI7CisgICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNl
KHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yKSA9PiB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHByb2R1
Y2UgYW4gZXJyb3IuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVycm9y
OiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2go
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorPHA+V2Vi
R0wgdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNvbW1hbmQuPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYWEwZTRmMWYwNTU5MzQ4Yzg4M2I0MTljZjc1NGUxY2JlYWE1ZGIwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291
cmNlLXdlYmdwdS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorV2ViR1BVIHRlc3RzIGZv
ciBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZSBjb21tYW5kLgorCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0uY29tcHV0
ZS5TaGFkZXIuY29tcHV0ZQorCitbbnVtdGhyZWFkcygyLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBj
b21wdXRlU2hhZGVyKGRldmljZSBmbG9hdFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUwKSwgZmxvYXQz
IHRocmVhZElEIDogU1ZfRGlzcGF0Y2hUaHJlYWRJRCkgeworICAgIGJ1ZmZlclt1aW50KHRocmVh
ZElELngpXSA9IGJ1ZmZlclt1aW50KHRocmVhZElELngpXSAqIDIuMDsKK30KKworCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0u
Y29tcHV0ZS5TaGFkZXIuZnJhZ21lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlv
bi4KK0Vycm9yOiBNaXNzaW5nIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBlIGZvciBnaXZlbiBw
cm9ncmFtSWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy5yZXF1ZXN0U2hhZGVyU291
cmNlLldlYkdQVS5Qcm9ncmFtLmNvbXB1dGUuU2hhZGVyLnZlcnRleAorUEFTUzogU2hvdWxkIHBy
b2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IE1pc3Npbmcgc2hhZGVyIG9mIGdpdmVuIHNoYWRl
clR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0ucmVuZGVyLlNoYWRlci5jb21wdXRl
CitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBzaGFk
ZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBmb3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBDYW52YXMucmVxdWVzdFNoYWRlclNvdXJjZS5XZWJHUFUuUHJvZ3JhbS5yZW5k
ZXIuU2hhZGVyLmZyYWdtZW50CisKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVyKGZsb2F0NCBw
b3NpdGlvbiA6IGF0dHJpYnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkgOiBTVl9Qb3Np
dGlvbiB7CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQorCitmcmFnbWVudCBmbG9hdDQgZnJhZ21l
bnRTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFyZ2V0IDAgewor
ICAgIHJldHVybiBwb3NpdGlvbjsKK30KKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFz
LnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0ucmVuZGVyLlNoYWRlci52ZXJ0ZXgK
KwordmVydGV4IGZsb2F0NCB2ZXJ0ZXhTaGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogYXR0cmlidXRl
KDApLCBmbG9hdCBpIDogYXR0cmlidXRlKDEpKSA6IFNWX1Bvc2l0aW9uIHsKKyAgICByZXR1cm4g
cG9zaXRpb247Cit9CisKK2ZyYWdtZW50IGZsb2F0NCBmcmFnbWVudFNoYWRlcihmbG9hdDQgcG9z
aXRpb24gOiBTVl9Qb3NpdGlvbikgOiBTVl9UYXJnZXQgMCB7CisgICAgcmV0dXJuIHBvc2l0aW9u
OworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdFNoYWRlclNvdXJjZS13ZWJncHUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmJlNjBlZDFhMmI5
ZTBjOWQwOTU5YTFjZjhhNjAwNDNkMmQ2OGU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sCkBAIC0w
LDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy13ZWJncHUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAg
bGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDYW52YXMucmVxdWVz
dFNoYWRlclNvdXJjZS5XZWJHUFUiKTsKKworICAgIGZvciAobGV0IHByb2dyYW1UeXBlIG9mIE9i
amVjdC52YWx1ZXMoV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZSkpIHsKKyAgICAgICAgZm9y
IChsZXQgc2hhZGVyVHlwZSBvZiBPYmplY3QudmFsdWVzKFdJLlNoYWRlclByb2dyYW0uU2hhZGVy
VHlwZSkpIHsKKyAgICAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgICAg
ICBuYW1lOiBgQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuV2ViR1BVLlByb2dyYW0uJHtwcm9n
cmFtVHlwZX0uU2hhZGVyLiR7c2hhZGVyVHlwZX1gLAorICAgICAgICAgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gSW5zcGVjdG9y
VGVzdC5TaGFkZXJQcm9ncmFtLnByb2dyYW1Gb3JUeXBlKHByb2dyYW1UeXBlKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKQorICAgICAgICAgICAgICAgICAgICAgICAg
dGhyb3cgIk1pc3Npbmcgc2hhZGVyIHByb2dyYW0iOworCisgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2dTaGFkZXIgPSBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
e3NvdXJjZX0gPSBhd2FpdCBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclBy
b2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICB9OworCisgICAg
ICAgICAgICAgICAgICAgIGxldCBpc0NvbXB1dGVQcm9ncmFtID0gcHJvZ3JhbVR5cGUgPT09IFdJ
LlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuQ29tcHV0ZTsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGlzQ29tcHV0ZVNoYWRlciA9IHNoYWRlclR5cGUgPT09IFdJLlNoYWRlclByb2dyYW0uU2hh
ZGVyVHlwZS5Db21wdXRlOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb21wdXRlUHJvZ3Jh
bSAhPT0gaXNDb21wdXRlU2hhZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgSW5z
cGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24obG9nU2hhZGVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbG9nU2hhZGVyKCkKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9ImxvYWQoKSI+Cis8cD5XZWJHUFUgdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hh
ZGVyU291cmNlIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbAppbmRleCBh
Njg5YzE2OTcyNTAyZTVlMjFhYjAyNTIxYmUwNDZmZmM2OGEyNzU4Li45MWU2MGVhNDg0NGZmNGNk
NGY5NzI4OTc2YzkwMjJjNTRiZDkxNzY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2UuaHRtbApAQCAtMiw2NCArMiwxMiBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2
ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci0gICAgdm9pZCBtYWluKHZv
aWQpIHsKLSAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7Ci0g
ICAgfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJmcmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hh
ZGVyL3gtZnJhZ21lbnQiPgotICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9p
ZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4w
LCAxLjApOwotICAgIH0KLTwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0g
ICAgY3JlYXRlUHJvZ3JhbSgid2ViZ2wiKTsKLSAgICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRl
ciIsICJmcmFnbWVudC1zaGFkZXIiKTsKLQotICAgIHJ1blRlc3QoKTsKLX0KLQogZnVuY3Rpb24g
dGVzdCgpIHsKLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUo
IkNhbnZhcy5nZXRTaGFkZXJTb3VyY2UiKTsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIik7CiAKICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRlclNv
dXJjZS52ZXJ0ZXhTaGFkZXIiLAotICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3RzIHJlcXVlc3Rp
bmcgdGhlIHNvdXJjZSBjb2RlIG9mIGEgcHJvZ3JhbSdzIHZlcnRleCBzaGFkZXIuIiwKLSAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFt
ID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAgIGlmICgh
c2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIg
cHJvZ3JhbSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRl
bnRpZmllciwgQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5WZXJ0ZXgpCi0gICAgICAgICAgICAudGhl
bigoe2NvbnRlbnR9KSA9PiBJbnNwZWN0b3JUZXN0LmxvZyhjb250ZW50KSkKLSAgICAgICAgICAg
IC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNl
LmZyYWdtZW50U2hhZGVyIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0cyByZXF1ZXN0aW5n
IHRoZSBzb3VyY2UgY29kZSBvZiBhIHByb2dyYW0ncyBmcmFnbWVudCBzaGFkZXIuIiwKLSAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFt
ID0gV0kuY2FudmFzTWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAgIGlmICgh
c2hhZGVyUHJvZ3JhbSkgewotICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBzaGFkZXIg
cHJvZ3JhbSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRl
bnRpZmllciwgQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCkKLSAgICAgICAgICAgIC50
aGVuKCh7Y29udGVudH0pID0+IEluc3BlY3RvclRlc3QubG9nKGNvbnRlbnQpKQotICAgICAgICAg
ICAgLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3Vp
dGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3Vy
Y2UuaW52YWxpZFByb2dyYW1JZCIsCisgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdFNoYWRl
clNvdXJjZS5Qcm9ncmFtSWQuSW52YWxpZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxp
ZCBwcm9ncmFtIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAogICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgY29uc3QgcHJvZ3JhbUlkID0gIklO
VkFMSURfUFJPR1JBTV9JRCI7CkBAIC03MiwzMCArMjAsMTEgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgfQogICAgIH0pOwogCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBu
YW1lOiAiQ2FudmFzLnJlcXVlc3RTaGFkZXJTb3VyY2UuaW52YWxpZFNoYWRlclR5cGUiLAotICAg
ICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5cGVzIHNob3VsZCBjYXVzZSBhbiBl
cnJvci4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0
IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOwotICAg
ICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAgICAgICAgICAgcmVqZWN0KCJN
aXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5cGUgPSAiSU5WQUxJRF9TSEFERVJf
VFlQRSI7Ci0gICAgICAgICAgICBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRl
clByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGVycm9yLCAiU2hvdWxkIHByb2R1Y2UgYW4g
ZXJyb3IuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVycm9yOiAiICsg
ZXJyb3IpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9Ci0gICAgfSk7Ci0KICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKIH0K
IDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotICAgIDxwPlRlc3Qg
Y29tcGlsYXRpb24gb2Ygc2hhZGVycyBhZnRlciBiZWluZyBhdHRhY2hlZCB0byBhIHByb2dyYW0s
IHdpdGggYW5kIHdpdGhvdXQgc3ludGF4IGVycm9ycy48L3A+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cD5Db21tb24gdGVzdHMgZm9yIENhbnZhcy5yZXF1ZXN0U2hhZGVyU291cmNlIGNv
bW1hbmQuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0
aWxpdGllcy13ZWJnbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjc1YzQ0MWFhZmM3M2I5MTA3OTQ1YjNjZDcz
ZjljYTY3ZTFlNjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMKQEAgLTAsMCAr
MSwxMzAgQEAKK2xldCBjb250ZXh0OworbGV0IHByb2dyYW07CisKK2Z1bmN0aW9uIGNyZWF0ZVBy
b2dyYW0oY29udGV4dFR5cGUpIHsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIGNvbnRleHQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KGNvbnRleHRUeXBl
KTsKKworICAgIHByb2dyYW0gPSBjb250ZXh0LmNyZWF0ZVByb2dyYW0oKTsKK30KKworZnVuY3Rp
b24gbGlua1Byb2dyYW0odmVydGV4U2hhZGVySWRlbnRpZmllciwgZnJhZ21lbnRTaGFkZXJJZGVu
dGlmaWVyKSB7CisgICAgZnVuY3Rpb24gdHlwZUZvclNjcmlwdChzY3JpcHQpIHsKKyAgICAgICAg
aWYgKHNjcmlwdC50eXBlID09PSAieC1zaGFkZXIveC12ZXJ0ZXgiKQorICAgICAgICAgICAgcmV0
dXJuIGNvbnRleHQuVkVSVEVYX1NIQURFUjsKKyAgICAgICAgaWYgKHNjcmlwdC50eXBlID09PSAi
eC1zaGFkZXIveC1mcmFnbWVudCIpCisgICAgICAgICAgICByZXR1cm4gY29udGV4dC5GUkFHTUVO
VF9TSEFERVI7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHNj
cmlwdCB4LXNoYWRlciB0eXBlOiAiICsgc2NyaXB0LnR5cGUpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNyZWF0ZVNoYWRlckZyb21TY3JpcHQoc2NyaXB0SWRlbnRpZmllcikgeworICAgICAgICBs
ZXQgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyaXB0SWRlbnRpZmllcik7Cisg
ICAgICAgIGxldCBzaGFkZXIgPSBjb250ZXh0LmNyZWF0ZVNoYWRlcih0eXBlRm9yU2NyaXB0KHNj
cmlwdCkpOworICAgICAgICBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBzaGFkZXIpOwor
ICAgICAgICBjb250ZXh0LnNoYWRlclNvdXJjZShzaGFkZXIsIHNjcmlwdC50ZXh0KTsKKyAgICAg
ICAgY29udGV4dC5jb21waWxlU2hhZGVyKHNoYWRlcik7CisgICAgfQorCisgICAgY3JlYXRlU2hh
ZGVyRnJvbVNjcmlwdCh2ZXJ0ZXhTaGFkZXJJZGVudGlmaWVyKTsKKyAgICBjcmVhdGVTaGFkZXJG
cm9tU2NyaXB0KGZyYWdtZW50U2hhZGVySWRlbnRpZmllcik7CisgICAgY29udGV4dC5saW5rUHJv
Z3JhbShwcm9ncmFtKTsKK30KKworZnVuY3Rpb24gZGVsZXRlUHJvZ3JhbSgpIHsKKyAgICBjb250
ZXh0LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgcHJvZ3JhbSA9IG51bGw7Cit9CisKK2Z1
bmN0aW9uIGRlbGV0ZUNvbnRleHQoKSB7CisgICAgY29udGV4dCA9IG51bGw7CisgICAgLy8gRm9y
Y2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBjYW52YXMgZWxlbWVudCBpcyBkZXN0cm95ZWQsIG90aGVy
d2lzZSB0aGUgZnJvbnRlbmQKKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgc2V0VGltZW91dCgoKSA9PiB7IEdD
Q29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOworfQorCitUZXN0UGFnZS5yZWdpc3RlckluaXRp
YWxpemVyKCgpID0+IHsKKyAgICBsZXQgc3VpdGUgPSBudWxsOworCisgICAgZnVuY3Rpb24gd2hl
blByb2dyYW1BZGRlZChjYWxsYmFjaykgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5
IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF0u
c2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgbGV0IHByb2dy
YW0gPSBldmVudC5kYXRhLml0ZW07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0sICJBZGRlZCBTaGFkZXJQcm9n
cmFtLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2Fu
dmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBh
cmVudCBDYW52YXMuIik7CisgICAgICAgICAgICBjYWxsYmFjayhwcm9ncmFtKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2hlblByb2dyYW1SZW1vdmVkKGNhbGxiYWNrKSB7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMu
bGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKKyAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5z
aW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBX
SS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2Fu
dmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMuIik7CisgICAg
ICAgICAgICBjYWxsYmFjayhwcm9ncmFtKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgd2lu
ZG93LmluaXRpYWxpemVUZXN0U3VpdGUgPSBmdW5jdGlvbihjb250ZXh0VHlwZSkgeworICAgICAg
ICBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZShgQ2FudmFzLlNoYWRlclBy
b2dyYW0uJHtjb250ZXh0VHlwZX1gKTsKKworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5yZWxvYWRQYWdlYCwKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBTaGFkZXJQcm9ncmFtQWRkZWQgaXMgc2VudCBmb3Ig
YSBwcm9ncmFtIGNyZWF0ZWQgYmVmb3JlIENhbnZhc0FnZW50IGlzIGVuYWJsZWQuIiwKKyAgICAg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBj
YW4ndCB1c2UgYGF3YWl0RXZlbnRgIHNpbmNlIHRoZSBwcm9taXNlIHJlc29sdXRpb24gaGFwcGVu
cyBvbiB0aGUgbmV4dCB0aWNrLgorICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2lu
Z2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKHByb2dy
YW0pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAg
ICAgICAgcmV0dXJuIHN1aXRlOworICAgIH0KKworICAgICB3aW5kb3cuYWRkU2ltcGxlVGVzdENh
c2UgPSBmdW5jdGlvbihjb250ZXh0VHlwZSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5TaGFkZXJQcm9ncmFtQWRkZWRgLAor
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3JlbW92ZWQgZXZlbnRz
IGFyZSBzZW50LiIsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKGFkZGVkUHJvZ3JhbSkgPT4geworICAgICAgICAg
ICAgICAgICAgICB3aGVuUHJvZ3JhbVJlbW92ZWQoKHJlbW92ZWRQcm9ncmFtKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlbW92ZWRQcm9n
cmFtLCBhZGRlZFByb2dyYW0sICJSZW1vdmVkIHRoZSBwcmV2aW91c2x5IGFkZGVkIFNoYWRlclBy
b2dyYW0uIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGRlbGV0ZVByb2dyYW0oKWApOworICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlUHJvZ3JhbSgi
JHtjb250ZXh0VHlwZX0iKWApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisK
KyAgICB3aW5kb3cuYWRkUGFyZW50Q2FudmFzUmVtb3ZlZFRlc3RDYXNlID0gZnVuY3Rpb24oY29u
dGV4dFR5cGUpIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFt
ZTogYCR7c3VpdGUubmFtZX0uUGFyZW50Q2FudmFzUmVtb3ZlZGAsCisgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIFNoYWRlclByb2dyYW0gaXMgcmVtb3ZlZCBiZWZvcmUg
aXQncyBwYXJlbnQgQ2FudmFzLiIsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CisKKyAgICAgICAg
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAgICAgd2hlblByb2dyYW1SZW1vdmVkKChwcm9ncmFtKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY2FudmFzUmVtb3ZlZCwgIlJlbW92
ZWQgU2hhZGVyUHJvZ3JhbSBiZWZvcmUgQ2FudmFzLiIpOworICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVQcm9ncmFtKCIke2NvbnRleHRUeXBlfSIpYCk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZGVsZXRlQ29u
dGV4dCgpYCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KK30pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ3B1LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
dXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlNDhk
OGZkODUxMTQ2NTg5OGZkM2IwNDUwZGU4OTUxMzc0NDliZTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxp
dGllcy13ZWJncHUuanMKQEAgLTAsMCArMSwxMDAgQEAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR1BVRW5hYmxlZCh0cnVlKTsKKwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2NvbnN0IGNvbXB1dGVQaXBlbGlu
ZVNvdXJjZSA9IGAKK1tudW10aHJlYWRzKDIsIDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1dGVT
aGFkZXIoZGV2aWNlIGZsb2F0W10gYnVmZmVyIDogcmVnaXN0ZXIodTApLCBmbG9hdDMgdGhyZWFk
SUQgOiBTVl9EaXNwYXRjaFRocmVhZElEKSB7CisgICAgYnVmZmVyW3VpbnQodGhyZWFkSUQueCld
ID0gYnVmZmVyW3VpbnQodGhyZWFkSUQueCldICogMi4wOworfQorYDsKKworY29uc3QgcmVuZGVy
UGlwZWxpbmVTb3VyY2UgPSBgCit2ZXJ0ZXggZmxvYXQ0IHZlcnRleFNoYWRlcihmbG9hdDQgcG9z
aXRpb24gOiBhdHRyaWJ1dGUoMCksIGZsb2F0IGkgOiBhdHRyaWJ1dGUoMSkpIDogU1ZfUG9zaXRp
b24geworICAgIHJldHVybiBwb3NpdGlvbjsKK30KKworZnJhZ21lbnQgZmxvYXQ0IGZyYWdtZW50
U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IFNWX1Bvc2l0aW9uKSA6IFNWX1RhcmdldCAwIHsKKyAg
ICByZXR1cm4gcG9zaXRpb247Cit9CitgOworCitsZXQgZGV2aWNlID0gbnVsbDsKKworYXN5bmMg
ZnVuY3Rpb24gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvZGUgPSBjb21wdXRlUGlwZWxpbmVTb3Vy
Y2UpIHsKKyAgICAvLyBDb3BpZWQgZnJvbSB3ZWJncHUvd2hsc2wvY29tcHV0ZS5odG1sLgorICAg
IGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoe2NvZGV9KTsK
KyAgICBjb25zdCBjb21wdXRlU3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUsIGVudHJ5UG9p
bnQ6ICJjb21wdXRlU2hhZGVyIn07CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5OiA3LCB0eXBlOiAic3RvcmFn
ZS1idWZmZXIifV19OworICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmljZS5jcmVhdGVC
aW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7CisgICAgY29uc3QgcGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlv
dXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxh
eW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOworICAgIGRldmljZS5jcmVhdGVDb21wdXRl
UGlwZWxpbmUoe2NvbXB1dGVTdGFnZSwgbGF5b3V0OiBwaXBlbGluZUxheW91dH0pOworfQorCith
c3luYyBmdW5jdGlvbiBjcmVhdGVSZW5kZXJQaXBlbGluZShjb2RlID0gcmVuZGVyUGlwZWxpbmVT
b3VyY2UpIHsKKyAgICAvLyBDb3BpZWQgZnJvbSB3ZWJncHUvd2hsc2wvd2hsc2wuaHRtbC4KKyAg
ICBjb25zdCBzaGFkZXJNb2R1bGUgPSBkZXZpY2UuY3JlYXRlU2hhZGVyTW9kdWxlKHtjb2RlfSk7
CisgICAgY29uc3QgdmVydGV4U3RhZ2UgPSB7bW9kdWxlOiBzaGFkZXJNb2R1bGUsIGVudHJ5UG9p
bnQ6ICJ2ZXJ0ZXhTaGFkZXIifTsKKyAgICBjb25zdCBmcmFnbWVudFNoYWRlck1vZHVsZSA9IGRl
dmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoe2NvZGV9KTsKKyAgICBjb25zdCBmcmFnbWVudFN0YWdl
ID0ge21vZHVsZTogc2hhZGVyTW9kdWxlLCBlbnRyeVBvaW50OiAiZnJhZ21lbnRTaGFkZXIifTsK
KyAgICBjb25zdCBwcmltaXRpdmVUb3BvbG9neSA9ICJ0cmlhbmdsZS1zdHJpcCI7CisgICAgY29u
c3QgcmFzdGVyaXphdGlvblN0YXRlID0ge2Zyb250RmFjZTogImN3IiwgY3VsbE1vZGU6ICJub25l
In07CisgICAgY29uc3QgYWxwaGFCbGVuZCA9IHt9OworICAgIGNvbnN0IGNvbG9yQmxlbmQgPSB7
fTsKKyAgICBjb25zdCBjb2xvclN0YXRlcyA9IFt7Zm9ybWF0OiAicmdiYTh1bm9ybSIsIGFscGhh
QmxlbmQsIGNvbG9yQmxlbmQsIHdyaXRlTWFzazogMTV9XTsgLy8gR1BVQ29sb3JXcml0ZS5BTEwK
KyAgICBjb25zdCBkZXB0aFN0ZW5jaWxTdGF0ZSA9IG51bGw7CisgICAgY29uc3QgYXR0cmlidXRl
MCA9IHtzaGFkZXJMb2NhdGlvbjogMCwgZm9ybWF0OiAiZmxvYXQ0In07CisgICAgY29uc3QgYXR0
cmlidXRlMSA9IHtzaGFkZXJMb2NhdGlvbjogMSwgZm9ybWF0OiAiZmxvYXQifTsKKyAgICBjb25z
dCBpbnB1dDAgPSB7c3RyaWRlOiAxNiwgYXR0cmlidXRlU2V0OiBbYXR0cmlidXRlMF19OworICAg
IGNvbnN0IGlucHV0MSA9IHtzdHJpZGU6IDQsIGF0dHJpYnV0ZVNldDogW2F0dHJpYnV0ZTFdfTsK
KyAgICBjb25zdCBpbnB1dHMgPSBbaW5wdXQwLCBpbnB1dDFdOworICAgIGNvbnN0IHZlcnRleElu
cHV0ID0ge3ZlcnRleEJ1ZmZlcnM6IGlucHV0c307CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5OiA3LCB0eXBl
OiAidW5pZm9ybS1idWZmZXIifV19OworICAgIGNvbnN0IGJpbmRHcm91cExheW91dCA9IGRldmlj
ZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7CisgICAg
Y29uc3QgcGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2JpbmRHcm91cExheW91dHM6IFtiaW5k
R3JvdXBMYXlvdXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxheW91dCA9IGRldmljZS5jcmVhdGVQ
aXBlbGluZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0b3IpOworICAgIGRldmljZS5jcmVh
dGVSZW5kZXJQaXBlbGluZSh7dmVydGV4U3RhZ2UsIGZyYWdtZW50U3RhZ2UsIHByaW1pdGl2ZVRv
cG9sb2d5LCByYXN0ZXJpemF0aW9uU3RhdGUsIGNvbG9yU3RhdGVzLCBkZXB0aFN0ZW5jaWxTdGF0
ZSwgdmVydGV4SW5wdXQsIHNhbXBsZUNvdW50OiAxLCBsYXlvdXQ6IHBpcGVsaW5lTGF5b3V0fSk7
Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURldmljZSgpIHsKKyAgICBkZXZpY2UgPSBudWxsOworICAg
IC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgZGV2aWNlIGlzIGRlc3Ryb3llZCwgb3RoZXJ3
aXNlIHRoZSBmcm9udGVuZAorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFuYWdl
ci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0ND
b250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGxvYWQoKSB7
CisgICAgbGV0IGFkYXB0ZXIgPSBhd2FpdCBuYXZpZ2F0b3IuZ3B1LnJlcXVlc3RBZGFwdGVyKCk7
CisgICAgZGV2aWNlID0gYXdhaXQgYWRhcHRlci5yZXF1ZXN0RGV2aWNlKCk7CisKKyAgICBhd2Fp
dCBQcm9taXNlLmFsbChbCisgICAgICAgIGNyZWF0ZUNvbXB1dGVQaXBlbGluZSgpLAorICAgICAg
ICBjcmVhdGVSZW5kZXJQaXBlbGluZSgpLAorICAgIF0pOworCisgICAgaWYgKHdpbmRvdy5iZWZv
cmVUZXN0KQorICAgICAgICBhd2FpdCBiZWZvcmVUZXN0KCk7CisKKyAgICBydW5UZXN0KCk7Cit9
CisKK1Rlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4geworICAgIGlmICghSW5zcGVj
dG9yVGVzdC5TaGFkZXJQcm9ncmFtKQorICAgICAgICBJbnNwZWN0b3JUZXN0LlNoYWRlclByb2dy
YW0gPSB7fTsKKworICAgIEluc3BlY3RvclRlc3QuU2hhZGVyUHJvZ3JhbS5wcm9ncmFtRm9yVHlw
ZSA9IGZ1bmN0aW9uKHByb2dyYW1UeXBlKSB7CisgICAgICAgIGxldCByZXN1bHQgPSBudWxsOwor
ICAgICAgICBmb3IgKGxldCBzaGFkZXJQcm9ncmFtIG9mIFdJLmNhbnZhc01hbmFnZXIuc2hhZGVy
UHJvZ3JhbXMpIHsKKyAgICAgICAgICAgIGlmIChzaGFkZXJQcm9ncmFtLnByb2dyYW1UeXBlID09
PSBwcm9ncmFtVHlwZSkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFy
ZXN1bHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNoYWRlclByb2dyYW07CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9OworfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQ
cm9ncmFtLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1Mjc1YzQ0MWFhZmM3M2I5MTA3OTQ1YjNjZDczZjljYTY3ZTFlNjVlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTMwICswLDAgQEAKLWxldCBjb250ZXh0OwotbGV0IHByb2dyYW07Ci0KLWZ1bmN0
aW9uIGNyZWF0ZVByb2dyYW0oY29udGV4dFR5cGUpIHsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAg
ICAgIGNvbnRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0
KGNvbnRleHRUeXBlKTsKLQotICAgIHByb2dyYW0gPSBjb250ZXh0LmNyZWF0ZVByb2dyYW0oKTsK
LX0KLQotZnVuY3Rpb24gbGlua1Byb2dyYW0odmVydGV4U2hhZGVySWRlbnRpZmllciwgZnJhZ21l
bnRTaGFkZXJJZGVudGlmaWVyKSB7Ci0gICAgZnVuY3Rpb24gdHlwZUZvclNjcmlwdChzY3JpcHQp
IHsKLSAgICAgICAgaWYgKHNjcmlwdC50eXBlID09PSAieC1zaGFkZXIveC12ZXJ0ZXgiKQotICAg
ICAgICAgICAgcmV0dXJuIGNvbnRleHQuVkVSVEVYX1NIQURFUjsKLSAgICAgICAgaWYgKHNjcmlw
dC50eXBlID09PSAieC1zaGFkZXIveC1mcmFnbWVudCIpCi0gICAgICAgICAgICByZXR1cm4gY29u
dGV4dC5GUkFHTUVOVF9TSEFERVI7Ci0KLSAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJV
bmV4cGVjdGVkIHNjcmlwdCB4LXNoYWRlciB0eXBlOiAiICsgc2NyaXB0LnR5cGUpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGNyZWF0ZVNoYWRlckZyb21TY3JpcHQoc2NyaXB0SWRlbnRpZmllcikg
ewotICAgICAgICBsZXQgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyaXB0SWRl
bnRpZmllcik7Ci0gICAgICAgIGxldCBzaGFkZXIgPSBjb250ZXh0LmNyZWF0ZVNoYWRlcih0eXBl
Rm9yU2NyaXB0KHNjcmlwdCkpOwotICAgICAgICBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFt
LCBzaGFkZXIpOwotICAgICAgICBjb250ZXh0LnNoYWRlclNvdXJjZShzaGFkZXIsIHNjcmlwdC50
ZXh0KTsKLSAgICAgICAgY29udGV4dC5jb21waWxlU2hhZGVyKHNoYWRlcik7Ci0gICAgfQotCi0g
ICAgY3JlYXRlU2hhZGVyRnJvbVNjcmlwdCh2ZXJ0ZXhTaGFkZXJJZGVudGlmaWVyKTsKLSAgICBj
cmVhdGVTaGFkZXJGcm9tU2NyaXB0KGZyYWdtZW50U2hhZGVySWRlbnRpZmllcik7Ci0gICAgY29u
dGV4dC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLX0KLQotZnVuY3Rpb24gZGVsZXRlUHJvZ3JhbSgp
IHsKLSAgICBjb250ZXh0LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7Ci0gICAgcHJvZ3JhbSA9IG51
bGw7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZUNvbnRleHQoKSB7Ci0gICAgY29udGV4dCA9IG51bGw7
Ci0gICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBjYW52YXMgZWxlbWVudCBpcyBkZXN0
cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCi0gICAgc2V0VGltZW91
dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwotfQotCi1UZXN0UGFnZS5y
ZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKLSAgICBsZXQgc3VpdGUgPSBudWxsOwotCi0gICAg
ZnVuY3Rpb24gd2hlblByb2dyYW1BZGRlZChjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJl
IHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVu
ZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAg
ICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0sICJBZGRl
ZCBTaGFkZXJQcm9ncmFtLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KHByb2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91
bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMuIik7Ci0gICAgICAgICAgICBjYWxsYmFjayhwcm9ncmFt
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gd2hlblByb2dyYW1SZW1vdmVk
KGNhbGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZh
cy4iKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFt
Q29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQu
ZGF0YS5pdGVtOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0g
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3Rh
bmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52
YXMuIik7Ci0gICAgICAgICAgICBjYWxsYmFjayhwcm9ncmFtKTsKLSAgICAgICAgfSk7Ci0gICAg
fQotCi0gICAgd2luZG93LmluaXRpYWxpemVUZXN0U3VpdGUgPSBmdW5jdGlvbihjb250ZXh0VHlw
ZSkgewotICAgICAgICBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZShgQ2Fu
dmFzLlNoYWRlclByb2dyYW0uJHtjb250ZXh0VHlwZX1gKTsKLQotICAgICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5yZWxvYWRQYWdlYCwK
LSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBTaGFkZXJQcm9ncmFtQWRkZWQg
aXMgc2VudCBmb3IgYSBwcm9ncmFtIGNyZWF0ZWQgYmVmb3JlIENhbnZhc0FnZW50IGlzIGVuYWJs
ZWQuIiwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAg
ICAgLy8gVGhpcyBjYW4ndCB1c2UgYGF3YWl0RXZlbnRgIHNpbmNlIHRoZSBwcm9taXNlIHJlc29s
dXRpb24gaGFwcGVucyBvbiB0aGUgbmV4dCB0aWNrLgotICAgICAgICAgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5D
YW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFt
QWRkZWQoKHByb2dyYW0pID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
LSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSk7Ci0KLSAgICAgICAgcmV0dXJuIHN1aXRlOwotICAgIH0KLQotICAgICB3aW5kb3cuYWRk
U2ltcGxlVGVzdENhc2UgPSBmdW5jdGlvbihjb250ZXh0VHlwZSkgewotICAgICAgICBzdWl0ZS5h
ZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5TaGFkZXJQcm9n
cmFtQWRkZWRgLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3Jl
bW92ZWQgZXZlbnRzIGFyZSBzZW50LiIsCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgewotICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKGFkZGVkUHJvZ3JhbSkgPT4g
ewotICAgICAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbVJlbW92ZWQoKHJlbW92ZWRQcm9ncmFt
KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHJlbW92ZWRQcm9ncmFtLCBhZGRlZFByb2dyYW0sICJSZW1vdmVkIHRoZSBwcmV2aW91c2x5IGFk
ZGVkIFNoYWRlclByb2dyYW0uIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlbGV0ZVByb2dyYW0oKWApOwotICAgICAgICAgICAgICAg
IH0pOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3Jl
YXRlUHJvZ3JhbSgiJHtjb250ZXh0VHlwZX0iKWApOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICB9Ci0KLSAgICB3aW5kb3cuYWRkUGFyZW50Q2FudmFzUmVtb3ZlZFRlc3RDYXNlID0g
ZnVuY3Rpb24oY29udGV4dFR5cGUpIHsKLSAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAg
ICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uUGFyZW50Q2FudmFzUmVtb3ZlZGAsCi0gICAg
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIFNoYWRlclByb2dyYW0gaXMgcmVt
b3ZlZCBiZWZvcmUgaXQncyBwYXJlbnQgQ2FudmFzLiIsCi0gICAgICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7
Ci0KLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3Rl
bmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7Ci0g
ICAgICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
IH0pOwotCi0gICAgICAgICAgICAgICAgd2hlblByb2dyYW1SZW1vdmVkKChwcm9ncmFtKSA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY2FudmFzUmVt
b3ZlZCwgIlJlbW92ZWQgU2hhZGVyUHJvZ3JhbSBiZWZvcmUgQ2FudmFzLiIpOwotICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVQcm9ncmFtKCIke2NvbnRl
eHRUeXBlfSIpYCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZShgZGVsZXRlQ29udGV4dCgpYCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH0K
LX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQ
cm9ncmFtRGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0U2hh
ZGVyUHJvZ3JhbURpc2FibGVkLmh0bWwKaW5kZXggNjU3YTNhYjhjMWZmZGI4NmNlMDg3MGRhNDcy
Yjk2YWRmMjE5MjhiMC4uZDM5ZWMzMDk1ZTFiZTU0ODNlN2NhYzJkNzFmOWQyNDMyMTQxZGYwOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFt
RGlzYWJsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFNoYWRl
clByb2dyYW1EaXNhYmxlZC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFt
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclBy
b2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1z
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjMyBwb3Np
dGlvbjsKICAgICB2b2lkIG1haW4odm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkLmh0bWwKaW5k
ZXggZDQwODljMzgxNWE2OTRkYTE1NmJlMDIwMTEzOGE0NTZkNjBiY2YwYS4uOGE3OTQzZDU1Y2Q2
YzFjYmQwNTRiYjA4YzFlZmJkNjJmNjkzMzBjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9zZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZC5odG1s
CkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmds
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZlcnRleC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVy
L3gtdmVydGV4Ij4KICAgICBhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsKICAgICB2b2lkIG1haW4o
dm9pZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQ
cm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsLmh0bWwKaW5kZXggMmNlNzlmMmNhN2E3
ZWVmNmNjYWMwN2NjMzQ4OWJlMWFlODQ1Y2EwYS4uM2M2MzExZDkyMzg1NzNhNjE1OTAxNTlhMjhl
Yzc4NDJmOGU0MDQ0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9z
aGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbC5odG1sCkBAIC0yLDcg
KzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGxldCBzdWl0ZSA9IGluaXRp
YWxpemVUZXN0U3VpdGUoIndlYmdsIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJnbDIuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsMi5odG1s
CmluZGV4IDI2M2ZmY2FjMGI5YjNmNzUwMDkxZDgyZDNiODdkYmQ4MDNhNzkxMzIuLjkyZmEzMDYx
ZmY1OGQyY2Q1ZWU4YmUxMWIyOTY3ODlhOGVlMTlkNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdsMi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3Zl
LXdlYmdsMi5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBpZiAod2luZG93LmludGVybmFs
cykKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR0wyRW5hYmxlZCh0cnVlKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3No
YWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2
OGQxZmJhZmJmZTM0ZTY4Yzk0ZDk4NzUzY2EwMjRkNTVjNGZlOGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13
ZWJncHUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK0NPTlNPTEUgTUVTU0FHRTogR1BV
RGV2aWNlLmNyZWF0ZUNvbXB1dGVQaXBlbGluZSgpOiBXSExTTCBjb21waWxlIGVycm9yOiBDYW5u
b3QgbGV4OiBDYW5ub3QgY29uc3VtZSB0b2tlbgorQ09OU09MRSBNRVNTQUdFOiBHUFVEZXZpY2Uu
Y3JlYXRlUmVuZGVyUGlwZWxpbmUoKTogV0hMU0wgY29tcGlsZSBlcnJvcjogQ2Fubm90IGxleDog
Q2Fubm90IGNvbnN1bWUgdG9rZW4KK0NPTlNPTEUgTUVTU0FHRTogR1BVRGV2aWNlLmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSgpOiBXSExTTCBjb21waWxlIGVycm9yOiBDYW5ub3QgbGV4OiBDYW5ub3Qg
Y29uc3VtZSB0b2tlbgorQ09OU09MRSBNRVNTQUdFOiBHUFVEZXZpY2UuY3JlYXRlUmVuZGVyUGlw
ZWxpbmUoKTogV0hMU0wgY29tcGlsZSBlcnJvcjogQ2Fubm90IGxleDogQ2Fubm90IGNvbnN1bWUg
dG9rZW4KK1Rlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIHRyYWNrcyBjcmVhdGlvbiBhbmQgZGVzdHJ1
Y3Rpb24gb2YgV2ViR1BVIHNoYWRlciBwcm9ncmFtcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENh
bnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5FeGlzdGluZworUEFTUzogQWRkZWQgImNvbXB1dGUi
IFNoYWRlclByb2dyYW0uCitQQVNTOiBBZGRlZCAicmVuZGVyIiBTaGFkZXJQcm9ncmFtLgorUEFT
UzogVGhlcmUgc2hvdWxkIGJlIHR3byBTaGFkZXJQcm9ncmFtLgorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkFkZGVkLkNvbXB1dGUuVmFsaWQKK1BB
U1M6IEFkZGVkICJjb21wdXRlIiBTaGFkZXJQcm9ncmFtLgorCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkFkZGVkLkNvbXB1dGUuSW52YWxpZAorUEFT
UzogU2hvdWxkIG5vdCBjcmVhdGUgYSBTaGFkZXJQcm9ncmFtIGZvciBhbiBpbnZhbGlkIGRlc2Ny
aXB0b3IuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJH
UFUuQWRkZWQuUmVuZGVyLlZhbGlkCitQQVNTOiBBZGRlZCAicmVuZGVyIiBTaGFkZXJQcm9ncmFt
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkFk
ZGVkLlJlbmRlci5JbnZhbGlkCitQQVNTOiBTaG91bGQgbm90IGNyZWF0ZSBhIFNoYWRlclByb2dy
YW0gZm9yIGFuIGludmFsaWQgZGVzY3JpcHRvci4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENh
bnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5QYXJlbnREZXZpY2VSZW1vdmVkCitQQVNTOiBSZW1v
dmVkIFNoYWRlclByb2dyYW0gYmVmb3JlIENhbnZhcy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13
ZWJncHUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDBmYWI3ODM4MTMwY2M5NGIwM2JmOTFkOTZmMjI3MDkw
NGViMDEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9z
aGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKQEAgLTAsMCArMSwxNDYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK3dpbmRvdy5iZWZvcmVUZXN0ID0gYXN5bmMgZnVuY3Rpb24oKSB7
CisgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICBjcmVhdGVDb21wdXRlUGlwZWxpbmUo
IklOVkFMSUQiKSwKKyAgICAgICAgY3JlYXRlUmVuZGVyUGlwZWxpbmUoIklOVkFMSUQiKSwKKyAg
ICBdKTsKK307CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFVgKTsKKwor
ICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhIGNhbnZhcy4iKTsKKyAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9
PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CisKKyAgICBhc3luYyBmdW5jdGlv
biBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgeworICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgbGV0IGxpc3RlbmVySXRl
bUFkZGVkID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOworICAgICAgICAgICAgICAgIGlmIChw
cm9ncmFtLnByb2dyYW1UeXBlICE9PSBwcm9ncmFtVHlwZSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dy
YW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCBgQWRkZWQgIiR7cHJvZ3JhbVR5cGV9IiBT
aGFkZXJQcm9ncmFtLmApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHBy
b2dyYW0uY2FudmFzID09PSBjYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBiZSBmb3IgdGhl
IGtub3duIENhbnZhcy4iKTsKKworICAgICAgICAgICAgICAgIHJlc29sdmUocHJvZ3JhbSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLlNoYWRlclByb2dyYW0uV2ViR1BVLkV4aXN0aW5n
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRlclByb2dyYW1BZGRlZCBp
cyBzZW50IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQgaXMgZW5hYmxl
ZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24g
Y2hlY2tFeGlzdHMocHJvZ3JhbVR5cGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoSW5zcGVjdG9y
VGVzdC5TaGFkZXJQcm9ncmFtLnByb2dyYW1Gb3JUeXBlKHByb2dyYW1UeXBlKSkgeworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYEFkZGVkICIke3Byb2dyYW1UeXBlfSIg
U2hhZGVyUHJvZ3JhbS5gKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGF3YWl0IGF3YWl0UHJvZ3JhbUFkZGVkKHByb2dy
YW1UeXBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwo
WworICAgICAgICAgICAgICAgIGNoZWNrRXhpc3RzKFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5
cGUuQ29tcHV0ZSksCisgICAgICAgICAgICAgICAgY2hlY2tFeGlzdHMoV0kuU2hhZGVyUHJvZ3Jh
bS5Qcm9ncmFtVHlwZS5SZW5kZXIpLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNp
emUsIDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIFNoYWRlclByb2dyYW0uIik7CisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNhbnZh
cy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21wdXRlLlZhbGlkIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3JlbW92ZWQgZXZlbnRzIGFyZSBzZW50LiIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICAgICAgYXdhaXRQcm9ncmFtQWRkZWQoV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFt
VHlwZS5Db21wdXRlKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKGBjcmVhdGVDb21wdXRlUGlwZWxpbmUoKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAg
IH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNh
bnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVS5BZGRlZC5Db21wdXRlLkludmFsaWQiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYWRkZWQvcmVtb3ZlZCBldmVudHMgYXJlIHNlbnQu
IiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFt
QWRkZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gY2FudmFzLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBzaGFkZXJQcm9n
cmFtQWRkZWQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUNvbXB1dGVQaXBlbGluZSgiSU5WQUxJ
RCIpYCk7CisKKyAgICAgICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5yZW1v
dmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKHNoYWRlclByb2dyYW1BZGRl
ZCwgIlNob3VsZCBub3QgY3JlYXRlIGEgU2hhZGVyUHJvZ3JhbSBmb3IgYW4gaW52YWxpZCBkZXNj
cmlwdG9yLiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuQWRkZWQuUmVuZGVy
LlZhbGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGFkZGVkL3JlbW92ZWQg
ZXZlbnRzIGFyZSBzZW50LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBh
d2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYXdhaXRQcm9ncmFtQWRkZWQoV0ku
U2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIpLAorICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVJlbmRlclBpcGVsaW5lKClgKSwKKyAgICAg
ICAgICAgIF0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFUuQWRkZWQuUmVuZGVy
LkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYWRkZWQvcmVtb3Zl
ZCBldmVudHMgYXJlIHNlbnQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IGxldCBzaGFkZXJQcm9ncmFtQWRkZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgbGV0IGxpc3Rl
bmVyID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3Rl
bmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICBzaGFkZXJQcm9ncmFtQWRkZWQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVJlbmRl
clBpcGVsaW5lKCJJTlZBTElEIilgKTsKKworICAgICAgICAgICAgY2FudmFzLnNoYWRlclByb2dy
YW1Db2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVt
QWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2Uo
c2hhZGVyUHJvZ3JhbUFkZGVkLCAiU2hvdWxkIG5vdCBjcmVhdGUgYSBTaGFkZXJQcm9ncmFtIGZv
ciBhbiBpbnZhbGlkIGRlc2NyaXB0b3IuIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy5TaGFkZXJQcm9ncmFtLldl
YkdQVS5QYXJlbnREZXZpY2VSZW1vdmVkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IHRoZSBTaGFkZXJQcm9ncmFtIGlzIHJlbW92ZWQgYmVmb3JlIGl0J3MgcGFyZW50IENhbnZh
cy4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IGNh
bnZhc1JlbW92ZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5n
bGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOworICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtQ291bnQgPSBjYW52
YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2l6ZTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5l
ckl0ZW1SZW1vdmVkID0gY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAg
ICAgICAgICAgICAgaWYgKC0tc2hhZGVyUHJvZ3JhbUNvdW50KQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rp
b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCBs
aXN0ZW5lckl0ZW1SZW1vdmVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEZhbHNlKGNhbnZhc1JlbW92ZWQsICJSZW1vdmVkIFNoYWRlclByb2dyYW0gYmVmb3JlIENhbnZh
cy4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZGVsZXRlRGV2aWNlKClgKTsK
KyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5U
ZXN0IHRoYXQgQ2FudmFzTWFuYWdlciB0cmFja3MgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uIG9m
IFdlYkdQVSBzaGFkZXIgcHJvZ3JhbXMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItZXhwZWN0ZWQudHh0
CmluZGV4IDhmM2ZlZTllMTQwNGViMmM0ZDA4NDIwNmI2Y2VmN2M4YzQ0YTc0YzEuLmNlMzdlOGU2
YTljODAwZWZjOGY3ZjA2ZWNjNDUyY2E0MzFjYjEwMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci1leHBlY3RlZC50eHQKQEAgLTEsMzgg
KzEsOCBAQAotQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogRVJST1I6IDA6MTogJ0lOVkFMSUQnIDog
c3ludGF4IGVycm9yCi1DT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBFUlJPUjogMDoxOiAnSU5WQUxJ
RCcgOiBzeW50YXggZXJyb3IKLVRlc3QgY29tcGlsYXRpb24gb2Ygc2hhZGVycyBhZnRlciBiZWlu
ZyBhdHRhY2hlZCB0byBhIHByb2dyYW0sIHdpdGggYW5kIHdpdGhvdXQgc3ludGF4IGVycm9ycy4K
K0NvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLgogCiAKID09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnVwZGF0ZVNoYWRlcgotLS0gUnVubmluZyB0ZXN0IGNh
c2U6IENhbnZhcy51cGRhdGVTaGFkZXIudmVydGV4U2hhZGVyVmFsaWQKLQotICAgIHZvaWQgbWFp
bih2b2lkKSB7Ci0gICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLCAyLCAzLCA0KTsKLSAgICB9
Ci0KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuZnJhZ21lbnRT
aGFkZXJWYWxpZAotCi0gICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLSAgICB2b2lkIG1h
aW4odm9pZCkgewotICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAu
NCk7Ci0gICAgfQotCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVy
LmludmFsaWRQcm9ncmFtSWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hh
ZGVyLlByb2dyYW1JZC5JbnZhbGlkCiBQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBlcnJvci4KIEVy
cm9yOiBNaXNzaW5nIHByb2dyYW0gZm9yIGdpdmVuIHByb2dyYW1JZAogCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkU2hhZGVyVHlwZQotUEFTUzogU2hv
dWxkIHByb2R1Y2UgYW4gZXJyb3IuCi1FcnJvcjogTWlzc2luZyBzaGFkZXIgZm9yIGdpdmVuIHNo
YWRlclR5cGUKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuaW52
YWxpZFZlcnRleFNoYWRlclNvdXJjZQotUEFTUzogU2hvdWxkIHByb2R1Y2UgZXJyb3IuCi1FcnJv
cjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIKLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZh
cy51cGRhdGVTaGFkZXIuaW52YWxpZEZyYWdtZW50U2hhZGVyU291cmNlCi1QQVNTOiBTaG91bGQg
cHJvZHVjZSBlcnJvci4KLUVycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlcgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJn
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJiYmE3MjE4ZmY1YjNjYzRhZTk1YjNhOTA1ZDFk
MzBmNmVjYmE1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvdXBkYXRlU2hhZGVyLXdlYmdsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitDT05T
T0xFIE1FU1NBR0U6IFdlYkdMOiBFUlJPUjogMDoxOiAnSU5WQUxJRCcgOiBzeW50YXggZXJyb3IK
K0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IEVSUk9SOiAwOjE6ICdJTlZBTElEJyA6IHN5bnRheCBl
cnJvcgorV2ViR0wgdGVzdHMgZm9yIENhbnZhcy51cGRhdGVTaGFkZXIgY29tbWFuZC4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5WYWxpZAorCisg
ICAgdm9pZCBtYWluKHZvaWQpIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEsIDIsIDMs
IDQpOworICAgIH0KKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRl
ci5XZWJHTC5GcmFnbWVudC5WYWxpZAorCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisK
KyAgICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwg
MC4yLCAwLjMsIDAuNCk7CisgICAgfQorCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMu
dXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5JbnZhbGlkCitQQVNTOiBTaG91bGQgcHJvZHVjZSBl
cnJvci4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBl
IGZvciBnaXZlbiBwcm9ncmFtSWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRh
dGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52YWxpZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgZXJy
b3IuCitFcnJvcjogRmFpbGVkIHRvIHVwZGF0ZSBzaGFkZXIgb2YgZ2l2ZW4gc2hhZGVyVHlwZSBm
b3IgZ2l2ZW4gcHJvZ3JhbUlkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRl
U2hhZGVyLldlYkdMLlNoYWRlclR5cGUuSW52YWxpZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4g
ZXJyb3IuCitFcnJvcjogVW5rbm93biBzaGFkZXJUeXBlOiBJTlZBTElEX1NIQURFUl9UWVBFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdl
YmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJn
bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZkNTc4ZTRlMzk4NzhhMTA0NGM4YjIwM2ExNDA2NGI2OWM3ZTEz
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0
ZVNoYWRlci13ZWJnbC5odG1sCkBAIC0wLDAgKzEsMTI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBp
ZD0idmVydGV4LXNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorICAgIHZvaWQgbWFp
bih2b2lkKSB7CisgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjAp
OworICAgIH0KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iZnJhZ21lbnQtc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworICAg
IHZvaWQgbWFpbih2b2lkKSB7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAxLjAs
IDEuMCwgMS4wKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkg
eworICAgIGNyZWF0ZVByb2dyYW0oIndlYmdsIik7CisgICAgbGlua1Byb2dyYW0oInZlcnRleC1z
aGFkZXIiLCAiZnJhZ21lbnQtc2hhZGVyIik7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3QoKSB7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1
aXRlKCJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMIik7CisKKyAgICBmdW5jdGlvbiB2YWxpZFNv
dXJjZVRlc3Qoe25hbWUsIHNoYWRlclR5cGUsIHNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNN
YW5hZ2VyLnNoYWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgICAgIGlmICghc2hhZGVyUHJv
Z3JhbSkgeworICAgICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3Npbmcgc2hhZGVyIHByb2dy
YW0iKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgbGV0IHByb2dyYW1JZCA9IHNoYWRlclByb2dyYW0uaWRlbnRpZmllcjsK
KworICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihwcm9ncmFtSWQsIHNo
YWRlclR5cGUsIHNvdXJjZSkKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBDYW52YXNBZ2Vu
dC5yZXF1ZXN0U2hhZGVyU291cmNlKHByb2dyYW1JZCwgc2hhZGVyVHlwZSkpCisgICAgICAgICAg
ICAgICAgLnRoZW4oKHtzb3VyY2V9KSA9PiBJbnNwZWN0b3JUZXN0LmxvZyhzb3VyY2UpKQorICAg
ICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIHZhbGlkU291cmNlVGVzdCh7CisgICAgICAgIG5hbWU6ICJD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdMLlZlcnRleC5WYWxpZCIsCisgICAgICAgIHNoYWRlclR5
cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAorICAgICAgICBzb3VyY2U6IGAKKyAg
ICB2b2lkIG1haW4odm9pZCkgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSwgMiwgMywg
NCk7CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIHZhbGlkU291cmNlVGVzdCh7CisgICAgICAg
IG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLldlYkdMLkZyYWdtZW50LlZhbGlkIiwKKyAgICAg
ICAgc2hhZGVyVHlwZTogQ2FudmFzQWdlbnQuU2hhZGVyVHlwZS5GcmFnbWVudCwKKyAgICAgICAg
c291cmNlOiBgCisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKyAgICB2b2lkIG1haW4o
dm9pZCkgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMSwgMC4yLCAwLjMsIDAuNCk7
CisgICAgfQorYCwKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIGludmFsaWRTb3VyY2VUZXN0KHtu
YW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFzTWFuYWdlci5zaGFk
ZXJQcm9ncmFtc1swXTsKKyAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclByb2dyYW0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlkZW50aWZpZXIsIHNo
YWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGVycm9yLiIpOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaW52YWxpZFNvdXJjZVRlc3Qoewor
ICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5WZXJ0ZXguSW52YWxpZCIs
CisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAorICAg
ICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICB9KTsKKworICAgIGludmFsaWRTb3VyY2VUZXN0
KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR0wuRnJhZ21lbnQuSW52
YWxpZCIsCisgICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuRnJhZ21l
bnQsCisgICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAorICAgIH0pOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHTC5TaGFk
ZXJUeXBlLkludmFsaWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hhZGVyIHR5
cGVzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5hZ2VyLnNo
YWRlclByb2dyYW1zWzBdOworICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7CisgICAg
ICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IHNoYWRlclR5
cGUgPSAiSU5WQUxJRF9TSEFERVJfVFlQRSI7CisgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSAi
SU5WQUxJRF9TT1VSQ0UiOworICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hhZGVyKHNo
YWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJyb3IpID0+IHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXJyb3IsICJTaG91bGQg
cHJvZHVjZSBhbiBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Cis8
cD5XZWJHTCB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLXdlYmdwdS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZWQzNzIy
M2M3NWMwZmU1ODU2MWU4MmFiMGQxNDk2NWM0YWNiZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjggQEAKK1dlYkdQVSB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBj
b21tYW5kLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5X
ZWJHUFUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5D
b21wdXRlLlZhbGlkCitQQVNTOiBTb3VyY2Ugc2hvdWxkIGhhdmUgY2hhbmdlZC4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IENhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLkNvbXB1dGUuSW52YWxp
ZAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IEZhaWxlZCB0byB1
cGRhdGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZAorUEFT
UzogU291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
YW52YXMudXBkYXRlU2hhZGVyLldlYkdQVS5WZXJ0ZXguVmFsaWQKK1BBU1M6IFNvdXJjZSBzaG91
bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNo
YWRlci5XZWJHUFUuVmVydGV4LkludmFsaWQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2Vw
dGlvbi4KK0Vycm9yOiBGYWlsZWQgdG8gdXBkYXRlIHNoYWRlciBvZiBnaXZlbiBzaGFkZXJUeXBl
IGZvciBnaXZlbiBwcm9ncmFtSWQKK1BBU1M6IFNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuRnJhZ21l
bnQuVmFsaWQKK1BBU1M6IFNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQ2FudmFzLnVwZGF0ZVNoYWRlci5XZWJHUFUuRnJhZ21lbnQuSW52YWxpZAor
UEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IEZhaWxlZCB0byB1cGRh
dGUgc2hhZGVyIG9mIGdpdmVuIHNoYWRlclR5cGUgZm9yIGdpdmVuIHByb2dyYW1JZAorUEFTUzog
U291cmNlIHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNjMGU4
NjRhNDNiNzJiMTdjMzM1YTY1ODI2NmJmYzkwNzVlOTViMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5odG1sCkBAIC0w
LDAgKzEsMTA3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRp
ZXMtd2ViZ3B1LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgeworICAg
IGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQ2FudmFzLnVwZGF0
ZVNoYWRlci5XZWJHUFUiKTsKKworICAgIGZ1bmN0aW9uIHRlc3Qoe25hbWUsIHByb2dyYW1UeXBl
LCBzaGFkZXJUeXBlLCBzb3VyY2UsIHNob3VsZFRocm93fSkgeworICAgICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsK
KyAgICAgICAgICAgICAgICBsZXQgc2hhZGVyUHJvZ3JhbSA9IEluc3BlY3RvclRlc3QuU2hhZGVy
UHJvZ3JhbS5wcm9ncmFtRm9yVHlwZShwcm9ncmFtVHlwZSk7CisgICAgICAgICAgICAgICAgaWYg
KCFzaGFkZXJQcm9ncmFtKQorICAgICAgICAgICAgICAgICAgICB0aHJvdyAiTWlzc2luZyBzaGFk
ZXIgcHJvZ3JhbSI7CisKKyAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxTb3VyY2UgPSBhd2Fp
dCBDYW52YXNBZ2VudC5yZXF1ZXN0U2hhZGVyU291cmNlKHNoYWRlclByb2dyYW0uaWRlbnRpZmll
ciwgc2hhZGVyVHlwZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkVGhyb3cpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5
bmMgKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgQ2FudmFzQWdlbnQudXBk
YXRlU2hhZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlKTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIGF3YWl0IENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFt
LmlkZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSk7CisKKyAgICAgICAgICAgICAgICBsZXQg
bmV3U291cmNlID0gYXdhaXQgQ2FudmFzQWdlbnQucmVxdWVzdFNoYWRlclNvdXJjZShzaGFkZXJQ
cm9ncmFtLmlkZW50aWZpZXIsIHNoYWRlclR5cGUpOworCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwob3JpZ2luYWxTb3VyY2UsIG5ld1NvdXJjZSwg
IlNvdXJjZSBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKKyAgICB9CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFk
ZXIuV2ViR1BVLkNvbXB1dGUuVmFsaWQiLAorICAgICAgICBwcm9ncmFtVHlwZTogV0kuU2hhZGVy
UHJvZ3JhbS5Qcm9ncmFtVHlwZS5Db21wdXRlLAorICAgICAgICBzaGFkZXJUeXBlOiBXSS5TaGFk
ZXJQcm9ncmFtLlNoYWRlclR5cGUuQ29tcHV0ZSwKKyAgICAgICAgc291cmNlOiBgLy8gQ0hBTkdF
RCBDT01QVVRFCitbbnVtdGhyZWFkcygyLCAxLCAxKV0KK2NvbXB1dGUgdm9pZCBjb21wdXRlU2hh
ZGVyKGRldmljZSBmbG9hdFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUwKSwgZmxvYXQzIHRocmVhZElE
IDogU1ZfRGlzcGF0Y2hUaHJlYWRJRCkgeworICAgIGJ1ZmZlclt1aW50KHRocmVhZElELngpXSA9
IGJ1ZmZlclt1aW50KHRocmVhZElELngpXSAqIDIuMDsKK30KK2AsCisgICAgfSk7CisKKyAgICB0
ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLkNvbXB1dGUu
SW52YWxpZCIsCisgICAgICAgIHByb2dyYW1UeXBlOiBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1U
eXBlLkNvbXB1dGUsCisgICAgICAgIHNoYWRlclR5cGU6IFdJLlNoYWRlclByb2dyYW0uU2hhZGVy
VHlwZS5Db21wdXRlLAorICAgICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICAgICAgc2hvdWxk
VGhyb3c6IHRydWUsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZh
cy51cGRhdGVTaGFkZXIuV2ViR1BVLlZlcnRleC5WYWxpZCIsCisgICAgICAgIHByb2dyYW1UeXBl
OiBXSS5TaGFkZXJQcm9ncmFtLlByb2dyYW1UeXBlLlJlbmRlciwKKyAgICAgICAgc2hhZGVyVHlw
ZTogV0kuU2hhZGVyUHJvZ3JhbS5TaGFkZXJUeXBlLlZlcnRleCwKKyAgICAgICAgc291cmNlOiBg
Ly8gQ0hBTkdFRCBWRVJURVgKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVyKGZsb2F0NCBwb3Np
dGlvbiA6IGF0dHJpYnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkgOiBTVl9Qb3NpdGlv
biB7CisgICAgcmV0dXJuIHBvc2l0aW9uOworfQorCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRT
aGFkZXIoZmxvYXQ0IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFyZ2V0IDAgeworICAg
IHJldHVybiBwb3NpdGlvbjsKK30KK2AsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAg
bmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2ViR1BVLlZlcnRleC5JbnZhbGlkIiwKKyAgICAg
ICAgcHJvZ3JhbVR5cGU6IFdJLlNoYWRlclByb2dyYW0uUHJvZ3JhbVR5cGUuUmVuZGVyLAorICAg
ICAgICBzaGFkZXJUeXBlOiBXSS5TaGFkZXJQcm9ncmFtLlNoYWRlclR5cGUuVmVydGV4LAorICAg
ICAgICBzb3VyY2U6ICJJTlZBTElEIiwKKyAgICAgICAgc2hvdWxkVGhyb3c6IHRydWUsCisgICAg
fSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuV2Vi
R1BVLkZyYWdtZW50LlZhbGlkIiwKKyAgICAgICAgcHJvZ3JhbVR5cGU6IFdJLlNoYWRlclByb2dy
YW0uUHJvZ3JhbVR5cGUuUmVuZGVyLAorICAgICAgICBzaGFkZXJUeXBlOiBXSS5TaGFkZXJQcm9n
cmFtLlNoYWRlclR5cGUuRnJhZ21lbnQsCisgICAgICAgIHNvdXJjZTogYC8vIENIQU5HRUQgRlJB
R01FTlQKK3ZlcnRleCBmbG9hdDQgdmVydGV4U2hhZGVyKGZsb2F0NCBwb3NpdGlvbiA6IGF0dHJp
YnV0ZSgwKSwgZmxvYXQgaSA6IGF0dHJpYnV0ZSgxKSkgOiBTVl9Qb3NpdGlvbiB7CisgICAgcmV0
dXJuIHBvc2l0aW9uOworfQorCitmcmFnbWVudCBmbG9hdDQgZnJhZ21lbnRTaGFkZXIoZmxvYXQ0
IHBvc2l0aW9uIDogU1ZfUG9zaXRpb24pIDogU1ZfVGFyZ2V0IDAgeworICAgIHJldHVybiBwb3Np
dGlvbjsKK30KK2AsCisgICAgfSk7CisKKyAgICB0ZXN0KHsKKyAgICAgICAgbmFtZTogIkNhbnZh
cy51cGRhdGVTaGFkZXIuV2ViR1BVLkZyYWdtZW50LkludmFsaWQiLAorICAgICAgICBwcm9ncmFt
VHlwZTogV0kuU2hhZGVyUHJvZ3JhbS5Qcm9ncmFtVHlwZS5SZW5kZXIsCisgICAgICAgIHNoYWRl
clR5cGU6IFdJLlNoYWRlclByb2dyYW0uU2hhZGVyVHlwZS5GcmFnbWVudCwKKyAgICAgICAgc291
cmNlOiAiSU5WQUxJRCIsCisgICAgICAgIHNob3VsZFRocm93OiB0cnVlLAorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKzxwPldlYkdQVSB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0
ZVNoYWRlciBjb21tYW5kLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sCmluZGV4IGU0OWFkMmIzMTNjNzc3NmUx
MDk4ZDA4NWU1NzQ2ZGY2NmFiZjBhM2EuLjdiMGE0Y2ZmOTBkMzM5MmM5M2Y4NDdiNjcwZmFlOTA0
NzZjMDBjZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRl
U2hhZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFk
ZXIuaHRtbApAQCAtMiw3NCArMiwxMiBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2ZXJ0ZXgtc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94
LXZlcnRleCI+Ci0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJm
cmFnbWVudC1zaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotICAgIHByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OwotCi0gICAgdm9pZCBtYWluKHZvaWQpIHsKLSAgICAgICAgZ2xfRnJh
Z0NvbG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOwotICAgIH0KLTwvc2NyaXB0PgogPHNj
cmlwdD4KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgY3JlYXRlUHJvZ3JhbSgid2ViZ2wiKTsKLSAg
ICBsaW5rUHJvZ3JhbSgidmVydGV4LXNoYWRlciIsICJmcmFnbWVudC1zaGFkZXIiKTsKLQotICAg
IHJ1blRlc3QoKTsKLX0KLQogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNhbnZhcy51cGRhdGVTaGFkZXIiKTsKIAotICAg
IGZ1bmN0aW9uIHZhbGlkU291cmNlVGVzdCh7bmFtZSwgc2hhZGVyVHlwZSwgc291cmNlfSkgewot
ICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lLAotICAgICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBsZXQgc2hhZGVyUHJv
Z3JhbSA9IFdJLmNhbnZhc01hbmFnZXIuc2hhZGVyUHJvZ3JhbXNbMF07Ci0gICAgICAgICAgICAg
ICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlamVjdCgiTWlz
c2luZyBzaGFkZXIgcHJvZ3JhbSIpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBsZXQgcHJvZ3JhbUlkID0gc2hhZGVyUHJv
Z3JhbS5pZGVudGlmaWVyOwotCi0gICAgICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hh
ZGVyKHByb2dyYW1JZCwgc2hhZGVyVHlwZSwgc291cmNlKQotICAgICAgICAgICAgICAgIC50aGVu
KCgpID0+IENhbnZhc0FnZW50LnJlcXVlc3RTaGFkZXJTb3VyY2UocHJvZ3JhbUlkLCBzaGFkZXJU
eXBlKSkKLSAgICAgICAgICAgICAgICAudGhlbigoe2NvbnRlbnR9KSA9PiBJbnNwZWN0b3JUZXN0
LmxvZyhjb250ZW50KSkKLSAgICAgICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB2YWxpZFNvdXJjZVRlc3Qo
ewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci52ZXJ0ZXhTaGFkZXJWYWxpZCIs
Ci0gICAgICAgIHNoYWRlclR5cGU6IENhbnZhc0FnZW50LlNoYWRlclR5cGUuVmVydGV4LAotICAg
ICAgICBzb3VyY2U6IGAKLSAgICB2b2lkIG1haW4odm9pZCkgewotICAgICAgICBnbF9Qb3NpdGlv
biA9IHZlYzQoMSwgMiwgMywgNCk7Ci0gICAgfQotYCwKLSAgICB9KTsKLQotICAgIHZhbGlkU291
cmNlVGVzdCh7Ci0gICAgICAgIG5hbWU6ICJDYW52YXMudXBkYXRlU2hhZGVyLmZyYWdtZW50U2hh
ZGVyVmFsaWQiLAotICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNBZ2VudC5TaGFkZXJUeXBlLkZy
YWdtZW50LAotICAgICAgICBzb3VyY2U6IGAKLSAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
LQotICAgIHZvaWQgbWFpbih2b2lkKSB7Ci0gICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4x
LCAwLjIsIDAuMywgMC40KTsKLSAgICB9Ci1gLAotICAgIH0pOwotCiAgICAgc3VpdGUuYWRkVGVz
dENhc2UoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkUHJvZ3Jh
bUlkIiwKKyAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFkZXIuUHJvZ3JhbUlkLkludmFs
aWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgcHJvZ3JhbSBpZGVudGlmaWVycyBz
aG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsK
ICAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZCA9ICJJTlZBTElEX1BST0dSQU1fSUQiOwpAQCAt
ODMsNjIgKzIxLDExIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIH0KICAgICB9KTsKIAot
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkNhbnZhcy51cGRhdGVTaGFk
ZXIuaW52YWxpZFNoYWRlclR5cGUiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgc2hh
ZGVyIHR5cGVzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAotICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgewotICAgICAgICAgICAgbGV0IHNoYWRlclByb2dyYW0gPSBXSS5jYW52YXNNYW5h
Z2VyLnNoYWRlclByb2dyYW1zWzBdOwotICAgICAgICAgICAgaWYgKCFzaGFkZXJQcm9ncmFtKSB7
Ci0gICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9ncmFtIikKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNvbnN0IHNo
YWRlclR5cGUgPSAiSU5WQUxJRF9TSEFERVJfVFlQRSI7Ci0gICAgICAgICAgICBjb25zdCBzb3Vy
Y2UgPSAiSU5WQUxJRF9TT1VSQ0UiOwotICAgICAgICAgICAgQ2FudmFzQWdlbnQudXBkYXRlU2hh
ZGVyKHNoYWRlclByb2dyYW0uaWRlbnRpZmllciwgc2hhZGVyVHlwZSwgc291cmNlLCAoZXJyb3Ip
ID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXJyb3IsICJT
aG91bGQgcHJvZHVjZSBhbiBlcnJvci4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRXJyb3I6ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGludmFsaWRT
b3VyY2VUZXN0KHtuYW1lLCBzaGFkZXJUeXBlLCBzb3VyY2V9KSB7Ci0gICAgICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWUsCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgewotICAgICAgICAgICAgICAgIGxldCBzaGFkZXJQcm9ncmFtID0gV0kuY2FudmFz
TWFuYWdlci5zaGFkZXJQcm9ncmFtc1swXTsKLSAgICAgICAgICAgICAgICBpZiAoIXNoYWRlclBy
b2dyYW0pIHsKLSAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIHNoYWRlciBwcm9n
cmFtIikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIENhbnZhc0FnZW50LnVwZGF0ZVNoYWRlcihzaGFkZXJQcm9ncmFtLmlk
ZW50aWZpZXIsIHNoYWRlclR5cGUsIHNvdXJjZSwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChlcnJvciwgIlNob3VsZCBwcm9kdWNlIGVy
cm9yLiIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXJyb3I6ICIg
KyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgaW52YWxpZFNv
dXJjZVRlc3QoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5pbnZhbGlkVmVy
dGV4U2hhZGVyU291cmNlIiwKLSAgICAgICAgc2hhZGVyVHlwZTogQ2FudmFzQWdlbnQuU2hhZGVy
VHlwZS5WZXJ0ZXgsCi0gICAgICAgIHNvdXJjZTogIklOVkFMSUQiLAotICAgIH0pOwotCi0gICAg
aW52YWxpZFNvdXJjZVRlc3QoewotICAgICAgICBuYW1lOiAiQ2FudmFzLnVwZGF0ZVNoYWRlci5p
bnZhbGlkRnJhZ21lbnRTaGFkZXJTb3VyY2UiLAotICAgICAgICBzaGFkZXJUeXBlOiBDYW52YXNB
Z2VudC5TaGFkZXJUeXBlLkZyYWdtZW50LAotICAgICAgICBzb3VyY2U6ICJJTlZBTElEIiwKLSAg
ICB9KTsKLQogICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQogPC9zY3JpcHQ+
CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci0gICAgPHA+VGVzdCBjb21waWxhdGlv
biBvZiBzaGFkZXJzIGFmdGVyIGJlaW5nIGF0dGFjaGVkIHRvIGEgcHJvZ3JhbSwgd2l0aCBhbmQg
d2l0aG91dCBzeW50YXggZXJyb3JzLjwvcD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
PkNvbW1vbiB0ZXN0cyBmb3IgQ2FudmFzLnVwZGF0ZVNoYWRlciBjb21tYW5kLjwvcD4KIDwvYm9k
eT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNmUxOWUxNTEyM2U0NGFiNzcwMjhjNWRmMjY0OTQyMGE3ZjYyMzllZC4uOGQxZjEwZTBhZTFl
ZTc4MzM0MmUwZTQ4NWJlNGMzNjMzMjdlZTJkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNTAsNyArMTE1MCwxMCBAQCB3ZWJraXQub3JnL2IvMTY4
NDY2IGh0dHAvdGVzdHMvc2VjdXJpdHkvYnlwYXNzaW5nLWNvcnMtY2hlY2tzLWZvci1leHRlbnNp
b24tdXJscwogd2Via2l0Lm9yZy9iLzE5MTAwNSB3ZWJncHUvIFsgU2tpcCBdCiB3ZWJraXQub3Jn
L2IvMTkxMDA1IGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50
Tm9kZXMtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTkxMDA1IGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9n
cmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEwMDUg
aW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogIyBO
byBzdXBwb3J0IGZvciByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MgeWV0CiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDA5MTk3MzViYzA3OWEyMmUxN2ZhNzg3ZmQ4YmM1Yjg4MGE3
NTc2YTguLjMxYmZhOTg0MThmODZiNjA4MmEzMWY1YjBhNzRkYmRlOTA5ZWQ2OGIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NSw3ICs0NSwxMCBAQCB3
ZWJraXQub3JnL2IvMjAwMzA4IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jb250ZW50LW9ic2VydmF0
aW9uL25vbi12aXNpYmxlLWNvbnRlbgogd2ViZ3B1IFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFz
L2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RDbGllbnROb2Rlcy13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3No
YWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogIyBFbmNyeXB0ZWQgTWVk
aWEgRXh0ZW5zaW9ucyBhcmUgbm90IGVuYWJsZWQKIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS8KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkMzQ5
MzJkMWNlYjczNjBiM2RmN2Q0MzA3N2M5NDY0MmRjYWYyYjI5Li5iMWZlNWYwNThhZWQ1ZDY3OWQ2
MGI3ODg0Nzg3YzE5Y2ZlMmQzMzBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9UZXN0RXhwZWN0YXRpb25zCkBAIC00Nyw3ICs0NywxMCBAQCBjc3MtZGFyay1tb2RlIFsgU2tp
cCBdCiB3ZWJncHUgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2Vi
Z3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLXdl
YmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Ut
d2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z3B1Lmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13
ZWJncHUuaHRtbCBbIFNraXAgXQogCiAjIE1lZGlhIFN0cmVhbSBBUEkgdGVzdGluZyBpcyBub3Qg
c3VwcG9ydGVkIGZvciBXSzEgeWV0LgogZmFzdC9tZWRpYXN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYTVjNGRmMDgyZWJjNDFlYTgwZjI5ODU5
YTI2MDhhNzlmZWM0ODFiLi4zNzJiNWJkN2U4YjZhNjA0ZmFmM2NjNzczY2ZhZDQwNjY2ODFjNGQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTc4MSw3
ICsxNzgxLDEwIEBAIHdlYmtpdC5vcmcvYi8xOTA5NzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2hhCiB3ZWJraXQub3JnL2IvMTk5Mjc1
IFsgSGlnaFNpZXJyYSBdIHdlYmdwdSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE5OTI3NSBbIEhp
Z2hTaWVycmEgXSBpbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENsaWVudE5vZGVzLXdlYmdwdS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
MTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNvdXJj
ZS13ZWJncHUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE5OTI3NSBbIEhpZ2hTaWVycmEg
XSBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCit3
ZWJraXQub3JnL2IvMTk5Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52YXMvc2hhZGVy
UHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTk5
Mjc1IFsgSGlnaFNpZXJyYSBdIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS5o
dG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xODk2ODAgcGxhdGZvcm0vbWFjL21lZGlhL2F1
ZGlvLXNlc3Npb24tY2F0ZWdvcnktdmlkZW8tcGF1c2VkLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc1MDNmZjQ4
OWJlMTA0YWZlMzBhMTFjMzU3MDMzOGJlYTE3OTczYzEuLjM2ZDdmY2Y2NzI3OGEyYmE5M2NjMzdh
YzE1MmE2Y2IyOGQyNDhlYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMDAxLDEyICsyMDAxLDEzIEBAIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5n
LXdlYmdsMi1tZW1vcnlMaW1pdC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3JlY29y
ZGluZy13ZWJnbDItc25hcHNob3RzLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVx
dWVzdENvbnRlbnQtd2ViZ2wuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
Q29udGVudC13ZWJnbDIuaHRtbCBbIFNraXAgXQotaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hh
ZGVyU291cmNlLmh0bWwgWyBTa2lwIF0KK2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdFNoYWRlclNv
dXJjZS13ZWJnbC5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0
LXdlYmdsLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z2wyLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdsLmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1h
ZGQtcmVtb3ZlLXdlYmdsMi5odG1sIFsgU2tpcCBdCi1pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJnbC5o
dG1sIFsgU2tpcCBdCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMjIyMjIyMj
IyAgICAgICAgICBFbmQgV2ViR0wgSXNzdWVzICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTQyNDYsNyArNDI0NywxMCBAQCB3
ZWJraXQub3JnL2IvMTkwNTIwIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWFjcm9zcy1z
aGFkb3ctYm91bmRhcmllcy13aXRoLQogd2ViZ3B1IFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFz
L2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RDbGllbnROb2Rlcy13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0U2hhZGVyU291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3No
YWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzE5
MTE5NCBmYXN0L2Jsb2NrL2Jhc2ljL2lubGluZS1jb250ZW50LXdpdGgtZmxvYXRpbmctaW1hZ2Uu
aHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE5MTE5NCBmYXN0L2Jsb2NrL2Jhc2ljL2lu
bGluZS1jb250ZW50LXdpdGgtZmxvYXRpbmctaW1hZ2VzMi5odG1sIFsgRmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhYmQ4
Y2M5YjA4NmFjYmE3NGViMDFiNjI2ZTk1YmIzMzk2YTE4MWI2Li44Mjc1ZDBlZDRkMGVmNWY4YjA4
NTRlMjBmZjhmMmFlODQ1ZmM4YjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5OCw3ICsyOTgsMTAgQEAgd2ViZ2wvd2ViZ2wyLXJl
bmRlcmluZy1jb250ZXh0LW9idGFpbi5odG1sIFsgU2tpcCBdCiB3ZWJncHUgWyBTa2lwIF0KIGlu
c3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGluc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RTaGFkZXJTb3VyY2Utd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIGlu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KK2luc3Bl
Y3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sIFsgU2tpcCBd
CitpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUuaHRtbCBbIFNraXAgXQogCiAj
IFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCBpcyBkaXNhYmxlZAogbWVkaWEvYWlycGxheS10YXJn
ZXQtYXZhaWxhYmlsaXR5Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMmNkMWQxN2I1ZmVjMjBmNjMzNjdhYjJiNDBlNmI3MTI5MjYw
ODczNC4uNjg2MGQ3OGU2MWIyNDU1ODYxZDUxMWNmMDJiNmI1YTBjZjRlYzU2YSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwMiw3ICszMDIsMTAgQEAg
QnVnKFdQRSkganMvc3RyaW5naW1wbC10by1qc3N0cmluZy1vbi1sYXJnZS1zdHJpbmdzLTMuaHRt
bCBbIFNraXAgXQogd2ViZ3B1IFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250
ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnRO
b2Rlcy13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0U2hhZGVy
U291cmNlLXdlYmdwdS5odG1sIFsgU2tpcCBdCiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250
ZXh0LXdlYmdwdS5odG1sIFsgU2tpcCBdCitpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0t
YWRkLXJlbW92ZS13ZWJncHUuaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2NhbnZhcy91cGRhdGVT
aGFkZXItd2ViZ3B1Lmh0bWwgWyBTa2lwIF0KIAogIyBTa2lwcGVkIGR1ZSB0byB1bnRlc3RhYmxl
IERSTSBrZXkgc3lzdGVtLiBDbGVhcktleSBjb3VudGVycGFydHMgYXJlIHRlc3RlZCBpbnN0ZWFk
LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLWNo
ZWNrLWluaXRkYXRhLXR5cGUuaHR0cHMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>