<?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>205434</bug_id>
          
          <creation_ts>2019-12-18 21:56:51 -0800</creation_ts>
          <short_desc>Web Inspector: add instrumentation for showing existing Web Animations</short_desc>
          <delta_ts>2020-04-21 18:54:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206899</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>205791</dependson>
    
    <dependson>206899</dependson>
          <blocked>205827</blocked>
    
    <blocked>210838</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600147</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-18 21:56:51 -0800</bug_when>
    <thetext>I&apos;m thinking we expand the scope of the Canvas Tab and make it a Graphics Tab instead, with four different sections:
 - Canvases (horizontally scrollable)
 - Web Animations
 - CSS Animations
 - CSS Transitions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600148</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-18 21:57:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/28328087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600155</commentid>
    <comment_count>2</comment_count>
      <attachid>386064</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-18 22:36:53 -0800</bug_when>
    <thetext>Created attachment 386064
Patch

Needs tests.  Too tired.  Will write tomorrow :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600156</commentid>
    <comment_count>3</comment_count>
      <attachid>386065</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-18 22:37:13 -0800</bug_when>
    <thetext>Created attachment 386065
[Image] After Patch is applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600157</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-12-18 22:38:16 -0800</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>1600158</commentid>
    <comment_count>5</comment_count>
      <attachid>386066</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-18 22:43:28 -0800</bug_when>
    <thetext>Created attachment 386066
Patch

Minor dark mode adjustments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600390</commentid>
    <comment_count>6</comment_count>
      <attachid>386124</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-19 11:20:57 -0800</bug_when>
    <thetext>Created attachment 386124
Patch

Add a Keyframes section to the Animation panel in the details sidebar of the Graphics Tab that contains a CodeMirror for the CSS style of each keyframe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600516</commentid>
    <comment_count>7</comment_count>
      <attachid>386149</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-19 14:55:02 -0800</bug_when>
    <thetext>Created attachment 386149
Patch

Add tests.\nSend millsecond values from the backend, not seconds.\nFix canvas tests from the changes made to `WI.CanvasManager`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600521</commentid>
    <comment_count>8</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-19 14:59:23 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #7)
&gt; Created attachment 386149 [details]
&gt; Patch
&gt; 
&gt; Add tests.
&gt; Send millsecond values from the backend, not seconds.
&gt; Fix canvas tests from the changes made to `WI.CanvasManager`.
This should&apos;ve been formatted better -.-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600529</commentid>
    <comment_count>9</comment_count>
      <attachid>386154</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-19 15:20:09 -0800</bug_when>
    <thetext>Created attachment 386154
[Image] After Patch is applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600614</commentid>
    <comment_count>10</comment_count>
      <attachid>386176</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-19 20:25:24 -0800</bug_when>
    <thetext>Created attachment 386176
Patch

Switch back to a vertical scrolling list for canvases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600815</commentid>
    <comment_count>11</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-12-20 11:09:23 -0800</bug_when>
    <thetext>Windows build failure:

C:\cygwin\home\buildbot\worker\Windows-EWS\build\Source\WebCore\inspector\agents\InspectorAnimationAgent.h(63,10): error C3668: &apos;WebCore::InspectorAnimationAgent::resolveAnimation&apos;: method with override specifier &apos;override&apos; did not override any base class methods (compiling source file C:\cygwin\home\buildbot\worker\Windows-EWS\build\WebKitBuild\Release\DerivedSources\WebCore\unified-sources\UnifiedSource-84c9f43f-6.cpp) [C:\cygwin\home\buildbot\worker\Windows-EWS\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]


Mac WK1 test failures:

Regressions: Unexpected text-only failures (2)
  inspector/animation/lifecycle-css-animation.html [ Failure ]
  inspector/animation/lifecycle-css-transition.html [ Failure ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600910</commentid>
    <comment_count>12</comment_count>
      <attachid>386176</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-12-20 13:51:12 -0800</bug_when>
    <thetext>Comment on attachment 386176
Patch

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

Finished reviewing the backend changes. Looks great so far.

&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:44
&gt; +                { &quot;name&quot;: &quot;iterations&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },

Nit: iterationCount?

&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:46
&gt; +                { &quot;name&quot;: &quot;iterationDuration&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },

Please include labels for the units. I assume it&apos;s seconds as a double?

&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:47
&gt; +                { &quot;name&quot;: &quot;timingFunction&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },

Is this a free-form string or should it be an enum?

&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:57
&gt; +                { &quot;name&quot;: &quot;offset&quot;, &quot;type&quot;: &quot;number&quot; },

Needs units. Is the range [0,1] or [0, 100]?

&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:59
&gt; +                { &quot;name&quot;: &quot;style&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true }

Ditto: are these enums, free-form, or what?

EDIT: this is a CSS rule body text fragment with multiple property names and values. Please state that.

&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:84
&gt; +            &quot;name&quot;: &quot;requestNode&quot;,

Nit: requestAffectedNode? requestNodeForAnimation? requestNodeForAnimationEffect?

This could probably match the verb of &apos;resolveAnimation&apos; (which I&apos;m more agreeable to using as-is).

Do all animations have a target? Is it associated with the effect or the animation? I&apos;m not sure what the practical difference is, if Effects do not stack into one Animation.

&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:131
&gt; +            &quot;description&quot;: &quot;Dispatched whenever the target of any effect of any animation is changed in any way.&quot;,

Since the target is not a field of Animation or Effect, I&apos;m a little confused (without reading onward) as to what this would be used for. Does this indicate that the node that would be resolved via Animation.resolveNode is now different than before?

&gt; Source/WebCore/animation/KeyframeEffect.cpp:1108
&gt; +    m_shouldRunAccelerated = m_blendingKeyframes.size();

I&apos;d do !!m_blendingKeyframes.size(); Just to make it super obvious.

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:108
&gt; +        return document-&gt;page() == &amp;m_inspectedPage;

Neat!

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:181
&gt; +    result = injectedScript.wrapObject(value, objectGroupName);

V. nice.

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:354
&gt; +    return seconds.milliseconds();

... I see, it&apos;s milliseconds. Why not just seconds? It&apos;s a double, it doesn&apos;t matter either way except milliseconds are harder to read.

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:380
&gt; +    switch (effect-&gt;direction()) {

Since these are 1:1 with protocol enum values, can you extract it to a static helper protocolValueForPlaybackDirection()?

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:396
&gt; +    case FillMode::None:

Ditto (extract it)

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:415
&gt; +

Nit: extra line

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:418
&gt; +        if (is&lt;DeclarativeAnimation&gt;(keyframeEffect.animation())) {

This build method is huge. I think the keyframe payload creation could go into its own helper function, as well as the aforementioned enum conversions.

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:432
&gt; +                    .setOffset(blendingKeyframe.key())

Still not sure what the units are here (for key()/offset)

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:436
&gt; +                    keyframePayload-&gt;setEasing(timingFunction-&gt;cssText());

I see, it&apos;s a CSS timing function (which can be user defined, right?)

&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:441
&gt; +                for (auto cssPropertyId : cssPropertyIds) {

Needs a comment: &quot;The frontend expects a CSS rule body per each keyframe. Synthesize CSS style property text for each property of the keyframe.&quot;

&gt; Source/WebCore/inspector/agents/InspectorDOMAgent.h:184
&gt; +    int pushNodePathToFrontend(ErrorString, Node*);

I think this change could safely go into another patch, but I won&apos;t force it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601034</commentid>
    <comment_count>13</comment_count>
      <attachid>386176</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-20 17:19:44 -0800</bug_when>
    <thetext>Comment on attachment 386176
Patch

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

&gt;&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:44
&gt;&gt; +                { &quot;name&quot;: &quot;iterations&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
&gt; 
&gt; Nit: iterationCount?

That&apos;s much better :)

&gt;&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:46
&gt;&gt; +                { &quot;name&quot;: &quot;iterationDuration&quot;, &quot;type&quot;: &quot;number&quot;, &quot;optional&quot;: true },
&gt; 
&gt; Please include labels for the units. I assume it&apos;s seconds as a double?

Milliseconds, as that&apos;s what the Web Animations API uses.

&gt;&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:47
&gt;&gt; +                { &quot;name&quot;: &quot;timingFunction&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true },
&gt; 
&gt; Is this a free-form string or should it be an enum?

This is a CSS string, like &quot;ease&quot; or &quot;cubic-bezier(...)&quot;.  I&apos;ll add a description describing it as such.

&gt;&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:57
&gt;&gt; +                { &quot;name&quot;: &quot;offset&quot;, &quot;type&quot;: &quot;number&quot; },
&gt; 
&gt; Needs units. Is the range [0,1] or [0, 100]?

It&apos;s a decimal percentage, so [0, 1].

&gt;&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:59
&gt;&gt; +                { &quot;name&quot;: &quot;style&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true }
&gt; 
&gt; Ditto: are these enums, free-form, or what?
&gt; 
&gt; EDIT: this is a CSS rule body text fragment with multiple property names and values. Please state that.

Yes, this is a CSS style declaration.

&gt;&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:84
&gt;&gt; +            &quot;name&quot;: &quot;requestNode&quot;,
&gt; 
&gt; Nit: requestAffectedNode? requestNodeForAnimation? requestNodeForAnimationEffect?
&gt; 
&gt; This could probably match the verb of &apos;resolveAnimation&apos; (which I&apos;m more agreeable to using as-is).
&gt; 
&gt; Do all animations have a target? Is it associated with the effect or the animation? I&apos;m not sure what the practical difference is, if Effects do not stack into one Animation.

I was trying to match the naming of `Canvas.requestNode`, but the semantics are different enough that we should really call it `requestTarget`.  The target (DOM node) is associated with the effect of the animation, both (the target and the effect) of which are nullable.  It is possible for the target of an animation to change after it has been created, hence the `Animation.targetChanged` event.

&gt;&gt; Source/JavaScriptCore/inspector/protocol/Animation.json:131
&gt;&gt; +            &quot;description&quot;: &quot;Dispatched whenever the target of any effect of any animation is changed in any way.&quot;,
&gt; 
&gt; Since the target is not a field of Animation or Effect, I&apos;m a little confused (without reading onward) as to what this would be used for. Does this indicate that the node that would be resolved via Animation.resolveNode is now different than before?

Yes.  See above.

&gt;&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:354
&gt;&gt; +    return seconds.milliseconds();
&gt; 
&gt; ... I see, it&apos;s milliseconds. Why not just seconds? It&apos;s a double, it doesn&apos;t matter either way except milliseconds are harder to read.

This matches the Web Animations API, as all of the duration values are in milliseconds.  I personally would rather use milliseconds as well, as integers (e.g. 400ms) are easier to deal with than decimals (e.g. 0.4s).

&gt;&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:380
&gt;&gt; +    switch (effect-&gt;direction()) {
&gt; 
&gt; Since these are 1:1 with protocol enum values, can you extract it to a static helper protocolValueForPlaybackDirection()?

Sure.

&gt;&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:396
&gt;&gt; +    case FillMode::None:
&gt; 
&gt; Ditto (extract it)

Ditto sure

&gt;&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:418
&gt;&gt; +        if (is&lt;DeclarativeAnimation&gt;(keyframeEffect.animation())) {
&gt; 
&gt; This build method is huge. I think the keyframe payload creation could go into its own helper function, as well as the aforementioned enum conversions.

Sounds good

&gt;&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:436
&gt;&gt; +                    keyframePayload-&gt;setEasing(timingFunction-&gt;cssText());
&gt; 
&gt; I see, it&apos;s a CSS timing function (which can be user defined, right?)

Yes, it is user defined.

&gt;&gt; Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:441
&gt;&gt; +                for (auto cssPropertyId : cssPropertyIds) {
&gt; 
&gt; Needs a comment: &quot;The frontend expects a CSS rule body per each keyframe. Synthesize CSS style property text for each property of the keyframe.&quot;

Good call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601149</commentid>
    <comment_count>14</comment_count>
      <attachid>386313</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-21 22:39:01 -0800</bug_when>
    <thetext>Created attachment 386313
Patch

Addressed Brian&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601621</commentid>
    <comment_count>15</comment_count>
      <attachid>386313</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-12-27 08:34:07 -0800</bug_when>
    <thetext>Comment on attachment 386313
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:178
&gt; +    let canvasIndex = WI._openTabsSetting.value.indexOf(&quot;canvas&quot;);

Nit: please add an expiration date for this code (Summer 2020?)

&gt; Source/WebInspectorUI/UserInterface/Controllers/AnimationManager.js:2
&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.

Nit: 2019

&gt; Source/WebInspectorUI/UserInterface/Controllers/AnimationManager.js:26
&gt; +// FIXME: AnimationManager lacks advanced multi-target support. (Animations per-target)

Here&apos;s the problem with renaming the protocol method to Animation.requestTarget: I can&apos;t tell whether this comment refers to multiple effect targets or multiple Page targets. Calling it something more verbose like .requestEffectTarget may help reduce this semantic overloading.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js:326
&gt; +        return this._idToDOMNode[nodeId] || null;

Okay, but do other callers rely on this returning undefined if the lookup fails?

&gt; Source/WebInspectorUI/UserInterface/Images/Graphics.svg:2
&gt; +&lt;!-- Copyright Â© 2017 Apple Inc. All rights reserved. --&gt;

Nit: 2019

&gt; Source/WebInspectorUI/UserInterface/Main.html:355
&gt; +    &lt;script src=&quot;Models/Collection.js&quot;&gt;&lt;/script&gt;

Nit: ordering is wrong

&gt; Source/WebInspectorUI/UserInterface/Models/Animation.js:2
&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Models/Animation.js:185
&gt; +    requestTarget()

Oh boy 😵</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601786</commentid>
    <comment_count>16</comment_count>
      <attachid>386313</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-29 12:37:47 -0800</bug_when>
    <thetext>Comment on attachment 386313
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:178
&gt;&gt; +    let canvasIndex = WI._openTabsSetting.value.indexOf(&quot;canvas&quot;);
&gt; 
&gt; Nit: please add an expiration date for this code (Summer 2020?)

I think we should keep this for at least a full release, as without this the Canvas Tab could seem to disappear with no replacement for users who haven&apos;t used Web Inspector in a while.  I&apos;ll make this into a FIXME comment with a bug link.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/AnimationManager.js:2
&gt;&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.
&gt; 
&gt; Nit: 2019

Oops :P

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/AnimationManager.js:26
&gt;&gt; +// FIXME: AnimationManager lacks advanced multi-target support. (Animations per-target)
&gt; 
&gt; Here&apos;s the problem with renaming the protocol method to Animation.requestTarget: I can&apos;t tell whether this comment refers to multiple effect targets or multiple Page targets. Calling it something more verbose like .requestEffectTarget may help reduce this semantic overloading.

Good point!  `Animation.requestEffectTarget` makes the most sense and is the most technically accurate too.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js:326
&gt;&gt; +        return this._idToDOMNode[nodeId] || null;
&gt; 
&gt; Okay, but do other callers rely on this returning undefined if the lookup fails?

Not that I could tell.

&gt;&gt; Source/WebInspectorUI/UserInterface/Images/Graphics.svg:2
&gt;&gt; +&lt;!-- Copyright Â© 2017 Apple Inc. All rights reserved. --&gt;
&gt; 
&gt; Nit: 2019

AFAIU, we only update copyright when making major modifications.  Since this is just a rename, I didn&apos;t think it warranted an update, but I don&apos;t really care either way so I&apos;ll update it.

&gt;&gt; Source/WebInspectorUI/UserInterface/Main.html:355
&gt;&gt; +    &lt;script src=&quot;Models/Collection.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; Nit: ordering is wrong

Oops :P

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Animation.js:2
&gt;&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.
&gt; 
&gt; Ditto.

Oops :P

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Animation.js:185
&gt;&gt; +    requestTarget()
&gt; 
&gt; Oh boy 😵

Yeah I see how this could be confusing, especially if we added a `get target()` 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601787</commentid>
    <comment_count>17</comment_count>
      <attachid>386496</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-29 12:48:10 -0800</bug_when>
    <thetext>Created attachment 386496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602007</commentid>
    <comment_count>18</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-31 13:17:05 -0800</bug_when>
    <thetext>(In reply to Brian Burg from comment #11)
&gt; Windows build failure:
&gt; 
&gt; C:\cygwin\home\buildbot\worker\Windows-EWS\build\Source\WebCore\inspector\agents\InspectorAnimationAgent.h(63,10): error C3668: &apos;WebCore::InspectorAnimationAgent::resolveAnimation&apos;: method with override specifier &apos;override&apos; did not override any base class methods (compiling source file C:\cygwin\home\buildbot\worker\Windows-EWS\build\WebKitBuild\Release\DerivedSources\WebCore\unified-sources\UnifiedSource-84c9f43f-6.cpp) [C:\cygwin\home\buildbot\worker\Windows-EWS\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
I have no idea why this is happening.  It builds just fine on all other platforms.  Perhaps there is something funky with the generated output of InspectorBackendDispatchers.h?  Is there any way for me to see the generated output file?

&gt; Mac WK1 test failures:
&gt; 
&gt; Regressions: Unexpected text-only failures (2)
&gt;   inspector/animation/lifecycle-css-animation.html [ Failure ]
&gt;   inspector/animation/lifecycle-css-transition.html [ Failure ]
Apparently, Web Animations are not used for CSS animations/transitions in WK1.  As such, I&apos;ve skipped these tests for mac-wk1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602978</commentid>
    <comment_count>19</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-01-06 02:36:05 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #18)
&gt; (In reply to Brian Burg from comment #11)
&gt; Apparently, Web Animations are not used for CSS animations/transitions in
&gt; WK1.  As such, I&apos;ve skipped these tests for mac-wk1.

That shouldn&apos;t be the case! I filed https://bugs.webkit.org/show_bug.cgi?id=205791 to address that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603189</commentid>
    <comment_count>20</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-01-06 11:58:42 -0800</bug_when>
    <thetext>(In reply to Antoine Quint from comment #19)
&gt; (In reply to Devin Rousso from comment #18)
&gt; &gt; (In reply to Brian Burg from comment #11)
&gt; &gt; Apparently, Web Animations are not used for CSS animations/transitions in
&gt; &gt; WK1.  As such, I&apos;ve skipped these tests for mac-wk1.
&gt; 
&gt; That shouldn&apos;t be the case! I filed
&gt; https://bugs.webkit.org/show_bug.cgi?id=205791 to address that.

And now it&apos;s fixed, so you shouldn&apos;t have to skip your tests on WK1 anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603231</commentid>
    <comment_count>21</comment_count>
      <attachid>386879</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-06 13:01:54 -0800</bug_when>
    <thetext>Created attachment 386879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605219</commentid>
    <comment_count>22</comment_count>
      <attachid>386879</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-01-10 11:43:13 -0800</bug_when>
    <thetext>Comment on attachment 386879
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:303
&gt; +        this._canvasCollection.clear();

I really like this refactor. It did seem kind of strange for the manager to not have a collection of canvas instances and it was being handled by the tab view class.

&gt; Source/WebInspectorUI/UserInterface/Models/Animation.js:75
&gt; +        case WI.Animation.PlaybackDirection.Normal:

I think these should have the optional description to say they are animation playback directions.

&gt; Source/WebInspectorUI/UserInterface/Models/Animation.js:92
&gt; +        case WI.Animation.FillMode.None:

I think these should have the optional description to say they are animation fill modes.

&gt; Source/WebInspectorUI/UserInterface/Models/Animation.js:187
&gt; +        if (!this._requestEffectTargetPromise) {

As we discussed its a little weird to have an infallible promise. That said, I don&apos;t think that there is anything to do in case the AnimationAgent.requestEffectTarget command fails.

&gt; Source/WebInspectorUI/UserInterface/Models/Canvas.js:100
&gt; +            return WI.UIString(&quot;Bitmap Renderer&quot;);

Definitely needs a comment for localization. &quot;Bitmap Renderer is a type of context associated with a &lt;canvas&gt; element&quot; or something.

&gt; Source/WebInspectorUI/UserInterface/Models/Recording.js:156
&gt; +        case Recording.Type.CanvasBitmapRenderer:

Ditto the localization comment. &quot;Bitmap Renderer (Recording Type)&quot;, &quot;Bitmap Renderer&quot;, &quot;A type of canvas recording in the Graphics Tab.&quot;

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationCollectionContentView.js:61
&gt; +    handleRefreshButtonClicked()

Per our discussion, this should go away and instead invoke the normal WI.View needsLayout. This isn&apos;t really performance sensitive as it only draws once in response to user input.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationCollectionContentView.js:100
&gt; +            if (!node || !node.ownerDocument)

Have you checked whether this mouse-driven lookup feels responsive enough when inspecting a device?

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.css:59
&gt; +    content: &quot;\00A0\2014\00A0&quot;; /* &amp;nbsp;&amp;mdash;&amp;nbsp; */;

Fancy. Does it look correct in RTL layout? We try to do something similar with Source Locations but it needed extra care for RTL.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.css:68
&gt; +    opacity: 1;

Is this needed given that it also has a huge focus ring when selected? I would expect the background to change on hover but not the border. Not a big deal either way.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:2
&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.

2020, please

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:160
&gt; +

is squeezeYStart related to the markerHead size? I would have guessed squeezeYStart = markerHeadRadius + markerHeadPadding*2

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:162
&gt; +        const adjustEasingY = 0.5;

This looks good.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:191
&gt; +            addTitle(startDelayElement, WI.UIString(&quot;Start Delay %s&quot;).format(Number.secondsToString(this.representedObject.startDelay / 1000)));

Localizers will need help to find out what this refers to.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:208
&gt; +            addTitle(endDelayElement, WI.UIString(&quot;End Delay %s&quot;).format(Number.secondsToString(this.representedObject.endDelay / 1000)));

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:239
&gt; +                easingPath.setAttribute(&quot;d&quot;, `M 0 ${height + adjustEasingY} C ${x1} ${y1} ${x2} ${y2} ${width} ${adjustEasingY} V ${height + adjustEasingY} Z`);

🥵

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:279
&gt; +        this._refreshSubtitle();

I can&apos;t think of any reason these need to be different than calling .needsLayout(), and it may cut down the number of relayouts if we load a bunch of animations quickly.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:289
&gt; +                const text = WI.UIString(&quot;Selected Animation&quot;);

Nit: add localizer note that this is a label for an animation that&apos;s logged to console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605252</commentid>
    <comment_count>23</comment_count>
      <attachid>386879</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-01-10 12:51:05 -0800</bug_when>
    <thetext>Comment on attachment 386879
Patch

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

r=me, excellent work. Please address smaller items immediately such as localizer comments, other changes such as moving to .needsLayout should come in a followup to minimize breakage.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:40
&gt; +    {

What happens in the case of multiple animations being selected? Is that not supported?

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:82
&gt; +        this._targetRow = new WI.DetailsSectionSimpleRow(WI.UIString(&quot;Target&quot;));

Needs a better localizer comment.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:83
&gt; +        let identitySection = new WI.DetailsSection(&quot;animation-identity&quot;, WI.UIString(&quot;Identity&quot;), [new WI.DetailsSectionGroup([this._nameRow, this._typeRow, this._targetRow])]);

Needs a better localizer comment.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:89
&gt; +        let iterationsGroup = new WI.DetailsSectionGroup([this._iterationCountRow, this._iterationStartRow, this._iterationDurationRow]);

(throughout) needs a better localizer comment.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:112
&gt; +        let backtraceRow = new WI.DetailsSectionRow;

This looks weird in the screenshot. Is each frame clickable? I would have expected more SourceLocation information (file, line number) especially if the frames are not selectable.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:142
&gt; +        this._animation.requestEffectTarget().then((domNode) =&gt; {

Is this a good idea under layout()? Seems it will cause another repaint sometime later even if we have the data. I think it would be best to cache the effect inside set animation() or in response to the effecteUpdated event and make this function synchronous.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:163
&gt; +        for (let section of this._codeMirrorSectionMap.keys())

I think it would be clearer to clean up the old elements we don&apos;t want at the top of the function.

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:178
&gt; +                subtitle.textContent = ` ${emDash} ${keyframe.easing.toString()}`;

Does this look right in RTL layout?

&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:202
&gt; +                createCodeMirrorCubicBezierTextMarkers(codeMirror, range, optionsForType(WI.InlineSwatch.Type.Bezier));

It&apos;s kind of a bummer this won&apos;t be shown for the easing function since that&apos;s in the header. I don&apos;t think it needs to be there other than to save space. What about prepending the easing property name+value to the keyframe&apos;s style text?

&gt; Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.js:86
&gt; +    handleRefreshButtonClicked()

Per previous comment this can just trigger a new layout directly if it&apos;s not going to fetch new data.

&gt; Source/WebInspectorUI/UserInterface/Views/CollectionContentView.js:98
&gt; +        if (item) {

Was this just a latent bug or are we now expecting to pass null to set selectedItem()?

&gt; Source/WebInspectorUI/UserInterface/Views/CollectionContentView.js:100
&gt; +            console.assert(contentView, &quot;Missing contet view for item.&quot;, item);

Nit: content view

&gt; Source/WebInspectorUI/UserInterface/Views/CollectionContentView.js:304
&gt; +            this._selectItem(null);

I see, now we deselect the item if the hit test failed.

&gt; Source/WebInspectorUI/UserInterface/Views/GraphicsOverviewContentView.js:61
&gt; +        if (!WI.animationManager.supported) {

I don&apos;t understand. Don&apos;t we always want these canvas related navigation items? Or is this supposed to be items from the animation overview content view?

EDIT: Oh, I see, if Animations are not supported then there are no sub-sections in the main content area and [ ] Record First [n] Frames needs to be added to the main bar in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611644</commentid>
    <comment_count>24</comment_count>
      <attachid>386879</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-27 15:07:44 -0800</bug_when>
    <thetext>Comment on attachment 386879
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationCollectionContentView.js:100
&gt;&gt; +            if (!node || !node.ownerDocument)
&gt; 
&gt; Have you checked whether this mouse-driven lookup feels responsive enough when inspecting a device?

It&apos;s never been a problem with canvases, and they can potentially highlight multiple nodes at once (e.g. `-webkit-canvas` CSS canvas clients).  This is effectively the same logic.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.css:59
&gt;&gt; +    content: &quot;\00A0\2014\00A0&quot;; /* &amp;nbsp;&amp;mdash;&amp;nbsp; */;
&gt; 
&gt; Fancy. Does it look correct in RTL layout? We try to do something similar with Source Locations but it needed extra care for RTL.

I tested it using our debug setting, but not changing the system language.  It looked fine with our debug setting.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.css:68
&gt;&gt; +    opacity: 1;
&gt; 
&gt; Is this needed given that it also has a huge focus ring when selected? I would expect the background to change on hover but not the border. Not a big deal either way.

This matches what we do with the navigation bar in the canvas cards.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:160
&gt;&gt; +
&gt; 
&gt; is squeezeYStart related to the markerHead size? I would have guessed squeezeYStart = markerHeadRadius + markerHeadPadding*2

Oh lol good point 😂

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:40
&gt;&gt; +    {
&gt; 
&gt; What happens in the case of multiple animations being selected? Is that not supported?

No, that is not supported.  This is just our usual logic for details sidebars ¯\_(ツ)_/¯

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:112
&gt;&gt; +        let backtraceRow = new WI.DetailsSectionRow;
&gt; 
&gt; This looks weird in the screenshot. Is each frame clickable? I would have expected more SourceLocation information (file, line number) especially if the frames are not selectable.

Yes, they are all clickable.  The screenshot is a bad example (sorry) because it was created by a Console evaluation (also in the screenshot), not from some script.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:142
&gt;&gt; +        this._animation.requestEffectTarget().then((domNode) =&gt; {
&gt; 
&gt; Is this a good idea under layout()? Seems it will cause another repaint sometime later even if we have the data. I think it would be best to cache the effect inside set animation() or in response to the effecteUpdated event and make this function synchronous.

The main reason why we use the `Promise` approach is that something in the UI has to be the first caller, as the effect target is never sent to the frontend.  I don&apos;t want to eagerly fetch the effect target, as we may not need that info (such as if the Graphics Tab isn&apos;t even visible).  A better solution might be to not use a `Promise`, and instead take a callback function directly so that it can be called synchronously if the value is already there.  That way, the majority of calls won&apos;t trigger another layout, but some still might instead of all.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:178
&gt;&gt; +                subtitle.textContent = ` ${emDash} ${keyframe.easing.toString()}`;
&gt; 
&gt; Does this look right in RTL layout?

It looks fine to me using the debug setting.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:202
&gt;&gt; +                createCodeMirrorCubicBezierTextMarkers(codeMirror, range, optionsForType(WI.InlineSwatch.Type.Bezier));
&gt; 
&gt; It&apos;s kind of a bummer this won&apos;t be shown for the easing function since that&apos;s in the header. I don&apos;t think it needs to be there other than to save space. What about prepending the easing property name+value to the keyframe&apos;s style text?

That could be confusing, as the style text could itself contain a `transition-timing-function` or `animation-timing-function` property.  I put it in the header not primarily as a way to save space, but more to avoid this confusion.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/CollectionContentView.js:98
&gt;&gt; +        if (item) {
&gt; 
&gt; Was this just a latent bug or are we now expecting to pass null to set selectedItem()?

Yes, we can now pass `null` as a way to deselect.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/CollectionContentView.js:304
&gt;&gt; +            this._selectItem(null);
&gt; 
&gt; I see, now we deselect the item if the hit test failed.

Yup!

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/GraphicsOverviewContentView.js:61
&gt;&gt; +        if (!WI.animationManager.supported) {
&gt; 
&gt; I don&apos;t understand. Don&apos;t we always want these canvas related navigation items? Or is this supposed to be items from the animation overview content view?
&gt; 
&gt; EDIT: Oh, I see, if Animations are not supported then there are no sub-sections in the main content area and [ ] Record First [n] Frames needs to be added to the main bar in that case.

Yup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611645</commentid>
    <comment_count>25</comment_count>
      <attachid>388923</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-27 15:10:14 -0800</bug_when>
    <thetext>Created attachment 388923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612035</commentid>
    <comment_count>26</comment_count>
      <attachid>389028</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-28 10:22:36 -0800</bug_when>
    <thetext>Created attachment 389028
Patch

Add debug logging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612098</commentid>
    <comment_count>27</comment_count>
      <attachid>389047</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-28 11:59:05 -0800</bug_when>
    <thetext>Created attachment 389047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612106</commentid>
    <comment_count>28</comment_count>
      <attachid>389049</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-28 12:26:53 -0800</bug_when>
    <thetext>Created attachment 389049
Patch

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612334</commentid>
    <comment_count>29</comment_count>
      <attachid>389108</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-28 23:20:27 -0800</bug_when>
    <thetext>Created attachment 389108
[Patch] test modifying JavaScriptCore/inspector/scripts for win

Modify &apos;Source/JavaScriptCore/inspector/scripts/*&apos; so that it generates a fresh build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612516</commentid>
    <comment_count>30</comment_count>
      <attachid>389152</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-29 09:53:47 -0800</bug_when>
    <thetext>Created attachment 389152
[Patch] test modifying WTF/wtf/Assertions.h for win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612600</commentid>
    <comment_count>31</comment_count>
      <attachid>389049</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-29 12:01:14 -0800</bug_when>
    <thetext>Comment on attachment 389049
Patch

My suspicion is that the windows build failure can be solved by a clean build, which isn&apos;t possible to do via bugzilla.  The build failure suggests that &apos;DerivedSources/JavaScript/inspector/InspectorProtocolObjects.h&apos; is not being regenerated correctly, which is why only _some_ of the `override` functions added to `WebCore::InspectorAnimationAgent` are erroring (e.g. `startTracking` vs `resolveAnimation`), as well as why only _some_ values used from `Inspector::Protocol::Animation` are erroring (e.g. `Inspector::Protocol::Animation::AnimationState` vs `Inspector::Protocol::Animation::FillMode`).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612601</commentid>
    <comment_count>32</comment_count>
      <attachid>389049</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-29 12:01:51 -0800</bug_when>
    <thetext>Comment on attachment 389049
Patch

Oh wait oops there&apos;s a test expectation to update now that &lt;https://webkit.org/b/206899&gt; landed 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612604</commentid>
    <comment_count>33</comment_count>
      <attachid>389170</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-29 12:17:01 -0800</bug_when>
    <thetext>Created attachment 389170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612678</commentid>
    <comment_count>34</comment_count>
      <attachid>389170</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-29 14:22:56 -0800</bug_when>
    <thetext>Comment on attachment 389170
Patch

Rejecting attachment 389170 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 389170, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
ews/CanvasSidebarPanel.js
patching file Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.css
rm &apos;Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.css&apos;
patching file Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js
rm &apos;Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js&apos;
patching file Source/WebInspectorUI/UserInterface/Views/CollectionContentView.css
patching file Source/WebInspectorUI/UserInterface/Views/CollectionContentView.js
patching file Source/WebInspectorUI/UserInterface/Views/ContentView.js
patching file Source/WebInspectorUI/UserInterface/Views/DetailsSectionSimpleRow.js
patching file Source/WebInspectorUI/UserInterface/Views/GraphicsOverviewContentView.css
patching file Source/WebInspectorUI/UserInterface/Views/GraphicsOverviewContentView.js
patching file Source/WebInspectorUI/UserInterface/Views/GraphicsTabContentView.css
patching file Source/WebInspectorUI/UserInterface/Views/GraphicsTabContentView.js
patching file Source/WebInspectorUI/UserInterface/Views/Main.css
patching file Source/WebInspectorUI/UserInterface/Views/RecordingContentView.css
patching file Source/WebInspectorUI/UserInterface/Views/ResourceCollectionContentView.css
patching file Source/WebInspectorUI/UserInterface/Views/ResourceCollectionContentView.js
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/inspector/animation/effectChanged-expected.txt
patching file LayoutTests/inspector/animation/effectChanged.html
patching file LayoutTests/inspector/animation/lifecycle-css-animation-expected.txt
patching file LayoutTests/inspector/animation/lifecycle-css-animation.html
patching file LayoutTests/inspector/animation/lifecycle-css-transition-expected.txt
patching file LayoutTests/inspector/animation/lifecycle-css-transition.html
patching file LayoutTests/inspector/animation/lifecycle-web-animation-expected.txt
patching file LayoutTests/inspector/animation/lifecycle-web-animation.html
patching file LayoutTests/inspector/animation/resolveAnimation-expected.txt
patching file LayoutTests/inspector/animation/resolveAnimation.html
patching file LayoutTests/inspector/animation/resources/lifecycle-utilities.js
patching file LayoutTests/inspector/animation/targetChanged-expected.txt
patching file LayoutTests/inspector/animation/targetChanged.html
patching file LayoutTests/inspector/canvas/context-attributes.html
patching file LayoutTests/inspector/canvas/create-context-webgpu.html
patching file LayoutTests/inspector/canvas/extensions.html
patching file LayoutTests/inspector/canvas/memory.html
patching file LayoutTests/inspector/canvas/recording.html
patching file LayoutTests/inspector/canvas/requestClientNodes.html
patching file LayoutTests/inspector/canvas/requestContent-2d.html
patching file LayoutTests/inspector/canvas/requestContent-bitmaprenderer.html
patching file LayoutTests/inspector/canvas/requestContent-webgl.html
patching file LayoutTests/inspector/canvas/requestContent-webgl2.html
patching file LayoutTests/inspector/canvas/requestNode.html
patching file LayoutTests/inspector/canvas/resolveContext-2d.html
patching file LayoutTests/inspector/canvas/resolveContext-bitmaprenderer.html
patching file LayoutTests/inspector/canvas/resolveContext-webgl.html
patching file LayoutTests/inspector/canvas/resolveContext-webgl2.html
patching file LayoutTests/inspector/canvas/resolveContext-webgpu.html
patching file LayoutTests/inspector/canvas/resources/create-context-utilities.js
patching file LayoutTests/inspector/canvas/resources/recording-utilities.js
patching file LayoutTests/inspector/canvas/resources/shaderProgram-utilities-webgl.js
patching file LayoutTests/inspector/canvas/resources/shaderProgram-utilities-webgpu.js
patching file LayoutTests/inspector/canvas/setRecordingAutoCaptureFrameCount.html
patching file LayoutTests/inspector/canvas/shaderProgram-add-remove-webgpu.html
patching file LayoutTests/inspector/canvas/updateShader-webgpu-sharedVertexFragment.html
patching file LayoutTests/inspector/unit-tests/test-harness-expect-functions-expected.txt
patching file LayoutTests/inspector/unit-tests/test-harness-expect-functions.html

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From git://git.webkit.org/WebKit
   e110b9e0de2..70a545afe2e  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 255380 = e110b9e0de226ce9b36848479e11e6aa48a27847
r255381 = c500666fd0e34bf281fc4b2df948ba89bf9c2e84
r255382 = e3f7f0f52a0ff209edb9ff506247ecc6e27917be
r255383 = 0071f13e56d8e5b774c7a9bbb2d09f3d16fedbbc
r255384 = 70a545afe2e24be94b9af1d18bf1b77b9a6c76eb
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/13313584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612687</commentid>
    <comment_count>35</comment_count>
      <attachid>389188</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-01-29 14:34:34 -0800</bug_when>
    <thetext>Created attachment 389188
Patch

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612738</commentid>
    <comment_count>36</comment_count>
      <attachid>389188</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-29 15:46:22 -0800</bug_when>
    <thetext>Comment on attachment 389188
Patch

Clearing flags on attachment: 389188

Committed r255396: &lt;https://trac.webkit.org/changeset/255396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612739</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-29 15:46:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386064</attachid>
            <date>2019-12-18 22:36:53 -0800</date>
            <delta_ts>2019-12-18 22:43:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20191218223652.patch</filename>
            <type>text/plain</type>
            <size>244283</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVlMDk1NjRmNzBiZmYwNjI4MWY4NDNkNTQ5YTBk
YjdjM2FjM2RiZGUuLjlmNGM4OWUwZDAxZDg3ODljOTk2ODgyNWY4MGJlZTVjNzkzNDc3YWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTE4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAxOS0xMi0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIDhCaXQgSlNSb3BlU3RyaW5nIGNhbiBjb250
YWluIDE2Qml0IHN0cmluZyBpbiBpdHMgcm9wZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA3NTEwYzQ1NDY1MDhj
N2FjMzgxMTVlZWMxMDFmZTAwMTliYjZjOGQuLjQ2ZDk4YTBkYjU5OTQwMTA3MmIyOTFiMmEzOTBk
ZjFiZjc2Mjk5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAxOS0xMi0xOCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBp
bnN0cnVtZW50aW5nIHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2Vs
bCBhcworICAgICAgICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVy
IG9iamVjdCBhbmQgdGhlIHRhcmdldCBET00gbm9kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
KE9PUFMhKS4KKworICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoKKyAgICAgICAg
KiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1h
dGlvbjo6aW5zdGFuY2VzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246
Omluc3RhbmNlc011dGV4KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5nZSk6CisgICAgICAgICog
YW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRp
b246OmNyZWF0ZSk6CisgICAgICAgICogYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVHJhbnNpdGlvbjo6Y3JlYXRlKToKKworICAgICAgICAqIGFuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6
OnBhcnNlZEtleWZyYW1lcyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVFZmZlY3Q6OmJsZW5kaW5nS2V5ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdDo6aGFzQmxlbmRpbmdLZXlmcmFtZXMgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKToKKyAgICAg
ICAgUHJvdmlkZSBhIHdheSB0byBhY2Nlc3MgdGhlIGxpc3Qgb2Yga2V5ZnJhbWVzLgorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRh
cmdldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZElt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRX
ZWJBbmltYXRpb25FZmZlY3RJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBs
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwpOiBEZWxldGVk
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50
czo6c2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KTogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
dHJ1bWVudGluZ0FnZW50czo6cmVzZXQpOgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBbmltYXRpb25BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVl
c3ROb2RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6cmVzb2x2ZUFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpmcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2Nv
bFZhbHVlRm9yU2Vjb25kcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YXNzZXJ0QW5pbWF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6Ymlu
ZEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OnVuYmluZEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNldCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVz
aE5vZGVUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpx
dWVyeVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
OjpzZXROb2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0
T3V0ZXJIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8p
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRl
bmQpOgorICAgICAgICBBZGQgYW4gb3ZlcmxvYWQgZm9yIGBwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
YCB0aGF0IGV4cG9zZXMgYW4gYEVycm9yU3RyaW5nYC4KKwogMjAxOS0xMi0xNyAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBtYWNDYXRhbHlzdDogQ3Vy
c29yIHNob3VsZCB1cGRhdGUgb24gbW91c2UgbW92ZW1lbnQgYW5kIHN0eWxlIGNoYW5nZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMGFkMjM2NTU2NmU1MzU4MWRlNDJkOGY2MzZiNTM2ZDQ0
MGY3ZTM3MC4uYzMxOTdiMzcxZjlhNWNiNWJjOGEwZDhjYjFlMzNiNWUzMTllNmM4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEzIEBACisyMDE5LTEyLTE4ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQg
aW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRp
b25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZ2V0IGRvbWFpbnMpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYWN0aXZhdGVFeHRyYURvbWFpbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBzdXBwb3J0ZWQpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uQ29sbGVjdGlv
bkZvclR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZW5hYmxl
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3Vy
Y2VEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9u
T2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5p
bWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJv
dG90eXBlLmVmZmVjdENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2Vy
dmVyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRp
b25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKTogQWRkZWQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLm9iamVjdElzUmVxdWlyZWRUeXBlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmFuaW1hdGlvbkNvbGxlY3Rp
b25Gb3JUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0
ZW1BZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVt
UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVt
c0NsZWFyZWQpOgorICAgICAgICBTaW1pbGFyIHRvIGBXSS5SZXNvdXJjZUNvbGxlY3Rpb25gLCBj
cmVhdGUgYSBzdWJjbGFzcyBvZiBgV0kuQ29sbGVjdGlvbmAgdGhhdCBtYWludGFpbnMgaXQncwor
ICAgICAgICBvd24gc3ViLWBXSS5BbmltYXRpb25Db2xsZWN0aW9uYHMgZm9yIGVhY2ggdHlwZSBv
ZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
QW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbik6CisgICAgICAgIChX
SS5BbmltYXRpb24uZnJvbVBheWxvYWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlO
YW1lRm9yQW5pbWF0aW9uVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JQbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JGaWxsTW9kZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFt
ZU51bWJlcnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9u
SWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYmFja3RyYWNlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgc3RhcnREZWxheSk6CisgICAgICAgIChXSS5B
bmltYXRpb24ucHJvdG90eXBlLmdldCBlbmREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24u
cHJvdG90eXBlLmdldCBpdGVyYXRpb25zKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuZ2V0IGl0ZXJhdGlvblN0YXJ0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUu
Z2V0IGl0ZXJhdGlvbkR1cmF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUu
Z2V0IHRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0
IHBsYXliYWNrRGlyZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0
IGZpbGxNb2RlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGtleWZyYW1l
cyk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnJlcXVlc3ROb2RlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b24ucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS5fdXBkYXRlRWZmZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1Jl
bW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9u
KTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29u
dGVudFZpZXcuanM6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcy4KKyAgICAgICAgKFdJLkdyYXBoaWNz
VGFiQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy50YWJJ
bmZvKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuaXNUYWJBbGxvd2VkKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmdldCB0eXBlKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dSZXByZXNl
bnRlZE9iamVjdCk6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5w
cm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkdyYXBoaWNz
VGFiQ29udGVudFZpZXcucHJvdG90eXBlLmNsb3NlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIChX
SS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0
bGluZVNlbGVjdGlvbkRpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3M6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3Mu
CisgICAgICAgIFJlbmFtZSB0aGUgQ2FudmFzIFRhYiB0byBHcmFwaGljcyBUYWIgYW5kIGRpc3Bs
YXkgZm91ciBzZWN0aW9uczoKKyAgICAgICAgIC0gQ2FudmFzZXMKKyAgICAgICAgIC0gV2ViIEFu
aW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIFRyYW5z
aXRpb25zCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5l
bC5qczoKKyAgICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuY2FuU2hvd1Jl
cHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgT25seSBhcHBlYXIgaWYgYSBgV0kuQ2FudmFzYCBv
ciBgV0kuUmVjb3JkaW5nYCBpcyBzZWxlY3RlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVj
dHMpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5n
ZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuR3Jh
cGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZv
ckRyYWdFdmVudCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmRyb3Bab25lSGFuZGxlRHJvcCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTaG93
R3JpZEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKToKKyAgICAg
ICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUltcG9y
dEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1D
aGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENo
YW5nZSk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
Ll9oYW5kbGVDbGljayk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3Jh
cGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmll
dyA+IHNlY3Rpb24pOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+
IHNlY3Rpb246bm90KDpmaXJzdC1jaGlsZCkpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFw
aGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVh
ZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9u
ID4gLmhlYWRlciA+IGgxKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbi5jYW52YXMgPiAuY29udGVudCA+
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
Z3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmNvbnRlbnQgPiAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldzptYXRjaGVzKDo6YmVmb3JlLCA6OmFmdGVyKSk6CisgICAgICAgICguY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250
ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNv
bG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uID4gLmhlYWRlcik6CisgICAgICAgIEFkZCBzdGlja3kgaGVhZGVycyBmb3IgZWFjaCBvZiB0
aGUgc2VjdGlvbnMgZGVzY3JpYmVkIGFib3ZlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNr
ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVu
dFZpZXdNb3VzZUVudGVyKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOiBB
ZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24pOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qczogQWRk
ZWQuCisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db250ZW50Vmlldy5nZXQgcHJldmlld0hlaWdodCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2l6ZURpZENoYW5nZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFN1YnRpdGxlKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZp
ZXcuYWRkVGl0bGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
Ll9yZWZyZXNoUHJldmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuX2hhbmRsZUVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLl9oYW5kbGVUYXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25D
b250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250
ZW50Vmlldy5jc3M6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24pOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24uc2VsZWN0ZWQpOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6CisgICAgICAgICguY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5v
dCg6ZW1wdHkpOjpiZWZvcmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IC5wcmV2aWV3ID4gc3ZnKToKKyAgICAgICAgKGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2Zyk6CisgICAgICAgICguY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGgpOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3Rp
dmUgY2lyY2xlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcg
PiBzdmcgPiAuYWN0aXZlIGxpbmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiAucHJldmlldyA+IHNwYW4pOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVt
ZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRp
dGxlKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6CisgICAg
ICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IHN2Zyk6CisgICAgICAgIFZpc3VhbGl6ZSB0aGUgc3RhcnQvZW5kIGRlbGF5IGFu
ZCBrZXlmcmFtZXMgb2YgdGhlIGdpdmVuIGFuaW1hdGlvbiBhcyBhIHNlcmllcyBvZiBiZXppZXIK
KyAgICAgICAgY3VydmVzIHNlcGFyYXRlZCBieSBtYXJrZXJzLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6CisgICAgICAgIChX
SS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNldCBh
bmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90
b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJh
clBhbmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24pOgorICAgICAgICAo
V0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hFZmZlY3RT
ZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90
eXBlLl9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCk6
CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFu
ZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIFNob3cgY29sbGVjdGVkIGluZm9y
bWF0aW9uIGFib3V0IHRoZSBzZWxlY3RlZCBhbmltYXRpb24sIGl0cyBlZmZlY3QsIGFuZCBpdHMg
dGFyZ2V0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5h
Z2VyLmpzOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlcik6CisgICAgICAgIChXSS5DYW52YXNN
YW5hZ2VyLnByb3RvdHlwZS5nZXQgY2FudmFzQ29sbGVjdGlvbik6IEFkZGVkLgorICAgICAgICAo
V0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuZGlzYWJsZSk6CisgICAgICAgIChXSS5DYW52YXNN
YW5hZ2VyLnByb3RvdHlwZS5jYW52YXNBZGRlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2Vy
LnByb3RvdHlwZS5jYW52YXNSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJv
dG90eXBlLl9zYXZlUmVjb3JkaW5ncyk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdl
ci5wcm90b3R5cGUuX21haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgIChXSS5DYW52YXNN
YW5hZ2VyLnByb3RvdHlwZS5nZXQgY2FudmFzZXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2Fu
dmFzTWFuYWdlci5wcm90b3R5cGUuZ2V0IHNoYWRlclByb2dyYW1zKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9yZW1vdmVDYW52YXMpOiBEZWxldGVkLgor
ICAgICAgICBSYXRoZXIgdGhhbiBoYXZlIHRoZSBgV0kuQ2FudmFzVGFiQ29udGVudFZpZXdgIG1h
aW5haW4gdGhlIGBXSS5DYW52YXNDb2xsZWN0aW9uYCBhbmQgaGF2ZSB0bworICAgICAgICBsaXN0
ZW4gZm9yIGV2ZW50cyBmcm9tIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAsIGp1c3QgaGF2ZSB0aGUg
YFdJLkNhbnZhc01hbmFnZXJgIGhvbGQgb24gdG8KKyAgICAgICAgaXQgaW5zdGVhZCBhbmQgcHJv
dmlkZSBhIGdldHRlciBmb3IgaXQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90
eXBlLmdldCBuYXZpZ2F0aW9uSXRlbXMpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAo
V0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdBZGRlZCk6
CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50
Vmlld1JlbW92ZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90
b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5w
cm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuX2FkZFNhdmVkUmVjb3JkaW5nKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmhpZGRlbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgX2l0ZW1NYXJnaW4pOiBEZWxl
dGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3Jl
ZnJlc2hQcmV2aWV3cyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9zaG93R3JpZEJ1dHRv
bkNsaWNrZWQpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuX3VwZGF0ZVNob3dJbWFnZUdyaWQpOiBEZWxldGVkLgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3M6CisgICAgICAg
ICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyk6CisgICAgICAgICguY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzKToKKyAgICAgICAgKEBtZWRp
YSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3KTogRGVsZXRlZC4KKyAgICAgICAgU3VwcG9ydCBiZWluZyBhYmxlIHRvIGxheW91dCBhcyBh
IHZlcnRpY2FsbHkgb3IgaG9yaXpvbnRhbGx5IHNjcm9sbGluZyBsaXN0LgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNh
bnZhc0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFz
Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KTog
QWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVI
YW5kbGVEcm9wKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5
cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5
cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLl9w
b3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgIChXSS5DYW52
YXNDb250ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRo
ZSAiTG9nIENhbnZhcyBDb250ZXh0IiB0byBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgY2FudmFz
IGVsZW1lbnQgYnV0dG9uIGNvbnRleHQgbWVudS4KKyAgICAgICAgRHJpdmUtYnk6IGFkZCBhIGBX
SS5Ecm9wWm9uZVZpZXdgIGZvciB3aGVuIHJlY29yZGluZyBKU09OIGZpbGVzIGFyZSBkcmFnZ2Vk
IG9uIHRvcC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZp
ZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBhbGwgc2Vs
ZWN0b3JzIHNpbmNlIHRoZSBDYW52YXMgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25D
b250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVkLgorICAgICAgICAo
V0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0ZWRJdGVtKTogQWRk
ZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmFkZENvbnRl
bnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLnJlbW92ZUNvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLnNob3dDb250ZW50UGxhY2Vob2xkZXIpOgorICAgICAgICAoV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAg
KFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEl0ZW0pOgorICAgICAg
ICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2spOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0U2VsZWN0
ZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rp
b25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24pOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVz
c2FnZS10ZXh0LXZpZXcpKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rp
b24gLnJlc291cmNlLmltYWdlIGltZyk6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3
LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZzpob3Zlcik6IERlbGV0ZWQuCisgICAgICAg
IFdoZW4gc2VsZWN0aW9uIGlzIGVuYWJsZWQsIGNsaWNraW5nIG91dHNpZGUgb2YgYW55IG9mIHRo
ZSBjb250ZW50IHZpZXdzIHNob3VsZCBkaXNtaXNzIHRoZQorICAgICAgICBjdXJyZW50IHNlbGVj
dGlvbi4gQ2xpZW50cyBzaG91bGQgYWxzbyBiZSBhYmxlIHRvIGdldCB0aGUgY3VycmVudGx5IHNl
bGVjdGVkIGl0ZW0uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0
aW9uU2ltcGxlUm93LmpzOgorICAgICAgICAoV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cucHJv
dG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAgIEVuc3VyZSB0aGF0IGAwYCBpcyBjb25zaWRlcmVk
IGFzIGEgdmFsaWQgdmFsdWUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5q
czoKKyAgICAgICAgKFdJLmxvYWRlZCk6CisgICAgICAgIChXSS5jb250ZW50TG9hZGVkKToKKyAg
ICAgICAgKFdJLnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JSZXByZXNlbnRlZE9iamVjdCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNv
bnRlbnRWaWV3LmNyZWF0ZUZyb21SZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIChXSS5Db250
ZW50Vmlldy5pc1ZpZXdhYmxlKToKKyAgICAgICAgQWxsb3cgYFdJLkFuaW1hdGlvbmAgdG8gYmUg
dmlld2FibGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzOgorICAg
ICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwKTogQWRkZWQuCisgICAgICAgICgubmF2aWdhdGlv
bi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIpOiBBZGRlZC4KKyAgICAgICAgKC5uYXZpZ2F0
aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtKTogQWRkZWQuCisgICAgICAg
ICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwKTogRGVsZXRlZC4KKyAg
ICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRp
b24tYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlv
bi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0pOiBEZWxldGVkLgorICAgICAgICBB
bGxvdyBgV0kuY3JlYXRlTmF2aWdhdGlvbkl0ZW1IZWxwYCB0byBiZSB1c2VkIGluZGVwZW5kZW50
bHkgb2YgYFdJLmNyZWF0ZU1lc3NhZ2VUZXh0Vmlld2AuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanM6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnBy
b3RvdHlwZS5ub2RlRm9ySWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
VGltZWxpbmVNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlw
ZS5hbmltYXRpb25UcmFja2luZ1VwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanM6CisgICAgICAgIChXSS5BdWRpdFRlc3RDYXNlUmVz
dWx0LmFzeW5jIGZyb21QYXlsb2FkKToKKyAgICAgICAgQWRkIGEgZmFsbGJhY2sgc28gY2FsbGVy
cyBkb24ndCBuZWVkIHRvLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlJlc291cmNlQ29sbGVjdGlv
bkNvbnRlbnRWaWV3KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcucmVzb3VyY2Ut
Y29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWcpOiBBZGRlZC4KKyAgICAgICAgKC5jb250
ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIp
OiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IG1vdmUgdGhlc2Ugc3R5bGVzIHRvIHRoZSByaWdo
dCBmaWxlIGFuZCBtYWtlIHRoZW0gbW9yZSBzcGVjaWZpYy4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTW9kZWxzL0NhbnZhcy5qczoKKyAgICAgICAgKFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZv
ckNvbnRleHRUeXBlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcu
anM6CisgICAgICAgIChXSS5SZWNvcmRpbmcuZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBlKTog
QWRkZWQuCisgICAgICAgIERyaXZlLWJ5OiBmaXggbG9jYWxpemVkIHN0cmluZ3MuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzczoKKyAgICAg
ICAgRHJpdmUtYnk6IGRyb3AgYDpub3QoLnRhYilgIGZyb20gYWxsIHNlbGVjdG9ycyBzaW5jZSB0
aGUgUmVjb3JkaW5nIFRhYiBkb2Vzbid0IGV4aXN0IGFueW1vcmUuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFw
aGljcy5zdmc6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvQ2FudmFzLnN2Zy4KKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qczoKKyAgICAgICAgKFdJLmxvYWRl
ZCk6CisKIDIwMTktMTItMTEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogYWRkIFRhYk5hdmlnYXRpb24gZGlhZ25vc3RpYyBldmVudCBhbmQg
cmVsYXRlZCBob29rcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9wcm90b2NvbC9BbmltYXRpb24uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KaW5kZXggYmVhZjhkZTI4YWM3NTNlMzdlZjJiZTg5
YzAxZmNiMGJkNTNkYWZiYi4uMjQyNGYzOTU1NzI1MWM5MGU5YzBkY2FmMDUyN2JiY2EzZTQ4OWMx
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9B
bmltYXRpb24uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0FuaW1hdGlvbi5qc29uCkBAIC0xNCw2ICsxNCw1MSBAQAogICAgICAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKICAgICAgICAgICAgICJlbnVtIjogWyJyZWFkeSIsICJkZWxheWVkIiwgImFj
dGl2ZSIsICJjYW5jZWxlZCIsICJkb25lIl0KICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImlkIjogIlBsYXliYWNrRGlyZWN0aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0
cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9ybWFsIiwgInJldmVyc2UiLCAiYWx0ZXJu
YXRlIiwgImFsdGVybmF0ZS1yZXZlcnNlIl0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImlkIjogIkZpbGxNb2RlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisg
ICAgICAgICAgICAiZW51bSI6IFsibm9uZSIsICJmb3J3YXJkcyIsICJiYWNrd2FyZHMiLCAiYm90
aCIsICJhdXRvIl0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkFu
aW1hdGlvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInBy
b3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIk
cmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY3NzQW5p
bWF0aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyBgYW5pbWF0aW9uLW5hbWVgIENTUyBw
cm9wZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBpZiBgdHJhbnNpdGlvblByb3BlcnR5YCBp
cyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNzc1RyYW5z
aXRpb25Qcm9wZXJ0eSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyBgdHJhbnNpdGlvbi1wcm9wZXJ0
eWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGBhbmltYXRpb25OYW1l
YCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVmZmVj
dCIsICIkcmVmIjogIkVmZmVjdCIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImJhY2t0cmFjZSIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJl
ZiI6ICJDb25zb2xlLkNhbGxGcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkJhY2t0cmFjZSB0aGF0IHdhcyBjYXB0dXJlZCB3aGVuIHRoaXMgYFdlYkFuaW1hdGlvbmAg
d2FzIGNyZWF0ZWQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJpZCI6ICJFZmZlY3QiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwK
KyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c3RhcnREZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImVuZERlbGF5IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlv
bmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9ucyIsICJ0
eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIml0ZXJhdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1
ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uRHVyYXRpb24iLCAidHlw
ZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ0aW1pbmdGdW5jdGlvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBsYXliYWNrRGlyZWN0aW9uIiwgIiRyZWYi
OiAiUGxheWJhY2tEaXJlY3Rpb24iLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJmaWxsTW9kZSIsICIkcmVmIjogIkZpbGxNb2RlIiwgIm9wdGlvbmFsIjog
dHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAia2V5ZnJhbWVzIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWZyYW1lIiB9LCAib3B0aW9uYWwiOiB0cnVl
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlk
IjogIktleWZyYW1lIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9mZnNldCIsICJ0
eXBlIjogIm51bWJlciIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVhc2luZyIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInN0eWxlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJpZCI6ICJUcmFj
a2luZ1VwZGF0ZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLApAQCAtMjcsNiArNzIs
MzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWworICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkVuYWJsZXMgQ2FudmFzIGRvbWFpbiBldmVudHMuIgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEaXNhYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3ROb2RlIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJHZXRzIHRoZSBgRE9NLk5vZGVJZGAgZm9yIHRoZSB0YXJnZXQgb2YgdGhlIGVmZmVj
dCBvZiB0aGUgYW5pbWF0aW9uIHdpdGggdGhlIGdpdmVuIGBBbmltYXRpb25JZGAuIiwKKyAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0
aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRy
ZWYiOiAiRE9NLk5vZGVJZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJSZXNvbHZlcyBKYXZhU2NyaXB0IGBXZWJBbmltYXRpb25gIG9iamVjdCBm
b3IgZ2l2ZW4gYEFuaW1hdGlvbklkYC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlv
bklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3ltYm9saWMgZ3Jv
dXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0cy4iIH0K
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogIm9iamVjdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiB9Cisg
ICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjog
InN0YXJ0VHJhY2tpbmciLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRyYWNr
aW5nIGFuaW1hdGlvbnMuIFRoaXMgd2lsbCBwcm9kdWNlIGEgYHRyYWNraW5nU3RhcnRgIGV2ZW50
LiIKQEAgLTM3LDYgKzExMSwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjog
WworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25DcmVhdGVkIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1h
dGlvbmAgaXMgY3JlYXRlZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb24iLCAiJHJlZiI6ICJBbmltYXRpb24iIH0KKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
ZWZmZWN0Q2hhbmdlZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3
aGVuZXZlciB0aGUgZWZmZWN0IG9mIGFueSBhbmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6ICJFZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBvbWl0dGVkIHdoZW4gdGhlIGVmZmVjdCBpcyByZW1v
dmVkIHdpdGhvdXQgYSByZXBsYWNlbWVudC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidGFyZ2V0Q2hhbmdlZCIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgdGFyZ2V0IG9mIGFu
eSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFuZ2VkIGluIGFueSB3YXkuIiwKKyAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0
aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25EZXN0cm95ZWQiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgYSBgV2ViQW5p
bWF0aW9uYCBpcyBkZXN0cm95ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25J
ZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAi
bmFtZSI6ICJ0cmFja2luZ1N0YXJ0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNw
YXRjaGVkIGFmdGVyIGBzdGFydFRyYWNraW5nYCBjb21tYW5kLiIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCmluZGV4IDdjNzJmNjI0YzMzMGFmOTZiYTcwYjdhZTRl
OTJiNTAxY2ExMDEwN2UuLmZkM2ViOWRiZGU5YmMxYWIwYjk3ZjBhMDcxZTAwZTgwZmI4MTMxMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zOSw2ICs0MCw5
IEBAIFJlZjxDU1NBbmltYXRpb24+IENTU0FuaW1hdGlvbjo6Y3JlYXRlKEVsZW1lbnQmIG93bmlu
Z0VsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYKIHsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgQ1NTQW5pbWF0aW9uKG93bmluZ0VsZW1lbnQsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0
eWxlKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7CisKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQu
Z2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0NTU1RyYW5zaXRpb24uY3BwCmluZGV4IGRmZjVmYjFmNzlhODljNTY2MGE0OWMxYjM2NDNk
ZDA3ZDgyNDMyNzEuLmFhYWU1ZTJkMGM2MTcyMGNkMTA4ZGQ2ZGNlNTk1MTljYTBhYzNlMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUVm
ZmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTQwLDYgKzQx
LDkgQEAgUmVmPENTU1RyYW5zaXRpb24+IENTU1RyYW5zaXRpb246OmNyZWF0ZShFbGVtZW50JiBv
d25pbmdFbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHAKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgQ1NTVHJhbnNpdGlvbihvd25pbmdFbGVtZW50LCBwcm9wZXJ0eSwgZ2VuZXJhdGlvblRp
bWUsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxlLCByZXZlcnNpbmdBZGp1c3RlZFN0YXJ0U3R5
bGUsIHJldmVyc2luZ1Nob3J0ZW5pbmdGYWN0b3IpKTsKICAgICByZXN1bHQtPmluaXRpYWxpemUo
b2xkU3R5bGUsIG5ld1N0eWxlKTsKICAgICByZXN1bHQtPnNldFRpbWluZ1Byb3BlcnRpZXMoZGVs
YXksIGR1cmF0aW9uKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCA5OTU1MDIy
NjhjZDk1OTE5MTU5OWIwMjg0YjgzMmFlOTY0YjIyMDM5Li4yNjFiNWE0OTRmYjFhZTk1YjNlNGJk
NTMxYTVmZjdkYzZiN2RiMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
S2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdC5jcHAKQEAgLTExMDUsNyArMTEwNSw3IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6Omlu
dmFsaWRhdGUoKQogCiB2b2lkIEtleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxl
cmF0ZWQoKQogewotICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBoYXNCbGVuZGluZ0tleWZy
YW1lcygpOworICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBtX2JsZW5kaW5nS2V5ZnJhbWVz
LnNpemUoKTsKICAgICBmb3IgKGF1dG8gY3NzUHJvcGVydHlJZCA6IG1fYmxlbmRpbmdLZXlmcmFt
ZXMucHJvcGVydGllcygpKSB7CiAgICAgICAgIGlmICghQ1NTUHJvcGVydHlBbmltYXRpb246OmFu
aW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKGNzc1Byb3BlcnR5SWQpKSB7CiAgICAgICAg
ICAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4IDdhMWFlYjdhYmMyMzIyY2EwYzIwNDUxNzQ5MTVk
MzEzNDcyODNhODkuLmRmN2IwMWMyOTdlZjg1ZGVmZGRlMzkwMjg2MzZkMDJlZTIzMWJjMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC05OCw2ICs5OCw4
IEBAIHB1YmxpYzoKICAgICAgICAgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvIGNvbXBvc2l0ZSB7
IENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0bzo6QXV0byB9OwogICAgIH07CiAKKyAgICBjb25zdCBW
ZWN0b3I8UGFyc2VkS2V5ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBt
X3BhcnNlZEtleWZyYW1lczsgfQorCiAgICAgRWxlbWVudCogdGFyZ2V0KCkgY29uc3QgeyByZXR1
cm4gbV90YXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFRhcmdldChSZWZQdHI8RWxlbWVudD4m
Jik7CiAKQEAgLTEzNCw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb2xvckZpbHRlckZ1
bmN0aW9uTGlzdHNNYXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29sb3JGaWx0ZXJG
dW5jdGlvbkxpc3RzTWF0Y2g7IH0KIAogICAgIHZvaWQgY29tcHV0ZURlY2xhcmF0aXZlQW5pbWF0
aW9uQmxlbmRpbmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBS
ZW5kZXJTdHlsZSYgbmV3U3R5bGUpOwotICAgIGJvb2wgaGFzQmxlbmRpbmdLZXlmcmFtZXMoKSBj
b25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgfQorICAgIGNvbnN0IEtl
eWZyYW1lTGlzdCYgYmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5n
S2V5ZnJhbWVzOyB9CiAgICAgY29uc3QgSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgYW5pbWF0ZWRQ
cm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVz
KCk7IH0KIAogICAgIGJvb2wgY29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uKExheW91
dFJlY3QmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
aW5kZXggNTE1ZDM2OTA3ZjkxMDM1ODEwMzA2MDcwNmQ4ODY1YWQ5Y2U5YzZhNy4uM2VhMzg2NGI2
OWU4MmQ0NWY3YjdiMGVkZGEyYjI5MjUyN2I0NTVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJTdHlsZWRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MSwxMSArNTMsMzAgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViQW5pbWF0aW9uKTsK
IAorSGFzaFNldDxXZWJBbmltYXRpb24qPiYgV2ViQW5pbWF0aW9uOjppbnN0YW5jZXMoY29uc3Qg
TG9ja0hvbGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8V2ViQW5p
bWF0aW9uKj4+IGluc3RhbmNlczsKKyAgICByZXR1cm4gaW5zdGFuY2VzOworfQorCitMb2NrJiBX
ZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVz
dHJveWVkPExvY2s+IG11dGV4OworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXpl
TXV0ZXg7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU11dGV4LCBbXSB7CisgICAgICAg
IG11dGV4LmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBtdXRleC5nZXQoKTsKK30K
KwogUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmVjdCkKIHsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0
UmVmKCpuZXcgV2ViQW5pbWF0aW9uKGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRFZmZlY3Qo
ZWZmZWN0KTsKICAgICByZXN1bHQtPnNldFRpbWVsaW5lKCZkb2N1bWVudC50aW1lbGluZSgpKTsK
KworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJl
c3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC02NSw2ICs4Niw5IEBA
IFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlCiAgICAgcmVzdWx0LT5zZXRFZmZlY3QoZWZmZWN0KTsK
ICAgICBpZiAodGltZWxpbmUpCiAgICAgICAgIHJlc3VsdC0+c2V0VGltZWxpbmUodGltZWxpbmUp
OworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24o
cmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTc1LDYgKzk5LDkg
QEAgV2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAg
IG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
KworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICBpbnN0YW5jZXMo
bG9jaykuYWRkKHRoaXMpOwogfQogCiBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24oKQpAQCAt
ODMsNiArMTEwLDEwIEBAIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigpCiAKICAgICBpZiAo
bV90aW1lbGluZSkKICAgICAgICAgbV90aW1lbGluZS0+Zm9yZ2V0QW5pbWF0aW9uKHRoaXMpOwor
CisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIEFTU0VSVChpbnN0
YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOworICAgIGluc3RhbmNlcyhsb2NrKS5yZW1vdmUo
dGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpjb250ZXh0RGVzdHJveWVkKCkKQEAgLTEx
NCw2ICsxNDUsOCBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6dW5zdXNwZW5kRWZmZWN0SW52YWxpZGF0
aW9uKCkKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFuZ2UoKQogewogICAg
IHRpbWluZ0RpZENoYW5nZShEaWRTZWVrOjpObywgU3luY2hyb25vdXNseU5vdGlmeTo6WWVzKTsK
KworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0VGltaW5nKCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldEVmZmVjdChSZWZQ
dHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVjdCkKQEAgLTE4OCw3ICsyMjEsNyBAQCB2b2lk
IFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJuYWwoUmVmUHRyPEFuaW1hdGlvbkVmZmVjdD4m
JiBuZXdFZmZlY3QsIGJvb2wgZAogICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2Fz
QWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOwogICAgIH0KIAotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KCp0aGlzKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCgqdGhp
cyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRUaW1lbGluZShSZWZQdHI8QW5pbWF0aW9u
VGltZWxpbmU+JiYgdGltZWxpbmUpCkBAIC0yNDcsMTQgKzI4MCwxNSBAQCB2b2lkIFdlYkFuaW1h
dGlvbjo6c2V0VGltZWxpbmVJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9uVGltZWxpbmU+JiYgdGlt
ZWxpbmUpCiAKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUYXJnZXREaWRDaGFuZ2UoRWxlbWVu
dCogcHJldmlvdXNUYXJnZXQsIEVsZW1lbnQqIG5ld1RhcmdldCkKIHsKLSAgICBpZiAoIW1fdGlt
ZWxpbmUpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV90aW1lbGluZSkgeworICAgICAgICBp
ZiAocHJldmlvdXNUYXJnZXQpCisgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNS
ZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMsICpwcmV2aW91c1RhcmdldCk7CiAKLSAgICBpZiAocHJl
dmlvdXNUYXJnZXQpCi0gICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc1JlbW92ZWRGcm9t
RWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKKyAgICAgICAgaWYgKG5ld1RhcmdldCkK
KyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlz
LCAqbmV3VGFyZ2V0KTsKKyAgICB9CiAKLSAgICBpZiAobmV3VGFyZ2V0KQotICAgICAgICBtX3Rp
bWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7Cisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RU
YXJnZXQoKnRoaXMpOwogfQogCiBPcHRpb25hbDxkb3VibGU+IFdlYkFuaW1hdGlvbjo6c3RhcnRU
aW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmlt
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAppbmRleCBk
YTRkOGVjM2JjMmU1NzBiNDhhNTFkYmMxNGEzNDRlNmM0OWJhMDcwLi5jOTk2MTNiMjY2MWQ3NjVm
MGVlM2I4NmQ2MTRmOWNkMmI3ZGMyM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNp
bmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvblV0aWxpdGllcy5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hcmthYmxlLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgpAQCAtNTQs
NiArNTUsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJBbmltYXRpb24+IGNyZWF0ZShE
b2N1bWVudCYsIEFuaW1hdGlvbkVmZmVjdCosIEFuaW1hdGlvblRpbWVsaW5lKik7CiAgICAgfldl
YkFuaW1hdGlvbigpOwogCisgICAgc3RhdGljIEhhc2hTZXQ8V2ViQW5pbWF0aW9uKj4mIGluc3Rh
bmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgc3RhdGljIExvY2smIGluc3RhbmNlc011dGV4
KCk7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNEZWNsYXJhdGl2ZUFuaW1hdGlvbigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ1NTQW5pbWF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NUcmFuc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNGYxOGI1OGM2Y2QwMWUwYjY5YTg5
NTNhZDA5YTczOWMzNTIwNDk2YS4uZDEzMDk4OTFkYzZiMjNiMmIyN2U1YzI1YzBlOTY0NDUyYTcz
OThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTcyMyw2ICs3MjMsOSBAQCB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudAogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCiAgICAgICAgIGNhbnZhc0FnZW50
LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQor
ICAgICAgICBhbmltYXRpb25BZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOworCiAgICAgaWYg
KEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVj
dG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPmRpZENvbW1pdExvYWQoZnJhbWUuZG9j
dW1lbnQoKSk7CiAKQEAgLTExMzMsMTUgKzExMzYsMzcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JgogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QodGFyZ2V0
LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKLSAgICAgICAgYW5pbWF0aW9u
QWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworICAgIGlmIChh
dXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRTZXRXZWJBbmlt
YXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
KQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1h
dGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRp
bmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChhdXRvKiBhbmlt
YXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlv
bkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRpb25F
ZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7Cisg
ICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQorCit2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
K3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVu
YWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+
ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7Ci0g
ICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2lu
Z0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkK
KyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKGFuaW1hdGlv
bik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKICAgICAgICAgYW5pbWF0aW9u
QWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRl
eCBkYmY4MjIwNWRiNWJjY2JlMTY5ZWQwZTk0N2QxYWQ4M2RkODUwZmQ2Li5hMjk4MWFkOTgyZGU2
ODczZDRlOTYzNzQ0OWNiN2YzMmY4YzI1YzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0zMDUsNyArMzA1LDEwIEBA
IHB1YmxpYzoKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZl
Y3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAg
IHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsK
KyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7
CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFu
aW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRh
cmdldChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRp
b24oV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRp
b24oV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2Vk
KFBhZ2UmKTsKQEAgLTUwNSw3ICs1MDgsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgc3Rh
dGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
LCBFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWluZyk7Ci0gICAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkU2V0V2ViQW5pbWF0
aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5p
bWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERl
c3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24m
KTsKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYpOwpAQCAtMTQ2NiwxMSArMTQ3MiwzMiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmIHRhcmdldCwg
SwogICAgICAgICB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoKmluc3RydW1lbnRpbmdBZ2Vu
dHMsIHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRpbWluZyk7CiB9CiAKLWlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFu
aW1hdGlvbiYgYW5pbWF0aW9uKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAg
ICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKGF1dG8qIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRp
b24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKKyAgICAgICAg
ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0
aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7Cisg
ICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRp
b24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0VGltaW5nSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30K
KworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgRkFTVF9S
RVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
VGFyZ2V0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24oV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
KyAgICAgICAgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywg
YW5pbWF0aW9uKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAppbmRleCAxZjlh
MGQ3YzUzMmEzZjkwODU2YzE4NGExZmZjM2IxY2YzNWVmYzg3Li5kN2EyZjcxOTU4ZDk0M2NjY2Fj
NDM0ZWFjOTNlMzNkYWUyN2NjNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHZvaWQgSW5zdHJ1bWVu
dGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQgPSBudWxscHRy
OwogICAgIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgPSBudWxscHRyOwogICAgIG1fcGVyc2lzdGVu
dEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKKyAgICBtX2VuYWJsZWRJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiAgICAgbV90cmFja2luZ0luc3BlY3RvckFuaW1h
dGlvbkFnZW50ID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggZjZmZWE3ZGEyMTM2MGRkMDhjYzNkOTY2YjE0ZTJh
YWM0NjU0NDkxNS4uZjU5YzNkYmRjYWY3OGNmOWM2ZDhkYmI0MzJkY2NmMjJmMTVkNTA3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCkBAIC0x
NTYsNiArMTU2LDkgQEAgcHVibGljOgogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBwZXJz
aXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3BlcnNpc3Rl
bnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQogICAgIHZvaWQgc2V0UGVyc2lzdGVudEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX3Bl
cnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAKKyAgICBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCogZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KKyAgICB2b2lkIHNl
dEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCog
YWdlbnQpIHsgbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQorCiAg
ICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0K
ICAgICB2b2lkIHNldFRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9
IGFnZW50OyB9CiAKQEAgLTE5MCw2ICsxOTMsNyBAQCBwcml2YXRlOgogICAgIFBhZ2VET01EZWJ1
Z2dlckFnZW50KiBtX3BhZ2VET01EZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3Bl
Y3RvckNhbnZhc0FnZW50KiBtX2luc3BlY3RvckNhbnZhc0FnZW50IHsgbnVsbHB0ciB9OwogICAg
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCB7IG51bGxwdHIgfTsKKyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogbV9lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQqIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKaW5kZXggZGU5YTJjNTliZGFiYzI5MDg5NmM5NjM5
Y2VhYmI0ZTJjNDczYjgyOS4uZGU0MGVmNjZlZjc3MWU0ODY3YWFmMjY0NWU4NDYxYWI1ZjQ1ZGEy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JB
bmltYXRpb25BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKQEAgLTI5LDE5ICsyOSwzMyBAQAogI2luY2x1ZGUg
IkFuaW1hdGlvbkVmZmVjdC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVjdFBoYXNlLmgiCiAj
aW5jbHVkZSAiQ1NTQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1Ry
YW5zaXRpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkRlY2xhcmF0aXZl
QW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSAiRmlsbE1vZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1
ZGUgIkpTV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIKKyNpbmNs
dWRlICJLZXlmcmFtZUxpc3QuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxheWJh
Y2tEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGlt
aW5nRnVuY3Rpb24uaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb24uaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JFbnZpcm9ubWVudC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDYg
KzY2LDkgQEAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50
KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgOiBJbnNwZWN0b3JBZ2VudEJhc2UoIkFu
aW1hdGlvbiJfcywgY29udGV4dCkKICAgICAsIG1fZnJvbnRlbmREaXNwYXRjaGVyKG1ha2VVbmlx
dWU8SW5zcGVjdG9yOjpBbmltYXRpb25Gcm9udGVuZERpc3BhdGNoZXI+KGNvbnRleHQuZnJvbnRl
bmRSb3V0ZXIpKQogICAgICwgbV9iYWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0b3I6OkFuaW1hdGlv
bkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoY29udGV4dC5iYWNrZW5kRGlzcGF0Y2hlciwgdGhp
cykpCisgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihjb250ZXh0LmluamVjdGVkU2NyaXB0
TWFuYWdlcikKKyAgICAsIG1faW5zcGVjdGVkUGFnZShjb250ZXh0Lmluc3BlY3RlZFBhZ2UpCisg
ICAgLCBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTY3LDExICs4
NCwxMDMgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBFcnJvclN0cmluZyBpZ25vcmVk
OwogICAgIHN0b3BUcmFja2luZyhpZ25vcmVkKTsKKyAgICBkaXNhYmxlKGlnbm9yZWQpOwogCiAg
ICAgQVNTRVJUKG1faW5zdHJ1bWVudGluZ0FnZW50cy5wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQoKSA9PSB0aGlzKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0UGVyc2lz
dGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIpOwogfQogCit2b2lkIEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQoreworICAg
IGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KCkgPT0gdGhpcykgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZG9tYWluIGFs
cmVhZHkgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faW5zdHJ1
bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQodGhpcyk7CisK
KyAgICBjb25zdCBhdXRvIGV4aXN0c0luQ3VycmVudFBhZ2UgPSBbJl0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKKyAgICAgICAgaWYgKCFpczxEb2N1
bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjg0NzU+IFdlYiBJ
bnNwZWN0b3I6IENvcnJlY3RseSBkaXNwbGF5IGlmcmFtZSdzIFdlYlNvY2tldHMKKyAgICAgICAg
YXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpID09ICZtX2luc3BlY3RlZFBhZ2U7
CisgICAgfTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdlYkFuaW1hdGlvbjo6
aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIGZvciAoYXV0byogYW5pbWF0aW9uIDogV2ViQW5p
bWF0aW9uOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAgIGlmIChleGlzdHNJbkN1cnJl
bnRQYWdlKGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgICAg
ICAgICBiaW5kQW5pbWF0aW9uKCphbmltYXRpb24sIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0K
K30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyYp
Cit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRp
b25BZ2VudChudWxscHRyKTsKKworICAgIHJlc2V0KCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpCit7CisgICAgYXV0byogYW5pbWF0aW9u
ID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25JZCk7CisgICAgaWYgKCFh
bmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvbUFnZW50ID0gbV9pbnN0
cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCk7CisgICAgaWYgKCFkb21BZ2VudCkg
eworICAgICAgICBlcnJvclN0cmluZyA9ICJET00gZG9tYWluIG11c3QgYmUgZW5hYmxlZCJfczsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGVmZmVjdCA9IGFuaW1hdGlvbi0+
ZWZmZWN0KCk7CisgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkgeworICAgICAg
ICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIGRvZXMgbm90
IGhhdmUgYW4gZWZmZWN0Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYg
a2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oKmVmZmVjdCk7CisKKyAg
ICBhdXRvKiB0YXJnZXQgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKTsKKyAgICBpZiAoIXRhcmdl
dCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlv
bklkIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICAqbm9kZUlkID0gZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJp
bmcsIHRhcmdldCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc29sdmVB
bmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlv
bklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KQoreworICAgIGF1dG8qIGFuaW1hdGlv
biA9IGFzc2VydEFuaW1hdGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9uSWQpOworICAgIGlmICgh
YW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBzdGF0ZSA9IGFuaW1hdGlv
bi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5leGVjU3RhdGUoKTsKKyAgICBhdXRvIGluamVj
dGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5qZWN0ZWRTY3JpcHRGb3Ioc3Rh
dGUpOworICAgIEFTU0VSVCghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKTsKKworICAgIEpT
Qzo6SlNWYWx1ZSB2YWx1ZTsKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2so
c3RhdGUpOworCisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUoc3RhdGUpOworICAgICAgICB2YWx1ZSA9IHRvSlMoc3RhdGUsIGds
b2JhbE9iamVjdCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBpZiAoIXZhbHVlKSB7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBlcnJvclN0cmluZyA9ICJJbnRlcm5h
bCBlcnJvcjogdW5rbm93biBBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIl9zOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG9iamVjdEdyb3VwTmFtZSA9IG9iamVj
dEdyb3VwID8gKm9iamVjdEdyb3VwIDogU3RyaW5nKCk7CisgICAgcmVzdWx0ID0gaW5qZWN0ZWRT
Y3JpcHQud3JhcE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsKK30KKwogdm9pZCBJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6c3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcpCiB7CiAgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFu
aW1hdGlvbkFnZW50KCkgPT0gdGhpcykgewpAQCAtMTcwLDE2ICsyNzksMjgwIEBAIHZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmIHRh
cmdldCwgS2V5ZnJhbWVFCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRyYWNraW5nVXBkYXRl
KG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25k
cygpLCBXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3Zv
aWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJB
bmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+
KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKGRv
d25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKTsKKworICAgIGRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworICAgIGRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3RvckFuaW1h
dGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9u
JiBhbmltYXRpb24pCit7CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlm
IEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRp
b25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmIChhbmltYXRpb25JZC5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5l
ZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBidWlsZE9iamVjdEZvckVmZmVjdChhbmltYXRpb24u
ZWZmZWN0KCkpKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAg
IC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRpb24gaXMgdHJhY2tp
bmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBmaW5kQW5pbWF0aW9u
SWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dGFyZ2V0Q2hhbmdlZChhbmltYXRp
b25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0ZVdlYkFu
aW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoIWZpbmRBbmltYXRp
b25JZChhbmltYXRpb24pLmlzRW1wdHkoKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJpbmRBbmltYXRpb24oYW5pbWF0aW9u
LCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lX
ZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgaWYgKGlzPERlY2xh
cmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKQogICAgICAgICBzdG9wVHJhY2tpbmdEZWNsYXJh
dGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSk7
CisKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlz
IHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFu
aW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKCFhbmltYXRpb25JZC5pc0VtcHR5KCkpCisg
ICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBpZiAo
ZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAgICAgICByZXNldCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gYW5pbWF0aW9uSWRzVG9SZW1vdmU7CisgICAg
Zm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGFuaW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFwKSB7
CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gYW5pbWF0aW9uLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChpczxEb2N1bWVudD4o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KS5mcmFtZSgpID09ICZmcmFtZSkKKyAgICAgICAgICAgICAgICBhbmltYXRp
b25JZHNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0aW9uSWQpOworICAgICAgICB9CisgICAgfQorICAg
IGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uSWQgOiBhbmltYXRpb25JZHNUb1JlbW92ZSkKKyAg
ICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30KKworc3RhdGljIE9wdGlvbmFs
PGRvdWJsZT4gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoY29uc3QgU2Vjb25kcyYgc2Vjb25kcykK
K3sKKyAgICBpZiAoc2Vjb25kcyA9PSBTZWNvbmRzOjppbmZpbml0eSgpIHx8IHNlY29uZHMgPT0g
U2Vjb25kczo6bmFuKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJu
IHNlY29uZHMudmFsdWUoKTsKK30KKworUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1h
dGlvbjo6RWZmZWN0PiBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YnVpbGRPYmplY3RGb3JFZmZl
Y3QoQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QpCit7CisgICAgaWYgKCFlZmZlY3QpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgYXV0byBlZmZlY3RQYXlsb2FkID0gSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q6OmNyZWF0ZSgpCisgICAgICAgIC5yZWxlYXNlKCk7
CisKKyAgICBpZiAoYXV0byBzdGFydERlbGF5ID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZm
ZWN0LT5kZWxheSgpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0U3RhcnREZWxheShzdGFy
dERlbGF5LnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8gZW5kRGVsYXkgPSBwcm90b2NvbFZhbHVl
Rm9yU2Vjb25kcyhlZmZlY3QtPmVuZERlbGF5KCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5z
ZXRFbmREZWxheShlbmREZWxheS52YWx1ZSgpKTsKKworICAgIGVmZmVjdFBheWxvYWQtPnNldEl0
ZXJhdGlvbnMoZWZmZWN0LT5pdGVyYXRpb25zKCkpOworICAgIGVmZmVjdFBheWxvYWQtPnNldEl0
ZXJhdGlvblN0YXJ0KGVmZmVjdC0+aXRlcmF0aW9uU3RhcnQoKSk7CisKKyAgICBpZiAoYXV0byBp
dGVyYXRpb25EdXJhdGlvbiA9IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGVmZmVjdC0+aXRlcmF0
aW9uRHVyYXRpb24oKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvbkR1cmF0
aW9uKGl0ZXJhdGlvbkR1cmF0aW9uLnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8qIHRpbWluZ0Z1
bmN0aW9uID0gZWZmZWN0LT50aW1pbmdGdW5jdGlvbigpKQorICAgICAgICBlZmZlY3RQYXlsb2Fk
LT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKworICAgIHN3
aXRjaCAoZWZmZWN0LT5kaXJlY3Rpb24oKSkgeworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246
Ok5vcm1hbDoKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5z
cGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZToKKyAg
ICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5zcGVjdG9yOjpQcm90
b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZToKKyAgICAgICAgZWZm
ZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5p
bWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgZWZm
ZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5p
bWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZSk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKworICAgIHN3aXRjaCAoZWZmZWN0LT5maWxsKCkpIHsKKyAgICBjYXNlIEZp
bGxNb2RlOjpOb25lOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9kZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpOb25lKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBGaWxsTW9kZTo6Rm9yd2FyZHM6CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNl
dEZpbGxNb2RlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkZvcndh
cmRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGaWxsTW9kZTo6QmFja3dhcmRzOgorICAg
ICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9kZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmlt
YXRpb246OkZpbGxNb2RlOjpCYWNrd2FyZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZp
bGxNb2RlOjpCb3RoOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9kZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCb3RoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBGaWxsTW9kZTo6QXV0bzoKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0Rmls
bE1vZGUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6QXV0byk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0
KSkgeworICAgICAgICBhdXRvJiBrZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0PEtleWZyYW1lRWZm
ZWN0PigqZWZmZWN0KTsKKworICAgICAgICBhdXRvIGtleWZyYW1lc1BheWxvYWQgPSBKU09OOjpB
cnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU+OjpjcmVhdGUo
KTsKKworICAgICAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGtleWZyYW1lRWZmZWN0
LmFuaW1hdGlvbigpKSkgeworICAgICAgICAgICAgQVNTRVJUKGtleWZyYW1lRWZmZWN0LnRhcmdl
dCgpKTsKKyAgICAgICAgICAgIGF1dG8qIHJlbmRlcmVyID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0
KCktPnJlbmRlcmVyKCk7CisKKyAgICAgICAgICAgIENvbXB1dGVkU3R5bGVFeHRyYWN0b3IgY29t
cHV0ZWRTdHlsZUV4dHJhY3RvcihrZXlmcmFtZUVmZmVjdC50YXJnZXQoKSk7CisKKyAgICAgICAg
ICAgIGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWVzID0ga2V5ZnJhbWVFZmZlY3QuYmxlbmRpbmdLZXlm
cmFtZXMoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxlbmRpbmdLZXlm
cmFtZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBibGVuZGluZ0tleWZy
YW1lID0gYmxlbmRpbmdLZXlmcmFtZXNbaV07CisKKyAgICAgICAgICAgICAgICBBU1NFUlQoYmxl
bmRpbmdLZXlmcmFtZS5zdHlsZSgpKTsKKyAgICAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9ICpi
bGVuZGluZ0tleWZyYW1lLnN0eWxlKCk7CisKKyAgICAgICAgICAgICAgICBhdXRvIGtleWZyYW1l
UGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0
ZSgpCisgICAgICAgICAgICAgICAgICAgIC5zZXRPZmZzZXQoYmxlbmRpbmdLZXlmcmFtZS5rZXko
KSkKKyAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKworICAgICAgICAgICAgICAgIGlm
IChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IGJsZW5kaW5nS2V5ZnJhbWUudGltaW5nRnVuY3Rpb24o
KSkKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRFYXNpbmcodGltaW5n
RnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0
eWxlUGF5bG9hZEJ1aWxkZXI7CisgICAgICAgICAgICAgICAgYXV0byYgY3NzUHJvcGVydHlJZHMg
PSBibGVuZGluZ0tleWZyYW1lLnByb3BlcnRpZXMoKTsKKyAgICAgICAgICAgICAgICBzaXplX3Qg
Y291bnQgPSBjc3NQcm9wZXJ0eUlkcy5zaXplKCk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRv
IGNzc1Byb3BlcnR5SWQgOiBjc3NQcm9wZXJ0eUlkcykgeworICAgICAgICAgICAgICAgICAgICAt
LWNvdW50OworICAgICAgICAgICAgICAgICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9w
ZXJ0eUN1c3RvbSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKGdldFByb3BlcnR5TmFtZVN0
cmluZyhjc3NQcm9wZXJ0eUlkKSk7CisgICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1
aWxkZXIuYXBwZW5kKCI6ICIpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IGNvbXB1dGVkU3R5bGVFeHRyYWN0b3IudmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoc3R5bGUsIGNz
c1Byb3BlcnR5SWQsIHJlbmRlcmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5
bG9hZEJ1aWxkZXIuYXBwZW5kKHZhbHVlLT5jc3NUZXh0KCkpOworICAgICAgICAgICAgICAgICAg
ICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgnOycpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoY291bnQgPiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRl
ci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFz
dHlsZVBheWxvYWRCdWlsZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJh
bWVQYXlsb2FkLT5zZXRTdHlsZShzdHlsZVBheWxvYWRCdWlsZGVyLnRvU3RyaW5nKCkpOworCisg
ICAgICAgICAgICAgICAga2V5ZnJhbWVzUGF5bG9hZC0+YWRkSXRlbShXVEZNb3ZlKGtleWZyYW1l
UGF5bG9hZCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Zm9yIChjb25zdCBhdXRvJiBwYXJzZWRLZXlmcmFtZSA6IGtleWZyYW1lRWZmZWN0LnBhcnNlZEtl
eWZyYW1lcygpKSB7CisgICAgICAgICAgICAgICAgYXV0byBrZXlmcmFtZVBheWxvYWQgPSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lOjpjcmVhdGUoKQorICAgICAgICAg
ICAgICAgICAgICAuc2V0T2Zmc2V0KHBhcnNlZEtleWZyYW1lLmNvbXB1dGVkT2Zmc2V0KQorICAg
ICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAgICAgICAgICAgaWYgKCFwYXJz
ZWRLZXlmcmFtZS5lYXNpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFt
ZVBheWxvYWQtPnNldEVhc2luZyhwYXJzZWRLZXlmcmFtZS5lYXNpbmcpOworCisgICAgICAgICAg
ICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5zdHlsZS0+aXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldFN0eWxlKHBhcnNlZEtleWZyYW1lLnN0eWxlLT5h
c1RleHQoKSk7CisKKyAgICAgICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdU
Rk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoa2V5ZnJhbWVzUGF5bG9hZC0+bGVuZ3RoKCkpCisgICAgICAgICAgICBlZmZlY3RQ
YXlsb2FkLT5zZXRLZXlmcmFtZXMoV1RGTW92ZShrZXlmcmFtZXNQYXlsb2FkKSk7CisgICAgfQor
CisgICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0UGF5bG9hZCk7Cit9CisKK1N0cmluZyBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9u
KQoreworICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBleGlzdGluZ0FuaW1hdGlvbl0gOiBt
X2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChleGlzdGluZ0FuaW1hdGlvbiA9PSAmYW5p
bWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbklkOworICAgIH0KKyAgICByZXR1
cm4gbnVsbFN0cmluZygpOworfQorCitXZWJBbmltYXRpb24qIEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50Ojphc3NlcnRBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbklkKQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9IG1fYW5pbWF0aW9uSWRN
YXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgZXJyb3JT
dHJpbmcgPSAiTWlzc2luZyBBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIl9zOworICAg
IHJldHVybiBhbmltYXRpb247Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmJp
bmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24sIGJvb2wgY2FwdHVyZUJhY2t0cmFj
ZSkKK3sKKyAgICBhdXRvIGFuaW1hdGlvbklkID0gbWFrZVN0cmluZygiYW5pbWF0aW9uOiIgKyBJ
ZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSk7CisgICAgbV9hbmltYXRpb25J
ZE1hcC5zZXQoYW5pbWF0aW9uSWQsICZhbmltYXRpb24pOworCisgICAgYXV0byBhbmltYXRpb25Q
YXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpBbmltYXRpb246OmNyZWF0
ZSgpCisgICAgICAgIC5zZXRBbmltYXRpb25JZChhbmltYXRpb25JZCkKKyAgICAgICAgLnJlbGVh
c2UoKTsKKworICAgIGlmIChpczxDU1NBbmltYXRpb24+KGFuaW1hdGlvbikpCisgICAgICAgIGFu
aW1hdGlvblBheWxvYWQtPnNldENzc0FuaW1hdGlvbk5hbWUoZG93bmNhc3Q8Q1NTQW5pbWF0aW9u
PihhbmltYXRpb24pLmFuaW1hdGlvbk5hbWUoKSk7CisgICAgZWxzZSBpZiAoaXM8Q1NTVHJhbnNp
dGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0Q3NzVHJhbnNp
dGlvblByb3BlcnR5KGRvd25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbikudHJhbnNpdGlv
blByb3BlcnR5KCkpOworCisgICAgaWYgKGF1dG8gZWZmZWN0UGF5bG9hZCA9IGJ1aWxkT2JqZWN0
Rm9yRWZmZWN0KGFuaW1hdGlvbi5lZmZlY3QoKSkpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQt
PnNldEVmZmVjdChXVEZNb3ZlKGVmZmVjdFBheWxvYWQpKTsKKworICAgIGlmIChjYXB0dXJlQmFj
a3RyYWNlKSB7CisgICAgICAgIGF1dG8gc3RhY2tUcmFjZSA9IEluc3BlY3Rvcjo6Y3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKEpTRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgSW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUpOworICAgICAgICBhbmltYXRp
b25QYXlsb2FkLT5zZXRCYWNrdHJhY2Uoc3RhY2tUcmFjZS0+YnVpbGRJbnNwZWN0b3JBcnJheSgp
KTsKKyAgICB9CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0aW9uQ3JlYXRlZChX
VEZNb3ZlKGFuaW1hdGlvblBheWxvYWQpKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6dW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAg
bV9hbmltYXRpb25JZE1hcC5yZW1vdmUoYW5pbWF0aW9uSWQpOworCisgICAgLy8gVGhpcyBjYW4g
YmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIEdDLiBEdWUgdG8gdGhlIHNpbmdsZS1wcm9jZXNzIG1v
ZGVsIHVzZWQgaW4gV2ViS2l0MSwgdGhlCisgICAgLy8gZXZlbnQgbXVzdCBiZSBkaXNwYXRjaGVk
IGZyb20gYSB0aW1lciB0byBwcmV2ZW50IHRoZSBmcm9udGVuZCBmcm9tIG1ha2luZyBKUyBhbGxv
Y2F0aW9ucworICAgIC8vIHdoaWxlIHRoZSBHQyBpcyBzdGlsbCBhY3RpdmUuCisgICAgbV9yZW1v
dmVkQW5pbWF0aW9uSWRzLmFwcGVuZChhbmltYXRpb25JZCk7CisKKyAgICBpZiAoIW1fYW5pbWF0
aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95
ZWRUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpCit7CisgICAgaWYgKCFtX3JlbW92
ZWRBbmltYXRpb25JZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8m
IGlkZW50aWZpZXIgOiBtX3JlbW92ZWRBbmltYXRpb25JZHMpCisgICAgICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5hbmltYXRpb25EZXN0cm95ZWQoaWRlbnRpZmllcik7CisKKyAgICBtX3JlbW92
ZWRBbmltYXRpb25JZHMuY2xlYXIoKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6cmVzZXQoKQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKworICAgIG1fcmVt
b3ZlZEFuaW1hdGlvbklkcy5jbGVhcigpOworCisgICAgaWYgKG1fYW5pbWF0aW9uRGVzdHJveWVk
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5zdG9w
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0b3BUcmFja2luZ0RlY2xh
cmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZlQW5pbWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlv
bkFnZW50LmgKaW5kZXggN2EyNGJiY2JiMWIzMzFkMTkwZGE2MGMwMGQyMWJkOTM1NDhmYWIwMC4u
MTAwMGM5NTgwOWE3ZTgwODI1YTU1ZjE4MTE0Njk0OTE2ZmI3OGE4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQuaApAQCAtMjcsMTYgKzI3LDIwIEBACiAKICNpbmNsdWRlICJDb21wdXRlZEVmZmVjdFRpbWlu
Zy5oIgogI2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgorI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVy
cy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgQW5pbWF0aW9uRWZmZWN0OwogY2xhc3MgRGVjbGFyYXRpdmVBbmltYXRpb247CiBjbGFz
cyBFbGVtZW50OwogY2xhc3MgRXZlbnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIEtleWZyYW1lRWZm
ZWN0OworY2xhc3MgUGFnZTsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKIAogdHlwZWRlZiBTdHJpbmcg
RXJyb3JTdHJpbmc7CkBAIC01MywyMCArNTcsNDQgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVy
cmlkZTsKIAogICAgIC8vIEFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGludCogbm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lk
IHJlc29sdmVBbmltYXRpb24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklk
LCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6
UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRUcmFja2lu
ZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3Ry
aW5nJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2
b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENv
bXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVj
dChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJB
bmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhX
ZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdl
dChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmlt
YXRpb24mKTsKICAgICB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYp
OworICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmKTsKIAogcHJpdmF0ZToKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q+IGJ1aWxkT2JqZWN0Rm9y
RWZmZWN0KEFuaW1hdGlvbkVmZmVjdCopOworCisgICAgU3RyaW5nIGZpbmRBbmltYXRpb25JZChX
ZWJBbmltYXRpb24mKTsKKyAgICBXZWJBbmltYXRpb24qIGFzc2VydEFuaW1hdGlvbihFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOworICAgIHZvaWQgYmluZEFuaW1hdGlv
bihXZWJBbmltYXRpb24mLCBib29sIGNhcHR1cmVCYWNrdHJhY2UpOworICAgIHZvaWQgdW5iaW5k
QW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOworICAgIHZvaWQgYW5pbWF0aW9u
RGVzdHJveWVkVGltZXJGaXJlZCgpOworICAgIHZvaWQgcmVzZXQoKTsKKwogICAgIHZvaWQgc3Rv
cFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mKTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0Y2hl
cj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6QW5pbWF0aW9u
QmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiAKKyAgICBJbnNwZWN0b3I6
OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CisgICAgUGFn
ZSYgbV9pbnNwZWN0ZWRQYWdlOworCisgICAgSGFzaE1hcDxTdHJpbmcsIFdlYkFuaW1hdGlvbio+
IG1fYW5pbWF0aW9uSWRNYXA7CisgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkQW5pbWF0aW9u
SWRzOworICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXI7CisKICAgICBzdHJ1Y3Qg
VHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0aW9uRGF0YSB7CiAgICAgICAgIFN0cmluZyB0cmFja2lu
Z0FuaW1hdGlvbklkOwogICAgICAgICBDb21wdXRlZEVmZmVjdFRpbWluZyBsYXN0Q29tcHV0ZWRU
aW1pbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCmluZGV4IGFlY2M3OWJjMGNhNTZmYjY1ZmUwMzMwZjA4ZTRlZTY4OGJm
ODFlODkuLjBmNDZhMzAzM2FlZjQwMDdmNmViODM3YTYxMDVmMDVhMGM1OTA2N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCkBAIC01NjYsNyArNTY2LDcgQEAgaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRv
RnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1lbnQKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9k
ZVRvUHVzaCk7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcs
IG5vZGVUb1B1c2gpOwogfQogCiBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvcklkKGlu
dCBpZCkKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNl
bGVjdG9yKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29ucwogICAgIH0K
IAogICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcXVlcnlSZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpCi0gICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVsZW1lbnQp
OworICAgICAgICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmlu
ZywgZWxlbWVudCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3JB
bGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNl
bGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mIHJlc3VsdCkKQEAgLTYzOSwxMyAr
NjM5LDI0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjCiB9CiAKIGludCBJbnNwZWN0b3JET01B
Z2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKiBub2RlVG9QdXNoKQoreworICAgIEVy
cm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoaWdu
b3JlZCwgbm9kZVRvUHVzaCk7Cit9CisKK2ludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyBlcnJvclN0cmluZywgTm9kZSogbm9kZVRvUHVzaCkK
IHsKICAgICBBU1NFUlQobm9kZVRvUHVzaCk7ICAvLyBJbnZhbGlkIGlucHV0CiAKLSAgICBpZiAo
IW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3VtZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5n
ID0gIk1pc3NpbmcgZG9jdW1lbnQiX3M7CiAgICAgICAgIHJldHVybiAwOwotICAgIGlmICghbV9k
b2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1lbnQpKQorICAgIH0KKworICAgIGlm
ICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1lbnQpKSB7CisgICAgICAg
IGVycm9yU3RyaW5nID0gIkRvY3VtZW50IG11c3QgaGF2ZSBiZWVuIHJlcXVlc3RlZCJfczsKICAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgLy8gUmV0dXJuIGlkIGluIGNhc2UgdGhlIG5v
ZGUgaXMga25vd24uCiAgICAgaW50IHJlc3VsdCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQo
bm9kZVRvUHVzaCk7CkBAIC03OTAsNyArODAxLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdAog
ICAgIGlmICghbV9kb21FZGl0b3ItPnJlbW92ZUNoaWxkKCpwYXJlbnQsICpvbGROb2RlLCBlcnJv
clN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgICpuZXdJZCA9IHB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQobmV3RWxlbWVudC5wdHIoKSk7CisgICAgKm5ld0lkID0gcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChlcnJvclN0cmluZywgbmV3RWxlbWVudC5wdHIoKSk7CiAgICAgaWYgKG1fY2hpbGRy
ZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkKICAgICAgICAgcHVzaENoaWxkTm9kZXNUb0Zy
b250ZW5kKCpuZXdJZCk7CiB9CkBAIC04MzAsNyArODQxLDcgQEAgdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwg
Y29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCBuZXdJZCA9IHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7CisgICAgaW50IG5ld0lkID0gcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChlcnJvclN0cmluZywgbmV3Tm9kZSk7CiAKICAgICBib29sIGNoaWxkcmVuUmVxdWVz
dGVkID0gbV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhub2RlSWQpOwogICAgIGlmIChjaGls
ZHJlblJlcXVlc3RlZCkKQEAgLTE0MjIsNyArMTQzMyw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6Om1vdmVUbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGludCB0YXJn
ZXRFCiAgICAgaWYgKCFtX2RvbUVkaXRvci0+aW5zZXJ0QmVmb3JlKCp0YXJnZXRFbGVtZW50LCAq
bm9kZSwgYW5jaG9yTm9kZSwgZXJyb3JTdHJpbmcpKQogICAgICAgICByZXR1cm47CiAKLSAgICAq
bmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAqbmV3Tm9kZUlk
ID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnVuZG8oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQpAQCAtMTQ5
OCwxMSArMTUwOSwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRBdHRyaWJ1dGVzKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgUmVmUAogICAgIHJlc3VsdCA9IGJ1
aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhlbGVtZW50KTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG9iamVj
dElkLCBpbnQqIG5vZGVJZCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2Rl
SWQpCiB7CiAgICAgTm9kZSogbm9kZSA9IG5vZGVGb3JPYmplY3RJZChvYmplY3RJZCk7CiAgICAg
aWYgKG5vZGUpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUp
OworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywg
bm9kZSk7CiAgICAgZWxzZQogICAgICAgICAqbm9kZUlkID0gMDsKIH0KQEAgLTI2NDYsNyArMjY1
Nyw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yT2JqZWN0SWQoY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCkKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9G
cm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50
KiBub2RlSWQpCiB7CiAgICAgaWYgKE5vZGUqIG5vZGUgPSBub2RlRm9yUGF0aChwYXRoKSkKLSAg
ICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAgICAgICpu
b2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKICAgICBl
bHNlCiAgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgbm9kZSBmb3IgZ2l2ZW4gcGF0aCJf
czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuaAppbmRleCA1MTYzOWFiZWI4NGY0ZDk1ZGVkM2Y0ZmI2NDA5YWQ4ZjYyYTI4OTRl
Li43ZGYwZTgzZWI1M2Q3NWM0MWM1NTRmMTQwMTIzNWJhMjE3MTk0MTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0x
ODAsNiArMTgwLDggQEAgcHVibGljOgogCiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChOb2Rl
Kik7CiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYsIGludCBkb2N1bWVu
dE5vZGVJZCwgTm9kZSopOworICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsK
KyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZywgTm9kZSopOwogICAg
IE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsKICAgICBpbnQgYm91bmROb2RlSWQoY29uc3Qg
Tm9kZSopOwogCkBAIC0yMTcsNyArMjE5LDYgQEAgcHJpdmF0ZToKICAgICBOb2RlKiBhc3NlcnRF
ZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKICAgICBFbGVtZW50KiBhc3Nl
cnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKIAotICAgIGludCBw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKICAgICB2b2lkIHB1c2hDaGlsZE5vZGVzVG9G
cm9udGVuZChpbnQgbm9kZUlkLCBpbnQgZGVwdGggPSAxKTsKIAogICAgIFJlZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiwgaW50IGRlcHRo
LCBOb2RlVG9JZE1hcCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggZTUx
OTU2YTQ0ODk0ZDkxNTIyZTc2YTRlMmU2NDMzYTRmZWExZTFjOC4uNmFiN2FlYTk2ODdlMjBlZmI0
NWMwY2ZkY2YwOGM4ZjkxMTZjMzI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CkBAIC04NCw2ICs4NCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkFjY2Vzc2liaWxpdHkiXSA9ICJB
Y2Nlc3NpYmlsaXR5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFjdGlvbiJdID0gIkFjdGlvbiI7CiAv
KiBUb29sdGlwIGZvciBhIHRpbWUgcmFuZ2UgYmFyIHRoYXQgcmVwcmVzZW50cyB3aGVuIGEgQ1NT
IGFuaW1hdGlvbi90cmFuc2l0aW9uIGlzIHJ1bm5pbmcgKi8KIGxvY2FsaXplZFN0cmluZ3NbIkFj
dGl2ZSJdID0gIkFjdGl2ZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBY3RpdmUgRHVyYXRpb24iXSA9
ICJBY3RpdmUgRHVyYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siQWN0aXZpdHkgVmlld2VyIl0g
PSAiQWN0aXZpdHkgVmlld2VyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCJdID0gIkFkZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBZGQgJXMgUnVsZSJdID0gIkFkZCAlcyBSdWxlIjsKQEAgLTEyMCwx
NyArMTIxLDIyIEBAIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAy
MiBtdXN0IGJlIGVycm9yIG9iamVjdHMiXSA9ICJBbGwgaXRlCiBsb2NhbGl6ZWRTdHJpbmdzWyJB
bGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSBub24tZW1wdHkgc3RyaW5ncyJdID0g
IkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIG5vbi1lbXB0eSBzdHJpbmdzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIHZh
bGlkIERPTSBub2RlcyJdID0gIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIHZh
bGlkIERPTSBub2RlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGxvdyBNZWRpYSBDYXB0dXJlIG9u
IEluc2VjdXJlIFNpdGVzIl0gPSAiQWxsb3cgTWVkaWEgQ2FwdHVyZSBvbiBJbnNlY3VyZSBTaXRl
cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbHRlcm5hdGUiXSA9ICJBbHRlcm5hdGUiOworbG9jYWxp
emVkU3RyaW5nc1siQWx0ZXJuYXRlIFJldmVyc2UiXSA9ICJBbHRlcm5hdGUgUmV2ZXJzZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUgcmVz
b3VyY2UuIl0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291cmNl
LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gcmVhZCB0
aGUgXHUyMDFDJXNcdTIwMUQgdGFibGUuIl0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRv
IHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRhYmxlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiB1
bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3IgJXMg
b2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJy
ZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iOwogbG9jYWxpemVkU3RyaW5n
c1siQW5nbGUiXSA9ICJBbmdsZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24iXSA9ICJB
bmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uICVkIl0gPSAiQW5pbWF0aW9u
ICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBDYW5jZWxlZCJdID0g
IkFuaW1hdGlvbiBGcmFtZSAlZCBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRp
b24gRnJhbWUgJWQgRmlyZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgRmlyZWQiOwogbG9jYWxp
emVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCJdID0gIkFuaW1hdGlvbiBG
cmFtZSAlZCBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lIENh
bmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIENhbmNlbGVkIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkFuaW1hdGlvbiBGcmFtZSBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBGaXJlZCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIl0gPSAiQW5pbWF0aW9uIEZy
YW1lIFJlcXVlc3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gVGFyZ2V0Il0gPSAi
QW5pbWF0aW9uIFRhcmdldCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU2NyaXB0ICVk
Il0gPSAiQW5vbnltb3VzIFNjcmlwdCAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMg
U2NyaXB0cyJdID0gIkFub255bW91cyBTY3JpcHRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFub255
bW91cyBTdHlsZSBTaGVldCAlZCJdID0gIkFub255bW91cyBTdHlsZSBTaGVldCAlZCI7CkBAIC0x
NjksMTYgKzE3NSwxOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBdmVyYWdlOiAlcyJdID0gIkF2ZXJh
Z2U6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJNUCJdID0gIkJNUCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJCYWNrICglcykiXSA9ICJCYWNrICglcykiOwogbG9jYWxpemVkU3RyaW5nc1siQmFja3Ry
YWNlIl0gPSAiQmFja3RyYWNlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkJhY2t3YXJkcyJdID0gIkJh
Y2t3YXJkcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCYXNpYyJdID0gIkJhc2ljIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkJlYWNvbiJdID0gIkJlYWNvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCZWFjb25z
Il0gPSAiQmVhY29ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCaW5hcnkgRnJhbWUiXSA9ICJCaW5h
cnkgRnJhbWUiOwogbG9jYWxpemVkU3RyaW5nc1siQmluZGluZyJdID0gIkJpbmRpbmciOworbG9j
YWxpemVkU3RyaW5nc1siQml0bWFwIFJlbmRlcmVyIl0gPSAiQml0bWFwIFJlbmRlcmVyIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkJsYWNrYm94Il0gPSAiQmxhY2tib3giOwogbG9jYWxpemVkU3RyaW5n
c1siQmxhY2tib3ggU2NyaXB0Il0gPSAiQmxhY2tib3ggU2NyaXB0IjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkJsYWNrYm94IHNjcmlwdCB0byBpZ25vcmUgaXQgd2hlbiBkZWJ1Z2dpbmciXSA9ICJCbGFj
a2JveCBzY3JpcHQgdG8gaWdub3JlIGl0IHdoZW4gZGVidWdnaW5nIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkJsb2NrIFZhcmlhYmxlcyJdID0gIkJsb2NrIFZhcmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJCb2R5OiJdID0gIkJvZHk6IjsKK2xvY2FsaXplZFN0cmluZ3NbIkJvdGgiXSA9ICJCb3Ro
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJvdW5kYXJ5Il0gPSAiQm91bmRhcnkiOwogbG9jYWxpemVk
U3RyaW5nc1siQm94IE1vZGVsIl0gPSAiQm94IE1vZGVsIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJy
ZWFrIG9uIl0gPSAiQnJlYWsgb24iOwpAQCAtMjAxLDkgKzIxMCwxMSBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJDUFUiXSA9ICJDUFUiOwogbG9jYWxpemVkU3RyaW5nc1siQ1BVIFVzYWdlIl0gPSAiQ1BV
IFVzYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUCBIYXNoIl0gPSAiQ1NQIEhhc2giOwogbG9j
YWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbiJdID0gIkNTUyBBbmltYXRpb24iOworbG9jYWxp
emVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbnMiXSA9ICJDU1MgQW5pbWF0aW9ucyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJDU1MgQ2FudmFzIl0gPSAiQ1NTIENhbnZhcyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDU1MgQ2hhbmdlczoiXSA9ICJDU1MgQ2hhbmdlczoiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NT
IFRyYW5zaXRpb24iXSA9ICJDU1MgVHJhbnNpdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDU1Mg
VHJhbnNpdGlvbnMiXSA9ICJDU1MgVHJhbnNpdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NT
IGNhbnZhcyBcdTIwMUMlc1x1MjAxRCJdID0gIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIwMUQiOwog
bG9jYWxpemVkU3RyaW5nc1siQ2FjaGVkIl0gPSAiQ2FjaGVkIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkNhbGwgRnJhbWVzIFRydW5jYXRlZCJdID0gIkNhbGwgRnJhbWVzIFRydW5jYXRlZCI7CkBAIC0z
NzcsNiArMzg4LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRGV2aWNlICVkIl0gPSAiRGV2aWNlICVk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRldmljZSBTZXR0aW5ncyJdID0gIkRldmljZSBTZXR0aW5n
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaWFnbm9zZXMgY29tbW9uIGFjY2Vzc2liaWxpdHkgcHJv
YmxlbXMgYWZmZWN0aW5nIHNjcmVlbiByZWFkZXJzIGFuZCBvdGhlciBhc3Npc3RpdmUgdGVjaG5v
bG9neS4iXSA9ICJEaWFnbm9zZXMgY29tbW9uIGFjY2Vzc2liaWxpdHkgcHJvYmxlbXMgYWZmZWN0
aW5nIHNjcmVlbiByZWFkZXJzIGFuZCBvdGhlciBhc3Npc3RpdmUgdGVjaG5vbG9neS4iOwogbG9j
YWxpemVkU3RyaW5nc1siRGltZW5zaW9ucyJdID0gIkRpbWVuc2lvbnMiOworbG9jYWxpemVkU3Ry
aW5nc1siRGlyZWN0aW9uIl0gPSAiRGlyZWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2Fi
bGUgQnJlYWtwb2ludCJdID0gIkRpc2FibGUgQnJlYWtwb2ludCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJEaXNhYmxlIEJyZWFrcG9pbnRzIl0gPSAiRGlzYWJsZSBCcmVha3BvaW50cyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJEaXNhYmxlIERlc2NlbmRhbnQgQnJlYWtwb2ludHMiXSA9ICJEaXNhYmxlIERl
c2NlbmRhbnQgQnJlYWtwb2ludHMiOwpAQCAtNDE5LDYgKzQzMSw3IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIkR1cmF0aW9uOiBTaG9ydCJdID0gIkR1cmF0aW9uOiBTaG9ydCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgcGFyZW50IGVsZW1lbnQiXSA9ICJE
eW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgcGFyZW50IGVsZW1lbnQiOwogbG9jYWxpemVk
U3RyaW5nc1siRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQi
XSA9ICJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0ZWQgZWxlbWVudCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0ZWQg
ZWxlbWVudCBhbmQgZGlkIG5vdCBtYXRjaCJdID0gIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9y
IHRoZSBzZWxlY3RlZCBlbGVtZW50IGFuZCBkaWQgbm90IG1hdGNoIjsKK2xvY2FsaXplZFN0cmlu
Z3NbIkVhc2luZyJdID0gIkVhc2luZyI7CiAvKiBMYWJlbCBmb3IgYSBndWlkZSB3aXRoaW4gdGhl
IGNvbG9yIHBpY2tlciAqLwogbG9jYWxpemVkU3RyaW5nc1siRWRnZSBvZiBzUkdCIGNvbG9yIHNw
YWNlIl0gPSAiRWRnZSBvZiBzUkdCIGNvbG9yIHNwYWNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVk
aXQiXSA9ICJFZGl0IjsKQEAgLTQzMCw2ICs0NDMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0
IFx1MjAxQ3NwcmluZ1x1MjAxRCBmdW5jdGlvbiJdID0gIkVkaXQgXHUyMDFDc3ByaW5nXHUyMDFE
CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0IGNvbmZpZ3VyYXRpb24iXSA9ICJFZGl0IGNvbmZpZ3Vy
YXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCBjdXN0b20gZ3JhZGllbnQiXSA9ICJFZGl0
IGN1c3RvbSBncmFkaWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0aW5nIGF1ZGl0cyJdID0g
IkVkaXRpbmcgYXVkaXRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkVmZmVjdCJdID0gIkVmZmVjdCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50Il0gPSAiRWxlbWVudCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJFbGVtZW50IFNlbGVjdGlvbjoiXSA9ICJFbGVtZW50IFNlbGVjdGlvbjoiOwogbG9jYWxp
emVkU3RyaW5nc1siRWxlbWVudCBjbGlwcyBjb21wb3NpdGluZyBkZXNjZW5kYW50cyJdID0gIkVs
ZW1lbnQgY2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiOwpAQCAtNDc4LDYgKzQ5Miw4IEBA
IGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBzb3VyY2UgbWFwcyJdID0gIkVuYWJsZSBzb3VyY2Ug
bWFwcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGVkIl0gPSAiRW5hYmxlZCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJFbmNvZGVkIl0gPSAiRW5jb2RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmNv
ZGluZyJdID0gIkVuY29kaW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIkVuZCBEZWxheSJdID0gIkVu
ZCBEZWxheSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbmQgRGVsYXkgJXMiXSA9ICJFbmQgRGVsYXkg
JXMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5lcmd5IEltcGFjdCJdID0gIkVuZXJneSBJbXBhY3Qi
OwogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIGFyaWEtaGlkZGVuPVx1MDAyMiVzXHUwMDIyIGlz
IG5vdCB1c2VkLiJdID0gIkVuc3VyZSBhcmlhLWhpZGRlbj1cdTAwMjIlc1x1MDAyMiBpcyBub3Qg
dXNlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIHRoYXQgXHUwMDIyJXNcdTAwMjIgaXMg
c3BlbGxlZCBjb3JyZWN0bHkuIl0gPSAiRW5zdXJlIHRoYXQgXHUwMDIyJXNcdTAwMjIgaXMgc3Bl
bGxlZCBjb3JyZWN0bHkuIjsKQEAgLTUzNyw2ICs1NTMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJG
ZXRjaCJdID0gIkZldGNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZldGNoZXMiXSA9ICJGZXRjaGVz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGUgb3IgUmVzb3VyY2UiXSA9ICJGaWxlIG9yIFJlc291
cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGVuYW1lIl0gPSAiRmlsZW5hbWUiOworbG9jYWxp
emVkU3RyaW5nc1siRmlsbCJdID0gIkZpbGwiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsdGVyIl0g
PSAiRmlsdGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbHRlciBGdWxsIFVSTCJdID0gIkZpbHRl
ciBGdWxsIFVSTCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWx0ZXI6Il0gPSAiRmlsdGVyOiI7CkBA
IC01NjUsNiArNTgyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRm9ybWF0OiBSR0JBIl0gPSAiRm9y
bWF0OiBSR0JBIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZvcm1hdDogU2hvcnQgSGV4Il0gPSAiRm9y
bWF0OiBTaG9ydCBIZXgiOwogbG9jYWxpemVkU3RyaW5nc1siRm9ybWF0OiBTaG9ydCBIZXggd2l0
aCBBbHBoYSJdID0gIkZvcm1hdDogU2hvcnQgSGV4IHdpdGggQWxwaGEiOwogbG9jYWxpemVkU3Ry
aW5nc1siRm9yd2FyZCAoJXMpIl0gPSAiRm9yd2FyZCAoJXMpIjsKK2xvY2FsaXplZFN0cmluZ3Nb
IkZvcndhcmRzIl0gPSAiRm9yd2FyZHMiOwogbG9jYWxpemVkU3RyaW5nc1siRnJhZ21lbnQiXSA9
ICJGcmFnbWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGcmFnbWVudCBTaGFkZXIiXSA9ICJGcmFn
bWVudCBTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siRnJhbWUgJWQiXSA9ICJGcmFtZSAlZCI7
CkBAIC01ODUsNiArNjAzLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIENvZGUiXSA9ICJH
bG9iYWwgQ29kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVu
dCJdID0gIkdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkds
b2JhbCBWYXJpYWJsZXMiXSA9ICJHbG9iYWwgVmFyaWFibGVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkdyYW1tYXIiXSA9ICJHcmFtbWFyIjsKK2xvY2FsaXplZFN0cmluZ3NbIkdyYXBoaWNzIl0gPSAi
R3JhcGhpY3MiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAiXSA9ICJHcm91cCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJHcm91cCBCeSBSZXNvdXJjZSJdID0gIkdyb3VwIEJ5IFJlc291cmNlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkdyb3VwIE1lZGlhIFJlcXVlc3RzIl0gPSAiR3JvdXAgTWVkaWEgUmVx
dWVzdHMiOwpAQCAtNjMzLDYgKzY1Miw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkltYWdlcyJdID0g
IkltYWdlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXM6Il0gPSAiSW1hZ2VzOiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIl0gPSAiSW1tZWRpYXRlIFBh
dXNlIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQiXSA9ICJJbXBvcnQiOwor
bG9jYWxpemVkU3RyaW5nc1siSW1wb3J0IFJlY29yZGluZyJdID0gIkltcG9ydCBSZWNvcmRpbmci
OwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQiXSA9ICJJbXBvcnRlZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJJbXBvcnRlZCAtICVzIl0gPSAiSW1wb3J0ZWQgLSAlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJJbXBvcnRlZCBcdTIwMTQgJXMiXSA9ICJJbXBvcnRlZCBcdTIwMTQgJXMiOwpAQCAtNjYx
LDYgKzY4MSw5IEBAIGxvY2FsaXplZFN0cmluZ3NbIkludm9rZSBnZXR0ZXIiXSA9ICJJbnZva2Ug
Z2V0dGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkl0IGlzIGV2YWx1YXRlZCBpbW1lZGlhdGVseSBh
ZnRlciB0aGUgZ2xvYmFsIG9iamVjdCBpcyBjcmVhdGVkLCBiZWZvcmUgYW55IG90aGVyIGNvbnRl
bnQgaGFzIGxvYWRlZC4iXSA9ICJJdCBpcyBldmFsdWF0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhl
IGdsb2JhbCBvYmplY3QgaXMgY3JlYXRlZCwgYmVmb3JlIGFueSBvdGhlciBjb250ZW50IGhhcyBs
b2FkZWQuIjsKIC8qIFRvb2x0aXAgZm9yIGEgdGltZXN0YW1wIG1hcmtlciB0aGF0IHJlcHJlc2Vu
dHMgd2hlbiBhIENTUyBhbmltYXRpb24vdHJhbnNpdGlvbiBpdGVyYXRlcyAqLwogbG9jYWxpemVk
U3RyaW5nc1siSXRlcmF0aW9uIl0gPSAiSXRlcmF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkl0
ZXJhdGlvbiBEdXJhdGlvbiJdID0gIkl0ZXJhdGlvbiBEdXJhdGlvbiI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJJdGVyYXRpb24gU3RhcnQiXSA9ICJJdGVyYXRpb24gU3RhcnQiOworbG9jYWxpemVkU3Ry
aW5nc1siSXRlcmF0aW9ucyJdID0gIkl0ZXJhdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siSlAy
Il0gPSAiSlAyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkpQRUciXSA9ICJKUEVHIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkphdmFTY3JpcHQiXSA9ICJKYXZhU2NyaXB0IjsKQEAgLTY5Nyw2ICs3MjAsNyBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBTdG9yYWdlIl0gPSAiTG9jYWwgU3RvcmFnZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBWYXJpYWJsZXMiXSA9ICJMb2NhbCBWYXJpYWJsZXMiOwog
bG9jYWxpemVkU3RyaW5nc1siTG9jYXRlZCBhdCAlcyJdID0gIkxvY2F0ZWQgYXQgJXMiOwogbG9j
YWxpemVkU3RyaW5nc1siTG9jYXRpb24iXSA9ICJMb2NhdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdz
WyJMb2cgQW5pbWF0aW9uIl0gPSAiTG9nIEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJM
b2cgQ2FudmFzIENvbnRleHQiXSA9ICJMb2cgQ2FudmFzIENvbnRleHQiOwogLyogTG9nIChwcmlu
dCkgRE9NIGVsZW1lbnQgdG8gQ29uc29sZSAqLwogbG9jYWxpemVkU3RyaW5nc1siTG9nIEVsZW1l
bnQiXSA9ICJMb2cgRWxlbWVudCI7CkBAIC03OTksNiArODIzLDcgQEAgbG9jYWxpemVkU3RyaW5n
c1siTm9kZSJdID0gIk5vZGUiOwogbG9jYWxpemVkU3RyaW5nc1siTm9kZSBSZW1vdmVkIl0gPSAi
Tm9kZSBSZW1vdmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vZGVzIl0gPSAiTm9kZXMiOwogbG9j
YWxpemVkU3RyaW5nc1siTm9uZSJdID0gIk5vbmUiOworbG9jYWxpemVkU3RyaW5nc1siTm9ybWFs
Il0gPSAiTm9ybWFsIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vdCBmb3VuZCJdID0gIk5vdCBmb3Vu
ZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPYmplY3QgR3JhcGgiXSA9ICJPYmplY3QgR3JhcGgiOwog
bG9jYWxpemVkU3RyaW5nc1siT2JqZWN0IFN0b3JlIl0gPSAiT2JqZWN0IFN0b3JlIjsKQEAgLTkx
Miw3ICs5MzcsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZWRpcmVjdHMiXSA9ICJSZWRpcmVjdHMi
OwogbG9jYWxpemVkU3RyaW5nc1siUmVmZXJlbmNlIElzc3VlIl0gPSAiUmVmZXJlbmNlIElzc3Vl
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZmxlY3Rpb24iXSA9ICJSZWZsZWN0aW9uIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlZnJlc2giXSA9ICJSZWZyZXNoIjsKLWxvY2FsaXplZFN0cmluZ3NbIlJl
ZnJlc2ggYWxsIl0gPSAiUmVmcmVzaCBhbGwiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCB3
YXRjaCBleHByZXNzaW9ucyJdID0gIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiOwogbG9jYWxp
emVkU3RyaW5nc1siUmVnaW9uIGFubm91bmNlZCBpbiBpdHMgZW50aXJldHkuIl0gPSAiUmVnaW9u
IGFubm91bmNlZCBpbiBpdHMgZW50aXJldHkuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ3VsYXIg
RXhwcmVzc2lvbiJdID0gIlJlZ3VsYXIgRXhwcmVzc2lvbiI7CkBAIC05ODAsNiArMTAwNCw3IEBA
IGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBOZXR3b3JrIFRhYiJdID0gIlJldmVhbCBpbiBO
ZXR3b3JrIFRhYiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gT3JpZ2luYWwgUmVzb3Vy
Y2UiXSA9ICJSZXZlYWwgaW4gT3JpZ2luYWwgUmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1si
UmV2ZWFsIGluIFNvdXJjZXMgVGFiIl0gPSAiUmV2ZWFsIGluIFNvdXJjZXMgVGFiIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJldmVhbCBpbiBTdHlsZSBTaGVldCJdID0gIlJldmVhbCBpbiBTdHlsZSBT
aGVldCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlcnNlIl0gPSAiUmV2ZXJzZSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJSb2xlIl0gPSAiUm9sZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSdW4gJWQiXSA9
ICJSdW4gJWQiOwogbG9jYWxpemVkU3RyaW5nc1siUnVuIGNvbnNvbGUgY29tbWFuZHMgYXMgaWYg
aW5zaWRlIGEgdXNlciBnZXN0dXJlIl0gPSAiUnVuIGNvbnNvbGUgY29tbWFuZHMgYXMgaWYgaW5z
aWRlIGEgdXNlciBnZXN0dXJlIjsKQEAgLTEwMjIsNiArMTA0Nyw3IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIlNlY3VyaXR5IE9yaWdpbiJdID0gIlNlY3VyaXR5IE9yaWdpbiI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiXSA9ICJTZWxlY3QgYmFzZWxpbmUgc25hcHNo
b3QiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiXSA9ICJT
ZWxlY3QgY29tcGFyaXNvbiBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCJd
ID0gIlNlbGVjdGVkIjsKK2xvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIEFuaW1hdGlvbiJdID0g
IlNlbGVjdGVkIEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBDYW52YXMg
Q29udGV4dCJdID0gIlNlbGVjdGVkIENhbnZhcyBDb250ZXh0IjsKIC8qIFNlbGVjdGVkIERPTSBl
bGVtZW50ICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBFbGVtZW50Il0gPSAiU2VsZWN0
ZWQgRWxlbWVudCI7CkBAIC0xMTA2LDYgKzExMzIsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTcGVs
bGluZyJdID0gIlNwZWxsaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YWdpbmc6Il0gPSAiU3Rh
Z2luZzoiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhbGxlZCJdID0gIlN0YWxsZWQiOwogbG9jYWxp
emVkU3RyaW5nc1siU3RhcnQiXSA9ICJTdGFydCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBE
ZWxheSJdID0gIlN0YXJ0IERlbGF5IjsKK2xvY2FsaXplZFN0cmluZ3NbIlN0YXJ0IERlbGF5ICVz
Il0gPSAiU3RhcnQgRGVsYXkgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgVGltZSJdID0g
IlN0YXJ0IFRpbWUiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgZWxlbWVudCBzZWxlY3Rpb24g
KCVzKSJdID0gIlN0YXJ0IGVsZW1lbnQgc2VsZWN0aW9uICglcykiOwogbG9jYWxpemVkU3RyaW5n
c1siU3RhcnQgcmVjb3JkaW5nICglcylcbkNyZWF0ZSBuZXcgcmVjb3JkaW5nICglcykiXSA9ICJT
dGFydCByZWNvcmRpbmcgKCVzKVxuQ3JlYXRlIG5ldyByZWNvcmRpbmcgKCVzKSI7CkBAIC0xMTc4
LDYgKzEyMDYsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJUaGVzZSB0ZXN0cyBzZXJ2ZSBhcyBhIGRl
bW9uc3RyYXRpb24gb2YgdGhlIGZ1bmN0aW9uYWxpdHkgYW5kCiBsb2NhbGl6ZWRTdHJpbmdzWyJU
aGlzIFJlc291cmNlIGNhbWUgZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIl0gPSAiVGhp
cyBSZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSJdID0gIlRoaXMg
YWN0aW9uIGNhdXNlcyBubyB2aXN1YWwgY2hhbmdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMg
YWN0aW9uIG1vdmVzIHRoZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSJdID0gIlRoaXMg
YWN0aW9uIG1vdmVzIHRoZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJUaGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIl0gPSAiVGhpcyBhbmlt
YXRpb24gaGFzIG5vIGR1cmF0aW9uLiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFuaW1hdGlv
biBoYXMgbm8ga2V5ZnJhbWVzLiJdID0gIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMu
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYXVkaXQgaXMgbm90IHN1cHBvcnRlZCJdID0gIlRo
aXMgYXVkaXQgaXMgbm90IHN1cHBvcnRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFu
IGV4YW1wbGUgb2YgaG93IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4iXSA9ICJUaGlzIGlz
IGFuIGV4YW1wbGUgb2YgaG93IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4iOwogbG9jYWxp
emVkU3RyaW5nc1siVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBlcnJvcnMgYXJlIHNob3duLiBU
aGUgZXJyb3Igd2FzIHRocm93biBtYW51YWxseSwgYnV0IGV4ZWN1dGlvbiBlcnJvcnMgd2lsbCBh
cHBlYXIgaW4gdGhlIHNhbWUgd2F5LiJdID0gIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJy
b3JzIGFyZSBzaG93bi4gVGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRp
b24gZXJyb3JzIHdpbGwgYXBwZWFyIGluIHRoZSBzYW1lIHdheS4iOwpAQCAtMTI5MCwxMiArMTMy
MCwxNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3IFNoYWRlciJdID0gIlZpZXcgU2hhZGVyIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlZpZXdwb3J0Il0gPSAiVmlld3BvcnQiOwogbG9jYWxpemVkU3Ry
aW5nc1siVmlzaWJsZSJdID0gIlZpc2libGUiOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyJd
ID0gIldhaXRpbmciOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBj
cmVhdGVkIGJ5IENTUy4iXSA9ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NT
LiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdC4iXSA9ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNj
cmlwdC4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNy
ZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iXSA9ICJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMg
Y3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZv
ciBmcmFtZXNcdTIwMjYiXSA9ICJXYWl0aW5nIGZvciBmcmFtZXNcdTIwMjYiOworbG9jYWxpemVk
U3RyaW5nc1siV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2Fp
dGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ildhcm5pbmc6ICJdID0gIldhcm5pbmc6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXJuaW5ncyJd
ID0gIldhcm5pbmdzIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhdGNoIEV4cHJlc3Npb25zIl0gPSAi
V2F0Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siV2F0ZXJmYWxsIl0gPSAiV2F0
ZXJmYWxsIjsKK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24iXSA9ICJXZWIgQW5pbWF0
aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb25zIl0gPSAiV2ViIEFuaW1hdGlv
bnMiOwogbG9jYWxpemVkU3RyaW5nc1siV2ViIEluc3BlY3RvciJdID0gIldlYiBJbnNwZWN0b3Ii
OwogbG9jYWxpemVkU3RyaW5nc1siV2ViIFBhZ2UiXSA9ICJXZWIgUGFnZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJXZWJLaXQgVGhyZWFkcyJdID0gIldlYktpdCBUaHJlYWRzIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCBlOWViZDY4
YTVkNzg0ZDVlZTE5ZjAwYjNiZGI0MzlmMTUzY2Q2YzE3Li42YjBjMTQ2YThhNzI3ZWY5MTI1MGI5
ZWJjOGQ5ZGZhNmY2YTZmZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0xMjMsNiArMTIzLDcgQEAgV0kubG9hZGVkID0gZnVu
Y3Rpb24oKQogICAgICAgICBXSS53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIs
CiAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFn
ZXIsCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAg
ICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAg
IF07CiAKICAgICAvLyBSZWdpc3RlciBmb3IgZXZlbnRzLgpAQCAtMTQ3LDcgKzE0OCw3IEBAIFdJ
LmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LlR5
cGUsCiAgICAgICAgIFdJLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0ku
U3RvcmFnZVRhYkNvbnRlbnRWaWV3LlR5cGUsCi0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRlbnRW
aWV3LlR5cGUsCisgICAgICAgIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAg
ICAgV0kuQXVkaXRUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5Db25zb2xlVGFiQ29u
dGVudFZpZXcuVHlwZSwKICAgICBdKTsKQEAgLTE3Myw2ICsxNzQsMTMgQEAgV0kubG9hZGVkID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgV0kuX3NlbGVjdGVkVGFiSW5kZXhTZXR0aW5nLnZhbHVl
ID0gc291cmNlc0luZGV4OwogICAgIH0KIAorICAgIC8vIENhbnZhcyBUYWIgd2FzIHJlbmFtZWQg
dG8gR3JhcGhpY3MgVGFiLgorICAgIGxldCBjYW52YXNJbmRleCA9IFdJLl9vcGVuVGFic1NldHRp
bmcudmFsdWUuaW5kZXhPZigiY2FudmFzIik7CisgICAgaWYgKGNhbnZhc0luZGV4ID49IDApIHsK
KyAgICAgICAgV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5zcGxpY2UoY2FudmFzSW5kZXgsIDEs
IFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSk7CisgICAgICAgIFdJLl9vcGVuVGFic1Nl
dHRpbmcuc2F2ZSgpOworICAgIH0KKwogICAgIC8vIFN0YXRlLgogICAgIFdJLnByaW50U3R5bGVz
RW5hYmxlZCA9IGZhbHNlOwogICAgIFdJLnNldFpvb21GYWN0b3IoV0kuc2V0dGluZ3Muem9vbUZh
Y3Rvci52YWx1ZSk7CkBAIC00NjUsNyArNDczLDcgQEAgV0kuY29udGVudExvYWRlZCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5UaW1l
bGluZVRhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcsCi0g
ICAgICAgIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LAorICAgICAgICBXSS5HcmFwaGljc1RhYkNv
bnRlbnRWaWV3LAogICAgICAgICBXSS5MYXllcnNUYWJDb250ZW50VmlldywKICAgICAgICAgV0ku
QXVkaXRUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuQ29uc29sZVRhYkNvbnRlbnRWaWV3LApA
QCAtMTIyNiwxMSArMTIzNCw4IEBAIFdJLnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JSZXByZXNlbnRl
ZE9iamVjdCA9IGZ1bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICB8fCByZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgcmV0
dXJuIFdJLkF1ZGl0VGFiQ29udGVudFZpZXc7CiAKLSAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFz
VGFiQ29udGVudFZpZXc7Ci0KLSAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5SZWNvcmRpbmcpCi0gICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50VmlldzsKKyAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMgfHwgcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtIHx8IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gV0kuR3JhcGhpY3NUYWJDb250ZW50VmlldzsK
IAogICAgIHJldHVybiBudWxsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIwOTczN2I4YmUxZDkyY2FmYjJlOGZmNDIxYThmNGE4ODgzNWEzZDQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworLy8gRklYTUU6IEFuaW1hdGlvbk1hbmFnZXIgbGFja3MgYWR2YW5jZWQgbXVsdGktdGFy
Z2V0IHN1cHBvcnQuIChBbmltYXRpb25zIHBlci10YXJnZXQpCisKK1dJLkFuaW1hdGlvbk1hbmFn
ZXIgPSBjbGFzcyBBbmltYXRpb25NYW5hZ2VyCit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsK
KyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9hbmltYXRpb25D
b2xsZWN0aW9uID0gbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAgIHRoaXMuX2Fu
aW1hdGlvbklkTWFwID0gbmV3IE1hcDsKKworICAgICAgICBXSS5GcmFtZS5hZGRFdmVudExpc3Rl
bmVyKFdJLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5faGFuZGxlTWFp
blJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBBZ2VudAorCisgICAg
Z2V0IGRvbWFpbnMoKSB7IHJldHVybiBbIkFuaW1hdGlvbiJdOyB9CisKKyAgICBhY3RpdmF0ZUV4
dHJhRG9tYWluKGRvbWFpbikKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbWFpbiA9
PT0gIkFuaW1hdGlvbiIpOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRz
KQorICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFyZ2V0KHRhcmdldCk7CisgICAgfQorCisg
ICAgLy8gVGFyZ2V0CisKKyAgICBpbml0aWFsaXplVGFyZ2V0KHRhcmdldCkKKyAgICB7CisgICAg
ICAgIGlmICghdGhpcy5fZW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAv
LyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5vdCBleGlz
dCB5ZXQuCisgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmVuYWJsZSIp
KQorICAgICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LmVuYWJsZSgpOworICAgIH0KKwor
ICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHN1cHBvcnRlZCgpCisgICAgeworICAgICAgICAvLyBD
T01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5vdCBleGlzdCB5
ZXQuCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0NvbW1hbmQoIkFuaW1hdGlv
bi5lbmFibGUiKTsKKyAgICB9CisKKyAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShhbmlt
YXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rp
b24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoYW5pbWF0aW9uVHlwZSk7CisgICAgfQorCisg
ICAgZW5hYmxlKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9lbmFibGVk
KTsKKworICAgICAgICB0aGlzLl9lbmFibGVkID0gdHJ1ZTsKKworICAgICAgICBmb3IgKGxldCB0
YXJnZXQgb2YgV0kudGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0
YXJnZXQpOworICAgIH0KKworICAgIGRpc2FibGUoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fZW5hYmxlZCk7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRh
cmdldHMpIHsKKyAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0
aW9uLmRpc2FibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgICAgICBpZiAodGFyZ2V0Lmhh
c0NvbW1hbmQoIkFuaW1hdGlvbi5kaXNhYmxlIikpCisgICAgICAgICAgICAgICAgdGFyZ2V0LkFu
aW1hdGlvbkFnZW50LmRpc2FibGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FuaW1h
dGlvbkNvbGxlY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuY2xl
YXIoKTsKKworICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgLy8g
QW5pbWF0aW9uT2JzZXJ2ZXIKKworICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uUGF5bG9h
ZCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9hbmltYXRpb25JZE1hcC5o
YXMoYW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZCksIGBBbmltYXRpb24gYWxyZWFkeSBleGlz
dHMgd2l0aCBpZCAke2FuaW1hdGlvblBheWxvYWQuYW5pbWF0aW9uSWR9LmApOworCisgICAgICAg
IGxldCBhbmltYXRpb24gPSBXSS5BbmltYXRpb24uZnJvbVBheWxvYWQoYW5pbWF0aW9uUGF5bG9h
ZCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uYWRkKGFuaW1hdGlvbik7Cisg
ICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLnNldChhbmltYXRpb24uYW5pbWF0aW9uSWQsIGFu
aW1hdGlvbik7CisgICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0
KQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLmdl
dChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAg
ICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1h
dGlvbi5lZmZlY3RDaGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZChh
bmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMu
X2FuaW1hdGlvbklkTWFwLmdldChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisg
ICAgYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgbGV0IGFu
aW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLnRha2UoYW5pbWF0aW9uSWQpOworICAgICAg
ICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLnJl
bW92ZShhbmltYXRpb24pOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVN
YWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2Vy
dChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBXSS5GcmFtZSk7CisgICAgICAgIGlmICghZXZlbnQu
dGFyZ2V0LmlzTWFpbkZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgV0ku
QW5pbWF0aW9uLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCk7CisKKyAgICAgICAgdGhp
cy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25J
ZE1hcC5jbGVhcigpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpp
bmRleCAxMzVjMTY2MTNhZTgwMDljMTZlMjcyMmY3MjU4NWM5N2U2OWRkMTE0Li45MDU4MGY0ZWZl
MGY3ZjNhYTk5YzY3YTA3N2UyOTZmMzU0NDA0ZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01h
bmFnZXIuanMKQEAgLTMyLDYgKzMyLDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZh
c01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0
aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24gPSBu
ZXcgV0kuQ2FudmFzQ29sbGVjdGlvbjsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1h
cCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwID0g
bmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzID0gbmV3IFNldDsKQEAgLTc2
LDE4ICs3Nyw5IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVu
ZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdldCBjYW52YXNDb2xsZWN0aW9u
KCkgeyByZXR1cm4gdGhpcy5fY2FudmFzQ29sbGVjdGlvbjsgfQogICAgIGdldCBzYXZlZFJlY29y
ZGluZ3MoKSB7IHJldHVybiB0aGlzLl9zYXZlZFJlY29yZGluZ3M7IH0KIAotICAgIGdldCBjYW52
YXNlcygpCi0gICAgewotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9jYW52YXNJZGVu
dGlmaWVyTWFwLnZhbHVlcygpKTsKLSAgICB9Ci0KLSAgICBnZXQgc2hhZGVyUHJvZ3JhbXMoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50
aWZpZXJNYXAudmFsdWVzKCkpOwotICAgIH0KLQogICAgIGFzeW5jIHByb2Nlc3NKU09OKHtmaWxl
bmFtZSwganNvbiwgZXJyb3J9KQogICAgIHsKICAgICAgICAgaWYgKGVycm9yKSB7CkBAIC0xMzMs
NiArMTI1LDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQuZGlzYWJsZSgp
OwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5jbGVhcigpOwog
ICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgICAgIHRoaXMu
X3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3NhdmVk
UmVjb3JkaW5ncy5jbGVhcigpOwpAQCAtMTYxLDkgKzE1NCw4IEBAIFdJLkNhbnZhc01hbmFnZXIg
PSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCF0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmhhcyhjYW52YXNQYXlsb2FkLmNhbnZh
c0lkKSwgYENhbnZhcyBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7Y2FudmFzUGF5bG9hZC5jYW52
YXNJZH0uYCk7CiAKICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLkNhbnZhcy5mcm9tUGF5bG9hZChj
YW52YXNQYXlsb2FkKTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5hZGQoY2FudmFz
KTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5zZXQoY2FudmFzLmlkZW50aWZp
ZXIsIGNhbnZhcyk7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0ku
Q2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwge2NhbnZhc30pOwogICAgIH0KIAogICAg
IGNhbnZhc1JlbW92ZWQoY2FudmFzSWRlbnRpZmllcikKQEAgLTE3Myw3ICsxNjUsMTQgQEAgV0ku
Q2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5f
cmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIHRoaXMuX3NhdmVSZWNvcmRpbmdzKGNhbnZh
cyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5yZW1vdmUoY2FudmFzKTsKKwor
ICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlv
bikKKyAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmRlbGV0ZShw
cm9ncmFtLmlkZW50aWZpZXIpOworCisgICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVj
dGlvbi5jbGVhcigpOwogICAgIH0KIAogICAgIGNhbnZhc01lbW9yeUNoYW5nZWQoY2FudmFzSWRl
bnRpZmllciwgbWVtb3J5Q29zdCkKQEAgLTI3NSwyMSArMjc0LDE0IEBAIFdJLkNhbnZhc01hbmFn
ZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQcml2
YXRlCiAKLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICBfc2F2ZVJlY29yZGluZ3MoY2Fu
dmFzKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVyUHJv
Z3JhbUNvbGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmll
ck1hcC5kZWxldGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKLQotICAgICAgICBjYW52YXMuc2hhZGVy
UHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIoKTsKLQogICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcg
b2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pIHsKICAgICAgICAgICAgIHJlY29yZGluZy5z
b3VyY2UgPSBudWxsOwogICAgICAgICAgICAgcmVjb3JkaW5nLmNyZWF0ZURpc3BsYXlOYW1lKHJl
Y29yZGluZy5kaXNwbGF5TmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3Mu
YWRkKHJlY29yZGluZyk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB7cmVjb3JkaW5nfSk7CiAg
ICAgICAgIH0KLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHtjYW52YXN9KTsKICAgICB9CiAKICAgICBf
bWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQpAQCAtMzAxLDE1ICsyOTMsMTQgQEAgV0kuQ2Fu
dmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgV0kuQ2FudmFzLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCk7CiAKICAgICAgICAg
Zm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudmFsdWVzKCkpCi0g
ICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgICAgIHRoaXMu
X3NhdmVSZWNvcmRpbmdzKGNhbnZhcyk7CiAKLSAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlk
ZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5jbGVh
cigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7CisgICAgICAg
IHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgfQogfTsKIAog
V0kuQ2FudmFzTWFuYWdlci5FdmVudCA9IHsKLSAgICBDYW52YXNBZGRlZDogImNhbnZhcy1tYW5h
Z2VyLWNhbnZhcy13YXMtYWRkZWQiLAotICAgIENhbnZhc1JlbW92ZWQ6ICJjYW52YXMtbWFuYWdl
ci1jYW52YXMtd2FzLXJlbW92ZWQiLAogICAgIFJlY29yZGluZ1NhdmVkOiAiY2FudmFzLW1hbmFn
ZXItcmVjb3JkaW5nLXNhdmVkIiwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcwppbmRleCAx
YThkZjY4YmJhZGQ4ZGU4YmZmYjM4MDc5NTI2OTI4N2EzYTMzMjQyLi43MTg1NTU4YWQzZTBkOTc5
YmIwMDFkYjhlMTEwM2RiODJhYTllMDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKQEAg
LTMyMyw3ICszMjMsNyBAQCBXSS5ET01NYW5hZ2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogCiAgICAgbm9kZUZvcklkKG5vZGVJZCkKICAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdOworICAgICAgICByZXR1cm4gdGhpcy5faWRUb0RP
TU5vZGVbbm9kZUlkXSB8fCBudWxsOwogICAgIH0KIAogICAgIF9kb2N1bWVudFVwZGF0ZWQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDc2MzNkZTFiYWUwZjQxM2Zl
MTJjZDFjMzYzMzg0YWVmM2ZkODQ2NTkuLjcyOTY5NmYwNDFjMTYyZmY5N2NmYjA5MjQ5N2JiZDE1
YWJmOWZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKQEAgLTc4MSw3
ICs3ODEsNyBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoZXZlbnQu
bm9kZUlkKSB8fCBudWxsOworICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2Vy
Lm5vZGVGb3JJZChldmVudC5ub2RlSWQpOwogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZG9t
Tm9kZSk7CiAKICAgICAgICAgICAgIHJlY29yZCA9IG5ldyBXSS5NZWRpYVRpbWVsaW5lUmVjb3Jk
KGV2ZW50VHlwZSwgZG9tTm9kZSwgZGV0YWlscyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkYmQ2NTdkOTMyNmFhYTBjZTY0ZjZkN2VmMDMxZGY4MTZhZjJjZmU4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pgot
PCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0t
PgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJz
aW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJlY3QgeD0iMS41IiB5PSIyLjUi
IHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3Ii
Lz4KLSAgICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAxMSAzIDEyIDEzIDEyIDEz
IDExIDExIDgiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJkNjU3ZDkzMjZh
YWEwY2U2NGY2ZDdlZjAzMWRmODE2YWYyY2ZlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcKQEAgLTAsMCAr
MSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5
cmlnaHQgwqkgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEi
IHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJlY3QgeD0iMS41IiB5PSIyLjUiIHdpZHRoPSIx
MyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8
cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAxMSAzIDEyIDEzIDEyIDEzIDExIDExIDgi
Lz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sCmluZGV4IGM4MjZkNTFmOTE3N2VkZTRkOWI5NTZiOTdjNTFkNDk4MDYwZWU3MGMuLmNlNDBk
MmU1N2FlYTI2ZmNhZTczZjYyYTM3ODFmNmM3MWM2OGNkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTMwLDYgKzMwLDggQEAKIAogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWly
cm9yLmNzcyI+CiAKKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3
LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdE5hdmln
YXRpb25TaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IlZpZXdzL0F1ZGl0VGVzdENhc2VDb250ZW50Vmlldy5jc3MiPgpAQCAtNTYsNyArNTgsNiBAQAog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzRGV0YWlsc1NpZGVi
YXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hhbmdlc0RldGFpbHNTaWRlYmFyUGFuZWwu
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoYXJ0RGV0YWls
c1NlY3Rpb25Sb3cuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0NoZWNrYm94TmF2aWdhdGlvbkl0ZW0uY3NzIj4KQEAgLTExMyw2ICsxMTQsOCBAQAogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR29Ub0xpbmVEaWFsb2cuY3NzIj4KICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYWRpZW50RWRpdG9yLmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFkaWVudFNsaWRlci5j
c3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguY3Nz
Ij4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0aW9u
c1RpbWVsaW5lVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmll
d3MvSGVhcFNuYXBzaG90SW5zdGFuY2VzQ29udGVudFZpZXcuY3NzIj4KQEAgLTM0OCw2ICszNTEs
NyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9UaW1lbGluZU9ic2VydmVyLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvV29ya2VyT2JzZXJ2ZXIuanMiPjwvc2Ny
aXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CkBAIC0zNjEsNiAr
MzY1LDggQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Mb2NhbFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3QuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQmFja0ZvcndhcmRFbnRyeS5qcyI+PC9zY3JpcHQ+CkBA
IC0zODAsNyArMzg2LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0
VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4
dFRyZWVOb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+PC9z
Y3JpcHQ+CkBAIC01NjYsOSArNTcxLDkgQEAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU3R5bGVE
ZXRhaWxzUGFuZWwuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0F1ZGl0
VGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9DYW52
YXNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0Nv
bnNvbGVUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdz
L0VsZW1lbnRzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvU2NyaXB0VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtNTk0LDYgKzU5
OSw5IEBACiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9u
SXRlbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FjdGl2YXRlQnV0dG9u
VG9vbGJhckl0ZW0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRp
b25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNv
bnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRp
b25DYWNoZUZyYW1lVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtNjkyLDYgKzcwMCw3IEBA
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dvVG9MaW5lRGlhbG9nLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGllbnRFZGl0b3IuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9HcmFkaWVudFNsaWRlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2Rl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmVEYXRhR3JpZE5vZGVQYXRoQ29tcG9uZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVPdmVydmlld0dyYXBoLmpzIj48L3Nj
cmlwdD4KQEAgLTg1Niw2ICs4NjUsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9B
bm5vdGF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2Rl
TWlycm9yRWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9
IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250cm9sbGVycy9BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Jhc2ljQmxvY2tBbm5vdGF0b3IuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0FuaW1hdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9BbmltYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThmYjlhMTc5MzA4N2I4ZTlkNGM5ZTA4MDFm
ZjlmOThhZjkwM2IzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMKQEAgLTAsMCArMSwyNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitXSS5BbmltYXRpb24gPSBjbGFzcyBBbmltYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QK
K3sKKyAgICBjb25zdHJ1Y3RvcihhbmltYXRpb25JZCwge2Nzc0FuaW1hdGlvbk5hbWUsIGNzc1Ry
YW5zaXRpb25Qcm9wZXJ0eSwgZWZmZWN0LCBiYWNrdHJhY2V9ID0ge30pCisgICAgeworICAgICAg
ICBzdXBlcigpOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbklkKTsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoKCFjc3NBbmltYXRpb25OYW1lICYmICFjc3NUcmFuc2l0aW9uUHJv
cGVydHkpIHx8ICEhY3NzQW5pbWF0aW9uTmFtZSAhPT0gISFjc3NUcmFuc2l0aW9uUHJvcGVydHkp
OworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkID0gYW5pbWF0aW9uSWQ7CisKKyAgICAgICAg
dGhpcy5fY3NzQW5pbWF0aW9uTmFtZSA9IGNzc0FuaW1hdGlvbk5hbWUgfHwgbnVsbDsKKyAgICAg
ICAgdGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5ID0gY3NzVHJhbnNpdGlvblByb3BlcnR5IHx8
IG51bGw7CisgICAgICAgIHRoaXMuX3VwZGF0ZUVmZmVjdChlZmZlY3QpOworICAgICAgICB0aGlz
Ll9iYWNrdHJhY2UgPSBiYWNrdHJhY2UgfHwgW107CisKKyAgICAgICAgdGhpcy5fcmVxdWVzdE5v
ZGVQcm9taXNlID0gbnVsbDsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBm
cm9tUGF5bG9hZChwYXlsb2FkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRp
b24ocGF5bG9hZC5hbmltYXRpb25JZCwgeworICAgICAgICAgICAgY3NzQW5pbWF0aW9uTmFtZTog
cGF5bG9hZC5jc3NBbmltYXRpb25OYW1lLAorICAgICAgICAgICAgY3NzVHJhbnNpdGlvblByb3Bl
cnR5OiBwYXlsb2FkLmNzc1RyYW5zaXRpb25Qcm9wZXJ0eSwKKyAgICAgICAgICAgIGVmZmVjdDog
cGF5bG9hZC5lZmZlY3QsCisgICAgICAgICAgICBiYWNrdHJhY2U6IEFycmF5LmlzQXJyYXkocGF5
bG9hZC5iYWNrdHJhY2UpID8gcGF5bG9hZC5iYWNrdHJhY2UubWFwKChpdGVtKSA9PiBXSS5DYWxs
RnJhbWUuZnJvbVBheWxvYWQoV0kubWFpblRhcmdldCwgaXRlbSkpIDogW10sCisgICAgICAgIH0p
OworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUoYW5pbWF0
aW9uVHlwZSwgcGx1cmFsKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChhbmltYXRpb25UeXBlKSB7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAg
ICAgcmV0dXJuIHBsdXJhbCA/IFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpIDogV0kuVUlT
dHJpbmcoIldlYiBBbmltYXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5D
U1NBbmltYXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIkNT
UyBBbmltYXRpb25zIikgOiBXSS5VSVN0cmluZygiQ1NTIEFuaW1hdGlvbiIpOworICAgICAgICBj
YXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb246CisgICAgICAgICAgICByZXR1cm4g
cGx1cmFsID8gV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNT
UyBUcmFuc2l0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxz
ZSwgIlVua25vd24gYW5pbWF0aW9uIHR5cGUiLCBhbmltYXRpb25UeXBlKTsKKyAgICAgICAgcmV0
dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJl
Y3Rpb24ocGxheWJhY2tEaXJlY3Rpb24pCisgICAgeworICAgICAgICBzd2l0Y2ggKHBsYXliYWNr
RGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9u
Lk5vcm1hbDoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiTm9ybWFsIik7CisgICAg
ICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLlJldmVyc2U6CisgICAgICAg
ICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIlJldmVyc2UiKTsKKyAgICAgICAgY2FzZSBXSS5Bbmlt
YXRpb24uUGxheWJhY2tEaXJlY3Rpb24uQWx0ZXJuYXRlOgorICAgICAgICAgICAgcmV0dXJuIFdJ
LlVJU3RyaW5nKCJBbHRlcm5hdGUiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJh
Y2tEaXJlY3Rpb24uQWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0
cmluZygiQWx0ZXJuYXRlIFJldmVyc2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGZhbHNlLCAiVW5rbm93biBwbGF5YmFjayBkaXJlY3Rpb24iLCBwbGF5YmFja0RpcmVj
dGlvbik7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5
TmFtZUZvckZpbGxNb2RlKGZpbGxNb2RlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWxsTW9k
ZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Ob25lOgorICAgICAgICAg
ICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJOb25lIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9u
LkZpbGxNb2RlLkZvcndhcmRzOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJGb3J3
YXJkcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5CYWNrd2FyZHM6Cisg
ICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJhY2t3YXJkcyIpOworICAgICAgICBjYXNl
IFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Cb3RoOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3Ry
aW5nKCJCb3RoIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkF1dG86Cisg
ICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkF1dG8iKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBmaWxsIG1vZGUiLCBmaWxsTW9kZSk7
CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyByZXNldFVuaXF1ZURp
c3BsYXlOYW1lTnVtYmVycygpCisgICAgeworICAgICAgICBXSS5BbmltYXRpb24uX25leHRVbmlx
dWVEaXNwbGF5TmFtZU51bWJlciA9IDE7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBn
ZXQgYW5pbWF0aW9uSWQoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25JZDsgfQorICAgIGdldCBi
YWNrdHJhY2UoKSB7IHJldHVybiB0aGlzLl9iYWNrdHJhY2U7IH0KKworICAgIGdldCBhbmltYXRp
b25UeXBlKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAg
ICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjsKKyAgICAgICAg
aWYgKHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBXSS5B
bmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uOworICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9u
LlR5cGUuV2ViQW5pbWF0aW9uOworICAgIH0KKworICAgIGdldCBzdGFydERlbGF5KCkKKyAgICB7
CisgICAgICAgIHJldHVybiAic3RhcnREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZm
ZWN0LnN0YXJ0RGVsYXkgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGVuZERlbGF5KCkKKyAgICB7
CisgICAgICAgIHJldHVybiAiZW5kRGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVj
dC5lbmREZWxheSA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9ucygpCisgICAgewor
ICAgICAgICByZXR1cm4gIml0ZXJhdGlvbnMiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVj
dC5pdGVyYXRpb25zIDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25TdGFydCgpCisg
ICAgeworICAgICAgICByZXR1cm4gIml0ZXJhdGlvblN0YXJ0IiBpbiB0aGlzLl9lZmZlY3QgPyB0
aGlzLl9lZmZlY3QuaXRlcmF0aW9uU3RhcnQgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJh
dGlvbkR1cmF0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uRHVyYXRpb24i
IGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25EdXJhdGlvbiA6IE5hTjsK
KyAgICB9CisKKyAgICBnZXQgdGltaW5nRnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJu
ICJ0aW1pbmdGdW5jdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnRpbWluZ0Z1
bmN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQgcGxheWJhY2tEaXJlY3Rpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICJwbGF5YmFja0RpcmVjdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8g
dGhpcy5fZWZmZWN0LnBsYXliYWNrRGlyZWN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQg
ZmlsbE1vZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJmaWxsTW9kZSIgaW4gdGhpcy5fZWZm
ZWN0ID8gdGhpcy5fZWZmZWN0LmZpbGxNb2RlIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQga2V5
ZnJhbWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAia2V5ZnJhbWVzIiBpbiB0aGlzLl9lZmZl
Y3QgPyB0aGlzLl9lZmZlY3Qua2V5ZnJhbWVzIDogW107CisgICAgfQorCisgICAgZ2V0IGRpc3Bs
YXlOYW1lKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWU7CisKKyAgICAgICAgaWYgKHRo
aXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NU
cmFuc2l0aW9uUHJvcGVydHk7CisKKyAgICAgICAgaWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TmFt
ZU51bWJlcikKKyAgICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gV0ku
QW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIrKzsKKyAgICAgICAgcmV0dXJu
IFdJLlVJU3RyaW5nKCJBbmltYXRpb24gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU5h
bWVOdW1iZXIpOworICAgIH0KKworICAgIHJlcXVlc3ROb2RlKCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlKSB7CisgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0
Tm9kZVByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAg
ICAgICAgICAgV0kuZG9tTWFuYWdlci5lbnN1cmVEb2N1bWVudCgpOworCisgICAgICAgICAgICAg
ICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworICAgICAgICAgICAgICAg
IHRhcmdldC5BbmltYXRpb25BZ2VudC5yZXF1ZXN0Tm9kZSh0aGlzLl9hbmltYXRpb25JZCwgKGVy
cm9yLCBub2RlSWQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG51bGwpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZShXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLl9y
ZXF1ZXN0Tm9kZVByb21pc2U7CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9uTWFuYWdlcgorCisg
ICAgZWZmZWN0Q2hhbmdlZChlZmZlY3QpCisgICAgeworICAgICAgICB0aGlzLl91cGRhdGVFZmZl
Y3QoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKCkKKyAgICB7CisgICAgICAg
IHRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZSA9IG51bGw7CisKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpOworICAg
IH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF91cGRhdGVFZmZlY3QoZWZmZWN0KQorICAgIHsK
KyAgICAgICAgdGhpcy5fZWZmZWN0ID0gZWZmZWN0IHx8IHt9OworCisgICAgICAgIGlmICh0aGlz
Ll9lZmZlY3QudGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9lZmZlY3QudGltaW5n
RnVuY3Rpb24gPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRoaXMuX2VmZmVjdC50aW1pbmdG
dW5jdGlvbik7CisKKyAgICAgICAgaWYgKHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAg
ICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuZWFzaW5nKQorICAgICAgICAgICAgICAgICAgICBr
ZXlmcmFtZS5lYXNpbmcgPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKGtleWZyYW1lLmVhc2lu
Zyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCk7CisgICAgfQor
fTsKKworV0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOworCitX
SS5BbmltYXRpb24uVHlwZSA9IHsKKyAgICBXZWJBbmltYXRpb246ICJ3ZWItYW5pbWF0aW9uIiwK
KyAgICBDU1NBbmltYXRpb246ICJjc3MtYW5pbWF0aW9uIiwKKyAgICBDU1NUcmFuc2l0aW9uOiAi
Y3NzLXRyYW5zaXRpb24iLAorfTsKKworV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uID0g
eworICAgIE5vcm1hbDogIm5vcm1hbCIsCisgICAgUmV2ZXJzZTogInJldmVyc2UiLAorICAgIEFs
dGVybmF0ZTogImFsdGVybmF0ZSIsCisgICAgQWx0ZXJuYXRlUmV2ZXJzZTogImFsdGVybmF0ZS1y
ZXZlcnNlIiwKK307CisKK1dJLkFuaW1hdGlvbi5GaWxsTW9kZSA9IHsKKyAgICBOb25lOiAibm9u
ZSIsCisgICAgRm9yd2FyZHM6ICJmb3J3YXJkcyIsCisgICAgQmFja3dhcmRzOiAiYmFja3dhcmRz
IiwKKyAgICBCb3RoOiAiYm90aCIsCisgICAgQXV0bzogImF1dG8iLAorfTsKKworV0kuQW5pbWF0
aW9uLkV2ZW50ID0geworICAgIEVmZmVjdENoYW5nZWQ6ICJhbmltYXRpb24tZWZmZWN0LWNoYW5n
ZWQiLAorICAgIFRhcmdldENoYW5nZWQ6ICJhbmltYXRpb24tdGFyZ2V0LWNoYW5nZWQiLAorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9B
bmltYXRpb25Db2xsZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI3NmFiNDBkNjk5
ZDVkZWIyZTYwODFmODQ1NWIyMmU0MTM2NzlmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpz
CkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlvbiA9
IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBXSS5Db2xsZWN0aW9uCit7CisgICAg
Y29uc3RydWN0b3IoYW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFhbmltYXRpb25UeXBlIHx8IE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUpLmluY2x1
ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMu
X2FuaW1hdGlvblR5cGUgPSBhbmltYXRpb25UeXBlIHx8IG51bGw7CisKKyAgICAgICAgaWYgKCF0
aGlzLl9hbmltYXRpb25UeXBlKQorICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bkZvclR5cGVNYXAgPSBudWxsOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFu
aW1hdGlvblR5cGUoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25UeXBlOyB9CisKKyAgICBnZXQg
ZGlzcGxheU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsK
KyAgICAgICAgICAgIGNvbnN0IHBsdXJhbCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gV0ku
QW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yVHlwZSh0aGlzLl9hbmltYXRpb25UeXBlLCBwbHVyYWwp
OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9u
cyIpOworICAgIH0KKworICAgIG9iamVjdElzUmVxdWlyZWRUeXBlKG9iamVjdCkKKyAgICB7Cisg
ICAgICAgIGlmICghKG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICF0aGlzLl9hbmltYXRpb25UeXBlIHx8
IG9iamVjdC5hbmltYXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlOworICAgIH0KKwor
ICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGFuaW1hdGlvblR5cGUpCisgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFdJLkFuaW1hdGlvbi5UeXBlKS5pbmNs
dWRlcyhhbmltYXRpb25UeXBlKSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUp
IHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2Fu
aW1hdGlvblR5cGUpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKQorICAgICAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAgPSBuZXcgTWFwOworCisgICAg
ICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuX2FuaW1hdGlvbkNvbGxl
Y3Rpb25Gb3JUeXBlTWFwLmdldChhbmltYXRpb25UeXBlKTsKKyAgICAgICAgaWYgKCFhbmltYXRp
b25Db2xsZWN0aW9uRm9yVHlwZSkgeworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZv
clR5cGUgPSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbihhbmltYXRpb25UeXBlKTsKKyAgICAg
ICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnNldChhbmltYXRpb25U
eXBlLCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlOworICAgIH0KKworICAgIC8vIFByb3RlY3Rl
ZAorCisgICAgaXRlbUFkZGVkKGl0ZW0pCisgICAgeworICAgICAgICBzdXBlci5pdGVtQWRkZWQo
aXRlbSk7CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAg
ICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rp
b25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZS5hZGQoaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpdGVtUmVt
b3ZlZChpdGVtKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7Cisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZS5yZW1vdmUoaXRlbSk7CisgICAgICAgIH0KKworICAgICAg
ICBzdXBlci5pdGVtUmVtb3ZlZChpdGVtKTsKKyAgICB9CisKKyAgICBpdGVtc0NsZWFyZWQoaXRl
bXMpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVN
YXApIHsKKyAgICAgICAgICAgIGZvciAobGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlIG9m
IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnZhbHVlcygpKQorICAgICAgICAg
ICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmNsZWFyKCk7CisgICAgICAgIH0KKwor
ICAgICAgICBzdXBlci5pdGVtc0NsZWFyZWQoaXRlbXMpOworICAgIH0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2Fz
ZVJlc3VsdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9B
dWRpdFRlc3RDYXNlUmVzdWx0LmpzCmluZGV4IGM5Y2MzOTYyZTgwZmI2NmZlMTVkYTEzNTRlYTI5
MjZiZjg0MWNkY2UuLjMxZDYyN2Q4MTFiZDYzMzJkYzQ4MDg1Zjk3ZGY1MDY0ZDIwMTI3ZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRp
dFRlc3RDYXNlUmVzdWx0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCkBAIC0xNDYsNyArMTQ2LDcgQEAgV0ku
QXVkaXRUZXN0Q2FzZVJlc3VsdCA9IGNsYXNzIEF1ZGl0VGVzdENhc2VSZXN1bHQgZXh0ZW5kcyBX
SS5BdWRpdFRlc3RSZXN1bHRCYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5v
ZGUucXVlcnlTZWxlY3Rvcihkb21Ob2RlU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGNhdGNoIHsgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5k
b21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQ2FudmFzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0NhbnZhcy5qcwppbmRleCA2MmJhMjY0MTA1YWFlZGY0YmE1ZTJiZTM3NTVhMmI1ZDM4YmNm
YWQzLi44ZTJiNTJlMmMxZjExYTM2ZDY1ZGZjYTRlYzk1MGY2MDk4NTk2OTBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMK
QEAgLTk3LDcgKzk3LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEOgogICAgICAg
ICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCIyRCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcjoKLSAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2Fs
aXplZFN0cmluZygiQml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgICAgICByZXR1cm4gV0kuVUlT
dHJpbmcoIkJpdG1hcCBSZW5kZXJlciIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5XZWJHTDoKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2Vi
R0wiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgpAQCAtMTA2
LDkgKzEwNiwxMCBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViIEdQVSIpOwogICAg
ICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJNZXRhbDoKICAgICAgICAgICAgIHJl
dHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViTWV0YWwiKTsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgY2FudmFzIGNvbnRleHQgdHlwZSIs
IGNvbnRleHRUeXBlKTsKICAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNl
LCAiVW5rbm93biBjYW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOworICAgICAgICBy
ZXR1cm4gbnVsbDsKICAgICB9CiAKICAgICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51
bWJlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1JlY29yZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9SZWNvcmRpbmcuanMKaW5kZXggMWY4ZGQ3ZWY0NWQ2Mjk3NzhjZDgyODdiZmI4ZDMx
YjJhMTA4OWYzMC4uYjZkZTk1MzU0MjJjOWM2M2FlMWFkMTRlOWRjNDdmZWFjNzY4MDRjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29y
ZGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVjb3JkaW5nLmpzCkBAIC0xNDgsNiArMTQ4LDIzIEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJl
Y29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gbmV3IFdJLlJlY29yZGlu
ZyhwYXlsb2FkLnZlcnNpb24sIHR5cGUsIHBheWxvYWQuaW5pdGlhbFN0YXRlLCBmcmFtZXMsIHBh
eWxvYWQuZGF0YSk7CiAgICAgfQogCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUmVjb3JkaW5n
VHlwZShyZWNvcmRpbmdUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyZWNvcmRpbmdUeXBl
KSB7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQ6CisgICAgICAgICAgICBy
ZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2Fu
dmFzQml0bWFwUmVuZGVyZXI6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJpdG1h
cCBSZW5kZXJlciIpOworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMOgor
ICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIpOworICAgICAg
ICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMMjoKKyAgICAgICAgICAgIHJldHVybiBX
SS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wyIik7CisgICAgICAgIH0KKworICAgICAgICBjb25z
b2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gcmVjb3JkaW5nIHR5cGUiLCByZWNvcmRpbmdUeXBl
KTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCiAgICAgc3RhdGljIGRpc3BsYXlOYW1l
Rm9yU3dpenpsZVR5cGUoc3dpenpsZVR5cGUpCiAgICAgewogICAgICAgICBzd2l0Y2ggKHN3aXp6
bGVUeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCmluZGV4IGIxMTk1ZWQw
Y2EwY2IwY2E4MDY2OGUwZTk4ZGM2NzlkY2FkOTE3YTMuLjdlNTZlOGJiMzljYmEwYzYyODBlYTlj
ZWRkNDViZTU1NDVmMGYxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCkBA
IC0yNyw2ICsyNywyNiBAQCBXSS5BbmltYXRpb25PYnNlcnZlciA9IGNsYXNzIEFuaW1hdGlvbk9i
c2VydmVyIGV4dGVuZHMgSW5zcGVjdG9yQmFja2VuZC5EaXNwYXRjaAogewogICAgIC8vIEV2ZW50
cyBkZWZpbmVkIGJ5IHRoZSAiQW5pbWF0aW9uIiBkb21haW4uCiAKKyAgICBhbmltYXRpb25DcmVh
dGVkKGFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0
aW9uQ3JlYXRlZChhbmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0
aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZWZmZWN0
Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2Vk
KGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci50YXJnZXRD
aGFuZ2VkKGFuaW1hdGlvbklkKTsKKyAgICB9CisKKyAgICBhbmltYXRpb25EZXN0cm95ZWQoYW5p
bWF0aW9uSWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkRl
c3Ryb3llZChhbmltYXRpb25JZCk7CisgICAgfQorCiAgICAgdHJhY2tpbmdTdGFydCh0aW1lc3Rh
bXApCiAgICAgewogICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuYW5pbWF0aW9uVHJhY2tpbmdT
dGFydGVkKHRpbWVzdGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKaW5kZXggZGQwMGFmNThj
MTI1MzA1ODZlMWMyODMwMzJiNzJmZDYyOWZhMzJkOS4uMmNiYTU2NGQ0YTdiNmEzOGMxODllNTcz
M2QzY2YzYzYwZmM1MTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwpAQCAtMTg4LDYgKzE4
OCwyNSBAQCBXSS5SZW1vdGVPYmplY3QgPSBjbGFzcyBSZW1vdGVPYmplY3QKICAgICAgICAgdGFy
Z2V0LkNhbnZhc0FnZW50LnJlc29sdmVDb250ZXh0KGNhbnZhcy5pZGVudGlmaWVyLCBvYmplY3RH
cm91cCwgd3JhcENhbGxiYWNrKTsKICAgICB9CiAKKyAgICBzdGF0aWMgcmVzb2x2ZUFuaW1hdGlv
bihhbmltYXRpb24sIG9iamVjdEdyb3VwLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIik7CisKKyAgICAgICAgZnVu
Y3Rpb24gd3JhcENhbGxiYWNrKGVycm9yLCBvYmplY3QpIHsKKyAgICAgICAgICAgIGlmIChlcnJv
ciB8fCAhb2JqZWN0KQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdJLlJlbW90ZU9iamVjdC5mcm9tUGF5
bG9hZChvYmplY3QsIFdJLm1haW5UYXJnZXQpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCB0
YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKworICAgICAgICAvLyBDT01QQVRJQklM
SVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGRpZCBub3QgZXhpc3Qg
eWV0LgorICAgICAgICBjb25zb2xlLmFzc2VydCh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9u
LnJlc29sdmVBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJl
c29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCwgd3JhcENh
bGxiYWNrKTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0YXJnZXQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmluZGV4IDFkNDQ1
YTA0Y2RlYmVlY2ZhN2IwY2IwOGVkNmZiYmQ0YmY0NjFlODQuLjBiYTU2MGI5NmMwMjMwNmViNjFi
MzJiZGY0ZWFjODk5MjNkYmYwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0Lmh0bWwKQEAgLTEwOCw2ICsxMDgsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQ
cm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
b25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0
cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUu
anMiPjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3Jp
cHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NQVUluc3RydW1lbnQuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVVGltZWxpbmUuanMiPjwvc2NyaXB0PgpAQCAt
MTM3LDcgKzE0MCw2IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRy
ZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRU
cmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2Ny
aXB0PgpAQCAtMjM4LDYgKzI0MCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVhcFNu
YXBzaG90UHJveHkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm94aWVzL0hlYXBT
bmFwc2hvdFdvcmtlclByb3h5LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250
cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJDb250cm9sbGVycy9CcmVha3BvaW50TG9nTWVzc2FnZUxleGVyLmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvVGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVz
dC5qcwppbmRleCAzYzQzYWU3OGJlMTcyNzcwNzI5YjcwMzJhYmU1NDQ0M2M5NDZhOGJiLi5hZGQ4
ODg0MTBkNDZmMjhmNTI0ZGY1NjJkODRiNTUzNmYwZjU5ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCkBAIC03MCw2ICs3MCw3IEBA
IFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBX
SS5Xb3JrZXJNYW5hZ2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0ku
RE9NRGVidWdnZXJNYW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNh
bnZhc01hbmFnZXIsCisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0
aW9uTWFuYWdlciwKICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI0NWM2YTc3NTRlN2EyNzNiOTZjYzkwOWQ2MTBhNDI2Y2ViYzA1YmQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisuY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uIHsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgcGFkZGluZzogNHB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9u
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZjY3NzllZWUxNjEyNDg5OTUy
NzIwMmJkYWM2NGYxMjdmNGIxMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcu
anMKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRl
ZE9iamVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbik7CisKKyAgICAgICAgbGV0IGNvbnRl
bnRQbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworCisgICAgICAg
IGxldCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBjb250ZW50UGxhY2Vob2xkZXIuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICBkZXNjcmlwdGlvbkVsZW1l
bnQuY2xhc3NOYW1lID0gImRlc2NyaXB0aW9uIjsKKworICAgICAgICBzd2l0Y2ggKHJlcHJlc2Vu
dGVkT2JqZWN0LmFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlw
ZS5XZWJBbmltYXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRl
bnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEphdmFT
Y3JpcHQuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1hdGlv
bi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0
Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkg
Q1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24u
VHlwZS5DU1NUcmFuc2l0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRD
b250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkg
Q1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY29uc29sZS5h
c3NlcnQoZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50KTsKKworICAgICAgICBzdXBlcihy
ZXByZXNlbnRlZE9iamVjdCwgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcsIGNvbnRlbnRQbGFjZWhv
bGRlcik7CisKKyAgICAgICAgdGhpcy5zZWxlY3Rpb25FbmFibGVkID0gdHJ1ZTsKKworICAgICAg
ICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW9uLWNvbGxlY3Rpb24iKTsKKyAg
ICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkK
KyAgICB7CisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAg
ICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykK
KyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGNvbnRlbnRWaWV3QWRk
ZWQoY29udGVudFZpZXcpCisgICAgeworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50
ZXIpOworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
bGVhdmUiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOworICAgIH0KKworICAg
IGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAgIGNvbnRlbnRW
aWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2hhbmRs
ZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91
c2VMZWF2ZSk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0kuZG9t
TWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVk
KCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZUNvbnRlbnRWaWV3TW91
c2VFbnRlcihldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcu
ZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgaWYgKCEoY29udGVudFZpZXcgaW5z
dGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGNvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0Owor
ICAgICAgICBhbmltYXRpb24ucmVxdWVzdE5vZGUoKS50aGVuKChub2RlKSA9PiB7CisgICAgICAg
ICAgICBpZiAoIW5vZGUgfHwgIW5vZGUub3duZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBub2RlLmhpZ2hsaWdodCgpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworICAgIH0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkzOTJlYzg0MTA2ZTRk
Y2RiMGE1NTk5NDA1ZTY1MmQ5ZGUxYzQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpA
QCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uIHsK
KyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDEwMCU7CisgICAgbWFyZ2luOiA0
cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50
KTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29u
dGVudC12aWV3LmFuaW1hdGlvbi5zZWxlY3RlZCB7CisgICAgb3V0bGluZTogYXV0byAtd2Via2l0
LWZvY3VzLXJpbmctY29sb3I7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVy
IHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgaGVp
Z2h0OiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIHBhZGRpbmc6IDAgNnB4Owor
ICAgIGZvbnQtc2l6ZTogMTNweDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFk
ZXIgPiAudGl0bGVzIHsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCisuY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIGNvbG9yOiB2
YXIoLS10ZXh0LWNvbG9yLWdyYXktZGFyayk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQt
Y29sb3ItZ3JheS1tZWRpdW0pOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRl
ciA+IC50aXRsZXMgPiAuc3VidGl0bGU6bm90KDplbXB0eSk6OmJlZm9yZSB7CisgICAgY29udGVu
dDogIlwwMEEwXDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87Cit9CisKKy5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBi
b3JkZXI6IG5vbmU7CisgICAgb3BhY2l0eTogMDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIG9wYWNpdHk6IDE7Cit9
CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgIGRpc3BsYXk6IGZs
ZXg7CisgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNlbnRl
cjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7Cit9CisKKy5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgeworICAgIHdpZHRoOiAxMDAlOworfQor
Citib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcg
eworICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHN2ZyByZWN0IHsKKyAgICBmaWxsOiB0cmFuc3BhcmVudDsKK30KKwor
LmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lIHsK
KyAgICBzdHJva2U6IHZhcigtLWJvcmRlci1jb2xvcik7CisgICAgc3Ryb2tlLXdpZHRoOiAyOwor
fQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBw
YXRoIHsKKyAgICBmaWxsOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAgIGZpbGwtb3Bh
Y2l0eTogMC41OworICAgIHN0cm9rZTogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKKyAgICBz
dHJva2Utd2lkdGg6IDE7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcg
PiBzdmcgPiAuYWN0aXZlIGNpcmNsZSB7CisgICAgZmlsbDogdmFyKC0tdGV4dC1jb2xvcik7Cit9
CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxp
bmUgeworICAgIHN0cm9rZTogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgc3Ryb2tlLXdpZHRoOiAy
OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3BhbiB7CisgICAg
cGFkZGluZzogNHB4OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7Cit9
CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgICAgICBjb2xv
cjogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICAgICAgY29sb3I6IHZhcigt
LXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IHN2ZyB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQt
Y29sb3ItdGVydGlhcnkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDZjYTMzNDE4ZjQyNTljYTQ3MzkzZWNjY2Y4YzYxM2I2NTE4YTBmMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMzAyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworV0kuQW5pbWF0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmpl
Y3QpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkFuaW1hdGlvbik7CisKKyAgICAgICAgc3VwZXIocmVwcmVzZW50ZWRPYmplY3Qp
OworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUgPSBudWxsOworICAgICAg
ICB0aGlzLl9jYWNoZWRXaWR0aCA9IE5hTjsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NM
aXN0LmFkZCgiYW5pbWF0aW9uIik7CisgICAgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0
aWMgZ2V0IHByZXZpZXdIZWlnaHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDQwOworICAgIH0K
KworICAgIC8vIFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAg
IHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAgfQorCisgICAgLy8gUHJv
dGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRp
YWxMYXlvdXQoKTsKKworICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9IHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoZWFkZXIiKSk7CisKKyAgICAgICAg
bGV0IHRpdGxlc0NvbnRhaW5lciA9IGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aXRsZXNDb250YWluZXIuY2xhc3NOYW1l
ID0gInRpdGxlcyI7CisKKyAgICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5l
ci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0
aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpdGxlIjsKKyAgICAgICAgdGl0bGVFbGVtZW50LnRl
eHRDb250ZW50ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNwbGF5TmFtZTsKKworICAgICAg
ICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQgPSB0aXRsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVt
ZW50LmNsYXNzTmFtZSA9ICJzdWJ0aXRsZSI7CisKKyAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIg
PSBuZXcgV0kuTmF2aWdhdGlvbkJhcjsKKworICAgICAgICBsZXQgYW5pbWF0aW9uVGFyZ2V0QnV0
dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImFuaW1hdGlv
bi10YXJnZXQiLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIFRhcmdldCIpLCAiSW1hZ2VzL01hcmt1
cC5zdmciLCAxNiwgMTYpOworICAgICAgICBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9u
SXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJp
b3JpdHkuTG93OworICAgICAgICBXSS5hZGRNb3VzZURvd25Db250ZXh0TWVudUhhbmRsZXJzKGFu
aW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVsZW1lbnQsIHRoaXMuX3BvcHVsYXRl
QW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUuYmluZCh0aGlzKSk7CisgICAgICAgIG5h
dmlnYXRpb25CYXIuYWRkTmF2aWdhdGlvbkl0ZW0oYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdh
dGlvbkl0ZW0pOworCisgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kKG5hdmlnYXRpb25CYXIu
ZWxlbWVudCk7CisgICAgICAgIHRoaXMuYWRkU3VidmlldyhuYXZpZ2F0aW9uQmFyKTsKKworICAg
ICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRh
aW5lci5jbGFzc05hbWUgPSAicHJldmlldyI7CisgICAgfQorCisgICAgbGF5b3V0KCkKKyAgICB7
CisgICAgICAgIHN1cGVyLmxheW91dCgpOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRs
ZSgpOworICAgICAgICB0aGlzLl9yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIHNpemVE
aWRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgc3VwZXIuc2l6ZURpZENoYW5nZSgpOworCisgICAg
ICAgIHRoaXMuX2NhY2hlZFdpZHRoID0gdGhpcy5lbGVtZW50LnJlYWxPZmZzZXRXaWR0aDsKKyAg
ICB9CisKKyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwor
CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5Bbmlt
YXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlRWZmZWN0Q2hhbmdlZCwgdGhp
cyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5B
bmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlVGFyZ2V0Q2hhbmdlZCwg
dGhpcyk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJn
ZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVu
dC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKworICAg
ICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9y
ZWZyZXNoU3VidGl0bGUoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5y
ZXF1ZXN0Tm9kZSgpLnRoZW4oKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1h
dGlvblRhcmdldERPTU5vZGUgPSBkb21Ob2RlOworCisgICAgICAgICAgICB0aGlzLl9zdWJ0aXRs
ZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIGlmIChkb21Ob2RlKQorICAg
ICAgICAgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChXSS5saW5raWZ5
Tm9kZVJlZmVyZW5jZShkb21Ob2RlKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9yZWZy
ZXNoUHJldmlldygpCisgICAgeworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLnJlbW92
ZUNoaWxkcmVuKCk7CisKKyAgICAgICAgbGV0IGtleWZyYW1lcyA9IHRoaXMucmVwcmVzZW50ZWRP
YmplY3Qua2V5ZnJhbWVzOworICAgICAgICBpZiAoIWtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgIGxldCBzcGFuID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVu
dCA9IFdJLlVJU3RyaW5nKCJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWxsIGFuaW1hdGlvbiB0
aW1lcyBhcmUgaW4gbWlsbGlzZWNvbmRzLgorICAgICAgICBsZXQgc3RhcnREZWxheSA9ICh0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgfHwgMCkgKiAxMDAwOworICAgICAgICBsZXQg
aXRlcmF0aW9uRHVyYXRpb24gPSAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pdGVyYXRpb25EdXJh
dGlvbiB8fCAwKSAqIDEwMDA7CisgICAgICAgIGxldCBlbmREZWxheSA9ICh0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LmVuZERlbGF5IHx8IDApICogMTAwMDsKKyAgICAgICAgbGV0IHRvdGFsRHVyYXRp
b24gPSBzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheTsKKyAgICAgICAg
aWYgKHRvdGFsRHVyYXRpb24gPT09IDApIHsKKyAgICAgICAgICAgIGxldCBzcGFuID0gdGhpcy5f
cHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
IikpOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJUaGlzIGFu
aW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBjb25zdCBwcmV2aWV3SGVpZ2h0ID0gV0kuQW5pbWF0aW9uQ29udGVudFZp
ZXcucHJldmlld0hlaWdodDsKKyAgICAgICAgY29uc3QgaGlnaGVyUmVzb2x1dGlvbiA9IHRydWU7
CisKKyAgICAgICAgY29uc3QgbWFya2VySGVhZFJhZGl1cyA9IDQ7CisgICAgICAgIGNvbnN0IG1h
cmtlckhlYWRQYWRkaW5nID0gMjsKKworICAgICAgICAvLyBTcXVlZXplIHRoZSBlbnRpcmUgcHJl
dmlldyBzbyB0aGF0IG1hcmtlcnMgYXJlbid0IGN1dCBvZmYuCisgICAgICAgIGNvbnN0IHNxdWVl
emVYU3RhcnQgPSAoaXRlcmF0aW9uRHVyYXRpb24gJiYgc3RhcnREZWxheSkgPyAwIDogbWFya2Vy
SGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWEVu
ZCA9IChpdGVyYXRpb25EdXJhdGlvbiAmJiBlbmREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1
cyArIG1hcmtlckhlYWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWVN0YXJ0ID0gODsK
KworICAgICAgICAvLyBNb3ZlIHRoZSBlYXNpbmcgbGluZSBkb3duIHRvIGN1dCBvZmYgdGhlIGJv
dHRvbSBib3JkZXIuCisgICAgICAgIGNvbnN0IGFkanVzdEVhc2luZ1kgPSAwLjU7CisKKyAgICAg
ICAgbGV0IHNlY29uZHNQZXJQaXhlbCA9IHRoaXMuX2NhY2hlZFdpZHRoIC8gdG90YWxEdXJhdGlv
bjsKKworICAgICAgICBzdGFydERlbGF5ICo9IHNlY29uZHNQZXJQaXhlbDsKKyAgICAgICAgaXRl
cmF0aW9uRHVyYXRpb24gPSAoaXRlcmF0aW9uRHVyYXRpb24gKiBzZWNvbmRzUGVyUGl4ZWwpIC0g
c3F1ZWV6ZVhTdGFydCAtIHNxdWVlemVYRW5kOworICAgICAgICBlbmREZWxheSAqPSBzZWNvbmRz
UGVyUGl4ZWw7CisKKyAgICAgICAgbGV0IHN2ZyA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgic3ZnIikpOworICAgICAgICBzdmcuc2V0QXR0cmli
dXRlKCJ2aWV3Qm94IiwgYDAgMCAke3RoaXMuX2NhY2hlZFdpZHRofSAke3ByZXZpZXdIZWlnaHR9
YCk7CisKKyAgICAgICAgZnVuY3Rpb24gYWRkVGl0bGUocGFyZW50LCB0aXRsZSkgeworICAgICAg
ICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IHBhcmVudC5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVt
ZW50KCJ0aXRsZSIpKTsKKyAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRp
dGxlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXJ0RGVsYXkpIHsKKyAgICAgICAgICAg
IGxldCBzdGFydERlbGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1l
bnQoImciKSk7CisgICAgICAgICAgICBzdGFydERlbGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQo
ImRlbGF5IiwgInN0YXJ0Iik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5TGluZSA9IHN0
YXJ0RGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsK
KyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hl
aWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5z
ZXRBdHRyaWJ1dGUoIngyIiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGlu
ZS5zZXRBdHRyaWJ1dGUoInkyIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIp
OworCisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUVsZW1lbnQgPSBzdGFydERlbGF5Q29udGFp
bmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICBz
dGFydERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgc3RhcnREZWxheSk7CisgICAg
ICAgICAgICBzdGFydERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdI
ZWlnaHQpOworCisgICAgICAgICAgICBhZGRUaXRsZShzdGFydERlbGF5RWxlbWVudCwgV0kuVUlT
dHJpbmcoIlN0YXJ0IERlbGF5ICVzIikuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhp
cy5yZXByZXNlbnRlZE9iamVjdC5zdGFydERlbGF5LCBoaWdoZXJSZXNvbHV0aW9uKSkpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKGVuZERlbGF5KSB7CisgICAgICAgICAgICBsZXQgZW5kRGVs
YXlDb250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAg
ICAgICAgICAgIGVuZERlbGF5Q29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRy
YW5zbGF0ZSgke3N0YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIHNxdWVlemVYU3RhcnR9
LCAwKWApOworICAgICAgICAgICAgZW5kRGVsYXlDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZGVs
YXkiLCAiZW5kIik7CisKKyAgICAgICAgICAgIGxldCBlbmREZWxheUxpbmUgPSBlbmREZWxheUNv
bnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAg
ICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hlaWdodCArIHNxdWVl
emVZU3RhcnQpIC8gMik7CisgICAgICAgICAgICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ4
MiIsIGVuZERlbGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInky
IiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisgICAgICAgICAgICBs
ZXQgZW5kRGVsYXlFbGVtZW50ID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRl
U1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxlbWVudC5zZXRBdHRy
aWJ1dGUoIndpZHRoIiwgc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgZW5kRGVsYXkp
OworICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgcHJl
dmlld0hlaWdodCk7CisKKyAgICAgICAgICAgIGFkZFRpdGxlKGVuZERlbGF5RWxlbWVudCwgV0ku
VUlTdHJpbmcoIkVuZCBEZWxheSAlcyIpLmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuZW5kRGVsYXksIGhpZ2hlclJlc29sdXRpb24pKSk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoaXRlcmF0aW9uRHVyYXRpb24pIHsKKyAgICAgICAgICAgIGxl
dCB0aW1pbmdGdW5jdGlvbiA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QudGltaW5nRnVuY3Rpb247
CisKKyAgICAgICAgICAgIGxldCBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lciA9IHN2Zy5hcHBlbmRD
aGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25D
b250YWluZXIuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7CisgICAgICAgICAgICBhY3RpdmVEdXJh
dGlvbkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFy
dERlbGF5ICsgc3F1ZWV6ZVhTdGFydH0sICR7c3F1ZWV6ZVlTdGFydH0pYCk7CisKKyAgICAgICAg
ICAgIGNvbnN0IHN0YXJ0WSA9IDA7CisgICAgICAgICAgICBjb25zdCBlbmRZID0gcHJldmlld0hl
aWdodCAtIHNxdWVlemVZU3RhcnQ7CisgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBlbmRZIC0g
c3RhcnRZOworCisgICAgICAgICAgICBmb3IgKGxldCBba2V5ZnJhbWVBLCBrZXlmcmFtZUJdIG9m
IGtleWZyYW1lcy5hZGphY2VuY2llcygpKSB7CisgICAgICAgICAgICAgICAgbGV0IHN0YXJ0WCA9
IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWVBLm9mZnNldDsKKyAgICAgICAgICAgICAgICBs
ZXQgZW5kWCA9IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWVCLm9mZnNldDsKKyAgICAgICAg
ICAgICAgICBsZXQgd2lkdGggPSBlbmRYIC0gc3RhcnRYOworCisgICAgICAgICAgICAgICAgbGV0
IGVhc2luZyA9IGtleWZyYW1lQS5lYXNpbmcgfHwgdGltaW5nRnVuY3Rpb247CisKKyAgICAgICAg
ICAgICAgICBsZXQgZWFzaW5nQ29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdD
b250YWluZXIuY2xhc3NMaXN0LmFkZCgiZWFzaW5nIik7CisgICAgICAgICAgICAgICAgZWFzaW5n
Q29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0WH0s
ICR7c3RhcnRZfSlgKTsKKworICAgICAgICAgICAgICAgIGxldCB4MSA9IGVhc2luZy5pblBvaW50
LnggKiB3aWR0aDsKKyAgICAgICAgICAgICAgICBsZXQgeTEgPSAoKDEgLSBlYXNpbmcuaW5Qb2lu
dC55KSAqIGhlaWdodCkgKyBhZGp1c3RFYXNpbmdZOworICAgICAgICAgICAgICAgIGxldCB4MiA9
IGVhc2luZy5vdXRQb2ludC54ICogd2lkdGg7CisgICAgICAgICAgICAgICAgbGV0IHkyID0gKCgx
IC0gZWFzaW5nLm91dFBvaW50LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7CisKKyAgICAg
ICAgICAgICAgICBsZXQgZWFzaW5nUGF0aCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChj
cmVhdGVTVkdFbGVtZW50KCJwYXRoIikpOworICAgICAgICAgICAgICAgIGVhc2luZ1BhdGguc2V0
QXR0cmlidXRlKCJkIiwgYE0gMCAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IEMgJHt4MX0gJHt5
MX0gJHt4Mn0gJHt5Mn0gJHt3aWR0aH0gJHthZGp1c3RFYXNpbmdZfSBWICR7aGVpZ2h0ICsgYWRq
dXN0RWFzaW5nWX0gWmApOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9IGVhc2lu
Z0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAg
ICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgd2lkdGgpOworICAgICAg
ICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhlaWdodCk7CisKKyAg
ICAgICAgICAgICAgICBhZGRUaXRsZSh0aXRsZVJlY3QsIGVhc2luZy50b1N0cmluZygpKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2Yga2V5ZnJhbWVz
KSB7CisgICAgICAgICAgICAgICAgbGV0IHggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1l
Lm9mZnNldDsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZUNvbnRhaW5lciA9IGFjdGl2
ZUR1cmF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7Cisg
ICAgICAgICAgICAgICAga2V5ZnJhbWVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgia2V5ZnJhbWUi
KTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5z
Zm9ybSIsIGB0cmFuc2xhdGUoJHt4fSwgJHtzdGFydFl9KWApOworCisgICAgICAgICAgICAgICAg
bGV0IGtleWZyYW1lTWFya2VySGVhZCA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNy
ZWF0ZVNWR0VsZW1lbnQoImNpcmNsZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtl
ckhlYWQuc2V0QXR0cmlidXRlKCJyIiwgbWFya2VySGVhZFJhZGl1cyk7CisKKyAgICAgICAgICAg
ICAgICBsZXQga2V5ZnJhbWVNYXJrZXJMaW5lID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hp
bGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1h
cmtlckxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBs
ZXQgdGl0bGVSZWN0ID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxl
bWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ4
IiwgLTEgKiAobWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nKSk7CisgICAgICAg
ICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgieSIsIC0xICogc3F1ZWV6ZVlTdGFydCk7
CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAobWFya2Vy
SGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nKSAqIDIpOworICAgICAgICAgICAgICAgIHRp
dGxlUmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhlaWdodCArIHNxdWVlemVZU3RhcnQpOwor
CisgICAgICAgICAgICAgICAgYWRkVGl0bGUodGl0bGVSZWN0LCBrZXlmcmFtZS5zdHlsZS5yZXBs
YWNlQWxsKC87XHMrL2csICI7XG4iKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBfaGFuZGxlRWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMu
X3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgX2hhbmRsZVRhcmdldENoYW5nZWQoZXZl
bnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAg
ICBfcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudShjb250ZXh0TWVudSkK
KyAgICB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvZyBB
bmltYXRpb24iKSwgKCkgPT4geworICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVB
bmltYXRpb24odGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1hbmFnZXIuQ29uc29s
ZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKCFy
ZW1vdGVPYmplY3QpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
ICAgIGNvbnN0IHRleHQgPSBXSS5VSVN0cmluZygiU2VsZWN0ZWQgQW5pbWF0aW9uIik7CisgICAg
ICAgICAgICAgICAgY29uc3QgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyA9IHRydWU7CisgICAgICAg
ICAgICAgICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4ZWN1
dGlvbldpdGhSZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNz
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9N
Tm9kZSkKKyAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNv
bnRleHRNZW51LCB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKTsKKyAgICB9Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzU4ODUwMGY0MDViNjRjYTNkOTJiZjcyODA5ZDIwYmI5N2Q3MGU1NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRl
dGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5B
bmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQW5pbWF0aW9uRGV0YWlsc1NpZGVi
YXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTaWRlYmFyUGFuZWwKK3sKKyAgICBjb25zdHJ1Y3Rv
cigpCisgICAgeworICAgICAgICBzdXBlcigiYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIkFuaW1h
dGlvbiIpKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBudWxsOworICAgIH0KKworICAg
IC8vIFB1YmxpYworCisgICAgaW5zcGVjdChvYmplY3RzKQorICAgIHsKKyAgICAgICAgaWYgKCEo
b2JqZWN0cyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAgICAgICAgIG9iamVjdHMgPSBbb2JqZWN0
c107CisKKyAgICAgICAgdGhpcy5hbmltYXRpb24gPSBvYmplY3RzLmZpbmQoKG9iamVjdCkgPT4g
b2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsKKworICAgICAgICByZXR1cm4gISF0aGlz
LmFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBnZXQgYW5pbWF0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9hbmltYXRpb247CisgICAgfQorCisgICAgc2V0IGFuaW1hdGlvbihhbmlt
YXRpb24pCisgICAgeworICAgICAgICBpZiAoYW5pbWF0aW9uID09PSB0aGlzLl9hbmltYXRpb24p
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikgewor
ICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0
aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5n
ZWQsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlv
bkVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fYW5pbWF0
aW9uID0gYW5pbWF0aW9uIHx8IG51bGw7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikg
eworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0
aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5n
ZWQsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvblRh
cmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91
dCgpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaW5pdGlhbExheW91dCgpCisg
ICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fbmFt
ZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiTmFtZSIp
KTsKKyAgICAgICAgdGhpcy5fdHlwZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyhXSS5VSVN0cmluZygiVHlwZSIpKTsKKyAgICAgICAgdGhpcy5fdGFyZ2V0Um93ID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJUYXJnZXQiKSk7CisgICAgICAg
IGxldCBpZGVudGl0eVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1p
ZGVudGl0eSIsIFdJLlVJU3RyaW5nKCJJZGVudGl0eSIpLCBbbmV3IFdJLkRldGFpbHNTZWN0aW9u
R3JvdXAoW3RoaXMuX25hbWVSb3csIHRoaXMuX3R5cGVSb3csIHRoaXMuX3RhcmdldFJvd10pXSk7
CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChpZGVudGl0eVNl
Y3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fYWN0aXZlRHVyYXRpb25Sb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkFjdGl2ZSBEdXJhdGlvbiIp
KTsKKyAgICAgICAgdGhpcy5fc3RhcnREZWxheVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNp
bXBsZVJvdyhXSS5VSVN0cmluZygiU3RhcnQgRGVsYXkiKSk7CisgICAgICAgIHRoaXMuX2VuZERl
bGF5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFbmQg
RGVsYXkiKSk7CisgICAgICAgIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93ID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFYXNpbmciKSk7CisgICAgICAgIGxldCB0
aW1pbmdHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9hY3RpdmVEdXJh
dGlvblJvdywgdGhpcy5fc3RhcnREZWxheVJvdywgdGhpcy5fZW5kRGVsYXlSb3csIHRoaXMuX3Rp
bWluZ0Z1bmN0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uc1JvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiSXRlcmF0aW9ucyIpKTsKKyAg
ICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3coV0kuVUlTdHJpbmcoIkl0ZXJhdGlvbiBTdGFydCIpKTsKKyAgICAgICAgdGhpcy5faXRl
cmF0aW9uRHVyYXRpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlT
dHJpbmcoIkl0ZXJhdGlvbiBEdXJhdGlvbiIpKTsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbnNHcm91
cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9pdGVyYXRpb25zUm93LCB0aGlz
Ll9pdGVyYXRpb25TdGFydFJvdywgdGhpcy5faXRlcmF0aW9uRHVyYXRpb25Sb3ddKTsKKworICAg
ICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNp
bXBsZVJvdyhXSS5VSVN0cmluZygiRGlyZWN0aW9uIikpOworICAgICAgICB0aGlzLl9maWxsTW9k
ZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRmlsbCIp
KTsKKyAgICAgICAgbGV0IGZpbGxEaXJlY3Rpb25Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
bkdyb3VwKFt0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdywgdGhpcy5fZmlsbE1vZGVSb3ddKTsK
KworICAgICAgICBsZXQgZWZmZWN0U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5p
bWF0aW9uLWVmZmVjdCIsIFdJLlVJU3RyaW5nKCJFZmZlY3QiKSwgW3RpbWluZ0dyb3VwLCBpdGVy
YXRpb25zR3JvdXAsIGZpbGxEaXJlY3Rpb25Hcm91cF0pOworICAgICAgICB0aGlzLmNvbnRlbnRW
aWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZWZmZWN0U2VjdGlvbi5lbGVtZW50KTsKKworICAgICAg
ICBjb25zdCBzZWxlY3RhYmxlID0gZmFsc2U7CisgICAgICAgIGxldCBiYWNrdHJhY2VUcmVlT3V0
bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZShzZWxlY3RhYmxlKTsKKyAgICAgICAgYmFja3RyYWNl
VHJlZU91dGxpbmUuZGlzY2xvc3VyZUJ1dHRvbnMgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYmFj
a3RyYWNlVHJlZUNvbnRyb2xsZXIgPSBuZXcgV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIoYmFj
a3RyYWNlVHJlZU91dGxpbmUpOworCisgICAgICAgIGxldCBiYWNrdHJhY2VSb3cgPSBuZXcgV0ku
RGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgIGJhY2t0cmFjZVJvdy5lbGVtZW50LmFwcGVuZENo
aWxkKGJhY2t0cmFjZVRyZWVPdXRsaW5lLmVsZW1lbnQpOworICAgICAgICB0aGlzLl9iYWNrdHJh
Y2VTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24tYmFja3RyYWNlIiwg
V0kuVUlTdHJpbmcoIkJhY2t0cmFjZSIpLCBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2Jh
Y2t0cmFjZVJvd10pXSk7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxlbWVudC5o
aWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50KTsKKyAgICB9CisKKyAgICBsYXlvdXQo
KQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgaWYgKCF0aGlzLl9h
bmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaElk
ZW50aXR5U2VjdGlvbigpOworICAgICAgICB0aGlzLl9yZWZyZXNoRWZmZWN0U2VjdGlvbigpOwor
ICAgICAgICB0aGlzLl9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigpOworICAgIH0KKworICAgIC8v
IFByaXZhdGUKKworICAgIF9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCkKKyAgICB7CisgICAgICAg
IHRoaXMuX25hbWVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZGlzcGxheU5hbWU7CisgICAg
ICAgIHRoaXMuX3R5cGVSb3cudmFsdWUgPSBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JBbmlt
YXRpb25UeXBlKHRoaXMuX2FuaW1hdGlvbi5hbmltYXRpb25UeXBlKTsKKworICAgICAgICB0aGlz
Ll90YXJnZXRSb3cudmFsdWUgPSBudWxsOworICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVxdWVz
dE5vZGUoKS50aGVuKChkb21Ob2RlKSA9PiB7CisgICAgICAgICAgICB0aGlzLl90YXJnZXRSb3cu
dmFsdWUgPSBkb21Ob2RlID8gV0kubGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkgOiBudWxs
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVmcmVzaEVmZmVjdFNlY3Rpb24oKQorICAg
IHsKKyAgICAgICAgY29uc3QgaGlnaGVyUmVzb2x1dGlvbiA9IHRydWU7CisKKyAgICAgICAgbGV0
IGl0ZXJhdGlvbnMgPSB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uczsKKyAgICAgICAgbGV0IGl0
ZXJhdGlvbkR1cmF0aW9uID0gdGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uOworCisg
ICAgICAgIHRoaXMuX2FjdGl2ZUR1cmF0aW9uUm93LnZhbHVlID0gIWlzTmFOKGl0ZXJhdGlvbkR1
cmF0aW9uKSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcoaXRlcmF0aW9uRHVyYXRpb24gKiAoaXRl
cmF0aW9ucyB8fCAxKSwgaGlnaGVyUmVzb2x1dGlvbikgOiBudWxsOworICAgICAgICB0aGlzLl9z
dGFydERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0RGVsYXkgPyBOdW1iZXIu
c2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5zdGFydERlbGF5LCBoaWdoZXJSZXNvbHV0
aW9uKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5p
bWF0aW9uLmVuZERlbGF5ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24u
ZW5kRGVsYXksIGhpZ2hlclJlc29sdXRpb24pIDogbnVsbDsKKyAgICAgICAgdGhpcy5fdGltaW5n
RnVuY3Rpb25Sb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24udGltaW5nRnVuY3Rpb24gPyB0aGlz
Ll9hbmltYXRpb24udGltaW5nRnVuY3Rpb24udG9TdHJpbmcoKSA6IG51bGw7CisKKyAgICAgICAg
dGhpcy5faXRlcmF0aW9uc1Jvdy52YWx1ZSA9ICFpc05hTihpdGVyYXRpb25zKSA/IGl0ZXJhdGlv
bnMudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0
Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkgPyB0aGlz
Ll9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAg
ICAgIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93LnZhbHVlID0gIWlzTmFOKGl0ZXJhdGlvbkR1
cmF0aW9uKSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcoaXRlcmF0aW9uRHVyYXRpb24sIGhpZ2hl
clJlc29sdXRpb24pIDogbnVsbDsKKworICAgICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJv
dy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbiA/IFdJLkFuaW1hdGlv
bi5kaXNwbGF5TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFj
a0RpcmVjdGlvbikgOiBudWxsOworICAgICAgICB0aGlzLl9maWxsTW9kZVJvdy52YWx1ZSA9IHRo
aXMuX2FuaW1hdGlvbi5maWxsTW9kZSA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckZpbGxN
b2RlKHRoaXMuX2FuaW1hdGlvbi5maWxsTW9kZSkgOiBudWxsOworICAgIH0KKworICAgIF9yZWZy
ZXNoQmFja3RyYWNlU2VjdGlvbigpCisgICAgeworICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHRo
aXMuX2FuaW1hdGlvbi5iYWNrdHJhY2U7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVRyZWVDb250
cm9sbGVyLmNhbGxGcmFtZXMgPSBjYWxsRnJhbWVzOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VT
ZWN0aW9uLmVsZW1lbnQuaGlkZGVuID0gIWNhbGxGcmFtZXMubGVuZ3RoOworICAgIH0KKworICAg
IF9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fcmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQW5pbWF0aW9u
VGFyZ2V0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hJZGVudGl0
eVNlY3Rpb24oKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCmluZGV4
IDRlNWE5MGUxZjAzMTdmMGM0ZWJmNGY3OTk3MDI3NmM3ZmJkMjdmNTguLmNjMTY2YmQzZTYwZDM4
MWE3NWExYTE3OTQzYWJlMjM2NzA3YThiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5j
c3MKQEAgLTIzLDExICsyMywxMSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisuY29udGVudC12aWV3
LmNhbnZhcyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiAucHJldmlldyB7CisuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGp1c3RpZnktY29u
dGVudDogY2VudGVyOwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CkBAIC0zNiwxNyArMzYsMTcg
QEAKICAgICBwYWRkaW5nOiAxNXB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRh
YikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxl
eC1kaXJlY3Rpb246IGNvbHVtbjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIp
ID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGlt
ZyB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7
CisuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAg
ZGlzcGxheTogbm9uZTsKIH0KIApAQCAtNTYsNyArNTYsNyBAQAogfQogCiBAbWVkaWEgKHByZWZl
cnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50
YWIpIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHVuc2V0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKaW5kZXggOWI0
ZmQ2ZjZlZDdlMWNiNzYzOTc1MTExMDExNTMyNDY1NGQ1OGYwMS4uOTkzZGE1MTNmMmRkNTYzM2Zk
Nzk0ODNlYTRjYTlmZmJhOTZlZmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKQEAg
LTQ1LDcgKzQ1LDcgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRv
bk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwg
V0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7
CiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJp
b3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OwotICAgICAg
ICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLnJlZnJlc2hQcmV2aWV3LCB0
aGlzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5oYW5k
bGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2hvd0dyaWRC
dXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVt
KCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5V
SVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVt
Q2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZp
Z2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50
LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CkBAIC03Nyw2ICs3
NywyOSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgaGFuZGxlUmVm
cmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygp
OworICAgIH0KKworICAgIC8vIERyb3Bab25lVmlldyBkZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVT
aG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMiKTsKKyAgICB9
CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAg
ICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzOworICAgICAgICBpZiAoZmls
ZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYmVl
cCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV0kuRmlsZVV0
aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9j
ZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGluaXRp
YWxMYXlvdXQoKQpAQCAtMTYwLDYgKzE4MywxMyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNs
YXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBp
ZiAoaXNDYXJkKQogICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFBpeGVsU2l6ZSgpOworCisgICAg
ICAgIGlmICghaXNDYXJkKSB7CisgICAgICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJ
LkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAgICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0ku
VUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAgICAgICAgIGRyb3Bab25lVmlldy50
YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50OworICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3
KGRyb3Bab25lVmlldyk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBsYXlvdXQoKQpAQCAtMTkx
LDEzICsyMjEsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fdXBkYXRlSW1hZ2VHcmlk
KCk7CiAgICAgfQogCi0gICAgc2hvd24oKQotICAgIHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsK
LQotICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCiAgICAgYXR0YWNoZWQo
KQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKQEAgLTIyMyw2ICsyNDYsOCBAQCBX
SS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFZpZXcKICAgICAgICAgfSk7CiAKICAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdl
R3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBk
YXRlSW1hZ2VHcmlkLCB0aGlzKTsKKworICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7CiAg
ICAgfQogCiAgICAgZGV0YWNoZWQoKQpAQCAtMjkxLDExICszMTYsNiBAQCBXSS5DYW52YXNDb250
ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcK
IAogICAgIF9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudShjb250ZXh0TWVu
dSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKQotICAgICAgICAgICAgV0ku
YXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZh
c05vZGUpOwotCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwotCiAgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvZyBDYW52YXMgQ29udGV4
dCIpLCAoKSA9PiB7CiAgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUNhbnZhc0Nv
bnRleHQodGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1hbmFnZXIuQ29uc29sZU9i
amVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFyZW1v
dGVPYmplY3QpCkBAIC0zMDYsNiArMzI2LDExIEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xh
c3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAg
ICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBlbmRJbW1lZGlhdGVFeGVjdXRpb25X
aXRoUmVzdWx0KHRleHQsIHJlbW90ZU9iamVjdCwgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
U2VwYXJhdG9yKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2NhbnZhc05vZGUpCisgICAgICAgICAg
ICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5f
Y2FudmFzTm9kZSk7CiAgICAgfQogCiAgICAgX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCmluZGV4IDEwZjM3YzA0NmIw
YzJhMTI4MmM1ZWM5OWRjNmNiOTkwYjIyMzZjNWYuLjdkZGJmNDRiZTVkN2UzZjZmMjFjYTcyOGNl
YWZiYzZlZTk1ZmM3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcuY3NzCkBAIC0yNCwzMSArMjQsMzQgQEAKICAqLwogCiAuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyB7Ci0gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAganVzdGlmeS1jb250
ZW50OiB2YXIoLS1jYW52YXMtb3ZlcnZpZXctY29udGVudC12aWV3LWp1c3RpZnktY29udGVudCk7
CiAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDAsIDAlLCA5MCUpOworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHgg
MDsKIAotICAgIC0taXRlbS1tYXJnaW46IDEwcHg7CisgICAgLS1jYW52YXMtb3ZlcnZpZXctY29u
dGVudC12aWV3LWp1c3RpZnktY29udGVudC1kZWZhdWx0OiBjZW50ZXI7CisgICAgLS1jYW52YXMt
b3ZlcnZpZXctY29udGVudC12aWV3LWp1c3RpZnktY29udGVudDogdmFyKC0tY2FudmFzLW92ZXJ2
aWV3LWNvbnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQtb3ZlcnJpZGUsIHZhcigtLWNhbnZhcy1v
dmVydmlldy1jb250ZW50LXZpZXctanVzdGlmeS1jb250ZW50LWRlZmF1bHQpKTsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgeworLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZmxl
eC1ncm93OiAwOwotICAgIG1hcmdpbjogdmFyKC0taXRlbS1tYXJnaW4pOworICAgIGZsZXgtc2hy
aW5rOiAwOwogICAgIHdpZHRoOiA0MDBweDsKKyAgICBtYXJnaW46IDRweDsKICAgICBib3JkZXI6
IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMsCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2
aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CiAgICAgYm9yZGVyLWNvbG9yOiByZWQ7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3Rlcikgewog
ICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICBmbGV4LXNo
cmluazogMDsKQEAgLTU5LDEzNiArNjIsMTM2IEBACiAgICAgY3Vyc29yOiBkZWZhdWx0OwogfQog
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhl
YWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gaGVhZGVyIHsKICAgICBmb250LXNpemU6IDEzcHg7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBo
ZWFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gaGVhZGVyID4gLnRpdGxlcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnNpemUgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyID4gLnNpemUgewogICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxl
cyA+IC50aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHZhcigt
LXRleHQtY29sb3ItZ3JheS1kYXJrKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290
ZXIgLm1lbW9yeS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVt
b3J5LWNvc3QgewogICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBo
ZWFkZXIgLnN1YnRpdGxlOjpiZWZvcmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
PiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9yZSB7CiAgICAg
Y29udGVudDogIlwwMEEwXDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB3aGl0ZTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3Jk
aW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZl
ID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXNlbGVj
dGVkLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0
aW9uLWJhciA+IC5pdGVtIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KCk7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAg
IGFsaWduLWl0ZW1zOiBpbml0aWFsOwogICAgIGJvcmRlcjogbm9uZTsKICAgICBvcGFjaXR5OiAw
OwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhv
dmVyLCAucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVz
KDpob3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsK
ICAgICBvcGFjaXR5OiAxOwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1v
dXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAu
aXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxl
ZCB7CiAgICAgZmlsdGVyOiBncmF5c2NhbGUoKTsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVj
b3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQt
c3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRp
c2FibGVkKTpob3ZlciB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDk1JSk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3Jk
aW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3Rh
cnQtc3RvcDpub3QoLmRpc2FibGVkKTphY3RpdmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVh
ZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNh
YmxlZCk6YWN0aXZlIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoODAlKTsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFj
dGl2ZSA+IC5wcm9ncmVzcy12aWV3LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mt
dmlldywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiAucHJldmlldyB7CiAgICAgaGVpZ2h0OiAyODBweDsKICAgICB0cmFuc2l0aW9uOiBiYWNr
Z3JvdW5kLWNvbG9yIDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dy
ZXNzLXZpZXc6aG92ZXIsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12
aWV3OmhvdmVyLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwg
MCUsIDk2JSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAu
cHJldmlldyB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcg
PiBpbWcgewogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICBib3gtc2hhZG93OiAxcHggMnB4
IDZweCByZ2JhKDAsIDAsIDAsIDAuNTgpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiAucHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmlldyB7CiAgICAgcG9zaXRpb246IHN0YXRpYzsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBmb290ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IGZvb3RlciB7CiAgICAgYm9yZGVyLXRvcDogbm9uZTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmll
dy1yZWxhdGVkLWl0ZW1zIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKICAgICBkaXNw
bGF5OiBmbGV4OwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVs
YXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7Cisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXct
cmVjb3JkaW5nKSB7CiAgICAgd2lkdGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3Rl
ciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcgKyBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0
ZWQtaXRlbXMgPiBpbWcgKyBpbWcgewogICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiA0cHg7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
Zm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZp
ZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CiAgICAgY29udGVudDogaW1hZ2Utc2V0
KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50
R0xAMngucG5nKSAyeCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJl
Y29yZGluZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7
CiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAu
ZmxleGlibGUtc3BhY2UgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CiAgICAgZmxleDogMTsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAtd2Via2l0
LXBhZGRpbmctc3RhcnQ6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3Mgewog
ICAgIGhlaWdodDogMzQwcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJl
Y29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CiAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1y
ZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJl
Y29yZGluZ3MgLnRyZWUtb3V0bGluZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKICAgICBj
b250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCkBAIC0yMDksNDMgKzIx
MiwzOSBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB1bnNldDsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcywKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKyAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLAorICAgIC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7
CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3Itc2Vjb25k
YXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0g
ICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAu
cHJldmlldzpob3ZlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIs
CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cyA+IC5wcmV2aWV3OmhvdmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFj
a2dyb3VuZC1jb2xvci10ZXJ0aWFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CisgICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNv
cmRpbmctYWN0aXZlIHsKICAgICAgICAgLS1yZWNvcmRpbmctY29sb3I6IGhzbCgwLCAxMDAlLCAz
OSUpOwogICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAgICAg
fQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVy
IHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAg
ICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4g
LnRpdGxlIHsKICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpOwogICAgIH0KIAotICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworICAgIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAg
ICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAu
dmlldy1yZWNvcmRpbmcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLnZpZXctcmVjb3JkaW5nIHsKICAgICAgICAgZmls
dGVyOiBpbnZlcnQoKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxl
cyA+IC5zdWJ0aXRsZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5z
dWJ0aXRsZSB7CiAgICAgICAgIGNvbG9yOiB1bnNldDsKICAgICAgICAgb3BhY2l0eTogMC41CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKaW5kZXggNjM5
YjM2ZDg1OWJiN2NmM2MzNDQ0NWFhMGViNzQ5NTQzM2M0MTA5OC4uMGQxNjVkZDI2OGQ0MzcwMjhh
NDNkMTQ5ZTA3Y2ZhODM4YjRkZTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LmpzCkBAIC0yOSw3ICsyOSw4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAg
ICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLkNhbnZhc0NvbGxlY3Rpb24pOwogCi0gICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIg
PSBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0
cyIpKTsKKyAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmFuaW1hdGlvbk1hbmFn
ZXIuc3VwcG9ydGVkID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgOiBXSS5jcmVhdGVN
ZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKwogICAg
ICAgICBsZXQgZGVzY3JpcHRpb25FbGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKICAgICAgICAgZGVzY3JpcHRpb25F
bGVtZW50LmNsYXNzTmFtZSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxl
bWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4
dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiIpOwpAQCAtNjIsMjEgKzYzLDcgQEAgV0kuQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlY29yZGluZ0F1dG9D
YXB0dXJlQ2hlY2tib3hMYWJlbChmcmFtZUNvdW50KTsKICAgICAgICAgfQogCi0gICAgICAgIHRo
aXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0lt
cG9ydC5zdmciLCAxNSwgMTUpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9u
SXRlbS50b29sdGlwID0gV0kuVUlTdHJpbmcoIkltcG9ydCIpOwotICAgICAgICB0aGlzLl9pbXBv
cnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKLQotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2gtYWxsIiwg
V0kuVUlTdHJpbmcoIlJlZnJlc2ggYWxsIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywg
MTMpOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9
IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZl
bnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9y
ZWZyZXNoUHJldmlld3MsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1n
cmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmco
IkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJz
LnN2ZyIsIDEzLCAxMyk7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOwotICAgICAg
ICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAg
ICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVy
KFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0
dG9uQ2xpY2tlZCwgdGhpcyk7Ci0KICAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZl
bnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9o
YW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwotICAgICAgICB0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5h
dmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRp
bmdzQ29udGVudFZpZXcgPSBudWxsOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVl
T3V0bGluZSA9IG51bGw7CkBAIC05MCwxNyArNzcsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250
ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xs
ZWMKIAogICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgbGV0IG5hdmln
YXRpb25JdGVtcyA9IFt0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRp
dmlkZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0
aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKLSAgICAgICAgaWYgKFdJLkNhbnZh
c01hbmFnZXIuc3VwcG9ydHNSZWNvcmRpbmdBdXRvQ2FwdHVyZSgpKQotICAgICAgICAgICAgbmF2
aWdhdGlvbkl0ZW1zLnVuc2hpZnQodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9u
SXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIGxldCBuYXZpZ2F0
aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2
aWdhdGlvbkl0ZW0pCisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9yZWNv
cmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRp
b25JdGVtczsKICAgICB9CiAKLSAgICBoaWRkZW4oKQorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkKCkKICAgICB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGln
aHQoKTsKLQotICAgICAgICBzdXBlci5oaWRkZW4oKTsKKyAgICAgICAgZm9yIChsZXQgc3Vidmll
dyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9m
IFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVm
cmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3Rl
ZApAQCAtMTE1LDIzICsxMDMsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNs
YXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAg
ICAgIHRoaXMucmVtb3ZlU3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7
CiAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVu
dFZpZXcpOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1z
KCk7CiAgICAgfQogCiAgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQogICAgIHsK
ICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVu
dGVyIiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUVudGVyKTsKICAgICAgICAgY29udGVudFZpZXcu
ZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5fY29udGVudFZp
ZXdNb3VzZUxlYXZlKTsKLQotICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsK
ICAgICB9CiAKICAgICBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgp
OwogCi0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihX
SS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZVNob3dJbWFnZUdyaWQsIHRoaXMp
OwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQu
YWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNh
bnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZENoYW5nZWQsIHRoaXMpOwogICAgICAgICBX
SS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuYWRkRXZlbnRM
aXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29y
ZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudENoYW5nZWQsIHRoaXMpOwogCkBAIC0xNDEsNDkgKzEy
NCwyNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZp
ZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRS
ZWNvcmRpbmdzVHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgZm9yIChsZXQg
cmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQogICAgICAgICAg
ICAgdGhpcy5fYWRkU2F2ZWRSZWNvcmRpbmcocmVjb3JkaW5nKTsKKworICAgICAgICBmb3IgKGxl
dCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGlu
c3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5y
ZWZyZXNoUHJldmlldygpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQogICAg
IHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCiAgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlz
KTsKIAogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1l
Q291bnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAgICAgICAgV0ku
c2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkLnJlbW92ZUV2ZW50TGlz
dGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdy
aWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBzdXBl
ci5kZXRhY2hlZCgpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAotICAgIGdldCBfaXRlbU1h
cmdpbigpCi0gICAgewotICAgICAgICByZXR1cm4gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVk
U3R5bGUodGhpcy5lbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCItLWl0ZW0tbWFyZ2luIikpOwot
ICAgIH0KLQotICAgIF9yZWZyZXNoUHJldmlld3MoKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQg
Y2FudmFzQ29udGVudFZpZXcgb2YgdGhpcy5zdWJ2aWV3cykKLSAgICAgICAgICAgIGNhbnZhc0Nv
bnRlbnRWaWV3LnJlZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZU5hdmlnYXRp
b25JdGVtcygpCi0gICAgewotICAgICAgICBsZXQgaGFzSXRlbXMgPSAhIXRoaXMucmVwcmVzZW50
ZWRPYmplY3Quc2l6ZTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmVuYWJsZWQgPSBoYXNJdGVtczsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0
aW9uSXRlbS5lbmFibGVkID0gaGFzSXRlbXM7Ci0gICAgfQotCi0gICAgX3Nob3dHcmlkQnV0dG9u
Q2xpY2tlZChldmVudCkKLSAgICB7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQu
dmFsdWUgPSAhdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7Ci0g
ICAgfQotCi0gICAgX3VwZGF0ZVNob3dJbWFnZUdyaWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5f
c2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNo
b3dJbWFnZUdyaWQudmFsdWU7Ci0gICAgfQotCiAgICAgX2NvbnRlbnRWaWV3TW91c2VFbnRlcihl
dmVudCkKICAgICB7CiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1l
bnQoZXZlbnQudGFyZ2V0KTsKQEAgLTMwMSw4ICsyNjIsNyBAQCBXSS5DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNv
bGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcuZWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5lbGVtZW50KTsK
ICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAgICAgICAgbGV0
IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29y
ZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAg
ICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50
KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgV0kuUmVjb3JkaW5nLmRpc3Bs
YXlOYW1lRm9yUmVjb3JkaW5nVHlwZShyZWNvcmRpbmcudHlwZSksIHJlY29yZGluZyk7CiAgICAg
ICAgIHJlY29yZGluZ1RyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAgICAgICAgdGhp
cy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVs
ZW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwppbmRleCBjMmJiZGMw
MmU5ZTg5NmI0MmIxYjYzZDMzNGJjZmYyMmQ4Mjc0YTE5Li5jNzExZmFmNDYyYjc2ZTVlOTA4Mjc0
N2YxN2Y5MmVhODZiMWZiMGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCkBAIC0y
MzcsMTAgKzIzNyw4IEBAIFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGVi
YXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmFyUGFuCiAKICAgICBjYW5TaG93UmVw
cmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgewotICAgICAgICBpZiAocmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVybiBzdXBlci5jYW5TaG93UmVwcmVzZW50
ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzVGFiQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4OWRhYjVlZjk5NzlkNjJiODExNTk4OWE5MTY0MDQxM2M3MmE4Y2RjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcworKysgL2Rl
di9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0uY29udGVudC12aWV3LnRhYi5j
YW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0g
ICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwotfQotCi0uY29u
dGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52
YXMtMmQgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsK
LX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5j
YW52YXM6bWF0Y2hlcygud2ViZ2wsIC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24g
ewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKLX0KLQotLmNvbnRl
bnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAu
aWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKLX0KLQot
LmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXIt
cHJvZ3JhbSA+IC5pY29uIHsKLSAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9E
b2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsK
LX0KLQotQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50
LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3
IC5pY29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKLSAgICB9Ci0KLSAgICAuY29u
dGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNv
biwKLSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0g
LnJlY29yZGluZyA+IC5pY29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKLSAgICB9Ci19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2ZTFkYmU0ODAxZTU1N2JjN2MyMGU1MmVjNzdjODA5OTlkNTZhOGQ1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMjk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5DYW52YXNUYWJDb250ZW50
VmlldyA9IGNsYXNzIENhbnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dz
ZXJUYWJDb250ZW50VmlldwotewotICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQot
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXJlcHJlc2VudGVkT2JqZWN0IHx8IHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKLQotICAgICAgICBsZXQgdGFiQmFy
SXRlbSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkNhbnZhc1RhYkNvbnRl
bnRWaWV3LnRhYkluZm8oKSk7Ci0KLSAgICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5l
bENvbnN0cnVjdG9yID0gV0kuQ2FudmFzU2lkZWJhclBhbmVsOwotICAgICAgICBjb25zdCBkZXRh
aWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzID0gW1dJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1Np
ZGViYXJQYW5lbCwgV0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5DYW52
YXNEZXRhaWxzU2lkZWJhclBhbmVsXTsKLSAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJk
ID0gdHJ1ZTsKLSAgICAgICAgc3VwZXIoImNhbnZhcyIsIFsiY2FudmFzIl0sIHRhYkJhckl0ZW0s
IG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENv
bnN0cnVjdG9ycywgZGlzYWJsZUJhY2tGb3J3YXJkKTsKLQotICAgICAgICB0aGlzLl9jYW52YXND
b2xsZWN0aW9uID0gbmV3IFdJLkNhbnZhc0NvbGxlY3Rpb247Ci0KLSAgICAgICAgdGhpcy5fY2Fu
dmFzVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmU7Ci0gICAgICAgIHRoaXMuX2NhbnZh
c1RyZWVPdXRsaW5lLmFsbG93c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7Ci0gICAgICAgIHRoaXMu
X2NhbnZhc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQu
U2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENo
YW5nZSwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCA9IG5ldyBX
SS5HZW5lcmFsVHJlZUVsZW1lbnQoImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVy
dmlldyIpLCBudWxsLCB0aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgdGhpcy5fY2Fu
dmFzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCk7Ci0K
LSAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVy
VHJlZUVsZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSwgV0kuUmVjb3JkaW5n
Q29sbGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50Lmhp
ZGRlbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3Jl
Y29yZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRT
aG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAg
ICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7
Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAg
ICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRj
dXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1
dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlz
Ll9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBm
YWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9
IHRydWU7Ci0KLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKLSAgICB9Ci0KLSAg
ICBzdGF0aWMgdGFiSW5mbygpCi0gICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAg
aW1hZ2U6ICJJbWFnZXMvQ2FudmFzLnN2ZyIsCi0gICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJp
bmcoIkNhbnZhcyIpLAotICAgICAgICB9OwotICAgIH0KLQotICAgIHN0YXRpYyBpc1RhYkFsbG93
ZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJD
YW52YXMiKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIHRyZWVFbGVtZW50Rm9yUmVw
cmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5fY2FudmFzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0
KTsKLSAgICB9Ci0KLSAgICBnZXQgdHlwZSgpCi0gICAgewotICAgICAgICByZXR1cm4gV0kuQ2Fu
dmFzVGFiQ29udGVudFZpZXcuVHlwZTsKLSAgICB9Ci0KLSAgICBnZXQgc3VwcG9ydHNTcGxpdENv
bnRlbnRCcm93c2VyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAg
IGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCi0gICAgewotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50
ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5DYW52YXMKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQ2FudmFzQ29sbGVjdGlvbgotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbTsKLSAgICB9Ci0KLSAgICBzaG93bigpCi0gICAg
ewotICAgICAgICBzdXBlci5zaG93bigpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRj
dXQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMuY29udGVudEJyb3dzZXIu
Y3VycmVudENvbnRlbnRWaWV3KQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmpl
Y3QodGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgfQotCi0gICAgaGlkZGVuKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAg
dGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAg
ICAgc3VwZXIuaGlkZGVuKCk7Ci0gICAgfQotCi0gICAgY2xvc2VkKCkKLSAgICB7Ci0gICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuZGlzYWJsZSgpOwotCi0gICAgICAgIHN1cGVyLmNsb3NlZCgpOwot
ICAgIH0KLQotICAgIHJlc3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQotICAgIHsKLSAgICAg
ICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+
IGlzIGNvbXBsZXRlLgotICAgIH0KLQotICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKLSAg
ICB7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KLSAgICB9Ci0KLSAgICBhc3luYyBoYW5kbGVGaWxlRHJv
cChmaWxlcykKLSAgICB7Ci0gICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04o
ZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7
Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICBhdHRhY2hlZCgpCi0gICAgewotICAg
ICAgICBzdXBlci5hdHRhY2hlZCgpOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB0aGlzLl9oYW5k
bGVDYW52YXNBZGRlZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHRoaXMuX2hhbmRs
ZUNhbnZhc1JlbW92ZWQsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFu
ZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotICAgICAgICBXSS5DYW52YXMuYWRk
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFu
ZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotCi0gICAgICAgIGxldCBjYW52YXNl
cyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFz
IG9mIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgIGlmICghY2FudmFzZXMu
aW5jbHVkZXMoY2FudmFzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2Fu
dmFzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBjYW52YXNlcykg
ewotICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQot
ICAgICAgICAgICAgICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsK
LSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNv
cmRpbmdzKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHBy
ZXNzU2hvd1JlY29yZGluZzogdHJ1ZX0pOwotICAgIH0KLQotICAgIGRldGFjaGVkKCkKLSAgICB7
Ci0gICAgICAgIFdJLkNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMp
OwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVs
bCwgdGhpcyk7Ci0KLSAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKLSAgICB9Ci0KLSAgICAvLyBQ
cml2YXRlCi0KLSAgICBfYWRkQ2FudmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIHRoaXMuX292
ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNh
bnZhcykpOwotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52YXMpOwotCi0g
ICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRp
bmc6IHRydWUsCi0gICAgICAgIH07Ci0KLSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNh
bnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5n
KHJlY29yZGluZywgb3B0aW9ucyk7Ci0gICAgfQotCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMp
Ci0gICAgewotICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGlu
ZS5maW5kVHJlZUVsZW1lbnQoY2FudmFzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVs
ZW1lbnQsICJNaXNzaW5nIHRyZWUgZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7Ci0KLSAg
ICAgICAgY29uc3Qgc3VwcHJlc3NOb3RpZmljYXRpb24gPSB0cnVlOwotICAgICAgICB0cmVlRWxl
bWVudC5kZXNlbGVjdChzdXBwcmVzc05vdGlmaWNhdGlvbik7Ci0gICAgICAgIHRoaXMuX292ZXJ2
aWV3VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMu
X2NhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlKGNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IGN1cnJlbnRD
b250ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OwotICAg
ICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZp
ZXcpCi0gICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29s
bGVjdGlvbik7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9m
IFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhh
cyhjdXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQotICAgICAgICAgICAgdGhp
cy5jb250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRW
aWV3KCk7Ci0KLSAgICAgICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmln
YXRpb25TaWRlYmFyUGFuZWw7Ci0gICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGlu
c3RhbmNlb2YgV0kuQ2FudmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwu
dmlzaWJsZSkKLSAgICAgICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVz
ZW50ZWRPYmplY3RzKCk7Ci0KLSAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMo
KTsKLSAgICB9Ci0KLSAgICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQot
ICAgIHsKLSAgICAgICAgaWYgKCFyZWNvcmRpbmcuc291cmNlKSB7Ci0gICAgICAgICAgICBjb25z
dCBzdWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQg
PSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNw
bGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJl
Y29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMuX3Nh
dmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRp
bmcpCi0gICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOwot
ICAgIH0KLQotICAgIF9oYW5kbGVDYW52YXNBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2FkZENhbnZhcyhldmVudC5kYXRhLmNhbnZhcyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNh
bnZhc1JlbW92ZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZl
bnQuZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAgIF9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlv
bkRpZENoYW5nZShldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0
aGlzLl9jYW52YXNUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAo
IXNlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVw
cmVzZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAg
ICAgIGlmICghdGhpcy5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3Qp
KSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVz
ZW50ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRPYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50
ZWRPYmplY3QpOwotICAgIH0KLQotICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChl
dmVudCkKLSAgICB7Ci0gICAgICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGlt
cG9ydGVkfSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBvcHRpb25zID0ge307Ci0KLSAgICAgICAgLy8gQWx3
YXlzIHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5ncy4KLSAgICAgICAgaWYgKHJlY29yZGluZy5zb3Vy
Y2UgfHwgIWltcG9ydGVkKQotICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRp
bmcgPSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJl
c2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpOwotCi0gICAgICAgIHRoaXMuX2FkZFJlY29yZGlu
ZyhyZWNvcmRpbmcsIG9wdGlvbnMpOwotICAgIH0KLQotICAgIF9oYW5kbGVTcGFjZShldmVudCkK
LSAgICB7Ci0gICAgICAgIGlmIChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50
KSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNp
ZGViYXJQYW5lbCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgY2FudmFzID0g
dGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNhbnZhczsKLSAgICAgICAgaWYgKCFjYW52YXMp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3Rp
dmUpCi0gICAgICAgICAgICBjYW52YXMuc3RvcFJlY29yZGluZygpOwotICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIGxldCBzaW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAg
ICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICB9Ci19OwotCi1XSS5DYW52YXNUYWJD
b250ZW50Vmlldy5UeXBlID0gImNhbnZhcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmNzcwppbmRleCBmZTMzZTdhY2Q5ZjE2MWIyY2MwY2U3MWNkNTI0YTQ5MWFkZDMzYzJiLi44
MmNiY2ZhOGJiNTA0M2IzY2ZlNWE3NjMyM2JkMTA0OWNkNWM1NzJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZp
ZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTI1LDIyICsyNSwzNCBAQAogCiAuY29udGVudC12
aWV3LmNvbGxlY3Rpb24gewogICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgZmxleC13cmFwOiB3cmFw
OwotICAgIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDsKKyAgICBmbGV4LXdyYXA6IHZhcigt
LWNvbGxlY3Rpb24tY29udGVudC12aWV3LWZsZXgtd3JhcCk7CisgICAgb3ZlcmZsb3cteDogdmFy
KC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteCkgIWltcG9ydGFudDsKKyAgICBv
dmVyZmxvdy15OiB2YXIoLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy15KSAhaW1w
b3J0YW50OworCisgICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1mbGV4LXdyYXAtZGVmYXVs
dDogd3JhcDsKKyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXgtZGVmYXVs
dDogaGlkZGVuOworICAgIC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteS1kZWZh
dWx0OiBhdXRvOworCisgICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1mbGV4LXdyYXA6IHZh
cigtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LWZsZXgtd3JhcC1vdmVycmlkZSwgdmFyKC0tY29s
bGVjdGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwLWRlZmF1bHQpKTsKKyAgICAtLWNvbGxlY3Rp
b24tY29udGVudC12aWV3LW92ZXJmbG93LXg6IHZhcigtLWNvbGxlY3Rpb24tY29udGVudC12aWV3
LW92ZXJmbG93LXgtb3ZlcnJpZGUsIHZhcigtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJm
bG93LXgtZGVmYXVsdCkpOworICAgIC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3ct
eTogdmFyKC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteS1vdmVycmlkZSwgdmFy
KC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteS1kZWZhdWx0KSk7CiB9CiAKIC5j
b250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5jb250ZW50LXZpZXcgewogICAgIGZsZXgtZ3Jvdzog
MTsKIH0KIAotLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcgewot
ICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ci19Ci0KLS5jb250
ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsKLSAgICBvdXRs
aW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCi19Ci0KIC5jb250ZW50LXZpZXcu
Y29sbGVjdGlvbiA+IC5jb250ZW50LXZpZXdbaGlkZGVuXSB7CiAgICAgZGlzcGxheTogbm9uZTsK
IH0KKworLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2Fn
ZS10ZXh0LXZpZXcpIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtZGlyZWN0aW9uOiBj
b2x1bW47CisgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNl
bnRlcjsKKyAgICB3aWR0aDogMTAwJTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9u
dC1zaXplOiAxM3B4OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRleCAwNTQ3NDE2ODFjODE4
YmU1YmNhYTVkNmZmMTlkNTM3MjliN2IzODY2Li5kNGU2MWUwODI1NTBjYTVkMzg2MDIyZGVmMGVm
YjM5NTVlOGNiNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0y
OCw3ICsyOCw3IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgY29uc3RydWN0b3IoY29sbGVj
dGlvbiwgY29udGVudFZpZXdDb25zdHJ1Y3RvciwgY29udGVudFBsYWNlaG9sZGVyKQogICAgIHsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY29sbGVjdGlvbiBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rp
b24pOwotICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlld0NvbnN0cnVjdG9yIGluc3Rh
bmNlb2YgV0kuQ29udGVudFZpZXcpOworICAgICAgICBjb25zb2xlLmFzc2VydCghY29udGVudFZp
ZXdDb25zdHJ1Y3RvciB8fCBjb250ZW50Vmlld0NvbnN0cnVjdG9yLnByb3RvdHlwZSBpbnN0YW5j
ZW9mIFdJLkNvbnRlbnRWaWV3KTsKIAogICAgICAgICBzdXBlcihjb2xsZWN0aW9uKTsKIApAQCAt
MzgsNyArMzgsNiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9u
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9jb250ZW50
UGxhY2Vob2xkZXJFbGVtZW50ID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb25z
dHJ1Y3RvciA9IGNvbnRlbnRWaWV3Q29uc3RydWN0b3I7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRW
aWV3TWFwID0gbmV3IE1hcDsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAgPSBuZXcgV2Vh
a01hcDsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gbnVsbDsKICAgICAgICAgdGhpcy5f
c2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOwogICAgIH0KQEAgLTgzLDE5ICs4MiwyNSBAQCBXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKICAg
ICB9CiAKLSAgICBzZXRTZWxlY3RlZEl0ZW0oaXRlbSkKKyAgICBnZXQgc2VsZWN0ZWRJdGVtKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07CisgICAgfQorCisgICAg
c2V0IHNlbGVjdGVkSXRlbShpdGVtKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy5fc2VsZWN0aW9uRW5hYmxlZCwgIkF0dGVtcHRlZCB0byBzZXQgc2VsZWN0ZWQgaXRlbSB3aGVu
IHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4iKTsKICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25F
bmFibGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBjb250ZW50VmlldyA9
IHRoaXMuX2NvbnRlbnRWaWV3TWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
Y29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRldCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOwotICAg
ICAgICBpZiAoIWNvbnRlbnRWaWV3KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRo
aXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCgpOworCisgICAgICAgIGlmIChpdGVtKSB7CisgICAgICAgICAgICBs
ZXQgY29udGVudFZpZXcgPSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7CisgICAgICAg
ICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldywgIk1pc3NpbmcgY29udGV0IHZpZXcgZm9y
IGl0ZW0uIiwgaXRlbSk7CisgICAgICAgICAgICBpZiAoY29udGVudFZpZXcpCisgICAgICAgICAg
ICAgICAgY29udGVudFZpZXcuZWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTEyMCwyMCArMTI1LDkgQEAgV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBsZXQgY29udGVudFZpZXcgPSBuZXcgdGhpcy5f
Y29udGVudFZpZXdDb25zdHJ1Y3RvcihpdGVtLCB0aGlzLmNvbnRlbnRWaWV3Q29uc3RydWN0b3JP
cHRpb25zKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcgaW5zdGFuY2VvZiBX
SS5Db250ZW50Vmlldyk7Ci0KLSAgICAgICAgbGV0IGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7
Ci0gICAgICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9u
RW5hYmxlZCkKLSAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVt
KTsKLSAgICAgICAgfTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcucmVwcmVz
ZW50ZWRPYmplY3QgPT09IGl0ZW0pOwogCiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwLnNl
dChpdGVtLCBjb250ZW50Vmlldyk7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLnNldChp
dGVtLCBoYW5kbGVDbGljayk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBoYW5kbGVDbGljayk7CiAKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3
KGNvbnRlbnRWaWV3KTsKICAgICAgICAgdGhpcy5jb250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3
KTsKQEAgLTE2OSwxNCArMTYzLDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3Mg
Q29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBj
b250ZW50Vmlldy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCi0gICAg
ICAgIGxldCBoYW5kbGVDbGljayA9IHRoaXMuX2hhbmRsZUNsaWNrTWFwLmdldChpdGVtKTsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQoaGFuZGxlQ2xpY2spOwotCi0gICAgICAgIGlmIChoYW5kbGVD
bGljaykgewotICAgICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3Rl
bmVyKCJjbGljayIsIGhhbmRsZUNsaWNrKTsKLSAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaWNr
TWFwLmRlbGV0ZShpdGVtKTsKLSAgICAgICAgfQotCiAgICAgICAgIGlmICghdGhpcy5zdWJ2aWV3
cy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKICAg
ICB9CkBAIC0yMDAsNiArMTg2LDggQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3Mg
Q29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAg
ICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5fY29udGVudFBsYWNl
aG9sZGVyOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJwbGFjZWhvbGRlciIpOworCiAgICAgICAgIGlmICghdGhpcy5f
Y29udGVudFBsYWNlaG9sZGVyRWxlbWVudC5wYXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQpOwogICAg
IH0KQEAgLTIxMiwxMCArMjAwLDExIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBpbml0
aWFsTGF5b3V0KCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5z
aXplIHx8ICF0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKSB7CisgICAgICAgIGlmICh0aGlz
Ll9jb250ZW50Vmlld0NvbnN0cnVjdG9yKQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CisKKyAg
ICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRlbnRW
aWV3Q29uc3RydWN0b3IpCiAgICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIo
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGF0dGFjaGVk
KCkKQEAgLTI5Miw2ICsyODEsMzAgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3Mg
Q29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAg
IHNlbGVjdGVkQ29udGVudFZpZXcuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwog
ICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVkSXRlbUNoYW5nZWQpOwogICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVt
ZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOwogICAgIH0KKworICAgIF9oYW5kbGVD
bGljayhldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZl
bnQuY3RybEtleSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBbaXRl
bSwgY29udGVudFZpZXddIG9mIHRoaXMuX2NvbnRlbnRWaWV3TWFwKSB7CisgICAgICAgICAgICBp
ZiAoY29udGVudFZpZXcuZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRlbSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMu
X3NlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOwor
ICAgIH0KK307CisKK1dJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVudCA9IHsKKyAgICBTZWxl
Y3RlZEl0ZW1DaGFuZ2VkOiAiY29sbGVjdGlvbi1jb250ZW50LXZpZXctc2VsZWN0ZWQtaXRlbS1j
aGFuZ2VkIiwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzCmluZGV4IGRmOTEyZGQ1NmZhMDdkZjk0OGYwZDdm
N2FmMGQ3YzZkMWI3OWEyZjYuLjI5NmMyYTU0MjNhMGY2OTFlYWM3ZDJkMGU5MzYwMGY1MTU0ZjBk
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRWaWV3LmpzCkBAIC02MCw5ICs2MCw2IEBAIFdJLkNvbnRlbnRWaWV3ID0g
Y2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAgIHJldHVybiBuZXcgV0ku
Q2FudmFzQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAot
ICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0
aW9uKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7Ci0KICAgICAgICAgaWYgKHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAgICAgICAgICAgIHJl
dHVybiBuZXcgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBl
eHRyYUFyZ3VtZW50cyk7CiAKQEAgLTE4Miw2ICsxNzksOSBAQCBXSS5Db250ZW50VmlldyA9IGNs
YXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cCB8fCByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIG5l
dyBXSS5BdWRpdFRlc3RHcm91cENvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFy
Z3VtZW50cyk7CiAKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
QW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb25Db250ZW50Vmll
dyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOworCiAgICAgICAgIGlmIChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAgICByZXR1
cm4gbmV3IFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFB
cmd1bWVudHMpOwogCkBAIC0yNzMsOCArMjczLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBD
b250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLlRpbWVsaW5lUmVjb3JkaW5nKQpAQCAtMzE4LDEwICszMTYsMTQgQEAgV0kuQ29u
dGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYg
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZSB8fCByZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwCiAgICAgICAgICAgICB8fCBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5BbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYg
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICBpZiAodHlwZW9mIHJlcHJlc2VudGVkT2JqZWN0ID09PSAi
c3RyaW5nIiB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3RbV0kuQ29udGVu
dFZpZXcuaXNWaWV3YWJsZVN5bWJvbF0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNTEyLDQgKzUxNCw1IEBAIFdJLkNvbnRlbnRW
aWV3LkV2ZW50ID0gewogICAgIE5hdmlnYXRpb25JdGVtc0RpZENoYW5nZTogImNvbnRlbnQtdmll
dy1uYXZpZ2F0aW9uLWl0ZW1zLWRpZC1jaGFuZ2UiCiB9OwogCitXSS5Db250ZW50Vmlldy5pc1Zp
ZXdhYmxlU3ltYm9sID0gU3ltYm9sKCJpcy12aWV3YWJsZSIpOwogV0kuQ29udGVudFZpZXcuQ29u
dGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdFN5bWJvbCA9IFN5bWJvbCgiY29udGVudC12aWV3
LWZvci1yZXByZXNlbnRlZC1vYmplY3QiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3cuanMKaW5kZXggZTVhNWZlYzFlYWJiNWMwOTcyY2ZhMDUzZDUzNGMzNjAwOWUxYjc2Zi4u
N2VkMGM4MmViM2I3MWVlYjZiYmIxZjk3ZTk3OTBmNmJiYmM1NTYxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3cuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKQEAgLTk2LDcgKzk2LDcgQEAgV0kuRGV0YWlsc1Nl
Y3Rpb25TaW1wbGVSb3cgPSBjbGFzcyBEZXRhaWxzU2VjdGlvblNpbXBsZVJvdyBleHRlbmRzIFdJ
LkRldGFpbHNTZWMKICAgICB7CiAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgIiI7CiAK
LSAgICAgICAgaWYgKHRoaXMuX3ZhbHVlKSB7CisgICAgICAgIGlmICh0aGlzLl92YWx1ZSB8fCB0
aGlzLl92YWx1ZSA9PT0gMCkgewogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuRW1wdHlTdHlsZUNsYXNzTmFtZSk7CiAK
ICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBoYXMgc3BhY2UgY2hhcmFjdGVycyB0aGF0IGNh
dXNlIHdvcmQgd3JhcHBpbmcgdGhlbiB3ZSBkb24ndCBuZWVkIHRoZSBkYXRhIGNsYXNzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGNmNzAyMmNkZjVhZjFmMTU3YzRhNjk0NzkyMDRjNzU5ZjBmNzhjMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250
ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgeworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigt
LWJhY2tncm91bmQtY29sb3ItY29udGVudCk7CisgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAg
IHBhZGRpbmctYm90dG9tOiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworfQorCisuY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiB7CisgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7Cit9CisKKy5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpIHsKKyAgICBt
YXJnaW4tdG9wOiAyMHB4OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4g
c2VjdGlvbiA+IC5oZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6
IGNlbnRlcjsKKyAgICBwb3NpdGlvbjogc3RpY2t5OworICAgIHRvcDogMDsKKyAgICB6LWluZGV4
OiAxOworICAgIG1pbi1oZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAg
LXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA4cHg7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk
IHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVhZGVyIHsKKyAgICBib3JkZXIt
dG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyID4gaDEgeworICAgIG1hcmdpbjog
MDsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVh
ZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBmbGV4LWdyb3c6IDE7CisgICAganVzdGlmeS1j
b250ZW50OiBmbGV4LWVuZDsKKyAgICBib3JkZXItYm90dG9tOiBub25lOworfQorCisuY29udGVu
dC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbi5jYW52YXMgPiAuY29udGVudCA+IC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKKyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12
aWV3LWZsZXgtd3JhcC1vdmVycmlkZTogbm93cmFwOworICAgIC0tY29sbGVjdGlvbi1jb250ZW50
LXZpZXctb3ZlcmZsb3cteC1vdmVycmlkZTogYXV0bzsKKyAgICAtLWNvbGxlY3Rpb24tY29udGVu
dC12aWV3LW92ZXJmbG93LXktb3ZlcnJpZGU6IGhpZGRlbjsKKyAgICAtLWNhbnZhcy1vdmVydmll
dy1jb250ZW50LXZpZXctanVzdGlmeS1jb250ZW50LW92ZXJyaWRlOiBmbGV4LXN0YXJ0OworfQor
CisvKiBFbnN1cmUgdGhhdCBzdGFydC9lbmQgbWFyZ2lucyBvZiBzdWJ2aWV3cyBhcmUgc2hvd24u
ICovCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5jb250ZW50
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXc6bWF0Y2hlcyg6OmJlZm9yZSwgOjphZnRl
cikgeworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIGZsZXgtc2hyaW5rOiAwOworICAgIHdpZHRo
OiA0cHg7CisgICAgY29udGVudDogIiI7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIHRvcDogMDsKKyAgICByaWdodDogMDsKKyAgICBib3R0b206IDA7CisgICAg
bGVmdDogMDsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIHsKKyAg
ICAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3IHsKKyAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogaHNsKDAsIDAlLCA5MCUpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciB7CisgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IGhzbCgwLCAwJSwgOTclKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmll
dy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNz
T3ZlcnZpZXdDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmE4NmY0MDk5YjlmYjZhZjhhNDM4
NjVhM2FlNGUxOGEyZDAyMWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzCkBA
IC0wLDAgKzEsMjA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3ID0gY2xhc3MgR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigpOworCisg
ICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJncmFwaGljcy1vdmVydmlldyIpOwor
CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIp
LCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0
b25OYXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlTdHJpbmcoIkltcG9ydCIpOworICAgICAg
ICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKKyAgICAgICAgdGhpcy5faW1wb3J0
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bUNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9u
SXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5n
KCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOworICAgICAgICB0
aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9u
SXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBX
SS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0
cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwg
MTMsIDEzKTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3Rp
dmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgICAgIHRoaXMu
X3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNs
aWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcg
PSBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyhXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24pOworCisgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmlld3MgPSBbXTsKKyAgICB9
CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVj
dHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJ2aWV3Vmlld3MuZmxhdE1hcCgo
c3VidmlldykgPT4gc3Vidmlldy5zdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMpOworICAg
IH0KKworICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQorICAgIHsKKyAgICAgICAgbGV0IG5hdmln
YXRpb25JdGVtcyA9IFtdOworICAgICAgICBpZiAoIVdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9y
dGVkKSB7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaEFsbCh0aGlzLl9jYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVtcyk7CisgICAgICAgICAgICBuYXZpZ2F0
aW9uSXRlbXMucHVzaChuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgfQor
ICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9u
SXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5h
dmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKKyAgICAg
ICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKwor
ICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAg
ICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcu
RXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0
aGlzKTsKKyAgICAgICAgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKCk7
CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5o
aWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdy
aWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hh
bmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIu
ZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAg
IHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBpZiAoV0kuYW5pbWF0aW9uTWFuYWdl
ci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGxldCBjcmVhdGVTZWN0aW9uID0gKGlkZW50aWZp
ZXIsIHRpdGxlLCBvdmVydmlld1ZpZXcpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmFz
c2VydChvdmVydmlld1ZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7CisKKyAgICAgICAg
ICAgICAgICBsZXQgc2VjdGlvbkVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBzZWN0aW9u
RWxlbWVudC5jbGFzc05hbWUgPSBpZGVudGlmaWVyOworCisgICAgICAgICAgICAgICAgbGV0IGhl
YWRlckVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAgaGVhZGVyRWxlbWVudC5jbGFzc05hbWUg
PSAiaGVhZGVyIjsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSBoZWFkZXJF
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIikpOworICAgICAg
ICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOworCisgICAgICAgICAg
ICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IG92ZXJ2aWV3Vmlldy5uYXZpZ2F0aW9uSXRlbXM7
CisgICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25JdGVtcy5sZW5ndGgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdhdGlvbkJhcihkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJuYXYiKSwgbmF2aWdhdGlvbkl0ZW1zKTsKKyAgICAgICAgICAg
ICAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQp
OworICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcobmF2aWdhdGlvbkJhcik7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IGNvbnRlbnRFbGVtZW50ID0g
c2VjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikp
OworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LmNsYXNzTmFtZSA9ICJjb250ZW50IjsK
KworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKG92ZXJ2aWV3Vmll
dy5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcob3ZlcnZpZXdWaWV3
KTsKKworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExpc3RlbmVyKFdJLkNv
bGxlY3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzLl9oYW5k
bGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgICAg
ICBvdmVydmlld1ZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db250ZW50Vmlldy5FdmVudC5TdXBw
bGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3
Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSwgdGhpcyk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdWaWV3cy5wdXNoKG92ZXJ2aWV3Vmlldyk7CisgICAg
ICAgICAgICB9OworCisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjYW52YXMiLCBXSS5VSVN0
cmluZygiQ2FudmFzZXMiKSwgdGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAg
ICAgICAgICBjcmVhdGVTZWN0aW9uKCJ3ZWItYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIldlYiBB
bmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoV0kuYW5p
bWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlw
ZS5XZWJBbmltYXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3MtYW5pbWF0
aW9uIiwgV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9u
Rm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb24pKSk7CisgICAgICAgICAgICBj
cmVhdGVTZWN0aW9uKCJjc3MtdHJhbnNpdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlv
bnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhXSS5hbmltYXRpb25N
YW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLkNTU1Ry
YW5zaXRpb24pKSk7CisKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3KTsKKworICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0
aGlzKTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmluZygiSW1wb3J0IFJl
Y29yZGluZyIpOworICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxl
bWVudDsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgfQorCisg
ICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVnYXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFwcGVhckZv
ckRyYWdFdmVudChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gZXZlbnQu
ZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAgIGRyb3Ba
b25lSGFuZGxlRHJvcChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZmlsZXMg
PSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09
IDEpIHsKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5iZWVwKCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRK
U09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3Vs
dCkpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpCisgICAgeworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5f
b3ZlcnZpZXdWaWV3cykKKyAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5oYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCgpOworICAgIH0KKworICAgIF9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQo
ZXZlbnQpCisgICAgeworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0g
IXRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOworICAgIH0KKwor
ICAgIF9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAg
dGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRp
bmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgfQorCisgICAgX2hhbmRsZUltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAgIFdJLkZpbGVVdGls
aXRpZXMuaW1wb3J0SlNPTigocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09O
KHJlc3VsdCksIHttdWx0aXBsZTogdHJ1ZX0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmll
d1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVu
dC50YXJnZXQuc2VsZWN0ZWRJdGVtKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZv
ciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAg
ICBpZiAob3ZlcnZpZXdWaWV3ICE9PSBldmVudC50YXJnZXQgJiYgb3ZlcnZpZXdWaWV3LnNlbGVj
dGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9
IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxl
bWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKGV2bmV0KQorICAgIHsKKyAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxl
bWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKKyAgICB9CisKKyAgICBfaGFuZGxl
Q2xpY2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmVs
ZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdW
aWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld1Zp
ZXcuc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0
ZWRJdGVtID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNz
VGFiQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNWFmZDgxNjBmMTYwZjYwMzQyYmFiZGZh
M2UwZGZiMDM1OWU3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7CisgICAgY29udGVudDogdXJs
KC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5n
cmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7
CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOworfQorCisuY29udGVu
dC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNo
ZXMoLndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29uIHsKKyAgICBjb250
ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFi
LmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7Cisg
ICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKK30KKworLmNvbnRlbnQt
dmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFt
ID4gLmljb24geworICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50
R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOworfQorCitA
bWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy50
YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmdyYXBoaWNzLW92ZXJ2aWV3IC5p
Y29uIHsKKyAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKKyAgICB9CisKKyAgICAuY29udGVu
dC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29u
LAorICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7CisgICAgfQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
R3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhkY2Yy
YjEwOWE4Mjc1ZDM3MTA3MjVlYWZjODkwYWNkYTYwYzMxNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVu
dFZpZXcuanMKQEAgLTAsMCArMSwzMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5HcmFwaGljc1RhYkNv
bnRlbnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRCcm93c2VyVGFiQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAg
ICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbygpKTsKKworICAgICAgICBjb25zdCBuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBXSS5DYW52YXNTaWRlYmFyUGFuZWw7Cisg
ICAgICAgIGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMgPSBbCisgICAgICAg
ICAgICBXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBX
SS5SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5DYW52
YXNEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbCwKKyAgICAgICAgXTsKKyAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJk
ID0gdHJ1ZTsKKyAgICAgICAgc3VwZXIoImdyYXBoaWNzIiwgWyJncmFwaGljcyJdLCB0YWJCYXJJ
dGVtLCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFu
ZWxDb25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2FyZCk7CisKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZTsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0
aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUu
RXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5l
U2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVF
bGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudCgiY2FudmFzLW92ZXJ2aWV3IiwgV0ku
VUlTdHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHtbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5
bWJvbF06IHRydWV9KTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hcHBlbmRD
aGlsZCh0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50KTsKKworICAgICAgICB0aGlzLl9zYXZlZENh
bnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5V
SVN0cmluZygiU2F2ZWQgUmVjb3JkaW5ncyIpKTsKKyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNS
ZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFz
ZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVl
RWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9h
cmRTaG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFu
ZGxlU3BhY2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmltcGxp
Y2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRj
dXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hv
cnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlm
aWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3Bh
Y2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQu
aW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRT
aW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmVuYWJsZSgpOworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVuYWJsZSgpOwor
ICAgIH0KKworICAgIHN0YXRpYyB0YWJJbmZvKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICBpbWFnZTogIkltYWdlcy9HcmFwaGljcy5zdmciLAorICAgICAgICAgICAgdGl0
bGU6IFdJLlVJU3RyaW5nKCJHcmFwaGljcyIpLAorICAgICAgICB9OworICAgIH0KKworICAgIHN0
YXRpYyBpc1RhYkFsbG93ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tl
bmQuaGFzRG9tYWluKCJDYW52YXMiKQorICAgICAgICAgICAgfHwgSW5zcGVjdG9yQmFja2VuZC5o
YXNEb21haW4oIkFuaW1hdGlvbiIpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgdHJl
ZUVsZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChy
ZXByZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZTsKKyAgICB9CisKKyAgICBn
ZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCisg
ICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzaG93UmVwcmVzZW50ZWRP
YmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSkKKyAgICB7CisgICAgICAgIGlmIChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZp
ZXcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuc2hv
d1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpOworICAgIH0KKwor
ICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxl
Y3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29y
ZGluZ0NvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuUmVjb3JkaW5nCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLlNoYWRlclByb2dyYW1Db2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0KKyAgICAgICAgICAgIHx8IHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbgorICAgICAgICAg
ICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb247CisgICAgfQor
CisgICAgY2xvc2VkKCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZGlzYWJs
ZSgpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKKworICAgICAgICBzdXBl
ci5jbG9zZWQoKTsKKyAgICB9CisKKyAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkK
KyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9CisKKyAgICBzYXZlU3RhdGVUb0Nvb2tp
ZShjb29raWUpCisgICAgeworICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAgYXN5bmMg
aGFuZGxlRmlsZURyb3AoZmlsZXMpCisgICAgeworICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0
aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NK
U09OKHJlc3VsdCkpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQo
KQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2
ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xs
ZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlz
KTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JT
dG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2Fu
dmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JT
dG9wcGVkLCB0aGlzKTsKKworICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB0aGlzLl9jYW52YXNl
c1RyZWVFbGVtZW50LmNoaWxkcmVuKSB7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gY2hpbGQu
cmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgICAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgV0ku
Q2FudmFzICYmICFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykp
CisgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0K
KworICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmlu
ZFRyZWVFbGVtZW50KGNhbnZhcykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGNh
bnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2Fu
dmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3MpIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVjb3JkaW5nKSkKKyAgICAgICAgICAg
ICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5n
OiB0cnVlfSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNh
YmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRp
c2FibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAg
dGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICB0aGlzLl9yZWNv
cmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5DYW52
YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwg
dGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5S
ZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMp
OworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFz
QWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlz
Ll9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgp
OworICAgIH0KKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fb3Zl
cnZpZXdDb250ZW50VmlldyA9IG5ldyBXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXc7Cisg
ICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3
Q29udGVudFZpZXcpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9hZGRDYW52YXMo
Y2FudmFzKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBlbmRD
aGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7CisKKyAgICAgICAgY29uc3Qg
b3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKKyAg
ICAgICAgfTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGlu
Z0NvbGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBv
cHRpb25zKTsKKyAgICB9CisKKyAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAg
ICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVF
bGVtZW50KGNhbnZhcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlz
c2luZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOworCisgICAgICAgIGNvbnN0
IHN1cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxl
Y3Qoc3VwcHJlc3NOb3RpZmljYXRpb24pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVt
ZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKKworICAgICAgICBsZXQgY3VycmVudENvbnRl
bnRWaWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CisgICAgICAg
IGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykK
KyAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24pOworICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5z
dGFuY2VvZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVj
dGlvbi5oYXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKKyAgICAgICAg
ICAgIHRoaXMuY29udGVudEJyb3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRD
b250ZW50VmlldygpOworCisgICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhp
cy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsOworICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQ
YW5lbCBpbnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLnZpc2libGUpCisgICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0
ZVJlcHJlc2VudGVkT2JqZWN0cygpOworCisgICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFy
UGFuZWxzKCk7CisgICAgfQorCisgICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMg
PSB7fSkKKyAgICB7CisgICAgICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgeworICAgICAgICAg
ICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVF
bGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRp
bmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICAgICAgdGhpcy5f
c2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7CisgICAgICAg
ICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChy
ZWNvcmRpbmdUcmVlRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9wdGlvbnMu
c3VwcHJlc3NTaG93UmVjb3JkaW5nKQorICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRP
YmplY3QocmVjb3JkaW5nKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQp
CisgICAgeworICAgICAgICB0aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9
CisKKyAgICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMu
X3JlbW92ZUNhbnZhcyhldmVudC5kYXRhLml0ZW0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVy
dmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuc2VsZWN0ZWRU
cmVlRWxlbWVudDsKKyAgICAgICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgc3dpdGNoIChzZWxlY3RlZEVsZW1lbnQpIHsKKyAgICAgICAgY2Fz
ZSB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50OgorICAgICAgICBjYXNlIHRoaXMuX3NhdmVkQ2Fu
dmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50OgorICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nl
ci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBz
ZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGlmICghdGhpcy5jYW5T
aG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7CisgICAgICAgICAgICBj
b25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVw
cmVzZW50ZWRPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0K
KworICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKKyAgICB7CisgICAg
ICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRh
dGE7CisgICAgICAgIGlmICghcmVjb3JkaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGxldCBvcHRpb25zID0ge307CisKKyAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQg
cmVjb3JkaW5ncy4KKyAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQor
ICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlV
c2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21l
KChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5S
ZWNvcmRpbmcpOworCisgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlv
bnMpOworICAgIH0KKworICAgIF9oYW5kbGVTcGFjZShldmVudCkKKyAgICB7CisgICAgICAgIGlm
IChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsLmNhbnZhczsKKyAgICAgICAgaWYgKCFjYW52YXMpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCisgICAgICAgICAgICBj
YW52YXMuc3RvcFJlY29yZGluZygpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxldCBz
aW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7CisgICAgICAgICAgICBjYW52YXMuc3RhcnRS
ZWNvcmRpbmcoc2luZ2xlRnJhbWUpOworICAgICAgICB9CisKKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsKKyAgICB9Cit9OworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUg
PSAiZ3JhcGhpY3MiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTWFpbi5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9NYWluLmNzcwppbmRleCA5ZjEwNWYxZTk2ZTgzMWNlNTQ1MTA0OTM4NGU3YWQ4ZDYx
ODM0NWE0Li44ZmUxMzFjMmYwZTM2MTc2ZWZhMGZjYWJkMDJjMjc1ODY0YzZmYWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwpA
QCAtMjA5LDEyICsyMDksMTIgQEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAj
bmF2aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICBtYXJnaW4tYm90
dG9tOiAxNXB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxw
IHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgbGlu
ZS1oZWlnaHQ6IDIycHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVt
LWhlbHAgLm5hdmlnYXRpb24tYmFyIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0
aW9uLWJhciB7CiAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgaGVpZ2h0OiAyMHB4Owog
ICAgIHBhZGRpbmc6IDAgNHB4OwpAQCAtMjIyLDkgKzIyMiw5IEBAIGJvZHkuZG9ja2VkOm1hdGNo
ZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXpl
ciB7CiAgICAgdmVydGljYWwtYWxpZ246IC0zcHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAu
bmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0geworLm5hdmlnYXRp
b24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAgIGhlaWdodDogMTAw
JTsKLSAgICBwYWRkaW5nOiAwIDRweDsKKyAgICBwYWRkaW5nOiAwIDRweCAhaW1wb3J0YW50Owog
ICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm9yZGVy
OiBzb2xpZCAxcHggdmFyKC0tYm9yZGVyLWNvbG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRl
bnRWaWV3LmNzcwppbmRleCA4ZDYwZjIzZjBiMmJlYzcwZDhiZTgzZDAyMTdhNzBhYzc0ZmQyMzU4
Li4xMWYxZGQ4MmU1NTM3NzAxOTBiMmZmN2ViOGI2MDhlZWM3ZTI5YzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50
Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCkBAIC0yMywxOCArMjMsMTggQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5y
ZWNvcmRpbmcgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgewogICAgIGRpc3BsYXk6IGZsZXg7
CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwYWRkaW5nOiAxMHB4OwogICAgIGJh
Y2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3Qo
LnRhYikucmVjb3JkaW5nID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVh
ZGVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgu
dGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisuY29udGVudC12
aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKICAgICBkaXNwbGF5
OiBmbGV4OwogICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICBwYWRkaW5nOiA0cHggMDsKQEAgLTQz
LDMxICs0MywzMSBAQAogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKIH0KIAotLmNvbnRlbnQtdmll
dzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsK
Ky5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAq
IHsKICAgICBtYXJnaW46IDRweCA4cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJl
Y29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7Cisu
Y29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNs
aWRlci12YWx1ZSB7CiAgICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7CiAgICAgZm9u
dC1mYW1pbHk6IDExcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+
IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworLmNvbnRl
bnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5
cGU9cmFuZ2VdIHsKICAgICBmbGV4OiAxOwogICAgIHdpZHRoOiAxMDAlOwogfQogCi0uY29udGVu
dC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+
IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CisuY29u
dGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRb
dHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6
IDJweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGJv
cmRlci1yYWRpdXM6IDFweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5n
ID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xp
ZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7
CiAgICAgbWFyZ2luLXRvcDogLTZweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nID4gLnByZXZpZXctY29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4g
LnByZXZpZXctY29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXg6IDE7CiAg
ICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CkBAIC03NywyNyArNzcsMjcgQEAKICAgICBoZWln
aHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIp
LnJlY29yZGluZyA6bWF0Y2hlcyhpbWcsIGNhbnZhcykgeworLmNvbnRlbnQtdmlldy5yZWNvcmRp
bmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAg
bWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyBjYW52YXMucGF0aCB7CisuY29udGVudC12aWV3LnJlY29y
ZGluZyBjYW52YXMucGF0aCB7CiAgICAgei1pbmRleDogMTA7CiB9CiAKIEBtZWRpYSAocHJlZmVy
cy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNv
cmRpbmcgeworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nIHsKICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdW5zZXQ7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgeworICAgIC5jb250ZW50LXZpZXcu
cmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgewogICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB1bnNldDsKICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29s
b3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNv
cmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsK
KyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVy
ID4gaW5wdXRbdHlwZT1yYW5nZV0gewogICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpp
bmRleCAzYTlhOWFlZmYyOWM1ZWZjZDc3OWJiNGQyOTA0MGFhZDg5ZGJmMWQ0Li4yZjk0YmM3NDA5
ZjRkNTU0NjY1Y2RlODljOWYwZjk5Y2FkZWY5NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmll
dy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVz
b3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0yMyw2ICsyMywxNCBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy5jb250ZW50LXZpZXcucmVzb3Vy
Y2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWcgeworICAgIG91dGxpbmU6IDAuNXB4
IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcucmVzb3VyY2Ut
Y29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIgeworICAgIG91dGxpbmUtY29s
b3I6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSkKK30KKwogLnJlc291cmNlLWNvbGxlY3Rpb24t
aW1hZ2UtdHlwZS1zY29wZS1iYXIuZGVmYXVsdC1pdGVtLXNlbGVjdGVkIHsKICAgICAtLXNjb3Bl
LWJhci10ZXh0LWNvbG9yLW92ZXJyaWRlOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICAtLXNjb3Bl
LWJhci1iYWNrZ3JvdW5kLWNvbG9yLW92ZXJyaWRlOiB0cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggYzk0ZWNhNzc3MjE0
ZTMxZGM1ZDgxZTYxMDkwNjA2M2Y3N2M3NGZjYy4uZmMxYzZhMmNkNGFhN2RhMTk1MGMwYTNkM2Zm
MDYzNDMyZjk3ZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcuanMKQEAgLTM1LDYgKzM1LDggQEAgV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVu
dFZpZXcgPSBjbGFzcyBSZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFcKIAog
ICAgICAgICBzdXBlcihjb2xsZWN0aW9uLCBjb250ZW50Vmlld0NvbnN0cnVjdG9yKTsKIAorICAg
ICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgicmVzb3VyY2UtY29sbGVjdGlvbiIpOwor
CiAgICAgICAgIGlmIChjb2xsZWN0aW9uLnJlc291cmNlVHlwZSA9PT0gV0kuUmVzb3VyY2UuVHlw
ZS5JbWFnZSkgewogICAgICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5V
SVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFu
c3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMs
IDEzKTsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRk
RXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlz
Ll9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>386065</attachid>
            <date>2019-12-18 22:37:13 -0800</date>
            <delta_ts>2019-12-19 15:20:09 -0800</delta_ts>
            <desc>[Image] After Patch is applied</desc>
            <filename>Screen Shot 2019-12-18 at 22.35.42.png</filename>
            <type>image/png</type>
            <size>960028</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">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
Zn/bAfaBxoMOB2sPMQ5VNCFNs5r6msXNnS3pLR2Hxx1uaw1sPfTDqB92HrE5UnPU+OjyY9RjZccG
j5cc7z8hO9F7MvdkV9vUtrunJp66fnrC6fYzMWfO/Rj546mznLPHzwWdO3I+4PzhC+wLzRd9LzZd
8rl06Cefnw61+7Y3Xfa73HLF/0prx9iOY1dDrp68Fn7tx+u86xdvxN3ouJly8/atzFudt4W3n94p
uPPi5+KfB+4uuEe4V3Ff/37VA4sHdb+4/LK307fz6MPwh5ceJT262yXoevar4tcP3WWP6Y+rnlg/
qX/q9fRIT2TPld8m/db9TPZsoLf8d4Pfa587Pz/4R+gfl/om9nW/kL8Y/HPpS7OXO1+NedXWn9D/
4HXh64E3FW/N3u56x3539n3a+ycDMz6QPlR/dPnY+inm073BwsFBGV/OVx8FMNjQnBwA/twJAD0d
AMYVeH6YpLnnqQXR3E3VCPwnrLkLqsUXgEb4Uh3XuScA2Aeb4wLIHQqA6qieHApQb+/hphVFjreX
hosGbzyEt4ODLy0BILUC8FE+ODiwcXDw43YY7B0ATkzX3C9VQoR3gy2hKnTDVLgAfCH/Aq4ZfzeY
gFTEAAAAimVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAA
h2kABAAAAAEAAABOAAAAAAAAAJAAAAABAAAAkAAAAAEAA5KGAAcAAAASAAAAeKACAAQAAAABAAAL
UKADAAQAAAABAAAH0AAAAABBU0NJSQAAAFNjcmVlbnNob3RceNsvAAAACXBIWXMAABYlAAAWJQFJ
UiTwAAAB2GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9i
ZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpy
ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRw
Oi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lv
bj4yODk2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+
U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5z
aW9uPjIwMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KofnbUwAAABxpRE9UAAAAAgAAAAAAAAPoAAAAKAAA
A+gAAAPoAAfFDylm91AAAEAASURBVHgB7L1rsKXZWd/3dk/3jKRhdBlKIzCSQFwEVhVJMHHCHYId
LiMjFYhLlR1IgUNVyikU33AiqfwlQkFU2U5VPjgoVYQqIFalwKQiBCS2KdlYCqigEPDBF0GQsATC
SBqh0Qwz0z3dnfVba//3+5y39z5nn/vp7t+S9l739az1f5/r2m+fmSaTCIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiA
CIiACIiACIiACIiACIiACIjA3YXApXac+1ZHonx5Q532mjKOsUlpS50881ifsanTR6KdNumDxsBC
/G/nhyXfUAcn+Q+uGSmYpE4e3JQ/9Y/6d5aHyIj2R/uLjtT/GBIRG7LEI3YkcpNx2t8gMvtuc8us
b7S/2l/t7ywPkRHtr/ZX+6v/sfQ3lnX9j2jMket/ef+DP6H/PctFZGJumf0N/W/9b/3vWR4iI/rf
+t/63/rfS397Wdf/jsYceXwN/a8Zl2Ayt8z2Rv9L/0v/a5aHyIj+l/6X/tfZ+F+ROXMREIF9EFg6
+/sMtUsEzgwBHMib7YPTdGtVbll/yTE8S3/GpY2xCWgp59OK67HMoZ3EvMxlvbRnXemLPzwBb5CW
/BI+CQ8xVv7rUK1lbylTyt+sZ5b8tMRK/aP+Uf+of7U/w6Ys9aX2d8iG/sfsc+h/zVhgO5Y+hf7X
jMlSnyyx0v/S/9L/0v/S/9L/AoGlvdD/1P9EN+h/D/2ArdT/nrEAj6VPqf89Y7LUp0us9L/1v+EJ
/a+hU5byov+h/6H/of+l/zn7XPqfMxb6n7OvGVup/z1jsvQn9L+H7IRXjD8uXvwRHh1Pym8ROEcE
4nid4xYkfZciUI0zR6ReL0JqGaUYXkyewDDGrK6xyQnK+Lpu1qpzN5WlL/7hleThJ/nvdrlV/m4P
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
qrElf3/090d/f/T3R39/9PdHf38ckUP/9vdHf3/d4f3HS5fbP8Jp7162a/h2CdssafvjtH/0kY+8
7z3vec//873f+70/ff369T9qPZ/qrtZ4p5M3KvP+Ke9/UuZdz+X7r7xzyqp5/7Ptptdb1hN9sGqn
PJrW7dCgjzmsTX3T+6/8xey8l7qkn/dP6d/0/uuSfvZCe6VPOXukTMq7rNBgj9kf47Juxrami5G6
XrgYW1nvoj40gEvKww4DsPd8AD3lAJ55jM858wAyNvMYmzGVPuOX7dvoh07oJ4fZskalX9c5iD7z
6/mzL9oRpud+3dd93Re+6Y1v+r6v/Kqv+O5nn+VfTNzsf/G5v5wJ+fZ/LhKR6kvtbWdeeO7vT7eV
Vu9Rj022Mb2vjx2c22b1yeNdakiOztVyfe0xpn3z411bYPXe9QjOpd8xEv/BH/Kf8qf+Weld9a/2
B9uMasSItoL2t7sRw2aCCalfclPQ/wi36H/NfAJnDCHS/9T/Nv4w/uoawfgTu2n8PXyJlcE0/jT+
NP5sIkHcYfxp/Gn8afzd3CXvH0YM6f3LHFfjMvXk/cvqNy3vn7x/6oFErptWirNJySq+8P7F+xfv
X2I2vH/w/qXZTGIM71+6Y+X9k/dP3j81UUAneP/k/RN80NyFlvXC3Rh/X7l6ZbrvvivTr7z3//2J
t7z5Lf/bu971rt9tp/1k+/AOKonjN2nY89J0fT+1vv/Jy8uMz6euAZT1k/dSW3Nfn7xD3fK6Pm3M
Cx3K7Cdj0856m+hnL5V2G9pfhiYnsR4pY1NPW+gv16C/0s95aT/XFHDOdRMbiPOQKjMF6ADPFNoy
LufIA6CfVB9EfQC0k+p6y7E8JF5+ph1aGRta9LNm8lbs45hDCo2sW+mPEfOaGV/Hsi4vR4c+Y6DN
mUn038+n/eXpl/7iL/7i3/jyL//y73nqT5+iryf++vSY0r7xXvvO21cr8q9MaWiuzPjrTb2711rz
GHOpvwydap/c1+kzs1ZfqYcIo4T2WyXpD4yBQ/w7g4GE/NegUP6GbKh/1L/dZHT1oP3pekH7222E
/kfjBuSim8zhV+FHdM3Zq3xR1/9aI6H/ibvZk/738DEAQ/+7G1iQ0P9uUKy0qPEvSAzl2a1Ix0X/
Q/8DdeH9j/5X5wPEASUx7Ghr6j5ptyVdk+p/6n8Om8rLAUn6n11SOhz6nygSoGhfraj/NXjD+0/9
T/3vpha6evD+1/gLRhg2wvijccMajuFXef+78hziSxh/NASMv2AHOMP4Y+gJPG3jr+Fjg4XxV3ew
QKL7Wist2mqtNISna5Herv0d/qj3n/ofJ+h/Xb7v8nTlytXpve99708++uij/6D9JeqPNIF8un14
l5N3TFFY5HmvNO+f0k9CUqPgeYk54+o7ofX9U9ara+adWdqSsl7o08e6rB/69JEOos+4TfRZM+/q
kod+XS/0W/d6LPtg7JJ+6ow91xTwznUThfgSUOoBnmHUAW/TQ6A9/a3Yx1BPqn3LMmMyNjlMC50l
LdrzYFtxTafSDxNmLcaFJnnKad+U55w5f+aFPnN4gfrFP/7jP/593/Zt3/bfPfPMtbbwMIgM7o41
O+FF6mYlu0PV661tdVzGj/83J5xxvb2t0Yq45bSMlfqwNqatvBrGX7deDV9lYwYGWfoDtQFpw0n8
5b8uhysR6xKCnMAbK15R/lbgqH/Uv9of7a/+RzMNLY3XVyjrf+l/6n8jCE0qjD86DvDDOt5qFeOv
gkdXmu3L+Mv4y/gLV2IIh/FnAwIo0A383/sv7/8iHN4/eP+AbjD+RCKGdlyZDu//V0C0zPgjjnaT
lMElSIzxR2BpGqSbFByMhoz+51p2BkJ8g82Kd/z9o0nRkCTtL0hof1EfQzpWoqP9XQHRMu1v1MVK
awyJ0f4GFu2v/gcmVf9L/1P/2/hjxBrdWI6v4WGeYfyBhb56/9XpHf/XO976Pd/zPT/WtNPH2+eZ
9kkiACDxAnPeP+VdUFxB+vL+J/W00Z73T+mnnblZqxV7Ygwp40dtXid95KzDuLx/Shv1g+hnr7vS
Z82cIzTIc54l/ZyBMeee2PxFSIBECmiUaQPYTYDVfYdZyEn08clalLMOLz5vWo92EsyRvYR+1u0D
2lfoUc/aGZu2bfR5O/8g+tlL1sw5WJsEfcbQ/2nf+Z3f+SVvfvObf+jTP/3hL7l5s11etS2NsJOc
wW14K4x/mddrq/be2AasxpXLC9r6G9TZAUEbiYClpFCiKf9aWPpBRfzhGvlP+VP/qH+1P2ttqP3t
dqHhsbrY6Mjof+BFdWT0vxoO+Jr6nzhQONftqyX974HD6jueNlXjj+ZpN14x/gpXGH8Na2L8YfyB
q7XmBv3PZi/Qk/qfGIyVntT/xovonKH/3XDQ/zb+MP7CUBBctK+WjL8GDqvveNpUjb+Mv4w/UReR
CuPP4U0Zf45QY43Gystsde+/m8AYf3TOMP7Ci2ifEZMafzQc9L87O+h/IxeIBsHInOJp0KL/rf+t
/426iFRcXP/7crtP+Phjj73vDW94w9/92Z/92V9v4vtU+/CeZ16absWu/Wlbvi9KHcuQlHqUw0pZ
rF+AXhnV9YvPy/WYl/U2vf9KW011PO3b6NMO7dDPuCV91gj9zEkbtDaNzxlzZsafS8pGzoV4IVpf
bAZMQAs4eQB5sTgg01/HsBx1XlIOI1BnfNYnp48189BasdfzoEI/deawzpI+82jnk7WYc7V9Kn3K
tGUfoZ/1mM9+6M++KNd6pZ/xnPNFP/VTP/VX25+Df9ONGzeafW1dQat1jjSrFOq3mvBebuNYZJn4
ke3W5dbTlxn/Yqf79W3gzVa4fOvymHeJrV1u8d+8Dn8ZUfriL/810dgjXMpfXBr0jfpH/av9me0m
MpGk/dX/0P/S/9T/Jowx/uAvBhh/Deto/Gn87f2D9y89tPb+qSlF79+8f5zjSO9fvX/2/t37d+/f
m2n0/j1Xih0M79+bbVgh4u8P/v7g7w+z31gURbtr8v7d+/emKbsb5f2r96/eP3v/PiyE9+/ev3v/
fnL375cuX57e8Y53/PD3fd/3/ViTsE+0T/4Kdd4F5SVLUt5HzfuiaSekyYcxlOmr779S533T/OFe
1uAl7bxn2op9HnXGkUIvdPJGaaWfttCs779W+ulnLuvtRz/0Qp+5pNDaRn+MOqdvNndRUgWKhwmQ
tAVY9pl67QvgOQvjaeMBkCfV9rRlPfKUYQCYjAeWtVuxp4yhL+WMyRrZe+jTTqr005Z26lkn9Mlp
z/kppw79B9rnJb/8y7/81le96lV/6cbNm/3Hdv5YwuC8cW3ChQHvVV9eeQKUk1isxUx9wipL1zpf
trMMr4QOYsxlwXFBQZ/0O5wdE1ARf/lP+VP/qH+H4dH+rE1rN+baX3yI4dgMDpnxoaT/EX9i4KL/
BR76n/rfURpoDeOPjgKQNNGgDCbGH8Zfxp/Gn8afxp/Gn8MqGn9252DlITRfYRVgLeOsjFq2G38Y
fxh/NanoP3Y0KekKxfjD+GPFEo01jL+wHsafxt/G38bfxt/G38bfxt/G33hF3j+Awkj9bmF1wbDK
0rXOl+3eP3j/cDfcP1xuL1D/23/9r9/5lV/91X+nMfsftc/19snLzvlL1LB/3v/sIfaqnvda804p
eURl+f7pULx73z9NW5vW12cun0q/vuOa8dkP9GuZedRJS/qjdaaf86S9rk0ZulkjNDI29dBn3Lmm
HPpcN9GIB5DKCIBJewBnr7SRB8i6/7Tx4jHjmMd8yqT0k/MB/DBJK+7pZw4f+iv9zGHdvGTdij3R
Rn+lz/wlfcZBP/Opk+r+qEM39Jd7ph06n/P+97//H336ww9/4Y0bbTijGjUuxSmSehNWe/XL+tyX
watBmdyqfcxq1/xb1fZvllvjzfbXqdulSE7D4pRXtFb3iL1tpiF98W8sIf8pf+qfhW5U/w5Ahg1Z
WQqsivYHm6r9Hbyg/6H/pf/ZlKL+t/GH8Vfs4so4dLdhxFitJS4V9rMPWDUZfzQgGiLNp5hj84C1
wi3gtarxf4NL/6tLkPc/3n95/+f9p/6n/rf+t/53/KKVc9Ad7O5Jrn4L2utj6n8PbBo4+t/GH8Zf
xp9NIaATVpqxy8Ro6JpiqFXGGH8OLLz/b+xh/GH8Yfxh/GH8Ebu4Mg7djHbLafwxuxT4Dx2gVZO/
fzQgGiIXyP++cuXq9LGPffTfvvKVr/wr7VF9qH34C9S8E9rZueV5f7W+f5p3RhmT8spT7PPyfipt
mU+ZD3NoI+fDC9u8R0qZRM588szP+6etqaesz5jQX3Wt++v7r7zbylok5oQ+9ZRpJ9X+7Jn5jCPR
n3NkbO84z69s/jz3AO0KVAWdvuwRIOmjzoMk8bDCdNTrXMbDAIzNvMylnr5W3LMm7TVV+vRRD03o
hxGZQ18Yhjw0Qp88TEpfZY7anjVYbxN9xj6vfb7gox/96D9p+YP9JdVWWKf+RjO1Nn38v21s8B8L
NnesNWfp8TPZHuOUhXrjGJlNrfm40eBf2GaVTOm59FdwDPDBSPzlP4QRXlD+1D+z5lT/dm6YDcxK
d7ZM+wMIXWfM8Aw9yj9n1v7OUjQzTSvpf6zg0P9AePS/9D/1v/W/Y0v1v/W/Z89B/1v/u3HD7GDP
rqTxR8PC+GP4j2EL46/uURt/Gn97/99jy2iGde79wwoK7x+8f/D+xfsn75+8f/L+KbGU90/eP3n/
hFUkef/m/Zv3b94/Dm2w5/suvX+90f4g1uVLl5985JFH/kI77wfb54n2wUGq74W26uqn6/GuaN4j
5Z1TlGfeP40iHWHGWGf5/mvWqu+Z8h5rbae8iT7trMf6fJbvv7KvpNyiL+lnLvRJ0EmZvrwLy1pZ
oxU7PXL6c/7Mo/1cExu/CCngDg97ABhQyQNqHiJ7pj3jl+DycOp8xodxst6yLeuFFnXmUE9b6DG3
js+4zIGxKdf9ZgxzWS9jyfmEBmXoUM8cyqSsR50XqD/3sccee8/NmzcnPszir0cl9X900S/y0nir
LXq5/0XgPq71dScu3ZnYFqLn2d//wHT9t39jevr9/2a68ccfmW4++WSbe3O678HnT/d9xmdOD3zB
K6cH/qMvna687BVj5gnT5yWoy+0QBBv8/9Kltvf2P3QqL47dfPz3put//GvTs4+1/T31R9Otpx+f
brbOyw+8YLryvM+c7nv4i6b7H/mPp8sPrfbX5h7m/AfRH//hvraZ/vha1ve1BnH68BMfmH77Y78+
vf9P/tX0x09+ZHri2cfb3i9Nn3b1oenFD37m9AXP/7PTf/ji/2R62UOfM0/qpYH/cekf9/lLf3/+
O+j5i38TiWPoH/lP/ttP/yt/2J7t9kf9o/5R/xb5OGP/T/lT/pQ/5W8dH6p/zjT+Vv+qf9W/6l/1
by54z/b+U/2r/lX/qn/Vv+rf8QOX9ucsf3/U/mp/tb/aX+2v9lf7CwL6H/ofu7//5vsnvn9yWu+f
tBcbpwfuv396wQte8BVNMf1e+zzdPrzvibHCaSHV9z959zPvf/bO9hXnJvOYS5n3X0l1fF56pj3v
kzKWxLzQJc+8Sh9atCfV8RlHG3T2e/+W+dCv6zGvrpdzZR91PONIdXzd1+g9o+9s5ozI7SETUNgD
AKS+Z9CqAqAkxjCeB1b3nrnkeaueMom5y3IeUPJKv67bF1itQTvrVPoZSx46YcpKMwwdem34HgbI
XHJS1h21+Zs1+bDfB9vn8z7xiU+8+9nrz04324vNl3rE3FrbbN5bvNReJl7/yybaWle+1wRuNYNy
qS3XXuwdAXcD8A/+3fSn7/zZ6anfeO/08POeNz33Oc+dpqv3N7FopFnkZoP42RvTU089OT325DPT
c/7cn58e/EvfOl192WeP/mPSZ5fjKKsXvMdhxt4b/RtP/P701O/+4+n6v//V6UXPvzI9+LwH2v7u
my5faWcBmfYy+a3rN6Y/ferp6WN/cnN64CX/6fS8L/iO6dJDLx9rsH779LTh/LTvR39MZoWGL7iN
UpvDwafpw0/+/vQLH/iZ6X0f/ZXpvhc+Z3ruc58z3Xf/lenSfbDBrenmjZvTjevXp2fa/p597Nr0
JW1/j372d0wvfeiz+3Nrg45F/7jPX/rifxz+l/+alDc9cFT9q/wpf8pft65NlWBTuzA1sWh5+z9N
42uz/Z2nHM3/6at3U77Z/5C++Mt/CKHyt8n/V/9EZat/jxJ/a3/0//T/unVpqlT/T/9X/79fCBr/
GP8Z/xr/e//RXGTjT+Nv7x+8f7j999c5ZPD+wfuHxh8rn4lsOJArF6JXb3//gWbjb+PvlfZoQBh/
Gn8Of9PfH1GOXUO2L/0v/S/9r1Uk2lRkK8XX6CZju//Ji9lXrlydXvSiF311E6TfaR9eoObtxeGm
tEIppw1SfPL+a22nTF99/5U2PvVd1FbNLtc56zEm62UMOSntWSf0R++gGzr8dWxSxqadNsrsMTnn
pU6+pN+a1onxJMbU8/fGVRtrnHliM+eVxtukAzz2QJ0HQ2JfARTw+KQ/efrzAHKWrJt5jMuD4i9D
w2D0USanj8/VVd6y2+jTxrowB+PYZ+i04np99pD20Kce+pSZW+lnD1mXNfiwb1Jdh71nn5/WyvwF
6nffuHFj/AXqNm1+aa9Na6t0Bd//ZDNLsdgYQ2f+dSpzoELfU//in06f+pn/fXqkvTR95fkPTZcu
8y92xtwxn3/Fxdy2wuWmIG7emp791OPTH7eXgR/69v9iet7X/YVBow84PP2xCygBwcg6/Val5ZkP
/dPpqX/zk9MjL2wvRr+g/RHutj9SH8Oe8tI4B+L8Dflrjz8x/fvHLk8PftF3t5e8v6GPoXPT+Q+i
zxwU5cgh3D6rOmu+54/+yfTT7/+J6dLD900PvmDg1zfX/+T32Gf7Q9r9LEwFvycf/9R06+PXp2/7
/P9y+prP+s973xjB2mMOOec/iP76/KeEv/T3f/7iH6dhJX/9H2a0MswO/zYu7vqm5fASXN3rfUjn
8M7n8j9YdHi6+gAU5V/9p/5V/+7nf2h/tD/dxur/dYN52PhneCgrw6v9XWE4/BD9D/0P/Q/9j9P0
P97znndPN559dnrFKz53evnLX67+aUp3FSYb/zUzpP45nP5597vfM9240eTpc17R5an7htz3Nm7a
5f7l3U0en21/LOMVn/uK6bObPO6C/412p/muX/ql6aMf++j09V//F6eXvOTFuFU9HZY+TC//98el
/DcYduG/zmPGP8Y/XXfM98soIPWP9+/+/rC7/df+6n/of+l/oQfa//W/mjCc5v3H8FDwVEB7ZMrf
wEH+U/6M/9Q/d4P+vdReAryv/UHVhx9++CubduMFat4tzcvPrbjn/VfeH+XdUcbw3irvkPLiI448
n7xf2op72oejP/ezBjQYv3z/Neu2rm58WJ9xoRH6vH/KGqHfinvoM67Oyzqo79BnzdDPO7/0pczY
rF/p059x6W9NfY/kZ55WVvrM6YYg9LMHQF+CQh8ABrRW7GMYmz7mkJZzaWMcc8lJGcuapEqftuUa
2Vvo173QRr2Oybo1D/3MbVPWDxx6mU9/pc84+mgPc2cN8vICNX+BmpHtq8/ItLJ0e8mXpVbvSrfy
akxrv9Q9tGl68uf/z+ny//2O6aEXvnC69ZznNNRYj/72F53b8EvtCzL9i/Xabvnj1dN97aWVp5+Z
PvWJP5luftO3TA+++nUZxOiWxjoH0YdWHwudbHS1P+g//bs/M93/kZ+Znv+iB6dLz2l/dZrzdE5o
9BlA6vPannu5r9aXvfn09enxT3xquvYZ3zE95/O/nYHtk/P1U7WmVdsW+qO3fXecqUGONfpOpl/4
4E9PP//Rfzw9+MIXTA+wP9aBRhuzotC3t95c2yvGgFHPPHVtevJPPjm9+pHX9b9Gven8B9E/7vM/
7vmlP3ihC0t/4oNH4I5gG7buTLNqj/xlTOebDCz87/MfcrZN/uQ/+W+o9SEpQ8bQ0spfdEvUivpn
xSMr/QqXBCP172b/S/uj/WkeawMh+rSJTPF/tb/aX+0v7ob+R/e5OjNgWKMv9r9/0P6u+OaI9w+7
6t9/9Pa3t5cin50eeeSR6Ru/6ZuGDucxLe4/3vlz75zaf+GsX/T+5b/yl4dob9D/v/reX53e/37u
gKfpdd/+uul5z+U/jtae+RGe/w/8wA9M169dn7751d88veZbXtP3hI1BpAY67fuI9ufnf/6d02Mf
f6y90PmS6Ru+4RvHHvX/tj7/8QjH/eBJ4A9PGH8MyQg3I3Onef/z+tf/wHTt2rXp0Ve/enrNa77l
0Pi//vWvb/J4rcnjo9NrX/ManuCB8ve+33jf9La3va3L/6te9aqJPUS3+PzP9vm3h9CS9lf+W1nP
xgpY5rPSP52U/Kf+W/mW6n/lT/2j/tX+DHt82v6/9hcE9H/1f/V/kQP9L/0v/a/z9794gfrq1Sv8
Beqvabv5/9rnCXbV0ng8e3PeIeWlZfryLurKgVhdi+99dzTvu/a3M9scXjxmLu+XkijzYQ0+JMbU
90/Tv1xjE33mL+cyP3PJqVf6rbqmTZkxyzVyxtBkHGMYm77sn/XPPIX4mRNeEQwIAWUTgBmTB5o9
p52lAn4tpz/z8hBopwxDZgz1rJEHkbfds6esw5x8aOPDXNYgZZ3lvCV91t9Gn/Zt9FmXfn6l+tz2
A9cvX79+vf2mNLZNBymbnfPW0zvHOAZQ7Rfizao+9cvvmqb/4yenh1788HTr8pWJPzG/XrP/oHdz
vVnWX8/tlVFrv8pNT3zs49P0Xd89Peerv349fj2WQt/ZyOb2thl+oSG1vXCUDh6XLq3CK8bPfOiX
pqsffNv0/EeeP126b/zjhf7S9OrcfVKf3uYwra3DvO44siblmzemx//4k9P1z/n+6f6X/kVa1uc/
iH7bUhu/ehGaZdlya0t69x/+s+ntH/6x6QUNvytNMd5kX40T5nlQK2l1rr6/9pe8eZH62ettfx/7
2PRdf+avTl/b/hL1rXL+eZ22xgb6WTlUxvjQzzkZRc/IGNtx6YdZzQSrNmSJv/T3f/4d0/Yl/gMJ
+W/wwoxD44zOHLS01DKqyh+4NDAO0P8Dx+36t2PavjrEA94VvhVnRok/KMh/lS/kP+VvpTn0f/T/
mjrQ/8UkN5lYxSnaX+yF/kf3nuKydUdi75f+18BjyMvwNsFk+Pn0dQR7Nre3tjP0f3/kR35k+sDv
faC96Pzc6e//g/+p/ZfE2Nbqya3s37Wnn57+5t/6W+2v195ofH9peuOb3jS9/GUvHbtvQ7vLznFa
eutb3zp98IMfnB588MHp7/+9v9fvMo56/rzw+epHH52+5bWvbfsCOSTv+PL3lrf80PShD39o+rzP
+7zpB//2D7ZVeQw5zN7zq/9hiYbJAv9f+/Vfn/7gD/5gelH7Iwtf87Vfy+Pfk1Yorp4X+FY/m6G0
jIyx4t9QOMX49wfyAvSj7QXq17Z/kHBI/F+ff9DQ5PG17QXs/vSyZZ7jIvFM3/ebvzn96I/+aJev
P9teoP5v2x6i/5544lPTL/2zX+qzvuLLv3x68SMvOdXzy3/K36xnYDv1Txe+BsOMS6ss7L/2D0ga
Qgv717mnNVf/p+O5+gJTEuMGvsmZlJ4xYPTTLv7yX2eOzguN5bx/QESUP/WP+reZjZOJf7U/2t/h
meh/4KDpf8EN+p/638YfZx1/YNOvXr3KC9Rf1bTxB9qHF6hRSbw/Ssr7n5TbA+ofyqtAYT2WPuak
Pe+fMjbz6OOTd055F5W/Zk0bYwj3swZ10ib6WYd+yswJfdYgbaNPf6Wf928zPnnok4ce5Vpv1fXe
00fbmSc2eJ6p0g9A7KcCV4GtD5p23qTlQeTlZR4QY/jU9qxNTqovM1OHXuiknr2FkZjLulmL9vxl
6CV96tvos26lHzqhTz2fVtzDyDk/8/kTzK/85Cc/+S+eufbM1P5IdJ/V/xMHrdhfzO07bV/9cowX
oC+3+6BWJzBtlzYQoXrjDz80ffyH/+70Wfzl6Qee29vp6NOyMGu2NC6OmMsagMEqLNmcfOrth7eP
tL9a9PAbf2i68mdetprAmO30xwJZuy/bmwb9W9ONJz48fepX3jC99LMemC5fvb/RaVQ5G0dbnRsK
YzxT6Rz76k+s73Xs+dbT16YP/eEz00Nf+cPTlU97WT8/M1ZD6szVevNalNq7ztPNtjSrd5rt+w//
9N9Nb/21/3567ksfmq7ez2Npg/g/E6j1nD2PGeDPT/G8pN4HtjUuXaY8TdeeeXp66sNPTG/482+d
PrPtb0wefSyzif54KG1M+/9Rnn8nzHT23CqDWitT6JsfLdIXf/nvdvlX/lAcKBDUxcoioNu6Mln1
HUP/RyOpf9Q/6h/1z9L/Uv+qf7U/2l/9D/0v/c+D/e93/NzPTb/wiz/f4/w3vOGN08tf/vLuYtf4
/7d+67emf/ij/8vw4ds1wLd+67dO3/CN33jb/cPTz1yb/sbf/Ovt36bfmr70S//c9F99//eP+4Mj
+v954fPR/gJ1e+HzBO8f3vKW/3H60Id4gfrzpx/8O3+773PczYxLj3r+1uL9RzMpS/z/1x99W3tB
9n2dZ970xje2EA+7o/9xUf2P8Q8Srk+PPvrN7QXo1/b4fHn/C6+vH+Mo9iZCel6gvtb+InyXx/YX
qHeJv27dvDm965//8+ljH/3Y9J99/ddNj7y4vSS9iv95+f5/ePObO8/8N3/tr01f/MX/Qae1jf6S
/3ahD9v2M3JhEN70/qFBvPn+vz+AiDGQ9Qb1n/ffjRFO0P7Kf8rfpt8f1T9D6ep/NnUzoOgsof5t
MKh/1xwBb+j/ef/v/f/w0fHTjb8TuJCjLg++/zpM/Kv+nS2y+lf7o/09GfvLHy25eqW/QP3VTY3/
XvvkL1C34nwF08q8Z5r3Tsmpo/rJef+UF6F5H5SUPsbx/ik5afWWZM+pMz5jEWsSY0KH9fnQx7i0
k2ct2lmnvueasYzbRD+0Kv02tNOhD5qkSr/uq9KnPeukvU8+y69s+CxphhaHBrQcvpYZk72RV7Do
S6Iv62R8HlLWIwdo1iClP/PSl/GMyxzGsy6MkZel00ZOYj7jQ582UtbLWqE/ese+Kef8tZw5tLEu
c/OyOHXmPK99Pu+xxx77l/znWIfjwGu5q22sdjRe1W1tq/oq6z5Eu+fu+Sff9j9Pz/+dfzXd/6L2
AjVR6/pXpbZaj2LH1in2fw2ZRdoGRho0+/vA7evaJ/5kevzzv3B6wX/919v41Z72oc+e+3/GMk8k
y/b80vTkb/796eHr75seePjT+jnGS9NtQfbJuiPS/v/ZOw9Au6pi7096SK+EToAAPnpHOglFaRY6
ioVPaQIBpCvSCR18NhTL8z2UZkeKWKjWpwiKgEAg1FDSK+n5/r9Ze87d9+TeJEhCec5K9lltylqz
V5m1ztw5TqP0n4aqQm1x/h4LTkbKgM6eOM0md93SVtjkZO//kvg31oyKrPOAPkHRN/9xtT268G/W
x+Un6AWCUNtKWxQjPtqqdngpSdpCvxvtpExwKp82cbJt2HFTO3LDz6oA2UIA5vov3Gb+qvRQUS8Z
wRWUNy//5J/yz/GX8y/Xn1x/c//J/Tf1j0oRQ9NCz6pC6l+h80ogqX+m/u0qU54/fL2s5kMV+bkz
zt9+DuR82M75N89fef5aluevp0ePtquuutKvJA466CAbsZt+jatp/N1444123333aSHXJNZivv76
68tQWvclGqb1/f+xRx+zL33pS74DHn74R23HHXfy9L+6/o88YaQMNue4weYHZLBZ+C+b93/xqIsr
A+p17PTTT9M9jairezn/Fn//Vl9/voEB9UMPy4B6dXkl/1zZ58sb10jJ/d/nBvKoFvqGTKp8Fb1l
63+LAfXexnx6o/xHynt0Yz7Kg3Xz/HeCb+D9vzR2rF14wQXe/2OP/YxtsskmIrH04+/N8n+j/V+W
6w9LafIvEmXdzfU395/cf1P/yPU/97/m80elUiji/LFs9P/cf1P/SP0r9S9WlNQ/U//O80eeP/L8
keePt+P80VF2fp06dbEBA/rvqu3oKT0z2Jb0YGuKmhLfBkUZdqYYJRMoA4YAXKUge540IWhAL2xc
KY/6On3KAp40D/WE9viX2pa2AEeIdgW9Zv5RH/yJ632O9gU9YsroA3DNIegE3eb65ZqPRi5XJm0Q
h28IGOGQRxDx4hAUeQJwPDEIAjcEGngBEzh1oQcuMXCEgG+PP7AE4IDpUsXBP/hGDBxGzoTACaPn
4E+eugiBS1xPx6ALOPgHLvwJsia2oXUDaii7kXPVQhgV4GhyVeJwvmzY3Beet4kXnGGrrbmG0NUE
fZFWcPRlCOAq1fFeaTJVmmIBuXE1KFXawdmRJK6XnnvOBpx7uXVZbY0CTOP8Ub2S7kXa6YoOKFEL
WJWnbP60Z23a70631dcZUPEUbkWqXKaTUUBCCt6WkrSFWqQgxePlSJicCDw7erz13fFK69hr6GL5
C1gYHQp54eFpm0AbIPfCjGftov89xQatu4qgOtoCKrx95cskN6SmiDKn5ZHappZUtNwTNc3SQ3qh
uI1/6mU7e5urbLVeayyWPziNAB/lnSxpVZRqPslVJdRJeOW9VvBR24KkEsLi+5/8i5QqUaX8c/zl
/KuWm5alJNefXH8ZDdWIUJT7T+6/qX+gV6f+VanBZXWologWrSr1z8WdP1L/bhkpDKA8/+T5L8+/
RdVqWUpb69/z5823U047xWa9Pss23XQzO/bYY3wSOXyF9IUvfMHGjRvn5WB36txZRtdXWbdu/MKW
5pnguP/46a0/szvvvNPLLr7oYhswaOAi559Zs2bbxIkTZDA3XxfGA63HCj3a1f9OxIB6bt2Auqz/
L738st9lDBo0yH/6MPi/kfXv4osvkgH1i/JAvY6dehoeqBe//2I4+sorL9tA2tyLP95XW6rNqj3+
89TH11591eEGqq1d9TON5RYGwVbCVdSe/jtx/ATjF+X69u1rPXv2dJwlrf/czU2ePNmmTJ5ivfr0
5lJe90jydllxXhx//th/6tQppl+yswEDB1rvnuonL7wRWu+/1113nQyoH7LVV1/DzsYDdR3W+9V6
/ZkrGU6YMNHm6p32l4OB3r37uBja6z93es38p06ZauMnTrQhK65YycRfhY+/JfEvzeMTwhVxb2fp
F+/x3aZ/zNKv/CFTLFD7DxxgPXrgS6N0r3n/O9ENoIsH6g98YD8BSRbq89hXxvoYYT527coYraRT
icgL9IEB9lx5oN4Lj/D77bfE8d/Mv1n+Y8e+bBfIgJrwmcoD9ZuR/2yNqwkTJmh8zbX+/fr7+H8j
6/88rYUvvzxWX2Z1spVX0R1uU/8ZtxM0J+dJ1isOHixZdfW2tzf/l9T/kP8bGf9Lmv/eID7U9uRf
zWdkIZE0j7+Uf5n/Of7eveu/T3UNbvQv5nsj5PzP9U/j4Y3sf+9G/Yfxnvtvzv9c/3L9z/2vsfu7
wpv6f+5/uf+jIPj/PP/58sAhgdMwT57/fGy8zfZvHN7wQD1gwICd9FKe0TNLT9i91r1KY9nIg/0n
9fEyUX/Cy3PAhM1qPV+HCfvXGAzQAJYQ6TpdyoFtj3+0lxi44B845Nvir2KHD570iQc+lAVdJR0u
aFNf73/ARR+Af0sDjXkrAwKl08R0GsGE8EjzhFCVbAgr8CijngBeCDCEGi8gaAQfR9BHvJwoD351
fAZqvJAor/MnHXh1/vCo8w+YOq3gHzyog17wIR91Snp7odPMH3i+XVlTBtS/nTd3nhvuxkU0RrsL
lAGIpmIYjQmwe5dWYVwS88XLzNt/bF1/c6etMHCwYDCaBm++d9CtfEMUrpnRlOriySHKq/DGOzOI
gy+6E8bbnBF7Wc/99leuff54YnZSkPaGVa+OYvGcPfoH1mP8j63n4P6qVvt0ke0cOEHTpiqmlwRg
+JILQfqXXaK5sGqTSiRdYQtv+vjJNmPgh22F9Q5aLH/6Al75BLT0pvDraLePucXumnSr9V1xoJqi
UtonYG8leT0LxM9bRHv1n3arSSSK12l3PU17aXsnlekLMV3a79nvg7bv0AMXy98bL37ePqcpOvD0
Phceb0b+0fP2+p/8i/BT/oxfxluOv5x/uf7k+sueR4gds239Y0n7f+4/ZefN/Vf7Sm00hf6V+kfq
Hyi/Pj9S//AVN/WP1D9S/0j9Y3H617Vfv9b+9re/Wc9ePe2qK6+qFlBW0Y42fvxrdrYMqFlUd9ll
l8oTtdlxxx1nG228kd/mxP57xRWX29NPP20ryrg1DCNj/Xnu2WftZz/7mT3++D995/bFSR8YMH/o
Qx+yYcOG+S9x+eLtC/hCGWyeWDze7rO3eO9qt9x8sz355JM2bdo0R+8sQ+7tttvO9t9fdzcrFAPj
pV3/L7polL344gvO/7TTTvO7GfTP6dOmyyP16U7/BBlwz5o10375q1/Z8889b/Pnc8Vn1q9/fzvo
wANtiy23aNX/0D/++cQT6utPRf9FmydjTrpD+I//+A/bd78P2DprDxU/vRH+q/LmW252ua699tp2
8skn292/udt+cdcvbMaMmcISgODWXmtt9XN/l5OLx2ta7p901WS3336b3X///Q35wLPHCivY9jvu
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
4xM3f+MDo/KU8p1m+Y30jpuX5Vsu/KC1PPBxjuNDY7grLzDCuEV61u/evftv+TzICVaoNTWCBIPK
8ZtHfmVWS8+JTMnB0YaEAvnWwzoFKcLNCTUD6hdd3Pa50Mc/9vGcvY98+MMtzTHGymes+KMZ636m
G7IqA+pKq9XfSvuVlkfWfzZUn8R6Ho0eyjli5/SsX7zzS/J8DaebmTXevP4HWww8But/hme2lkGb
Cfmhf3rYqH9Vu3HbqHzHqh6wtfHH7Y+bNi7uQP/ofu3EsePpb3Qz8lbdZLxs2bJ04w03pDNW60Y/
veayXxsuvvupPdoQuSXt378/9fT0pHe88x1pjr7VMlr6VvE8DrWi/7yp1EE9o7/jmmt86ZYv5c+K
8SvM1+kTYpfrU47NlP8ufWLs29/5Tv5c2IW6TeoG3TaZZmt+M4b3Nla5lZ5l9B3tXzqgH3SNq3zH
2tn+c+XIsmL8jfnHxMy/OjVH72RfNda+LfDVm3Vw7JiM+v3UH34yd6//TQbU7cxfp/hO1ffzs/t+
mgaOHe1I/ZrTNTe95EUvbuv7m6p6nm75PrD/QNq6bWuuN8tXrkgb1q0f8xyXOfeTO55Ie/m8sPo3
bsJaptub2tnep5vep0t5fnzPvfk9X6LPKPO+D6o+bdMNvCf0SebFpy1Jmzb2pNn6vPR0Ke94loP+
/LFHdHt0n26P1ue6zzlPt0fP0e3R0vNI+Tg2oFusH9Mt1s/rFusFusX6HN1irX58JLqZkv6o9Hrk
2SMd1ceixYvz7eGjeV8zRe9RztHv+c20esPe1zoZAsb+P/teE7//P1F7Et/4+jfSXXfdlbf4Fi5c
mF6iW1TPPvcc/dhqdfrjP/7jDP/P//k/68d6u9Ojjz+Wfqq1z3PPVZfsXXrppem6N795VGNkO/qi
wf1aBmVlTY02e5oT6yhv2PPvvL8pnE6dP3TinHQ0fVIn5Lbr/OFFunF7NGVoR90YLznWTbP1Lysk
9r9pvG07f+dHERNd1w4dOKgfpNySHtUXaDi/evOb3jTmc8fxqsMhZ+Q13VTqk+J9xvuM+pqng03t
MdTH9CbOv2dr4jlv/rx0xhlnyGAhG1A/Kx8jYxYV+CwwcBhuAsOoGZhtSBWs26QSJg06prY80OGb
lxcs2LHCj3TLU7Aehz9wu5KulA9v8wKXNMs0f+fD6S6b0102pxMv5UNvmZQfRzowlw1elmO4+dsX
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
acqUKaWeT6DuG7NutM49gRoC9YO5QaDWydMsF1In/FCROxnDPY0+cEHV8rDGT2WM4I9dPRxS4pWL
XnbGsjFWfWIR+aq+5tjIIdEYu+piYwz/l3jxW5WDGMayKRY/rUMxzPHXXDnoEeXSWOthLo5tjNX+
sLcsKtpyYAhgMdpw3JgWrsUSwhgBBBGCI0DkoRErPXPiFIMNHaKLwpyx5qqNj2qiizW5mAh58ZGN
Mb7kUiw25vJRffzIw5yx5nlYxsQrBzritVbVVx3N5S89/qqvWugG57bSI488chIvwBYjYASMgBEw
AkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEmkfABOrmseoW
TxGoITGvvfba6ec//3kaNmxY+uUvf1nIslpnPQL1s88+m9BDol500UVLHIRbZOTIkel//ud/CgmY
+csvv1xOt37HO96RIEkSs/jii6cXXngBcyG/3njjjYUEDIn3mWeeKfrlllsuHXvssb3WAqn4hBNO
KHbWSg6I35B7f/zjHxfybTHOxz/PPfdcWnPNNcse7rzzzvTTn/40/dd//Vf63Oc+V4jisTRrg1gO
uZsTdu+///7Evp544oniNmjQoHTdddf1In9jX3bZZQspHSflAFfwgwQN+Zx1IB/60IfSpZdemqZN
m9YrN3UhSpMLefLJJwthnXiIyVwPiPMIpzdzgjaYcr022WST9Pzzz6enn3661CIHZHWI0cj3v//9
9J3vfCd973vfS0cccUTR8Yf5d7/73TKHBE4uyOJvectb0q9//esEMVryn//5n+Wacf+RF0I4ZHv8
EQj03Ef9yfXXX19OAMeP08AhbJtA3R9q3WefS6DeP6+Mm5KbQBxSuJ8iKqOD7ylyMTaEnoaNBo9V
XFbZiIVPil556JUrD9MruRGPHzZEPnNmr9UXD1U+1CFO9ZnLhxw05ZUvOtaDH0J9fORHLvlojE0x
yptVNU4uftozefFhjigvOsaI1qJxUbbzh8KdihaoPNq0crNYgaoeX22aeMYAJB1EYW0YO7aYB7v8
q/U1p0eIkz89cwS7cqoueurih7Be2dDr4igfOVQPP5rqaqz66slTtTFHj9DrayjU0zrRa130g3Ib
9eijj0785z+1payxGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASM
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
NuVgwDzGOu27depTlzx6mcypXurmWMbsQ/WJV33tRzmZwxZJT5fRo0f35Z+3tZmACZiACZiACZiA
CZiACZiACZjAnCCg/8BgAfWcoD9najb1nc+Z3bqqCXwzCHDBwn333Ve5YXpGp0Y8vc0223AryoxC
7DcBEzABEzABEzABEzABEzABEzCBbxQB/V2XBdTfqNfuw5qACZhAixAobqAenhKOTw9aUYmV6aMJ
Rdwpvaj6aEOlJ5WulRh8jOnTohktx8wzx3qeaiNWYmX61Nd65axer33Irxq0qk9LXmoSV23yUYuH
eK1nHfvQXmhVM3Ur58AvLoop65MXU62poy/Xa1xXW52srsXTgsnBxrVpWvk4qA6WupW+QKpVnGJo
Mc1PHX0JSLc1C7JaICEw1rnKvOQCKC2P9qV9a44WUw71dSbWqr5yUkciaVrlZi19mXIzVgw+rVc+
aqm++hqzlvoLp2eFdHPMjV98wXKbCZiACZiACZiACZiACZiACZiACXz1BAYNGhQI99Zbb72Yb77y
/7p+9XtxxdlPgHfNO+dd885tJmACcxeBIUOGxHPPPRdjxozJfzZrd4svvnh06tQpNtpoo2jTpo3c
bk3ABEzABEzABEzABEzABEzABEzgG0/AAupv/CdgACZgAibQZAKtWrWK9u3b6wbqiSmRhJzoQHkY
q6+xNK60iqdFTyqxcermOWLw07Ke/xBHrNbhwxSHX/+xTvWYp6+HWGldFU+rOtK4Eq+8ykUMsYyp
Q4tpvdqp3i9rlmNiqFGdEx/1aMtzUpNYnrJf1k9TTTPBatrqqavYMIeSsVHlpY+xcR5MUImhr1jm
iGFcfgjKTw1enHLSlrDSsGLk4GENreLoqz611E/dHMc8fuprDWNq8VBfpnFZhz7GGhk+cuFTrMbU
p49pnlZ+rVV9hNOqgYC669tvv319am0mYAImYAImYAImYAImYAImYAImMEcIINSbNGlSfOtb34pF
FuEfS7J9nQmMHz8+XnrppWjdunV069bt63xUn80E5mkCkydPjk8++SSfoW3btrHggvy1os0ETMAE
TMAETMAETMAETMAETMAETKCagAXU1UTmnjF/D/n+++/XtKE11lgjllpqqZpiv2lBV199dTnq8ZIA
AEAASURBVJx++ulx/PHHR+/evb/y41Pz7rvvjn79+sU666zTIvXXXXfdmDBhQgwePLhF8jmJCTSV
QCGgHpZycAM1htaTW6jRedKnRQ8qTSiaVvzlWD789DHFSC+qfGhb5SMHRmxpisEvPSqxEk6rDtpV
9ZVDLflYQy1yyKTtxa/6mqPFrxiNOROP9L86r7SzOjPx1CcHrfZCfXwYNTVurH4OqvUXJa01vrE4
bZaWAwm+/KzRQZgvoeLHJ0AcjD4+AaDVgcuciqUlRvWr86epbMTwAjSvGuVHofzMybQf7UF+1S1b
5Vcs+UpTLeZVn/96oQ9A9YmTsW9iWaO8zLVNDzdQ3+AbqMFhMwETMAETMAETMAETMAETMAETmBME
3nzzzXjvvffyzaadO3eeE1twza+QwPDhw2P06NHRsWPHWHHFFb/Cyi5lAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAi1PwALqlmfaUhlPOeWUeOKJJ2pKd+yxx8Z2221XU+zcEDRixIj497//HQi/119/
/dm6pcsuuyxOOumkOPnkk+PII4+crbUaS96zZ8/o379/FlFvsMEGjYXU7Vt55ZWzgHrkyJF1r/WC
uZPAq6++Grfffnsgjt96663nzk02sqv5558/llhiif+XpoamZ+y0EImHpYmVXnXadNaKognFiKGv
MfpQxNcy6UrJQQzz5MekNcXHfBmL3lT1aaVjpWVMLvVTt1KfdWV+5SSevuZZS13tiTnFKo45HvZG
LGt4lAsfsfLRlvnTsLIv1mBao75q5Mmm/ELRljDlYUM6kA5Nfm2UOR1CoGiZRzTMPB+AhMYAwZRX
H0Lr5NOHxnxZn/zEs1b+1M2wmVN9xdDy6BoW8lIfn9rUzeuoj6m+9kcd1SI/Rqt5xuSTTzU1z5ic
GPXZi+rjw7Rv6hDLs9I777zTlxtlbCZgAiZgAiZgAiZgAiZgAiZgAiYwJwhwywM3gWD8Ze+iiy46
J7bhml8BgXHjxsXLL7+cK3Hj+MIL849j2UzABEzABEzABEzABEzABEzABEzABEzABExg3iVgAfXc
++4QGHOhg+yjjz6K2267Ldq1axe77bab3LndbLPNomvXrg18c/Pg4YcfjjPOOCN23XXX+MUvfjFb
t2oB9WzF6+QtRADx9AEHHBC9evWKc845p4Wyzv408803X3To0GGfVOnN9ExKD5rPT9ODLlTCYfSx
PBjaUProQ4lHE0ocmlDWKo4Wn4wYzeFnzKM6zEnrSl76zJO/zKs81EenW2pSieMhP/mYk+FnLXOa
J0b1mVf9av0vccpLDsVK/6u5NFWJk49aGGPyMNae8amfuk0zFWja6qmrBIFcPGyMRyY/LYfA5BNU
+WjJpxzE60Xg11gwyMO88jDGVJ+Wdcohf7lOc7TM60Wmbh5rr/ipq30oh+rTKlfqVtaqPvHkr17H
PEar+tkxbUxO1mhf2gf/RXrF9JM0faZM0bGSx2YCJmACJmACJmACJmACJmACJmACXzEBbstIP+Ab
rVu3jlVWWSUWWWSRr3gHLje7CYwfPz5ee+21mDRpUiy99NKxwgorzO6Szm8CJmACJmACJmACJmAC
JmACJmACJmACJmACs52ABdSzHXGLFUBM3atXr/wv4/3lL39psbxzIpEF1M2j7huom8dvblw9rwqo
F1hgAX6oAwH1sPRMSI90rbQ86FoxBJ7oQKVzpZWWlFZxqZvXaT2tdKXMaR19TOuUi3jqMFZ96Vbx
42OsdfSxcqy1aqmvHKxXrTIPORgzr/1qPXMYfubZB+Jp4vVQX33W6Undip8+6zHFajzV24RfSdQS
pjxsnINiOgQtVgKQTwdhXodRDqAgFsY0p3ha5sucitNN0oy1B/rEMtYHolyMsepYauomaObKeNWX
mJkc+Ihjjfpqk6sigBYf5ng0Job1mPLqLKpPHeJZ1yY9XdM/m9vn88/5nmwmYAImYAImYAImYAIm
YAImYAImMGcI8IO9Q4YMibFjxwY/bb/UUkvF4osvnoXUCy6o/2s7Z/bmqk0n8NlnnwXC6U8++STe
fffd4D23bds2Vl999fyem57ZK03ABEzABEzABEzABEzABEzABEzABEzABExg7iBgAfXc8R5q2UUt
Auqnnnoq/vOf/8SgQYPi008/jVVXXTW6d+8e3/ve9yol0Fkdf/zx0blz59hpp53i1ltvjWeffTa+
853vxK9+9ascx9+N9u/fPwYOHJj/Vb5OnTrFtttuG1tuuWWceeaZwb/Qd9BBB1Vy0kmXYMaAAQNy
bfprrbVWrLfeerHDDjtU/j5VtT/88MPgYpJ0c20st9xy+e9df/Ob3zTI11KD8gbqTTfdNK666qp4
/PHHY5lllontttsu9t1337yH6npDhw6Nv/3tb4HYm7//5yybb7557LPPPrHEEktUh8dzzz0XN998
c9x3333575U32GCDOOGEE+L000/PLO++++7Ad//998d5552X8zV25p///Of55vFzzz031lxzzenq
4JCA+tVXX823FT/66KOZJ393fdRRR8XWW2/d6Dre9QMPPBCPPfZY/hcWt9hii/wN8F5Lu+aaa+KW
W26J0047Lfim7rjjjnj99ddj7bXXjlNPPTV/K5z1r3/9a7z55pv5Ypkf/vCHccghh5Rpch+O5Hro
oYfijTfeiE022SS+//3vR48ePWL++ZECztz4FnffffdYbbXV4pRTTonf//73+Tvj+95qq63ybezk
q7Z77703s37wwQdj4sSJ0a1bt9hzzz1jl112qQ7NF6dcd911OS9/JnKByt577x0/+tGP4sADD8zv
DRalNfdcyqXzJQ1k8D75vcZFPdw036dPH4XllvfH77FHHnkk/3cozs+Zyu9E+eDVu3fvOP/884Pv
g/+28ZOf/CSOOOKIfCHQ7373u/wd8N89+C5PPPHE/F01KFjjYMkll+yZQoelZ2x60Jyia+XlIupE
6ymftKHJlY2bmpmnJZ55aWLps46n9DOPdlR++lgZzxx5VV/raRWfupV54lSftWhXiVVO9Ylhnhz4
sDIfczzMUZ+9SgeLHyNe63VWWnJjxLEGUy7VUn3tlRhyKTfjuq08QN2Lpy1gQ9qIWqbol/l1AM1p
48RwSMVrjcDoI9I6gS3BsIZ8yqWXoFy0mlOecj199oepJR+1GTOvHPj1keBjXrkVm1zZz3pMccpT
xhGDX7HKp/qaL3NQn38nt8uoUaP6fvEFoTYTMAETMAETMAETMAETMAETMAETmHME+P+mb731VvCX
XLavJwH+4nL55Zev6S91v54EfCoTMAETMAETMAETMAETMAETMAETMAETMIGvGwELqOedNzorAfVN
N90UV1xxRT4QAl9EoxMmTMji5UMPPTR23XXXPMe/sofYFYHm5MmT88Ug/OuKCIQl6EWkigAVQ3hJ
LsTPxCDORnD529/+Ns/zy3vvvReHH354brlUhAtG3n///TyP+BUhJ0aOAw44IAuMx4wZEwsttFDe
x2KLLRZ//OMfc0xL/yIB9TbbbJMFozBBuP3BBx/kUmussUbcc889+Zyq/fbbb8cPfvCDoOXSlI4d
O+ZLNpjn7P369csCZMW/8sorWYzNmYhv3759IBKHMQLxl156KSSghhVi9VatWmVhNnxliJFhTL0X
XnghuN23MUNATS2EwwiyiYc3YlgMwXL37t0bLD3nnHPi7LPPzj7eD98B7xUR85VXXtlAWMx3cOGF
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
3Ai+8847Z/8666yTaz733HOZ7RJLLJHXlQJqCiLu5zvBqMH74OGHAe64447o3v1LATUx9ZyL+Fps
2LBhsf766+d98375YQiE5xg3mPfo0SN/p4jfua184sSJ8cQTT2ShPzfF80MUmHh9VQJq/nzo0KED
Kvah6UFbijYVbSfGHx709aAJnZSeUkMq7arWMCZOa2gZS3BMnzr40ZcSjx6VBz2qtLHUVn3V0FrV
Z545zaduNvKSX37th0nmqM8ceWipTbzqp26uzTrloNVaxWmeeNazH0zn0h5Un3nmOCNWxk31NOFX
FW3C0soS5SgPxIExWh2AMX1M86zVeg6sQylGc/gBLZDEqp5yaswa4mjLnFqb3JV5YrSeefWJwZST
l60Xor5i1bJHTHueOmp4JmI0T8ujdcQrl2I0Vk1i+IDYiwTUN/gGarDYTMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKB2AhZQ185qTkdy2+yBBx4YK620Ulx+
+eXTbQdR5x//+Md477338hxi0YMPPjjfzMuNzxJQI2ZFYIoQGF9jhhaL24//85//xCuvvIJAMn7w
gx/EMsssE4cccsh0AmpyEI/oGpEyNRBOIyQ+7LDDGoiTVe/OO++MG2+8MRAxL7744oFodnYYrBB3
X3DBBVlIzi3PCKFbt24dm222WRx99NGx+eabT1cacS9CcthNmDAh4En8cccdVxH9lov69OkTV155
ZRaTI76FFULkhx9+OHPmhmEEstW266675huHuX0YoXlp3CbO/o855ph8G7jmVllllbwnzlFtCMVH
jx4d7777bkX8TgyCW27I5obxN954I88hXkYkzI3PpZ1xxhmZ16WXXppvF9ccwuNtt902dtxxx7j+
+uvlzi0CaUTAI0eOzGw1iWgb5oi1EfdywzQcuG2avcrYE98YN08/9NBD0alTpzxVCoK5tRoWr732
Wp5bddVVs9Cdd1IaomduT2cv2FJLLZXfBSJthOwIr0sBPAJz9jlgwID8/nh3++67bxa/cyt39+4N
BdTkrPVcxNZq1157beb+5ptv5t9z/N6TcdM5QnFuNIcz1rFjx/x7nFvP+f2GcYP6sssum/fO+yqN
m+Lvvffe/GcCP0Qg4/fhoYceOp2QXvMza4sbqNnU2PSg+5TOFY0nRosOVOJq+sRgaFZ5MNZKo6qW
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
KVb1k6uyZ+l1iSFWe1EMNfFLWC1/2dInN7HKpzz4yI3hYx7Dx1jzqq9YYjBqa1/Z0ZRfSNBcUw5t
sHrj5FcMfeaBgo81jDmwxrR6NE8rSPSZFyT6GH6eaqExc9oTsaovn16M9kGrONaW+fWS8Gk/micW
oz7GXhRPTozYsp72q1w6E/Fao1ax5OBZKD0rWUCdKNhMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMoE4CFlDXCczh8xyBa665Jm655ZY47bTT4uOPP46LLroo
31q82mqrxbbbbhs9evRocIPxjAS7HPzee++N+++/Px588MGYOHFidOvWLfbcc8/YZZddMpfPPvss
dt999xg9enS8+uqr0alTp1hllVWiXbt20adPnwbsbr311hgwYEA88sgjsdRSS8VWW22Vc6255poN
4uoZPPfcc3HzzTfHfffdF+PHj48NNtggTjjhhDj99NOjf//+cffdd2dfmXNW+xg7dmzsvffe8e67
7zY40/zzzx+IqmVvvfVW/Otf/8ps+HOla9eu8d3vfjfXTzcUKywuuOCCvL8zzzwzz1cmUueMM87I
t1sTw03XWPX7uPbaa/MZBw0aFJ9++mmsv/760bp16zjkkENip512ymtm9Eu934LyzOq9K472mWee
yfvj3fKNsL/jjjsu7rnnnswf8fnqq69eLolZvYMGwY0MvopzNVI2u/gOllhiCW6gHpqeCelBF4vO
U4YeFKOVkFg+CZ81puVBL6p+6mYjpx60o6zF8DGWHpcWw4eRhz4tc9Kupm5lP9ovMfQVIz+xyqG+
6qm+6shPPI9y0BJDbvoaSxubXBW/YpSTuTIXa1RH+YlpkpG4uaYNk0ubZmMak59+eVh85eYFB79i
OSR+bnaWSl151SpWY+Kpw5iWMUafWJ5qw0echNfEai158LOXcl71FKt6alN4g1qK0x7KfagW59T6
8iPEr/rkFe9FU3/FkSNH9pkyhWU2EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzCBWglYQF0rKcfNqwR+85vfxIUXXhg/+tGP4rbbbgsEnx06dIj33nsvH2nj
jTeOfv36ZREujmrBrs5NDnJhCJ4RKI8bNy64gffss8+OXr16xaRJk4J8Y8aMiQ8//DAWWWSRLM5O
AtN44IEHlCp+//vfx1lnnZXHiKw/+eSTLLZdcskls8i2a9euldhaO6+88kpst912uTZ7QrTMHhBv
L7fccvHSSy9NJ6CuZR+IzhF3I6Quz9SqVavQnx/vv/9+bL311oGIesEFF4yll146RowYkbeOWBhh
NcwxhM433XRTFrV37949+/QLYva77rorC9XXW2+97K5+HxdffHFcccUV8fbbb8fkyZNjmWWWyTVP
Oumk+OlPf6pUjbb1fgskqeW9q9gLL7wQO+64Y/4uyu+sbdu2scYaa2Re1SL2Wt6B8s+ond3nmlFd
/NME1Pum7tD0fJoedKiIOdGHonlF94ne87P0SCeaug3iiJcAlHhMuleNlVOxtIqhrzryUUv10b2q
PrGY4qRjLf34mKdVfcUlV2WvWkNLvDSvxFKftfJX63+ZI04POeirrnIzxhQ3dTT1V8WoLedq7pO4
pYxDsxke8tICpXw5+IgrrTwc82W8oLJGUKvXKxd+1qsGbSl+Ji+m9To7Y+0B4Hpp5Xr2UZ4lDbMp
BwPmMdZp361Tn7rsQy+TOdVL3RzLmH2oPvGqr/0oJ3PYIunpkn5ip+/nn/N92UzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABGolIAHkZpttVusSx5nAPEVA
4lI2jcD2zDPPzKLmF198Md+sjOj35z//efYTUy3YxTd06NDYaKONYoEFFoi///3vsemmm2ax9HXX
XZdvF15ppZUqYmLiuZn5gAMOyKLqc845B1fF7rjjjth///2jY8eOWUS89tpr51zckE1tBMePP/54
Jb6WDto5fg+/9tpr+TZsRLmIvAcPHhw9e/aMN954I6cpxbv17mNmZzrssMOib9++uTZnaNOmTQwf
Pjzf7o2o+E9/+lNF3NxcAbV4bL755vl8Q4YMaXCDuOYba+v9Fup57xLPDxs2rMF3xv54B7wbrDnv
oLEz4Zud55pRTfmLG6iHJ9/49KAVlViZPppQxJ3Si6qPNlR6UuIwYvAxpk+LZrQcM88c63mqjViJ
lelTX+uVs3q99iG/atCqPi15qUlctclHLR7itZ517EN7oVXN1K2cA7+4KKasT15MtaaOvlyvcV1t
dbK6Fk8LJgcb16Zp5eOgOljqVvoCqVZxiqHFND919CUg3dYsyGqBhMBY5yrzkgugtDzal/atOVpM
OdTXmVir+spJHeqqVW7W0pcpN2PF4NM65aOW6quvMWupv3B6Vhg1atSNX3zBcpsJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmECtBCygrpWU4+ZVAhKXrrnm
mvkW6NatuQ90qg0cODB22GGHWHHFFWPQoEHZ2ZiAmpuOP/jgg3xLNTc6y/AjgE76tXj55ZezKJq5
mYmNDzrooLj11lvj2muvjZ133lmpYsqUKVmYzU3STz/9dHTp0qUyN6sOIuUtt9wyOnfuHI8++mgs
uuiilSXPP/98vkEaRynerXcfMzsTN25PnDgx33rNDdSyK6+8Mo499tg48MAD863b+OcGAXWt30I9
7/2ZZ56J7t27x8orrxyPPPJIFpGLA+8U0T3vuDnvQPmq23q/8XrOVV2resxN5Om2c91APTHNS8iJ
DpSHsfoaS+NKq3ha9KQSG6duniMGPy3r0ZASq3X4MMXhl85U9Zinr4dYaV0VT6s60rgSr7zKRQyx
jKlDi2m92qneL2uWY2KoUZ0TH/Voy3NSk1iesl/WT1NNM8Fq2uqpq9gwh5KxUeWlj7FxHkxQiaGv
WOaIYVx+CMpPDV6cctKWsNKwYuTgYQ2t4uirPrXUT90cxzx+6msNY2rxUF+mcVmHPsYaGT5y4VOs
xtSnj2meVn6tVX3+hFUNBNRd03X816fWZgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImUAcBC6jrgOXQeZKAxKUId88444zpzoDg9eOPP863NC+++OKN3kBd
LkIozW3CrOG59NJLI+nXGoieZyY23mCDDXItbolu27ZtmTouv/zynOeaa66JH/7whzk/+27MfvSj
H1Vudb7pppuyMHnvvffO+6mOX3fddYObkUvxbj37IN/MzqR648ePjyeffDI+/PDDvHeE4H369Mk3
fcMJmxsE1LV+CzoX7azeO4L4o446Kvbbb784//zzy6W5v+GGG8brr7/erHcwXdJpjnq/8TLPrM5V
xjbWLwTUw9I8N1BjaD25hRqdJ31a9KDShKJpxV+O5cPDcYM3AABAAElEQVRPH1OM9KLKh7ZVPnJg
xJamGPzSoxIr4bTqoF1VXznUko811CKHTNpe/KqvOVr8itGYM/FI/6vzSjurMxNPfXLQai/Ux4dR
U+PG6uegWn9R0lrjG4vTZmk5kODLzxodhPkSKn58AsTB6OMTAFoduMypWFpiVL86f5rKRgwvQPOq
UX4Uys+cTPvRHuRX3bJVfsWSrzTVYl71EUXrA1B94mTsm1jWKC9z/C8IN1Df4BuowWEzARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgdoJWEBdOytHzpsEJC49
77zzYv/995/uENtuu20WLd9zzz2x/vrrz1BA3bdv3zzHjc6NWXlr9IzExp9++mksv/zy+SbixnLI
d/LJJ8eRRx6Zb7b+zne+I3eD9vDDD49TTz01+xCGX3DBBfHrX/86i3gbBKbBHnvskW/floC63n2Q
b0ZnYg4B+Zlnnhl33HFHjBs3DlcDK4Xdc4OAutZvgUPU+t71nc3Od9AAajFQ7dlxrqJMo935558/
llhiif+XJoemZ+y0IImHpYmVXnXadNaKognFiKGvMfpQxNcy6UrJQQzz5MekNcXHfBmL3lT1aaVj
pWVMLvVTt1KfdWV+5SSevuZZS13tiTnFKo45HvZGLGt4lAsfsfLRlvnTsLIv1mBao75q5Mmm/ELR
ljDlYUM6kA5Nfm2UOR1CoGiZRzTMPB+AhMYAwZRXHwL/loA+NObL+uQnnrXyp26GzZzqK4aWR/fn
k5f6+NSmbl5HfUz1tT/qqBb5MVrNMyaffKqpecb69xGoz15UP3Wzad/UIZZnpXfeeacv18rbTMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAEaidgAXXtrBw5
bxKQuPSXv/xlnHjiidMdYq211oqRI0fGCy+8EMsss0yjAmpE01tvvXW0adMmdt9999xfdtllo337
9tGrV68YPHhwzTdQr7HGGvHee+/FrbfeGossssh0+8HRuXPnvJcpU6bE8OHDG42hNjdmY1dccUUc
d9xxeS/nnHPOdPGbb7553qME1ATUsw/iZyag/tnPfhb//Oc/Y+211w5uxv7ud7+LqDYGDRoUcG9M
QI0w+Qc/+AGpK/aTn/wkHnzwwbj33ntjvfXWy/7LLrssTjrppJCoXME605AhQ2LJJZeUe6Ztvd9C
Pe+d8xx22GHRo0ePuOiii6bbB+d58803G9xAXe87mC7pNMfsPNeMaso/33zzRYcOHfZJ4zfTMyk9
aD4/TQ+6UAmH0cfyYGhD6aMPJR5NKHFoQlmrOFrpUVO3gUAaP2t4VId4aV3JS1/1y7z4VB+dbqlJ
JY6H/MQwJ8PPWuY0T4zqM6/61fpf4pSXHIqV/ldzaaoSJx+1MMbkYaw941M/dZtmKtC01VNXCQK5
eNgYj0x+Wg6BySeo8tGSTzmI14vAr7FgkId55WGMqT4t65RD/nKd5miZ14tM3TzWXvFTV/tQDtWn
Va7UraxVfeLJX72OeYxW9bNj2picrNG+tI9Fk2/F9D9gffgfC5sJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmEDtBCygrp2VI+dNAhKXbrHFFnHbbbc1OAQ3
J3fr1i06duwYL7/8cp5rTLDLbc99+vSJn//85/mmZSWZNGlSrLrqqvnW5cZuoN5vv/3i/PPPV3hu
99prr7jvvvviH//4R2y55ZYN5po6eOqpp2LHHXfMwuUBAwY0SPPBBx/Et771rfj8888biHfr3ceM
BNQjRoyIddZZJ1q3bh0IjksxM7diczt2KaBG6I3guzFBuwTF9QioJXxvcOgZDOr9Fup5788991x8
//vfz+L3Rx55JNq2bVvZxbPPPptF9zhKEXu976CSsKozO89VVWq64QILLBDt2rVDQD0sPRPSI10r
LQ+6VgyBJzpQ6VxppSWlVVzq5nVaTytdKXNaRx/TOuUinjqMVV+6Vfz4GGsdfawca61a6isH61Wr
zEMOxsxrv1rPHIafefaBeJp4PdRXn3V6Urfip896TLEaT/U24VcStYQpDxvnoJgOQYuVAOTTQZjX
YZQDKIiFMc0pnpb5MqfidJM0Y+2BPrGM9YEoF2OsOpaaugmauTJe9SVmJgc+4lijvtrkqgigxYc5
Ho2JYT2mvDqL6lOHeNa1SU/X0aNH9+EPeJsJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmEDtBCygrp2VI+dNAhKXsvuzzjorDjrooHyQzz77LH784x/H448/
HrvssktcffXV2d+YgFo5iP/rX/+a4/jl9NNPr9w2XAqo77nnnthnn31izTXXjEcffbQST+fCCy8M
8q2++urRv3//fIs1foTIu+22W7zzzjtZZPvtb38bd002bty4IH7s2LFxyimnxBFHHJHXTZ48ORDp
PvDAA3lcinfr3ceMBNTURESOfo+zIoLGXn311Xxb91tvvdVAQH3NNdfE0UcfnW+r5tZqCY0vvvji
OO200/LaWgTU22yzTfz3v/+Nq666Knbddde8Tr889thjcdNNN8X+++9fucmaOb1H+rV8C4qv5b3z
PW211VZZiI+YHeF4ly5dYuDAgXHwwQcHHLDmvIM5ca686Vn8kkTzPVPIsPSMTQ+aU3St6DwRdaL1
lE/a0OTKxk3NzOsmaOaliaXPOp7SzzzaUfnpY2U8c+RVfa2nVXzqVuaJY7/KgXaVvsbqE0NucuDD
ynzMaV/UZ6/SweLHiNd6nZWW3BhxrMGUS7VUX3slhlzKzbhuKw9Q9+JpC9iQNqKWKfplfh1Ac9o4
MRxS8VojMPqItE5gSzCsIZ9yMcc65aLVXOo26AsoLaaWfOTQvHLg10eCj3nlVmxyZT/rMcXpnGUc
Mdovscqn+povc1B/4fR0GTVqVN8vviDUZgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImUCsBC6hrJeW4eZWARLDcMv3ee+9lge/KK68c3Nr8/vvvx/LLLx/3
339/voWaMzYmoCZ25513DjRq3LaMSJgbhwcPHhxLLLFEcMtzKaAeNmxYrL/++jmeWghrzz333IwQ
oXGPHj3yLdTc1vy9730vJk6cGE888UR89NFHWUTNDc312l133RU9e/aMKVOmxGqrrZbF24jDOSNC
3jfffLOBeLfefcxIQM0+99xzz8ywffv2+TyIibmFeaGFFsrMyxuohw4dmm9qHjNmTCy88MKZzfDh
w4ObpDt16hTpMtWoRUCt26HbtGmTb/LmdnA4Y5tuumkMGTIkNtxww4CLrN5vod73/sYbb8T222+f
vwdqtmrVKhCxL7fccrH00kvnb6QUUNf7DubUucSvsXb++efn98C+ae7N9HADNTpQPQiT0XzyoHnF
j0nYjA/DrxjG+BGE4pNpXObRemI0rxr4VB89qtaRU/VL0anq0+LnYV214dd+y/XyqWUdNUstLD7V
wa+94lNdtcrDWKY5xmVf801qywJNSjBtUfWBcAOI/DwciAcxcAkuDSt++swJvHIKFPOY8kwdTf1V
sYy0njjVx88LWTA9ql+enX0xJoY+prY8x9SZL+eUQzUZ06dlnfKmbh5Tv3pfxBLHOtWXL7kaxOPX
3CKp3yX9odmXP0xsJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACtROwgLp2Vo6cNwlINIuA+fnnn4/rr78+35Ys8e4JJ5wQ3bp1qxzu8ssvjxNPPDFOPvnk
OPLIIyv+O+64I4gdOXJk9i211FL5RuN+/fplYTK3IXfu3LkSf+2118YFF1yQhcsdOnSIV155pTLH
jdHk52ZoxNYYAm9uKub26AUW0AW0lSU1dfr06RNXXnllPPPMM1lIvcwyy+Q9Pvzww3HdddcFN2Mj
7JbVsw9ui/7Zz34W//M//xNnn322UuQWMfShhx6ahc+TJk3Kvp122inH//SnP823cV9yySWVNezn
mGOOiddeey37Fl100Tj++OOz6Jn3c99998W6666b52b0Pt5+++38nhBIox1kT+wN+9WvfhWsowbv
TFbvt8C6et87ImpYPfjggzF+/PjMm+/oqKOOyjeOlwJq8tfzDubkudhrYzZNQL13muOK7fHpkZBT
GlE0pGhCGevBh1aUFmNeY2IwWvwYelH6POhMaZUrdXMe1mMSTdNnHTV4GotXrer9sI457U9jcvOb
U/tK3WzEsS+MGO2FljzV8fjIKWOsWHyaYx191Vec9kVss03FmptIedikXpIOpY2Xc8QLFH7GHEx+
+joo+bQ2dbO/zI1PuViDSBl4Wkdfwmm9QOropaVuBTJ9/OTRvpRbfzLjV/3UzcaYnMyplnyqzxw5
yM2c6rOOR6Z9q77iWKs41nMDdeckoL7BAmqhc2sCJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACtRGwgLo2To6adwlINIuAd5999gkEvoiWuZW5devWdR+MG5LJ
wa3CiEdnZtwGjbiYOtzG3Jhx+zJibgTULWXciD1hwoS8x/nmk9xu5tlbYh9wGTFiRL5Jum3btjMv
mGa5ERw+vAtua26KUROhcrt27aI866effhrcTl1ac76FWt47N4izB/ZSGu8Ckf6HH34YgwYNihVX
XLGcrvRreQdz4lyVDc6gk25S75GmhqdnbHrQfGJoRnmkAZVmlDF+PkzN0/KbSXN8DBJCs07zysEc
po8bP0Zb1lN+cmstcfhZq3jNsZY+OlUJoRkTj4+23Jv+ACCmzKd6+DHmyK2PXH58espcqqV1xCgn
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
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhAXQQsoK4Ll4NNwARM
wAQKAvPNN1906NCBG6iHpgdtKdpUtJ0YOlD6etCETkpPqSFFY6r51K3oXeWjZZ0Ex/Spgx99KevR
o/KgR5U2ltqqrxpaq/rMM6f51M1GXvLLzzrGGHPUZ448tNRmXvVTN9dmnXLQaq3iNE8869kPpnNp
D6rPPHOcESvjpnqa8KuKNmFpZYlylAfiwBitDsCYPqZ51mo9B9ahFKM5/IAWSGJVTzk1Zg1xtGVO
rU3uyjwxWs+8+sRgysnL1gtRX7Fq2SOmPU8dNTwTMZqn5dE64pVLMRqrJjF8QOxFAuobfAM1WGwm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImUDsBC6hrZ+VI
EzABEzCBhgSKG6iHpZmx6UH3KZ0rGk+MFh2oxNX0icHQrPJgrJVGVS1x6EtLYTTxmpfOVD7lSCE5
hpY51VefvMQylpVj8mOqz5iHPKzROtVPrjxf5iCGMes4A7nw6TzKpRwap5BKDeLxaz+KLeurz7q6
TQnrXlgsIAebUC715ddYEPALgmJ0SPw6kOALjPKwRo9i9XLSVF7PmnKdxsSpvj4C1iiWVkYswmXi
ZfSJUX35iWXv+NmT+hqzBp/2SV7VV87kyrlp8al+uSflYX7R9HR+5513+kyeTCqbCZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhArQQsoK6VlONMoHkEJkyY
EIhN27Rp07xEXm0CcxGBaQJqbqAekZ5qATWiZ2k/0YLylIbOlAfxJ3PSmkpXmlzZrzhy6fZl+twE
LZ1pdZumcixxmlMN5mTk1t6IwxSndcTQ55FQFS0se1EMdbSOeIxY4jCdQXmUU37WkgMr+5pnHfNi
U9YnpslG4pawcvPlZks/fW2WA+gwqs/BBawEJT9rySFArJcQWesEnTj1UzfXLc9KPHlURzGsk48+
pjr08Wkf+LkNWnVYp72Snw+EeUxr6BPHvlVfdZhTfVr5iSMe0zmZ439NVh49evT1n3+u3xeE2EzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABGZFwALqWRHy
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
k85CThp7EUPzoTAnDmOsPPiYY/TkUF165vm69imGNdWPw5RXPtXXF5S4pWNrO23atJtykSwb62q8
3nvfffcVtp9//vnhsMMOK/n69+8fbr/99tIc4XE8Q2mOuHnSpEnpBV6cvELcunXr0jqDJZdcMrz1
1ltJlMv8oYceCr169arysjFr32R//etf04vUiuEF6/IXqHlxeIUVVkj1FFddT+xzzz1X5bzVxVfy
d+/evfDSNDwmTpwY3n777fCjH/2osAVx7fjx49PLzIWFOZNKItt27dql16zLX4GutJ8XqnffnR9w
mW11FVC3b98+nXNeNXnBnP+wqImg/w9/+EN6EVxnI3e3bt3C008/LVeNel6j5mVvxMDftoCaM/bu
3bvwYndNDrnEEkuE+++/P/BSt6yhP1uE3Z06dQofffSRStSoLxfQ12iTg0zABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABExgISFgAfVC8kH6GiZgAibwHRCYI6DeM5YeF9tn
saH3RGNarlXFh14UsbJ0pMTI8GH0+NWTT7lyv3KoR1daaSyf6tPLR49RQ2PmjNVUn7NTA9O5pXVV
DHvyMesy9qKTpX655XlY01mowxo99VVX69qneQypvXHg+poOSR7GGIeiaY06zCUajsMq67oQvT4w
4jAunwuN8REHWMFRftXSnFzaS49fpprsUR567clzIaDWh8J+9pZ/OORnD8aaRNeqS48phhwYc9aU
T18YxXFmculOcRiWiW216dOn38SkIeziiy8OJ5xwQiFVnz59wtChQ5MPAWnbtm3D5MmTSzFnnHFG
OP300wviZ734TNA999wTdt5551I8A1775eVbbOrUqekF4QkTJqS5/kCY/fOf/zx07NgxvPHGG0nY
/cknn2g59a1atUqC52bNmqV5JQF1YUOcIJKeOXNm+OorUFe1XXbZJdx4441VF2rg4ZzrrLNOIZIX
rUeOHJl8G2ywQXj11VcL67feemsS5RaccyaVRLZ5HIx4GZqXmysZL38jLpbVVUCt/fSIvhHrzssQ
ySNu5vOtZHwnhg8fXlqqdDYW+fwRxX/xxRdJhPz++++X9mhw6KGHhgsuuCA8/PDD4Re/+EVyE1/J
OJfs3nvvDQiIsZq8QD148OBwzDHHaHuhb9OmTRLew7tS7dVXXz19FnxmWEN/trzIfvLJJxfOtNRS
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
ww888HfTZgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImMJuABdT+
JpiACZiACdSVQPYC9YSYY3psCDnRjaIDZUyPqUe8hVgSLaj0oRJcR1fak69JtEwu/MzpMdXIdaqK
I7fq6zzsQauq+swx1WBMTs7IfvZpTXPlV03mjDF65tpPLt1R+6mv+2qfcjBX/ThMpjX2c2/W6YnF
x7xepkPUJ0n5gXRQcjLmoAIAHKAKki5NT6wA6uISF3NRnVVjxRPDGjXYx1xgVCe6krGm+ji0j15n
I4Y85EewrPMzx3QX5tRRfdY01x7tZ40ayk2P4cO0xtlYI4/qx2GqyTyP58ni1aI49WZ+kqGhbMiQ
IWHgwIGFdMccc0w488wzw2qrrVYQQyPI5cXhzz//PK19+umnpX2Irtdaa60k4Cw54yB/hZeXrvU6
ch5TmzGCbF4vxqoTUL/44otJuFwpLy8j67VsrSM4veKKKzStUX/66acnMXkeXElMDFsY59arV69w
22235a40riSyRaSNYL2SrbHGGlVePW4IAXWPHj3CPffcU6UkQvPLL7+84L/lllsCr46XG+Lu8teq
qxNQI6Dn3E8++WR6nZvXrtWmTuUHdYo2PwTUiMLLvxPdu3cPvPxdyUaNGhV4Hb3cEFDz2nhDf7YP
Pvhg4Hv0TUZdxPTdunVLPwzB30+bCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACSzKBCygXpQ/fd/dBEzABOpHYM4L1LvHLBNjmxGbxMHoQDE0qWhB0aNi0rjOns32I/6k
Ecc+dKLES0Oa72GNGvSss0+58zX5qJ/vj9NSvPayT/XZxx569rFGr8Ya9ZVXOehVX/vxSQurs0ZX
Ordyqx6x+DQnXjGqHV2ls+lc7CO2zkaC+poOTx4ur8vSc1BMl2GcX45xvoc4QSNWuXVOxQsA8Yoh
Pv9gFIsfI46m+qqreuRkDdEzPbHy0Wsv8aofh8mvc7Cmu/JhkkumHKxjqq96+Vz5VCffSzzzprG1
mTFjxnBecm4oQ9TKS7W58erz+eefH7p27VpyN23aNLz99tuBF5Gx8teIDznkkCTW3H///Ut7GPBi
NS9XY5VebU4LtfyDF6Q5RyUB9dJLL50E1tWJzDnLVVddVai43XbbhREjRhR885rArPwV5M6dO4d2
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
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJrBQE6iLgBog77zzTkB3UB/jsUE0
D7W1cgH1EUccEdZaa62KacjPw2/Y22+/XfjN22h8OnToUGUfv1Fd2qCuXbuGk08+uUqMHIjJ//e/
/yW9T6dOnWr8gBu/sX7s2LHpgUJ+U7t+o7fyqreAWiTcm4AJfB8J8Bht/GEYvUA9I54RHSiGoJPG
XGPNpXGlVzw9elKJjeMwrRGDn579aEiJ1T58mOLwS2eqeqwzViNWWlfF06uONK7EK69yEUMsc+rQ
Y9qvfrZ3bs18Tgw1ynPiox59fk9qEkvLx3n9uFQ3E6y67Z69iwNzKRkHVV7GGAenYYJKDGPFskYM
8/yLoPzU4INTTvocVpyWjBw09tArjrHqU0vjOExxrOOnvvYwpxaN+jLN8zqMMfbI8JELn2I1pz5j
TOv08muv6qMWVg0E1B2i0HlobX+VR9xXI9t6663Dww8/XIjlX4pOOumkgi+f8C83G220Ue4K/KQF
r1bzk3PfZG+88UbgV28gOK30U3orrLBC+rUi55xzTuDXh5Rbpdo9e/ZMolxEySeeeGK6Ty44b9Kk
Sdh7772TGJvXqmtjq622Wvjwww8LWwYPHlxF4FsIyCbVvbr86quvBs7CTyvyq1NyQwh+xx135K7S
GCbsze3xxx8vsbr33nvDTjvtlC8HBOb4ZbWpefzxx6fPS3vpR4wYEbbbbrvclcYrrrhiyF+D5js7
YcKEgF/Gr7c59dRTA0Jv7pF/Tj169AinnXZa4KcJEfzmvwqnTZs24ZVXXlGaQs/ryvxkJJ8/YnV+
MADjc+c/ZHh5GuM1cF4Fz42fpqz0SjgxnPHKK68Mo0ePDpVegEc4zfcKAXd+R+WvDWf2zOuzVd73
3nsvfZf5DxnG5cbL6Ij0EasPGDCgfNlzEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABE1ikCNRVQA0kNDWvvfZanXitscYa1WoS5pWwXEB93nnnhfXXX7/abTxqx2/cRmuR
axzQ89A23XTT9NvSr7322qRJKf/N4Py2cGzQoEGhXbt2aYwYm98a/8ILL5T0IGhB2rdvnx5Y3Gqr
rVJc+R9Dhw5N3Pjt7jIEiAjAeUiRBxAxtEM8aljdWRB/oxexmYAJmMB3SSATUE+I55gtTJutM+UV
anSe6D7p0YNKE4qmFX8+lw8/Y0wx0osqH9pW+ciBEZubYvBLj0os/0BXLXq0q6qpHOrjUjojtcgh
Izdz/KqvNXr8itGcWjTq5/WknWVNxjo56HUW1SOGmppXqk9MjY1C9TUdlp4LCb785NdFWOfQrHEJ
/PgECB9jfAJArwvnORWrPKpfnj9uT0YePgCtq0b+pVB+1mQ6j84gv+rmvfIrlny5qRbrqo8oWl8A
1SdOJkbsUV7WlomNF6hvyoWmLCzoNnPmzCSI5V+2+PUhCJXXXXfd0r8k1ed+5Bs3blz4/PPPQ8uW
LdO/2CGmtX2/CCCgRxTNC+O81L3ccss1yAGnTp2a8iyzDH996m+TJ08OCP/5AQH+I4MfEkA8veaa
awb+B/K7tClTpoSXX345/aQnv1KH19X5D5lv6wcuvsu7urYJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJ1IVAfQTU/BZrfrt4+W93n9c5eG25T58+6fG3ecVWWq+tgJrH
5vr27VspVfLplWkE0dU96kegXqzmscFjjz02vPvuuxVzoktgfYsttiis85vE4VWdobk4++yz06vY
N954Y5XfCp/v44FDiblzv8cmYAImMD8J8EMo8THQvWLNcbHNFqbNFQ9LEyu9qo6GH00oprHm6EMR
X8ukKyUHMayjz8WkNcXHeh6LcI25mnSs9PjIpXEcls7Dvjy/chLPWOvspa7OpDrRVYpjjcbZiGUP
TbnwsU8++jx/nJbOxR5MezRWjbRYlz8o2hCmPBxIF9Klya+DsqZLCCg964iGWecLIKExQDDl1Reh
UfSVq9QVR37i2atzsUYd1lRfMfQ0hMwYeamPT30cpn3Ux1Rf56OOapEfo9c6c/LJp5paZ05OjPqc
RfXxYTo3dYiltY9i4+H5T4dFn80ETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETGAeBOojoCY1D5s9+uij86hSXEaw3KlTp6KzFrNyAfWuu+6aXn4uT9G0adPw
4x//OAm8L7744vRSdP7buflt2IiWOcuOO+4YHnjggfDEE0+El156KT14SD4ebNtwww1T6gEDBqTf
wn3ooYemx+Zw8puw+/XrF3jI7v777w+cDePV6vzF6vvuuy9wBtmqq64a4MBvE+dMPISI8ZvUf/Ob
34RHHnkkjBkzJr1w/cEHH6Q1zqrfWL///vunhxPTgv8wARMwge+IAD8wssIKK+wey4+PbVZsaD5n
xoYuVMJhdKs0DG0oY/ShxKMJJQ5NKHsVRy89ahwWBNL42UNTHeKldSUvY9XP8+JTff7Bm2tSiaOR
nxjWZPjZy5rWiVF91lW/XP9LnPKSQ7HS/2otLpXi5KMWxpw8zHVmfBrHYd1MBeq2e/YuQSAXjYPR
ZPLTcwlMPkGVj558ykG8Pgj8mgsGeVhXHuaY6tOzTznkz/dpjZ51fZBxmOY6K37q6hzKofr0yhWH
pb2qTzz5y/exjtGrfnLMmZOTPTqXztEs+trFnxIb5hdlIwmbCZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACdSCQH0F1PzW+LvuuivwG6xrYiuuuGLYfvvt6/Xb
o8sF1NXVXWmllcJ1111XWuY3wR9wwAGl+fnnn59+I3zJMWdwwQUXhAcffDDNNtpoo3DOOeeUQspz
XHTRRaFjx45pnZe4DzvssPDmm2+m+cEHHxx69+6dxueee24SRTOJr7WGyy67LImzmY8cOTJceeWV
DNOr3MOHDw+NGzdO83xfly5dwhlnnJH8/sMETMAEvg8E+GGR+IMmCKgnxDY9Nula6WnoWjF0oehA
pXOll5aUXnFxmPZpP710paxpH2NM+5SLeOowV33pVvHjY659jLF8rr3qqa8c7FetPA85mLOu82o/
axh+1jkH4mni1aivMfvU4rDkZ8x+TLGaz/bW4U8SNYQpDwfnopguQY/lAOTTRVjXZZQDKIiFMa0p
np71PKfiUOfLdAbmxDLXF0S5mGPlsdQkl/x5vOpLzEwOfMSyR2P10VUSQIsPazTNiWE/pry6C35i
qUM8Y/5NoUN8gXqYX6COJGwmYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImUAsC9RVQUwrxNCJqxNTfZDyQiHgaEXV97LsUUD/00EMB4TXWqFGjMHDgwMJV7r77
7vQqN84tt9wyHH300Wn9V7/6VXj33XfTeLfddgt77bVXGvPHF198EZ5++unSHNE2uTELqEtYPDAB
E/ieEmjZsuWe8WgTYpsaG5pTdK3oPBEJo/WUr/x/JHipmXW9BM26NLGM2UfL/ayjHZWfMZbHs0Ze
1dd+esXHYWmdOM6rHGhXGWuuMTHkJgc+LM/Hms5Ffc4qHSx+jHjt113pyY0Rxx5MuVRL9XVWYsil
3MxrbfkFar15zgYOpIOoZ4lxnl8X0JoOTgyXVLz2CIy+RNonsDkY9pBPuVhjn3LRay0OC2MBpcfU
k48cWlcO/PqS4GNduRUbXcnPfkxxumceR4zOS6zyqb7W8xzUbxpb2+nTpw9nk80ETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKDmBBpCQE21Rx99tCQcrq56
p06dQteuXatbrrG/XEC90047hdatW1fZ36xZs9C9e/eSv/z16Lq8QH3VVVeFO+64o5Tzmwbt27dP
L01/+umnAdG07Jhjjgk9e/bU9Bt7C6i/EY8XTcAEvmMCiy++OK/q94/HGB8bL1CjA1VDmIzmk4bm
FT8mYTM+DL9imONHO4pPpnmeR/uJ0bpq4FN99KjaR07V/3/23gPe7qJO/x96VZqKAqHpKhZQEAVR
8G/siLoiKtWK+rNjA7srioVFd1fFhh0IqKigK/YVFcGGBbsiJZQkYEFBmpD85z3J+zD3cHNrAvfi
83m9JjPz6fN8zy1JnjOHGMX6zOgZxA0Levvt49U5E0fNnguLzjro7RWddZ3Nw17Rxr5fa5/S3BeY
UoJlQcMHQg1A5GdwIAZk4B64uh3oWWMTeHMKFHbEPEt3S//Ul53x+FkfPQ+EG52t35+dvtjjwxpx
7s+x1HKjzRzWZM+amTjz1mXbe6M1dmOZ8SPO+uqqqp1Xf2f8161jy3oD9bzcQA1MkSAQBIJAEAgC
QSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgMHEEVhSB+rrrriuf
+9znSr0IcdTi66yzTtl7770HNyuP6jRB5TCB+u1vf3vZfvvtx41eEQTqD33oQ+WUU05ptdZYY42y
+eabL7fuHe5wh/LGN76xXHXVVeXJT37y4IbuQw45pDz84Q9fblxvCIG6RyPrIBAEZhoCywjUvEPk
4jquqgNyMiJ3FQ4pnFD2DnRwRZkR7O7xQZjRI3BGWTPgjTKbqy5bHuIRSdOsiaMGYzR/aw33Qxw2
+3NPbi7+ta+6bIIffSH42AszeYb90ZFTYa8vOm3Esba+fvaF77TFYtNNZB6a9CF5KBvvbfgLFHr2
HEw9aw9KPmPrsun73OjMRQwkZcAzjjU6bD5A6vjQ6nIAMmv0+NqXuYlF0Fu/KZbtyYnNWvigsz42
cpAbm/XxYSj2bX39iNWPeG6gnlMJ1CeEQC10mYNAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCwMQQWFEEaqr98Y9/LN/5zndGLcxN0He+851HtU1WeUsS
qL/1rW+Vo446qrVcb10txx133ITaf85znlMuvhh+YSlPfOITyzOf+cxB3PXXX1/OOuuswX7HHXcc
EM17AvV973vfcvjhhw/8sggCQSAIzAQENtlkkwNqHxfWcWUdcD4ROKMMOaByRtmjl1fqHj6oa/ii
EqGJwx+7ObAhcknRI8x9Pev3sfhZX3/zEssanqpEaPb4o2PueyMvgg+9MJPDeuwRbOiJRdSjc/S5
rGVcn5Mc9m8M+ymLIE45QQ2kKUEgj2sbR4e4Z+5Ffw/sAyCvOv3Z46/NtTnwYy04zn2c9dEh7Fnj
SywEaF4A9KEOuwN/67u2Jj6ssWMjB4JeX/foFNbEWN8XHfWJw87wPPiuV8cW9V1a81ZZpU9VtZEg
EASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAExkRg
RRKoKfTlL3+5LFy4cETNO97xjuXRj370CN10NrckgRoSNGRo5Q1veEPZZZdd3LbzQyRHttlmm/KY
xzymrf/zP/+znHbaaW293nrrlfe+972FG6qRk046qXzsYx9ra27qnjdv3qgE6g033LARtsOTalDl
jyAQBGYAAt0N1BfWdvgIAnifcDz/uWyuU9PBAWUg+rCHL4o4o+vJ0xJDsTPYMw/nq6pmIzfcUgnQ
6Ht/4q2vzZzsEezoqMGsGEe+XvQ39zD/F7tiLWbXPUcXv76OfFn01GVPX70M73vbuGuamK6YwwPx
AGhquOH+oPh60D5e0I03Fz0ag45cPGTWfTw5IUATzxAwfBjmH85VTc237xlfHiY6/L85xNwAAEAA
SURBVMlFfonVkqyxIZ6P+ghx+FrTXpjNRf8MhNn67K3fx2MnP/Fr1rHNNddcM2/JElwiQSAIBIEg
EASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCEwUgRVNoL78
8svLKaecUvw0ech1j3/84wvk3xUlwwTqtddeu6y+OhSlm8rrXve6sv322zfDJZdcUp797GcPnI48
8shyz3vec7B30ZOd73Of+5QjjjhCU4Gj9KIXvaicd955TbfmmmuWRz7ykeVOd7pT+d3vfle+/e1v
D3wPO+ywws3byBlnnFHe+ta3tnj2G2ywQdl5553LZZddVn71q1+VG26AklXKQx7ykPKKV7yirfnj
mGOOKSeffPJgv9lmm5W73e1u7QbrjTfeeKDPIggEgSBwSyDAGzrq9yJuoJ5fhwRqyJzwPOXHMkvw
lNgM5/S6OuSM1mUTObHG42c+1ku/WS71haQt9xSf3s7e+uSyvjp8jddWVQN+LDEM62ND0CHo7bUp
lunIbwy+9GfP6Fnbs71UVRPtcm612x92e+rX2pelmdxEohUh5mG2IWaIvjbNGjsHYx4NHPXmqG4t
BzN5hnMAli8qfIhXyGENZmzEW59Y19jIj/gA0PXD8/Q5IDNb3/zkMB92alCfOIbnsD46/D0zesTa
vZ08nokbqLe97rrrjvWXCIIiQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgC
QSAIBIEgEASCQBAIAkEgCIyPwIomUFPxxz/+cYHkjEBehii8ImWYQD1W7je/+c1lp512ai4rgkBN
or/+9a/l0EMPLeRbntz73vduxOv+tujPf/7z5cMf/vDyQsqmm25aDj/88LLFFlsMfH72s5+V1772
tYO9i/e9731lq622cps5CASBIHCLILDsBur9a/EL67iiDjigckdZywlllqtal41zig6u6LV1wBHV
F36p/uiJQ8iLwFdFtBmHH2tzsWbITcWODTEH9SFyG6MvcfJc+zjsxDLLY7WG9dGjGxbzEQt5m5n6
rO0LnbH6M6N3UId1X79upyYkmq7QfN+kjZNbPTX6tQf2MB4OP9Y9qBzUB2QO/fHD5kOypjG9Pw8O
PUIMvn2cNfqZePbGubd+NQ3q9zV5sPgg+lILH/bOwzrPU11aXurhy0CwGwuBes7VV189D0MkCASB
IBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgYkjsDII
1Ndff3353Oc+15rYe++9l3s79MS7HOnJjc0QmCci3B7NLdLIggULysEHHzwIO+qoo8rd7373wd4F
+m9961ttu+OOO5a3vOUtmgbzokWLyrHHHlt++ctftlukNWyyySaFM3Prdk+e1v6lL32p3VL9hz/8
odRLI5t6vfXWKzvssEO72ZqbqYflO9/5TrvV+5xzzmk3VZMXAvWcOXOGXbMPAkEgCNysCHD7f/2+
tV8temEd3EAN3xOOJzMi2RjOKDr4ogp+DvTyTYmBs4qoJ9ZcxODL3OezRlU3G7O5tNkXNoQciHXw
Y01918yIRGdi+v6w4cMgP7M9mhd/dMP23q+vKV9W/xo6wJS19YfPg21S4uEmFTTk7OEFxodibvU9
MB7cmYN4qKH0A0DRC1IPzPLqCyI1XJPDPshlb+TDx37qsvl5BvfEMKxvbf3I0T90a6DXBx3S28gH
6dr6fV7jmMnDwB8C9ZbXXHPNPD4eIxIEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBIAgEgSAQBILAxBFYGQRqqs+fP781seWWW068mVnqedlll5U///nPjdAMGXoi
Asn83HPPLbe5zW3Kne50p4mENB/iVltttVHJ2RNOEscgEASCwApCYNkN1AfUdOfXcU0d8DoZEDr7
oU4uKBxTSZ/Y0DtDVMaGzhx12QQfxNkc5IOPil5dH6te7qoc3+o+qIUPdkjXxLI2R7+u6kGMtYxl
HhZzoCcP55IMjg7xrNZXx2wvrvV1tgfskxaSTFdsxDwQfD20zQsQNgGWMIwNP/YCSE5Br8tmJ5YX
xxp1mI84fNl7FvNW1QA8/bBZnzzoGcSvWYfkZ3JRD8GOEEt9/Kxfl4P6Plz8EGt6DmZsvvisjy/5
1lpm8+zWx47YO374r19HbqCuIESCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAkEgCASBIBAEgsBkEVhZBOrJ9hH/IBAEgkAQmH0IcCP+xhtvzA3U59cBtxRuKtxORF4r
ewb8Ua7e7zmkcleNYY+fMcZJOMZGHfTwS/GHj8qAjyo3ltrWt4ax1seOTXtdNiEv+dXbD0Zs1MdG
HmZq42/9umy1iTMHs7H6acefePpBPJc9WB87Ns6I9H5LNVP406JTCB2EmKM/EAdGmD0Ae9aIdmKN
58AeSh9t6AFaIPG1njndE4Mfc5/T2Koe2PExHrtrfBBz8rB9IK71daZHxJ6X7kaeCR/tzAzj8DeX
Pu6tiQ8vIHqRQH0CykgQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJB
IAgEgSAQBIJAEAgCE0cgBOqJYxXPIBAEgkAQGIlAdwP1/Gq5sg54n/Jc4XgizPBAJVezxgeBs8pA
iJWj6owf/NKeGI2/dnmm6sxRXZoPMzbruyYvvuyVfk9+xPrsGeQhxjjrV1Wz9znwYU8cZyAXOs9j
LnO4ry6DGvijtx99+/quiZu0mHDSgV0AOWjCXK7VuxcE9IKgj4dE74EEX2DMQ4xDXx9ONbV4Yvo4
9/hZ3xcBMfoyK/hCXMZfYY2P9dXjS+/o6cm1e2LQ2Sd5rW/Oqmq5mdFZv+/JPNj5zIs5X//614+/
5hpuf48EgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAI
BIEgMFkEdtttt8mGxD8IBIEgEAT+xRFYRqDmBuqL6hgmUEN6lvsJF5TRCzxTBjxSbHJN5ZVWVdPr
Ry5vX2bNTdDyTIfnamq++GmzBjaF3PaGH6KfcfiwZtAbAheWXvShjnH4I/jih3gG85hTPbHkQPq1
duKwi01fH58pC4lXhPTN9832etY2ywE8jPU5uID1QKknlhwCRLxEZOMEHT/Xddnq9mfFnzzW0Yc4
dawR67BGZx/ouQ3aOsTZK/l5gWBHjGGNH31b3zrYrM+sHj/8Ec+Jba06tq3vhDvu6quvxhYJAkEg
CASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBYJIIhEA9
ScDiHgSCQBAIAmUZgXr/CsX8OiRQw/dUWEukli8K3xQOKQRoeKHX1QEvFI6ppGTtckjVk0Muqjr2
DPOzJh5BRz3ysGa2PvHUpw/r60s8dusTi1gLf/OgQ6zPmngGNvKY3z6qqsVTX7s6fBjD9c2H32j1
0U9aSDpdodkedAFh9sACQC3txumDHj+ANLYuBw9NsNQxI+Ye7SzmJtYHZH3jrEkue7IXcjKIhQzN
Q2GPH8LaPOjYI8zksC4z+95unD7YrF+XLa866/sCxW/dOrZcsGDBCUuWeCTCIkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAiMh8BZZ53VXEKgHg+p
2INAEAgCQWAYgWUE6gOr/vw6/lEHfE84psNcVXTwRSEryyPFR5EAyozemXzm6vXmcIZXOtpanfWZ
1TEj1HDNnrXD+vRODcS+5brqQ0y/xq4QC0+W+sPS58FmL9TBxkx962o3zn11mbzQ8HTFJsnDGqEp
hjbqsJc0XJc3sXsgZh8YfgiH74nG6PADWMExv7Xck8tYZvSKNYkxD7MxfS4I1D4U4okdfjjkJwbB
JunausyIPuRA2GMzny8Y/eiZXJ6pLsv6dWweAjVQRIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCwOQQCIF6cnjFOwgEgSAQBG5EYJVVVikbb7zxflVz
YR3X1CHJGKK03FQ4ofJctcthdY8PYziGPVxWeKTamYl3bw58WeNLjLnwRS8/ti5bPH76k4uBD+Le
+uhHy9HXdN3H9Lnkx/ZnISf+1Ou5sf35sBGDDl9mxD32KQuJpyvksEGaYu2hnKmhvgeS5vHp4/sH
hR5Bx0NFfEjYzGU8+bALlPX7PMbQq/7a2fcPyjzoiENYI8QMx5OT+ozhXPj3euuTD5v52Pc41m2r
SX18IFIj69Wx+cKFC09cvJhSkSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgE
gSAQBIJAEAgCQSAIBIEgEAQmikAI1BNFKn5BIAgEgSAwjMDqq69eNthgg/2r/sI6uIFajiczHFAE
cic8VG+flpOKXU6q3FHj2bsmXoIoesnR2NGjQ8wnZ9b6zNbHz/qsrWF9e3XvjK95qC8P1vr4WV8b
Mcaj6/m/xlGffoy3Pjpt6BT11vCM2ic9U3hFCHkE1sPRnPmx9XrBxM7AxoAc7MHrsgl2c3lgdQLB
vq/vmhnBz7zkYKAzjtroIC+zJg4bQzGn+t4fHfkQ4u1LsrV7+8HP+trQWV+btbAZa2/rVN02l156
6XHXX+9rC7dIEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAuMhEAL1eAjFHgSCQBAIAstDYNkN1AdW+/l1XFkHvE+I0vA+5akywylF5Kmyhs/a+xOD
HTIoa+zMCnsEHwY27djQkY94ua7URrAh9sS69zcXdutaA1/y2Rd6/OSx1mXLZT7isSnWpAZrRB39
Ws+ejR+ur5857Bm/KYsATjlBF+gBPTz7vmkPy6yvhyWNOuwcsgeaPXYIxrzAzFGXzQ8bgxhJy/Rh
/bpsDwV7H4udPYK/8T4g9ORFsJObF4I5rMmMnTh82DPsuy5bjPnxRahvv+TUjo1YRF9mCeb4cgP1
lpVAfXwI1BWJSBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQmAQCIVBPAqy4BoEgEASCwAgEuhuo51fD1XXIV4UHypoZcYb3eV0dcEHlh0q4rqoW09sk
LZMLveRofK3R81T1I7f1sVsfrqr167KJNdjgR4/yXrW5N7812bNGmNkbTy7PaDz1Pa9x5mBv/bps
oo14zo+dGV907KclNjGdJMMN2Sg5WdOoAAAOoAqSh2bGVwA9uORiDmqvrvXHBxs1iGMvMNapqibY
rI/COGZ7w4c85IewbP/sEc/CnjrWx+beGOOxUcPczAg6RBu9YSOP9euy1WTf+69f95svWLDgxCVL
KBcJAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJB
YKIIhEA9UaTiFwSCQBAIAsMILLuBer+qv7COa+qQHAwPFIGTChcUPioC0dM1e9ZwQhn4EQdPFL0c
0j4GGzWYsRNnvt6mTv6s++o+8DeWOOvjRwwzdbExO7BR37zmYLa+8ejkwtprVbW+zW09fNG5x18f
a1fVoDf7Ig7fKQsJpis2Tx4O72GZaRTxMKz7w7HuY/ATNHzNbZ/6CwD++uDfPxh90SP4MaxvXeuR
ExukZ2Z81TEbi7/167Lp7QObZ+VhkksxB3bE+tbr9+azTh+LP/t16pizcOHCeYsX024kCASBIBAE
gkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgYkiEAL1RJGK
XxAIAkEgCAwjsNpqq5UNN9zwgKo/vw5voIbbKQG5LgeEZTih6OWC6iOfteedEieZmjW+8FfNIb+V
2XrY8ZOHii8iuZS9/nJh0fXDWOLslbW51LOnrvmYrS8fF191zAh+1ECs65rZ+sZRA8G3z4GOfd8X
ukmLSScd2AXYiLlsVn3fJOAIrH6kci2gxLrWBhisfTG4d7Z+dWngqDeeGfKx9fWzT/yx8RDU+UCw
sSaHDxsdYh1me3BtHvU9WZpY9MaT3/q9jprssSOehxuo5yxatOiEG24gLBIEgkAQCAJBIAgEgSAQ
BIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBILARBEIgXqiSMUvCASBIBAE
hhFYdgM1BOoL6oBA7c3TuELqhB8quZM13NPeBy6ooy4H/FTWCP7YneGQEm8uZu2stbG2PrGIvtZ3
j40cimvs1sXGGv4v8fJbzUEMa23G4mcfxrDH3705mBFzubYf9nJs+1jPh33SYtFJB3YBNOOB+4PZ
uM0SwhoBBAnBPUDkYRCrnj1xxmBDh/hQ2LN2b218rImur8nDRMiLjzbW+JLLWGzs9bE+fuRhz9p9
XbY18eZAR7y9Wt867vVXj7/1rYVu3Tq2WLBgwYlLllA2EgSCQBAIAkEgCASBIBAEgkAQCAJBIAgE
gSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgsBEEQiBeqJIxS8IBIEgEASGEVhGoH5K1V9U
xzV1yCGF+ylRGR18T8nF2BBmBjYGPFa5rNqIhU+K3jzM5qrL8s86iMcPG6LP0t2N9eWh6kMd4qzP
Xh9yMMyrLzr6wQ+hPj76kUsf19iMMW9VDTi5+Hlm8uLDHjEvOtaIvbhuyqn8QeHpig2ax0Obm2YF
1RlfD008awBSB1HYA2PH1ufBrv9wfffMCHH6M7NHsJvTuuipix9Cv9rQ+3DMRw7r4cewrmvrO5Nn
2MYePcLMTdUI9ewTvX0xr1XHVgsXLpy3eLFHqppIEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAuMiEAL1uBDFIQgEgSAQBJaDwGqrrVY23HBDbqC+
sI4r6oDjCbkZ3iekTnihCDr4rnBBmbFLfCamH3U74LiiN08fjx7Rxho7emb4pdrowfrUtT46+7N+
VTWdsdYnznMRjxCrH2vro6M+sXJpsaEXF3EgjoGvMrw3zr7ZI/i5boqp/EGS6YoNe1jBZO/aOux7
f9YejD56P/YIMeQSPA6Nn/nNIbm4mhowPgTjmRH8WZOPtQCzRrQz93ZfVMSi97ysOQOkZ9ZIn5+1
vthcW19f9eZgZmj3PORAv34dcxYtWjTvhhsoP3FZ9LdVym8uWaUs/Fsp1/JlGAkCQSAIBIEgEASC
QBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIArMMgbUqW+eOG5Ry982W
lE03gGIzOQmBenJ4xTsIBIEgEARuRGDZDdT7Vs3FdVxVBz+I4KMyWDMgd8L3hB/Kuid76o8OPmm/
x7/Po62qm15+KcRmuaf4DA9yWJ+19dHpa/2qGvQsXxcffO1FH2qil1itvp9Zkxtf85kHHbkRdNgR
dOy1W19ffBBq21dTTOUPEkxXzGGDw42TXx/W2AEFHTHsObB7Zod2ZkFijV2QWCPoGcNEY2z2hK/1
1flg7INZP2L7/D4kdPajHV+E+gi96E9OBN++nv2ayzPhb4yzvuRgrF3H1pMhUC+uGX7wx1XKby8x
Zc0QCQJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgC
sxyB7TZbXHa585Ky6jCTZ4xzhUA9BjgxBYEgEASCwJgIrLrqqmWjjTbiBurz67i6Dnix8DwV+KAI
s0RidRKf3TMzIHe6rssm5HTwU45YBB17+bjMiD8JycOaGZvc1boc9GO/+LDWRz2+5nBtPetbRz3+
DHMw40Nu1u57Iqt6fcxZ3UfkIsY6xExLaHK6YsOC5MHdk591f1h0ffOCg15fDomem51lqRPT59dX
Pf7UYc/MHmGNL2NY0OEn8RpfY8mDnl56u/X0tZ5zdR9RSz976PuwFuc0vn8Rorc+ecV7vbreasGC
BccvWULY+HLmOSFPj49SPIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJA
EAgCQSAIBIEgEARmIwLb3WlJecC/SRca/wQhUI+PUTyCQBAIAkFgdASWEaj3r9bz67i2Dn4AQeaE
HwrnFd4nfM9/1iFPtC5H+OEvARR/xB9k7s2pL7M+rK2jjlrWh/dqfXwR/eSx9np02Jmtr19VDXo1
hhl/Oa/4Up9Y9cP8X2z4OcjB2rrmZo/ot3S39E99nHvbhNckXlHCoWmGQV5mQOkfDjr8eukPh733
F1RiBHU43lzoibcGc09+Ji9ivGdnbw8A7kPr4+mjP0vdNjEHG+wIcfa9Zl1Tlz58mNisV5fNlz19
WF+ytnHEmBMdsm4dW1566aXzrr+e19fYsuhvq5RTf+7Rx/aNNQgEgSAQBIJAEAgCQSAIBIEgEASC
QBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIzEYE9rz34rLpBtB3xpcQqMfHKB5BIAgE
gSAwOgLdDdQXVo+r6oArKlmZNYRNyJ3yRV3zQ0o+qbxWfNCxZ80MZ7TfY8dG/Gg/6PCVrMya+sab
czjePtRbg9n6zOSlJn7Doo5aDPyNJ44+7IXZmnU5OAd6cdGnr09exFpLdzfGu5/UPJxsUsHLnMlB
4zbNrI6DerC6HKwF0lk/fZgR7Ut3NwLkbc2C7AxIEIw9V5+XXADKzLAv+9bGjJjDtWci1vrmpI5k
Z2ZzE8taMTd7fdAZbz5qWd+1e2Kpv04dWyxcuPDExYsJH1tO+82q5bzL+hRj+8caBIJAEAgCQSAI
BIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEARmGwLb3H5J+f/uPj6X
hnOFQD3bnm76DQJBIAjMHARWW221suGGG3oD9TW1M3/4wANlsHftXo4rs/7M8EklG9dls+GDnpl4
CKD4GocO0Q+9JFHrYWftwFeuq/7M1pHjir95zYUPvuypw4wY77xUe2PNfo8PNYZzoqMec39OauLL
6Nd9/WqamgjW1KKXRtEwh1Jo1LysERpnIIKKD2t9seHDvn8hmJ8aPDhzMvdg1e1AyMEghlk/1tan
luu6bH7Y0VPfGPbUYlBfcd/XYY0Qo6AjFzp93VOfNaKdWb2x1oc4bQ0I1Ntccsklx9V5XDnx+6uW
q68zdFz3OASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJB
IAgEgVmHwDprLin77tpTmZZ/hBCol49NLEEgCASBIDA2Ah2Ben715AZqBK4nt1BD1mTNDB9UTig/
oND3e3Xo/QGmj6RP88FtVUcOBN9e9EEvHxVfidPWgbvq2hzO5COGWuRQ5Pait742ZvT6uOdMDPm/
nlfurGfGn/rkYLYX6qNDqOl+tPrNaaJ/mHSi/qP52SwzBxJ89cR4EOw9qOjRCRAHY41OAJg9cJ9T
X2Z8rD+cv5qa4MMD0G6N/kVhfmyK/diDeuv2s/n1JV8v1sJufUjRvgCsj59C3/gSY15s69fBDdQn
TOQG6k98d9WyeMlwO6XssN4PyRUJAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASC
QBAIAkEgCASBIBAEgkAQCAKzCoGz/3H/m/S76ipLytN2l4pzE/MIRQjUI+DIJggEgSAQBCaBwKqr
rlo22mijg2rI+XVcuSxU8jA/iBjyVZeZmw5OKIKdtXv4oZCvFX+YkQMf7ORH5Jqiw977wjdl75A4
yoyOXK7rclCfuD6/OfFnrZ1Y6tqTdapq4IeNQW/4EsMwFzri1DH3+et20BcxiDGurdGMU/mDoitC
zENDHshDk99GsXkIAWXGDmkYOy8AicYAgpjXF8KaVecLDXtfn/z4E6u+LhvY2KyvDzMDIjNCXuqj
c67LFkd9xPr2Rx1rkR9h1s6efOqsqZ09ORHq04v10SH2TR18GVsvWrRo3g032FbVLEdCoF4OMFEH
gSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIzEoEQqCe
lY8tTQeBIBAEbhUIrLLKKmXjjTferx7mgjquqwPO57V1wAuVONyTi+GGsocfij+cUPzghBKLDWGW
j8oeH23o2TOsg02uK3lZYyd/n9c81Ien23NS8WOQn3zYFPTEYtOOj/WxW3+Y/4ufecmhr/xfbdU0
8FNHLYQ9edjbMzrXdTk1scDUopdGCQK5GDTGUNQzcwhEnaCqYyafOfD3QaB3LxjkwW4e9oj1mYkz
h/o+Thszdh9kXba9vaKnrn2Yw/rM5qrLQaz18Sf/cBx2hNn6TbFsT05i7Ms+1qu6rRYsWHD8kiUe
q2qWI+MRqPfaa6/lREYdBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJA
EAgCQSAIBIEgEARmDgL/+7//25oJgXrmPJN0EgSCQBD4V0Ng9dVXLxtssAEE6vl1XF2HvFZmBrxW
BIInPFB5rsxySZn1q8sWZzyzvFJsxrFGjDMX/tRhb315q+jRsTeONdLvjXWmvjmIt1afhxzssduv
8dgQ9NjpA/I0/g7quybOUZcDPWviEX3dL9VO4U8SrQgxD41zUMRDMCM9AOo8CHYPYw5AgSyMaNOf
GXufUz9vkmZvD6zxZe8LxFzskWFfanoTNLbe3/qSmcmBDj9iXDtX1YAALT7YGO7xIR4xr2exPnXw
J26tOra59NJLj7/+el5PY0sI1GPjE2sQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSAQBILA7EAgBOrZ8ZzSZRAIAkHg1o7AJptscmA94/w6rqwDzim8VniekDrh
eqqTG1pVTbipGbs3QWOXE8uaOEavxw53VD1rpPfHRl7rG8+sf10O7PjRrzngrrJ27xofcpMDHdLn
w2Zf1KdXebDoEfyN96zM5EbwIwYxl7Wsb6/4kMvc7Cct/QEmHbwsgIZsxBkT6z6/B9Bm4/hwSP2N
ERhfRMYJbA8MMeQzFzbizMWsrS5HrAWUGXEmHzm0mwO9LxJ02M2tb1U1PfGIfp6z98PHfvE1n/W1
9zmov04dWy5cuHDe4sW4ji0hUI+NT6xBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJBIAgEgSAQBIJAEAgCswOBEKhnx3NKl0EgCASBWzMCq666atloo432r2e8oA5uoIYH6oCY
DOeTAecVPSKxGR2CXh/26CGEolPc93mMx0e7NdBZHz6qceS0fk86tT4zegZxw4Lefvt4dc7EUbPn
wqKzDnp7RWddZ/OwV7Sx79fapzT3BaaUYFnQ8IFQAxD5GRyIARm4B65uB3rW2ATenAKFHTHP0t3S
P/VlZzx+1kfPA+FGZ+v3Z6cv9viwRpz7cyy13GgzhzXZs2Ymzrx12fbeaI3dWGb8iLO+uqpq59Xf
Gf9169iy3kA9LzdQA1MkCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJB4F8BgRCo/xWecs4YBIJAEJjZCCwjUO9bu7y4jqvqgJyMyF2FQwonlL0DHVxRZgS7
e3wQZvQInFHWDHijzOaqy5aHeETSNGviqMEYzd9aw/0Qh83+3JObi3/tqy6b4EdfCD72wkyeYX90
5FTY64tOG3Gsra+ffeE7bbHYdBOZhyZ9SB7Kxnsb/gKFnj0HU8/ag5LP2Lps+j43OnMRA0kZ8Ixj
LXHaB0gdH1pdDkBmjZ489mVuYhH01m+KZXtyYrMWPuisj40c5MZmfXwYin1bXz9i9SOeG6jnVAL1
CSFQC13mIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgE
gVs7AiFQ39qfcM4XBIJAEJgdCGyyySYH1E4vrOPKOuB8InBGGXJA5YyyRy+v1L18VGzwRSVCE4cO
uzmwIXJJ0SPMfT3r97H4WV9/8xLLGp6qRGj2+KNj7nsjL4IPvTCTw3rsEWzo5cGqR+foc1nLuD4n
OezfGPZTFkGccoIaSFOCQB7XNo4Occ/ci/4e2AdAXnX6s8dfm2tz4MdacJz7OOujQ9izxpdYCNC8
AOhDHXYH/tZ3bU18WGPHRg4Evb7u0SmsibG+LzrqE4ed4XnwXa+OLRYsWDBvyRJcxpZPfHfVsnhJ
X3Kp/w7r/bAt9tprr7ETxBoEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJBIAgEgSAQBGYAAiFQz4CHkBaCQBAIAv/iCHQ3UF9Yobi6DnifcDz/uWyuU9NB8JTkqQ97
+KKIM7qePC3hEzuDPfNwvqpqNnLDLZUAjb73J9762szJHsGOjhrMinHk60V/cw/zf7Er1mJ23XN0
8evryJdFT1329NXL8L63jbumiemKOTwQD4CmhhvuD4qvB+3jBd14c9GjMejIxUNm3ceTEwI08QwB
w4dh/uFc1dR8+57x5WGiw59c5JdYLckaG+L5qI8Qh6817YXZXPTPQJitz976fTx28hO/Zh3bLFy4
cN7ixajHlhCox8Yn1iAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJA
EAgCQSAIBIHZgUAI1LPjOaXLIBAEgsCtGYFVVlmlbLzxxtxAPb8OCdTwPSF0yo9lRodIbIZzel0d
ckaxIXJijcfPfKzJpUDSlnsqx1Q7e+uTy/rqyGW8tqoa8GOJYVgfG4IOQW+vTbFMR35j8KU/e0LP
2p7tpaqaaJdzq93+sNtTv9a+LM3kJhKtCDEPsw0xQ/S1adbYORjzaOCoN0d1azmYyTOcA7B8UeFD
vEIOazBjI976xLrGRn7EB4CuH56nz+Ft1fbFjJgPOzWoj43hOaxvrGdGj1i7t5PHM3ED9baXXnrp
sddfDwRjSwjUY+MTaxAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgsDsQCAE6tnxnGZ7l9dee22BILnmmtxzGQkCQSAIjERg2Q3U+1fthXVcUQccULmjrOWE
MstVrcvGeUUHV/TaOuCI6gu/VH/0xCHkRSSLajMOP9bmYs0gjhk7NsQc1IfIbYy++Mtz7eOwE8ss
j9Ua1kePbljMRyzkbWbqs7YvdMbqz4zeQR3Wff26nZqQaLpC832TNk5u9dTo1x7Yw3g4/Fj3oHJQ
H5A59McPmw/Jmsb0/jw49Agx+PZx1uhn4tkb59761TSo39fkweKD6EstfNg7D+s8T3VpeamHLwPB
biwE6jkLFiyYt2QJ6rElBOqx8Yk1CASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAI
AkEgCASBIBAEgkAQCAJBYHYgEAL1zHtOP/vZz8qVV145orE11lij3O52tytbbLFFWWuttUbYZvqm
XmpZnvOc5xTO8LGPfaysv/76M73lcfubP39+Ofvss8uGG25YHvSgB43rf91115Wvfe1ry/WDPLrn
nnuOav/qV79aTj/99PKXv/ylbLPNNuVJT3pS2WqrrUb1jTIIzFYEVl999bLBBhvsV/u/sA5uoIbv
CZmTGZFsDGcUHXxRBT8HevmmxMBZRdQTay5i8GXu81mjqpuN2Vza7AsbQg7EOvixpr5rZkSiMzF9
f9jwYZCf2R7Niz+6YXvv19eUL6t/DR1gytr6w+fBNinxcJMKGnL28ALjQzG3+h4YD+7MQTzUUPoB
oOgFqQdmefUFkRquyWEf5LI38uFjP3XZ/DyDe2IY1re2fuToH7o10OuDDult5IN0bf0+r3HM5GHg
D4F6y4ULF85bvJjt2BIC9dj4xBoEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSAwOxAIgXrmPaf/9//+Xzn33HNHbWydddYpD3nIQwo+a6+99qg+t5Ty1FNP
LZdffnnZZ599Rtw0/dvf/ra8+MUvbm19/OMfL5ttttkt1eIKqfvpT3+6HHrooeWKK64o97rXvcq3
v/3tcfOed955Zeeddx7T789//vNN7M985jPLKaecMkLPLd6f/OQny8Mf/vAR+myCwGxGYNkN1AfU
M5xfxzV1QORkwAPthzq5oHBMsSPY0DtDVJZHao6qaoIP4mwO8slrVdfH4s9e7qoc36oa1MIHO6Rr
fc0h15U9wkzP7o21L3wUc7AnD3GSwdEh5rK+Ombi0SN9XWPsYanHJP8kyXTFRswDwddD27wAYRNg
CcPY8GMvgOQU9LpsdmJ5caxRh/mIw5e9ZzFvVbU482DHZn3y2CfxfNaC5Gd8qYfggxBLffysX5eD
+tSxBnp7sz4zOXzxWR9f8vE2K+vja/26bGLv+OHP25rmhEDdsMkfQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAv8iCIRAPfMetATqxz72sWXjjTduDV58
8cXlF7/4RVm0aFHb77TTTuXNb35zu9V5ppzg2c9+drngggvKZz7zGW6SHdHWj370o0aqvve97z1C
P5s2f//738srX/nKctJJJw3aniiB+swzzyx77bVX2W233RoBfpBg2QLy6CGHHDJCfeKJJ5YXvOAF
5Q53uEMBW7D77Gc/Wz71qU+VTTfdtJxxxhntBuwRQdkEgVmKwCqrrML3O26gPr8OuKVwU+F2InBJ
WTvghF5XR88hhWOqvS4HfFd1zMRJOGZNHfTwS4mHc8qAjyo3ltrWt4ax1seOTXtdNiEv+dUTxx7B
Rn1s5GGmNnbr12WrTZw5mI3VTzv+xNMP4rnswfrYsXFGpPdbqpnCnxadQuggxBz9gTgwwuwB2LNG
tBNrPAf2UPpoQw/QAomv9czpnhj8mPucxlb1wI6P8dhd44OYk4ftA3GtrzM9Iva8dDfyTPhoZ2YY
h7+59HFvTXx4AdGLBOoTcgM1sESCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAkEgCASBIBAE/hUQCIF65j1lCdTHHHNM2WqrrUY0+Ic//KEcdthh5corr2xk3De84Q0F
8u1MkLEI1DOhv+n2sMcee5Rf/epX5a53vWt52cte1m4BnyiB+vOf/3w5+OCDy5ve9Kbywhe+cNxW
Lr300rLLLrsUSNsQph/2sIcNYp7+9KeXL37xi2XfffctRx999ECfRRCYzQh0N1DPr+e4sg54n/Jc
4XgizHzDk1zNGh8EzioDIVaOqjN+8Et7YjT+2uWZqjNHdWk+zNis75q8+LJX+j35EeuzZ5CHGOOs
X1XN3ufAhz1xnIFc6DyPuczhvroMauCP3n707eu7Jm7SYsJJB3YB5KAJc7lW714Q0AuCPh4SvQcS
fIExDzEOfX041dTiienj3ONnfV8ExOjLrOALcRl/hTU+1lePL72jpyfX7olBZ5/ktb45q6rlZkZn
/b4n82Bfr4459R1ax99wA6nGlk98d9WyeAlhI2WH9X7YFLxbKBIEgkAQCAJBIAgEgSAQBIJAEAgC
QSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBGY6AiFQz7wnNBaBmm5//etfNxL1tdde
W/77v/+73OMe92iH4MbiH/7wh43YC8m3l49+9KPll7/8ZSP+brHFFs106qmnlm984xuN2Pvzn/+8
/OAHPyjz588vRx55ZLnLXe7SfC677LLyve99r5x11lnld7/7Xdlss80agfipT31qWX997qwsxTy/
//3vy3XXXVe22267svrqq5d99tmnkbzx4ebm9dZbr/zHf/wH2xFy2mmntfxnn312WWuttcp97nOf
8oAHPKDsuOOOI/ysA1H7j3/8Yzn99NPbfPvb37486EEPKk9+8pNb3RFBK3Bzt7vdrTzmMY8pRxxx
RDn//PNbzYkSqN///veX173udeUDH/hAedKTnjRuV1/4whfKM57xjLL77ruXk08+eYT/eeedV+5/
//u326ch1Pdy0UUXlaOOOqr89Kc/LX/5y19a/Ny5c9vt12uvvXbvmnUQmFEILCNQcwP1RXUME6gh
Pcv9hAvK6AWeKQPyJzbIne4leqLXj1zkRFhzEzR+xvZzVTdf/PTRjk0hN/re5to4fFgzJKrChaUX
fahjHP4IvvghnsE85lRPLDmQfq2dOOzkZN3Xx2fKQrIVIX3zfbO9nrXNcgAPY30OLmDkYOCvnjU5
BIh4icjGCTp+ruuy5enPij95rKMPcepYI9Zhjc4+0HMbtHWIs1fy8wLBjhjDGj/6tr51sFmfWT1+
+COeE9tadWxb37lz3PXX+3WBy+gSAvXouEQbBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIEgMLsQCIF65j2v8QjUdPyf//mf5etf/3p53vOeV57whCe0Q6h7
61vfWnbeeecRB+Om6u9///vlPe95T4EIjHzkIx9ptxv/27/9W4GIu8oqq5Q111yzvPOd72wk6b/9
7W/l+c9/foFEDSF64403LtyMjGy55ZblXe96V7ntbW9bPvOZzxQIv/gtXry4bLLJJs3/aU972uDm
5Ec+8pED35Zg2R/HHntsYSAQrOFuQQynFwjHEIgV+73vfe/bCNfrrLNOq4c/sueee5ZDDjlE9xU+
g9+uu+7a8v7mN7+ZFIH6jW98Y3nve99buIl66623LpDFL7/88kYw33bbbW/S63/913+Vt7zlLeU1
r3lNefnLX34T+w477FAuvvjics4555SNNtqo2SHWP/7xj2/EaZ4PzwYdz+QhD3lIOemkk26SJ4og
MFMQWEag3r/2M78OCdTwPRXWkDvhe8oXhW8KhxQCNLzQ6+qAFwrHVFKyduIQ9eSQi6qOPcP8rIlH
0FHP+szWJ5769GF9fYnHbn3yINbC3zzoEOuzJp6BjTzmt4+qavHU164OH8ZwffPhN1p99JMWkk5X
aLYHXUCYPbAAUEu7cfqgxw8gja3LlgOwBUsdM2Lu0c5ibmJ9QNY3zprksid7ISeDWMjQPBT2+CGs
zYOOPcJMDusys+/txumDzfp12fKqs74vUPzWrWPLBQsWnLBkiUcibHQJgXp0XKINAkEgCASBIBAE
gkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQmF0IhEA9857XRAjUp5xy
Sjn66KPL3Llzy6te9ap2iKkSqCErP/3pT2+3FN/mNrcZAAKR+qtf/WojMR922GGNXL1o0aICGfjc
c88thx566IAgTRA3Q19wwQWNUL3BBhsM8rAYjUD97W9/u93mzK3T3EzNjdMQqCGG/8///E9ZY401
GuFbgrEEavqFKE1OyNPcTP3BD36wka4//elPl+HaIxpZQZvJEqh5phDNITh/8YtfbKRmW4EMDbkZ
4rnyghe8oHCjODdXc7P2sEAW58Zwno9keV4HxxxzTHnxi19cIMyD0yWXXNJeI5DbwXWnnXYaTpV9
EJgRCCwjUB9Ymzm/jn/UAd8TjukwVxUdfFHIyvJI8VEkgDKjdyafuXq9OZzhlY62Vmd9ZnXMCDVc
s2ftsD69UwOxb7mu+hDTr7Erw/xf9cx9Hvb2Qh1szNS3rnbj3FeXyQsNT1dskjysEZpiaKMOew5i
w8N2D8TsA6vLJhy+JxqjxA9gBcf81nJPLmOZrV+XLQd7YszDbEyfCwK1D6UuB2czDh35iUHwlXRt
XWZEH86AsMdGDPl8wehHj+TyTHVZ+DyJzUOgBopIEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCwL8KAiFQz7wnPREC9a9+9avy0pe+tMyZM6fdJM0ppkqg
5nbiV7/61TcB4qqrrmoEZUjV3ECtQADmJuvHPvax5UUvepHqSROouSn7tNNOa4Tfvfbaa5CHxbvf
/e7Ca/OZz3xm2XfffZtNAvWDH/zg8trXvnbgz4WZkIy5MZtbse91r3sNbCtrMVkCNcTp008/vZGa
n/jEJzZSOjdIQ6o+77zzyvbbb1++9KUvtVu46VmCNDd7P/CBD7zJMSCrf+5znxtBsH7qU5/acoDd
AQccMIgBl3/84x/ldre7XSPBDwxZBIEZhACE/3rL/X61pQvruKYOScYQpeXDwgmV56pdDqt7fBjD
MezhssIj1c5MvHtz4MsaX2LMhS/6nueKDj/9ycXAB3FvfTmtwzn6mq77mD6X/Nj+LNTHn3r0ZP3+
fNiIQYcvM+Ie+5SFxNMVctggTbH2UM7UUN8/DJrHp4/vQUaPoOOhIoKEzVzGkw+7QFm/z2MMveqv
nX3/oMyDjjjEn6zEDMeTk/qM4Vz493rrkw+b+dj3ONZtq0l9fCBSI+vVsfnChQtP5CMLxpPcQD0e
QrEHgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIzAYE
QqCeeU9pIgTqH/3oR41EvN122zWyMaeYKoGaG4uHCcw9Ktdcc02BsH3FFVeUK6+8svzud79rNx8/
/OEPL6985SsHrpO9gZpbr7kh+dhjjy2bbrrpIA+LM888s910vfvuu5fXv/71zSaBGnz23nvvEf5H
HHFE4Ubrww8/vOy6664jbCtjM1kC9dy5c8tvf/vbcuSRR5YDDzxw0NKll15aHvWoR7Wbu4877rjy
6Ec/utn22Wef8q1vfatwo/ZDH/rQgb+Lgw46qN28/bGPfaw87nGPa+qTTz65POtZz2pkdwjYENx3
2223csc73tGwzEFgxiLAmzTq7fH71wYvrIMbqOV4MsMBRSB3wkOFVI1OTipr/BC5o8azd028BFH0
kqOxo0eHmE/OrPWtSX3E+qytYX17de+Mr3moLw/W+vhZXxsxxqPr+b/GUZ9+jLc+Om3oFPXW8Iza
Jz1TeEUIeQTWw9Gc+bH1esHEzsDGgBzsweuyCXZzeWB1AsG+r++aGcHPvORgoDOO2uggL7MmDhtD
Maf63h8d+RDi7UuytXv7wc/62tBZX5u1sBlrb+tU3Tb1B9JxfAzEeBIC9XgIxR4EgkAQCAJBIAgE
gSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAwGxAIgXrmPaWJEKjnzZtX
Pv7xjxduNn7BC17QDjFVAvUrXvGK8ohHPOImQPzpT38qEHS5Ofnqq6++iX06BOrrrruuEXxXW221
RgQeTj5//vxy8MEHly222KJ89KMfbWYJ1KP1y83TX/nKV2YsgXr4fP0eUvU73vGO9hwhgCOHHnpo
u1n8ne98Z4FoPizcGn722WeX73znO+We97xnM//zn/8sRx99dLsd/PLLLx+EQNA+7LDDyg477DDQ
ZREEZhoCy26gPrD2dX4dV9YB7xOiMrxPearMcEoRZvYIfNbenxjskEFZY2dW2CP4MLBpx4aOfMTD
MbV+XTYb87BOf3Nht641iCOffaHHTx5rXQ56Ih/x2BRrUoM1ok5/bPZs/HB9+zKHPeM3ZSHJihIP
6OHZ9017WGZ9PSw9qMPOIXug2WOHYMwLzBx12fywMYiRtEwf1q/LBjD2PhY7ewR/431A6MmLYCc3
LwRzWJMZO3H4sGfYd122GPPji1DffsmpHRuxiL7MEszx5QbqLSuB+vgQqCsSkSAQBIJAEAgCQSAI
BIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIF/CQRCoJ55j3kiBOrXvOY1
5cc//nEj2j7sYQ9rh5BA/eY3v7nssssuIw72qle9qvzkJz9p5Nq73e1uzTYWIRkH8nz3u98td7nL
Xcoee+xR7nrXu5bb3OY27Qbqd7/73WU6BGry77vvvuUvf/lL+cxnPsPNs6gG8tOf/rSRfnfeeefy
1re+tenH6nc2E6g5P8+cW8A/8YlPtLN+6EMfKq9+9avLS1/60vK6171ugIsLngXYXXjhhWWddbg7
9EbhlnBI72eccUb57Gc/WxYuXNh8fv3rX5fb3va2NzpmFQRmEALdDdTza1u8Y0O+KjxQ1syIM7zP
6+qACyo/VMJ1VbWY3iZpmVzo2TMj1uh5qvqR2/rYrQ9X1fp12cQabPCjR3mv2tyb35rsWSPM7I0n
l2c0nvqe1zhzsLd+XTbRRjznxs6MLzr20xKbmE6S4YZslJysaVQAAAdQBclDM+MrgB5ccjEHtVfX
+uODjRrEsRcY61RVE2zWR2Ecs73hQx7yQ1i2f/aIZ2FPHetjc2+M8dioYW5mBB2ijd6wkcf6ddlq
su/916/7zRcsWHDikiWUG1tujTdQ33DDDeXEE09sP1T333//suWWW44Nwiyw/v73v28fY3GPe9zj
Jh/bMQvan9Ut8nV02mmnlcWLF5etttqq/SI90w7E64NfIlddddXCu/JWlpx33nnl3HPPLbxLir9M
8MM+EgSCwMQRmA3fTyZ+mul5rszvW+DMR27x8Vj8ZXqNNdYo/CPL8F+0p3eCiUfne+fEsYrnykXg
2muvLd/85jcL79B/4AMf2H6vmUzFlfl1O5k+bilfvrf89a9/LWuvvXZZd911b6k2UjcIBIEgEASC
QBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBMZBIATqcQC6BczjEag/9alPtduJ4SJwQ/Rmm23WunzP
e95TvvjFL5YDDjigPO1pTxvR+ZOf/OT2fx74TIRAXS+iLAceeGDjOZxwwgkjCM5wjLgVenkEavw3
2WSTEfUf+chHNvIuZGHl9a9/ffnBD37QiNrDhG9ycLb99tuvPOMZz2ghs5VAzc3Q3BINj+ass84a
gSUHe+Mb31je+973lje84Q3lJS95STsr/0fFM4N38/3vf7+sueaaTc8f3/jGN8pTnvKUsvnmm7db
qAeGURbc9I0vN1VDsH/mM585ildUQeCWR2DZDdT71U4urOOaOiQHwwNF4KTCBYWPikD0dM2eNZxQ
Bn7EwRNFL4e0j8FGDWbsxJmvt6mTP+u+ug/8jSXO+vgRw0xdbMwObNQ3rzmYrW88Ormw9lpVrW9z
Ww9fdO7x18faVTXozb6Iw3fKQoLpis2Th8N7WGYaRTwM6/5wrPsY/AQNX3Pbp/4CgL8++PcPRl/0
CH4M61vXeuTEBumZGV91zMbib/26bHr7wOZZeZjkUsyBHbG+9fq9+azTx+LPnrfhzKnvtpnHD6rx
5OYkUH/+858vv/jFL1pLfNzG8C8X4/U6UTs/dPmoBmTXXXdtP5QnGjtT/fglAuIqwi9ts+ljKHjn
F78E8gvU7W53u/L85z9/psI8al/c5M7HiyD3ve99C78EzzT50pe+VH7+85+3tnhX5sqSb33rW+XM
M89s6Q855JCQh1YW0Ml7q0VgNnw/ubnAX1nft/ha54UUAABAAElEQVTd57jjjisXXXTRiKPws2fD
DTccobu5NvneeXMhnTrjIfCjH/2ofP3rX29u/E72nOc8Z7yQEfaV9XXbF7niiivaP4T69xi+brmd
YCzheytfZ4sWLWpu/P7PzRHLk8n68w+df/jDH9ptBvyjHMKtEXe6053a3zX8R9zl1Ys+CASBIBAE
gkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEARuXgRCoL558Z5ItdEI1PxfADwYbhaeN29eSwMPYc89
9xykPPXUU8t///d/t3/3f+c73zm4MAnS8jHHHNP8Jkqgvvrqq8sTn/jEwqWM3IYMkRfh/xXhGF12
2WU3IVC/8IUvLFwwAzF69913b/7+MRqB2r7ucIc7lKOPPnpALOacEIm57OZtb3tb456QZzYQqOkZ
ojKXVr3iFa8oq60Gja00MvqXv/zl8tznPrccccQR7SI+9PDCHve4x5W///3v5Stf+Uq53/3uh7rw
fyxcesVFWBCsX/ziFzc9XKK5c+cWbpM+/PDDC3wyhNcHJHT+7+ikk04q97rXvZqeC28OOuigQu33
v//9jZTdDPkjCMwwBPhaqf/XeUBt6/w6vIEabifcUXmirBH2rOWC6gP5ExvD2LockKlZ4wt/1Rzy
W5mNwY6fPFR8EXwQ9vrLhUXXD2Pxt1fW5lLPnrrmY7Y+HFprqmNG0C/9BnNjXfTmt75x1ECw9znQ
sTeO/ZTEpFMKXhZkI+ayWfV9k4AjsPqRxrWAEutaG2Cw9sXg3tn61aWBo954ZsjH1tfPPvHHxkNQ
5wPBxpoc9IUdHWIdZntwbR71PVmaWPOQl/zWN6c12bNGPA83UM+pBIIT+KE/ntxcBGp6edSjHtVu
baMnfjHgB9rKkP/7v/9rH+lB7tlAoOYmu+OPP75BwS8Ro92Yzcd8nHPOOc1nNhGoeZcYvyjxCw2y
xRZblJNPPrmtZ8sfs4HweHMQmnheIQHOllft7OkTQj6ENz4W6aEPfejsaXyKna6s7yf8HPn2t7/d
uuIvoLwzd6bLyvq+xUdf8ZdlBYIj/0DB64tbY28JGet752x8drcEhqm5YhDgzVZ87SF8bXi7wUSz
r6yv274+N0z88Y9/HKg22mij8rznPW+wH15wWwS/W/7pT38amB7xiEcUPv5uNJmMP/9gx60Wv/3t
b0dL1XR8GsdjHvOYdsvCcp1iCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBmxWBEKhv
VrgnVEwCNf+PudZaa7WYBQsWFEjNyrOf/ezypCc9ye3Ah/8nuOqqq1rcjjvuWPi3fgjJG2+8cfnL
X/5SJkqgJiEX0v34xz8u66+/fiEX/xfA/59wG/Lf/va3mxCoIW1/9atfbeRh/Pfee++y0047td5G
I1BD+n3Tm97ULqbj/ya5pRni8G9+85vC/xXD/elvTJ4NBGr+H+ZZz3pWOzNEZj8V/Xvf+167CZpn
yGWEu+22WyOjc+kl5GluDAc/buFVfvnLXzYSNbiDJ6Ro/m+X/+eBLM3XLp+8rkBcf9/73tcu99tn
n30K/290xhlnFC4N4rIgniVcg0gQmIkILLuBGgL1BXXwzc6bp2kXUidfHJI7WcM97X3ggjrqcsBP
ZY3gj90ZDinx5mLWzloba+sTi+hrfffYyKG4xm5dbKzh/xIvv9UcxLDWZix+9mEMe/zdm4MZMZdr
+2HP+YnvYz0f9kmLRScd2AXQjAfuD2bjNksIa4RDcBikB4g8DGLVsyfOGGzoEB8Ke9burY2PNdH1
NXmYCHnx0cYaX3IZi429PtbHjzzsWbuvy7Ym3hzoiLdX61vHvf7q8be+tdDxedJb1F80TuRdN+PJ
zUWg5qMTXvaylw3a4VY4PgJjZQhkbcgXF198cfthPRoheWXUnWpObrTjIzqQd73rXWWPPfa4SSre
0cYvIne/+93LE57whJvYZ5qCX16POuqo8oUvfGFEayFQj4BjhW1uDkITzY5FAlxhh0mifykEePPI
BRdc0G4Gnm2300/lQa0sAvX8+fPbrcv09NjHPrZsv/32U2nvZo1ZWd+3IDv6aRf8A8Z22213s55r
tGJjfe+cjc9utDNGNzsQ4HsQ/6DEP1rxj3u3v/3tJ9X4yvq6tYmzzz67/cOYe+axCNQ//OEP2+8m
w28aXR6BerL+/IMdb8pA+IdTSNl3vOMdyzXXXNPe2Mjv5wpkdEjpkSAQBIJAEAgCQSAIBIEgEASC
QBAIAkEgCASBIBAEgkAQuOURCIH6ln8Gwx1IoO713GgMCRb+EBcyelNx78P6Zz/7WXn3u989+ATa
ddZZp13YyP+zccNxT6DmQkK4SK985SsbGXo4F1wWblPm0yf5fxME4i+Xpbz2ta8t/B8DtywrEHsh
8HIxGP8fwe3Ij3/845sZAjWfpAk/qRdubOZ2bMi9l1xySSMQb7vttuVBD3pQOeAAuJQ3ylj9cvM2
N3C/+c1vbuTiG6NWzooLZR74wAeWHXbYof3/i1XOO++89knt3KbLpV5cXqVAPucTT70QEj3/twNR
nL578rQx3DYOMfryyy9X1cjUH/7wh8vWW2890LEAc579Bz7wgcFlOuuuu2558IMf3MjZm2666Qj/
bILATEJgGYH6KbWni+q4pg45pHA/JSqjg+8puRgbwszAxoDHKpdVG7HwSdGbh9lcdVn+WQfx+GFD
9Fm6u7G+PFR9qEOc9dnrQw6GefVFRz/4IdTHRz9y6eMamzHmraoBJxc/z0xefNgj5kXHGrEX1005
lT8oPF2xQfN4aHPTrKA64+uhiWcNQOogCntg7Nj6PNj1H67vnhkhTn9m9gh2c1oXPXXxQ+hXG3of
jvnIYT38GNZ1bX1n8gzb2KNHmLmpGqGefaK3L2beqrXVwoUL5/nR13W/XLm5CNSHHnpo4WZo3ilk
X/xQvOtd77rc3v5VDBMhUM8mLH73u9+VV73qVeXCCy9sbfPLLu+o45fXEKhXzpNc2YQmux6LBKhP
5iAwGQRCoH7kZOBaru9sJOGurO9b/G5x/vnnt3eB88YtP0JqueDdDIaxvnfOxmd3M0CWEjMUgZX1
dctx//GPf5QPfvCDjZzMP3xyszOfYDIagZrfKz/3uc+12yWECvIyN1UgwwTqyfqb83/+539aX9yE
ceCBB5bhf4Q77bTT2i0H+PMPivxjXSQIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBG55
BEKgvuWfwcrogBui+f8ELjvpbymeSi3I03xSMrdY8/8S4wk3JkOMXm+99UYlBS8vnk+j5f88Zvst
yZLNOctoAtGc26UhV3Mx5GjE6T6O5/irX/2q3fo9Z86cCV2KRQ3+72irrbaa9vPve8k6CKwsBOAq
1DdZ8K4JCHRX1AHHE3IzvE/4ovBCEXTwXeGCMmOX+ExMP+p2wHFFb54+Hj2ijTV29Mx8IWujB+tT
1/ro7M/6VdV0xlqfOM9FPEKsfqytj476xMqlxYZeXMSBOAa+yvDeOPtmj+Dnuimm8gdJpis27GEF
k71r67Dv/Vl7MPro/dgjxJBL8Dg0fuY3R//dGx8fgvHMCP6syccaX9d1ObBj6+2+qIhF73lZcwZI
z6yRPj9rfbG5tqa+6s3BzNDueciBfv065tQf9POGb2PDYVhuDgI1t9zxbjHICwcddFD57Gc/2z5e
Y//99x9xK/Vwb6PteTcYxChIEhAqVoSAEx8VTr7RbuLjlyBuSN1ggw1uQpxYXn0+ogISB7l5hxTv
nFuerEgCNfhU8nz7xQ2SB2ca7xeT4b6mi/Hb3/72dls2eZ/85CeXQw45pLz0pS9t7+C7NRGoecYX
XXRRg2+TTTZpv1gPYznaHnz5xe7KK69sHzHDOxKJn4j8+c9/bh9Bw5sQ+EWed2PyfEcjNOFDDYSP
huHmxNGEX3TpCeGdesv7hRf7aCRA6vBa5+vcniZCWJwsDuRH+Cgd34jBLfPkAYdhDHk+fHQPdr4W
6G084dZ+YviLF+fya36qf/karWd/qee50TM1xhP+8sBHD/GXAf5ixXmW9zyHc1GPv5RxHuoxqM1f
8MCIs4HpaLKi8ehrcCa+P/LzgNcPf9Hk9k6E1w/7YZlsP6PhvyJeM/xMYPC1wtcMwnl47YAzf8Hm
L4ajfS3x9XbkkUe2GD7GiHcljyYTfeZ+/fKGlVNOOaWlmjt3brnHPe7R1uA42tcj+f0+xBn4GlpZ
f2mfzPetYSwm88z5fgf+o72mRnud4wsGfr3zzMb6vYKvF75u+uc+3O/yfEb73jnVZzdcczqvx+Fc
E33dDcfRA69/vkfx/YTfpfyHJp8L++X9LrQiX48rCo/Jvj56TGYSHn1frnlOfG2N9Uym83VrncnO
EKK52QB53OMe127K5ucDX5d8NF8v9AfZGuH7HP48M294GCZQT9afvPyjKR+bh/Dxet4m0RTL/uBZ
/9d//VerzT/W9h+51/tlHQSCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCNy8CIVDfvHin
WhAIAkEgCNwUAbg5lau0b7VcXAfELLie8FEZrBlwS+F7wg9lzVD0RweftN/j3+fRRix6cjIgNss9
xWd46Gs+6xOrr/WratAz/VgfX9f6kM/6+CLkQ5xZkxtf85kHnX7o+hzsteNjr3U5EHT2NVBOdkGC
6Yo5PMxw4+TXhzV2QEFHDHsO7J7ZoZ1ZkFhjFyTWCHrGMNEYmz3ha311Phj7YNaP2D6/Dwmd/WjH
F6E+Qi/6kxPBt69nv+byTPgb46wvORhr17H1TCJQQ2Z629veVtsqjdgEGYGPmYDQyEdjj0bugvAn
sYyPY4Bcc+yxx5bf/OY3jXRHLshOkHMhSfQCmWGPPfZo5BA+WgMSrwJx7aSTTirbb799IzzwkRF8
nDf5kS233LK87nWvax9rzkdp8JEY3C4HKQOBFASBgo8XGU34mA/O95Of/GRghjDEx3HwURx77rnn
QM8v7YcffvggtwbJmkccccTgI0WOPvro8olPfKLc9ra3Ld/4xjd0Hcy//vWvy/vf//7y/e9/v51b
w+abb14gqj/lKXwiwEiZDsYjM43cQaCmxze84Q3tOWDlY0zA5tZAoL73ve/dPl4eslgvnG2vvfZa
LlGXj3vn9c4N3b6ejOe1/LCHPaxsvfXWqkbMkPwgSUP+7AUyLK9/nj8fjYK85jWvaTOESr5mkOUR
f7Cdfvrp5Tvf+Q7LRkC6173u1daj/dGTAF/0oheVb37zm4U3AEAqVCAy8bW73XbbqRoxTwWHnvjE
1x+kJr7GeFOGwrsMIVBBCONrlo/D6XFGTyxfi6MJ724kDjJlL5yHGyXvc5/79Opx18M9Q7rk62I4
Pze087qRiNsnhjTNzf1gDNmtF74X/fu///uob/rAj9cnrxnIZ73wmuG1xmuJZ4/4mun9VjQefW7W
Rx111Ijn19vB/CUveUmvau8+nczzGcZ/Rb5mTj755PY1x8+wpz71qe3r4Be/+MWIfjnDQx7ykPbx
Rr1hPAL1ZJ8531f5Olye8OalnXbaaWCG4Ov3oeHX1J3vfOf2WqT3FSFT+b7V153Ma5CvdX72jCX9
6/xHP/pR+3kJkbQXbpndcccdy9y5c3t1W3/84x9vH7HF196zn/3sm9hRfPKTn2xvrIGQzkdVKf33
Tn5v4et9ss/OXMPzdF6P5prs6844Zj6mi9+j+p8D/B4DjvwuBrkU2X333dtom2V/rIzX44rAYyqv
D8810/CwL2cI7fxejYz2TKb7dWudyc78nPvMZz7Twvg5zce6fexjH2s/w8YiUPc/Q3kz5HgE6on6
0wg/P+kB4fso30+Hhe89/Dzjezu/yx188MHDLtkHgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgsAtgEAI1LcA6CkZBIJAEAgCIxDg/83r/3VyA/X5dVxdB7zYnvyzlIy4lGsqkVidxGf3zAz4
oq7rsgk5HXBHiUXQsZePy4ygQ8jDmhmb3NW6bHtq2S8+rPVRX1WDHK6tZ33rqKcmwxzM+JCbtXvq
K+r1MSf2Phcx1iFmWkLi6YoNk8umacw9+Vn3h0XXNy846PXlkOjXqIMH3tcxv77u8fehMrNHWOPL
GBZ0+Em8xtdY8qKnl95uPX3Zs3auyxG19LOHvg9rcU7jOSs9sUdv/boc4ADzaav6n/7HD5OjcBqW
m+MGam4VhVx2t7vdrRx//PHto65f/OIXt1Yg1kDgGBbIbxKoIaidcMIJI8g5vT+EZ4iECoQcc77s
ZS9rBGJtb33rW9tHftMLZGRIMsPCza6QSyAAD5Nk9eWGuec///lu23zWWWc13Vg3fxPj7XTcFgqB
e3nylre8ZUDW4CPEIcNCbIOc08s555zTCBveNtzbXPd11U0HY3OMNn/3u99t5FlIZsqthUANSRrc
eI2NJpBTn/70p7ebpXs7xBpew5CalycQ7fl4eG5X7wXCMQQeCO+jCW9AgFwE6QmRJMjX/3ve8552
CzWvaUh7o92I++EPf7i9zskDaZXbqpcnPQkQsje3wS9P9ttvv7LNNtuMME8Vh54Mu9lmmzUS44jE
yzbYuNEbQvlowvl5IwNvLOgF4hZvrBjre+bee++9XFJ4n8t13/Nd73rX8vvf/17TTWbeuMEbHXzz
BA68EQTCJnmWJ5A9IZkNn4c3hPCa8Qbm4Xje5cbrjDeJIL5m9FsZeJjbeSwCNeRSXq/KVPrp8V/R
rxkJmtzYzG27wyR1+wZn3sADMVkZi0A9lWc+HgmXn6PcdI3ws2nevHljfh8CK74Pjfa9wjNMZJ7q
9y1zT/aZT4ZA/dOf/rSRyK012szHSj3hCU8YYZoMgZqfBc997nMH8f33zokSqPtnN0g0ymI6r0fS
TeV1Zxtnnnlm+2QC98Mz39vmz5/f1MNk3ZX1epwuHlN9fXDImYjH8DPhTQP8boA86EEPGrzRjf10
v27JMRXhzVAf+tCH2s8sfl/hzQf8jj4WgZpeeUMab2pTxiJQT9afnHxt8Ps337f5tIhnPetZN/kd
iTd2fv7zn28t8ObMxz72sbaTOQgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEbkEEQqC+
BcFP6SAQBIJAEGgILCNQ718359dxbR1yPuGHwnmF97laHdxaKU+0Lkf4wRFlIPgj8l7dYyenvsz6
sLaOOmpZH96r9fFF9CMn0uvRYWe2vn5VNfA1hhl/zmkc9YlVP8z/xUZOBzlYG29u9oh+S3dL/9TH
ubdNeE3iFSUcmmYY5GUGlP7hoMOvl/5w2Ht/QSVGUIfjzYWeeGsw9+Rn8iLGe3b29gDgPrQ+nj76
s9RtE3OwwY4QZ99r1jV16cOHic16ddl82dOH9SVrG0eMOdEh69axZSX+zuM//MeTlU2ghjgD8RCB
nHnQQQc1Ehe3uEEI5SbU0W6NhPwmgZpYiAuQgLnREOEGTW5khjQFefSLX/zigNQwEQJ1S1L/gNzG
rdD0wi/R3uQJ8Q0yJTZIVHxT+/rXv14g5kDCgLjIrb3ens3tjRAZmSGgQpDixlr6O+OMM8qnP/3p
RlIlLzUghtAnpNdzzz23vPzlL28tHXbYYWXXXXdtawjIklmXR6BeuHBhI2RD9KZHSKu77bZbw4Qb
eKl70UUXtXxvfOMbRxA7poNxSziJP24tBGqPDCGSm5q5gZabfCHPS3TldsMnPelJhWeN8DriY+kh
+iA8V17Hc+bMaa87Pq5ewi8Eed4wwGsaIfbEE08s5513XttDyoMMCWGWerwxQVtzqH/0ZFhuL+ZW
cmSfffYpEHl7IccHP/jBphqNMNj7su5JgOz5uPr73//+jYzL1wXkfknVwzcxTgeHvk/qQlrldl/w
4OsH/L1FHjtfnw996ENbX7z+IcT5Zoidd955xK31kF+PO+649gYNvoYg+Ul4hYzF1zm9Qyjl+9cw
wZ16o8lwz/jwmuFmboi34MQbOHzjw/DtlrzBght4ka233rrhzHnpFz0EU2T4uUFK5I0qft3zHMjN
a+ayyy5rsZyrl/41s7Lw6OuxhtxNrxDP+D7max8bWIMRMtV+hvFfka8ZCZqtwfoHP5/4uuQ5XX75
5e2TEiDVIbwWeRMR3yuQsQjUU3nm3PrLa4jnzc9BhBvT73GPe7Q15+bNGUjfN68Hftbw+uBrA+Kn
hHpeo/7cboGT/GO637em+sy53Z2fuaO9pvja5jnxNfDRj360vfbQzZ07t3B7PXF8XfBz86qr+OSc
0kic3CStrGgC9WSenT2MNvfPFftkXo/4T+V1R1xPcufnHd9b+fnH643vb9xKzc8FZZhA3fe9Il+P
fV5qTwaP6bw+Zioe4u+8PAL1dL9uzT+Vmd+vfUPjwx/+8HK/+92vpRmLQD1anbEI1FP155MP+D0e
4fsBf2/hdx9+h+cNjPxexPcPvp/wBkm+p0aCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgC
QeCWRyAE6lv+GaSDIBAEgsC/OgL8H+KyG6gvrFhARIArKlmZNZxQyJ0QzBiu4ZjKJ8UPwY6OPWtm
OKP9Hjs24hnDgq9kZdbUN96cw/H2od4azNZnJi818RsWddRi4G88cfRhL8zWrMvBOdCLiz59ffIi
1lq6uzHe/aTm4WSTCl7mTA4at2lmdRzUg9XlYC2Qzvrpw4xoX7q7ESBvaxZkZ0CCYOy5+rzkAlBm
hn3ZtzZmxByuPROx1jcndSQ7M5ubWNaKudnrg85481HL+q7dE0v9derYohLSTuQ/9MeTlU2gfv/7
318+8pGPNDLpl770pQGx4B3veEf7qG5umvvqV786IMvZL+Q3CdTrrLNOu5kOomAvEK+5NRbhdmbt
EyVQP+UpTymvfOUrBykhj0CWlngIiYMbqyXC4sit1KeeemqL4SZPCam//OUvW48YuA177ty5zcc/
IDIfeeSRbfvOd76zEdy0QbqB+Iy8613vGnEboD7LI1B7ozZ+3OoN+baXCy64oOkgl3KrK0QQvkEj
08G4rzGR9a2JQA1JkufVvy4g7kHK47WHQJiUaLto0aL2NYAekigEG8mh6BAIfxIud9lll0b+Rc9r
8ZOf/CTLwtcBsZDBFL7GIf/6mkXfk2Ehgx1zzDHN/Z73vGd5/OMfb2ibTz/99EYQZsObCSC/jSU9
gRqSEDfVSvInDkLsBz7wgQIeCF9fkjeng0NPhiXf0572tMH3EupAvIKApfB1wG3hCgRdng/CDbvc
Eq7wPcTbocEHnHr52c9+Nvia500RvKliItL3jP9oN1NCWOV7F7ghL33pS9tzZs33GUjGEHCpyaxA
vOSWfG7H5DXFm1MUvuYhUCOQZ5/1rGc1H+28ZiDlQ3BU+tfMysLDWsMzvdIzN4cP3+qP71T76fFf
0a+ZnqBJbl5P/Y379P3Zz3528KaJnrQ/FoF6qs+cerxZie8FCDeg8nrrpf/643sTN7Hz81eB6Mpr
ke8ZyIte9KKbfJ/Sd7x5ut+3pvrM7Wus1xQ4SYbkDQ2MXvrvibzRizcfKCuaQG3e8Z6dfsubp/N6
JOdUX3e83ugdgbT/wAc+sK39gzf38L2G362QnkC9Ml+P08FjOq+PmYqHz8N5eQTq6X7dmn+yM68F
fj7zOuF7E99P/f1qJhCoOQ+/43/ta18b8YaA/py86e0Rj3jE4M1XvS3rIBAEgkAQCAJBIAgEgSAQ
BIJAEAgCQSAIBIEgEASCQBC4ZRAIgfqWwT1Vg0AQCAJB4EYEuJS1cmG8gZrbxyRy8p/oDPau3ctx
ZdafGbKfZOO6bDZ80DMTD4cUX+PQIfqhl2dqPeysHfjKddWf2TrwWRH8zWsufPBlTx1mxHjnpdob
a/Z7fKgxnBMd9Zj7c1ITX0a/7utX09REsKYWvTSKhjmUQqPmZY3QOAMRVHxY64sNH/b9C8H81ODB
mZO5B6tuB0IOBjHM+rG2PrVc12Xzw46e+sawpxaD+or7vg5rhBgFHbnQ6eue+qwR7czqjbU+xGlr
QKDephLzljKp6mYsWZkEasgQj3vc49oNopCQ+Hhu5ec//3kj9rGHvDd822VP7t1jjz0asdhYZ4iN
Bx98cNtCJIa8gEyUQM2ti9x62Askjve9731NxUecP+ABD+jNjYD8ile8oune9ra3FUjWExFuCJ07
d267pY6PJmco0yFQQ2DlBmNIYJC7RpOevM162223bW7TwXi0OmPpbi0EasjnENUhow8Lr2neJIBA
eIVs+/+zdx5gUlZn+z+oWGJF/cRCEYNorDEqGjUWxFijJvaCJbF3jcYYW4wl8bO3WBODBVDsXl+s
+LcHe4VYiDQVUIINlGL5n99h7/HsMLOzM7Mr7Ho/1/XuOeep59zvO7Or3PMMkhNwSxF08ckJsd26
dUvEZPR0Q4W0g/BaKib7oc/JUKxzMixrnmkIxJAl6YxOd1/Jddddl7rPQsKFMClyvezFY06g3nbb
bcOaa65Z7BLyrte8PtWNsR4ccjIsJG/I3rlA/rz44ovT64suzQcffHBuTvMrrrgiEbuLCce8zsGw
mFidJ7j88ssTmZmuk5DYmyP5niEyQw7OsVcOunY/9dRTaQkxv0ePHjI1OfKs8cwhOfH6mWeeKXTS
32mnncJKK600Sx7eI8FLxMb8mWktPGbZRIOiKbIrLrXuJ8e/pZ+ZnKCZd0vNzwi5HZI7r23I/Ppw
S1ME6jy+1LzcPce3Egk3f3/i2xL0eyCvk/vQRX/FFVfMzc2e1/u+Ves91wYrPVPyKzXyoQVe70hO
fGfdFgjU1T6PnKuSlHvu+DAYzznv8fpbrDhX3lk4J1Dnz1pLP4/1vD6L91+8bur5mFPxKD5D/jfD
RhttVPjQXr2v2+I6zVnzO4hvk+HDRJCm+f3auXPnQuicQKCePn166tD/4osvFj4kV9hgw4T3Uzr6
8wE7ixEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIzBkImEA9Z9wH78IIGAEj8H1GICNQ
j4k40IEages5I17wPJkzwgcVJxROK/p8LR165oh8iEeUD26rdORA8M1FPujFR8UXQplqMcJdVU3l
0BhNaY/UIodE3F70qi8bI3r5aE0tLurn9cSdxSbBTg5G7YX66BBqal2qfnJq7g8lba5/KT9tlpED
CXzpidFBsLNpbBwCPToBhI45OgHAqAPnOeWrPKpfnD+GJyEPN0B21cgfCuXHJtF+tAfpVTcflV++
5MtFtbCrfsc41wOg+vhJhBExyottoXjRgXrg7O5A/cILLxSIjMUk6ZxcvcYaaxS6w3IAJCf3Qjws
RVocN25c6rSJ/ymnnJI6PzNvDoGaLr5DhgzBvZHcc8894U9/+lPS0ZVR5E85jR07NnWpZp2TtmXX
CGF10qRJiZgJWQUCNYRrOs1ylrzTaq0EakgdkMsh5EFAErFbe9A4fPjwAnmPs6mDbj0YK3dzx2oJ
1OyNDq7fhUAyhXRbTnLCI11mDzzwwJKuEydOLHxIYO211y50UL/vvvvCSy+9lGK473TaLSV0mqYD
JETn3/72t4lMlBPXDj30UL7aoVRooNP7Rx99lGw5GRZF3p155513LnRNzwmmvXv3Tl9LXzJ5pswJ
1OBQ3HUXV173dJVH6BStDynUg0O+V555SF/FIvLayiuvPMsHMvDlwwMjRoxo1LGZzux0d0cgbeXd
ZpOy4QddaXkd88cNrzPGSpLvGSIqhNRS8p///CfccsstydSnT59Ewsr9eK/k2eL+QhSHsMhIHKQz
BGK8SP18MGTYsGFJ31QXYT7QQl5Ez0w9eHzwwQcB4mJTsu6664a11lqrkUtTZNd69pPj35LPDJvP
CZq/+c1vGhH+8sOJ/MdrWu/P+ftJ/j6Rx1V7z4mtRKC+//77AwRApG/fvoXO8EnR8APMnn322bTK
ya78Lsy73OcxzPngRU6gred9q557rn019UzJh5HXEb+rP//888Lrir8fhg4dmtyK709bIFBX+zzm
eFTz3PH3Dd82gDTVmZ9vVuAbFpD8marneUzJmvhRz+szT1vN8zE78aj2vbccgbqe1y24VbsPYnhP
4llASv0dovdQ/vbhb6BKkv8+5UOVfAiiKankz2uCvx3wQ3gv7969e/pvA34X8ztYv4ex8y02+jYc
1hYjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAEZh9CJhAPfuwd2UjYASMgBGYiQBcivhv
nf3ialS8Js/UFsjD4sSKr9pgTlxROKEIPsy1hh8K+VoiXik58MEOPxcR1xQd9twX0pPqM4rHysia
XJrHaaE+cXl+5cSfuezEUld7wiZf+WHjYm/4EsOlXOjwlY4xzx+XhX0RgyhGc9VIxlp+ULQlRHnY
kA6kQ5NfG8WmQwgoRuyQhrHzAIhoDCCI8upB4PvouVHkQvL66PAnVvo4TWBjU335MHJBZEbIS310
GuM0xVEfUX3tjzqqpT0xyk4M+aRTTdlZkxOhPntRfXSI9k0dfLmWj1+JPQCybiVpzQ7UZ5xxRrj3
3nvTFvbcc88AaTkXCJWjRo1KKgg2Xbt2LZghcm255ZZpnZOjCw5xAmFFXadzn+YQqCFGQworlpxA
zf6KCaJNEaghj1x77bWBjrLsrZy0FIE6J0affPLJBWJ3cV1IQBCXIILkROt6MC6uUWldLYEaQgpk
te9C+Lp4ug+Xk5zwuMoqqxSI+sX+fGDhf//3f1MXZJ7lfv36JRcRgDp27BhOOOGE4rDCmueRLs0I
HZQhdSuWzsW/+93vCr7Fk9tuuy289dZbSS0yrHwgB9IJl/2tuuqqgS7YCF2PeVaR3/ymPAk0OTT8
yAnUOWk398k7TecEap2lFhxyMmyfPrOSjKl//vnnBz5UUA2BOidP5Wdoal6OOF4ck+95ww03DJts
skmxS1p/8sknge7YCB3G6TSO0Ln4X//6V+pCzmu4KcnvhbqK56TdUrF33HFH6l6PTc9MPXjkBN5S
9dCVwqEpsms9+8nxb8lnhnOIoEnHVF6X5Qj1/I+ZV199lZBE/oMEmL+fFBN0a73n5M/x/8UvfhFW
X3111AXR66+gqDDJX0e6R02FnHTSSelDH/ioVi3vW/Xcc+1P++XDKvmHlWR/7733Uqd8fp83JcX3
Z04nUNfyPHL+Wp67N998s/Ahp8033zyst956JaH88MMP099FGHMCtZ6RkkEllPnzWMLcSFXP65NE
tTwfsxOP/LXfCIhskb/3liNQ657U8rqlVLX74G8TSPj8fuNbGg455JBEUM62XXgvmV0Ean4H83cP
wt9kfBBq8cUXz7eYPiDHh8b4G4u/bzjHwgsv3MjHCyNgBIyAETACRsAIGAEjYASMgBEwAkbACBgB
I2AEjIAR+O4RMIH6u8fcFY2AETACRqAxAvwbfvz3xT2idnS8pscLzue0eMELhdQpziccWQRuKHP4
ofhjxw9OKLHyY0QnwUc29Ky5VAebuK7kZY6d/Hle5aE+PF3tT/XxZU4+bBL0xGKTHR/Vx676xfxf
/JSXHPIV/1e2aCr4SUcthDV5WGvP6DSP09pEBWqLnhklEMjFxca4JNIzcghEOoEqHSP5lAN/3Qj0
WgsM8mBXHtaI6jMSpxzS53GyMWLXjYzTtNZe0VNX+1AO1WdUrjgtxKo+/uQvjsOOMKp+UjSsyUmM
9qV9LBh13WN35pshzFaS1iJQQ4iA3AxBojlC90pIB5J6yL2zg0AN4QYirroAcw5IFpA+FllkkUSm
ePzxx9PxTKBuukstIH366aclO4QnAFv4B+Qv7lE5yQmPTZG4+MACBGped3Qo3GuvvVJKdZaGZAnZ
kl+QpSQnW6pTNV9tz7NVKVbdlckrMmxeY/DgwYFO55BqIdtCkBLRtqmu2nkO5vUQqOvBobXIsCNH
jgwDBw5Mx1xggQXKdgfPcaDDZLku4rlfvuf1118/9OnTJzcX5rxn0EEcoRv/dtttl+Z0pYZMKuGT
aTyn888/f2CvfGCDbr1ITqAeMGBA+mAKzxmEfe51KRHJFJuemXrw4ByPPvpoqVIFHR9AWGmllQpr
JtpHKbJrPfvJ8Qd77kGx1EK6J4cImszBGNJcKeEDOa+//noyHXHEEen+5e8nxQTdWu85BXLyYikC
td5L8F1mmWUYmpTll18+bLbZZsnn6aefDvFDWWX9eX8S8R8n1arlfauee64NNvVMgROv+fwDZnRv
X3DBBdNri3v5zjvvpFTF92dOJ1Cz6WqfR2Jqee4gn994442Ehw022CBsuummaV78I38ucwK1nhH8
q30ei2sUr+t5fdb6fMxOPKp97y1HoNY9qeV1yz2odh95F3K6mPP7oVj4YNnHH3+cvmFBH/7ibxYI
16Uk/wBGS3Sg5hnXBy30wbZSdflGm2eeeSaZeC/kw1AWI2AEjIARMAJGwAgYASNgBIyAETACRsAI
GAEjYASMgBGYvQiYQD178Xd1I2AEjIARiITOyNeJzWYhUI+J1xfxEq+VkQteKwLBc654iefKKC4p
o/ziNMUpnlG8UmyKY44oTrnwpw5r1YfExho9OtaKY47ka8VqpL5yEI+edZ4nLtMau/areGwIeuzs
A/K0ciiP1sTpitOCH3PiEflqPVNbw08StYQoDxvnoIgOwYjkAEing2DXYZSDmyJGmGzyZ8Se54zL
lCNnOGkP2PBlrQdEuVgjxb7UJJf0ub/qi8xMDnT4EqO5xqgqEKCFDzYurfEhHlFenQU9vtTBn/l8
8eoRyXU3Q9SqJK1FoKZ786mnnprK9+rVqyzZYcSIEYksSwfgu+++u0AubWsE6tNPPz3w9efIHnvs
kTr65iRLOtNBMuKetBSBmm67G2+8ccpJzd/+9repfvGPvFM1XcG33Xbb5FIPxsU1Kq2r7UBdKd93
ac8Jj5Dic6J/vg8IrZCSkfyr6B988MHURRh9UwQcdX+EIHvcccfhnr7anq+4R5qKvfzyy9PrCD+R
YZlL3njjjUDHYWTnnXcOSy65ZOr8yLpPn9LkUmzFUg+Buh4cWosMywc8Lr744nRMCFzbbLNN8ZFr
Xud7XmGFFVL391LJ6BxOB3Fkiy22COuuu24ibImcCLkT4hikfEjUkhzPnED9yCOPhKFDhyY33muW
XnpphTQaL7zwwtT5E6WemdbEo1HxbNEU2bWe/eT4l3vGW4JAzQdnynWw/9vf/paIx/lrOn8/yQm6
OQGz2nsOnDlRtRSBmg6pL7zwQkL+yCOPbNUOqTkxstr3rXruuR6rpp4pfcAA3zXXXDMRfyFPS/gA
1kUXXZSW+f1BIQJ1KbK/4vVeTLdazi5p6r2z0r1TjnJjThiu9nms9bnj7w9eP0jPnj3DrrvuWnJ7
zz33XHjooYeSLSdQt+bzWA8etT4fczIexTemHIG6ntdtcY3mrPkgAx+YqFbKvZ+Tp6UJ1Oedd17q
0E5Had43y0led5111il8O045f+uNgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRqD1ETCB
uvUxdgUjYASMgBGojEDkDuwdvcbEa3K84JzCa4X8A6kTrqd04oZGVRI6NWNnxB+7OLHMiePK9djh
jkrPHMn9sZFX9RXPKP84LdjxU31i4a7iq5ya44OdHOiQPB82LmzUZ6/iwaJH8Fe8zspIbgQ/YhDl
Ui3V117xIZdys65a8gNUHdwQwIa0EY2YmOf5dQDZtHF8OKT8FSNg9BApTsDmwBBDPuXSTVAuRtmU
J49nzv4QjeSjNmvsyoFeDwk67Mot36hKeuIR+SlP7ocPevkqn+rLnueg/gLx6jZ+/PgBkHYrSWsR
qEWYhTgG0Q9CWCmBYKbuq9dcc034yU9+ktzqIffOjg7UENZi1+/UcRoiNZ1+c3nllVcSqRpdUwTq
c889N9ARuVguueSS1O0Rotdjjz1WMO+9994Bcuzqq6+evuq8YMgmdCemMzLCHDInUg/GKUEVP/Q8
dOnSJXVvrSJ0trvmhEe6+h566KElOxA/++yz4eGHH077zQmMr732Wrj33nuTfuuttw5rrbXWLGeC
NHjFFVckok6PHj0SCR+nl156KfBhBGSrrbYqvD6SouFHThRFJTJs7kO31UsvvTTw2lh11VUTgZrn
iPNACirXzTHPwbwpEqB8X3755UDXSGTfffcNyy23XJrXg0N+xj59ShO+ayXDivDYFDk+HaDKH/me
6RjNc8P7YbFALoRkiPTr1y907do1dbKkoyVSrrsr75cTJ05MPjmBetiwYenDKBjyjtbJseFHfi9Q
5c9Ma+GR18/nIrvy3nb00UfnpjSvdT85/i39zOQETT7EstFGG82y78mTJ6fXNK89ujnvueeeySd/
P8kJunQvrfWekzgn4ZZ6r3j11VeD/kdRa3dIrfd9q9Z7rpugZ6oU0VnvE3zSk+dtvvn4zNm38u9/
/zvceeedSZHfHxSDBg1K3anLdeilIzy/q5FaCdSl7l1K2MSPep7Hep67q666KkyaNCl1YN9///3T
75V8mzNmzEik8w8//DCpcwJ1az6P9eBRz/Mxp+KR3xPm5QjU9b5ui+tUWrclAjWv+WOPPXaWv+11
Rj6cwocCED4ExYehLEbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjMHsR0L+LvTql9ywb
mavDN2Hfn1Xm0hCoBkX8m63FCBgBI2AEjEA1CNAksVOnTpBFRseLDtTwQHVBTIbzyQXnFT2CHk4o
OgS9fFij55cYOonWeR7F4yO7aqBTffioiiOn6ue/KFWfET0XccWCXvvN46XTSBw1cy4sOtVBr72i
U12NysNaIhvrfC57TWNeoKYEDUHFB0INQOTn4kBc3PgcuLgs6JljE/DKKaCwI8ozczXzp3xZKR4/
1UfPDaGjs+rnZ2dfrPFhjmjMzzHT8q1NOVSTNXNG4pQ3TtOa+sX7whc/4lRfuqhq5I9eNpjK3WI3
3AEQtSpJaxCo6cS73XbbBQjcfIX2OeecU3Yb7777bthxxx2THVLXaaedluaQ37bccss0P+WUUwo+
eSKIO+RHcp/ZQaCGHEcnWbrUQaDOCePch5NOOimRT9lrMYF61KhRqSswNvKo+zBrSTkCNdiqszAk
SgjVuUCqg5QJsYs9Pfroo4UutvVgnNdozry9EKg5a+fOnRMxGAKehGee7qR6zR144IGBr5lHILlC
dkUg1tMhlA7Qkm+++SbQ9XL06NFJlRNm33///ZQXQ8eOHVOs8qIrJqihy8mwrCXqLskeIEzz+inV
GfmTTz4JkKAhtNKhlbqSegjU9eDQmmTY22+/Pbz55pvpiOuvv37qyK3zMoIThExI7ry+DzvssNwc
IFzyPrbaaquFZZZZpmDL94wSrHfbbbdCl310eddKyOy89iF05uTCUiRoPpChjvfkyQnU3L+rr766
8CxC5KIjJvkRnrNbbrmlYEeXPzP14kG+aiQn0ZXqVlzrfnL8+/RpWdJ9TtDkD9699torEd91bn73
8czQ3RfJn6tyBOp67jk13nvvvdC/f3+mYZVVVpnld2beIZ/XNh9uyL8lgTi6l4vMz4c9ePZqkXrf
t2q959or2POclyJQ80EVXiOlPgzDaxySdPwAWkpVTKDO3//oCs+HUSS8j/NBmddffz2pqiFQV7p3
JGzqfbme57Ge506/U9gf5+XvD54thN9N99xzT+G9FV1OoK73eWwtPOp5PmYnHuDbXClHoK73ddvc
+vLjHvKaa0r4MMPHH3+cnit1Oed1zYeSSkn+O5X/PuB3X1NSyZ+/68AF2XDDDcMmm2wySzr+vub3
GM80wre88LeTxQgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEZi8CJlDPXvxd3QgYASNg
BCLhcyaBeveIxXvx4h9HReQURxQOKZxQ1rrQwRVlRLBrjQ/CiB6BDMScC54po3LFacpDPEL9meSh
bzms1Cnlr1rF+yEem/anNbkh0mlfcZoEP/aF4KO9MJKn2B+d9hinyUe+rGUjjrnqE4ef9hWn9YuK
1ZtJedikbpIOpY3nNvyxI+hZczDpmeug5FNsnCZ9nhudchEDCxDwFMccHTbdQOropsVpAWTm6PHV
vpRbLEr0qh+nSViTE5tqSaf62MhBbmyqTxyXRPtWffkRKz/iYRV0jf+QP1BkTiUoNbYGgfqGG25I
3W6pd+GFFwY6dDYlEEohHUHwpRsrBMJ6yL2zg0BNd1/OjUBY3GWXXVLXUbpD33TTTYHuxJJiAvXU
qVMTsQgCFiQkyLd0sFt66aUL3THLEaghepEP4gZvvBCYIOAuuuii6dOQECVF4jv99NMDnZEl9WCs
HM0d2xOBmjNzb370ox+FRRZZJEyYMCE9v3ScRX784x+HbbbZJs31gy7szz//fFpCwoV4t+yyy4ZP
P/00Ecx0j+InjxKxMSfg33333YGuwgjEZ4i6kLghHw0fPrxA2kkO8UdOhpWOMSdHSV9MAkSfE4Zy
whu2nECYk3axScp1oMZeKw6tSYYlN8RTXocI+Pbs2TOR3emcyqeKuU8I3eHXW2+9NOfHO++8kwiX
zCGmH3XUUYUOlfmesSPdunULK6+8cnpdcz9435s2bVqybbrppum1y4JnifcUhNd17969E0EXYi6E
LzDOpfhe5F2o8YNsBmmfc/DcFEv+zNSDR3He5qzpsE7nU4TXBK+fpZZaKs3R1bqfHP8+fVqPQM0e
wVevaQiBvO9Dqkd4vfMeLWJpOQJ1vfc8j+dDD+DYo0eP1AFeZMOc4AkJkW74dIjnueC50vsMe+WD
AvmHJ9JhqvhRz/tWrfdc22uKQJ0/b3zgAZz4fUlN3qM/+ugjpQnFBOq8OzXYQKjkdwEEz7fffjth
qOBqCNTNuXdNvS/nBGrqV/M85rWrfa+BJM3fPfwOlIAH5HT+JqH7ei7Fv0/qeR5bC496no/ZiUeO
c6V5OQI1cfW8bivVrcXOt9TwfPG3Ed/iUEkqEaKL4yv58zcWry8JH07hPYPnnP/W4Pc4fxfpb4SW
eO9ULY9GwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI1AfAiZQ14efo42AETACRqBlEIjc
gb1iprHxglQG5xPhH9O5xAEVZ5Q1enigsjPCB5UNvqiI0MTJrhzYEHFJ0SOMeT3lJ7di8UNPrPxl
I5Y5PFURoVnjj44x3xt5EXzyfKqHHsFGbmIR6dHpynOpluLwUU5yaP+KYV2zUKReYVMCgVyaa+PK
rzVjLvLXgXUDyCud/FnjL5vmyoEfc4GjMY9TfXQIa+YCGQI0DwD7kA67LvxVX3PVxEd7wkYOBL18
tUYnYS4cRQBXfeKwc+k8+NL+r8u4ceMGQMitJK1BoKZLHMRCyKV8pXUlEhad2y644IK01bPOOivw
FfaQmdpSB2q6XR500EFp36Uw/8lPfpIIdZCKignU+EO8fPrppxuFCguU5QjU2EaMGBEOOOCARLpk
XUogw1E3l3owzvM0Z95eCNSQa+kYDumslEBGhMTO173nwmuRTooQK8sJxJt99tknEYVyHwiXkNTU
FTW3Mef1tfzyyycCH+ucDMs6FzoTc98RCL9HH330LK/P888/P0yfPj35QPb91a9+leb8qJdAXSsO
7Jm9I336tCwZlpx0aud9qJjwh00CxnSQzu/tM888E4YMGSKX9OEHdQjP98xzQZfZcgIZ/5e//GUj
M/9RT3fYcpLnLCZQE/No7DZf/J6iXNxX7r/yFz8zteKh/NWMOQldcXyAgDNJatlPjn9LPzMirEIU
hYSrDqXar0a61POahmwnKUegxl7vPeeDAMXPGb9HIQIjvP5uvfXWRkTfZMh+8FzwbRC9evXKtNVP
633fquWea5dNEah5H+W1DvmxlHCv+D3NhxWKCdTowI9ntpSAHURPCJ/VEKjJVeneNfW+XM/zSO16
njuIo9dff336lgty5cKH4Xj+6ESNFBOo63keWwuPep4Pzji78KB2c6UpAnW9r9vm7qG5frObQM0+
X3zxxfThL17/TQmv+Z133jm99pvys80IGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBL4b
BEyg/m5wdhUjYASMgBEoj0DWgXps9IKkAJkXjueMhjEOSQfBUyRP+bDWP1JqRJeTp+GMIti5WDMW
54uqZCM3hDYRoNHn/sSrvmzKyRrBjo4ajBLFkS8X+St3Mf8Xu0S1GDXPObr45XXEl0VPXdbsK5fi
dW6rOGcT9Ypy6EDcADZVvOH8oPjqoHm8QFe8crFHxaAjFzeZeR5PTgjIxHMJMHy4lL84VzQl33zP
+HIz0eFPLvKL2CySNTZE56M+Qhy+qqm9MCoX++dCGFWftern8djJT/y88eoRSSADKv1jf/QLLU2g
HjlyZOq+TG4IgSeffDLTJgWi29Zbb50IS5tttlk477zzUhdIOjkjp512WiJ0FSehU2QpHzq6brTR
Roksdvzxx4fdd6cb/kw599xzw+DBgxOhTX80y8b4f//3f4FOzQjkbwgRuUCUg1yG/OUvfwl9+/Yt
mCHenHHGGeGVV14pEFAht0KoOPjgg0O/fv1SN2g6TLPOZeLEiYkky57Uye7ss88ukMgvu+yyRLCC
lP7II4/koWlOJ9srr7wydbqGlCSho+uee+7ZCAPZyuEnO2NzfHL/cnMRxOnAe8cdd5RzmyP1kGp5
Jnk99enTJxEL6ZROh1l1D4ZISWdCngd1mi0+DMSkxx9/PD0fOXmP2B/+8IeBDsR03i0lEJ4efvjh
RMDO7y+kXmrS/fSxxx5L3Yp///vfl0qRdNR/8skn03yNNdYI22233Sy+kG7xgQzIa7h79+4FH8Wz
52OPPTbMP//8BZsmr732Wrj33nvTEtJ+Th5FWQsOPIc83wiveTq0F8tFF12USJF0AqazdrHcfvvt
qds3r6Ejjjii2JxIkZwvJ8NyTjr10nWaD0EUC0R6Osyzv5VWWqkR2byYwLv44osnAjp6CQTbNddc
Mz1XpT5own2AvJUT9snDc4iODq5N3Qs6m3M/2B/PL7GQp3nectJkMYGa/UESrRYPnavakfcvuv+C
Peehg25OoK5lP635zIiwyj3jwyHgRFfw/Hcur2U6lvfo0aMRHPn7CZ3F898hONZzz+kuPnTo0NTZ
nA9B8F6RE6jJj/7RSK6HPK8PSqCH7Mr7889//vPUkRldvVLv+1atz+CgQYPS81tMYtZ5Jk2alJ7/
+EGzwocm+A8XXoubbLJJuPbaaxMhuNT9ocswfyfwQRq6jUv4QAPY8W0TdPLm/vPBJkml985K966p
9+V6nkftr57nju79PP+Q97nn/A7kfX+dddZJz9gVV1yRyhQTqFHW+jy2Jh71PB+caXbgQd3mypQp
U9KH8vDneaeTei71vm7zXPXO1Wmcb1DgQ4qVhP8G4QMSCP9dQZf9pqS5/vwu5Rs0+FaK/H2e3Pwd
xO9UPvzJ+6jFCBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYATmDATEBXl1Su9ZNjRXh2/C
vj+DYlNZ+LZihG8BtxgBI2AEjIARqAYB+C+Rp0MH6jHxEoEaUh+/hMSPZRTRT8RmOKd0vhRnNE6T
iBOrePyUjzm5JJC0xT3FJ7ezVn1yqb50+Cpetqgq8GOJ4VJ9bAg6BL32mhQNOvIrBl/2pz2jZ649
ay9RlUR2cW5l1/6wa0/5XPaGNNUNJGoJUR5GbYgRoq82zRw7B2MsBY70yhHdUg5G8hTnACw9VPgQ
LyGHajBiI171idUcG/kR3QB0+aXz5DkgM6u+8pND+bBTg/rEcekcqo8Of50ZPaLauZ08OhMdqFeI
HRRvhKhYSVqaQF2p3vfBDu50z0S6dOmSiKjNPTfkOkhZEN8gelYrEGNECoMsCemEN2RLyyPAPYKk
yf2GZAvhuDkCfZnlagAAQABJREFU+QaCEuRr7s2iiy7a7FjIZh9//HEiSvN8NLem9pWTZumUDWGy
lKgTc95tuZRfPbp6cKinbqVYXn+QkyFUcl8hOVcS7kvxvSgmUK+//vopDa9RanDvm5uf5wXSPZ2Z
F1pooUrbaZadruZ8CKC423NxcC14FOdo7prXBK8rMC+H+3e5n3L7zgmrJ5xwQnLjNcP7AfsH03If
pCiXs1hfzz3ntQXRlxEyeilhv3xYBz8IgLX8vimVt5Su3vet1rrnYMD7KTjRObrcM1fqTOgg2hLL
a7LUh0nKxTWlb+relXtfbsnnsZ7nrtS5coIqBHNI1aWkluextfGo9/kodc7WxKNUvXp09b5u66k9
p8by9x4d6nmv528EPijAe4fFCBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYATmPARMoJ7z
7ol3ZASMgBH4viHQ0IF6z3jusfH6LF5wQMUdZS5OKKO4qnGaOKfoICxNixccUfnCL5U/euIQkQNF
FpVNcfgxVy7mXMQxYseGKAf1IXIrRr74i+eax2EnllE8VtVQffToikX5iIW8zUh95toXOsXKnxG9
Luowz+vHZW1ConqFzeeb1MbJLT018rkOrMPocPgxz0HloLpByiF//LDpJqmmYnJ/bhx6hBh88zjV
yEfiWStOa9WPpkL9vCY3Fh9EvtTCh7XGYp3OE11SXurhy4VgVywE6q6RRDsAIlclMYG6EkK2G4H2
gcCECRPC3//+90TwhPRDd2hL6yFQjkDdehVnZobY1b9//7TgAxR77LFHKCbC003z5ptvTuTPch27
W3ufbTl/KcJqWz6P9962EZhdz+N9992XuvqDHt1+6cJfLLfcckv4z3/+k9SHHHJI6oJf7NPSa+PR
0og6nxEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGIG2h4AJ1G3vnnnHRsAIGIH2hgBN
3GJTzT3iucbGiw7U8D0hczIiIhvDGUUHX1SCny70+CDEwFlFpCdWuYjBlzHPpxpRnWyMyiWb9oUN
IQeiOvgxp77mjIiIzsTk+8OGDxf5GbVH5cUfXbE998trii8r/xhawJS56hefB1tVosNVFVTkrMML
GN0U5ZY+B0YH18hBdKii9AVA0QukHJhy9QUiNTQnh/ZBLu2NfPhoP3Ga/HQGrYnhUn3Vlh858puu
Gujlgw7JbeSDdK36eV7FMZKHC38I1N3Gjx8/gE6GlcQE6koI2f59RuCcc85ps8enA+7RRx8dhg0b
FuL7QRrprIzstNNOiewGiXb06NFt9oxz6sbXXnvt1Gn16quvTlvs06dPoAN1az9P1N1yyy3D3/72
twBhHllhhRXCKquskjpl0j3znXfeCc8880zqgI59++23D7169Qrnn38+S0sFBPr16xf4qq7hw4eH
jh07BjpQv/HGG+GOO+6oEGmzEWh5BHbeeef0LObPI+/pvLe3pvA7hC76t912WypDB/6f/vSnYdll
lw0LL7xw6tDL+4y+jYNu+4cddlh46623CjGtsb+DDz44PPHEE41eny+++GK4//77W6NcIedBBx2U
OpJXi8fTTz8dHn300UIeT9oHAnRap+O6xQgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AE
Zh8CJlDPPuxd2QgYASNgBGYi0NCBeq+4GhWvqfGCyMkFDzS/pBMXFI4pdgQbeo0QlcUjVY6oSoIP
olE5yCdeq3R5LP6sxV0VxzeqCrXwwQ7pWr7KIa4ra4SRPWutWO0LH4lysCYPcSKDo0OUS/WlYyQe
PZLXVYz2MNOjyp8kqVe0EeWB4KtDa/MCCJsAFmEYG36sBSA5BXqcJjuxPBwd46V8xOHLWmdR3qhK
ccqDHZvqk0f7JH7eeIn8jC/1EHwQYqmPn+rHaaE+dVQDvfam+ozk0MOn+viSb74GGznwVf04TaK9
44f/QvHqagJ1wsY/jEBdCOg/rOpKMpuC55tvvrDFFluEc889N3z1ld5eQiJOQ35D/vWvfwU6JVta
FoHll18+LLPMMqGYQN3azxN1V1tttTBy5MhE6J02jW/yKC8bbLBB2HTTTQPE6tYmGJbfRduygNnj
jz/eiKAZv/Ehkarb1km82/aAAETNoUOHNnoeeU/nvb01hbqdO3cOt956a6HDdLl6kKd32WWX8D//
8z/pwzzPP/98Ode69byfPfzww43wgFD+2muv1Z27qQTU5UNL1eIxYsSI9AGMpnLb1vYQ0O/itrdz
79gIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASPQfhDQv8u+OqX3LIeaq8M3Yd+fQa2pLDRW
Qvg3QosRMAJGwAgYgWoQoCnZ4osvTgfqUfGCWwo3Vb+A4IEy1wUndHq8cg4pHFPZ47TAd5WOkTgR
jplTBz38UuIhjHHBRxU3ltqqrxqKVX3s2GSP0yTkJb/0xLFGsFEfG3kYqY1d9eM01SZOORgVKz/Z
8See/SA6l/ag+tixcUYk95upqeGnitYQWghRjvxAHBhh1AFYM0dkJ1bxHFiHko9s6AFaQOKresqp
NTH4MeY5FRvVBTs+iseuOT6IcnKzdUM0l69G9ohozzNXjc+Ej+yMXIrDX7nko7Vq4sMDxF5EoB7o
DtTAYjEC328ELrvsssCnmhZZZJHUjZj/uOOXtKV1EZg6dWrqhEqVlVdeOXTt2rV1CxZl//TTT8OD
Dz6YOsCyFwmdYiE+0q2aztSW6hGgq/v777+fOlBDnLQYgdmJwOx+Hl9++eVE4v7oo4/CN9/wJ/NM
6dSpU+jSpUvo27dvWGCBBaRu9dF4tDrELmAEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEw
AkZgjkfABOo5/hZ5g0bACBiBdo9A1oF6TDzs5HhB1hLPFY4nwggPVORq5vgg/AO8/hGeWHFUNeIH
vzQnRuMvu8hh0ilHdEk+jNhUX3Py4stakq/Jj6g+ay7yEKM41Y+qZM9z4MOaOM5ALnQ6j3Iph9bR
pVADf/Taj3zz+poTV7UoYdWBWQA52IRyaS691gIBvUCQjw6JXgcS+AJGeYjRJV/dnGhK8cTkcVrj
p/p6CIiRL6MEX4jL+EuY46P60uPL3tGzJ821Jgad9kle1VfOqEq5GdGpfr4n5cG+YLy6Tpgw4ea8
62zUlZT+T8wVvv6GsMayxoLPJsV2223X2OCVETACRsAItCkEJk+eHKZMmRIgT0NqtBgBI2AEWhoB
/ubUNxrQdZr3m++zGI/v89332Y2AETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGYHYjYAL1
7L4Drm8EjIARMAINBGo6UL8br2ICNaRncT/hgnLlAs+UCx4pNsidWovoiV5+5FL3ZeZ0gsZPsfkY
1ckXP/nIjk1CbvS5TXPF4cOci70icGHZi3yoozj8EXzxQ3QG5VFO6YklB5LPZScOuzi3eX18ahYS
t4Tkm883m+uZa7McQIdRfQ4uwHKgpCeWHAKIeBGRFSfQ8dM8TlPd/Kz4k0d15EOcdMwR1WGOTvtA
Tzdo1SFOeyU/Dwh2RDHM8WPfqq862FSfUXr88Ed0TmzzxWuFDz744KYvv9TrApfSYgJ1aVysNQJG
wAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAEWhbCJhA3bbu
l3drBIyAEWiPCDQQqPeMZxsTLxGo4XtKmEPuhO8pvih8UzikEKDhhU6PF7xQOKYiJcsuDqn05BAX
VTrWXMrPnHgEHfVUn1H1iac++1B9+RKPXfXJg6gW/sqDDlF95sRzYSOP8msfUZXiqS+7dPhwFddX
PvxK1UdftZC0XmGzOegChFEHFgDUkl1x8kGPH0AqNk5TDsAWWNIxIspd6izKTaxukOorTjXJpT1p
L+TkIhYyNDeFNX4Ic+VBxxphJIfqMrLO7YqTDzbVj9OUVzrV1wOK3w/i1W3cuHED869SJ7CUmEBd
ChXrjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBNoa
AiZQ13bHRo0aFd58880wYsSIAN+oV69eYbXVVgvLLrtsbQlnY9SkSZPC8OHDZ9nBoosuGpZaaqnQ
uXPnWWy1Kvr16xemT58ebrnlllpTzNa4119/PXDvy8nKK68cevbsOYv5ww8/DAMGDEjPy0ILLRTW
XXfdsOOOOwZIo+XkgQceCE8++WTg/vTo0SPssssuoXv37uXcS+prqVsykZVGoJURaCBQ7x3LjIrX
lHjB94RjWsxVRQdfFLKyeKT4SNAhjOg1kk+5cr1yaIRXWmouneozSseIUENz1sx1qT57pwaifYvr
Kh9i8nn+RlHM/02JGn7keVBpL9TBxkh91ZVdcVpHl+qFDdcr2iR5mCNsiks26rAWaThOZ7HrQIy6
YfghHD4nGqPDD2AFjvKrltbkUiwjeolqEqM8jIrJc0Gg1k0hntjim0N+YhBsIl2rLiMiH3IgrLEp
nx4Y+bFnculMcRoWitdyJlADhcUIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETAC
RsAIGAEjYASMgBEwAkbg+4KACdTV3WnI0v379w8DBw5MxOk8ep555gkHH3xw2GGHHXJ1ePfdd8Pj
jz8eVlpppbD22ms3srX0opZaTz31VDjjjDPKbgVC8H777Rd69+5d1qe5hl/96ldh6tSp4Z///Gdz
Q+Yov0MOOSQMHjy47J5OPPHE8Lvf/a6R/aWXXgrbb799+PzzzxvpN9hgg3DXXXeFueeGYtdYfv3r
X4e77767kXLeeecNN9xwQ9hiiy0a6cstaqlbLpf1RqC1EejQoUNYfPHF94h1xsZrarxEMoYoLW4q
nFDxXGUXh1VrfLiKY1jDZYVHKjsj8VorB77M8SVGufBFz4uWGAQdfvJHz6UXttaqj75Ujrym5nlM
DEt5ySd+bH4WcuKPnT2pfn4+bMSgw5cR0Rp7zULieoUc2iCbYq5DaaSG9DmQbB6fPD6/UegRdNxU
RCBhUy7Fkw+7gFL9PI9i2Kv8ZWed3yjlQUccwhwhpjienNTnKs6Ff65XffJhUz7WOY5xmWpSHx+I
1MiC8Vpu/Pjxg77+mlJNiztQN42PrUbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASM
gBEwAkbACBgBI2AEjIARMAJtAwETqKu7TzfeeGPg6tixY9htt91S1+mvvvoqvPDCC+HOO+9MpOrj
jjsubLXVVoXETzzxRDjzzDMTifaII44o6FtjUkstEai7desWNttss7QtSM50pX7jjTfCjBkzAuRw
SNZ0Tq5H2jqBmq7RYPz73/++JPF5ww03DOutt14BomnTpoVNN900vPXWW2HrrbcOe++9dxgzZky4
5pprwsiRI8Opp54ajjnmmII/k0GDBoXDDz88df8+8MADw5prrhluv/321LWbbuBPP/10WGyxxRrF
FC9qqVucw2sj8F0iwHtM7Hq/Z6w5Nl50oBbHkxEOKAK5Ex6quk+Lk4pdnFRxRxXPWnPiRRBFL3I0
dvToEOUjP3rVZ1T9OC1wa5mrhuoTh6/WGvFVHuqLB6v6+Km+bMQoHl3O/1Uc9VWPeNVHJxs6ifSq
QUxdwgZbQsjD5nQIAaL82HRofLjQYefCxgU5WAeP0yR5Lh1YOgHBOq+vOSOCn/KqPjrFURs95GXm
+d7iMolyEqP68mdNPoR47Qs7orX2I53iiEGUT3tTLWyK1d4WiLoeH3zwwU1ffqlnC7fSYgJ1aVys
NQJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAEWhbCJhA
Xd39gtA6evTocNppp4WNNtqoUfA999wTLr/88rDqqquGiy66qGCrhdRcCK5yUkstEah/9rOfJUJv
XhLy9BVXXJE6Rs8333zhz3/+cyKN5z7VzNs6gXr99dcP7733Xhg7dmyzjv2nP/0pXHLJJanz+AMP
PBDososMGzYsEash4tOdnC7fSOSvJQL2p59+mgjTffv2TXp+0AX83nvvDbvvvnu6JwVDiUm1dUuk
sMoIfKcINHSg3jsWHRWvyfGC9wlRmheNeKqM4ocyskbgs+b+xGCHDMoc+8wXX5xEYY3gw4VNdmzo
yEe8uK6qhQ3Rnpjn/sqFXXVVA1/yaV/o8ROPNU4Le6I+8dgkqkkN5oh08semPSu+uL72pRzaM341
C0laSnRAHZ51vmkdllG+Oix7kA47h8yBZo0dgjEPmHLEafLDxkUMPgj7UH2tseex2Fkj+CteNwg9
eRHs5OZBUA7VZMROHD6subTvOE0xyo8vQn3tl5yyYyMWkS+jCOb40oG6W/wFdLMJ1BEJixEwAkbA
CBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjMD3AgETqJt/m7/4
4ouwww47pIABAwaEJZdcslHw9OnTwx133BHmmmuusOuuuwZ4SCeeeGL46KOPwrvvvhsWX3zxsOyy
y4aFFlooQHCVfPjhhwESM12s33zzzeTTq1evsM8++yRf+Slf165dwzbbbJNqvfrqq4mwTZ3m1FKu
fGyKQI3f119/Hc4666zw5JNPhp/85CfhL3/5Sx6e5o8++mh47rnnwiuvvBI6deoU1lprrbD55puH
7t27N/ItR6BuDgZnn312+O9//xuOPvroWfJSt3///mGllVYKBx98cKOaLblYfvnl031//vnnm5WW
jtR08eZ19tOf/rRRzKGHHhpuvfXWcO6554YDDjgg2SDh77///gEy+1133dXIn47VvXv3Tt2n3377
7Ua24kW1dSHKc29WXHHFcMghh6QPAPBc8KzutNNOCfMJEyYkAj0dsL/55puwzjrrhJNOOimssMIK
jcrzrJ9//vnhpZdeCpMmTUpn6dOnT9huu+3C/PPP38jXCyMgBLIO1GOi7ot4ia8KD5Q5I6IR3uf0
eMEFFT9UhOuoSjG5TaRlcqEXORpf1ch5qvIjt+pjV324qqofp0lUgwV+7JF44mTTWvlVkzVzhJG1
4smlMyqe+jqv4pSDterHaRLZiOf82BnxRce6LtEm6klSvCFtlJzM2agAABxAFUg6NCO+AlAHF7mY
g2qvmssfH2zUII61gFGdqEqCTfVRKI5Re8OHPOSHsKz9s0Z0FtbUUX1sWitG8dioodyMCDpENvaG
jTyqH6epJuvcf6G4Xm7cuHGDeHOvJO5AXQkh242AETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIAR
MAJGwAgYASNgBIyAETACRsAIGAEjYATaAgImUFd3lyCZTp48OfziF78IRxxxRKGjcKksEJ4hw37+
+efhs88+S+TRRRddNCy88MLhr3/9awr55JNPwmGHHRYgEEMghGRNF2KkW7du4cILLwyLLLJIWkPQ
hoRKjq+++irtY955502kZjpiV6qVkpT4UYlATQjk2X79+iVCLSTxXG666aZwww03JBX7nzJlSpg2
bVraJ92XIY1LShGom4sBmEEq3nPPPVM3ZuVkPO+888JDDz2UsNxxxx1zU4vNuY+Q1+lCDQYQhCG8
o4McvcACCzSqBfG8S5cuiYD+/vvvJ2J97nDzzTeHo446KtDVXKR0OpefddZZ4Q9/+EP47W9/m7un
+RprrJE6YI8YMSIR1WdxiIpa6nK/uE88c3QCpsv2D37wg0AnbITu10OGDEmdt/ngwMSJE5OeGMjz
SyyxRFoPHz48fcgA4jS5eHbRsafNNtss3HbbbcnPP4xAMQINHaj3iPqx8ZoaL5GD4YEicFLhgsJH
RSB6as6aOZxQLvyIgyeKXhzSPAYbNRixE6d8uU066ufxcVnwVyxxqk8cMYzEYWPUhY36yqscjKqv
eHTiwmqvUZX2rdyqhy86rfGXj2pHVWFv2hdx+NYsJKhXtHnycHgdlpGNIjoM8/xwzPMY/AQavsqt
fcpfAOAvH/zzGyNf9Ah+XKqvuqpHTmyQnhnxlY5RsfirfpwmvfaBTWflZpJLohzYEdVXvXytfKqT
x+LPmt9eXcePHz+AN+tKYgJ1JYRsNwJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AE
jIARMAJGwAgYASNgBIyAEWgLCJhAXd1duv7668PAgQNTEOTRjTfeOKy77rrhRz/6USJAl8r2xBNP
hDPPPDNsv/32iXSd+1xwwQXhgQceSF166SANIRqy8umnnx7eeeed8Lvf/S707ds3hYhAzQJyKv49
e/ZsROJuqlZeN583h0CN/84775wItf/4xz8KpGi6UtNNG1L3n//857Qfuhlfd9114c4770z7ZC4p
RaBuLgZ0XT788MMTKfnvf/+7UqZO33T8pkP4oEGD0l4Kxhac0AGarsurrLJKIrBDnpbMN998ifj8
61//WqowZsyY1ImbrtV0Fy+Wxx57LHV97tOnTxg8eHAycz7OcOWVV6Yu5sUxdB5/5pln0jPDXkpJ
LXVFoCbfRhttFG688cZECOdZP/bYY1MZiOLc0x49eoRhw4aF3XbbLcSGpYHngQ8UIL///e/Dtdde
m4jhkPohxUIe54x8SACSO13MLUagGIG5556b7up7Rf2oeKkDNdxOEZDjtEBYhhOKXlxQ+UD+xMal
2DgtkKmZ4wt/VTnEb2VUDHb8xEPFF8EHYS1/cWHR5Zdi8ddemSuX9Kypq3yMqi8+Lr7SMSL4UQNR
Xc0ZVV9x1EDwzXOgY53vC13VoqRVB2YB2ohyabPS55sEHAErP1JpLkCJ1Vw2wGCuh0FrjaofXRI4
0iueEfKx6stP+8QfGzdBOt0QbMzJoZuNDlEdRu1Bc+WRnvr5Q4Be8eRX/VxHTdbYEZ2HDtRd4x8f
A/l0ViUxgboSQrYbASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyA
ETACRsAItAUETKCu7i7RnPHBBx8M/fv3D//9738LwXQf3nzzzVOX5k6dOhX0TJoiNdPVGPIqXanp
QC259957w2WXXZaIqUceeWRS5wRqCMR0Ny6WpmoV+2rdXAI15NgXX3wxnHzyyWGTTTZJ4eecc07q
QAzhe8MNN1TK8M0334QDDjggdSyGjNu5c+dkK0WgrgYDujWPHj06XHXVVWGFFVZIOZ999tlwyimn
pM7QkLlbS55++ukCURjs6fhNx23wo7MyZGG6ZEPmRkSQBpd77rlnlm3RRXq99dYLOcFaBGn8czwV
zPnpfl2OYF1r3ZxA/eqrr4blllsuleQ+8gEByOM8j3T/logsffzxx4eTTjopqffZZ5/wf//3f+HS
Sy8Ne+0FF3am0GWczuR0r+ZDAhYjUIxAQwdqHprR8YJArc7TuELqhB8qcidzuKO5D1xQXXFa4Kcy
R/DHrhEOKfHKxSg7c9mYqz6xiHxVX2ts5JBojl11sTHnDZ948VuVgxjmsikWP+1DMazx11o5GBHl
0lz7YS2ObR6r82GvWlS06sAsgM3owPnBtHFtlhDmCCCIEJwDRB4uYqVnTZxisKFDdFNYM9datfFR
TXR5Tf32Ji8+sjHHl1yKxcZaPqqPH3lYM9c6TtOceOVAR7z2qvqqo7X8pcdf9VUL3Q/i1SV+ImYQ
b/qVxATqSgjZbgSMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbA
CBgBI9AWEDCBura7BOEUsvJLL72UugtPmjQpJYJITdfonPzaHFLz1KlTU1ffzz77LEyePDnQ3ZjO
1FtssUU44YQTUm4RqCFo33LLLSU33pxaxYHNJVAfddRR4Y033ghnn312ItWSZ7/99ksdhiF5c/Zc
7r777nQOOhHT1RgpRaBWTHMwuPXWW1N3a4i81EbOP//8RGo/9dRTUyfvpGyFH//85z8TKZyu38wX
WoienTPlkksuSZ24V1999UQoR/vcc8+FrbbaKqy99tppfw2uheH1119PRPSVV145kbAx0OX7//2/
/xc4J4T8YunXr1+qTSd0OpqXklrqikC91FJLhX//+9+N0kIIHzJkSHjkkUfCmmuuWbANGDAgcN+P
PvrowD1G7rrrrvCb3/wmfRgAMjidqTfYYIOw9NJLF+I8MQKlEGggUO8Wbe/Ga2q8xCGF+ymiMjr4
niIXY0MYubBxwWMVl1U2YuGTolceRuWK0zAjXsTjhw2Rz8zVt/XFQ5UPdYhTfdbyIQeX8soXHfvB
D6E+PvIjl3w0x6YY5Y2qAicXP52ZvPiwRpQXHXNEe9E8KWv5QeF6RRtUHh1audmsQNWIrw5NPHMA
kg6isA6MHVueB7v8i+trzYgQJ39G1gh25VRd9NTFD2G/sqHXzVE+cqgeflyqq7nqayRPsY01eoSR
TtUI9bRP9NoX43zx6j5+/PgBfEqskphAXQkh242AETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIAR
MAJGwAgYASNgBIyAETACRsAIGAEjYATaAgImUNd/l7788svUbXjgwIFhzJgxqZs0BGd1lG6K1Dxx
4sQAGfbJJ58MX3xB09XGUopATTdnujqXkqZqlfJH1xwC9VdffRV22GGHAImbbsuLLLJImkOQrdSw
8te//nXYfffdU/lSBOpqMKDrN+RpOiTThRvs1fEZzDt2FFWs3GlbRw8udJKeMWNG+M9//pPwYa+9
evUKpUjJ7OL+++9PXZq33XbbcMMNN6SNQb7/29/+Fi644IICQTzf8WabbRboEP3444+HVVddNTcV
5rXUFYG6a9eu4eWXXy7kYiICNcTuNdZYo2DjeT/iiCMaEag5/xVXXJG6VX/88ccFX4jkJ554YqP4
gtETIxARmHvuucNiiy1GB+qx8fosXnA8ITfD+4TUCS8UQQffFS4oI3YRn4nJr7gscFzRK08ejx6R
jTl29IzwS2VjD6pPXdVHp/2pflQlnWJVnzidi3iEWPkxV3101CdWXFps6IWLcCCOC19J8Vpx2jdr
BD/Nk6KWHySpV7RhHVZgstZcdVjn/sx1MPaR+7FGiCGXwOPQ+Cm/cohcHE0JGN0ExTMi+DMnH3MB
zByRnTG366EiFr3Oy5wz8JuMOZLnZy5fbJqrvnylVw5GLtl1HnKg5+NAXSdMmDCAX/aVxATqSgjZ
bgSMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI9AWEDCB
uuXu0qhRo8JBBx2UEl5zzTWJUMuiKVLzmWeemex0Nd54440T4XbhhRdOnZsvvfTSkh2oZweBmq7E
dBpeZpllQv/+/QugQa6FKPuXv/wlzD///AV9PmG/SyyxRFKVIlBXgwFJTjrppNT1+6qrrgqQr085
5ZSw3XbbBTpkz05ZZ511wsiRI9P9XGWVVdJWfvjDH4ZPPvkkdemed955G20PojSE6byDM88N5zv2
2GPTuRoFxAWEbLqdjx07dpaO37lvtXVbikCtPdBFnQ8FPP300+H2228PsbFp2u/w4cMTuVx+Ho2A
EGjoQM0nLd6L1+fxgusJH5WLORfkTvie8EOZ52RP+aODT5qv8c/zyBbVSU9OLojN4p7iU3yRQ/WZ
qz46+ap+VBX2LL4uPvhqL/Khpurji+CLaGRObnyVT3nQyQ9dnoO17Kov32hKQm3tq0FV/UCCekU5
tMHijZNfPsyxAwo6YlhzYK0ZdcnOKJCYYxdIzBH0XMVEY2zaE76qL51ujPbBKD9i8/y6Sei0H9nx
RaiPsBf5kxPBN6+n/SqXzoS/YjTKlxxc/PZe3gTqiILFCBgBI2AEjIARMAJGwAgYASNgBIyAETAC
RsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJG4HuDgAnUzb/VjzzySIC0u+aaa4aTTz55lkC6Ie+0
006pk/RNN92UOg/jJAL1NttsE4455phC3AcffBD23nvv1Kmabr6LLrpowTZo0KDUYbnWDtTFtQqJ
S0wqdaCGsMu+IcH27ds3kX6VBhyee+65cO6554a11lpL6rJjMYG6WgxIzH2AsE0nagjUDz74YLj4
4ouDSMtli9dpuOSSS1Jn6IMPPniW+w9huEePHokkDImabrrIz3/+80T2vuiii8I+++zTaAeyQZTf
ay8a74YwZMiQ1PG5e/fuYejQoSEnXT/88MNht912S9236ULdlCh3c+u2NIE63xvdudk3XbPPO++8
QEdyixEoRmCuueYKnTp14oUwKl6044cXC89TAh8UYRSRWDoRn7Vm5IIvqnmcJiGnLrijxCLoWIuP
y4igQ8jDnBGbuKtxWtiP9osPc/lIj69yaK56qq860uPPpRyM+JCbudbixkZVQS8f5cSW5yJGdZQf
n5qExPWKNkwubZqNaU1+5vlh0eWbFzjo5csh0dPZWe2/lVejfLXGnzqsGVkjzPHlKhZ0+Il4ja9i
yYOeveR21ZOv6mmM7o1qyU97yPehWpxT8flDiF71ySu8F4zz7uPGjbu50ldKEFSpA3WfPn1wsxgB
I2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYgTkaAcio
yKtTes+yz7k6fBP2/ZkoQ7OYGyleeOGFtN5ggw0a6dvTgk7Ce+yxR+Ab7o877riw5ZZbFo4H54jO
zAMGDAiQX6+99tqC7ZlnngmnnnrqLPovvvgiEa7JR+dh4pB33303nHjiieHDDz+sugN1uVqFzZSY
lCNQc97XX3893HDDDamz8vLLL58IxHTIltxyyy2BTsrdunVLJOaFFloomSBG010Z8jXE4x49eiR9
MYG6WgxIAtmXzteLLbZY+OyzzxLx/Prrr0/5W/PHa6+9FjbddNOw5JJLBj54sOKKK6Zy3Psjjzwy
QILfbLPNwm233VbYxp133hkOOOCARKbn3iyyyCLJdscdd4QDDzwwLLvssgH8pYdsDEl92LBh4fTT
Ty901Z4xY0aAk0YH5z/96U/h8MMPT3nAAlJyx44dw/HHH18gbldbtyUI1F9//XVYb7310j0Bg9VW
W62AT79+/cJ9990XrrzyynTvCgB5YgQaEGggUO8Zl6PiNS1e/PKBAwo/FM4rvE/4njPiJZ5onDby
w58LwR/RLzGtlVO+jPJhrjrSUUv14b2qPr6I/MRjzfXosDOqvvyiqrBXxTDiL84rvtQnVvpi/i82
/HSRg7nqKjdrRH4zVzN/ykdjbmv2nMQtJRyazXCRlxFQ8puDDr9c8sNhz/0FKjECtTheudATrxqM
OfmZvIjidXbW2gOA66bl8ewjP0tcJlEOFtgR4rRvvsOAuuxDNxOb6sVp8mXNPlRfZG3FEaOc6JAf
xKtb/MU9gE+CVRITqCshZLsRMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIAR
MAJGwAgYASNgBIxAW0DABOrq7hJEZxFke/bsGbiQf//732H06NGJwAq5ms7RkgkTJqTuwxBtl1tu
udSp+aijjkrmP/zhD+H5558PEI/p4AxR9pVXXkmdhyEwV9uBuqla2k/xKAL1AgssEJZZZplknjp1
anj//fcLrhB9L7zwwrD44osXdEwgf5922mmpCzUdtH/84x8ngjPEa7oyb7LJJo26NRcTqMlRDQb4
IxdccEF44IEH0nzfffctdHBOilb8AYGejteQyOnyDZmaDuN0hAabu+66K6y66qqNdvCb3/wm6RXz
3nvvJdI0z8PgwYMTMToPADtI1DwLPBMQkSEf020bgjLkbcimCPXIj/BcQuCWVFO3JQjU1OWDAn/9
61/DD37wg7DzzjvTUTg8/fTT6fkAK571nICvvXo0AlkH6rERjc/jBVdUZGXmPPSQO8UX1RyOqfik
4rXig441c0Y4o/kaOzbiuYoFX5GVmVNf8cpZHK99SK8ajKrPSF5q4lcs0lGLC3/FE8c+tBdG1YzT
wjnQCxf55PXJi6jWzNW38VpXNRYnqyq4wZkcbFybZpSOg+pgcVqYC0iN8pMPIyL7zNW3AKlbs0DW
CEgQjHWuPC+5AJSRS/vSvmVjRJRDc52JWNVXTuqI7Myo3MQylyg3a/mgU7zyUUv1NdeaWOovEK8u
8WsmBvFJmEpiAnUlhGw3AkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbA
CBgBI2AEjIARaAsImEBd/V166KGHwnXXXRc++uijQnCHDh1Cly5dwjHHHBNWX331gl6Tf/7zn2HQ
oEEh8pNSt2GRsD///PPUQZjuxGr8SBfvbbfdNhGPf/7zn6fOwuSBUIu+c+fO4cYbb1TqWcZytWZx
bFBAcP3jH/84ixlC9FJLLRU23HDDRBam43MpoYv01VdfHehCDoEbIfaXv/xl2G233QpdkdFDoKbL
MiRgSTUYKAaS+QknnBDAnQ7ZYPJdCITxk08+Odx0002BcyMQPyFNX3bZZSXv/X//+9/Ubfqxxx4r
bBGyOvs/+uijC7p8QidzyMgff/xxQQ2ZmueOTuCSkSNHpk7oc889dyA/90tSTV3uCeR5Oom/9NJL
SpHG3XffPfDMP/roo43Ox/NMJ2yeefaKgM+ll14arrrqqkT4RgeZGiI9pPfv6j5R19K2EOAZju8x
6kA9Ne5eRE54oFysNddaHFdG+TPCJxXZOE6TDR/0jMTDIcVXcegQ+aEXz1T1sDPXha+4rvJnVB1x
XPFXXuXCB1/W1GFEFK9xpvbbmvkaH2oU50RHPcb8nNTElyuf5/WjqTYRWLVFz4xiwxxKwkaVlznC
xrkQgYoPc/liw4d1/iAoPzW4ccrJmIMVlwUhBxcxjPJjrvrU0jxOkx929NRXDGtqcVFfonVehzlC
jAQdudDJV2vqM0dkZ5ResaoPcVo1IFD3iJ+auimOFcUE6ooQ2cEIGAEjYASMgBEwAkbACBgBI2AE
jIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkagDSBgAnXtN2nSpElh1KhRYb755gsrrLBC
gBTblNBxGLLwPPPMk2JyX8jTkI/pYlwpTx5Xbt5UrXIxLaHnDOBRjmzdVI1qMKDr85lnnhnWXHPN
REBvKm9r2Njr8OHDE4mertsQxivJO++8EyA8zz///IlwXQmjKVOmhGHDhgU6kXft2jWsvPLKJUuI
eM9zVUqqrVsqRy06OmZ/9tlnoXv37oWO2bXkccz3A4GMQD0mnpgO1AhcT7pQw/NkzggfVJxQOK3o
87V06Jkj8hFfVPngtkpHDgTfXOSDXnxUfHnBqRYj3FXVVA6N0ZT2SC1ySMTtRa/6sjGil4/W1OKi
fl5P3FlsEuzkYNReqI8OoabWpeonp+b+UNLm+pfy02YZOZDAl54YHQQ7m8bGIdCjE0DomKMTAIw6
cJ5Tvsqj+sX5Y3gS8nADZFeN/KFQfmwS7Ud7kF5181H55Uu+XFQLu+pDitYDoPr4SYQRMcqLbaF4
0YF6oDtQA4fFCBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIAR
MAJG4PuAgAnU34e73L7OCDH3+OOPD7FZZjj77LPDuuuu274O6NMYge8hAnRy79SpU7949FHxmtwA
gcjD4sSKr9pgTlxROKEIPsy1hh8K+VoiXik58MFOfkRcU3TYc1+4qarPKB4rI2tyaR6nhfrE5fmV
E3/mshNLXe0Jm3zlh42LveFLDJdyocNXOsY8f1wW9kUMohjNVSMZa/lB0ZYQ5WFDOpAOTX5tFJsO
IaAYsUMaxs4DIKIxgCDKqwdh3qjTg4Y9r09+/ImVPk4T2NhUXz6MXBCZEfJSH53GOE1x1EdUX/uj
jmqRH2GUnTX5pFNN2VmTE6E+e1F9dIj2TR18uZaPn4AawNcIVBJ3oK6EkO1GwAgYASNgBIyAETAC
RsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACbQEBE6jbwl3yHoXAkUceGd56
661Ah+211lornHvuuTJ5NAJGoA0j0KFDBzrw7xGPMDpe0+MF53NavOCFijgMP5YLgRvKHH4o/nBC
8YMTSqz8GMVHjdNGBGn0xHCpDv7iupKXuernedGpPjzdnJOKHxf58cEmQU8sNtnxUX3sql/M/8VP
eckhX/F/ZYumgp901EJYk4e19oxO8zitTVSgtuiZUQKBXFxsjEsiPSOHQKQTqNIxkk858NeNQK+1
wCAPduVhjag+I3HKIX0eJxsjdt3IOE1r7RU9dbUP5VB9RuWK00Ks6uNP/uI47Aij6idFw5qcxGhf
2seCUdd93LhxN/PLtZKYQF0JIduNgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEj
YASMgBEwAkbACBgBI2AE2gICJlC3hbvkPQqB008/PUybNi2svPLKYa+99godO6rPpzw8GgEj0BYR
mGeeecKiiy4KgXpMvL6Il3itjFzwWhEInvBAxXNlFJeUUX5xmuIUzyheKTbFMUcUp1z4U4e16ou3
ih4da8UxR/K1YjVSXzmIV608DzlYY9d+FY8NQY+dfUCexl8X9TUnTlecFvTMiUfkq/VMbQ0/SdQS
ojxsnIMiOgQjkgMgnQ6CXYdRDkCBLIzIJn9G7HlO+eW/YbQHbPiy1gOiXKyRYl9qqhM0ttxf9UVm
Jgc6/IjRXGNUFQjQwgcbl9b4EI8or86i+tTBn7j54tXjgw8+uPnLL3memhYTqJvGx1YjYASMgBEw
AkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBiBtoGACdRt4z55l0bA
CBiB9o7AEksssXc845h4TY4XnFN4rfA8IXXC9ZRO3NCoSkKnZuzqBI1dnFjmxHHleuxwR6VnjuT+
2Mir+opnlH+cFuz4sV/lgLvKXGvN8SE3OdAheT5s2hf12at4sOgR/BWvszKSG8GPGES5VEv1tVd8
yKXcrKuW/ABVBzcEsCFtRCMm5nl+HUA2bRwfDil/xQgYPUSKE7A5MMSQT7mwEadcjLLFaaO5AGVE
NJKPHLIrB3o9JOiwK7d8oyrpiUfkp3Pmfvhov/gqn+rLnueg/gLx6jZ+/PgBX3+Na9NiAnXT+Nhq
BIyAETAC7R+Bxx9/PAwePDgMHTo0vP/++2HeeecNK620Uujbt2/Yb7/9wpJLLtn+QfAJjYARaBYC
zz77bLjlllvCU089Fd59993AJ4d79uwZ+vTpE/r16xe6du3arDx2MgJGoP0j8Oqrr4aBAweGJ554
IowePTrwVW09evQIm266adh7773Diiuu2P5B8AmNgBFoFgJvv/12uOmmm8Kjjz4aRo4cmb6utXv3
7uFnP/tZ2GOPPcIaa6zRrDx2MgJGoP0jMHbs2HDjjTcGyCAjRowINFDp0qVL2HDDDcNuu+0Wevfu
3f5B8AmNgBFoFgITJ04M//jHP8LDDz8c3nzzzTB9+vSw7LLLhvXXXz/ssssuYeONN25WHjsZASNg
BIyAEWirCJhA3VbvnPdtBIyAEWg/CMw111yhU6dOe8YTjY4XHajhgeqCmAznkwvOK3pExGZ0CHr5
sEYPIRSdROs8j+LxkV010Kk+fFTFkVP1iZGoPiN6LuKKBb32m8dLp5E4auZcWHSqg157Rae6GpWH
tUQ21vlc9prGvEBNCRqCig+EGoDIz8WBuCAD58DFZUHPHJuAV04BhR1RnpmrmT/ly0rx+Kk+em4I
HZ1VPz87+2KND3NEY36OmZZvbcqhmqyZMxKnvHGa1tQv3he++BGn+tJFVSN/9LL9IM67xQ7UA9yB
GpgsRsAIGAEjYARKI/Dxxx+Ho48+Otx2222lHaJ2/vnnD2eddVY49NBDy/rYYASMQPtH4KuvvgpH
Hnlk6N+/f5OHPeOMM8Lxxx/fpI+NRsAItH8ETjjhhPDXv/61yYPi88c//rFJHxuNgBFo/wjwPnDe
eec1edDDDjusok+TCWw0AkagXSBw/vnnB77WuSnZd999w2WXXRbmnlv/hNGUt21GwAi0VwSuvPLK
cMopp4SpU6eWPeLOO+8cLrnkkrDYYouV9bHBCBgBI2AEjEBbRsAE6rZ897x3I2AEjED7QKCBQL17
PM178fo8XpCTEXFE4ZDCCWWtCx1cUUYEu9b4IIzoEfiizLn4H0KMyhWnKQ/xiEjTzImjBlcpf9Uq
3g9x2LQ/rclN41/tK06T4Kf/UYWP9sJInmJ/dOSUsJYvOtmIY6768tO+8K1bVKzeRMrDJnWTdCht
PLfhL6DQs+Zg0jPXQcmn2DhN+jw3OuUiBpIy4CmOuYjTuoHU0U2L0wLIzNGTR/tSbmIR9KqfFA1r
cmJTLXzQqT42cpAbm+rjwyXRvlVffsTKj3g6UHeNBOqBJlALOo9GwAgYASNgBBojMGHChLDDDjuE
1157rbGhzOq4444LZ555Zhmr1UbACLRnBPgHx+233z51nW7OOQ844ID0j5DN8bWPETAC7Q+BnXba
Kdx///3NOtiuu+4arr/++mb52skIGIH2h8D+++8fbr311mYdbKuttgq33357s3ztZASMQPtDgA9/
X3fddc06GN2o77nnnvSB8GYF2MkIGIF2hcCpp54aLrzwwmadafXVVw9333136Ny5c7P87WQEjIAR
MAJGoC0hYAJ1W7pb3qsRMAJGoP0isMQSS+wVTzc2XpPjBecTgTPKJQ6oOKOs0YtXqrX4qNjgi4oI
TRw67MqBDRGXFD3CmNdT/TwWP9WXv/ISyxyeqojQrPFHx5jvjbwIPuyFkRyqxxrBhp5YRHp0uvJc
qqW4PCc5tH/FsK5ZBGLNCWIgmxII5NFcG0eHaM2Yi/x1YN0A8konf9b4y6a5cuDHXOBozONUHx3C
mjm+xEKA5gFgH9Jh14W/6muumvgwx46NHAh6+WqNTsKcGNXXQ0d94rBz6Tz4LhivLuPGjRvwzTe4
NC39n5grfP1NXnKm/xoLPpsmffr0aTqBrUbACBgBI2AE2iACO+64Y3jooYeq2vkVV1wR9ttvv6pi
7GwEjEDbR4DX/eDBg6s6yNlnnx2OOeaYqmLsbASMQNtHgNf9tddeW9VB3Im6KrjsbATaDQLN6Txd
fNgDDzwwXHzxxcVqr42AEWjnCPC6P/nkk6s65S677BL+8Y9/VBVjZyNgBNo+ArzuDz/88KoOssUW
W4S77rqrqhg7GwEjYASMgBFoCwiYQN0W7pL3aASMgBFo3whkHajHxpN+ES94n3A8ZzSMcUg6CJ4i
ecqHNXxRRCO6nDwtwid2LtaMxfmiKtnIDbdUBGj0uT/xqi+bcrJGsKOjBqNEceTLRf7KXcz/xS5R
LUbNwUtnwy+vI74senxYs69cite5reKcTdQryqEDcQPYVPGG84Piq4Pm8QJd8crFHhWDjlzcZOZ5
PDkhQBPPJcDw4VL+4lzRlHzzPePLzdTNIRf5RawWyVr1dT7qI8Thq5raC6NysX8uhFH1Wat+Ho+d
/MTPG68e48ePH/D116ibFhOom8bHViNgBIyAEWh/CNx8883hoIMOqvpgdGMZMWJE4A9dixEwAt8P
BO67777A19pWK/POO294++23w5JLLlltqP2NgBFoowgMHTo0bL755jXt/qWXXgq9evWqKdZBRsAI
tD0E3nrrrbDWWmvVtPEhQ4aE9ddfv6ZYBxkBI9D2EJg4cWJYccUVw/Tp06ve/G233Ra23nrrquMc
YASMQNtEgH8P7NmzZ+Bb96qVa665Juy1117VhtnfCBgBI2AEjMAcjYAJ1HP07fHmjIARMALfCwQ6
dOgQFl98cf5ja0y8RKCG7wmhU/xYRnSIiM1wTvmfQeKMYkPEiVW8OK+sxXlNjvEHJG1xT8UxpRbC
WvWJVX3pyKV42aKqwI8lRjVzOzqEeO01KRp05M/3zP60J+1fe9ZeiuPFuZVd9YnXnvK57MpT1Uii
lhDlYdSGGGEeadPMsQukUuBgR68ccZpyMJKnOAdg6aHCR/tgTg7VYMRGvOoTqzk23VzdAHT5pfPk
OSAzq77yR1WKIx92alCfOC6dQ/XREaszo0dUO7eTR2eiA/UKH3zwwY1ffskWmhYTqJvGx1YjYASM
gBFofwhsueWW4cknn6zpYFdffXXYe++9a4p1kBEwAm0PgT333DN9nW0tOz/nnHMCX7VtMQJG4PuB
wBFHHBGuv/76mg57/PHHhzPOOKOmWAcZASPQ9hA4/fTTw/nnn1/Txvfff/9w+eWX1xTrICNgBNoe
Apdcckn4wx/+UNPGd9hhhzBgwICaYh1kBIxA20PgpptuCgcffHBNG99oo43CAw88UFOsg4yAETAC
RsAIzKkImEA9p94Z78sIGAEj8P1BoKED9Z7xxGPj9Vm84IDC+4QjylycUEZxVeM0cU7RwRWdFi84
ovJVLP7oGRHyIiKLyqY4/JgrF3Mu4hiVL04LOagPkVsx8sVfPNc8Djv1GcVjVQ3VR4+uWJSPWMjb
jNRnTn0EnWLlz4heF3WY5/XjsjYhUb3C5vNNauPklp4a+VwH1mF0OPyY56ByUN0g5ZA/fth0k1RT
Mbk/Nw49Qgy+eZxq5CPxrBWntepHU6F+XpMbiw8iX2rhw1pjsU7niS4pL/Xw5UKwKxYCdddx48YN
+OYb1E2LCdRN42OrETACRsAItC8EpkyZEpZaaqmaDwWZ8tprr6053oFGwAi0LQSWXnrp8Nln/Pds
9cKHNe64447qAx1hBIxAm0Rg1VVXDaNGjapp7+uss0547LHHaop1kBEwAm0PgU022SQ8//zzNW18
+eWXD8OGDasp1kFGwAi0PQR+9atf1UxqXHjhhUP8lsq2d2jv2AgYgZoQOPDAA+v60ERsyhQWXJB/
XrQYASNgBIyAEWgfCJhA3T7uo09hBIyAEWjLCMwzzzxh0UUX3SOeYWy86EAN3xMyJyMisjGcUXTw
RSX46UKPD0IMnFVEemKVixh8GfN8qhHVycaoXLJpX9gQciCqgx9z6mvOiIjoTEy+P2z4cJGfUXtU
XvzRFdtzv7ym+LLyj6EFTJmrfvF5sFUlOlxVQUXOOryA0U1RbulzYHRwjRxEhypKXwAUvUDKgSlX
XyBSQ3NyaB/k0t7Ih4/2E6fJT2fQmhgu1Vdt+ZEjv+mqgV4+6JDcRj5I16qf51UcI3m48Of/cHSL
/3N0AF/ZVUlMoK6EkO1GwAgYASPQnhAYPnx4WHfddWs+0k9/+tPw8MMP1xzvQCNgBNoOAvzjYY8e
PWreMF+1/fLLL9cc70AjYATaDgL8tzckpVolfoVbGDt2bK3hjjMCRqCNIdC1a9cwadKkmnfNh7vo
XmIxAkag/SPw4x//OLz99ts1H3TkyJF1fYi85sIONAJG4DtHoG/fvuFf//pXzXWfe+65sMoqq9Qc
70AjYASMgBEwAnMaAiZQz2l3xPsxAkbACHz/EGjoQL1XPPmoeE2NF0ROLnig+SWduKBwTLEj2NBr
hKgsHqlyRFUSfBCNykE+/ocyeunyWOn1P53F8Y3uhVr4YId0TSxz5cjnUV2IUS3FMhaLcqAnD2cV
GRwdgk41sSHCSnp0zOWrEV3NoiI1J4iB2ohyQPBlU7o4tADCJoBFGMaGL2sBSE6BHqfJTiwPR8d4
KR9x+LLWWZQ3qlKc8mDHpvrk0R6JnzdeIj/jSz0EH4RY6uOn+nFaqK+bix+ivak+IzY9fKqPL/nm
a7BRG1/Vj9Mk2jt++C8Ur64mUCds/MMIGAEjYASMQCME6NbWu3fvRrpqFuuvv++Vge4AAEAASURB
VH4YMmRINSH2NQJGoI0iMGHChLDCCivUvPuePXuGV155peZ4BxoBI1AZAf7jelr8r/EvuOKXiDFO
jePnjPH6Mv5X9lfxv5K/bLjSPOpYF/TJp0MJ3axxilEerWd8+WUYfNQilTdcxqNTp07h3XffLWO1
2ggYgfaGQJcuXcJHH31U87E++eSTQPcSixEwAnM2AjPi3xifxX8amxwvxs/iF64y/zRen8e/V6bH
f42Y8VWHNE6PvjPiOo1xPtMWwsCT1gifThhR80Hfeeed0Llz55rjHWgEjMB3iwD/TfNx7En28ecz
rykN7xW8J0zjPSKNM983WH+rC2HQGX3C+LeH1rzhZ599NvCtOhYjYASMgBEwAu0FAROo28ud9DmM
gBEwAm0XgQ4dOoTYQIcO1KPiFf/VKnFT4XYi8ECZ64ITGv8rsBGHlH8Gkz1OC3xX6RiJi/+FmPIx
pw56+KXEx//TlC74qPiJt6r6qqFYcVixY5M9TpOQl/zSE8cawUZ9bORhpD521Y/Twl6Vg1Gx8iMv
eoR49oPoXNqD6mPHxhmR3G+mpoafKlpDaCFEOfID6WCMOgABzBHZiVU8B9ah5CMbeoAmjjm+qqec
WhODH2OeU7FRXbDjo3jsmuODKCc3WzdEc/lqZF+I9jxz1fhM+MjOyKU4/JVLPlqrJj48QOxFBOqB
7kANLBYjYASMgBEwAt8iANlg2WWX/VZR5WzXXXcN119/fZVRdjcCRqAtIgDhofNSS4ZpU/lGpepl
8803D/fcc0/1gY4wAt8TBPjH/8mRSDSFK/4voTRCLGqk65D00n0ue/RHx/pr/ot9DpDhl/YKMz59
t6ad0F3yqaeeqinWQUbACLQ9BDbccMOav6UC8vWbb77Z9g7tHRuBdoAAf3N8Ev/T4KMp8Yrkxm/H
DmFSwxrio/T8bVOvvDPgF+Gzd4bUlGaBBRYIEydOrCnWQUbACLQcAvznyifxPWLi5BD+Gy/GSfF9
ZOLkDmmddHHNyIdAa5Uxd+0XPnr91lrDw/vvv89XS9cc70AjYASMgBEwAnMaAiZQz2l3xPsxAkbA
CHz/EMg6UI/5/+ydB7icVbX+10BICCWNkATSaaKiIIoi6BUQr71XUFAp1+tFBP9XQUXFLnbBiw0u
Ip2LSG9SBEJChwSSENJJAimEEBJKqOe/fnvmnbPP5PQ+M2s9z3f23muvsvf7zTln5pv3W5/v3j/1
JT6oeK5wPBFaeKAQf9XHBuEjpb4FgzPKPGO12MEvzYnR+bx4ptIphrukGLTMKb/6xMWWsSQfkx9R
fsYcxMFHfsrvqjSfx8CGMX7sgVjotB/FUgyN3aScA3v0Wo9s8/zq49dhUcAOO2YOxGARiqW+9BoL
BPQCQTbaJHptSOALGMXBR4dsdXJ8Kvnjk/tpjJ3y60WAj2xpJdhCXMZeQh8b5ZceW9aOnjWprzE+
6LRO4iq/YroqxaZFp/z5mhSH+S39GO8V8859+WVCtS5/m7KJf+GMW1N5/ZZ3JcUBBxzQdCJGgUAg
EAgEAoFAlSOw3377GY+l7Iyccsopdvjhh3fGNXwCgUCgnyNAFbiZj5rNWFrww2zWY2ZzzvmYrZt/
badWfuKJJ9pxxx3XKd9wCgSqEQGqOvOlfzqcAAApAHLR2mcLiTBAH9KRqqlRLa07ZIB/Gh7gn6o3
8yO1pTH9Tf2jrt/gb5tUHAW3yXWFQkOTMXNlv5JteZzFynWX/c+RNuPm8zq1paOPPtpOOumkTvmG
UyAQCFQfAv/v69+0P//x951a+MEHH2ynnXZap3zDKRAIBFpGgAv3EBxXrms8Vq0v2MqnfLzebJXr
H/e2Izdu8X5ioF/tH+RH3tIfyPsU3mNs0pDer9DnfUtRV2wZ33HZL+zWC37Q8sJbmXnPe95jF198
cSsWMRUIBALdhQB/G/j7sdjvWViyxuzRJwv26Fqzx0oHN2i3R/gMs7mXStrc/07Q6jNO+vvA5x3+
Tmza+HeDz0Lp74e3M//1v3b9/361PWk2stlrr73s5ptv3kgfikAgEAgEAoFAoJoRCAJ1NZ+9WHsg
EAgEArWBQIlAfZDvZpkflQRqviXzT3NJ4IJy5MLlKg4+UTLnnwjLY/oIetkRS9+80ecWXezkm7eu
TrbYyUbzzEmIjT6fU19+2NDn0Kdf/wSb4suGPPLDHsEWO0R7UBzFlB5fYiB5X/P4MU9M+nl+bDot
BOsOyRefLzbX09di2YA2o/xsXIARgwN76ekTQwDh75cXmgAt0LFT37spTr5X8hBHeWSDn3T0EeWh
j07rQO+XNsp58NNadYKYR+RDHzvWrfzKw5zy00qPHfaI8GFukB87rFq16pyX/DHCbUkQqNtCKOYD
gUAgEAgEag2B008/3Y455pgOb2vrrbe2BQsW2JZbcq9SSCAQCFQ7ApA5IUo/sKxg072dt9LfwPMO
uyQQI1+cf7HNOv8QqTrUzpkzx8aPH98hnzAOBPojAqq2uNpJQxCHqJj2OIeTiuhLDzm6I6QivuiH
PLSZf6rN27y/mZMDNA/ZCAJB03n/IM0n6X4gc+//l536rQ90aiXTpk2z3XffvVO+4RQIBALVgQAX
AO97xOyKGQW7+pYZNutPb+3Uwq+88krbf//9O+UbToFAPSPA7yCVoZc7IXqFH8W2kNrlTnBc4cTH
tiq/8pZjkF/VH+xHIjjSH0i/oaxLc66j5X1LV+XJVUvt+4fu2qkwZ599tn3sYx/rlG84BQKBQPMI
8HmHvxkLnSgNWXrR6oIfZo880frfEG6k2ML/NnDwd6PYNjTV+d8NCNSdlRc2PGPfPXhH2/Csf2jr
oJx88sl2xBFHdNArzAOBQCAQCAQCgf6NQBCo+/f5idUFAoFAIFAPCJQI1Af7Xpf4IQJ19m104oiK
SC2+KLxTLkNBgPZPk+YlwBIvlMtb2DKneXFIpScGduilY8yh+PTxR9CRD3v6tMqPP/lZB59W8ZMt
/swrP76IcmGvOOgQ5aevPTBHHMXXOrDBn/yalw4bjsr8xFSu5vLj32ERUB12zBxYLAtTLC2SVhsW
ALhpXn6yQY8dQMrXu+WTJrCko0UUW/mL2uJPxcZXJ0j55aeceGhNWgsxOfD1yxrppDDGDqGvOOgY
I7TEUF5axvm8/GTDnPJ7N8WVTvn1AsVuCz8mLF++/PyGBm0Jt+YlCNTN4xLaQCAQCAQCgdpG4MAD
D7Tbb7+9Q5v8xS9+YUcddVSHfMI4EAgE+g8CVH56YJk5WbpYYXqJf8GZv1umQtzIrcxG+xNrRw9p
8KNYLe4vJ37CZt15TYc28q1vfcu+853vdMgnjAOBvkCA3wGIz1RVpGIaBOmV6wrl8aoSabo9FdP4
HYJMlBMDiuSihiLJyD/hMhbxCAJ1rck5vzzC7r7x/A5t68tf/rL96le/6pBPGAcCgUD1IMDf1qsf
NLvqgUKqQsnKufFj7c1ft8VT/tChjRx00EHGzaAhgUAg0DwCPA0DcvSjT/rh7/1VAZYxnwWe4+ue
VgSC45ZemmQrP2i3HNTQZMx7HN7v9LZcc/aP7dpzf9ahtO9973vt73//e4d8wjgQCASaIrDWPyct
XGU2348FjxdSC1m6pZst+BsxzL+dGzrYbMjgBtt6cysfVIruDbn5klPtkj8f16FUb33rW+2GG27o
kE8YBwKBQCAQCAQC1YBAEKir4SzFGgOBQCAQqG0ESgTqz/kuF/vht/YnfuhL3lZyVdHBF+XqlXik
2Ej0lTYterVcqVKsXK8YauGVNteXTvlppaNFyKE+Y/o6lJ+1kwPRusV1lQ0+eT//pJyTpVOQ7Ece
B7XWQh7maMmvvJqXn8Zu0nFhwV0VLZI49BEWxaE58jAWadi7G81rQ7Q6YdghbD4nGqPDDmAFjuIr
l8bEki8teoly4qM4tPLJY0Gg1knBH9/Kk0N8fBDmRLpWXlpENsRAGDOneHrByI41E0t78q457cPG
BoEaKEICgUAgEAgEAoHmEZg3b5596EMfsiVLljRvUKGlCgvVWEICgUCgOhCgKhRfbFJhekaJMA0R
NBcqwm27tdkYyNJOmqbf3Jea659cZX/49gftsUUzc/cW+5/85CftzDPPbHE+JgKB3kSAD4pdrbbI
enNidCJIO6loi4HFimlbliqobe6tPqj25h77U66XXnzeTv3m+23hrNvbtax3v/vd9o9//KNdtmEU
CAQC1YPAC3718NZ5RdL03Yv8oh5/jF22ciLVLqMabKfRRYLmn7/3MZt913XFyTZ+Qm666qqrbNAg
/wMcEgjUMQL8OvH0i6VrvHRPOgqpZQxJOn+iTCVMvJ+BHM3vYrF1gmM27o6K0ZU5u2v8t5O+YPfd
fFG7wu222252xRVX2KhRo9plH0aBQCBQvJl0rj+Vau6Kgj2cWr/JtOIagnDiBovhTpSGLD1si4Zi
66RpnpjTH+T/fn+MTb3q9HYtZcKECXb55Zfbzjvv3C77MAoEAoFAIBAIBKoJgSBQV9PZirUGAoFA
IFCbCBS8ksaIESMO8t35N9a2wQ+RjCFKi5sKJ1Q8V82XriiX7bHhqPRhDJeVr+c0T4u/xoqJLX1s
8VEsbJUfHwQddrJHzwF3FtFY+dE3FyPPqX7uk8cSPzbfCzGxJx9rUv58f8zhgw5bWkRj5jstBO6q
EEMLZFH0tSm15JA+B5LFY5P7A4I2hR5Bx0lFBBJziiV//JgXUMqfx5EPa5W95hnnJ0px0OGH6PII
PpX+xCQ/R2Us7HO98hOPOcVjnOPow5ST/NhApEa29GPsihUrLnjlFVK1LlGBunV8YjYQCAQCgUCg
dhFYvHixffWrX7Ubb7yx1U2ecMIJ9u1vf7tVm5gMBAKBvkWA6rgPrygRppcVUqXpdV4tKhcIE1SV
prr0GCdMj/B3ze2tIPf0U6vtwpOPtgemXZ6H3Kh/zDHH2E9/+tON9KEIBHoSAYh5qdpiqrRotuzJ
Qqq8uKyD1RZTpUUnQavaoiowQpiuxWrRPXVOIFFf8Luj2qxEHTdn9dQZiLiBQN8hMGe52ZVeafqG
h8z0PoS/nxO3ceL06AbbbljxAl6+wvaQnKg8feqppwZ5Ogcu+jWPABfBeUIGN0UWj0JqF/v4meeb
3z7V3Xn/MqRU9XXI5sUKsEOc2Egl2P5MkG5+R021l53+bbvp763f2M2N4r///e9t5MiRTZ1jFAgE
AmUE+B892/9nP+TH7McKfvhNp8+Wp8sd/mYM9+sGI5woPXzLhnQNAeJ0fyFKlxfaTOfac35q15zz
k2ZmGlXvfOc77ZRTTrFJkyY1KqMXCAQCgUAgEAjUEAJBoK6hkxlbCQQCgUCgShEYMGCADR069GBf
/lI/qEAtjictl78QyJ3wUFV9WpxU5rFDxB2VP2P18RdBFL3I0cyjR4coHvHRKz+t8nu3zK2lrxzK
jx+2GqvFVnHILx6s8mOn/JrDR/7ocv6v/MivfPgrPzrNoZNIrxz4dElYYHcIcVicNiFAFJ85bRob
DnTMczDHATlYG/dukjyWNiydgGCc51efFsFOcZUfnfzIjR7yMv18bT5Mopj4KL/sGRMPwV/rYh7R
WOuRTn74IIqntSkXc/LV2vySsE1etWrVOS+9pNcWZs1LEKibxyW0gUAgEAgEAvWDwCWXXGKnnXaa
3XLLLeVNb7755nbkkUfaF7/4RXvVq15V1kcnEAgE+gcCz71gNtO/5KS69PSlfOm58WN0qSpHZelU
YdqJ01SH6qrMuvMam3bNGTbzjqvLoTbbbDM77LDD7NBDD7U99tijrI9OINDdCPC6f+QJHQVbXOpD
lOYmgpakmqsttrSnatDPvf9fdsf1Z9u9N11YXi7VBj7/+c/bIYccYnvvvXdZH51AIBCoXgSe8Mve
1/lDKq5+sGALH2/cx0h/PtzOTpreYVuzQboK2DjdpLdo9h125z/Ptjuu+5s1NOgSp9mnP/3p9Pdi
//33b2Ifg0Cg1hCgavtCJ0bPX2U2b2Wh2Hr/aeryNCO8txnqV8CLR4NBkKZP294bJJsJWxWqZfOn
+9+Ks2za1WfYyy/zvVpR3ve+96XPJO9973ulijYQCARKCFCh/oFlHMWbrZf456jG/7ZFI/6ubONk
6W38//c2WzWklpsxqllWLn3Ybr/mr3bblafZiy80/kF9xzveka55fvSjH63m7cXaA4FAIBAIBAKB
NhEIAnWbEIVBIBAIBAKBQA8jUKpA/TlPs9iPp/2A98kFHXif4qnSih9Kq4+sfPOX2+PDPGRQ+szT
SvRNITYczGmeOXTEw19cV+ViDtGa6Of2isW88ioHtsTTutBjJx6rd1MsxcOfOYlykoM+Ih3rVT6t
Wf6V+WWnGFozdp0WAdjpAJmjNqjNM84Xrc3SylabJYx0zLPJHGjGzPNVBC8wxfBusmOOAx99XcE6
lN+76aQwn/syzxjBXv46QeiJizBPbF4IiqGctMzjhw1jDq3bu8lH8bFFyK/1ElPzzOGLyJZWBHNs
/TKPTXAC9blBoHYkQgKBQCAQCAQCgXYgMH36dNt3333LlnvuuadNmTKlPI5OIBAI9C0Ca70aFF94
ijDNo3UrH89NJahUYXqoV5h2wjTV53pCnly11L5/6K7l0BMnTrTZs2eXx9EJBLqKABWlIUUvcOLQ
/FVFEtECJ+Ut9wrT+jCY5+AD5hb+ei9XWxxcqrboX/hDJKr2aov5Xqut/+ILz9nXP9RYAXLLLbc0
/6xebduI9QYCgUAFApA9p8wzu2Zmwe5c2PieZLBX7N/RCdMQp3lf0lH5xkdG2QsbKERSlNWrV9vg
wf6HPCQQqCEE1nrl1/n+Xn6eH3P9fQ4tN4hVvrdnyxAa+V3iGObVX4f5rwPVYNu6KaGG4GpxKz/4
/GtszcpHyvNz5syx8ePHl8fRCQTqGYHlT5nd678e9y4u2D3ePsFX1JkM8G/RIEtvuzVHg23rpOmt
qpwsnW1vo+6vv/p2WzL3vrJ+6tSpcfN3GY3oBAKBQCAQCNQyAkGgruWzG3sLBAKBQKA6EMgqUC/x
FfPsZPFV4YHSp0XUwvv0ckplrilzIlzTxweeqL4uFGlZesbikyoHXyNiTys7xsqPXvnhqiq/d5Mo
BwPsWKPiaU5jxVdOxvQR5Zc/sfBD5E9+7Vd+isFY+fFBNIc/+2aeFlt0jLskWkRXglQuSAslJn0W
KgAAB1AFkjZNiy0bZk4bF7mYjWqt6sseG+bIgR9jAaM8rkrCnPKjkB+t1oYNcYgPYVnrZ4xoL4zJ
o/zMaSwf+TNHDsWmRdAhmmNtzBFH+b2bcjLO7f1yj41dvnz5BXnVGoybk6hA3RwqoQsEAoFAIBCo
NwSCQF1vZzz2298R4AvPB5aaV5cuOGm6SKrgjbSEynJUhoIoPdoJ0xCne4tIEQRqnYVouwuBlf54
ej0+epZXU5+zwq+icHmiQjb1T37laosQiZwoTWV1SNID+FQY0u8QCAJ1vzslsaBAoNMI8D5k5rIi
afrGh8zWlwo5buJ/fycMN9vJSdPjvO1K9dsgUHf69IRjP0WA9zjc+JiOFQV72PurXFcp/N7wHmeE
ExpHOFF6hL/Ppz+YK+ghzSIQBOpmYQllnSLA03juX2J2+4KCH2ZL1jQFghuc0s3WQ4rXDvj70pX/
102j9/9REKj7/zmKFQYCgUAgEAj0DAJBoO4ZXCNqIBAIBAKBQPsRKFWgPsg9/Ntu44qyyMHwQBE4
qXBB4aMiXIZWnzF9OKEc2OHHN4LoxSHNfZgjBy3z+ClePicd+XN/H5bt5Yuf8uOHDy1+zNHqYI78
iqsYtMovf3TiwmqtrkrrVmzlwxadxtjLRrldVV6b1oUftp0WAnRVtHjisHltlpaFItoM/Xxz9HMf
7AQatoqtdcpeAGAvG+zzEyNb9Ah2HMqvvMpHTOa4ZEuLrXS08sVe+b2b9FoHc9orJzO//KsYzCPK
r3z5WPGUJ/fFnrFfbrbxK1asOO+VV1hu6xIE6tbxidlAIBAIBAKB+kAgCNT1cZ5jl/0TAd7gLnrc
q0svK1aYhjAN2SIXKkSN8upQo/0LT0jTVIpC1xcSBOq+QL12ckKMfsgJ0rOdKD37sYJBmH58/cb7
28orSlNhsUwk8j4Vpgt8+gypGgSCQF01pyoWGgi0iMBjXv3/2pkchfR0ABmOdIInpGkqTnfXTVxB
oBa60VYjAiv8BkhuAnsYorS39HmKTKXwZIzi+xsqwBbJ0lSY5kaxkPYjEATq9mMVlrWJAH9z7lhY
JE1TbfrZ7AZU/i9vN9SPYQ22/bDiDRq1iUL7dhUE6vbhFFaBQCAQCAQCtYdAEKh77pzynerTT1c8
5qMi3V577WWDBnX/Y0JPOukku/POO+0Xv/iF7bzzzhVZmw7XrFnT7NNDhw4daqNGjbLRo0c3dejC
6JBDDrEXXnjBLrzwwi5E6TvXmTNn2uLFi1tcwK677mo77bTTRvOPP/64nXfeeTZ//nzbaqutjPP+
kY98xDah4kALct1119ltt91mnJ/JkyfbJz/5SeNJrx2RzuTtSPywDQS6C4FNN93Uhg0b9lmPt9gP
VaDmF0QEZO+WCct8ZY6eeb4NlA3kT+Y45OvdMpmaPrb4KIb4rbTyUUy+YVdM76Y+Lb6yx1Y2yk0r
X++W10qfOYnWTV7Fo1V+OLSMEeloEfRiACgvesVXfvmRA2E+j4GOsfwYd0oUtFPOJSctRLG0WOnz
RQKOXgSyI4z6AhRf9TUHGPT1YtBYrfK7SQJHevnTQj5Wftlpndgzx0mQTieEOfrEYF3Mo0OUh1Zr
UF9xpM/J0vgqDnGJr/yKqZyM6SPaDxWox69cufL8l1/GrXUJAnXr+MRsIBAIBAKBQH0gEATq+jjP
scv+gcBL/q4ZUgVE6RleYfqBZWZP8ZExE77wHO1feI4pVYii2nR/qRAVBOrsREW3VQT4gLbUH0k/
00nSMx8t+GG20G8WeIWJTAb5p0EeG61HSEPK45H1IdWPQBCoq/8cxg7qE4GnvRbITXOK1aZ5Iob+
bG/p3/tBmN5pVPEJAN2NThCouxvRiNdTCHDzFwTph5YXbM5y7/uxtuL9PLl5P7ON3wTGe/lttnKy
NDeEeekPXRDvqfXVQ9wgUNfDWY495gi87NcRHvTPU9PmF2zqfL8Je3U+W7wxY/wI/2JsREP6bBU3
njbiEwTqRiyiFwgEAoFAIFBfCASBuufO93/+53/awoULW01w5pln2vbbb9+qTWcmv//979u0adPs
5JNPtle/+tWthpg6dar94Ac/aNEGQvAXvvAFe/Ob39yiTXsnPvaxj9mGDRvs6quvbq9Lv7LjnF50
0UUtrun444+34447rsn8/fffbx/60Ifs2Web3j29zz772KWXXmoQRyvlsMMOs8suu6yJeuDAgXbW
WWfZu971rib6lgadydtSrNAHAj2NQKkCNQTqR/zg6pkqT5MaUieXyUTupA/3NLfh0rQO75b5qfQR
7JlXyy8e/opFq3n6mqOv/PgislV+jZkjhkR95pWXOfrwf/EXv1Ux8KGvOflip3XIhzH2GisGLaJY
6ms9jNk//rmv9sd8h0VJO+yYObAYbTjfmBauxeJCH2ET+iuaA0QcDnylZ4yffJhDh+ikMKavsXJj
o5zo8pycTIS42GiOPrbEki9zjGWj/NgRhzF9jb2b+vgrBjr8tVblVx6NZS899sqvXOi8ZoeNW758
+QUNDaRtXYJA3To+MRsIBAKBQCBQHwgEgbo+znPssm8QeM4f1DPLv+iELD19qfedTLqBh/dkQrXd
9EjdocVH6lKFrr9KEKj765np+3Xx6OiHnEDETQEPLiv4sTGZiBsBIA9RUX3k1v7lvrc8sj6kNhEI
AnVtntfYVW0iwN9wKllSaRpi1guly8RUy524TZE0vZ1XseTCW09JEKh7CtmI2xUEuKGAp2fwHoen
Z/AUjdXNFBqDLM1NYByQpSFN8x4/pGcQCAJ1z+AaUfsXAk8/X/zffNu8gt2+wGw9DzsuyUD/Rozq
0uOGN/jhX4oN1Ey0lQgEgboSkRgHAoFAIBAI1AsCQaDuuTMtAvUHP/hBGzHC72JrRj784Q+nisTN
THVJ1RkC9YQJE2z//fdPeSE5z5492+bMmWMvvviiDRgwIJGsqZzcFal2AjVVo6dMmWLf/OY3myU+
77vvvvaWt7ylDNHzzz9v++23n82dO9fe+9732uc+9zlbsmSJ/eUvf7FFixbZd7/7XTv22GPL9nQu
uOACO+qoo1L17yOPPNJ23313u/jii1PVbqqBQ4z3Sr1NfCoHnclbGSPGgUBvIlAiUH/ac/o3hsan
WnFI4X6WrkAnHZedRS5mDqHlYI4DHisH/FHNEY8xevrY0SqWd41v5dFjxxwim+KoOI+PeKiyIQ9+
ys9YNsTgUFzZomM92CHkx0Z2WiM26jMnH8V1VZmTi532TFxsGCOKq7Wg01rUp+2UkLirogUqjjat
2CxWoKrFVpvGn74Aw94vi5TBF3h5HOZlX5lfY1pE8bDHjzHCvGJqLegBGjuE9WoOvU6O8hND+bDj
UF71lV8tcSrnGKNHaP1SdBLyaZ3otS5aLk1PXLFixXmvvKItuaYFCQJ1C8CEOhAIBAKBQKCuEAgC
dV2d7thsDyNA9TmIo9OdME2V6blOuKDqdC7DnCA9ZghVpouE6WoiVwSBOj+T9d3n5gC91qcvcVKR
E4tEuBMyfJE/yl/ro5wsDWkaMlE8ol7o1H4bBOraP8exw+pGgAtq/B3/56yC3fhQ4xMxqFq5vT8J
Y0evNA15GhJ1b0gQqHsD5cjRGgJUeOVpGdzwOMvJ0twEuWSNXyjX1emSM0+LEVmaG8LoU6E9pPcQ
CAJ172EdmXoXASrcT5lnduvcgt33SNNrCVxHGO9k6XFeZZobsPvLU6p6F6GOZwsCdccxC49AIBAI
BAKB2kAgCNQ9dx5FoD7ttNNs4sSJPZeomcidIVC//e1vT4TePBzk6VNPPTVVjB40aJD97Gc/s912
2y036VC/2gnUe++9tz366KO2dKl/qdcO+eEPf5iqgL/xjW+06667ziCJIrNmzUrE6s0228xuvfVW
o8o3smrVqkTAXrduXSJMH3jggUnPD6qAX3HFFfaZz3wmnZPyRDOdjuZtJkSoAoFeRYBK7H5jwGc9
Kb9c/ok3cT9zonLxl6dIeIa/CheUlivSEI+Z58pcfviwzHFFz7fw2OX+6BHN0WcePa1f3SvP4cua
lFctOq1P+V2VdIqr/KxX+8IfwVd2Wp/syU9fXFp8sCUOrXDAjwNbSeVYflo3YwQ79ZOiMz8I0lXR
grVZNqPNq688jHN7+toY68jtGCOKJfDYNHbkUzxiALoEG50E+dMiyk88+tiq793yPHP5vF5Uyqn9
YkN+SM/0EWwUU/nThP+QXz5PX3rFoOVQLO3HVUnvl6xt/MqVK897+WXSty5BoG4dn5gNBAKBQCAQ
qA8EgkBdH+c5dtkzCKxcB1m6WGEawvTi1cU3qsrGl5qQRvmCc8wQJ5F6S4W6apUgUFfrmev6up/3
j/4znUh07+KC3bvEKzE6uSi/OYAPacOpLu2v8dH+Wuc1X003B3QdoYhQiUAQqCsRiXEg0D8QWOTv
VSBNXz/b7LG1jWviCQGQpnfctm8qWQaBuvFcRK93EHjKb3zkvc3MR/3JGd5SZfq5F5rmHuBXpvnd
4KkZenrGkM2b2sSo9xEIAnXvYx4Zew6BR580u/lhjmKVe774QriWwGeqCds02AQvbLh1/O0pAtPB
n0Gg7iBgYR4IBAKBQCBQMwgEgbrnTmVHCdRXX3213XDDDUbV4QULFthtt92W2m233dbe9ra32ac+
9alUCTpfMXb43H333UbV6Fe/+tV26KGH2v/+7/+mSsUnn3xy0uU+lf2pU6em6tLNEaixpSDlj3/8
47SePffc00466aTKEHbzzTenNcyYMcOGDx9ub3jDG+yd73znRsTxlgjUjz/+uLGOe++91x5++GHb
fvvtbZdddkl72WorqF1mP/nJT+yJJ56wY445ZqO45P3b3/5mr3rVq+xLX/rSRuvrLsWkSZNs5MiR
ds8997QrJBWpqeJ95ZVX2lvf+tYmPl/+8pft//7v/+znP/+5HXHEEWnu8ssvty9+8YvGubj00kub
2FOx+s1vfnOqPj1vnt9N2Yp0NC9Eec7NzjvvbLxuf/vb36bzAfYf//jHE+bOrUsEeipgNzQ02Jve
9Cb71re+ZTvssEOTlSxbtsx+9atf2f33329r1qxJeznggAPsAx/4gG2+eXxYaQJWDMoIlCpQf8YV
fuXNnvWDj7zwUTnoc0Du5CtG+KH0c7Kn7NHBIc3H2OdxNOfqpCcmB8RmbBFsKg9iKD995UcnW+V3
VdJprPzYqi8bcio/a0eIh6ilTyxssSGG4qCTHbo8BmPNY6O1ercs6LSusrKjHQJ0VRRDm6lcOPFl
Q595QEGHD2M2rDGtDs3TCiT6zAsk+gh6jkqiMXNaE7bKL51OjNZBKzt88/g6Sei0Hs1ji5AfYS2y
JyaCbZ5P61Us7Ql7+aiVLTE4+Ms8KQjUjkJIIBAIBAKBQCDQTgSCQN1OoMKs7hHgjScEaYjSM7zC
NMRpCNS5QLLY1r/kTBWmIUw72WKA3v3mhlXaDwJ1lZ64TiybaovzVprdvdiPRV5RfVnTCtO6OWCM
Vynl5gC+3OdR0iGBgBAIArWQiDYQ6HsEeL8CYfr62YX0t10r4kaXHZwwDXF6uFe27EsJAnVfol/7
uXkfv3RNser6A8sK9oC/r1nyRPFCdb77oYMhShefngFpGvI073lC+hcCQaDuX+cjVtNxBCBN3zTH
/AkQBZvrn7kkXDsY50/thjQ93knTVLwP6RoCQaDuGn7hHQgEAoFAIFC9CASBuufOXUcJ1JCeL7zw
QqNaMUTiwYMHJ/Ly888/nxb5vve9z4499tjygqmCfPTRR9uzzz6bKhtDdl2/fr3RQvJdvHhxqn4M
qbo1aYtAjS/k2UMOOSTF/sc//tEk3DnnnGNnnXVW0o0YMcKeeeYZY81Dhw5N+SFDS5ojUD/11FP2
X//1XwaJesCAAUYMKjEjEyZMsN/85jc2ZMgQ+8Mf/pBIxQcffHCqxqyYtL/85S/t+uuvT3E+8pGP
5FPd1gfn8ePHG1WowQCCMGRvdJCjOV+5QDwfN25cOoePPfaYbbKJqGtFq3PPPde++tWvJsK8SOkQ
lyGrf/vb37b//u//zsOl/utf//pUAXv+/PmJqL6RgSs6k5fzxXkCb4isVNneYostjErYCNWvb7zx
xlR5m9fW6tX+BagLPpDnt9nGH03nMnv2bPvwhz+ciNPE4ryhY03777+//f3vf0928SMQqESA3w+/
+YIK1Iv98FIGiRfLZToJfFCEVkRi6UR81piWg1869b2bhJg6uJKHL4KOsfi4tIiu9hGHPi1zfKNP
H9F6tF709GUjPbaKob7yKb/ySI89h2LQYkNs+hrnf2Ckl41iunmTWPgoDz5dEhbZVdGCBZI2rjHx
6eebRZcvXuCgly2bRL+ZH5zwPA++2MlWY+zJw5iWMUJf9kmR/UCPHZdo5CdfxuhZSz6vfNhxyE+t
q1I+WkR2WgOtRLnYp/zZK2tijF75vVvGwS9r28Tly5efy90xbUlUoG4LoZgPBAKBQCAQqAcEgkBd
D2c59tgZBKiuO3dFkTA93QnTPOZ+LR/vMuELTYijo4cWCaQ8wruWSRZBoM5Ofg12eX3ftdDs9oWF
1D7J/eAl4cMa1dS3c8L0dsOKr/fN+IQWEgi0gEAQqFsAJtSBQC8hsNb/hkPOgjQNWVSXyXjvMmmk
k6a39b/l/jc9vxjXS0trNk0QqJuFJZSdREA3gnHjI+/j+R1Y80zTYLyP4b07NzxuW7rxsZqfFNN0
d7U9CgJ1bZ/fWt3d4/6w4hseKv5fnrO8cZfchApZepKTpscN9y+6+GYspNsQCAJ1t0EZgQKBQCAQ
CASqDIEgUPfcCROB+vjjj09E08pMEFQnTpxYVotADYEVovS73/3uRESmMvWf//znRGylYjHE5Jdf
fjkRb6n2S7Xir3zlK4lQ+8gjj9iJJ55oEHaR7qhArQV+4hOfSITaM888s7wfqmT/8Ic/TGv62c9+
ZjvttJNRzfj000+3Sy65JBFy6UuaI1D/+te/tuuuuy7tA6wGDhyYCNvsY+HChXbcccfZgQceaFRd
PuqooxIp+YwzzlBIe+mll1J17ueee84uuOCCtJbyZDd2qABN1eXXvOY1CX/I05JBgwYl4vNhhx0m
lS1ZsiRV4qZqNYT4SrnllltS1ecDDjjALrroojTN/tjDH//4x7SnSh9I9HfeeWfCi7U0J53JKwI1
8ah2fvbZZydC+Pnnn29f+9rXUhqI4pzTyZMn26xZs+zTn/60Od/OeD188IMfTDbf/OY37bTTTkvE
8O9973vpNctrkT1CkIfkThXzkECgEoESgfpg1y/2g7tGxPnkkjScV3iffNP4oh/iiXq3iR3kTxFA
sUeIg2jMPDFlSysb+sojHbmU3z+Vl/Nji8hOl85zPTrmaZVfdq4qr1U+tNizT/mRH1/pK/m/zBFT
BzHoy1+xGSOyK46KP2WjNp9rd5/A3SVsmsVwEJcWUPKTgw67XPLNMZ/bC1R8BGqlv2Khx185aDn5
xFPr3XJ+7R0/rQHAddJyf9aR78WHSRSDAfMIflr3QO8rv04mc8rn3WTLmHUoP+tVfq1HMZlDqJcz
we9cOo9/qG1JEKjbQijmA4FAIBAIBOoBgSBQ18NZjj22B4Hn/OPZbL/+RGVpKkzPetRvh+UjWyZb
DipVly4Rpvu6WmO2tF7pBoG6V2Du1SSLVptNnW9227xCeow9hCPJVv58n7FeAW17J0xv721UQBMy
0bYHgSBQtwelsAkEuheBp/0y9C3+Pc8NXtHynsV+8a101Y2KlhOcnLWDk6YhZ/XHm72CQN29r4V6
i8ZrnSqu9y8xu2+JE6b9/Ty/D7ls4VekR3HjY+nJGVFdOkenuvpBoK6u81XPq33G/w7d7P+Xr51Z
SH+f9FkL0jT/lyePbLCx/fT/cq2ctyBQ18qZjH0EAoFAIBAIdBSBIFB3FLH224tA3ZLHrrvuaqec
ckp5WgTqd7zjHXbCCSeU9RSE/NSnPmVUaqYa82677ZaIxcQfPXq0/eUvf2lS/RjSMXNIdxKoIcfe
d999aW2sEfnpT3+aKhBDdt53332Tjh+s+YgjjkgViyHjsk6kOQI1lZ0h8G699dapAnUy9B9XXHGF
/f73v0/kXCptI0ceeaRBEv/Tn/5kO+ywQ9Lddddd9p3vfCdVhobM3VMybdq0MlGYytJf/OIXU7Vs
KnhTWRniO1WyOVeICNLgcvnll2+0LKpIv+Utb7GcYC2CNPY5nnJm/1S/bolg3dm8OYH6gQcesLFj
x6aUnMe99trLII9zLqj+LRFZ+utf/7p961vfSupDDz3UrrrqqvS6/uxnPyvT9NqlMjnVqyHIhwQC
lQhkFaj9Sp1Rsgmu6It+wAWlTwu5U3xR9fmmsnRlO9n5MNmgww97Wr/q3WTMPHP4Z992+qgo+JBD
flqH8it27q91KK5y0CoOLXHxw65SpCO+1i1//FiH1kKrnN4t7wM98ZmTTZ6fuIhyFUeN/hp3qK0M
1iHnkjExWLgWTSudNsM8ok0KSLWyk00y9h+az8fYUpWZOfqApBaQIBhrX3lc7LGl5dBatG7N0SKK
ob72hK/yKyZ5yKtWsfGlL1FsxrJBJz/FI5fyq68xvuTn+QnjVqxYcQGPC2hLgkDdFkIxHwgEAoFA
IFAPCASBuh7OcuyxOQSe8mq7VKODLE11uoe92jRVp3MZ5rfnpQrTTrQY44QLCKX1LEGgrv6zz4er
h/xGgZsfLtgtc4uPs9euqHbG63zciCLBjsfYhwQCnUUgCNSdRS78AoGOIfDcC34TzHwnTXul6TsW
+hXo0qVSSNKQpSc7aRqSVn9/akAQqDt23uvdGhIiT4q5b0mRMM17eYiKuQzx9zG8jx/D+3ivtr51
nb+Pz7Gp9n4QqKv9DNb2+vn7dPcis6sfLNit/nnreb4KdRngn7WoNK2bmaLSdBGXnv4ZBOqeRjji
BwKBQCAQCPRXBIJA3XNnRgTq/fbbz4YN86ojFTJmzJhEKJZaBGr8IBrn8pOf/CQRciEI77333qmS
7y9/+Ut717veZd/4xjdy09Q/5JBDUhXn7iRQf/WrX7U5c+YYa4FUi3zhC19I1a4hOA8e3PRLgssu
u8yo0kwlYqoaI80RqNOE/9iwYUOqbLx+/Xp7+umnky+VqfM9UoGbitYQecmN/OpXv7J//vOf9t3v
fjdVsU7KHvhBJXBI4VTZpr/VVv6oqpKAM+fmda97XSKUo7777rvtPe95j73xjW9M65Ot2pkzZxpE
dIj0kLARqnz/61//Mvb5zne+U6bllvNK7r/+9a/2oQ99qKzPO53JKwL1qFGj7KGH/HE4mUAIv/HG
G42/Fbvvvnt55rzzzjPO+zHHHJPOMROXXnqpHX744YkIDxmcytT77LOP8VoPCQRaQ2DTTTfl7yQM
/cV+bPBD38LzVSUHY/U1FseVVva0/qk6kZRpEXTYMKbFHw4pevmhQ2SHXjxT5WOevg5sxXWVPa3y
bOp9BHvFVSxssGVMHlpE/mqL2sac+RgbclTGREc+2nyf5MSWI+/n+X2qcyKwOudd9GLBbErCQhWX
PsLCORCBig192TKHDWOxztEpPjk4cYpJm4Plw7IQgwMfWtnRV35yqe/dZMc8evLLhzG5OMgv0TjP
Qx/BR4KOWOhkqzH56SOap5VevsoPcVo5+O892R8XcI63bUoQqNuEKAwCgUAgEAgE6gCBIFDXwUmO
LSYEVq6DLF0kTFNlerFX3uUNpQSiEZXoIFioMl08xlvoFNsgUDfFo5pGPCaaiqQ3+nUyfhckg/3T
1Dj/In+Ck6apNk2V0pBAoDsQCAJ1d6AYMQKB5hHY4HU6bl9g/je9YNO8ZYx4URzbzt/H7OAVLSeO
rK4nBwSBungO42fzCEBInL/K7N5HnDD9SPHmx8oK09z4xfv4Mf6kGH4PqDgdUpsIBIG6Ns9rte9q
yRonTT9Q8GrTZqvWF3fD/2X+Lu3kNzNN8v/L/f1mpmo/B82tPwjUzaESukAgEAgEAoF6QCAI1D13
lkWgPu2002zixIltJhKBmoq+//7v/97EnsrT1157bSLpQqA+44wz7IILLkhVkA866KAmtgyoCHzv
vfd2WwXql19+2T784Q/bCy+8kKotDxkyJPUhyFKluDU57LDD7DOf+UwyaY5AvXr16kQIvu222+y5
57yaUYXkBOonnngikaepkAwGL730Urni84UXXmibbQYlrPcFXCZNmmQvvviiLViwwMCHte6yyy7W
HCmZFXI+qdL8/ve/384666y06OOOO854Hfz6178uE8Tz3ey///5Ghehbb73VXvva1+ZT5X5n8opA
PX78eIMLkIsI1BC7X//615enzj//fPvKV77ShEDN/k899dRUrXrt2rVlW4jkxx9/fBP/8mR0AgFH
ICNQL/EhFagR/rhwNds/Mac+LXxQcULhtGKTj6VDTx+RDf6I4sFtlY4YCLa5yAa9+KjYijitPHxj
qr5iqCUePuQihkTcXvTKrzla9LLRmD1xiP+r/eobW+0Ze/ITg1ZrIT86hJwaN5c/GbX3h4K21745
Oy2Wlg0JfOnx0UaYz0FFj04AsTH66AQArTacx5QtLTbKXxnfp5JgwwnQvHLkLwrFZ06i9WgN0itv
3iq+bImXi3Ixr/z8B9QLQPmxk7BubPFRXOa4HYgK1OdHBWrgCAkEAoFAIBAIBNpGIAjUbWMUFtWH
AG8WH3miSJieXqowveKppvugAtS2WztZ2r/QhDA9yvvxhWZTjCpHQaCuRKR/jxf5TQLXe0XSG2ab
LXuyca1bDTKbuI35l/j+uvfKjJUf0BotoxcIdB6BIFB3HrvwDASaQ4AKllSYhjQ9db4ZlacRyFm8
h6GiJeQsboypRgkCdTWetZ5bM+/ludlRhGkqTa+r+L5VhOntnDANQTEI0z13Pvpb5CBQ97czUr/r
edb/F3OD6lVOnH5wWeMXfvx92mlUgx9mW/pnr5C+QyAI1H2HfWQOBAKBQCAQ6FsEgkDdc/j3JIH6
iiuuSCRVqhBDYq2UI4880h555JFuI1BTlZhKw9ttt5397W9/K6eDXAtR9qSTTrLNN2/+cU6jR4+2
bbbxLxlcmiNQ/+hHP7IpU6akys7/9m//lkjHW2+9dapAfcoppzSpQE0MkcP/9Kc/GeTr73znO/aB
D3zAqJDdl/KmN73JFi1alPbymte8Ji1lxx13tKeeeipV6R44sOnd2xClIUznFZz/8pe/pP197Wtf
S/uq3A+E7DVr1tjSpUs3qvid23Y0b3cRqLUGKohDiJ82bZpdfPHF5ry8tN7Zs2cncrnsog0EhMAm
m2xiw4cPP8THi/14uqQXeRhOKIf4qqXppOPSIMI8fY3hh5ZKiXivkVdKDGyYJz4irik65omF0Idv
qvy0+pqUVjnVd1U5P355fMUkN33N40terYk52cqOOQ7Wgy0+HIqFDlvpaPP4PiyvCx9EPuorR5rs
zA+SdocoDgvShrRp4muhzGkTAoqWeUjDzPMCENEYQBDF1QuBv8x6oTGf5yc+9vhK790ENnPKLxta
Dn3tQlzyo1Pr3eRHfkT5tT7yKBfxEVrNMyaedMqpecb6b0N+1qL83k2idZMHW45JK1euPI+7pdqS
qEDdFkIxHwgEAoFAIFAPCASBuh7Ocu3v8WV/9zx3pRmVpWc4YfqBZWZrdS9rafuD/F0sj/FO1aWd
ZDHSb72j6nRI+xEIAnX7seory8e92tn1Tpi+blbB5vnvhARS0WQn1k12gh1Eu5BAoKcRCAJ1TyMc
8esBAZGmbyqRpiFqSfhbzt/0Sf5dVS2Qs4JArTNbvy03O97ziJOmFxdS+4S+VilBsrV/Z0tlaQjT
2/lTM4IwXb+vlSBQ1++57w875wuqB/y6w5VOmoY8radAcDM2n7d2Ht2Qrjv0h7XGGsyCQB2vgkAg
EAgEAoF6RSAI1D135nuSQA0R9dhjj01k4//5n/9psol169bZpz/9aYMHdfLJJ9urX/3qJvOVg6lT
p9oPfvADe/vb327f/e53K6cTYZdckGAPPPDARPqV0QknnGB33323/fznP7c3vOENUrfYVhKoV61a
ZZ/73OdswIABRkXjoUP9w3xJqLBNlem8AjVTvGYhbB988MGJQP3Pf/7Tfve735lIy/Lv7hYsqQz9
pS99ydh3LhCGJ0+enEjCkKippotQSZxK4L/97W/t0EMPzV3Kc5DEqUSN3HjjjamiNhXL77jjDstJ
1zfccEM6r1Tfpgp1a9LRvN1NoM7XRnVuXo9Uzf7lL39pVCQPCQQqESh45Y8RI0ZQTt+v+BlXtvlI
/bwf/DJB6hTnE44sAjeUPvxQ7JnHjm/z8ZUdbf4NPzaaQ8+YQ3mYE9eVuPSZJ34eV3HID09X61N+
bOkTjzkJenyZ0zw2ys+88lfyf7FTXGLIVvxfzflU2U46ciGMicNYa0anvnc7J0rQOe+il0AgFgcL
45BIT8smEOkEqnS0xFMM7HUi0GssMIjDvOIwRpSfFj/FkD730xwt8zqR3k1jrRU9ebUOxVB+WsXy
btlX+bEnfqUf8wit8idFaUxMfLQurcMfum4Tly9ffm5bj5RwOwsCNSiEBAKBQCAQCNQ7AkGgrvdX
QHXuny8pZz/WSJie6X1VYtSOIBOJMD3GidPD/J0ibyBDOo9AEKg7j11PevLav2Wu2TUPFlKlRh5z
j3DTANVIqUpKZcZ4/RdxiZ+9g0AQqHsH58hSewjwHodK0zfNaVppmp3y5IzJ/vQA/rbzNIFakiBQ
19LZbN9envKK0vc94qTpxQW7e3HTp2UQAYI0ROntIUz7+5itmi961b5kYVVTCASBuqZOZ9Vshps6
rpnpxOkZBVuypnHZ/H2CNM0NTQP0rVbjdPT6GIEgUPfxCYj0gUAgEAgEAn2GQBCoew76niRQP/fc
c/aZz3zGaA8//PBEUGUnr7zySiL3QtpFukKgpnLyzJkz7ayzzkqVlSdNmpQIxFSHllx44YVGJeUJ
EyYkEvNWW3k1IheI0VRXploya5g8eXLSVxKoWf/HP/7xRPam+jLEYWTZsmV2/PHH2+OPP74RgRqy
L5Wvhw0bZuvXr0+k67/+9a/Jryd/PPjgg7bffvvZyJEj7corr7Sdd945pYNvdvTRRycC+P77729/
//vfy8u45JJL7IgjjrBRo0bZnXfeWa6+/I9//MOoEr799tsbBPYhQ/yLSRfIxpDUZ82aZSeeeGK5
qvaLL75oBxxwgEGc/+EPf2hHHXVUsgcLSMmbbbaZff3rXy8TtzuatzsI1Lz23vKWt6RzAga77bZb
WiP4HHLIIXbNNdfYH//4x3Tu0kT8CAQyBLiJwm+ggEC9xA+eLSdeKy0HvFaEbzXhgYrnSouOrzVp
Zefd5Cd/WvFKmZMffUR+ioU9eRgrv3KgR8dYfvSRfCxfteRXDPyVK49DDMbMa73yZw5BzzzrgDyN
vQ7yq4+fDu+W9fTxR2SrcVHbiZ8E6g5RHBbORhFtghbJAZBOG2Fem1EMQIEsjGhO9rTM5zFlBzte
ojUwxpaxXiCKxRiptCUnsaTP7ZVfZGZioMMWH/XVuqpMgBY+zHFojA3+iOJqL+ixJQ/29Pn6aLL/
4z73pZd4PbUuQaBuHZ+YDQQCgUAgEKgPBIJAXR/nudp3ySO7qSo9Y1khVZmeu8Jv/dTHldLm9Bjv
VGHar0tQpS6kexEIAnX34tmVaHwYmr7E7GonTd80p/EGggH+6Wj8CLMd/ZHR44b7hyU+JYUEAn2A
QBCo+wD0SFm1CFBZetoCs385afp2b1XNkg1Bmp7kpOnJTsyqZQJpEKir9uXb7oXz3p3383ctKhKm
H/b38/59W1m48YsbvrYf1uCHGe/tQwKB5hAIAnVzqISuJxDgSVf8X77CSdP8n2aMcLP2TqPMdnHi
dFx3KGLSX38Ggbq/nplYVyAQCAQCgUBPIxAE6p5DWARqKgYPGtT83e0//vGPEyGXVUBEhpAMEZYK
wrn85je/sWuvvTaRZ/fee+80dfvtt9v3v/99/7zcYOPHjzcIzpB8IT6PHj06VYzuCIF68ODBtt12
26XYGzZssMce82pEJYHoyxq8QqxUqaXK9fe+971UhZrq0XvssYdBxoV4TVXmd7zjHU2qNVcSqAny
7W9/2+655x6DfE0Va8jCM2bMSNWX2UtlBWp8qAR93XXX0bXPf/7z5QrOSdGDPw466CCj4jUk8ve9
733p3E2ZMiVVhAabSy+91F772tc2WcHhhx+e9PJ59NFHE2ma83bRRRclYnTuAHaQqMEBPCAiQz5e
vXp1IihD3t5kE6hvluISH4G0DIFb0pG83UGgJi8VzP/whz/YFltsYZ/4xCds+PDhNm3atPT6gHjO
ec4J+FprtIEACGyzzTaf88a/zTS/LTnxXP0KYZkkDNeTT9rosquEPipWgGZelaCZxw4dffw4cj3z
fCsqvb4hze2ZIwakUsVSftn7VHkeO345FcOvYKa+xrQc2BCbGIyRPB5zWhd5yUks6b2b7OWvvdIW
/zgUbfFBFEu5lF9rxYZY2HVa8g10NggL0kLUEot+Hl8b0JwWjg2blL18BAxg5rYCNgcGH2wUizn8
FItWc95t0hegtIha4hFD84qBXi8SdMwrtmxdlfT4I7LTPnM7bLRebBVP+TWfxyA/l9Yn+GMmzuNO
mLYkCNRtIRTzgUAgEAgEAvWAQBCo6+EsV98eV613svRSjkJqF632N7Z6p+vbgRQ6witKj3aSBYRp
Kkxvrtvsqm+7VbPiIFD3/al63H83rn6w+Mgl4zCWAABAAElEQVToR59sXA/V1nd20jRVSQfq43Pj
dPQCgV5HIAjUvQ55JKwyBNZvMLttntnNDxfszkVejSarAzCqRJquxUrTLZ2mIFC3hEz16nnrvuhx
S6/vu500Pd3f2+c3B2zqV3t5/yLC9Db+3t6f7BkSCLSJQBCo24QoDLqIwGNri6Tpq/wJ2qv5iteF
axAT/GYmSNNj/SaP+HtVxKW//wwCdX8/Q7G+QCAQCAQCgZ5CIAjUPYWsmQjUrWU488wzUxVibM44
4wy74IIL7Bvf+EYiDed+v/vd7+zqq6+2H/3oR4lEqzlIxFdccYXNmzcvEamdgGj/8R//YXyfC+n2
lFNOsV133VXmzbYQXCFiVwqEaCon77vvvoksTMXn5oQq0n/+85+NqtcrV65MJvh+9KMfTZWxN90U
ylZRIFBTZRkSsOTZZ59NVZSp0Kzil/vss4+9//3vT+RryOSQynOBYA1OBX+zTYVsCOO9IRDGTzjh
BDvnnHNS9W9yQmaGNP373//eXve61220jCeeeCJVm77lllvKc5DVWf8xxxxT1uWd8847L5GR1671
DxwlgUx9+umn26RJk6RKlcHf/e53p8rTxOd8STqSl3MCeZ5K4vfff79CpJZK59dff73dfPPNTfbH
a5VK2Mcee2xaK8bgw2vuT3/6UyJ8o4NMDZEe0ntvnSfyhlQXAvweOeH+YF/1I35QgZrLhTq4Gu6f
tNMB5xU9ImIzOgQ9dhrTQghFJ9E4jyN7bDSvHOiUHz6q/Iip/DnpVPlp0XPgVynotd7cXzq1+JEz
58KiUx70Wis65VWrOIwlmmOc9zXfqTZP0KkAJafKDaEGIOJzsCEO/rPkwPmwrKfPnIBXTAHFPKI4
xVHxp2wZyR875UfPCYFqovz53lkXY2z0309tvg+fTqI5xVBOxvRp8VNc76Yx+SvXhS12+Cm/dK5q
Yo9ec1t4f4JXoD5P/4QxbkmCQN0SMqEPBAKBQCAQqCcEgkBdT2e7f+6VN4JLnigSpqc7YZrKdHxh
mQtVdanACMlitD/GG2LRZnr3mRtGv0cRCAJ1j8LbYnBuHqDy2eXTm1Y+26pU+YxHRkflsxbhi4k+
QiAI1H0EfKTt1wisecZsSok0fe9ivxpbuhrHRS1uCpu0TYNNdHIWlS3rTYJAXRtnfK1/FXLPIkjT
fmPAwkbiIbvjdT7Cn/pLdWlI09wACYk6JBDoKAJBoO4oYmHfHgSokn/r3OJnrnse8S+guFDhMsy/
cYI0TcXpuGm7iEk1/QwCdTWdrVhrIBAIBAKBQHciEATq7kSz72KtW7cuVX6myi+k4r4SCNRU226J
bN3auuBt4U8lZwjGrQlVnyGT77777ol83ZptT8yx1tmzZ9uTTz6Zqm5DGG9LFi5cmAjPm2++eSJc
t4XRM888Y7NmzUoVxakw3hIRXny3AQOar5bT0bxt7aO981TMXr9+vU2cOLFcMbu9vmFXfwiUCNSf
8Z0/6sezfkBORvjEzR81ro7DCWWsAx1XDEtXztO8xqVP6skWP4Q49DlgDuTxfJji6AqkSNPolZ88
yo1e+ZVLY60HP+Yqx8TmF1br8m4S7MRowEZroSVOpT06ckgYyxad5vCjr/XITuvCtsuiZF0NpDgs
UidJm9LC8znsBRR6xmxMevraKPHk690mJxA9olj4QFIGPPnRF3FaJ5A8OmneLYNMHz1xtC7F1l9r
9Nqbd5MwJiZzyiWd8jNHDGIzp/z4cUi0buWXHb6yw5//uOOdQH2+/qEoQHNtEKibQyV0gUAgEAgE
AvWGQBCo6+2M9/1+eeztPL9hnSp0qcL0MrO1fGzKhEd4j4IsXaouPdIJ01R8CulbBIJA3bv4P+FE
uytmmF12f8FWrivmhmg0wZ+ot8uY4uPt49eid89JZGs/AkGgbj9WYVnbCCx/qkjIotL0g/6eR0/U
4H3Ndv49zMSRTpr2v+uDB9Y2Dm3tLgjUbSHUP+d5Xz/bn/57x8JiJfWHlvuFYK7elmQLf12PHV4k
TFOxNciHQibariAQBOquoBe+lQgsXeOk6RkFo9q0rktwA/fkbYvEaW7iDqleBIJAXb3nLlYeCAQC
gUAg0DUEgkDdNfzCu/cRgJhLRerHHnvMfvKTn9hee+3V+4uIjIFAINDtCHgF/c96UGcEGM930lVD
OKMc4oCKM8oYPV99ap4WPqjm4IuKCI2f5hWDOURfn6JHaPN8ik9s+WKHHl/Zaw5f+vBURYRmjD06
2nxtxEWwyeMpH3qEOWLji0iPTkceS7nkh41iEkPrlw/jTgtJuiosSiAQS30tXPE1ps1F9tqwTgBx
pZM9Y+w1p75iYEdf4KjN/ZQfHcKYvkCGAM0LgHVIx7wO7JVffeXERmtijhgIetlqjE5CXziKAK78
+DHPof1g6w97tHHLly8/ryG/Wu/K5iQI1M2hErpAIBAIBAKBekMgCNT1dsZ7f7/P+7vIWU6smLG0
SJie+ajfZvpC03VArhjjJCII03xBOZxHeDc1iVE/QCAI1L1zEqjCfvG9Bbv5YTMqoSFD/VZRSNM7
R+WzIiDxs98jEATqfn+KYoE9iMDCx81u8SqWt84t2NwVxYtfpOMmGEikE73S9ASvNM0NYyFFBIJA
XT2vhCf86447FhZJ03ctMlu/oXHtvMapLD12eEMiTg/nWYEhgUA3IxAE6m4GtA7Dqdr0pX6j6n2P
NP6fHuHXIV7ln7l2dPL0wPgfXROvjCBQ18RpjE0EAoFAIBAIdAKBIFB3ArRw6TMEjj76aJs7d67f
kN1gb3jDG+znP/95n60lEgcCgUD3IZBVoHaGgPlz6xK5F47ni36I68m3oHBAORDGzDGGa4qoRQd3
FQoBOlEJ6GtMWxnPVcmW2HBLRYBGn9sTT/k1p1yMEebRkUP5vVv2I14usldsrjaQn3VIJ3vG2of6
YCEddlofOmGIXmPWlUvlOJ9rs88iuiqKoQ2xcRZVueB8o9hqo7m/QJe/YrFG+aAjVg5yPg8BGX8O
7BQT/7xPfsXybrLN14wtJxMdvsTCB53y09f60WFLfoQ+88qptdByKD9rQGiVn7Hy5/6Kj79Tb2zy
ihUrznvlFdStSxCoW8cnZgOBQCAQCATqA4EgUNfHee7NXUKigACq6tJzvBKdSKBaB2RQiNKjhxYf
37315pqJtj8jEATqnjs7/I7c+JDZ/91dsDlOtkOoTgrBbtdStemiNn4GAtWBQBCoq+M8xSq7BwGq
SnODGITpW504vezJxrib+ZWt8V5hGtL0OK/EyzhkYwSCQL0xJv1Fw+t7lr++b19QsNsXWpObAlgj
7+t5bUOapqo6JOqQQKAnEQgCdU+iW9uxH1vrT/eZXqw2vcaf9oPwf5lq03zmGrlVURc/aweBIFDX
zrmMnQQCgUAgEAh0DIEgUHcMr7DuWwROPPFEe/75523XXXe1z372s7bZZqKX9e26InsgEAh0DYFC
oWAjRoygAvUSP0Sghu8JoRN+qHii6BARm+GcUopNnFHmEHFi5Y+d4tEnpgSStq7EY5PPM1Z+Yim/
dNjKX3OuSj5wXvHhUH7vJkGHoNdak6KkI758sGV9WjN6+lqz1uKqJJoX51bzWh/zWlPe13wpTMca
AnWHKA6tFkTLC0CLps88G6NtDhzpFcPNUgxa4lTGACy9qLDBX0IM5aBlTi9I+vhqLYyJj+gEoMsP
7SePwX8z5ceWOUTxmCcH+Znj0D6UHx322jN6RLnzeeJoT1Sg3mHVqlVnv/QSS2hd2iJQ77///q0H
iNlAIBAIBAKBQKAGEIBA/ba3va28kz333NOmTJlSHkcnEGgLgcfXF6tLT19aSMRpqi7q8fT4+ucj
28bfpSXCNBWmnVgxOK5/tAVrv5wPAnX3n5Z1fsng0ulmF91TMCo6Ivx+vGpMsfrZloOKuvgZCFQb
AkGgrrYzFuvtKAIv+GWnuxebTXHS9G3zzUTEIg5/x7kBBtJ0EErbh2wQqNuHU29Z8f7kzkVm0+YX
UrXpp/iKoyQD/Crs9v5+flypynTcCClkou0tBIJA3VtI10Yerk1M9f/TVJumer4eXEq1aUjTO/oT
fuLmpto4183topJAfdttt9kee+zRnGnoAoFAIBAIBAKBmkLgX//6V9rPA8+8eaN9bVJosM+/XTSg
jaabKO6999403meffZroYxAIBAKBQCAQCLSFQKkC9cFut9QPZxMkDii8T/4JwQflQGjFVWXsV96T
Dq7o837AEZWtfLFHT4sQF8EX0Zz8sKOvWPQ58KNVPO+WY5AfIrd8ZIs961AOWoR58tOKx6ocyo8e
XaUoHr6Qt2nJTz+PL1/Z02Krgzz08/w+7JwQqKvC4vNFauHElp4ceV8b1ma0Oezo56CyUezRKYbs
0TGnk6uc8sntOXHoEXywzf2UI2/xZyw/jZXfp8r585ycWGwQ2ZILG8ZqK3Xaj5ukuOTDlgNhXr4Q
qMcvX778PB7v0Ja0RaBuyz/mA4FAIBAIBAKBWkBgwYIFduyxx5a3EgTqMhTRaQYB3mEtfcJs+jKv
Mu2E6elLzajilAtV57bdukiYHuOE6VFeaTq+kMwRqt5+EKi779ytXGd2oVebvszJ08/x8duFL/Ff
u32D7eAV0KJ6YxGT+Fm9CASBunrPXay8ZQQgkULCum1eIZFL9fcbjyH+NI2JTpqe4KRp3vvoAljL
0WImRyAI1DkafdNf7O/xp87jNV6wBx/1C8RcgS2JqkyPG1F8eky8TxEy0fYFAkGg7gvUqy/nE15h
+ooZXnHaidN89kIG+LUKqk2/yonTo/yaRUjtI1BJoP7d735nO+64Y+1vPHYYCAQCgUAgEAiUEAgC
dbwUAoFAIBAIBPoKgQEDBtjQoUMP8vzOJkgVqLnaCNVAVx1FNuZSOjr4ohLsdKDX5XZ84Kwi0uOr
WPhgS5vHUw5XpzlaxdKc1sUcQgxEebCjT371aRERnfHJ18ccNhzEp9UaFRd7dJXzuV2eE44sInv1
k9J/KH/lfjTf7laba7dDM4bavIDRSVFs6XNgtHG1bESbqkwhP/QCKQempfwCkRzqE0PxiKW1EQ8b
rce75ZNKH8EPHw7lV25ahBj5SVcO9LJBh+RzxIN0rfx5XPnREocDewjUE1asWHHeK68wbF2CQN06
PjEbCAQCgUAgUB8IBIG6Ps5zZ3dJtaa5K4sVpmc4YXrGUrMnn20abaC/Y+PLxzFDvbq0E4Z47G2Q
KppiVCujIFB3/UwuXWN2zh0Fu3amf5oufUrksfe7jW2w7Yd1PX5ECAT6CwJBoO4vZyLW0VUE+Lt9
m5NKpzhp+gG/gSx/ygbveagyTbXp4Vt0NVN9+weBuvfPPwRp3tvf5oRpXuPLnmxcwyZ+xXWMV5ke
74Tp8f4+ZcjgxrnoBQJ9jUAQqPv6DPTv/Pxdu/i+gt3ycOPnLW4Codr0TqPNBvGNU0jdIBAE6ro5
1bHRQCAQCAQCgRYQCAJ1C8CEOhAIBAKBQKDHEShVoP6sJ1rsxwY/IHJywAPND+nEBeXbU+YR5tCr
hajMHDrF8G4SbBC1ikE88Vqly32xZyzuaunbW9c05sKGeUjXslUMcV0ZI7RaH2P5al3oJIrBmDj4
iQyODlEs5ZeOFn/0SJ5XPug6LQTpqmghigPBV5vW4gUQcwJYhGHmsGMsAIkp0L2b5vHlxcFD0BUP
P2wZay+K66rkpzjMM6f8xNE68R/oBy8M7DjIh2CD4Et+7JTfu+X85FEO9Fqb8tMSQy8+5ceWeDyw
WvmxVX7vJtHascPev7qy8UGgTtjEj0AgEAgEAoFAoF0IBIG6XTDVjdHz/q5w9mMlwvQyrz63zOzZ
UnVcgbCFv/ODKD3aCdNjvB3ut7Dxhi+k9hEIAnXnzzEEvDOmFuz6Wf7BxT8VQUyaPNLsdeMaUuXp
zkcOz0CgfyIQBOr+eV5iVW0jwN9oqu9OdcI0pFKq8kq4QWw7J5VOcFIppGneE4V0DwJBoO4eHNuK
8rQ/9PKOhcXX97QF/uxMvrooyeZ+VXb8CD+GN9hYJ03HE2SETLT9DYEgUPe3M9L36+GJENf656xL
nDg9f1VxPXzemuB/03bdLm5U7fsz1HcrCAJ132EfmQOBQCAQCAT6BwJBoO4f5yFWEQgEAoFAPSJQ
KBRsxIgRVKBe7AfcUripcDsRqAX0dcAJhZGQc0jhmGreu2W+q3S0+BGXePTJgx5+Kf5wTjngo4ob
i63yK4d8lZ955jTv3STEJb70+DFGmCM/c8ShJTfzyu/d8loVg1a+siMuegR/1oNoX1qD8jPPHHtE
cruiphM/lbQTrmUXxcg3pI3RagM40Ec0j6/82bA2JRvNoQdo/Ohjq3yKqTE+2NHmMeXr6vI8NvJn
Xn1sEMXkZOuEqC9btawL0ZqLo6Z7wkbztBzyw16xZKOxcmLDC4i1iEB9fndUoOaXOSQQCAQCgUAg
EKh1BCBQH3PMMeVt7rnnnjZlypTyODq1jcDTTpqgmuIMJ0tTqemh5f7OnneYmVCtKRGmhzhh2klD
W/sj6kPqE4EgUHf8vC9/yuyvTpy+5kH/8OafWDbxTzM7jzJ7vROn43ep43iGR/UgEATq6jlXsVIz
SKV3LXJSqVfivX2+2drnGlGhUuU4J2BBmuaJAUEqbcSmO3tBoO5ONJvGWrmusYr6/Uuavtencjqk
6QleSX1bf6JMXAltil2M+icCQaDun+elL1a1aHWRNM3TffhfjnBz0y5jihWn40anIib1/LOSQH3y
ySfbjjvuWM+QxN4DgUAgEAgE6gSBhgZoPv7dzzNv3mjHmxQa7PNvh1rTttx7773JaJ999mnbOCwC
gUAgEAgEAoEMgawCtV+RtKf94NKjeK76R0QLDxTir/piKvDPrPgPrejLPGO12MEvzYnR+bwudUrH
GF9ELXPKrz5xsWUsycfyVX7GHMTBR37K76o0n8fAhjF+7IFY6LQfxVIMjd2knAN79FqPbPP86uPX
YVHADjtmDsRgEYqlvvQaCwT0AkE22iR6bUjgCxjFwUeHbHVyfCr545P7aYyd8utFgI9saSXYQlzG
XkIfG+WXHlvWjp41qa8xPui0TuIqv2K6KsWmRaf8+ZoUh3mvf2jjV65cee7LLxOqdfnblE28+htu
TeX1W96VFAcccEDTiRgFAoFAIBAIBAI1iMD06dNt3333Le8sCNRlKGqys9o/nkxf6hfOlhZSu/Bx
f4Old4++Y+4fG+HvqCBMj3HCNO3gqK5Yk6+FzmwqCNTtR23VerO/OXH6igf8k7t/NKEC2s7+yOjd
xzfYVjw/JyQQqHEEgkBd4ye4Bra3xCtLT11gNs1J09xE9hJXnErCzWOJVOqk6VH+Xoi/4SE9i0AQ
qLsXXyqwTpnnx9yCPbyi8cIyr2Xe36uKetzM1b24R7TeQSAI1L2Dc3/Nwg3ft8wtEqenL2n8+8bN
3q/2atMT/QkR8X+7v5693l9XJYF66tSptscee/T+QiJjIBAIBAKBQCDQywjcdNNNKWMQqHsZ+EgX
CAQCgUAgUEagRKCmArWXctuIQA3pWdxPrsxnV+d9VPy4D4MB8idzXKHXWFfr0aPjIBYxEfpUgsZO
vnnr6mSLnWw0z5yEuOjzOfXlhw19DtaKwIVlLbIhj/ywR7DFDkGXx1FfenyJgeR9zZOHeWLSz/Nj
02khWHdIvvh8sbmevhbLBrQZ5WfjAowYHNhLT58YAgh/EZHlJ9CxU9+7ZfDpI9gTR3nQKb50Wrvy
YKM9KD7VoJUHP62V+LxAmEcUmz52rFv5lYc5+szTSo8d9oj2yRxUhB1WrVp1zksv6fcCk+YlCNTN
4xLaQCAQCAQCgfpCIAjUtX2+l6zx6tJLqTJdJEw/+mTT/fIo+pH+DA++bBxdIkxHZcWmGMWoEYEg
UDdi0VJvzTNmZ99esEvu92dN+UcSbkrYaVuzPSZExemWMAt9bSIQBOraPK/VvCv+Jt+3xOz2BQWb
tsAsf08kUul4J0xDnIZAHdK7CASBumt4c0Pkg/5VxK1OmIZY+Njaxni8tx/r1dMhTfP6pqp6SCBQ
zQgEgbqaz17n187ftcumF+wqv0GVz1wIf9928qf77OrEaSrqhwQClQgEgboSkRgHAoFAIBAI1AsC
QaCulzMd+wwEAoFAoP8iUCJQH+wr9KvyZQI1fE8Jfcid8D3FF4VvCkcUAjRXMV/wA14oHFNsmdM8
foj0xBAXVTrGHIpPH38EHfmUn1b58Sc/61B+2eLPvPITB1Eu7BUHHaL89LUH5oij+FoHNviTX/PS
YcNRmZ+YytVcfvw7LAKqw46ZA4tlYYqlRdJqwwIAN83LTzbosQNI+Xo3xcjBko4WUWzlL2qLPxUb
oHWClF9+yomH1qS1EJMDX8jQnBTG2CH0FQcdY4SWGMpLyzifl59smFN+76a40im/XqDYcZlswvLl
y8/XY0lwakmCQN0SMqEPBAKBQCAQqCcEgkBdO2cb4sS8lZClqTJdrKaoLxa1y4H+LmuUP5579NAG
rzBdJE9Dog4JBNqDQBCoW0Zp3XNm595ZsIvuMdvgH6f50DLZidNvcOJ0EPFaxi1maheBIFDX7rmt
pp1Bkr59YZE0ff+S4t9nrX9zv6I1zkmlkKbHDjPjPVJI3yEQBOqOY89NAfcsphJrwW6bZ/bks40x
eILMBCdLT9ymwbbzGyXj/X4jNtGrfgSCQF3957C9O3jZvwGaOt/s0vsLduci/zKJb5NceGoWpOkd
/fNW3ABexCR+No9AEKibxyW0gUAgEAgEArWPQBCoa/8cxw4DgUAgEOjvCJQI1J/zdS72g1uh+eoU
jil8T/qlT/llkjBkZXTMYSORHS16tbJTKz2t4tPCK5Uu70vHmuCr0kpHiyhOcVScZ052rAdf4iJa
t7iu+dryfs7OwJdvJ8hfKXkc5rQu8jCn/MqreflpjG+HhQV3VbRI4tBHWBSH5gSySMOyyefpy0cn
DDuEzQMgrdaMPcASEz2+9JVLY2LJlxa9RDnxURxa+eSxIFCTBx+ElrH80BFf62NOpGvlpUVko1iM
mVM8vWBkx5qJpT1517x+oo0NAjVQhAQCgUAgEAgEAu1DIAjU7cOpP1pBmpi9vFhheoYTph981D99
PN90pVs4eYLHdFNdmirTVGWiIm5IINAZBIJAvTFq/M5deLfZ+XcVyr9/PDZ6TydOD/cv9kMCgXpF
IAjU9Xrm+3bfz/kl1vsfMSdZFeyOhWZL/UkcEt7/bON/l8c5qXT88AYb6TeUxVsiodP3bRCo23cO
nvWaK1RQv+XhgldTN2Ms4YatCf4eBNL0tvH6FizR1iACQaCuwZNasaUVT5ldPqNgV84wW/10cXKA
f2s0eaTZq5w4zU3hIYFAexAIAnV7UAqbQCAQCAQCgVpEIAjUtXhWY0+BQCAQCFQXAgW/ID9ixIiD
fNVL/djgB7xPBKI03FD4nnBC0cMz1bw4rBpjw1HpwxguK5f5NU+ruMwrhvrY4qNY2Co/vgg67NAr
NnOsEaHPofxaO20eI8+pfu7j5uVY4scqX25PTNak/Pn+mMMHHT60iMZaT1HbwZ8E7qoQQwtkUfRZ
KAtT692yPj8Zssn9c5DRI+g4qYhAYk6x5E885gWU8udx5MNaZa95xvmJUhx0+CH0EXwq/YlJfo7K
WNjneuUnHnOKxzjH0YcpJ/mxgUiNQFEYu2LFigteeYVUrUtUoG4dn5gNBAKBQCAQqA8EgkBdPef5
aSdq8mhuyNIzlhbJ0y/q3VhpG0M2p7q0eXXphtQyDgkEuguBIFA3Ivm8fxK7+F6zs28v2FNefRqh
kumeE52Ux22dIYFAnSMQBOo6fwH00va5ULRglROmFxZJ07w/yt8bUWV6e68uPc4J02P9b/RgXT3q
pfVFmvYjEATqlrHifQYVpm920vRdi5q+xnnPAWGam7eG8Vy+kECgDhAIAnVtnuSX/Osc/tZdPr34
t44nbCH8bXvVmAbbaZTZIH0LVZyKn4FAmwgEgbpNiMIgEAgEAoFAoEYRCAJ1jZ7Y2FYgEAgEAlWE
wIABA2zo0KEH+5L9qn2qQC2OJ23pU3+ZRwupGp04qfTFghB3VP6M1YccKoIoepGjmUePDlE8cWaV
XznJjyg/feVQfuIxr7FabBWH/OLBKj92yq85fOSPLuf/yo/8yoe/8qPTHDqJ9MqBT5eEBXaHEIfF
aRMCRPGZ06ax4UDHPAdzHHy9o417N0keSxuWTkAwzvOrT4tgp7jKj05+5EbPZSn6+dp8mEQx8VF+
2TMmHoK/1qXLXBprPdgpv+bQKZ7mlIs5+WptXmvFJq9ateqcl17Sawuz5iUI1M3jEtpAIBAIBAKB
+kIgCNT993w/4ZWWpi81e2BZIbUQhPQlIqumkiIVpaksTYVpKk1TcTokEOgpBIJAXSQtXeGV0M6c
WihXQ+N38I1OnOZ3MCQQCASKCASBOl4JPYXAE/6wv3sWFQnTdy824/2ShPdG2zqhdGyJME0fXUj/
RyAI1E3PEa/rW+YWSdP3L/ELuFxZdeH1zPsNkaa3GlTUx89AoJ4QCAJ1bZ3tZU8WSdPXPOj/03mg
rwvVpidRbdqJ0/EZq4hJ/OwcAkGg7hxu4RUIBAKBQCBQ/QgEgbr6z2HsIBAIBAKBakegVIH6c76P
xX5wFR/eJ0RlrtiLp0pbuvKZWsYIfNbcHh/sIIPSZ55WwhjBhoM5zTOHjnj4wzFVfu+mOdpKnewV
i3nlVQ78iKd1occOnfKjU378mZMoJ7b0EenIr3xas/wr88tOMbRm7Dot2kCnA2SO2qA2zzhftDZL
K1ttljDSMc8m2RitgGEegjEvMMXwbrJjjgMfkZbxU37vpjjM577MM0awl79OEHriIswTmxeCYign
rdaJDWMO4tAi+Cg+tgj5td58njl8EdnSimCOLRWoJziB+twgUDsSIYFAIBAIBAKBQDsQCAJ1O0Dq
JRMeM//AMkjTxQrTfJGYy6b+zocqc2OcNDF6aPGxtQP1rik3jH4g0EMI1DOBmpsXrptpdvptBVu+
tggwv49vnORVTb26aUggEAg0RSAI1E3xiFHnEdjgV7y4oezuxQW7e1Gx4rQuDhF1SyeQ8ncY0jTV
pqM6Zeex7kvPIFCbrVznpOmHzf41p2APPuoXTEsv9E38Kiqv7UleaXqCV5qmsnpIIFDPCASBuvrP
Pk/zudn/3l3h1aa5SUT/17lBHNL0jlFtuvpPcj/ZQRCo+8mJiGUEAoFAIBAI9DoCQaDudcgjYSAQ
CAQCgUAFAlkFav/kbzzLV3xVeKL0aRG18D5f8AMuqC4ViHDtquSTz4m0TCz0jGkR5ch5qrIjtvIz
r/ywLpTfu0mUgwF2rBF//DSnseIrJ2P6CC1j+RNLe5Q/+bVf+SkGY+X3bhLN4c++mafFFh3jLokW
0ZUglQvSQolJn4UKAMABVIGkTdNiKwC1cdFk2KjWqr7ssWGOHPgxFjDK46okzCk/CvnRam3YEIf4
XKbX+hkj2gtj8ig/cxrLR/7MkUOxaRF0iOZYG3PEUX7vppyMc3unMNjY5cuXX9DQQLrWJSpQt45P
zAYCgUAgEAjUBwJBoO6b8wwhYr5XlOZR8zNKhGlVW9KKNvN3YlRboro0FW4ha0KiDgkE+gqBeiRQ
86kCMtNptxZs0eoi8nyxv6dXnJ7oJKaQQCAQaB6BIFA3j0to20aA90gPLYcwTaXpIpH0Ra5IlWSA
vz/azt8XbT+seAPLMP+bHFL9CNQrgXr5U04inGN208MFm+2kaV3NpPrq2OGWSNPjR5jFTZPV/xqP
HXQfAkGg7j4sezvSwyvMrnygYP+cZbZ+QzE71z0me7XpXZw4PWrr3l5R5Kt1BIJAXetnOPYXCAQC
gUAg0BICQaBuCZnQBwKBQCAQCPQWAqUK1Ad5PmdDGFcBRA6GB4r4FYHEBdXVfy6Nqs88fTihHHBG
8YMpgV4c0tyHOXLQMo+f4uVz0pE/9/dh2V6++Ck/fvjQ4sccrQ7myK+4ikGr/PJHJy6s1uqqtG7F
Vj5s0WmMvWyU21XltWld+GHbaSFAV0WLJw6b12ZpWSiizdDPN0c/98FOoGGr2Fqn7AUA9rLBPj8x
skWPYMeh/MqrfMRkDtIzLbbS0coXe+X3btJrHcxpr5xMYkkUg3lE+ZUvHyue8uS+2DMe7Mf4FStW
nPfKKyy3dQkCdev4xGwgEAgEAoFAfSAQBOreOc8Qf2Y/5mTpZUXC9IPePv1809yDBxYJ02OcMA1x
eoQ/WyMeO98Uoxj1LQL1RqC+a5HZn28pJCIfyG+9uROnJzTYDl4RjQ9CIYFAINAyAkGgbhmbmGmK
ABd7FvsNKvcs5ihWoszfI/FeiJvIqMA71knTo/w9EhV5Q2oLgXoiUD+2lirTTpr2StNz/GYBXRSF
RDgO0vTIhtQyDgkEAoGNEQgC9caY9GfNOq8x9c/ZTpyeUbC5KxtXuq2TpXcZ7Z+ttvUvjOLvXSMw
0etWBIJA3a1wRrBAIBAIBAKBKkIgCNRVdLJiqYFAIBAI1CgCm266qQ0bNuyzvr3FfqgCNdxOuKO6
JEofYUxfXFDZiM/KvHy9WyZT08eWbwwUQ/xWWvkwj514qMovcilj2WNLH11+yNfV5bXSVyzpGZNX
8WiVHw4tY0Q6WgS9rpAoL3rFV375kQNhPo+BjrH8GHdKFLRTziUnLUSxtFjp80UCjl4EsiOM+gIU
X/U1Bxj09WLQWK3yu0kCR3r500I+Vn7ZaZ3Y6wUknU4Ic/SJwbqYR4coD63WoL7iSJ+TpfFVHOIS
X/kVUzkZ00e0H/9KzcavXLny/Jdfxq11CQJ16/jEbCAQCAQCgUB9IBAE6p45zxB/Zj5aJEvz2Hkq
Kb6g+ylLKSFjUlk6VZh2MtAQbgULCQT6MQL1QqCe5Tc7/Onmgt37SPFkbOE3N+zhxOldRvsHHX2K
6cfnKZYWCPQHBIJA3R/OQv9dw6NPmt27xI/FBbvP/9ZWPoVjqL8ngjBNlWneKw3iyllITSNQ6wRq
Kk3f9FDzpGkqTEOaHu/k6XjaTE2/zGNz3YRAEKi7CcgeDMPTJO5eZHaVV5u+Za6XXyp9VbO5fxO0
oxOmqTbNU31CAoGeRiAI1D2NcMQPBAKBQCAQ6K8IBIG6v56ZWFcgEAgEAvWDQKkCNQRqvm2FQJ0z
JbhSwDeuInfSh3ua28AF1eHdMj+VPoI982rhkOKvWLSap685+sqPLyJb5deYOWJI1GdeeZmjz7cY
+Ivfqhj40NecfLHTOuTDGHuNFYMWUSz1tR7G7B//3Ff7Y77DoqQddswcWIw2nG9MC9dicaGPsAkR
gnOAiMOBr/SM8ZMPc+gQnRTG9DVWbmyUE12eU19JERcbzdHHlljyZY6xbJQfO+Iwpq+xd1Mff8VA
h7/WqvzKo7Hspcde+ZULHZfdxi1fvvyChgbSti5BoG4dn5gNBAKBQCAQqA8EgkDdPecZ4s8DS82m
Ly3YDG/nr/I3StnbEd6oDPeK0mOcKD16aLHCNKTMkECgmhCodQL1Iq+ASsXpKf4lP7++EPZeP67B
XrO9f/jQJ5JqOmGx1kCgDxEIAnUfgt8PU69c52TpR8zJ0k6YXmK2wsmkufCeCML0dk6Y3t4J01sO
ymejXw8I1CKBmtf9TVSafqiQnkSjjwZUWp1QIk1TcTreY9TDKzz22J0IBIG6O9Hs3lhL15hd/WDB
rnnQbNX6YmyeJDHW/8dTbXrCNv7FEBdHQgKBXkIgCNS9BHSkCQQCgUAgEOh3CASBut+dklhQIBAI
BAJ1h0CJQP1p3/gyPzb4weVRDrifIioz5kqByMXMIbQczHHAYxWXVXP48u0tesWhVSzv2ot+4I8d
c4hsiqPG/OKhyoY8+Ck/Y9kQg0NxZYuO9WCHkB8b2RFLNuozJx/FdVWZk4ud9kxcbBgjiouOPqK1
qJ+UnflB4q6KFqg42rRis1iBqhZbbRp/+gAkHURhbZh55vI4zMu+Mr/GtAh+sqdljDCvmMqLnrzY
IaxXc+h1chSPGMqHHYfyqq/8aolTOccYPUJLpWqEfFoneq2Llq/YJq5YseK8V17RllzTggSBugVg
Qh0IBAKBQCBQVwgEgbpzp3uZV06EKD1jWZEwzReFuUCE4HHzo50wPcYJ06P88bQD9a4lN4x+IFBF
CNQqgRoi3+lTCnbtTP8w5J8wIDa91knTu41tiN/bKnp9xlL7FwJBoO5f56O3VwNx9P4lTpheUqww
/djapiugAuV2TpTezt8jbeekKipOh9Q3ArVCoOamSipN3+ik6QeXNV7Y5L0FlaYne6XpIE3X92s9
dt91BIJA3XUMuzMCT9/iZpGrvdp0/nePJ2zt7KTpnUd51Zu4ebw7IY9YHUAgCNQdACtMA4FAIBAI
BGoKgSBQ19TpjM0EAoFAIFCVCGy66aY2bNgwKlA7o8K4zRqOJ+Rmv1KauKnwQhF08F3hgtIyL+Iz
PvnhwzLHFT3kUOLk/ugRzdFnHj0tjA3N4av85FV+dFqf8rsq6eSr/PhpX/gj+MpO65M9+emzXwQf
bIWLcMCPA1tJ5Vh+WjdjBDv1k6IzPwjSVdGCtVk2o82rrzyMc3v62hjryO0YI4ol8Ng0duRTPGLk
NB1sdBLkT4soP/HoY6u+d8vzzOXzelEpp/aLDfkhPdNHsFFM5U8T/kN++Tx96RWDlkOxtB9XJb3T
lOz/s3cmYHYXVdqvDpA9ZF8ISSDs8AnofAiog0iY0QEdRvQRIeCKC+OCKCoqgw84zOcCKiqiMjKg
Qlh0gFEWURwQEWSXRQhLQsjWnSYEAtkJ6e/8qvu9qb50kttLkl7e8zyVqjp16pz6/26n07n9dvXk
RYsWzXjlFcpv3Cyg3jgfr5qACZiACfQNAhZQb/p1RlA5+1lul0Y0XZf755a13ocoYhxi6e2bb5ce
G4Jp3ybXmpFnPZ9AbxNQv7AipUvuqEvX3N/8a6X5O7vnhJT2n9yUBunHN3v+y+YnMIGtQsAC6q2C
fasVlWD6AQTTc1NaED9oVho3+k8IwTQ/VIZwelT8Vg6bCZQEerKAemn8Aso/Pp7S7x+tyz84oN9C
s238/2By3DA9dWxT7v1/g/IV99gEOk7AAuqOs+uqnWvju0d3z07xA6jx23ueTGk13yYM432RqWOa
hdP8MLnNBLY2AQuot/Yr4PomYAImYAJbi4AF1FuLvOuagAmYgAmIQMsN1MfGfEG0+I5s1nqiR6Wh
+6Qh7kQHij6UcSn2ZJ1YfPGOQ2U/c+LLPIoNd/ZLX8o7FsRiqln25FB91SJW2lRiVR9/OVd9YjVW
DDXxS1gtf9kz1rPwfORQHvZTC8PHOoaPudaZ66wxrBg+navibO+ABJ015dDDVB+c/IphzDpQ8LGH
OQ+sOb2a1ukFiTHrgsQYw0+rFhqzpjMRq/ry6YXROegVx94yv14kfDqP1onFqI9xFsWTEyO2rKfz
KpeeiXjtUa9YctAGRtvZAuqgYDMBEzABEzCBGglYQP1qUC/HV2WP1TffMP3XEEw/HF/WL+MXyxSG
uHJ8CIDGtwimR4cQiF9NazOB3kygtwioV6xJ6fK7o91Vlxjzd3fXsSm9bkpTGsb/KGwmYAKdJmAB
dacRdtsEvBEz77n4wbL563+wrL7qhml+68aEEE5xwzTC6VHx4+7+MqnbvqTd4mA9TUC9Mr5+uC1E
g4imEREiJsQQSXPD9C4tomlE1DYTMIGuJWABddfyrDUbPxzCDdN83uPGaX4YFeP/Uvxw1G7jmtLO
o+MbQf681wzGf3YLAhZQd4uXwYcwARMwARPYCgQsoN4K0PtgydWrV8f/B+pS//6971fOLFmyJI0a
Fb9KzGYCJtBhAv369UsjR47kBuo50eIKiqyL5dsLspZ3VLPWVEJi+SR81pyehl5UY+Uhpxrfhmj5
Me/sYy49Lj2mb1WQhzE9a9KuxjDPqaXzEsNYMfKHq5JDY9UjRvnLczCmKQc9+cnNWHNpY8NV8StG
Z2etzMWesj7rHTYSd9Z0YHLp0Dyg5uRnXD4sPmJkgsNcsTwkfu5Dk0pdedUrVnPi9aLSM8cYE0ur
NnzEIXwmD7Hayxw/ZynXVU+x2qc+wlvVUpzOUJ5DtXhO7S8/CPGrPnnFmzuMdqqvr7+sqYltGzff
QL1xPl41ARMwARPoGwQsoE5pefzK2UcWrBcBPRri6TX60rrlwwBRJUKg8SEE4iYl/6r5vvH3w0/Z
mkBPF1DzwxHXPhC3Tv+5Lj3f8g3/KfEe2P/dqSmN9G2orV9sz0ygkwQsoO4kwG60nc+dTzSk9FCI
ph6aX5d7fQ7VMblhmq+PKoJp/2CZ0LivkUBPEFDzd+Evs0M8+Le6dPtTKa3iF0mG9Yt3NCeOSPmm
6Z3i6wp+gMBmAiaw+QhYQL352FZn5jssf4v3Sv7wWF26JUTTjfzC3RYbOTh+CDVE0/wg6pAB8ro3
ge5FwALq7vV6+DQmYAImYAJbjoAF1FuO9ZauhLD30Ucf3WjZ8ePHp913332jMZ1dbGxsTB/72MfS
dtttly6++OI0dGjcntAD7ZJLLklnnXVWOu2009JJJ52Un+D0009PP/7xj9NXvvKVdOqpp/bAp/KR
TaB7EGgRUE+P08yJFmqMrEPlrQb0oSgx0H2i9+RdVulEY9gqjngJQInHpHvVXDkVS68YxqojH7VU
n3dyVZ9YTHHSsZZ+fKzTq77iwlU5q/bQEy/NK7HUZ6/8nEW6V+WlVyMHY9VVbuaY4ppnzX8qRn25
VvOYxF1lPDSHoZGXnocuXxx8xJVWPhzrZbygskdQq/crF372qwY9Lz751MewUl/Pzj6dAeB60cr9
nKN8lphmUw4mrGPs07n58SPV14vJmurFMMcy5xyqz3lVX+dRTtaweNsuTYl/rGesXcvH18bNAuqN
8/GqCZiACZhA3yDQFwXUS5Y3i4C4XfrBeSk9uSi+4OCrjBbjixDElAiB+FXz9IN73w9Q63Hdm0DN
BHqqgJq/37+P9xT/87a6tLDlllT+Xh+wc/Pf75oBONAETKBmAhZQ14yq2wXydRI/WPbwgrr0yPyU
ZoZ4enXVWyx8XVR+ncTXTeWbQd3uoXygbk+guwqo+RqC/y/8LkTTtzye0ovclRLGjav8HeCmaW5c
Hbhds99/moAJbH4CFlBvXsZ83uOHpm6ZWZf++ESIpl9cX48fLN9lTPMPjIzyD6CuB+NRtyVgAXW3
fWl8MBMwARMwgc1MwALqzQx4K6b/85//nAW/GzvCtGnT0pe+9KWNhXR6bebMmenkk0/OeRAhT5w4
sdM5t0aCn/zkJ1kofcYZZ6RTTjklH+GYY45Jf/jDHxL9j370o61xLNc0gV5BoLiBOt5dTVxrhVZU
YmXGaEL5zgPfWqBpjGpDelLiMNbxMWdMj2a0nLPOGvtp1UYsNbSP+tqvnNX7dQ75VYNeeejJS03i
qk0+atGI1372cQ6dhV41Y1h5DvziopiyPnkx1Wqerd+vebv66mTt2twSTA4OrkPTy8eD6sFiWBkL
pHrFKYYe03rzbD0g3qpnTZDVAwmBsZ6rzEs8QOlpOpfOrTV6TDk01jOxV/WVkzrUVa/c7GUsU27m
isGnfcpHLdXXWHP2Un9QtEkNDQ1XrFvH9o2bBdQb5+NVEzABEzCBvkGgLwioEUz+dV7zDdMIIOYt
af7CR68wt8aNGdZyw/T2TWlciCG4SdFmAibQmkBPFFDfNTulC26tyz8owdNwU9r/3bkpcfO0zQRM
YPMRsIB687Htysy6XfpvC0M0vbAu0de3/KCJ6vDGy4j43IlYdFx8nUSPgMpmAl1JoLsJqGc9m9JN
j9TlH8BaVIgHR8eFSruMaQrhtG9c7crX37lMoD0ELKBuD63aYvkNXPfOSem2J+rSn55Mld/Ww+6h
cbv01BBN7xyf+8bG+yY2E+hJBCyg7kmvls9qAiZgAibQlQQsoO5Kmt0rlwTUU6ZMSYcddlibh5s6
dWp64xvf2OZaVzrvueee1L9//7T//vt3ZdotmqstATW3a/N36K1vfWsaNcrfSNqiL4iL9SoC22yz
TRoxYoRuoF4VDychJzpQGnONNZfGlV7x9OhJJTaOYV4jBj89+/lWBrHahw9THH5iMNXTmDmNWGld
FU+vOtK4KlY6V8XQs0YdeqxcI17GumLwMSaWGhoTLx9nY618TtUnvhyX9WOpYyZYHdvdvIsD8wAy
Dqq8jDEOTsP0YhHDWLGsEcO8/EBQfmrwwiknfQkrphUjB4099IpjrPrU0jiGOY51/NTXHubUopXy
Is3LOowx9sjwkQufYjWnPmNM6/Tya6/qI5xWDQTUUxcuXHhp9Js0C6g3icgBJmACJmACfYBAbxNQ
c1vS7BA8IJR+kBum56f0bPFrZnlJt4uvNMbFN/7Gt9wuzXib8iuVPvC6+xFNoCMEepKA+tEQAf7o
1rp03zPNT8o3/l+3U1PaLQRP3BppMwET2LwELKDevHw7kp2vkfghMj4/Plpfl/unGuPKB95tKUxf
J41FMD2sWSzlHywrAHm4WQh0BwE1/2f43d9COB23TfN3Q5ZvXI2vH3aN26b5YQKbCZjA1iVgAXXX
8H8h7n7681O0unTX0ymtXLM+7/bxXRZu10c0PaZn/ibu9Q/jUZ8mYAF1n375/fAmYAIm0KcJWEDd
e19+CagPOeSQxK3Jts4RaEtA3bmM3m0CJiAChYB6bvi4gRpD68kt1HynljE936GQJhRNK/5yLh9+
xphi9B1f5UPbKh85MGJLUwx+6VGJRf+qWvRoV1VTOdTHUj4jtUqVCbmZ41f9GFYMv2JwMqcWjfpl
PWlnWZOxzh56nUX1iKGm5m3VJ6Zmo1BnTYel54EEX37y60FY59Cs8RD48QkQPsb4BIBeD1zmVKzy
qH51/tiejTy8AFpXjfKDQvlZk+k8OoP8qlv2yq9Y8pWmWqyrPqJofQCoPnEyMWKP8rLG23ncQH25
b6AGh80ETMAETMAENk2gpwuoEf3MrA+x9Hxuma5LD0f/Ej/DWBi/UntCiIAkmOZXzXLrtM0ETKB9
BHqCgJrPBxfdXpfueKr5P08D4u///pOa0t47xH82+J+DzQRMYIsQsIB6i2DeYBHeNOEm6cfic+LM
hrrcP96Q0vLVrbfwAyUIQrlRctzQEEvH10vM/WVSa06ebX4CW0tAjWDw1sdT+m3cNs0PXfGDBhj/
f+DGVUTT/HYamwmYQPchYAF1x14LPr09tSgE07NS/F+p+Qep9DmPjAildxodv6knhNP81h6bCfQG
AhZQ94ZX0c9gAiZgAibQEQIWUHeEWs/Y01EB9d13353uvffedP/996fVq1en3XbbLU2bNi0hxK62
G264IVFn1qxZacKECemAAw5Ib3rTm9LUqVNbhX7hC19IQ4YMSWeeeWb2r127Np122mlp8uTJ6Zhj
jklXXXVVeuihh3K9XXbZJX3oQx9K9NX25JNPpj/84Q+JG63XrFmT9tprr3TCCSckznznnXemU045
JXHj9uawtgTUV155ZfrFL36RPvnJT6Yjjjgil/3Zz36WfvnLX+Znffjhh9N1112XHnnkkTRx4sT0
z//8z+nTn/502m47ZG6t7eqrr87Pdvvtt6exY8emQw89NL3nPe/Jz9g6MqXf//73+ebrW2+9Na1a
tSrtu+++OZb8peksX/3qV/PrdNNNN6UnnngiXXvttWm//fYrQz02ga1KoF+/fmnkyJHvi0PMibas
5TASD6MJpYXSo9W3I/C1vEOb1xlrznd5EV/LiMXIQQzr5Mf4Fod8rJexaFOZq+nbIfT42KdxDCv1
2VfmV07iGWudvZxF9VUnXJU41micjVj20JQLH/vkoy/zx7RyLvZg2qOxauTFjvxB0a4w5eFAeiA9
NPl1UNb0EAJKzzqiYdb5AGCs9Rjmddb0gdA/xvpAY501jDzkpwem/DHM+VhTfcXQ0/QZnrzUx6c+
hnkf9THVpwZGHdUiP0avdebkk081tc6cnBj1OYvq48N0buoQS9t50aJFM155RccKzwbMN1BvAIzd
JmACJmACfYpATxNQrwiRwyMLmsXS3DLNLYqr9aVqyyvHLXH8evkJ/Jr54SkN53dU2EzABDpNoDsL
qBE9/eLOunTP0y3/kYn/VewzMaV9d2xK/fkfjM0ETGCLErCAesvh5o0SxNIzQyA9M26WfiLEUYil
l6589Rm4jX9MiKXHhliaHrEUN07bTGBrE9iSAmoEg3zdcOPDdVk8varlbXd+0GpK/GbWXcc1pUkj
401Hvau5teG4vgmYQCsCFlC3wrHRybL4wSn+f/SX2XXRWv92Lj7n7RDvl0wJ0fTk+Jw3JL5GsJlA
byNgAXVve0X9PCZgAiZgArUSsIC6VlI9L64jAmoEwRdddFF+2BAzZnHuypUr4zd11mWR8FFHHVUB
cd555yUE1AMGDEg77bRTCu1VWrp0adp2223T17/+9bT//vtXYt/2trel7bffPguLcSJ+fsc73pFF
19w8u2DBgjR8+PC8n/X+/funn/70p3mdOTZ79uz02c9+Nuk8xL/wwgtp0KBBuf7MmTPT9773vbT3
3ns3b+jiP9sSUJ9zzjnpG9/4RvrWt76VTjzxxFzxa1/7Wj7HYYcdlm655ZY0dOjQhGAcoTP2gQ98
IH3nO9/JY/2hPMzHjRuXXnzxxRw/evTohOh56tSpCs25qYEhtF6xYkVavnx5fo2++c1vVs7Bus7C
a/Hggw/mGF6v66+/Pr32ta8lxGYC3YIAn2NGjRp1XBwm3olN/N4rvpXBFS98RwJRpzSfaGExFB+M
0YcSzzpxvEvLXsXRl+/cEqM1/MxpqsOatK7kZcw6+cu8ykN93jHW+VSfWMbkY02Gn72saZ0Y1Wdd
9av1v8QpLzkUCwudj5yY4tSXfvIw15mJ0TiGHTMV6Nju5l2CQC4aB6PJ5KfnITD5BFU+evIpB/F6
IfBrLhjkYV15mGOqT88+5ZC/3Kc1etb1QsYwz3VW/NTVOZRD9emVK4aVvapPPPmr97GO0at+drTM
yckenUvniPsk00719fWXNTXpscKzAbOAegNg7DYBEzABE+hTBLq7gPr5+IUuCKUfjNul6Z9sjC9y
+OqjxfiCYER8BZBvmEYwHcJpf+NPdNybQNcS6G4Cam6g/8NjKV15T10WC/K0CAG5bfo1IZzm9kib
CZjA1iFgAfXm4Y7w85nnUhZJPxE3Sz8eYukno1X/9g2qD4ofMUcgPQaxNH0Ipgf58+LmeWGctdME
toSA+unFzaLp3/0tpcaX1h95QggId4ubpneOG6f9Q1fruXhkAt2VgAXUG39l+FzHb+O5c1Zdemh+
fPexeP+E90oQS08a1ZQmxue+bfnui80EejEBC6h78YvrRzMBEzABE9goAQuoN4qnRy9KQI149sMf
/nCbz4LwefDg5l8rE9qpfPMzAmhEwa95zWuy8PfGG29MP/jBD9IOO+yQuNEYQ7h87LHHpmHDhqXz
zz8/jR8/PqG7Yn3GjBnp9a9/ffqP//iPSs0NCagJ4Ibrs88+G/Fk4obp7373u+mpp55K//Iv/5JF
28QgQOZWakTahx9+eDrppJOy4Hru3Ln5puf58+M/NGHdSUCNIJRnmT59ehZ9//znP09nnHFG4qbd
xx57LI0ZE28uhXFDNaJq5txczc3QCMzPPPPMhGh7jz32yLdrEztnzpx04IEHZpH6f//3f6c3vOEN
OZZbsL/4xS+mnXfeOd13332EZpOAmrOcfvrp6YMf/CC3/GrZvQl0GwJ83okfikBAPTca171I10pP
Q9eKIfBEByqdKz0+ZCD0ioth3qf99LyzQQymfc2z9fuUi3jqMFd91cCPj7nqMcbKufaqp75ysF+1
yjzkYM66zqv9rGH4WecciKeJV6O+xuxTi2HFz5j9mGI1b/Z24E8SdYUpDwfnQTE9BD1WApBPD8K6
HkY5gIJY26WhEwAAQABJREFUGNOa4ulZL3MqrvwWmc7AGrHM9QGiXMyx6lhqkkv+Ml71OR9x5MBH
LHs0Vh+uigBafFijaU4M+zHl1bPgJ5Y6xDPmnoSpjY2Nl/GP7abMAupNEfK6CZiACZhAXyDQ3QTU
C+MGRQmm/zo/pXkhEtIXA7we3ASHCIibpce3CKYH6KujvvCC+RlNYCsS6C4C6kUvpvQ/D9SlXz+Y
0pLlzUAQCu6zQ1PaK8TT/pywFT9IXNoEWghYQN35D4WVcRfB7PjBsSeiPbmoLgulZz2bkm7LLSsM
js+Bo+PrI5oE0/hsJtBTCGwuAfUL8db8zY+mdEPcNj2zfj2N7QfFN/Pipuldx6bEb6+xmYAJ9BwC
FlC3fq34gZD75nCzfl2+XZ//K8l4/4QfMp80sintGN9PH8X1MzYT6EMELKDuQy+2H9UETMAETKAV
AQuoW+HoVRMJqDf2UIicETtj69atyzdAb7fddvnWZO3Df/zxx6fnnnsuXXXVVWnEiBH5NmhEzBMm
TEgXX3xx4hZpDBE1ceTghmjZxgTU3DQ9ZcoUhaZrr702XXDBBel1r3td4kZlDGH1Jz/5ybTjjjtm
UTE3VMvmzZuXPvKRj+Ta3UlA/c53vrNymzdnhSO3Yy9evDjfAH3wwQfnR/joRz+arr766oTA+u1v
f7seKz8PAmme/YEHHsiMXnnllbRkyZJ8Q3fJFz/C64aGhvT4449XxNkSUL/73e9OF154YSW3BybQ
HQnEjesnxLnmRlsWDS0pulZ0nog6+SQjXykHCXe+AZp13QTNujSxjNlHK/2sox2VnzFWxrNGXtXX
fnrFx7CyThznVQ5UKYw115gYcpMDH1bmY03noj5nlQ4WP0a89utZ6cmNESdVjHKplurrrMSTS7mZ
t9vKB2j35pYNHEgHUc8S4zK/HkBrOjgxPKTitUdg9EGkfQJbgmEP+ZSLNfYpF73WYthqLKD0mHry
kUPryoFfHyT4WFduxYYr+9mPKU7PWcYRo/MSq3yqr/UyB/Xj2x9pSvwDMoN/qDZlFlBvipDXTcAE
TMAE+gKBrSmg5hZFbkdCMP3XuGH6oejL2+Dgz22y4+LGxPHDm2+XHhvjbfnKwGYCJrDFCWxNATU3
p3GT2q8fjF8/PSv+o8P/FsIQAfyfiU1plxBA8WuobSZgAt2DgAXU7Xsdng3xEzdJ85s2nmoMsXT0
85es/1xXZkPsmcXSQ5pyz+dBi6VLQh73RAJdKaDma4Y742uFG0M0/ef42oHfWIHxA1ZT4yIghNPj
QlBoMwET6JkE+rKAmv8CzYn3UB6eH++jzG++YXrB861fR36wdFKIpSeHaHriCN+s35qOZ32NgAXU
fe0V9/OagAmYgAmIgAXUItH7egmouTn6oIMOavMBjzrqqDRp0qRXrT3zzDNpwYIFadmyZbn96le/
ysJfbjrmtmkM0TI3QDM/4ogj0mtf+9p8WzI3yVbbhgTUQ4cOTdykzA3JMnKSm5upEVJjN9xwQzrv
vPPSkUcemU455RSFVnpup+a83UlAjTgdkXlpJ554YhaIX3bZZemf/umf8tIBBxyQnn766XTOOee0
Eq6ziOgZ8TQ3e7/jHe8oU2Wh9KxZs7LofenSpemHP/xhWrhwYUVsTbAE1Oeee26+wbtVAk9MoBsR
4Gb2uB19ehzpmWjcQM3bGmoIk/kkQePd25bv+laEyy3v6Ga/YiIsxyIIxSfTvMyj/cRoXTXwqT7f
WdY+cuJHk8oemerT46e19R1p/NRQXAyzyaceJzXJUcaqDn6dFZ9i1CsPc5nWmJdjrXeoLwt0KEHL
puoHwg0s8tN4IFo1+HBV/IxL8MopUKxjytM8a/5TscwYY8SpPnNeEG50pgZWPjvnYk4MY0x9+RzN
K+vXlEM1mTOmZ5/yxjDPdaM169pLTxz7VF++cLV6Du0jfnC0KXED9QzfQA0mmwmYgAmYgAlsmsCW
FFAjXni8AbE0ounmb/ZV/8r5gfGVATckcbs0v04bURC3JtlMwAS2PoGtIaB+KkSECKBu+tv626YR
Su88OsVt080/WLH1yfgEJmAC1QQsoK4m0jx/bnn88NizzT9A9vTiuvyDZPww2Yu8fVhlfP0zMr4O
4muhUYilW8b9X/39iqqdnppAzyPQFQJqbmi/4aHWXzPw94hbVxFNTxkVbzbq3cqeh8gnNgETaCHQ
lwTU/LadRxdGq6/L/WNxk371eyh8XTAh3kPZYURT2qHlPRR/sJiACTQTsIDaHwkmYAImYAJ9lYAF
1L33lZeA+pBDDklnnHFGTQ960003pWuuuSbfMN3WhlJA/dRTTyVuj77//vsroSGATMccc0wW+w4Y
MKDi35CAGvE1OUvjhubp06e3ElBfdNFF6corr8wi4OOOO64Mz+Mvf/nL6b777utWAurzzz8/VZ/1
M5/5TLr00kuTBNSrV6/Ot2pzc/fGjNdPwvEZM2bkW7gfeeSRNrfotmoWJaBu6yxtbrbTBLYSgRYB
9bFRfkG0FdEQJ2PSrqIhRRPKXA0f7+DSY6xrrr9U9PgxVCSMaehG6ZUrhjmP3hGWaBo/+6hBayte
tarPwz7WdD7Nyc13bnSuGGYjjnNhxOgs9OSpjsdHThlzxeLTGvsYq77idC5iO20q1tlEysMh9SLp
oXTwco14gcLPnAeTn7EelHzaG8PsL3PjUy72IFIGnvYxxseaXkDq6EWLYQUyY/zE6lzKrW/b4Vf9
GGZjTk7WVEs+1WeNHORmTfXZR5Pp3KqvOPYqjv3cQD05BNSXW0AtdO5NwARMwARMYOMENqeAeuWa
uBkpviRGLM0t04/GN/uqf+380LhFkW/2IZhGOD2CH4eymYAJdEsCW0pAza+d/v2jKf3ub3VxE+t6
FCPj88MeE5rSrnHbND9sYTMBE+i+BPqygJqvdebHbZBzl7S05+rSvJZxtehJryCf05qF0s1iacZ8
TeQfIhMh972dQEcF1Pyd4muG60I4PTP+ryHja4bdxzd/zcBtrDYTMIHeQ6C3Cqj5P9AT8dsonmio
yz0/fF79G7p4FYeEXkE/dE7P57viYrfe80L7SUygCwhYQN0FEJ3CBEzABEygRxKwgLpHvmw1Hbq9
AurZs2enf/3Xf039+/dPb3nLWxI3I48ePToNGzYsnX322YlbqUsBtQ4xZ86cxPeP77333nTPPfck
xMAIh7kVWtZZATXC7m9/+9uJPKeeeqrSVvr3v//9qaGhoccJqHmAPffcM9/uffXVV6fBg+M/bW3Y
5MmT04QJExKi6cMOOywhTn/Xu96Vx9wwPmLEiHTiiSemmTNntnkDtQXUbUC1q9sRiM83x8ehQiWS
lkVD84mhGaVJAyrNKHP86EC1To8eVGvoRSWEZp/WlYM1TFpS/Bh9WU/5ya29xOFnr+K1xl7G6FQl
hGZOPD768mzkxYgp86kefow1crMXkx+fWplLtbSPGOUkh86vPcw7bBTprHEoQSCXxjq48mtOX5ri
9cB6Acgrn+KZE681jZWDOMaCo77cp/r4MOaMBRl5Ah8AnEM+1tWIV32NVZMYnYk1cmD4Fas5Phlj
caS+Puiozz7WaXoeYuNbjGlSfX39jE39NE/EpZ/9qV/86u+yJN6U9htyd+6nTZuWe/9hAiZgAiZg
Ar2ZQFcKqF+Inx18cH6zYJpbpvlV9K/wVUBhfHNvfNyKlG+Yjm/28c0/mwmYQM8gsDkF1NzK+r+P
pfSHx+ryr6TmC34MUeEuIZjm5sgxQ5t9/tMETKD7E+jtAuqlcWP0ghBJL3hBfV1lvvil5jct2nqV
BsQ7Igij+XpoxOCmytgCz7Zo2deXCLRHQL0uvki475kQTT9Yl/74REprWt4W5+8XXzMgnPbXDH3p
o8fP2tcI9HQBNT9oNTtuzOfW/Kca63I/qzElvraoNm6X5vPZ2GhjhjWlscPiV3D6h0KqMXluAhsk
YAH1BtF4wQRMwARMoJcTsIC6977A7RVQI1BGqIww96STTqqA4ULKd7/73WnlypVtCqgrgTF48MEH
0xe+8IU0atSodPnll8cPcDZrrDoroJ41a1YWd3Nj9YUXXpgGDeK+zGbjJuxPfOITefK9730v7b33
3lrq0v4nP/lJ+spXvpJv89Zt0Oecc076xje+kb71rW9lATMFN3brc/UN1MS/973vTTfffHO++fvN
b34zrg3aySefnG+vRuh+9tlnV+LWrFmTb+xevny5BdQVKh70JALFDdShGkm864HuE41nvDNS0Xri
41vC+rawYphLZaIeH+8E80kInwSfjDWnr84XrhxLbrSlEkDjL+PJp/paUy3mGOv4qKH6MazsI19p
ilfueKcn1+cc8imeuZ5DY3jJR5zOh096Wfyac67Squfl2ibHHKKzphx6IB6cQ1UfuHxQYvWg5X5B
137l4ozag49cvMiCHMPKOgJk9tOIU072l2PqK1cMc2x5ZmJ5MfGxl1zswaf6jHV+fMRSH2PMumrq
LPQ01ecMGL3qM1f9cr/ys5+3D6fGTyHNWLcO98bNAuqN8/GqCZiACZhA3yDQGQF1/VLE0in9NW6Y
fij6Z55r/sda5Lg1kW/25duRhjffMI2wwWYCJtAzCXS1gJrPIX8K4dNtTzbfUq8fuNg2/hcwZVSK
m6ab0o4j4z8K+t9Fz8TmU5tAnyTQ0wXUL8bbeXyOUmtYWpcaivny1Rt+WbeJdyeGxW/YGB7v+W8f
bfigpjxm7tvzN8zNK32bQC0Cam5nvf4hWl3+uwkxvmc3cUT8hooQTfO1A3//bCZgAr2bQE8RUK+M
bwfyHsmcxQim69KcGD8d4/r44St+EKTa+BphdFwPMzreQxk9tCmPh8XXDv6vUDUpz02gdgIWUNfO
ypEmYAImYAK9i4AF1L3r9Syfpr0C6osuuihdeeWV6dBDD02nn356JdVPf/rTdNVVV+W5bqC+/vrr
0yWXXJIOPPDA9PnPf74ilJbQeeLEiXldSToroEbEjWiYW7Df8IY3pI9//OP5RuZHH300ff3rX0/P
Phs/dRrWEwXUnBnR9R577JFuvPHGfJs0zzJ//vz0zne+My1atCgL2/fZZ5+KOPvoo49OvC6ys846
K33/+9/P0wceeCBNmTIljzcm5tZe9ybQHQjwwxbxgxfHx1nmRpOAmndEEHRKH0uvd0kkbOatkPg9
5xXNaAyzSROr/cQpH2NyyRBpoznFiCnXmas+uVRfPmK1X2vhyntQurCHpvoxzIYPw6+zZkeLj/za
Qyzn05nxM9aZdZZwZdO6NLda1/lY15nKsdZb0rSvI1FXmPLQ60D0vJWvQzNmnQejbwuO/MoRYTkH
PXmqcwBLH1TEsF9GDtWgZ439qs9ejVkjP6YXAF/Z9DxlDsTSqq/85FA+1qlBffbR9Byqj494PTN+
TLXLdfLomeItxrRLY2PjL/jHdlNmAfWmCHndBEzABEygLxCoVUDNN/j4xh83Sz+IYHp+SogYSkP0
OC5uRNLt0mPjhult+VfbZgIm0CsIdEZA/XL8D4BfSf3owpQeWVCX/hb9whAPyPrF54rJIZbeJUTT
9Hw+sZmACfRcAt1ZQM1ttXwN0xg3RdM3t7pmX8t8BW/PbcS4ERKR9PbR6IcNbGoeh9BpSPxod8tF
LBvJ4CUTMIGSwIYE1GvjHcPbn0zp13+tS3c/HW8gtrxTyN87bprefZx/o03J0WMT6AsEupOAmq8p
FsYPWC3Ub6V4oS7NDaE0wmm+vtDnrPJ14YdD82+jiO9kjIrfRjGSPppvli4peWwCXUPAAuqu4egs
JmACJmACPY+ABdQ97zWr9cQSUHNb8w477NDmtoMPPjh98IMfzGuIkT/72c+mpqZ4D2X33dNOO+2U
uN0Z0fKwYcPSiy++WLmB+vnnn0/vf//70+rVq/ONz/vtt19ev/XWW/NN1SeeeGK+WVlFOyugJs/C
hQsTNzBzDowba7ksc8yYMWn06NHp8ccf75ECavRqxx9/fL6Fmuc45JBD0qpVq9Jf/vKX9MILL2QR
NeJ27O67705vf/vb83Pvv//+ac8990wPP/xwmjlzZho5cmRasmSJb6DOpPxHTyPQcgP19Dh3qEtS
fDemImRGI8q7vC3v9OZeWtVwZ80pa2hFucoGtYlitZd4/PQYelJMYlGtaR9xjJWLMU3aVOULVyUH
9flOkfYoln3SuZb7WKc+Pd/lVk3mGuNnf7UpH7GIt+mpz5j6GD7tVTw9fjXqMC7rx7RjRqLOGocv
D6mDk1t+apRjPbAeRg9HHGO9cKzzoHqBlEPxxLFGHL1qak8ZzwuHH1NsuU81yp79zLVPc9VXrvKc
xPDCEoMpVjHMyUdf7dPzxFKuSy5iVZ917UVAPbm+vn4GXwBsyiyg3hQhr5uACZiACfQFAhsSUCNW
eLy+WTD90Py4HXZ+StzGWBo3JOXbpbdvvl2am5J8U2xJyGMT6F0EahFQc4v0/BAQcLsav5p6zuK6
NDvG85bE//L4Sr8wBIiTQiw9ZVTzTdO+ob6A46EJ9HACW1JAjTiJX3v//PJoK1paHtelF5i3+Bkv
ibZ81fp3mTaEmc9PQwdEQxxNP6Apj+Xz56sNkbPfBDpGoFpA/dcnF6ffPz443fBw/L2Nv8MYt0vv
PLr5tukd4tZpmwmYQN8ksCUE1Pwg1XPLosXnn8X0udXlOWN8S6Lx9ceGvgvB5yx+E8XIwQimm9KI
GCOcxuf3Tfrmx66fessTsIB6yzN3RRMwARMwge5BwALq7vE6bI5T3HHHHenMM8/caOrDDz88nXba
aZWY22+/PV1wwQVp8eL4Rk0YotyPfexjCWH0XXfdVRFQs4awmtuTEe/q0soJEyZkMTCC6dKYjxgx
It9wjf/ll1/OQuDx48fnnGXsc889l4477rh8I/P5559fLmURNWe8//77s8h4r732ykLt8847L915
552bVUB94YUXpi9/+cvpjDPOSKeccko+17nnnptvwD7nnHPShz/84ez793//98R5fvjDH6Zjjz22
1fkRqP/85z9Pl19+eXrrW99aWVu+fHnOe8stt6S5c+dmP8Jw2H/mM59J224bb0C32HXXXZe+9KUv
pdC6Zc/YsWPzzdTXXnttvqma7+VPnjw5r23sLMrn3gS6AwE+xocPH35cnGVeNFQm6D15G4Uek9gY
rSi+8rvIxKnhJwZjT7zjkk1+9ioXe4ilL/OpRrgrb+Uol9Z0LmIwcmCqQxxj6mtMj0nozJ7yfKwR
QyM/vc6ovMTjq14v48qa0ssqPrZWmDJW/ernYa1dpodr16aqYD28wOhFUW75SzB6cPU8iB6qKn0F
KH5BKsFsqL4gUkNjcugc5NLZyEeMzhPDHKdn0Jw9NNVXbcWRo3zRVQO/YvBh5Rr5+BdD9cu82kdP
HhrxCKinNDQ0zOCnkjZlFlBvipDXTcAETMAE+gIBfor1iCOOyI+6Nv7FHrvT/ul1H70hPdX46qff
Lv7FzYLp4U1pQtwuzTf/bCZgAn2HwNLFC9J3PnVQWhOfK/im/447Tkqf+f5daYFuXIseEcGGjFvV
xsYt9WOHNeUeMYFvad0QLftNoGcTQEB99vt3z58v+I/7mBFD0m9uezzPua2RH6igacznlZfDn/s8
rkurq3zL466Bl0L8rLYs5vg6Ygikh2RhdPON0UPiBumh8TkKH411mwmYwJYj8P8+uGd6Kb6xhG0T
nzT2PPmp1G/bUBmG8Xdyj7htetdxKfmHFzIS/2ECfZrAdz99cHq2YX7+pgH/v5jxm7vSiDE7ptXx
dQSNry3Urx/H1xUt/levpbQivs21NH7I6oX4v8zKTfwWimr4/GB582+jaO63j68peK8En/+vU03L
cxPYsgQuPP3INOeJh/LnC76e+N1vb0z77rvvlj2Eq5mACZiACZjAViBgAfVWgN4DSnKTMaJoxLl1
m/jPCnGhu8pi6yFDkGFtHlu2LH4yNWzo0LihqzBuwZ4+fXp66aWXsjgZEXdPtnnz5iVuDUdAvTFr
bGxMa9asSRMnTsy3cW8s1msm0N0JtNxAfXycc060+M5O1nUi5kQHWjb5+FYSFt8ZyuuMWcOvHqGy
dKTKEa5sxGDqWcfIJ12rfOVe4plLu0q8DL/qsx7vLlVilUNaV+aY9mhOftXPAcUfyoGLGGpRQyxi
mMfEqb589PJrzD586hl32MpDdDSJDqL9CHw5lJrA0LMmwBIM68VhrheWnMTr4ejZywdHvE2X47RO
LPv0LMobrry/jGNN9cmjM7I/3oKsiJ/JRT1MZ2Av9YkjnryY6jNnTBzGPuaqT8+aPvhUP1w5X7yl
UalPrOqzjunsxFGff1Und5WAOnLZTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETKDHEHho+YGvOmu/uqb0gUOQ1mza7rvvvhz0xje+cdPBjjCBdhJApM2t1EuX
Ls23L0+bNi1nWLVqVbrqqqvSpZdeGpf47JguvvjidmZ2uAmYQHcgwA9qjBo1ihuo50RDW4o2Vf8A
SVfKnIYmlB9pLzWkaEy1HsOK3lU+7ZPgmBzUwY++lP3oUWnoUaWNpbbqq4b2qj7rrGk9htnIS375
2cccY436rJGHntqsq34MW+lmlUt7FUde9mPEcB5Mz6V9qs86azwjVsY1ezrwp4p2YGtli3KUD6QH
o9cDsIExpnX2aj8PrIdSjNbwA5p9jIlVPeXUnD3E0Zc5tTfclXVitJ91jYnBlJMXWy+IxopVz7kw
nbl51vqZiNE6PU37iFcuxWiumsTwAcRZJKC+vCtuoCaxzQRMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwAR6CgELqHvKK9V3z/nLX/4y/ed//mcGMH78+DRu3Lj0
+OPxWwzjFub+/funL3zhC+nQQw/tu4D85CbQgwkUN1DPjcfgunl0n9K5ovHE6NGBSlzNmBgMzSoN
Y680quqJQ19aCqOJ17p0pvIpR4TkGHrWVF9j8hLLXFbOyY+pPnMaedijfaofrrxe5iCGOft4BnLh
0/Mol3JoHiGVGsTj13kUW9bXmH3tNiVs98ZiAzk4hHJpLL/mgoBfEBSjh8SvBxJ8gVEe9qgpVi9O
LOX97Cn3aU6c6uuDgD2KpZcRi3CZeBljYlRffmI5O37OpLHm7MGnc5JX9ZUzXDk3PT7VL8+kPKzz
uyMmL1q06LJXXiHVxu2Kv/SLX8nHNpsJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJ9E4Cg/o3pWMPRnazafMN1Jtm5IjOE7jrrrsSQuq5c+fm26h32GGHtOuu
u6Zjjjkm7bnnnp0v4AwmYAJbhUCLgJobqOdHqxZQI3qW9pN/lKr/YUJnSkP8yRriTs0l9MSvOHLp
9mXG3ARNnPaWfbhzLHGK0TprMnLjL9c01j5iGNMkVEULy1kUQx3tIx4jljhMz6A8yik/e8mBlWOt
s491cjIu6xPTYSNZV1h5+PKwpZ+xDssD6GFUnwcXMHLQiJefMTkEiP0SImufoBOncQxznvJZiSeP
6iiGffIxxlSHMT6dAz+3QasO+3RW8vMBwjqmPYyJ49yqrzqsqT69/MQRj+k5WRsQbZfGxsZL+XUP
m7JbH+uXnn6W0jYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAET6J0Epo5tSm/ZG7nNps0C6k0zckTXEli3bl1CdGkzARPo+QRaBNTT40nmRpOAuvwHiDHiTv7S
M0bAid6UHgE0utA10dCFojGVKFnr+mQhPzmkRZWPOU35GUsoio96qk+v+uynPudQfcWyn3XVJw+m
WsQrDz5M9Rmzn8YaeZRf5whX3k99rctHDK26vvIR11Z9/O02knbWOGwJXUDo9cACQC2ta59i8BMH
SO2NYc4BbMGSjx5T7raeRbnZqxdI9bVPNcmlM+ks5KSxFzE0Lwpz4jDGyoOPOUZPDtWlZ16ua59i
WFP9GOa88qm+PkCJGxxtSn19/eVNTXoktrVti5bWpRse1LHbjrHXBEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABHoygSP3X5fGD9+0loZntIC6J7/SPrsJmIAJ
bF0CLQLqE+IUc6Itj4beE41ptVYVH3pRxMrSkRIj0z9a9PjVk0+5Sr9yqEdX2tZYPtWnl48eo4bG
zBmrqT5npwamc0vrqhj2lONSrFqt/82JWv4o8+DSWajDGj31VVfr2qd5hLTfOHBnTYckD2OMQ9G0
Rh3mEg3H8FXreiB6vWDEYTx8KTTGRxxgBUf5VUtzcmmvhMzhyqaa7FEeeu0pcyGg1ovCZvZWvzjk
Zw/GmkTXqkuPKYYcGHPWlE8fMIrjWcilZ4phGhptx1oF1Gy486m6NHOhSuKxmYAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmEDvILDXxHXpDbshr6nNLKCujZOj
TMAETMAEXk2grq4ujRo16rhYmRdtVTSJjBFKS5uKJlQ6V63rHyrNiaFV72GOlhUdqdbp2a+5chDL
mFj2KBex+KWPjWHeT5ziyUUjBtNc9fG3laOsqXG5p8wlfWz5LOQknnqcU/XL52ONPfiIpcc0Z73D
RuLOGjl0QA7FWA+lnhrylyA5PDHl/vKFwo/h40XFBIk15dJ+8rEuUKpf5tEezqp4rTMvXyjlwcc+
jDHGnur95KQ+rToX8aVf9cnHmvIxLznGNNekPjEIqbEh0XZsaGi4gl/tUIuti6x3zbKIuhZWjjEB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE+g5BBBPH7RrU+qH
uqZGs4C6RlAOMwETMAETeBWBbbfdNg0fPnx6LMyLxg3U0njSowHFEHeiQ9Xt09Kksi5NqrSj2s9c
Y/ZLIIpf4mjW8etfPeWTZlb16VU/hhVtLWPVUH2dVXP1xCoP9aWDVX3iVF9r7NF+fKX+V/uoz9m0
X/XxaQ2fTH7V0DNqvd09hbvCyMPhOJAejrHys1b6WcPHOo01GuJgPXgMs7GuXPSYfALBvKyvMT1G
nPKSg4ZP+6iND/Ey4/JsMc2mnOxRfcUzJx/Gfp2LdUxznUc+7WMPpnw6m2qxpr0626DwTW1sbLx0
7Vp9bBG2aVu0tC49trAuNSxNaTV/LW0mYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAIm0MMIDAil0YThKe09sSmNHy5ZUe0PYQF17awcaQImYAIm0JpAyw3UJ4R3
TrRl0dB9osiUvlRaVelD6fWPFXrWMp49rCMGZcw6vYw5RgyNNa2zho987JfWVbVYw3QexmW8crGu
uqpBLPl0LvzESccaw8qZqM9+1mSqSQ3GmHyKZ01n1v7q+jqXcujMxHXYSNJVpgfUwzMvD62HpVes
HpYzyMc6D1mCZs46AmM+wJQjhjmONRp7JFrmHKofwwyY9XIv68wx4rVfLxB+8mKsk5sPBOVQTXrW
2UcMc5rOHcO8R/mJxaiv85JT66yxF1MsvQTmxHID9ZQQUF/WXgF17LOZgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYQJ8mYAF1n375/fAmYAIm0CkCxQ3UcyPR
ymjSq6IDZUyPqUf3uSYaWlDpQyW4DlfeU65JtEwu/BJHE6sapU5VceRWfdZVH62q6scwm2owIY4z
SveqNc2VXzWZM8bomWs/ufSM2k99Pa/2KQdz1Y9hNq2xn+dnnZ5YfMw7ZTpEZ5JUH0gHJSdjDioA
wAGqIOmh6YkVQD24xMU8qM6qseKJYY0a7GMuMKoTrmysqT4O7aPX2YghD/kRLOv8zDE9C3PqqD5r
mmuP9rNGDeWmx/BhWuNsrJFH9WOYazIv44fGfMf6+vormpooZzMBEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE6iVgAXUtZJynAmYgAmYQDWBlhuojwv/vGir
okkcjA4UQ5OKFhQ9KobQU2PmjNGE0ohjHzpR/NKQlntYowY96+xTvnJNPulnNY/wSrz2sk/1iWMP
PXVZo1djjfrKqxz0qq/9+KSF1VnDlc+t3KpHLD7NiVeMaoercjadi33EdthI0FnT4cnDw+th6Tko
podhXD4c43IPcYJGrHLrnIoXAOIVQ3z5wigWP0YcTfVVV/XIyRqiZ3pi5aPXXuJVP4bZr3Owpmfl
xSSXTDlYx1Rf9cq58qlOuZd45oOiTW5oaJixbh3HtZmACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACdRKwALqWkk5zgRMwARMoJrANttsk0aMGHF8+OdE0w3U
aDslQI5hRbCMJhS/tKCKkZ611J2yT2JqxsSiX1UO6VvpVY914qRDJRaTuJS54qWFxVc27WWfzspY
ueRnTl3lo1d96XGJlY8eI44amOpqTK/62kcNjNgyBz7m5bnwtduUtN0biw06iHLpsPKXhwSOwCqO
VBoLKHs11howGOuDQXP1qh8hGY782k+P+Fj1FadzEs8aL4J8ekFYY0wOvdj4MNWh1xk0Vh75S7E0
e/FrP/lVv/RRkznrmJ6HG6gnL1q06PJXXmGbzQRMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMoFYCFlDXSspxJmACJmAC1QRabqBGQP1MNATUunmaUESd6EMl
7mSM9rSMQQuqFsOKPpUxRjzr6tGQsl+56LXOWGuMVZ+9mGJVX3PWyCHTmHXVZY0x+l/2S9+qHOxh
rDXtJU7n0B7mxGuuHPSYcmms8zCXxrbcq+djvd2mou3eWGzgMHrg8sF0cB2WLYwxIEgQXAIiD429
8jNnn/awhg/Ti8KcseaqTYxq4itr8mJi5CVGa4yJJZf2ssZcMapPHHmYM9Y8hnnMfuXAx36dVfVV
R3PFy0+86qsWvsHRJtXX11/R1ERZmwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYQK0ELKCulZTjTMAETMAEqgm0CKjfG/750VZFk4YU7aeEyvjQe0pczBpG
T2ONho5VWlatsRc9KX7loVeuGKaXo7GfONYwxTTP1teXDlUx1GGf6jNXDDloyqtYfJyHOIz6xCiO
XIrRmDXtUd5wVTS5xOmZyUsMc0x58THGdBaNs7Mjf1C4s6YDKo8eWrk5rKCqJ1YPzX7GAJIPobAe
mHXWyjysK766vub0GPsUT88cY105VRc/dYnDOK/W8OvFUT5yqB5xNNXVWPXVk6d6jTl+jJ6bqjHq
6Zz4dS76AdF2amhomLFunR4pPDYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMIFNEpCAepOBDjABEzABEzCBKgIDBw5M//iP/8gN1POivRQNjSfiZnSfiDrR
hWL40LuiBaVnXcJn9pQtphWNK37lKffjx7TGmHX89OhLtcYZVJ+6qo9P51P9cGWf9qo++/Rc7MfY
qzjGqo+P+uyVlpY1/OIiDuyjESurnmufzs0cI07j7OjIHyTprOnAeljBZK6x6jAv4xnrwThHGccc
Yw+5BI+HJk75lUPi4ljKYPQiaD89Rjxj8jEWYMaY1unLdX1QsRe/npcxz4DomTFW5mesWNY0Vn3F
yq8c9DSt63nIgX9otMmLFi2a8corlLeZgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAnUSkAC6n/4h3+odYvjTMAETMAETKBCYNCgQcfGZEG0FdHQeqJHpTGm
Ie5E74k+lHEp9lQ8PvSk5Zz4Mo/Wwp390pcibJb2lJjqRg7VZ6z6+BSr+uGqnFl6XWKI1VkUQ038
ElbLX/aMyU2s8ikPPnJj+FjH8DHXuuorlhiM2jpXdnTkDxJ01pRDB6w+OPkVw5h1oOBjD3MeWHN6
Na3TCxJj1gWJMYafVi00Zk1nIlb15dMLo3PQK469ZX69SPh0Hq0Ti1Ef4yyKJydGbFlP51UuPRPx
2qNeseSgDYy2swXUQcFmAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAu0kYAF1O4E53ARMwARMoEKgrq4uxS3U3EA9J9rKaOhi0XnK0INi9BISyyfhs+b0NPSi
GscwGznV0I6yF8PHXHpcegwfRh7G9KxJuxrDynl0XmIYK0Z+YpVDY9VTfdWRn3iactATQ27Gmksb
G66KXzHKyVqZiz2qo/zEdMhI3FnTgcmlQ3MwzcnPuHxYfOXhBQe/YnlI/NzsLJW68qpXrObEU4c5
PXOMMbG0asNHnITXxGovefBzlnJd9RSreuojvFUtxekM5TlUi+fU/vKDEL/qk1e8h8R4p/r6+sua
mthmMwETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETqJWA
BdS1knKcCZiACZhANYEWAfX08M+JtjoaOlTEnOhD0byi+0Tv+XI06URj2CqOeAlAiceke9VcORVL
rxjGqiMftVQf3avqE4spTjrW0o+PdXrVV1y4KmfVHnripXkllvrslb9a/8sacWrkYKy6ys0cU1zz
rPlPxagv12oek7irjIfmMDTy0gOlfHHwEVda+XCsl/GCyh5Brd6vXPjZrxr0pfiZvJj269mZ6wwA
14tW7ucc5bPENJtyMGEdY5/O3T/G1OUcejFZU70Y5ljmnEP1JdbWPvYoJz5scLQpjY2NM9au5ePL
ZgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImUCsBC6hr
JeU4EzABEzCBagLFDdTzYm1FNLSiEiszRhOKuFN6UY3RmEpPKl0rMfiYM6ZHM1rOWWeN/bRqI1Zi
ZcbU137lrN6vc8ivGvSqT09eahJXbfJRi0a89rOPc+gs9KoZw8pz4BcXxZT1yYupVvNs/X7N29VX
J2vX5pZgcnBwHZpePh5UDxbDylgg1StOMfSY1ptn6wHptmZBVg8kBMZ6rjIvuQBKT9O5dG6t0WPK
obGeib2qr5zUkdiZXrnZy1im3MwVg0/7lY9aqq+x5uyl/qBokxoaGq5Yt47tNhMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgVoJWEBdKynHmYAJmIAJVBPo
169fGjBggG6gXhXrEnKiA6Ux11hzaVzpFU+PnlRi4xjmNWLw07MfDSmx2ocPUxx+6UxVj3XGasRK
66p4etWRxpV45VUuYohlTh16TPvVN3vX1yznxFCjOic+6tGXz0lNYmnluKwfSx0zwerY7uZdHJiH
knFQ5WWMcXAaJqjEMFYsa8QwLz8QlJ8avHDKSV/CimnFyEFjD73iGKs+tTSOYY5jHT/1tYc5tWjU
l2le1mGMsUeGj1z4FKs59RljWqeXX3tVH+G0aiCgnrpw4cJLo7eZgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAm0g4AF1O2A5VATMAETMIFWBAoB9dxY4AZq
DK0nt1Cj82RMjx5UmlA0rfjLuXz4GWOKkV5U+dC2ykcOjNjSFINfelRiJZxWHbSrGiuHevKxh1rk
kEnbi1/1tUaPXzGa80w06X/1vNLO6pmJpz456HUW6uPDqKl5W/VzUK1/KGmt8W3F6bD0PJDgy88e
PQjrJVT8+ASIB2OMTwDo9cBlTsXSE6P61fljKRsxvABaV43yg0L5WZPpPDqD/Kpb9sqvWPKVplqs
qz6iaH0AqD5xMs5NLHuUl7Wh0biB+nLfQA0OmwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAnUTsAC6tpZOdIETMAETKA1gbq6ujRw4MD3hXdOtGUtqxIPSxMr
vWrLctaKognFiGGsOfpQxNcy6UrJQQzr5MekNcXHehmL3lT16aVjpWdOLo1jWKnPvjK/chLPWOvs
pa7OxJpiFccajbMRyx6acuEjVj76Mn9MK+diD6Y9GqtGXuzIHxTtClMeDqQH0kOTXwdlTQ8hUPSs
IxpmnQ8ACY0BgimvPhD6h08faKyX9clPPHvlj2GGzZrqK4aehpAZIy/18amPYd5HfUz1dT7qqBb5
MXqtMyeffKqpdebkxKjPWVQfH6ZzU4dY2s6LFi2a8corOlZ4bCZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgApskYAH1JhE5wARMwARMYCMEBg0adFwsPxNt
TTQ0n6ujoQuVcBh9LA1DG8oYfSjxaEKJQxPKXsXRS48aw1YCafzsoakO8dK6kpex6pd58ak+Ot1S
k0ocjfzEsCbDz17WtE6M6rOu+tX6X+KUlxyKlf5Xa7FUiZOPWhhz8jDXmfFpHMOOmQp0bHfzLkEg
F42D0WTy0/MQmHyCKh89+ZSDeL0Q+DUXDPKwrjzMMdWnZ59yyF/u0xo963ohY5jnOit+6uocyqH6
9MoVw8pe1See/NX7WMfoVT87WubkZI/OpXMMCd9O9fX1lzU16bHCYzMBEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE9gkAQuoN4nIASZgAiZgAhsgsM0226T+
/fsjoJ4bbWU06VrpaehaMQSe6EClc6WXlpRecTHM+7SfXrpS1rSPMaZ9ykU8dZirvnSr+PEx1z7G
WDnXXvXUVw72q1aZhxzMWdd5tZ81DD/rnAPxNPFq1NeYfWoxrPgZsx9TrObN3g78SaKuMOXh4Dwo
poegx0oA8ulBWNfDKAdQEAtjWlM8PetlTsXpJmnmOgNjYpnrA0S5mGPVsdTUTdCslfGqLzEzOfAR
xx6N1YerIoAWH9ZomhPDfkx59SyqTx3i2Tcg2tTGxsbL1q7l48lmAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZQKwELqGsl5TgTMAETMIFqAlx8O3jw4BPC
PzfasmhoTtG1ovNE1InWUz5pQ8OVjZuaWddN0KxLE8uYfbTSzzraUfkZY2U8a+RVfe2nV3wMK+vE
cV7lQLvKWHONiSE3OfBhZT7WdC7qc1bpYPFjxGu/npWe3Bhx7MGUS7VUX2clhlzKzbzdVj5Auze3
bOBAOoh6lhiX+fUAWtPBieEhFa89AqMPIu0T2BIMe8inXKyxT7notRbDVmMBpcfUk48cWlcO/Pog
wce6cis2XNnPfkxxes4yjhidl1jlU32tlzmoPyjalIaGhhnr1hFqMwETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETqJWABdS1knKcCZiACZhANYG6uro0cODA
6eF/Jho3UKMDVUOYjOaThuYVPyZhMz4Mv2KY40cQik+meZlH+4nRumrgU330qNpHTtUvRaeqT4+f
xr5qw6/zlvvlU88+apZaWHyqg19nxae66pWHuUxrzMux1jvUlwU6lKBlU/UD4QYQ+Wk8EA0xcAku
phU/Y9YEXjkFinVMeZpnzX8qlpn2E6f6+HlBuNFZ9ctn51zMiWGMqS+fo3ll/ZpyqCZzxvTsU94Y
5rlutGZde+mJY5/qyxeu/LyKV0/84GhT4gbqGb6BGkw2EzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABE6idgAXUtbNypAmYgAmYQGsCLQLqY8O7INqKaIiTMWlX
0ZCiCWWuhg+tKD3GuubEYPT4MTSjjGnoRumVK4Y5D/sxiaYZs48atLbiVav6POxjTefTnNxc/Ktz
xTAbcZwLI0ZnoSdPdTw+csqYKxaf1tjHWPUVp3MR22lTsc4mUh4OqRdJD6WDl2vECxR+5jyY/Iz1
oOTT3hhmf5kbn3KxB5Ey8LSPsYTTegGpoxcthhXIjPGTR+dSbvZi+FU/O1rm5GRNtYjBp/qskYPc
rKk+MTSZzq36imOv4tjPDdSTQ0B9uQXUQufeBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABGojYAF1bZwcZQImYAIm8GoCTU1NafDgwcfHyrxoy6Kh+cTQjNKk
AZVmlDl+6Uo1lx6VNfSiEkKzDx/rysEaJi0pfoy+rKf65V7iVF/xystexuhUJYRmTjw++vJs5MWI
4Sz05FA95hhr+KWDlR+fWplLtbSvzEkOnV97mHfYBLHDCWIjhxIE8misg+PDNKcvTfF6YL0A5JVP
8cyJ15rGykEcY8FRX+5TfXwYc8bEshcBNB8AnEM+1tWIV32NVZMYxqyzRg4Mv2I1xydjzB7V1wcd
9dnHOk3PQ+yQaJPq6+tn8BfRZgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImUDsBC6hrZ+VIEzABEzCB1gSKG6jnxcrKaOg+0Xi+3NJHl30IPCXyVAxz9KKY
enyleFoaU9ZpzOmr84Urr5EbbakE0PjLeParvtaUkznGOj5q0Mu0j3ylKV65q/W/rMtUi17jUqNL
XFlHeln81GXOuUqrnpdrmxxziM6acuiBeAE4VPWBywclVg9a7hd07Vcuzqg9+MjFi8y43E9OBNDs
pwkYMTTlr84VSzm2PDOxvJj4iCcX+SWslsiaNUzPR32MfcSqps5Cr1ycn4bRqz5z1S/3s05+9veP
NrWhoWHGunW4bSZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgArUSsIC6VlKOMwETMAETaIvAoEGDuIF6bjQJqNF7IuiUPpYeHyZhM5rTNdGkGWUNkyZW+4lT
PsbkkiHSlvZUGlOtM1d9cqm+fOTSfq2Fq6KPZQ9N9VnD8GH4ddbsaPGRX3uI5Xw6E37GOrPOEq5s
WpfmVus6H+s6UznWekua9nUk6gpTHnodiB6hrw7NmHUejL4tOPIrR4TlHPTkqc4BLH1QEcN+GTlU
g5419qs+ezVmjfyYXgB8ZdPzlDl0W7XORY8pH+vUoD5rND2H6muvnhk/ptrlOnn0TNxAvUtjY+Mv
1q4Fgc0ETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKBW
AhZQ10qqd8UtXbo0DR8+vHc9lJ/GBExgixNouYF6ehSeF+2laGhApR1lLE0ovbSqMcyaV3xoRVdH
QyOqWPSlisfPPoy8mMSiWtM+4hgrF2Ma++hZZw1TDuoj5NYexRIvnWu5j3X20kvHqhqqjx9ftSkf
exFv01Ofsc6FT3sVT49fjTqMy/ox7ZiRqLPG4ctD6uDklp8a5VgPrIfRwxHHuITKg+oFUg7FE8ea
XiTV1J4ynhcOP8YeYst9qlH27GeufZqrfixV6pc1eWGJwRRLLWKYq6/26XkiJOelHrE0jHXtRUA9
ub6+fkZTE26bCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZhArQQsoK6NFJyWLVuWDjzwwBS3rda2qZtGff/7309XXXVV+uhHP5o+8IEPdNNTdv2xVqxYkW6/
/fZ07733pmeeeSbtu+++6eCDD04HHHBA1xdzRhPoIwS22Wab1L9//+PicedF4wZq9J6IOekxiY3R
jOJDLyojTg2/9KbsQbOKyc9e5WIPsfRlPtUId16jVy6t6VysYeTAVIc4xtTXmB6T0Jk95flYI4ZG
fnqdUXmJx1e9XsaVNaWXVXxsrTBlrPrVz8Nau0wP165NVcF6eIHRi6Lc8pdg9ODqeRA9VFX6ClD8
glSC2VB9QaSGxuTQOcils5GPGJ0nhjlOz6A5e2iqr9qKI0f5oqsGfsXgw8o18iG6Vv0yr/bRk4dG
PALqKQ0NDTPWrWNqMwETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETqJWABdS1kUJoPGvWrPSLX/wiTZ06tbJp7ty56ZZbbkl77713FldXFrbyYGPnOvXUU9Nd
d92V3va2t6UzzjhjK590y5RfsGBBOvroo9PDDz/8qoKf+tSn0re+9a3ETbo2EzCB9hFouYH6+Ng1
J9qqaAg5aehAyyaf/qKhMWUdYw2/eoTK0pEqR7iyEYOpVw7ySdcqX7mXeObSrhIvw6/6rCO6Vqxy
SOvKHNMezcmv+jmg+EM5cBFDLYnB8WH4iFN9+ejl11ix6nUG1tttJOms6SDKg8BXD63DCxBrAizB
sF4c5owxcgo6c/Kwlw+O7aIpH35imetZlDdcFXiKY031yYOfxv7+0fjAIA+NehjrGHupT5zqx7BS
Xy8ucZhq6jnoWdMHn+oTS74BLWvUJlb1Y5hNZyeO+KHRJltAndn4DxMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARNoFwELqGvDtSEBNeJpRMjvete70uc+97na
km2BqI2da8mSJVlA/cY3vjENHz58C5xm65ZoampKr3nNa9Ls2bOzaPyTn/xkGj16dLr11lvTmWee
mV5++eX03e9+N5100klb96CubgI9lEDcys8N1HOioS1Fm4q2E0MHylgNTeiaaKWGVNpV7WFOnPbQ
M5fgmDF18KMvJR49Kg09qrSx0sASpxraq/rEsKb1GGYjb/U+5hhr1GcPeeipzbrqxzA/O/WUm157
Fad14tnPeTA9l85AnNZZ4xmxMq7Z04E/VbQDWytblKN8IB4Yo9cDMGeMaZ292s9D6qEUozX8gBZI
YlVPOTVnD3H0ZU7tDXdlnRjtZ11jYjDl5MUmFzEaK1Y9Z8R05uZZ62ciRuv0NO0jXrkUo7lqEsMH
EGeRgPpy30ANFpsJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJ1E7AAuraWPUmAXVtT9x7ou688840bdq0tP/++6c77rgj9esnOVpKP/jBD9IXv/jF9Na3vjX9
z//8T+95aD+JCWwhAsUN1HOj5LJo6D6lc0XjidHzF0/iasbEYOhRaRh7pVFVTxz60lIYTbzWpTOV
TzkiJMfQs6b6GpOXWOayck5+TPWZ08jDHu1T/XDl9TIHMczZxzOQC5+eR7mUQ/MIqdQgHr/Oo9iy
vsbsa7cpYbs3FhvIwSGUS2P5NRcE/IKgGD0kfj2Q4AuM8rBHTbF6cWIp72dPuU9z4lRfHwTsUSy9
jFiEy8TLGBOj+vITy9nxcyaNNWcPPp2TvKqvnOHKuenxqX55JuVhfUi0yYsWLbrslVdIZTMBEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE1ucN0cAAEAASURBVDAB
E6iVgAXUtZGqFlCvXbs2nXLKKYnbnOfOnZtGjRqVJk+enIYOHZq++c1vVpIuXLgw3XTTTenee+9N
CxYsSPvtt196/etfn97+9re3EvIq35QpU9JRRx2VrrzyyvTggw/mm5O/9rWv5XyNjY3pj3/8Y7rn
nnvSY489lnbccce01157pRNPPDENGzYsxyjPxs7129/+Nv3mN79Jxx57bDrkkEMqZ2Vw88035/wP
PPBAGjhwYPq7v/u79Pd///fpgAMOaBX361//Oj/XJz7xifTkk0/mc9GPGzcuHXrooen4449P226L
PGy9hcYrXXLJJfnsL774Ys590EEHpTe/+c1pwIAB6wO7eHTbbbfl5z3ssMPSkUce2Sr7n/70pyye
5oZquNpMwATaR6BFQM0N1POjVQuoET1L+4kWlFYaOlMa4k/WpDWVrjRc2a84cun2ZcbcBC2daXUf
SzmWOK2pBmsycutsxGGK0z5iGNMkVEULy1kUQx3tIx4jljhMz6A8yik/e8mBlWOts491sSnrE9Nh
I3FXWHn48rCln7EOywPoYVSfBxewEpT87CWHALFfQmTtE3TiNI5hrls+K/HkUR3FsE8+xpjqMMan
c+DnNmjVYZ/OSn4+QFjHtIcxcZxb9VWHNdWnl584/Yuq52SNfzl3iS8OLuUff5sJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmEDtBCygro1VtYD65ZdfTtOn
T0/Lly9PiIERG48YMSJtv/326b/+679y0meffTZ9/OMfTwift9tuuzR8+PC0ePHivPbe9743ffrT
n64UX7NmTb4lmRgukly2bFnq379/FlsjyF66dGn60Ic+lHMhTB49enRCkIztvPPO6Yc//GHOX8u5
Lr744nTRRRelU089NR199NGVM3BunR0hOLlWr16dhd6IuN/ylrdUYn/0ox+lyy67LB144IHp7rvv
ToMHD87nJh5DBM7NzrJZs2alk08+OT/HDjvskIYMGZJmz56d1q1bl3N85zvfUegW7Tkjt1B/+MMf
zgy3aHEXM4FeQKBFQD09HmVuNAmo0XvKGCPuRO/JGO0oelN6BNDoQtdEQxeKxlSiZK2zD5OfHNKi
ysecpvyM2Y/ho57q06s++6nPOVRfsexnXfXJg6kW8cqDD1N9xuynsUYe5dc5wpX3U1/r8hFDq66v
fMS1VR9/u42knTUOW0IXEHo9sABQS+vapxj8xAFSe2OYcwBbsOSjx5S7rWdRbvbqBVJ97VNNculM
Ogs5aexFDM2Lwpw4jLHy4GOO0ZNDdemZl+vapxjWVD+GOa98qq8PUOIGR5tSX19/eVOTHoltNhMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgU0RsIB6U4Sa
16sF1Np1yy23pDPOOCO9613vSp/73OfkTmiZEOVyKzNrn/rUp7IgGiExN1c///zz6ayzzkqHH354
3iMBNRME0eTcfffdK7dUf/3rX0/XX399FjF/9atfzbkaGhrSaaedlshJ/Nve9rZK/Q2di4C2BNT/
+7//m8jLTdDU4sZpLrS88cYb0znnnJMF4D/96U/TrrvummtIQI14EhEyN2qvWrUqcTP1+eefn8/N
GFE5dt5556Vf/epX+Wbqk046KbEPYflHPvKRfIv3hRdemPbZZ58cuzn/eOaZZ1JozbL4/IYbbkg/
//nP06RJk9Ltt9+exo8fvzlLO7cJ9EoCLQLqE+Lh5kRbHg29JxrTaq0qPvSiiJWlIyVGJgEoPX71
5FOu0q8c6tGVtjWWT/Xp5aPHqKExc8Zqqs/ZqYHp3NK6KoY95Zh1WbX+V376Mg9znYU6rNFTX3W1
rn2aR0j7jQN31nRI8jDGOBRNa9RhzoPowNXreiB6vWAxzMbDl0JjnMQBVnCUX7U0J5f2Ssgcrmyq
yR7lodeeMhcCar0obGZv9YtDfvZgrEl0rbr0mGLIgTFnTfn0AaM4noVceqYYpqHRdrSAGhQ2EzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE2gfAQuoa+PVXgH1
3Llz8w3Vu+22WxYsIzKU3XzzzenMM89MRxxxRDr99NOzuxRQX3755Wny5MkKzz03XXO7MzdccwO1
7Jprrknf/va3803S3Cgta6+AmvNwrs9//vPpne98p9Lk/txzz03XXnttQvh8wgknZJ8E1NOmTUvc
Ti3jRmlun37hhRfSBRdckPbbb7+89JWvfCXddttt6ctf/nIWWyuem7ZXrFiRRo4cmUXa8m+uHvH6
T37yk0r6PfbYI/3ud7+zeLpCxAMTaD+BQYMGHRe75kVbFQ3dJ4ZQWtpUNKHSuWodHSimOTG06j3M
0bLySVTr9OzXXDmIZUwse5SLWPzSx8Yw7ydO8eSiEYNprvr428pR1tS43FPmkj62fBZyEk+9Uhtb
Ph9r7MFHLD2mOesdNhJ31sihA3Ioxnoo9dSQvwTJ4Ykp95cvFH4MHy8qpheJNeXSfvKxLlCqX+bR
Hs6qeK0zL18o5cHHPowxxp7q/eSkPq06F/GlX/XJx5ryMS85xjTXpD4xCKmxIdF2jJ+muoJ/fG0m
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAK1E7CAujZW
7RVQI8pFWPy6170uveMd72hVZPHixQkBMrc5/+xnP8trElCPGjUq3+LcakMx4Zbnhx56KL344osJ
8fFjjz2Wb6YuxdiEt1dAfeyxx6b58+fnW6InTJhQVEz5duYvfelL+fbrs88+O69JQH3yySenY445
plU8N1lzo/U3v/nN9KY3vSmv6YbrbbbZJr35zW9Ohx56aHrta1+bxowZ02rv5p789re/Tffcc09a
uHBhvl170aJFaezYsekb3/hGFrxv7vrObwK9jQB/p/v37z89nmteNG6glsaTHg0ohrgTHapun5Ym
lXVpUqUd1X7mGrNfAlH8Ekezjh8fpnzSzKo+veoTp/qMVUP1dVbN1ROrPNSXDlb1iVN9rbFH+/GV
+l/toz7n0X7Vx6c1fDL5VUPPqPV29xTuCiOPwOrhOJzys1b6BZN1Gms0xMF68BhmY1259MDyCQTz
sr7G9BhxyksOGj7tozY+xMuM2ccaTaac8pfx+MiHsV/nIh+muc4jn/axB1N9nU21WNNenW1Q+KbG
r3O4lF8ZYTMBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
E6idgAXUtbFqr4D6xz/+cbr00ks3mny77bbLQmeCJKBGvPyrX/3qVftCH5UuvPDC9Mc//jGtXLny
VeudEVBT+/DDD883WyO8rrY5c+bkm6enTJmSZsyYkZcloOZm6SOPPLLVFsTI1113XSsBNdquK664
Il122WXppZdeqsQjsD7xxBMTN0FvaWtqakpXX311et/73ocAND3yyCNp0qRJW/oYrmcCPZ5A3EB9
QjzEnGjLoqH7RCiN7hN9qZr0ofT4MPSsZTx7WEcMyph1ehlzjBgaa1pnDR/52C+tq2qxhuk8jMt4
5WJddVWDWPLpXPiJk441hpUzUZ/9rMlUkxqMMfkUz5rOrP3V9XUu5dCZieuwkaSrTA+oh2deHloP
S69YPSxnkI91HrIEzZx1BMZ8gClHDHMcazT2SLTMOVQ/hhkw6+Ve1pljxGu/XiD85MVYJzcfCMqh
mvSss48Y5jSdO4Z5j/ITi1Ff5yWn1lljL6ZYegnMieUG6inxBcJlFlAHCZsJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJtIOABdS1wWqvgPqaa65J3/72t7Mw
+T3veU+bRfr165f22WefvLYpAfW//du/pVtvvTULjadNm5b23HPPtP322+cbqM8999zUGQE1Bzjq
qKPSkiVL8m3Ww4cPb3Xee++9N51yyinpoIMOys/EYnsF1Eq4YsWK9MADD+R28803J27jHjhwYLr2
2mvT0KFDFbZFe8Tjd9xxRxaHH3300Vu0touZQE8nUNxAPTeehZ/ukF4VHShjekw9us810dCCSh8q
wXW48p5yTaJlcuGXOJpY1Sh1qoojt+qzrvpoVVU/htlUgwlxnFG6V61prvyqyZwxRs9c+8mlZ9R+
6ut5tU85mKt+DLNpjf08P+v0xOJj3inTITqTpPpAOig5/z975wFmZ1G+7wklXSAgnQQiRbp0IYAU
hSDNAFISQpGO8lcgoBAuilQpIiVgiFRJlggIMQgI/qSqSDcgEHpIIUVKICHZJJT/3LP7HOZ8e3Zz
zu5SJM97XZOZeeed953v/k7CevmcWcYcVACAA1RB0kPTEyuAenCJi3lQnVVjxRPDGjXYx1xgVCe6
krGm+ji0j15nI4Y85EewrPMzx/QszKmj+qxprj3azxo1lJsew4dpjbOxRh7Vj8NUk3kez381V5w8
efJIvhFkMwETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
qJ6ABdTVsZqfgBoB8s9//vNSsueffz4cccQRYf311w9XXnllyd/coCUB9dSpU8Nee+0VuLEaoXEu
cL7xxhvDVVdd1ayAungu6l933XXhmmuuCYMGDQoSDHN2RMQXXHBB6NOnT9kxf//736fbrw888MD0
TCy2VkCdJ543b1448cQTAwLt/Cx5THuMTzjhhHDXXXeFCy+8MOyyyy5NUm6++eZhzJgx4ZZbbgm7
7rprk3U7TMAEWiYQb6DuHyMmxFYfm8TB6EAxNKloQdGjYgg9NWbOGE0ojTj2oRPFLw1pvoc1atCz
zj7ly9fkk35W8xheitde9qk+ceyhpy5r9GqsUV95lYNe9bUfn7SwOmt0pXMrt+oRi09z4hWj2tFV
OpvOxT5iW20kaKvp8OTh4fWw9BwU08Mwzh+Ocb6HOEEjVrl1TsULAPGKIT5/MYrFjxFHU33VVT1y
sobomZ5Y+ei1l3jVj8Pk1zlY07PyMsklUw7WMdVXvXyufKqT7yWeeZfYek6ZMqXu4485rs0ETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKBaAhZQV0eqOQE1
omPEx7179w6ImWUIohEvz5w5MyDg7devn5bCtddem2473mqrrcIZZ5yR/C0JqLm1eeeddw4fffRR
qrHKKqukPePHj083Q0+bNq2JgLq5c7GxkoC6rq4uCb2XXXbZdD6JtF955ZVw1FFHhfr6+nDxxReH
zTbbLNWuRUCNrmvAgAGB5yDHaqutlnJwYebgwYPDww8/HE499dTQt2/f5G/vP0aMGBEOO+ywsNFG
G4U77rgjLLnkkqUSf/rTn0L//v3TLdgTJ04MXbt2La15YAImMH8CjTdQ7x8jx8WmG6jRdkqAHIcl
wTKaUPzSgipGetZcd8o+iakZE4t+VTmkb6VXPdaJkw6VWEziUuaKlxYWX960l306K2Plkp85dZWP
XvXR0KqmfPQYfmpgqqsxveprHzUwYvMc+Jjn58JXsylpzRuzDTqIcumw8ueHBI7AKo5UGgsoezXW
GjAY68OguXrVjyEJjvzaT4/4WPUVp3MSzxovQT69ENYYk4NzsY4PUx16nUFj5ZE/F0uzV3nIS37V
V07VZM4Y0/NwA3XP+C2rm/gBwWYCJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJlA9AQuoq2PVnIB68uTJYd999w2IhFdaaaWwySabJME0WZ966ql0s/KHH34Y
1lprrYDwGUHySy+9FBZZZJFw9dVXl8TELQmoycUNzY8++mj42te+FjbeeOPA7c1PP/106NixY5g+
fXoTAXVL56okoOb8iJn//ve/JzExN2dzpv/85z+B8x9wwAHhyCOP5CjJahFQs2HIkCFh5MiRKfeO
O+6YnoNbn8nfo0ePtNatW7eG5O3853vvvRe23XbbMHbs2LDccsslMfrSSy8dnnnmmfCXv/wlIOQ+
/fTTw0knndTOlZ3OBBYMAvEGagTUb8SGgFo3T/PwiDrRh0rcyRjtaR6DFlQtDkv6VMYY8ayrR0PK
fuWi1zpjrTFWffZiilV9zVkjh0xj1lWXNcbof9kvfatysIex1rSXOJ1De5gTr7ly0GPKpbHOw1wa
23yvno/1mk1Fa96YbeAweuD8wXRwHZYtjDEgSBCcAyIPjb3yM2ef9rCGD9NLYc5Yc9UmRjXx5TV5
mRh5idEaY2LJpb2sMVeM6hNHHuaMNY/DNGa/cuBjv86q+qqjueLlJ171VQsfX/lZKf4HfyT/IbOZ
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAlUT8AC6upY
HXzwwUn8PHz48CSEzneNHj063QyNaJmbm++8887SMrcr33LLLeHZZ59NomeE02uvvXYSRK+66qql
OATR2223XVh++eVTfGmhcfDBBx+Ec845JzzyyCMpD+6tt9463WyNuJobqhFA59bcua6//vok3mbf
HnvsUdoyZ86ccMUVV4THHnsscBtzhw4dksB7m222CTx/bkOHDg2wOOWUU5J4O1+74IILArXp+/Tp
k5YQaBN/8803J8E3zs6dOyfB+YknnhiWWmqpPEW7j2fMmBF+/OMfp3MhDJetsMIK4dxzz00iePnc
m4AJ1EYgCqj3jTsmxlYfmzSkaD8lVMaH3lPiYtYwehprNHSs0rJqjb3oSfErD71yxWGYFxv7iWMN
U0zD7NP60qEqhjrsU33miiEHTXkVi4/zEIdRnxjFkUsxGrOmPcobXSVNLnF6ZvISwxxTXnyMMZ1F
4+RszR8UbqvpgMqjh1ZuDiuo6onVQ7OfMYDkQyisB2adtTwP64ov1tecHmOf4umZY6wrp+ripy5x
GOfVGn69HOUjh+oRR1NdjVVfPXmKa8zxY/TcVI1RT+fEr3PRd4pt5SlTptTxH1mbCZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhA9QQsoK6eVUuRXP6IyHnR
RRcNnTohaSo3xMnTpk1LAmlE1K01hNZTp04NSy65ZOjalbsnW7b5nau53e+88066JXuxxRZrLqTV
/nfffTfMmjUrsVhoIcnMWp2upo3we/7559O7WGeddQICapsJmEDrCfB3OP6bxw3UE2KbERsaT8TN
6D4RdaILxfChd+UvPT3rEj6zJ29xWtK44leefD9+TGuMWcdPzz+0WuMMqk9d1cen86l+dCWf9qo+
+/Rc7MfYqzjGqo+P+uzVP3Ks4RcXcWAfjVhZca59OjdzjDiNk6M1f5CkraYD62EFk7nGqsM8j2es
B+MceRxzjD3kEjwemjjlV478v67E6CVoPz1GPGPyMSZW4zgsrbOWr+tDxV78el7GPAOiZ8ZYnp+x
YlnTWDUVK79y0NO0ruchB/7usfWMPxTUffQR5W0mYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYALVErCAulpSjjMBEzABE6hEIN5AvV/0T4ptVmxoPdGj0hjT
EHei90QfyjgXeyoeH3rSfE58nkdr0Z380pcibJb2lJhiI4fqM1Z9fIpV/egqnZnzqD6xGiuGmvgl
rJY/7xmTm1jlUx581MfwsY7hY6515jprHJYMn85VctY6IEFbTTn0MMWDk18xjFkHCj72MOeBNadX
0zq9IDFmXZAYY/hpRaExazoTsaovn16MzkGvOPbm+fWS8Ok8WicWoz7GWRRPTozYvJ7Oq1x6JuK1
R71iyUHrHNsqFlBHCjYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETqJGABdQ1AnO4CZiACZhAiUCHDh1C586duYF6XGyzY0MXi85Thh4Uo5eQWD4JnzWnp6EX
1TgOk5FTDe0oezF8zKXHpcfwYeRhTM+atKtxWDqPzksMY8XIT6xyaKx6qq868hNPUw56YsjNWHNp
Y6Or5FeMcrKW52KP6ig/Ma0yErfVdGBy6dAcTHPyM84fFl9+eMHBr1geEj83O0ulrrzqFas58dRh
Ts8cY0wsrWj4iJPwmljtJQ9+zpKvq55iVU99DC+rpTidIT+HavGc2p9/CPGrPnnFu1scrzx58uQR
/LoJmwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYQPUE
LKCunpUjTcAETMAEygk0CqgHRO+42ObEhg4VMSf6UDSv6D7Re86LTTrROCyLI14CUOIx6V41V07F
0iuGserIRy3VR/eq+sRiipOONffjY51e9RUXXaWzag898dK8Ekt99spf1P+yRpwaORirrnIzxxTX
MGv4UzHq87WqxyRuL+OhOQyNvPRAyV8OPuJyyx+O9TxeUNkjqMX9yoWf/apBn4ufyYtpv56duc4A
cL20fD/nyJ8lTpMpBxPWMfbp3B3jmLqcQy+TNdWLwxTLnHOovsTa2sce5cSHdY2t17Rp0+o+/JDP
l80ETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKBaAhZQ
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
A8OvWM3xyRizR/X1oaM++1in6XmI7RbbSvfcc0/d3Llz49BmAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZQKwELqGsl5ngTMAETMIHsBuoJkQa34KL7ROM5
r7GPXfKhAaVhimGOXhRTjy8XT0tjyjqNOX0xX3SlNXKjLZUAGn8ez37V15pyMsdYx0cNepn2kS83
xSt3Uf/Luky16DXONbrE5XWkl8VPXeacK7fiPF+b75hDtNWUQw/EC+BQxQPnD0qsHjTfL+jar1yc
UXvwkYuXzDjfT04E0OynCRgxNOUv5opLKTY/M7G8THzEk4v8ElZLZM0apuejPsY+YlVTZ6FXLs5P
w+hVn7nq5/tZJz/7O8bWu76+vo5vMthMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwASqJxB/83sKtoC6emaONAETMAET+JRAly5duIF6fGwSUCPmROcpfSy9
BJ4SNqM55dZcaUbjMJk0sdpPnPIxJpcMkba0p8Tk68xVn1yqLx+x2q+16CrpY9lDU33WMHwYfp01
ORp95NceYjmfzoyfsc6ss0RXMq1Lc6t1nY91nSkfa70xTW0didrDlIdeB6JH6KtDM2adB6OvBEd+
5YhhKQc9eYo5gKUPFTHsl5FDNehZY7/qs1dj1siP6QXgy5ueJ8+h26p1LnpM+VinBvVZo+k5VF97
9cz4MdXO18mjZ+IG6m/E26dv/OgjSthMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwASqJWABdbWkHGcCJmACJlAk0HgD9YDonxDbjNjQgEo7yliaUHppVeMw
aV7xoRWdExsaUcWiL1U8folDyYuhl8W0pn3EMVYuxjT20bPOGqYc1EfIrT2KJV4613wf6+yll45V
NVQfP76iKR97EW/TU5+xzoVPexVPj1+NOozz+nHaOiNRW43D54fUwcktPzXysR5YD6OHI45xDpUH
1QtSDsUTx5pekmpqTx7Pi8OPsYfYfJ9q5D37mWuf5qofl0r185q8WGIwxVKLGObqiz49TwxJealH
LA1jXXsRUPecPXt2HQs2EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
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
j7Zo5syZ3JQaNt1005IgG5Hyb3/721Ku2bNnB1qHDh2SqHbPPfcM1ZxLZxo0aFDYY489Smfl3Do7
QnBycdaFFlooIOKWSJsNOu/yyy+fbo2eOHFi4PmnT5+e8nF2zst6S3bLLbeESy+9NERRY+BcK620
Ukvhoa6uLtx2221h2rRpgUssv/71r4dFFlkkHH744UmUzuZqOKkIPIn/5je/GV588cXEkrNfccUV
SQBezTtWrs+65yy33357OtshhxzyWZdzfhP4yhHIbqAeHx9udmwIOdGLohNlTI+pR/c5Nza0oNKH
SnAdXWlPvibRMrnwM6fHVCPXqSqO3Kqv87AHrarqM8dUgzE5OaN0r1rTXPlVkzljjJ659pNLz6j9
1Nfzap9yMFf9OEymNfbz3KzTE4uPeZtMh2hLkuKBdFByMuagAgAcoAqSHpqeWAHUg0tczIPqrBor
nhjWqME+5gKjOtGVjDXVx6F99DobMeQhP4JlnZ85pmdhTh3VZ01z7dF+1qih3PQYPkxrnI018qh+
HKaazPP47nG+4qxZs0byQ4vNBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEygegJfJgG1Tn3//feHU089NSBePv744+VO/YMPPhhOOeWUJCy++OKLwxprrJFE
yVdeeWVAOLzKKquE4cOHp1gJkpngJye3SyNext588810IzFiYW4h/ta3vpVy/fnPfw6//vWvwwor
rBBuvvnmFMsfLZ2rkoD6vvvuC6eddlro1KlTOO+889KN09wyfffdd4cLL7ww3fLMzci6VTo/L891
0UUXpdu1ESFzi/JLL70U9tprryTsLh2qwuDdd99NQvQZM2akGptvvnm6FXuTTTYJyyyzTIUdDa4D
DjggvP766+HOO+9MonMF1spJAmr0XIiw+/Xrl0TwykffEss87rMcP/HEE2GbbbYJ3bp1C88++2xY
dtllP8tyzm0CX1kC8csa/ePDTYitPjaJg9GBYmhS0YKiR8WkcW2YNfgRf9KIYx//SBMvDWm+hzVq
0LPOPuXO1+STflbzGF6K1172qT5x7KGnLmvSwtKzRn3lVQ561dd+fNLC6qzRlc6t3KpHLD7NiVcM
PQ1Tbp2LfcS22kjQVtPhycMB9bD0HBTTwzDOH45xvoc4QSNWuXVOxQsA8YohnlzyKRY/RhxN9VVX
9cjJGqJnemLlo9de4lU/DpNfNVljzDovk1wy5WAdU33Vy+fKpzr5XuKZd4mtZ319fd0nnyhl9NhM
ICPwyiuvpG/s/elPf0o/DP/kJz8JRxxxRBax4A75gZX/AcGvveHbj/zQzq9KsZmACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACSwYBP7XBNRnnHFG4Mznnntu+M53vlN6
SWiHBg4cGN54440kpOaW5lyQfNNNN4WePXuW4hlw2zK3O3M7MrdDy/Aj3n7rrbfCHXfcEXr06JGW
WhL9VhJQ66wnnHBCEhErPz3i6FGjRoWjjjoqnRtffl5E4Ii+Zbfeemu45JJLkgibfn726quvJtH2
2LFjy0IRkP/oRz8qY6eA5gTUtXKSgPp73/tegEEla4llpfj29iEK5/MzadKkJGY/5phj2ruE85nA
AkGg8Qbq/ePDjotNN1Cj7UQ7KlEnY4w5Y2lBFSM9K+vaG4clMTVjYtGvKof0rfTawzpx0qGqPjEY
c8VLC4svb9pLvM7KWLnkZ05d5aNXfTS0qikfPYafGpjqakyv+tpHDYzYPAc+5vm58NVsSlrzxmyD
DqJcOqz8+SGBI7CKI5XGAspejbUGDMb6MGiuXvVjSIIjv/bTIz5WfcXpnMSzxkuQTy+ENcbk4Fys
48NUh15n0Fh55M/F0uxVHvKSX/WVUzWZM8b0PPzkgoD6ps9DQM2v8pgyZUr69hk/NPEtM371R1uN
b3vxKzDeeeed0LVr1/RtJn69iL7t1pr8nJUf4qZOnZp+uOJXa/ANMvIvaKZftaHn5ttt//73v9M3
EOVbEPtnnnkmfPvb3y579H322SfccMMNZT5PTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAEvroE/tcE1Pvtt1+YOHFiGDRoUBMdDCLjF154IZxzzjnpZmEJktHhjB49
usWXOG7cuDBhwoSAjmfmzJlh5MiRSc/DrdaIsbGWRL+VBNQ6K+dabrnlyur//e9/DyeddFLYdttt
w9lnn53WdF50SdxSjcZFxvkQiHMz9bXXXiv3fHsuHnzooYfCk08+mW5ZRgyNbbTRRumW7UUXRcrV
YM0JqLVOXw0nCagrCceVqyWWivms+vfeey/suOOOAe0Mzzxs2LDPqpTzmsACQSDeQI2A+o3YEFDr
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
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARP4XyTwZRRQI+7lVmguQuS3tXPTNKJfjMvi
0PZwCzWCZHQvXED4zDPPpN/evv3224czzzwzxbYkSCbg2WefDT/5yU9SHXQ76G1efvnl8Prrr4fF
FlssvPfee2UC6pbOVUlAzfkREaPLiQLDsP766yeRNDqeDz/8MHDj85FHHpnOyh8tnbcWATX6JG7U
5hbq7t27J9Hw8ssvn3Q9Tz31VBJu87yXX3556Nq1a6m+bprmt7rDnHdAXyunagTULbEsHaidBrm+
qlevXmGJJZZokpmbum+44YYmfjtMwARaJtAooB4Qo8bFNic2dKjSlqJ5RfeJ3nNebNKJxmFZHPE0
jHhMulfNlVOx9IphrDryUUv10b2qPrGY4jo0TEv18eNTr/qKI1w58p54aV6JpT575S/qf1kjTo1c
jFVXuZljimuYNfypGPX5WtVjEreX8dAchkZeeqDkLwcfcbnlD8d6Hi+o7BHU4n7lws9+1aDPxc/k
xbRfz85cZwC4Xlq+n3PkzxKnyZSDCesY+3TujnFMXc6hl8ma6sVhimXOOVSfeNXXeZSTNYz/gveK
PwTV8QNHWw3BMrc58+s3isa3kE477bSwyCIq3RDxt7/9LQwcODBMnz69uCXcc8894Tvf+U7y80Ma
N0gX7de//nVAQF00foDhG1584yw3Ytkj22effQI3SOfWu3fv8Mgjj1T8phTfpOJZisYN1gitW2v/
+Mc/mtxizQ9YUdxelrK5582DEJHn74B/ZHv27JlC+CGYW7j5YfWdd95JP7iutdZa6b116tQpT1Ma
w7J4jhVWWKHsXbZUkx+y77333vDqq6+mH8Kpxw/ffDuwaC+99FL6oZHz8UP1lltuWTp7MbY45zPM
54QfYrkR+v333w9rrLFG+jbgaqutVtWt2bUIqBH188Nobt26dQtLLbVU7moy5ow838SJE8MHH3wQ
+AGb/7HC55v/8dCStcS5Ne+2WIvzvPDCC+kd8GyI9Tkb/Gg2EzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzCBcgJfpID64YcfDieffHLSyJx11lllBxs9enS6fZr//x+h
dP5bz9GVIP59/PHHS9oHRLF777130vFwyR+GNgL9DdoGbpKuZA8++GC45JJL0qWHrC+55JJJVI0m
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
7M+Ze3PM54we1mbG8GGecTfOqGP/umw92ffxa9b9BjfccMPJ/CZDLARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCYOwEIqAeO6tEhkAIhEAIjCSw8A3Uz6/e
mXXMrUNxMDpQDE0qWlD0qJga1wW7BX7EnwziyEMnSrwa0j6HM3owc06etfszfepn3dfwQby55Nmf
OHKY6cuZWlhmzuhvXWsw2998fGphvWt1tXtb237E4nNPvDHMDMza3os8YidsFFhS8/LU4YI+LDMX
xXwY1v3Dse5ziBMasdb2nsYLgHhjiKeWPmPxY8Qx7G9f+1GTM0TPzMTqYzaXePvXZfPbkzPWnPNh
UkuzBueY/e3X761nnz6XePaT65g2d+7c6bfdZsnqiYVACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACCyWQATUi0WUgBAIgRAIgUUQmDRpUpk6dep+9fjyOnwD
NdpOBch12dbMiDzxqwU1Rj0r5+bW5UBMzZpY9KvWUN/KbA7nxKlDVVRKDMbeeLWw+PphLvHelbW1
9LOnr/WY7a8el1h9zBhx9MDs65rZ/ubRAyO2r4GPfX8vfOM2i447sUvwItbysvr7SwJHsMZRyrVA
yXXtGTBY+2Vw72z/GtLg6DefGfGx/Y3znsRzxoegzw+EM9bU8MPGh9mH2Tu4to7+XixNLn7zqW//
3kdP9pxjPg9voEZAfVIE1I1LfoRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACITAmAlEQD1mVAkMgRAIgRAYIrDwDdQIqP9UBwJq3zxNpDpXZgytKNrTPgYtqKMu
B/pU1hjxnDujISXfWsyes/aMtf3JxYy1v3vOqKG55ty+nLFG/0u++lZrkMPaM3OJ8x7msCfevTWY
MWu59j7s1dj2uT4f5+M2m447sUvgMj5w/2Be3MuSwhoDgoLgHhB1GOTqZ0+eOZzhw/xQ2LN2b29i
7Imv78mHiVGXGM9YE0stczljb4z9iaMOe9bu67KtybcGPvK9q/3t4954/cTb3174Vq9jwxtvvPHk
OsdCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIATGQSAC
6nHASmgIhEAIhMAIAgsF1HtX55/rmFuHGlK0nwqV8aH3VFzMGcbM4IyBjlUtq2fkoifFbx1ma9Vl
uakO8onjDDNmwe72/upQjaEPefZnbww1GNY1Fh/3IQ6jPzHGUcsY15yZY93qGmhyifOZqUsMe8y6
+Fhj3sV1c07kB42X1LygdXxoa3NZoToT60OTzxpA+hAK+8Ccc9bX4dz44f7umTHyjGdmj3FuTfvi
py9xGPf1DL8fjvWoYT/iGPZ1bX9n6gyfscePMfOmaox+3hO/92JetY6Nq4B6ep1jIRACIRACIRAC
IRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRAC4yAQAfU4YCU0BEIgBEJg
BIFJkyaVqVOn8gbqmXX8sw40noib0X2iF0UXiuFD74oWlJlzhc/k9KNuBxpX/Nbp8/FjnrHmHD8z
+lLPuIP96Wt/fN7P/tXVfObanzyfi3yMXONY2x8f/clVS8sZfrnIgTwGsdrw3jzvzR4jznVzTOQH
RZbUvLAPK0z2ru3Dvo9n7YNxjz6OPUYOtYTHQxNnfWsoLq5HDYwfgvnMGPGsqcdawKwxz5n7c79U
5OL3eVnzDIieWWN9fdbGcuba/sbqtwYzw3Ofhxr416xj2ty5c6ffdhshsRAIgRAIgRAIgRAIgRAI
gRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgbESiIB6rKQSFwIhEAIhMExg4Ruo
96n+K+q4oQ6EnOhRGawZaEvRe6IPZc3QjMeHnrTfE9/X8Yxc/OpLETarPSVmeBhrPfurTSXe/nU5
uLN67Z01kgAAQABJREFUXc6J9S7GUA+/wmr9/cya2sRazzr4qI3h4xzDx95z+xtLDObzEztho8iS
mjW84PDFqW8Ma86Bgo8c9jyEe2aH58xCYs25kFhj+BnDQmPOvBOx9tfnB+M9mI0jt6/vh4TP+3hO
LEZ/jLsYT02M2L6f97WWz0S8Oc7GUoOxWh2bREBdKcRCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCYJwEIqAeJ7CEh0AIhEAIDAisuOKKZe211+YN1JfXcWMd
6GLReWroQTFmhcT6FD67Z2agF3Vdl82o6UA7Si6Gj716XGYMH0Yd1sycqV2ty8F9vC8xrI3RT6w1
XNvP/vbRTzzDGszEUJu1e7Wx1TXwG2NNzvpa5NjH+sRMyCi8pOaFqeWluZh76rPuHxZff3nh4DeW
h8TPm51VqVvX2Vj3xNOHPTN7jDWxjGHDR5zCa2LNpQ5+7tKf289Y+znX8BG9jPMO/T3sxXOa338J
8dufuvJeo643vuGGG07kNxliIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRAC
IRACIRACIRACIRACYycQAfXYWS2tyH/84x9lrbXWWlrl7tI68+bNK+iyVllllbu0T4qHQAjcPQks
FFDvW29/eR3z6kCHqrYUzSu6T/SeN9WhTrQuR8QRz8CIx9S9uremsczGsLaPPnrZH92r/YnFjFN4
2vvxcc5sf+Oqa3BXc5iJV/NKLP3J1T+s/+WMOAc1WNvX2uwx4xbsFvw0xrk/G/OawkvLeGguw6Au
M1D6Dwcfcb31D8d5Hy9UcoQ6nG8t/OTbg7kXP1MXM99nZ+8dAO6H1udzj/5Z6raZNdhwjpHnvfnb
k77cww+TM/vVZYtlzz3sr1jbPHKsiQ9bvY6N6l/U02+91dLNnx8hEAIhEAIhEAIhEAIhEAIhEAIh
EAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAKLIRAB9WIALeL4oosuKtddd92I05VXXrms
t956ZcMNNyyrrrrqiDM3xx57bDn11FPLgQceWPbdF83h8mtz5swp//mf/1l4rs985jNlzTXXXH4v
eyc34znOP//8su6665bttttukZHnnntuufbaa8uOO+5YVl8dWdo9wz772c+Wd77zneVNb3pTeclL
XnLPeKg8xXJDoHsD9cx6qRvqQCuqWJk1mlDEw+pFXaMxVfSprpUYfOxZM6MZ7fecc0Y+Y9iIVazM
mv7mW3M433votwez/ZmpS0/ihk0fvRjEm08e9/AuzPasy8Fz4JeLMX1/6mL2WrC7Pd/9uObhYuNK
XhhMDS7upZn18aA+WF0O1oJ0Ns4YZszzBbvbAfm2ZiE7AwmBsc/V16UWQJkZ3st7e8aMWcO1z0Su
/a1JH8XOzNYml7VmbfbG4DPfevSyv2v35NJ/ch0bnnXWWSfz206xEAiBEAiBEAiBEAiBEAiBEAiB
EAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiB8RN4/OMfP/6ke3EGQtTLLrtsVAKTJ08u
O+ywQxOrrrbaaiNiDjvssHLBBReUnXbaqQlaRxwuo83pp5/ehMN77rnniDdNX3LJJeVVr3pVuxUi
3Ac84AHL6IZL1va0004rBxxwQFlppZXKt771rbLNNtuMWpDP7Be/+EU577zzyoMf/OBRY+6OzuOO
O64ceuih5fDDDy+vec1r7o6PkDsvxwQmTZpUpk6d6huo59arogPF0IEy2Lt2r8aV2Xhm9KSKjeuy
nRGDn5l8NKTEmocPMw6/OlP7cc7aQaxaV+OZ7aPGlXjrWosYYtnThxkz33mB9/ae/Z4YegzXxEc/
5v456Ukso1/3/evRxExYE8tekMWFeSiNi1qXNcbFGZhQiWFtLGfEsO+/CNanBx+cNZl7WHU7MGow
yGE2jrX96eW6Llsc5/jpbw57ejHor7nv+7DGyNHwUQufse7pzxrznFm/ufZHOG0PBNQPPPPMM784
f/78uoyFQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiM
l0AE1OMjpoB69913L+uss05LvuKKK8ovf/nLctVVV7U9Qt13v/vd7Q3OVr/mmmvK//3f/5XHPvax
Za211tK9TOcXv/jF5U9/+lP58pe/XKZMmTLiLoi9V1lllbLllluO8N+dNgqoufNmm21Wzj777ILI
fdgioB4mkn0ILJ5AJ6CeUaN5AzWG1pO3UKPzZM2MHlRNKJpW/P1eH37WmDHqRa2HtlUfNTBiezMG
v3pUYhVO2wftqmtrOFOPHHpRQ1Pbi9/+njHjN8Y9z8RQ/+vzqp31mYmnPzWYvQv98WH0dD9a/xY0
1h8WHWv8aHFelpkHEr5+cnwQznuo+PEJiAdjjU8AzD5wX9NYZmLsP1y/HjUjhg/Ac3v0Xwrrc6Z5
H++g3779bH1jqdebvTi3P6JovwD2J07j3sSSY13O+HchNpw9e/ZJt95qOu5YCIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACITA4ggg5sUioF4cqZHnCqiPP/74
svHGG484/N3vftfeLn3dddc1rm9729vKiisieVo+7c4E1Mvnjcd3q15ATeZBBx1UPvShD92hSATU
d0ASRwgslgD/27b22mvvXwMvr+O6hQmKhxF1MtSrLjxuPjShGOes3fM/loivNYWh1CCGc+pjak3x
cd7Hojdl71DHyoyPWq7rctCfvL6+NYln7Tm59PVO9qmuQRxnDO5GLDkMa+EjTx9zX79uB/ciBzPH
tT3a4UR+0HRpmHW4kA/kQ1Pfi3LmQwiUmXNEw5zzBVBoDBDMun4RVqk+v2ic9/2pTzy5+uuywebM
/sYwMxAyY9SlPz7numx59Mfs7/3oYy/qY8yes6eePnt6zp6aGP25i/3xYd6bPsQyNqm/tTX9llu8
VvXEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEFksg
AurFIho14M4E1CT8+te/biLqefPmlaOOOqo89KEPbXW+/e1vl29961tlzz33HIjWb7755hY7bdq0
sssuu5RTTz21/OIXvygPe9jDymGHHTbo/4Mf/KDwRuiLL74YwWLZeuuty0477XQHATcJvAX7u9/9
bvn5z39eZsyYUTbZZJNWb++99y6rrrpqq3n66aeX73znO+XSSy8t8+fPLw95yEPKSiutNOJub3jD
G8oaa6xR3vGOd7Sc/gf34fvDXam51VZble22267dq4+zD0LtP/zhD+Xcc89t833ve9/yxCc+sey1
116tb5+zNNcKqB/xiEcUxO1z584tJ598ctl5551HtLkzATWfyfe///3y4x//uL29mnvzWT3pSU8a
UeNzn/tce5M3ovkf/ehH5cwzz2x8v/71r5dHPvKRxXN4nn/++eWb3/xmueyyy9rZ29/+9vYZfelL
XyonnHBCeys4b8zebbfdyste9rIRfdjwXfre975X+Bx4Jp7vec97XuGt6L0dd9xx5dBDDy2HH354
ec1rXtMfZR0CS0xghRVW4C38z6+F/lTH/DrQfM6rA12owmH0sQwMbShr9KHEowklDk0oucYx49OI
8Qw/e4Z9OFPrSl3WnFO/r2sd+qPT7TWpxDGoTz3ONPzkcuY5Mfbn3P7D+l/irEsNY9X/elaPBnH6
6IWxpw5774zPdV1OzGwwsewFWUKgFoOLMTT9zDwEpk+o+pipZw3i/SDwuxcGdTi3DnvM/szkWUN/
n+cZM+d+kHXZ9t4VP329hzXsz2ytuhzk2p946g/ncY4x2785Fu6pSY738h5rVN/Gs2bNOvG223ys
6omFQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAgslkAE
1ItFNGrA4gTUJH3wgx9sIteXvvSlZY899mh1vvjFL5bPf/7z5ZWvfOVA6Ip4GZHslClTCi+R5M3V
q6yyStlmm23Ku971rhF5bKpYsVx//fUFcTY5Rx99dHnAAx7Q4vjx17/+tbz61a8uc+bMKYgb11pr
rfL3v/+9nT/oQQ8q733ve1vel7/85fKNb3yj/OUvfym33nprWXfddZuQ+YUvfGF5ylOe0uKf9rSn
tXxie/vCF75QGBgCa0Tg3Id+b33rW8v2228/CP/Upz5VTjnllLLttts2wfXkyZNbP+IxhMh3pbBX
AfVzn/vc8pjHPKaJ1e93v/s1ITfPrC1KQP2BD3ygHHHEES0MlnxeCJZ58+6nP/3pwedIAJ8Xn8eW
W27ZhO7wQFzOHRCYew6fH/7wh00If+211xa0b1OnTi0veMELysc+9rHGlO8CfbBh8TM9/G4gRL/h
hhvad4J+3PXggw9uefyIgHqAIou7gAC/dFH/dwgB9Yw6bqxDXSszA10rhsATHag6V2a1pMzG1WXL
M59ZXSln5rHGzLMW8fRhb391q/jxsTePNdbvzXWmvzXIt1dfhxrsOfe+5nOG4eeceyCeJt5Bf9fk
Oepy4GdNPmas+wXeCfyk0NIw63BxHhTzIZixHoA+H4RzH8YaQEEsjHlmPDPnfU3jUMdr3oE9sez9
gliLPTYcS09q6e/j7a+YmRr4iCXHtXN1DQTQ8uGM4Z4Y8jHr+iz4iaUP8az5dagH1r/sT+Qv4VgI
hEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhMDYCURAPXZW
feRYBNT/8z//Uz7+8Y+XHXfcsbz5zW9u6XcmoCZgo402agLfzTffvImR8fHGZsSyiKXf9773Fc5u
uumm9pbir33tay2HNxZjCHERbPNW48c//vHlVa96VRNc//GPf2yC7t///vdl3333LQceeGCL5wdv
hv7Tn/7U3pxMj95GE1CfffbZ5b/+67+aMJg3KfMmbLRbvBEZYe/KK69cjjnmmLLpppu2UgqoEfci
lKYm4mneTI24Fz9vXR7u3d9jSda9gJp+vPGaNzfvuuuuTcxu7dEE1Lw5+uCDDy6rrbZa4bPjjdM8
60knnVRe97rXNQY8N28LxxRI80y8PRzOvC1c8xzRKVwQzs+cObPFXXTRRS2Mt36//vWvb4w+8pGP
tDeYb7HFFu17QMDll1/ehODU+OpXv9re+o2oG0H7G9/4xrLJJps0obo9I6CWROa7ikD9RYQX1Noz
6riuDjSn6FrReSLqROupT21odTXjTc2c+yZoztXEsiaP0fs5RzuqnzXWx3NGXfubz2x8XQ7OieO+
1kC7ytq9a2KoTQ18WF+PM+9Ff+6qDhY/Rrz5PisztTHiyMGsZS/7e1diqGVt9uO2/gHGnbwwgQt5
EWeOWPf1fQDPvDgxPKTx5gjGL5F5gu3BkEM9a3FGnrWYPavLEWuBMmPO1KOG59bA75cEH+fWNra6
mp98zDifs48jxvsSaz37e97XoP/kOjaaPXv2dH4LKhYCIRACIRACIRACIRACIRACIRACIRACIRAC
IRACIRACIRACIRACIRACIRACIRACIRACITB2AhFQj51VHzkWAfX/+3//r7z2ta8t06ZNa2JZ8hcn
oOaNxhtuuGHfqr0x+gc/+EF5+9vfXp7whCcMzhBLH3LIIU2Ai3h2/fXXL3/+85/Li170osIblo8/
/vjC2541RNSf+cxnWtzLX/5y3eMWUPMGa+6DOBsBcG8f/ehHyze/+c12h3322acdKaB+8pOf3ETF
xnN/xMy8HRuh8MMf/nCPlurcC6g/+clPlquuuqo88YlPLNdcc00TeiMox0YTUCMuP/XUU8uHPvSh
ctBBB424FyJnePZvh1Ygzduu6TVsnu+3334FVhoCcoTvfPYXX3yx7nL11VcXxNPYlVde2cTpvJma
u/OW8l50jv+Rj3xkqVq68tvf/rast956LS8C6oYhP+4iAryJvf6SAH+I/lQHb6BGB+pAmIzmk4Hm
FT+msBkfht8Y9vgRhOLT3Pd1zCfGc3vgsz96VPOoaf9edGp/ZvwM8oYNv/ft8/U5k0fPXguLzz74
vSs++zpbh73mGft+7fmE5r7BhAosTBp+INwAoj6DB2IgBu7B1e3Az5ozwVtTUJxj1lmwW/DTWHbm
E2d//HwgvNHZ/v2zcy/2xLDGnPvnWHBy+5k17MmeNTN51q3LtveN1pyby0wcefbXV13teY13Jn71
Ojaqb6CenjdQgykWAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQ
AiEQAmMnEAH12Fn1kWMRUF9wwQVNMPyQhzxkIJa9MwE1byo+5ZRT+jZtzVuMEc++8pWvHCGI5pC3
XCOWfdvb3tZEwd/97nfLEUccUXbeeefCm4zHYuN9A7X3UbTd9zjvvPOa0Hv77bdvwmLOFFDD7DnP
eU4f3t5kzRutERY/7nGPG3G2tDbDAmrq/u///m976/Oaa65ZzjnnnLLxxhuPKqB+1KMeVRCe83Zo
hPC9nXHGGQUh9O67714++9nPtiMF0qMJrgnw/MMf/nDr35LqD/4cPvWpT21v554+fbruNm+55ZZN
GM93YNVVVx1xxmf/hz/8oYnQEaLzxnPifv7zn7c3kxMcAfUIZNksZQILBdT8tsQVddxQB+JkTO0q
GlI0oewd+NCKMmOcuycGY8aPoRllzUA3ymytumx1yMcUTbMmjx6M0eLtNXwf8jjzfu6pzYt/vVdd
NiOOe2HEeBdm6gzH46Omxt5YfJ6Rx9r+xnkvYpfYbLakhazDJf2QfCgv3p8RLyj87Hkw/ax9UOqZ
W5fN39fGZy1yECkDzzzW+DjzA6SPH1pdDiCzxk+s97I2uRh++zfHwj01ObMXMfjszxk1qM2Z/Ylh
aN7b/saRaxz5/IrUtCqgPikCatFlDoEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIGxEYiAemychqPGIqBGCIuw9lnPelbxjc93JqDmDdKIknubP39+E+jytuY7
M946zRufeYP1ySef3N6W/PznP//OUgZn4xFQe59JkyaV008/fVDDxYwZM9pbsXmTMnfBFFDzxmZE
wr3x5mmEyP9qATV34DOBFcJtBNU77bRT+cUvflEQgT/4wQ8u8+bNKxtssEF76/OsWbP6a7f1pZde
Wrbbbruy+eabl5/+9KfNp0D6Yx/7WBmN/6LOFVA//elPLyeeeOKIXltttVV7y3gvoOa7hTD6V7/6
1YhYNxFQSyLzv4LAuuuuu1/tM7OO6+rwf6zQjDLUgKoZZY9fXal79aicoRdVCE0ePs6twRmmlhQ/
xtz3s3+fS5z9jbcuuazRqSqEZk88Pub+btTFiOEuzNSwH3uMM/zkYvrxOfpa9jKvr0kN728O+wmb
ECdcoCZyKSFQx7UXx4e5Z+7NeB/YD4C6+oxnT7xnrq1BHGvhOPd59seHsWdNLLkIoPkCcA99nDuI
t79rexLDmnPOqIHhN9Y9Po01Ofb3S0d/8jhn+DzErlHHhvUvqOmL+4+EGhcLgRAIgRAIgRAIgRAI
gRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRDoCERA3cEYx3IsAupDDz20XHjh
heWNb3xjecpTntKqj1dATdJee+1Vrr322vL+97+/rLbaaqPeEvF1FTE2UfNRRx1Vdt111/LqV796
1Nhh53gE1OQi1L7mmmvKl7/85TJlypQR5RDuvulNbyq8ufm9731vO1teBdT//Oc/y5Oe9KSC6Pvw
ww9vb/PuBdRcfosttij15Z4FsTR8e+PN1XvssUfZcccdGwvOFiWQNm9R5+MRUCOa3mGHHdrbqHmj
N+v73//+ZerUqeXggw8ul1xySd5ALfDMdzmB7g3UM2uzG+tA94nG86aFc52aDw0oAzOGPXpRzBlf
L55WY8o5gz3zcL3qamfURluqABp/H0++/T2zJnuMc3z0YNbMo15vxlt7WP/LuWYvZte9Rpe4vo96
Wfz0Zc+9ehve92eLXXOJJTVr+EB8AFxq+ML9gxLrg/b5QjffWtzRHHzU4kNm3edTEwE0+QyBEcOw
/nCtetRi+zsTy4eJj3hqUR+f/VlzhuEjlv4Ya87t6V2YGdTi/gyM2f7s7d/nW5/8Vep44OzZs6ff
eivuWAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEwFgJ
REA9VlIj4xYnoD7llFPam5dXWGGF8pnPfKY84AEPaAUmIqA+7LDDygUXXFCOOOKIsvXWW4+8yNDu
97//fXnZy15WHvjAB5Zjjz220F+77rrrytlnn11WX331JrrVr4D6pJNOuoNI+GlPe1pZa621BgJh
chAb88bld7/73eWxj32sZdpMDZ6Xty8fdNBBzbe8Cqi5HG+bfuYzn1lWWmmlMnny5PL3v/998AZq
znmOs846q/Bcw2/PPvLII8t73vOe8trXvra89a1vJfxfIqB+1ate1d5S/dKXvrT1b43rD94Oztuw
r7/++giohZL5LifA/8ass846vIF6Rh0KqNF7IuhUH8uMD1PYzP84za9DzShnmJpY84mzHmtqaYi0
1Z6qMfWcvf2pZX991DLfs+pqOWpmybM/Zxg+DL93bY6FPuqbQyz38074WXtn71JdzTxXc+u59+Pc
O/VrzxeWGd9EoaVh1mH2QswIfb00a855MObR4Oi3Rg1rNZipM1wDWH6piCFfo4Y9mDkj3/7kuuaM
+pgfAL5++Dx9Dd9W7b2YMetxTg/6c8bwOexvrs+MH7N3f04dn4k3UG9af8vnCzffDIJYCIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACITAWAlEQD1WUiPjRhNQ
8wLIyy67rJx77rll+vTpLeE1r3lN2WWXXQbJExFQK8beaKONCm+XXnPNNVs93ozM2615G/TRRx/d
RNNoqBD9IgTed999y4EHHjjozRusv/e975Wdd965vOENbxj4X/GKV7Q3LCOM3n777Qd+FqMJqHnz
9PHHH1/ud7/7lY9//OODt1Dz7Lz1et68eeV973tf2XbbbVut5VlAzQURgsNVQ1T94Ac/uG2POeaY
8o53vKNsuOGGjZ1voeYt0E9/+tPLjTfeWL7yla8MBOmLesO0tRd1Pp43UFuDt1+fcMIJli7vfOc7
y0c/+tG2503gfF+w4447rvA2dD5fvo+xEFiaBBa+gXrfWnNmHf+sAw2o2lHWakKZ1arWZdO84kMr
Oq8ONKLGoi81Hj95GHUxxaKemUcca2uxZpDHzDlnmDXoj5DbHGOJV+fa53FOLrM6VnvYHz++YbMe
uYi3menP2nvhM9d4ZvwO+rDu+9ftxIxCS2pcvr+kF6e2fnr0ax/Yh/HhiGPdQ+VB/YCsYTxxnPkh
2dOcPp4PDj9GDrF9nj36mXz25rm3fz0a9O978sESgxlLL2LYOw/7fJ4a0urSj1gGxrm5CKinzZo1
a/ptt+GOhUAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAI
jJVABNRjJTUyTgH1BhtsUFZdddV2WDVMTVBrJG92ft7znue2zRMRUN9yyy3lbW97W3sL9ZQpU8pW
W23VRMqIeHmr9JOf/OTCW6q1Sy65pAmkETLz5uvNNtus/OY3vylXX311e8vyRz7ykeYz/sMf/nA5
88wzy8orr9zecP2c5zynbLPNNu14NAE1QnHEugiNV1tttfKwhz2svf2YHgi499lnn/KiF73I8u1N
3IjAX//619/hLc7c5Ywzzmhvbn7c4x43yFmai9NOO60ccMAB5bnPfW755Cc/eYfSN910U7vXL37x
i3bWC6hh/8IXvrB861vfam/u5o3bcOWN4OQhSEaYrClu/tjHPtaE7PqdF3U+HgH1+eefX3bdddfC
57DllluWf//3fy+//OUvC5/72muv3QT1EVBLPPNdTYC3t9f/XXp+7TOzDt5Ajd4TMSczptgYzSg+
9KIacQ786k3JQbOK6SfXWuQQy9zXs0d1tzNma3nmvTjDqIHZhzjW9HfNjCl0Jqe/H2fEMKjP7B2t
Szy+4fM+ru+pXtb4mjpgytr+w8/D2bjMhxtX0lCwDy8YPxRr6+/B+ODOPIgPNVR+ABS/kHowi+ov
RHq4pob3oJZ3ox4x3qcuW5zP4J4chv3tbRw1+g/dHviNwYf1Z9RDdG3/vq55zNRhEI+AeqPZs2dP
5y+EWAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEwNgJ
REA9dlZ9pALq3ocAeb311iubb755ezvxox/96P64rU888cTyuc99rrzyla8su+++e/MhxEUQu/76
65cvfOELd8jBwZuOeZMwn9dVV13VYhBT8xbivffeu0yahJzqdvvZz37W3oyMsBbB7yqrrNLeqozg
1zcTG42w+hOf+EQTRCMYfvnLX16e9axntWME1FOnTi0IoHujJm+hvvDCC8uVV15ZVlhhhbLpppuW
Jz7xiWW//fbrQ8unP/3pcvLJJzdRN2+/7o03P59++untLdCIk+8Ko/7+++9f9txzz8ZwtB6XXnpp
+Y//+I/G6ic/+Ul50IMeNAibO3duE7Dz9u4//vGP7Vkf/vCHl912262JwgeBdeHbrHkzN0LyYVvU
OYLnpzzlKeUZz3hGQWTf29Zbb11mzJhREOjzOWLf/OY3y5vf/ObmY3/f+963idC//vWvNzH8RRdd
VKZNm8ZRE42/5S1vyRuoG438WNoEFr6Bmj/0l9cxtw6EnAx0oP3QpxYUjSnnGGf4nREqqyO1RnU1
IwZztgb10KPi19fn6le7SrxGnP05R3SNj7U1+nV1j7gfe+oT473wadZgTwy9FIPjw/DZkzMMH6bf
tbHOnE/YbDLhAjXRi1iDv5F8aC8vIM4ErGDYD4e9AKkp9Lps9cjly7FyHdajPrHsfRbrVtcAnnGc
2Z863pN8/heWLwZ1GP7NSgxGLv2Js39dDvr74RKH2dPnYObML5/9iaUev45lf2LtX5fNvDtxxPPv
UUyLgLqxyY8QCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
GBeBCKjHhWu5CEZAzVuvETYvzngjdNVWlfvf//53EFkP5yLkRhi9xhprNJHw8Pmi9n/7298Kb6G9
z33us6iQe4z/L3/5S3tW3vS8PNicOXPa27950zhC1lgI/KsJ8MsT66yzDm+gvrwOtKVoU9F2Yupa
2TP4ks6vo9eQojH1vC4Held95lGXetSgD370peSjOWWgR1UbqwaWOHuYa39iOPO8LptRdziPPcYZ
/cmhDjO9Obd/XQ7uam1mc43jPvgx8rkP5nN5B+I854xnxPq4BZ4J/LTpBFIHKdboH8gHY/YBSGCN
eU6u+TykD2WMZ/gBTR5rYu1nTffkEMfc1zS3ugfnxJjPuWtiMGvyYVOLGNfGOnMvzDsv2I18JmI8
Z2aYR7y1jHFvT2L4AnEXBdQn5Q3UYImFQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiE
QAiEQAiEQAiEQAiEQAiEwNgJREA9dlaJDIEQCIEQGEmgewP1jHpyXR3oPtW5ovHEmNGBKq5mTQyG
HpWBkatG1Zk49KW9MJp4z9WZ6rNGDWkxzJzZ3zV1iWWv9XvqY/Znz6AOOebZv7raeV+DGPbk8QzU
wufzWMsa7mvIoAfx+L2PsX1/1+SN2yw47sQugRpcwlqu9bsXAn4hGOND4veBhC8Y65DjMNYPpx61
fHL6PPfE2d8vATnGMmvEIlwmXmNNjP31E8vd8XMn1+7Jwec9qWt/a1ZXq82Mz/79nazD+Rp1TKu/
VXUi/3xELARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
YOwEIqAeO6tEhkAIhEAIjCSwUEDNG6j/XMewgBrRs9pPtKCM3tCZMhB/cqbWVF1pdTW/cdTy7cus
eRO0OtPhuR61WOI8swdnGrW9G3GYceYRw5qhUBUtLHcxhj7mEY8RSxzmM1jHmvrJpQbWrz0nj3PZ
9P2JmbBReGlYf/n+sr2ftZflAXwY+/PgAutB6SeXGgIiXyGyeUInznVdtr79sxJPHfsYQ54+1ph9
WOPzHvh5G7R9yPOu1OcLwjlmDmviuLf97cOZ/Zn1E0c85nNytmodm9Z/iuCL/HMTsRAIgRAIgRAI
gRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgbETiIB67KwSGQIhEAIh
MJLAQgH1vtU7ow4F1Og9NdaIO9F7qhdFb4qGFAE0utD5daALRWOqKNlzNaT6qaEWVR97hvVZk4/h
o5/9me1PPv25h/2NJZ9z+1MHsxfx1sGH2Z81+QzOqGN971FdLZ/+nusjhjHc33rEjdYf/7iNoktq
XLaHLhBmH1gA9PLcPGPwEwdIc+uy1QC2sPQxY9Ye7VmsTa4fkP3Nsye1vJN3oSaDXMTQfCjsicNY
Wwcfe4yZGvZlZt+fm2cMZ/avy1ZXn/39ghK3eh0bzZo166TbbvORSBuf+R+C48tKdAiEQAiEQAiE
QAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAgsWwLbbrvtEl1A3czjH//4
JaqT5BAIgRAIgXsfgYUC6hfUJ7+8juvrQO+JxnRYq4oPvShiZXWkxGgKQJnxO1PPWr3fGs7oSkdb
67M/sz5mjB6u2bN22J+70wPz3mpdjSGnX3OuDet/9TP3ddh7F/pwxkx/+3punvsaMn7jwktqXpI6
rDEuxfCMPuwVDdflHc59IGY/MOIwHr4XGuMjDrDCsb693FPLXIXM1dXMnuRYh9mcvhYCaj8Ukskd
/nCoTw7GmaJr+zJjxlADY8+Z9fzCGMezUMtnqsuyZh0bREANilgIhEAIhEAIhEAIhEAIhEAIhEAI
hEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhMC9jUAE1Pe2TzzPGwIhEALLD4EVVlihrLPOOs+v
N5pZx9w6FBkjlFabiiZUnavn6EAx98QwhnPYo2VFR+o5M/nurUEsa2LJsRax+NXH1mXLJ854ajGI
wdzbH/9oNfqervucvpb62P5ZqEk8/XptbP98nJGDj1hmzD3nEzYKL6lRwwtyKdY+lDM99PcguTwx
fX7/QeHH8PGhYn5InFnLfOpxLij793XM4a7Ge86+/6Csg488jDVGznA+NenPGK5FfO+3P/U4sx77
nmPdtp70JwYhNbZGHRvMnj375FtvpdXEzN+k22233SZWIFkhEAIhEAIhEAIhEAIhEAIhEAIhEAIh
EAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIh8C8k8M1vfrN1i4D6Xwg9rUIgBEIgBEYQWGmllcqU
KVP2rc6ZdfAGajWezGhAMcSd6FB9+7SaVM7VpKodNZ+9a/IViOJXHM05fnyY9dTM2p/Z/sTZn7U9
7O9d3TsTax36q4O1P3H294wc8/H1+l/z6M99zLc/Ps/wafrt4TN6Pu6ZxkvDqCNYH47LWZ+z3i9M
zhmcMRAH++B12Yxza/nA+gTBvu/vmhkjzrrUYOAzj974EC+zJo8zhmZN/X08Puph5HsvxdbuvQ9x
9vcMn/09sxdn5nq3ydX3wDlz5nzx5pv9bhE2PouAeny8Eh0CIRACIRACIRACIRACIRACIRACIRAC
IRACIRACIRACIRACIRACIRACIRACIRACIbBsCURAvWz5p3sIhEAIhEAVly54A/ULKovL67iuDnSf
CKXRfapTZUZTiqlTZY2etY8nh3PEoKw5Z9bYY8QwOPOcM3zUI1+tK70xzjDvxLqPtxbn9rUHsdTz
XviJU8dal62W9cjnTLMnPVhj+riv/byz+cP9jbOGdyZuwibACRfoEn1AH559f2kfltlYH5Yy+jjn
IXvQ7DlHYMwXzBp12eI4Y5CjaJl72L8u24fCeZ/LOXuMePP9gPBTF+Oc2nwRrGFPZs7JI4Y9w3vX
ZcuxPrEY/b0vNT3njFzMWGYF5sTyBuqNqoD6xAioK4lYCIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACITAvYJABNT3io85DxkCIRACyzWB7g3UM+pFb6xDvSo6UNbM
mDO6z/l1oAVVH6rgurpaTn+maJla+BVHE2uPXqdqHLXtz7n90aravy6b2YMNcdxR3atn7q1vT/as
MWb25lPLZzSf/j6vedZgb/+6bOYZ+Tw/58zE4mO/ROYllqTI8IW8KDVZc1EBAAeoQvKhmYkVoA+u
uJgH9a6ujSeGM3qQx14w9qmuZpzZH4d5zN6NGOpQH8Gy92eP+Szs6WN/ztybYz5n9LA2M4YP84y7
cUYd+9dl68m+j1+z7jeYNWvWybfdRruJWd5APTFuyQqBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiB
EAiBEAiBEAiBEAiBEAiBEAiBEAiBEFg2BCKgXjbc0zUEQiAEQuB2AgvfQP386plZx9w6FAejA8XQ
pKIFRY+KIfR0zZ41mlAGceShE8WvhrTP4YwezJyTZ73+TJ/6Wfc1fBBvLnn2J44cZvpyxuzgjP7W
tQaz/c3HpxbWu1ZXu7e17UcsPvfEG2Pv6hrczXuRR+yEjQJLal6eOjy8D8vMRTEfhnX/cKz7HOKE
Rqy1vafxAiDeGOL7D8ZY/BhxDPvb137U5AzRMzOx+pjNJd7+ddn83oMzn5UPk1qaNTjH7G+/fm89
+/S5xLOfXMe02bNnT7/1Vq47MYuAemLckhUCIRACIRACIRACIRACIRACIRACIRACIRACIRACIRAC
IRACIRACIRACIRACIRACIbBsCERAvWy4p2sIhEAIhMDtBCZNmlSmTp26X/VcXodvoEbbqQC5LgeC
ZTSh+NWCGqOetdedkqeYmjWx6Fetob6V2X6cE6cOlVhMcSl749XC4uuHueR5V9bW0s+evtZjtr96
XGL1MWPE0QOzr2tm+5tHD4zYvgY+9v298I3bLDruxC7Bi1jLy+rvLwkcwRpHKdcCJde1Z8Bg7ZfB
vbP9a0iDo998ZsTH9jfOexLPGR+CPj8QzlhTww8bH2YfZu/g2jr6e7E0ufjNp779ex892XOO+Ty8
gXraVVddddItt5A2MYuAemLckhUCIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRAC
IRACIRACIRACIbBsCERAvWy4p2sIhEAIhMDtBBa+gRoB9Z/qQEDtm6cJQtSJPlRxJ2u0p30MWlBH
XQ70qawx4jl3RkNKvrWYPWftGWv7k4sZa3/3nFFDc825fTljjf6XfPWt1iCHtWfmEuc9zGFPvHtr
MGPWcu192Kux7XN9Ps7HbTYdd2KXwGV84P7BvLiXJYU1BgQFwT0g6jDI1c+ePHM4w4f5obBn7d7e
xNgTX9+TDxOjLjGesSaWWuZyxt4Y+xNHHfas3ddlW5NvDXzke1f728e98fqJt7+98K1ex4azZs06
+bbbaDsxi4B6YtySFQIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIh
EAIhsGwIREC9bLinawiEQAiEwO0EFgqo966eP9cxtw41pGg/FSrjQ++puJgzjJnBGQMdq1pWz8hF
T4rfOszWqstyUx3kE8cZZsyC3e391aEaQx/y7M/eGGowrGssPu5DHEZ/YoyjljGuOTPHutU10OQS
5zNTlxj2mHXxsca8i+vmnMgPGi+peUHr+NDW5rJCdSbWhyafNYD0IRT2gTnnrK/DufHD/d0zY+QZ
z8we49ya9sVPX+Iw7usZfj8c61HDfsQx7Ova/s7UGT5jjx9j5k3VGP28J37vxbxqHRvPnj17+q23
+kjVM06LgHqcwBIeAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQ
AiGwTAlEQL1M8ad5CIRACIRAJTBp0qQydepU3kA9s45/1oHGE3Ezuk9EnehCMXzoXdGCMnOu8Jmc
ftTtQOOK3zp9Pn7MM9ac42dGX+oZd7A/fe2Pz/vZv7qaz1z7k+dzkY+Raxxr++OjP7lqaTnDLxc5
kMcgVhvem+e92WPEuW6OifygyJKaF/ZhhcnetX3Y9/GsfTDu0cexx8ihlvB4aOKsbw3FxfWogfFD
MJ8ZI5419VgLmDXmOXN/7peKXPw+L2ueAdEza6yvz9pYzlzb31j91mBmeO7zUAP/mnVMu+qqq6bf
cgvtJ2YRUE+MW7JCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IASWDYEIqJcN93QNgRAIgRC4ncDCN1DvUz1X1HFDHWg90aMyWDMQd6L3RB/Kuhd7Go8PPWm/J76v
41l1N7/6UoTNak+JGR7UsD9r++Mz1v7VNbizel1iiPUuxtATv8Jq/f3MmtrEWs86+KiN4eMcw8fe
c/sbSwxGb+/VHBP5QYElNWt4weGLU98Y1pwDBR857Hlg98wOz5mFxJpzIbHG8DOGhcaceSdi7a/P
D8Z7MBtHbl/fDwmf9/GcWIz+GHcxnpoYsX0/72stn4l4c5yNpQZjtTo2iYC6UoiFQAiEQAiEQAiE
QAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAjcawhEQH2v+ajzoCEQAiGw3BJY
ccUVy9prr80bqC+v48Y60MWi89TQg2LMCon1KXx2z8xAL+q6LptR04F2lFwMH3v1uMwYPow6rJk5
U7tal4P7eF9iWBujn1hruLaf/e2jn3iGNZiJoTZr92pjq2vgN8aanPW1yLGP9YmZkFF4Sc0LU8tL
czH31GfdPyy+/vLCwW8sD4mfNzurUreus7HuiacPe2b2GGtiGcOGjziF18SaSx383KU/t5+x9nOu
4SN6Gecd+nvYi+c0v/8S4rc/deW9Rl1vPGvWrBNvu420iVneQD0xbskKgRAIgRAIgRAIgRAIgRAI
gRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRBYNgQioF423NM1BEIgBELgdgILBdT7Vs/l
dcyrAx0qYk70oWhe0X2i97ypDnWidTkijngFoMRj6l7dW9NYZmNY20cfveyP7tX+xGLGqWPt/fg4
Z7a/cdU1uKs5zMSreSWW/uTqH9b/ckacgxqs7Wtt9phxC3YLfhrj3J+NeU3hpWU8NJdhUJcZKP2H
g4+43vqH47yPFyo5Qh3OtxZ+8u3B3IufqYuZ77Oz9w4A90Pr87lH/yx128wabDjHyPPeq9Q1fbmH
HyZn9qvLFsuee9hfsbZ55FgTH7Z6HRvNmTNn+s038/2amEVAPTFuyQqBEAiBEAiBEAiBEAiBEAiB
EAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEFg2BCKgXjbc0zUEQiAEQuB2At0bqGdW7w11
oBVVrMwaTSjiTvWirtGYqidV10oMPvasmdGM9nvOOSOfMWzEKlZmTX/zrTmc7z3024PZ/szUpSdx
w6aPXgzizSePe3gXZnvW5eA58MvFmL4/dTF7Ldjdnu9+XPNwsXElLwymBhf30sz6eFAfrC4Ha0E6
G2cMM+b5gt3tgHxbs5CdgYTA2Ofq61ILoMwM7+W9PWPGrOHaZyLX/takj2JnZmuTy1qzNntj8Jlv
PXrZ37V7cuk/uY4NZ8+effKtt5I+MYuAemLckhUCIRACIRACIRACIRACIRACIRACIRACIRACIRAC
IRACIRACIRACIRACIRACIRACIbBsCERAvWy4p2sIhEAIhMDtBCZNmlSmTp3qG6jn1hOFnOhAGexd
u1fjymw8M3pSxcZ12c6Iwc9MPhpSYs3DhxmHX52p/Thn7SBWravxzPZR40q8da1FDLHs6cOMme+8
wHt7z35PDD2Ga+KjH3P/nPQkltGv+/71aGImrIllL8jiwjyUxkWtyxrj4gxMqMSwNpYzYtj3XwTr
04MPzprMPay6HRg1GOQwG8fa/vRyXZctjnP89DeHPb0Y9Nfc931YY+Ro+KiFz1j39GeNec6s31z7
I5y2BwLqB1555ZVfrPOELQLqCaNLYgiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiE
QAiEQAiEQAiEQAiEwDIgEAH1MoCeliEQAiEQAiMIdALqGfWAN1BjaD15CzU6T9bM6EHVhKJpxd/v
9eFnjRmjXtR6aFv1UQMjtjdj8KtHJVbhtH3Qrrq2hjP1yKEXNTS1vfjt7xkzfmPc80wM9b8+r9pZ
n5l4+lOD2bvQHx9GT/ej9W9BY/1h0bHGjxbnZZl5IOHrJ8cH4byHih+fgHgw1vgEwOwD9zWNZSbG
/sP161EzYvgAPLdH/6WwPmea9/EO+u3bz9Y3lnq92Ytz+yOK9gtgf+I07k0sOdblbM06eAP1SXkD
NThiIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRAC9wYCEVDf
Gz7lPGMIhEAILN8EVlxxxbL22mvvX295eR3XLbyt4mE1sepVFx43rSiaUIwY1u7RhyK+1tSVUoMY
zqmPqTXFx3kfi97U/szqWJnZU8t1XQ76k9fXtybxrD0nl77eiTNjjeOMwd2IJYdhLXzE6mPu69ft
4F7kYOa4tkc7nMgPmi4Nsw4X8oF8aOp7Uc58CEExc45omHO+AAqNAYJZ1y/CKtXnF43zvj/1iSdX
f1022JzZ3xhmBkJmjLr0x+dcly2P/pj9vR997EV9jNlz9tTTZ0/P2VMToz93sT8+zHvTh1jGJldd
ddX0W27xWtUzTssbqMcJLOEhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIh
EAIhEAIhEALLlEAE1MsUf5ovhsA//vGPstZaay0mKschEAJ3dwIrrLBCWWeddZ5fn+NPdcyvA83n
vDrQhSocRh/LwNCGskYfSjyaUOLQhJJrHLN61LocIZDGTw7DPsSrdaUua/v3dfHZH51ur0kljkF9
YjjT8JPLmefE2J9z+w/rf4mzLjWMVf/rWT0axOmjF8aeOuy9Mz7XdTkxs8HEshdkCYFaDC7G0PQz
8xCYPqHqY6aeNYj3g8DvXhjU4dw67DH7M5NnDf19nmfMnPtB1mXbe1f89PUe1rA/s7XqcpBrf+Kp
P5zHOcZs/+ZYuKcmOd7Le6xRfRvPmjXrxNtu87GqZ5wWAfU4gSU8BEIgBEIgBEIgBEIgBEIgBEIg
BEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEJgmRKIgHqZ4r/XNb/ooovKddf5ctk7Pv6kSZPK
dttt1w6OPfbYcuqpp5YDDzyw7Lvvvs132mmnlRNOOKHsv//+5TnPec6gAPv58+eXU045ZeC7qxf1
ZZ3lggsu4K255QlPeMJd3S71Q+AeTWCllVYqU6ZMQUA9o44b61DXysxA14oh8EQHqs6VWS0ps3F1
2fLMZ1ZXypl5rDHzrEU8fdjbX90qfnzszWON9XtznelvDfLt1dehBnvOva/5nGH4OeceiKeJd9Df
NXmOuhz4WZOPGet+gXcCPym0NMw6XJwHxXwIZqwHoM8H4dyHsQZQEAtjnhnPzHlf0zjfJM3eO7Am
lr1fEGuxx4Zj6emboDnr4+2vmJka+Igjx7VzdQ0E0PLhjOGeGPIx6/os9qcP8eStWscD58yZc+LN
N/N9mphFQD0xbskKgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAI
gRBYNgQioF423O+tXV/ykpeUyy67bJGPv8oqqxS/k4cddlgTKO+0007lTW96U8v52te+Vv77v/+7
vOhFLyr77LPPoA5i6rlz55bTTz994LurF4cffnj5xCc+UVZdddVyySWXLLU3ZX/+858vV199dXn5
y1/eat/Vz5H6IbC8EFh33XVfUO8yow5+ywLNKbpWdJ6IOtF66lMbWl3NeFMz574JmnM1sazJY/R+
ztGO6meN9fGcUdf+5jMbX5eDc+K4rzXQrrJ275oYalMDH9bX48x70Z+7qoPFjxFvvs/KTG2MOHIw
a9nL/t6VGGpZm/24rX+AcScvTOBCXsSZI9Z9fR/AMy9ODA9pvDmC8UtknmB7MORQz1qckWctZs/q
csRaoMyYM/Wo4bk18Pslwce5tY2truYnHzPO5+zjiPG+xFrP/p73Neg/uY6NZs+ePf3WWwmdmEVA
PTFuyQqBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEFg2BBSr
brvttkt0AXUzj3/845eoTpLv2QQUUO++++5lnXXWucPD8hbavffeu/mvueaawvfqsY997ECcvLwI
qG+55Zby8Ic/vNQXdra7HnnkkeWAAw64w/NMxMHbrBFkX3rppaUKSidSIjkhcLcjsOKKK/I2d141
/6c6eAM1OlAHwmQ0nww0r/gxhc34MPzGsMePIBSf5r6vYz4xntsDn/3Ro5pHTfuTo9mfGT+DvGHD
7337fH3O5NGz18Lisw9+74rPvs7WYa95xr5fez6huW8woQILk4YfCDeAqM/ggRiIgXtwdTvws+ZM
8NYUFOeYdRbsFvw0lp35xNkfPx8Ib3S2f//s3Is9Mawx5/45FpzcfmYNe7JnzUyedeuy7X2jNefm
MhNHnv31VVd7XuOdiV+9jo3qX2jTl+UbqPkL/qabbmp/uT70oQ/lvvdo4y/5L33pS4Vn7f9JjXv0
Q4/x4WAzc+bMwl8MO+ywwyAL//nnn1/WX3/9suOOOxb+2ZJYCIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACEyUQATUEyWXvIkQUEB9/PHHl4033njcJZYXAfV3vvOd
JvTeYostym9+85vyuMc9rpx22mnjfp7REiKgHo1KfPd0AgsF1LxW/oo6bqgDcTKmdhUNKZpQ9g58
aEWZMc7dE4Mx48fQjLJmILxjtlZdtjrkY4qmWZNHD8Zo8fYavg95nHk/99Tmxb/eqy6bEacgkBjv
wkyd4Xh81NTYG4vPM/JY298470XsEpvNlrSQdbikH5IP5cX7M+IFhZ89D6aftQ9KPXPrsvn72vis
RQ4iZeCZx1rhtB8gffzQ6nIAmTV+6ngva5OL4bd/cyzcU5MzexGDz/6cUYPanNmfGIbmve1vHLnG
kc8bqKdVAfVJy1JAzW/gzZ8/v/0TEy972ct8hnvsvNdeew3+SY5Pf/rT5ZGPfOQ99lnH+2D8B9XF
F1/c0g499NA233bbbeWoo44qN97IL9iUssceexT+I2xpGrW/+tWvtpLPfvazy5prrtnW119/feE/
QLHe3xz5EQIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhcLclEAH1
3faju1tefDwC6m9/+9vlW9/6Vtlzzz2LbzZfXgTUhxxySNPSfOELXx35OBMAAEAASURBVCjvfve7
29uieVv2JptsMuJzQeuD2Po973lP2WqrrUackffTn/606YE233zz8vnPf769jPJnP/tZmTdvXuGt
8KusskpBR7bLLrsMck899dTy/e9/v/z4xz8ukydPLk984hPb+ZOe9KRBTBYhcHckUN+4vl+998w6
rqsDzSeGZpShBlTNKHv86EA9Z1aPyhq9qEJo8jy3BmeYWlL8GHPfz/rUNpc4/OQa7xm5rNGpKoRm
Tzw+5v5u1MWI6evZDz/GGbXVwerH5+hr2cs8YqxJDe9vDvsJG02W1LiUEKjl2otb3z1zb8b7wH4A
1NVnPHviPXNtDeJYC8e5z7M/Pow9ayEjgOYLwD30ce4g3v6u7UmMd+KMGhh+Y93j01jLUQG4/cnj
nOHzELtGHRvOmjVrOiLViZr/FMluu+02oRL3NgH1PvvsU37/+983VhFQj/zKLEpA/fGPf7z84x//
aMH8cyWbbbbZyMQl3F122WXl5JNPblVe97rXlVVXXbWtf/e735Uvf/nLZYUVVij4+Y+zWAiEQAiE
QAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEwN2fQATUd//P8O70BOMRUH/x
i19souJXvvKVZffdd2+PuTwIqNHuPOQhDymrrbZaueSSS8oxxxxT3vve95Y3vvGN5U1vetOIjwPx
8ymnnNJ0NzvuuOOIs/3226+cccYZBaH4Ntts0+p86lOfKldeeWW55ZZbyr/927+VlVdeufDyRV5U
iX3gAx8oRxxxRFuvtdZa7WWdc+fObf/KPforObWA/AiBuxGB7g3UM+u1ecMoYl40njctnOvUfAg8
FXkawx6tKeaMD+0qWlF8zBhr98zD9YghltpoSxVA12XLM94Ydah9TWIxahBHjv3rcvBs5PRmvLWH
9b+ca8TY0zV30Ucc8fq8J35i2HOv3ob3/dli1/0DLjZ4EQHW8IH4ALjU8IV9KOIYPmifL3TzrVXD
Bzn4qMWHzLrPpyYCZPIZArOn9e1vrRo6Arr5fJh+ONSivsJm+rO2v89Hf4w8zu3pXZitRX8Gxiwz
9uQN53NOffJRgz5w9uzZ02+9FffELALq8XG79NJLy1e+8pX2FmXephy7ncBoAmpO+Q8k3kx93/ve
t/2WGYLmpWnnnntuOeecc8o666xT+A9WDR9n9H3xi1+sO3MIhEAIhEAIhEAIhEAIhEAIhEAIhEAI
hEAIhEAIhEAIhEAIhEAIhEAIhEAIhMDdnEAE1HfzD/Budv17goCat06/5jWvKS94wQvK0UcfXf74
xz+WRz3qUe3t0xdeeGF7QaEfy3gE1OY84QlPaMJstFX1jby6y9e//vVy8MEHN+E24nLeOH3zzTeX
k046qb0QkRclIsZ+2MMeNsjJIgTuLgTQwVXNGm+gnlGHAmp0nwg61ccy48MUNiOgm1+HmlHOMDWx
5hNnPdbU0hBpqz0lpj9nb39q2V8fseZ7Vl0DfSw5DPtzhuHD8HvX5ljoo745xHI/74yftXf2LtXV
zHM1s557P869U7/2fGGZ8U0UWhpmHWYvxIzQ10uz5pwHYx4Njn5r1LBWg5k6wzWA5ZeKGPI1atiD
mTPy7U+ua86oj/kB4OuHz9PXQMxsf+tTw3qc04P+5DF8DvvjI95nxo/Zuz+njs/EG6g3nTNnzhf4
S2WiFgH1RMklb5jAogTUw3FLe89bpnnbNP8h9axnPWtQnrdS83bqRzziEflNtQGVLEIgBEIgBEIg
BEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBELg7k8gAuq7/2d4d3oCBdS8PZm3Kw/b
IYccUnbaaafmXl7fQL3rrruWn/zkJ03QvP3227e77rzzzuVnP/tZ4c/TdtttN3ispSmg5qWHp556
avnQhz5UDjrooEEPFq9//evLZz7zmXL44Yc3cfeIw2xC4G5AYOEbqPetV51Zxz/rQAOqdpS1mlBm
tap12TSn+NCKzqsDjaix6EuNx08eRl1Msahn5hHH2lqsGeQxc84ZZg36I+Q2x1ji1bn2eZyTy6yO
1R72x49v2KxHLuJtZvqz9l74zDWeGb+DPqz7/nU7MaPQkhqX7y/pxamtnx792gf2YXw44lj3UHlQ
PyBrGE8cZ35I9jSnj+eDw4+RQ2yfZ49+Jp+9ee7tX48G/fuefLDEYMbSixj2zsM+n6eGtLr0I5aB
cW4uAupps2bNmn7bbbgnZneFgJr78FtK/IbFBhtsUFZZhZdl37mRc/XVV5e//OUvZb311iv3u9/9
7jxhlNNrrrmm1DdytzcOU2Osbzqmd+VYbrjhhpY7ZcqUUapPzDVjxoz2W1MbbbRRWWklvhZ3f/vr
X/9aYM2bz3nrs6wXJaCeP39+8Z/dWHPNNRsAcq+77rq25p8GWdR35Kabbio33sgv55SyxhprlEmT
/KPQXO0HvxV3/fXXt/8QfexjHzs4OPLII1vu0572tPbm68HB0ILPne8e9+GzX3/99cf0WfG94fv6
97//vX3G97nPfdr3h9+MW5Txz6FgcOAvUDhcccUV7bsHx/438Ijj2esvSbRz7gXv0WzevHmFwXds
9dVXbyEwIZcekydPbn+mFvcdJBYWPBNr/hyuvfbao7W8g+/aa68tV111VXsuOPI8POOdGZ8vOXCB
H8/H5xwLgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgTsjEAH1ndHJ
2dImoIAaPcRo2ovlXUB9+eWXN+0M2pNf/epXAz3HcccdVw499NCy//77l6OOOmqAbWkKqHnLNTqy
iy66qEybNm3Qg8UZZ5xR9ttvv/ZixM9+9rMjzrIJgbsDAf73oP7vwvPrXWfWgcgNvSdiTmZMsTGa
UXzoRTXiHPjVm5Kj6Eo/udYih1jmvp49qrudMVvLM+/FGUYNzD7Esaa/a2ZMoTM5/f04I4ZBfWbv
aF3i8Q2f93F9T0WCxtfUAVPW9h9+Hs7GZT7cuJKGgn14wfihWFt/D8YHd+ZBfKih8gOg+IXUg1lU
fyHSwzU1vAe1vBv1iPE+ddnifAb35DDsb2/jqNF/6PbAbww+rD+jHupa+/d1zWOmDoN4VIYbVcHw
dISOE7WlKaDee++9ywc/+MHCP+uAmBLjt674DaZXv/rVTSA52j3POuuscuyxxxbExhpC0oMPPrjs
ueeehd92+uc//9l+62ivvfYypM0Ic/kL/JxzzmliUQ+nTp1auM8BBxxQekHrBz7wgfKVr3ylvZWY
nvxzEPwFrLCVfN5YzH232moryw3mj3/84+Vzn/tc4TfKvvOd7wz8fd1jjjmmvP/97y8//elPC2Jj
DOHvDjvsUN74xjcuUgQ7KLacLhDWIpJG8Nsbn9VTn/rU8utf/7pcfPHF7Yj/uNJOP/309h9B7PXP
nDmz8E+DYI985CPLbrvt1tbDP77//e+X8847r7n32GOPssUWW5Qrr7yyUFNDJIzxOfMfqpp+BNp8
XtgznvGMJupnzXeH/xC75JJLmlgYH4bol/9g5Hu7KCE/z/qDH/xg8D1fkFn/ENe/FPn+wGNY7M13
gf/wxHhTNsJhfosPgbm28cYbl2c+85lN8Ex9/iz1f74RQpO76aabmtJm/rkT7oQAme/8d7/73fLL
X/5yRAzCZL6D8B7NLrjggvabhvxZ6w2uW2+9ddlxxx1792BN3g9/+MPGc+CsCz4L/tkVeAwbf96+
8Y1vFL4HCNE1fumBz5jfykRQHQuBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiBEAiB
EAiBEAiB0QhEQD0alfjuKgIKqI8//viCtuPObHl8A/URRxxR0DahHel1I7xA8be//W3TaDCrsVpa
AmpeBsjLN9GP8XLLYbv00kvbm68333zzprMaPs8+BJZ3AgvfQL1fvefldcytAyEnA0FUP/SpBUVj
qmiKM/zOCJU5w2eNumxGDOZsDeqhR8Wvr8/VTwymxpc1cfbnHNE1PtbW6NfVPcjhHKM+Md4Ln/b/
2TsTeLuL8vwP+ypLRJQlgYgLLogFrAKCNEoRRbEgAgIqtFIRsFDFFa1a21oRsIpCAbUqBBSx0mpZ
VCxItaK1aqEVsSwJkoD+i+w7/Oc7934Pc09uQu5NSAI87+czd95515nnd27u4cNz5liDNTH0kgyO
DfGs+PEh2BD3om6ss3towRP9YZOJ5vXxbkQbBF8P7eYFCJ8ASxj24bAWQGoKelVbPXJ5cfA9CNaj
PrGsPYt1q2kAnnH47E8d90k+1yRLfqYW/RBiEHLpT5z9qzro78MlDrGn52DG54vP/sRSb5VRn2e3
P37EvRNHPFf5Tl1WCNSQWyHPXnXVVXVb8wpf88BNwcM30kJ85usYepJon73XXns10i63BP/5n/95
ef3rufF+RLj99/DDDy+/+tWvNLVbp3tC5nbbbVeOO+64wae//vqv/7p9LcSzn/3s9qmm888/f5Db
K7xhgFg9ffr03tzOAPEX/0UXXTTwWfeZz3xmu0X4+9///sDXKxtvvHH5yle+Mt8bl/vYZUmHbMxX
Ztx0003jbguyMDcVQ7JGJEqjj0eg5hlBNOfWZwjORxxxxDyvDXJPPPHE1pM3UpDauakaYjoE4ckI
n/iDFH3//fc38nxP2h+uRy/Iyk9/+tPHuHjzdvbZZ48h/o4JqAteX695zWvGmHsC9YYbbtiI4GMC
Rhf4+AAAhOjxBJI2n77jDaYigRrSMbdbj/emk1gIynwIYbPNNjO1zf/5n/9Zzj333DG24QXEZn7P
e+lvHe/tvf7yl7+8bLXVVgMTxPGZM2cObhYfODoFUv4b3/jG9trozFGDQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCDQEQqDOC2FJIvBoJlDD0eEWaG6hliDdY3ff
ffc1Hg3k8D322KO5JFDD7+Cb33vZc889C5cCfutb3xrDB9l+++3bJYbwavpvYIdvwiWIw3ZqwhuD
izJjxoxy1lln9W2iB4FHBQJwseqFl9xAfU0dcEvhpsLtROCBojvgj3LTZs8hhWOqv6oDvqs2ZvKo
K6+UPtjhl5IPH5UBH1VuLLH2twd1yLU/fnz6q9qEutTXTh5rBB818FGHmd747V/VwV6twWyucdTF
jpDPfhDP5R7sjx8fZ0T6uBHLJH7adBKpgxRr9AfyYMwegAR0RD+55nNgD2WMPuwATR46sfazpmty
iGPua5pbzQM/MebjVycGsSYP2weibqwz+0Lc88hq7JmI0c/MMI94axnj2p7E8AJiLxKoz5gf+Zjg
h5PFdQO1fWbMmNH+cPJpKwjVEE35A4jwdQ+QYJX//d//LQceeGCBHA0pFHI0f0y5Zfff//3fy5ln
nln4pJMyTKA++eSTC4N/iKgNqRQCKTfvctMvt/sifIqKG20Ric5tUX9Mmzat3XL9+7//+43QCjEX
UiiCj9um+5twIYEviEDdEusPbiDmVuXp06e3r6HglmzJ5WDAfh8twhspngVfp4HwJmfrrbduBF5I
weCtzzM9HIGauAsvvLA9Z/R99tlnnluVIdp+9rOfxV2e+9zntpuZ0bFLfOY1xpssyNsvfOELcTfh
2WvnTaDCviHxSzjGzq3NEHx53pDyuZH6yiuvbCmrr756I+l7m/R1113XyL+8eUSox6fgiLv22msL
tzF7gzP78XVHbE+gZg3RmRuhwZPXBr+Lt99+O64mvGklf4MNNij0heTsrdqcideY0p8HG7c/s7dN
N9203ZL9P//zP4WBUJffO86NcObPfe5z7c0w2PA7zO8v/67wO8ot2PyOIgcffHBZb731ms45IcEj
9ON2bzDEzqcSeb4Iv8+85v3wRE+oZ498yAESPWfkDbbk75e97GWF38tIEAgCQSAIBIEgEASCQBAI
AkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIFhBEKgHkYk60cSgUczgRoOFt/CDocJDsiw
cGM2vA54Gl/+8peb+53vfGfj7HAp5nve854xKVwuyQWL8yNQX3755eUpT3nKIGffffctF1xwQbvo
sOe6EHD88ceXj3zkI+XII48sRx999CAnShB4tCAAH6ry1var+51Vx211wPuU5wrHE2GGBwrhTJ0Y
BM4qAyEXP2tn4uCXkoudmN7PGtFmDWzUQPDZX5261iIG6dfm2p81gzrUYCD2R8ff1yCGNXbOQC1s
nsda1nBdQwY9iMdODcTYvr/6SMQEf1pwgmljwqnBJqylrt21IGAXBGM8JHYPJPgCYx1yHMb6cKqr
5ZPT57n2IfV7IcdYZoVYiMv0UtCJsb92YqmJnT2puyYHm/ukri9Ca1ZTq82Mzf79nqyDf406plYy
6encpjtZWZwE6p122qkcc8wxjdDsfiBAQ4z2ZmLIk9wAjPAHlj+mCH94uRm3l8suu6wRNu+5hw9e
lHluoH7DG97QbumFXMtt0b3Q94Mf/GAhF5Lq3nvv3dw9gXqttdYqvAngxt9ePvShD5V//ud/biY+
UXXQQQcN3AtDoOaTV/xxh9itQPrlE1PsZ4cddmhvAPQt6zPE1i9+8Yttm5BhwQPCrALRFhyJUxaG
QA1xl0+vIVtuuWV7s2Y+M2Rab/LmNQQZeFggdkM+/r3f+71G4NXPJ+D45BzEaG5A7qUnZkPc5Tzc
+NwLbwghDyOvfvWrG4EbnU+7Sa6G+Mtrvpd6I3zDSoL129/+9sGn93oCNTdqc8OyvwvUgHzt7wNr
Xt/cWK5QG6Izwmv2TW96U9P50ROoqY3vSU960sCPwocZIDYjPQEbMro487vE6OWSSy5pn/jD1t8m
ze/nP/3TP7VQPizQf8ULxn/7t39rzwCd27i5tR35zGc+00jdvIYOPfTQZvPHzTff3G4s5zX11Kc+
tX1Ni77MQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEAREIARq
kci8JBB4NBOo+VZ4LouEw9LzecQNrga3RMN1gQsCl4ULJ7noEi4IHCouCUS4aA8+FjJMoOaSwJ/+
9KftG+7h2ijmwIHhMj5vp6YXPJQ777yzfPWrX238LnMyB4FHCwKjBGpuoIY4N0yghvS8/OhZ4IIy
eoFnyoD8iQ+yoWuJh9iNoxY1EfR76yDO3H6u5hZLnDH68SnUxt771M0jBp0hURUuLHsxhj7mEY8Q
SxziGaxjTe3kUgPpdf3k4acmet+fmEkLxRaH9JvvN9vb0d0sB/Aw9ufgAkYNBvHa0akhQOSvWEcP
tDpx6lVtdfqz0oc69jGGPG3oiH3QsbkP7NwGbR/y3KsPCD9iDjpx7Nv+9sFnf2btxBGPiA++Vep4
ar2R9jTJmgRMVBYXgRpy5Lnnnttu4h3eA3/8IEgjxx13XNlxxx2bDqkS0i3kV4m0zdH98JZpTMM3
UEO4hjzLH+mvfe1rgxt1u/R51J5ADVGaT1gNCyRnCKGQsGfMmFE+9rGPDUIWhkB9+umnFz5tNSyQ
sS+99NJGBOYP/6NF+PQZnwRDejJxv//+NmLs/Ruu/sbh3k4chGCIwcO3FOM78cQTy0033VQgukO0
7Qnp+BFu9uZ25Fe84hXl+c9//oix/uR1dtddd7XnCzm7F96ssSdkPOIvds7Djc8ItzEzkE9+8pPl
tttua2/muI15vD31hGNuRTe3J1Bza/XwBwbYL+eBPMybxT/90z9tPfsfn/70pwtvXPl9629z7wnU
O++8c3nBC17QpzX97rvvbvu/9957GzEbgvbCyC233FJOOOGEFtoTr8GH33mE1zuvDcjbDydi6M3x
PUn84XLjDwJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAAAiFQ
53WwJBF4tBKo4YpsvvnmBe7HD37wg/KMZzxjXNgOOOCAxqX58Ic/3Dg6XFrIpYLwZ+D0vOQlLymz
Z88u3C4NwZpvUB8mUL/tbW8rcKb4ZnS4YYccckjL42JQLhmUV8Y3urMvLhqEwwLB+/3vf/+4+4ox
CCzrCIwSqF9f9zmrDgnU8D0VdInU6HBH4ZsyQ4CGF8rtsvBC4ZhKStYvh1Q7NeSiamPNsD46+Qg2
+lEHndn+5NOffdjfWPLx259cxF7EWwcbYn908hn4qGN991FNLZ/++rURwxjubz3ixuuPfcJC0UUV
NtuDLiDMHlgA6KXfPGOwEweQ5lZ18NAESxszYu3xzmJtcn1A9jfPntRyT+6FmgxyYQbyUFgTh6Bb
BxtrhJka9mVm3fvNMwaf/ava6mqzvy9Q4lavY9qcOXPOePBBj0TaxGRxEaghr5566qnjNuf2aW8B
hhT65je/uZFQuRmavUPk5I/oePLDH/5wcEvtMIEaYvNXvvKVlsYf31133bURniHMetvtcM2eQM3t
ucO3Txt/2GGHFb7CYqONNirnnHOO5vJwBGr2cfHFF5cVVuDxjhVvtuaNhATesREPrSDbcmPwkpA9
99xz8Omu8fp985vfLD/72c+aizc39WsHxgsbEJ5x9kTpBRGo+1uX99lnn3brMPn9LdHj3fRMTE/s
/eM//uPy5Cc/GXMjXUO+Rv7kT/5kzC3P2Pr9LOg8xPZy++23t+ePbYsttiivetWrevdAv/rqq9vX
jmCYMWNGedGLXtR8PYGaN4ovfvGLBzkqxx57bHuTyJvXPfbYQ/Ng5vX+q1/9aoEE6h6LQeKo8vnP
f77UfzPKyiuvXPialWGBxA2hHVI6b1ZZ80k/fheQrbfeunDDOsJ5+OADhG+E27y5vZqbwqdOndre
QDfH0A9+7/gUoQKBmk8yTps2rT2r8UjpxmYOAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAI
BIEgEASCQBAIAkEgCASBIAACIVDndbAkEZgIgRoSMTc4H3744QNuCRfj8Y3dfEs6/BgFbggXPfp6
1r64Zjg/8LLgufBN8PMTuFHsDf7Xd77znRb2ve99r91a7Te4w8V617veVX75y1+2b6r/9re/3S7N
tOb1119f3vOe95Tzzjuv3Wb9t3/7t423gx/+yQc+8IF2AzW8GrghcEy4+HA8/oo1MweBZR2BUQL1
/nWf19Rxex3wPeGYDnNVsUEohKwsj3SEdFUNozZn7MRYo5+1W8MZXul4ujb7M2tjRtizOmt0Bz76
s3d6IKwRua7GkNPr+BVy4cnSf1j6OvjcC33w2d+++s1zTe6EhQ0vqrhJ6qAjbIqhjz6sJQ1XdR6/
B2L2gRGHcPieaIyNOIClJn7r28s1tcxlxq7YkxzrMJvT14JATR9yEGbW5mGjPjkIPknX9mVGjLEW
a3zW8wVjHHumlmeqauG7ETZaVgjUr33ta8u73/1u9jWuzJgxoxFeIU0fc8wx7XZfiNQIX+3AH8Tx
hFug//AP/7C5hgnU3AQMKfm73/3umFT+YeIP+oEHHli23XbbMT4J1PxRv+iii8b4+sXxxx/fPhXF
H2zeQEjIfjgC9YLI0X/zN3/TSNELinEPvKn4h3/4B5eP6PymN71pvkRyGku6XXHFFQc3iY+3IW7V
5k0SsrAEaoi63EgMCRfiuzeCg/n3v//9VgvSvV/fweuBW8uR3/zmNwWCPcLtx5LWIQhL+KUez5Dx
nOc8p/Da8NZrbks+6qijWv7C/OAN4Ze//OUWyut4+LVlDV6XnAl59rOfXbhpHekJ1Pw+SKxuztEf
H//4x9sb48kSqDknt72LRV8bnTfcP//5z5u5J4//+te/bm9S+bTggqQnUBNHLd44Q7Ielqc//ent
E4US2/VDROfrXbg9flj4PQPXrbbaqvB6iwSBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASC
QBAIAkEgCASBIBAEgkAQGA8BCaf8f+xFES8e5HK3SBAIAvMiwMWZ3ETNxXjz46P0WRDC4QOtvfba
436zO3wfOCHzu8CxrxU9CCzrCMDVmjJlyr51n5Cu7qpDkjFEabmpcELlueqXw+qaGMZwDmu4rPBI
9TOT79oaxKITS461iMXe81yxEWc8tRjEIK7tj328Gn1P9T6nryU/tj8LNYmnH3uyf38+fORgI5YZ
cY1/0kLhRRVquEE2he6hnOmhvQeSzRPT5/cPCjuCjYeKCBI+a5lPPfwCZf++jjns1Xj9rPsHZR1s
5CGy+sgZzqcm/RnDtYjv7fanHj7rse5xrMvWk/7EQKRG1qhjo3pb7JneANusE/zhG8H5EZgfrhxv
IPnDt9dee7VPGc0v/qUvfWm5+eabiwRqyKh77713C+eTRP2nq/oafCUE5GxkmEBt3H//93+XL37x
i+XSSy9tJG3tzM973vMKZGj+KCMTJVCTA5l3zTXhq5eHvYF6QeToiRCouV3ZT3S1xo/gD57NWmut
Nd8OfCoOgi1vgiDn8g//eOLtyPgWlkBN7FlnnVWuvPLKdmPxn/3ZnzWS80knnVQgS3NDOARvpSdW
a1vYma/8WH311cuXvvSl9rUinAcCNaTqhZH+Zmm+mmT77bcfN62/GZtPy0HuRpYEgZo+nAly+HjS
3/7MLes891mzZrUbs/nKFAWcIDNzqzS1JDsPE6iJ5/ef373/+Z//aaR2azhvs802gw9BaGOGrA0B
/tprr223Xfc+eu+3335lvfXW683Rg0AQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAg0BEKgzgshCASBIBAEljYCfBig8hJfX/cxuw5uoJbjyQwHFIFHCkHN26flpOKX
sCV31HzW6uQzEOySo/Fjl8xnPepjtz+z/as64Nai28P+5BHr2plY69BfHqz9ibO/PnLMx9bzf82j
v/3Itz82fdgU7fYgZ5GEDS4OoQ6b8xACYn18HpoYBjb8DHwMWH8evKpN+loeWJtAsO77qzMjxFnX
/tjMozd2yMvo/d7qsok1ybG/8ayph5DvvvAjrt2PNvPIQazn3uyFz1z3tlq1Tb/xxhtPu+8+X1uE
TUwWF4GaG59PPfXUcZtDHN1ll12aj9uEuXka0vcOO+zQiJO77757ef/73z9u7gUXXDAg486PQG3i
gw8+2Iie3EgNmRcCLsLXXUjolUCNHTIpBN3xBHIptxhvtNFGha+pUJbUDdT2WxZmvlrjJz/5SdtK
fxv08N5OOOGEAYFdvIn5l3/5l/LTn/60hfd286+44op2MzfrfffdtxF3fS3xuuk/LcrXf/ziF79o
qRCVkVVWWaWNtqg/xrNDyOVGcoQaEH6RP/mTPymQ3hdGuGUZMj7S3yw9nNvfVL3zzjuXF7zgBS1k
SRGoIZzP73X92c9+ttxwww2NGM3vEzJz5szCBxUQbgHfaaedBjeuY+vPPR6BmhiFWAjR/LvCrCxo
T/ze1n/H2nPldeZt1pttttngQxbWyRwEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBAARCoM7rIAgEgSAQBJY2AqM3UO9f93FNHbfVAe8TojS8T3mqzPJDmVkj8Fn7
eHLwQwZFx8+ssEaIYeDTjw8b9ciHY2r/qjYf87DNeGvht689yKOe+8JOnDzWqg72RD3y8Sn2pAc6
os14fO7Z/OH+7ssa7pm4SQtFFpd4QA/Put+0h2U21sOyB234OWQPNGv8EIx5gVmjqi0OH4McScvs
w/5VbQDj73Pxs0aIN98HhJ26CH5q80Kwhj2Z8ZNHDGuG+65qy7E+sQj93S819eMjFzGWWYI5sdxA
Pa0SD09fFgjUEFTPPffcdsNv3dcY4dZgbplGjjvuuLLjjjs2HVLlZZdd1gisZ5555jy3IEOs5Nbg
f/u3f2vxD0egbkGjPyDRcqs2Xwnx1Kc+tRGqcfUE6g996EPlla98ZZ/WdG7UJRcC9owZM8rHPvax
QczjkUD9n//5n+3ZAsLLX/7ystVWWw3wUOnJwdh6ovTDEai5+fiTn/xkI85CxOe1xDPnhui3ve1t
7WZq+/Tzscce2wj4PEOIvwivmY9//OPl3nvvbTc/cwP0sFx++eUDUjzP90UvetFwSPnd735Xfvzj
Hzc7rx8G8pnPfKb5uNEcMjmfIhqWCy+8sJHvsb/hDW8oG2+8cQvpMZpfX/bO62/zzTdvxP/h2t7y
DUbc1q18/etfL9zEjvD79eIXv1jXYL7tttvKpz/96QLem266aXn96/nwU2l40ZOzUBNCei/cLP2P
//iPzfRwBOo+7/zzz29EamzDRPg+rtf5yhf2yAcsuAWb3/9IEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIFhBEKgHkYk6yAQBIJAEFjSCHQ3UM+qve+sQ74qPFB0
ZsQZ3uc9dcAFlR8q4bqaWk7vk7RMLeysmRF79DxV46htf/z2h+xm/6o2sQcL4tijvFd9rq1vT9bo
CDNr86nlGc2nv+c1zxqs7V/VJvrI59z4mYnFxnqRxE0sSpHhDblRaqKzUQEAHEAVJA/NTKwAenDZ
iRzUvaobTww+epDHWmDsU01N8Nkfg3nM7o0Y6lAfwrL7Z414Ftb0sT8+1+aYj48e1mZGsCH62Bs+
6ti/qq0n6z5+zbreaM6cOWdCGp2sLK4bqOk/Y8ZYsjE2SMj7779/u2GWNWRab/yFjPq5z30OcyOx
QqJdfnlhLuXEE08s3Jir9ATqWbNmlaOPPrq5XvOa14xLNn31q19drr/++kb4Pfnkk1tsT6Bea621
ymmnnTbPbb0f/vCH2+3UJLz1rW8tBx10UMvlx+ORQA2G//AP/9AwWGmllQrE9yc96UltzQ/Iyvh/
85vfDGwTIVCTJNl2tdVWawReCMzzIxETz+vqpJNOQh1zizR7OOWUU5r94IMPLuutt17T+x99LiTt
Aw44YMxrgN8nXhezZ89uaX/0R39UnvWsZzUdIjGEYuR5z3teI9q3xeiPq6++uvBhAGrwCSM+OABm
yJIiUPM7tN9++5WpU6eO7qr+g1IJyaeffvrgTJDG+X1FICzffPPNbb+HHHJIWWeddQZ5fACB88yd
O7fZegL12WefXfg9BEOI4n0ewZDgL7roopa35557lmc+85nl17/+9eDDDJDbuaG7Fz4Mwi3fvKb4
d4IbwiNBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIYRCIF6
GJGsg0AQCAJBYEkjMHoD9b61L0Szu+qQHAwPFIGTChcUPioC0VOdNTqcUAZx5EGgxC6HtM/BRw9m
/ORZr/dpo3+fX5eDeHPJsz955DCTh4/ZgY/+1rUGs/3NxyYX1r1WU9u3te1HLDbXxBtj72oa7M19
kUfspIUCiypunjoc3sMys1HEw6D3h0Pvc4gTNGKt7T6NFwDijSG+fzDGYkeIY9jfvvajJj7YjszE
amM2l3j7V7XZ3Qc+z8rDHGFOEjWSQw38iP3t16+tZx/7Yyee9Wp1TK3ExpmQIycri5NAzR5e9rKX
tdtmueH2pz/9afnqV79arrjiirY9SJbcKKxAkoSwSRwCARNi58orr9xu/4W4C8mZ26SRnkANQXWP
PfZohNBVV1213ZzLTcQQcCupvJFrIWsj73znO8vrXve6pvcEagybbLJJ822zzTYtj9uD/+mf/qnF
Tps2rXzxi18sa64JV31EHo8Eak5+zjnnFG5uRsAD8uuTn/zkRrzl5uN6E3rz+WOiBOqepG2Nvfba
qzz96U93OWb2Fmk+xXPUUUc18i8BP//5z9vX9PAaevvb3z6wj0mui+9+97vlBz/4QTNz0/FznvOc
9lq46aabypVXXtmIwTi56fnwww8fEPshQfOauPNOPjBU2v6e9rSntdubOQP7uusu/haO/C78/u//
ftP5saQI1PTi94Azbbjhhu0W9l/84hfluuuuw1We8IQntA8FcDaEm+O5ZRzZYIMNCreAc8M2++UW
bjBRegL1j370o/Ktb32rudZdd93yB3/wBy3/7rvvbhhecskl7bZrngU3SfOsuP36hBNOKLfffnvL
ox792O9vf/vbRrjm9xd5yUteUrbffvum50cQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBIAgEgR6BEKh7NKIHgSAQBILA0kCAiycr53G/2vuaOryBGm6nBOSqDgjLcD+x
ywU1Rj4rfnOrOiBToxMr9xRdfiuzOfjxyUOlHiK5lLXxxKJj64e51TzYK7q1tLOmr/WY7S8fl1ht
zAhx9EDsq85sf/PogRDb18DGut8XtgmLRSec2CW4EWu5We39JgGHh8TBjKOUuoCSq67PHF8Mrp3t
Tz107eYzQz62f1VbnPsk3heQNh8IPnRq+LCxIfZhdg/q1tHek6XJxW4+9e3f2+jJGj/ieWD1Tr3h
hhvOgJQ4WVlcBGrI0d/+9rfbjc/j7WXbbbdttzf3N0wTBznzjW9847h5EKo/9rGPFW4SRnoCNesL
LrigfPCDHyz33MOt8iMCWbNfv+AFL2g1II0iEqinTJlSIL5eeumlI4lDPyGXfuELXygQwXt5vBKo
uRkY4rA3EfeYoHPLMlhBPkYmSqAm5+///u8baRcdUjNk++HXCz7kO9/5TvnhD39YNtpoo/b6GbE+
dJM15HduPl+QQJS/7LLL5hsCqZfbp4dfA9yifPrppxcwmZ+88IUvLC996UvHuJcEgZpPNUGChsw9
nkBi5nf1KU95ysDNMz3jjDMGpPCBY1QhFoI8H9ToCdQQpb/0pS/NQ57v83mTsMsuuzSStHY+MHHe
eee1etqGZ57ra1/72kZgH/ZlHQSCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAkEgBOq8BoJAEAgCQWBpIzB6AzUE6mvrgEDdE8ogdcIPldyJDve0j4EL6qjqgJ+KjhCP
3xkOKfnWYtaPrg/d/uQixtrfNT5qKOr47YsPHf4v+fJbrUEOuj5ziXMf5rAm3rU1mBFrqbsf1nJs
+1zPh3/CYtMJJ3YJbMYD9wdz426WFHQEECQE9wBRh0GudtbkmYMPG+JDYY3u2t7E2BNb35OHiVCX
GH3oxFLLXHysjbE/cdRhje66qk0n3xrYyHev9rePa+O1E29/e2FbvY6N622tZ3Ib82RlUQnUO+yw
QyNeQpjltthjjjmm/OQnPxncGg2xdtddd2030HKb9Hhyxx13tBuOuQX3N7/5TVlvvfXKs571rHYz
NATaHXfcsaUNE6gx/upXv2oEaW5B9uZfcqZOnVq4kfpNb3rTGBKuBOr111+/fOUrXyknn3xyuyW7
J11zc++RRx45hvTpvj/1qU81YjVn4bZq5W//9m/LWWed1YipvknX57wwMcYui/Ott97aSPLcZty/
5iAYc/M45OmLLrqo4f3ud797cITzzz+/8DrjufT2QcCowo3Q3AyNQHzfeeedRz3zTtxs/stf/rJw
c/gf/uEfDgLOPPPMctVVV5XxCMyDoFGFDx5873vfa7cve6M0LsjbEHjpD4l/PJk1a1a5+OKLBzdV
GwNRnz3xgYFh4cMCJ554YjNTmzMOy/HHH99+n3gN7r777sPucvbZZ7cb3Xn9HXbYYQP/17/+9cLv
AL9vhx56aNsbROX+dnpe85C6p0+fPshT+b//+792cze3P/uBDJ7Xlltu2W6CPuWUU9qt0dyozbNW
iOWZQ0S/7bbbNLdb5CFeE9uTtQ2A4M3t1fUDIGOI6Nxkze8+v/P0jwSBIBAEgkAQCAJBIAgEgSAQ
BIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQGA8BuRlcBLYoIm9mu+22W5QyyQ0CQSAIBIHH
IQKjBOq969Gvq+OuOuSQwv2UqIwNvqfkYnwIMwMfAx6rXFZ95EKiwm4dZmtVtdxbB/nE4UOMGVk9
1F8eqjH0Ic/+rI2hBsO6xmJjP8Qh9CfGOGoZo47PHOtW04CTS5xnpi4xrBHrYkNH3It6M07mB40X
VdygdTy0tdmsoDoT66HJRwcgbRCFPTB+fH0d/MYP93fNjJBnPDNrBL817YudvsQh7Fcfdh+O9ahh
P+IY9lW3vzN1hn2ssSPM3FSN0M99YndfzKvUsUm9PXZmT5KstgmJbwR32223CeUtKJj9zJ49uxEj
IaKuuuqqCwpfoA+C9D777NNi/vIv/7KRscdLoCekTMjYkKe5PXg86QnU//Iv/9JCuEmYW4UhYD/p
SU8q3E4dmT8CkM1/97vfNYIrRF5u/X40C68dyOHcqMxrdX5E//HOyGvmlltuKfwxJHfNNdds+nix
j6StJ1AfddRRrRXkZkjbkN0hhXOr+sMJOTxbMIHMzI3VCytgAY7kkLswwt7YI33XXnvtR/1raWHO
nJggEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBBYdARCoF50DFMh
CASBIBAEFg2BFVZYgQs6uYF6dh231gHHE3IzvE/4ovBCEWzwXeGCMuOX+ExOP+pywHHFbp0+Hzui
Dx0/dmZIX/rYg/3pa39s7s/+1dRs5tqfPM9FPkKucej2x0Z/cuXS4sMuLuJAHoNYZXhtnvtmjRCn
3gyT+UGRRRU37GEFk7W6fVj38egejH30cawRcqgleByaOOtbo2f6EeNDMJ8ZIR6deujEqld14MfX
+31RkYvd86JzBkjP6EhfH91YfOr2NFa7NZgZ+j0PNbCvWcfUeoPrTMiHk5VHgkC9sHv5/Oc/324c
hnz6vve9rzzjGc+YJ/XYY48tZ5xxRiOlcpPxopKbxyNQz9M0hiDwKENgPAL1o+wI2W4QCAJBIAgE
gSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgYVGIATqhYYqgUEgCASBIPAI
ITB6AzW3w/66jjvqgOsJH5WBzoDcCd8Tfih6T/Y0Hht80n5NfF9HXzU3u/xSiM1yT4kZHtSwP7r9
sRlr/2oa7Jn92J9YdWPoiV1itfZ+Rqc2sdazDjb6I9jwI9hY62ftXqs6EGzua2CcqEKBRRVreJjh
jVPfGHT8gIKNHNYc2DWzQz+zIKHjFyR0BDtjmGiMzz0Ra39tPhj3wWwcuX19HxI296OfWIT+CHsx
npoIsX0/92stz0S8Oc7GUoPBtc6bPpoJ1D/5yU/KwQcfXI9RyoYbblgOO+yw8tznPrfdAn3dddeV
M888s5x99tnNv/nmm5fTTjut6YvyIwTqiaEHXpFlF4GVVlqpcOP0MIH6m9/8ZvnZz3627G58IXfG
TfJHHnnkQkYnLAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBB4v
CIRA/Xh50jlnEAgCQWDZRWD55Zcv6667LjdQX1PHnXXAi4XnqcAHRZglEmuT+OyamQFfVL2qTajp
gDtKLoKNtXxcZgQbQh10ZnxyV6s62I/7JQbdGO3EWkPdfva3j3biGdZgJoba6K7lxlbTwG6MNfH1
tcixj/WJmZRQeFHFDVPLTbMx19RH7w+Lrd+84GA3lkNi52ZnWerWdTbWNfH0Yc3MGkEnljEs2IiT
eE2sudTBzl56v/2MtZ9zDR/Tyzj30O/DXpzT/P5FiN3+1BXvNaq+yZw5c05/8EHSJidL8wZqdvze
9763XHDBBQvc/PTp08txxx1Xpk6dusC4hXGGQL0wKD0U439wPGSJtiwhwNdA7LrrrvMQqCFPz549
e1na6qT2AkF8l112mVRukoJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJA
EAgCQeCxi4B8hq233nqRDilvZrvttlukOkkOAkEgCASBxx8CowTq19eTX1PH3XXAQ4XMCT8Uziu8
T/ie99YhT7SqY+KIlwBKPCLv1bU1jWU2Bt0+2uhlf3iv9icWMU4ea2/Hhp/Z/sZV02Cv5jATL+eV
WPqTq32Y/4uPOAc10O1rbdaIcSOrkZ/GOPe+hdYpvLiEQ7MZBnWZAaV/ONiI66U/HP4+XlDJEdTh
fGthJ98ezD35mbqI+Z6dtXsAcB9an88++rPUZRNrsMCPkOe+V646fdmHDxOf/araYlmzD/tL1jaP
HGtiQ1avY9qNN9448777eH1NTnwjuNtuu02uwGLIOu+888qpp57aCJ/33z/ymPjHBcI0b3SPOOKI
svrqHHfR5cILLyzcfL3WWmsNbr9e9KqpEASWLgKXX355uf766wuE45122mnpbibdg0AQCAJBIAgE
gSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAg8wgiEQP0IA5zyQSAIBIEg8LAI
dDdQz67Bd9QB+VGyMjqcUMid8kXV4ZjKJx0hTI7EYGNNPDOc0X6NHx/5jGEhVrIyOv3Nt+ZwvvvQ
bg9m+zNTl57EDYs2ejGIN5889uFemO1Z1cE5sIuLMX1/6iL2Glk9lO96QvNwsQkljwZTg427aWZt
HNSDVXWgC6SzccYwI/pHVg8B5G3NguwMSBCMPVdfl1oAysxwX+5bHzNiDXXPRK79rUkfyc7M1iYX
XbE2a2OwmW89etlf3TW59F+tjo3nzp175gMPkD45WRYI1O783nvvbSRq5mnTppXVVuOIkSAQBIJA
EAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg8BACIVA/hEW0
IBAEgkAQWDoIrLDCCmWdddbxBuq76i4kcsIDZbBWdy3Hldl4Zvikko2r2nzEYGcmHw4pseZhQ4zD
Ls/UfvjRHcTKdTWe2T5yXIm3rrWIIZY1fZgR851HrA/17NfE0GO4Jjb6MffnpCexjF7v+1fX5ESw
Jpc9ksWGOZTCRq2LjrBxBiKoxKAbi48Y1v0Lwfr04MFZk7kHqy4HQg0GOczGodufXupVbXH4sdPf
HNb0YtBfcd33QUfIUbBRC5uxrumPjuhn1m6u/SFO2wN28fR66+xpdZ60LEsE6kkfIolBIAgEgSAQ
BIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCjxsEFjeB+nEDXA4a
BIJAEAgCiw2BVVddtey8884QqGfVwQ3UCFxPbqGG54nODB9UTiicVuz9Wht2dMQY+aLWg9uqjRoI
sb0Yg10+KrESp+0Dd1XdGs7UI4de1FDk9mK3vz5m7Ma45kwM+b+eV+6sZyae/tRgdi/0x4bQ0/V4
/VvQwv6w6MLGjxfnZpk5kOBrJ8eD4O9BxY5NgDgYOjYBYPbAfU1jmYmx/3D96mpCDA9Avz36F4X1
8Snuxz1ot28/W99Y6vViL/z2hxTtC8D+xCnsm1hyrItvzTq4gfqMx8oN1BwqEgSCQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEFoTA4iZQb7fddgtqF18Q
CAJBIAgEgXkQWH755cu66657QHVcU8dtowGSh+XEylcddTeuKJxQhBh01/BDIV8r8kqpQQx+6iNy
TbHh72Phm9qfWR4rM2tqqVd10J+8vr41iUfXTy593RM+Y43Dx2BvxJLDsBY2YrUx9/XrcrAvchBz
1O3RnJP5QdPFIdZhQx7IQ1PfjeLzEALFjB/SMH5eABKNAQSxri+ElavNFxr+vj/1iSdXe1Ub2Pjs
bwwzAyIzQl36Y3OuasujP2J/90cfe1EfYdbPmnra7KmfNTUR+rMX+2ND3Dd9iGVsesMNN8y8/363
VS0TlNxAPUHAEh4EgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJB
IAgEgSCwVBEIgXqpwp/mQSAIBIEgUBFYbrnlypQpU/at6rV13FMHnM+764AXKnEYfiwDgRuKDj+U
eDihxMEJJdc4ZvmoVR1DkMZODsM+xMt1pS66/fu62OwPT7fnpBLHoD4x+BTs5OLTT4z98dt/mP9L
nHWpYaz8X33VNYjTRi+ENXVYu2ds6lWdnNhgctkjWYJALQYbYyjamTkEok1QtTFTzxrE+yCwuxYM
6uC3DmvE/szkWUN7n6ePGb8Psqpt7V6x09d9WMP+zNaq6iDX/sRTfzgPP8Js/2YYXVOTHPflPtao
tk3mzJlz+oMPeqxqmaCEQD1BwBIeBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgE
gSAQBIJAEAgCQSAIBIEgsFQRCIF6qcKf5kEgCASBIFARWHHFFcvaa68NgXpWHXfWIa+VmQGvFYHg
CQ9UniuzXFJm46ra8sxnlleKzzx0xDxrEU8f1vaXt4odG2vz0JF+ba4z/a1Bvr36OtRgjd/9mo8P
wY6ffUCeJt5Bf3XyHFUd2NHJR4x1PWKdxE8KLQ6xDhvnoIiHYEZ6ALR5EPwexhqAAlkY0Wc8M/6+
pnHeJM3aPaATy9oXiLVYI8Ox9PQmaHx9vP0lM1MDG3HkqDtX04AALT74GK6JIR+xrmexP32IJ2+V
OqbfeOONp993H6+nyUkI1JPDLVlBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCSweBEKiXDu7pGgSCQBAIAmMReOITn7h/tcyq47Y64JzCa4XnCakTrqc2
uaHV1ISbmvF7EzR+ObHo5DF6O364o9rRkT4eH3Xtbz6z8VUd+Iljv9aAu4ruWp0YalMDG9LXw+e+
6M9e5cFiR4g337MyUxshjhzEWvayv3slhlrWZj1h6Q8w4eTRBDbkRpxxoff1PYA+N04MhzTeHIHx
RWSewPbAkEM9a+Ejz1rM+qo6RhdQZsSZetTQbw3svkiw4be2sdXU7OQjxnnOPo4Y90us9eyvv69B
/9XqmDZ37tyZDzxA6OQkBOrJ4ZasIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBIAgEgaWDQAjUSwf3dA0CQSAIBIGHEFh++eXLuuuu+/pqubYObqCGB+qAmAzn
kwHnFTsisRkbgt0Y1tghhGJTXPd1zCdGvz2w2R8+qnnUtH9POrU/M3YGecOC3f32+dqcyaNnz4XF
Zh/s7hWbfZ2tw1rRx7rX9U9q7htMqsBo0vCBMAMQ9RkciAEZuAeuLgd2dHwCb02Bwo9YZ2Q18tNY
VuYTZ3/sPBBudLZ/f3b2xZoYdMS5P8eI5yGfNezJGp2ZPOtWta290Rq/uczEkWd/bdXUzmu8M/Gr
1zGt3kA9MzdQA1MkCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJB4PGAQAjUj4ennDMGgSAQBJZtBEYJ1PvUXf66jjvqgJyMyF2FQwonlLUDG1xRZgS/a2IQ
ZuwInFF0BrxRZmtVtdUhH5E0jU4ePRjjxdtreD/k4XN/rqnNxb/uq6pNiGNfCDHuhZk6w/HYqKmw
NhabPvLQ7W+c+yJ2kcVmi1rIOmzSh+Sh3HjvI16gsLPmYNrRPSj1zK1qs/e1sVmLHEjKgGceusRp
HyB9fGhVHYCMjp067sva5CLY7d8Mo2tq4rMXMdjsj48a1MZnf2IYivu2v3HkGkc+N1BPrQTqM0Kg
FrrMQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAo91
BEKgfqw/4ZwvCASBIPDoQOCJT3wuIgXcAABAAElEQVTifnWns+u4rQ44nwicUYYcUDmjrLHLK3Ut
HxUffFGJ0ORhw28NfIhcUuwIc9/P/n0ucfY33rrkosNTlQjNmnhszP3eqIsQw16YqWE/1gg+7PJg
tWNz9LXsZV5fkxru3xzWkxZBnHSBmsimBIE66m4cG+KauRfjPbAPgLrajGdNvD51axCHLjjOfZ79
sSGs0YklFwI0LwD2oQ2/g3j7q9uTGHT8+KiBYDfWNTYFnRz7+6KjP3n4GZ6H2DXq2HjOnDkzH3yQ
kMnJf/zHf7TE3XbbbXIFkhUEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJBIAgEgSAQBJYgAiFQL0Gw0yoIBIEgEATGRaC7gXp2DbizDnifcDzvHZ3r1GwQPCV5GsMa
vijijK0nT8sxxc9gzTxcr5qaj9pwSyVAY+/jybe/PmuyRvBjowezYh71ejHe2sP8X/yKvZjVe44u
cX0f+bLY6cuaffUyvO59D6uziUUVa3ggHgCbGt5wf1BiPWifL+jmW4s9moONWjxk9D6fmhCgyWcI
GDEM6w/Xqq4W2++ZWB4mNuKpRX2J1ZKs8SGej/4IecTa070wW4v9MxBm+7O2f5+Pn/rkr1zH9Llz
58584AHMk5MQqCeHW7KCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAI
AkEgCASBIBAElg4CIVAvHdzTNQgEgSAQBB5CYLnllitTpkzhBupZdUighu8JoVN+LDM2RGIznNN7
6pAzig+RE2s+cdZDp5YCSVvuqRxT/aztTy37a6OW+fqqacCPJYdhf3wINgS7e22GURv1zSGW/bkn
7Oju2b1UUxP9cm71uz/87qnX9Y+WmdhEocUh1mF2Q8wQfd00On4OxjweONqtUcNaDWbqDNcALF9U
xJCvUMMezPjItz+56vioj/gAsPXD8/Q1vK3afTEj1sNPD/rjY3gO+5vrmbEj9u791PFM3ED91Btv
vPFL990HBJOTEKgnh1uygkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBJYOAiFQLx3c0zUIBIEgEAQeQmD0BurXV8vsOm6tAw6o3FF0OaHMclWr2jiv2OCK
3l0HHFFj4Zcaj508hLqIZFF95hGHbi10BnnM+PEh1qA/RG5zjCVenmufh59cZnms9rA/dmzDYj1y
IW8z0x/dfWEz13hm7A76oPf963JyQqFFFTbfb9KNU1s7PXrdA3sYD0cceg8qB/UBWcN44vD5kOxp
Th/Pg8OOkENsn2ePfiaftXmu7V9dg/59Tx4sMYix9CKGtfOwzfPUkFaXfsQyEPzmQqCeOmfOnJkP
Poh5chIC9eRwS1YQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgE
gSAQBILA0kEgBOqlg3u6BoEgEASCwEMIrLjiimXttdfet1pm18EN1PA9IXMyI5KN4Yxigy+qEOfA
Lt+UHDiriHZyrUUOscx9PXtUc/MxW0uf+8KHUAOxD3Ho9FdnRiQ6k9PvDx8xDOozu0frEo9t2N/H
9T3lyxpfUweYott/+Dz4JiQebkJJQ8EeXmB8KNbW3gPjwZ05iIcaKj8AFLsg9cDMr78g0kOdGu6D
Wu6NesS4n6q2OM/gmhyG/e1tHDX6h24P7MZgQ3of9SBd27+vax4zdRjEQ6CeNnfu3JkPPMBychIC
9eRwS1YQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBILA
0kEgBOqlg3u6BoEgEASCwEMIjN5AvV+1XFPHXXVA5GTAA+2HNrmgcEzxI/iwO0NUlkdqjWpqQgzi
bA3qyWvV1ucSz1ruqhzfahr0IgY/pGtjrSHXlTXCzJ5dm+u+iFGswZo65EkGx4ZYy/7amMnHjvR9
zXEPIxET/EmRRRU3Yh0Ivh7azQsQPgGWMIyPONYCSE1Br2rzk8uLY6U6rEcesaw9i3WrqeVZBz8+
+1PHfZK/ch2Sn4mlH0IMQi79ibN/VQf96WMP7O7N/szU8MVnf2Kpt8qojxrE2r+qTdw7ccSvWcfU
xUWgnjFjRmuSH0EgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJBYFlG4MILL2zb23rrrRdpm148uN122y1SnSQHgSAQBILA4w+B5ZZbrkyZMoUbqK+pA24p
3FS4nQg8UHQHnNB76ug5pHBM9Vd1wHfVxkyehGN0+mCHX0o+fFQGfFS5sfS2vz3MtT9+fPqr2oS6
1NdOHmsEH/3xUYeZ3vjtX9XWmzxrMJtrnH7iyWc/iOdyD/bHj48zIn3ciGUSP206idRBijX6A3Fg
hNkDsEZH9JNrPgf2UMboww7QAkms/azpmhzimPua5lbzwE+M+fjViUGsycP2gagb68weEfc8shp7
JmL0MzPMI95axri2JzG8gNiLBOozFscN1DNmzKB2JAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAILNMIhEC9TD+etrm///u/L/fcA1ewlJ122qlsscUW
Tc+PIBAEgsBjBYHuBupZ9Uy31QHvU54rHE+EGR6o5Gp0YhA4qwyEXDmqzsTBL+2J0cTrl2eqzRo1
pMUw47O/OnWJZa30a+oj9mfNoA455tm/mpq/r0EMa/I4A7WweR5rWcN1DRn0IB67+zG2769O3oTF
ghNO7BKowSaspa7dtSBgFwRjPCR2DyT4AmMdchzG+nCqq+WT0+e5Js7+vgjIMZZZIRbiMvEKOjH2
104se8fOntRdk4PNfVLX/tasplabGZv9+z1ZB/8adUy94YYbTr//fkpNTvwk3YwZMyZXIFlBIAgE
gSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQWAJIvB4JlBf
ffXV5aSTThoXbW5DXX/99cv06dPLVlttVTbZZJNx45aE8bWvfW258847W6u3vOUt5VWvetWSaJse
QSAIBIElhsAogZobqK+rY5hADelZ7idcUEYv8EwZkD/xyTWVV1pNzW4ctbx9GZ2boOWZDs/V1WKJ
02cPfAq13RtxiHHmEYPOkKgKF5a9GEMf84hHiCUO8QzWsaZ2cqmB9Lp+8vCLTd+fmEkLhReH9Jvv
N9vb0d0sB/Aw9ufgAtYDpZ1caggQ+RKRzRN04tSr2vr2ZyWeOvYxhjxt6Ih90LG5D+zcBm0f8twr
9XmB4EfMQSeOfdvfPvjsz6ydOOIRz4lvlTqeeuONN552333+XhAyMQmBemJ4JToIBIEgEASCQBAI
AkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkFg6SKwNAnUDz74YFmUyw57
5FZYYYUC6Xki8l//9V/l3e9+98OmrLTSSuXwww8vL33pSx829pEImAyB+vrrry9HHXXUYDsf+chH
Ghl8YIgSBIJAEFiGEBglUL++bmlWHRKo4Xsq6JA74XvKF4Vvyj/8EKDhhXJVP7xQOKaSkvXLIdVO
Dbmo2lgzrI/uHxZs9LM/s/3Jpz/7sL+x5OO3P3UQexFvHWyI/dHJZ+CjjvXdRzW1fPrr10YMY7i/
9Ygbrz/2CQtFF1XYbA+6gDB7YAGgl37zjMFOHECaW9VWA7AFSxszYu3xzmJtcn1A9jfPntRyT+6F
mgxyIUPzUFgTh6BbBxtrhJka9mVm3fvNMwaf/ava6mqzvy9Q4lavY9qcOXPO4I3ZZCUE6skil7wg
EASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBpYHA0iRQ
P/DAA+Wcc84pv/vd7xbp6Ouss07ZfffdCwS8icgwgXqNNdYoK6+8ciN133LLLfOUOvXUU8sGG2ww
j/2RNkyGQD1r1qxyyCGHDLZ2/PHHl2c84xmDdZQgEASCwLKEwCiBev+6p2vquL0O+J5wTIe5qtjg
i0JWlkdKjCIBlBm7M/Ws1dut4QyvdDxdm/2ZtTEj9FBnje6wP3unB+K+5boaQ06v93/chvm/rdDo
j74OJvdCH3zM9LevfvNc15CJCxteVHGT1EFH2BRDH31YSxqu6jx+D8TsAyMO4fA90RgbcQArONa3
l2tqmSuRuZqa2JMc6zCb09eCQO1DIZnc4YdDfXIQfJKu7cuMGEMNhDU+6/mCMY6zUMszVbWsWcdG
IVADRSQIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkHg
8YLA0iRQg/HcuXPLueeeu0hw77rrruUpT3nKhGsME6g/+tGPli222KLV4Qbns846q1xwwQWDum99
61vLK1/5ysFaBQJ45R2Vm266qTz5yU8uU6dObURs/fObIWlfccUV5QlPeEJ56lOfOt+cBRGo77jj
jnLvvfAIR2TttdduysIQqOnvZZNrrbVWu8H71ltvLVdddVVZf/315yGLP9Ln9AzMkOvZx80331w2
33zzArk9EgSCwGMXAb5BYMqUKfvWE86u4646JBnzD5zcVDih8lz1wwNFXBPDGM5hDZcVHql+ZvJd
W4NYdGLJsRax2OXHVrXlE2c8tRjEIK7tj328Gn1P9T6nryU/tj8LNYmnX8+N7c+HjxxsxDIjrvFP
Wii8qEINN8im0D2UMz2090CyeWL6/P5BYUew8VARHxI+a5lPPfwCZf++jjns1Xj9rPsHZR1s5CHo
CDnD+dSkP2O4FvG93f7Uw2c91j2Oddl60p8YiNQIf2E3qm/IzuSP72QlN1BPFrnkBYEgEASCQBAI
AkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCCwNBJY2gZozf+973yu/
+tWvJnX8pz3taWWHHXaYVO6CCNQUhEy87777DkjGEJkPPPDAQS9I1txKfemllw5icHKT6jbbbFPe
/va3lzXX5F7HsXLaaae1M1933XUDxworrFCe+cxnlqOOOqqRlweOqsyPQH3llVeWd73rXeXuu+9u
4Ztttlk55phjyj777FPuu+++RkK2DuREemy//fblne98Z7n99tvL6173Ot3lIx/5SPnqV79afv7z
n7e8bbfdthx99NHNv6TOSTN6nXLKKeXyyy9ve8TG3jfddNN2y/jOO++MKRIEgsBjDIEVV1yx1A+A
vL4ea3Yd3EAtx5MZDigCuRMeqrdPy0nFTxwid9R81urkSxDFLjkaP3ZsiPXkzNqf2f7E2R/dHvZ3
r66dibUO/eXB2p84++sjx3xs5CH68dGf/Zhvf2z6sCnareEZ9U94pvHiEOoIrKCwOevj6+2CiZ+B
jwE52INXtQl+a3lgbQLBuu+vzowQZ11qMLCZR29skJfRycPHUKypvY/HRj2EfPdFPcS1+9FmHjmI
/d2bvfCZ695Wq7bpN95442m8eZishEA9WeSSFwSCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJA
EAgCQSAIBIEgEASCQBAIAkEgCASBILA0EFgWCNR33XVXOfvss8s999wzIQhWXnnlsueee5ZVV111
QnkGPxyBetj//ve/v7zoRS9q6ez5yCOPLNz0PD/ZcMMNy6c+9akx+/vc5z7Xzjq/nHXWWaeRmadP
nz4IGY9A/dvf/rb1/7//+78Wx83Xxx13XOEm6Ve96lWD3GEFAvV73/veeQjU06ZNG3MWCdRL8pyc
5R3veEe54YYbhrfd1hCp8e+0007j+mMMAkHg0YvA6A3U+9cTXFPHbXXA+4QoDe9Tniqz/FBm1gh8
1j6eHPyQQdHxMyusEWIY+PTjw0Y98uGY2r+qzcc8bDPeWvjtaw/yqOe+sBOHzf7Y7E8+PsWexKIj
2uhvP/ds/nB/46zhnombtHiASRfoEj2gh2fdb9rDMhvrYSmjDT+H5GDMAoMfgjEvMGtUtcXhY5Aj
aZk8+1e11cHf5+JnjRBvvg8IO3UR/NTmhWANezK7T2JYM6jDjJBjfWIR+rvf3o+PXMRYZgnmxHID
9bRKoD59SRCoL7vssnLGGWeUiy++uFxzzTWDT0nxx32//fZrnyar+4kEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEFInDFFVeU008/vfzrv/5r46E8
+OCD7bbeHXfcsd2e/NznPneB+csCgZoN/uIXvyg/+MEPFrjXYSck380333zYvNDrYYL0/vvvX6ZP
n14gDXMD8r//+78XCcovfOELCwRqSH4ItyR//etfb/pKK61UXvOa15QnPelJ5Uc/+lEbzVF/fOhD
H2q3UbP+1re+VT7xiU/oKhtssEHhDHPmzCk//vGPy733QuUqhWfHzdLKMIH6ZS97WbtF+qqrrmoh
kKY//vGPl4022qjdhI1+yy23lJ/85CeWKM9//vMbufpZz3pWefWrXz0PgdpAaqy33noNhze/+c1L
9JyHHXZYufrqq9tWnvCEJ7QbsrnBm9cozwrhltpPfvKTZZNNNmnr/AgCQeCxgUB3A/WseqI765Cv
Ck8UnRlxhvfJp27ggsoPlXBdTS2n90laphZ2ydHE2qPnqRpHbfvjtz9cVftXtYk9WBDHHsknT59r
69uTNTrCzNp8anlG8+nvec2zBmv7V7WJPvI5P35mYrGxXiRxE4tSZHhDbpSa6GxUAAAHUAXJQzMT
K4AeXHIxB3Wv6sYTg48e5LEWGPtUUxN89sdgHrN7I4Y61Iew7P5ZI56FNX3sj8+1Oebjo4e1mRFs
iD72ho869q9q68m6j+e7Mjaqb0bO5E3kZGVhbqB+97vf3T5ZtqAefH3Hhz/84QWFxBcEgkAQCAJB
IAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSDwOEfgAx/4QDn22GMX
iMLhhx9ePvrRj843ZlkhUMPZ+cY3vlG4WXlhBJLvbrvtNiA0L0zOcMwwgXrY7/oVr3hFgUzMjdcK
ZG+Iz8hmm21Wttxyy6ZzeeOBBx44IF5zQ/ZBBx3UfH/zN39TLrnkkqavu+665dOf/nRZe+212/qc
c84pJ598ctO5UXvmzJlllVVWaeueQH3wwQeXn/3sZ+WHP/xh87En6g4TybkZ+5BDDmkx/Dj++OPL
M57xjMH69ttvbwRlDWussUbh9TRMuF9S57z++usbxu6n3y83k/M6vu6665r7LW95ywJv2bZG5iAQ
BB49CIzeQL1v3fHsOu6qQ3IwPFAETipcUPioCERPddbocEIZxJEHTxS7HNI+Bx89mPGTZ73ep03+
rOsaPog3lzz7E0cOM33xMTvw0d+61mC2v/nY5MK612pq+7a2/YjF5pp4Y+xdTYO9uS/yiJ20UGBR
xc1Th8N7WGY2ingY9P5w6H0OcYJGrLXdp/ECQLwxxPcPxljsCHEM+9vXftTEB+mZmVhtzOYSb/+q
Nrv7wOdZeZjUUqyBH7G//fq19ezT5xLPerU6ps6dO3fmAw+w3cnJwxGo99577/ZGb2Gq8+bpi1/8
4sKEJiYIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkHg
cYbAG97whnL22Wcv1KkhGn/5y18eN3ZZIVCzOcjTkKgf7gJEiHacCRL1osjCEqjpAfmY26S57XlY
7rzzzkamhpTMgPNz7bXXtrCXv/zljfzLAiL1DTfc0Oz77LNPOeCAA5rOD4jXwzdGS9juCdRTpkwZ
kLOXX375cvTRRxduxx6WiRKo99hjj/LHf/zHw2XGrB/Jc1500UXlYx/7WOvHuQ899NAxvc8999x2
SznGl770peXP//zPx/izCAJB4NGNwAorrFDWWWed/eoprqnDG6jhdsIdlSeKjrBGlwtqjHxW/OZW
dUCmRicW/qo15Lcym4OfOHmo9pdcytp4ubDY+mFuNQ/2im4t7azpaz1m+8vHJVYbM0IcPRD7qjPb
3zx6IMT2NbCx7veFbcJi0QkndgluxFpuVnu/ScDxRWAcpdQFlFx1fYCB7ovBtbP9a0gDR7v5zJCP
7W+c+yTeF5A2Hwg+dGr4sLEh9mF2D+rW0d6TpcnFbj717d/b6MkaP+J5uIF6an2Dcsb995M2OVkQ
gfod73hHOfHEEydU+Mgjjywf+chHJpST4CAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIHHNgKQZrmhdyLCbcQf//jH50lZlgjUbI4bj3/xi1/Ms8/ewG3L
2267bW+alD5MoH7f+95XnvOc5zQCNwRobnr+2te+Vu69l0tCS3nmM59ZjjvuuKZD8mavEH8vvfTS
wi3J44kE6ltvvbVAmlb4hvoZM2a4XODcE6j7QG6N5tbqSjrszU2fKIH6Xe96V9lxxx3nqbOkznnK
KaeUr3/96/P0H8+w6aabttu7x/PFFgSCwKMTgdEbqCFQX1sHBGpvnuZAkDrhh0ruRId72sfABXVU
dcBPRUeIx+8Mh5R8azHrR9eHbn9yEWPt7xofNRR1/PbFhw7/l3z5rdYgB12fucS5D3NYE+/aGsyI
tdTdD2s5tn2u58M/YbHphBO7BDbjgfuDuXE3Swo6AggSgnuAqMMgVztr8szBhw3xobBGd21vYuyJ
re/Jw0SoS4w+dGKpZS4+1sbYnzjqsEZ3XdWmk28NbOS7V/vbx7Xx2om3v72wrV7HxvVrNc58uE+w
1bj5yvwI1D/+8Y/LS17ykvnmLcjxox/9qDz72c9eUEh8QSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAo8TBP77v/+7vOAFL5jUaSH7brPNNmNylzUCNURk
SMvcdjyerLbaaoXbkr2debyYhbUNE6g/+tGPli222GJM+qc+9aly3nnnDWyf//zny/rrr1+Yv/rV
rw7sKOxtzTXXLDfddFO7URqbBOo77rijvO51rxvcrn3EEUeUnXfemZCHlfkRqEnktfDBD35wnhoT
JVBDHt9uu+3mqbOkzgkR/Jxzzmn9V1pppbLRRhvNsxcN4P8Xf/EXLjMHgSDwGEBglEC9dz3KdXXc
VYccUrifEpWxwfeUXIwPYWbgY8Bjlcuqj1z4pNitw2ytqhY+LUM+cfgQY0ZWD/WXh2oMfcizP2tj
qMGwrrHY2A9xCP2JMY5axqjjM8e61TTg5BLnmalLDGvEutjQEfei3oyT+UHjRRU3aB0PbW02K6jO
xHpo8tEBSBtEYQ+MH19fB7/xw/1dMyPkGc/MGsFvTftipy9xCPvVh92HYz1q2I84hn3V7e9MnWEf
a+wIMzdVI/Rzn9jdF/MqdWwyd+7cmQ884JGqZYIyPwI1b3j4lNRk5M/+7M/KX//1X08mNTlBIAgE
gSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCjzEE3vve95a/
+7u/m9Sp3vzmN5dPfOITY3KXNQI1m/vf//3fcvHFF4/ZpwtuSd5ss81cLtK8MARqyNyf/exnB30g
K2+55ZZlr732GpCkX/ziF5cDDjigbLzxxi2Ob53/5S9/2XQJ1CwOPvjg8utf/7rZ99xzz3LQQQc1
nR/33XdfkXvE+vd+7/cGJPGeQE2Pddddt7B35S1veUt51ate5bLNwwRqbs7mBm3l9ttvb4Ru1+MR
qCGzL6lzfve73x3ckM75TjvtNLeWOQgEgccBAiussAK36e9Xjzq7jlvrgOMJuRneJ6ROeKEINviu
cEGZ8Ut8JqcfdTnguGK3Tp+PHdGHjh87M/xSfezB/vS1Pzb3Z/9qajZz7U+e5yIfIdc4dPtjoz+5
nBfBh11cxIE8BrHK8No8980aIU69GSbzgyKLKm7Ywwoma3X7sO7j0T0Y++jjWCPkUEvwODRx1rcG
oCvE+BDMZ0aIR6ceOrHqVR348fV+X1TkYve86JwB0jM60tdHNxafuj2N1W4NZoZ+z0MN7GvWMfWG
G26Yef/9tJ+c+CZmxowZYwo8//nPL1deeeUY28IueMP1/e9/f2HDExcEgkAQCAJBIAgEgSAQBIJA
EAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSDwGEaAW4J/9rOfTeqET3/608tPf/rT
MbnLIoGaDZ577rmlXoY4Zq9PecpTyq677jrGtiiLhyNQ//a3vy3vec97yvXXX9/acEPqzJkzy803
31wgLSvEQKJGIEjj8xLHnkB9zDHHlH/9139tcWussUY54YQT2m3WGLjNmtueEW6ypo+3bPcE6j/9
0z8tkMgPPfTQ8rvf/a7FEwcxfpNNNmlrfgwTqIdJ1gtDoJ49e/YSOye4QTBXPvCBD5QXvvCFLtvr
AWI9Mn369PLKV75y4IsSBILAox+B0Ruo96kn4VMmd9QB1xM+KgOdAbkTvif8UPSe7Gk8Nvik/Zr4
vo6+am52+aUQm+WeEjM8qGF/dPtjM9b+1TTYM/uxP7HqxtATu8Rq7f2MTm1irWcdbPRHsOFHsLHW
z9q9VnUg2NzXwDhRhQKLKtbwMMMbp74x6PgBBRs5rDmwa2aHfmZBQscvSOgIdsYw0RifeyLW/tp8
MO6D2Thy+/o+JGzuRz+xCP0R9mI8NRFi+37u11qeiXhznI2lBmPVOjZ9pAjUa621VpksMfsJT3jC
PG8G614jQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAI
Ao9DBCAR33orl3NOXLjh85ZbbhmTuKwSqCEHn3POOQMi8vLLL1923313bigds/9FWQwTqJ/znOcM
6kNAhkDcCwR0iMrwgPbee+9y5513Nvf6669fdtppp7bX888/f8zz6QnUXKLIN9E/+CDUpVLWXnvt
ss0225Tf/OY35fLLLx/wi/7gD/6gvOMd72gx/OgJ1BKhf/zjH5e/+Iu/GMRsuummbW8rrcS9laUM
E6QhWXMJ5FZbbdVuqx72j3cD9ZI8J5gcfvjh5eqrr277Z7+77LJL2WCDDcoVV1xRLrroombnx7ve
9a5GIh8YogSBIPCoR4B/4+vt89xAfU0d/OMKL3bkH8uqVIEPijBLJNYm8dk1MwO+qHpVm1DTAXeU
XAQba/m4zAg2hDrozPjkrlZ1sB/3Swy6MdqJtYa6/exvH+3EM6zBTAy10V3Lja2mgd0Ya+Lra5Fj
H+sTMymh8KKKG6aWm2ZjrqmP3h8WW795wcFuLIfEzl9IWerWdTbWNfH0Yc3MGkEnljEs2IiTeE2s
udTBzl56v/2MtZ9zDR/Tyzj30O/DXpzT/P5FiN3+1BXvNaq+yZw5c073DQrOicr8bqCGBO2nyiZa
c8011yyV2D3RtMQHgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJA
EAgCQSAILGEE7q+smXsqM+eeyk5hvpdZvbMPbOP6lxubV2PuptZo/mcPWb/ce9dtkzoZBLVh8vWy
SqDmgJCEITkjW2yxRSMbt8Vi+jFMoF5Q2Y033rgRljfccMMW9qlPfaqcd95586RwiyrEaG+H7gnU
BP/jP/5jOfXUU+fJ0/DkJz+5fPjDHy70U8YjUOM76aSTyj//8z8b1gjm/S3O73znOxsxexBQle23
3768973vnYdgPR6Bmrwlec6bbrqpsGdv/O73rb7llluWv/qrvyrgHAkCQeCxg8Aogfr19UTX1HF3
HfBQ5ZbWv4CN9wnf89465IlWdUwc8Qyk/vVsIu/VtTWNZTYGnTg5pxSgl/3hvdqfWMRc/1Hq7djw
M9vfuGoa7NUcZuLtTyz9ydXOXuS9WpfZQQ10+1qbNWLcyGrkpzHOvW+hdQovLuHQbIZBXWYO3T8c
bMT10h8Ofx8vqOQI6nC+tbCTbw/mnvzswzTfs7N2DwDuQ+vz2Ud/lrpsYg0W+BHy3PfKVacv+/Bh
4rNfVVssa/Zhf8na5pFjTWzI6nVMu/HGG2fedx+vr8nJ/AjUz33ucwefjppoZT7Zdumll040LfFB
IAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEHhcIPBAZZdA
VIZgfPfovGCC8kh8IyUTX8cIQXmEuKxdInQjQdfaEqIX5Gcvj7RccfILyl03Xj6pNtOnTy+XXXbZ
mNxlmUANj+drX/ta2+8ee+xRVlxRqs+YI0x6wa3PEHbnJ1OmTCmbbbZZedrTnlb+6I/+qKyxBnc0
jgiXNEKE/s53vjMgpa+33nrloIMOKpdccknhtmnkFa94RTn00ENHkkZ/fvOb32w3Kl955ZXlnnvu
aVZqP+95z2u3MEPA7mWvvfYqd9xxRzMdcsghZbfddms6uUcccUS59tpr2xpS8Uc/+tECVwn5f//v
/5WzzjqrXHzxxe3mcfbMTdlHHXVUuz0bYrZy9NFHl2233dblYF6S56QpF01+6Utfaq9TbuZWnvjE
JxZeA9xCHvK0qGQOAo8dBLobqGfXU/EPXv3rPCAro8MJhdwpX1Sdv7zySYlDiMHGGp0Zzmi/xo+P
/PH+ehNLD/Pob741h/Pdh3Z7MFuHmbr0JG5YtNGLQbz55LEP98Jsz6oOzoFdXIzp+1MXsdfI6qF8
1xOah4tNKHk0mBps3E0za+OgHqyqA10gnY0zhhnRP7J6CCBvaxZkZ0DiXYfn6utSC0CZGe7Lfetj
Rqyh7pnItb816SPZmdna5KIr1mZtDDbzrUcv+6u7Jpf+q9Wx8dy5c8+c7E3RFJofgfqtb31r+cIX
vkDIhIWv3Tj22GMnnJeEIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJBIAg8kgg00nJllwyIxpXWM4a43K2xe4OyROSRvNHblokdje/jWp49xvG7h0fynBOpvXxl
pKxQWSyMXm+2UV+9BHokpotdYYzvweK61SG+i73wC28v/3HeSRPZ1iD2jW98Y/nMZz4zWKMsywRq
9jdr1iymMm3atDYvaz8gGNdLG8sKK6xQIPlOhNwLQfyqq64qfLv9Bhts8IgeDU4UY7Ik9KVxTgjU
kMCnTp06hrz+iAKV4kEgCCwVBPg3dJ111vEG6rvqJuCBIvBAGazVXctxZTaeuf7lbCRlZgQbMayZ
ya9/WZvdPGyIcdiJQeynzppBrFxX45ntI8fVWOzWQieWNX2YEfOdR6wjfmOwWYce6tbExt6Y+3Pa
n/he7/tX1+REsCaXPZLFhjm4wkati46wcQbiwyIG3Vh8xLCubx8H8danBw/Omsw9WHU5EGowyGE2
Dt3+9FKvaovDj53+5rCmF4P+iuu+DzpCjoKNWtiMdU1/dEQ/s3Zz7Q9x2h4QqKfXr384rc6TlvkR
qPlU2S677DKpunwCbOutt55UbpKCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAkEgCASBxxYC3HDciMaVjdFuRq6siLGE5If333vfcmOIzvPcqDxKVB6u29/wTO8lcdvy
wjy9RgipDJEB2Ri9GhtpueoLT2R+iLg8THJmveJwrdEeg9jql4iyMPuebMysX/5HOfZtO04q/fzz
zy8vfvGLx+Qu6wTqMZvNIggEgSAQBB6TCHQE6ln1gCNX7o/wTO+ta/68wvtkhg8qJxROK/Z+rQ07
OmKMf6atB7dVGzUQYnsxBnv9Sz/oL3HaPnBX1a3hTD3q04saCrVZY7e/PmbsxrjmTAz5v55X7qxn
Jp7+1GB2L/arptbT9Xj9iVloodGiiptl5kCCr536HgR/Dyp2bALEwdCxCQCzB+5rGstMjP2H61dX
E2J4APrt0b8orI9PcT/uQbt9+9n6xlKvF3vhtz+kaF8A9idOYd/EkmNdfGvWwQ3UZzwSN1DTgJuk
+XqJicib3/zm8olPfGIiKYkNAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAI
AkEgCASBIBAEFjMCkA3uqwyJMUTjyuiYH4G5EY1H/cSYB3H57rpuNyxX/5jblUftD+e/T1bEYj7j
ZMo1wnJlZ0hUHkNarqyMft1iamxPNh7xP/iQbajWvLEP9epJ0eiPNznrhCPKJd84ZULHPuCAA8pJ
J817c3UI1BOCMcFBIAgEgSDwCCCwfP2jv+666x5QS19Tx22jLeDPwvPk3Q+jvltq3NY6NcHG2zRE
3TV5kK8V/Ag1iMFPfYR3Etrw97HwTVk7fNfBjI089aoO9kNeX9+axKPrJ5e92N8+1TSIw8dgb8SS
w7AWNvK0Mff163KwL3IQc9Tt0ZyT+UHTxSHWYUMeyENT343i8xACyowf0jB+XgASjQEEsa4vhJWr
zRca/r4/9YknV3tVG9j47G8MMwMiM0Jd+mNzrmrLoz9if/dHH3tRH2HWz5p62uypnzU1EfqzF/tj
Q9w3fYhlbHrDDTfMvP9+t1UtE5T53UBNGb5yY7fddivf+973Fqrqy172snLOOecsVGyCgkAQCAJB
IAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAg8FhG4v7Ig2m3L9X/lN7Jy
ZQE00jHzqO48P/+999fblrvYQZy1au35+VssvWssxINlQSALN2JxnSUu92RiicoDX2VIjCEyt7yO
tNz5h+taa35E5mUBj8fzHk583+7lF//x7YWCYIcddijf+MY3yoorQt8ZKyFQj8UjqyAQBIJAEFjy
CCy33HJlypQp+9bO19ZxTx289bq7DnihkDrlfMKRReq7s8ZjhR9KPH7i6judlmscMzaFGH3YWTPs
g0+uK3XR8VOfPZlrHfrD03V/9icWnXh8CnZy8eknxv747T/M/yXOutQwFizcHzUR45x7O3VYu2di
1Ks6ObHB5LJHsgSBWgw2xlC0M3MIRJugamOmnjWI90Fgdy0Y1MFvHdaI/ZnJs4b2Pk8fM34fZFXb
2r1ip6/7sIb9ma1V1UGu/Ymn/nAefoTZ/s0wuqYmOe7LfaxRbZvMmTPn9Acf9FjVMkFZEIGaUpCo
Dz300HLaaactsPKBBx5YTjjhhAXGxBkEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJB4JFA4IH6v80hDrdbkussuXhAPB619X6JxsQO4upty+jevgzxeax/JFZ/H0tt
7OxlWREJyZKRB6TiykLQB5F5xcpMGPY9tH5wEDtPnZqnjXrjkaKpgz0SBETgy393WPn+uZ93Oe68
//77l09/+tPjkqdJCIF6XNhiDAJBIAgEgSWIAB/wWXvttSFQz6rjzjrktTIz6jvJJrw7rO+IBjxX
7Nh4h8RsXFVbnvnM8krxmYeOmGct4unD2v72wI6NtXm+Q+vX5jrT3xrk26uvU80tBr/7NR8fgh0/
+4A8Tb6D/urkOao6sKOTjxjresQ6iZ8UWhxiHTbOQREPwYz0AGjzIPg9jDUABbIwos94Zvx9TeO8
SZq1e0AnlrUvEGuxRoZj6elN0Pj6ePtLZqYGNuLIUXeupgEBWnzwMVwTQz5iXc/y/9l7G2DNz7K+
/7fZN/JCstkkgoEECIwZwAKSGYs4VogWRa0V/0ghoYqi0yqj1lY6vkynVey0ilpUHHWkOsVkg1gb
p8If/VMCDrajOEFUqOgQTLJJ9sWQBBKS7O7Z3f/1uc/z+Z37POfZZM9zzpJnd7/XzH3u675e7/v7
e7J7nuf57h3704d48nbWeNbBgwdvhOQ8rzwegdq6f/RHf9RI1Hv27NE08C8ovv3bv33gl9aXvvSl
oz1KEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAInB0IQCBu5OOa
G9G4vr5eQzqexDTScfl70vEy0XmZtNz0iX/ZPiN2hr/1hUGwINKTiHvdm5Eb0bi+/e/X6iNp+Zwi
LRcz4LFiV/moN4lv9om+IJBkG0FgDQK3ffz/DB95/w3Dn/x/7yy2jHSZYbjuuusaD+Wrv/qr1+T0
hhCoezSiB4EgEASCwBOFwCWXXPL66n1njYdqwDnlt9L6zayRhOF6alv5y66MJdzUjN+boPGTiw2d
PEZvxw93VDs60sfjo0b91jzWIo8Y40sd/cSxX2vAXUV3rU4MtamBDenr4XNf9KenPFjsCPHme1Zm
aiPEkYNYy172d6/EUMvarNct/QHWnTxJYENuxBkXel/fA+hz48RwSOPNERjA7GMFtgeGHGKshY88
azHrK3WVLqDMiDP1qKHfGth9kWDDb21jy9Ts5CPGec4+jhj3S6z17K+/r0H/c2tcuX///j3HjhE6
n5wsgZrqR44cGXbt2jU22rFjx3D//feP6yhBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSBw6hHghmNJwyPRuKgPEpedG7F5Yh9113XT8qq4+ia+1Sr/GDuxtbV61wf7
oty23L5Qr2/bx5uUy9BIyWVbQ2Ium2TjRljuYrdOiMsrRObVsa1+H1/6dGzdRRYJAkHgJBH41990
8XB06fAY/cADDwzbt3vf4Gheo4RAvQaSGIJAEAgCQeALjMA59UvgxRdffF21vaMGN1DDA3XUb82N
N8pvhvVbc7PXNBKXsSHEG8MaO4TQ/jdK130d88nRTy3F/vBRzaMmdjipPenU/szYGeRNC3b32+dr
cyaPntSwJjb7YHev2Ixxtg5rRR/rXtc/19w3mKvAJGn6QJgBiPoMDsSYBr5Mox29B96aAoUfsc7y
avmnsazQEeLsz5oHwm9YPrj+7OyLNTHoiHN/jmXPis8a9mSNzkyedUtta/pP74tY4sizv7YyrYrH
ru+80q+sG6j3fCFuoGYjIVCDQiQIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgC
QSAIBIGzEQG+6F2qb3QlLE8TmKfXR6aIxu325co/UsTlQ21eITz3hGXy9GNfyVuxL/mt9wI8iDXk
5PpGeyQu17fgEpW9FXkkOOMb/ceXSchdrr5pcvJYeyqWfUSCQBA4/RAIgfr0e2bZcRAIAkEgCCwj
MCFQv7ZWd9d4uAbkZESOKL+112/0bY2NgQ2uqL/R43eNH2HGjvBbLjoDnimztUod66HT39+KmenB
mBVvr+n9kIfP/bmmNhf/uq9SmxAn15YYzoIwU2c6Hpt7LLXFGMtaH3no9idPnErdHLHZRqtZh036
kDyUG+99xONHsLMGSO3oPgDqmVtqs/e1sVmLHEjKgGceusRpHyB9fGiljiCjY6eO+7I2uQh2+zfD
ZE1NfPYiBpv98VGD2vjsTwxDcd/2N45c48jnBuorikB9UwjUQpc5CASBIBAEgkAQCAJBIAgEgSAQ
BIJAEAgCQSAIBIEgEASCQBAIAkEgCASBMw2Bo/UN66qbkutredaNoKxe61lEY8nOR47WbcvGTua2
1lb5s/zTxGa+xF0E4YZjCcYnIhRLXB4JyObUt83LvglpmfXENjN22jfm1xffpfsl9iLgkj0EgSBw
+iEQAvXp98yy4yAQBIJAEFhB4JJLLrm+VntrPFTDtwtwRhlyQOWMssbOr9D6meu36haLDl+03qW0
GPL0WwMf4q/h2BHmvp/1qW0ucdjJNV4fuejwVOlhHvHYmPu94UfI6euZhx3BR215sNqxOfpa9jKP
GGtSw/2bw3puoclGhU0JArXU3bj1XTP3YrwH9gFQV5vxrInXp24N4tAFx7nPsz82hDW6IEOA5gXA
PrThdxBvf3V7EuOe8FEDwW6sa2wKujhKALc/efgZnofY82s8fd++fXuOHydkPrn11ltb4rXXXvu4
BXID9eNClIAgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgcEYgwDeQJyIo
ryIa1zerjcxcX1trZx6Jx3XbctM7f38z8xg78Y95tW43MVetY/N/Hbrpz6InK6+6Sbm+ze196hKT
mVfIycfHWIjMo71ijMfW6nd1W43JOrctb/qjTcEgEASeIARCoH6CgE/bIBAEgkAQ2DAC3Q3Ue6vY
IzXqXUzjeB6ZzDU1G+9ofFdjDGu4pogzNrir9Vt/szEj+Bnap+sRg4/acEupUe8ompBnvDG9z5qT
8JGgTA4+xX27195OnLWn+b/kKfYynlrsxbMR1/dxn9iNZV+9TK973+PqbGSjYg0PxwNgU9Mb7g9K
rAft8wXdfGuxR3OwUYuHjN7nUxMCMvkM4qxJXK8Ta61SxwdhDrE8TB8OdnIkNtMf3f74iaU/go7f
ntZlthb9GQizmLG2f59vffJ31HjW/v379xw7hnk+CYF6PtySFQSCQBAIAkEgCASBIBAEgkAQCAJB
IAgEgSAQBIJAEAgCQSAIBIEgEAROBQJL9dWfROSewHxConF9awnp2NuXl29qnpCWyzcrz1gJyuSv
qlF5S2Xji8pFEMjCPXm4kYzrG1PJxs3HehI3+mu9Qk4u0rJ1Hjd2bS33sAh4ZA9BIAgEgTMJgRCo
z6SnmbMEgSAQBM4uBLbU/xZm9+7d3EB9Zw0J1LyNgtAJ17TeebTZt1ZwTrHVO5PhcA05o6U2wa+N
fOKsh45NgaQt95SY3s/a/uzF/tqINV9fmVqOnFny7I8PwYZgd6/NMLFN75n9uWf3557dy3S+nFv9
7o9899Tr+q2zrplCmyHWYXZDzDxsN+2DF6RZ4JCP3RqlthrM1JmuAVi+qIhxH+jUsAczPvLtT646
Ph+uDwBbPzxPX8Pbqt0XM2I9b5OmPz6G57C/uZ4ZO2Lv3k8dz8QN1FcdPHjwt5aWgGA+CYF6PtyS
FQSCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgcOYgwA3Ha4jG9RXcMhl5Nbl4
mmg85tVNy9M3MfcEZeJm+bVbZ1FuW+bLyhXycX1JWQaJyZKJXbe5/GN8H3vO8WFb76tvP63V4rvY
NXUmscVLiASBIBAEgsAZikAI1Gfog82xgkAQCAJnAQKTG6ivq6PurfFgDTigvHuBI4ouJ5RZrmqp
jfOKDa7ooRpwRI01l3jszIjviiSL6jOPOHRroTPIY7Zeqa0/M/0hcptjLPHyXPs8/PRnlsdqD/tj
xzYt1iMX8jYz/dHpj2Az13hm7A76oPf9azmfUGijwub7TbpxamunR697YA/j4YhD70HloD4gaxhP
HD4fkj3N6eN5cNgRcojt8+zRz+SzNs+1/cs19u978mCJQYylFzGsnadtnqdCWl36EctA8JsLgfqK
ffv27Tl+HPN8EgL1fLglKwgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBYGMI
8A0XtxxLHPZWZAnF7fblzq/deNdHJsTlcT3JGdcT4vKYZ82yHyqdPtz6vCiyhpxc3y5CLJ5JTi7f
tt5XOuTkc4q0LBm5zdhH30Tv1q3GpI/x7CMSBIJAEAgCQeBUIxAC9alGOPWDQBAIAkHgVCGwbdu2
4aKLLnpd1d9bgxuoeWfJW13fYcJZ5Z0VA1u9Ax2FOAd234GRU+/Wmmgn11rkEMvc17NHmZuP2Vr6
3Bc+hBqIfYhDp786MyLRmZx+f/iIYVCf2T1al3hs0/4+ru8pX9b4Sh0xRbf/9HnwrUs83LqSpoI9
vMD4UKytvQfGgztzEA81VX4EFLsg9cCcqL8g0kOdGu6DWu6NesS4n1JbnGdwTQ7D/vY2jhr9Q7cH
dmOwIb2PepCu7d/XNY+ZOgziIVBfuX///j3HjrGcT0Kgng+3ZAWBIBAEgkAQCAJBIAgEgSAQBIJA
EAgCQSAIBIEgEASCQBAIAkHgdEXgaH211G5Crq9SvWF5es0tyz0BWaKx8UeO1m3Lk/xporNE6Hb7
ctVhXnNr88TOl2OLINxw7K3IPYFYXfIx8ywi8yrScsVYa2YsNehHnGOyJp4vBSNBIAgEgSAQBM4W
BEKgPluedM4ZBIJAEDjzEJjcQH19nez2Go/WgMjJ4K1uP7T5dg+OqW+H8WF3hqiMD5s1Sm1CDOJs
DerVu8mxNzF9LvGsiUGIV7DbHz+ka2OtgV291Ka7P9bUtz/rXvo8YsijB7NiLftj1+9esKEb64xt
brHJ3AUq0Y1YA4Kvh3bzAoRPgCUM+3BYoyPUFHTW1CGXF8f2GtbDTixrz2LdMrU86+DHZ3/quE/y
d9TghUEcg34IMQi59CfO/qWO/X24xCHuzf7M+Hzx2Z9Y6u2c+OhNrP1LbeLeiSP+ghpXhEDdsMmP
IBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCCw0AnxxtBGi8Szi8okIzLPsPUEa
AvWiiARiCMXjTcqlj/b61kwysjbXjZzcYpdvW2a9rdYjabnLXYldqU09icy5bXlRXhHZRxAIAkEg
CJxtCIRAfbY98Zw3CASBIHDmILCl/iXu7t27uYH69hpwS+Gm+o673p02nTWj3oEOh2v0HFI+KtBf
6sh31WaehGNq0Ac7/FLy4aMy4KPKjaW3/e1hrv3x49NfahPqUl87eawRfPTHRx1meuO3f6mtN3nW
YDbXOP3Ek89+EM/lHuyPHx9nRPq4ZcscP206R+qYYo3+QBwYYfYArNER/eSaz4E9lDH6sAO0QBJr
P2u6Joc45r6muWUe/cSYj1+dGMSaPGwfiLqxzuwRcc/Lq9VnIkY/M8M84q1ljGt7EsMLiL1IoL4p
N1ADSyQIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCaxFYqm9V+puQR3JxffM0
6vX1mwRlbO325VX+um3Z9ZR/+qZm46ZvXF6qfL6MWgTpScMjKbm+lWp6fUs1EpBL17+WnFyk5RPE
rqlD7b5Wpy8CHtlDEAgCQSAIBIEg8MQhEAL1E4d9OgeBIBAEgsDGEOhuoL6zKj1Uo97tjjxXOJ4I
MzxQiL/q9QlBEz4m8KMCcvGzdiYOfim52Inp/awRbdbARg0En/3VqWstYpB+ba79WTOoQw0GYn90
/H0NYlhj5wzUwuZ5rGUN1xUy9iAeOzUQY/v+6ssR6/xpwXWmrQqnBpuwlrp214KAXRCM8ZDYPZDg
C4x1yHEY68MpV8snp89z7UPq90KOscwKsRCX6aWgE2N/7cRSEzt7UndNDjb3SV1fhNYsU6vNjM3+
/Z6sg//8GlccOHDgxqNHKTWf3HrrrS3x2muvfdwCR44cGXbt2jXG7dixY7j//vvHdZQgEASCQBAI
AkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIgMCx+rZkmog8ffvyiYjGq/O2LJOZ66tC4hsR
ekJgniYo6x9J0RWPzl4WQdoXQvVNj4TkExGKe/9sIvMycXmMo2YVnxV7IiJzXZIVCQJBIAgEgSAQ
BILAQiAQAvVCPIZsIggEgSAQBOZAYEKg5gbqu2pME6ghPcP3ROCCMnrh0woG5E98vFN37bt27MZR
i5oIOjdBE2duP5e5xRJnjH58CrWx9z5184hBZ0hUhQvLXoyhj3nEI8QSh3gG61hTO7nUQHpdP3n4
gwUvMgAAQABJREFUqYne9ydmbqHYZki/+X6zvR3dzXIAD2N/Di5g1GAQrx2dGgJEvkRk8wSdOPVS
W53+rMRTxz7GkKcNHbEPOjb3gZ3boO1DnnulPi8Q/Ig56MSxb/vbB5/9mbUTRzziOfHtrHHVwYMH
b1ha8r8LQtYnIVCvD69EB4EgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEFhUBPgygluO
JSAfqq8PIBmPROPJWvs00di8w0vdbcuT/BY7yV+TZ8/yS4rm1udFEW9blnDMelt909IIx6VrZ56O
leR8zjkzSMvT8ZNa7abmad9kvSiYZB9BIAgEgSAQBIJAEFgUBEKgXpQnkX0EgSAQBILAehGYEKiv
q7w7a0ig7j8RQa9PS0beK9zR+hSlcUghQMMLPVwDXmj7WKdmYhj469OEJtTARj25qNpYM/ARg86M
YKMfddCZ7U8+/eljf2PJd9+ltlxmexFvHWyI/dHJdy/Usb77IIZ8+uvXRgxjur/1iJvVH/u6haIb
FTbbgy4gzB5YAOil3zxjsBMHkOaWOj40wdLGjFh71lmsTa4PyP7m2ZNa7sm9UJNBLmRoHgpr4hB0
62BjjTBTw77MrHu/ecbgs3+pra42+/sCJe68Glfu27fvpuPHPRJp65MQqNeHV6KDQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAITCNwtD7FH28/rk/yV4jIE/vENhKP69sGicYtr/mLtDyx
n/Cm5i5vJEWTa8/yz/+NwfSpNrbmhmPJx42YXN9s9OtGWiam7NNE5kZALl8jLZPX5U7HNh81JrX6
WGuXKxIEgkAQCAJBIAgEgSCwoAiEQL2gDybbCgJBIAgEgcdFYEKgfn0F3l7j8zX4CKI+nVnDVcUG
XxSysjxSOKGKH+cwY3emHmtn7czYnOuToZm6fvsza2NGrLO8WvbjM47+7J0eiPuuT2NWxfTx6PgV
cuHJ0n9a+jr4yEXog8/+9tVvnmty1i0cfqPiJqmDjrAphj5BljRsTO9HN8cHRhzC4XuiMTbiAZaa
+MlFt5drapnLjF2xJznWYTanrwWBmj7kIMyszcNGfXIQfJKu7cuMGGMt1vis5wvGOPZMLc9U6nBB
jaeFQA0UkSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQONsQ4APzNUTj+nR/FpF5zY3L
k7hlovNq4vKh+oSeuiciKI9k5YqT8AyBelHkZAjFs4jMjZhc31os++q25dJXiMxlxzfxr47tfOTU
Nxst1284FgWY7CMIBIEgEASCQBAIAkFgIREIgXohH0s2FQSCQBAIAieBwJb61+O7d+9+XYXurfFo
DXifiLdH8/EVnxphh2eqHzvimhhGfbLSOKLmsIbLyqcs+pmti98a6sSSYy1i7U8ugo047NbGxx4R
dIb93TtzX6Pvqd7nVPhYS36s/fp4arIn+/fnw0cONnKYEdfuZ9m6zp8U3qhQww2yKXQ2ysacSx3t
/cMwps/vQcaOYOOhIoKEz1rmUw+/QNm/r2MOezVeP+v+QVkHG3kIOkLOdD416c+YrkV8b7c/9fBZ
j3WPYy1bT/oTA5EaOb/G0/bv3/+uY8doNZ/kBur5cEtWEAgCQSAIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJB4GxFYKk+koZgPIto3NtnEY1X/EVark+9lwnMK0Rk/NqZ+zWEZgnLzEu15sP0RZCeNDwS
jesbBuzbmGtIPtbfbOV3vfWcIi3XelYsMfYY4yexrX5XZxHwyB6CQBAIAkEgCASBIBAEgsDJIhAC
9ckilbggEASCQBBYNAS2bds2XHTRRdfVvvbW4Abq+rSqcTyZ/dgKcmd9sjPePo2Oj0EcUp/sNL6p
+azVyZcgih0eLTXwY8eGWA8fdvsz27/UkVuLbg/7k0esa2dirUN/ebD2J87++sgxHxt5iH589Lcf
+fbHpg+bot0a5GxI2MRmCHXYnIdgjW59fIKFnYENPwMfA3KwBy+1SV+LPESbQLDu+6szI8RZ1/7Y
zKM3dsjL6P3eatnEmuTY33jW1EPId1/4EdfuR5t55CDWc2/2wmeuezu3bM86ePDgDUtLvrYIW5+E
QL0+vBIdBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQeCIQOFafYPcE4kYsro+GG8m4Pv3u
icV93DRB+fDSlrV1Jvmrbly29mTu67CXRRA+QJ9FNl5LTK4P6Su4kZDrE3Z1icjnTIjLrvXPqt1q
TGq1+IleFw5FgkAQCAJBIAgEgSAQBIJAEJgDgRCo5wAtKUEgCASBILAQCExuoH59beb2Gg/VgPfJ
7dN8UiRPlVl+KLOfrMFn7ePJwV+fxrV8/P0nTqwRYhj49OPDRj3y4Zjav9TmY562GW8t/Pa1B3nU
c1/YiZPHWuq4J+qRj0+xJz3QEW3G43PP5k/3d1/WcM/EzS0U2SzxgB6edb9pD8tsrIdlD9rwc8ge
aNb4IRjzArNGqS0OH4McScvsw/6lNoDx97n4WSPEm+8Dwk5dBD+1eSFYw57M+MkjhjXDfZfacqxP
LEJ/90tN/fjIRYxllmBOLDdQX1kE6htDoC4kIkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAI
BIFTgIBk5DbXJ7o9kVj9UH1q/Fh+SMsSnY1tNzGbV7N+ao43L6tXX+ovikzfhLxqXZ+MS0R+bCLz
8m3Lfez0TconQ2ReFEyyjyAQBIJAEAgCQSAIBIEgEATmQ+B0JlA/+OCDw2233Tbcc889w8MPPzwf
ACfIOu+884bLL798ePaznz08+clPPkFUzEEgCASBIPBEItDdQH1n7eORGnyCB28UHig6M+IM7/Nw
Dbig8kMlXJep5fS++nSw1aMWdtbMiD16nqpx1La/+yEHrqr9WSP2QKcme5T3qs+19e3JGh1hZm0+
tTyj+fT3vOZZg7X9S22ij3zOjZ+ZWGysNyRuYiNFpjfkRqmJzkYFAHAAVZA8NDOxAujBJRdzUPeq
bjwx+OhBHmuBsU+ZmuCzPwbzmN0bMdShPoRl988a8Sys6WN/fK7NMR8fPazNjGBD9LE3fNSxf6mt
J+s+/oJaP23fvn3vOn6cdvNJbqCeD7dkBYEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSBw6hDg
huNGNK5PTCEOSzoeycVla/rE39tXYou0PMNvbPOVH7LyGGfdmiE403thbluuT4clFLdbkOsT437t
bcizbk3Gtq3y203L5E1yZ8WOhGb6TcU2gnPZ/KD61L0CUjkIBIEgEASCQBAIAkEgCASBswWB05VA
/cADDwwf/OAHh6NH643jKZStW7cOL3/5y4ddu3adwi4pHQSCQBAIAvMgMLmB+nWVu7fGozUkB9cn
i03gpMIF9S8LiJ7qBKDzURuDOPLq07dml0Pa5+CjBzN+8qzX+7TJn3Vd4WO8ueTZnzhymOmLj9mB
j/7WtQaz/c3HJhfWvZap7dva9iMWm2vijbF3mca9uS/yiJ1bKLBRcfPU4fAelpmNIh4GvT8cep9D
nKARa233abwAEG8M8f2DMRY7QhzD/va1HzXxQXpmJlYbs7nE27/UZncf+DwrD5NaijXwI/a3X7+2
nn36XOJZn1vjiv379+85doztzichUM+HW7KCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBILAmYYA
H0pCGl51E7LrybyGaFz2dvPyKv/ybcuzCMojubk+PZ3ll8x8dP6PPDf9sUAiPtENy81X/lVE5vok
ebSPvrptmTrjejnGvBMRmfu+6JEgEASCQBAIAkEgCASBIBAEgsCZhsDpSqD+0Ic+NNx7773DhRde
2G6K5sbozRRutOZm68997nPDpZdeOrzsZS/bzPKpFQSCQBAIApuAAP/Ipf6By/VV6vYa3kBdnwCO
BORSR8IyH7/CKcXPJ33o2PgklJlhbqkjmRqdWHKsIb+V2RxrykMlFvGTVtbGE4uOrR/mlnncK7q1
tLOmr/WY7S8fl1htzAhx9EDsq85sf/PogRDb18DGut8XtnWLRded2CW4EWu5We39JgHHF4FxlFIX
UHLV9QEGui8G1872r5AGjnbzmSEf298490k8Ph6CNh8IPnRq+LCxIfZhdg/q1tHek6XJxW4+9e3f
2+jJGj/iebiB+ooDBw7ctJF/zRYCdcM0P4JAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgsAThsBS
feIocVmCskRj7IfqU8Npv0TjFf+WVTc1j7c2ryI2L5OWpwnSxi5VHz58XASBLLyGbFyfkmL3FmTJ
xyMxufy9beuWjrTc+ajbalQtctuY6K1nF4svEgSCQBAIAkEgCASBIBAEgkAQCAKnDoHTlUB98803
t9unn//85w87d+4cAXr00UeHQ4cOjevt27cP55577sAtpb0cOXJkeOSRRwb/r/Pbtm0bIGH3cdT5
xCc+MUDQe9WrXtWnRw8CQSAIBIEFQGByAzUE6jtqQKCuT2NHgQvKH/7MCDrc0z6Gj2MdpY78VHSE
ePzOcEjJtxazfnR96PYnFzHW/q7xUUNRx29ffOjwf8nnU1PirKGuz1zi3Ic5rIl3bQ1mxFrqrBU5
tn2u5zNmXbNN15U0FcxmPHB/MDfuZklDRwBBQnAPEHUY5GpnTZ45+LAhPhTW6K7tTYw9sfU9eZgI
dYnRh04stczFx9oY+xNHHdborkttOvnWwEa+e7W/fVwbr514+9sLG/907en79u17l79M1XrdEgL1
uiFLQhAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBILAGYDAsfokD+LwCgF5Brl44h/JyrWW2AzRuRGR
l7rblsuvXSL0idbjrc1Vh70sikwTilnPIjJDVJ5FNl62FXG5/NO1ZsW3+jNip75XXhR4so8gEASC
QBAIAkEgCASBIBAEgkAQ2GQETlcC9X//7/+9IfHiF794ROT+++9vt1KPhokCMfppT3vaaIYYfeed
d45rlfPPP7/dZu2a+aMf/WhbvvrVr+7NT4h+3333Dbt3735CeqdpEAgCQWAREZgQqP9Z7e2uGo/W
kEMK9xMyMYINvqfkYnwIMwMfoz5dHrms+siFT4rPOszWKnU4UoN84vAhxiyvVvrLQzWGPuTZn7Ux
1GBY11hs7Ic4hP7EGEctY9TxmWPdMo2cXOI8M3WJYY1YFxs64l7Um3GeHzTeqLhB63hoa7NZQXUm
1kOTjw5A2iAKe2D8+Po6+I2f7u+aGSHPeGbWCH5r2hc7fYlD2K8+7D4c61HDfsQx7Ktuf2fqTPtY
Y0eYuakaoZ/7xO6+mPnna8/Yv3//nmPHPFJZ1ikhUK8TsIQHgSAQBIJAEAgCQSAIBIEgEASCQBAI
AkEgCGwIgUZark/2ZhKL62PfRizu/P3NyyMp+WiRlo2teZnI3JGbJ/kjSbnWrY6xrGssinCrsmTj
Xm+23lefFK4iJk/Ws0jL2GbdsjySmGfUonckCASBIBAEgkAQCAJBIAgEgSAQBILAFxKBM4lADSka
cvQznvGMYceOHQ3GvXv3DtxKfdlllw27du1qtnvvvXeAbN3bPv3pT7cbra+66qp247TPYFEI1D/+
4z8+/Oqv/urwYz/2Y8O/+Tf/xu1lDgJBIAic1QjwfwioP9u5gXpvjQdrwPGsT6FHvqyfuGLjE+n6
VLbN8EIlPpPTj1qOHFfskEOp0+djR/Sh48fODL9UH7n2py9+Zmzuz/5lajZz7W+8+dNx7s94+qNz
XoSe1CSfWRzIYxCrTK/Nc9+sEeLUm2GeHxTZqLhhD8thPLy6fVj38egejH30cawRawkehyaOftaj
huTiUhswPgTzmRH7Uw9dgO2tn7n3+6Kyp+clhv6QntERYqxv/+aoH+b1fnTt1mBmWMvzlKnZL6j5
igMHDuw5epT280kI1PPhlqwgEASCQBAIAkEgCASBIBAEgkAQCAJBIAicTghww3EjLNdHohCHvUW5
13v/rBuXj9RNyyfMq5rTBOVWr+zO+Om3KLct88HbSFquT+bWkJUroBGQZ/mwlX/rOXXT8qjXB3wz
YvGvIkW3vOVY67OXSBAIAkEgCASBIBAEgkAQCAJBIAgEgbMRgTOJQH3HHXcMhw8fHr7xG79xuPDC
C9vjvOuuu4YPf/jDA7eUQqzevn378Pd///fDAw88MHB79dVXX93ibr755ka0XlQC9Wte85rhAx/4
wMD8K7/yK0/oS/Wd73xnu+n7TW9607BzJ/dPRoJAEAgCTwwCkxuoX1vd767xcA24nvBRGeiM+lS8
8T3rk+Kms1aMxwaHtF8T39fRRy52PlZmQIQmFiFmehhrPfuTa6z9reHa/sSqG0M9+7N3hHqIMzq1
iCWGGtbBZhy2vgZr/cS411JHwea+RuN6FQpsVKzhYaY3Tn1j0PEDCjZyWHNg18wO/cyChI5fkNAR
7IxpojE+90Ss/bX5YNwHs3Hk9vV9SNjcj35iEfoj7MV4aiLE9v3cr7U8E/HmOBtLDcaTajwzBOpC
IRIEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEFRIAPc5bqUzBJx6sIyvWRZrs1ufwSjE/sr9uWK64n
KBMLGVmi8+P5j/Kp04LIiQjFzV6fhPWE5F5fTU4+PpusXJ+anbBO1e6JzLlteUFeENlGEAgCQSAI
BIEgEASCQBAIAkEgCJzVCJzpBGoe7p/8yZ8Mf/d3fzc86UlPGq644orTkkB98ODB4ZZbbhle8YpX
DLt3735CX7Nf+ZVfOXzyk58c/vZv/3a45JJLntC9pHkQCAJnNwLn1IfWF198MTdQ317jkRr1qX3j
jdbUxE/mmfHBBdUm8dk1M8MY7WUaubF87QB3lFzENbWxMyPoCDXQmfHJXS113A81EGLQjdGOzxrq
9rO/fbQTz7AGMzHURnfNWRXtxlgTf1+LHPuQsyGh8EbFDVPLTbMx19RH7w+Lrd+84GA3lkNi52Zn
Hnjfx/rGuiaePqyZWSPoxDKmBRtxEq+JNZc62NlL77efsfZzrvBVvYxzD/0+7MU5zees7Ik1dvuX
OuJwfunP2Ldv343HjxM2n+QG6vlwS1YQCAJBIAgEgSAQBIJAEAgCQSAIBIEgsLgIQBbuSck90biR
kOuTlsf3b1lFUB5vaq5PqSQtr6przfIbC3l6/k9tNhdfyMKNgFxzIyXXJ1KNaNyvO301WXmSs6Uj
LZM/iSe23aTc5eMba3Sx9IwEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkFABM4GAjW3Ur/vfe8bHn74
4eHSSy8dlpaWTrsbqH1eizCHQL0ITyF7CAJBAAQmBOrrSr29xqEacj7rE/LGeYX3CRf0SA0+HceP
9HF8jeBXCcQjxrnGT01jmY1Bt482esG5xQ7v1f7EIsZRE+nt2PAz29+4Mo2x5jATL+eVWPqTq32a
/4uPOAc10O1rbdaIccur5Z/GOPe+k9YpvFnCodkMg7rMgMJhBQcbcb30h8Pfx5tHjqBO51sLO/n2
YO7Jz9RFzPfsrN0DgPvQ+nz20Z+llk2swQI/Qp773lE6fdmHDxOf/UptsazZh/0la5tHjjWxIefV
uLL+hdcefrGaV0Kgnhe55AWBIBAEgkAQCAJBIAgEgSAQBIJAEAgCPQLH6hMRiMMQlA9N5plE4/L3
dm9nlnR8ZGmZuKxdonMjK5NbY4ytPrP87GVRZCQr16c/6tNEZsjNjYBcnw61mDWxx8dc/SciJ+Pv
b1mWyJzblhflFZF9BIEgEASCQBAIAkEgCASBIBAEgkAQCAI9AmcDgZrz1gWJw4c+9KFhy5Ytw7nn
ntvI1C9+8YuHq6++usFx8803D48++uhw1VVXDVu3QhFalo9+9KNNefWrX63pMee77757eO9739t6
wQl61rOeNbzoRS8afuRHfmTYtWvXmPvf/tt/G37nd35n+A//4T8Mf/VXfzW85z3vGT7+8Y8Pl19+
+fBP/sk/Gb7/+79/2L6dOx+X5bd/+7eH3/qt3xre9KY3Da985Subsa/xkY98pNX49Kc/PbzgBS8Y
/v2///fD85///OHd73738I53vGO44447hmc/+9nDN33TNw3f933fZ9lxfv/7399uuAYjcPgH/+Af
DN/2bd/W9mLQO9/5zlYPTA4dOjRcc801w44dO1q9b/iGbzBsuP3229vZ/uiP/qjd/P2Sl7xkeNnL
XjZcf/31jew4BkYJAkEgCGwQge4G6r1V6uEacEUlK6PDCa1vNUa+qDrfYsgnJQ6BQ4qNNTozfyH0
a/z4yJ/1TQix9DCP/uZbczrffWi3B7N1mKlLT+KmRRu9GMSbTx77cC/M9ix1PAd2cTGm709dxF7L
q5V81+uap4utK3kSTA027qaZtXFQD1bqqAuks3HGMCP6l1crAHlbsyA7AxIEY8/V16UWgDIz3Jf7
1seMWEPdM5Frf2vSR7Izs7XJRVeszdoYbOZbj172V3dNLv3PrfH0/fv3v+vYMdLnkxCo58MtWUEg
CASBIBAEgkAQCAJBIAgEgSAQBBYFgUZark9ERiJxfRTVE5S1O/c3MI+k5KOT25bJneT3cdQbY2f4
3cOiYNITiHtd8nEjGdcnM/2615fJyUVark9jmr1im61b61uOXVvLvouCSfYRBIJAEAgCQSAIBIEg
EASCQBAIAkEgCASBRUTgTCZQcyHitm3QiJblz/7sz4ZPfepTLofNJlB/5jOfGV7+8pcPkKghPz/l
KU8Z7rrrrtbvS77kSxqxevfu3W39kz/5k8Mv/MIvtPgPfvCDwwUXXNBuxoa8jHzHd3zH8PM///NN
58db3/rW4T//5/88/MzP/Mzwxje+sdmt8VVf9VXDhz/84eHiiy9uN2sfP368kbVf//rXD29/+9uH
888/fzh69GgjRpP47/7dvxv+1b/6V60GP9gHtZDLLruskcs///nPN7L5T//0T4/9fumXfmn4r//1
vw733HNPq/fUpz61nfPHfuzHhte85jUtH6L6K17xihazc+fOtqfiVjXf937v9w4/9VM/1fT8CAJB
IAhsBgL8g5f6xyneQM0foBI54YEyWKu7luPKbDwzfNL6Bmbkm2IjBjsz+XBIsZuHDTEOuzxT++FH
dxDLX07WsaZ95LgSb11rEUMea/KYEWz6mBX8xmBDJ5Ye6uZhox+ze7KudYhV7/uXeT6hyEaFDbNR
hQ1aFx1h4wIjqMSgG1tqi2HdvxCsTw8enDWZe7BqOQo1GOQwG4duf/ajXmqLw4+d/uawpheD/orr
vg864lnRsVELm7Gu6Y+O6GfWbq79IU7bAwL1s+qXghtqnltCoJ4buiQGgSAQBIJAEAgCQSAIBIEg
EASCwFmMADccN6JxfYLQiMX1Tp71SDKerEfbDD83LfdE5zU3Lle93t8Tm73hmX6Lctty+xCjPtU4
ETlZQrGE5DUE5Cqw7FshLo/k5ImPdbupeYytnM5n7TJFgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EAROAwTOZAL1/fffP0Bqfs5zntOeBITq973vfcNDDz3U1ptNoObW6D179rRbm3/t135tgEC8d+/e
dvPyJz7xieFXfuVXRqKx5GduxP4v/+W/DNddd93wyCOPDNzyDMGZW1X/+q//erj00kvbXh+LQA1J
HGIzt0vT7w1veMPwsY99rOW9+c1vHn74h3+43RgNIfttb3vb8NznPnf44z/+4+bntugv//Ivb0Tz
3/3d3x2+4iu+Yjh8+HC77frf/tt/Ozzzmc8c5Da1hPrxlV/5lcMnP/nJ4W//9m+HSy65RPMAcRsC
OTdqv/GNbxze8pa3NAw4+7d+67cO9957b7sN+1WvetWYEyUIBIEgsBEEOgL1nVWHG6gRuJ7cQs1X
FejM9W3OyAmF04odG9xR1tqwoyPG+JWH9eC2aqMGQmwvxmCXj0os/Fd7MdPfntZwLlfbI72ooVCb
NXb762PGboxrejHo3/eTO4tPwU8NZvdiP2Lo6XpWf2JOWmi0UXGzzBxI8LVT34PgZ9P4OAR2bAKE
DR2bADB74L6msdax/3T9Sm9CHR6Afnv0Lwrr41Pcj3vQbt9+tr6x1OvFXvjtDynaF4D9iVPEiBzr
4rugBjdQ35QbqIEjEgSCQBAIAkEgCASBIBAEgkAQCAJnOgK8QV6qd/WriMb1KcSJCMzcoGwsMaNe
xGUJyCMpufyjTl6t2w3Mpa+6fXliX/Kd/AKA3gjL9YmC5GEJxc1enyT06xZTsSMxefQfX7FN1Vob
u9KrJ0WjR4JAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgsB6EDjTCdQf+MAHhle+8pXtFmZwOXjw
4HDLLbc0su9mE6gffPDBdstz3Ybabmb2OfzGb/zGAJH5u77ru9pN0tglUH/Lt3xLIz8bCwcJgjNk
4/e+973DS17ykuZ6LAL19ddfP/ziL/6iJYZ3v/vdA7c9P/3pTx/+4i/+YrRTk9oIt0hzSzY3U993
333Djh07hosuumiMxf6CF7xg4Pbov/mbvxmJ3ASciEDN7d7/8B/+w+FLv/RLhw996EPtBmsL/o//
8T+G7/me7xle+9rXDr/8y7+sOXMQCAJBYEMI8I9N6vb9f15Fbq+x/K9jVsjDfJPEqG+WGl+2pibY
+MoLUXcNPxTytYIfoQYx+OubqyZ8K6MNfx8LN5W1w29wmLGRp17quB/y+vrWJB5dP7nsxf72KdMY
h4/B3oglh2EtbORpY+7r13LcFzmIOer2aM55ftB0M8Q6bMgDeWjqu1F8HkJAmfFDGsbPC0CiMYAg
1vWFsKNsPChqIX1/bMSTq73UBjY++xvDzIDIjFCX/ticS2159Efs7/7oYy/3xKyfHOpps6d+1tRE
6M9e7I8Ncd/0IZbxzAMHDuzhl4Z5xX+lde211z5uiSNHjrT/xYaB/PLCv5aLBIEgEASCQBAIAkEg
CASBIBAEgsCZjcDReuc+kovrLeio1ztYdef+BubVBOS6bZn4Sf4YN7GN6xn+5is79XizvAgCWbgR
i2uWuNyTiSUqj756V7+KyNzyOtJy55+ua60TEZkXAY/sIQgEgSAQBIJAEAgCQSAIBIEgEASCQBAI
AkEgCMyDwJlOoP6DP/iD4SlPecrQ83I++tGPNlLwZhOoxf/hhx8e/vRP/7Rxej772c8Of/7nfz7c
eOONq8jDEqj/43/8j8O//Jf/0tQ2v/GNbxx+7/d+r+V8/dd/fbM9FoH6537u59qt0xaBi/SKV7xi
+Lqv+7p2I7Z25he+8IXDXXfd1QjU3JDdC0Tp2267bWDPDIjOEK3Z/5VXXjmGnohA/Tu/8zvtLPhf
//rXj/EoELF/4id+Ynje8543fPjDH17lyyIIBIEgMC8C3OK/e/fu11X+HTUO1+BrrEM14IXWN1sj
5xOOLFLfdDUeK/xQ4uGEElffGrVc45ixKcTow86aYR98cl2pi46f+uzJXOvQH54ufnsRx6A+NnwK
dnLx6SfG/vjtP83/Jc661DAWLNwfNRHjnHu7+3TPxKi35Hl+2GCeXHMEgVoMNsZQtDNzCESboGpj
pp41iPdBYHctGNTBbx3WiP2ZybOG9j5PHzN+H2Spbe1esdPXfVjD/szWKnXMtT/x1J/Ow48w278Z
JmtqkuO+3Mf5ZXvGvn37buR/QTGvhEA9L3LJCwJBIAgEgSAQBIJAEAgCQSAInFoEjtVbPYjDjYRc
s+TjNUTj+nhhFSl5Ektcu3G5blsedXydv9Ws/N6/Si8fNdjLooiEZMnII6m43jnrg8i8rd5NT/tW
1sfH2DV1Kk8b9WaRoqmDPRIEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCwMYQOBsI1CB0zTXX
DF/yJV/SwOKiRIjVz3nOc4arr7662W6++eZ2e/RVV101bN0qlWgYIFsjr371q9v8WD8gG//UT/3U
8J73vGf4/Oc/vya0v31ZAvXb3/724XWvg/u3Ij/4gz843HDDDSdNoJ6uIYEa8jXE7V5e9KIXDXv3
7l1FoN6zZ8/wa7/2a8PHP/7xPnTUT5ZA/Za3vGV429veNubNUrgssrhWs1yxBYEgEATWjcC2bdu4
PZ8/RO+s8UgNea3MjPpWrgnftNW3SyPPFTs2vm1iNq7Ulmc+s7xSfOahI+ZZi3j6sLa/PbBjY22e
33b1a3Od6W8N8u3V1ylzi8Hvfs3Hh2DHzz7q28cWTw3rqJPnKHWMQycfMdb1snWOnxTaDLEOG+eg
iIdgRnoAtHkQ/B7GGjwUyMKIPuOZ8fc1jYMdr7gH1sSy9gViLdbIdCw9qaW9j7e/ZGZqYCOWHHXn
Mo0EaPHBx3BNDPmIdT0LdmLpQzw6/wzrWfW/9rhxaYnX03wSAvV8uCUrCASBIBAEgkAQCAJBIAgE
gTMXAQjEjJFoXG+5Rh37ZD0SjWs96qN/mbTcE5TX5Bk7ye/96NRcFOlJxL3eCMv1DrURjesda79W
H0nL5xRp+XFiV9Wh3iS+2Sf6omCSfQSBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgsHEEzhYC
NSS7V77ylcMFF1zQQPvMZz4zMCRVbwaB+g1veMPw+7//+8MLXvCC4Z/+0386QFa++OKLGwn7h3/4
h2feQD1NfmZzX0gCNaTpl7/85QO3UX/rt35r07/4i7942LVr1/DGN75x+OQnP3nSN1D/xm/8xvDm
N795eNWrXjX8i3/xL2a+OM+pD6whs0eCQBAIApuFwCWXXPL6qnVnjYdqwDnlGz54nvVtX+N6apMb
WuYm3NQMF9SboPGTiw2dPEZvx1/fmI12dKSPJ4ca9jef2fhSRz9x7NcacFfRXasTQ21qYEP6ev1+
6c9e5cHiQ4g337MyUxshjhwE3d6s7e9esVHL2qzXLf0B1p08SWBDbsQZF3pf3wPoc+PEcFDjzREY
wOxjBdaHMN1f0MizlrXNYa0uoMyIMz2pod8a2H2RYMNvPWPL1OzkI8bRs9fxEYPdWOvZX3+fR/9z
a1xZ/4uJPceOCU9Z1ikhUK8TsIQHgSAQBIJAEAgCQSAIBIEgcEoQ4IZjScMjkbjerktcdm7E5ol9
1F3XTcur4urdY6tV/jF2Ymtr9a4P9kW5bbm9Cax3iONNymVopOSy9YTi0TbxN8Lyqthl4vIKkbny
u9hWv48vfTq2/g9kkSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgsCmI3C2EKgB7rLLLhu+
5mu+Ztgy+cD18OHDAzciIxslUN91113DC1/4wlYPUnIR+lpdfnArM7czL+IN1D/wAz/Qbqn+3u/9
3nZ7tpsGG27o5ibtE91A/YlPfGJ46lOfakojiv/jf/yPh5e85CXDe9/73tEeJQgEgSBwqhDgH2XU
P1S5rurfUYMbqOGBOuobyMYV5Vu2+gZy5KtihxOKDSHeGNbYIYT238657uuYT45+ain2h49qHjXt
35NO7c+MnUHetGB3v32+Nmfy6EkNa2KzD3b3is0YZ+uwVvSx7nX9c819g7kKTJKmD4QZgKjP4EAM
HnwPXC1HOzo+gbemQOFHrLO8Wv5pLCvzibM/dh4INzrbvz87+2JNDDri3J9j2bPis4Y9WaMzk2fd
UtvaG63xm8tMHHn211amdl7jnYk/r8aVdQP1ntxADUyRIBAEgkAQCAJBIAgEgSAQBNaLAG+alupd
iITlaQLz9PpIvZ3uCcqHag3h+EgRlw+1ebXfuuTpJ34lb8W+5Du19R7iFMSf6IblRlqud26SjyUx
jwRnfKP/+DIJud7FjQTniW+anKx/ui/rSBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQeBM
RuBsIFBv3759OH78+AC/58UvfvFw9dVXr3mkGyVQP/TQQ41wTI///b//99jjU5/6VLvZ+e67715I
AvVP/uRPDr/wC7/Qbo1+xzveMeLyEz/xE8Mv/uIvtvU0gRoS+sc+9rHhN3/zN4dv/uZvHnMOHTo0
PPe5zx0++9nPDj/7sz87fOd3fufo+5mf+Znhl37pl4av//qvH3791399tEcJAkEgCGwEgQmB+rVV
4+4aD9eob0WbyF3lG9D6drRxQLExsNW3hiOPFb9r/AgzdoRvDNEZ8EaZrVXqWA+d/n7DyEwvxqx4
e03vhzx82BHX1ObiX/eFDyGOfSHEcBaEmTrT8djcY6ktxljW+shDtz954lTq5ojNNlrNOmzSh+Sh
3HjvIx4/gp01QGpH9wFQz9xSm72vjc1a5EBSBjzz0CVO+wDp40MrdQQZHTt13Je1yUWw278ZJmtq
4rMXMdjsj48a1MZnf2IYivu2v3HkGkc+N1BfUQTqm0KgFrrMQSAIBIEgEASCQBAIAkHg9EDgaL0r
6InIPdF41OudxCyi8Yq/bluut6DUORGx+UT+3s4bj0UQLtxYIR8v69OEYonLIwHZnHqHtOybkJZZ
T2wzY6d9Y369WSvdN16LgEv2EASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEDiTETgbCNQ7
d+5sN0Lfc889w9atWxuJ98ILL1z1WDdKoKbYt33btw233HLLsGvXruGrvuqrhiNHjgx//Md/PDzp
SU8a7r333oUkUH/kIx8ZvvEbv3E4duxYu0Ebcvlf/dVfDZ/85Ce51XW477771txA7a3V4PqP/tE/
Gri9+qu/+qsbnpwXHDj7l33ZlzUiOTdV/+Vf/uUAkf1//a//NXzpl37pKuyzCAJBIAhsBIG68f/6
yt9b46EafvUKZ5QhB1TOKGvsfB2pn7m+oWyx6PBFJUKTp98a+BC/0sSOMPf9rE9tc4nDTq7x+shF
h6cqEZo18diY+71RFyGmr2c/7Ag+asuD1Y7N0deyl3nEWJMa7t8c1nMLTTYqbEoQqKXuxq3vmrkX
4z2wD4C62oxnTbw+dWsQhy44zn2e/bEhrNEFGQI0LwD2oQ2/g3j7q9uTGPeEjxoIdmNdY1PQxVEC
uP3Jw8/wPMSeX+Pp+/bt28O/UptXbr311pZ67bXXPm4JfrnglyyF/43I/fff7zJzEAgCQSAIBIEg
EASCQBBYaAT4rbkRjeu3/UY6rrdSEpR7QvGol1+dmZuT27puW26665p7AvMYO/GPeZM4eh6b/1f4
Tce4v/141U3K9Q6k96lLTGZeIScfH2MhMo/2ijEeW6vf1e19uW150x9tCgaBIBAEgkAQCAJBIAgE
gSAQBIJAEAgCQSAIBIEgEAQWHoGzhUB95ZVXDgcOHBg+97nPDZdeeunwtV/7tcMWbhaZyGYQqB98
8MHhTW960/D+979/OHz4cKv8Dd/wDcMb3vCG4TWvec3wute9bnj729/e7G95y1uGt73tbcMv//Iv
N2K1+2D+oR/6oeGd73zncNNNNw2veMUrmosbnf/Tf/pPw1vf+tbhu77ru5rtRDW4MZrzvfKVrxxu
uOGGFusPSM133nnnUHynAd4R8p73vGf4kR/5kWZjfdlllw3cTP17v/d7wx/+4R+226avuOIKXE0g
ov/oj/7o8Ad/8AftVu+f/umfHr77u79b9/C+971v+NVf/dXhz/7szwZupYY4fc0117S9P+95zxvj
ogSBIBAENopAdwP13qr1SI36RrhxPI9M5pqajW+H/YbYGNZwTRFnbHBX+QsCm39RoLtmnq5XphZL
bbil1KhvZ5v08dSzP86+Zgue+Imjh/3xmUdOL9iJsza8V/qzD22lNmFtT3X2qY2gvo9nwE4Ma/bV
y/S69z2uziY2KtbwQBycTU1vuD8osR60zxd0863FHs3BRq0e5N4PAZl8hoCRy7D+dK1ytdh+z8Ty
MH041GLP2OyPTi0EG7H0R9Dx29O9MDOoxVkYCLP9Wdu/z7c++fwW8az9+/fv4V9hzSshUM+LXPKC
QBAIAkEgCASBIBAEThaBpfp1VSJyT2A+IdG4ftOHdDySm0s/LGm5fLPyjKX+qPc1yr5Ua365XgTx
ZmXnRiSu3/IlFDM3EnK929DXCMi1XiEnF2l54p+Otc5KbNXparX6k/Ui4JE9BIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBIAgEgSAQBILA2YnA2USght9zxx13NNLvi170ouG5z33u+NA3g0BtMcjTd911
1/BFX/RFwwUXXKB54eeDBw824vfll19e34VAjXps4ZwPP/zwcNFFF60io5v16KOPDnffffcAeR0S
dSQIBIEgsNkI8A9hdu/ezQ3Ud9aQQM1X0hA669vpkSfq19T1rXWz1Te1A//SRc5oqU3wayOfOOuh
Y1Mgacs9Jab3s7Y/e7G/NmLN11emliNnljz740OwIdjdazNMbNN7Zn/u2f25Z/cynS/nVr/7I989
9bp+66xrptBmiHWY3RAzf5u5aXT8gjQLHPzYrVFqq8FMnekagOWLihj3gU4NezDjI9/+5Krj8+H6
ALD1w/P0Nfjb1f7WL1PLox5+etCfPIbnsD82cj0zdsTevZ86nokbqK+qXx5+a2mJLcwnIVDPh1uy
gkAQCAJBIAgEgSCw6Ahww/EaonH92sjNy9pPRDTWD2nZm5qxmbviX7ZN37Dcx+JblNuW2y/s9du1
hOSeUHwiIvNIQK5k88455/iwrdajj5oTf7N1sSciMneXSiz6Syn7CwJBIAgEgSAQBIJAEAgCQSAI
BIEgEASCQBAIAkEgCASBIHDKEDgTCdTPec5zhp07dw4QeG+77bbhSU960uANyhB+IfVu3bp1uPrq
q0fi79/8zd80YvVVV13VfAL+0Y9+tKmvfvWrNWUOAkEgCASBBUFgcgP1dbWdvTUerAEHtL4tbhxR
dDmhzHJVS22cU2xwRQ/VgCNqLPxS47GTh1AXkSyqzzzi0K2FziCPGT8+xBr0h8htjrHEy3Pt8/CT
yyyP1R72x45tWqxHLuRtZvqjuy9s5hrPjN1BH/S+fy3nEwptVNh8v0k3Tm3t9Oh1D+xhPBxx6D2o
HNQHZA3jicPnQ7KnOX08Dw47Qg6xfZ49+pl81ua5tn+5xv59Tx4sMYix9CKGtfO0zfNUSKtLP2IZ
CH5zIVBfUf9Liz3Hj2OeT0Kgng+3ZAWBIBAEgkAQCAJBYBYC/FbGLccSjCUoSyhuty93fu3Guz4y
IS67XutfITM38rI16zfeQ6XTh1ufF0XWkJPrN2KIxSMBebJutk5v5OOKg5wMabmtp/3Nt1xPP3W3
UX8qlnUkCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBBYHATOJAL1fffdN3zmM59Z
A+6ll146XHzxxaOdm5Y/+9nPjmuV8847b3ja057mss0hUK+CI4sgEASCwEIhsG3bNm7Bf11tam8N
bqDmW3poA35bL9mYb6qx1bf5oxDnwO632eTUt91NtJNrLXKIZe7r2aPMzcdsLX3uCx9CDcQ+xKHT
X50ZkehMTr8/fMQwqM/sHq1LPLZpfx/X95Qva3yljpii23/6PPjWJR5uXUlTwR5eYHwo1tbeA+PB
nTmIh5oqPwKKXZB6YE7UXxDpoU4N90Et90Y9YtxPqS3OM7gmh2F/extHjf6h2wO7MdiQ3kc9SNf2
7+uax0wdBvEQqK/cv3//Hv4XH/NKCNTzIpe8IBAEgkAQCAJBYJEQOFq/DrWbkuvX//GW5Pqt7ESE
ZewSjY0/crRuW57kT+dJhO7zIC5r7/P4hW4RhBuOvRVZIvI0oVj/LCLzKtJy/eb6mLHlf6za/kK7
CLhkD0EgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCwOIgcCYRqEGVG6a5eVo599xz
B8a0TMdt3759OP/88+tCGWlFyxkhUE8jl3UQCAJBYHEQmNxAfX3t6PYa/OEPkZMBbaAf2vzqHI6p
1AJ82J0hKuPDZo1SmxCDOFuDevwFgl1bn6vdv2SIV4izP35I19jQrdHrZW5298ea+sS4L2yKNVgT
Qx49mBVr4ceH6Hcv2NCNdcY2t9hk7gKV6EasAcHXQ7t5AcInwBKGfTisBZCagl5qq0cuL47tNawn
IKw9i3XL1PKsgx+f/anjPsnfUYMXBnEM+iHEIOTSnzj7l9piXdsDu3uzPzM1fPHZn1jyd0581CDW
/qU2ce/EEX9BjStCoG7Y5EcQCAJBIAgEgSDwBCDALzuNaFy/XTXycv2WI6H4ZIjGs4jLPRF5xV/1
7TGZp9cQqBdFerJyuwW5frOTfIyvkZXrNz7j2jxZr/iWb1tmva18zU6drtZK7OpaEplz2/KivCKy
jyAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJB4EQInK4E6ptvvnk4evTo8PznP3/Y
uRMqz+bLoUOHhk984hPD1q1bh1e96lWb3yAVg0AQCAJBYEMIbKlbzXbv3s0N1LfXgFsKN1X2AjxQ
dEd92z8crtFzSKFd6C915LtqYyaPutRDpw92+KXkw0dlwEclTt6q/e1hrv3x49NfahPqUl87eawR
fPTHRx1meuO3f6njXq3BbK5x1MWOkM9+EM/lHuyPHx9nRPq4ZcscP206R+qYYo3+QB6M2QOQgI7o
J9d8DuyhjNGHHaDJQyfWftZ0TQ5xzH1Nc8s8+okxH786MYg1edg+EHVjndkX4p6XV6vPRIx+ZoZ5
xFvLGNf2JIYXEHuRQH1TbqAGlkgQCAJBIAgEgbMHgaX6TWAVgbh+PZTAvMpevz21dfm5LVlCcotd
qtuWT+BvsdaczNSZvnF5qfL5BWoRpCcNryIm129Tyzcp1zzR9a8lJxdpuX4LG8nKpRtr7uibrtXF
LgIe2UMQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAETgcETlcC9Yc+9KHh3nvv
HS688MLh8ssvH84777xNhZsbqu+5557hc5/73HDppZcOL3vZyza1fooFgSAQBILAxhHobqC+s6o9
VAPeZzEpGpUCjifCXAyDkVyNTgwC5ULaBbnEsnYmDn5pMTaanZjezxrRZg1s9sdnf3XqWotYpF+b
a3/WDOpQg4HYHx1/X4MY1tg5A7WweR5rWcN1hYw9iMdODcTYvr/6csQ6f1pwnWmrwqnBJqylrt21
IGAXBGM8JHYPJPgCYx1yHMb6cMrV8snp81z7kPq9kGMss0IsxGV6KejE2F87sdTEzp7UXZODzX1S
1xehNcvUajNjs3+/J+vgP7/GFQcOHLiRf9E2r9x6660t9dprr33cEkeOHBl27do1xu3YsWO4//77
x3WUIBAEgkAQCAJnMgLH6m94ScQSj9vty/XX8Bp72byJeS2BecsymbkjKBs7TVBeJjpPSNBVU2Iz
e1kEab/E1G8nI8m4DOoSml2vISD3secsE5dPJnZNHfpXrfqHnZEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBIAgEgSAQBIJAEAgCQSAIBIHTDIHTlUD9wAMPDB/84AfbLdSnEnJun375y1++iq9zKvuldhAI
AkEgCJw8AhMCNTdQ31VjmkAN6Rm+JwIXlNELzA8G5E98sB5cy4DAbhy1qImgcxM0ceb2c5lbLHHG
6MenUBt771M3jxh0BntF4MKyF2PoYx7xCLHEIZ7BOtbUTi41kF7XTx5+aqL3/YmZWyi2GdJvvt9s
b0d3sxzAw9ifgwsYNRjEa0enhgCRLxHZPEEnTr3UVqc/K/HUsY8x5GlDR+yDjs19YOc2aPuQ516p
zwsEP2IOOnHs2/72wWd/Zu3EEY94Tnz8/z+uOnjw4A1LS/53Qcj6JATq9eGV6CAQBIJAEPjCIsBf
oNxyLEF5DdG4/gqcSTqe5Jh3uL9tuXwSkVf81aO327PqS5bm1udFkWlyMutt9dtBux259J6IPB0L
2Rj/OZCWa3Ztzqx46rb6M2ovCibZRxAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EASCwOmHwOlKoAbpBx98cLjtttvaTdHcGL2Zwo3W3Gz97Gc/e3jyk5+8maVTKwgEgSAQBDYJgQmB
+roqd2cNCdQ9uwQdcmexLka+aDFSGocUAjS80MM14IU2ikzNxcwY/eQh1MBOPbmo2lgz8BGDzoxg
o5/9me1PPv3Zh/2NJd99l9rqMNuLeOtgQ+yPTr57oY713Qcx5NNfvzZiGNP9rUfcrP7Y1y0U3aiw
2R50AWH2wAJAL/3mGYOduP4hE4+/B0sbM2LtWWexNkD7gOxvnj2p5Z7cCzUZ5EKG5qGwJg5Btw42
1ggzNezLzLr3m2cMPvuX2upqs78vUOL4f39cuW/fvpuOH/dIpK1PQqBeH16JDgJBIAicLQgcrb95
xtuP62+fExKN62/G6bgVIvKWljftb+Rla1b+odK5yXkVEbrzz/+33OY+LW447snGs8jK+qd9jYBc
+SNpuf4mP1HsTCIzvcmpQS1+QYgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJB
IAgEgdMdgdOZQH26Y5/9B4EgEASCwMYQmBCoX19Vbq/x+RrQOYoBs4arig2+KGRleaRwQhWpMczY
nanH2lk7MzbnYtnM1PXbn1kbM2Kd5dWyH59x9Gfv9EDcd7FXVsX08ej4FXLhydJ/Wvo6+MhF6IPP
/vbVb55rctYtHH6j4iapg46wKYY+QZY0bEzvRzfHB0YcwuF7ojE24gGWmvjJRbeXa2qZy4xdsSc5
1mE2p68FgZo+5CDMrM3DRn1yEHySru3LjBhjLdb4rOcLxjj2TC3PVOpwQY2nhUANFJEgEASCwJmB
AH/IQySGcLyGsDxl9yZm4tYSlFcTl2cSlGfmLfelHgTqRZGROFx/K6pLPpZQ3K9bTMU2EnP9Tbvs
W75teYXIvLrW6tjOV/neyMwcCQJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQ
CAJBYPMQCIF687BMpSAQBIJAEPjCIrClbuLbvXv366rr3hqP1oD3iUCUhhsKFQgGDnZ4pvqxI66J
YUznsC6GT+Ob6me2Ln5rqMNuIcdaxNqfXAQbcdiZsTPYI+La/u6dua/R91Tvc/pa8mPt18dTkz3Z
vz8fPnKwkcOMuHY/y9Z1/qTwRoUabpBNobNRNuZc6mjvH4YxfX4PMnYEGw8VESR81jKfevgFyv59
HXPYq/H6WfcPyjrYyEPQEXKm86lJf8Z0LeJ7u/2ph896rHsca9l60p8YiNTI+TWetn///ncdO0ar
+SQ3UM+HW7KCQBA4sxBYqj9GIS7PIhr39hMRm5fzirRcf1I/FvF5LdF5hbBM3lLl8xfAIkhPGh5J
y/W3IvZtzDUkKutvtvK73npOkZZrPSuWGHuM8ZPYVr+rswh4ZA9BIAgEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAkEgCASBIBAEgkAQCAJBIAhsPgIhUG8+pqkYBIJAEAgCXxgEtm3bNlx00UXXVbe9NbiB
Wo4nsxQgyJ3Fkhlvn0bHxyAOKZZM45uaz1qdfAmi2CVH48eODbEe9bHbn9n+pY7cWnR72J88Yl07
E2sd+suDtT9x9tdHjvnYyEP046O//ci3PzZ92BTt1iBnQ8ImNkOow+Y8BGt06+MTLOwMbPgZ+BiQ
gz14qU36WuQh2gSCdd9fnRkhzrr2x2YevbFDXkbv91bLJtYkx/7Gs6YeQr77wo+4dj/azCMHsZ57
sxc+c93buWV71sGDB29YWvK1Rdj6JATq9eGV6CAQBDYPgWP1p+6R+pN51Q3K9cdZIxl39mlC8tr1
lrV1JvnUf+ybmpf7s5dFEP7Qn0U2XktMrr9YKriRkOtvBXWJyOdMiMuu9c+q3WpMarX4iV7/SC4S
BIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgfXkZKIAAEAASURBVCAQBIJAEDil
CIRAfUrhTfEgEASCQBA4hQhMbqB+fbW4vcZDNeB9cvs0rBt5qszyQ5llKRWraVU8Ofghg6Lj79k7
rBFiGPj048NGf/LhmNq/1OZjnrYZby389rUHedRzX9iJk8da6rgn6pGPT7EnPdARbcbjc8/mT/d3
X9Zwz8TNLRTZLPGAHp51v2kPy2ysh2UP2vBzyB5o1vghGPMCs0apLQ4fgxxJy+zD/qU2gPH3ufhZ
I8Sb7wPCTl0EP7V5IVjDnsz4ySOGNcN9l9pyrE8sQn/3S039+MhFjGWWYE4sN1BfWQTqG0OgLiQi
QSAInDQCkpbbXH8KSUhuROP6E24V6bjzN6LzxH94afm25T623dQ8+tcSofG3GlWTPMaiyPRNyKvW
9ae5ROTHJjIv37bcx07fpHwyROZFwST7CAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAicagRCoD7VCKd+EAgCQSAInCoEuhuo76wej9SADQVvFB4oOjPiDO/zcA24oPJD
JVyXqeX0vmJbtXrUws6aGbFHz1M1jtr2dz/kwFW1P2vEHujUZI/yXvW5tr49WaMjzKzNp5ZnNJ/+
ntc8a7C2f6lN9JHPufEzE4uN9YbETWykyPSG3Cg10dmoAAAOoAqSh2YmVgA9uORiDupe1Y0nBh89
yGMtMPYpUxN89sdgHrN7I4Y61Iew7P5ZI56FNX3sj8+1Oebjo4e1mRFsiD72ho869i+19WTdx19Q
66ft27fvXceP024+yQ3U8+GWrCCwXgS44XgmQbn+q19143KtIRb3ROOVG5SLtDzDb2zzTeqNcX2t
Se7C3LZcf6JJKG63INefcv3a25Bn3ZqMbVvlt5uWyZvkzoodCc30m4ptBOey+Yfrep9r4oNAEAgC
QSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQWB+BEKgnh+7ZAaBIBAEgsAT
i8DkBurX1S721ni0huTgYmk1gZMKFxQ+KgLRU501OrQlBnHkFZOp2eWQ9jn46MGMnzzr9T5t8mdd
V/gYby559ieOHGb64mN24KO/da3BbH/zscmFda9lavu2tv2IxeaaeGPsXaZxb+6LPGLnFgpsVNw8
dTi8h2Vmo4iHQe8Ph97nECdoxFrbfRovAMQbQ3z/YIzFjhDHsL997UdNfJCemYnVxmwu8fYvtdnd
Bz7PysOklmIN/Ij97devrWefPpd41ufWuGL//v17jh1ju/NJCNTz4Zas0wMB/kNqtx7Xf40jKXlC
MNa+hmg8IRmvIiUfXb5teRZBeSQ3V49ZfsjR2I/O/5/ppoMNifhENyw3X/lXEZnrT7/RPvrqtmXq
jOvlGPNORGTu+6JHgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJB
4OxFIATqs/fZ5+RBIAgEgdMdga1btw67du26vs5xew1voC421UhALnUkLENlg1OKH9YUOjZYZcwM
c0sdydToxJJjDfmtzOZYUx4qsYisNdbGE4uOrR/mlnncK7q1tLOmr/WY7S8fl1htzAhx9EDsq85s
f/PogRDb18DGut8XtnWLRded2CW4EWu5We39JgHHF4FxlFIXUHLV9QEGui8G1872r5AGjnbzmSEf
298490k8Ph6CNh8IPnRq+LCxIfZhdg/q1tHek6XJxW4+9e3f2+jJGj/iebiB+ooDBw7cdPQoafNJ
CNTz4Zasx0Zgqf4rmSYoSzTGfqhestN+icYr/i2N9DzmVU7TJwToRlYuG/OsG5yJXSo//8EsgkAW
XkM2rv+ysXsLsuTjkZhc/t62dUtHWu581G01qha5bUz0WUTmRcAjewgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEAJ1XgNBIAgEgSBwuiIwuYEaAvUdNSBQF2Nt
lGKuNX4oM1JsrsY97WOgtjmIQYefqqBrY4ZDSr61mPWj60O3v/WMtb/rCm01mBHqIfjtzxod/i/5
xVBrcdYgB12fucS5D3NYE+/aGsyItdTdD2s5tn2u58O/brHpuhO7BDbjgfuDuXE3Swo6AggSgnuA
qMMgVztr8szBhw3xobBGd21vYuyJre/Jw0SoS4w+dGKpZS4+1sbYnzjqsEZ3XWrTybcGNvLdq/3t
49p47cTb317Yzqvx9H379r3r+HHazichUM+H2yJmHauXAbcsrxCQZ5CLJ/6RrFxrCcojEXmpu225
/NqnCcuPtWYviyLThOKRnFz/FY2++q8OovIssvGyrYjLfXwfO8nta/W3LJu3pXIiQSAIBIEgEASC
QBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCwAoCIVCvYBEtCASBIBAETi8E
JgTqf1a7vqvGozVgzTHgfkpUZg1zTHIxPoSZgY9RTL2Ry6qPXPik+KzDbK1ShyM1yCcOH2LM8mql
vzxUY+hDnv1ZG0MNhnWNxcZ+iEPoT4xx1DJGHZ851i3TyMklzjNTlxjWiHWxoSPuRb0Z5/lB442K
G7SOh7Y2mxVUZ2I9NPnoAKQNorAHxo+vr4Pf+On+rpkR8oxnZo3gt6Z9sdOXOIT96sPuw7EeNexH
HMO+6vZ3ps60jzV2hJmbqhH6uU/s7ot5Z41n7N+/f8+xYx6pLOuUEKjXCdiM8EZarlfjTKJx/VGF
X8Kyc7OVbyQhHy3SsrHYK6cRobVN6o95E7893cOM7T0hpp5A3OuNZFyvdsnGjZzcrfXPIi0/duyk
5lQtekeCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBxUQg
BOrFfC7ZVRAIAkEgCDw+Alu3bh127drFDdR7azxYA45nMf5GvqzsNWzF+GtcUGZ4oRKfyelHLUeO
K3bIodTp87Ej+tDxY2eGX6qPXPvT1/7Y3J/9y9Rs5tqfPM9FPkKuce7PePqjy6Ulh1jqMGPHRh6D
WGV6bZ77Zo0Qp94M8/ygyEbFDXtYDuPh1e3Duo9H92Dso49jjVhL8Dg0cfSzHjUkF5fagPEhmM+M
2J966AJsb/3Mvd8XlT09LzH0h/SMjhBjffs3R/0wr/eja7cGM8NanqdMzX5BzVccOHBgz9GjtJ9P
TlcCNTccN/Jw/WcJedhblHu99/fE5TG2bloe9a7GSEqu2qNefnVnCM70W5TblnmxrCIm1yvK24+x
Qybexox92jeu66blUZ8da60WNxVrffYSCQJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASB
IBAEgkAQCAJBIAgEgSAQBILAYyEQAvVjoRNfEAgCQSAILDICkxuoX1t7vLvGwzXgesJHZaAzimHY
+J7FtGs6a8V4bHBI+zXxfR195GKHoseA2EwsQsz0MNZ69ifXWPtbw7X9iVU3hnr2Z+8I9RBndGoR
Sww1rIPNOGx9Ddb6iXGvpY6CzX2NxvUqFNioWMPDTG+c+sag4wcUbOSw5sCumR36mQUJHb8goSPY
GdNEY3zuiVj7a/PBuA9m48jt6/uQsLkf/cQi9EfYi/HURIjt+7lfa3km4s1xNpYajCfVeOYXkkC9
tLQ0PPOZz6y2dfjazfbtO4b/9/98eubNyRKW203K9bQPF1m5Jx7rh4A86vWf8qFaS0yW3Nz7AWFR
ZUs9lZ58vIZoXE9SQvMsEvOy7/gKwXkSPzN22lfr3La8qK+M7CsIBIEgEASCQBAIAkEgCASBIBAE
gkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBCYhcBb/vlVw8OPHm6uC4sJc/vttw/btkm9mZWx
bLvllluacs0115w46CQ8Xjz40pe+9CSiExIEgkAQCAJBYAWBc4rYd/HFF3MD9e01HqkBL7anOMIH
RZjxFcuv6TWNxOc+Bt0Y7cRS0wF3FNI0go01tZ1LbTozNbAzEyN3tdRxP+6XGHRjtBNrDXX72d8+
2olnWIOZGGqju+asinZjrIm/r0WOfcjZkFB4o+KGqeWm2Zhr6qP3h8XWb15wsBvLIbFzszMPvO9j
fWNdE08f1sysEXRiGdOCjTiJ18SaSx3s7KX3289Y+zlX+KpexrmHfh/24pzmc1b2xBq7/UsdcTi/
9Gfs27fvxuPHCZtP/EVwvuxkBYEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAI
BIEgEASCQBAIAkEgCASBJwaBJ5JAff/ff274v7d+arjjtnuGhx/m4tHNk/POO294xrMvH553zXOG
iy+7cPMKp1IQCAJBIAhsGgITAvV1VfD2GodqyPmEHwrnFd4nXNAjNeSJlroqDvKnBFDiEXmvrvFT
01hmY9Dto41e9of3an9iEePksfZ2bPiZ7W9cmca9msNMvJxXYulPrvZp/i8+4hzUQLevtVkjxi2v
ln8a49z7Tlqn8GYJh2YzDOoyA0r/cLAR10t/OPx9vKCSI6jT+dbCTr49mHvyM3UR8z07a/cA4D60
Pp999GepZRNrsMCPkOe+d5ROX/bhw8Rnv1JbLGv2YX/J2uaRY01syHk1rjx48OAeboaeV0Kgnhe5
5AWBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAg8kQg8
UQTqzxx4YPifN35gOHpUOtKpQWHr1q3DN1//NcMlT9l1ahqkahAIAkEgCMyNQHcD9d4qwr+k4S8F
ycrocEIhd8oXVYdjKp/Uv0iIwcYanRnOaL/Gj498xrQQK1kZnf7mW3M6331otwez/ZmpS0/ipkUb
vRjEm08e+3AvzPYsdTwHdnExpu9PXcRey6uVfNfrmqeLrSt5EkwNNu6mmbVxUA9W6qgLpLNxxjAj
+pdXKwB5W7MgOwMSBGPP1delFoAyM9yX+9bHjFhD3TORa39r0keyM7O1yUVXrM3aGGzmW49e9ld3
TS79z63x9P3797/r2DHSI0EgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEg
CASBIBAEgkAQCAJBIAicLAJePPjSl770ZFNa3P985y3DwQP3Dk9+8pOHy5/6xQM3Rm+mcKP1Pfv3
DQ8++ODwRU+5dPjmb792M8unVhAIAkEgCGwCAvwjl127dnkD9aNVUiInPFAGa3XXclyZjWeGTyrZ
uNTmIwY7M/lwSIk1DxtiHHZ5pvbDj+4gVq6r8cz2keNKvHWtRQyxrOnDjJjvvGxd6dmviaHHdE1s
9GPuz0lPYhm93vcv13wiWPNlL2exYQ6lsFHroiNsnIEIKjHoxuIjhnX/QrA+PXhw1mTuwarlKNRg
kMNsHLr96aVeaovDj53+5rCmF4P+iuu+DzpCjoKNWtiMdU1/dEQ/s3Zz7Q9x2h4QqJ91zz333FBz
JAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIF1
IDAvgfo3f/532+3Tz3vuc4edO3aesCP/V/nPP/T54fDhw8PhI3Up6fHjw7bt24ft27cN27dtb/rO
nTsGbjGdlkOHDw3/96//eoCg953/+v+ZdmcdBIJAEAgCTzACHYH6ztoKN1AjcD25hRqeJzozfFA5
oXBasfdrbdjREWPki1oPbqs2aiDE9mIMdvmoxEqctg/cVXVrOFOPHHr1f0nJ7cVu/1JHwW4MRtac
iSH/1/PKnfXMFdL2Qw77cC/0x4bQ0/Ws/i3oZH9Y9GTjZ8W5WWYOJPjayfEg+HtQsWMTIA6Gjk0A
mD1wX9NYZmLsP12/XE2I4QHot0f/orA+PsX9uAft9u1n6xtLvV7shd/+kKJ9AdifOIV9E0uOdfFd
UIMbqG/KDdTAEQkCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEg
EASCQBAIAiePwLwE6ne89d2tyZe98EUzmx0vovT9990/3FcD/bFky5Ytwxdf/sXD+eevvcX6z//i
Yy31u9/8mscqEV8Q+IIicN999w27d+/+gvZMsyCwiAjwj18uvvjif157u73GQ5M9Sh6WEytfdeJu
XFH/YiAG3TX8UMjXirxSahCDn/qIXFNs+PtY+Kb2Z5bHysyaWuqljv3J6+tbk3h0/eTS1z3hM9Y4
fAz2Riw5DGthI1Ybc1+/luO+yEHMUbdHc87zg6abIdZhQx7IQ1PfjeLzEALFjB/SMH5eABKNAQSx
ri+EHWXzhYa/70/9/5+9Mw/3uij7/63syI4IqKC4i5prapm570sqP3dzO2WalfsWj6apuaZmemnm
rkCWmZmZpihumdTPHVeUfRUFAVlFn3kNvL/OORzkfA/wZPW+r2vOzNxzz33PvD4n6I83I/HslT8N
M2zWVF8x9DSEzBh5qY9PfRrmfdTHVF/no45qkR+j1zpz8smnmlpnTk6M+pxF9fFhOjd1iKWtPmHC
hP7z5ulYyWMzARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARNYLIFlJaCeMH5CTJ06LRBH91p31Vi1V7do16ltfml66pTpMS21qZOnx5hh42PGx7Oie/du0aYt
bynWtsYKqGfNmhX3339/vP766zFp0qRYP72Uvfnmm+fWosWiX8yuXf3LP7v99tvjggsuiLPOOiuO
P/74pXrgiRMnxuDBg78wZ48ePWLjjTf+wpglXVyWd2zM2fr27Rs33nhj/PjHP47TTjutMSm8xwT+
YwjwZ3z6xwSHpguNSG1Oamg+Z6eGLlTCYfSxNAxtKGP0ocSjCSUOTSh7FUcvPWoa1hJI42cPTXWI
l9aVvIxVv8yLT/XR6ZaaVOJo5CeGNRl+9rKmdWJUn3XVr6v/JU55yaFY6X+1lpYqcfJRC2NOHuY6
Mz6N07BxpgKN2z1/lyCQi8bBaDL56bkEJp+gykdPPuUgXh8Cv+aCQR7WlYc5pvr07FMO+ct9WqNn
XR8yDfNcZ8VPXZ1DOVSfXrnSsLJX9Yknf919rGP0qp8dC+bkZI/OpXOskHyrjRs3rt/i/qVairOZ
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAkUBJaFgHrq
R1NjwoSJ0bxFs9j78B2j26pdioq1h4/c+1S8+/rIpSqgfuGFF+Lggw9Or19/WLtYmq299trRr1+/
WHPNNRda+3d0/OpXv8pC3nPPPTdOPvnkpXqFP//5z3HkkUd+Yc4DDzwwi4m/MGgJF5flHRd1tKFD
h8YDDzwQm266aeywww61wg466KAYOHBg0N9www211jwxgf82Ak2bNo327dsjoB6Z2szUpGulp6Fr
xdCFogOVzpVeWlJ6xaVh3qf99NKVsqZ9jDHtUy7iqcNc9aVbxY+PufYxxsq59qqnvnKwX7XKPORg
zrrOq/2sYfhZ5xyIp4lXo77G7FNLw4qfMfsxxWo+39uInyRaGqY8HJyLYroEPVYCkE8XYV2XUQ6g
IBbGtKZ4etbLnIrTS9LMdQbGxDLXL4hyMcfqxlJTL0GzVsarvsTM5MBHHHs0Vp9cFQG0+LBG05wY
9mPKq7uoPnWIZx//HKxX+tdO/T75hN8nmwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYQEMJLAsB9bD3hgdanp333ybW2ahXPsqc2XNjxNAxMXHMB9G+Y5tY
sVun6Ny1Yzz+wN+WqoB6zJgxsfPOOwevJ6+77rqx5557xlZbbRXDhg2Lu+++O4YMGRLt2rWL++67
L4tjG8rpyxq3LMXFElCvs8460adPn3oRbLDBBrHHHnvUu7a0nMvyjos6I+LpY445JmpqauLyyy+v
Fcbv1uOPPx677rorL+/WWvPEBP4bCXTu3PmIdO+RqU1PDc0pulZ0nog60XrKJ21ocmXjpWbW9RI0
69LEMmYfrfSzjnZUfsZYGc8aeVVf++kVn4aVdeI4r3KgXWWsucbEkJsc+LAyH2s6F/U5q3Sw+DHi
tV93pSc3Rhx7MOVSLdXXWYkhl3Izr9rKC1S9ecEGDqSDqGeJcZlfF9CaDk4Ml1S89giMfom0T2BL
MOwhn3Kxxj7lotdaGtYaCyg9pp585NC6cuDXLwk+1pVbscmV/ezHFKd7lnHE6LzEKp/qa73MQf1W
qfUcP358/08/JdRmAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAibQUAJLW0A9Z86cGDF8ZLRu0yqOPvVz0e1ffvtkDHtzVK1jLd9k+WjevFnMmjl7qbxAPXv2
7Cxqfe2112LrrbeOP/7xj8HrqDLWjzvuuHjwwQezsPquu+7S0r9tvyzFxRJQ77vvvnHbbbf9yxgt
yzsu6lJfJKBe1B77TeC/kcDyyy8fHTt2PCzdfURqvECNDlQNYTKaTxqaV/yYhM34MPyKYY4fQSg+
meZlHu0nRuuqgU/10aNqHzlVvxSdqj49fhr76hp+nbfcL5969lGz1MLiUx38Ois+1VWvPMxlWmNe
jrXeqL4s0KgECzbVvRBuAJGfxoVoiIFLcGla8TNmTeCVU6BYx5Rn/mz+T8Uy037iVB8/H4QXnVW/
vDvnYk4MY0x9eY/5K5+vKYdqMmdMzz7lTcM814vWrGsvPXHsU335kivfV/HqiW+dWs/0r3r6+wVq
MNlMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMoOEElraA
etbMWTFq1OjouuqK0efY3SsH6X/9AzHlg6mx3HLLRavWrfIL1XNmz6msd+/eLdq0bVOZa/Diyy/l
4XfOOEiuRfZ/+9vfYp999okVV1wxnnzyyejWrdtCsemhxthss81y/RdffDFWWWWVSszw4cPj3nvv
jaeffjrefvvtHLfNNtvEoYceikCwEjd37tw44IADYu21144f/vCHce2118azzz4bs2bNig033DD6
9u0bvMxc1+68884s3kbgvdpqq8WOO+4Ye+21V/Tu3btuaH4h+4knngju1KpVq/jGN76RRd/f/OY3
a8V+kbiY+/zud7/LLHiBG1H59ttvH4cffnggelycVSOg5kXmq666Krbccss477zzFkr93e9+N8aN
GxdXX3115kbAo48+ml9yHjRoUGa30UYbxYEHHpi/YZmgvjtec8018dhjj8VFF10Um2yySRkeF154
YTz//PNBzFprrVVZ43Vy7kQ9fu979eqV95599tnRoUOHHKdvyyvTQ4cOjZVWWinWXHPNaN++ffTr
1y/H3HPPPYH4/sQTT1zo9W1eNm/Id7vjjjvytzn//PPj1VdfrfxerLzyyvn+/F41a4bMzmYCX24C
CwTUh6RTjkltRmqIkzFpV9GQogllroaPP4ToMdY1Jwajx4+hGWVMQzdKr1xpmPPoDzWJpvGzjxq0
+uJVq+552Meazqc5uflXOTpXGmYjjnNhxOgs9OSpG4+PnDLmisWnNfYxVn3F6VzELrGp2JImUh4O
qY+kS+ng5RrxAoWfOReTn7EuSj7tTcPsL3PjUy728Kcn8LSPMT7W9AGpo4+WhhXIjPETq3MpN3sx
/KqfHQvm5GRNtYjBp/qskYPcrKk+MTSZzq36imOv4tjPC9Q90l9YAyygFjr3JmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJtAwAktbQD13ztwYPnzEQi9Qj3p3
XDxy71MxZ/bcLKJGkNy2XZuYPm16TJ06LYmeOy+xgPrGG2/M4uUjjzwyC3UXRWDUqFFZsNuzZ89o
0aJFDhs7dmzstttuQY/IGxH2+++/n9e22GKLuP/++7OQGQcvWSN0RQTdpEmTeO+993L8pEmTcjw5
n3vuubyeHenHqaeeGohmW7ZsGeutt14SmY+KDz74IL3A3TyLthFqyy6//PK47LLL8rRdu3bBq96I
sxEq3nrrrbUExvWJi9mIWHnXXXfN9+E88EY8jp1wwglZeJwnX/CjGgE1d0c0zn0QnyP6lr3zzjtZ
vN21a9csFobZL37xi/jpT3+aQ7p06RIzZsyIjz/+OLPn7jU1Ndoe9d3x+9//fiBkRiC+4447VmIZ
IBB/+OGHs0AbsTwG6x122CEQUSNM5iyjR4/Oa+uss04WVnfq1Cmz3mqrrWLatGkxefLkaN26dXTu
3DnzQxiNXXHFFXHppZcG36k8ZzXfjbvDgDORt02bNlnUz3fGjjrqqCxIzxP/MIEvOYH0v5HD0xFH
pTY9NTSfGJpRmjSg0owyxy9dqeboQTVGLyohNPuIZ105WMOkJcWP0Zf1VL/cS5zqK1552csYnaqE
0MyJx0dfno28GDGchZ4cqsccYw0/ezH58amVuVRL+8qc5ND5tYd5o00QG50gbeRQgkAejXVwfJjm
9KUpXhfWByCvfIpnTrzWNFYO4hgLjvpyn+rjw5gzJpa9CKD5BeAc8rGuRrzqa6yaxDBmnTVyYPgV
qzk+GWP2qL5+6ajPPtZpug+xK6S2avoLv/9nnxFiMwETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETaCiBpS2gpu6w94ZnMeieh+wQq6/z+QvP06fOiOcefSHe
GTI8Hw8ha7duXaNlq5aB9gfhcl2r5gVqiWoRt/LicUON2ttuu2288cYbsd9++2XxMgLq4ekF52OP
PTZefvnl6NOnT9x00005pQTUTL7yla9kIS8vFRN38sknxyuvvBLf+c53KiJoxMW8Mo2ImVeXEW5T
85JLLomf//znsfPOO+cc5EOoXVNTk4XWd999d/DiNA9LDhgwIE477bQs+CaHXriuT1xMboS5vGxM
Ll5kRkQ9ZMiQ/HI257n55ptj//33p+QiTQJqxN31vSrNxnXXXTfatm2bcxx22GHxyCOPxO23315L
5M0df/azn+XXunlxGa68VN20adP4/e9/H1/72teycJlXnc8888xYffXV8wvROlh9d9S3bqiAmhed
+/fvn89FPnggYkdsDZcbbrghDjro81fOH3jggTjmmGMyP4TRpdUnoK72u0lAze88r3LDbubMmcEr
5eeee24Wy/P7yO+hzQS+zASKF6hHpXPOTA3dJxrPuQv61GUfAk+JPBXDHL0oph5fKZ7WXwys05jT
182XXHmN3GhLJYDGX8azX/W1ppzMMdbxUYNepn3kK03xyl1X/8u6TLXoNS41usSVdaSXxU9d5pyr
tLrzcm2xYw6xpKYcuhAfgEPVPXB5UWJ10XK/oGu/cnFG7cFHLj4y43I/ORFAs58mYMTQlL9urrSU
Y8szE8vHxEc8uciPT/UZs4bhI5b6GGPWVVNnoaeRi/PTMHrVZ6765X7lZ3/z1Hqlfx3V/9NPcdtM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAQaSmBZCKin
TJ6SXm+eFCu0bR37HbVLtO80X2CrM40f/X489dDgmDR+chZNd+26UnqNunaMYqsRUG+33Xbx2muv
ZREyguiG2tChQ4NXhxHuPvPMM7VeT0ZkyxoiwREjRuQXp0sBNS9N84Kx7Ne//nWcffbZWfj8hz/8
IbsR6CKE5sXqwYMHZ+EwC+ideBWaV5sllEX4fd9998WVV16ZBbzKS3/66afHbbfdlgW2CLWx+sTF
us+GG24YgwYNqiVMJzc1DjnkkLj++utzjkX9kIB6Uev4f/vb38ZOO+2UQyQ6RpiNQFvG3WHw7LPP
5te3582bFx9++GG+d/v27RUW+BGkw+Stt96qMKnvjtUKqHlRmtedO3TokF+gVlFe9D7jjDOyUB5h
tEx3qampyS9Ny09fn4C62u8mATWC/VtuuaWSnt+J9ddfPxC5w3/rrbeurHlgAl9GAvwjgPR6Oy9Q
j0xNAmr0ngg60YdKJ4oPk7AZzemc1KQZZQ2TJlb7iVM+xuSUIdKW9lQaU60zV31yqb585NJ+rSVX
3iPNLPtUnzUMH4ZfZ82OBT7yaw+xnE9nws9YZ9ZZkiub1qW51brOx7rOVI61viBNdR2JloYpD70O
RM8vgA7NmHUuRl8fHPmVI4XlHPTkqZsDWPqlIob9MnKoBj1r+oVkzF6dhTn5MX0AfGXTfcociKVV
n1jWMOVjnRrUZ42me6g+PuJ1Z/yYapfr5NGdeIF6jYkTJ97Fv7SymYAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJNJzAshBQ8wLymNFj84u6LVu1iO332TrW
WK9HrUN9+uln8dxjL8TLf38j+1dZdeVo3bp1rRgm1Qio995770DQzMvNe+yxx0K5FuXgFePjjz8+
Dj300LjuuusWCuM1Z16VRlyNuFUCasS/7777bi2B8ttvv51fVEYI/MQTT1Ry8coya7w+fcQRR2RB
9SabbFJLzEvwFltsEcOGDYuXXnopevSozezhhx/OLybvs88++ZVn4usTF+s+vBxNrdIQJ19wwQX5
Reynn366XFpoLAE1wvJddtlloXUcvLS91lpr5bU5c+ZkPvTvvPNOfkVbYu66PJQMoTQMP/roo9wQ
dY8dOzZefPHFzIq4+u5YrYBa9WbMmBHPP/98TJ48OdejTr9+/RYSlFcroK72u0lAffHFF+ffPZ2P
vqamJv8jAM61++67l0sem8CXjsCCF6gPSwcbldq01NCASjvKWJpQemlV0zBrTvGhFZ2dGhpRxaIv
VTx+9mHkxSQW1Zr2EcdYuRjT2EfPOmuYclAfIbf2KJZ46VzLfayzl146VtVQffz46prysRfxNj31
Getc+LRX8fT41ajDuKyfpo0zEi2pcfjykDo4ueWnRjnWhXUZXY44xiVULqoPpByKJ441fSTV1J4y
ng+HH2MPseU+1Sh79jPXPs1VPy1V6pc1+bDEYIqlFjHM1df16T4pJOelHrE0jHXtRUDdY9y4cf35
P142EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBhhNY
FgJqqs9/XXlCfDz943yYNdbvGV/bedNo37H2S9P/fOrVGDzo5fwa8Wqr91zo4NUIqM8555y46aab
om/fvnHqqaculGtRjgsvvDCuueaa+J//+Z845ZRTFgqrqZkvaOV16QMOOKAioEbgjNC5NMS/G220
UX5JuRRQI8A+//zz48knn6yEd+nSJX70ox/l149btmyZ866yyipZVJ30UJU4DSTORrCMCBirT1ys
+2hffT2vXtdXo4yVgHrffffNL1+Xa4sa65XsO+64IxC0X3XVVYFI+JJLLonjjjuusq1///757LwY
Xp8tbQE13+Wiiy6KBx98MD7+eP7vZFm37ovc1QioEdRX+90koEawj3C/tJNOOin/IwALqEsqHn9Z
CTRt2jTSPybhl3hUarxAjd4TMSc9JrExmlF86EVlxKnhJwZjD5pVTH72Khd7iKUv86lGcuc1euXS
ms7FGkYOTHWIY0x9jekxCZ3ZU56PNWJo5KfXGZWXeHx118u4sqb0sopPWytMGat+3fuwVpXpclVt
qhOsywuMPopyy1+C0cXVcxFdqk76ClD8glSCWVR9QaSGxuTQOcils5GPGJ0nDXOc7qA5e2iqr9qK
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
+7wYYyU48qtGDEs1GKlTrAEsfamIIV9GDfVgZI989SdXc/aoj+kDwJc/ep+8hm6r1rkYMdVjnx70
Z49H76H+ytU748fUO9+njt6JG6j7z5gx49p33gGBzQRMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMoFoCzSmgRhSNOLpPnz6hTRvuRQxh0qRJgVup11133dCl
S5fkmzlzZkBsnfteeeWVdKN1//79043TKTD+8n4TUF911VXhnHPOCd/+9rfDcccdp9dY48fHH388
TJ8+PWyxxRahZ8+ejc47ZsyYdGP4TjvtFLp27Vq2zy3id955Z/LttddegdvEJ0+eHHbeeef0PaB2
586dy3IqLepl99Zbb4WHH344PP3002HcuHFh4MCB6T04q76Hlfq9H30PPfRQmDNnzkqP/tnPfjbd
+r7SoPfp5plnnhkuu+yycMYZZ4RTTz31ffoWH6xjN9xAPTS+1aT4zI0PGlBpR5lLE8oorWqcJs0r
PrSi/LMFaEQVi75U8fjJw6iLSSyqPeURx1y1mPOQx8g+e5hq0B8ht3IUS7x0rnke++QySseqHuqP
H1/RVI9cxNuM9Geuc+FTruIZ8euhD/O8f1zWZxRqqnH4/JA6OLXlp0c+1wvrZfRyxDHPofKi+oBU
Q/HEsacPST2Vk8fzweHHyCE2z1OPfCSftfK0Vv+4Veqf9+SDJQZTLL2IYa2x6NP7xJBUl37E8mDs
KxcBda+pU6eO0j/nQYDNBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABExg1QSaU0A9YcKEsGjRorDvvvuGTp06peYIaRF9ckspwurWrVuH1157LcyePTtwe/XG
G2+c4kaPHp2E1u93AfX//M//JHHnWWedFU466aRVfwDNEPHyyy+H22+/PWy55ZZh0KBBdVVE8H3F
FVeEE088MYwcObKsBp/VRhttlATuP/vZz8Lw4cPL9p999tmwyy67pFuBX3jhhXTrNN+rPfbYI8U9
8cQToV+/fmm+srPWw45+Rx55ZECAXzR4XHPNNY1uNS/GvZ/Wn/nMZ8LYsWNXeuSc90oDC5sr+2wK
of+15aGHHhoQ8zNeeuml/7VzuPFyAvzARPwBiSOiZ1J8uIEavScaT0ZMYmM0o/jQi8qI04OfGIwc
NKuY/OSqFjnEMub11CO60x6jamlP52IPowamPsQxp7/mjJiEzuTk52OPGB7qM+qMqks8vuJ+Hpf3
lF5W8TG1xJS5+hffh72aTC9XU1IhWC8vMPpQVFv+HIxeXCMvopcqlC8BxS9IOZgV9RdEemhODZ2D
Wjob9YjReeI0xekdtCaHR/3VW3HUyD909cCvGHxYvkc9RNfqn9dVHiN1eIhHQN172rRpo5YuZWkz
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROolsDqFlBz
jkceeST85z//CR/5yEdCr169LKCu9sOpMg7x9Fe+8pUwYsSIcN5551WZVR72xz/+MQwbNixsu+22
gXluqo9vn332Cddee22+nYTXCLCHDBmS5tr805/+lD5zbqKWqVals9YqoObm6U033TQwbrfddolB
796903ftoosuCi+++GL6vnGLObfkfhBMAmr4rbfeehVf6eijj67qxu9i8so+m2Lsf2s9Y8aMcP/9
9ydxfrdu3f5bx3DfjEDDDdTDomt8fBbEByEnDzrQ/JFPWlA0puxj7OHXiFBZOlLViK5kxGAaVYN6
/EbHL1+eK7/+MJDGN4aXehHDPqJrcpmrRj6P7lKOeimXsWiqgZ86vKvE4PgwfOrJHiZW8uNjrliN
+Oo2Nam7QEzUQVQDgS+H0sNLCxB7AizBMHvEshZAagp6nKZ9cvlytI6P6pFHLGu9i+pGV8pTHfbZ
U3/q6Izk829nSPxMLP0wYjBy6U+c+sdpqb8+XOIwnU39GdnTl0/9iaVe24Y9ehOr/nGaTGcnjviO
8ellAXVi419MwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
oCYC74WAmlup77777jBv3rywzjrrhHfeecc3UNf0Ka08uDmEr4iQBw4cmBohdm/Xrl2p6cknn5xu
csax9tprB24q5tZZGTdS33bbbQHRMiLsldnKzlqrgFq1PvnJT4b77ruv7Ezz588PO+ywQ5g0aVK4
5ZZbwq677rqyY71v9iSg/tvf/hY22WSTZj23eFYStzdrIxf7QBHgXxeIYnZuoB4fH7SlaFPRdmLo
QJnrQRO6KD65hhSNqfbjtKR3lY+RPOpKV0of/OhLyUePyoMeVdpYYtVfPahDrvqzz5724zQZdakv
P3msMfaowR51GOnNvvrHaemsqsGoXMVRFz9GPufB9F46g/qzzx7viOVxyzx1/KqmdaSWUlQjfyG9
GKNegATmmPbJVT4vrJdSjPbwA5o85sSqn2pqTQ5xjHlN5UZ3aZ8Y5bOvOTGYavJh6wPRXLEaORem
My9blb8TMdpn5FEe8aqlGK3Vkxi+QJxFAuobfAM1WGwmYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImUD2B90JAzWmmTp0aHnzwwYDYDnEuYuqtttoqbLzxxumw
o0ePDgsWLAj9+/cPrVotlxJxezB28MEHp7GaXxDMjhkzJvz1r38N6667bhLPHnLIISXBKTfYXnjh
henW4pEjRzYqyQ2+nPfnP/952HDDDdP+q6++Gu688870DjDr169f2GKLLcLpp58eunTpUqpRSQT8
2muvpduRP/GJTzS6IRqx8je+8Y108/PZZ59dqsMEUTBnhRtsNt9888B77L///ilu8eLF4aCDDgrc
youomRuJBwwYkG4fvv7668tqrYoJwfvtt194+OGHGwmOP/WpTyUe3E7NbeJw+PSnP12qj5CXd/z3
v/8devToUfJ//vOfD506dQrXXXddqOasObvNNtss8A6PP/54Em0jgD7zzDPTXA347C655JIk2ka8
XTS4PfXUU2HHHXdMn3W+j+Bb35E2bdqELbfcMhx55JFhp512ysPSfPz48eHmm28ODz30ULrVmu8t
cUcccUTo2rVrKV7vyHeGs/3sZz9LPRYuXJi+gwceeGDYbbfdSvH5pJrPh/haBNTf+c530nn5vhx1
1FGldm+//XY49thjAyLzn/zkJ6Fv377N+j3KOfDd5rNB8M13mM+Vz5Gbw4t2zTXXhDvuuCM888wz
oU+fPmHw4MFh3333Dfy+kd10003pBvQTTjgh7L333nKnEYYPPPBA+Pvf/57+jOHmc25Mh1lu9Z4v
r+H5cgLZDdQTo/et+KD7lM4VjSfGiA5U4mrmxGBoVnkwcollrZE4/qOQC6PzfelM5VONmJJqMLKn
/ppTl1jWsnyts6s/ax7qkKM89Y+utJ/XIIY1ebwDtfDpfVRLNbSOIaUexOPXeRSb99ecvJpNBWtO
zBKowSFUS3P5tRYE/IKgGL0kfr2Q4AuM6pCjR7H6cOJWyicnz9OaOPXXl4AcxTLKiEW4TLyMOTHq
Lz+xnB0/Z9Jca3Lw6ZzUVX/VjK5UmxGf+udnUh32O8Sn1/Tp069fsoRSNhMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgWoJrE4BNTdN5zcVI4ZF6CtbHQJq
RKuIQjEExW+++WYSbnbv3j3cc889Sfg8c+bMJOBEOPviiy+W3bb80ksvJXHw+uuvH55++ukk5n79
9dfDoEGDAiLq1q1bB/YmT56cemy00UZJUBxvYE3rXAR80kknJd+ECROSWHybbbZJZ0jOhl8QHVP7
c5/7XEAcKvvlL38Zzj333LREBI7gHOErAvSf/vSnYcSIEYGbvbfffvswd+7c8MYbb4T27dsH3hNR
L0JSWTVMiL3gggvCj370o/D//t//C4hvMT4venCbMyL2U089teI+omHE1blx2zjneeGFF6o6q9gh
eFUtxPZz5sxJZbfbbrtw1113JQY4FN+hQ4eAWBrxfTWm9yQWgTfCXljyXYXVl770pVKZKVOmhD33
3DMwwp53QiyO8Xneeuutpe8PQukNNtgg3eTdtm3bMHbs2CSu53NDtIvQFDE59XKr9vMhpxYB9aOP
PppE8XzP+WGCfv36pbYImC+77LJwwAEHhCuvvLKqz4bEas8pDoig+WGIV155JXHj9x0GG4T67MtO
OeWUcPXVV4ePfOQj6QcduDmc33ecHfG6hO06w3nnnZd+DyifNb8vMD5TPk8+V5jzjvqhA/brOR95
tsoEGgTU3EDNH4pFATWiZ2k/0YLy5IbOlAfxJ3toQrVmjuFXHLWoiTHnJmjilJuP0Z1iiVOM9tmT
URt/vqe58ohhziOhKlpYzqIY+iiPeIxY4jC9g+qopvzkUgPL59onj31qMs/7E1O3Uaw5LD98ftjc
z1yH5QX0MurPiwsYNXiIl585NQSIfAmRlSfoxGkep6lO/q7EU0d9FEOefMwx9WGOT+fAz23Q6kOe
zkp9viDsY8phThznVn/1YU/9GeUnjnhM78le2/j0jz9FdR1/4bKZgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAlUT2B1CqgR9SKCHDhwYDoQ+p677747vPUW
GrvQ7DdQc3vtl7/85STW/N///d/wyU9+Mgkpv/e97yWxLWJnhJvY0KFDk5j5qquuKhNXSlzLzbnk
YcxHjRqV4hDtIgBF4Dls2LAkkr300kvDoYcemmIl6j3rrLNCvQJqbjxGLIyg9//+7/+SeBlB6LXX
Xhu+9a1vpRuD9bnR9Pbbb083XI8YMaLRDde1MOG279133z3d2PyHP/whvc/ll1+exNS8DwJqbqNG
+M7t2BiiV8SvxxxzTPjxj3+cfPolF1DLt7Kzih2xp512Wjj55JOTAPbee+8NX/3qV9NnCQ/d4owg
F3H37Nmzk9AWETo3DnNbNULmSsZ7cRszn+Hvfve7JFznJmZuuz7jjDOSCP3ZZ59NN12/++67YZdd
dgnPPfdc4PZoBLq8E5/P8OHDw7/+9a/whS98IcAIkzCXOaJuaiL8pT6CeL5ba6+9drqNWTd11/L5
UFcCar5zlQTj1Net7sR///vfD7/4xS/SeyD25kbuPfbYIwnbuRVawn9iV/bZ1HLOnAO/B/nBAH6Y
AV78nuCHBvg8JXjmc+SWaYT/fK969+4dYM/3CWb5DxdUElDzXnz3EV8jUIcRf9bccMMNSfDPZ01d
3Xpd6/lgY1sxgQYB9dAYMTE+ElCj95QxR9yJ3lN6UfSmaEgRQKMLXRQfdKFoTCVK1r40pPJTQ1pU
+VjzqD5z8jF89FN/RvUnn/6cQ/0VSz776k8dTL2IVx18mPozJ5+HPeqovs4RXSmf/tqXjxieYn/V
I65Sf/w1G0Wbahw2hy4gjHphAaCX9pWnGPzEAVK5cZpqAFuw5GPEVLvSu6g2ufqA1F956kktnUln
oSYPuYih+VBYE4cxVx18rDFGaqgvI+t8X3mKYU/94zTVlU/99QUlrn18esd/MuMG/tC0mYAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJVE9AQtwdd9yx+qQY
ya2wGGJaGTctI/Tdd9990y2wCKjHjBkT9t577yQoJS5elBjuv//+JJBs7huojz766HDLLbeEa665
Jp1B50JXxA3K3C79z3/+Mwk0JRYdMmRIuOKKKxRaEqgiLt1kk02Snxueuc22S5cu6QZqBXOzLUJf
xLQIOzGJgJsioF6yZEmYNWtWEgV37txZ7QJ+BKnTpk1Ltzoj5sX0LiNGNBZQ18Jk6dKlgZukEfwi
Eub23yOOOCIgYH7ooYeSyBVB8fPPP59u7kbweuyxx6bvAgLz4s3K9QqoEUVz03RuCJUfjLdM//CH
PwzHHXdcaQuxMwJ3hMG5bb755umz4buYm3ggzkX0nRtiY97txBNPTAJ23b7dt2/fdIMzt2HLENBz
TsSjfO+5aTkX5uaieuUgQOdm8F//+tfhsMMOS26dp5rvLAkSUKtmcdx6663T5yU/vx8RxT/zzDPh
5z//eRKNI2C+8cYbk19xjM31Pco58AML/OCC7De/+U04/fTT03uMHj06ubmpm/fiRurHHnusdGs9
30e+63wP9V2vJKAWw/PPPz/9IIF6MXKbOkL5/PdjrefL63nemECDgPrIuDM+Pm/HB70nGtOiVhUf
elHEytKREiOTAJQRv0bqqVbuVw2N6EorzeVTf0b5GDF6aM6auR715+z0wHRuaV0VQ04+Z19W1P/K
z5jXYa2z0Ic9Rvqrr/aVp3UMqd04cFNNh6QOc4xD8WiPPqwlGo7TRvt6IUZ9YMRhvHwuNMZHHGAF
R/XVS2tqKVdC5uhKpp7kqA6jcvJaCKj1oZBMbvHDoT45GHsSXasvI6YYamCs2VM9fWEUx7tQS+8U
p6FjfHpYQA0KmwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAnURmB1C6j/+Mc/hvXXXz8MHjy4dDBuOn7hhRea/QbqbbbZJvznP/9JYuaOHZEVLTduCUY8zY3J
++23XxJ6f/zjH08jwmpur5VgFpEyQteizZs3Lzz66KMBYficOXNSPW4ZPvzww8Mll1ySwptDQJ33
hdO4ceNSP3rSZ8qUKSUhOLErE77WwoRaX/nKV1I9bmomd8CAAelmYES32LnnnptuU/7tb3+bbmVG
qPzaa6+lM3Lrcm71Cqjz279V71e/+lW6ERzBOgLcoiEQvvPOO5PQm88I8S228847B24jR4SLiYeE
9Mm5gl/IQ6yNiPziiy9uFDVo0KB0m/Jf//rXwHcpF+YiQOc26Nz03Tj++OPDD37wg7Sl8yAMXtV3
lgQJqA866KB0i3RenzkiZOrnxg3an/3sZ9N3nR8m+NKXvpTE1HkM8+b6HokD4n++uy1aSP4XkvCe
H2Yo/h7D9+KLL6YfbjjyyCPTe26xxRZlP7DAGSsJqMUQEX2vXr0IKxl//nBT/P777x+4bR6r53wp
0b9UJMDnG28yPyJuTorPgvig+8QQSkubym9I6Vy1jw4U05oYnmIOa7SsfJG0z0i+1qpBLHNiyVEt
YvFLHxunKZ84xVOLhxhMa/XHX6lG3lPzPCevJX1s/i7UJJ5+nFP98/djjxx8xDJiWrNft1G4qUYN
HZBDMddLaaSH/DlIDk9Mnp9/UPgxfHyomCCxp1rKpx77AqX+eR3lcFbFa591/kGpDj7yMOYYOcV8
atKfp1iL+Nyv/tRjT/VY5xzjMvWkPzEIqTH+q9sj/qTJjfqPXvL6FxMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgVUSeC8E1ByCm3F1Ey03KSNsHDhwYNh4
443TGbmNllue+/fvn27z1cERW2Pc3rsyQxTZo0ePdLP1yuLym2h1O61E1RdeeGG64bh4OzGCZQSv
d9xxR3j7bS5YLbfVIaDmRmcEtwiDK1kuAF6R8LUeJtyEfPLJJ4fvfOc74dOf/nQ44IADwlFHHRUu
uOCCdAxuFEaAjsiVOD7XnXbaKYlvi+esV0Cdf0aqifj11FNPTbdKVxJQK47xlVdeCZdddlm6eRhN
GaLvE044oSScRUwdL+zMUyrOuZH6F7/4Rfjud7+b3rUYNGLEiHDrrbcGblVG0CxhLj8wwM3YRbvv
vvuS2B4x8+9///sUX+t3VgLq/Ib0Yp9K65EjRybxfevWrdMPL+Q3myu+ub5H4oCYuXgzOL+XEN0X
BdQI9L/3ve+FP//5zzpOWHfddcM3v/nNdMM7P+CAFQXU+o7zXpU+U0TZiLP5swZhPVbP+VKif6lI
YK211grx+zQ0bk6KD39ASuPJiAYUQ0eKDlW3T0uTyr40qdKOKp+15uTzYPgljmYfPz5M9aSZVX9G
9SdO/Zmrh/rrrFprJFZ16C8drPoTp/7aI0f5+HL9r/Loz3mUr/74tIdPJr966B21X/NI4+Yw6gis
Xo7DqT57uV8w2edhjwdxsF48TpOxr1p6YfkEgnXeX3NGjDjVpQYPPuXRGx/iZebksccjU03583h8
1MPI17moh2mt88inPHIw9dfZ1Is95eps/LsI/eI/7XHdO+/ou0WYzQRMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMYFUE3isBNSK7vffeu3TL7uuvvx54JKpu
qoCa90SMPXPmzHDLLbeE9u3bV3x1RJ0f/ehH094TTzwR9txzzyR+RQS76667JnHp2LFjy273RUDM
jcyIPhEUczNu165dA+JuRNjVCqg/9alPhfvvv7/sXI899lji8rnPfS7cdNNNaQ/RNLcbt23bNp2N
+cc+9rHQpUuXMGLEiPD8889XfQN1rUwmTpwYttxyy8SC9/zlL38ZuGV7r732SmdDo8Vnxm3JCJm5
LfrMM88Mp5xyStl7sfhvCah1EN2mnd8+vOmmm4Z4WWfgVub11ltPoRXH3/3ud+nzhfl5553XKGbf
ffcNjzzySLjnnnvSzdYS5vJdnzRpUunWayVee+214aSTTiq7AbrWz6ceAfXcuXPDLrvsks7EWVb0
ea1IQE1OLecUh1oE1PTA+Fy40XvMmDHhT3/6U/qBCIT6iNixooAaH7d/R/1gusG6e/fuuEr2l7/8
JQwZMiTdgM+N4lhTzlcq7EmJQMMN1EdGx/j4vBUfdJ8IpdF9SqfKKH0oI2sMPWseTw77iEGZs88o
Y40Rw8Oe9tnDRz3ypXVVL/YwnYl5Hq9a7KuvehBLPZ0LP3HSscZp6Uz0J589mXrSgzkmn+LZ05mV
X+yvc6mGzkxc3UaR5jK9oF6edX5ovSyjYvWynEE+9nnJHDRr9hEY8wVTjThNcezxkCPRMudQ/zhN
gNnPc9lnjRGvfH1A+KmLsU9tvgiqoZ6M7JNHDGsenTtOU47qE4vRX+elpvbZIxdTLKME5sRyA3Xv
+Afg9RZQRxI2EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
E6iBwHsloOZI3CjL7bsI7rBFixaVRKbNIaA+7LDDkuiSWghNq7HtttsuCWrvuuuuJBpG5H3dddeV
UidPnhwQPnNrMcLmXKDJ7cTcUrwqATWibgSoCKK5HVm36dLkyiuvTLcq5wJqbt1FtHz88cenm691
GHhxky63YFe6gfpLX/pS+PnPf67wNNbDZNttt023+fbt2zed9+WXXy4TpH/1q18NMN5qq62SiByh
K6Lroq1MQF3prNy4fcYZZ4Rqb6Debbfd0jkRniP2Lpo+n6FDh4Zf/epXaZubs+++++7EHTF8btx+
/J///Cd9d7gJnduT+b7ybrxjbvPnzw+f+MQnwrx588KECRPSZyphLnEI7nfcccc8JZx44onpu4UI
ePjw4Wmv1s+nHgG1vk9HH310Eulzdt5ns802KzufBNSVPptazikO9Qio8wMhpOYzQujODzW0bNmy
ooD6iCOOCPfee2+44YYbwh577JGXSL8ffvCDH6QbxCXCbq7zlTX6EC+yG6gnRgzz4yO9KjpQ5oyY
RnSfi+KDFlT6UAmuoyvl5HsSLVMLP2tGTD1ynariqK3+7Ks/WlX1j9Nk6sGCOM4o3av2tFZ99WTN
HGNkrXxq6R2VT3+9r/JUg7X6x2ky7ZHPe7PPSCw+1k0yHaIpRYoH0kGpyZyDCgBwgCpIemlGYgVQ
Ly5xMS+qs2queGLYowd5rAVGfaIrGXvqj0N5jDobMdShPoJlnZ81pndhTR/1Z09r5SifPXqoNiOG
D9MeZ2OPOuofp6kn6zy+Y1z3iNfv3/juu7SzmYAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJVEvgvRBQt27dOt0kywWJiG4RExetOQTU3JZ87rnnphuSEcly
YzOGCPrAAw8M06dPT7cFI3yVXXjhheGHP/xhEskiSr766qvDfvvtp+3w1ltvJdEyZ//b3/5WOjui
4oMOOii8+uqrqxRQU4ye9L/sssvCIYcckuqz5hZjRLu5gJp34F24OfeKK64oneWcc84JF110UVrn
AmrEo4hIN9lkk3TGUkKc1MPkW9/6Vvjtb3+bygwePDjo5l7V/f3vf5/E3ay5ifvFF19M4lbta6wk
oF7ZWWsVUHOTMjwRfF911VWlm8Xp/9JLLwVEv4ibEalLLK0eiPkfeOCBdLM38c8++2z6DBCpP/74
46Ffv35J4M/txrNnzw5nn312QIgsO+644xIXev/xj39MbglzWZCPSFnfQeZ8RtiDDz4YuAkbq/Xz
qVVAzdmGDRuWvhv05YcDuDUd8fR9991X+gEGzrKyz6aWc4pDtQJqPrsf//jHSax+ySWXlH7A4umn
nw6I5GHJbfFYpRuoEcd/73vfCz179kw3vOuHHPiBB25ORzB+8803p1vdqVHr+cixrZhAww3UfLkn
xWdBfCQORgeKoUlFC4oeFUPoqTlr5mhCeYgjD50ofmlI8xz26MHIPnmql+/JJ/2s1jG8FK9c8tSf
OHIY6cseox726K+6qsGo/srHJy2szhpd6dyqrX7E4tOaeMWod3SVzqZzkUds3UaBppoOTx1eXi/L
yEExvQzz/OWY5znECRqxqq1zKl4AiFcM8fkHo1j8GHE86q++6kdN9hA9MxIrH6NyiVf/OE1+nYM9
vSsfJrVkqsE+pv7ql69VT33yXOJZt4tPr/iH9yj+YLOZgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAnUTqB4W+6qKiBIxBBEyxCrIkBFFNypU6fwxhtvJHEp
Ny8japwyZUpo1apVEjWyn1tzCKgROSMWRaxKv1122SUsWLAgPPLII0kEi4hawmD1RlzN7cVc3ogY
GCEtt03nhuD5/vvvT2JYai5evDhwOy43SXO79KpuoKZWLkpGlNujR48k1IXNjBkzygTUjz32WGK4
dOnSdPs1gnPEpM8//3w646xZs8puoJ44cWLYeuutA/HcnLzrrruG888/P71CPUwQn3NTM4aw9Zhj
jklz/cI78w70q8RUcZUE1Cs7q8TN1d5APW7cuPD5z38+3SDO92mnnXYKiHbHjx8fHnrooSSc5fZw
blbu2LFjOhZnHjFiRPLBfuedd063SCPQ5XM99NBDw6WXXqpXCA8//HD4whe+kES3G264YRLnI17n
u7z++usnQT49MQlz27VrVxKU77DDDoHPi9us6V18t1o/Hwmo+Zzbt29fOmc+4SbmDTbYILz++uuJ
CZ/XnXfeGbbffvv0PeeWdUTip5xySkCELlvZZ1PLOcWhWgH1a6+9ln4P8nt1m222SWeG2S233JJu
Wx85cmS6vZtzVhJQL1myJHz5y19ON4vDhPfkDLwjn+lJJ52UuOs9az2f8jxWJsCf6fEHBYbF3fHx
0Q3UaDvRjkonyhxjzVxaUMVIz8q+cuO0JKZmTiz6VdWQvpVROewTJx2q+hODsVa8tLD48ke5xOus
zFVLftb0VT1G9Zcel1j5GDHi6IGpr+aM6q88emDE5jXwsc7Pha9mU9GaE7MEHUS1dFj580MCR2AV
RynNBZRczbUHDOb6MmitUf1jSIIjv/IZER+rv+J0TuLZ40OQTx8Ie8ypoQ8bH6Y+jDqD5qojfy6W
Jhe/8qmv/rmPnqzZx/Q+/JetV/xpmBv4A9RmAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZQO4HVLaDu3bt3uoH5zTffDAhruXGZm0tlzSGgptbbb7+dxJLc
LowgFKMfIuATTzwxrLUW0q1yQwSM4HbEiBHhvPPOK9+Mq7lz54YTTjgh3diLQBzbZ599wlFHHZUE
t9wsfPHFFyf/5ZdfHr7zne9UFMp+4xvfSEJWzoghriUWEfDuu+8ebrzxxuTnlzvuuCOcfvrpYerU
qcnHjcncTH3rrbcm0S6CXAl3CbjmmmvCL37xi3Tjcrdu3dINzCkx/lIrE9534MCBAdEswuJ+/fqp
VGncY489AreX0/OLX/xiyZ9PODNCdoTfua3orCtiRy43gyP4RYj+7W9/u1QO8S1cuV0ZsawMwTQ3
hP/kJz8JCKVzQ0DLjcVjxowJiLAxBMe8x2mnnVb2vWQPQT6i6kcffTSJshHa8/uFs3CTsywX5nIr
8qmnnlqqD0+E2OQUrZbPB3E8NyuvzPSZHXvssenmZb6nF1xwQSnlueeeS7cxI+iGweabb17aW9Fn
Q0C15+T3yMc+9rHA73nE5rlNmzYt3b7NDy3QW/bCCy+kz5fvlD7HPn36pNuyhw4dqrD0gwGI+hFS
Dx8+vORHO4jQmh904EZ3/mzhs+E2eW7czq2e8+X5npcTaLiBGgH1hPggoNbN0wSiBeUPekaMOdrT
PAYtqJ44LelTmWPEs68RDSn5qsWofebaY67+5GKKVX+t2aOGTHP21Zc95vxHhHzpW1WDHObaUy5x
OodyWBOvtWowYqqluc7DmvcnP8/V+7Ffs6lpzYlZAofRC+cvpoPrsKQwx3gJXgbLAVGHh1z5WZOn
HPbwYfpQWDPXWr2JUU98eU/9jYC6xGiPObHUUi57rBWj/sRRhzVzreM0zclXDXzk66zqrz5aK15+
4tVfvfDxYzQ94zX7y//2EB02EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzCBVRNAHIq9FwJqBJvcUo0wFwEltxjLmktArXqMkyZNCtwGjIC6OQzhJTdWr7fe
eqUbjWuty225CDwRF3fu3HmV6dxOTV8Evi1bSlJVOY1btBE/c4M2t2NXsuZmUqlHNb5qzlpNHcXA
CKE2vAYMGBD69u3bSAit2HxEoN66deuqviP0IB7heqXPIhdQI3DH9Pn17Nkzb7vCeXN+PgiR4cwP
DRTPy7tglfaq+Wya85w5DM7MnxH8HiveUp/HrWyOqJ73QuhuW/0EGgTUh8VOk+PDLbjSkKL9REyM
4UPvKXExexgjD3s86FilZdUeufzhh191GFUrTgM/PUE+cexhilm2Wt5fOlTF0Ic89WetGGrwqK5i
8XEe4jD6E6M4ailGc/aUo7rRVdLkEqd3pi4xrDHVxccc01k0T856fqFxU00HVB29tGpzWEHVSKxe
mnzmAJIPobBemH328jrsK77YX2tGjDzFM7LG2FdN9cVPX+Iwzqs9/PpwVI8a6kccj/pqrv4aqVPc
Y40fY+Smaox+Oid+nYuRHw/qEwXUo+JoMwETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETqIHA6hBQc9sut/5yKyw3/CLm1W3J8+bNC6+++mpo1apV2HjjjUsi
V26gRVjdv3//tKdXePLJJ9P04IMPlsujCayRBCoJqNfIg/pQJtCMBPizvEuXLtxAPSk+c+ODxhNx
M7pP9KLoQjF86F3RgjKyL+EzOfkTlyWNK37VyfPxY9pjzj5+RvSl2uMM6k9f9cen86l/dCWfctWf
PL0X+Ri5imOu/vjoT660tOzhFxdxII+HWFlxrTydmzVGnObJUc8vFGmq6cB6WcFkrbn6sM7jmevF
OEcexxojh1qCx0sTp/qqIXFx3Epg9CEonxEjnjn1mAswc0z7jPm+vlTk4tf7MucdED0zx/L6zBXL
nubqr1j5VYORR/t6H2rg7xifXvEvW6P4yRebCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZhA9QSaU0A9a9as8Prrrzdqzg3Q+W2w3Mo7Z86cRnHt27cPPXr0
KPNbQF2Gw4s1mIAF1Gvwh+OjrTYCDTdQHx4bvBqfefFByIkelYc5D9pS9J7oQ5nzyBSPDz1pviY+
r6M9cvFLX4qwWdpTYoqPYlVP/aVNJV7947R0Zul12SdWZ1EM9fBLWC1/PjKnNrGqpzr4qI3hYx/D
x1r76q9YYjC9P7F1G0WaaqqhAxYPTn3FMGcfKPjIYc1LaM2oR/uMgsScfUFijuHnKQqN2dOZiFV/
+fTB6ByMiiM3r68PCZ/Oo31iMfpjnEXx1MSIzfvpvKqldyJeORoVSw0e/q2JvhZQRwo2EzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE6iRQHMKqGnNDdPcPC1r
165d4ClaMa5169ahQ4cOoWVLyYSWZVhAXSTn9ZpKYMmSJeGnP/0pt/GGr33ta2vqMX0uE2hWAvyZ
HX9Ahhuox8dnfnzQxaLzlKEHxRglJJZPwmetGXn4D4HmcZqMmnrQjpKL4WMtPS4jhg+jDnNG9qRd
jdPSeXReYpgrRn5iVUNz9VN/9ZGfeB7VYCSG2sy1zv+jJ79iVDOGl9UiR33IaZJxyKaaDixIenGt
qc88f1l8+eEFB79ieUn83OwslTo5eX3Fyk88fVgzssaYE8tTNHzESXhNrHKpg5+z5Pvqp1j10xjD
y3opTmfIz6FevKfy8y8hfvWnrnh3iPM+8S9U1/OTDDYTMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMIHqCdQroB49enRAMLrpppuGtm3bVt+whkhu9B07dmxo
1apVGDJkSA2ZDjUBEzABE3gvCDQIqIfGXuPjszA+6FClLUXziu4Tvefi+EgnGqdlccTzYMRj0r1q
rZqKZVQMc/WRj17qj+5V/YnFFCfhae7Hxz6j+isuukpnVQ4j8dK8Ekt/cuUv6n/ZI04PNZirr2qz
xhS3bLXsV8VozPeqnlO4uYyX5jA81GUESv7h4CMut/zl2M/jBZUcQS3mqxZ+8tWDMRc/UxdTvt6d
tc4AcH1oeT7nyN8lLpOpBgv2MfJ07jZxTl/OoQ+TPfWL0xTLmnOov8TayiNHNfFh7ePTO/5ladTS
pSqd/P7FBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABExg
FQTqFVA/+OCDYebMmaFTp05hgw02CO3bI+NpPuOG6ilTpoQ333wzrLPOOmG33XZrvuKuZAImYAIm
0CwEshuoJ8WC8+KDVlRiZeZoQhEPSy+qORpTiT6layUGH2vmjGhG8zX77JHPUzRiJVZmTn/lq2Yx
X+eQXz0Y1Z+RuvQkrmjy0YuHeOWTxzl0Fkb1jNPSe+AXF8Xk/amLqdey1fJ8rWsai8VqSm4IpgYH
16EZ5eNF9WJxWpoLpEbFKYYR0/6y1XJAuq1ZkDUCCYGx3iuvSy2AMvLoXDq39hgx1dBc70Su+qsm
fSR2ZlRtcpnLVJu1YvApX/Xopf6aa00u/fn3PXrGf/bjxnffJc1mAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZQLYF6BdSzZ88ODzzwQLqFutpe9cRx+/Sg
QYNCly5d6kl3jgmYgAmYwGokwJ/R8c9n3UC9ILZCB4oh6ORhrbnW0rgyKp4RPanExnGa9ojBz0g+
GlJilYcPUxx+6UzVj33meoiV1lXxjOojjSvxqqtaxBDLmj6MmPI1LvMu75mviaFHsSY++jHm70lP
Ynnyed4/btVnglVf9rIsDsxLyTio6jLHODgPJqjEMFcse8Swzr8Iqk8PPjjVZMxhxWXJqMFDDqPi
mKs/vTSP0xTHPn76K4c1vXjoL9M678McI0eGj1r4FKs1/Zlj2meUX7nqj3BaPRBQ94s/cXZdixZy
RY/NBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABExglQTq
FVBTeO7cuWHcuHHppmhujG5O40ZrbrYeMGBAWHvttZuztGuZgAmYgAk0E4FMQD0xltR/CNB6cgs1
ok7mjOhBpQlF04o/X8uHnzmmGIlDVQ9tq3zUwIjNTTH4pUclVsJp9UG7qrlqaKQeOfSihkzaXvzq
rz1G/IrRmnfikf5X7yvtrN6ZePpTg1FnoT8+jJ5aV+qfgqr9RUWrja8Up8My8kKCLz85ehH2c6j4
8QkQL8YcnwAw6oXzmoplJEb9i/XjVjJi+PQaBFgAAEAASURBVAC0rx75l0L12ZPpPDqD/Oqbj6qv
WOrlpl7sqz+iaH0B1J84GecmlhzVZa9jfLiB+gbfQA0OmwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAlUT6ApAurquzjSBEzABEzgg0igZcuWoWvXrl+M7zY+
Pm81vKPEw9LESq/asJ20omhCMWKYa40+FPG1TLpSahDDPvUxaU3xsZ/HojdVf0bpWBlZU0vzOC31
Jy+vr5rEM9c+ufTVmdhTrOLY4+FsxJLDo1r4iJWPMa8fl6VzkYMpR3P1SJv1/ELT5jDV4UB6Ib00
9XVQ9vQSAsXIPqJh9vkCSGgMEEx19UVoE336orGf96c+8eTKH6cJNnvqrxhGHoTMGHXpj09jnKY8
+mPqr/PRR72ojzFqnzX15FNP7bOmJkZ/zqL++DCdmz7E8vRduHDhqKVLQWgzARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROoloAF1NWScpwJmIAJmECRQIsW
LUK3bt2OiP4J8VkUHzSfC+ODLlTCYcSdEniiDWWOPpR4NKHEoQklV3GM0qPGaZlAGj85POpDvLSu
1GWu/nldfOqPTjfXpBLHQ31i2JPhJ5c97ROj/uyrf1H/S5zqUkOx0v9qL26V4uSjF8aaOqx1Znya
x2l9pgb1ZS/LEgRq8XAwHpn8jLwEJp+gysdIPdUgXh8Efq0Fgzrsqw5rTP0ZyVMN+fM87TGyrw8y
TtNaZ8VPX51DNdSfUbXitJSr/sRTv5jHPsao/snRsKYmOTqXztEh+vrEfwLken4j2kzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABKonYAF19awcaQImYAIm
UE5grbXWCp07d0ZAPTE+8+MjXSsjD7pWDF0oOlDpXBmlJWVUXJymPOUzSlfKnvKYY8pTLeLpw1r9
pVvFj4+18iQ8zdfK1Uh/1SBfvfI60Z1i2Nd5lc8ehp99zoF4mnw99NecPD1xWvIzJx9TrNbLvHX8
SqHmMNXh4LwoppdgxHIA8ulF2NfLqAZQEAtj2lM8I/t5TcXpJmnWOgNzYlnrC6JarLFiLD11EzR7
ebz6S8xMDXzEkaO5xugqCaDFhz0erYkhH1NdvYv604d48trGp1+8gfp630AdSdhMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMoAYCFlDXAMuhJmACJmACjQh0
7979yOicGJ+34oPmFF0rOk9Ewmg95ZM2NLqScVMz+7oJmn1pYpmTx5P72Uc7Kj9zLI9nj7rqr3xG
xcdpaZ84zqsaaFeZa605MdSmBj4sr8eezkV/ziodLH6MeOXrXRmpjRFHDqZa6qX+Oisx1FJt1jVb
/gI1JzckcCAdRCNbzPP6egHt6eDE8JKKV47A6EukPIHNwZBDPdVijzzVYtRenJbNBZQR00g9amhf
NfDrS4KPfdVWbHQlP/mY4vSeeRwxOi+xqqf+2s9r0L9dfHrPnz9/FEk2EzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCB6glYQF09K0eagAmYgAmUE2jZsmXo
2rXr0OidEB9uoEYHqgdhMppPHjSv+DEJm/Fh+BXDGr+0sKwxrfM6ys/31QOf+qNHVR591J+aMvVn
xM9DXtHw67x5vnwayaNnroXFpz74dVZ86qtRdVjLtMc6n2u/rjFvUFeBhqTiC+EGEPV5eCEexMA5
uLgs+ZmzJ/CqKVDsY6qzbLXsV8WyUj5x6o+fD4QbndU/f3fOxZoY5pjG/D2W7SzfUw31ZM2ckTzV
jdO01o3W7CuXkTjy1F++6Ervq3iNxLePT+94A/Uo30ANJpsJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJVE/AAurqWTnSBEzABEygnECDgPrw6H01PvPigzgZ
k3YVDSmaUNZ68KEVZcTY15oYjBE/hmaUOQ+6UUbVitNUh3xMomnm5NGDp1K8ehXPQx57Op/W1Obi
X50rTpMRx7kwYnQWRuoU4/FRU8Zasfi0Rx5z9VeczkVsk03NmlpIdTikPiS9lA6e7xEvUPhZ82Ly
M9eLUk+5cZr8eW18qkUOImXgKY+5hNP6AOmjDy1OS5CZ46eOzqXa5GL41T85GtbUZE+9iMGn/uxR
g9rsqT8xPDKdW/0VR67iyOcG6l5RQH2DBdRC5/GDQuDll18O5557brjttttC3759wwknnBCOOeaY
Jr/epZdeGn7961+HiRMnhiFDhoSRI0eG/v37N7muC5iACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACbz/CFhA/f77zHxiEzABE1iTCHTv3n1YPM+k+LwVHzSfGJpRHmlA
pRlljR8dqPYZ0YNqD72ohNDkaV812MOkJcWPMeb9VJ/ayiUOP7mK1x65zNGpSgjNmnh8jPnZqIsR
k9dTP/wYe9SWDlZ+fHryWuqlPGJUkxo6v3JY1200aapxKEGgluY6uOprzZib4vXC+gCoK5/iWROv
Pc1VgzjmgqMxz1N/fBhr5oKMAJovAOeQj309xKu/5upJjM7EHjUw/IrVGp+MuThKAK7+5LHPo/ch
tkN8es6bN29UixZ5qehdDbZkyZIwbdq0MGXKlNCxY8ewwQYbhM6dOze509y5c8OMGTPCrFmzQvv2
7cP6668funXrFvjpjHqNs86cOTNMnz49LFq0KKyzzjphvfXWS/Xrrem895bA0KFDw+jRo0tN+Y4/
9dRTYaONNir5ap38+9//Dttvv31Z2qGHHhquvvrqMp8XJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACHw4CFlB/OD5nv6UJmIAJrA4C2Q3Uk2L9+fFBzIvwcXHDGIfk
QwPKgymGNVpTTCO+XDwtYSj7PKwZi/WiK+1RG22pBND483jy1V97qskaYx8fPRhlyqNebopX7aL+
l32ZejFqnmt0icv75CJS+rLmXLkV1/neKuccoqmmGnohPgAOVTxw/qLE6kXzfEFXvmpxRuXgoxYf
MvM8n5oIkMnnETBieFS/WCtupdj8zMTyYeIjnlrUl7BZImv2ML0f/THyiFVPnYVRtTg/D8ao/qzV
P89nn/rkt4lPvwULFox6911Cmt9effXVcOWVV4abbropTJgwIbzzDq+83BA6H3jggeHwww8Pu+yy
y/KNVcxefPHFcNVVV4U77rgjvPTSS42iu3TpEvbaa69Ud88992y0X8mBaPrGG29Motv7778/zJ/P
n0flttVWW4X9998/fPWrX02i6vLdVa8mT54czj777FUHVhHRpk2bwG3ItsYE5syZE3r27Nno+3ba
aaelW6kbZ1TnIf/iiy8uC+Zz4HvODwXYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAEPlwELKD+cH3eflsTMAETaE4CXAoaNZTcQD0xPhJQI+ZE5yl9LKMEnhI2ozld
FB9pRuM0mTSxyidO9ZhTS4ZIW9pTYvJ91upPLfWXj1jlay+6SvpYcnjUnz0MH4ZfZ02OBh/1lUMs
59OZ8TPXmXWW6EqmfWluta/zsa8z5XPtN5SpbaBQc5jqMOpAjAh9dWjm7PNijJXgyK8aMSzVYKRO
sQaw9KUihnwZNdSDkT3y1Z9czdmjPqYPAF/+6H3yGoiZ1V/1qaF67NOD/uTx6D3UHx/xemf8mHrn
+9TRO3EDdf94w/K1iIeb0xYvXhwQm15xxRWh2tr77LNP+NWvfpVupl7RWRBgn3POOeGiiy5KN0Ov
KC7377777uGSSy4JvXr1yt1l8yeffDIcf/zxgRuGqzEE2t///veTkLqaeMX84x//CDvvvLOWTRr5
wzPeHt6kGh/U5KVLl4bNN988vPLKK2WveM0114RDDjmkzHfzzTcHvq8yfqrn4IMPDq1a8duk3K6/
/vpGn/mGG24Y/vWvf4X34hb38tN4ZQImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAIm8N8mYAH1f/sTcH8TMAETeP8SaLiBemh8g0nxmRsfNKDSjjKXJpRRWtU4TZpTfGhF
F8YHjahi0ZcqHr/EodTF0Kti2lMeccxVizmPtKnss4epBv0RcitHseRJ55rnsU8uo3Ss6qH++PEV
TfXIRfDHSH/mOhc+5SqeEb8e+jDP+8dlfUahphqHzw+pg1Nbfnrkc72wXkYvRxzzHCovqg9INRRP
HHv6kNRTOXk8Hxx+jBxi8zz1yEfyWStPa/WPW6X+eU8+WGIwxdKLGNYaiz69TwxJdelHLA/GvnIR
UPeKNy2PYqO57PXXX083P//1r3+tuSTC5LvuuitsueWWjXK5JXv48OHpluhGm6tw9OnTJ/AXVm4l
Lto///nPwC3Vc+fy509txm3Sp59+etVJFlBXjarJgdx8/o1vfCMgpsY22mij8MQTT4TWrfmZhOXW
rl275YuG2ZQpU0LXrl0b+RcuXBi23nrrMG7cuLSHyBpx/pe//OVGsXaYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAl88AlYQP3B/4z9hiZgAiawugistdZaoXPnzkfE
+pPiww3UiN3QeC4TvS0XG6MZxYdeVEacHvzSm6JzRbOKyU+uhMvkEMuY11OP6E57jKqlPZ2LPYwa
mPoQx5z+mjNiEjqTk5+PPWJ4qM+oM6ou8fiK+3lc3lN6WcXH1BJT5upffB/2ajK9XE1JhWC9vMDo
Q1Ft+XMwenGNvIheqlC+BBS/IOVgVtRfEOmhOTV0DmrpbNQjRueJ0xSnd9CaHB71V2/FUSP/0NUD
v2LwYfke9RBdq39eV3mM1OEhHgF17wULFoxCnNwchlh18ODB4dFHH6273LrrrhseeOCBMGDAgLIa
l112WTj55JPLfLUstt9++/Dggw+WpSCI/cQnPhEQzNZrf/jDH8LnPve5qtItoK4KU7MFTZo0Kdx2
222hX79+Ya+99qp4q3QtAmoOxo3qiPwnTpwYDjzwwNCjR49mO68LmYAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJvL8IWED9/vq8fFoTMAETWJMINNxAPSyeaXx8FsQH
XScPgs78kU9aUDSmEn2yh18jQmX28KlGnCYjBtOoGtSTrlW+PJd41tKuSuMbXaVexLCP6FqxqiGt
K2uMUedjrVydC59MNVhThzyJwfFhqqX+8jGSjx/L+yoHX91GkaaaDqI6CHz10jq8ALEnwBIMs0cc
awGkpqDHadonly8HV9CqHnnEsta7qG50pTzVYZ899aeOzkl+m/hI/Ews/TBiMHLpT5z6x2mpP33U
A7/Opv6M1NCXT/2JpV7bhj1qEKv+cZpMZyeO+I7xadYbqC+66KLw7W9/OzUr/tK3b98wbNiwwG3Q
r7zyShJZ/+Uvf0mC1GLsbrvtFu6+++6Se/HixWHTTTcNCGKL9rWvfS0cdthhYeONNw6vvfZaeOyx
x8KZZ54Zpk2bVgwNo0ePTkJabfz2t78NX//617UsjZz1Rz/6UboJm5uIn3nmmXDVVVeF6667rhSj
CTcSV3vbNjcXH3vssUotG2fNmhWee+65Mh+LHXbYIfAHZdHatGmThLxFv9e1EahVQF1bdUebgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAl8kAk0RUDNv5aOloSL/+bN
m9esmNq3bx822GCDdIHh2muv3ay1XcwETMAETKB5CLRo0SJ069aNG6jHxwdtKdpUtJ0YOlDmehAR
LopPriFFY6r9OC3pXeVjJE+CY+b0wY++lHz0qDzoUaWNpbf6q4dy1Z999rQfp8moS335yWONsUd/
9qjDSG/21T9OU2/yVINRuYrTPvHkcx5M76UzqD/77PGOWB63zFPHr2paR2opRTXyF+KFMUa9AGvm
mPbJVT4vrJdSjPbwA1ogiVU/1dSaHOIY85rKje7SPjHKZ19zYjDV5MPWB6K5YjVyRkxnXrYqfydi
tM/IozziVUsxWqsnMXyBOIsE1DfgbKohWOY25/nzuUm+3E477bQwcuTIwJXzuY0ZMyYceeSRYfbs
2bk7ze+5557wmc98Js3//e9/B26QLtoFF1wQEFAXbebMmWHQoEHh5ZdfLtsilhzZoYceGrhBOrd+
/fqFhx9+mKvxc3eaX3zxxYF3KRp/kUVo3RSj5+DBgxuV4C/LRW55EKLxnDl/qPbq1SuFvP3220mo
PmHChHT7Mp/PNttsk6en+YwZM5J4G4H65MmTQ6dOncLmm2+eni5dujSKzx0r689tzdz6/dJLLwUE
4gjTP/7xj6fvSdu26PhXbbwDwvKnn346TJ06Nay33nqhZ8+eYeDAgelZUQW+A8X/ueB/DIosaxFQ
I+TnDLl16NAhdO/ePXc1ms+ZMyd9DrDl90nHjh3TzdUbbbRRYtwoIXOsqXyzI3pqAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAh9aAvUKqNHK8C+0o61YndaqVaukoVmV
/mN1nsG1TcAETMAEKhPIbqCeGCPeig+6T+lc0XhijOhAEf5qrv94oFnlwchln7VG4tCX5sLofF86
U/lUI6akGozsqb/m1CWWtSxf0x9Tf9Y81CFHeeofXWk/r0EMa/J4B2rh0/uolmpoHUNKPYjHr/Mo
Nu+vOXk1mwrWnJglUINDqJbm8mstCPgFQTF6Sfx6IcEXGNUhR49i9eHErZRPTp6nNXHqry8BOYpl
lBGLYph4GXNi1F9+Yjk7fs6kudbk4NM5qav+qhldqTYjPvXPz6Q67HeIT68FCxZc/+67whA9ddqv
f/3rcOqppzbKPv7448OFF17YyC8H4ljE0YhTczvqqKPCpZdemly33XZbOPzww/PtgFAYMSpi30pW
6Ty77757uP3220vh2267bbpduuSIkxNPPDH85Cc/yV2lOWfccMMNw/Tp00s+Jn/+85/DdtttV+ar
dVGvgHrLLbcMzz//fFk7hNB33HFH+O53vxtef/310h6cETTL/vGPf4Rf/vKX6Wbud97RD1Zod9nY
o0ePdKv40UcfXb7RsFpR/4kTJ6Ybx8ePH98ob8CAAeE3v/lNul270WaDg1u9v/nNb4YXXnghLF3K
V7mx7bLLLuGkk04K++yzT6NNbu5+6qmnyvx33XVX+p+C/fffP/ztb39Le7n4XMHc7s3/QGCI+G+9
9dY0v/POO8PBBx+c5vplxx13DPwgQCVDOM53iZvPK/UhZ7PNNgvHHXdcGDFiRKUS6Rb0Sp/vf5tv
xcPaaQImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIfMgL1CqjRb3A5
HLoXLoTjxujmNC6d40LAN998M6yzzjqBfw3eZgImYAImsGYRaBBQcwP15PgUBdQI+qT9REBXFNEh
+uRBR8qetKbSlUZX8iuOWhIJMkewKZ1pcYxbKZY47akHezJq62zEYYpTHjHMeTgbhjiPsyiGPsoj
HiN2mYhv2XvmdTRn5CGXGlg+1z592BebvD8xdRuFm8Pyw+eHzf3MdVheQC+j/ry4gFGDR3DwM6eG
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
lLvTfwzkAmr+AyG/GfuTElDvvPPO4b777is764ABAxLHrl27lvkvvPDCMGzYsDIfE/7Dh5vUsU8r
33Q4/zEBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBpZzAkhZQg/eR
Rx4JY8eOTb+czq+yL2kBNTcSn3TSSek2X271tX0+CXChIfoaLmMs6oM+bU/MhY9o04YOHRrOO++8
suNNmzYt3HPPPeGrX/0qN/mWrS3JySabbBKo/eSTT4YVV1xxSZZy7s8xgYYbqA+KjzgutjmxoftE
KI3uE4GfmgSe9BL+oWfN49nDOkJjxqzTy5hjxNBY0zpr+MjHfjSmqh2HaY2+6FO8crGuuqrBPvLp
XPiJk441DktnIh/7WZOpJjUYY/IpnjWdWfuL9XUu5dCZiavZSNJapgfUwzPPD62HpVesHpYzyMc6
D5mDZs46AmPeYMoRhymONRp7JFrmHKofhwkw6/le1pljxGu/XiD85MVYJzdvBOVQTXrW2UcMc5rO
HYdpj/ITi1Ff5yWn1lljL6ZYegnMieUG6v7xBtzr+eZYS+zqq69OIuRiDj6wtea3krhB+dRTTw2X
X355sdRi59/73vcCgtVK9uCDD6ZvBfGzJ9UYot6///3vYd11161mW8XY1hRQI+7+4x//WLFONU6E
5by2uf3ud79LH0bkqyTwPfvss9PrpBj1P/3pT8O5556raep32WWXcPPNN6cxN4Fz43TReA/tu+++
6fbvzTffvFkfdj4JATWi9PiNoJALu3kWbp4+/PDDi4+VROwI/Is3oP/iF78Ixx57bIr/tPJt9DB2
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmMBSSKAtBNT8uvXtt98e
uHywT58+gV8CX5I3UO+4447hqaeeSsLtgQMHLoWv6tLxyBIlc/nhBRdc8Kl+aJ116NDGAupP6uA/
//nP0+Wb6Hwq6YI+qXO57meLQHYD9YR48nmxIeREN4oOlDE9ph7d5/zY0IJKHyrBdXSlPfmaRMvk
wi9xNLGqketUFUdu1dd52INWVfWZY6rBmJycUbpXrWmu/KrJnDFGz1z7yaVn1H7q63m1TzmYq34c
JtMa+3l+1umJxce8RaZDtCRJ8UA6KDkZc1ABAA5QBUkPTU+sAOrBJS7mQXVWjRVPDGvUYB9zgVGd
6ErGmurj0D56nY0Y8pAfwbLOzxzTszCnjuqzprn2aD9r1FBuegwfpjXOxhp5VD8OU03meTy/t9A3
frgaxTcZWmJ8SNt7770bpchv0m202ALHCy+8EPjpEdp///vfZme68cYbAz9zUskQZ995551JzMvz
zJnDFzoWb9wUPHr06NCuHS9/7daaAurLLrssfOc731nsYd599930AZsbnp9//vkwYcKEJOZF0Dtr
1qxGQmASNkdA/de//rXi7ddXXXVVOPLII8vOlQuoWdhpp50CgvambM011wxf+cpXwu677x740N6p
E5epl9snIaCePn164JueRbvrrrvC1ltvXXSneaVbuRFP8+EKqySg/jTwTYfzHxMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARNYygm0hYAaxFOmTEn6FDQ+6CQQU2+88cZh
0KBB6RVAQ1NfXx/WWGONMg3LmDFj0vqQIUNSv7g/1Fl//fXDgAEDGv3KOHv/+c9/ptt+0cpQj1gu
xfv6179elpoL+2644YZwzjnnJG3P3/72t/TL5KusskqK/eEPfxj4tfGicQkfv3r+8MMPp+fcaqut
wq677pp+9TyPrSb/d7/73TB16tQkdv3CF76Qp0kaFTQa6DOGDx+etDJooBCOc/Hg//zP/4SHHnoo
XSC5zz77pAvx3njjjYB4ljNy2R7aIX6BHPZFa+7zcCkk76Vzzz03bLTRRmVpOBc3RBPDbdGySZMm
pWdC7P7WW28lbcrgwYOTnma55ZZTWKMeTdR+++2XbjJ/5ZVX0u3JaHGWXXbZgFAZq/Y81bwe+YFu
vfXWcPfdd6fXoWPHjul1OOigg5IuiDguMeT14Kbn/KxccHj99denVH/+85/DtddeG44++uiADim3
5vJXHV533ptclsjrznt8vfXWC6effnqjCzb//e9/hx122CFxR8tjM4FaCDTcQL1/3DsxtvrYJA5G
B4ohSkQLih4Vk8Z1wWyBH/EnjTj2oRMlXhrSfA9r1KBnnX3Kna/JR/18f5yW4rWXfarPPvbQs481
ejXWqK+8ykGv+tqPT1pYnTW60rmVW/WIxac58YpR7egqnU3nYh+xNRsJWmo6PHl4eD0sPQfF9DCM
84djnO8hTtCIVW6dU/ECQLxiiM9fGMXix4ijqb7qqh45WeNfd3pi5aPXXuJVPw6TX+dgTc/Ki5l/
UlAO1jHVV718rnyqk+8lnjmq037xf+hH8I95S4x/iLfccstGKZor5G20sQoHt1w/9thjqfHh7Ikn
nggffQT+xsY/aI8//njjhYKHb+ohKubDB8JmPqAgjl2UjRo1Kuyxxx6LWm6WvzUF1PwsxRZbbLHI
uvyjzz/0fNhp6rkqJWiOgHpR9UeMGFF2ezX5iwJqfh4EUTHflGyO9ejRI4mN+TZcbp+EgBoxPzdk
F238+PGL/KkOPqTrA532fetb3wqIzbFKAupPA990OP8xARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwgaWcwJIUUKNf4XZSGZoXRKSyJSGgRgj7ox/9KHzzm98Ml1xyiUql
/qKLLgo/+clP0niFFVZIIm4u70MA+Mtf/rJME0Ic8dtvv30SRPPr4zwPglSs0q3H5513XsrDerdu
3QI3bxOPsPfKK68sE2lXk59fu//DH/6QngshbG6IbtH9IIg+4ogjwnvvvRcQeffv3z891+TJk0Pn
zp3TRYTsO+SQQ5Lgl1+55zZw6W7Yg26pd+/epfTVPM9RRx0VEAIjOh88eHApB4MDDzww3HHHHUm8
zmuOPffcc0mrhHCas8ILH5opmHPJ5KKMixW33XbbdLnk22+/nZ6Pc3N55JNPPpm2VXueal4PnevX
v/51+NnPfpamnJ/Xmtec9/yvfvWrdHkk8y9/+cth9uzZIT9rz5490/uKzcQigof30KFDlT7NeV9i
i3s/6XVfbbXVEofXXnut7PWtq6tLGjLWZeivmH/44Yfh1VdfTSJ7rbk3geYS4P/uov7twBg/Ljbd
QI22UwLkOCwJlhF54mcdLapipGdlXXvjsCSmZkwse5RD+lZ67VFO6VCJxSTGZK54aWHx5U172aez
MlYu+ZlTV/noVV96XGLlo8eIowamuhrTq772UQMjNs+Bj3l+LnxVm5JWvTHboIMolw4rf35I4Ais
4kilsYCyV2OtAYOx3gyaq1f9GJLgyK/99IiPVV9xOifxrPEiyKcXhDXG5NCLjQ9THXqdQWPlkT8X
S7MXv/aTX/VzHzWZs47pebiBGgH1yJYKqF9//fXAN5GKdtxxx6UPGEV/cc4/dohMc+NbRfk/Ovla
U2M+mPABjMY/VLnxDywfHCp9gy2PK475cMG32/gQ9fTTTxeXw2mnnRbOPPPMRv5qHG0poOabUldc
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
PfnIoXXlwK83CT7WlVux0ZX87McUp+fM44jReYlVPtXXep6D+ny66h8/HIxgk80ETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKD5BGoVUHMD8ocffhjWXXfd
UFfHHYitb/FSxfDss8+Gdu3ahb322qv1CzijCZiACZhAiwjwpZf4CwMHxCTjY+MGanSgagiT0XzS
0LzixyRsxofhVwxz/NLCMsc0z/Nof76uGvhUHz2q9lFH9ckpU316/DT2FQ2/zpvvl089+6iZa2Hx
qQ5+nRWf6qpXHuYyrTHPx1qvqc8L1JSgYVPxgXADiPw0HoiGGDgHF6clP2PWBF45BYp1THkWzBb8
VSwz7SdO9fHzgnCjs+rnz865mBPDGFOfP8eClYVryqGazBnTs0954zDNdaM169pLTxz7VF++6ErP
q3j1xHeOrX/8sDTCN1CDyWYCJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACzSdQq4B69OjRYfr06aFbt25hlVVWCZ07I+NpPeOG6tdffz3MmjUr9OnTJ2y33Xat
l9yZTMAETMAEWoVAg4B6v5hscmxzY0OcjEm7ioYUTShzNXxoRekx1jUnBqPHj6EZZUxDN0qvXHGY
8rAfk2iaMfuoQasUr1rF87CPNZ1Pc3Jz8a/OFYfJiONcGDE6Cz15ivH4yCljrlh8WmMfY9VXnM5F
bItNxVqaSHk4pF4kPZQOnq8RL1D4mfNg8jPWg5JPe+Mw+fPc+JSLPYiUgad9jCWc1gtIHb1ocViC
zBg/eXQu5WYvhl/1k6NhTk7WVIsYfKrPGjnIzZrqE0OT6dyqrzj2Ko793EDdLwqoR1pALXTuTcAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKB5BGoVUL/zzjvh
3nvvTbdQN69SbVHcPr399tuHHj161JbAu0zABEzABJYogd69ex8YC0yMbU5saD4xNKM0aUClGWWO
X7pSzaVHZQ29qITQ7MPHunKwhklLih+jz+upfr6XONVXvPKylzE6VQmhmROPjz4/G3kxYjgLPTlU
jznGGn7pYOXHp5bnUi3ty3OSQ+fXHuY1myDWnCBu5FCCQB6NdXB8mOb0uSleD6wXgLzyKZ458VrT
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
AiZgAiZgAiZgAiZgAiZgAiZgAs0nYAF181k50gRMwARMoJxAdgP1hLgyJzZ0n9K5ovHE6NGBSlzN
mBgMzSoNY680quqJQ1+aC6OJ17p0pvIpRwxJMfSsqb7G5CWWuSyfkx9TfeY08rBH+1Q/utJ6noMY
5uzjGciFT8+jXMqheQwp1SAev86j2Ly+xuyr2pSw6o3ZBnJwCOXSWH7NBQG/IChGD4lfDyT4AqM8
7FFTrF6cuJT2syffpzlxqq83AXsUSy8jFuEy8TLGxKi+/MRydvycSWPN2YNP5ySv6itndKXc9PhU
Pz+T8rDeJbZ+//znP6+vr+f2d5sJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmEC1BLbccstqtzjeBEzABExgKSfQIKDmBupJsRUF1Iiepf1EC0rLDZ0pDR0p
a9KaSlcaXcmvOHLp9mXG3AQtnWmxj0spljitqQZrMnLrbMRhitM+YhjTOBuGFpazKIY62kc8Rixx
mJ5BeZRTfvaSA8vHWmcf62KT1yemZiNxa1h++PywuZ+xDssD6GFUnwcXsByU/OwlhwCxX0Jk7RN0
4jSOw1Q3f1biyaM6imGffIwx1WGMT+fAz23QqsM+nZX8vEFYx7SHMXGcW/VVhzXVp5efOOIxPSdr
dbGtEb8Jd928efNYs5mACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACVRJwALqKoE53ARMwARMIDQIqA+IKCbEJgE1ek8ZYwmppRdFb4qGFAE0utD5saELRWMq
UbLWpSGVnxzSosrHnKb8jNmP4aMeeRjTqz77qc85VF+x7Gdd9dmLqRbxyoMPU33G7KexRh7l1zmi
K+2nvtblI4ZWrK98xFWqj79qI2lLjcPm0AWEXg8sANTSuvYpBj9xgNTeOCy9aIIlHz2m3JWeRbnZ
qxdI9bVPNcmlM+ks5KSxFzE0Lwpz4jDGyoOPOUZPDtWlZ56va59iWFP9OEx55VN9vUGJ6xxb/ylT
poz8+GM9EttsJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACiyPw5JNPphALqBdHyusmYAImYAJFAg0C6oOif1xs78aG3hONaVGrig+9KGJl6UiJkUkASo9f
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
OVnLc7FHdZSfmJqMxC01HZhcOjQH05z8jPOHxZcfXnDwK5aHxM/NzlKpK696xWpOPHWY0zPHGBNL
Kxo+4iS8JlZ7yYOfs+TrqqdY1VMfw8tqKU5nyM+hWjyn9udvQvyqT17x7hLHq8VvPF3PN6xsJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACzSfQFgJqbqW+
/fbbw9y5c0OfPn3CBx984Buom/8SpcibbropHHHEEel26VGjRoUdd9yxLAMi6iFDhoT33nsv3Hff
fWG99dYrW2/upJJYupKvufkcZwIm8Pkm0CCgPiA+5bjY3osNHSpiTvShaF7RfaL3fD826UTjsCyO
eAlAiceke9VcORVLrxjGqiMftVQf3avqE4spTjrW3I+PdXrVV1x0lc6qPfTES/NKLPXZK39R/8sa
cWrkYKy6ys0cU9yC2YK/ilGfrzV7TOLWMh6aw9DISw+U/MXBR1xu+cOxnscLKnsEtbhfufCzXzXo
c/EzeTHt17Mz1xkArhct38858meJ02TKwYR1jH06d8c4pi7n0IvJmurFYYplzjlUn3jV13mUkzWs
c2z9p02bNoIPVjYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMIHmE2gLATWniRckhtGjRycBMDcoI6beeOONw6BBg9Jhb7nlllBfXx8Q67ZrJwlSCGPGjEnr
iINbYoceemi6+XrkyJGha9eupVQnnnhieOGFF8Lw4cPDl770pZL/sssuC7fddls4/vjjww477BCu
vvrqcMMNN4SzzjorPPTQQ+HOO+8ML730UvjrX/8aNthgg7Rv8uTJ4e9//3t6TrgOGDAgbLTRRuHU
U08NPXr0KOVWrnPOOSfMnDkz/OY3v0m5Bg4cmITRBx54YOjdu3cpnsEee+wRHnzwwfCjH/0onH76
6WVrmgwbNizdPn3wwQenm6rlb+65iK8klq7kU273JmACSzeB7AbqiZHE3NjQikqszBhNKOJO6UU1
RhsqPal0rcTgY86Ynn8Q8jnrrLGfVjRiJVZmTH3tV87ifp1DftWgV3168lKTuKLJRy0a8drPPs6h
s9CrZhyWngO/uCgmr09eTLUWzBbu17yqvpisqs0NweTg4Do0vXw8qB4sDktjgVSvOMXQY1pfMFsI
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
rjhMediPSTTNmH3UoFWKV63iedjHms6nObm5+FfnisNkxHEujBidhZ48xXh85JQxVyw+rbGPseor
TucitsWmYi1NpDwcUi+SHkoHz9eIFyj8zHkw+RnrQcmnvXGY/HlufMrFHkTKwNM+xvhY0wtIHb1o
cViCzBg/sTqXcrMXw6/6ydEwJydrqkUMPtVnjRzkZk31iaHJdG7VVxx7Fcd+bqDuFwXUIy2gFjr3
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACn3cCnyUBdV1d
XbqVmduV27VrF3beeefQrVu3speorQTUV1xxRTjllFNS7UsuuSR885vfLJ2DW6S5tZmbshFU66Zs
ApoSULO+7777hnvuuSf06NEjbL311gEx9IMPPphEztOnT694AzW3TLOGoByRMsLnGTNmhL59+6Zc
rOd2//33pzropDp16hS23XbbxPGpp54KL7/8cjrvsGHDwgknnFDaVs252FRJLF3JVyrggQmYwFJP
IN66f2CEMDG2ObGh+cTQjNKkAZVmlDl+6Uo1lx6VNfSiEkKzDx/rysEaJi0pfow+r6f6+V7iVF/x
ystexuhUJYRmTjw++vxs5MWI4Sz05FA95hhr+KWDlR+fWp5LtbQvz0kOnV97mNdsglhzgriRQwkC
eTTWwfFhmtPnpng9sF4A8sqneObEa01j5SCOseCoz/epPj6MOWNi2YsAmjcA55CPdTXiVV9j1SSG
MeuskQPDr1jN8ckYs0f19aajPvtYp+l5iO0S26pTpkwZwbenarUnn3wybd19991rTeF9JmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJtBmBD5rAur+/fuHN954
I8yaNSsgDN5xxx3LBMptJaAeO3Zs2HTTTQO3pr7wwgtJ2K0XDeExtz5/61vfCr///e/lTv3w4cPD
hRdeGC6++OIkhi5bjJPZs2eHo48+Ovzzn/8M8+fPT8u77rprOOSQQ5JIm5uvf/e73yW/xNjnn39+
eOaZZ8J1112Xbq+WKPrUU08N66+/frFEmvO6s//VV18trSP0RuT8y1/+Mmy//fYlP4NqzkX8mmuu
GebNmxcQu8sq+bTm3gRMYOkmkN1APTGSmBcbuk80nu839LFLPgSeEnkqhjl6UUw9vlw8jWYUY53G
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
rmLV1t8KU9/xjnd0559/fnfppZdW8aFxiN533XXX7pnPfKauRcbLLrusMkY83Rri3T322KN70pOe
1LrHLIReKKkswqCfSNd94hOfWOjvbxsBfz7X1hCWnnnmmd0f/vCH3t8J9/mZsddee9Vf3tDXjohy
zzjjjCrUbv0IVMlDYHzeeefVrQ9+8INtSJ3/9Kc/rX9XEaxq/Bx58pOf3O2+++4df5+xv//7v6+P
Me33lJ9pimTdRwTrO/V/9x/1qEd1++yzz4hCcmu0Iz+3vvjFL1YXPyv4hQJ+Nrc/J/klGH6GI2bm
58uvfvWrhXjiJ5ef4f02yN9VxOX8W4K1fPrPyr8Nv/zlL6uQ3b4w5u/vs571rPqLMvrHO/b3Wtxc
OM94f5aQ81//9V/d//3f/1XR+vTp0+u/PZyt/S7w3eZ7wL8lrf3nf/5n/XeCn5FveMMb2q3e/IQT
TuiuueaaKpw/9NBDe/5MQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQmAyCKid
4L/aPBHz4kH0ALEQCIEQCIEQGA8BtCjlMjtuoJ5VnjvKgy62FawpMmRUSKxP4bNrRh70os7LtBo1
fdCOkovhY60elxHDh1GHOSN7alfLtHcez0sMc2P0E2sN5/azv330E89jDUZiqM3ctdrY4ur5jbEm
e20tcuxjfWIGMgpP1DwwtTw0B3NNfebty+JrDy8c/MbykvjXKI/Xf1vX0VjXxNOHNSNrjDmxPP2G
jziF18SaSx38nKXdt5+x9nMs4Qv1Ms4ztOewF+9pfvslxG9/6sqb61S3Kbc0z2jFUQSMx/wfggiq
xmPf/va3q2B3pJwPf/jD3fOf//wqHFbgzPqss85aKKUVUHMWRMWj3ajN/j/8wz/0aiBks/4hhxzS
nXTSSfUWzV5AM0FMjHi2NeIRKyqI5rdCWp7cWIzw+OlPf3pNQ9yIkHk444ZWBIQagmY4jWTcjv3V
r351ETHvRz/60e60006rt2dzHsTPWiugNo5bsLnFG7Fgv3F+xIZwRvQ5nMETrsuLjSYe5vZVhIB8
L0YyhNCvetWrui233LIX0gpTH/3oR1fxdW+zb/KCF7ygCl373DUH4Xv7/emPeelLX9o99rGP7blH
e5de0DCT0fJWFgb9WEYTUCM0RnCswY+/+7Nnz9a1yMgvbhx00EH172G7yS8ofO1rX+u8gbjdY87f
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
xz5rxpi3phY0ufh5ZvLiwxgzL3P0Mfdif5ic5B8K76y5QfN4aHOzWaHa4uuhiacPIOcQCntg1lnr
87Cu/3h9x7QYcfrTMsZYN6d1macufhj7dY15X475yGE9/Hisa9/6tuQZX2PMPEbLTdUY9dwn8+6L
dk09tykB9boIqItELARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIAT2EIHSbnID9YZ6flAPGk/Ezeg+0YuiC8WYQ++KFpSWdYXPxPRPDRc0rsyb
p49nHnONPuvM06IvdY09WJ+61mfO/Vm/poY5Y61PnOciHiNWP/rWZ476xKqlZY15uciBOB58tfGx
ce6bMYaf/WFikn9IsrPmhj2sMBnbtw7j3p++B2MfvR9jjBhyCY9D42d+cygurqUBjC/BeFoMf/rk
oy9g+pjrtP26HxWxzHte+pwB0TN9rM9PX1/W7FtfX+fNQcvjuuchB/P71XNw/RXDOiZiIRACIRAC
IRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACu5/A
/A3Uj61Kl9fzo3rQeqJH5aHPg7YUvSf6UPo8mv7MoSftx/j3eVwjlnn1pQib1Z7iM/7oaz7rq03F
3/rVXdizel3W8XUv+pCPeYXVzvctfXLjaz7zMEdujDnWMeYYu259ffHBPD++ExtJdtbM4QbHN05+
feizDhTmiGHMIRzT+rhOKyT6rAuJPsY8z7jQmDX3hK/1nfPFuA9a/Yjt8/uSmHM/ruOLUR9jL/qT
E8O3r+d+zeWZ8DfGVl9y8OxVz6ERUBeFWAiEQAjME/jmFXNtU/3H8gE3mGqr/Q28Azr8Ur3sW/y7
zfapu/0P2G/81/q29fRCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCAALzN1Cvr+6V9aCL7cVI6EExWoXEzil8dkzLg17UfnUHI6cPwiZiMeYYq8elxRQ/
kYc+LWtqV6u7sB/3iw99fZzH1xz2rWd96ziPP485aPEhN33HamNramFeH3Oy1ucixjrmx2ciI/HO
mhsml5tmY47JT78/LHP95oXDvL4cknludlalbl5bfR3jTx3GtIwx+vjyjBtz+Cm8xtdY8jDPXvp1
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
4qd9KIYx/horBy2mXOprP4ylsc1jdX+sj9pUdNSBWQCb0Q3nN6aNa7OE0MeAIEFwDog8XMRqnjFx
imGNOUwPhTF9jVUbH9VkLq/Jw8TIi4/W6ONLLsWyxlg+qo8feRjT1zi6RZ945WCOeO1V9VVHY/lr
Hn/VVy3mlo9rrVqtdnp8iyG6U8cmu4B6zxO60633130C9dR5pbxTEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE5gwAv0C6j2j4B1xLYxLGlK0nxIq
M4fAU+Ji1jBaLta40LFKy6o1YtGTMq88tMoV3dQbF/H4sYbJpxwN1JcOVT7UIU71GcuHHFzKK1/m
2A9+GPXxkR+55KM+a4pR3phqaHLx0z2TFx/GmPIyRx/TXtQvJlv5QeGxmjaoPLpp5WazgqoWX900
8fQBpDmEwrph1lnL87Au/+b6GtNixMmfljHGunKqLvPUxQ9jv1pjXg9H+cihevhxqa76qq+WPM1r
jJnHaDmpGqOe9sm89kXbFdfaIaCeYwF1kFhK9sDj9bTDcd3FQzjgVR3p0K2FfCkVcBoTMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIEpTyC0m5xA
PT+ux+JC44m4Gd0nelF0oRhz6F3RgtKyLuEzMfkVw4bGlXnlyeOZx7RGn3XmaRE9ao09qD51VZ85
7U/1Y6qYU6zqE6f7Ih4jVn70VZ856hMrLS1rzIuLOBDHha+seaw47Zsxhp/6xUQrP0gyVtOGdbOC
yVh91WGc+9PXjbGP3I8xRgy5BI+bxk/5lSNXuuKjh6B4Wgx/+uSjj6/60W2ss5av66UilnndL33u
AdEzfSzPT1++rKmvmvLVvHLQcmld90MO5mfENTO+xTCHialkk/UEakAff0VfOulqftdT+uLu09Lr
X8BjspmACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZhASaD/BOq9YnRnXE/EhQQRPSoXfS60peg90YfS55LJnzmEivkY/zyP1ohlXvpSxI7SnuLT
fMlX+VRf2lT8VT+6jT2zH9XHV335kI95Cas1n7f0yY2v8ikPc9TGmJNQkznGWmesvUa3YcxpX43J
0XZIMFZTDt1M88bJLx/6rAOFOWIYc8Ma0+rSOq0g0WddkOhjzHM1C41Z057wVX3N6cFoH7TyIzbP
r4fEnPajdXwx6mPsRf7kxPDN62m/yqV7wl8xauVLDq7pca1jAXVQGKN9/oLedNM99XTXI/X06JP1
NC2e0E4vak8f22FaqjQ/3THWcrgJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmMDUJ9B/AvXcuJMn40IXi85Thh4Uo5WQWHMSPmtMy4VeVP3oFkZO
XSgayxNiyznG0uPSYlI9koc+LWvSrka3sR/tFx/68tE8vsqhvurhozVazdPnUg5a8pObvsbSxsZU
Y14+2jtreS5iVEf58WnJSDxW04bJpU2zMY3JTz+/WebyzQsO8/LlJpnnZGep1JVXrXw1xp86jGkZ
Y/Tx5Wo25vCT8BpfxZKHefaSr6uefFVPbbgPqiU/7SHfh2pxn4rPX0LmVZ+84r1C9NeuVqunViqk
mDo22U6gfsePetI/7tarktIrZlfSe17TkTZZa2pxnTpvgHdqAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAlObQAio94k7mBtXd1yIEKUtRfOK7hO9
Z29c0olGd5Af/lwY/pjEjBorp3xp5UNfdTRHLdVH96r6+GLyk441n5eellb15UesfPOWfNK84kt9
YjXfrP9lDT9d5KKPP61y5/tkPjf5qM3XRtxvTjriwCEcuWk2w6WbAEr+cFjDLzd8tQ/Wc39BJUZQ
m+OVi3nVVz8XP5MXU7xqMtYeAK6HRi7Fs4/8XmJYmHIwYB0jTvvujD51yaOHyZrqRbfwZcw+VB9/
1dd+lJM1bPm4ZvkE6oLFmH48EqdOL4iPr1vuq6fjLutN8x+qp/Z4GnPe1ZXWXS1/xGMq42ATMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIGnCIH+
E6jnx+08ERdaUYmV6aMJRTwsvaj6aEOlJ5WuFR/mGNOnRTOaj1lnjXiuZsNXYmX61Fe8cjbHax+a
Vw1a1aclLzXxazbNUYsLf8UTxz60F1rVjG7jPpgXF/nk9cmLqVY5GojXeFRtc7JRBfc7k4ONa9O0
muNGdWPRbfQFUq385EOLab0cDQDSac2CrBZICIx1X3lecgGUlkv70r61Rosph/q6J2JVXzmpI5E0
rXITS1+m3Izlw5zilY9aqq++xsRSf7m41goB9elMTCWbbCdQ5+yunVtLh8zpKaYO2bojHfgq6dVz
L/dNwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wASezgSyE6gXBgd0oBg6UC7G6mssjSut/GnRk0psHN1iDR/maYlHQ4qv4pjD5Me8dKaqxzp9XfhK
6yp/WtWRxhV/5VUufPBlTB1aTPFqy9mBmvkYH2o052SOerT5fVITX668n9ePpdZMsFqLLqPYMDcl
Y6PKSx9j41yYoOJDX76s4cM4fxGUnxo8OOWkzWHFsGHk4CKGVn70VZ9a6ke38GOdeeorhjG1uHI1
rcZ5HfoYMTLmyMWcfDWmPn1M67SaV6zqI5xWDQTUs6vV6imVSl4uZie5jVZA/eDj9XT7AyAobYPn
VNLynO09DlaLMtsd150efqKe9nhZezpyO5DbTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETGCAQL+Ael7McAI1htCRU6jRedKnRQ8qTSiaVubz
seaYp4/JR3pR5UPbqjlyYPjmJh/mpUfFV8Jp1UG7qr5yqCUfMdTKBarS9jKv+tFtGPPyYZIx98Ql
/a/uV9pZ3XO4FPshhn1oL9RnDqOmxkPVL5xG+kNJR+o/lJ82S8sNCb7midGNsJ5DZZ45AeLG6DMn
ALS64TynfGnxUf3m/LFUGD48AK2rRv5SKD9rMu1He9C86uat8suXfLmpFuuqj0JXL4Dq4ydj3/gS
o7yszYiLE6hPYzCVbLQC6tOvraavXcJnSmnf2KszbbEuKMbH3vnjnvTXO2tp95e0p4/vYAH1+FB2
VhMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROY
ugRCQL1/7H5uXAv670LiYWlipVftXy60omhCMXzoa4wockAoOaArJQc+rJMfk9aUOdalQaWP3lT1
aaVjpVVN9WOqUZ+4PL9yUpu+1omlrvbEmnzlxxoX+8GXGC7lYg5fzdHm+WPY2BcxmGLUV41isZUf
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
CZiACZiACUxOArVaLbW3t+8bu5sf14K40HxiaEa5pAGVZpQx8+hAtU6LHlRr6EUlhCZO68rBGiYt
KfMYbV5P+cmtWPyYJ1b+WiOWPgJNCaEZ488cbb438mL45PlUj3mMNXJLB6t55nTluVRLcfgoJzm0
f8UwbtkoMlZjU4JALvW1ceXXmDY3+euG9QDIqzn5M8Zfa+orB370BUdtHqf6zGGM6QsyAmheAPah
OdZ14a/66qsmPtoTa+TAmJevxszJ6IujBOCqTxzrXLoffFeIa61qtTqnUtF0zDzF7Dc319KVN1dT
e9ziB7adlqZDx2YCJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACy5BA/wnU82MLT8aFmBcxJyfGStTJHBpQLkw+jNGaYmqZy8XT0piyzsWYtjlf
TBVr5EZbKgE087k/8aqvNeVkjLHOHDVoZYojX27yV+5m/S/rMtWiVR9Oujf88jpiyDw+jNlXbs3j
fG3YPpsYqymHbogHwKaaN5zfKL660Txe0BWvXOxRMcyRi4dMP48nJxJb4rkEDB8u5W/OFUuFb75n
fHmYejjkIr+EzRJZq77uTxJf4vBVTe2FVrnYPxdGq/qMVT+PZ538xHfGNTtOoJ4Trc0ETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETGCCCISA
mhOo58UlATV6T3Se0sfSModJ2IzmtCcuaUZZw6SJVbw0r4yleS0c4wcibWlPpTGlFsZY9YlVfc2R
S/Fai6mGPpYY1czXmcOI116Lif458ud7Zn/ak/avPWsvzfHS3Gpd9YnXnvK+1pVnVC2JloYpD602
RIvQV5umz7ogDQWHdeaVI7pFDlryNOcAll4qfLQP+uRQDVrWiFd9YtVnTQ9XD4C5/NL95DkQM6u+
8sdUEUc+1qlBfeK4dB+qzxyxumfmMdXO18mje+IE6nVDQH0yzjYTMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIGJIRAC6n2i0vy4HosLDSi6
TzSi9KUJpZVWNbqF5pQ5tKLdcaERla9i8WeeFiMvhl4V05ri8KOvXPS5pE1Vvphq5KA+Qm7FyJc4
6VzzONapTysdq2qoPvPMNZvyEYt4m5b69KmPMadY+dMyr4s69PP6MWzNSDRWY/P5JrVxcmueGnlf
N6yb0c3hRz+Hyo3qASmH/PFjTQ9JNRWT+/PgmMeIwTePU428JZ6x4jRW/Vhq1M9r8mDxweRLLXwY
q22e0/2ES5GXevhyYawrFgH1zFqtNid+CVmzmYAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJTACB0G7uHWXmx8UJ1Og90XjSYhIbI/BkDr2o
DD9dzEsESgyaVUzzxCoXMfjS5vlUI6aLNVrl0pr2xRpGDkx18KNPffVpMQmdicn3xxo+XOSn1R6V
F3/mmtdzv7ym9LLyj9AGU/qq33w/rI3KdHOjCmpy1s0LjB6Kcms+B6MbV8uN6Kaa0jeAMi9IOZjF
1RdEaqhPDu2DXNob+fDRfqJb+OkeNCaGS/VVW37kyB+6ajAvH+awfI18iK5VP8+rOFrycOGPgHpW
nEA9J1qbCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZjABBEIAfW+UWpuXAvjQtfJhQ40vzQnLSgaU9Yx1phXi1BZOlLliKnC8MHUKgf5pGvV
XB6LP2NpV6XxjalGLXxYR3QtX+WQ1pUxRsueNVas9oWPTDkYk4c4icGZw5RL9TVHSzzzWF5XMdpD
6THKnyQZq2kjyoPAVzetzQsQawIswTBr+DEWQHIKenSLdWJ5OabFpXzE4ctY96K8MVXEKQ/rrKk+
ebRP4jvjkvgZX+ph+GDEUh8/1Y9uoz51VIN57U31acmhl0/18SVfV/8aOfBV/egWpr3jh/+MuGZa
QF2wmVQ/euMJP95dTx3tbWkGT+tpZrV486vxhrbHW1zhbbaZgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYwFOIQGg3U6VS4QTquXGhLUWbirYTQzlH
Xxea0J64cg0pGlOtR7ehd9UcLXESHNOnDvPoS4lHj8qFHlXaWGqrvmooVvVZZ03r0S2MvOTXPHGM
Mdaozxp5aKnNuupHt6hNnHLQKlZ+WsefePaD6b60B9VnnTXuEcv9ypkWfqpoC6GNEOXIb4gbxmh1
A4zpY1onVvHcsG5KPlpjHtACia/qKafGxOBHm+dUbEw31vFRPOvq44MpJw9bD0R9+aplj5j2XI4G
3xM+WqflUhz+yiUfjVUTH14g9iIB9WlM2iYPgZ9c05e+eXlfWmPltnTuoU8/BfWH/68nXXlzLe28
SXv6zM68rk8/u/+xerp+Hr+mKa2zalvaYHX9Kg9mcev99fSnO0q/wSvlCAH6rpt19HNvAABAAElE
QVS2Nz40cp/Hu1O6Lmr8eX4tVePTa4PV29Jma1fSaivq4yP3HujffF893RBxcx+oFb6brlVJL55Z
sdh9AJF7JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JjAsgf4TqOeF44K4EG5J5ypRGC3iMYmr6eODoVnlwojFl7Fa/NCX5sLofF1CMc0pR4QUOWhZU331
yYsvY1k+1t5VnzEXeYhRnOrHVLGe58CHMXHcA7mY0/0ol3JoHC6NGvgzr/3IN6+vPnGjNiUcdWAW
QA42oVzqa15jQWBeEOSjm2ReNyT4AqM8xOiSrx5OLBXxxORxGuOn+noJiJEvrQxfhMv4y+jjo/qa
x5e9M8+e1NeYGOa0T/KqvnLGVJGbljnVz/ekPKyvEBcnUJ8arW0SEfjx7/rSt341dQXUC+M7Igf9
pCfV4hsyn9xpWtpojfwVHB70B3/Wk357Sy3tsHF7+tybnl4C6jseqiee//l/rSZOIsd2CwH0J3Yc
msPJIbb/Rojtl2RXHTk9dfLpkRkC7fee2pPmPaiPwHJx+Tgf/+tv60wvmTX0M1tcvW03bE//u9u0
1DF0WFbZXRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwAQiEgJoTqO+Iq1lAjShMaiy0oFy5IfziQmXGmrSm0pXGVDEvP3JJaEafk6ClM21uY6nwxU9r
qsGajNzaG36Y/BSHD32ufkXcIP0v/tRRHP4YvlK96R6URzk1rxzE5X2tE0cNsSEvLJjHp2UjwdIw
NocJgjabz9PXZrkB3QxxGLECloPSPLHkECDiJURWnKCrvuaJze+Vee1V88qv2tq76kRIUV9+zKOK
VE3itFfy84CkmlRMTBX7YN+qrzqs0ScPrebxwx/T/bDG0cbrhoD6FBZsk4fAVBdQP7YwpW2OiR9h
39irM22xrl7FkTH+2iW96Q9za+l167en926lV3dksVPZ63/O602//Fs1hOeD72IkAmpOmn7BEEJ1
5k/YvzO1Z4+gJz5x9vx+d0KszfqWz6ukGV1t6dc3VxOnUk+PT52TDuhK663GR8mAnf2navr8Bfzd
TMXp6K+cXUm3xGnUf7uLj5iUdnpRe/qfXfSRVUz5hwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYwGIIhIB6n1iaF5cE1KUYq/SnLyE1fQRd6E1pEXIh
ruuJC10oqjOJgrUu1ZjmySEtquYYcyk/fQnHmKMeeejTqj7x1Gcfqi9f4llXfWIx1cJfeZjDVJ8+
8VyskUf5tY+YKuKpr3XN4cPVXF/58BuqPvOjNpKO1dhsDl1AaHXDAkAtrStOPszjB0jFRrfx0ARL
c7SYcg91L8pNrB6Q6itONcmlPWkv5OQiFmUhD4Uxfhh95WGOMUZLDtWlZZyvK04+rKl+dIu8mlN9
vaD4LR/XrFqtdlr8EuJvmyQEnu4C6knyGCZ8G1t9dWF6Iv6crRBfbXjrSzvST+J0acTUIxFQr75S
W/rFYXwnYni79MZq+tjPSyH0oVt3pANexUdISn+8vZbeF6dSY299WXv66HaDxdBvC9H1bf+pp9VW
bEunvqszrbJ8W7G/g0/uSX++o1aItM9/f1d61gr+PCkg+ocJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJLIFAaDf3i+W5cT0eF8IrNKbNWlXm0Isi+pKO
FB8Zcxgt82rJp1z5vHKoRVc6VF9zqk+rOVqMGuozpq9L9dk7NTDtW1pX+RCT91mXEYvIjfrNludh
TXuhDmu01FddrStO43AZvbHhsZo2SR76GJvi0hp1GEs0HN1F1nVDtHpg+GHcfC40Zg4/wAqO8quW
xuRSLC3zMtUkRnloFZPnQo2oh0I8sc0Ph/zEYKxJdK26tJh8yIExZk359MLIjz2TS/cU3TQjrjUt
oAbFsrPrQrSKcHXuA/XixF9OA/79bbX0rV/1Faf8nnvogCi2L57uRX+vpno8RfyeEQLW3K74VzUt
iIOfX/jcSpq96uC1/yyop9/eUosj/1PaZZP29PAT9XRN1Lk2Lt6eFzynknaO+eU7BzLe91g9XRUx
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
9ZVb9YjFpzHxilHtdLX3pn2xjthJGwmmato8eTi8DkvLRjEdhn55OPrlGuIEjVjl1j4VLwDEK4b4
8sUoFj9GHI/qq67qkZM5lKm0xMpHq7XEq352K7/2wZzOysssVa7KwTym+qpXjpVPdcq1xDOenc/c
/CWcn61tNRL4zc2tOPibtYj1+Df1xrM24XWM2KfOH4izf91cZQLqow/ojeelcHZFxo3U868cjGtS
kHt73jD8YF/96fXnn1mEynzQl//zrOjlyytsVQuoP3/xQJx29fJvO/5o3pZ8Yd6GvNWGXTH/4BEx
tATUW6zfFae/Y8TP1uEN99n523HZhx8bAuDxCKgL7KO6f7itFW/93/5o5l8iiZ4JwP+mb9Tf3n+8
akZceWMrzv1ts/oe+C7uWjIULz9qWNy/W4r7d+JPUsT7T+uPK25oxdwndMWXXt8b+32tr7qF+n+G
v6X/vGAgzvpV8zHFr9q4f5iACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZjAY5RAXn57QG5tYT66gRphnwTI2W0LlhHv4Wce6Z5ipGdlXmuz2xZT0yeWNcoh
fSut1iindKjEYsRgjBVPLH185aO16W7vlb5yyc+YuspHq/rS4xIrHy1GnNSKqotf+VVf66iBMV/m
wMdY6xhPypR0UouHF2kjyqXNyl9uEjj6CBRHGvUFlLXqaw4Y9PUxaKxW9TOkgiO/1tMiPlZ9xWmf
xDPHS5BPL4Q5+uTQy8aHqQ6t9qC+8shfiqVZi1/rya/6pY+ajJnHdB5uoEZAfUrl9Y/VRuCSPzTj
X8/mH1JEJeRF0Fva//xoMI6/YnCVCajPOXRmlbus2dlHLPuhM/pjkK912LhxmhuG+1JAjTAX+8Fh
s2LN0VrkWNUC6g9/ayB++H/NePpGjTjxrcU10vWW4gvfG4xTUvi99qyu+P4HRzYnAfVz5jXi2ANH
r0NEfPh5A5UY/IoUhT8WbCoCavb/iXMH4rzfNaM739nleVM47+7PKYR/5VdqgfSuW3fHD65rVjeJ
n5pCc8TR3HzODejV+r1nxJ7b1n82YAOjtWd3xdNSmH71Ta141bO7g1ursY+cNRDfu7YZm6zbFWe/
e4R5NekfJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
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
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAKPBwKp3YxGo7Ff7vWmfPrzQfPZlw+6UAmH0cfy
YGhD6aPAIh5NKHFoQlmrOFrpUbM7SiCNnzU8qkO8tK7kpa/6ZV58qo9Ot9SkEsdDfmKYk+FnLXOa
J0b1mVf9Tv0vccpLDsVK/6u5nGrHyUctjDF5GGvP+NTP7uRMBSa3ul4lCOTiYWM8MvlpOQQmn6DK
R0s+5SBeLwK/xoJBHuaVhzGm+rSsUw75y3Wao2VeLzK71Vh7xU9d7UM5VJ9WubLbXqv6xJO/cx3z
GK3qV47hMTlZo31pH2ukb7Nms3ly/hJm12YCJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJrA6COQN1AioF+XzSD7StdLyoGvF0IUi8pTOlVZa
UlrFZbdap/W00pUyp3X0Ma1TLuKpw1j1pVvFj4+x1tHHyrHWqqW+crBetco85GDMvPar9cxh+Jln
H4iniddDffVZpye7bT991mOK1bj2TuIniVaGKQ8b56CYDkGLlQDk00GY12GUAyiIhTHNKZ6W+TKn
4sr7UbUH5ohlrA9EuRhjnbHU1E3QzJXxqi8xMznwEcca9dWmqy2AFh/meDQmhvWY8uosqk8d4lk3
M58t8l8xnJytzQRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMYDUQGL6B+sAstSifJfmgOUXXis4TkTBaT/mkDU1XZdzUzLxugmZemlj6rOMp
/cyjHZWfPlbGM0de1dd6WsVntz1PHPtVDrSr9DVWnxhykwMfVuZjTvuiPnuVDhY/RrzW66y05MaI
Yw2mXKql+torMeRSbsYTtvIAE148vIANaSNqmaJf5tcBNKeNE8MhFa81AqOPSOsEtgTDGvIpF3Os
Uy5azWV3VF9AaTG15COH5pUDvz4SfMwrt2LTVflZjylO5yzjiNF+iVU+1dd8mYP6s/OZ12q15ue/
YmCdzQRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMYDUQSO3m/lnmpny4gRodqB6EyQg7edC84sckbMaH4VcMY/zSwjLGNC7zaH05rxr4VB89
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
fyDo3W+HnkoEfOkf9fmNRF/0vpmVYPt71zbjI2fxiY9tB+7YE+/ZtacSEitismdi/ZtP6K8E3cpF
+/Jtu+PwvZevNr4wheefvnAgHq4vWm4vhfZBO/XEu3cZvb/PZuy3ftmsROIz8zfolylAL433dPyb
emO9OaPfVyt/ew85qT9+vXh0vNa+crvu+H97jb3Pz108EKdfPcL5zPwe5o7xPSjXymwPOr4//phC
+xds2Yij9l2OwntlFnQuEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABE/grJJDazWg0GtxAvTAfhHdoUyU4Q5BGXw+CQFRvpYZU2lWtYUyc1tAyluCYPnXw
IxgkHqEaD2I2aWOprfqqobWqzzxzms9uZeQlv/zaD5PMUZ858tBSm3jVz25Vm3XKQau1itM88axn
P5jOpT2oPvPMcUasjKs9k/ipopNY2l6iHOWBODBGqwMwpo9pnrVaz4F1KMVoDj+gBZJY1VNOjVlD
HG2ZU2vT3Z4nRuuZV58YTDl52Xoh6itWLXvEtOd6NPpMxGielkfriFcuxWismsTwAbEXCahPwWlb
/QQW3zsUZ6Y4F7s9b2u+5A91f3kC6vN+14xbcg3GLc/cKM1N0695TvkJRLxq++7YKG+Hln32ohQB
/6LOzW3Ru2zdiMEcnvObZtx2f/4RztCT3jazulFZa9RKQK0x9Z63WSPWShn+H24bqsS2ElCzv0+c
OxDcAo0Al5utm7ndyxbUN1+T45AX94y6MXuyZyIXZ+I2aeySFG9zy/OjCai5SXr/r/dVv7zrzO6K
f0hO3PT9/RSF/+nOOs8/v2xGvPa5IzwloK6K5I/dnt4dG6/TFRf9vlndzI3/7S/qiXfkU9p5v00W
59Viclhwe/Wc3q74012t6j2/eKvu+MRyhN6rW0DNyRfc3qq+h9OGhdsffcWM2PvZIxzKs7lvAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiYwdQLDN1Av
ykxL8kH0h9APSRcaT4wWHajE1fRrMWAdVwvf6rXSqKolDhFYKYxWblqJDOVjXNbNYbUX1SdO9Yll
LCvHyqH6jHlYyxqtU/10VfNlDmIYs44ziIvOo1zKoXGGtmuQA7/2o9iyvvqsm7Ap4YQXFgvIocPi
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
MAETMAETMAETmB4CeQM1AupF+TySj3SttDzoWjFEaIg8pXOllZaUVnHZrdZpPa10pcxpHX1M65SL
eOowVn3pVvHjY6x1EjmWY61VS33lYL1qlXnSXcUwr/1qPXMYfubZB+Jp1uuhvvqs05Pdtp8+6zHF
alx7J/GTRCvDlIeNc1BMh6DFSgDy6SDM6zDKARTJEzWneFrmy5w5rHKU6kvtgTliGesDUS7GWGcs
Ncklfxmv+hIzkwMfsaxRX2262gJo8WGOR2NiWI8pr86Cn1jqEE9/Zj5b5L9iODlb2zQTuOnuofin
M2sB9Vf364311+QVLd+OuGQgTr2qGc/apBHHv0mXjy8//vEwM5UzsfbKha3Y9Wnd8c6X6Nd+ek69
JP8N0EHH98XN99a/jhus1RUvfEojZuVvI8LqX9zUCm6n/tGHZsWcMV7dVDisjhM/Fvf30i/1xX0P
D8Xas7vimRt3xYbJnO/htvvrd9Cdf/mOObA3nr2p/lyvDlKuYQImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAJjExi+gfrAnF2Uz5J80Jyia0XkhEgYrad8
tRAqHcPGTc3M6yZo5qWJpc86ntLPPMJE+SVSLOOZI6/qaz2t4rPbnieO/SoH4j36GqtPDLnJgQ8r
8zGnfVGfvUoHix8jXut1VlpyY8RJPKhcqqX62ivx5FJuxhO28gATXjy8gA1pI2qZol/m1wE0p40T
wyEVrzUCo49I6wS2BMMa8ikXc6xTLlrNZXdUX0BpMbXkI4fmlQO/PhJ8zCu3YtNV+VmPKU7nLOOI
0X6JVT7V13yZg/qz85nXarXm579iYJ3tcUTgsShinSq+v5Qznf3rZnzqfP67FNXt4Hs/W7/GNaFF
9wzF6VcPxnt3nxG9o6eqgMc6h8fi/t55cn/sunV3vCpZI1TH+KP47V8047MX1e/iJU9rxOdfO4Zi
vYr2DxMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARNY
vQRSu7l/VrwpH26gRvKkB2Eywk4eNK/4MQmb8WH4FcMYv7SwjDGNyzxaX86rBj7VR4+qddRRfXLK
VJ8WPw/rOg2/9luul08t66hZamHxqQ5+7RWf6qpVHsYyzTEu+5qfVFsWmFSC4UWdB8INIPLzcCAe
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
3TNUCZp3SvG0Pmrlow7zm6zbFWe/e+xbgMd7JuUs2w+c3h+Xp6j80QTU/3LmQCWWRjR90ltnxhbr
17t8KDm87Zt9cUOKqDdcq94f58FKATUiacTS2GD+Jr0lb8BGQL7Nxo345ltG2N2aou43fK2vEu0S
y43b289txHPnNWLXrbvHFKoTJ5sIh6kwn8i71d5oJ7I/rZsuAXX5/r74+t7Y+an86bOZgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYwPQTSAE1N1AvykcC
avSe6Dylj6XFh0nYjPANsaE0o8xh0sRqPXHKR59cMkTawyq5tkZV86xRfXKpvnzk0nrNpatag8CO
NTyqn93K8GH4tdfKMewjv9YQy/60J/z0tWftJV2VaV6aW81rf8xrT2Vf88NpJtaQaGWY8tBqQ7So
3bRp+sxzMNqx4MivHBlW5aAlT2cOYOmjIob1MnKoBi1zrFd91qrPHPkxvQB85aPzlDkQS6u+8pND
+ZinBvVZx6NzqD4+4nVm/Jhql/Pk0Zm4gXrLFFCfSLBtegmsKgH1kZcOxkk/G4w5qe+96H2zYpbk
+cPHPfpHg3HcFYOVAPqyD8+KHr6WwiSyxX/mu2ZWty8X0+PuHvvjwfhaPoiXr/inWWOum4wwV4nG
I6B+yeeXxsP5n409t+2OT+w9GsR38jbuT36Xv+kRJ761N56+UQ1CAly4wQ+OMm6Z5rbp9dfsigve
O1oU/rMbW/Hxcwbi7hSnd9rWT2rEx185I566Ib+iy9pUOJTZVsR8su92Mvs74SeD1Y3n2t8xB/bG
BilWX5WGuP+9p9b/KGGsd74qazu3CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACayIQAqo98+Yxfk8mA9iM0RVaETpS3xGK61qdivNKT60onl9aKUrVazW
Eo8IjhaTWAu9KqY5rSOOPn5aPayjr3zZrerTUh+BltYolnjpXMt1zFOfVjpWYhmrPn58naZ8xCL0
o6U+fepj+LRW8bT49VCHflk/h5MzEk3V2Hy5SW2c3PJTo+zrwDqMDkcc/RIqB9ULUg7FE8ecXpJq
ak0Zz4vDj7GG2HKdapQt6xlrncaqn1Pt+mVNXiwxmGKpRQxjtZ0+nSdDqrzUI5YHY15rEVDPbbVa
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
Yx4fNWhlWke+0hSv3J36X+ZlqkWrPix0NuLKOmKI//+zdx7wdVflHz5NSzdly2xpi8jeIEtACyJT
UJQtCqIyRBDHXxEQFRFUQJYogjigTFmyt2xZCqhsKG3ZZRfoIMn/fU76vT25Sdrcm6Sk8H0/n5Nz
znvecc5zb365Sd77u9iIG3MJ+6xb2ERXRTF0IB4ANlW94fKg2Oqgpb+gy1+x2KN80BGLB5lx6U9M
CpDxpwkYNjTFr44VS9m23DO2PJh6cIhFfBVWq8ha+XU+8iP4Yauc2gu9YrF/GkKv/MyVv/Rnnfj4
U/Y4Ku5APTZ6iwl84Anc9kRTevj5pnT9I43pqSgERn601Txp+9X1LfSBR9DlA553b2P69bUtd+4+
YEy/tMd6XKIsJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACtRKIAmruQD0+mgqoKWyjzlP1sfQtxW4zC5upOZ0WTTWjMcyimlj5q+aVuWpeZ5jmIm0V
zqnGlFwIc+XHV/mlIxZFZPhrLYaV+lh8lLNcR4fgr71mxQwd8cs9E1970v61Z+2l2l81t1pXfvy1
p3KsdcWpqSdQd4ji0GtD9BT6atOMWRek9uCwXv2g4IcQpzoGsHggZKN9hCrvQznoWcNO+fHVmDU9
uHoA0JVN5yljUMys/IofquxHPNbJQX78aDqH8qPDV9zQI8pdrhNHZ+IO1KOjgPqvGFtM4INO4Nvn
T0sUUUu2XbVvOmybefI3inTuZ03g1seb0i2PN6a+cVU5aNN50kC93WPWbl41ARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROoIhAF1LuGakK0t6JRA0rd
J0VujFUTSq9a1RjmmlN01IpOjUaNqGzliz16eoS4CPWqiNbkhx1jxWJMU22q4oWqEoP8FHLLR7b4
qc619GOd/PSqY1UO5UePrloUD1+Kt+nJz5j8CDr5yp4evRp5GJf5Y1qfEKirwubLTWrjxJaeHOVY
B9ZhdDjsGJdQOageIMWQPXas6UFSTvmU9jxw6BF8sC39lKPs8WcuP82VP5Yq+cucPLDYILIlFzbM
1VfrdJ4wyXHJhy0NYV2+FFAPb2pqGhvfhKxZTOADTeDSBxrTYy82pWED+6TVhzekdUY2pAY/9T/Q
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
wjow66yVcViXfXV+zekR/GRPzxxhXTGVFz15sUPYr9bQ68FRPGIoH3Y05dVY+dUTp3qNOXqEnjtV
I+TTPtFrX/TcgnnpKKAeO7cVUD8wsSl97S/T8kFHL9InfWvMPGnUQn3S0IEpDRsIivbls6dMTc+/
0Zy2X71v+tFWQtS+rbUmYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAIm0FMEonaTO1BPiPZWNGo8KW6m7pN6URVDoqPelVpQetZV+IxP2WJaqXFF
rzilP3pEa4xZR09PfanW2IPyk1f50Wl/yh+qrJOv8uOnc+GP4Cs7xsqPjvz4qpaWNfTiIg740bCV
VM/lp30zR7DTOCvq+UKQroo2rMMKJnONlYd5ac9YB2MfpR1zBB9iCR6Hxk7xFUPFxbGUwehBkD89
gj1j4jEWYMaI1unLdT2p8EWv8zLmDFT0MkbK+Ixly5rGyi9b6RWDnqZ1nYcY6IdGGx7vYhiLYm6S
E258L511F99PKf11r/5p+cV09I5PMS0Ib/TLKakpaHx7s35p14+XD3fHfl4xARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwge4kMOMO1DtHzGej
vRONWk/qUWmMadSWUu9JkSRjmkT26KgnLefYl3G0hi961ZdSiKkCTGyqm2wVT/lVm4q98sewsmfV
67KOrfYiG+KhV2G19GXPmNjYKp7ioCM2go51BB1zrSu/bLFBdH5s6xaCdFUUQxus3jjxZcOYdaCg
w4c5h9CcXk3r9ILEmHVBYoygp1UXGrOmPWGr/NLpgdE+6GWHbxlfDxI67Ufr2CKq7GUvsicmgm2Z
T/tVLJ0Je/moly0xaHG/5jRybiygPuSS6em6/zWmJebvky7djxtpz16entScdjxtajY8cef+af3R
wtK+76tvN6dnXgFZiywXRdqD+2vm3gRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwATqJzDjDtTjIsK70aiLnVm02FJjGqpca6pCYmpEERU+a06v
+lGNs2F8IaYataMtd69t0TFXPS49gg4hDmN61lS7GsM8pwhT+8WGsWykD1UlhsbKh43il/tgTFMM
euITm7HmZRGo9LLR3sO8VSx8yvys1y1ssquiDRNLm+YwmhOfcXlYdNhIBIe5bDkkeu7srCp1xVUv
W82x14NKzxxhjC2tWtBhp8JrbOVLXPTspVxXPtkyZ6w+hq1yyU57KPehXJxT/uWTEL3yE1e8h8R4
6cbGxrMbGggx98gPL56ern+4MW2wTEM6YafOVTVjjx9y+TcHpEWHlQjbnv3cexrTsde12LPamaLr
tlGsMQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMIG2BKKAetfQjovG3WGpQ1VtKTWv1H1S70kho+pEY9jKDnsagj2iulfNFVO29LJhrDzSkUv5
qXtVfmwR2akIs9SjY51e+WUXqspe5UOPvWpesSU/vtJX1/+yhp0aMRgrr2IzR2TXMmv5Khv15Vqn
xwTuLuHQbIZGXHqglA8OOuxKKQ/HemkvqPgIarW/YqHHXznoy+Jn4iLy19mZaw8A14NW+rOP8iwx
zaIYTFhH8NO+qQ4mL/vQg8ma8sUw2zJnH8qvYm354aOY6JDB0UbMjXegrqeAev9zpqW7n25KKyze
kP6y5+yLrl1AnZ8j/mICJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJtADBGbcgXpChH4nGrWiKlZmTE0oxcOqF9WYGlPVk6quFRt0zBnTUzNazlln
DX9atWCrYmXG5Je/Ylb7ax/SKwe98tMTl5zYVYt05KJhL3/82If2Qq+cMaycA724yKbMT1xEuVpm
M/01r6mvDlaT8wxjYrBxbZpeOg6qg8WwMhZI9bKTDT2i9ZbZTEC6W7MgqwcSBcY6VxmXWAClp2lf
2rfW6BHF0Fhnwlf5FZM8KnamV2x8GUsUm7ls0Mlf8cil/Bprji/5B0VbKgqoz0UxN4mKoTdatiEd
98XZF0M/Pak57Xgab9BI6dCt50nbrVZibP/kZ931XjrhRr73WsR3oBYJ9yZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAl0lUNyBekrEog4UoQ6U
xlxjzVXjSi97eupJVWwcw7yGDXp6/KkhxVZ+6BDZoVedqfKxzlgNW9W6yp5eeVScib3iKhY22DIn
Dz0if/Ut2pk5yzk25KiOiY589OU5yYktrRyX+WOpPhGs+rxbvNgwh5KwUcVljLBxGiKo2DCWLWvY
MC+fCIpPDh44xaQvYcW0IsSg4UMvO8bKTy6NY5jtWEdPfvkwJxeN/BLNyzyMEXwk6IiFTraak58x
onV66eWr/BROKwcF1KMaGxvPamgo04W2F8tzrzenXU6fmt6ZltIuH++XDt6sRNr+xn9x1fR00b8a
00JD+qRL9huQBkJhNqK7XGM2dEBKl+4/IA0bKHSzcfayCZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACcyCwIwC6vFhwh2oEWo9uQs1xYqM6akH
VU0oNa3oy7l06BkjslHRo+JR2yodMRBsS5ENetWjYqvCaeWhdlVjxVBPPHzIVRaoqrYXvfLHsCLo
ZYOSOWeiqf5X51XtrM4cJnk/+LAP7YX86BByat5e/mzU2S8K2ln79uy0WXoOJPjS46ODsF5CRY9O
gDgYY3QCQK8DlzFlS4+N8lfHj6Us2PAAaF05yieF4rMm0X60B+mVt+wVX7bEK0W5WFd+yoH1BFB+
7CTsG1t8FJe1odG4A/U5THq7UND83+ea0ktvNafGGaftzF2h35zSnLY+aWqaEpeUzt59GmCb/2Zq
ev0dRil9Y+N+ae9PlEiz2l9MwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMoC4CUUD9pXAcF23yjAAqHqZKkqZ61RnLWddS2Niyzlhz6kMpvpao
rpQY2LBOfES1puhYL22pN1V+etWx0jMnlsYxrOTHr4yvmNgz1jq+5NWeWJOt7FijsTds8aEpFjps
paMv48e0si98EPlorBx5sZ4vJO0OURw2pAPp0MTXRlnTIQSKnnUqXFnnCaBCY4AgiqsnQv/Q6YnG
epmf+NjjK30MM2zWlF829DTd15i45EenPobZj/yI8mt/5FEu4iP0WmdOPOmUU+vMiYmQn70oPzpE
+yYPtrSRUUA9NvpeLzv/YWp68uXm1C9OMXzBPmnHtfulL6yp43e8/TuebEon3jg9LTqsTzp+x/6p
QZQ7dkmPv9Scdo27XCPzDeqTLou7Tw8W3Vn4eckETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAEZkcgajdTQ0PDLmH3TLRp0aj5pHCRwkgVDlMf
S0OoDWVMfSj21IRiR1UkvrKjLyslsdEaeuY05WFNta7EZcw68cu4ikN+6nTLmlTsaMQnHmsS9Piy
pnVslJ915a+u/8VOcYkhW9X/ai2WKnbSkQthThzm2jM6jWNYnyhBfd4tXoJALBobo0mkp+cQiHSC
Kh098RQDez0Q6DUXDOKwrjjMEeWnx08xpC/9tEbPuh7IGOa59oqevNqHYig/vWLFsOKr/NgTv9qP
dYRe+bNixpyY+Ghf2seQ0C3d2Nh4dnwTxrB3y1tTOFxzGjaQo/SsXHh/Yzrm6pY3Yhwwpl/aYz2Q
WUzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEygewjEHagpoB4f7d1oqmulp1HXilAXSpGn6lzpVUtKL7sYZj/506uulDX5MUbkp1jYk4e58qtu
FT065vJTMWc5l6968isG/spVxgl1tmFd+5U/awh61tkHxdP4q5FfY/zUYljRM8Yfka3mLdo6vhKo
O0Rx2DgHRXQIeqQEIJ0OwroOoxhAUeWr1mRPz3oZM6Y5hu4kzVx7YIwtcz1BFIs5Um1LTt0JmrXS
XvlVzEwMdNjho7H6UFUKoMWHNZrm2OCPKK7OovzkwR6/AdFGxbsYzo7eUhCYHs+Md6e1oBwaBdud
uWt14e6hCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACXRIYMYdqHcPg/HRJkej5pS6Vuo8KRKm1lM61YaGKgt3iGVdd4JmXTWxjPGjlXrWqR2V
njFS2rNGXOWXP73sY1hZx479Kga1q4w11xgbYhMDHVLGY037Ij97VR0segR7+eus9MRGsMMHUSzl
Un7tFRtiKTbzmqU8QM3OMxzYkDainiXGZXwdQGvaODYcUvbyERg9ieQnsCUYfIinWKzhp1j0Woth
q7GA0iPqiUcMrSsGej1J0LGu2LINVdbjj8hO5yztsNF+sVU85dd6GYP8g6KNaGpqGhvvYsDPYgIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
MAcIRO3mrpHmmWjcgZo6UDUKkynspFHzih5RYTM6BL1smKNXLSxzRPMyjvzLdeVAp/zUo8qPPMpP
TIny06On4Vct6LXf0l869fiRs6yFRac86LVXdMqrXnGYS7TGvBxrva6+TFBXgBlO1QdCDSDi0zgQ
jWLgElxMK3rGrAm8YgoU64jitMxavsqWmfyxU370PCDc0Vn5y7OzL+bYMEbUl+doWZm5phjKyZwx
PX6KG8M8J3/1vrDFDj/lly5UrezRa21wjEfEuxjGYmQxARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROYMwSigHrnyPRstHeiUZyMqEaUGlJq
QpmroaNWlB5hXXNsEHr0CPWijGnUmdIrVgxzHPwRFU0zxo8ctPbslat6P/ixpv1pTmxu/Kt9xTAL
dqq1xUZ7oSdOtT06YkqYyxad1vBjrPyy076w7bIoWVcDKQ6b1IOkQ2nj5Rr2AoWeOQeTnrEOSjz5
xjDry9joFAsfipSBJz/GKpzWA0gePWgxrEBmjJ442pdi44ugV/6smDEnJmvKhQ065WeNGMRmTfmx
oUm0b+WXHb6yw587UA+PAupz5OjeBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEygZwk0NTWlvn377hZZJkSbHI2aT4SaUZpqQFUzyhy96ko1
Vz0qa9SLqhAaP3SsKwZriGpJ0SP0ZT7lL32xU37ZKy6+jKlTVSE0c+zR0Zd7Iy6CDXuhJ4byMUdY
Q686WOnRqZWxlEt+ZUxiaP/yYV63CGLdAcKRTQkCcTTWxtEhmtOXInsdWA8AcaWTPXPstaaxYmDH
WHDUl37Kjw5hzhhbfCmA5gnAPqRjXQ175ddYObFhzDprxEDQy1ZzdBLG+Ci/nnTkx491ms6D7ZBo
SzU2No5taJA6NBYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMIEeJTDjDtQTIsm70aj7pJhz+ow+uqyjBpSGyIY59aKIenRl8bRqTFmnMaev
jheqvEZsaktVAI2+tMdf+bWmmMwR1tGRg14iP+KVInvFrq7/ZV2iXPQaw0tnw67MUxbGYsOcfZVS
PS/XZjtmE10VxdCBeADYVPWGy4Niq4OW/oIuf8Vij/JBRyweZMalPzEpgMafJmDY0BS/OlYsZdty
z9jyYOrBIRbxVVitImvl1/nIj+CHrXJqL/SKxf5pCL3yM1f+0p914uPfP9qouAP12OgtJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACc4hA
FFBzB+rx0VRATb0ndZ6qj6VHh6iwmZrTadFUM8oaoppY+avmlblqXrNhfKFIW7WnqjElF8Jc+fFV
fumIJX+thapSH4uPcpbr6BD8tdesmKEjfrln9qc9af/as/ZS7a+aW60rP/7aUznWuuLU1BOoO0Rx
6LUhegp9tWnGrAtSe3BYR68YMcwx6IlTHQNYelJho30wJoZy0LOGv/LjqzFrenD1AKArm85TxtDd
qrUvekTxWCcH+Vmj6RzKL1+dGT2i3OU6cXQm7kA9Ogqo/4qxxQRMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMYM4QiALqXSPThGhvRaMGVLWj
jFUTSq9a1Rjmmld01IpOjUaNqGypL5U9evwQ4iLUyyJakx92jBWLMQ0/etZZQxSD/BRyy0e22KvO
tfRjHV961bEqh/KjR1ctiocvxdv05GesfaGTr+zp0auRh3GZP6b1CYG6Kmy+3KQ2TmzpyVGOdWAd
RofDjnEJlYPqAVIM2WPHmh4k5ZRPac8Dhx7BB9vSTznKHn/m8tNc+WOpkr/MyQOLDSJbcmHDXH21
TucJkxyXfNjSENblSwH18Ndff913oIaMxQRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwATmAIG+ffumeeedd5dINSEad6Cm3pMaT3pExcbUjKKj
XlSCnRp61ZviQ80qIj2+ioUPtvRlPOUIdV6jVyytaV+sIcRAlAc7xuTXmB5RoTM+5f5Yw4ZGfHrt
UXGxR1e9XtqVOVUvK/twrTBlrPzV52GtJtHhanKqMtbhBUYPimJLX4LRwdVzEB2qKnwFKHpBKsF0
lF8QyaExMbQPYmlvxMNG+4lhttMZNMeHpvzKLTtilA+6cqCXDTqkXCMeRdfKX8aVHz1xaNhTQD3i
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
h1JPDulLkGwem9K/fKDQI+h4UBE9SKwplvyJx7pAKX8ZRz7sVfZaZ14+UIqDDj+EMYJPtT8xyU+r
joV9qVd+4rGmeMxLjjHNOcmPDYXUyJBoVNWW6gAAQABJREFUS8Y34bl55i8mYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAJzhEDcgXrXSDQh
GnegVo0nPTWgCHWk1KHq7tOqSWVdNamqHZU/c43xpyHoVRzNOnp0iOKpZlb56ZUfO+VnrBzKr71q
rh5bxSG/6mCVHzvl1xo+8kdX1v/Kj/zsR/7Kj05r6CTSK4fOqPWaexJ3hxBHYHU4Nqf4rJV6wWSd
xhqN4mAdPIZZWFcsHVg6gWBe5teYHsFOcYlBQyc/cqOjeJkxfqzRJIopfWmPjngI/tqXiq01136w
U36toVN+rSkXa/LV3gaFblQUUJ/FosUETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETKDnCcy4A/XukWlctMnRqPukUJq6T9Wp0lNTiqhOlTH1
rKU9PqxTaMyYdXoJcwQbGmtaZw0d8fBXrSu5EdYQ7Ylxaa9YrCuvcmBLPO0LPXaqY41hjqV4+LMm
UU5yMEakY7/Kpz3Lvzq/7BRDe8aubhHAugMUjjqgDs+83LQOSy9bHZYw0rHOIUvQzFmnwJgnmGLE
MNuxRsNHRcvsQ/ljmB8U1ktf1pkj2MtfDxB64iKsE5sngmIoJz3r+GHDnKZ9xzD7KD62CPm1X2Jq
nTV8EdnSq8AcW+5APSK+Cc+O3mICJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJjCHCMy4A/X4SPduNNWrUgfKmB5RT93ntGjUgqo+VAXXoco+
5ZqKlomFXsXR2CpHWacqO2IrP+vKT62q8scwi3IwwY49qu5Va5orvnIyZ4zQM5c/sXRG+ZNf55Wf
YjBX/hhm0Rr+nJ91emzRMe+SaBNdCVK9IW2UmIzZqAAAB6iCpEPTYyuAOriKizmo9qqx7LFhjRz4
MRcY5QlVFtaUH4X86LU3bIhDfAqWtX/miM7CnDzKz5rm8pE/a+RQbHoEHaI19sYacZQ/hjkn89J+
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
Mz426BFSsdjjKuqsp444YGlHHWUu4znnLdUz+28dOmyxQcgT0zYT13jiLdXWPsvThriUrTO2/QUf
m4mPrfgru9XZZrFJjYkNefiY/ceGMnXaiu8+kbhg62d7iaWgm7HRT/zpY1zqxZ+2+MqlebAnPvbg
EdcYlI29spvYJ/G1JeVCjGsdOv3Mkz5IAH6s2EDj2Glj01g6LgGUETstedQjdFSiZp1xSDk0LMHi
LdUW0zK+yPQjLmVsxEdH3njUv7ku22EdZXAnPhjUK+Qti68f8fGnjFBPnpTLdom/VBsPxEOHrbzY
DurEOeOi11d7/fUjLjrxV3bDOff/jI8POjHwQ4h7bgd24Nt/ytqRJxblyT/2iPGps/8znnE245s/
6LAlRfQjhu1Gr93EQG98/GadcWyz7TUOvohl8af9GZ+6iYH/XfjGMQ1/51q+4Q6xHP87H/N56fnb
3y+fE7jp/dvfGcYTBE4Yf8/jn8+RaeNP4w9jrOPtym5iufF352O+L42/jb88DwjvB/nmn+YfnoXm
30XCEt6J1h+tv1p/3p4bXEeYtv5u/c28wcW7olgmRebz0vqz9SfPA8LzQb71Z+tPnoXWn4uEJbwT
rT9bf7b+vD03uI4wbf3Z+pN5g6v15yLhRuSDFJnvS+vv1t88DwjPB/nW362/eRZafy8SlvBOtP5u
/d36+/bc4DrC9HWvv89zk7imEx+dcl7/YMe6x1Rbx7w5/3HPqef9J5110x+9+Ct7WX/i77xqO4gD
vgeQKWtHDGIh1CPoxCcGF3W2x3Zov6q2eMTkQmaqn/j4K+QnBn534aOnrTPeKl76KyY6bOw/fq/S
f+yIga/rVPmf/RcfezAQsUnF3SrWH+MRw7jaGQufiT/Hf+JQZxxTdMgZzzIpMu3FR089dY8SQR4T
xAb7IEIOF2Xz2kwcdFx2cNbhpxjLzttpytpBJqSLg403ARv0yMz7cOhLvXbkFfF9qcQEXyEGh47F
x2bWz7jmqSdvW9WbrqpLPGy5iMuFjXxfi2HMZbaJ94KCeeKRt//EOWMv1YY38Yl9xrf/2CPiy5Vx
bTs2YKPHlvjarOylj+Stx4a8Me2HNtwfhPqJLyapeezEp+3EnoKdQixsvf+UkYkvh+jxxYaYE/Oc
vy++/Q9/Ebsk/vfnCy56/vb3Ey56/xp/Gn+bf5p/W3+c11yUWWeStv7auXjV9W/rz31ebf29Xp6b
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
Ef9+Kz2vfyif538OF8/5b+KTFx+7+fzzTiDGM53vCjqFPomvLfGMj049toq42M0Y4BDPmKbEJA62
1+IRRyxiEN9Y1BHnVfGX6QVjxiSO7cAGmW23XeLDv/7ia08s7a7xb79JubAVnzIy+yO2tuf7r70+
xsJPnb7YkveibL9J0SOme+kBfwV+gOstF8ixI6QIsWd88rNu5rWfqQTZceN54+w89cY2JY56Y57r
ruGLgQ/1xLBv6CiD74utPSntMV3ZzRZ7RDttznbTRtuJP/uKnjYh2oJj7GmLHhuEPL6UtV/ZSx4d
oo88ayuW+OLNeOSpR/AzpmXxtTMmsbRFh2BrjOlnuya+8bDH1njGWqotFnWI9uaNZZn0jG/dxFdn
PNNr+NbpM9tyDR+c2X/9wt+ffziTE7k1jf/92YEPRW4on/M9f8c4KWe9f40/jb/vnzebf5p/WH82
/+4zK/OF86lp64/WH8wdriV4Unw2ruVbfx1cyVnrr9Zfrb9af/EMzG8lrT9bf7b+bP3d/oOV5L5u
cm1p2v6j/Uf7j2NP4Xsy1xEz3/7r4Kr91zasXv6xv/Vn6+85VrT/aP/R/qP9R/uPfZ5kveC+w7T9
R/uP9h/HmvobYf/hHulV1z+OC/socYwRlueaijz2iKkHlF1/n/GnP37GoH3aGssydQj6aafvVnnz
B3zswNePKg82i4/OeORnXPRgT/xr+RmLGNgQB38u6tEh6GkTZXXim2KPjYKddTNPvfFJrSMVx3rr
1FNWp81SXdo68dFjgy8y7SkbxzrS8/23jhiuv/Qznqm2lJVz3Zlz7e6VToB7Od5hTDxj0kDLkg2p
1xoOIYg3h7wPifbGJdb55miLn5gTHz2xPVFvLPTEQ494c8h7k4yDDj/xZ4zZHvNnO2Lz69DneEu1
YRFPfPIzDjbouIhL28gr2mqjHXrtxMcfUU/e/tM274X9v2Y/4+Iv/szjZ3vQg+/Bc8qI7bQ/2Bib
lBiTr1W89J88go22E08/MSh7//FT8LfP4lNn//GbIp46y6QIeMgZ3/5fi3cN3z5ds6dOCf+4/3AS
//uT0fN3jD+8I71/9xv/Gn+O+Wd/o/a/jrfqLJMijT87D40/jT+8C1yNv80/zb/Nv/fZf7X+aP3B
vNH+d19P+df15rnc+nNnpPX3zkPr79bfrb/bf7T/av/Z/rv9d/vv9t/tv6/vJ/v3133PwBjhvy33
/aXvL31/uT5e+I7w1vg9pu8v+xjS95edh76/9P3lG+n7i+Ob493+lN89/rGWuKv/xiIGeddfHppF
zxjLOzS//2MrvjFI/caxshfRzzpis/6lXYj+2HnWzzZTr981e+oQYuBvW9Eh6slji808eE39NXz7
T93E15ZUPHWUtZ1+6JGJ/yr9d91nn4wz8ahD0HHpIz51+tk2eIRn9dgglL3/2Bhbv7O9ePie8dHh
h+BH3jj6neNh+2AR7MEBXuA4SSUvUT6kEiXpdlhbO2ocSKa92kkeqTeAOh8SdNSBh0478fVBL+bK
Xm6yOLZz2ssbvgg2to1D0mCIb5vEp4y9PuIbCz9sKBNz4lNWv7KbUMbnGj4GtIU2aXcffPztt+nE
J4/YF2Lf1X/qvDe0dcbDn3qEPHFnGb326LXBjosyQl4Mbe66/9NH7kjRgzHxiTvxsRN74uNzFz51
xPD5u4a/qsNfHMR/z1/vH6PBMdY1/ux88Fw0/jb/NP8ez4BrCd6N1h/7GgtOeEZc/8FN66/Wn62/
b+8reUfc/6xs+4/FAWMFF+I40vpr5wNeWn8dc2/7//0d4eng2Wj90fqDOdZxs/XX/k7wbrT+bP3Z
+rP1J+sn9+ytv9t/tP+6vd9iruRCXEe0/9r5gJf2X+2/mDe8nEt4Ntp/tf9q/3XMG+0/238yJjI2
tv9u/93++/H77/UqXdYed33/do16bfzF3zXL3P8ai3eVyzIp7y4pemOfbSjzrs+DyPPgNDEo48+F
GI92IujRGVss2+vzc7bBl7o5xmAzdWd8+sOFTHzy4oNL/iH4xH5s/8Wn7Qhtk5PZRu+N609tsFc3
uSGu/Zfzpdr6af8tYyc+mIi+5PFHtMN/xrcPm9FT/hH4KWPOWDRc8SGgk1MsS7gvAIRNYvHRhrjW
SRRlRPLIT3xwtKVOe9tlPA4A89CBj703jHou41iHHTbWg48OO/uwshc/8gj2CHbkbdt82NRhpw1Y
s23iY4uN+Cu7xUTHpZ946BDL9mcegFanrWX7hS86Y2B35l/fib/MtjaRoicGduRn/9UZw7L4+pou
9wu+bdNXG/RT0GNj3172/BnHtugnjv0XH6xpexe+Nq8DnzbY7vBh4xDvf/wf75/jn5zIluX5vr7K
849/z98xVsqnvMCr3Pb+H/OvnMiX5Z6/43np/dvHFp4N5Nr8i77xp/GHd6X1D2/DIa1/9rHUuaX5
t/m39e/x7YLxQfEdaf3V+ms+C84hPCetv451Fu+J0vrz4EVOSH12fJ6af5t/m3+bf+c3fscLx4jW
H60/5rPgHMJz0vrjmGdbfzhy9P2v9efxXhxPRetPx07H09bfrb9bf7f+bv19rLGdLxwj238c3MCF
cwg8tf4+1hn/tNffPK/KU6//iGvMF91//71VW8um+tJWnp25/hCDVDGO9j5/1hODOuJTJ858LtWR
Eg8xHvhfXRfjH0K99pSNQ962GwO7iW87sJ167IypXhvxabtt0hYbMWdefHTM3XJi//HXb2JjP/Gx
od/GAB+d+LZntk2sZbYJ8dSRKuqNhX62SyzxXzT/YKu9WJSR2c+Jj/7JRdAnD3wTkA5ImB0mPecx
R4etqTfTjusjsS7y9KWem8QDSByuiT+J1tZYy/Ry06lDxLf9+BMfH/Lgg4Xgw4WPuulvvf2b/uQR
UnwsG4sUf/T2j7L5lb1V769Ng0VbJ6bxp79tI9V2ZS99uQv/VfpvX4hn/8Ah7/3TBr3tox3kbf/K
bn20z9jqbx066/U3tjb2ZfqTR2b79AcfH8T46Kb/Vjnqff5mX7DnehH+rH9qfNo445OXP/LIrA//
eP6e4v6f+Y3/nr/ev318b/zZht/G30WD82PzT/MPz8JTrb+af2+v71p/tP5o/dH6w73seXxs/m3+
bf5t/dH6ax8HHB/5vuiY6fxJHcKa6tr3R8ZShHr3N62/Wn/5/PAsIPP5aP5t/m3+bf5t/m3+ZRxA
mB9af7T+av25vwuun7aXY7wf1/79HZu5viKvP3lk1rf+av3V+qv1V+uv1l9fz+sv5rTX9f1pHjJ2
/rz2/WvyR542cTH/cuaOPEKq7Zx/iYlQT14f5+/ZP3TO/9oaU3/xJj4xzvjT33oxl/ml/eRtAz6M
GZTJE5O89bMt8GdfzvX6eyaRMrFmm+WfullP/8HhmvjkbdPK3oqlv/WU7QspIr7rT/H32v0vtmf+
iaXYJmPZf+rRyQ8+5M/jLzp8EGPtpcNf/rUV31T7J0lp9OsUHwBwvLxJdHTeHDqMSMBe2v3ISwgx
eZCIx82aNxKdRJGK4Y0infhi4mcenyn4INRTh60xOKw8XwTqFPFnu8UhJrHEPLeLGMaiTj98KPsi
0X/z2FAHLvn74tsWX4CJv8Jt8Yj/InxxSYlHLLjSD71l+iKP6pfq8gKSR/BFJo+vcv+xl2NigCEO
qfgre+GXPHq4U7BFxKd8xreN1OkrPn0kJnVc9vmMjx55Hfiv0v/w47/nr/ev8ecYw3kfGLORx4z/
jb/Nf83/rX9a/7X+bf2/jwPtf/Z3gbWF4wL51l+tv/yG4LNB2vpz/xbEu3Lf7y+tv1t/t/4+5hm4
aP5t/vWbb+uP41lo/dX6q/UXK85dGBuQ1p+tP11Ht/7e11KeP4AXhHfFsWP++6+8Oc+Stv465lx5
gcPm3+MZgg+4QRp/G38dRxp/G38ZF5p/jvN3jJFw0vwLE8d8wR7fccN5lvSx6w8wXuX5Y6y6C586
xHaRx9Z7SFlx/qM8x793VhkfRV/6bR+Jz4X472/4kMeeOtsivnFW1SbySEFb4nP+09jU0U5EfGxn
+9AjL8I3xmwDfvZDzPvi209S8WkLQnzwiCn+yl4Enfj23/uPHiElBhf28m//qbcf1BlH/VJt7Zr9
NjbxiENZP/DJa0OqLyn2tlv9Uj2dCPx0EY9I3ggx6Igioeqw0Y6UzpJCNrZc6CRxZbf6aQeePuat
xx6i0SMTHx8uMcjjRxl8fKwznj5nO/S0UZ/ZXvsiFulZt1RbW0z1t92WxZ922JzxZ3vt/4vw7c+M
S9+JTZ341MvJ5Gnikxcf+2t9nTrskeknnliW77LDl5iTC3wR+m/eFFt8uMSY+LbPOvCpR67ZoTvj
o+N6Gf6MJ29Phb/gw18ceN9N5/2P/+N97fnb39nev/2deez41/jT+Nv81/zjvGva/LvPM64RnXdN
m3+af3hXmn+P/SfvCjLX674n6MjP/Z/2zT/NP847ps0/zT+MD17Ou6aOK42/jb88Ew/9/rdc+/62
OHDcNW38PcYexiDHHdPGn9b/vCvNP80/zT/Nv60/9vlyDYnt/8d6wXUCawjyff/Yn4/5vvT9p/W3
+w7T9h/tP/z20/6r/af7blPn1a/X/Zfj21oSPPn3J2Keebq2/sAOuTb/oju/f9hei4vO+dx6UsT7
RCxisv5Bpr34+Hg/8UPwQ4xnfH2oR6c9toj28iw+8cmrx84f2iUvvv1fqs2e9iLGvYZvW6adOOLP
/m8B159r+PYHPy75MjUu7UWnfmU3oZ1izj6b1x47+4Kj/Te++PbbuNRjq/2Mh4926u3DGX+Zbm0n
fVIB8HWJsekkHULs8DmFAG02w9Mf7BFsuCQeHSKZPDjcKAQ79TO2OlPqruFTfxY3Jt5Y6rEzlviU
J74PtPYzFR8bebH+3AZssL+Gj881fPSzLeTBIUVsu2V1MyWPEB/7+cCinzFpG4ItAtbMaztxr/GP
r/33/ot/vv/GJJ33nxgIekR+zyn4xBYH2ynqiUObzvizL2d8fGf/tZ2p/RdnYpNX/1D8V+k/NuKE
f5sBeYn/hz3/PX/788RzNN97y73/xxxy+807eCPX+9f7x/tz3/m38ed4jxp/3r8ObPxt/GWMcJ23
vy3HX/XNP80/zT/Nv60/9nHAEdI1BePjte8frb92ptzvndPWH60/Wn+0/nKd6bhqqr71Z+vP1p+t
P1t/tv5kHFBaf+9rh/Yf7b/af+6jwtxzz7xjxUzbf7b/5Blxn+G8YqoeG56b1h+tP3gOFMcSno/G
352VOebOvFzN9HWNv7y3XK8Df+/l/te+XLv/9g1L2qItKXWm+DrOmC7VJtgh2GDPM0aKzJjUc1AY
MR71M0+dPuIznmEjjvim6sGc+NYv9eUMqfi2Twxt0BtPf20oe2E/68nTRoT2KtqQ2jZtSdVjL44p
dci5rH6m5MEXw/6hJ28998b8yt7C13bi4Uv5fI/wVfBDruGjn/hyM9uHHxhPLoI8eeAVcHZKwjhI
6gDrgVU7Rtk8vpNQCNSXn+3GzvqV3cr4cBl3kj7xIZg64pByUf/muqi7Kw5xeTneurETZxUvD4n4
6khtJ3X+5Dh68gjYtAF88gg+XIrtFR+7c71l+6Uvevxfhm+/zv0nzhkfnsSz/i6/iQ9nk3986QuX
+OiIZXywufDl2fE+zbj444N4X6af9cawP6QvwjcGKb7wf8Zfqi3GXfiznS/CNy7x7P9T4b9K/8M/
Jqb439+/nr997Hns+9/7t49pjX/7HMbz5Dzt/NP42/jL2ghp/mn+cd3oHPyY9WfzT/MPY0rzb/Ov
H7haf+xr+9Zf+/eL1p+tP1t/bsvv1t+Lhtafx7efvv887vt3+4/2H+0/2n+1/2z/2f5zX1e0/27/
zbqy7w99f+AZ6PtL31/6/tL3Fxh4qn//ZVzhO87r2H/TRuYvxPjkWeP7b5ak2Fl/bf3PM0/9HP9W
8db3J+rxnefvJj4xKCPzuxV+9p868dGz/iLlwl9822x86tERB3z8xKMOsYwdGPqQ4kc9Yh+mHTbi
uzYGe+Jjg+8766Kd2M1+vQo+8fDBl3iz/5aJY/+NT5mL8uw/ZevwJz4y9frZvjP/1OPLZb9Wdot1
jqMv7bb/+COm5LGj7EUc4r8WsdOvI7gPwOyAeHaYsjo6aedpDzbGQO/NJY+tBOtPWTE+dj4o6LAx
JrbkvYyJHtGeVMyZF0//2R7s0E/8VbyFP/2oE488dZZJfWmpMy9XtoPyWfDVjrrZ/xfhGwcbZPb/
jH+Os3vsf2f/bQs15BHbQx6dHFJG5AF87j9iXltSxDJ5YuEL/my7tuLb9mX2PnxjkIo58+IRA7FM
3vjiU+Z6ET625xjn/j8Un9jhx3/P33oRbt4F0vn+9/41/jT+HnMX80Xzz87HY+f/5t/WH62/Wn+1
/mLVdcwxrb/2ORZOWn+2/mz9eYwNrT9bf7f/aP/BOND+6/a/f/At3LmCdwSxTB7OENYUr/r9u/XH
+zls/Gn8afxp/G3+af6Z5w+af4+5svXHttRq/bVocN1p2vqz9Xf7j30fxjvR9/99rHR8YO5w/mj/
ecypsARHj91/sk55Xe+fbfP+vez7g/fXvpHqS956+u0lBn3wcLFrcetMJz6xEGOSyqd6UsQ2uKab
vtRRnvjgYCvuym5i2baTyj/pGX+WCTDxjYGevJj251XxtSc1P2MT33ZTbx79LIs/24JOG+wpG5sU
EZNUX/Wk4HEhxtKX1PZ4z9GZt05/8Yk1Y9hO9E8ugj954BXQDkkEZW+8D6Qk2ElSRfK1MQ5lL3Rc
2uJLmTj6oSM/8TkEzAupDe2ZMVZxayt22qAjPy904hMDmfi7ZveZfbT/9pdUP31oD3bWoSd/DR/f
M/70w4d6X1L7rw114hELe2zt/8pu7UOPD6IveX1nHltiIfphR962aGMsU3yMqQ068lzI1GNru8wb
y/5QftHzh50+K7vZ0k5xjHPGRy8mfuanH3Ffhq8f8RDa+lT4tCX8F9//+H99z3/PX+9f40/jz4vm
38bfxl/GiNY/i4Qlrf9a/7b+f5r9V+vP1p+tP1t/tv7cx1Pmlfn9k3ej9Xfr79bf7T/af7H7av/V
/rP9Z/vP9p/z3zHJcyFT79oRvflZT779V/uv9l/tvxgL2n+2/+77wzGH9v3lWDe0/2QV9TT7T9Zi
8Pk61l+0kdhcrvnQmT+v/yhfm/+1N/X+Mz7M/Qf1xOBSJr76aWfbqOMdc8whLr+mjF5c2uZ7uLJb
WylrY7sok596fdGbX9kLN9hyUYeIT37GMjY6+6+N/aKsYId+YpIXz3rs6csZXzxS4+ODiG8devLK
1MuhePJmGdszvvcCG+rO+MbEFxuuM776WWf+7If+yWU26MmDr4AQg5zJ4QHyRm8G648dpzxvAHbY
Uy/RpOg9CEw9oi31PgDojS2J+E18eJg3jLI3AL34pNqJL+aqutRhBz44iPh76fgVadqJiG8/0KND
xCGG7dDefqBHZ1teBd97stwufRWXWHfh39V/8YlxxtdH/qk/42uzqjZs4mBvn9Cj009eZj15bLim
Xp+JT719XNnL80Xe/k988tfw53M28aceX2K+CP/cf+3tx2PwX6X/4e/3d92mJ7//8d/z7/vM88X4
dx5/ev96/5hfkKeefxp/Gn8af1p/tf7cx9fm39Yfrb/2OXF/I45vF60/Wn+1/jzWi31/Ob47PvT7
V/uP43lifG390fqj9UfrD+ZZpe9/ff/r+9/+NrT+PNYLrT9bf7Je7N9/H/7v7+0/jvGEEbb9R/uP
9h/tP9p/7OtN/n4j7r/cT7yO+c/zjfOcG2MKmFxTDz5y7d8f1Z351971r/X2Rb04xJn4HJBmnkPQ
86zbDvT4oZv4833Q3pjY0S9jiWtKPXls8DW/shcf8LG7hj9x8LmGr4567I0DJiLmi/Cxm/14Uf/t
Ezjkp9/Epx4RHzvz6L1nxODCXh5XdhNtKNB+LmzFIW//TY1j/41hO6d+uT+90JDXKXSATtFRUgQi
EOrIazPz1pPSRkj0sDQ6iTEvuZSVGQ/fMz5t0obUvHZikIpPitAmuTOOOuKQJ7Xf2izVRdRpQwVY
tgU9go42eVhaHSk4tlN89IrxxFJPqu5V8On3m+vipZg44svdqr7IXf1Hf/azz/aVILNfE586/BX7
oY5YivFmH62XG23wMY8NeYS43n/6j4hF3jjqjG8M753PlfX6nTGx05f4T4H/Kv0XM/z491no+ev9
a/x5/Pjf+Pv+9Vfz3zHPzDl35ht/G38bfxt/H7v/aP5p/mFeQdp/7jy0/mj94T53rrlmniel+bf5
t/n39vd33gnFcVSd88t8t1p/tP5o/bG/Mb4fvjekc86ZeTyaf5p/mn+af+a/fzvXMj44jvz/7L3Z
luQ4rjZ7Vf/7P+/uc3FkrrQQnCl5uMeQQ5VhLSUnAB8JkSCg8K62T//S/Xv8Pbf4o/ij+ANv0fcf
/aN+s/ir+HPG3LPOeSn+Lv7+W+Nv9i77+Tvin9WPvhd/YkPoTG6eOevqm+ePH0VDjhnjUtJHqX70
6Nstt66334HKzxhzU5d1MZChDxvy+7+JtTXfcKlD4ELiK0sJuT7nNPHBZFxZ16KOj+CrS1x0ulbX
MjFnfWO9EfjkH4/sv3Me9p+65/5DP8S6nYdzc/32w0ef69eG9Evq8X0hC6kD3eCfycL3KRL0U0oe
CLtJwHFBZwtkXF5KDYZq+DGCP4KeuuhXDj4M5biGY9Mpy7j4W/VNFhlfMvqUgQd+HnRQqt+XAr88
E58+eShtb9Ub2XYN8Fh3/WLByw+YHVdWPvqhFZ85uxZ4ztagTtdBqd6teiN4Vnz4lGU+zmnOmfmA
P9cPnzxi0p76Jj78E3/Kik8p/la9ex/iw+M85BETnYypTxn56HcPTXzmqY4VX7xp/0f46qH8anzX
Fv6+N3yv2nzdf9l/Pw/a6bP7v/23+5bOX+ePe8Jzlf/Zz0X+94gjuv+Lf4o/ij+IFbwnir8+l38V
fxZ/mo8Xfx1+pfiz+JNzUfxd/K0vKP8o/yj/KP8o/zjipPKv8q/P/P2v/LP8s/xzv1PLv497xZi7
/Kv8y71Q/lX+Vf5V/vUV+df0JV8df3BnPfv7N9bib/rO7n9uxNX/0YbgN/9CB7j0MW6bcfu26q0u
nmfJNrwQ/OiyLT59yIjPOA/x/8RjXD76J74yK495wMb+9ltDdTqXiY9OHngmvnNf8dE/ZWj7X+JG
x8RXB3MFU3zmrIy64FEWPmXRCb/rhQdinD7Xr6ylPMrStj5l5DvDh2/iq0MZ5qBO58zYlxKKv4vQ
7QLEcNEa0hfhAtdF2w8/mwWirpwvST7b6p/4zmduJPGUp60sffazecWnfoa/dd82DfLiTl2M0wYf
HcxVfPipi08J2S8+80EHRN31yqc+cS1dy5wXvGfyyFzhb0O3uYvjBl7xbYsHPmTbeYFPnXHnM/Ht
d/0b240fXsacv3y2V3zkIPrn+5cfecj5UELqZU6+f+fHmOuXT32u01Jdj/Dn+r8DnzmEf/3+s//3
7v/2X+cv/5P/ubp/87/53++Mv7p/un+6f7p/un/2HBpfa74681fy2/JPbouvzf/Rl//J/+R/8j/6
2Pzv7hO7f+6/f3f/clt2/3ouvuLvD9iz+KP4o/ij+KP4Y89xi7+Kv7gTvWfZD54N7kv7u38///sH
7Fn8UfxR/HH4mO6f7p/vun84Z+j2W8JX+1/0ieE96X4W1xJe/r5P++z8O77ev/Z7/6KDOiWY6KKc
+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
gwzlFb7jG8uNJr66z/BdlzzokRhDBlL/xKfPNusHU3Kuj9YPLxg8V/iu4wxfm8Oz4juvR/hiv4e/
qb9bvzZ5hO+8vwMf3VD4j/cfdsr+xxlm33KOePQ/noFH529jv9v/7T8s0vnL/+R/vGfX+7f777n4
L//7fvyHr301/mv/tf+K/4p/i/+L/83Xy3/K/8p/y//7/tH3n75/Hd/eX/3+3fc/MtK+//X9r+9/
ff/bv7P0/fPnv//2/aXvL31/6ftL31/2eLHvT31/6vtT35/6/vTa9ye+T2Az4knzDTzqV+Sf6H31
+wfY0Hv48DyKf8S+wnfN6LHu+pG5wmcMW13F38hdff9iTFIP7Ynv+BW+41f46DrDB48xaeJTh1w/
9Uf4rn+uB5k/lpjw30S8CF4KD3U3iC+NHxSy+X0RvkBLZTaWmzz9yFCqi9I++nnUR2kfPMrIs+Jv
LDeaMmwO9LgWNiV61HWGD69zUJfyzonyVfxN5CZzhc84Y1f4jl2tn37IOU+bOX/70MUaKOlTRoy5
/m345fePPvSu9v8IPrqYv3OmfWZ/+iFKnvCzf/vv3v91/nY/oi95xv/hS/I/+V/3DPuh+2e/X6/i
v+7f4o/ir+Kv4q/iL+7Kz+SfxV/Fn8Xfxd/F3/tdUv5R/lX+Wf5JflX+vfsCzgN+EaLkKf8s/yz/
LP8s/yz/7vvDcSeSR5lLUXJPemfSxlacGe9Uxsq/D5thD2xT/FX8Wfx97yu2Y/HmS4q/i7+Lv/fz
8SfGH5zVz97//9t0zFgBncYSZ+ffOOJR/KG+q/hD2av7l3HmcIZvnzoo6XPO7NdH8c82fON9dP+/
h8+452LFN7bQBs6LOSkjz9X6GYe0tXX6kQGTR/tu1b+DmPDfSG46De46fJGUbjrWR9sX5EuUh36I
HzJDBCC+VEr4eMBgw0DwyucY/dYpJz5jKz5tceD/B6aNcAD+qHriow98ecGnT8xpi9+Bv03lbS7U
5/qZz3vrZ82s4Wr92v9q/ZvoG/66/hXf9rS/7/9X4GOL9f2Hzxv8Ne8/+7f/On/390/+J/+T/+3+
Kf45j7+/Mv4s/ij+KP4o/ij/3P0A+XjxZ/Fn8WfxZ/Fn8Sd3gfERdwNP8ffj7//4Tu1E+ZHv7+jo
/HX+On/5n/zvnp92/xz3yqO/P3N3dP8cPwLp/t1t4b7AnxDDYRfq+hdK9k35/2aEjYq/ir+Kvw7/
0P173Kvdv7st+K3c+vs3fGfxx++NP7zjeQ/fGf/gHz/y/tkjz8YfnLX5+8v1+xP3NLrcc1v1re76
6YNoaxvx1X8V/ziOrBjz/H8WH1z//kTd+MvftTq+4m+sN174sIlzo9865XvvXx5wIOYCsca/hjDA
30YYGiMzd5/Z5sXwSPLQ9mXZZ5sx+qB5aBif/bTZGBNvbYtvib4Vz7Z6NpY7HGXP8N9bP7qUpxSf
fvVd4csPL3X5aaNnXb+HxHWgd2Krj36INvQevjqu8O1f9byHjxy0ytnnfN/Dn+tF12wra7naX6wp
Z1/4r5+/aUfq2t0y+x++pf3PSev8c07mudEm+Z/8D/5S3+k9y/44u//XfZT/PWynDbt/un84F1D3
726H1W/Qq+/I/xw+JP97+I7un5/z7/UceYa8e4zn6IfyP7sdVrvRq+3yP/kfz0/+N/+r7+z+6f7B
H6zf+9kfff/d/YR3qP6z+GP/bqIPKf4i0jr2iufGPveL+6f7t/vXs9P92/3b/Vv8Ufx1H28Wf97b
w9jBknvDO6T4i0ir+Iv9MM+NNin+7O/fff/9fd9/8c9fYX/0vOL/4cUfvHf+yVffiz8mtvrm/SPW
lf9BPzw86FJ25j/+eJmxqYf6lKX+3v23sdxI2Wfs/wz+1ItuiPVAtHls28d8/ypyYX/VpLfJsskw
vqXrcMOwHjeSL0VeNyg8vkjq6JOXTcRh4Vf59PmiJz/j8lFC8PlL/olPHR7GKcWZ+sRnDB3v4avL
Q72J3OHTnnMQf66furab+PCKjx7GoDnfuX70QM7d+nv4U9/KKz79z+LD9579Xb/Y763/u/CxkXOg
fmX/8L/n/Wf/9l/n733/n//J/3zH/Zv/zf/mf/O/xd94wuL/8p8jX5/5d/FX8Vfx1+4jZ7xw9v0J
Oz37/QeNU1/+J/+Dr+XJ/x7ff7t/un+6f7gt7u+L7p/DT/r3n+7f4o/ir91XGEtYnv39tfiz7199
/9rPS/lX+df0ld/9+481nmv/tf/af33/YA/0/ef17z/Y7Vfmf/6XkrknXs0/mSf0TPwN7xn/zP9n
DHeV/zBH9Pj7w616h4++9/yPMpQTf66fvQupy/Is/4Bvzn3yop+10DfXvzVv5Foo1QHvGT4C760f
Pcj/VeTC/6pJb5M924S+SEqItc31UZ9js86Lk1c5NhA4vviteuNx4/qy5VcHeqkjp86tequLuepU
Vj5KcVZe+8UXB93gneE7R/HlA4e687VNebV+dHBIxJ+61as+2tDksT3nAv/khecMn7Wu65+6qZ+t
H32OndWfxUdH+K+//zObf+T9Z//2X+ev8/fq/ZP/6f7r/n8+/uW8nMVf3b/dv92/3b/dv6/lv8Uf
xR/FH8Uf85vHrPf96bnvf8WfxZ/Fn8WfxZ/Fn9yZxtXGVpaM+Xexnav4U9tos+KPfWdgl+Kv4i/2
AWTZ98/Xfv+AP9HH5H+7f7p/D1+iX5l37qx3/xy2yv+yW/r7W/fvf/f+xR9+xfu/HaQf/xib0Fzr
0/8q8x7+9N/qszT+UdcZpvKMTXx0QBOfOsQY9avvH/CgV3x10e/crE+d7+HPuVLnbkcGQq+6LWc/
dWgdUyf94qvzJvA3/MPk/2bS+OsLZU28IMbl4eXA54vbqm9EP6QMdTfpyq8eeCDbvvxVl/hsWH7R
P/U5BhYEj/KU6Jxz2ppveNQh8ffWvl7qyomB7n9+9DMuIb/iIzPx5aVc8ZSnhJCFzvDX9e+cP+PT
/wq+vMg9gy8P/M6f+pX9GZPO1v8qvroow//17z/7HxZo/7X/Vv/P7tCnzfuK/vzfcUdPe2AXyLvl
2fuv89f56/ztZ6f46/At+d/9run+2c+G/3b/HmcEm2iP7t99hxR/7HYo/tpjUfYDZ4O79ez7C2PF
H5sRNir+OHxr8UfxB76h+OvmGt7+wSacDck2JdT9u9uh+7f7l7NQ/FH8hW8s/iz+Lv84j6fKv/aY
ofzriC3Lv8q/uDfLv3bf4L/mW2u7/Gu3SPnnbofyz1+ff3IGf/X+4z17V/LmX8FnvjzPxl/yv/f9
B7739h880CN8dPBMgn/FN8eG7731E2NNeoTPmPjUJTFoOx/HHVvXL5/61PVXly72r17ENnnXwUvi
MBiI054vzjH43YSM0/bF0k+dfog2dQ+ZG4M+H3UxZpKo3PxwcIa/iZziz/mI7zwpxaac+PxIeq7/
Ct/1IK/erXrTBfbEp19++h/hs34w4Uf3Fb5z/i78Z+3/DD48r64//K97/9m//df525zQRs/63/xP
/ge/+RX3b/43/5v/vbnf/O9mhmfi/+6f7p/un+7f4o/jmxB3KPbAf+IfIc7Ie99fir+Kv4q/bsel
+OuHv8An+OhL+Dbg99fir+Iv9kf3b/evf5Mq/ij+Kv4s/i7/KP8yZiRGKP+8/70DcTQPZBxd/rXb
o78/7ufF3IvSs1T+Vf5Z/r3H2PrN8s/yz4/mn/pWys/ev+zDV/PfV/Dhfcb//38b33vxN3N9Nv6A
79n7B76P5H9gXNl/G7qth9L3BIbnXxuq4wzftaLjryJe5N9OvFhegGux7otzffT7Uu2jhA9Cft0A
9t0YfvCohzHrYsI3N4+bjn55xaMPUpa5UcfZcMiQFWOr3sj5wOuYcrShj+BPfe/hM8c5t0f4jEmu
37al63c9z+DP+V7ho/8M/8r+X40PTvi+5ff3f/Z/7vx7jrTX1f5v/3X+8j/5Hy2g3+j+0yJ7+V3x
R/43/5v/Pc5a/mc/D/nfY09Qy//uubzx/Fflv90/3T/dP4ev6f7p/uE8dP8eZ4Ja92/3L7FH8Uff
X/EFxZ+P//5mHOF54U7Rh27Vu7+/FX9hkZ20W/evFjnskv/t/tGf5H/zv49+/6Efdb90/3T/Fn/s
9wc36vz9U/HXEWvoN4q/DptQ8+zoT7t/v+f+nedyvoGvtj93J+f+I3//YI6vvH/X5BpYl30Tn/qz
54/fVj5z/4Olzq/EX9fPeiTPCPad9Ylvfa4feedK/6S1Pcf++DpG+DcQ6/CFsgHPNqzjk9c6Npjj
yPPM4NRxN48HBVmIcfrYgBN/a95IeUqeeUhgcNzDz4ZjLZQQ4+j3x8vWGYMcX/GZC2Pqt/5ZfOXB
hpj32frBh74bH/1fgY8e398j+6/rDz/7t/9+9n+vnv/OX/4n/7vf+90/1/FP9+8eCxJbQcUfxR/F
H8UfZ/mf/sGPG/gK/Sd1iNLx7t/u3/e+P7h/bpvnx/7J/+R/8j9H/ua3PM7I9K/53+4f/Wf3736D
zPNR/FH8Ufzx+O8/+o/99JT/4z+KP4s/iz+LP40fir/3vcAdMeMr6t4f1KE5rv36+0N/fyAOg9gf
3K/+/sT9wxjkeP43/6v/yP/mf9kL0LxfqOs/qENz3P3T/dP9s94/+JS5f26b50ffK/nf/zYZ7zJ0
PLv/XsFH57P7nzmwVmWuvn+8gg/vtJ/6wcBW6tqqp+tf5VkLsjzq2qo3sg+ben6Rv1q/89ql/9J/
WfS/hXyxvjBKN4BjlGwcSl40dYi2L3S+dMco1Qcvzp+SYJGDiAxEn/joE8ODyvgVvnNxA8ILWaIP
HNorPjIQY2f4yjGOHkrntlVv7RWffsi1PcKXZ8XHPuid+M+uH2wIndAZ/j9b/zP2/y78Z99/+Pt7
5F1+5fvP/u3/zv/ho1f/q4/P/+R/2Bv53+6f7t/9HOgbt2Pxdi6o028MTZszA53Fn8UfxR/FH8Uf
xFdQ8dfhO/GX+tjiz31vFH8VfxV/7WdB36DfxC5Q8dfhQ7FH8SdWKP4u/zj+jrD+/aP4az8jxZ+H
7yz+LP42xij/KP/AN5Z/lX+Vf5V/4Qe8G4ic9AvUyz+PGErbUJZ/lH8YR5V/7T6jv/99zd//8C/f
+f3P2E8//4r/Z27Qs/4PPuiZ/JNzBDkv6lf3D/Z59fzBP+XEeWb9/g0cXmiu33fF/tcXwAOvcpTg
I0e/D7KTb2v+vcRC/k3kC3Oj+fJYI3WJccg+Xy4v3ZdLqTz8jNFWdvLNTUqdQzDlt+bbRqauDjcT
vFOf81DXxIcPmvziw6cM484ffja6uJaOwzv1TXx4eT67/hUfvGfWv+IjB835un51ntl/xUfHe/i+
77n+X4nvusI/9l/2Z+f+mv3f/tt9X+ev8+f9l//J/+R/u3/wA2ucTB935lfFn92/3b+/M/9p/7X/
2n/33z+K/4h+uv+7/4t/iv92P2CcUPxb/F/+U/5X/rv7Rf++Rrz0kb8/6Vf7/tz3574/3/89u/i7
+Lv4u/jbnIM70nrxR/EHe6H4a98HxZ/F35/JP4y15nmyT5/7u/0v83Aun/H/nJU1rngv/9K2z+LD
B5HfOW9KcS0dfw/fPFF838V8X+oCl3HIPucALiS+8u/hy4ce6mf49P/riAX/W8m1sRncMG6MtfSl
039G9p9tDPjBgodxDhM0Mdf6R/DBEN+NfwPa/jnDx4lAzsu6vLNk/fC7Tngn2X+FT784761/4iJD
+8r+jEHv4auTeXwl/g08/Oz/YyNc7f/23/ec/87fboH8326Hzt9+Xz5z/2MryHvZur5qllf3703B
Dx3Us3/2Z9+0//Z9wJmAPEucj+LPm0ku8x9tNcv8z+5bved3Cx7/2p//zf/mf7t/un+7f/EDkndp
8UfxV/Hnfio4C1D57/3fIvQVsyz+Lv7mvJhn3A7O+Mf+8o/yD/xG8WfxJ/tA8i4p/iz+LP7cT0Xx
526H4u/i73kWvCtmWf5R/sEeMc8wrrC0Hx72TfHnfyv+xD9AX/3+0ct++oj/YT6Svoz5XcU/7GEe
eWd5hu+eB8P6M+vn/xEXghdCdtYnrvMRn/KMXsHnbELgQCu+uvbRv/xfF/mXL+On6bNheFG+PDYG
a+VHwm5wfzDspqE9X/7UgR7HZ+lmUP/G9vZD5Ef4jP2zPZTI8tB+D5/D8f9+8Dm/rXmT9126LvFp
Oz/qrJ8x/vPrj/DP9IDvPJ/B39hvh/cj+Oqf63gWH1zl0POr8cWmDD/7t//u/S/n4j3/85nz3/nL
/7kH8r/53/xv/nfG/90/3b/FH4/zv+KvI4bCX5APP5t/GntQFn8UfxR/FH8UfxzfX4u/ir+Kv4q/
8APcjTz+XWGr3v5WU/xZ/Dnj6OLv8o/yr8NP6h/xl+YX1Ne/25Z/HvbBNs/+/Vv76oPyP/mf/E/+
xzhV/4DPzf/uMTu26P65j9u7f4/z0f37344/OAu/I/7yB/ef2X/M/SP3P999vR+ewSfeRMb75dn4
cxO50Uf8LxjIvff7U8blc36AIi89wp988v/VJS/q30iuixfGi2YDQ7Pftn3wrJuCsXVzqc8x2tAq
Sx862VCUzmWrvm04dCj/DP6cixvV+T+DjwyEHghZ5d/Ddw3o4CCJp7ztbehNPzJX6xdb+ffwwZzr
F09528/iw+ccqId/vFPsga2xz7T5rGvv7I+1frYdfY/2P+Ptv+f9T+f//ix2/g4fxVnSHtTxU1Dn
7/r+xT75n/yP93fxz88+BNvMmGfW9TfazzbnKv+DFfK/3T/dP1f5L+ej+7f71/uj+7f7d40hij+K
v2bMOevuFf2Hbe6V4k+sUPxZ/Fn8Wfy5+wF8Ij4S0j8Wfxd/e38Wfxd/rzFU8Xfx94y5Z929ov+w
Pe+X4q/ir+Kv4i/8QPFn8Xf5B7fj9+RfxmpT/2fuX2TViQ9/5fdHyEKv4M/fVCKLv3gGH17oo/HH
Lr3PddWx4oszbQOP/cwZmiU6tcdt8N/0j4v/N63JtbgZ3Ii02aSsmQPB/xLCDeJLVmYbetvA8qhH
m81+xpCF2CzU5zh1+h7hq4MSgpd5rnpoQ/ZTF3PWHXfeZ/j0iauOV/DBg19Z2tafwZeHeSi34jtH
+uHngZT9bvyJE372b/91/vI/+d95L3h3sS+sz3HqZ/evPI/uP3m6//Y9hz2gaRdtTr/1OU49+z+O
P7XbGn+tdqQNzX5l6bc+x6ln/+z/KP9x37T/OEXP53/lP4fPwW7uo/zPnpsbN+R/87/53z1ueeb7
37Pf3/K/h8/N/x626P7p/sE3dP/uPrf4o/ij+KP4g3ux+Ov9vz8Xfz739+/i7yPmLP4+bFH8Xfxd
/F3+Uf5V/sVdUP75d+afxDTTj/MuoXm/+zcf+q3P8ffeP+PKgQW9En/Dy/6C1PMsvvyWz+KDpV2U
fRVfHcxdHeJTsoZ1HbSh2S8v/dbnuHXG/1WkMf5VixqLmZt6vkQSeD/myO6Lpw2v/HNjudEYo189
E4c6Dz/QZhyCV320laNPEoc+H+bkQaY+8enn/wZxxfkovvo3lR/G15GwvnVez67/K/CxgXZD3yv2
/yr8373+8D92/nr/nz//n/F/2T/7f/T+8/5p//3++7f7p/vnI/Fv/j//n//f98Cr+V/3354jd/93
/xd/FH8UfxBN9f2r739HPMF+ePT9mfHir8Nefkf2+7h7if71+3vxV/EXsWfxZ/Fn8WfxZ/En0UTx
pzEDMQRU/PXz7y+wEfcmVPxZ/Mke6Pvn8TuW8o/dP+hLy7/KP8u/7/OsP/n7A/f6745/8B3QV8Rf
5Hcf3X/EObwr7jjp2fhHuc/4vzN83o3zmfGX81rvH/q1o3Ebfciqf/Zv3f8+0mD/vpXdr4gXzcuF
PMS83LkpZh0+bUM5Nwtjk9Qjv2NT36v4yCIDoXceFvsooRUfWYkx5/7K+r8C/2z9rMX5OW/nOPmt
s46Prl8dH10/84LC/9j+y/5HwP+R89/+6/zlf/K/3T/dPx+J/7p/u3+NrYs/Xsv/PDvdv92/3b/d
v92/x8difeKenV1/f9KH9v1l/5b36ve38v99h+V/87/53/yvf6zs/tlj8u7f3QLck8Qa3BMQdaj4
o+8fff/4+N9/iz93P1L8WfxZ/Fn8Wfy5/1gTr2isRb34q/iz+Ps4E+UfeIXfm3/xDr46/+NvqPxo
GvqI/yOGgNwf+k1zlDlf6/Abf34W3+/Plo/wxbX0G75roF9SjzZxfZby/StLF/2vXNzJonzZDLlJ
2RzYwY1MyUahhODj8UcI8Cor39yU2/CdzORBB7KQOs7w5/96HV54CODkVXbqpg/9EHV4acPj3D+C
r65/fui8Wv8VvmtxPvBBlNp82p85KiPfZ9avrmfxmZMy4R976aP7T1tm//0cvrf/23+dP89M/if/
g7/o/vt4/ONZ6v7p/vlM/Fv887H8o/P3NflX+6/9xx323fl3+Uf5hz67/KP8o/yj/Kv8s/yz+LP4
s/iz+Lv84/jb5TN/fzWW7vtj3x/7/rifHfPKs7//9/2h7w/6TPdJ+Uf5R/lH+Uf5R/mHdwJxwnfG
3+iHPvv983+bDuK+j8b/yH3m/ps2Yk3P/P5MmY39xo+Ma7jK/+CdNhOH/n8tYYz/ErEJ2BxuBl4y
NnBT0GYTsGEh+5Wjz03IGHyrPG11iLN13Yj+iY88feLQnjL2T3zqztuNLp/6xLfcRG5kWwz5p7xj
CNhPH0EtNPHP5MEQx/Im+KP/o+s/w3f94GAT5yOu5Xfja6fw93ev3S2z/24B7PEd+7/91/nP/+X/
u3+6f7hjvHctu3+7f7FA8UfxV/HnkWN7X874+ZX81/xzyud/u3+8dy27f7t/u3+LP4q/ir+Kv4q/
jDGLP/c7YcbP2ob70n76Hv39Rz7tadxliS4o/5v/zf/mf/Ux+ovpPxzDX9if/8n/dv9wIu5//9H3
r5/jF2IM4w7Lm+F+9Hf/dP94x3T//Hx+tA1npvt3/13LvzX+OLs/fsf7Z6/5+5nP4rNn9fuW6Ido
P+v//Y0n5WffPzqgFV8MzxntOWf7wWfeEOPK4b/gkc9+yv8EsfD/KvniKdkIvHQ3Cptk0tnGmPzo
cGO5qZRBj3rho58HfueADA//KyudylZ9I3VZMkB96hVfefS5Dkr6V3zn8Ar+puZGj/CZ1zP4H1n/
D/gvWf+vxMceq/1/Jf7Z+w9/fydfvf85V+3/9/1P+6/9xx7o/D1///+t91/3T/c/Z524kcfYs/Of
/8v/5//ZA8/kvxvbjR7ln8Xf+37CDhBl92/3b/dv8UfxV/Fn8Xf5R/nXHg+Uf5Z/ln+Wf5Z/ln/3
/eH93x/cPihs//T95fO/vyD2KP4o/ij+KP4o/ij++Mr4g+/9ff/foxX//kHrO75/ohcMdGt3zvNH
7M//UEu5rXoj9Prt/kfXU/EXMpDrnzqo+zDXGc99Bh9d/xnSwP+ZBf9YKD/wZcPwsrUBJe05tjXv
CAfHBnfjMeiGoQ+dbj7a84+W9KtfXg/bNnTT6bhzo5SXEnz+k/Doos0jBnXlt+rdmPOCl/XBS9+K
T99c/3v4G/vL+KzhCt/5g0v9O/AfrT/873//2b/93/k/97/5n/zPd9+/+d/8b/43/0tsvcb/3T/d
P90/u28o/yz/7vvDESsRM6zfn7aul7//FH8eNu3+vf9eWvxR/FH8UfzR9//+/lH8Xfxd/H3EisXf
5R/lX/e/fyj/LP8mh8Y38pg/si9oO8Y9wm9maPf94bhT+v7Q94f5ezXPT/lX+dffmn/N/fxd/t/7
ZrtO3u6Yz9w/5jlfdf7Ut64f/f521DPOvKE5f8f2keNf4s/3fv96cP8HahrvP7DUn5bI2t00lAZY
lGw0iA3jZtJWjsm3bkj7kaeOPA9E8GYQR9+Kz+aUh7H38NXl3GwzR/T7MXrii/EM/j8/9KBPjLl+
8RhDn+2vwMd2r6z/q/FftX/4X/v+s3/7v/O/+9Xf4X87f52/zl/nj7gm//Pr49/8b/43/5v/zf92
/3T/dv8SD0DsBYjvY35vY6zvT4c9sBH2+Oz3z+7f7t/u3+7f7t/u3+7f7ULdqPhjt0Px1xFvFX8W
f5d/HOeh/KP8q/yz/LvvD7sf4CxA2OOV35/1/eX/b+/MttvKdQX4cv//i8/D3SW6QojtOZ6SFNaS
OIGkVAZAcNvp7vmLz19uBnS9fcf9g+esH33/85mCJfcJfcP93mP/rDMZwW/6H2ujQx/fae7vmPNf
2h891mId5v5zolH8c198fGENDhYYFUFeA5oGxhTGNRjqvBBL5zoPXYRxWc+16T/nYLRTh/qciz5t
5rqvJWPUGcegaSP2UWc92n7vt+7P53tufz/vZ+3/0vd3f8rP+P6v3f+7v3/79/PP/q8gcMlHxr/8
/8+I/8W/4l/xr/hX/O/86/xfZza+8Lv3v/Kf8p8/4f5f/lf+V/5X/lf+V/5X/lf+R86ClP/+3u9/
yv/L/8v/lw9xriCW+Ia/f+z+0f2j+8fNPfr924Wh/GPZQvlX+Rfn5Xv//qj8s/yz/PPPyz9X9P/5
929zeD4vdmY+T5v678Yf7gUfHf/4XIif3c/9mr8/NQ7rU67Beq5Difi51aXN658VwfyzAB6+OBx4
6SzWp3FRx1g0VnRoz/Jq/uqzfxoYxokDuRY66lE6Rp19HtsfHWSu4eeg3zprIO5PyR8/u4d66vzO
/qwx96POiz2+Yv/Hvkv7xz/7y/+KP1cQfojDnxX/i7+df53/28/Kf8r/yj/LP8s/yz/LP/e5WP75
Oc9fyr/Lv8u/d5wp/y7/Lv8u/y7/Lv8u/97nYvl3+fdn/P63+0f3j+4fO852/+j+0f2j+0f3j+4f
3T/2ufjT7h/rky0bJV6bG1P/iL+/1P8tP+P78x1Yn8+MWD/PH8Ye+/vTOec9f//K/H9WhP7PAhhf
nD9IRjQ8/1CaPv+Q2T9apg/BWOljDvq2KXkhznGMPp3TOiXGjbg/zuzPhzVoo+O6V/W2Dn3uz7rq
qDf3dw/XYg3+s/Ho8EI+ev/5edzjK/ef37/91884/tvfPtv+s78Vs2b8y/6yP8+i/O9zz9/iT/GH
2Fv83Tlu50/nT+fPugt0/nb+kiN4N/7o+3/5R/lH+Uf5V/nnjrHln+Wf5Z/lnxAo/y7/Lv/eZ2P3
j5UrkiPAAsE+zBnIoxR/34seddvm2+h1/+r+pT1gC4i2RL3zp/On86fzx9jQ+dv5y3lR/lH+9Tfk
n8YzbNoY99n5D3k4+yHs+Vz+pZ/52fy89ruGn9l155rMcc+5n3OnLn3ouh91xLb72++Yc+b+t4n/
8huwkv8S0AgpYYTxYji0MSQefmrgGtzVdRPbsp36zNMwGdcoqbOegp77OeY6lr+7v99lfkf2Z33+
pcRn7+/357v6Ha/ql+//3d+//fv5Z/87/n11/Mn/8r/8L/8z/yr+fG3+V/wt/hZ/i7/FX26/3X87
fzt/v/L5U/lH+Uf5R/lH+Uf5R/lX+Wf5Z/ln+efX/f63/Lv8u/y7/Lv8u/y7/Lv8u/y7/Pst+Tcx
wz/qpU4uQZsSwZ78e83X/P3le+3Pz/C7+7POU3//Sa48vw97ud9VvYltSmTqv+b7M4d9+BwzN7fN
eskDASEH5J7A5ILh0Nb4NCCNjJkal3XblM6nnMKavFiPtaaoO8ef218nYQ3m2qbOi3XO+nQO1kbQ
Q9BV/HzP7U/yS9BDmPve/W8LPKxh/bH9+ZyT/1fvz2dr/20n8f9a+8/+8r/iT/HHc7r4W/z9yvyr
86fzp/On86fzh0i4fvlV/F0svuL+z07Fn+JP8Wf5XPl/+X/nT+cPBDp/P//3D3Au/yj/KP/AE7r/
lH+Vf5V/rVhQ/lH+8dl//4GllX+Vf5V/rZhb/lH+8TfkH/qzJdb92N//0f+d8Z/PN/f3vONzMWab
Oq/X/v3lpXoT5iisxfzn/v4SfT4P4p5+vrn/0ljvrMlLvnNs7u989uf/VpIMAgBMHiegAcLoNEpm
aFjO1uicN8ddA13GOfDso62TuAZjjlsyhhGrcxo+/VOHOnMR16D+3P5+DvTPuYx99f5+B8qftD9s
voL/T/3+19fv+18M8CWFnxUvfcSfHePv9T/XoPxJ9s93yv77+Wf/eMISfJRX/r84GLugU/xbTGDx
lvxLhpTF/+1bcOz86fzp/METlhAjeHX+dP5oC+cdHkvp/Hn6+QtnCsx8wdHcpfN3x5YLS+fvxaDz
B0tYYszp/On80RY6f5ZveIbQ6vzt/H3q9z/lHzv30mcsy7/Kv8wtiKPYQ/kXJJZ45srIuwuj+hD1
zp/On86f7RP4g+euJf6iz1h2/nT+GFuJo50/nb/lH3jCkvKPP//3L+YFnX/35z+x/qvPf7zKHF7f
It5QRxxbrd2vzhw3h0GXcX/O6NDmu02dx37+7nupJhIAVPI8AZImDE7DhJkGdxqa/RovbUS91Vrv
0yA1ZOdp5LTP/afBu67z3rs/80wOWdP96edftvAvDxz/7v35fH7P7/j+7R//7G/HNPzhK+NP/pf/
5X/5n2d/8af42/mz4oFxcfK4jucX7x/MM7/Hn57L/zt/O3+1M2PwtLczHmd/+Z92gi0o2IxS/Cn+
dv7sPK7zdz1zJS6czx/LP8o/yj92TnHmW2ebM7bzdzEw36As/9g0yr/Kv8q/yr+8x5d/ln/yNw/l
390/un/d//1L98/un90/953yvG+ebW4Z3T+7f2IDU37q/ZvP+J3579wfRtzLvvPvT/k8yRMETqN+
Qq3ui8BpyEIxEOB01Hl5iDjHkjknc9r2cTDP+azpYa1Tu8819Gsf6vaj7zySX5zP/VmbsSnn/nO+
85jDazqya7Amgi71Of89+/t5Wect+/P52j/+2d/v+X/+t+JO8af42/mzz/yXzv/O3/KP8q/yr/Kv
8i/OAuyg+9/b79/l3+Xf5J3dP7p/dP/o/uEz1+5f2xZ85nyFydszX8run90/u392/+z+2f2z+2f3
754/9Pyl5089f/J5GiX5IWfDlPPvX9Tv+UvPX3r+su/cPX/YLHr+sCOoLP605y9+7jP+z/vjV/m/
NNmbz8VnovQeQ/u1/jfn+/ktr2V+/a0pdeT8/nP+0uj9SQLAS95OwGAxjU1jp9QBdEb0eD02T11L
dBTmTLH92Do6CaVrvXb/qffS/nwG9qB0HuVL+18qT35/12HNl/ZHl4vRW/d3bUpeMqJs//2zif9l
EA+CnUyhnf3lf8Wf4q+xgHhJTHjp/EMfXUpenT+bQ+fvto3O38s5HgQ/mUK787fzt/O389dY0Plb
/lH+Vf5Z/r1/We7dYubVxMvuH92/sANe2kjPP9f5qW90/7qM40Gwkym0u391/+r+1f3LWND9q/tX
96/uX92/un/5x8feLbp/3t+5vWN0/+r+qY90/+7+PeNkzx/2E4ffef4A08mVtT4i/rIOuQ6l61O+
Nf+5pvznOZyfkTGE9hTbj30P+vw8xhbbzHNt6+qcpevMfas/QQB4ydsJaHQ4DYKhKhioXKkjGKV9
JJm2qdt/VW912rNfg2YtHVcneGp/5iB8LtZzP/pes///Huag7/6s5YOzl/b3O713fz/jd+3/3d+/
/Zfd9fP/Hv/L/rI/z5DviP/ZX/aX/XH6Ff+LPyuP/8r8u/hb/C3+Fn87fzp/O387f8k9yj++7vln
+Vf5V/lX+Vf5V/lX+Vf5V/lX+Wf5d/n3V/39RfeP7h/dP7p/dP/o/vGT7h+v/fvH3/37w886//i7
Sf+28fw7T3yNvrNf/m/5+0+/P3MQ1rDvuf3Vv03q7WUCQn1ZM42nCMAQw6PEwXE+6vZf1V//kkBn
oI+6TuEF2TmOTYOea9LvWs6hfGr/a+jXXjgQuu7BnLk/9TNQubd7vXV/9Hmx7lft7/e7trzt/d79
4cFaMvC7vIW/c97z/ds//tlf/lf82Wcq8bT4u85tz2RKzpen8o/Ov/flH52/nb+dv52/nb+dv561
5R/lX+Wf5Z/khsaE8u/uH92/un92/76/K1whsufvDwx6/v/23//0/KXnLz1/uY+p3T+7f3b/7P7Z
/bP7d88f1v2i5y89f+n5y899/sJZ9Z77L7kuvu2L9lfmv7+zP98ZYQ3EnM06/TBBb57l6DHmvKv6
29+fNZ7an2dWyTsIYJTJ7xOQIwZPnRJjnf06iEasjk6GIyH+CwH66UPPdaeuf4js2KX2S8+1n9qf
cdenpM2/bkRwJp363J89EXTR09HnPq/9/u2/Occ/+8v/iCzFn+LvjoudP/fnf+fvihHlH+Vf5Z/l
390/9p2PyMg9ovvX4vDS/bv7586zun92/+z+uXLL7l87LnT/6v7F2WBe0f1zxYjun90/u392/+z+
uc8GIqPnBGX3r+d//9v9c+eZ2Ev3Dzyo3391/9p+0f2r+xex0XO1+9ctRPb3Rw/nRPnn9g0sQz+h
LP8s/5x/l0i+TRu7oP4Z+bd7vMb+1GEOwlmPEOP9jOf5P3XR83d983va95L9n/uzd/JGAoJ/47TU
HyEAS40X41Tsp60D2GebMedOp5nr0I8+jqHzuM5sM2fOU+fqfnJ/dZg392c/xpC37u9nmI7s93U/
Pzfr09f+8c/+lh/gC/lf8af4y+nQ+dP5+7b8p/xj+U351z5Dyj+XTZR/L5vo/rF9o/tX98/u392/
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
QAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAE
IhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQ
gQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEI
RCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQg
AhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIR
iEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhA
BCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQi
EIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCB
CEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhE
IAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCAC
EYhABCIQgQhE4I8l8P/g1yygYPMb7QAAAABJRU5ErkJggg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386066</attachid>
            <date>2019-12-18 22:43:28 -0800</date>
            <delta_ts>2019-12-19 11:20:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20191218224328.patch</filename>
            <type>text/plain</type>
            <size>244356</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVlMDk1NjRmNzBiZmYwNjI4MWY4NDNkNTQ5YTBk
YjdjM2FjM2RiZGUuLjlmNGM4OWUwZDAxZDg3ODljOTk2ODgyNWY4MGJlZTVjNzkzNDc3YWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTE4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAxOS0xMi0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIDhCaXQgSlNSb3BlU3RyaW5nIGNhbiBjb250
YWluIDE2Qml0IHN0cmluZyBpbiBpdHMgcm9wZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA3NTEwYzQ1NDY1MDhj
N2FjMzgxMTVlZWMxMDFmZTAwMTliYjZjOGQuLjQ2ZDk4YTBkYjU5OTQwMTA3MmIyOTFiMmEzOTBk
ZjFiZjc2Mjk5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAxOS0xMi0xOCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBp
bnN0cnVtZW50aW5nIHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2Vs
bCBhcworICAgICAgICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVy
IG9iamVjdCBhbmQgdGhlIHRhcmdldCBET00gbm9kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
KE9PUFMhKS4KKworICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoKKyAgICAgICAg
KiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1h
dGlvbjo6aW5zdGFuY2VzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246
Omluc3RhbmNlc011dGV4KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5nZSk6CisgICAgICAgICog
YW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRp
b246OmNyZWF0ZSk6CisgICAgICAgICogYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVHJhbnNpdGlvbjo6Y3JlYXRlKToKKworICAgICAgICAqIGFuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6
OnBhcnNlZEtleWZyYW1lcyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVFZmZlY3Q6OmJsZW5kaW5nS2V5ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdDo6aGFzQmxlbmRpbmdLZXlmcmFtZXMgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKToKKyAgICAg
ICAgUHJvdmlkZSBhIHdheSB0byBhY2Nlc3MgdGhlIGxpc3Qgb2Yga2V5ZnJhbWVzLgorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRh
cmdldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZElt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRX
ZWJBbmltYXRpb25FZmZlY3RJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBs
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwpOiBEZWxldGVk
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50
czo6c2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KTogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
dHJ1bWVudGluZ0FnZW50czo6cmVzZXQpOgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBbmltYXRpb25BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVl
c3ROb2RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6cmVzb2x2ZUFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpmcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2Nv
bFZhbHVlRm9yU2Vjb25kcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YXNzZXJ0QW5pbWF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6Ymlu
ZEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OnVuYmluZEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNldCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVz
aE5vZGVUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpx
dWVyeVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
OjpzZXROb2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0
T3V0ZXJIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8p
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRl
bmQpOgorICAgICAgICBBZGQgYW4gb3ZlcmxvYWQgZm9yIGBwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
YCB0aGF0IGV4cG9zZXMgYW4gYEVycm9yU3RyaW5nYC4KKwogMjAxOS0xMi0xNyAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBtYWNDYXRhbHlzdDogQ3Vy
c29yIHNob3VsZCB1cGRhdGUgb24gbW91c2UgbW92ZW1lbnQgYW5kIHN0eWxlIGNoYW5nZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMGFkMjM2NTU2NmU1MzU4MWRlNDJkOGY2MzZiNTM2ZDQ0
MGY3ZTM3MC4uZGRkYzkxMjJkYmYxNjU0N2FhOTVkNzdjZjI5YzFjYTUzMDA1MmE5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEzIEBACisyMDE5LTEyLTE4ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQg
aW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRp
b25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZ2V0IGRvbWFpbnMpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYWN0aXZhdGVFeHRyYURvbWFpbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBzdXBwb3J0ZWQpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uQ29sbGVjdGlv
bkZvclR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZW5hYmxl
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3Vy
Y2VEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9u
T2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5p
bWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJv
dG90eXBlLmVmZmVjdENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2Vy
dmVyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRp
b25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKTogQWRkZWQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLm9iamVjdElzUmVxdWlyZWRUeXBlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmFuaW1hdGlvbkNvbGxlY3Rp
b25Gb3JUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0
ZW1BZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVt
UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVt
c0NsZWFyZWQpOgorICAgICAgICBTaW1pbGFyIHRvIGBXSS5SZXNvdXJjZUNvbGxlY3Rpb25gLCBj
cmVhdGUgYSBzdWJjbGFzcyBvZiBgV0kuQ29sbGVjdGlvbmAgdGhhdCBtYWludGFpbnMgaXQncwor
ICAgICAgICBvd24gc3ViLWBXSS5BbmltYXRpb25Db2xsZWN0aW9uYHMgZm9yIGVhY2ggdHlwZSBv
ZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
QW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbik6CisgICAgICAgIChX
SS5BbmltYXRpb24uZnJvbVBheWxvYWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlO
YW1lRm9yQW5pbWF0aW9uVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JQbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JGaWxsTW9kZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFt
ZU51bWJlcnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9u
SWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYmFja3RyYWNlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgc3RhcnREZWxheSk6CisgICAgICAgIChXSS5B
bmltYXRpb24ucHJvdG90eXBlLmdldCBlbmREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24u
cHJvdG90eXBlLmdldCBpdGVyYXRpb25zKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuZ2V0IGl0ZXJhdGlvblN0YXJ0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUu
Z2V0IGl0ZXJhdGlvbkR1cmF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUu
Z2V0IHRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0
IHBsYXliYWNrRGlyZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0
IGZpbGxNb2RlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGtleWZyYW1l
cyk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnJlcXVlc3ROb2RlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b24ucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS5fdXBkYXRlRWZmZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1Jl
bW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9u
KTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29u
dGVudFZpZXcuanM6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcy4KKyAgICAgICAgKFdJLkdyYXBoaWNz
VGFiQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy50YWJJ
bmZvKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuaXNUYWJBbGxvd2VkKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmdldCB0eXBlKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dSZXByZXNl
bnRlZE9iamVjdCk6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5w
cm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkdyYXBoaWNz
VGFiQ29udGVudFZpZXcucHJvdG90eXBlLmNsb3NlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIChX
SS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0
bGluZVNlbGVjdGlvbkRpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3M6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3Mu
CisgICAgICAgIFJlbmFtZSB0aGUgQ2FudmFzIFRhYiB0byBHcmFwaGljcyBUYWIgYW5kIGRpc3Bs
YXkgZm91ciBzZWN0aW9uczoKKyAgICAgICAgIC0gQ2FudmFzZXMKKyAgICAgICAgIC0gV2ViIEFu
aW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIFRyYW5z
aXRpb25zCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5l
bC5qczoKKyAgICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuY2FuU2hvd1Jl
cHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgT25seSBhcHBlYXIgaWYgYSBgV0kuQ2FudmFzYCBv
ciBgV0kuUmVjb3JkaW5nYCBpcyBzZWxlY3RlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVj
dHMpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5n
ZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuR3Jh
cGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZv
ckRyYWdFdmVudCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmRyb3Bab25lSGFuZGxlRHJvcCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTaG93
R3JpZEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKToKKyAgICAg
ICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUltcG9y
dEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1D
aGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENo
YW5nZSk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
Ll9oYW5kbGVDbGljayk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3Jh
cGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmll
dyA+IHNlY3Rpb24pOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+
IHNlY3Rpb246bm90KDpmaXJzdC1jaGlsZCkpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFw
aGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVh
ZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9u
ID4gLmhlYWRlciA+IGgxKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbi5jYW52YXMgPiAuY29udGVudCA+
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
Z3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmNvbnRlbnQgPiAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldzptYXRjaGVzKDo6YmVmb3JlLCA6OmFmdGVyKSk6CisgICAgICAgICguY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250
ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNv
bG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uID4gLmhlYWRlcik6CisgICAgICAgIEFkZCBzdGlja3kgaGVhZGVycyBmb3IgZWFjaCBvZiB0
aGUgc2VjdGlvbnMgZGVzY3JpYmVkIGFib3ZlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNr
ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVu
dFZpZXdNb3VzZUVudGVyKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOiBB
ZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24pOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qczogQWRk
ZWQuCisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db250ZW50Vmlldy5nZXQgcHJldmlld0hlaWdodCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2l6ZURpZENoYW5nZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFN1YnRpdGxlKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZp
ZXcuYWRkVGl0bGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
Ll9yZWZyZXNoUHJldmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuX2hhbmRsZUVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLl9oYW5kbGVUYXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25D
b250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250
ZW50Vmlldy5jc3M6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24pOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24uc2VsZWN0ZWQpOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6CisgICAgICAgICguY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5v
dCg6ZW1wdHkpOjpiZWZvcmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IC5wcmV2aWV3ID4gc3ZnKToKKyAgICAgICAgKGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2Zyk6CisgICAgICAgICguY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGgpOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3Rp
dmUgY2lyY2xlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcg
PiBzdmcgPiAuYWN0aXZlIGxpbmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiAucHJldmlldyA+IHNwYW4pOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVt
ZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRp
dGxlKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6CisgICAg
ICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IC5wcmV2aWV3KToKKyAgICAgICAgVmlzdWFsaXplIHRoZSBzdGFydC9lbmQgZGVs
YXkgYW5kIGtleWZyYW1lcyBvZiB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGFzIGEgc2VyaWVzIG9mIGJl
emllcgorICAgICAgICBjdXJ2ZXMgc2VwYXJhdGVkIGJ5IG1hcmtlcnMuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanM6IEFkZGVk
LgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChX
SS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbnNwZWN0KToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmdldCBhbmltYXRp
b24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUu
c2V0IGFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNT
aWRlYmFyUGFuZWwucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaElkZW50aXR5U2VjdGlvbik6CisgICAg
ICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaEVm
ZmVjdFNlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFu
Z2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBl
Ll9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2VkKToKKyAgICAgICAgU2hvdyBjb2xsZWN0ZWQg
aW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVjdGVkIGFuaW1hdGlvbiwgaXRzIGVmZmVjdCwgYW5k
IGl0cyB0YXJnZXQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanM6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyKToKKyAgICAgICAgKFdJLkNh
bnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNDb2xsZWN0aW9uKTogQWRkZWQuCisgICAg
ICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJLkNh
bnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc01h
bmFnZXIucHJvdG90eXBlLmNhbnZhc1JlbW92ZWQpOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdl
ci5wcm90b3R5cGUuX3NhdmVSZWNvcmRpbmdzKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNN
YW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdJLkNh
bnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
SS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5nZXQgc2hhZGVyUHJvZ3JhbXMpOiBEZWxldGVkLgor
ICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3JlbW92ZUNhbnZhcyk6IERlbGV0
ZWQuCisgICAgICAgIFJhdGhlciB0aGFuIGhhdmUgdGhlIGBXSS5DYW52YXNUYWJDb250ZW50Vmll
d2AgbWFpbmFpbiB0aGUgYFdJLkNhbnZhc0NvbGxlY3Rpb25gIGFuZCBoYXZlIHRvCisgICAgICAg
IGxpc3RlbiBmb3IgZXZlbnRzIGZyb20gdGhlIGBXSS5DYW52YXNNYW5hZ2VyYCwganVzdCBoYXZl
IHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAgaG9sZCBvbiB0bworICAgICAgICBpdCBpbnN0ZWFkIGFu
ZCBwcm92aWRlIGEgZ2V0dGVyIGZvciBpdC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5w
cm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0Fk
ZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmNv
bnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fYWRkU2F2ZWRSZWNvcmRpbmcpOgorICAgICAgICAoV0kuQ2FudmFz
T3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaGlkZGVuKTogRGVsZXRlZC4KKyAgICAgICAg
KFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBfaXRlbU1hcmdpbik6
IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fcmVmcmVzaFByZXZpZXdzKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMpOiBEZWxldGVkLgor
ICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3Nob3dHcmlk
QnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hvd0ltYWdlR3JpZCk6IERlbGV0ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzczoKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMpOgorICAgICAgICAo
QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcpOiBEZWxldGVkLgorICAgICAgICBTdXBwb3J0IGJlaW5nIGFibGUgdG8gbGF5b3V0
IGFzIGEgdmVydGljYWxseSBvciBob3Jpem9udGFsbHkgc2Nyb2xsaW5nIGxpc3QuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuQ2FudmFzQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJv
dG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKTogQWRkZWQuCisgICAgICAgIChXSS5D
YW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZl
bnQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9w
Wm9uZUhhbmRsZURyb3ApOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5
cGUuX3BvcHVsYXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNvbnRleHRNZW51KToKKyAgICAgICAgKFdJ
LkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6IERlbGV0ZWQuCisgICAgICAgIE1v
dmUgdGhlICJMb2cgQ2FudmFzIENvbnRleHQiIHRvIGJlIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBj
YW52YXMgZWxlbWVudCBidXR0b24gY29udGV4dCBtZW51LgorICAgICAgICBEcml2ZS1ieTogYWRk
IGEgYFdJLkRyb3Bab25lVmlld2AgZm9yIHdoZW4gcmVjb3JkaW5nIEpTT04gZmlsZXMgYXJlIGRy
YWdnZWQgb24gdG9wLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250
ZW50Vmlldy5jc3M6CisgICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFs
bCBzZWxlY3RvcnMgc2luY2UgdGhlIENhbnZhcyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6
CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgc2VsZWN0ZWRJdGVtKTogQWRkZWQuCisgICAg
ICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNldCBzZWxlY3RlZEl0ZW0p
OiBBZGRlZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuYWRk
Q29udGVudFZpZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5w
cm90b3R5cGUucmVtb3ZlQ29udGVudFZpZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcik6CisgICAgICAg
IChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAg
ICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2VsZWN0SXRlbSk6Cisg
ICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6
IEFkZGVkLgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXRT
ZWxlY3RlZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlv
bik6CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAucGxhY2Vob2xkZXI6bm90
KC5tZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29s
bGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50
LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyKTogRGVsZXRlZC4KKyAg
ICAgICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgY2xpY2tpbmcgb3V0c2lkZSBvZiBhbnkg
b2YgdGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRpc21pc3MgdGhlCisgICAgICAgIGN1cnJlbnQg
c2VsZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNvIGJlIGFibGUgdG8gZ2V0IHRoZSBjdXJyZW50
bHkgc2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWls
c1NlY3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAgIChXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dy5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgRW5zdXJlIHRoYXQgYDBgIGlzIGNvbnNp
ZGVyZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKyAgICAgICAgKFdJLmNvbnRlbnRMb2FkZWQp
OgorICAgICAgICAoV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJlcHJlc2VudGVkT2JqZWN0KToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuQ29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJ
LkNvbnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICBBbGxvdyBgV0kuQW5pbWF0aW9uYCB0
byBiZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3M6
CisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBBZGRlZC4KKyAgICAgICAgKC5uYXZp
Z2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhcik6IEFkZGVkLgorICAgICAgICAoLm5h
dmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0pOiBBZGRlZC4KKyAg
ICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBEZWxldGVk
LgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2
aWdhdGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZp
Z2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6IERlbGV0ZWQuCisgICAg
ICAgIEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9uSXRlbUhlbHBgIHRvIGJlIHVzZWQgaW5kZXBl
bmRlbnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3YC4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRPTU1hbmFn
ZXIucHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXSS5UaW1lbGluZU1hbmFnZXIucHJv
dG90eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRlZCk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qczoKKyAgICAgICAgKFdJLkF1ZGl0VGVzdENh
c2VSZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgorICAgICAgICBBZGQgYSBmYWxsYmFjayBzbyBj
YWxsZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
c291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuUmVzb3VyY2VDb2xs
ZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNv
dXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZyk6IEFkZGVkLgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZzpo
b3Zlcik6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogbW92ZSB0aGVzZSBzdHlsZXMgdG8gdGhl
IHJpZ2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3JlIHNwZWNpZmljLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAgICAoV0kuQ2FudmFzLmRpc3BsYXlO
YW1lRm9yQ29udGV4dFR5cGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29y
ZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5kaXNwbGF5TmFtZUZvclJlY29yZGluZ1R5
cGUpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBsb2NhbGl6ZWQgc3RyaW5ncy4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzOgor
ICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBhbGwgc2VsZWN0b3JzIHNp
bmNlIHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0dyYXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC5o
dG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzOgorICAgICAgICAoV0ku
bG9hZGVkKToKKwogMjAxOS0xMi0xMSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgVGFiTmF2aWdhdGlvbiBkaWFnbm9zdGljIGV2ZW50
IGFuZCByZWxhdGVkIGhvb2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgppbmRleCBiZWFmOGRlMjhhYzc1M2UzN2Vm
MmJlODljMDFmY2IwYmQ1M2RhZmJiLi4yNDI0ZjM5NTU3MjUxYzkwZTljMGRjYWYwNTI3YmJjYTNl
NDg5YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0FuaW1hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KQEAgLTE0LDYgKzE0LDUxIEBACiAgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImVudW0iOiBbInJlYWR5IiwgImRlbGF5ZWQi
LCAiYWN0aXZlIiwgImNhbmNlbGVkIiwgImRvbmUiXQogICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiUGxheWJhY2tEaXJlY3Rpb24iLAorICAgICAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub3JtYWwiLCAicmV2ZXJzZSIsICJh
bHRlcm5hdGUiLCAiYWx0ZXJuYXRlLXJldmVyc2UiXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiRmlsbE1vZGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5n
IiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub25lIiwgImZvcndhcmRzIiwgImJhY2t3YXJkcyIs
ICJib3RoIiwgImF1dG8iXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQi
OiAiQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklk
IiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJj
c3NBbmltYXRpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGBhbmltYXRpb24tbmFtZWAg
Q1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGB0cmFuc2l0aW9uUHJvcGVy
dHlgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY3Nz
VHJhbnNpdGlvblByb3BlcnR5IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGB0cmFuc2l0aW9uLXBy
b3BlcnR5YCBDU1MgcHJvcGVydHkuIFNob3VsZCBub3QgYmUgcHJvdmlkZWQgaWYgYGFuaW1hdGlv
bk5hbWVgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYmFja3RyYWNlIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICIkcmVmIjogIkNvbnNvbGUuQ2FsbEZyYW1lIiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiQmFja3RyYWNlIHRoYXQgd2FzIGNhcHR1cmVkIHdoZW4gdGhpcyBgV2ViQW5pbWF0
aW9uYCB3YXMgY3JlYXRlZC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImlkIjogIkVmZmVjdCIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdGFydERlbGF5IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kRGVsYXkiLCAidHlwZSI6ICJudW1iZXIiLCAi
b3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25z
IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaXRlcmF0aW9uU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwi
OiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25EdXJhdGlvbiIs
ICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInRpbWluZ0Z1bmN0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGxheWJhY2tEaXJlY3Rpb24iLCAi
JHJlZiI6ICJQbGF5YmFja0RpcmVjdGlvbiIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZpbGxNb2RlIiwgIiRyZWYiOiAiRmlsbE1vZGUiLCAib3B0aW9u
YWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJrZXlmcmFtZXMiLCAidHlw
ZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiS2V5ZnJhbWUiIH0sICJvcHRpb25hbCI6
IHRydWUgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAiaWQiOiAiS2V5ZnJhbWUiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAg
ICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2Zmc2V0
IiwgInR5cGUiOiAibnVtYmVyIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZWFzaW5n
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic3R5bGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlIH0K
KyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlkIjog
IlRyYWNraW5nVXBkYXRlIiwKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCkBAIC0yNyw2
ICs3MiwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAgICAiY29tbWFuZHMiOiBbCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiRW5hYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogImRpc2FibGUiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkRpc2FibGVzIENhbnZhcyBkb21haW4gZXZlbnRzLiIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVxdWVzdE5vZGUiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkdldHMgdGhlIGBET00uTm9kZUlkYCBmb3IgdGhlIHRhcmdldCBvZiB0aGUg
ZWZmZWN0IG9mIHRoZSBhbmltYXRpb24gd2l0aCB0aGUgZ2l2ZW4gYEFuaW1hdGlvbklkYC4iLAor
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJh
bmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQi
LCAiJHJlZiI6ICJET00uTm9kZUlkIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlc29sdmVBbmltYXRpb24iLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlJlc29sdmVzIEphdmFTY3JpcHQgYFdlYkFuaW1hdGlvbmAgb2Jq
ZWN0IGZvciBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5p
bWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RHcm91cCIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTeW1ib2xp
YyBncm91cCBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVsZWFzZSBtdWx0aXBsZSBvYmplY3Rz
LiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3Qi
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5h
bWUiOiAic3RhcnRUcmFja2luZyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU3RhcnQg
dHJhY2tpbmcgYW5pbWF0aW9ucy4gVGhpcyB3aWxsIHByb2R1Y2UgYSBgdHJhY2tpbmdTdGFydGAg
ZXZlbnQuIgpAQCAtMzcsNiArMTExLDM1IEBACiAgICAgICAgIH0KICAgICBdLAogICAgICJldmVu
dHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFuaW1hdGlvbkNyZWF0ZWQi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgYSBgV2Vi
QW5pbWF0aW9uYCBpcyBjcmVhdGVkLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbiIsICIkcmVmIjogIkFuaW1hdGlvbiIg
fQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJlZmZlY3RDaGFuZ2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRj
aGVkIHdoZW5ldmVyIHRoZSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFuZ2VkIGluIGFu
eSB3YXkuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIG9taXR0ZWQgd2hlbiB0aGUgZWZmZWN0IGlz
IHJlbW92ZWQgd2l0aG91dCBhIHJlcGxhY2VtZW50LiIgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ0YXJnZXRDaGFuZ2VkIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSB0YXJnZXQg
b2YgYW55IGVmZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55IHdheS4iLAor
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJh
bmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAgICBdCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFuaW1hdGlvbkRlc3Ryb3ll
ZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciBhIGBX
ZWJBbmltYXRpb25gIGlzIGRlc3Ryb3llZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1h
dGlvbklkIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAg
ICAgICJuYW1lIjogInRyYWNraW5nU3RhcnQiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkRpc3BhdGNoZWQgYWZ0ZXIgYHN0YXJ0VHJhY2tpbmdgIGNvbW1hbmQuIiwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5kZXggN2M3MmY2MjRjMzMwYWY5NmJhNzBi
N2FlNGU5MmI1MDFjYTEwMTA3ZS4uZmQzZWI5ZGJkZTliYzFhYjBiOTdmMGEwNzFlMDBlODBmYjgx
MzEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJSZW5k
ZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTM5LDYg
KzQwLDkgQEAgUmVmPENTU0FuaW1hdGlvbj4gQ1NTQW5pbWF0aW9uOjpjcmVhdGUoRWxlbWVudCYg
b3duaW5nRWxlbWVudCwgY29uc3QgQW5pbWF0aW9uJgogewogICAgIGF1dG8gcmVzdWx0ID0gYWRv
cHRSZWYoKm5ldyBDU1NBbmltYXRpb24ob3duaW5nRWxlbWVudCwgYmFja2luZ0FuaW1hdGlvbiwg
bmV3U3R5bGUpKTsKICAgICByZXN1bHQtPmluaXRpYWxpemUob2xkU3R5bGUsIG5ld1N0eWxlKTsK
KworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJl
c3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKaW5kZXggZGZmNWZiMWY3OWE4OWM1NjYwYTQ5YzFi
MzY0M2RkMDdkODI0MzI3MS4uYWFhZTVlMmQwYzYxNzIwY2QxMDhkZDZkY2U1OTUxOWNhMGFjM2Uw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktleWZy
YW1lRWZmZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNDAs
NiArNDEsOSBAQCBSZWY8Q1NTVHJhbnNpdGlvbj4gQ1NTVHJhbnNpdGlvbjo6Y3JlYXRlKEVsZW1l
bnQmIG93bmluZ0VsZW1lbnQsIENTU1Byb3BlcnR5SUQgcAogICAgIGF1dG8gcmVzdWx0ID0gYWRv
cHRSZWYoKm5ldyBDU1NUcmFuc2l0aW9uKG93bmluZ0VsZW1lbnQsIHByb3BlcnR5LCBnZW5lcmF0
aW9uVGltZSwgYmFja2luZ0FuaW1hdGlvbiwgbmV3U3R5bGUsIHJldmVyc2luZ0FkanVzdGVkU3Rh
cnRTdHlsZSwgcmV2ZXJzaW5nU2hvcnRlbmluZ0ZhY3RvcikpOwogICAgIHJlc3VsdC0+aW5pdGlh
bGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOwogICAgIHJlc3VsdC0+c2V0VGltaW5nUHJvcGVydGll
cyhkZWxheSwgZHVyYXRpb24pOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
cmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IDk5
NTUwMjI2OGNkOTU5MTkxNTk5YjAyODRiODMyYWU5NjRiMjIwMzkuLjI2MWI1YTQ5NGZiMWFlOTVi
M2U0YmQ1MzFhNWZmN2RjNmI3ZGIwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcApAQCAtMTEwNSw3ICsxMTA1LDcgQEAgdm9pZCBLZXlmcmFtZUVmZmVj
dDo6aW52YWxpZGF0ZSgpCiAKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVTaG91bGRSdW5B
Y2NlbGVyYXRlZCgpCiB7Ci0gICAgbV9zaG91bGRSdW5BY2NlbGVyYXRlZCA9IGhhc0JsZW5kaW5n
S2V5ZnJhbWVzKCk7CisgICAgbV9zaG91bGRSdW5BY2NlbGVyYXRlZCA9IG1fYmxlbmRpbmdLZXlm
cmFtZXMuc2l6ZSgpOwogICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0eUlkIDogbV9ibGVuZGluZ0tl
eWZyYW1lcy5wcm9wZXJ0aWVzKCkpIHsKICAgICAgICAgaWYgKCFDU1NQcm9wZXJ0eUFuaW1hdGlv
bjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxlcmF0ZWQoY3NzUHJvcGVydHlJZCkpIHsKICAg
ICAgICAgICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5kZXggN2ExYWViN2FiYzIzMjJjYTBjMjA0NTE3
NDkxNWQzMTM0NzI4M2E4OS4uZGY3YjAxYzI5N2VmODVkZWZkZGUzOTAyODYzNmQwMmVlMjMxYmMz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKQEAgLTk4LDYg
Kzk4LDggQEAgcHVibGljOgogICAgICAgICBDb21wb3NpdGVPcGVyYXRpb25PckF1dG8gY29tcG9z
aXRlIHsgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvOjpBdXRvIH07CiAgICAgfTsKIAorICAgIGNv
bnN0IFZlY3RvcjxQYXJzZWRLZXlmcmFtZT4mIHBhcnNlZEtleWZyYW1lcygpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyc2VkS2V5ZnJhbWVzOyB9CisKICAgICBFbGVtZW50KiB0YXJnZXQoKSBjb25zdCB7
IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0VGFyZ2V0KFJlZlB0cjxFbGVt
ZW50PiYmKTsKIApAQCAtMTM0LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbG9yRmls
dGVyRnVuY3Rpb25MaXN0c01hdGNoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb2xvckZp
bHRlckZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogCiAgICAgdm9pZCBjb21wdXRlRGVjbGFyYXRpdmVB
bmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNv
bnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7Ci0gICAgYm9vbCBoYXNCbGVuZGluZ0tleWZyYW1l
cygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyB9CisgICAgY29u
c3QgS2V5ZnJhbWVMaXN0JiBibGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxl
bmRpbmdLZXlmcmFtZXM7IH0KICAgICBjb25zdCBIYXNoU2V0PENTU1Byb3BlcnR5SUQ+JiBhbmlt
YXRlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3Bl
cnRpZXMoKTsgfQogCiAgICAgYm9vbCBjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24o
TGF5b3V0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcAppbmRleCA1MTVkMzY5MDdmOTEwMzU4MTAzMDYwNzA2ZDg4NjVhZDljZTljNmE3Li4zZWEz
ODY0YjY5ZTgyZDQ1ZjdiN2IwZWRkYTJiMjkyNTI3YjQ1NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgIlN0
eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTUxLDExICs1MywzMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJBbmltYXRp
b24pOwogCitIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBXZWJBbmltYXRpb246Omluc3RhbmNlcyhj
b25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxX
ZWJBbmltYXRpb24qPj4gaW5zdGFuY2VzOworICAgIHJldHVybiBpbnN0YW5jZXM7Cit9CisKK0xv
Y2smIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKQoreworICAgIHN0YXRpYyBMYXp5TmV2
ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRp
YWxpemVNdXRleDsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplTXV0ZXgsIFtdIHsKKyAg
ICAgICAgbXV0ZXguY29uc3RydWN0KCk7CisgICAgfSk7CisgICAgcmV0dXJuIG11dGV4LmdldCgp
OworfQorCiBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0KQogewogICAgIGF1dG8gcmVzdWx0ID0g
YWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQpKTsKICAgICByZXN1bHQtPnNldEVm
ZmVjdChlZmZlY3QpOwogICAgIHJlc3VsdC0+c2V0VGltZWxpbmUoJmRvY3VtZW50LnRpbWVsaW5l
KCkpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRp
b24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTY1LDYgKzg2
LDkgQEAgUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmUKICAgICByZXN1bHQtPnNldEVmZmVjdChlZmZl
Y3QpOwogICAgIGlmICh0aW1lbGluZSkKICAgICAgICAgcmVzdWx0LT5zZXRUaW1lbGluZSh0aW1l
bGluZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNzUsNiAr
OTksOSBAQCBXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOwogICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIGluc3Rh
bmNlcyhsb2NrKS5hZGQodGhpcyk7CiB9CiAKIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigp
CkBAIC04Myw2ICsxMTAsMTAgQEAgV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKIAogICAg
IGlmIChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5lLT5mb3JnZXRBbmltYXRpb24odGhp
cyk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgQVNTRVJU
KGluc3RhbmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAgaW5zdGFuY2VzKGxvY2spLnJl
bW92ZSh0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OmNvbnRleHREZXN0cm95ZWQoKQpA
QCAtMTE0LDYgKzE0NSw4IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp1bnN1c3BlbmRFZmZlY3RJbnZh
bGlkYXRpb24oKQogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSgpCiB7
CiAgICAgdGltaW5nRGlkQ2hhbmdlKERpZFNlZWs6Ok5vLCBTeW5jaHJvbm91c2x5Tm90aWZ5OjpZ
ZXMpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUaW1pbmcoKnRoaXMpOwogfQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0
KFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0KQpAQCAtMTg4LDcgKzIyMSw3IEBA
IHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9uRWZm
ZWN0PiYmIG5ld0VmZmVjdCwgYm9vbCBkCiAgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRp
b25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7CiAgICAgfQogCi0gICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoKnRoaXMp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVsaW5lKFJlZlB0cjxBbmlt
YXRpb25UaW1lbGluZT4mJiB0aW1lbGluZSkKQEAgLTI0NywxNCArMjgwLDE1IEBAIHZvaWQgV2Vi
QW5pbWF0aW9uOjpzZXRUaW1lbGluZUludGVybmFsKFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4m
JiB0aW1lbGluZSkKIAogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5nZShF
bGVtZW50KiBwcmV2aW91c1RhcmdldCwgRWxlbWVudCogbmV3VGFyZ2V0KQogewotICAgIGlmICgh
bV90aW1lbGluZSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3RpbWVsaW5lKSB7CisgICAg
ICAgIGlmIChwcmV2aW91c1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlv
bldhc1JlbW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKIAotICAgIGlm
IChwcmV2aW91c1RhcmdldCkKLSAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVtb3Zl
ZEZyb21FbGVtZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOworICAgICAgICBpZiAobmV3VGFy
Z2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQo
KnRoaXMsICpuZXdUYXJnZXQpOworICAgIH0KIAotICAgIGlmIChuZXdUYXJnZXQpCi0gICAgICAg
IG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRhcmdldCgqdGhpcyk7CiB9CiAKIE9wdGlvbmFsPGRvdWJsZT4gV2ViQW5pbWF0aW9uOjpz
dGFydFRpbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCmlu
ZGV4IGRhNGQ4ZWMzYmMyZTU3MGI0OGE1MWRiYzE0YTM0NGU2YzQ5YmEwNzAuLmM5OTYxM2IyNjYx
ZDc2NWYwZWUzYjg2ZDYxNGY5Y2QyYjdkYzIzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
V2ViQW5pbWF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CkBA
IC01NCw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkFuaW1hdGlvbj4gY3Jl
YXRlKERvY3VtZW50JiwgQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKICAg
ICB+V2ViQW5pbWF0aW9uKCk7CiAKKyAgICBzdGF0aWMgSGFzaFNldDxXZWJBbmltYXRpb24qPiYg
aW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBzdGF0aWMgTG9jayYgaW5zdGFuY2Vz
TXV0ZXgoKTsKKwogICAgIHZpcnR1YWwgYm9vbCBpc0RlY2xhcmF0aXZlQW5pbWF0aW9uKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NBbmltYXRpb24oKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU1RyYW5zaXRpb24o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0ZjE4YjU4YzZjZDAxZTBi
NjlhODk1M2FkMDlhNzM5YzM1MjA0OTZhLi5kMTMwOTg5MWRjNmIyM2IyYjI3ZTVjMjVjMGU5NjQ0
NTJhNzM5OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNzIzLDYgKzcyMyw5IEBAIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnN0cnVtZW50CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKICAgICAgICAgY2FudmFz
QWdlbnQtPmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKIAorICAgIGlmIChhdXRvKiBhbmltYXRpb25B
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CisKICAg
ICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0TG9hZChmcmFt
ZS5kb2N1bWVudCgpKTsKIApAQCAtMTEzMywxNSArMTEzNiwzNyBAQCB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmCiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsQXBwbHlLZXlmcmFtZUVmZmVjdCh0
YXJnZXQsIGVmZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3Zv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYg
YW5pbWF0aW9uKQogewotICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQotICAgICAgICBhbmlt
YXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7CisgICAg
aWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZFNldFdl
YkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworICAgIGVsc2UgaWYgKGF1dG8qIGFuaW1hdGlv
bkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFn
ZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRTZXRXZWJBbmltYXRpb25FZmZlY3Qo
YW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1dG8q
IGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
K3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVu
YWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFn
ZW50LT5kaWRDcmVhdGVXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
IHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRy
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICBpZiAoYXV0byogYW5pbWF0aW9u
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5p
bWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQogICAgICAgICBhbmlt
YXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CmluZGV4IGRiZjgyMjA1ZGI1YmNjYmUxNjllZDBlOTQ3ZDFhZDgzZGQ4NTBmZDYuLmEyOTgxYWQ5
ODJkZTY4NzNkNGU5NjM3NDQ5Y2I3ZjMyZjhjMjVjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMwNSw3ICszMDUs
MTAgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFt
ZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWluZyk7
Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlv
biYpOworICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRp
b24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmco
V2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkFu
aW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkFu
aW1hdGlvbihXZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNo
YW5nZWQoUGFnZSYpOwpAQCAtNTA1LDcgKzUwOCwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsK
LSAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJB
bmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsK
KyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBX
ZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3
aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1h
dGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJik7CkBAIC0xNDY2LDExICsxNDcyLDMyIEBAIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYgdGFy
Z2V0LCBLCiAgICAgICAgIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGlu
Z0FnZW50cywgdGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3Qo
V2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
IHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoYXV0
byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFu
aW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICBkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworICAg
ICAgICBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBh
bmltYXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
K3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0
byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFu
aW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24p
OworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBG
QVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1
bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25F
ZmZlY3RUYXJnZXRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQorCitp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlv
bihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3Ry
dW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpKQorICAgICAgICBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKCppbnN0cnVtZW50aW5nQWdl
bnRzLCBhbmltYXRpb24pOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCmluZGV4
IDFmOWEwZDdjNTMyYTNmOTA4NTZjMTg0YTFmZmMzYjFjZjM1ZWZjODcuLmQ3YTJmNzE5NThkOTQz
Y2NjYWM0MzRlYWM5M2UzM2RhZTI3Y2M0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgdm9pZCBJbnN0
cnVtZW50aW5nQWdlbnRzOjpyZXNldCgpCiAgICAgbV9wYWdlRE9NRGVidWdnZXJBZ2VudCA9IG51
bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JDYW52YXNBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9wZXJz
aXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOworICAgIG1fZW5hYmxlZElu
c3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKICAgICBtX3RyYWNraW5nSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCBmNmZlYTdkYTIxMzYwZGQwOGNjM2Q5NjZi
MTRlMmFhYzQ2NTQ0OTE1Li5mNTljM2RiZGNhZjc4Y2Y5YzZkOGRiYjQzMmRjY2YyMmYxNWQ1MDdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgK
QEAgLTE1Niw2ICsxNTYsOSBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQq
IHBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVy
c2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRQZXJzaXN0ZW50
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7
IG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KIAorICAgIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KiBlbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBj
b25zdCB7IHJldHVybiBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQorICAgIHZv
aWQgc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KiBhZ2VudCkgeyBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9
CisKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDsgfQogICAgIHZvaWQgc2V0VHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFn
ZW50ID0gYWdlbnQ7IH0KIApAQCAtMTkwLDYgKzE5Myw3IEBAIHByaXZhdGU6CiAgICAgUGFnZURP
TURlYnVnZ2VyQWdlbnQqIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQgeyBudWxscHRyIH07CiAgICAg
SW5zcGVjdG9yQ2FudmFzQWdlbnQqIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgeyBudWxscHRyIH07
CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1h
dGlvbkFnZW50IHsgbnVsbHB0ciB9OworICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX2Vu
YWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCogbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50IHsgbnVsbHB0
ciB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAppbmRleCBkZTlhMmM1OWJkYWJjMjkwODk2
Yzk2MzljZWFiYjRlMmM0NzNiODI5Li5kZTQwZWY2NmVmNzcxZTQ4NjdhYWYyNjQ1ZTg0NjFhYjVm
NDVkYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckFuaW1hdGlvbkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcApAQCAtMjksMTkgKzI5LDMzIEBACiAjaW5j
bHVkZSAiQW5pbWF0aW9uRWZmZWN0LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0UGhhc2Uu
aCIKICNpbmNsdWRlICJDU1NBbmltYXRpb24uaCIKKyNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAi
Q1NTVHJhbnNpdGlvbi5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiRGVjbGFy
YXRpdmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJGaWxsTW9kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisj
aW5jbHVkZSAiSlNXZWJBbmltYXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUVmZmVjdC5oIgor
I2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQ
bGF5YmFja0RpcmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvbi5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0lkZW50aWZpZXJzRmFjdG9yeS5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckVudmlyb25tZW50Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NTIsNiArNjYsOSBAQCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICA6IEluc3BlY3RvckFnZW50QmFz
ZSgiQW5pbWF0aW9uIl9zLCBjb250ZXh0KQogICAgICwgbV9mcm9udGVuZERpc3BhdGNoZXIobWFr
ZVVuaXF1ZTxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0Y2hlcj4oY29udGV4dC5m
cm9udGVuZFJvdXRlcikpCiAgICAgLCBtX2JhY2tlbmREaXNwYXRjaGVyKEluc3BlY3Rvcjo6QW5p
bWF0aW9uQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJhY2tlbmREaXNwYXRjaGVy
LCB0aGlzKSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNvbnRleHQuaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQorICAgICwgbV9pbnNwZWN0ZWRQYWdlKGNvbnRleHQuaW5zcGVjdGVkUGFn
ZSkKKyAgICAsIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIoKnRoaXMsICZJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNjcs
MTEgKzg0LDEwMyBAQCB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIEVycm9yU3RyaW5nIGln
bm9yZWQ7CiAgICAgc3RvcFRyYWNraW5nKGlnbm9yZWQpOworICAgIGRpc2FibGUoaWdub3JlZCk7
CiAKICAgICBBU1NFUlQobV9pbnN0cnVtZW50aW5nQWdlbnRzLnBlcnNpc3RlbnRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCgpID09IHRoaXMpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQ
ZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0cik7CiB9CiAKK3ZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCit7
CisgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoKSA9PSB0aGlzKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBkb21h
aW4gYWxyZWFkeSBlbmFibGVkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9p
bnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCh0aGlz
KTsKKworICAgIGNvbnN0IGF1dG8gZXhpc3RzSW5DdXJyZW50UGFnZSA9IFsmXSAoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgeworICAgICAgICBpZiAoIWlz
PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2ODQ3NT4g
V2ViIEluc3BlY3RvcjogQ29ycmVjdGx5IGRpc3BsYXkgaWZyYW1lJ3MgV2ViU29ja2V0cworICAg
ICAgICBhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCkgPT0gJm1faW5zcGVjdGVk
UGFnZTsKKyAgICB9OworCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViQW5pbWF0
aW9uOjppbnN0YW5jZXNNdXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRvKiBhbmltYXRpb24gOiBX
ZWJBbmltYXRpb246Omluc3RhbmNlcyhsb2NrKSkgeworICAgICAgICAgICAgaWYgKGV4aXN0c0lu
Q3VycmVudFBhZ2UoYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAg
ICAgICAgICAgIGJpbmRBbmltYXRpb24oKmFuaW1hdGlvbiwgZmFsc2UpOworICAgICAgICB9Cisg
ICAgfQorfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nJikKK3sKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0RW5hYmxlZEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KG51bGxwdHIpOworCisgICAgcmVzZXQoKTsKK30KKwordm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkKK3sKKyAgICBhdXRvKiBhbmlt
YXRpb24gPSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJpbmcsIGFuaW1hdGlvbklkKTsKKyAgICBp
ZiAoIWFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZG9tQWdlbnQgPSBt
X2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKTsKKyAgICBpZiAoIWRvbUFn
ZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRPTSBkb21haW4gbXVzdCBiZSBlbmFibGVk
Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogZWZmZWN0ID0gYW5pbWF0
aW9uLT5lZmZlY3QoKTsKKyAgICBpZiAoIWlzPEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKSB7Cisg
ICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQgZG9l
cyBub3QgaGF2ZSBhbiBlZmZlY3QiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBh
dXRvJiBrZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PigqZWZmZWN0KTsK
KworICAgIGF1dG8qIHRhcmdldCA9IGtleWZyYW1lRWZmZWN0LnRhcmdldCgpOworICAgIGlmICgh
dGFyZ2V0KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5p
bWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCJfczsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgICpub2RlSWQgPSBkb21BZ2VudC0+cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJv
clN0cmluZywgdGFyZ2V0KTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVz
b2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpCit7CisgICAgYXV0byogYW5p
bWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25JZCk7CisgICAg
aWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHN0YXRlID0gYW5p
bWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV4ZWNTdGF0ZSgpOworICAgIGF1dG8g
aW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbmplY3RlZFNjcmlwdEZv
cihzdGF0ZSk7CisgICAgQVNTRVJUKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpOworCisg
ICAgSlNDOjpKU1ZhbHVlIHZhbHVlOworICAgIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9jayhzdGF0ZSk7CisKKyAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZGVwcmVjYXRlZEds
b2JhbE9iamVjdEZvclByb3RvdHlwZShzdGF0ZSk7CisgICAgICAgIHZhbHVlID0gdG9KUyhzdGF0
ZSwgZ2xvYmFsT2JqZWN0LCBhbmltYXRpb24pOworICAgIH0KKworICAgIGlmICghdmFsdWUpIHsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGVycm9yU3RyaW5nID0gIklu
dGVybmFsIGVycm9yOiB1bmtub3duIEFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQiX3M7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgb2JqZWN0R3JvdXBOYW1lID0g
b2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiBTdHJpbmcoKTsKKyAgICByZXN1bHQgPSBpbmpl
Y3RlZFNjcmlwdC53cmFwT2JqZWN0KHZhbHVlLCBvYmplY3RHcm91cE5hbWUpOworfQorCiB2b2lk
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZykKIHsKICAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CkBAIC0xNzAsMTYgKzI3OSwyODAgQEAgdm9p
ZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVu
dCYgdGFyZ2V0LCBLZXlmcmFtZUUKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdV
cGRhdGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUoKS5z
ZWNvbmRzKCksIFdURk1vdmUoZXZlbnQpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9u
KQordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1h
dGlvbj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRp
b24oZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpOworCisgICAgZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFuaW1hdGlvbik7CisgICAgZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmlt
YXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1w
dHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFu
aW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKGFuaW1hdGlv
bklkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KGFuaW1h
dGlvbi5lZmZlY3QoKSkpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7
CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0
cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmlt
YXRpb25JZChhbmltYXRpb24pOworICAgIGlmIChhbmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50YXJnZXRDaGFuZ2VkKGFu
aW1hdGlvbklkKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRl
V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmICghZmluZEFu
aW1hdGlvbklkKGFuaW1hdGlvbikuaXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYmluZEFuaW1hdGlvbihhbmlt
YXRpb24sIHRydWUpOwogfQogCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVz
dHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8
RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0Rl
Y2xhcmF0aXZlQW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRp
b24pKTsKKworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRp
b24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBm
aW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoIWFuaW1hdGlvbklkLmlzRW1wdHko
KSkKKyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmIGZyYW1lKQoreworICAg
IGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7CisgICAgICAgIHJlc2V0KCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiBhbmltYXRpb25JZHNUb1JlbW92ZTsK
KyAgICBmb3IgKGF1dG8mIFthbmltYXRpb25JZCwgYW5pbWF0aW9uXSA6IG1fYW5pbWF0aW9uSWRN
YXApIHsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBhbmltYXRp
b24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICAgICAgaWYgKGlzPERvY3Vt
ZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpLmZyYW1lKCkgPT0gJmZyYW1lKQorICAgICAgICAgICAgICAgIGFu
aW1hdGlvbklkc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb25JZCk7CisgICAgICAgIH0KKyAgICB9
CisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb25JZCA6IGFuaW1hdGlvbklkc1RvUmVtb3Zl
KQorICAgICAgICB1bmJpbmRBbmltYXRpb24oYW5pbWF0aW9uSWQpOworfQorCitzdGF0aWMgT3B0
aW9uYWw8ZG91YmxlPiBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhjb25zdCBTZWNvbmRzJiBzZWNv
bmRzKQoreworICAgIGlmIChzZWNvbmRzID09IFNlY29uZHM6OmluZmluaXR5KCkgfHwgc2Vjb25k
cyA9PSBTZWNvbmRzOjpuYW4oKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBy
ZXR1cm4gc2Vjb25kcy52YWx1ZSgpOworfQorCitSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6
QW5pbWF0aW9uOjpFZmZlY3Q+IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpidWlsZE9iamVjdEZv
ckVmZmVjdChBbmltYXRpb25FZmZlY3QqIGVmZmVjdCkKK3sKKyAgICBpZiAoIWVmZmVjdCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIGVmZmVjdFBheWxvYWQgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdDo6Y3JlYXRlKCkKKyAgICAgICAgLnJlbGVh
c2UoKTsKKworICAgIGlmIChhdXRvIHN0YXJ0RGVsYXkgPSBwcm90b2NvbFZhbHVlRm9yU2Vjb25k
cyhlZmZlY3QtPmRlbGF5KCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRTdGFydERlbGF5
KHN0YXJ0RGVsYXkudmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byBlbmREZWxheSA9IHByb3RvY29s
VmFsdWVGb3JTZWNvbmRzKGVmZmVjdC0+ZW5kRGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBheWxv
YWQtPnNldEVuZERlbGF5KGVuZERlbGF5LnZhbHVlKCkpOworCisgICAgZWZmZWN0UGF5bG9hZC0+
c2V0SXRlcmF0aW9ucyhlZmZlY3QtPml0ZXJhdGlvbnMoKSk7CisgICAgZWZmZWN0UGF5bG9hZC0+
c2V0SXRlcmF0aW9uU3RhcnQoZWZmZWN0LT5pdGVyYXRpb25TdGFydCgpKTsKKworICAgIGlmIChh
dXRvIGl0ZXJhdGlvbkR1cmF0aW9uID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LT5p
dGVyYXRpb25EdXJhdGlvbigpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9u
RHVyYXRpb24oaXRlcmF0aW9uRHVyYXRpb24udmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byogdGlt
aW5nRnVuY3Rpb24gPSBlZmZlY3QtPnRpbWluZ0Z1bmN0aW9uKCkpCisgICAgICAgIGVmZmVjdFBh
eWxvYWQtPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOworCisg
ICAgc3dpdGNoIChlZmZlY3QtPmRpcmVjdGlvbigpKSB7CisgICAgY2FzZSBQbGF5YmFja0RpcmVj
dGlvbjo6Tm9ybWFsOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlv
bihJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpOb3Jt
YWwpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpSZXZlcnNl
OgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihJbnNwZWN0b3I6
OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpSZXZlcnNlKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOgorICAgICAg
ICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihJbnNwZWN0b3I6OlByb3RvY29s
OjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGUpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlOgorICAgICAg
ICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihJbnNwZWN0b3I6OlByb3RvY29s
OjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoIChlZmZlY3QtPmZpbGwoKSkgeworICAgIGNh
c2UgRmlsbE1vZGU6Ok5vbmU6CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6Ok5vbmUpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEZpbGxNb2RlOjpGb3J3YXJkczoKKyAgICAgICAgZWZmZWN0UGF5bG9h
ZC0+c2V0RmlsbE1vZGUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6
Rm9yd2FyZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZpbGxNb2RlOjpCYWNrd2FyZHM6
CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkJhY2t3YXJkcyk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRmlsbE1vZGU6OkJvdGg6CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkJvdGgpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEZpbGxNb2RlOjpBdXRvOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5z
ZXRGaWxsTW9kZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpBdXRv
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0Pihl
ZmZlY3QpKSB7CisgICAgICAgIGF1dG8mIGtleWZyYW1lRWZmZWN0ID0gZG93bmNhc3Q8S2V5ZnJh
bWVFZmZlY3Q+KCplZmZlY3QpOworCisgICAgICAgIGF1dG8ga2V5ZnJhbWVzUGF5bG9hZCA9IEpT
T046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZT46OmNy
ZWF0ZSgpOworCisgICAgICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oa2V5ZnJhbWVF
ZmZlY3QuYW5pbWF0aW9uKCkpKSB7CisgICAgICAgICAgICBBU1NFUlQoa2V5ZnJhbWVFZmZlY3Qu
dGFyZ2V0KCkpOworICAgICAgICAgICAgYXV0byogcmVuZGVyZXIgPSBrZXlmcmFtZUVmZmVjdC50
YXJnZXQoKS0+cmVuZGVyZXIoKTsKKworICAgICAgICAgICAgQ29tcHV0ZWRTdHlsZUV4dHJhY3Rv
ciBjb21wdXRlZFN0eWxlRXh0cmFjdG9yKGtleWZyYW1lRWZmZWN0LnRhcmdldCgpKTsKKworICAg
ICAgICAgICAgYXV0byYgYmxlbmRpbmdLZXlmcmFtZXMgPSBrZXlmcmFtZUVmZmVjdC5ibGVuZGlu
Z0tleWZyYW1lcygpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibGVuZGlu
Z0tleWZyYW1lcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGF1dG8mIGJsZW5kaW5n
S2V5ZnJhbWUgPSBibGVuZGluZ0tleWZyYW1lc1tpXTsKKworICAgICAgICAgICAgICAgIEFTU0VS
VChibGVuZGluZ0tleWZyYW1lLnN0eWxlKCkpOworICAgICAgICAgICAgICAgIGF1dG8mIHN0eWxl
ID0gKmJsZW5kaW5nS2V5ZnJhbWUuc3R5bGUoKTsKKworICAgICAgICAgICAgICAgIGF1dG8ga2V5
ZnJhbWVQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZTo6
Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgLnNldE9mZnNldChibGVuZGluZ0tleWZyYW1l
LmtleSgpKQorICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8qIHRpbWluZ0Z1bmN0aW9uID0gYmxlbmRpbmdLZXlmcmFtZS50aW1pbmdGdW5j
dGlvbigpKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyh0
aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKworICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgc3R5bGVQYXlsb2FkQnVpbGRlcjsKKyAgICAgICAgICAgICAgICBhdXRvJiBjc3NQcm9wZXJ0
eUlkcyA9IGJsZW5kaW5nS2V5ZnJhbWUucHJvcGVydGllcygpOworICAgICAgICAgICAgICAgIHNp
emVfdCBjb3VudCA9IGNzc1Byb3BlcnR5SWRzLnNpemUoKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KGF1dG8gY3NzUHJvcGVydHlJZCA6IGNzc1Byb3BlcnR5SWRzKSB7CisgICAgICAgICAgICAgICAg
ICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChjc3NQcm9wZXJ0eUlkID09IENT
U1Byb3BlcnR5Q3VzdG9tKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoZ2V0UHJvcGVydHlO
YW1lU3RyaW5nKGNzc1Byb3BlcnR5SWQpKTsKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXls
b2FkQnVpbGRlci5hcHBlbmQoIjogIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHZh
bHVlID0gY29tcHV0ZWRTdHlsZUV4dHJhY3Rvci52YWx1ZUZvclByb3BlcnR5SW5TdHlsZShzdHls
ZSwgY3NzUHJvcGVydHlJZCwgcmVuZGVyZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgc3R5
bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQodmFsdWUtPmNzc1RleHQoKSk7CisgICAgICAgICAgICAg
ICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChjb3VudCA+IDApCisgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRC
dWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
ZiAoIXN0eWxlUGF5bG9hZEJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBr
ZXlmcmFtZVBheWxvYWQtPnNldFN0eWxlKHN0eWxlUGF5bG9hZEJ1aWxkZXIudG9TdHJpbmcoKSk7
CisKKyAgICAgICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5
ZnJhbWVQYXlsb2FkKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhcnNlZEtleWZyYW1lIDoga2V5ZnJhbWVFZmZlY3QucGFy
c2VkS2V5ZnJhbWVzKCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAg
ICAgICAgICAgICAgICAgIC5zZXRPZmZzZXQocGFyc2VkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQp
CisgICAgICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAo
IXBhcnNlZEtleWZyYW1lLmVhc2luZy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIGtl
eWZyYW1lUGF5bG9hZC0+c2V0RWFzaW5nKHBhcnNlZEtleWZyYW1lLmVhc2luZyk7CisKKyAgICAg
ICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZyYW1lLnN0eWxlLT5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0U3R5bGUocGFyc2VkS2V5ZnJhbWUuc3R5
bGUtPmFzVGV4dCgpKTsKKworICAgICAgICAgICAgICAgIGtleWZyYW1lc1BheWxvYWQtPmFkZEl0
ZW0oV1RGTW92ZShrZXlmcmFtZVBheWxvYWQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIGlmIChrZXlmcmFtZXNQYXlsb2FkLT5sZW5ndGgoKSkKKyAgICAgICAgICAgIGVm
ZmVjdFBheWxvYWQtPnNldEtleWZyYW1lcyhXVEZNb3ZlKGtleWZyYW1lc1BheWxvYWQpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gV1RGTW92ZShlZmZlY3RQYXlsb2FkKTsKK30KKworU3RyaW5nIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQoV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24pCit7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGV4aXN0aW5nQW5pbWF0aW9u
XSA6IG1fYW5pbWF0aW9uSWRNYXApIHsKKyAgICAgICAgaWYgKGV4aXN0aW5nQW5pbWF0aW9uID09
ICZhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uSWQ7CisgICAgfQorICAg
IHJldHVybiBudWxsU3RyaW5nKCk7Cit9CisKK1dlYkFuaW1hdGlvbiogSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmFzc2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAgYXV0byogYW5pbWF0aW9uID0gbV9hbmltYXRp
b25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICBl
cnJvclN0cmluZyA9ICJNaXNzaW5nIEFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQiX3M7
CisgICAgcmV0dXJuIGFuaW1hdGlvbjsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6YmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbiwgYm9vbCBjYXB0dXJlQmFj
a3RyYWNlKQoreworICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBtYWtlU3RyaW5nKCJhbmltYXRpb246
IiArIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKTsKKyAgICBtX2FuaW1h
dGlvbklkTWFwLnNldChhbmltYXRpb25JZCwgJmFuaW1hdGlvbik7CisKKyAgICBhdXRvIGFuaW1h
dGlvblBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkFuaW1hdGlvbjo6
Y3JlYXRlKCkKKyAgICAgICAgLnNldEFuaW1hdGlvbklkKGFuaW1hdGlvbklkKQorICAgICAgICAu
cmVsZWFzZSgpOworCisgICAgaWYgKGlzPENTU0FuaW1hdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAg
ICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0Q3NzQW5pbWF0aW9uTmFtZShkb3duY2FzdDxDU1NBbmlt
YXRpb24+KGFuaW1hdGlvbikuYW5pbWF0aW9uTmFtZSgpKTsKKyAgICBlbHNlIGlmIChpczxDU1NU
cmFuc2l0aW9uPihhbmltYXRpb24pKQorICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRDc3NU
cmFuc2l0aW9uUHJvcGVydHkoZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKS50cmFu
c2l0aW9uUHJvcGVydHkoKSk7CisKKyAgICBpZiAoYXV0byBlZmZlY3RQYXlsb2FkID0gYnVpbGRP
YmplY3RGb3JFZmZlY3QoYW5pbWF0aW9uLmVmZmVjdCgpKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5
bG9hZC0+c2V0RWZmZWN0KFdURk1vdmUoZWZmZWN0UGF5bG9hZCkpOworCisgICAgaWYgKGNhcHR1
cmVCYWNrdHJhY2UpIHsKKyAgICAgICAgYXV0byBzdGFja1RyYWNlID0gSW5zcGVjdG9yOjpjcmVh
dGVTY3JpcHRDYWxsU3RhY2soSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCBJbnNwZWN0b3I6
OlNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CisgICAgICAgIGFu
aW1hdGlvblBheWxvYWQtPnNldEJhY2t0cmFjZShzdGFja1RyYWNlLT5idWlsZEluc3BlY3RvckFy
cmF5KCkpOworICAgIH0KKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25DcmVh
dGVkKFdURk1vdmUoYW5pbWF0aW9uUGF5bG9hZCkpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1h
dGlvbkFnZW50Ojp1bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCkKK3sK
KyAgICBtX2FuaW1hdGlvbklkTWFwLnJlbW92ZShhbmltYXRpb25JZCk7CisKKyAgICAvLyBUaGlz
IGNhbiBiZSBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gR0MuIER1ZSB0byB0aGUgc2luZ2xlLXByb2Nl
c3MgbW9kZWwgdXNlZCBpbiBXZWJLaXQxLCB0aGUKKyAgICAvLyBldmVudCBtdXN0IGJlIGRpc3Bh
dGNoZWQgZnJvbSBhIHRpbWVyIHRvIHByZXZlbnQgdGhlIGZyb250ZW5kIGZyb20gbWFraW5nIEpT
IGFsbG9jYXRpb25zCisgICAgLy8gd2hpbGUgdGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KKyAgICBt
X3JlbW92ZWRBbmltYXRpb25JZHMuYXBwZW5kKGFuaW1hdGlvbklkKTsKKworICAgIGlmICghbV9h
bmltYXRpb25EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRl
c3Ryb3llZFRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1h
dGlvbkFnZW50OjphbmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoIW1f
cmVtb3ZlZEFuaW1hdGlvbklkcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAo
YXV0byYgaWRlbnRpZmllciA6IG1fcmVtb3ZlZEFuaW1hdGlvbklkcykKKyAgICAgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXItPmFuaW1hdGlvbkRlc3Ryb3llZChpZGVudGlmaWVyKTsKKworICAgIG1f
cmVtb3ZlZEFuaW1hdGlvbklkcy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50OjpyZXNldCgpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisgICAg
bV9yZW1vdmVkQW5pbWF0aW9uSWRzLmNsZWFyKCk7CisKKyAgICBpZiAobV9hbmltYXRpb25EZXN0
cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVy
LnN0b3AoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RvcFRyYWNraW5n
RGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mIGFuaW1hdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQuaAppbmRleCA3YTI0YmJjYmIxYjMzMWQxOTBkYTYwYzAwZDIxYmQ5MzU0OGZh
YjAwLi4xMDAwYzk1ODA5YTdlODA4MjVhNTVmMTgxMTQ2OTQ5MTZmYjc4YTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRp
b25BZ2VudC5oCkBAIC0yNywxNiArMjcsMjAgQEAKIAogI2luY2x1ZGUgIkNvbXB1dGVkRWZmZWN0
VGltaW5nLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCisjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3Bh
dGNoZXJzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBBbmltYXRpb25FZmZlY3Q7CiBjbGFzcyBEZWNsYXJhdGl2ZUFuaW1hdGlvbjsK
IGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgS2V5ZnJh
bWVFZmZlY3Q7CitjbGFzcyBQYWdlOwogY2xhc3MgV2ViQW5pbWF0aW9uOwogCiB0eXBlZGVmIFN0
cmluZyBFcnJvclN0cmluZzsKQEAgLTUzLDIwICs1Nyw0NCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24p
IG92ZXJyaWRlOwogCiAgICAgLy8gQW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisg
ICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOworICAg
IHZvaWQgcmVzb2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFRy
YWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgog
ICAgIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0
JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGlt
aW5nKFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
VGFyZ2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdl
YkFuaW1hdGlvbiYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0
aW9uJik7CisgICAgdm9pZCBmcmFtZU5hdmlnYXRlZChGcmFtZSYpOwogCiBwcml2YXRlOgorICAg
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdD4gYnVpbGRPYmpl
Y3RGb3JFZmZlY3QoQW5pbWF0aW9uRWZmZWN0Kik7CisKKyAgICBTdHJpbmcgZmluZEFuaW1hdGlv
bklkKFdlYkFuaW1hdGlvbiYpOworICAgIFdlYkFuaW1hdGlvbiogYXNzZXJ0QW5pbWF0aW9uKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBiaW5kQW5p
bWF0aW9uKFdlYkFuaW1hdGlvbiYsIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSk7CisgICAgdm9pZCB1
bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBhbmlt
YXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCk7CisgICAgdm9pZCByZXNldCgpOworCiAgICAgdm9p
ZCBzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNsYXJhdGl2ZUFuaW1hdGlvbiYp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6QW5pbWF0aW9uRnJvbnRlbmREaXNw
YXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpBbmlt
YXRpb25CYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAorICAgIEluc3Bl
Y3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAg
ICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CisKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQW5pbWF0
aW9uKj4gbV9hbmltYXRpb25JZE1hcDsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRBbmlt
YXRpb25JZHM7CisgICAgVGltZXIgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lcjsKKwogICAgIHN0
cnVjdCBUcmFja2VkRGVjbGFyYXRpdmVBbmltYXRpb25EYXRhIHsKICAgICAgICAgU3RyaW5nIHRy
YWNraW5nQW5pbWF0aW9uSWQ7CiAgICAgICAgIENvbXB1dGVkRWZmZWN0VGltaW5nIGxhc3RDb21w
dXRlZFRpbWluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYWVjYzc5YmMwY2E1NmZiNjVmZTAzMzBmMDhlNGVl
Njg4YmY4MWU4OS4uMGY0NmEzMDMzYWVmNDAwN2Y2ZWI4MzdhNjEwNWYwNWEwYzU5MDY3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01B
Z2VudC5jcHAKQEAgLTU2Niw3ICs1NjYsNyBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hO
b2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBkb2N1bWVudAogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChub2RlVG9QdXNoKTsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0
cmluZywgbm9kZVRvUHVzaCk7CiB9CiAKIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9y
SWQoaW50IGlkKQpAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1
ZXJ5U2VsZWN0b3IoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zCiAg
ICAgfQogCiAgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSBxdWVyeVJlc3VsdC5yZWxlYXNlUmV0dXJu
VmFsdWUoKSkKLSAgICAgICAgKmVsZW1lbnRJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZWxl
bWVudCk7CisgICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9y
U3RyaW5nLCBlbGVtZW50KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxl
Y3RvckFsbChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3JzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYgcmVzdWx0KQpAQCAtNjM5
LDEzICs2MzksMjQgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGMKIH0KIAogaW50IEluc3BlY3Rv
ckRPTUFnZW50OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGVUb1B1c2gpCit7Cisg
ICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChpZ25vcmVkLCBub2RlVG9QdXNoKTsKK30KKworaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nIGVycm9yU3RyaW5nLCBOb2RlKiBub2RlVG9Q
dXNoKQogewogICAgIEFTU0VSVChub2RlVG9QdXNoKTsgIC8vIEludmFsaWQgaW5wdXQKIAotICAg
IGlmICghbV9kb2N1bWVudCkKKyAgICBpZiAoIW1fZG9jdW1lbnQpIHsKKyAgICAgICAgZXJyb3JT
dHJpbmcgPSAiTWlzc2luZyBkb2N1bWVudCJfczsKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYg
KCFtX2RvY3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpCisgICAgfQorCisg
ICAgaWYgKCFtX2RvY3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpIHsKKyAg
ICAgICAgZXJyb3JTdHJpbmcgPSAiRG9jdW1lbnQgbXVzdCBoYXZlIGJlZW4gcmVxdWVzdGVkIl9z
OwogICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICAvLyBSZXR1cm4gaWQgaW4gY2FzZSB0
aGUgbm9kZSBpcyBrbm93bi4KICAgICBpbnQgcmVzdWx0ID0gbV9kb2N1bWVudE5vZGVUb0lkTWFw
LmdldChub2RlVG9QdXNoKTsKQEAgLTc5MCw3ICs4MDEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpzZXROb2RlTmFtZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNv
bnN0CiAgICAgaWYgKCFtX2RvbUVkaXRvci0+cmVtb3ZlQ2hpbGQoKnBhcmVudCwgKm9sZE5vZGUs
IGVycm9yU3RyaW5nKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgKm5ld0lkID0gcHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChuZXdFbGVtZW50LnB0cigpKTsKKyAgICAqbmV3SWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBuZXdFbGVtZW50LnB0cigpKTsKICAgICBpZiAobV9j
aGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhub2RlSWQpKQogICAgICAgICBwdXNoQ2hpbGROb2Rl
c1RvRnJvbnRlbmQoKm5ld0lkKTsKIH0KQEAgLTgzMCw3ICs4NDEsNyBAQCB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9k
ZUlkLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG5ld0lkID0gcHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChuZXdOb2RlKTsKKyAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBuZXdOb2RlKTsKIAogICAgIGJvb2wgY2hpbGRyZW5S
ZXF1ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCk7CiAgICAgaWYg
KGNoaWxkcmVuUmVxdWVzdGVkKQpAQCAtMTQyMiw3ICsxNDMzLDcgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6bW92ZVRvKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgaW50
IHRhcmdldEUKICAgICBpZiAoIW1fZG9tRWRpdG9yLT5pbnNlcnRCZWZvcmUoKnRhcmdldEVsZW1l
bnQsICpub2RlLCBhbmNob3JOb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAot
ICAgICpuZXdOb2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICpuZXdO
b2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5kbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCkBA
IC0xNDk4LDExICsxNTA5LDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldEF0dHJpYnV0
ZXMoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBSZWZQCiAgICAgcmVzdWx0
ID0gYnVpbGRBcnJheUZvckVsZW1lbnRBdHRyaWJ1dGVzKGVsZW1lbnQpOwogfQogCi12b2lkIElu
c3BlY3RvckRPTUFnZW50OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
b2JqZWN0SWQsIGludCogbm9kZUlkKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5v
ZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQq
IG5vZGVJZCkKIHsKICAgICBOb2RlKiBub2RlID0gbm9kZUZvck9iamVjdElkKG9iamVjdElkKTsK
ICAgICBpZiAobm9kZSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
bm9kZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3Ry
aW5nLCBub2RlKTsKICAgICBlbHNlCiAgICAgICAgICpub2RlSWQgPSAwOwogfQpAQCAtMjY0Niw3
ICsyNjU3LDcgQEAgTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JPYmplY3RJZChjb25z
dCBTdHJpbmcmIG9iamVjdElkKQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBh
dGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwYXRo
LCBpbnQqIG5vZGVJZCkKIHsKICAgICBpZiAoTm9kZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBhdGgp
KQotICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAg
ICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwog
ICAgIGVsc2UKICAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBub2RlIGZvciBnaXZlbiBw
YXRoIl9zOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5oCmluZGV4IDUxNjM5YWJlYjg0ZjRkOTVkZWQzZjRmYjY0MDlhZDhmNjJh
Mjg5NGUuLjdkZjBlODNlYjUzZDc1YzQxYzU1NGYxNDAxMjM1YmEyMTcxOTQxNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgK
QEAgLTE4MCw2ICsxODAsOCBAQCBwdWJsaWM6CiAKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5k
KE5vZGUqKTsKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgaW50IGRv
Y3VtZW50Tm9kZUlkLCBOb2RlKik7CisgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9k
ZSopOworICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nLCBOb2RlKik7
CiAgICAgTm9kZSogbm9kZUZvcklkKGludCBub2RlSWQpOwogICAgIGludCBib3VuZE5vZGVJZChj
b25zdCBOb2RlKik7CiAKQEAgLTIxNyw3ICsyMTksNiBAQCBwcml2YXRlOgogICAgIE5vZGUqIGFz
c2VydEVkaXRhYmxlTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogICAgIEVsZW1lbnQq
IGFzc2VydEVkaXRhYmxlRWxlbWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogCi0gICAg
aW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSopOwogICAgIHZvaWQgcHVzaENoaWxkTm9k
ZXNUb0Zyb250ZW5kKGludCBub2RlSWQsIGludCBkZXB0aCA9IDEpOwogCiAgICAgUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gYnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqLCBpbnQg
ZGVwdGgsIE5vZGVUb0lkTWFwKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRl
eCBlNTE5NTZhNDQ4OTRkOTE1MjJlNzZhNGUyZTY0MzNhNGZlYTFlMWM4Li42YWI3YWVhOTY4N2Uy
MGVmYjQ1YzBjZmRjZjA4YzhmOTExNmMzMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKQEAgLTg0LDYgKzg0LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siQWNjZXNzaWJpbGl0eSJd
ID0gIkFjY2Vzc2liaWxpdHkiOwogbG9jYWxpemVkU3RyaW5nc1siQWN0aW9uIl0gPSAiQWN0aW9u
IjsKIC8qIFRvb2x0aXAgZm9yIGEgdGltZSByYW5nZSBiYXIgdGhhdCByZXByZXNlbnRzIHdoZW4g
YSBDU1MgYW5pbWF0aW9uL3RyYW5zaXRpb24gaXMgcnVubmluZyAqLwogbG9jYWxpemVkU3RyaW5n
c1siQWN0aXZlIl0gPSAiQWN0aXZlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFjdGl2ZSBEdXJhdGlv
biJdID0gIkFjdGl2ZSBEdXJhdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBY3Rpdml0eSBWaWV3
ZXIiXSA9ICJBY3Rpdml0eSBWaWV3ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siQWRkIl0gPSAiQWRk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCAlcyBSdWxlIl0gPSAiQWRkICVzIFJ1bGUiOwpAQCAt
MTIwLDE3ICsxMjEsMjIgQEAgbG9jYWxpemVkU3RyaW5nc1siQWxsIGl0ZW1zIGluIFx1MDAyMiVz
XHUwMDIyIG11c3QgYmUgZXJyb3Igb2JqZWN0cyJdID0gIkFsbCBpdGUKIGxvY2FsaXplZFN0cmlu
Z3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIG5vbi1lbXB0eSBzdHJpbmdz
Il0gPSAiQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11c3QgYmUgbm9uLWVtcHR5IHN0cmlu
Z3MiOwogbG9jYWxpemVkU3RyaW5nc1siQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11c3Qg
YmUgdmFsaWQgRE9NIG5vZGVzIl0gPSAiQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11c3Qg
YmUgdmFsaWQgRE9NIG5vZGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFsbG93IE1lZGlhIENhcHR1
cmUgb24gSW5zZWN1cmUgU2l0ZXMiXSA9ICJBbGxvdyBNZWRpYSBDYXB0dXJlIG9uIEluc2VjdXJl
IFNpdGVzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFsdGVybmF0ZSJdID0gIkFsdGVybmF0ZSI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJBbHRlcm5hdGUgUmV2ZXJzZSJdID0gIkFsdGVybmF0ZSBSZXZlcnNl
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byBsb2FkIHRo
ZSByZXNvdXJjZS4iXSA9ICJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUgcmVz
b3VyY2UuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byBy
ZWFkIHRoZSBcdTIwMUMlc1x1MjAxRCB0YWJsZS4iXSA9ICJBbiBlcnJvciBvY2N1cnJlZCB0cnlp
bmcgdG8gcmVhZCB0aGUgXHUyMDFDJXNcdTIwMUQgdGFibGUuIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkFuIHVuZXhwZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJv
ciAlcyBvY2N1cnJlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciBv
Y2N1cnJlZC4iXSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJBbmdsZSJdID0gIkFuZ2xlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiJd
ID0gIkFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gJWQiXSA9ICJBbmlt
YXRpb24gJWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVk
Il0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFu
aW1hdGlvbiBGcmFtZSAlZCBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVzdGVkIl0gPSAiQW5pbWF0
aW9uIEZyYW1lICVkIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJh
bWUgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgQ2FuY2VsZWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siQW5pbWF0aW9uIEZyYW1lIEZpcmVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIEZpcmVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0ZWQiXSA9ICJBbmltYXRp
b24gRnJhbWUgUmVxdWVzdGVkIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBUYXJnZXQi
XSA9ICJBbmltYXRpb24gVGFyZ2V0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFub255bW91cyBTY3Jp
cHQgJWQiXSA9ICJBbm9ueW1vdXMgU2NyaXB0ICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFub255
bW91cyBTY3JpcHRzIl0gPSAiQW5vbnltb3VzIFNjcmlwdHMiOwogbG9jYWxpemVkU3RyaW5nc1si
QW5vbnltb3VzIFN0eWxlIFNoZWV0ICVkIl0gPSAiQW5vbnltb3VzIFN0eWxlIFNoZWV0ICVkIjsK
QEAgLTE2OSwxNiArMTc1LDE5IEBAIGxvY2FsaXplZFN0cmluZ3NbIkF2ZXJhZ2U6ICVzIl0gPSAi
QXZlcmFnZTogJXMiOwogbG9jYWxpemVkU3RyaW5nc1siQk1QIl0gPSAiQk1QIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkJhY2sgKCVzKSJdID0gIkJhY2sgKCVzKSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJC
YWNrdHJhY2UiXSA9ICJCYWNrdHJhY2UiOworbG9jYWxpemVkU3RyaW5nc1siQmFja3dhcmRzIl0g
PSAiQmFja3dhcmRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJhc2ljIl0gPSAiQmFzaWMiOwogbG9j
YWxpemVkU3RyaW5nc1siQmVhY29uIl0gPSAiQmVhY29uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJl
YWNvbnMiXSA9ICJCZWFjb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJpbmFyeSBGcmFtZSJdID0g
IkJpbmFyeSBGcmFtZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCaW5kaW5nIl0gPSAiQmluZGluZyI7
Citsb2NhbGl6ZWRTdHJpbmdzWyJCaXRtYXAgUmVuZGVyZXIiXSA9ICJCaXRtYXAgUmVuZGVyZXIi
OwogbG9jYWxpemVkU3RyaW5nc1siQmxhY2tib3giXSA9ICJCbGFja2JveCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJCbGFja2JveCBTY3JpcHQiXSA9ICJCbGFja2JveCBTY3JpcHQiOwogbG9jYWxpemVk
U3RyaW5nc1siQmxhY2tib3ggc2NyaXB0IHRvIGlnbm9yZSBpdCB3aGVuIGRlYnVnZ2luZyJdID0g
IkJsYWNrYm94IHNjcmlwdCB0byBpZ25vcmUgaXQgd2hlbiBkZWJ1Z2dpbmciOwogbG9jYWxpemVk
U3RyaW5nc1siQmxvY2sgVmFyaWFibGVzIl0gPSAiQmxvY2sgVmFyaWFibGVzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkJvZHk6Il0gPSAiQm9keToiOworbG9jYWxpemVkU3RyaW5nc1siQm90aCJdID0g
IkJvdGgiOwogbG9jYWxpemVkU3RyaW5nc1siQm91bmRhcnkiXSA9ICJCb3VuZGFyeSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJCb3ggTW9kZWwiXSA9ICJCb3ggTW9kZWwiOwogbG9jYWxpemVkU3RyaW5n
c1siQnJlYWsgb24iXSA9ICJCcmVhayBvbiI7CkBAIC0yMDEsOSArMjEwLDExIEBAIGxvY2FsaXpl
ZFN0cmluZ3NbIkNQVSJdID0gIkNQVSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDUFUgVXNhZ2UiXSA9
ICJDUFUgVXNhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NQIEhhc2giXSA9ICJDU1AgSGFzaCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQW5pbWF0aW9uIl0gPSAiQ1NTIEFuaW1hdGlvbiI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJDU1MgQW5pbWF0aW9ucyJdID0gIkNTUyBBbmltYXRpb25zIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkNTUyBDYW52YXMiXSA9ICJDU1MgQ2FudmFzIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNTUyBDaGFuZ2VzOiJdID0gIkNTUyBDaGFuZ2VzOiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDU1MgVHJhbnNpdGlvbiJdID0gIkNTUyBUcmFuc2l0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3Nb
IkNTUyBUcmFuc2l0aW9ucyJdID0gIkNTUyBUcmFuc2l0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDU1MgY2FudmFzIFx1MjAxQyVzXHUyMDFEIl0gPSAiQ1NTIGNhbnZhcyBcdTIwMUMlc1x1MjAx
RCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWNoZWQiXSA9ICJDYWNoZWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siQ2FsbCBGcmFtZXMgVHJ1bmNhdGVkIl0gPSAiQ2FsbCBGcmFtZXMgVHJ1bmNhdGVkIjsK
QEAgLTM3Nyw2ICszODgsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJEZXZpY2UgJWQiXSA9ICJEZXZp
Y2UgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siRGV2aWNlIFNldHRpbmdzIl0gPSAiRGV2aWNlIFNl
dHRpbmdzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpYWdub3NlcyBjb21tb24gYWNjZXNzaWJpbGl0
eSBwcm9ibGVtcyBhZmZlY3Rpbmcgc2NyZWVuIHJlYWRlcnMgYW5kIG90aGVyIGFzc2lzdGl2ZSB0
ZWNobm9sb2d5LiJdID0gIkRpYWdub3NlcyBjb21tb24gYWNjZXNzaWJpbGl0eSBwcm9ibGVtcyBh
ZmZlY3Rpbmcgc2NyZWVuIHJlYWRlcnMgYW5kIG90aGVyIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaW1lbnNpb25zIl0gPSAiRGltZW5zaW9ucyI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJEaXJlY3Rpb24iXSA9ICJEaXJlY3Rpb24iOwogbG9jYWxpemVkU3RyaW5nc1si
RGlzYWJsZSBCcmVha3BvaW50Il0gPSAiRGlzYWJsZSBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkRpc2FibGUgQnJlYWtwb2ludHMiXSA9ICJEaXNhYmxlIEJyZWFrcG9pbnRzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkRpc2FibGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyJdID0gIkRpc2Fi
bGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyI7CkBAIC00MTksNiArNDMxLDcgQEAgbG9jYWxpemVk
U3RyaW5nc1siRHVyYXRpb246IFNob3J0Il0gPSAiRHVyYXRpb246IFNob3J0IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoZSBwYXJlbnQgZWxlbWVudCJd
ID0gIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoZSBwYXJlbnQgZWxlbWVudCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0ZWQgZWxl
bWVudCJdID0gIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoZSBzZWxlY3RlZCBlbGVtZW50
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoZSBzZWxl
Y3RlZCBlbGVtZW50IGFuZCBkaWQgbm90IG1hdGNoIl0gPSAiRHluYW1pY2FsbHkgY2FsY3VsYXRl
ZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQgYW5kIGRpZCBub3QgbWF0Y2giOworbG9jYWxpemVk
U3RyaW5nc1siRWFzaW5nIl0gPSAiRWFzaW5nIjsKIC8qIExhYmVsIGZvciBhIGd1aWRlIHdpdGhp
biB0aGUgY29sb3IgcGlja2VyICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGdlIG9mIHNSR0IgY29s
b3Igc3BhY2UiXSA9ICJFZGdlIG9mIHNSR0IgY29sb3Igc3BhY2UiOwogbG9jYWxpemVkU3RyaW5n
c1siRWRpdCJdID0gIkVkaXQiOwpAQCAtNDMwLDYgKzQ0Myw3IEBAIGxvY2FsaXplZFN0cmluZ3Nb
IkVkaXQgXHUyMDFDc3ByaW5nXHUyMDFEIGZ1bmN0aW9uIl0gPSAiRWRpdCBcdTIwMUNzcHJpbmdc
dTIwMUQKIGxvY2FsaXplZFN0cmluZ3NbIkVkaXQgY29uZmlndXJhdGlvbiJdID0gIkVkaXQgY29u
ZmlndXJhdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0IGN1c3RvbSBncmFkaWVudCJdID0g
IkVkaXQgY3VzdG9tIGdyYWRpZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVkaXRpbmcgYXVkaXRz
Il0gPSAiRWRpdGluZyBhdWRpdHMiOworbG9jYWxpemVkU3RyaW5nc1siRWZmZWN0Il0gPSAiRWZm
ZWN0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQiXSA9ICJFbGVtZW50IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkVsZW1lbnQgU2VsZWN0aW9uOiJdID0gIkVsZW1lbnQgU2VsZWN0aW9uOiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50IGNsaXBzIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIl0g
PSAiRWxlbWVudCBjbGlwcyBjb21wb3NpdGluZyBkZXNjZW5kYW50cyI7CkBAIC00NzgsNiArNDky
LDggQEAgbG9jYWxpemVkU3RyaW5nc1siRW5hYmxlIHNvdXJjZSBtYXBzIl0gPSAiRW5hYmxlIHNv
dXJjZSBtYXBzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZWQiXSA9ICJFbmFibGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkVuY29kZWQiXSA9ICJFbmNvZGVkIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkVuY29kaW5nIl0gPSAiRW5jb2RpbmciOworbG9jYWxpemVkU3RyaW5nc1siRW5kIERlbGF5Il0g
PSAiRW5kIERlbGF5IjsKK2xvY2FsaXplZFN0cmluZ3NbIkVuZCBEZWxheSAlcyJdID0gIkVuZCBE
ZWxheSAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmVyZ3kgSW1wYWN0Il0gPSAiRW5lcmd5IElt
cGFjdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgYXJpYS1oaWRkZW49XHUwMDIyJXNcdTAw
MjIgaXMgbm90IHVzZWQuIl0gPSAiRW5zdXJlIGFyaWEtaGlkZGVuPVx1MDAyMiVzXHUwMDIyIGlz
IG5vdCB1c2VkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgdGhhdCBcdTAwMjIlc1x1MDAy
MiBpcyBzcGVsbGVkIGNvcnJlY3RseS4iXSA9ICJFbnN1cmUgdGhhdCBcdTAwMjIlc1x1MDAyMiBp
cyBzcGVsbGVkIGNvcnJlY3RseS4iOwpAQCAtNTM3LDYgKzU1Myw3IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIkZldGNoIl0gPSAiRmV0Y2giOwogbG9jYWxpemVkU3RyaW5nc1siRmV0Y2hlcyJdID0gIkZl
dGNoZXMiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsZSBvciBSZXNvdXJjZSJdID0gIkZpbGUgb3Ig
UmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsZW5hbWUiXSA9ICJGaWxlbmFtZSI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJGaWxsIl0gPSAiRmlsbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWx0
ZXIiXSA9ICJGaWx0ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsdGVyIEZ1bGwgVVJMIl0gPSAi
RmlsdGVyIEZ1bGwgVVJMIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbHRlcjoiXSA9ICJGaWx0ZXI6
IjsKQEAgLTU2NSw2ICs1ODIsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJGb3JtYXQ6IFJHQkEiXSA9
ICJGb3JtYXQ6IFJHQkEiOwogbG9jYWxpemVkU3RyaW5nc1siRm9ybWF0OiBTaG9ydCBIZXgiXSA9
ICJGb3JtYXQ6IFNob3J0IEhleCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGb3JtYXQ6IFNob3J0IEhl
eCB3aXRoIEFscGhhIl0gPSAiRm9ybWF0OiBTaG9ydCBIZXggd2l0aCBBbHBoYSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJGb3J3YXJkICglcykiXSA9ICJGb3J3YXJkICglcykiOworbG9jYWxpemVkU3Ry
aW5nc1siRm9yd2FyZHMiXSA9ICJGb3J3YXJkcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGcmFnbWVu
dCJdID0gIkZyYWdtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkZyYWdtZW50IFNoYWRlciJdID0g
IkZyYWdtZW50IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGcmFtZSAlZCJdID0gIkZyYW1l
ICVkIjsKQEAgLTU4NSw2ICs2MDMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgQ29kZSJd
ID0gIkdsb2JhbCBDb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdsb2JhbCBMZXhpY2FsIEVudmly
b25tZW50Il0gPSAiR2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQiOwogbG9jYWxpemVkU3RyaW5n
c1siR2xvYmFsIFZhcmlhYmxlcyJdID0gIkdsb2JhbCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3Ry
aW5nc1siR3JhbW1hciJdID0gIkdyYW1tYXIiOworbG9jYWxpemVkU3RyaW5nc1siR3JhcGhpY3Mi
XSA9ICJHcmFwaGljcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCJdID0gIkdyb3VwIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkdyb3VwIEJ5IFJlc291cmNlIl0gPSAiR3JvdXAgQnkgUmVzb3VyY2Ui
OwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAgTWVkaWEgUmVxdWVzdHMiXSA9ICJHcm91cCBNZWRp
YSBSZXF1ZXN0cyI7CkBAIC02MzMsNiArNjUyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siSW1hZ2Vz
Il0gPSAiSW1hZ2VzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltYWdlczoiXSA9ICJJbWFnZXM6IjsK
IGxvY2FsaXplZFN0cmluZ3NbIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiXSA9ICJJbW1lZGlh
dGUgUGF1c2UgUmVxdWVzdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydCJdID0gIkltcG9y
dCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQgUmVjb3JkaW5nIl0gPSAiSW1wb3J0IFJlY29y
ZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCJdID0gIkltcG9ydGVkIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkltcG9ydGVkIC0gJXMiXSA9ICJJbXBvcnRlZCAtICVzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkltcG9ydGVkIFx1MjAxNCAlcyJdID0gIkltcG9ydGVkIFx1MjAxNCAlcyI7CkBA
IC02NjEsNiArNjgxLDkgQEAgbG9jYWxpemVkU3RyaW5nc1siSW52b2tlIGdldHRlciJdID0gIklu
dm9rZSBnZXR0ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siSXQgaXMgZXZhbHVhdGVkIGltbWVkaWF0
ZWx5IGFmdGVyIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGNyZWF0ZWQsIGJlZm9yZSBhbnkgb3RoZXIg
Y29udGVudCBoYXMgbG9hZGVkLiJdID0gIkl0IGlzIGV2YWx1YXRlZCBpbW1lZGlhdGVseSBhZnRl
ciB0aGUgZ2xvYmFsIG9iamVjdCBpcyBjcmVhdGVkLCBiZWZvcmUgYW55IG90aGVyIGNvbnRlbnQg
aGFzIGxvYWRlZC4iOwogLyogVG9vbHRpcCBmb3IgYSB0aW1lc3RhbXAgbWFya2VyIHRoYXQgcmVw
cmVzZW50cyB3aGVuIGEgQ1NTIGFuaW1hdGlvbi90cmFuc2l0aW9uIGl0ZXJhdGVzICovCiBsb2Nh
bGl6ZWRTdHJpbmdzWyJJdGVyYXRpb24iXSA9ICJJdGVyYXRpb24iOworbG9jYWxpemVkU3RyaW5n
c1siSXRlcmF0aW9uIER1cmF0aW9uIl0gPSAiSXRlcmF0aW9uIER1cmF0aW9uIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIkl0ZXJhdGlvbiBTdGFydCJdID0gIkl0ZXJhdGlvbiBTdGFydCI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJJdGVyYXRpb25zIl0gPSAiSXRlcmF0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJKUDIiXSA9ICJKUDIiOwogbG9jYWxpemVkU3RyaW5nc1siSlBFRyJdID0gIkpQRUciOwogbG9j
YWxpemVkU3RyaW5nc1siSmF2YVNjcmlwdCJdID0gIkphdmFTY3JpcHQiOwpAQCAtNjk3LDYgKzcy
MCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFN0b3JhZ2UiXSA9ICJMb2NhbCBTdG9yYWdl
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFZhcmlhYmxlcyJdID0gIkxvY2FsIFZhcmlhYmxl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGVkIGF0ICVzIl0gPSAiTG9jYXRlZCBhdCAlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGlvbiJdID0gIkxvY2F0aW9uIjsKK2xvY2FsaXplZFN0
cmluZ3NbIkxvZyBBbmltYXRpb24iXSA9ICJMb2cgQW5pbWF0aW9uIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkxvZyBDYW52YXMgQ29udGV4dCJdID0gIkxvZyBDYW52YXMgQ29udGV4dCI7CiAvKiBMb2cg
KHByaW50KSBET00gZWxlbWVudCB0byBDb25zb2xlICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cg
RWxlbWVudCJdID0gIkxvZyBFbGVtZW50IjsKQEAgLTc5OSw2ICs4MjMsNyBAQCBsb2NhbGl6ZWRT
dHJpbmdzWyJOb2RlIl0gPSAiTm9kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb2RlIFJlbW92ZWQi
XSA9ICJOb2RlIFJlbW92ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siTm9kZXMiXSA9ICJOb2RlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb25lIl0gPSAiTm9uZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJO
b3JtYWwiXSA9ICJOb3JtYWwiOwogbG9jYWxpemVkU3RyaW5nc1siTm90IGZvdW5kIl0gPSAiTm90
IGZvdW5kIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVjdCBHcmFwaCJdID0gIk9iamVjdCBHcmFw
aCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPYmplY3QgU3RvcmUiXSA9ICJPYmplY3QgU3RvcmUiOwpA
QCAtOTEyLDcgKzkzNyw2IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlZGlyZWN0cyJdID0gIlJlZGly
ZWN0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZlcmVuY2UgSXNzdWUiXSA9ICJSZWZlcmVuY2Ug
SXNzdWUiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmbGVjdGlvbiJdID0gIlJlZmxlY3Rpb24iOwog
bG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCJdID0gIlJlZnJlc2giOwotbG9jYWxpemVkU3RyaW5n
c1siUmVmcmVzaCBhbGwiXSA9ICJSZWZyZXNoIGFsbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZy
ZXNoIHdhdGNoIGV4cHJlc3Npb25zIl0gPSAiUmVmcmVzaCB3YXRjaCBleHByZXNzaW9ucyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZWdpb24gYW5ub3VuY2VkIGluIGl0cyBlbnRpcmV0eS4iXSA9ICJS
ZWdpb24gYW5ub3VuY2VkIGluIGl0cyBlbnRpcmV0eS4iOwogbG9jYWxpemVkU3RyaW5nc1siUmVn
dWxhciBFeHByZXNzaW9uIl0gPSAiUmVndWxhciBFeHByZXNzaW9uIjsKQEAgLTk4MCw2ICsxMDA0
LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE5ldHdvcmsgVGFiIl0gPSAiUmV2ZWFs
IGluIE5ldHdvcmsgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBPcmlnaW5hbCBS
ZXNvdXJjZSJdID0gIlJldmVhbCBpbiBPcmlnaW5hbCBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZXZlYWwgaW4gU291cmNlcyBUYWIiXSA9ICJSZXZlYWwgaW4gU291cmNlcyBUYWIiOwog
bG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIFN0eWxlIFNoZWV0Il0gPSAiUmV2ZWFsIGluIFN0
eWxlIFNoZWV0IjsKK2xvY2FsaXplZFN0cmluZ3NbIlJldmVyc2UiXSA9ICJSZXZlcnNlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlJvbGUiXSA9ICJSb2xlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJ1biAl
ZCJdID0gIlJ1biAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSdW4gY29uc29sZSBjb21tYW5kcyBh
cyBpZiBpbnNpZGUgYSB1c2VyIGdlc3R1cmUiXSA9ICJSdW4gY29uc29sZSBjb21tYW5kcyBhcyBp
ZiBpbnNpZGUgYSB1c2VyIGdlc3R1cmUiOwpAQCAtMTAyMiw2ICsxMDQ3LDcgQEAgbG9jYWxpemVk
U3RyaW5nc1siU2VjdXJpdHkgT3JpZ2luIl0gPSAiU2VjdXJpdHkgT3JpZ2luIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlNlbGVjdCBiYXNlbGluZSBzbmFwc2hvdCJdID0gIlNlbGVjdCBiYXNlbGluZSBz
bmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3QgY29tcGFyaXNvbiBzbmFwc2hvdCJd
ID0gIlNlbGVjdCBjb21wYXJpc29uIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVj
dGVkIl0gPSAiU2VsZWN0ZWQiOworbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgQW5pbWF0aW9u
Il0gPSAiU2VsZWN0ZWQgQW5pbWF0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIENh
bnZhcyBDb250ZXh0Il0gPSAiU2VsZWN0ZWQgQ2FudmFzIENvbnRleHQiOwogLyogU2VsZWN0ZWQg
RE9NIGVsZW1lbnQgKi8KIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIEVsZW1lbnQiXSA9ICJT
ZWxlY3RlZCBFbGVtZW50IjsKQEAgLTExMDYsNiArMTEzMiw4IEBAIGxvY2FsaXplZFN0cmluZ3Nb
IlNwZWxsaW5nIl0gPSAiU3BlbGxpbmciOwogbG9jYWxpemVkU3RyaW5nc1siU3RhZ2luZzoiXSA9
ICJTdGFnaW5nOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFsbGVkIl0gPSAiU3RhbGxlZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJTdGFydCJdID0gIlN0YXJ0IjsKK2xvY2FsaXplZFN0cmluZ3NbIlN0
YXJ0IERlbGF5Il0gPSAiU3RhcnQgRGVsYXkiOworbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgRGVs
YXkgJXMiXSA9ICJTdGFydCBEZWxheSAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBUaW1l
Il0gPSAiU3RhcnQgVGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBlbGVtZW50IHNlbGVj
dGlvbiAoJXMpIl0gPSAiU3RhcnQgZWxlbWVudCBzZWxlY3Rpb24gKCVzKSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJTdGFydCByZWNvcmRpbmcgKCVzKVxuQ3JlYXRlIG5ldyByZWNvcmRpbmcgKCVzKSJd
ID0gIlN0YXJ0IHJlY29yZGluZyAoJXMpXG5DcmVhdGUgbmV3IHJlY29yZGluZyAoJXMpIjsKQEAg
LTExNzgsNiArMTIwNiw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlRoZXNlIHRlc3RzIHNlcnZlIGFz
IGEgZGVtb25zdHJhdGlvbiBvZiB0aGUgZnVuY3Rpb25hbGl0eSBhbmQKIGxvY2FsaXplZFN0cmlu
Z3NbIlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUiXSA9
ICJUaGlzIFJlc291cmNlIGNhbWUgZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlRoaXMgYWN0aW9uIGNhdXNlcyBubyB2aXN1YWwgY2hhbmdlIl0gPSAi
VGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiOwogbG9jYWxpemVkU3RyaW5nc1si
VGhpcyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIl0gPSAi
VGhpcyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIjsKK2xv
Y2FsaXplZFN0cmluZ3NbIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iXSA9ICJUaGlz
IGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIjsKK2xvY2FsaXplZFN0cmluZ3NbIlRoaXMgYW5p
bWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIl0gPSAiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZy
YW1lcy4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVkIl0g
PSAiVGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMg
aXMgYW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiJdID0gIlRo
aXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGVycm9ycyBhcmUgc2hv
d24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBidXQgZXhlY3V0aW9uIGVycm9ycyB3
aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIl0gPSAiVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhv
dyBlcnJvcnMgYXJlIHNob3duLiBUaGUgZXJyb3Igd2FzIHRocm93biBtYW51YWxseSwgYnV0IGV4
ZWN1dGlvbiBlcnJvcnMgd2lsbCBhcHBlYXIgaW4gdGhlIHNhbWUgd2F5LiI7CkBAIC0xMjkwLDEy
ICsxMzIwLDE3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgU2hhZGVyIl0gPSAiVmlldyBTaGFk
ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siVmlld3BvcnQiXSA9ICJWaWV3cG9ydCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJWaXNpYmxlIl0gPSAiVmlzaWJsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0
aW5nIl0gPSAiV2FpdGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBhbmltYXRp
b25zIGNyZWF0ZWQgYnkgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBi
eSBDU1MuIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRl
ZCBieSBKYXZhU2NyaXB0LiJdID0gIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBK
YXZhU2NyaXB0LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4
dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGNhbnZhcyBjb250
ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRp
bmcgZm9yIGZyYW1lc1x1MjAyNiJdID0gIldhaXRpbmcgZm9yIGZyYW1lc1x1MjAyNiI7Citsb2Nh
bGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iXSA9
ICJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iOwogbG9jYWxpemVkU3Ry
aW5nc1siV2FybmluZzogIl0gPSAiV2FybmluZzogIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhcm5p
bmdzIl0gPSAiV2FybmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siV2F0Y2ggRXhwcmVzc2lvbnMi
XSA9ICJXYXRjaCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRlcmZhbGwiXSA9
ICJXYXRlcmZhbGwiOworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiJdID0gIldlYiBB
bmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbnMiXSA9ICJXZWIgQW5p
bWF0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgSW5zcGVjdG9yIl0gPSAiV2ViIEluc3Bl
Y3RvciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgUGFnZSJdID0gIldlYiBQYWdlIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIldlYktpdCBUaHJlYWRzIl0gPSAiV2ViS2l0IFRocmVhZHMiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IGU5
ZWJkNjhhNWQ3ODRkNWVlMTlmMDBiM2JkYjQzOWYxNTNjZDZjMTcuLjZiMGMxNDZhOGE3MjdlZjkx
MjUwYjllYmM4ZDlkZmE2ZjZhNmZmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTEyMyw2ICsxMjMsNyBAQCBXSS5sb2FkZWQg
PSBmdW5jdGlvbigpCiAgICAgICAgIFdJLndvcmtlck1hbmFnZXIgPSBuZXcgV0kuV29ya2VyTWFu
YWdlciwKICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRPTURlYnVnZ2Vy
TWFuYWdlciwKICAgICAgICAgV0kuY2FudmFzTWFuYWdlciA9IG5ldyBXSS5DYW52YXNNYW5hZ2Vy
LAorICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyID0gbmV3IFdJLkFuaW1hdGlvbk1hbmFnZXIs
CiAgICAgXTsKIAogICAgIC8vIFJlZ2lzdGVyIGZvciBldmVudHMuCkBAIC0xNDcsNyArMTQ4LDcg
QEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVudFZp
ZXcuVHlwZSwKICAgICAgICAgV0kuVGltZWxpbmVUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAg
ICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcuVHlwZSwKLSAgICAgICAgV0kuQ2FudmFzVGFiQ29u
dGVudFZpZXcuVHlwZSwKKyAgICAgICAgV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlLAog
ICAgICAgICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLkNvbnNvbGVU
YWJDb250ZW50Vmlldy5UeXBlLAogICAgIF0pOwpAQCAtMTczLDYgKzE3NCwxMyBAQCBXSS5sb2Fk
ZWQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRpbmcu
dmFsdWUgPSBzb3VyY2VzSW5kZXg7CiAgICAgfQogCisgICAgLy8gQ2FudmFzIFRhYiB3YXMgcmVu
YW1lZCB0byBHcmFwaGljcyBUYWIuCisgICAgbGV0IGNhbnZhc0luZGV4ID0gV0kuX29wZW5UYWJz
U2V0dGluZy52YWx1ZS5pbmRleE9mKCJjYW52YXMiKTsKKyAgICBpZiAoY2FudmFzSW5kZXggPj0g
MCkgeworICAgICAgICBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLnNwbGljZShjYW52YXNJbmRl
eCwgMSwgV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlKTsKKyAgICAgICAgV0kuX29wZW5U
YWJzU2V0dGluZy5zYXZlKCk7CisgICAgfQorCiAgICAgLy8gU3RhdGUuCiAgICAgV0kucHJpbnRT
dHlsZXNFbmFibGVkID0gZmFsc2U7CiAgICAgV0kuc2V0Wm9vbUZhY3RvcihXSS5zZXR0aW5ncy56
b29tRmFjdG9yLnZhbHVlKTsKQEAgLTQ2NSw3ICs0NzMsNyBAQCBXSS5jb250ZW50TG9hZGVkID0g
ZnVuY3Rpb24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJ
LlRpbWVsaW5lVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50Vmll
dywKLSAgICAgICAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcsCisgICAgICAgIFdJLkdyYXBoaWNz
VGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3LAogICAgICAg
ICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5Db25zb2xlVGFiQ29udGVudFZp
ZXcsCkBAIC0xMjI2LDExICsxMjM0LDggQEAgV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJlcHJl
c2VudGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgICAgIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAg
ICByZXR1cm4gV0kuQXVkaXRUYWJDb250ZW50VmlldzsKIAotICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgIHJldHVybiBXSS5D
YW52YXNUYWJDb250ZW50VmlldzsKLQotICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLlJlY29yZGluZykKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3
OworICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcyB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0gfHwgcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5BbmltYXRpb24pCisgICAgICAgIHJldHVybiBXSS5HcmFwaGljc1RhYkNvbnRlbnRW
aWV3OwogCiAgICAgcmV0dXJuIG51bGw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1h
bmFnZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA5NzM3YjhiZTFkOTJjYWZiMmU4ZmY0MjFhOGY0YTg4ODM1
YTNkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMKQEAgLTAsMCArMSwxNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisvLyBGSVhNRTogQW5pbWF0aW9uTWFuYWdlciBsYWNrcyBhZHZhbmNlZCBtdWx0
aS10YXJnZXQgc3VwcG9ydC4gKEFuaW1hdGlvbnMgcGVyLXRhcmdldCkKKworV0kuQW5pbWF0aW9u
TWFuYWdlciA9IGNsYXNzIEFuaW1hdGlvbk1hbmFnZXIKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisg
ICAgeworICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2FuaW1h
dGlvbkNvbGxlY3Rpb24gPSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbjsKKyAgICAgICAgdGhp
cy5fYW5pbWF0aW9uSWRNYXAgPSBuZXcgTWFwOworCisgICAgICAgIFdJLkZyYW1lLmFkZEV2ZW50
TGlzdGVuZXIoV0kuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9oYW5k
bGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMpOworICAgIH0KKworICAgIC8vIEFnZW50CisK
KyAgICBnZXQgZG9tYWlucygpIHsgcmV0dXJuIFsiQW5pbWF0aW9uIl07IH0KKworICAgIGFjdGl2
YXRlRXh0cmFEb21haW4oZG9tYWluKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZG9t
YWluID09PSAiQW5pbWF0aW9uIik7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRh
cmdldHMpCisgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUYXJnZXQodGFyZ2V0KTsKKyAgICB9
CisKKyAgICAvLyBUYXJnZXQKKworICAgIGluaXRpYWxpemVUYXJnZXQodGFyZ2V0KQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmVuYWJsZSBkaWQgbm90
IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24uZW5h
YmxlIikpCisgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQuZW5hYmxlKCk7CisgICAg
fQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgc3VwcG9ydGVkKCkKKyAgICB7CisgICAgICAg
IC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmVuYWJsZSBkaWQgbm90IGV4
aXN0IHlldC4KKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiQW5p
bWF0aW9uLmVuYWJsZSIpOworICAgIH0KKworICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBl
KGFuaW1hdGlvblR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uQ29s
bGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShhbmltYXRpb25UeXBlKTsKKyAgICB9
CisKKyAgICBlbmFibGUoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2Vu
YWJsZWQpOworCisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSB0cnVlOworCisgICAgICAgIGZvciAo
bGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFy
Z2V0KHRhcmdldCk7CisgICAgfQorCisgICAgZGlzYWJsZSgpCisgICAgeworICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLl9lbmFibGVkKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2Yg
V0kudGFyZ2V0cykgeworICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBB
bmltYXRpb24uZGlzYWJsZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgICAgIGlmICh0YXJn
ZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmRpc2FibGUiKSkKKyAgICAgICAgICAgICAgICB0YXJn
ZXQuQW5pbWF0aW9uQWdlbnQuZGlzYWJsZSgpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uQ29sbGVjdGlvbi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1h
cC5jbGVhcigpOworCisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAg
ICAvLyBBbmltYXRpb25PYnNlcnZlcgorCisgICAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25Q
YXlsb2FkKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2FuaW1hdGlvbklk
TWFwLmhhcyhhbmltYXRpb25QYXlsb2FkLmFuaW1hdGlvbklkKSwgYEFuaW1hdGlvbiBhbHJlYWR5
IGV4aXN0cyB3aXRoIGlkICR7YW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZH0uYCk7CisKKyAg
ICAgICAgbGV0IGFuaW1hdGlvbiA9IFdJLkFuaW1hdGlvbi5mcm9tUGF5bG9hZChhbmltYXRpb25Q
YXlsb2FkKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5hZGQoYW5pbWF0aW9u
KTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuc2V0KGFuaW1hdGlvbi5hbmltYXRpb25J
ZCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBl
ZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRN
YXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsK
KyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
YW5pbWF0aW9uLmVmZmVjdENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFu
Z2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0g
dGhpcy5fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLnRhcmdldENoYW5nZWQoZWZmZWN0KTsKKyAgICB9
CisKKyAgICBhbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBs
ZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAudGFrZShhbmltYXRpb25JZCk7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9u
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rp
b24ucmVtb3ZlKGFuaW1hdGlvbik7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hh
bmRsZU1haW5SZXNvdXJjZURpZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIFdJLkZyYW1lKTsKKyAgICAgICAgaWYgKCFl
dmVudC50YXJnZXQuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBXSS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsKKworICAgICAg
ICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1h
dGlvbklkTWFwLmNsZWFyKCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2Vy
LmpzCmluZGV4IDEzNWMxNjYxM2FlODAwOWMxNmUyNzIyZjcyNTg1Yzk3ZTY5ZGQxMTQuLjkwNTgw
ZjRlZmUwZjdmM2FhOTljNjdhMDc3ZTI5NmYzNTQ0MDRkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2Fu
dmFzTWFuYWdlci5qcwpAQCAtMzIsNiArMzIsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3Mg
Q2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBzdXBlcigpOwogCiAgICAg
ICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlv
biA9IG5ldyBXSS5DYW52YXNDb2xsZWN0aW9uOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlm
aWVyTWFwID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJN
YXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MgPSBuZXcgU2V0OwpA
QCAtNzYsMTggKzc3LDkgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IGNhbnZhc0NvbGxl
Y3Rpb24oKSB7IHJldHVybiB0aGlzLl9jYW52YXNDb2xsZWN0aW9uOyB9CiAgICAgZ2V0IHNhdmVk
UmVjb3JkaW5ncygpIHsgcmV0dXJuIHRoaXMuX3NhdmVkUmVjb3JkaW5nczsgfQogCi0gICAgZ2V0
IGNhbnZhc2VzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2NhbnZh
c0lkZW50aWZpZXJNYXAudmFsdWVzKCkpOwotICAgIH0KLQotICAgIGdldCBzaGFkZXJQcm9ncmFt
cygpCi0gICAgewotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zaGFkZXJQcm9ncmFt
SWRlbnRpZmllck1hcC52YWx1ZXMoKSk7Ci0gICAgfQotCiAgICAgYXN5bmMgcHJvY2Vzc0pTT04o
e2ZpbGVuYW1lLCBqc29uLCBlcnJvcn0pCiAgICAgewogICAgICAgICBpZiAoZXJyb3IpIHsKQEAg
LTEzMyw2ICsxMjUsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHRhcmdldC5DYW52YXNBZ2VudC5kaXNh
YmxlKCk7CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmNsZWFy
KCk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICAgICAg
dGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICAgICAgdGhpcy5f
c2F2ZWRSZWNvcmRpbmdzLmNsZWFyKCk7CkBAIC0xNjEsOSArMTU0LDggQEAgV0kuQ2FudmFzTWFu
YWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY29u
c29sZS5hc3NlcnQoIXRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuaGFzKGNhbnZhc1BheWxvYWQu
Y2FudmFzSWQpLCBgQ2FudmFzIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHtjYW52YXNQYXlsb2Fk
LmNhbnZhc0lkfS5gKTsKIAogICAgICAgICBsZXQgY2FudmFzID0gV0kuQ2FudmFzLmZyb21QYXls
b2FkKGNhbnZhc1BheWxvYWQpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChj
YW52YXMpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnNldChjYW52YXMuaWRl
bnRpZmllciwgY2FudmFzKTsKLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB7Y2FudmFzfSk7CiAgICAgfQog
CiAgICAgY2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKQpAQCAtMTczLDcgKzE2NSwxNCBA
QCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICBpZiAoIWNhbnZhcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0
aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgdGhpcy5fc2F2ZVJlY29yZGluZ3Mo
Y2FudmFzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLnJlbW92ZShjYW52YXMp
OworCisgICAgICAgIGZvciAobGV0IHByb2dyYW0gb2YgY2FudmFzLnNoYWRlclByb2dyYW1Db2xs
ZWN0aW9uKQorICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuZGVs
ZXRlKHByb2dyYW0uaWRlbnRpZmllcik7CisKKyAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1D
b2xsZWN0aW9uLmNsZWFyKCk7CiAgICAgfQogCiAgICAgY2FudmFzTWVtb3J5Q2hhbmdlZChjYW52
YXNJZGVudGlmaWVyLCBtZW1vcnlDb3N0KQpAQCAtMjc1LDIxICsyNzQsMTQgQEAgV0kuQ2FudmFz
TWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8v
IFByaXZhdGUKIAotICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQorICAgIF9zYXZlUmVjb3JkaW5n
cyhjYW52YXMpCiAgICAgewotICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVu
dGlmaWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOwotCi0gICAgICAgIGNhbnZhcy5z
aGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5jbGVhcigpOwotCiAgICAgICAgIGZvciAobGV0IHJlY29y
ZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikgewogICAgICAgICAgICAgcmVjb3Jk
aW5nLnNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICByZWNvcmRpbmcuY3JlYXRlRGlzcGxheU5h
bWUocmVjb3JkaW5nLmRpc3BsYXlOYW1lKTsKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3Jk
aW5ncy5hZGQocmVjb3JkaW5nKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHtyZWNvcmRpbmd9
KTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwge2NhbnZhc30pOwogICAgIH0KIAog
ICAgIF9tYWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCkBAIC0zMDEsMTUgKzI5MywxNCBAQCBX
SS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICBXSS5DYW52YXMucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsKIAogICAg
ICAgICBmb3IgKGxldCBjYW52YXMgb2YgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC52YWx1ZXMo
KSkKLSAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICAgICAg
dGhpcy5fc2F2ZVJlY29yZGluZ3MoY2FudmFzKTsKIAotICAgICAgICB0aGlzLl9zaGFkZXJQcm9n
cmFtSWRlbnRpZmllck1hcC5jbGVhcigpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9u
LmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAg
ICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICB9CiB9
OwogCiBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50ID0gewotICAgIENhbnZhc0FkZGVkOiAiY2FudmFz
LW1hbmFnZXItY2FudmFzLXdhcy1hZGRlZCIsCi0gICAgQ2FudmFzUmVtb3ZlZDogImNhbnZhcy1t
YW5hZ2VyLWNhbnZhcy13YXMtcmVtb3ZlZCIsCiAgICAgUmVjb3JkaW5nU2F2ZWQ6ICJjYW52YXMt
bWFuYWdlci1yZWNvcmRpbmctc2F2ZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCmlu
ZGV4IDFhOGRmNjhiYmFkZDhkZThiZmZiMzgwNzk1MjY5Mjg3YTNhMzMyNDIuLjcxODU1NThhZDNl
MGQ5NzliYjAwMWRiOGUxMTAzZGI4MmFhOWUwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5q
cwpAQCAtMzIzLDcgKzMyMyw3IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAKICAgICBub2RlRm9ySWQobm9kZUlkKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CisgICAgICAgIHJldHVybiB0aGlzLl9p
ZFRvRE9NTm9kZVtub2RlSWRdIHx8IG51bGw7CiAgICAgfQogCiAgICAgX2RvY3VtZW50VXBkYXRl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKaW5kZXggNzYzM2RlMWJhZTBm
NDEzZmUxMmNkMWMzNjMzODRhZWYzZmQ4NDY1OS4uNzI5Njk2ZjA0MWMxNjJmZjk3Y2ZiMDkyNDk3
YmJkMTVhYmY5ZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwpAQCAt
NzgxLDcgKzc4MSw3IEBAIFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChl
dmVudC5ub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1h
bmFnZXIubm9kZUZvcklkKGV2ZW50Lm5vZGVJZCk7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChkb21Ob2RlKTsKIAogICAgICAgICAgICAgcmVjb3JkID0gbmV3IFdJLk1lZGlhVGltZWxpbmVS
ZWNvcmQoZXZlbnRUeXBlLCBkb21Ob2RlLCBkZXRhaWxzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRiZDY1N2Q5MzI2YWFhMGNlNjRmNmQ3ZWYwMzFkZjgxNmFmMmNm
ZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKKysrIC9kZXYv
bnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04
Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3Qi
IHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cmVjdCB4PSIxLjUiIHk9
IjIuNSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRD
b2xvciIvPgotICAgIDxwb2x5Z29uIHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMgMTIgMTMg
MTIgMTMgMTEgMTEgOCIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmQ2NTdk
OTMyNmFhYTBjZTY0ZjZkN2VmMDMxZGY4MTZhZjJjZmU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZwpAQCAt
MCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0t
IENvcHlyaWdodCDCqSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249
IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCB4PSIxLjUiIHk9IjIuNSIgd2lk
dGg9IjEzIiBoZWlnaHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgor
ICAgIDxwb2x5Z29uIHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMgMTIgMTMgMTIgMTMgMTEg
MTEgOCIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKaW5kZXggYzgyNmQ1MWY5MTc3ZWRlNGQ5Yjk1NmI5N2M1MWQ0OTgwNjBlZTcwYy4u
Y2U0MGQyZTU3YWVhMjZmY2FlNzNmNjJhMzc4MWY2YzcxYzY4Y2RjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMzAsNiArMzAsOCBAQAog
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJFeHRlcm5hbC9Db2RlTWlycm9yL2Nv
ZGVtaXJyb3IuY3NzIj4KIAorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
QW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVu
dFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0
TmF2aWdhdGlvblNpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvQXVkaXRUZXN0Q2FzZUNvbnRlbnRWaWV3LmNzcyI+CkBAIC01Niw3ICs1OCw2
IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNEZXRhaWxz
U2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuY3NzIj4KLSAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGFuZ2VzRGV0YWlsc1NpZGViYXJQ
YW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hhcnRE
ZXRhaWxzU2VjdGlvblJvdy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvQ2hlY2tib3hOYXZpZ2F0aW9uSXRlbS5jc3MiPgpAQCAtMTEzLDYgKzExNCw4IEBACiAg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Hb1RvTGluZURpYWxvZy5jc3Mi
PgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhZGllbnRFZGl0b3Iu
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYWRpZW50U2xp
ZGVyLmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFwaGlj
c092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFw
aC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcEFsbG9j
YXRpb25zVGltZWxpbmVWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250ZW50Vmlldy5jc3MiPgpAQCAtMzQ4LDYg
KzM1MSw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1RpbWVsaW5lT2JzZXJ2ZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+
PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KQEAgLTM2
MSw2ICszNjUsOCBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2FsU2NyaXB0LmpzIj48L3NjcmlwdD4KIAor
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNoZUZyYW1lLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CYWNrRm9yd2FyZEVudHJ5LmpzIj48L3Njcmlw
dD4KQEAgLTM4MCw3ICszODYsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0Nv
bnRleHRUcmVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdD
b250ZXh0VHJlZU5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2Fu
dmFzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVByZXZpZXcu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvblR5cGVzLmpz
Ij48L3NjcmlwdD4KQEAgLTU2Niw5ICs1NzEsOSBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9T
dHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
QXVkaXRUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdz
L0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvQ29uc29sZVRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvRWxlbWVudHNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9MYXllcnNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9TY3JpcHRUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBAIC01OTQs
NiArNTk5LDkgQEAKIAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmln
YXRpb25JdGVtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0aXZhdGVC
dXR0b25Ub29sYmFySXRlbS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0Fu
aW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVEZXRhaWxzU2lkZWJhclBhbmVs
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZy
YW1lQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BcHBs
aWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBAIC02OTIsNiArNzAw
LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR29Ub0xpbmVEaWFsb2cuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFkaWVudEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50U2xpZGVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3Jp
ZE5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlv
bnNUaW1lbGluZURhdGFHcmlkTm9kZVBhdGhDb21wb25lbnQuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMi
Pjwvc2NyaXB0PgpAQCAtODU2LDYgKzg2NSw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL0Fubm90YXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L0NvZGVNaXJyb3JFZGl0aW5nQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0
IHNyYz0iQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQmFzaWNCbG9ja0Fubm90YXRvci5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvQW5pbWF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGZiOWExNzkzMDg3YjhlOWQ0Yzll
MDgwMWZmOWY5OGFmOTAzYjM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpAQCAtMCwwICsxLDI2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1dJLkFuaW1hdGlvbiA9IGNsYXNzIEFuaW1hdGlvbiBleHRlbmRzIFdJLk9i
amVjdAoreworICAgIGNvbnN0cnVjdG9yKGFuaW1hdGlvbklkLCB7Y3NzQW5pbWF0aW9uTmFtZSwg
Y3NzVHJhbnNpdGlvblByb3BlcnR5LCBlZmZlY3QsIGJhY2t0cmFjZX0gPSB7fSkKKyAgICB7Cisg
ICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uSWQpOwor
ICAgICAgICBjb25zb2xlLmFzc2VydCgoIWNzc0FuaW1hdGlvbk5hbWUgJiYgIWNzc1RyYW5zaXRp
b25Qcm9wZXJ0eSkgfHwgISFjc3NBbmltYXRpb25OYW1lICE9PSAhIWNzc1RyYW5zaXRpb25Qcm9w
ZXJ0eSk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWQgPSBhbmltYXRpb25JZDsKKworICAg
ICAgICB0aGlzLl9jc3NBbmltYXRpb25OYW1lID0gY3NzQW5pbWF0aW9uTmFtZSB8fCBudWxsOwor
ICAgICAgICB0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkgPSBjc3NUcmFuc2l0aW9uUHJvcGVy
dHkgfHwgbnVsbDsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7CisgICAgICAg
IHRoaXMuX2JhY2t0cmFjZSA9IGJhY2t0cmFjZSB8fCBbXTsKKworICAgICAgICB0aGlzLl9yZXF1
ZXN0Tm9kZVByb21pc2UgPSBudWxsOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisgICAgc3Rh
dGljIGZyb21QYXlsb2FkKHBheWxvYWQpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdJLkFu
aW1hdGlvbihwYXlsb2FkLmFuaW1hdGlvbklkLCB7CisgICAgICAgICAgICBjc3NBbmltYXRpb25O
YW1lOiBwYXlsb2FkLmNzc0FuaW1hdGlvbk5hbWUsCisgICAgICAgICAgICBjc3NUcmFuc2l0aW9u
UHJvcGVydHk6IHBheWxvYWQuY3NzVHJhbnNpdGlvblByb3BlcnR5LAorICAgICAgICAgICAgZWZm
ZWN0OiBwYXlsb2FkLmVmZmVjdCwKKyAgICAgICAgICAgIGJhY2t0cmFjZTogQXJyYXkuaXNBcnJh
eShwYXlsb2FkLmJhY2t0cmFjZSkgPyBwYXlsb2FkLmJhY2t0cmFjZS5tYXAoKGl0ZW0pID0+IFdJ
LkNhbGxGcmFtZS5mcm9tUGF5bG9hZChXSS5tYWluVGFyZ2V0LCBpdGVtKSkgOiBbXSwKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZShh
bmltYXRpb25UeXBlLCBwbHVyYWwpCisgICAgeworICAgICAgICBzd2l0Y2ggKGFuaW1hdGlvblR5
cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb246CisgICAg
ICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25zIikgOiBX
SS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5U
eXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmlu
ZygiQ1NTIEFuaW1hdGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9uIik7CisgICAg
ICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjoKKyAgICAgICAgICAgIHJl
dHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb25zIikgOiBXSS5VSVN0cmlu
ZygiQ1NTIFRyYW5zaXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGZhbHNlLCAiVW5rbm93biBhbmltYXRpb24gdHlwZSIsIGFuaW1hdGlvblR5cGUpOworICAgICAg
ICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JQbGF5YmFj
a0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlvbikKKyAgICB7CisgICAgICAgIHN3aXRjaCAocGxh
eWJhY2tEaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJl
Y3Rpb24uTm9ybWFsOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJOb3JtYWwiKTsK
KyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uUmV2ZXJzZToKKyAg
ICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUmV2ZXJzZSIpOworICAgICAgICBjYXNlIFdJ
LkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRlcm5hdGU6CisgICAgICAgICAgICByZXR1
cm4gV0kuVUlTdHJpbmcoIkFsdGVybmF0ZSIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5Q
bGF5YmFja0RpcmVjdGlvbi5BbHRlcm5hdGVSZXZlcnNlOgorICAgICAgICAgICAgcmV0dXJuIFdJ
LlVJU3RyaW5nKCJBbHRlcm5hdGUgUmV2ZXJzZSIpOworICAgICAgICB9CisKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIHBsYXliYWNrIGRpcmVjdGlvbiIsIHBsYXliYWNr
RGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIGRp
c3BsYXlOYW1lRm9yRmlsbE1vZGUoZmlsbE1vZGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZp
bGxNb2RlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLk5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAgY2FzZSBXSS5Bbmlt
YXRpb24uRmlsbE1vZGUuRm9yd2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmco
IkZvcndhcmRzIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJhY2t3YXJk
czoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQmFja3dhcmRzIik7CisgICAgICAg
IGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJvdGg6CisgICAgICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkJvdGgiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuQXV0
bzoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQXV0byIpOworICAgICAgICB9CisK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGZpbGwgbW9kZSIsIGZpbGxN
b2RlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIHJlc2V0VW5p
cXVlRGlzcGxheU5hbWVOdW1iZXJzKCkKKyAgICB7CisgICAgICAgIFdJLkFuaW1hdGlvbi5fbmV4
dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gMTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKwor
ICAgIGdldCBhbmltYXRpb25JZCgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbklkOyB9CisgICAg
Z2V0IGJhY2t0cmFjZSgpIHsgcmV0dXJuIHRoaXMuX2JhY2t0cmFjZTsgfQorCisgICAgZ2V0IGFu
aW1hdGlvblR5cGUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUp
CisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOworICAg
ICAgICBpZiAodGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICAgICAgcmV0dXJu
IFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb247CisgICAgICAgIHJldHVybiBXSS5Bbmlt
YXRpb24uVHlwZS5XZWJBbmltYXRpb247CisgICAgfQorCisgICAgZ2V0IHN0YXJ0RGVsYXkoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuICJzdGFydERlbGF5IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlz
Ll9lZmZlY3Quc3RhcnREZWxheSA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgZW5kRGVsYXkoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuICJlbmREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5f
ZWZmZWN0LmVuZERlbGF5IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25zKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9ucyIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5f
ZWZmZWN0Lml0ZXJhdGlvbnMgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvblN0YXJ0
KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uU3RhcnQiIGluIHRoaXMuX2VmZmVj
dCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25TdGFydCA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQg
aXRlcmF0aW9uRHVyYXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRpb25EdXJh
dGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9uIDog
TmFOOworICAgIH0KKworICAgIGdldCB0aW1pbmdGdW5jdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gInRpbWluZ0Z1bmN0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QudGlt
aW5nRnVuY3Rpb24gOiBudWxsOworICAgIH0KKworICAgIGdldCBwbGF5YmFja0RpcmVjdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gInBsYXliYWNrRGlyZWN0aW9uIiBpbiB0aGlzLl9lZmZl
Y3QgPyB0aGlzLl9lZmZlY3QucGxheWJhY2tEaXJlY3Rpb24gOiBudWxsOworICAgIH0KKworICAg
IGdldCBmaWxsTW9kZSgpCisgICAgeworICAgICAgICByZXR1cm4gImZpbGxNb2RlIiBpbiB0aGlz
Ll9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuZmlsbE1vZGUgOiBudWxsOworICAgIH0KKworICAgIGdl
dCBrZXlmcmFtZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJrZXlmcmFtZXMiIGluIHRoaXMu
X2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMgOiBbXTsKKyAgICB9CisKKyAgICBnZXQg
ZGlzcGxheU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUp
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY3NzQW5pbWF0aW9uTmFtZTsKKworICAgICAgICBp
ZiAodGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eTsKKworICAgICAgICBpZiAoIXRoaXMuX3VuaXF1ZURpc3Bs
YXlOYW1lTnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIg
PSBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcisrOworICAgICAgICBy
ZXR1cm4gV0kuVUlTdHJpbmcoIkFuaW1hdGlvbiAlZCIpLmZvcm1hdCh0aGlzLl91bmlxdWVEaXNw
bGF5TmFtZU51bWJlcik7CisgICAgfQorCisgICAgcmVxdWVzdE5vZGUoKQorICAgIHsKKyAgICAg
ICAgaWYgKCF0aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2UpIHsKKyAgICAgICAgICAgIHRoaXMuX3Jl
cXVlc3ROb2RlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAg
ICAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmVuc3VyZURvY3VtZW50KCk7CisKKyAgICAgICAg
ICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisgICAgICAgICAg
ICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJlcXVlc3ROb2RlKHRoaXMuX2FuaW1hdGlvbklk
LCAoZXJyb3IsIG5vZGVJZCkgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
ICAgICByZXNvbHZlKFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRo
aXMuX3JlcXVlc3ROb2RlUHJvbWlzZTsKKyAgICB9CisKKyAgICAvLyBBbmltYXRpb25NYW5hZ2Vy
CisKKyAgICBlZmZlY3RDaGFuZ2VkKGVmZmVjdCkKKyAgICB7CisgICAgICAgIHRoaXMuX3VwZGF0
ZUVmZmVjdChlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlID0gbnVsbDsKKworICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCk7
CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3VwZGF0ZUVmZmVjdChlZmZlY3QpCisg
ICAgeworICAgICAgICB0aGlzLl9lZmZlY3QgPSBlZmZlY3QgfHwge307CisKKyAgICAgICAgaWYg
KHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgIHRoaXMuX2VmZmVjdC50
aW1pbmdGdW5jdGlvbiA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcodGhpcy5fZWZmZWN0LnRp
bWluZ0Z1bmN0aW9uKTsKKworICAgICAgICBpZiAodGhpcy5fZWZmZWN0LmtleWZyYW1lcykgewor
ICAgICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2YgdGhpcy5fZWZmZWN0LmtleWZyYW1lcykg
eworICAgICAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcpCisgICAgICAgICAgICAgICAg
ICAgIGtleWZyYW1lLmVhc2luZyA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcoa2V5ZnJhbWUu
ZWFzaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKTsKKyAg
ICB9Cit9OworCitXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IDE7
CisKK1dJLkFuaW1hdGlvbi5UeXBlID0geworICAgIFdlYkFuaW1hdGlvbjogIndlYi1hbmltYXRp
b24iLAorICAgIENTU0FuaW1hdGlvbjogImNzcy1hbmltYXRpb24iLAorICAgIENTU1RyYW5zaXRp
b246ICJjc3MtdHJhbnNpdGlvbiIsCit9OworCitXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rp
b24gPSB7CisgICAgTm9ybWFsOiAibm9ybWFsIiwKKyAgICBSZXZlcnNlOiAicmV2ZXJzZSIsCisg
ICAgQWx0ZXJuYXRlOiAiYWx0ZXJuYXRlIiwKKyAgICBBbHRlcm5hdGVSZXZlcnNlOiAiYWx0ZXJu
YXRlLXJldmVyc2UiLAorfTsKKworV0kuQW5pbWF0aW9uLkZpbGxNb2RlID0geworICAgIE5vbmU6
ICJub25lIiwKKyAgICBGb3J3YXJkczogImZvcndhcmRzIiwKKyAgICBCYWNrd2FyZHM6ICJiYWNr
d2FyZHMiLAorICAgIEJvdGg6ICJib3RoIiwKKyAgICBBdXRvOiAiYXV0byIsCit9OworCitXSS5B
bmltYXRpb24uRXZlbnQgPSB7CisgICAgRWZmZWN0Q2hhbmdlZDogImFuaW1hdGlvbi1lZmZlY3Qt
Y2hhbmdlZCIsCisgICAgVGFyZ2V0Q2hhbmdlZDogImFuaW1hdGlvbi10YXJnZXQtY2hhbmdlZCIs
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mjc2YWI0
MGQ2OTlkNWRlYjJlNjA4MWY4NDU1YjIyZTQxMzY3OWZlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rp
b24uanMKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0
aW9uID0gY2xhc3MgQW5pbWF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIFdJLkNvbGxlY3Rpb24KK3sK
KyAgICBjb25zdHJ1Y3RvcihhbmltYXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoIWFuaW1hdGlvblR5cGUgfHwgT2JqZWN0LnZhbHVlcyhXSS5BbmltYXRpb24uVHlwZSku
aW5jbHVkZXMoYW5pbWF0aW9uVHlwZSkpOworCisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAg
dGhpcy5fYW5pbWF0aW9uVHlwZSA9IGFuaW1hdGlvblR5cGUgfHwgbnVsbDsKKworICAgICAgICBp
ZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpCisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZU1hcCA9IG51bGw7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBn
ZXQgYW5pbWF0aW9uVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblR5cGU7IH0KKworICAg
IGdldCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVHlw
ZSkgeworICAgICAgICAgICAgY29uc3QgcGx1cmFsID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVy
biBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JUeXBlKHRoaXMuX2FuaW1hdGlvblR5cGUsIHBs
dXJhbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIldlYiBBbmlt
YXRpb25zIik7CisgICAgfQorCisgICAgb2JqZWN0SXNSZXF1aXJlZFR5cGUob2JqZWN0KQorICAg
IHsKKyAgICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gIXRoaXMuX2FuaW1hdGlvblR5
cGUgfHwgb2JqZWN0LmFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlvblR5cGU7CisgICAg
fQorCisgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoYW5pbWF0aW9uVHlwZSkKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUp
LmluY2x1ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9u
VHlwZSkgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uVHlwZSA9PT0gdGhp
cy5fYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQor
CisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApCisgICAg
ICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9IG5ldyBNYXA7CisK
KyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhpcy5fYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGVNYXAuZ2V0KGFuaW1hdGlvblR5cGUpOworICAgICAgICBpZiAoIWFu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKSB7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0
aW9uRm9yVHlwZSA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uKGFuaW1hdGlvblR5cGUpOwor
ICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAuc2V0KGFuaW1h
dGlvblR5cGUsIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGU7CisgICAgfQorCisgICAgLy8gUHJv
dGVjdGVkCisKKyAgICBpdGVtQWRkZWQoaXRlbSkKKyAgICB7CisgICAgICAgIHN1cGVyLml0ZW1B
ZGRlZChpdGVtKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAg
ICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIGFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlLmFkZChpdGVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGl0
ZW1SZW1vdmVkKGl0ZW0pCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUp
IHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5p
bWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAg
IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLnJlbW92ZShpdGVtKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHN1cGVyLml0ZW1SZW1vdmVkKGl0ZW0pOworICAgIH0KKworICAgIGl0ZW1zQ2xlYXJl
ZChpdGVtcykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZU1hcCkgeworICAgICAgICAgICAgZm9yIChsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5
cGUgb2YgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAudmFsdWVzKCkpCisgICAg
ICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUuY2xlYXIoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHN1cGVyLml0ZW1zQ2xlYXJlZChpdGVtcyk7CisgICAgfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRl
c3RDYXNlUmVzdWx0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKaW5kZXggYzljYzM5NjJlODBmYjY2ZmUxNWRhMTM1
NGVhMjkyNmJmODQxY2RjZS4uMzFkNjI3ZDgxMWJkNjMzMmRjNDgwODVmOTdkZjUwNjRkMjAxMjdl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKQEAgLTE0Niw3ICsxNDYsNyBA
QCBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0ID0gY2xhc3MgQXVkaXRUZXN0Q2FzZVJlc3VsdCBleHRl
bmRzIFdJLkF1ZGl0VGVzdFJlc3VsdEJhcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRy
eSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJZCA9IGF3YWl0IGRvY3Vt
ZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGRvbU5vZGVTdHJpbmcpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggeyB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IDYyYmEyNjQxMDVhYWVkZjRiYTVlMmJlMzc1NWEyYjVk
MzhiY2ZhZDMuLjhlMmI1MmUyYzFmMTFhMzZkNjVkZmNhNGVjOTUwZjYwOTg1OTY5MGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZh
cy5qcwpAQCAtOTcsNyArOTcsNyBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQ6CiAg
ICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CiAgICAgICAgIGNhc2UgV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyOgotICAgICAgICAgICAgcmV0dXJuIFdJLnVu
bG9jYWxpemVkU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBX
SS5VSVN0cmluZygiQml0bWFwIFJlbmRlcmVyIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNv
bnRleHRUeXBlLldlYkdMOgogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5n
KCJXZWJHTCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CkBA
IC0xMDYsOSArMTA2LDEwIEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWIgR1BVIik7
CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYk1ldGFsOgogICAgICAgICAg
ICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJNZXRhbCIpOwotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgY29uc29sZS5lcnJvcigiSW52YWxpZCBjYW52YXMgY29udGV4dCB0
eXBlIiwgY29udGV4dFR5cGUpOwogICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
ZmFsc2UsICJVbmtub3duIGNhbnZhcyBjb250ZXh0IHR5cGUiLCBjb250ZXh0VHlwZSk7CisgICAg
ICAgIHJldHVybiBudWxsOwogICAgIH0KIAogICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlO
YW1lTnVtYmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwppbmRleCAxZjhkZDdlZjQ1ZDYyOTc3OGNkODI4N2Jm
YjhkMzFiMmExMDg5ZjMwLi5iNmRlOTUzNTQyMmM5YzYzYWUxYWQxNGU5ZGM0N2ZlYWM3NjgwNGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9SZWNvcmRpbmcuanMKQEAgLTE0OCw2ICsxNDgsMjMgQEAgV0kuUmVjb3JkaW5nID0gY2xh
c3MgUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiBuZXcgV0kuUmVj
b3JkaW5nKHBheWxvYWQudmVyc2lvbiwgdHlwZSwgcGF5bG9hZC5pbml0aWFsU3RhdGUsIGZyYW1l
cywgcGF5bG9hZC5kYXRhKTsKICAgICB9CiAKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JSZWNv
cmRpbmdUeXBlKHJlY29yZGluZ1R5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJlY29yZGlu
Z1R5cGUpIHsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXMyRDoKKyAgICAgICAg
ICAgIHJldHVybiBXSS5VSVN0cmluZygiMkQiKTsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlw
ZS5DYW52YXNCaXRtYXBSZW5kZXJlcjoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygi
Qml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2Vi
R0w6CisgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMIik7Cisg
ICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0wyOgorICAgICAgICAgICAgcmV0
dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTDIiKTsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biByZWNvcmRpbmcgdHlwZSIsIHJlY29yZGlu
Z1R5cGUpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKICAgICBzdGF0aWMgZGlzcGxh
eU5hbWVGb3JTd2l6emxlVHlwZShzd2l6emxlVHlwZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
c3dpenpsZVR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKaW5kZXggYjEx
OTVlZDBjYTBjYjBjYTgwNjY4ZTBlOThkYzY3OWRjYWQ5MTdhMy4uN2U1NmU4YmIzOWNiYTBjNjI4
MGVhOWNlZGQ0NWJlNTU0NWYwZjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIu
anMKQEAgLTI3LDYgKzI3LDI2IEBAIFdJLkFuaW1hdGlvbk9ic2VydmVyID0gY2xhc3MgQW5pbWF0
aW9uT2JzZXJ2ZXIgZXh0ZW5kcyBJbnNwZWN0b3JCYWNrZW5kLkRpc3BhdGNoCiB7CiAgICAgLy8g
RXZlbnRzIGRlZmluZWQgYnkgdGhlICJBbmltYXRpb24iIGRvbWFpbi4KIAorICAgIGFuaW1hdGlv
bkNyZWF0ZWQoYW5pbWF0aW9uKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5h
bmltYXRpb25DcmVhdGVkKGFuaW1hdGlvbik7CisgICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChh
bmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5l
ZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENo
YW5nZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLnRh
cmdldENoYW5nZWQoYW5pbWF0aW9uSWQpOworICAgIH0KKworICAgIGFuaW1hdGlvbkRlc3Ryb3ll
ZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0
aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKTsKKyAgICB9CisKICAgICB0cmFja2luZ1N0YXJ0KHRp
bWVzdGFtcCkKICAgICB7CiAgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdlci5hbmltYXRpb25UcmFj
a2luZ1N0YXJ0ZWQodGltZXN0YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwppbmRleCBkZDAw
YWY1OGMxMjUzMDU4NmUxYzI4MzAzMmI3MmZkNjI5ZmEzMmQ5Li4yY2JhNTY0ZDRhN2I2YTM4YzE4
OWU1NzMzZDNjZjNjNjBmYzUxNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCkBAIC0xODgs
NiArMTg4LDI1IEBAIFdJLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9iamVjdAogICAgICAg
ICB0YXJnZXQuQ2FudmFzQWdlbnQucmVzb2x2ZUNvbnRleHQoY2FudmFzLmlkZW50aWZpZXIsIG9i
amVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOwogICAgIH0KIAorICAgIHN0YXRpYyByZXNvbHZlQW5p
bWF0aW9uKGFuaW1hdGlvbiwgb2JqZWN0R3JvdXAsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQodHlwZW9mIGNhbGxiYWNrID09PSAiZnVuY3Rpb24iKTsKKworICAgICAg
ICBmdW5jdGlvbiB3cmFwQ2FsbGJhY2soZXJyb3IsIG9iamVjdCkgeworICAgICAgICAgICAgaWYg
KGVycm9yIHx8ICFvYmplY3QpCisgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbGJhY2soV0kuUmVtb3RlT2JqZWN0LmZy
b21QYXlsb2FkKG9iamVjdCwgV0kubWFpblRhcmdldCkpOworICAgICAgICB9CisKKyAgICAgICAg
bGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworCisgICAgICAgIC8vIENPTVBB
VElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gZGlkIG5vdCBl
eGlzdCB5ZXQuCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRhcmdldC5oYXNDb21tYW5kKCJBbmlt
YXRpb24ucmVzb2x2ZUFuaW1hdGlvbiIpKTsKKworICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdl
bnQucmVzb2x2ZUFuaW1hdGlvbihhbmltYXRpb24uYW5pbWF0aW9uSWQsIG9iamVjdEdyb3VwLCB3
cmFwQ2FsbGJhY2spOworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IHRhcmdldCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0
bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXgg
MWQ0NDVhMDRjZGViZWVjZmE3YjBjYjA4ZWQ2ZmJiZDRiZjQ2MWU4NC4uMGJhNTYwYjk2YzAyMzA2
ZWI2MWIzMmJkZjRlYWM4OTkyM2RiZjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAtMTA4LDYgKzEwOCw3IEBACiAgICAgPHNjcmlwdCBz
cmM9IlByb3RvY29sL1dvcmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0NvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0luc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNl
Q29kZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMjEsNiArMTIyLDggQEAKICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Mb2Nh
bFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlv
bi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb25Db2xsZWN0
aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVSW5zdHJ1bWVudC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DUFVUaW1lbGluZS5qcyI+PC9zY3JpcHQ+
CkBAIC0xMzcsNyArMTQwLDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250
ZXh0VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29u
dGV4dFRyZWVOb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZh
cy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+
PC9zY3JpcHQ+CkBAIC0yMzgsNiArMjQwLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJveGllcy9I
ZWFwU25hcHNob3RQcm94eS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMv
SGVhcFNuYXBzaG90V29ya2VyUHJveHkuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9
IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250cm9sbGVycy9BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0JyZWFrcG9pbnRMb2dNZXNzYWdlTGV4ZXIuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC9UZXN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVz
dC9UZXN0LmpzCmluZGV4IDNjNDNhZTc4YmUxNzI3NzA3MjliNzAzMmFiZTU0NDQzYzk0NmE4YmIu
LmFkZDg4ODQxMGQ0NmYyOGY1MjRkZjU2MmQ4NGI1NTM2ZjBmNTlkMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKQEAgLTcwLDYgKzcw
LDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS53b3JrZXJNYW5hZ2VyID0g
bmV3IFdJLldvcmtlck1hbmFnZXIsCiAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlciA9IG5l
dyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIsCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIgPSBuZXcg
V0kuQ2FudmFzTWFuYWdlciwKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlciA9IG5ldyBXSS5B
bmltYXRpb25NYW5hZ2VyLAogICAgIF07CiAKICAgICAvLyBSZWdpc3RlciBmb3IgZXZlbnRzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjQ1YzZhNzc1NGU3YTI3M2I5NmNjOTA5ZDYxMGE0MjZjZWJjMDViZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24geworICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjlmNjc3OWVlZTE2MTI0
ODk5NTI3MjAyYmRhYzY0ZjEyN2Y0YjEwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5qcwpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkNvbGxl
Y3Rpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKHJlcHJl
c2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db2xsZWN0aW9uKTsKKworICAgICAgICBsZXQg
Y29udGVudFBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKyAg
ICAgICAgbGV0IGRlc2NyaXB0aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIGRlc2NyaXB0aW9u
RWxlbWVudC5jbGFzc05hbWUgPSAiZGVzY3JpcHRpb24iOworCisgICAgICAgIHN3aXRjaCAocmVw
cmVzZW50ZWRPYmplY3QuYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlv
bi5UeXBlLldlYkFuaW1hdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0
Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdC4iKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0kuQW5p
bWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50
LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRl
ZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5UeXBlLkNTU1RyYW5zaXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQu
dGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRl
ZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjb25z
b2xlLmFzc2VydChkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQpOworCisgICAgICAgIHN1
cGVyKHJlcHJlc2VudGVkT2JqZWN0LCBXSS5BbmltYXRpb25Db250ZW50VmlldywgY29udGVudFBs
YWNlaG9sZGVyKTsKKworICAgICAgICB0aGlzLnNlbGVjdGlvbkVuYWJsZWQgPSB0cnVlOworCisg
ICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhbmltYXRpb24tY29sbGVjdGlvbiIp
OworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNr
ZWQoKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7
CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQo
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgY29udGVudFZp
ZXdBZGRlZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91
c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk7CisgICAgfQor
CisgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQorICAgIHsKKyAgICAgICAgY29u
dGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5f
aGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKTsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5faGFuZGxlQ29udGVudFZp
ZXdNb3VzZUxlYXZlKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICBX
SS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAgc3VwZXIuZGV0
YWNoZWQoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlQ29udGVudFZp
ZXdNb3VzZUVudGVyKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gV0ku
Vmlldy5mcm9tRWxlbWVudChldmVudC50YXJnZXQpOworICAgICAgICBpZiAoIShjb250ZW50Vmll
dyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmpl
Y3Q7CisgICAgICAgIGFuaW1hdGlvbi5yZXF1ZXN0Tm9kZSgpLnRoZW4oKG5vZGUpID0+IHsKKyAg
ICAgICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5vd25lckRvY3VtZW50KQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIG5vZGUuaGlnaGxpZ2h0KCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUoZXZlbnQpCisgICAgewor
ICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTg4OTBmNWNj
ZDY0YWNiZjYyZDlhYjkxMGNiZWI4NzhjZGY2MjgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcu
Y3NzCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJn
aW46IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWNv
bnRlbnQpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisK
Ky5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkIHsKKyAgICBvdXRsaW5lOiBhdXRvIC13
ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAg
ICBoZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgcGFkZGluZzogMCA2
cHg7CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IGhlYWRlciA+IC50aXRsZXMgeworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisKKy5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgY29s
b3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0t
dGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
aGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5KTo6YmVmb3JlIHsKKyAgICBj
b250ZW50OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNwOyAqLzsKK30K
KworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewor
ICAgIGJvcmRlcjogbm9uZTsKKyAgICBvcGFjaXR5OiAwOworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgb3BhY2l0eTog
MTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyB7CisgICAgZGlzcGxh
eTogZmxleDsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczog
Y2VudGVyOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYlKTsKK30KKworLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyB7CisgICAgd2lkdGg6IDEwMCU7
Cit9CisKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHN2ZyB7CisgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QgeworICAgIGZpbGw6IHRyYW5zcGFyZW50Owor
fQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmRlbGF5IGxp
bmUgeworICAgIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG9yKTsKKyAgICBzdHJva2Utd2lkdGg6
IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0
aXZlIHBhdGggeworICAgIGZpbGw6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7CisgICAgZmls
bC1vcGFjaXR5OiAwLjU7CisgICAgc3Ryb2tlOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOwor
ICAgIHN0cm9rZS13aWR0aDogMTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlIHsKKyAgICBmaWxsOiB2YXIoLS10ZXh0LWNvbG9y
KTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3Rp
dmUgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICBzdHJva2Utd2lk
dGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzcGFuIHsK
KyAgICBwYWRkaW5nOiA0cHg7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5
KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgICAg
IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgICAgICBjb2xvcjog
dmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwg
MCUsIDIwJSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNmNhMzM0MThmNDI1OWNhNDczOTNlY2NjZjhjNjEzYjY1MThhMGYwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5B
bmltYXRpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKKyAg
ICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQW5pbWF0aW9uKTsKKworICAgICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVjdCk7CisKKyAg
ICAgICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IG51bGw7CisgICAgICAgIHRoaXMu
X2NhY2hlZFdpZHRoID0gTmFOOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJhbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBnZXQg
cHJldmlld0hlaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gNDA7CisgICAgfQorCisgICAg
Ly8gUHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAg
ICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQK
KworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91
dCgpOworCisgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICBsZXQgdGl0
bGVzQ29udGFpbmVyID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRpdGxlc0NvbnRhaW5lci5jbGFzc05hbWUgPSAidGl0
bGVzIjsKKworICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gdGl0bGVzQ29udGFpbmVyLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgIHRpdGxlRWxl
bWVudC5jbGFzc05hbWUgPSAidGl0bGUiOworICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRl
bnQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc3BsYXlOYW1lOworCisgICAgICAgIHRoaXMu
X3N1YnRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuY2xh
c3NOYW1lID0gInN1YnRpdGxlIjsKKworICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IG5ldyBX
SS5OYXZpZ2F0aW9uQmFyOworCisgICAgICAgIGxldCBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZp
Z2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiYW5pbWF0aW9uLXRhcmdl
dCIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24gVGFyZ2V0IiksICJJbWFnZXMvTWFya3VwLnN2ZyIs
IDE2LCAxNik7CisgICAgICAgIGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZp
c2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5M
b3c7CisgICAgICAgIFdJLmFkZE1vdXNlRG93bkNvbnRleHRNZW51SGFuZGxlcnMoYW5pbWF0aW9u
VGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZWxlbWVudCwgdGhpcy5fcG9wdWxhdGVBbmltYXRp
b25UYXJnZXRCdXR0b25Db250ZXh0TWVudS5iaW5kKHRoaXMpKTsKKyAgICAgICAgbmF2aWdhdGlv
bkJhci5hZGROYXZpZ2F0aW9uSXRlbShhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRl
bSk7CisKKyAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmQobmF2aWdhdGlvbkJhci5lbGVtZW50
KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRpb25CYXIpOworCisgICAgICAgIHRo
aXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNs
YXNzTmFtZSA9ICJwcmV2aWV3IjsKKyAgICB9CisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAg
ICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7Cisg
ICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgc2l6ZURpZENoYW5n
ZSgpCisgICAgeworICAgICAgICBzdXBlci5zaXplRGlkQ2hhbmdlKCk7CisKKyAgICAgICAgdGhp
cy5fY2FjaGVkV2lkdGggPSB0aGlzLmVsZW1lbnQucmVhbE9mZnNldFdpZHRoOworICAgIH0KKwor
ICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAg
ICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5F
dmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlv
bi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlzKTsK
KyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5n
ZWQsIHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVj
dENoYW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQsIHRoaXMpOworCisgICAgICAgIHN1
cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3JlZnJlc2hT
dWJ0aXRsZSgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RO
b2RlKCkudGhlbigoZG9tTm9kZSkgPT4geworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uVGFy
Z2V0RE9NTm9kZSA9IGRvbU5vZGU7CisKKyAgICAgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVu
dC5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICAgICAgaWYgKGRvbU5vZGUpCisgICAgICAgICAg
ICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKFdJLmxpbmtpZnlOb2RlUmVm
ZXJlbmNlKGRvbU5vZGUpKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgX3JlZnJlc2hQcmV2
aWV3KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIucmVtb3ZlQ2hpbGRy
ZW4oKTsKKworICAgICAgICBsZXQga2V5ZnJhbWVzID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5r
ZXlmcmFtZXM7CisgICAgICAgIGlmICgha2V5ZnJhbWVzLmxlbmd0aCkgeworICAgICAgICAgICAg
bGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gV0ku
VUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBBbGwgYW5pbWF0aW9uIHRpbWVzIGFy
ZSBpbiBtaWxsaXNlY29uZHMuCisgICAgICAgIGxldCBzdGFydERlbGF5ID0gKHRoaXMucmVwcmVz
ZW50ZWRPYmplY3Quc3RhcnREZWxheSB8fCAwKSAqIDEwMDA7CisgICAgICAgIGxldCBpdGVyYXRp
b25EdXJhdGlvbiA9ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lml0ZXJhdGlvbkR1cmF0aW9uIHx8
IDApICogMTAwMDsKKyAgICAgICAgbGV0IGVuZERlbGF5ID0gKHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuZW5kRGVsYXkgfHwgMCkgKiAxMDAwOworICAgICAgICBsZXQgdG90YWxEdXJhdGlvbiA9IHN0
YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIGVuZERlbGF5OworICAgICAgICBpZiAodG90
YWxEdXJhdGlvbiA9PT0gMCkgeworICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3
Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7Cisg
ICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9u
IGhhcyBubyBkdXJhdGlvbi4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGNvbnN0IHByZXZpZXdIZWlnaHQgPSBXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcmV2
aWV3SGVpZ2h0OworICAgICAgICBjb25zdCBoaWdoZXJSZXNvbHV0aW9uID0gdHJ1ZTsKKworICAg
ICAgICBjb25zdCBtYXJrZXJIZWFkUmFkaXVzID0gNDsKKyAgICAgICAgY29uc3QgbWFya2VySGVh
ZFBhZGRpbmcgPSAyOworCisgICAgICAgIC8vIFNxdWVlemUgdGhlIGVudGlyZSBwcmV2aWV3IHNv
IHRoYXQgbWFya2VycyBhcmVuJ3QgY3V0IG9mZi4KKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVhTdGFy
dCA9IChpdGVyYXRpb25EdXJhdGlvbiAmJiBzdGFydERlbGF5KSA/IDAgOiBtYXJrZXJIZWFkUmFk
aXVzICsgbWFya2VySGVhZFBhZGRpbmc7CisgICAgICAgIGNvbnN0IHNxdWVlemVYRW5kID0gKGl0
ZXJhdGlvbkR1cmF0aW9uICYmIGVuZERlbGF5KSA/IDAgOiBtYXJrZXJIZWFkUmFkaXVzICsgbWFy
a2VySGVhZFBhZGRpbmc7CisgICAgICAgIGNvbnN0IHNxdWVlemVZU3RhcnQgPSA4OworCisgICAg
ICAgIC8vIE1vdmUgdGhlIGVhc2luZyBsaW5lIGRvd24gdG8gY3V0IG9mZiB0aGUgYm90dG9tIGJv
cmRlci4KKyAgICAgICAgY29uc3QgYWRqdXN0RWFzaW5nWSA9IDAuNTsKKworICAgICAgICBsZXQg
c2Vjb25kc1BlclBpeGVsID0gdGhpcy5fY2FjaGVkV2lkdGggLyB0b3RhbER1cmF0aW9uOworCisg
ICAgICAgIHN0YXJ0RGVsYXkgKj0gc2Vjb25kc1BlclBpeGVsOworICAgICAgICBpdGVyYXRpb25E
dXJhdGlvbiA9IChpdGVyYXRpb25EdXJhdGlvbiAqIHNlY29uZHNQZXJQaXhlbCkgLSBzcXVlZXpl
WFN0YXJ0IC0gc3F1ZWV6ZVhFbmQ7CisgICAgICAgIGVuZERlbGF5ICo9IHNlY29uZHNQZXJQaXhl
bDsKKworICAgICAgICBsZXQgc3ZnID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGls
ZChjcmVhdGVTVkdFbGVtZW50KCJzdmciKSk7CisgICAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoInZp
ZXdCb3giLCBgMCAwICR7dGhpcy5fY2FjaGVkV2lkdGh9ICR7cHJldmlld0hlaWdodH1gKTsKKwor
ICAgICAgICBmdW5jdGlvbiBhZGRUaXRsZShwYXJlbnQsIHRpdGxlKSB7CisgICAgICAgICAgICBs
ZXQgdGl0bGVFbGVtZW50ID0gcGFyZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInRp
dGxlIikpOworICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoc3RhcnREZWxheSkgeworICAgICAgICAgICAgbGV0IHN0
YXJ0RGVsYXlDb250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIp
KTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZGVsYXki
LCAic3RhcnQiKTsKKworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlMaW5lID0gc3RhcnREZWxh
eUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAg
ICAgICAgc3RhcnREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsg
c3F1ZWV6ZVlTdGFydCkgLyAyKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJp
YnV0ZSgieDIiLCBzdGFydERlbGF5KTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0
dHJpYnV0ZSgieTIiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAg
ICAgICAgICAgIGxldCBzdGFydERlbGF5RWxlbWVudCA9IHN0YXJ0RGVsYXlDb250YWluZXIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVs
YXlFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBzdGFydERlbGF5KTsKKyAgICAgICAgICAg
IHN0YXJ0RGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgcHJldmlld0hlaWdodCk7
CisKKyAgICAgICAgICAgIGFkZFRpdGxlKHN0YXJ0RGVsYXlFbGVtZW50LCBXSS5VSVN0cmluZygi
U3RhcnQgRGVsYXkgJXMiKS5mb3JtYXQoTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnN0YXJ0RGVsYXksIGhpZ2hlclJlc29sdXRpb24pKSk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoZW5kRGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBlbmREZWxheUNvbnRh
aW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAg
ICAgZW5kRGVsYXlDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRl
KCR7c3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgc3F1ZWV6ZVhTdGFydH0sIDApYCk7
CisgICAgICAgICAgICBlbmREZWxheUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxheSIsICJl
bmQiKTsKKworICAgICAgICAgICAgbGV0IGVuZERlbGF5TGluZSA9IGVuZERlbGF5Q29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICBlbmRE
ZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFy
dCkgLyAyKTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngyIiwgZW5k
RGVsYXkpOworICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJl
dmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBlbmRE
ZWxheUVsZW1lbnQgPSBlbmREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVt
ZW50KCJyZWN0IikpOworICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgi
d2lkdGgiLCBzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheSk7CisgICAg
ICAgICAgICBlbmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2aWV3SGVp
Z2h0KTsKKworICAgICAgICAgICAgYWRkVGl0bGUoZW5kRGVsYXlFbGVtZW50LCBXSS5VSVN0cmlu
ZygiRW5kIERlbGF5ICVzIikuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5lbmREZWxheSwgaGlnaGVyUmVzb2x1dGlvbikpKTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChpdGVyYXRpb25EdXJhdGlvbikgeworICAgICAgICAgICAgbGV0IHRpbWlu
Z0Z1bmN0aW9uID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC50aW1pbmdGdW5jdGlvbjsKKworICAg
ICAgICAgICAgbGV0IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNy
ZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5l
ci5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTsKKyAgICAgICAgICAgIGFjdGl2ZUR1cmF0aW9uQ29u
dGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0RGVsYXkg
KyBzcXVlZXplWFN0YXJ0fSwgJHtzcXVlZXplWVN0YXJ0fSlgKTsKKworICAgICAgICAgICAgY29u
c3Qgc3RhcnRZID0gMDsKKyAgICAgICAgICAgIGNvbnN0IGVuZFkgPSBwcmV2aWV3SGVpZ2h0IC0g
c3F1ZWV6ZVlTdGFydDsKKyAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGVuZFkgLSBzdGFydFk7
CisKKyAgICAgICAgICAgIGZvciAobGV0IFtrZXlmcmFtZUEsIGtleWZyYW1lQl0gb2Yga2V5ZnJh
bWVzLmFkamFjZW5jaWVzKCkpIHsKKyAgICAgICAgICAgICAgICBsZXQgc3RhcnRYID0gaXRlcmF0
aW9uRHVyYXRpb24gKiBrZXlmcmFtZUEub2Zmc2V0OworICAgICAgICAgICAgICAgIGxldCBlbmRY
ID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZUIub2Zmc2V0OworICAgICAgICAgICAgICAg
IGxldCB3aWR0aCA9IGVuZFggLSBzdGFydFg7CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5n
ID0ga2V5ZnJhbWVBLmVhc2luZyB8fCB0aW1pbmdGdW5jdGlvbjsKKworICAgICAgICAgICAgICAg
IGxldCBlYXNpbmdDb250YWluZXIgPSBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGls
ZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgICAgIGVhc2luZ0NvbnRhaW5l
ci5jbGFzc0xpc3QuYWRkKCJlYXNpbmciKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdDb250YWlu
ZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3RhcnRYfSwgJHtzdGFy
dFl9KWApOworCisgICAgICAgICAgICAgICAgbGV0IHgxID0gZWFzaW5nLmluUG9pbnQueCAqIHdp
ZHRoOworICAgICAgICAgICAgICAgIGxldCB5MSA9ICgoMSAtIGVhc2luZy5pblBvaW50LnkpICog
aGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7CisgICAgICAgICAgICAgICAgbGV0IHgyID0gZWFzaW5n
Lm91dFBvaW50LnggKiB3aWR0aDsKKyAgICAgICAgICAgICAgICBsZXQgeTIgPSAoKDEgLSBlYXNp
bmcub3V0UG9pbnQueSkgKiBoZWlnaHQpICsgYWRqdXN0RWFzaW5nWTsKKworICAgICAgICAgICAg
ICAgIGxldCBlYXNpbmdQYXRoID0gZWFzaW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNW
R0VsZW1lbnQoInBhdGgiKSk7CisgICAgICAgICAgICAgICAgZWFzaW5nUGF0aC5zZXRBdHRyaWJ1
dGUoImQiLCBgTSAwICR7aGVpZ2h0ICsgYWRqdXN0RWFzaW5nWX0gQyAke3gxfSAke3kxfSAke3gy
fSAke3kyfSAke3dpZHRofSAke2FkanVzdEVhc2luZ1l9IFYgJHtoZWlnaHQgKyBhZGp1c3RFYXNp
bmdZfSBaYCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGVSZWN0ID0gZWFzaW5nQ29udGFp
bmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICAg
ICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCB3aWR0aCk7CisgICAgICAgICAgICAg
ICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgaGVpZ2h0KTsKKworICAgICAgICAg
ICAgICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwgZWFzaW5nLnRvU3RyaW5nKCkpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmb3IgKGxldCBrZXlmcmFtZSBvZiBrZXlmcmFtZXMpIHsKKyAg
ICAgICAgICAgICAgICBsZXQgeCA9IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWUub2Zmc2V0
OworCisgICAgICAgICAgICAgICAgbGV0IGtleWZyYW1lQ29udGFpbmVyID0gYWN0aXZlRHVyYXRp
b25Db250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAg
ICAgICAgICBrZXlmcmFtZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJrZXlmcmFtZSIpOworICAg
ICAgICAgICAgICAgIGtleWZyYW1lQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwg
YHRyYW5zbGF0ZSgke3h9LCAke3N0YXJ0WX0pYCk7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5
ZnJhbWVNYXJrZXJIZWFkID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgiY2lyY2xlIikpOworICAgICAgICAgICAgICAgIGtleWZyYW1lTWFya2VySGVhZC5z
ZXRBdHRyaWJ1dGUoInIiLCBtYXJrZXJIZWFkUmFkaXVzKTsKKworICAgICAgICAgICAgICAgIGxl
dCBrZXlmcmFtZU1hcmtlckxpbmUgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVh
dGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAgICAgICAgIGtleWZyYW1lTWFya2VyTGlu
ZS5zZXRBdHRyaWJ1dGUoInkxIiwgaGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIGxldCB0aXRs
ZVJlY3QgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJy
ZWN0IikpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAtMSAq
IChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmcpKTsKKyAgICAgICAgICAgICAg
ICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ5IiwgLTEgKiBzcXVlZXplWVN0YXJ0KTsKKyAgICAg
ICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIChtYXJrZXJIZWFkUmFk
aXVzICsgbWFya2VySGVhZFBhZGRpbmcpICogMik7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0
LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgaGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCk7CisKKyAgICAg
ICAgICAgICAgICBhZGRUaXRsZSh0aXRsZVJlY3QsIGtleWZyYW1lLnN0eWxlLnJlcGxhY2VBbGwo
LztccysvZywgIjtcbiIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IF9oYW5kbGVFZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVz
aFByZXZpZXcoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlVGFyZ2V0Q2hhbmdlZChldmVudCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAgIH0KKworICAgIF9wb3B1
bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51KGNvbnRleHRNZW51KQorICAgIHsK
KyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiTG9nIEFuaW1hdGlv
biIpLCAoKSA9PiB7CisgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlv
bih0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50aW1lTWFuYWdlci5Db25zb2xlT2JqZWN0
R3JvdXAsIChyZW1vdGVPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIXJlbW90ZU9i
amVjdCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgY29u
c3QgdGV4dCA9IFdJLlVJU3RyaW5nKCJTZWxlY3RlZCBBbmltYXRpb24iKTsKKyAgICAgICAgICAg
ICAgICBjb25zdCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBXSS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9uV2l0
aFJlc3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNl
cGFyYXRvcigpOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKQor
ICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1l
bnUsIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUpOworICAgIH0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTg4NTAw
ZjQwNWI2NGNhM2Q5MmJmNzI4MDlkMjBiYjk3ZDcwZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbC5qcwpAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlv
bkRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBBbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
IGV4dGVuZHMgV0kuRGV0YWlsc1NpZGViYXJQYW5lbAoreworICAgIGNvbnN0cnVjdG9yKCkKKyAg
ICB7CisgICAgICAgIHN1cGVyKCJhbmltYXRpb24iLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIikp
OworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbiA9IG51bGw7CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICBpbnNwZWN0KG9iamVjdHMpCisgICAgeworICAgICAgICBpZiAoIShvYmplY3Rz
IGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICAgICAgb2JqZWN0cyA9IFtvYmplY3RzXTsKKwor
ICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG9iamVjdHMuZmluZCgob2JqZWN0KSA9PiBvYmplY3Qg
aW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOworCisgICAgICAgIHJldHVybiAhIXRoaXMuYW5pbWF0
aW9uOworICAgIH0KKworICAgIGdldCBhbmltYXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX2FuaW1hdGlvbjsKKyAgICB9CisKKyAgICBzZXQgYW5pbWF0aW9uKGFuaW1hdGlvbikK
KyAgICB7CisgICAgICAgIGlmIChhbmltYXRpb24gPT09IHRoaXMuX2FuaW1hdGlvbikKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7CisgICAgICAg
ICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZl
bnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhp
cyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5B
bmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uRWZmZWN0
Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBh
bmltYXRpb24gfHwgbnVsbDsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7CisgICAg
ICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZl
bnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwgdGhp
cyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Bbmlt
YXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hh
bmdlZCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7Cisg
ICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7Cisg
ICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICB0aGlzLl9uYW1lUm93ID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJOYW1lIikpOworICAg
ICAgICB0aGlzLl90eXBlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJ
U3RyaW5nKCJUeXBlIikpOworICAgICAgICB0aGlzLl90YXJnZXRSb3cgPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlRhcmdldCIpKTsKKyAgICAgICAgbGV0IGlk
ZW50aXR5U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWlkZW50aXR5
IiwgV0kuVUlTdHJpbmcoIklkZW50aXR5IiksIFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChb
dGhpcy5fbmFtZVJvdywgdGhpcy5fdHlwZVJvdywgdGhpcy5fdGFyZ2V0Um93XSldKTsKKyAgICAg
ICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGlkZW50aXR5U2VjdGlvbi5l
bGVtZW50KTsKKworICAgICAgICB0aGlzLl9hY3RpdmVEdXJhdGlvblJvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiQWN0aXZlIER1cmF0aW9uIikpOworICAg
ICAgICB0aGlzLl9zdGFydERlbGF5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93
KFdJLlVJU3RyaW5nKCJTdGFydCBEZWxheSIpKTsKKyAgICAgICAgdGhpcy5fZW5kRGVsYXlSb3cg
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkVuZCBEZWxheSIp
KTsKKyAgICAgICAgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rp
b25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkVhc2luZyIpKTsKKyAgICAgICAgbGV0IHRpbWluZ0dy
b3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX2FjdGl2ZUR1cmF0aW9uUm93
LCB0aGlzLl9zdGFydERlbGF5Um93LCB0aGlzLl9lbmREZWxheVJvdywgdGhpcy5fdGltaW5nRnVu
Y3Rpb25Sb3ddKTsKKworICAgICAgICB0aGlzLl9pdGVyYXRpb25zUm93ID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJJdGVyYXRpb25zIikpOworICAgICAgICB0
aGlzLl9pdGVyYXRpb25TdGFydFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhX
SS5VSVN0cmluZygiSXRlcmF0aW9uIFN0YXJ0IikpOworICAgICAgICB0aGlzLl9pdGVyYXRpb25E
dXJhdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygi
SXRlcmF0aW9uIER1cmF0aW9uIikpOworICAgICAgICBsZXQgaXRlcmF0aW9uc0dyb3VwID0gbmV3
IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX2l0ZXJhdGlvbnNSb3csIHRoaXMuX2l0ZXJh
dGlvblN0YXJ0Um93LCB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvd10pOworCisgICAgICAgIHRo
aXMuX3BsYXliYWNrRGlyZWN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93
KFdJLlVJU3RyaW5nKCJEaXJlY3Rpb24iKSk7CisgICAgICAgIHRoaXMuX2ZpbGxNb2RlUm93ID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJGaWxsIikpOworICAg
ICAgICBsZXQgZmlsbERpcmVjdGlvbkdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAo
W3RoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93LCB0aGlzLl9maWxsTW9kZVJvd10pOworCisgICAg
ICAgIGxldCBlZmZlY3RTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24t
ZWZmZWN0IiwgV0kuVUlTdHJpbmcoIkVmZmVjdCIpLCBbdGltaW5nR3JvdXAsIGl0ZXJhdGlvbnNH
cm91cCwgZmlsbERpcmVjdGlvbkdyb3VwXSk7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxl
bWVudC5hcHBlbmRDaGlsZChlZmZlY3RTZWN0aW9uLmVsZW1lbnQpOworCisgICAgICAgIGNvbnN0
IHNlbGVjdGFibGUgPSBmYWxzZTsKKyAgICAgICAgbGV0IGJhY2t0cmFjZVRyZWVPdXRsaW5lID0g
bmV3IFdJLlRyZWVPdXRsaW5lKHNlbGVjdGFibGUpOworICAgICAgICBiYWNrdHJhY2VUcmVlT3V0
bGluZS5kaXNjbG9zdXJlQnV0dG9ucyA9IGZhbHNlOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VU
cmVlQ29udHJvbGxlciA9IG5ldyBXSS5DYWxsRnJhbWVUcmVlQ29udHJvbGxlcihiYWNrdHJhY2VU
cmVlT3V0bGluZSk7CisKKyAgICAgICAgbGV0IGJhY2t0cmFjZVJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblJvdzsKKyAgICAgICAgYmFja3RyYWNlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFj
a3RyYWNlVHJlZU91dGxpbmUuZWxlbWVudCk7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rp
b24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1iYWNrdHJhY2UiLCBXSS5VSVN0
cmluZygiQmFja3RyYWNlIiksIFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYmFja3RyYWNl
Um93XSldKTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50LmhpZGRlbiA9
IHRydWU7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlz
Ll9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQpOworICAgIH0KKworICAgIGxheW91dCgpCisgICAg
eworICAgICAgICBzdXBlci5sYXlvdXQoKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlT
ZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7CisgICAgICAg
IHRoaXMuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0
ZQorCisgICAgX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5f
bmFtZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5kaXNwbGF5TmFtZTsKKyAgICAgICAgdGhp
cy5fdHlwZVJvdy52YWx1ZSA9IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5
cGUodGhpcy5fYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUpOworCisgICAgICAgIHRoaXMuX3Rhcmdl
dFJvdy52YWx1ZSA9IG51bGw7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZXF1ZXN0Tm9kZSgp
LnRoZW4oKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3RhcmdldFJvdy52YWx1ZSA9
IGRvbU5vZGUgPyBXSS5saW5raWZ5Tm9kZVJlZmVyZW5jZShkb21Ob2RlKSA6IG51bGw7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoRWZmZWN0U2VjdGlvbigpCisgICAgeworICAg
ICAgICBjb25zdCBoaWdoZXJSZXNvbHV0aW9uID0gdHJ1ZTsKKworICAgICAgICBsZXQgaXRlcmF0
aW9ucyA9IHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25zOworICAgICAgICBsZXQgaXRlcmF0aW9u
RHVyYXRpb24gPSB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb247CisKKyAgICAgICAg
dGhpcy5fYWN0aXZlRHVyYXRpb25Sb3cudmFsdWUgPSAhaXNOYU4oaXRlcmF0aW9uRHVyYXRpb24p
ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyhpdGVyYXRpb25EdXJhdGlvbiAqIChpdGVyYXRpb25z
IHx8IDEpLCBoaWdoZXJSZXNvbHV0aW9uKSA6IG51bGw7CisgICAgICAgIHRoaXMuX3N0YXJ0RGVs
YXlSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uc3RhcnREZWxheSA/IE51bWJlci5zZWNvbmRz
VG9TdHJpbmcodGhpcy5fYW5pbWF0aW9uLnN0YXJ0RGVsYXksIGhpZ2hlclJlc29sdXRpb24pIDog
bnVsbDsKKyAgICAgICAgdGhpcy5fZW5kRGVsYXlSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24u
ZW5kRGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5lbmREZWxh
eSwgaGlnaGVyUmVzb2x1dGlvbikgOiBudWxsOworICAgICAgICB0aGlzLl90aW1pbmdGdW5jdGlv
blJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbiA/IHRoaXMuX2FuaW1h
dGlvbi50aW1pbmdGdW5jdGlvbi50b1N0cmluZygpIDogbnVsbDsKKworICAgICAgICB0aGlzLl9p
dGVyYXRpb25zUm93LnZhbHVlID0gIWlzTmFOKGl0ZXJhdGlvbnMpID8gaXRlcmF0aW9ucy50b0xv
Y2FsZVN0cmluZygpIDogbnVsbDsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cudmFs
dWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSA/IHRoaXMuX2FuaW1h
dGlvbi5pdGVyYXRpb25TdGFydC50b0xvY2FsZVN0cmluZygpIDogbnVsbDsKKyAgICAgICAgdGhp
cy5faXRlcmF0aW9uRHVyYXRpb25Sb3cudmFsdWUgPSAhaXNOYU4oaXRlcmF0aW9uRHVyYXRpb24p
ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyhpdGVyYXRpb25EdXJhdGlvbiwgaGlnaGVyUmVzb2x1
dGlvbikgOiBudWxsOworCisgICAgICAgIHRoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93LnZhbHVl
ID0gdGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uID8gV0kuQW5pbWF0aW9uLmRpc3Bs
YXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24odGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0
aW9uKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2ZpbGxNb2RlUm93LnZhbHVlID0gdGhpcy5fYW5p
bWF0aW9uLmZpbGxNb2RlID8gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1vZGUodGhp
cy5fYW5pbWF0aW9uLmZpbGxNb2RlKSA6IG51bGw7CisgICAgfQorCisgICAgX3JlZnJlc2hCYWNr
dHJhY2VTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGxldCBjYWxsRnJhbWVzID0gdGhpcy5fYW5p
bWF0aW9uLmJhY2t0cmFjZTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlVHJlZUNvbnRyb2xsZXIu
Y2FsbEZyYW1lcyA9IGNhbGxGcmFtZXM7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24u
ZWxlbWVudC5oaWRkZW4gPSAhY2FsbEZyYW1lcy5sZW5ndGg7CisgICAgfQorCisgICAgX2hhbmRs
ZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZy
ZXNoRWZmZWN0U2VjdGlvbigpOworICAgIH0KKworICAgIF9oYW5kbGVBbmltYXRpb25UYXJnZXRD
aGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaElkZW50aXR5U2VjdGlv
bigpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKaW5kZXggNGU1YTkw
ZTFmMDMxN2YwYzRlYmY0Zjc5OTcwMjc2YzdmYmQyN2Y1OC4uY2MxNjZiZDNlNjBkMzgxYTc1YTFh
MTc5NDNhYmUyMzY3MDdhOGI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcwpAQCAt
MjMsMTEgKzIzLDExIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFz
IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IC5wcmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFz
ID4gLnByZXZpZXcgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAganVzdGlmeS1jb250ZW50OiBj
ZW50ZXI7CiAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKQEAgLTM2LDE3ICszNiwxNyBAQAogICAg
IHBhZGRpbmc6IDE1cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7Cisu
Y29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LWRpcmVj
dGlvbjogY29sdW1uOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiAucHJl
dmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAg
ICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgbWF4LWhlaWdodDogMTAwJTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXM6bm90KC50YWIpID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKKy5jb250
ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKICAgICBkaXNwbGF5
OiBub25lOwogfQogCkBAIC01Niw3ICs1Niw3IEBACiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xv
ci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgewor
ICAgIC5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5z
ZXQ7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcwppbmRleCA5YjRmZDZmNmVk
N2UxY2I3NjM5NzUxMTEwMTE1MzI0NjU0ZDU4ZjAxLi45OTNkYTUxM2YyZGQ1NjMzZmQ3OTQ4M2Vh
NGNhOWZmYmE5NmVmY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcwpAQCAtNDUsNyAr
NDUsNyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2giLCBXSS5VSVN0
cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAg
ICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9
IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7Ci0gICAgICAgIHRoaXMu
X3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMucmVmcmVzaFByZXZpZXcsIHRoaXMpOwor
ICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5l
cihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLmhhbmRsZVJlZnJl
c2hCdXR0b25DbGlja2VkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5h
dmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ct
Z3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5n
KCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vy
cy5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tl
ZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKQEAgLTc3LDYgKzc3LDI5IEBA
IFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBoYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7CisgICAg
fQorCisgICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVnYXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFw
cGVhckZvckRyYWdFdmVudChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4g
ZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAg
IGRyb3Bab25lSGFuZGxlRHJvcChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICBsZXQg
ZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5n
dGggIT09IDEpIHsKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5iZWVwKCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBXSS5GaWxlVXRpbGl0aWVz
LnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09O
KHJlc3VsdCkpOworICAgIH0KKwogICAgIC8vIFByb3RlY3RlZAogCiAgICAgaW5pdGlhbExheW91
dCgpCkBAIC0xNjAsNiArMTgzLDEzIEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2Fu
dmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIGlmIChpc0Nh
cmQpCiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNoUGl4ZWxTaXplKCk7CisKKyAgICAgICAgaWYg
KCFpc0NhcmQpIHsKKyAgICAgICAgICAgIGxldCBkcm9wWm9uZVZpZXcgPSBuZXcgV0kuRHJvcFpv
bmVWaWV3KHRoaXMpOworICAgICAgICAgICAgZHJvcFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmlu
ZygiSW1wb3J0IFJlY29yZGluZyIpOworICAgICAgICAgICAgZHJvcFpvbmVWaWV3LnRhcmdldEVs
ZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpv
bmVWaWV3KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGxheW91dCgpCkBAIC0xOTEsMTMgKzIy
MSw2IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl91cGRhdGVJbWFnZUdyaWQoKTsKICAg
ICB9CiAKLSAgICBzaG93bigpCi0gICAgewotICAgICAgICBzdXBlci5zaG93bigpOwotCi0gICAg
ICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKLSAgICB9Ci0KICAgICBhdHRhY2hlZCgpCiAgICAg
ewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwpAQCAtMjIzLDYgKzI0Niw4IEBAIFdJLkNhbnZh
c0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50
VmlldwogICAgICAgICB9KTsKIAogICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl91cGRhdGVJbWFn
ZUdyaWQsIHRoaXMpOworCisgICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKICAgICB9CiAK
ICAgICBkZXRhY2hlZCgpCkBAIC0yOTEsMTEgKzMxNiw2IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3
ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAg
X3BvcHVsYXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNvbnRleHRNZW51KGNvbnRleHRNZW51KQogICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuX2NhbnZhc05vZGUpCi0gICAgICAgICAgICBXSS5hcHBlbmRD
b250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7
Ci0KLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7Ci0KICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiTG9nIENhbnZhcyBDb250ZXh0IiksICgp
ID0+IHsKICAgICAgICAgICAgIFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQ2FudmFzQ29udGV4dCh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50aW1lTWFuYWdlci5Db25zb2xlT2JqZWN0R3Jv
dXAsIChyZW1vdGVPYmplY3QpID0+IHsKICAgICAgICAgICAgICAgICBpZiAoIXJlbW90ZU9iamVj
dCkKQEAgLTMwNiw2ICszMjYsMTEgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52
YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICAgICAgV0ku
Y29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhSZXN1
bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0
b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fY2FudmFzTm9kZSkKKyAgICAgICAgICAgIFdJLmFw
cGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9jYW52YXNO
b2RlKTsKICAgICB9CiAKICAgICBfc2hvd0dyaWRCdXR0b25DbGlja2VkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKaW5kZXggMTBmMzdjMDQ2YjBjMmExMjgy
YzVlYzk5ZGM2Y2I5OTBiMjIzNmM1Zi4uN2RkYmY0NGJlNWQ3ZTNmNmYyMWNhNzI4Y2VhZmJjNmVl
OTVmYzczNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MK
QEAgLTI0LDMxICsyNCwzNCBAQAogICovCiAKIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IHsKLSAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IHZh
cigtLWNhbnZhcy1vdmVydmlldy1jb250ZW50LXZpZXctanVzdGlmeS1jb250ZW50KTsKICAgICBh
bGlnbi1pdGVtczogZmxleC1zdGFydDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUs
IDkwJSk7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHBhZGRpbmc6IDRweCAwOwogCi0g
ICAgLS1pdGVtLW1hcmdpbjogMTBweDsKKyAgICAtLWNhbnZhcy1vdmVydmlldy1jb250ZW50LXZp
ZXctanVzdGlmeS1jb250ZW50LWRlZmF1bHQ6IGNlbnRlcjsKKyAgICAtLWNhbnZhcy1vdmVydmll
dy1jb250ZW50LXZpZXctanVzdGlmeS1jb250ZW50OiB2YXIoLS1jYW52YXMtb3ZlcnZpZXctY29u
dGVudC12aWV3LWp1c3RpZnktY29udGVudC1vdmVycmlkZSwgdmFyKC0tY2FudmFzLW92ZXJ2aWV3
LWNvbnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQtZGVmYXVsdCkpOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICBmbGV4LWdyb3c6
IDA7Ci0gICAgbWFyZ2luOiB2YXIoLS1pdGVtLW1hcmdpbik7CisgICAgZmxleC1zaHJpbms6IDA7
CiAgICAgd2lkdGg6IDQwMHB4OworICAgIG1hcmdpbjogNHB4OwogICAgIGJvcmRlcjogMXB4IHNv
bGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICAgY3Vyc29yOiBwb2ludGVyOwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcywKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBp
bWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiAucHJldmlldyA+IGltZyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKICAgICBib3JkZXItY29sb3I6IHJlZDsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0
Y2hlcyhoZWFkZXIsIGZvb3RlcikgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAgZGlz
cGxheTogZmxleDsKICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgIGZsZXgtc2hyaW5rOiAw
OwpAQCAtNTksMTM2ICs2MiwxMzYgQEAKICAgICBjdXJzb3I6IGRlZmF1bHQ7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBo
ZWFkZXIgewogICAgIGZvbnQtc2l6ZTogMTNweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUgPiBoZWFkZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBo
ZWFkZXIgPiAudGl0bGVzLAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBmb290ZXIgPiAuc2l6ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcywKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAu
c2l6ZSB7CiAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRp
dGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogdmFyKC0tdGV4dC1j
b2xvci1ncmF5LWRhcmspOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVt
b3J5LWNvc3QgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29z
dCB7CiAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciAu
c3VidGl0bGU6OmJlZm9yZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIC5zdWJ0aXRsZTo6YmVmb3JlIHsKICAgICBjb250ZW50
OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNwOyAqLzsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5n
LWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0
aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKICAgICBjb2xvcjogdmFyKC0tc2VsZWN0ZWQtc2Vj
b25kYXJ5LXRleHQtY29sb3IpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0geworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoKTsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgYWxpZ24t
aXRlbXM6IGluaXRpYWw7CiAgICAgYm9yZGVyOiBub25lOwogICAgIG9wYWNpdHk6IDA7CiAgICAg
dHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5y
ZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVy
LCAucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIG9w
YWNpdHk6IDE7CiAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90
KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJl
Y29yZC1zdGFydC1zdG9wLmRpc2FibGVkIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wLmRpc2FibGVkIHsKICAg
ICBmaWx0ZXI6IGdyYXlzY2FsZSgpOwogICAgIG9wYWNpdHk6IDAuNTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmct
YWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1z
dG9wOm5vdCguZGlzYWJsZWQpOmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQp
OmhvdmVyIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoOTUlKTsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0
aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9w
Om5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTph
Y3RpdmUgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg4MCUpOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
LnByb2dyZXNzLXZpZXcsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3LAor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3IHsKICAgICBoZWlnaHQ6IDI4MHB4OwogICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQt
Y29sb3IgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmll
dzpob3ZlciwKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXc6aG92ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92
ZXIsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gLnByZXZpZXc6aG92ZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYl
KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcmV2aWV3
IHsKICAgICBkaXNwbGF5OiBub25lOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7
CiAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgIGJveC1zaGFkb3c6IDFweCAycHggNnB4IHJn
YmEoMCwgMCwgMCwgMC41OCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiAubWVzc2FnZS10ZXh0LXZpZXcgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2
aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3IHsKICAgICBwb3NpdGlvbjogc3RhdGljOwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3Rl
ciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyIHsKICAgICBib3JkZXItdG9wOiBub25lOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0
ZWQtaXRlbXMgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgewogICAgIGRpc3BsYXk6IGZs
ZXg7CiAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0
ZW1zID4gOm1hdGNoZXMoLnZpZXctc2hhZGVyLCAudmlldy1yZWNvcmRpbmcpIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAu
dmlldy1yZWxhdGVkLWl0ZW1zID4gOm1hdGNoZXMoLnZpZXctc2hhZGVyLCAudmlldy1yZWNvcmRp
bmcpIHsKICAgICB3aWR0aDogMTZweDsKICAgICBoZWlnaHQ6IDE2cHg7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZp
ZXctcmVsYXRlZC1pdGVtcyA+IGltZyArIGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVt
cyA+IGltZyArIGltZyB7CiAgICAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDRweDsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
PiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctc2hhZGVyIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxh
dGVkLWl0ZW1zID4gLnZpZXctc2hhZGVyIHsKICAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4u
L0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5w
bmcpIDJ4KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctcmVjb3JkaW5n
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctcmVjb3JkaW5nIHsKICAgICBj
b250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5mbGV4aWJs
ZS1zcGFjZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gZm9vdGVyID4gLmZsZXhpYmxlLXNwYWNlIHsKICAgICBmbGV4OiAxOwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3Rl
ciAubWVtb3J5LWNvc3QgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgIC13ZWJraXQtcGFkZGlu
Zy1zdGFydDogNHB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CiAgICAgaGVp
Z2h0OiAzNDBweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5n
cyAudHJlZS1vdXRsaW5lIHsKICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGlu
Z3MgLnRyZWUtb3V0bGluZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5n
cyAudHJlZS1vdXRsaW5lID4gLml0ZW0ucmVjb3JkaW5nID4gLmljb24gewogICAgIGNvbnRlbnQ6
IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7CiB9CiAKQEAgLTIwOSw0MyArMjEyLDM5IEBA
CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0
OwotICAgIH0KLQotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1zZWNvbmRhcnkpOwog
ICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKLSAgICAuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
OmhvdmVyIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKKyAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnBy
ZXZpZXc6aG92ZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5k
LWNvbG9yLXRlcnRpYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKKyAgICAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1h
Y3RpdmUgewogICAgICAgICAtLXJlY29yZGluZy1jb2xvcjogaHNsKDAsIDEwMCUsIDM5JSk7CiAg
ICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAg
ICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNv
cmRpbmctYWN0aXZlID4gaGVhZGVyIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgewogICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yZWNvcmRpbmctY29sb3IpOwogICAgIH0KIAot
ICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
aGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUg
ewogICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAu
dGl0bGVzID4gLnN1YnRpdGxlLAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CisgICAgLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50
aXRsZXMgPiAuc3VidGl0bGUsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgICAgICBjb2xv
cjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC52aWV3LXJl
Y29yZGluZyB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IGZvb3RlciAudmlldy1yZWNvcmRpbmcgewogICAgICAgICBmaWx0ZXI6IGlu
dmVydCgpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1
YnRpdGxlIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxl
IHsKICAgICAgICAgY29sb3I6IHVuc2V0OwogICAgICAgICBvcGFjaXR5OiAwLjUKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwppbmRleCA2MzliMzZkODU5
YmI3Y2YzYzM0NDQ1YWEwZWI3NDk1NDMzYzQxMDk4Li4wZDE2NWRkMjY4ZDQzNzAyOGE0M2QxNDll
MDdjZmE4MzhiNGRlN2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcuanMKQEAgLTI5LDcgKzI5LDggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNs
YXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICB7CiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzQ29sbGVjdGlvbik7CiAKLSAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmNy
ZWF0ZU1lc3NhZ2VUZXh0VmlldyhXSS5VSVN0cmluZygiTm8gQ2FudmFzIENvbnRleHRzIikpOwor
ICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVyID0gV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBw
b3J0ZWQgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSA6IFdJLmNyZWF0ZU1lc3NhZ2VU
ZXh0VmlldyhXSS5VSVN0cmluZygiTm8gQ2FudmFzIENvbnRleHRzIikpOworCiAgICAgICAgIGxl
dCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBjb250ZW50UGxhY2Vob2xkZXIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwogICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQu
Y2xhc3NOYW1lID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRl
eHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0cyBjcmVh
dGVkIGJ5IHNjcmlwdCBvciBDU1MuIik7CkBAIC02MiwyMSArNjMsNyBAQCBXSS5DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRz
IFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fdXBkYXRlUmVjb3JkaW5nQXV0b0NhcHR1cmVD
aGVja2JveExhYmVsKGZyYW1lQ291bnQpOwogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5faW1w
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImlt
cG9ydC1yZWNvcmRpbmciLCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2
ZyIsIDE1LCAxNSk7Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRv
b2x0aXAgPSBXSS5VSVN0cmluZygiSW1wb3J0Iik7Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5
bGUuSW1hZ2VBbmRUZXh0OwotCi0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9u
SXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaC1hbGwiLCBXSS5VSVN0
cmluZygiUmVmcmVzaCBhbGwiKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7Ci0g
ICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7
Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3Rl
bmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3JlZnJlc2hQ
cmV2aWV3cywgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9u
SXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBX
SS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0
cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwg
MTMsIDEzKTsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3Rp
dmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7Ci0gICAgICAgIHRoaXMu
X3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwotICAgICAgICB0
aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlj
a2VkLCB0aGlzKTsKLQogICAgICAgICBpbXBvcnROYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3Rl
bmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUlt
cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX2lt
cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW1DbGlja2VkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250
ZW50VmlldyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5l
ID0gbnVsbDsKQEAgLTkwLDE3ICs3NywxOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogCiAg
ICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCiAgICAgewotICAgICAgICBsZXQgbmF2aWdhdGlvbkl0
ZW1zID0gW3RoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5h
dmlnYXRpb25JdGVtLCB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW1dOwotICAgICAgICBpZiAoV0kuQ2FudmFzTWFuYWdl
ci5zdXBwb3J0c1JlY29yZGluZ0F1dG9DYXB0dXJlKCkpCi0gICAgICAgICAgICBuYXZpZ2F0aW9u
SXRlbXMudW5zaGlmdCh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtLCBu
ZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVt
cyA9IFtdOworICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9u
SXRlbSkKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX3JlY29yZGluZ0F1
dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1z
OwogICAgIH0KIAotICAgIGhpZGRlbigpCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQo
KQogICAgIHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOwot
Ci0gICAgICAgIHN1cGVyLmhpZGRlbigpOworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRo
aXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5oYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0x
MTUsMjMgKzEwMywxOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhp
cy5yZW1vdmVTdWJ2aWV3KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3KTsKICAgICAg
ICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7
CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAg
ICB9CiAKICAgICBjb250ZW50Vmlld1JlbW92ZWQoY29udGVudFZpZXcpCiAgICAgewogICAgICAg
ICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0
aGlzLl9jb250ZW50Vmlld01vdXNlRW50ZXIpOwogICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50
LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9jb250ZW50Vmlld01vdXNl
TGVhdmUpOwotCi0gICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpOwogICAgIH0K
IAogICAgIGF0dGFjaGVkKCkKICAgICB7CiAgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CiAKLSAg
ICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRp
bmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRlU2hvd0ltYWdlR3JpZCwgdGhpcyk7CiAgICAg
ICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC5hZGRFdmVu
dExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVj
b3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRp
bmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5hZGRFdmVudExpc3RlbmVy
KFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVjb3JkaW5nQXV0
b0NhcHR1cmVGcmFtZUNvdW50Q2hhbmdlZCwgdGhpcyk7CiAKQEAgLTE0MSw0OSArMTI0LDI3IEBA
IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGlu
Z3NUcmVlT3V0bGluZS5yZW1vdmVDaGlsZHJlbigpOwogICAgICAgICBmb3IgKGxldCByZWNvcmRp
bmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3MpCiAgICAgICAgICAgICB0aGlz
Ll9hZGRTYXZlZFJlY29yZGluZyhyZWNvcmRpbmcpOworCisgICAgICAgIGZvciAobGV0IHN1YnZp
ZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LnJlZnJlc2hQ
cmV2aWV3KCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBkZXRhY2hlZCgpCiAgICAgeworICAg
ICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCiAg
ICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5y
ZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5n
cy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihu
dWxsLCBudWxsLCB0aGlzKTsKLSAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5yZW1v
dmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCiAgICAgICAgIHN1cGVyLmRldGFj
aGVkKCk7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgZ2V0IF9pdGVtTWFyZ2luKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
aGlzLmVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoIi0taXRlbS1tYXJnaW4iKSk7Ci0gICAgfQot
Ci0gICAgX3JlZnJlc2hQcmV2aWV3cygpCi0gICAgewotICAgICAgICBmb3IgKGxldCBjYW52YXND
b250ZW50VmlldyBvZiB0aGlzLnN1YnZpZXdzKQotICAgICAgICAgICAgY2FudmFzQ29udGVudFZp
ZXcucmVmcmVzaFByZXZpZXcoKTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlTmF2aWdhdGlvbkl0ZW1z
KCkKLSAgICB7Ci0gICAgICAgIGxldCBoYXNJdGVtcyA9ICEhdGhpcy5yZXByZXNlbnRlZE9iamVj
dC5zaXplOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxl
ZCA9IGhhc0l0ZW1zOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmVuYWJsZWQgPSBoYXNJdGVtczsKLSAgICB9Ci0KLSAgICBfc2hvd0dyaWRCdXR0b25DbGlja2Vk
KGV2ZW50KQotICAgIHsKLSAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZSA9
ICF0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZDsKLSAgICB9Ci0K
LSAgICBfdXBkYXRlU2hvd0ltYWdlR3JpZCgpCi0gICAgewotICAgICAgICB0aGlzLl9zaG93R3Jp
ZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdl
R3JpZC52YWx1ZTsKLSAgICB9Ci0KICAgICBfY29udGVudFZpZXdNb3VzZUVudGVyKGV2ZW50KQog
ICAgIHsKICAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gV0kuVmlldy5mcm9tRWxlbWVudChldmVu
dC50YXJnZXQpOwpAQCAtMzAxLDggKzI2Miw3IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAg
ICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldy5lbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lLmVsZW1lbnQpOwogICAgICAg
ICB9CiAKLSAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOwotICAgICAgICBsZXQgcmVjb3Jk
aW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0s
IHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7CisgICAgICAgIGxl
dCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNv
cmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBXSS5SZWNvcmRpbmcuZGlzcGxheU5hbWVG
b3JSZWNvcmRpbmdUeXBlKHJlY29yZGluZy50eXBlKSwgcmVjb3JkaW5nKTsKICAgICAgICAgcmVj
b3JkaW5nVHJlZUVsZW1lbnQuc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zYXZl
ZFJlY29yZGluZ3NUcmVlT3V0bGluZS5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCmluZGV4IGMyYmJkYzAyZTllODk2
YjQyYjFiNjNkMzM0YmNmZjIyZDgyNzRhMTkuLmM3MTFmYWY0NjJiNzZlNWU5MDgyNzQ3ZjE3Zjky
ZWE4NmIxZmIwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKQEAgLTIzNywxMCAr
MjM3LDggQEAgV0kuQ2FudmFzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJhclBhbmVs
IGV4dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW4KIAogICAgIGNhblNob3dSZXByZXNlbnRl
ZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKICAgICB7Ci0gICAgICAgIGlmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuIHN1cGVyLmNhblNob3dSZXByZXNlbnRlZE9iamVj
dChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhcworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5SZWNvcmRpbmc7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJD
b250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg5ZGFiNWVmOTk3OWQ2MmI4MTE1OTg5YTkxNjQwNDEzYzcyYThjZGMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzCisrKyAvZGV2L251bGwK
QEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKLSAgICBjb250
ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhc092ZXJ2aWV3LnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZp
ZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAu
aWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOwotfQotCi0u
Y29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhczpt
YXRjaGVzKC53ZWJnbCwgLndlYmdsMiwgLndlYmdwdSwgLndlYm1ldGFsKSAuaWNvbiB7Ci0gICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMzRC5zdmcpOwotfQotCi0uY29udGVudC12aWV3
LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsK
LSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwotfQotCi0uY29udGVu
dC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFt
ID4gLmljb24gewotICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50
R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOwotfQotCi1A
bWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy50
YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24g
ewotICAgICAgICBmaWx0ZXI6IGludmVydCg2MCUpOwotICAgIH0KLQotICAgIC5jb250ZW50LXZp
ZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAotICAg
IC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3Jk
aW5nID4gLmljb24gewotICAgICAgICBmaWx0ZXI6IGludmVydCgpOwotICAgIH0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1Rh
YkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZlMWRiZTQ4MDFlNTU3YmM3YzIwZTUyZWM3N2M4MDk5OWQ1NmE4ZDUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwyOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3ID0g
Y2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkNv
bnRlbnRWaWV3Ci17Ci0gICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewot
ICAgICAgICBjb25zb2xlLmFzc2VydCghcmVwcmVzZW50ZWRPYmplY3QgfHwgcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpOwotCi0gICAgICAgIGxldCB0YWJCYXJJdGVtID0g
V0kuR2VuZXJhbFRhYkJhckl0ZW0uZnJvbVRhYkluZm8oV0kuQ2FudmFzVGFiQ29udGVudFZpZXcu
dGFiSW5mbygpKTsKLQotICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3Ry
dWN0b3IgPSBXSS5DYW52YXNTaWRlYmFyUGFuZWw7Ci0gICAgICAgIGNvbnN0IGRldGFpbHNTaWRl
YmFyUGFuZWxDb25zdHJ1Y3RvcnMgPSBbV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBh
bmVsLCBXSS5SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwsIFdJLkNhbnZhc0RldGFp
bHNTaWRlYmFyUGFuZWxdOwotICAgICAgICBjb25zdCBkaXNhYmxlQmFja0ZvcndhcmQgPSB0cnVl
OwotICAgICAgICBzdXBlcigiY2FudmFzIiwgWyJjYW52YXMiXSwgdGFiQmFySXRlbSwgbmF2aWdh
dGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yLCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0
b3JzLCBkaXNhYmxlQmFja0ZvcndhcmQpOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rp
b24gPSBuZXcgV0kuQ2FudmFzQ29sbGVjdGlvbjsKLQotICAgICAgICB0aGlzLl9jYW52YXNUcmVl
T3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91
dGxpbmUuYWxsb3dzUmVwZWF0U2VsZWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fY2FudmFz
VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rp
b25EaWRDaGFuZ2UsIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlLCB0
aGlzKTsKLQotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVy
YWxUcmVlRWxlbWVudCgiY2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlTdHJpbmcoIk92ZXJ2aWV3Iiks
IG51bGwsIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVl
T3V0bGluZS5hcHBlbmRDaGlsZCh0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50KTsKLQotICAgICAg
ICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxl
bWVudChXSS5VSVN0cmluZygiU2F2ZWQgUmVjb3JkaW5ncyIpLCBXSS5SZWNvcmRpbmdDb2xsZWN0
aW9uKTsKLSAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0g
dHJ1ZTsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlz
Ll9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2hv
cnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0Y3V0
LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMu
X3JlY29yZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgIHRoaXMu
X3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5L
ZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5T
cGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3JlY29y
ZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwot
ICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsK
LQotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgpOwotICAgIH0KLQotICAgIHN0YXRp
YyB0YWJJbmZvKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBpbWFnZTog
IkltYWdlcy9DYW52YXMuc3ZnIiwKLSAgICAgICAgICAgIHRpdGxlOiBXSS5VSVN0cmluZygiQ2Fu
dmFzIiksCi0gICAgICAgIH07Ci0gICAgfQotCi0gICAgc3RhdGljIGlzVGFiQWxsb3dlZCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkNhbnZhcyIp
OwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgdHJlZUVsZW1lbnRGb3JSZXByZXNlbnRl
ZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9j
YW52YXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVwcmVzZW50ZWRPYmplY3QpOwotICAg
IH0KLQotICAgIGdldCB0eXBlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJD
b250ZW50Vmlldy5UeXBlOwotICAgIH0KLQotICAgIGdldCBzdXBwb3J0c1NwbGl0Q29udGVudEJy
b3dzZXIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgZ2V0IG1h
bmFnZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLQotICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVj
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkNhbnZhcwotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5D
YW52YXNDb2xsZWN0aW9uCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLlJlY29yZGluZwotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5TaGFkZXJQcm9ncmFtOwotICAgIH0KLQotICAgIHNob3duKCkKLSAgICB7Ci0gICAg
ICAgIHN1cGVyLnNob3duKCk7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJs
ZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNh
YmxlZCA9IGZhbHNlOwotCi0gICAgICAgIGlmICghdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50
Q29udGVudFZpZXcpCi0gICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdCh0aGlz
Ll9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICB9Ci0KLSAgICBoaWRkZW4oKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLl9y
ZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICBzdXBl
ci5oaWRkZW4oKTsKLSAgICB9Ci0KLSAgICBjbG9zZWQoKQotICAgIHsKLSAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5kaXNhYmxlKCk7Ci0KLSAgICAgICAgc3VwZXIuY2xvc2VkKCk7Ci0gICAgfQot
Ci0gICAgcmVzdG9yZVN0YXRlRnJvbUNvb2tpZShjb29raWUpCi0gICAgewotICAgICAgICAvLyBG
SVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29t
cGxldGUuCi0gICAgfQotCi0gICAgc2F2ZVN0YXRlVG9Db29raWUoY29va2llKQotICAgIHsKLSAg
ICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2
MDY+IGlzIGNvbXBsZXRlLgotICAgIH0KLQotICAgIGFzeW5jIGhhbmRsZUZpbGVEcm9wKGZpbGVz
KQotICAgIHsKLSAgICAgICAgYXdhaXQgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywg
KHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKLSAgICB9
Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAgIGF0dGFjaGVkKCkKLSAgICB7Ci0gICAgICAgIHN1
cGVyLmF0dGFjaGVkKCk7Ci0KLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZh
c0FkZGVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFz
UmVtb3ZlZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNv
cmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7Ci0gICAgICAgIFdJLkNhbnZhcy5hZGRFdmVudExp
c3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNv
cmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7Ci0KLSAgICAgICAgbGV0IGNhbnZhc2VzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlczsKLQotICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgdGhp
cy5fY2FudmFzQ29sbGVjdGlvbikgewotICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5pbmNsdWRl
cyhjYW52YXMpKQotICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIGNhbnZhc2VzKSB7Ci0gICAg
ICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCi0gICAgICAg
ICAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGNhbnZhcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB0
aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAg
ICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3Mp
Ci0gICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93
UmVjb3JkaW5nOiB0cnVlfSk7Ci0gICAgfQotCi0gICAgZGV0YWNoZWQoKQotICAgIHsKLSAgICAg
ICAgV0kuQ2FudmFzLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0gICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlz
KTsKLQotICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwotICAgIH0KLQotICAgIC8vIFByaXZhdGUK
LQotICAgIF9hZGRDYW52YXMoY2FudmFzKQotICAgIHsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdU
cmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7
Ci0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNhbnZhcyk7Ci0KLSAgICAgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1
ZSwKLSAgICAgICAgfTsKLQotICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJl
Y29yZGluZ0NvbGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3Jk
aW5nLCBvcHRpb25zKTsKLSAgICB9Ci0KLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKLSAgICB7
Ci0gICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmZpbmRU
cmVlRWxlbWVudChjYW52YXMpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCwg
Ik1pc3NpbmcgdHJlZSBlbGVtZW50IGZvciBjYW52YXMuIiwgY2FudmFzKTsKLQotICAgICAgICBj
b25zdCBzdXBwcmVzc05vdGlmaWNhdGlvbiA9IHRydWU7Ci0gICAgICAgIHRyZWVFbGVtZW50LmRl
c2VsZWN0KHN1cHByZXNzTm90aWZpY2F0aW9uKTsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVl
RWxlbWVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFz
Q29sbGVjdGlvbi5yZW1vdmUoY2FudmFzKTsKLQotICAgICAgICBsZXQgY3VycmVudENvbnRlbnRW
aWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7Ci0gICAgICAgIGlm
IChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKLSAg
ICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdCh0aGlzLl9jYW52YXNDb2xsZWN0aW9u
KTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuUmVj
b3JkaW5nQ29udGVudFZpZXcgJiYgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24uaGFzKGN1cnJl
bnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCkpCi0gICAgICAgICAgICB0aGlzLmNvbnRl
bnRCcm93c2VyLnVwZGF0ZUhpZXJhcmNoaWNhbFBhdGhGb3JDdXJyZW50Q29udGVudFZpZXcoKTsK
LQotICAgICAgICBsZXQgbmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNp
ZGViYXJQYW5lbDsKLSAgICAgICAgaWYgKG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNTaWRlYmFyUGFuZWwgJiYgbmF2aWdhdGlvblNpZGViYXJQYW5lbC52aXNpYmxl
KQotICAgICAgICAgICAgbmF2aWdhdGlvblNpZGViYXJQYW5lbC51cGRhdGVSZXByZXNlbnRlZE9i
amVjdHMoKTsKLQotICAgICAgICB0aGlzLnNob3dEZXRhaWxzU2lkZWJhclBhbmVscygpOwotICAg
IH0KLQotICAgIF9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zID0ge30pCi0gICAgewot
ICAgICAgICBpZiAoIXJlY29yZGluZy5zb3VyY2UpIHsKLSAgICAgICAgICAgIGNvbnN0IHN1YnRp
dGxlID0gbnVsbDsKLSAgICAgICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBX
SS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1l
LCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5n
c1RyZWVFbGVtZW50LmhpZGRlbiA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNv
cmRpbmdzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKCFvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZykKLSAg
ICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlY29yZGluZyk7Ci0gICAgfQot
Ci0gICAgX2hhbmRsZUNhbnZhc0FkZGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fYWRk
Q2FudmFzKGV2ZW50LmRhdGEuY2FudmFzKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlQ2FudmFzUmVt
b3ZlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhldmVudC5kYXRh
LmNhbnZhcyk7Ci0gICAgfQotCi0gICAgX2NhbnZhc1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hh
bmdlKGV2ZW50KQotICAgIHsKLSAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2Nh
bnZhc1RyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgIGlmICghc2VsZWN0
ZWRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCByZXByZXNlbnRl
ZE9iamVjdCA9IHNlbGVjdGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAgaWYg
KCF0aGlzLmNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkpIHsKLSAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5leHBlY3RlZCByZXByZXNlbnRlZE9i
amVjdC4iLCByZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVj
dCk7Ci0gICAgfQotCi0gICAgX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkKGV2ZW50KQot
ICAgIHsKLSAgICAgICAgbGV0IHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlciwgaW1wb3J0ZWR9
ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKCFyZWNvcmRpbmcpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgbGV0IG9wdGlvbnMgPSB7fTsKLQotICAgICAgICAvLyBBbHdheXMgc2hv
dyBpbXBvcnRlZCByZWNvcmRpbmdzLgotICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSB8fCAh
aW1wb3J0ZWQpCi0gICAgICAgICAgICBvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZyA9ICFp
bml0aWF0ZWRCeVVzZXIgfHwgdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50UmVwcmVzZW50ZWRP
YmplY3RzLnNvbWUoKHJlcHJlc2VudGVkT2JqZWN0KSA9PiByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLlJlY29yZGluZyk7Ci0KLSAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29y
ZGluZywgb3B0aW9ucyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZVNwYWNlKGV2ZW50KQotICAgIHsK
LSAgICAgICAgaWYgKFdJLmlzRXZlbnRUYXJnZXRBbkVkaXRhYmxlRmllbGQoZXZlbnQpKQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBh
bmVsKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBjYW52YXMgPSB0aGlzLm5h
dmlnYXRpb25TaWRlYmFyUGFuZWwuY2FudmFzOwotICAgICAgICBpZiAoIWNhbnZhcykKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKLSAg
ICAgICAgICAgIGNhbnZhcy5zdG9wUmVjb3JkaW5nKCk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgbGV0IHNpbmdsZUZyYW1lID0gISFldmVudC5zaGlmdEtleTsKLSAgICAgICAgICAgIGNh
bnZhcy5zdGFydFJlY29yZGluZyhzaW5nbGVGcmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0KLX07Ci0KLVdJLkNhbnZhc1RhYkNvbnRlbnRW
aWV3LlR5cGUgPSAiY2FudmFzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3Nz
CmluZGV4IGZlMzNlN2FjZDlmMTYxYjJjYzBjZTcxY2Q1MjRhNDkxYWRkMzNjMmIuLjgyY2JjZmE4
YmI1MDQzYjNjZmU1YTc2MzIzYmQxMDQ5Y2Q1YzU3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmNzcwpAQCAtMjUsMjIgKzI1LDM0IEBACiAKIC5jb250ZW50LXZpZXcuY29s
bGVjdGlvbiB7CiAgICAgZGlzcGxheTogZmxleDsKLSAgICBmbGV4LXdyYXA6IHdyYXA7Ci0gICAg
b3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50OworICAgIGZsZXgtd3JhcDogdmFyKC0tY29sbGVj
dGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwKTsKKyAgICBvdmVyZmxvdy14OiB2YXIoLS1jb2xs
ZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy14KSAhaW1wb3J0YW50OworICAgIG92ZXJmbG93
LXk6IHZhcigtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXkpICFpbXBvcnRhbnQ7
CisKKyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LWZsZXgtd3JhcC1kZWZhdWx0OiB3cmFw
OworICAgIC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteC1kZWZhdWx0OiBoaWRk
ZW47CisgICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy15LWRlZmF1bHQ6IGF1
dG87CisKKyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LWZsZXgtd3JhcDogdmFyKC0tY29s
bGVjdGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwLW92ZXJyaWRlLCB2YXIoLS1jb2xsZWN0aW9u
LWNvbnRlbnQtdmlldy1mbGV4LXdyYXAtZGVmYXVsdCkpOworICAgIC0tY29sbGVjdGlvbi1jb250
ZW50LXZpZXctb3ZlcmZsb3cteDogdmFyKC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZs
b3cteC1vdmVycmlkZSwgdmFyKC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteC1k
ZWZhdWx0KSk7CisgICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy15OiB2YXIo
LS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy15LW92ZXJyaWRlLCB2YXIoLS1jb2xs
ZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy15LWRlZmF1bHQpKTsKIH0KIAogLmNvbnRlbnQt
dmlldy5jb2xsZWN0aW9uID4gLmNvbnRlbnQtdmlldyB7CiAgICAgZmxleC1ncm93OiAxOwogfQog
Ci0uY29udGVudC12aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZyB7Ci0gICAgb3V0
bGluZTogMC41cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKLX0KLQotLmNvbnRlbnQtdmll
dy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIgewotICAgIG91dGxpbmUtY29s
b3I6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSkKLX0KLQogLmNvbnRlbnQtdmlldy5jb2xsZWN0
aW9uID4gLmNvbnRlbnQtdmlld1toaWRkZW5dIHsKICAgICBkaXNwbGF5OiBub25lOwogfQorCisu
Y29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAucGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQt
dmlldykgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsK
KyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOwor
ICAgIHdpZHRoOiAxMDAlOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6
IDEzcHg7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCmluZGV4IDA1NDc0MTY4MWM4MThiZTViY2Fh
NWQ2ZmYxOWQ1MzcyOWI3YjM4NjYuLmQ0ZTYxZTA4MjU1MGNhNWQzODYwMjJkZWYwZWZiMzk1NWU4
Y2I1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTI4LDcgKzI4
LDcgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICBjb25zdHJ1Y3Rvcihjb2xsZWN0aW9uLCBj
b250ZW50Vmlld0NvbnN0cnVjdG9yLCBjb250ZW50UGxhY2Vob2xkZXIpCiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydChjb2xsZWN0aW9uIGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbik7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3Q29uc3RydWN0b3IgaW5zdGFuY2VvZiBX
SS5Db250ZW50Vmlldyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjb250ZW50Vmlld0NvbnN0
cnVjdG9yIHx8IGNvbnRlbnRWaWV3Q29uc3RydWN0b3IucHJvdG90eXBlIGluc3RhbmNlb2YgV0ku
Q29udGVudFZpZXcpOwogCiAgICAgICAgIHN1cGVyKGNvbGxlY3Rpb24pOwogCkBAIC0zOCw3ICsz
OCw2IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhv
bGRlckVsZW1lbnQgPSBudWxsOwogICAgICAgICB0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9y
ID0gY29udGVudFZpZXdDb25zdHJ1Y3RvcjsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdNYXAg
PSBuZXcgTWFwOwotICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcCA9IG5ldyBXZWFrTWFwOwog
ICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSBudWxsOwogICAgICAgICB0aGlzLl9zZWxlY3Rp
b25FbmFibGVkID0gZmFsc2U7CiAgICAgfQpAQCAtODMsMTkgKzgyLDI1IEBAIFdJLkNvbGxlY3Rp
b25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNv
bnRlbnRWaWV3CiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOwogICAgIH0KIAot
ICAgIHNldFNlbGVjdGVkSXRlbShpdGVtKQorICAgIGdldCBzZWxlY3RlZEl0ZW0oKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsKKyAgICB9CisKKyAgICBzZXQgc2Vs
ZWN0ZWRJdGVtKGl0ZW0pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zZWxl
Y3Rpb25FbmFibGVkLCAiQXR0ZW1wdGVkIHRvIHNldCBzZWxlY3RlZCBpdGVtIHdoZW4gc2VsZWN0
aW9uIGlzIGRpc2FibGVkLiIpOwogICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGlvbkVuYWJsZWQp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gdGhpcy5f
Y29udGVudFZpZXdNYXAuZ2V0KGl0ZW0pOwotICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50
VmlldywgIk1pc3NpbmcgY29udGV0IHZpZXcgZm9yIGl0ZW0uIiwgaXRlbSk7Ci0gICAgICAgIGlm
ICghY29udGVudFZpZXcpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fc2Vs
ZWN0SXRlbShpdGVtKTsKLSAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5zY3JvbGxJbnRvVmll
d0lmTmVlZGVkKCk7CisKKyAgICAgICAgaWYgKGl0ZW0pIHsKKyAgICAgICAgICAgIGxldCBjb250
ZW50VmlldyA9IHRoaXMuX2NvbnRlbnRWaWV3TWFwLmdldChpdGVtKTsKKyAgICAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LCAiTWlzc2luZyBjb250ZXQgdmlldyBmb3IgaXRlbS4i
LCBpdGVtKTsKKyAgICAgICAgICAgIGlmIChjb250ZW50VmlldykKKyAgICAgICAgICAgICAgICBj
b250ZW50Vmlldy5lbGVtZW50LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAtMTIwLDIwICsxMjUsOSBAQCBXSS5Db2xsZWN0
aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50VmlldwogCiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IG5ldyB0aGlzLl9jb250ZW50
Vmlld0NvbnN0cnVjdG9yKGl0ZW0sIHRoaXMuY29udGVudFZpZXdDb25zdHJ1Y3Rvck9wdGlvbnMp
OwogICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNvbnRl
bnRWaWV3KTsKLQotICAgICAgICBsZXQgaGFuZGxlQ2xpY2sgPSAoZXZlbnQpID0+IHsKLSAgICAg
ICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVk
KQotICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOwotICAg
ICAgICB9OworICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlldy5yZXByZXNlbnRlZE9i
amVjdCA9PT0gaXRlbSk7CiAKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdNYXAuc2V0KGl0ZW0s
IGNvbnRlbnRWaWV3KTsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAuc2V0KGl0ZW0sIGhh
bmRsZUNsaWNrKTsKLSAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIGhhbmRsZUNsaWNrKTsKIAogICAgICAgICB0aGlzLmFkZFN1YnZpZXcoY29udGVu
dFZpZXcpOwogICAgICAgICB0aGlzLmNvbnRlbnRWaWV3QWRkZWQoY29udGVudFZpZXcpOwpAQCAt
MTY5LDE0ICsxNjMsNiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0
aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIGNvbnRlbnRW
aWV3LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKLSAgICAgICAgbGV0
IGhhbmRsZUNsaWNrID0gdGhpcy5faGFuZGxlQ2xpY2tNYXAuZ2V0KGl0ZW0pOwotICAgICAgICBj
b25zb2xlLmFzc2VydChoYW5kbGVDbGljayk7Ci0KLSAgICAgICAgaWYgKGhhbmRsZUNsaWNrKSB7
Ci0gICAgICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgaGFuZGxlQ2xpY2spOwotICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAuZGVs
ZXRlKGl0ZW0pOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKCF0aGlzLnN1YnZpZXdzLmxlbmd0
aCkKICAgICAgICAgICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigpOwogICAgIH0KQEAg
LTIwMCw2ICsxODYsOCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0
aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIHRo
aXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXI7
CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50LmNs
YXNzTGlzdC5hZGQoInBsYWNlaG9sZGVyIik7CisKICAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50
UGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudE5vZGUpCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCk7CiAgICAgfQpAQCAt
MjEyLDEwICsyMDAsMTEgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVj
dGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIGluaXRpYWxMYXlv
dXQoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwg
IXRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpIHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbnRl
bnRWaWV3Q29uc3RydWN0b3IpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKTsKKworICAgICAgICBp
ZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZSB8fCAhdGhpcy5fY29udGVudFZpZXdDb25z
dHJ1Y3RvcikKICAgICAgICAgICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAgICAgfQogCiAgICAgYXR0YWNoZWQoKQpAQCAt
MjkyLDYgKzI4MSwzMCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0
aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgc2VsZWN0
ZWRDb250ZW50Vmlldy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik7CiAgICAgICAg
IH0KIAorICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db2xsZWN0aW9u
Q29udGVudFZpZXcuRXZlbnQuU2VsZWN0ZWRJdGVtQ2hhbmdlZCk7CiAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJl
cHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk7CiAgICAgfQorCisgICAgX2hhbmRsZUNsaWNrKGV2
ZW50KQorICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJs
S2V5KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IFtpdGVtLCBjb250
ZW50Vmlld10gb2YgdGhpcy5fY29udGVudFZpZXdNYXApIHsKKyAgICAgICAgICAgIGlmIChjb250
ZW50Vmlldy5lbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5f
c2VsZWN0SXRlbShpdGVtKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVtKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fc2VsZWN0
aW9uRW5hYmxlZCkKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7CisgICAgfQor
fTsKKworV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50ID0geworICAgIFNlbGVjdGVkSXRl
bUNoYW5nZWQ6ICJjb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1zZWxlY3RlZC1pdGVtLWNoYW5nZWQi
LAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29udGVudFZpZXcuanMKaW5kZXggZGY5MTJkZDU2ZmEwN2RmOTQ4ZjBkN2Y3YWYwZDdj
NmQxYjc5YTJmNi4uMjk2YzJhNTQyM2EwZjY5MWVhYzdkMmQwZTkzNjAwZjUxNTRmMGRlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVu
dFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGVudFZpZXcuanMKQEAgLTYwLDkgKzYwLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBD
b250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQ2FudmFzKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXND
b250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCi0gICAgICAg
IGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0g
ICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcocmVwcmVz
ZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKLQogICAgICAgICBpZiAocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0dXJuIG5l
dyBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJn
dW1lbnRzKTsKIApAQCAtMTgyLDYgKzE3OSw5IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkF1
ZGl0VGVzdEdyb3VwQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRz
KTsKIAorICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRp
b24pCisgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KHJlcHJl
c2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CisKICAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiBuZXcg
V0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50
cyk7CiAKQEAgLTI3Myw4ICsyNzMsNiBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5D
YW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuVGltZWxpbmVSZWNvcmRpbmcpCkBAIC0zMTgsMTAgKzMxNiwxNCBAQCBXSS5Db250ZW50Vmll
dyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXAKICAgICAgICAgICAgIHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGlmICh0eXBlb2YgcmVwcmVzZW50ZWRPYmplY3QgPT09ICJzdHJpbmci
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgU3RyaW5nKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdFtXSS5Db250ZW50Vmlldy5p
c1ZpZXdhYmxlU3ltYm9sXSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCkBAIC01MTIsNCArNTE0LDUgQEAgV0kuQ29udGVudFZpZXcuRXZl
bnQgPSB7CiAgICAgTmF2aWdhdGlvbkl0ZW1zRGlkQ2hhbmdlOiAiY29udGVudC12aWV3LW5hdmln
YXRpb24taXRlbXMtZGlkLWNoYW5nZSIKIH07CiAKK1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVT
eW1ib2wgPSBTeW1ib2woImlzLXZpZXdhYmxlIik7CiBXSS5Db250ZW50Vmlldy5Db250ZW50Vmll
d0ZvclJlcHJlc2VudGVkT2JqZWN0U3ltYm9sID0gU3ltYm9sKCJjb250ZW50LXZpZXctZm9yLXJl
cHJlc2VudGVkLW9iamVjdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5q
cwppbmRleCBlNWE1ZmVjMWVhYmI1YzA5NzJjZmEwNTNkNTM0YzM2MDA5ZTFiNzZmLi43ZWQwYzgy
ZWIzYjcxZWViNmJiYjFmOTdlOTc5MGY2YmJiYzU1NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdy5qcwpAQCAtOTYsNyArOTYsNyBAQCBXSS5EZXRhaWxzU2VjdGlvblNp
bXBsZVJvdyA9IGNsYXNzIERldGFpbHNTZWN0aW9uU2ltcGxlUm93IGV4dGVuZHMgV0kuRGV0YWls
c1NlYwogICAgIHsKICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSB8fCAiIjsKIAotICAgICAg
ICBpZiAodGhpcy5fdmFsdWUpIHsKKyAgICAgICAgaWYgKHRoaXMuX3ZhbHVlIHx8IHRoaXMuX3Zh
bHVlID09PSAwKSB7CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShX
SS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5FbXB0eVN0eWxlQ2xhc3NOYW1lKTsKIAogICAgICAg
ICAgICAgLy8gSWYgdGhlIHZhbHVlIGhhcyBzcGFjZSBjaGFyYWN0ZXJzIHRoYXQgY2F1c2Ugd29y
ZCB3cmFwcGluZyB0aGVuIHdlIGRvbid0IG5lZWQgdGhlIGRhdGEgY2xhc3MuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmM4OGVl
YmQyYjczYTNmZGU2ZTk4NTYxOTNiMTBmNDIyNWYxM2U1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgeworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tn
cm91bmQtY29sb3ItY29udGVudCk7CisgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgIHBhZGRp
bmctYm90dG9tOiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIGJhY2tncm91bmQt
Y29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVy
dmlldyA+IHNlY3Rpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBpbmhlcml0OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4g
c2VjdGlvbjpub3QoOmZpcnN0LWNoaWxkKSB7CisgICAgbWFyZ2luLXRvcDogMjBweDsKK30KKwor
LmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsKKyAg
ICBkaXNwbGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgcG9zaXRpb246
IHN0aWNreTsKKyAgICB0b3A6IDA7CisgICAgei1pbmRleDogMTsKKyAgICBtaW4taGVpZ2h0OiB2
YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDog
OHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTsKKyAgICBib3JkZXIt
Ym90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmll
dy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKSA+IC5oZWFk
ZXIgeworICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQor
CisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiBo
MSB7CisgICAgbWFyZ2luOiAwOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIGZsZXgtZ3Jvdzog
MTsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOworICAgIGJvcmRlci1ib3R0b206IG5v
bmU7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uLmNhbnZh
cyA+IC5jb250ZW50ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgeworICAgIC0tY29s
bGVjdGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwLW92ZXJyaWRlOiBub3dyYXA7CisgICAgLS1j
b2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy14LW92ZXJyaWRlOiBhdXRvOworICAgIC0t
Y29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteS1vdmVycmlkZTogaGlkZGVuOworICAg
IC0tY2FudmFzLW92ZXJ2aWV3LWNvbnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQtb3ZlcnJpZGU6
IGZsZXgtc3RhcnQ7Cit9CisKKy8qIEVuc3VyZSB0aGF0IHN0YXJ0L2VuZCBtYXJnaW5zIG9mIHN1
YnZpZXdzIGFyZSBzaG93bi4gKi8KKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBz
ZWN0aW9uID4gLmNvbnRlbnQgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldzptYXRjaGVz
KDo6YmVmb3JlLCA6OmFmdGVyKSB7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgZmxleC1zaHJp
bms6IDA7CisgICAgd2lkdGg6IDRweDsKKyAgICBjb250ZW50OiAiIjsKK30KKworLmNvbnRlbnQt
dmlldy5ncmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIHJpZ2h0OiAwOworICAg
IGJvdHRvbTogMDsKKyAgICBsZWZ0OiAwOworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2No
ZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyB7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTQlKTsKKyAgICB9CisKKyAgICAuY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgeworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDIxJSk7CisgICAgfQorfQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZhODZm
NDA5OWI5ZmI2YWY4YTQzODY1YTNhZTRlMThhMmQwMjFkMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDIwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkdyYXBoaWNz
T3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIEdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAg
ICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZ3JhcGhp
Y3Mtb3ZlcnZpZXciKTsKKworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LXJlY29yZGluZyIsIFdJLlVJ
U3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1KTsKKyAgICAgICAg
dGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbHRpcCA9IFdJLlVJU3RyaW5nKCJJ
bXBvcnQiKTsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9u
U3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7CisgICAg
ICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0
dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9yZWZyZXNo
QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJl
c2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMs
IDEzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFu
ZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX3Nob3dHcmlk
QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRl
bSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0ku
VUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRl
bUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVl
OworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxl
U2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3ID0gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcoV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKworICAgICAgICB0aGlzLl9vdmVydmlld1Zp
ZXdzID0gW107CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgc3VwcGxlbWVudGFs
UmVwcmVzZW50ZWRPYmplY3RzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9vdmVydmll
d1ZpZXdzLmZsYXRNYXAoKHN1YnZpZXcpID0+IHN1YnZpZXcuc3VwcGxlbWVudGFsUmVwcmVzZW50
ZWRPYmplY3RzKTsKKyAgICB9CisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAgICB7Cisg
ICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgaWYgKCFXSS5hbmltYXRp
b25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2hB
bGwodGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMpOworICAg
ICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2gobmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRl
bSk7CisgICAgICAgIH0KKyAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5faW1wb3J0
QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0sIHRoaXMu
X3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0
aW9uSXRlbSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7CisgICAgfQorCisgICAg
Ly8gUHJvdGVjdGVkCisKKyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBlci5hdHRh
Y2hlZCgpOworCisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0
ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRT
ZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRT
ZXR0aW5nQ2hhbmdlZCgpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAg
IFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKworICAgICAgICBXSS5zZXR0
aW5ncy5zaG93SW1hZ2VHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5D
aGFuZ2VkLCB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRoaXMpOwor
CisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgaW5pdGlhbExheW91dCgp
CisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgaWYgKFdJ
LmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBsZXQgY3JlYXRlU2Vj
dGlvbiA9IChpZGVudGlmaWVyLCB0aXRsZSwgb3ZlcnZpZXdWaWV3KSA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQob3ZlcnZpZXdWaWV3IGluc3RhbmNlb2YgV0kuQ29udGVudFZp
ZXcpOworCisgICAgICAgICAgICAgICAgbGV0IHNlY3Rpb25FbGVtZW50ID0gdGhpcy5lbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKSk7CisgICAgICAg
ICAgICAgICAgc2VjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gaWRlbnRpZmllcjsKKworICAgICAg
ICAgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGhlYWRlckVs
ZW1lbnQuY2xhc3NOYW1lID0gImhlYWRlciI7CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGVF
bGVtZW50ID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJoMSIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aXRs
ZTsKKworICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBvdmVydmlld1ZpZXcu
bmF2aWdhdGlvbkl0ZW1zOworICAgICAgICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSXRlbXMubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uQmFyID0gbmV3IFdJLk5h
dmlnYXRpb25CYXIoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibmF2IiksIG5hdmlnYXRpb25JdGVt
cyk7CisgICAgICAgICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQobmF2aWdh
dGlvbkJhci5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5h
dmlnYXRpb25CYXIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxldCBj
b250ZW50RWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5jbGFzc05h
bWUgPSAiY29udGVudCI7CisKKyAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5hcHBlbmRD
aGlsZChvdmVydmlld1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJ2
aWV3KG92ZXJ2aWV3Vmlldyk7CisKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuYWRkRXZl
bnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0ZWRJdGVtQ2hh
bmdlZCwgdGhpcy5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZCwgdGhpcyk7
CisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29udGVu
dFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlLCB0aGlz
Ll9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFu
Z2UsIHRoaXMpOworICAgICAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmlld3MucHVzaChvdmVy
dmlld1ZpZXcpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigi
Y2FudmFzIiwgV0kuVUlTdHJpbmcoIkNhbnZhc2VzIiksIHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcpOworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigid2ViLWFuaW1hdGlvbiIsIFdJ
LlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpLCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3KFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUo
V0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uKSkpOworICAgICAgICAgICAgY3JlYXRlU2Vj
dGlvbigiY3NzLWFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9ucyIpLCBuZXcg
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5p
bWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uKSkp
OworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigiY3NzLXRyYW5zaXRpb24iLCBXSS5VSVN0cmlu
ZygiQ1NTIFRyYW5zaXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZp
ZXcoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5Bbmlt
YXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uKSkpOworCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fY2FudmFz
T3ZlcnZpZXdDb250ZW50Vmlldyk7CisKKyAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9IG5ldyBX
SS5Ecm9wWm9uZVZpZXcodGhpcyk7CisgICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0kuVUlT
dHJpbmcoIkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRhcmdldEVs
ZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyhkcm9wWm9uZVZp
ZXcpOworICAgIH0KKworICAgIC8vIERyb3Bab25lVmlldyBkZWxlZ2F0ZQorCisgICAgZHJvcFpv
bmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMiKTsKKyAg
ICB9CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAg
ICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzOworICAgICAgICBpZiAo
ZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
YmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV0kuRmls
ZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5w
cm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFu
ZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZp
ZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpCisgICAgICAgICAgICBvdmVydmlld1ZpZXcu
aGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlU2hvd0dy
aWRCdXR0b25DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0lt
YWdlR3JpZC52YWx1ZSA9ICF0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2
YXRlZDsKKyAgICB9CisKKyAgICBfaGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKCkK
KyAgICB7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZh
dGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOworICAgIH0KKworICAgIF9o
YW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisgICAgeworICAg
ICAgICBXSS5GaWxlVXRpbGl0aWVzLmltcG9ydEpTT04oKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFu
YWdlci5wcm9jZXNzSlNPTihyZXN1bHQpLCB7bXVsdGlwbGU6IHRydWV9KTsKKyAgICB9CisKKyAg
ICBfaGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnNlbGVjdGVkSXRlbSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdWaWV3
cykgeworICAgICAgICAgICAgaWYgKG92ZXJ2aWV3VmlldyAhPT0gZXZlbnQudGFyZ2V0ICYmIG92
ZXJ2aWV3Vmlldy5zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmll
dy5zZWxlY3RlZEl0ZW0gPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgX2hhbmRsZU92
ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZShldm5ldCkK
KyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNvbnRlbnRW
aWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk7CisgICAg
fQorCisgICAgX2hhbmRsZUNsaWNrKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LnRh
cmdldCAhPT0gdGhpcy5lbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZv
ciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAg
ICBpZiAob3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3Zl
cnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjVhZmQ4MTYw
ZjE2MGY2MDM0MmJhYmRmYTNlMGRmYjAzNTllNzRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmll
dy5jc3MKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcudGFiLmdy
YXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24gewor
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKK30KKworLmNv
bnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5j
YW52YXMtMmQgLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3Zn
KTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0gLmNhbnZhczptYXRjaGVzKC53ZWJnbCwgLndlYmdsMiwgLndlYmdwdSwgLndlYm1ldGFsKSAu
aWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMzRC5zdmcpOworfQorCisu
Y29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3Jk
aW5nID4gLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7
Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5zaGFkZXItcHJvZ3JhbSA+IC5pY29uIHsKKyAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4u
L0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5w
bmcpIDJ4KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAg
IC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5ncmFw
aGljcy1vdmVydmlldyAuaWNvbiB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KDYwJSk7CisgICAg
fQorCisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0gLmNhbnZhcyAuaWNvbiwKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24geworICAgICAgICBmaWx0ZXI6IGlu
dmVydCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA4ZGNmMmIxMDlhODI3NWQzNzEwNzI1ZWFmYzg5MGFjZGE2MGMzMTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9H
cmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
V0kuR3JhcGhpY3NUYWJDb250ZW50VmlldyA9IGNsYXNzIEdyYXBoaWNzVGFiQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0
b3IoKQorICAgIHsKKyAgICAgICAgbGV0IHRhYkJhckl0ZW0gPSBXSS5HZW5lcmFsVGFiQmFySXRl
bS5mcm9tVGFiSW5mbyhXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnRhYkluZm8oKSk7CisKKyAg
ICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yID0gV0kuQ2FudmFz
U2lkZWJhclBhbmVsOworICAgICAgICBjb25zdCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0
b3JzID0gWworICAgICAgICAgICAgV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVs
LAorICAgICAgICAgICAgV0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLAorICAg
ICAgICAgICAgV0kuQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLkFu
aW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgIF07CisgICAgICAgIGNvbnN0IGRp
c2FibGVCYWNrRm9yd2FyZCA9IHRydWU7CisgICAgICAgIHN1cGVyKCJncmFwaGljcyIsIFsiZ3Jh
cGhpY3MiXSwgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yLCBk
ZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCBkaXNhYmxlQmFja0ZvcndhcmQpOworCisg
ICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmU7Cisg
ICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuYWxsb3dzUmVwZWF0U2VsZWN0aW9uID0g
dHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVy
KFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5faGFuZGxlT3Zl
cnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CisKKyAgICAgICAgdGhp
cy5fY2FudmFzZXNUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoImNhbnZh
cy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIpLCBudWxsLCB7W1dJLkNvbnRlbnRW
aWV3LmlzVmlld2FibGVTeW1ib2xdOiB0cnVlfSk7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJl
ZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudCk7CisKKyAgICAg
ICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVy
VHJlZUVsZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSk7CisgICAgICAgIHRo
aXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7CisgICAg
ICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRDYW52
YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXku
U3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yZWNv
cmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CisgICAgICAgIHRo
aXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLl9yZWNv
cmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9h
cmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2Us
IHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5n
bGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAgICAg
ICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisKKyAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFu
YWdlci5lbmFibGUoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdGFiSW5mbygpCisgICAgeworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgaW1hZ2U6ICJJbWFnZXMvR3JhcGhpY3Muc3ZnIiwK
KyAgICAgICAgICAgIHRpdGxlOiBXSS5VSVN0cmluZygiR3JhcGhpY3MiKSwKKyAgICAgICAgfTsK
KyAgICB9CisKKyAgICBzdGF0aWMgaXNUYWJBbGxvd2VkKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQ2FudmFzIikKKyAgICAgICAgICAgIHx8IElu
c3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJBbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBQ
dWJsaWMKKworICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5m
aW5kVHJlZUVsZW1lbnQocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0KKworICAgIGdldCB0eXBl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGU7
CisgICAgfQorCisgICAgZ2V0IHN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3NlcigpCisgICAgewor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBnZXQgbWFuYWdlc05hdmlnYXRpb25T
aWRlYmFyUGFuZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
c2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpCisgICAgewor
ICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKSB7
CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9v
dmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIHN1cGVyLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgY29v
a2llKTsKKyAgICB9CisKKyAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhcworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZworICAgICAgICAgICAgfHwgcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtQ29sbGVjdGlvbgorICAgICAgICAg
ICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtCisgICAg
ICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5p
bWF0aW9uOworICAgIH0KKworICAgIGNsb3NlZCgpCisgICAgeworICAgICAgICBXSS5hbmltYXRp
b25NYW5hZ2VyLmRpc2FibGUoKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5kaXNhYmxlKCk7
CisKKyAgICAgICAgc3VwZXIuY2xvc2VkKCk7CisgICAgfQorCisgICAgcmVzdG9yZVN0YXRlRnJv
bUNvb2tpZShjb29raWUpCisgICAgeworICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2Ug
PGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAg
c2F2ZVN0YXRlVG9Db29raWUoY29va2llKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IGltcGxl
bWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgorICAg
IH0KKworICAgIGFzeW5jIGhhbmRsZUZpbGVEcm9wKGZpbGVzKQorICAgIHsKKyAgICAgICAgYXdh
aXQgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFz
TWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQK
KworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0
aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2Fu
dmFzUmVtb3ZlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVS
ZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLkNhbnZhcy5hZGRFdmVu
dExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVS
ZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisKKyAgICAgICAgZm9yIChsZXQgY2hpbGQg
b2YgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5jaGlsZHJlbikgeworICAgICAgICAgICAgbGV0
IGNhbnZhcyA9IGNoaWxkLnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICAgICAgaWYgKGNhbnZh
cyBpbnN0YW5jZW9mIFdJLkNhbnZhcyAmJiAhV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uLmhhcyhjYW52YXMpKQorICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52
YXMpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbikgeworICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNl
c1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMpKQorICAgICAgICAgICAgICAgIHRo
aXMuX2FkZENhbnZhcyhjYW52YXMpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcmVj
b3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKSB7CisgICAgICAgICAg
ICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlY29yZGlu
ZykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHBy
ZXNzU2hvd1JlY29yZGluZzogdHJ1ZX0pOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fcmVj
b3JkU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xl
RnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOworICAgIH0KKworICAgIGRldGFjaGVkKCkK
KyAgICB7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKyAg
ICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisK
KyAgICAgICAgV0kuQ2FudmFzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJl
Y29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlz
KTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVk
T3JTdG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRo
aXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5j
YW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7CisKKyAgICAgICAg
c3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcgPSBuZXcgV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3OworICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmll
dyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisK
KyAgICBfYWRkQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJl
ZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZhcykpOwor
CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNv
cmRpbmc6IHRydWUsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9m
IGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKQorICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3Jk
aW5nKHJlY29yZGluZywgb3B0aW9ucyk7CisgICAgfQorCisgICAgX3JlbW92ZUNhbnZhcyhjYW52
YXMpCisgICAgeworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0
cmVlRWxlbWVudCwgIk1pc3NpbmcgdHJlZSBlbGVtZW50IGZvciBjYW52YXMuIiwgY2FudmFzKTsK
KworICAgICAgICBjb25zdCBzdXBwcmVzc05vdGlmaWNhdGlvbiA9IHRydWU7CisgICAgICAgIHRy
ZWVFbGVtZW50LmRlc2VsZWN0KHN1cHByZXNzTm90aWZpY2F0aW9uKTsKKyAgICAgICAgdGhpcy5f
Y2FudmFzZXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7CisKKyAgICAgICAg
bGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRl
bnRWaWV3OworICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAgICAgICAgZWxzZSBpZiAoY3VycmVu
dENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcgJiYgY2FudmFz
LnJlY29yZGluZ0NvbGxlY3Rpb24uaGFzKGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9i
amVjdCkpCisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnVwZGF0ZUhpZXJhcmNoaWNh
bFBhdGhGb3JDdXJyZW50Q29udGVudFZpZXcoKTsKKworICAgICAgICBsZXQgbmF2aWdhdGlvblNp
ZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbDsKKyAgICAgICAgaWYgKG5h
dmlnYXRpb25TaWRlYmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5DYW52YXNTaWRlYmFyUGFuZWwgJiYg
bmF2aWdhdGlvblNpZGViYXJQYW5lbC52aXNpYmxlKQorICAgICAgICAgICAgbmF2aWdhdGlvblNp
ZGViYXJQYW5lbC51cGRhdGVSZXByZXNlbnRlZE9iamVjdHMoKTsKKworICAgICAgICB0aGlzLnNo
b3dEZXRhaWxzU2lkZWJhclBhbmVscygpOworICAgIH0KKworICAgIF9hZGRSZWNvcmRpbmcocmVj
b3JkaW5nLCBvcHRpb25zID0ge30pCisgICAgeworICAgICAgICBpZiAoIXJlY29yZGluZy5zb3Vy
Y2UpIHsKKyAgICAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgIGxl
dCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNv
cmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKKyAg
ICAgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9
IGZhbHNlOworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1l
bnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKCFvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZykKKyAgICAgICAgICAgIHRoaXMu
c2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlY29yZGluZyk7CisgICAgfQorCisgICAgX2hhbmRsZUNh
bnZhc0FkZGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGV2ZW50LmRh
dGEuaXRlbSk7CisgICAgfQorCisgICAgX2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZlbnQpCisgICAg
eworICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisK
KyAgICBfaGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkK
KyAgICB7CisgICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CisgICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHN3aXRjaCAoc2VsZWN0ZWRFbGVtZW50
KSB7CisgICAgICAgIGNhc2UgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudDoKKyAgICAgICAgY2Fz
ZSB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudDoKKyAgICAgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZp
ZXcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHJlcHJl
c2VudGVkT2JqZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OworICAgICAg
ICBpZiAoIXRoaXMuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KSkg
eworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJlcHJlc2Vu
dGVkT2JqZWN0LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVk
T2JqZWN0KTsKKyAgICB9CisKKyAgICBfaGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQoZXZl
bnQpCisgICAgeworICAgICAgICBsZXQge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyLCBpbXBv
cnRlZH0gPSBldmVudC5kYXRhOworICAgICAgICBpZiAoIXJlY29yZGluZykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OworCisgICAgICAgIC8vIEFsd2F5
cyBzaG93IGltcG9ydGVkIHJlY29yZGluZ3MuCisgICAgICAgIGlmIChyZWNvcmRpbmcuc291cmNl
IHx8ICFpbXBvcnRlZCkKKyAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5n
ID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXByZXNl
bnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsKKworICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmco
cmVjb3JkaW5nLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICBfaGFuZGxlU3BhY2UoZXZlbnQpCisg
ICAgeworICAgICAgICBpZiAoV0kuaXNFdmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChldmVudCkp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TaWRl
YmFyUGFuZWwpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGNhbnZhcyA9IHRo
aXMubmF2aWdhdGlvblNpZGViYXJQYW5lbC5jYW52YXM7CisgICAgICAgIGlmICghY2FudmFzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5nQWN0aXZl
KQorICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2ZW50LnNoaWZ0S2V5OworICAgICAgICAg
ICAgY2FudmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgfQorfTsKKworV0kuR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5UeXBlID0gImdyYXBoaWNzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKaW5kZXggOWYxMDVmMWU5NmU4MzFjZTU0
NTEwNDkzODRlN2FkOGQ2MTgzNDVhNC4uOGZlMTMxYzJmMGUzNjE3NmVmYTBmY2FiZDAyYzI3NTg2
NGM2ZmFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTWFpbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTWFpbi5jc3MKQEAgLTIwOSwxMiArMjA5LDEyIEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMo
LnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7
CiAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZp
Z2F0aW9uLWl0ZW0taGVscCB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAgewogICAgIGRpc3BsYXk6
IGJsb2NrOwogICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcg
Lm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciB7CisubmF2aWdhdGlvbi1pdGVt
LWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAg
IGhlaWdodDogMjBweDsKICAgICBwYWRkaW5nOiAwIDRweDsKQEAgLTIyMiw5ICsyMjIsOSBAQCBi
b2R5LmRvY2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZpZ2F0aW9uLXNpZGViYXIuY29s
bGFwc2VkID4gLnJlc2l6ZXIgewogICAgIHZlcnRpY2FsLWFsaWduOiAtM3B4OwogfQogCi0ubWVz
c2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciA+IC5p
dGVtIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsK
ICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgcGFkZGluZzogMCA0cHg7CisgICAgcGFkZGluZzogMCA0
cHggIWltcG9ydGFudDsKICAgICBmb250LXNpemU6IDExcHg7CiAgICAgYm9yZGVyLXJhZGl1czog
NHB4OwogICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJvcmRlci1jb2xvcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdD
b250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKaW5kZXggOGQ2MGYyM2YwYjJiZWM3MGQ4YmU4M2Qw
MjE3YTcwYWM3NGZkMjM1OC4uMTFmMWRkODJlNTUzNzcwMTkwYjJmZjdlYjhiNjA4ZWVjN2UyOWMy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwpAQCAtMjMsMTggKzIzLDE4
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNvbnRlbnQt
dmlldzpub3QoLnRhYikucmVjb3JkaW5nIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nIHsKICAg
ICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgcGFkZGlu
ZzogMTBweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7CiB9CiAKLS5j
b250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciB7CisuY29udGVudC12aWV3
LnJlY29yZGluZyA+IGhlYWRlciB7CiAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKIH0KIAotLmNv
bnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWlu
ZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5l
ciB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgcGFkZGlu
ZzogNHB4IDA7CkBAIC00MywzMSArNDMsMzEgQEAKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiB9
CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXIt
Y29udGFpbmVyID4gKiB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlk
ZXItY29udGFpbmVyID4gKiB7CiAgICAgbWFyZ2luOiA0cHggOHB4OwogfQogCi0uY29udGVudC12
aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IC5z
bGlkZXItdmFsdWUgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVy
LWNvbnRhaW5lciA+IC5zbGlkZXItdmFsdWUgewogICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9u
b3NwYWNlOwogICAgIGZvbnQtZmFtaWx5OiAxMXB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgu
dGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9
cmFuZ2VdIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250
YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CiAgICAgZmxleDogMTsKICAgICB3aWR0aDogMTAw
JTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNs
aWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFi
bGUtdHJhY2sgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNv
bnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFj
ayB7CiAgICAgaGVpZ2h0OiAycHg7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVy
LWNvbG9yKTsKICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90
KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlw
ZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5n
ID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgewogICAgIG1hcmdpbi10b3A6IC02cHg7CiB9CiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyA+IC5wcmV2aWV3LWNvbnRhaW5lciB7CisuY29udGVudC12
aWV3LnJlY29yZGluZyA+IC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgZGlzcGxheTogZmxleDsK
ICAgICBmbGV4OiAxOwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwpAQCAtNzcsMjcgKzc3
LDI3IEBACiAgICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlOwogfQogCi0uY29udGVu
dC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsKKy5jb250
ZW50LXZpZXcucmVjb3JkaW5nIDptYXRjaGVzKGltZywgY2FudmFzKSB7CiAgICAgcG9zaXRpb246
IGFic29sdXRlOwogICAgIG1heC13aWR0aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAxMDAlOwog
fQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgY2FudmFzLnBhdGggeworLmNv
bnRlbnQtdmlldy5yZWNvcmRpbmcgY2FudmFzLnBhdGggewogICAgIHotaW5kZXg6IDEwOwogfQog
CiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmll
dzpub3QoLnRhYikucmVjb3JkaW5nIHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyB7CiAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0KIAotICAgIC5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKKyAg
ICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsK
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgICAgIGJvcmRlci1jb2xvcjog
dmFyKC0tYm9yZGVyLWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmll
dzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1
dFt0eXBlPXJhbmdlXSB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAu
c2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKICAgICAgICAgYmFja2dyb3Vu
ZDogbm9uZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25D
b250ZW50Vmlldy5jc3MKaW5kZXggM2E5YTlhZWZmMjljNWVmY2Q3NzliYjRkMjkwNDBhYWQ4OWRi
ZjFkNC4uMmY5NGJjNzQwOWY0ZDU1NDY2NWNkZTg5YzlmMGY5OWNhZGVmOTcwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xs
ZWN0aW9uQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMjMsNiAr
MjMsMTQgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisuY29u
dGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nIHsKKyAg
ICBvdXRsaW5lOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVu
dC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsK
KyAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCit9CisKIC5yZXNv
dXJjZS1jb2xsZWN0aW9uLWltYWdlLXR5cGUtc2NvcGUtYmFyLmRlZmF1bHQtaXRlbS1zZWxlY3Rl
ZCB7CiAgICAgLS1zY29wZS1iYXItdGV4dC1jb2xvci1vdmVycmlkZTogdmFyKC0tdGV4dC1jb2xv
cik7CiAgICAgLS1zY29wZS1iYXItYmFja2dyb3VuZC1jb2xvci1vdmVycmlkZTogdHJhbnNwYXJl
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCmlu
ZGV4IGM5NGVjYTc3NzIxNGUzMWRjNWQ4MWU2MTA5MDYwNjNmNzdjNzRmY2MuLmZjMWM2YTJjZDRh
YTdkYTE5NTBjMGEzZDNmZjA2MzQzMmY5N2Q2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291
cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0zNSw2ICszNSw4IEBAIFdJLlJlc291cmNl
Q29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZp
ZXcgZXh0ZW5kcyBXCiAKICAgICAgICAgc3VwZXIoY29sbGVjdGlvbiwgY29udGVudFZpZXdDb25z
dHJ1Y3Rvcik7CiAKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInJlc291cmNl
LWNvbGxlY3Rpb24iKTsKKwogICAgICAgICBpZiAoY29sbGVjdGlvbi5yZXNvdXJjZVR5cGUgPT09
IFdJLlJlc291cmNlLlR5cGUuSW1hZ2UpIHsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0
dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgi
c2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlT
dHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNo
ZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5h
dmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZl
bnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386124</attachid>
            <date>2019-12-19 11:20:57 -0800</date>
            <delta_ts>2019-12-19 14:55:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20191219112056.patch</filename>
            <type>text/plain</type>
            <size>252458</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJhMGU3MjIzOGI4MzdlYzg5Y2M5ZTgzMjdkNDhi
MDIzOWMzYzY3NDQuLjQ1MTU2MTYxNjFmNzBkYjU1NmNmYzM3NjA2NjhmNWQwYjkwYzc0YWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTE4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAxOS0xMi0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVudHM6IHJlc3RyaWN0
IHNob3dpbmcgcGFpbnQgZmxhc2hpbmcgYW5kIGNvbXBvc2l0aW5nIGJvcmRlcnMgdG8gdGhlIFdl
YiBJbnNwZWN0b3Igc2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmNWJlN2NhNzg1YTgxZWYzY2FlMjhm
ZGIyMDE0MzAwNWVlZWU3MjcuLmFjMWNjNGMwNDNlMDI3YmVjMDY3ZWMzMDAwYTdkZmY1N2U1MzRl
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAxOS0xMi0xOCAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3Ry
dW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50
aW5nIHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAg
ICAgICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBh
bmQgdGhlIHRhcmdldCBET00gbm9kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4K
KworICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5z
dGFuY2VzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246Omluc3RhbmNl
c011dGV4KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5nZSk6CisgICAgICAgICogYW5pbWF0aW9u
L0NTU0FuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb246OmNyZWF0
ZSk6CisgICAgICAgICogYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVHJhbnNpdGlvbjo6Y3JlYXRlKToKKworICAgICAgICAqIGFuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnBhcnNlZEtl
eWZyYW1lcyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6
OmJsZW5kaW5nS2V5ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlm
cmFtZUVmZmVjdDo6aGFzQmxlbmRpbmdLZXlmcmFtZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlm
cmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKToKKyAgICAgICAgUHJvdmlk
ZSBhIHdheSB0byBhY2Nlc3MgdGhlIGxpc3Qgb2Yga2V5ZnJhbWVzLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVh
dGVXZWJBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRp
b25FZmZlY3RJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95
V2ViQW5pbWF0aW9uSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwpOiBEZWxldGVkLgorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3RydW1lbnRpbmdBZ2VudHM6OmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCBjb25z
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6c2V0RW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KTogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L0luc3RydW1lbnRpbmdBZ2VudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGlu
Z0FnZW50czo6cmVzZXQpOgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JB
bmltYXRpb25BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3ROb2RlKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzb2x2
ZUFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRp
bWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0ZVdlYkFuaW1hdGlvbik6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0
cm95V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFn
ZW50OjpmcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9y
U2Vjb25kcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OmJ1aWxkT2JqZWN0Rm9yRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YXNzZXJ0QW5pbWF0aW9uKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YmluZEFuaW1hdGlv
bik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnVu
YmluZEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNldCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zy
b250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXROb2Rl
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1M
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQpOgorICAg
ICAgICBBZGQgYW4gb3ZlcmxvYWQgZm9yIGBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kYCB0aGF0IGV4
cG9zZXMgYW4gYEVycm9yU3RyaW5nYC4KKwogMjAxOS0xMi0xOCAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmRleGVkREI6IHBlcmZvcm0gSURCU2VydmVyIHdv
cmsgb25seSBvbiBiYWNrZ3JvdW5kIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXgg
MDFkMjE2YmJmNTRlYzIxYjFjYWZiZDRjMWJjNjZlZDFmNWQxOTEyZC4uYzk4MTRmMDk1YjBhMWE3
NmI5ZDA3ZDIzNzVmOTMxZmNiMDdlOTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIwIEBACisyMDE5LTEyLTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93
aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4
MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuZ2V0IGRvbWFpbnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5w
cm90b3R5cGUuYWN0aXZhdGVFeHRyYURvbWFpbik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5h
Z2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1h
bmFnZXIucHJvdG90eXBlLmdldCBzdXBwb3J0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFu
YWdlci5wcm90b3R5cGUuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZW5hYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bk1hbmFnZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5h
Z2VyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1h
bmFnZXIucHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanM6CisgICAgICAgIChX
SS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgor
ICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS50YXJnZXRDaGFu
Z2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5p
bWF0aW9uRGVzdHJveWVkKTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9BbmltYXRpb25Db2xsZWN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNv
bGxlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0
IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5
cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJv
dG90eXBlLm9iamVjdElzUmVxdWlyZWRUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb24ucHJvdG90eXBlLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0ZW1BZGRlZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtc0NsZWFyZWQpOgorICAgICAgICBTaW1p
bGFyIHRvIGBXSS5SZXNvdXJjZUNvbGxlY3Rpb25gLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiBgV0ku
Q29sbGVjdGlvbmAgdGhhdCBtYWludGFpbnMgaXQncworICAgICAgICBvd24gc3ViLWBXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uYHMgZm9yIGVhY2ggdHlwZSBvZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZnJvbVBheWxvYWQp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JGaWxsTW9kZSk6CisgICAgICAgIChX
SS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uSWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uLnByb3RvdHlwZS5nZXQgYmFja3RyYWNlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90
b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlw
ZS5nZXQgc3RhcnREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBl
bmREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25z
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJhdGlvblN0YXJ0KToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IHRpbWluZ0Z1bmN0aW9uKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IHBsYXliYWNrRGlyZWN0aW9uKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGZpbGxNb2RlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGtleWZyYW1lcyk6CisgICAgICAgIChXSS5BbmltYXRp
b24ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJv
dG90eXBlLnJlcXVlc3ROb2RlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZWZm
ZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnRhcmdldENoYW5n
ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5fdXBkYXRlRWZmZWN0KToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAg
KFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanM6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250
ZW50Vmlldy5qcy4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcpOgorICAgICAg
ICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy50YWJJbmZvKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcuaXNUYWJBbGxvd2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFi
Q29udGVudFZpZXcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFi
Q29udGVudFZpZXcucHJvdG90eXBlLnNob3dSZXByZXNlbnRlZE9iamVjdCk6IEFkZGVkLgorICAg
ICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2FuU2hvd1JlcHJlc2Vu
dGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBl
LmNsb3NlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5h
dHRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5k
ZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5p
bml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSk6
IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5jc3M6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MuCisgICAgICAgIFJlbmFtZSB0aGUgQ2Fu
dmFzIFRhYiB0byBHcmFwaGljcyBUYWIgYW5kIGRpc3BsYXkgZm91ciBzZWN0aW9uczoKKyAgICAg
ICAgIC0gQ2FudmFzZXMKKyAgICAgICAgIC0gV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NT
IEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIFRyYW5zaXRpb25zCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkNhbnZh
c1NpZGViYXJQYW5lbC5wcm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAgICAg
ICAgT25seSBhcHBlYXIgaWYgYSBgV0kuQ2FudmFzYCBvciBgV0kuUmVjb3JkaW5nYCBpcyBzZWxl
Y3RlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
LmdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMpOgorICAgICAgICAoV0kuR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQp
OgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRh
Y2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
LmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6CisgICAgICAgIChX
SS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lSGFuZGxlRHJv
cCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9o
YW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQpOgorICAg
ICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hv
d0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xp
Y2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
Ll9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKToKKyAgICAgICAgKFdJLkdy
YXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1
cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk6CisgICAgICAgIChXSS5HcmFw
aGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzOiBB
ZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgorICAgICAg
ICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24pOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1jaGls
ZCkpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24g
PiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBz
ZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50
LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxKToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+
IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2
aWV3ID4gc2VjdGlvbi5jYW52YXMgPiAuY29udGVudCA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uID4gLmNvbnRlbnQgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldzptYXRjaGVzKDo6
YmVmb3JlLCA6OmFmdGVyKSk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChw
cmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250
ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAg
IEFkZCBzdGlja3kgaGVhZGVycyBmb3IgZWFjaCBvZiB0aGUgc2VjdGlvbnMgZGVzY3JpYmVkIGFi
b3ZlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5w
cm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuY29udGVu
dFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmll
dy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNv
bnRlbnRWaWV3TW91c2VMZWF2ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50
LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24pOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5nZXQgcHJl
dmlld0hlaWdodCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
aGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuc2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5fcmVmcmVzaFN1YnRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXcuYWRkVGl0bGUpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlldyk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUVmZmVjdENoYW5n
ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVU
YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3M6IEFkZGVkLgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24pOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24uc2VsZWN0ZWQpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0
bGVzKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxl
cyA+IC50aXRsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+
IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZvcmUpOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIp
OgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBoZWFkZXIgPiAubmF2
aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnKToK
KyAgICAgICAgKGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyA+IHN2Zyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnIHJlY3QpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHN2ZyA+IC5kZWxheSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGgpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxpbmUpOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHNwYW4pOgorICAg
ICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlKToKKyAgICAgICAgKEBtZWRpYSAo
cHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29s
b3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3KToKKyAg
ICAgICAgVmlzdWFsaXplIHRoZSBzdGFydC9lbmQgZGVsYXkgYW5kIGtleWZyYW1lcyBvZiB0aGUg
Z2l2ZW4gYW5pbWF0aW9uIGFzIGEgc2VyaWVzIG9mIGJlemllcgorICAgICAgICBjdXJ2ZXMgc2Vw
YXJhdGVkIGJ5IG1hcmtlcnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9u
RGV0YWlsc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJh
clBhbmVsLnByb3RvdHlwZS5pbnNwZWN0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNT
aWRlYmFyUGFuZWwucHJvdG90eXBlLmdldCBhbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0
aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuc2V0IGFuaW1hdGlvbik6CisgICAgICAg
IChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbml0aWFsTGF5b3V0
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmxh
eW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlw
ZS5fcmVmcmVzaElkZW50aXR5U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaEVmZmVjdFNlY3Rpb24pOgorICAgICAgICAo
V0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hCYWNrdHJh
Y2VTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25UYXJnZXRD
aGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90
eXBlLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzczog
QWRkZWQuCisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5j
b250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5oZWFkZXIgPiAu
c3VidGl0bGUpOgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24g
PiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWls
cy1zZWN0aW9uKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9u
ID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFp
bHMtc2VjdGlvbiAucm93LnN0eWxlcyk6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRh
aWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5
ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3IpOgorICAgICAg
ICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRh
aWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uKToKKyAgICAg
ICAgU2hvdyBjb2xsZWN0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVjdGVkIGFuaW1hdGlv
biwgaXRzIGVmZmVjdCwgYW5kIGl0cyB0YXJnZXQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2Vy
KToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNDb2xsZWN0
aW9uKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5kaXNhYmxl
KToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc0FkZGVkKToKKyAg
ICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc1JlbW92ZWQpOgorICAgICAg
ICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3NhdmVSZWNvcmRpbmdzKTogQWRkZWQuCisg
ICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291cmNlRGlkQ2hhbmdl
KToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5nZXQgc2hhZGVyUHJv
Z3JhbXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3Jl
bW92ZUNhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgIFJhdGhlciB0aGFuIGhhdmUgdGhlIGBXSS5D
YW52YXNUYWJDb250ZW50Vmlld2AgbWFpbmFpbiB0aGUgYFdJLkNhbnZhc0NvbGxlY3Rpb25gIGFu
ZCBoYXZlIHRvCisgICAgICAgIGxpc3RlbiBmb3IgZXZlbnRzIGZyb20gdGhlIGBXSS5DYW52YXNN
YW5hZ2VyYCwganVzdCBoYXZlIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAgaG9sZCBvbiB0bworICAg
ICAgICBpdCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEgZ2V0dGVyIGZvciBpdC4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qczoKKyAgICAg
ICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzT3Zl
cnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAg
IChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWRkU2F2ZWRSZWNvcmRpbmcpOgor
ICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaGlkZGVuKTog
RGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
LmdldCBfaXRlbU1hcmdpbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXdzKTogRGVsZXRlZC4KKyAgICAgICAg
KFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVOYXZpZ2F0aW9u
SXRlbXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5w
cm90b3R5cGUuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisgICAgICAgIChXSS5D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hvd0ltYWdlR3JpZCk6
IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToK
KyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOiBEZWxldGVkLgorICAgICAgICBTdXBwb3J0IGJl
aW5nIGFibGUgdG8gbGF5b3V0IGFzIGEgdmVydGljYWxseSBvciBob3Jpem9udGFsbHkgc2Nyb2xs
aW5nIGxpc3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRW
aWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2Fu
dmFzQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKTogQWRk
ZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91
bGRBcHBlYXJGb3JEcmFnRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5kcm9wWm9uZUhhbmRsZURyb3ApOiBBZGRlZC4KKyAgICAgICAgKFdJLkNh
bnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkNh
bnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXND
b250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNvbnRleHRN
ZW51KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6IERl
bGV0ZWQuCisgICAgICAgIE1vdmUgdGhlICJMb2cgQ2FudmFzIENvbnRleHQiIHRvIGJlIHRoZSBm
aXJzdCBpdGVtIGluIHRoZSBjYW52YXMgZWxlbWVudCBidXR0b24gY29udGV4dCBtZW51LgorICAg
ICAgICBEcml2ZS1ieTogYWRkIGEgYFdJLkRyb3Bab25lVmlld2AgZm9yIHdoZW4gcmVjb3JkaW5n
IEpTT04gZmlsZXMgYXJlIGRyYWdnZWQgb24gdG9wLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3M6CisgICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6
bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3RvcnMgc2luY2UgdGhlIENhbnZhcyBUYWIgZG9lc24n
dCBleGlzdCBhbnltb3JlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0
aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcpOgor
ICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgc2VsZWN0ZWRJ
dGVtKTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LnNldCBzZWxlY3RlZEl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuYWRkQ29udGVudFZpZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNvbGxl
Y3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUucmVtb3ZlQ29udGVudFZpZXdGb3JJdGVtKToKKyAg
ICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2hvd0NvbnRlbnRQbGFj
ZWhvbGRlcik6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmlu
aXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fc2VsZWN0SXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLl9oYW5kbGVDbGljayk6IEFkZGVkLgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5zZXRTZWxlY3RlZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250
ZW50LXZpZXcuY29sbGVjdGlvbik6CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24g
PiAucGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4KKyAgICAgICAg
KC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogRGVsZXRlZC4K
KyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhv
dmVyKTogRGVsZXRlZC4KKyAgICAgICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgY2xpY2tp
bmcgb3V0c2lkZSBvZiBhbnkgb2YgdGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRpc21pc3MgdGhl
CisgICAgICAgIGN1cnJlbnQgc2VsZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNvIGJlIGFibGUg
dG8gZ2V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAgIChXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdy5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgRW5zdXJl
IHRoYXQgYDBgIGlzIGNvbnNpZGVyZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKyAgICAgICAg
KFdJLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAoV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJl
cHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRW
aWV3LmpzOgorICAgICAgICAoV0kuQ29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJlc2VudGVkT2Jq
ZWN0KToKKyAgICAgICAgKFdJLkNvbnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICBBbGxv
dyBgV0kuQW5pbWF0aW9uYCB0byBiZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvTWFpbi5jc3M6CisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBBZGRl
ZC4KKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhcik6IEFk
ZGVkLgorICAgICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0pOiBBZGRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1p
dGVtLWhlbHApOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0
aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAgICAoLm1lc3Nh
Z2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRl
bSk6IERlbGV0ZWQuCisgICAgICAgIEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9uSXRlbUhlbHBg
IHRvIGJlIHVzZWQgaW5kZXBlbmRlbnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3YC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qczoKKyAg
ICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXSS5U
aW1lbGluZU1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRlZCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qczoKKyAgICAg
ICAgKFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgorICAgICAgICBB
ZGQgYSBmYWxsYmFjayBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAoV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZyk6
IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJl
c291cmNlLmltYWdlIGltZzpob3Zlcik6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogbW92ZSB0
aGVzZSBzdHlsZXMgdG8gdGhlIHJpZ2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3JlIHNwZWNpZmlj
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAgICAo
V0kuQ2FudmFzLmRpc3BsYXlOYW1lRm9yQ29udGV4dFR5cGUpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTW9kZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5kaXNwbGF5
TmFtZUZvclJlY29yZGluZ1R5cGUpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBsb2Nh
bGl6ZWQgc3RyaW5ncy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5n
Q29udGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJv
bSBhbGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3QgZXhpc3QgYW55
bW9yZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAgICAgICAqIExv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVGVzdC5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0
LmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKwogMjAxOS0xMi0xOCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVudHM6IHJl
c3RyaWN0IHNob3dpbmcgcGFpbnQgZmxhc2hpbmcgYW5kIGNvbXBvc2l0aW5nIGJvcmRlcnMgdG8g
dGhlIFdlYiBJbnNwZWN0b3Igc2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KaW5kZXggYmVhZjhkZTI4YWM3
NTNlMzdlZjJiZTg5YzAxZmNiMGJkNTNkYWZiYi4uMjQyNGYzOTU1NzI1MWM5MGU5YzBkY2FmMDUy
N2JiY2EzZTQ4OWMxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9wcm90b2NvbC9BbmltYXRpb24uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCkBAIC0xNCw2ICsxNCw1MSBAQAogICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICJlbnVtIjogWyJyZWFkeSIsICJk
ZWxheWVkIiwgImFjdGl2ZSIsICJjYW5jZWxlZCIsICJkb25lIl0KICAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImlkIjogIlBsYXliYWNrRGlyZWN0aW9uIiwKKyAgICAgICAgICAg
ICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9ybWFsIiwgInJldmVy
c2UiLCAiYWx0ZXJuYXRlIiwgImFsdGVybmF0ZS1yZXZlcnNlIl0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImlkIjogIkZpbGxNb2RlIiwKKyAgICAgICAgICAgICJ0eXBlIjog
InN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9uZSIsICJmb3J3YXJkcyIsICJiYWNr
d2FyZHMiLCAiYm90aCIsICJhdXRvIl0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgImlkIjogIkFuaW1hdGlvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAg
ICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmlt
YXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiY3NzQW5pbWF0aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyBgYW5pbWF0aW9u
LW5hbWVgIENTUyBwcm9wZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBpZiBgdHJhbnNpdGlv
blByb3BlcnR5YCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImNzc1RyYW5zaXRpb25Qcm9wZXJ0eSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyBgdHJhbnNp
dGlvbi1wcm9wZXJ0eWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGBh
bmltYXRpb25OYW1lYCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImJhY2t0cmFjZSIsICJ0eXBlIjogImFycmF5IiwgIml0
ZW1zIjogeyAiJHJlZiI6ICJDb25zb2xlLkNhbGxGcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIkJhY2t0cmFjZSB0aGF0IHdhcyBjYXB0dXJlZCB3aGVuIHRoaXMgYFdl
YkFuaW1hdGlvbmAgd2FzIGNyZWF0ZWQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJFZmZlY3QiLAorICAgICAgICAgICAgInR5cGUi
OiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic3RhcnREZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRy
dWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZERlbGF5IiwgInR5cGUiOiAibnVt
YmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRl
cmF0aW9ucyIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgIm9w
dGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uRHVy
YXRpb24iLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ0aW1pbmdGdW5jdGlvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBsYXliYWNrRGlyZWN0
aW9uIiwgIiRyZWYiOiAiUGxheWJhY2tEaXJlY3Rpb24iLCAib3B0aW9uYWwiOiB0cnVlIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmaWxsTW9kZSIsICIkcmVmIjogIkZpbGxNb2RlIiwg
Im9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAia2V5ZnJhbWVz
IiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWZyYW1lIiB9LCAib3B0
aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImlkIjogIktleWZyYW1lIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIs
CisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im9mZnNldCIsICJ0eXBlIjogIm51bWJlciIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVhc2luZyIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInN0eWxlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAg
ICJpZCI6ICJUcmFja2luZ1VwZGF0ZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLApA
QCAtMjcsNiArNzIsMzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkVuYWJsZXMgQ2FudmFzIGRvbWFpbiBldmVudHMuIgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJEaXNhYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3ROb2RlIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBgRE9NLk5vZGVJZGAgZm9yIHRoZSB0YXJnZXQg
b2YgdGhlIGVmZmVjdCBvZiB0aGUgYW5pbWF0aW9uIHdpdGggdGhlIGdpdmVuIGBBbmltYXRpb25J
ZGAuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
bm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlQW5pbWF0aW9uIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXNvbHZlcyBKYXZhU2NyaXB0IGBXZWJBbmltYXRp
b25gIG9iamVjdCBmb3IgZ2l2ZW4gYEFuaW1hdGlvbklkYC4iLAorICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVm
IjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0R3Jv
dXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
U3ltYm9saWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlwbGUg
b2JqZWN0cy4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3Rl
T2JqZWN0IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAg
ICAgICJuYW1lIjogInN0YXJ0VHJhY2tpbmciLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IlN0YXJ0IHRyYWNraW5nIGFuaW1hdGlvbnMuIFRoaXMgd2lsbCBwcm9kdWNlIGEgYHRyYWNraW5n
U3RhcnRgIGV2ZW50LiIKQEAgLTM3LDYgKzExMSwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAg
ICAiZXZlbnRzIjogWworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25D
cmVhdGVkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVy
IGEgYFdlYkFuaW1hdGlvbmAgaXMgY3JlYXRlZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb24iLCAiJHJlZiI6ICJBbmlt
YXRpb24iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAiZWZmZWN0Q2hhbmdlZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgZWZmZWN0IG9mIGFueSBhbmltYXRpb24gaXMgY2hhbmdl
ZCBpbiBhbnkgd2F5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6ICJFZmZlY3QiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBvbWl0dGVkIHdoZW4gdGhlIGVm
ZmVjdCBpcyByZW1vdmVkIHdpdGhvdXQgYSByZXBsYWNlbWVudC4iIH0KKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidGFyZ2V0Q2hhbmdl
ZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUg
dGFyZ2V0IG9mIGFueSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFuZ2VkIGluIGFueSB3
YXkuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAg
XQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25E
ZXN0cm95ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2
ZXIgYSBgV2ViQW5pbWF0aW9uYCBpcyBkZXN0cm95ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6
ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAg
ICAgICAgICAgICAibmFtZSI6ICJ0cmFja2luZ1N0YXJ0IiwKICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJEaXNwYXRjaGVkIGFmdGVyIGBzdGFydFRyYWNraW5nYCBjb21tYW5kLiIsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCmluZGV4IDdjNzJmNjI0YzMzMGFm
OTZiYTcwYjdhZTRlOTJiNTAxY2ExMDEwN2UuLmZkM2ViOWRiZGU5YmMxYWIwYjk3ZjBhMDcxZTAw
ZTgwZmI4MTMxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmlt
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJF
bGVtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBA
IC0zOSw2ICs0MCw5IEBAIFJlZjxDU1NBbmltYXRpb24+IENTU0FuaW1hdGlvbjo6Y3JlYXRlKEVs
ZW1lbnQmIG93bmluZ0VsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYKIHsKICAgICBhdXRvIHJlc3Vs
dCA9IGFkb3B0UmVmKCpuZXcgQ1NTQW5pbWF0aW9uKG93bmluZ0VsZW1lbnQsIGJhY2tpbmdBbmlt
YXRpb24sIG5ld1N0eWxlKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxlLCBuZXdT
dHlsZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCmluZGV4IGRmZjVmYjFmNzlhODljNTY2
MGE0OWMxYjM2NDNkZDA3ZDgyNDMyNzEuLmFhYWU1ZTJkMGM2MTcyMGNkMTA4ZGQ2ZGNlNTk1MTlj
YTBhYzNlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJLZXlmcmFtZUVmZmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAK
QEAgLTQwLDYgKzQxLDkgQEAgUmVmPENTU1RyYW5zaXRpb24+IENTU1RyYW5zaXRpb246OmNyZWF0
ZShFbGVtZW50JiBvd25pbmdFbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHAKICAgICBhdXRvIHJlc3Vs
dCA9IGFkb3B0UmVmKCpuZXcgQ1NTVHJhbnNpdGlvbihvd25pbmdFbGVtZW50LCBwcm9wZXJ0eSwg
Z2VuZXJhdGlvblRpbWUsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxlLCByZXZlcnNpbmdBZGp1
c3RlZFN0YXJ0U3R5bGUsIHJldmVyc2luZ1Nob3J0ZW5pbmdGYWN0b3IpKTsKICAgICByZXN1bHQt
PmluaXRpYWxpemUob2xkU3R5bGUsIG5ld1N0eWxlKTsKICAgICByZXN1bHQtPnNldFRpbWluZ1By
b3BlcnRpZXMoZGVsYXksIGR1cmF0aW9uKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApp
bmRleCBmOTk0MzA3ZDY2MGE5NmEwOWZiMDc0MmNmZWZjM2MyODFlNDEyYjAxLi5jMTQxYzYxNjE3
NjliYTI5ZjI4MDQxMTBjNjQwM2RjMTdjYzMwMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTExMDUsNyArMTEwNSw3IEBAIHZvaWQgS2V5ZnJh
bWVFZmZlY3Q6OmludmFsaWRhdGUoKQogCiB2b2lkIEtleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hv
dWxkUnVuQWNjZWxlcmF0ZWQoKQogewotICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBoYXNC
bGVuZGluZ0tleWZyYW1lcygpOworICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBtX2JsZW5k
aW5nS2V5ZnJhbWVzLnNpemUoKTsKICAgICBmb3IgKGF1dG8gY3NzUHJvcGVydHlJZCA6IG1fYmxl
bmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpKSB7CiAgICAgICAgIGlmICghQ1NTUHJvcGVydHlB
bmltYXRpb246OmFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKGNzc1Byb3BlcnR5SWQp
KSB7CiAgICAgICAgICAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4IDA0OTMzN2RkYTAwNTg4YjI2
ZWU3ZDJiOTlkZTA2Nzg0NDY2MWVlYzUuLmQ4OWUxMzUyY2M4MjVlM2M5MTIyMDI2OGU1ZjZkNTU1
NDllMjc3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVm
ZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBA
IC05OCw2ICs5OCw4IEBAIHB1YmxpYzoKICAgICAgICAgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRv
IGNvbXBvc2l0ZSB7IENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0bzo6QXV0byB9OwogICAgIH07CiAK
KyAgICBjb25zdCBWZWN0b3I8UGFyc2VkS2V5ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMoKSBjb25z
dCB7IHJldHVybiBtX3BhcnNlZEtleWZyYW1lczsgfQorCiAgICAgRWxlbWVudCogdGFyZ2V0KCkg
Y29uc3QgeyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFRhcmdldChSZWZQ
dHI8RWxlbWVudD4mJik7CiAKQEAgLTEzNCw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBj
b2xvckZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
Y29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2g7IH0KIAogICAgIHZvaWQgY29tcHV0ZURlY2xh
cmF0aXZlQW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpOwotICAgIGJvb2wgaGFzQmxlbmRpbmdL
ZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgfQor
ICAgIGNvbnN0IEtleWZyYW1lTGlzdCYgYmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVy
biBtX2JsZW5kaW5nS2V5ZnJhbWVzOyB9CiAgICAgY29uc3QgSGFzaFNldDxDU1NQcm9wZXJ0eUlE
PiYgYW5pbWF0ZWRQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1l
cy5wcm9wZXJ0aWVzKCk7IH0KIAogICAgIGJvb2wgY29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5p
bWF0aW9uKExheW91dFJlY3QmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5jcHAKaW5kZXggNTE1ZDM2OTA3ZjkxMDM1ODEwMzA2MDcwNmQ4ODY1YWQ5Y2U5YzZh
Ny4uM2VhMzg2NGI2OWU4MmQ0NWY3YjdiMGVkZGEyYjI5MjUyN2I0NTVlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNs
dWRlICJTdHlsZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5o
PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25h
bC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MSwxMSArNTMsMzAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2Vi
QW5pbWF0aW9uKTsKIAorSGFzaFNldDxXZWJBbmltYXRpb24qPiYgV2ViQW5pbWF0aW9uOjppbnN0
YW5jZXMoY29uc3QgTG9ja0hvbGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhh
c2hTZXQ8V2ViQW5pbWF0aW9uKj4+IGluc3RhbmNlczsKKyAgICByZXR1cm4gaW5zdGFuY2VzOwor
fQorCitMb2NrJiBXZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KCkKK3sKKyAgICBzdGF0aWMg
TGF6eU5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBpbml0aWFsaXplTXV0ZXg7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU11dGV4LCBb
XSB7CisgICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBtdXRl
eC5nZXQoKTsKK30KKwogUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmVjdCkKIHsKICAgICBhdXRvIHJl
c3VsdCA9IGFkb3B0UmVmKCpuZXcgV2ViQW5pbWF0aW9uKGRvY3VtZW50KSk7CiAgICAgcmVzdWx0
LT5zZXRFZmZlY3QoZWZmZWN0KTsKICAgICByZXN1bHQtPnNldFRpbWVsaW5lKCZkb2N1bWVudC50
aW1lbGluZSgpKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
QW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC02
NSw2ICs4Niw5IEBAIFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlCiAgICAgcmVzdWx0LT5zZXRFZmZl
Y3QoZWZmZWN0KTsKICAgICBpZiAodGltZWxpbmUpCiAgICAgICAgIHJlc3VsdC0+c2V0VGltZWxp
bmUodGltZWxpbmUpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVX
ZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAg
LTc1LDYgKzk5LDkgQEAgV2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24oRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewogICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsKICAgICBzdXNwZW5k
SWZOZWVkZWQoKTsKKworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAg
ICBpbnN0YW5jZXMobG9jaykuYWRkKHRoaXMpOwogfQogCiBXZWJBbmltYXRpb246On5XZWJBbmlt
YXRpb24oKQpAQCAtODMsNiArMTEwLDEwIEBAIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigp
CiAKICAgICBpZiAobV90aW1lbGluZSkKICAgICAgICAgbV90aW1lbGluZS0+Zm9yZ2V0QW5pbWF0
aW9uKHRoaXMpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAg
IEFTU0VSVChpbnN0YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOworICAgIGluc3RhbmNlcyhs
b2NrKS5yZW1vdmUodGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpjb250ZXh0RGVzdHJv
eWVkKCkKQEAgLTExNCw2ICsxNDUsOCBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6dW5zdXNwZW5kRWZm
ZWN0SW52YWxpZGF0aW9uKCkKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFu
Z2UoKQogewogICAgIHRpbWluZ0RpZENoYW5nZShEaWRTZWVrOjpObywgU3luY2hyb25vdXNseU5v
dGlmeTo6WWVzKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGltaW5nKCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNl
dEVmZmVjdChSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVjdCkKQEAgLTE4OCw3ICsy
MjEsNyBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJuYWwoUmVmUHRyPEFuaW1h
dGlvbkVmZmVjdD4mJiBuZXdFZmZlY3QsIGJvb2wgZAogICAgICAgICAgICAgbV90aW1lbGluZS0+
YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOwogICAgIH0KIAot
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
KCp0aGlzKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlv
bkVmZmVjdCgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRUaW1lbGluZShSZWZQ
dHI8QW5pbWF0aW9uVGltZWxpbmU+JiYgdGltZWxpbmUpCkBAIC0yNDcsMTQgKzI4MCwxNSBAQCB2
b2lkIFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmVJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9uVGlt
ZWxpbmU+JiYgdGltZWxpbmUpCiAKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUYXJnZXREaWRD
aGFuZ2UoRWxlbWVudCogcHJldmlvdXNUYXJnZXQsIEVsZW1lbnQqIG5ld1RhcmdldCkKIHsKLSAg
ICBpZiAoIW1fdGltZWxpbmUpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV90aW1lbGluZSkg
eworICAgICAgICBpZiAocHJldmlvdXNUYXJnZXQpCisgICAgICAgICAgICBtX3RpbWVsaW5lLT5h
bmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMsICpwcmV2aW91c1RhcmdldCk7CiAK
LSAgICBpZiAocHJldmlvdXNUYXJnZXQpCi0gICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldh
c1JlbW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKKyAgICAgICAgaWYg
KG5ld1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9F
bGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKKyAgICB9CiAKLSAgICBpZiAobmV3VGFyZ2V0KQot
ICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5l
d1RhcmdldCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUYXJnZXQoKnRoaXMpOwogfQogCiBPcHRpb25hbDxkb3VibGU+IFdlYkFuaW1h
dGlvbjo6c3RhcnRUaW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uaAppbmRleCBkYTRkOGVjM2JjMmU1NzBiNDhhNTFkYmMxNGEzNDRlNmM0OWJhMDcwLi5jOTk2
MTNiMjY2MWQ3NjVmMGVlM2I4NmQ2MTRmOWNkMmI3ZGMyM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvblV0
aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hcmth
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25k
cy5oPgpAQCAtNTQsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJBbmltYXRp
b24+IGNyZWF0ZShEb2N1bWVudCYsIEFuaW1hdGlvbkVmZmVjdCosIEFuaW1hdGlvblRpbWVsaW5l
Kik7CiAgICAgfldlYkFuaW1hdGlvbigpOwogCisgICAgc3RhdGljIEhhc2hTZXQ8V2ViQW5pbWF0
aW9uKj4mIGluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgc3RhdGljIExvY2smIGlu
c3RhbmNlc011dGV4KCk7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNEZWNsYXJhdGl2ZUFuaW1hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ1NTQW5pbWF0
aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NUcmFu
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNGYxOGI1OGM2
Y2QwMWUwYjY5YTg5NTNhZDA5YTczOWMzNTIwNDk2YS4uZDEzMDk4OTFkYzZiMjNiMmIyN2U1YzI1
YzBlOTY0NDUyYTczOThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTcyMyw2ICs3MjMsOSBAQCB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudAogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCiAgICAgICAg
IGNhbnZhc0FnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAKKyAgICBpZiAoYXV0byogYW5p
bWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQoZnJhbWUp
OworCiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPmRpZENvbW1pdExv
YWQoZnJhbWUuZG9jdW1lbnQoKSk7CiAKQEAgLTExMzMsMTUgKzExMzYsMzcgQEAgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJgogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbEFwcGx5S2V5ZnJhbWVF
ZmZlY3QodGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRp
b24pCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZm
ZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmlt
YXRpb24mIGFuaW1hdGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKLSAgICAg
ICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24p
OworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5k
aWRTZXRXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBh
bmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkU2V0V2ViQW5pbWF0aW9u
RWZmZWN0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlm
IChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9u
QWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQor
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24m
IGFuaW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmlt
YXRpb25BZ2VudC0+ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9CiAKIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24pCiB7Ci0gICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgaWYgKGF1dG8qIGFu
aW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0
aW9uKGFuaW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKICAgICAg
ICAgYW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAppbmRleCBkYmY4MjIwNWRiNWJjY2JlMTY5ZWQwZTk0N2QxYWQ4M2RkODUwZmQ2Li5h
Mjk4MWFkOTgyZGU2ODczZDRlOTYzNzQ0OWNiN2YzMmY4YzI1YzFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0zMDUs
NyArMzA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5
S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RU
aW1pbmcpOwotICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJB
bmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2Vi
QW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
VGltaW5nKFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVh
dGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ry
b3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3Jr
U3RhdGVDaGFuZ2VkKFBhZ2UmKTsKQEAgLTUwNSw3ICs1MDgsMTAgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRp
bWluZyk7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlk
U2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0
aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZv
aWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0
aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGlj
IHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBX
ZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYpOwpAQCAtMTQ2NiwxMSArMTQ3MiwzMiBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1l
bnQmIHRhcmdldCwgSwogICAgICAgICB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoKmluc3Ry
dW1lbnRpbmdBZ2VudHMsIHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRpbWluZyk7CiB9CiAKLWlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAg
aWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29u
dGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9u
KTsKKyAgICAgICAgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0Fn
ZW50cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAg
aWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29u
dGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5p
bWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7
CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8q
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmlt
YXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hhbmdlV2ViQW5p
bWF0aW9uRWZmZWN0VGFyZ2V0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsK
K30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJB
bmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgYW5pbWF0aW9uKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdl
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNw
cAppbmRleCAxZjlhMGQ3YzUzMmEzZjkwODU2YzE4NGExZmZjM2IxY2YzNWVmYzg3Li5kN2EyZjcx
OTU4ZDk0M2NjY2FjNDM0ZWFjOTNlMzNkYWUyN2NjNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHZv
aWQgSW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1fcGFnZURPTURlYnVnZ2VyQWdl
bnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgPSBudWxscHRyOwogICAg
IG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKKyAgICBtX2Vu
YWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiAgICAgbV90cmFja2luZ0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggZjZmZWE3ZGEyMTM2MGRkMDhj
YzNkOTY2YjE0ZTJhYWM0NjU0NDkxNS4uZjU5YzNkYmRjYWY3OGNmOWM2ZDhkYmI0MzJkY2NmMjJm
MTVkNTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oCkBAIC0xNTYsNiArMTU2LDkgQEAgcHVibGljOgogICAgIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50KiBwZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVy
biBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQogICAgIHZvaWQgc2V0UGVy
c2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBh
Z2VudCkgeyBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAK
KyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0K
KyAgICB2b2lkIHNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCogYWdlbnQpIHsgbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBh
Z2VudDsgfQorCiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHRyYWNraW5nSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ7IH0KICAgICB2b2lkIHNldFRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQo
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fdHJhY2tpbmdJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCA9IGFnZW50OyB9CiAKQEAgLTE5MCw2ICsxOTMsNyBAQCBwcml2YXRlOgogICAg
IFBhZ2VET01EZWJ1Z2dlckFnZW50KiBtX3BhZ2VET01EZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9
OwogICAgIEluc3BlY3RvckNhbnZhc0FnZW50KiBtX2luc3BlY3RvckNhbnZhc0FnZW50IHsgbnVs
bHB0ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3BlcnNpc3RlbnRJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKKyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCogbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7
IG51bGxwdHIgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKaW5kZXggZGU5YTJjNTliZGFi
YzI5MDg5NmM5NjM5Y2VhYmI0ZTJjNDczYjgyOS4uZGU0MGVmNjZlZjc3MWU0ODY3YWFmMjY0NWU4
NDYxYWI1ZjQ1ZGEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKQEAgLTI5LDE5ICsyOSwzMyBA
QAogI2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVjdC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVj
dFBoYXNlLmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2lu
Y2x1ZGUgIkNTU1RyYW5zaXRpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUg
IkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSAiRmlsbE1vZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50
cy5oIgorI2luY2x1ZGUgIkpTV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZl
Y3QuaCIKKyNpbmNsdWRlICJLZXlmcmFtZUxpc3QuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiUGxheWJhY2tEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisj
aW5jbHVkZSAiVGltaW5nRnVuY3Rpb24uaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb24uaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JFbnZpcm9ubWVudC5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTUyLDYgKzY2LDkgQEAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgOiBJbnNwZWN0b3JB
Z2VudEJhc2UoIkFuaW1hdGlvbiJfcywgY29udGV4dCkKICAgICAsIG1fZnJvbnRlbmREaXNwYXRj
aGVyKG1ha2VVbmlxdWU8SW5zcGVjdG9yOjpBbmltYXRpb25Gcm9udGVuZERpc3BhdGNoZXI+KGNv
bnRleHQuZnJvbnRlbmRSb3V0ZXIpKQogICAgICwgbV9iYWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0
b3I6OkFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoY29udGV4dC5iYWNrZW5kRGlz
cGF0Y2hlciwgdGhpcykpCisgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihjb250ZXh0Lmlu
amVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICAsIG1faW5zcGVjdGVkUGFnZShjb250ZXh0Lmluc3Bl
Y3RlZFBhZ2UpCisgICAgLCBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpCiB7CiB9CiAK
QEAgLTY3LDExICs4NCwxMDMgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBFcnJvclN0
cmluZyBpZ25vcmVkOwogICAgIHN0b3BUcmFja2luZyhpZ25vcmVkKTsKKyAgICBkaXNhYmxlKGln
bm9yZWQpOwogCiAgICAgQVNTRVJUKG1faW5zdHJ1bWVudGluZ0FnZW50cy5wZXJzaXN0ZW50SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuc2V0UGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIpOwogfQogCit2
b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nKQoreworICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KCkgPT0gdGhpcykgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRp
b24gZG9tYWluIGFscmVhZHkgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQodGhpcyk7CisKKyAgICBjb25zdCBhdXRvIGV4aXN0c0luQ3VycmVudFBhZ2UgPSBbJl0gKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKKyAgICAgICAg
aWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8x
Njg0NzU+IFdlYiBJbnNwZWN0b3I6IENvcnJlY3RseSBkaXNwbGF5IGlmcmFtZSdzIFdlYlNvY2tl
dHMKKyAgICAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpID09ICZtX2lu
c3BlY3RlZFBhZ2U7CisgICAgfTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdl
YkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIGZvciAoYXV0byogYW5pbWF0
aW9uIDogV2ViQW5pbWF0aW9uOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAgIGlmIChl
eGlzdHNJbkN1cnJlbnRQYWdlKGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
KyAgICAgICAgICAgICAgICBiaW5kQW5pbWF0aW9uKCphbmltYXRpb24sIGZhbHNlKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZShF
cnJvclN0cmluZyYpCit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudChudWxscHRyKTsKKworICAgIHJlc2V0KCk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpCit7CisgICAgYXV0
byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25JZCk7
CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvbUFn
ZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCk7CisgICAgaWYg
KCFkb21BZ2VudCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJET00gZG9tYWluIG11c3QgYmUg
ZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGVmZmVjdCA9
IGFuaW1hdGlvbi0+ZWZmZWN0KCk7CisgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0
KSkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlv
bklkIGRvZXMgbm90IGhhdmUgYW4gZWZmZWN0Il9zOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byYga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oKmVm
ZmVjdCk7CisKKyAgICBhdXRvKiB0YXJnZXQgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKTsKKyAg
ICBpZiAoIXRhcmdldCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdp
dmVuIGFuaW1hdGlvbklkIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQiX3M7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAqbm9kZUlkID0gZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRvRnJvbnRl
bmQoZXJyb3JTdHJpbmcsIHRhcmdldCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OnJlc29sdmVBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KQoreworICAgIGF1
dG8qIGFuaW1hdGlvbiA9IGFzc2VydEFuaW1hdGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9uSWQp
OworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBzdGF0
ZSA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5leGVjU3RhdGUoKTsKKyAg
ICBhdXRvIGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5qZWN0ZWRT
Y3JpcHRGb3Ioc3RhdGUpOworICAgIEFTU0VSVCghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgp
KTsKKworICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZTsKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2Nr
SG9sZGVyIGxvY2soc3RhdGUpOworCisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGRlcHJl
Y2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoc3RhdGUpOworICAgICAgICB2YWx1ZSA9IHRv
SlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBpZiAoIXZh
bHVlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBlcnJvclN0cmlu
ZyA9ICJJbnRlcm5hbCBlcnJvcjogdW5rbm93biBBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlv
bklkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG9iamVjdEdyb3Vw
TmFtZSA9IG9iamVjdEdyb3VwID8gKm9iamVjdEdyb3VwIDogU3RyaW5nKCk7CisgICAgcmVzdWx0
ID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RhcnRUcmFja2luZyhFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcpCiB7CiAgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2lu
Z0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcykgewpAQCAtMTcwLDE2ICsyNzksMjgw
IEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxBcHBseUtleWZyYW1lRWZmZWN0
KEVsZW1lbnQmIHRhcmdldCwgS2V5ZnJhbWVFCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRy
YWNraW5nVXBkYXRlKG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRU
aW1lKCkuc2Vjb25kcygpLCBXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFu
aW1hdGlvbikKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlv
bkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8RGVjbGFyYXRp
dmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZl
QW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKTsKKwor
ICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworICAgIGRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQorCit2b2lkIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmco
V2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5
IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAg
YXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmIChh
bmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBidWlsZE9iamVjdEZvckVmZmVj
dChhbmltYXRpb24uZWZmZWN0KCkpKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uKQoreworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRp
b24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBm
aW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dGFyZ2V0Q2hh
bmdlZChhbmltYXRpb25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRp
ZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAo
IWZpbmRBbmltYXRpb25JZChhbmltYXRpb24pLmlzRW1wdHkoKSkgeworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJpbmRBbmltYXRp
b24oYW5pbWF0aW9uLCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAg
aWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKQogICAgICAgICBzdG9wVHJh
Y2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4o
YW5pbWF0aW9uKSk7CisKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkgaWYg
QW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1hdGlv
bklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKCFhbmltYXRpb25JZC5p
c0VtcHR5KCkpCisgICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lJiBmcmFtZSkK
K3sKKyAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAgICAgICByZXNldCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gYW5pbWF0aW9uSWRzVG9S
ZW1vdmU7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGFuaW1hdGlvbl0gOiBtX2FuaW1h
dGlvbklkTWFwKSB7CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0g
YW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChp
czxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KS5mcmFtZSgpID09ICZmcmFtZSkKKyAgICAgICAgICAg
ICAgICBhbmltYXRpb25JZHNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0aW9uSWQpOworICAgICAgICB9
CisgICAgfQorICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uSWQgOiBhbmltYXRpb25JZHNU
b1JlbW92ZSkKKyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30KKworc3Rh
dGljIE9wdGlvbmFsPGRvdWJsZT4gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoY29uc3QgU2Vjb25k
cyYgc2Vjb25kcykKK3sKKyAgICBpZiAoc2Vjb25kcyA9PSBTZWNvbmRzOjppbmZpbml0eSgpIHx8
IHNlY29uZHMgPT0gU2Vjb25kczo6bmFuKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgcmV0dXJuIHNlY29uZHMudmFsdWUoKTsKK30KKworUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6RWZmZWN0PiBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YnVpbGRP
YmplY3RGb3JFZmZlY3QoQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QpCit7CisgICAgaWYgKCFlZmZl
Y3QpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBlZmZlY3RQYXlsb2FkID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q6OmNyZWF0ZSgpCisgICAgICAg
IC5yZWxlYXNlKCk7CisKKyAgICBpZiAoYXV0byBzdGFydERlbGF5ID0gcHJvdG9jb2xWYWx1ZUZv
clNlY29uZHMoZWZmZWN0LT5kZWxheSgpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0U3Rh
cnREZWxheShzdGFydERlbGF5LnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8gZW5kRGVsYXkgPSBw
cm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QtPmVuZERlbGF5KCkpKQorICAgICAgICBlZmZl
Y3RQYXlsb2FkLT5zZXRFbmREZWxheShlbmREZWxheS52YWx1ZSgpKTsKKworICAgIGVmZmVjdFBh
eWxvYWQtPnNldEl0ZXJhdGlvbnMoZWZmZWN0LT5pdGVyYXRpb25zKCkpOworICAgIGVmZmVjdFBh
eWxvYWQtPnNldEl0ZXJhdGlvblN0YXJ0KGVmZmVjdC0+aXRlcmF0aW9uU3RhcnQoKSk7CisKKyAg
ICBpZiAoYXV0byBpdGVyYXRpb25EdXJhdGlvbiA9IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGVm
ZmVjdC0+aXRlcmF0aW9uRHVyYXRpb24oKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEl0
ZXJhdGlvbkR1cmF0aW9uKGl0ZXJhdGlvbkR1cmF0aW9uLnZhbHVlKCkpOworCisgICAgaWYgKGF1
dG8qIHRpbWluZ0Z1bmN0aW9uID0gZWZmZWN0LT50aW1pbmdGdW5jdGlvbigpKQorICAgICAgICBl
ZmZlY3RQYXlsb2FkLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgp
KTsKKworICAgIHN3aXRjaCAoZWZmZWN0LT5kaXJlY3Rpb24oKSkgeworICAgIGNhc2UgUGxheWJh
Y2tEaXJlY3Rpb246Ok5vcm1hbDoKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tE
aXJlY3Rpb24oSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlv
bjo6Tm9ybWFsKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6
UmV2ZXJzZToKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5z
cGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZToK
KyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZToK
KyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHN3aXRjaCAoZWZmZWN0LT5maWxsKCkpIHsK
KyAgICBjYXNlIEZpbGxNb2RlOjpOb25lOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxs
TW9kZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpOb25lKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGaWxsTW9kZTo6Rm9yd2FyZHM6CisgICAgICAgIGVmZmVj
dFBheWxvYWQtPnNldEZpbGxNb2RlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6Rmls
bE1vZGU6OkZvcndhcmRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGaWxsTW9kZTo6QmFj
a3dhcmRzOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9kZShJbnNwZWN0b3I6OlBy
b3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCYWNrd2FyZHMpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEZpbGxNb2RlOjpCb3RoOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxs
TW9kZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCb3RoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGaWxsTW9kZTo6QXV0bzoKKyAgICAgICAgZWZmZWN0UGF5
bG9hZC0+c2V0RmlsbE1vZGUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9k
ZTo6QXV0byk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChpczxLZXlmcmFtZUVm
ZmVjdD4oZWZmZWN0KSkgeworICAgICAgICBhdXRvJiBrZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0
PEtleWZyYW1lRWZmZWN0PigqZWZmZWN0KTsKKworICAgICAgICBhdXRvIGtleWZyYW1lc1BheWxv
YWQgPSBKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJh
bWU+OjpjcmVhdGUoKTsKKworICAgICAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGtl
eWZyYW1lRWZmZWN0LmFuaW1hdGlvbigpKSkgeworICAgICAgICAgICAgQVNTRVJUKGtleWZyYW1l
RWZmZWN0LnRhcmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8qIHJlbmRlcmVyID0ga2V5ZnJhbWVF
ZmZlY3QudGFyZ2V0KCktPnJlbmRlcmVyKCk7CisKKyAgICAgICAgICAgIENvbXB1dGVkU3R5bGVF
eHRyYWN0b3IgY29tcHV0ZWRTdHlsZUV4dHJhY3RvcihrZXlmcmFtZUVmZmVjdC50YXJnZXQoKSk7
CisKKyAgICAgICAgICAgIGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWVzID0ga2V5ZnJhbWVFZmZlY3Qu
YmxlbmRpbmdLZXlmcmFtZXMoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
YmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBi
bGVuZGluZ0tleWZyYW1lID0gYmxlbmRpbmdLZXlmcmFtZXNbaV07CisKKyAgICAgICAgICAgICAg
ICBBU1NFUlQoYmxlbmRpbmdLZXlmcmFtZS5zdHlsZSgpKTsKKyAgICAgICAgICAgICAgICBhdXRv
JiBzdHlsZSA9ICpibGVuZGluZ0tleWZyYW1lLnN0eWxlKCk7CisKKyAgICAgICAgICAgICAgICBh
dXRvIGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5
ZnJhbWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgICAgIC5zZXRPZmZzZXQoYmxlbmRpbmdL
ZXlmcmFtZS5rZXkoKSkKKyAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKworICAgICAg
ICAgICAgICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IGJsZW5kaW5nS2V5ZnJhbWUudGlt
aW5nRnVuY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRF
YXNpbmcodGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAgICAgICAgICAgICBTdHJp
bmdCdWlsZGVyIHN0eWxlUGF5bG9hZEJ1aWxkZXI7CisgICAgICAgICAgICAgICAgYXV0byYgY3Nz
UHJvcGVydHlJZHMgPSBibGVuZGluZ0tleWZyYW1lLnByb3BlcnRpZXMoKTsKKyAgICAgICAgICAg
ICAgICBzaXplX3QgY291bnQgPSBjc3NQcm9wZXJ0eUlkcy5zaXplKCk7CisgICAgICAgICAgICAg
ICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBjc3NQcm9wZXJ0eUlkcykgeworICAgICAgICAg
ICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICBpZiAoY3NzUHJvcGVydHlJ
ZCA9PSBDU1NQcm9wZXJ0eUN1c3RvbSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKGdldFBy
b3BlcnR5TmFtZVN0cmluZyhjc3NQcm9wZXJ0eUlkKSk7CisgICAgICAgICAgICAgICAgICAgIHN0
eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCI6ICIpOworICAgICAgICAgICAgICAgICAgICBpZiAo
YXV0byB2YWx1ZSA9IGNvbXB1dGVkU3R5bGVFeHRyYWN0b3IudmFsdWVGb3JQcm9wZXJ0eUluU3R5
bGUoc3R5bGUsIGNzc1Byb3BlcnR5SWQsIHJlbmRlcmVyKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKHZhbHVlLT5jc3NUZXh0KCkpOworICAgICAg
ICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgnOycpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoY291bnQgPiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVQ
YXlsb2FkQnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgaWYgKCFzdHlsZVBheWxvYWRCdWlsZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRTdHlsZShzdHlsZVBheWxvYWRCdWlsZGVyLnRvU3Ry
aW5nKCkpOworCisgICAgICAgICAgICAgICAga2V5ZnJhbWVzUGF5bG9hZC0+YWRkSXRlbShXVEZN
b3ZlKGtleWZyYW1lUGF5bG9hZCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYXJzZWRLZXlmcmFtZSA6IGtleWZyYW1lRWZm
ZWN0LnBhcnNlZEtleWZyYW1lcygpKSB7CisgICAgICAgICAgICAgICAgYXV0byBrZXlmcmFtZVBh
eWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lOjpjcmVhdGUo
KQorICAgICAgICAgICAgICAgICAgICAuc2V0T2Zmc2V0KHBhcnNlZEtleWZyYW1lLmNvbXB1dGVk
T2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAgICAgICAg
ICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5lYXNpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
ICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyhwYXJzZWRLZXlmcmFtZS5lYXNpbmcpOwor
CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5zdHlsZS0+aXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldFN0eWxlKHBhcnNlZEtleWZy
YW1lLnN0eWxlLT5hc1RleHQoKSk7CisKKyAgICAgICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2Fk
LT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoa2V5ZnJhbWVzUGF5bG9hZC0+bGVuZ3RoKCkpCisgICAgICAg
ICAgICBlZmZlY3RQYXlsb2FkLT5zZXRLZXlmcmFtZXMoV1RGTW92ZShrZXlmcmFtZXNQYXlsb2Fk
KSk7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0UGF5bG9hZCk7Cit9CisKK1N0
cmluZyBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKFdlYkFuaW1hdGlv
biYgYW5pbWF0aW9uKQoreworICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBleGlzdGluZ0Fu
aW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChleGlzdGluZ0FuaW1h
dGlvbiA9PSAmYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbklkOworICAg
IH0KKyAgICByZXR1cm4gbnVsbFN0cmluZygpOworfQorCitXZWJBbmltYXRpb24qIEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9IG1f
YW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAg
ICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlv
bklkIl9zOworICAgIHJldHVybiBhbmltYXRpb247Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24sIGJvb2wgY2Fw
dHVyZUJhY2t0cmFjZSkKK3sKKyAgICBhdXRvIGFuaW1hdGlvbklkID0gbWFrZVN0cmluZygiYW5p
bWF0aW9uOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSk7CisgICAg
bV9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uSWQsICZhbmltYXRpb24pOworCisgICAgYXV0
byBhbmltYXRpb25QYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpBbmlt
YXRpb246OmNyZWF0ZSgpCisgICAgICAgIC5zZXRBbmltYXRpb25JZChhbmltYXRpb25JZCkKKyAg
ICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlmIChpczxDU1NBbmltYXRpb24+KGFuaW1hdGlvbikp
CisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldENzc0FuaW1hdGlvbk5hbWUoZG93bmNhc3Q8
Q1NTQW5pbWF0aW9uPihhbmltYXRpb24pLmFuaW1hdGlvbk5hbWUoKSk7CisgICAgZWxzZSBpZiAo
aXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+
c2V0Q3NzVHJhbnNpdGlvblByb3BlcnR5KGRvd25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1hdGlv
bikudHJhbnNpdGlvblByb3BlcnR5KCkpOworCisgICAgaWYgKGF1dG8gZWZmZWN0UGF5bG9hZCA9
IGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KGFuaW1hdGlvbi5lZmZlY3QoKSkpCisgICAgICAgIGFuaW1h
dGlvblBheWxvYWQtPnNldEVmZmVjdChXVEZNb3ZlKGVmZmVjdFBheWxvYWQpKTsKKworICAgIGlm
IChjYXB0dXJlQmFja3RyYWNlKSB7CisgICAgICAgIGF1dG8gc3RhY2tUcmFjZSA9IEluc3BlY3Rv
cjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgSW5z
cGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUpOworICAg
ICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRCYWNrdHJhY2Uoc3RhY2tUcmFjZS0+YnVpbGRJbnNw
ZWN0b3JBcnJheSgpKTsKKyAgICB9CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0
aW9uQ3JlYXRlZChXVEZNb3ZlKGFuaW1hdGlvblBheWxvYWQpKTsKK30KKwordm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9u
SWQpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5yZW1vdmUoYW5pbWF0aW9uSWQpOworCisgICAg
Ly8gVGhpcyBjYW4gYmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIEdDLiBEdWUgdG8gdGhlIHNpbmds
ZS1wcm9jZXNzIG1vZGVsIHVzZWQgaW4gV2ViS2l0MSwgdGhlCisgICAgLy8gZXZlbnQgbXVzdCBi
ZSBkaXNwYXRjaGVkIGZyb20gYSB0aW1lciB0byBwcmV2ZW50IHRoZSBmcm9udGVuZCBmcm9tIG1h
a2luZyBKUyBhbGxvY2F0aW9ucworICAgIC8vIHdoaWxlIHRoZSBHQyBpcyBzdGlsbCBhY3RpdmUu
CisgICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmFwcGVuZChhbmltYXRpb25JZCk7CisKKyAgICBp
ZiAoIW1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmlt
YXRpb25EZXN0cm95ZWRUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKK30KKwordm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpCit7CisgICAg
aWYgKCFtX3JlbW92ZWRBbmltYXRpb25JZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBmb3IgKGF1dG8mIGlkZW50aWZpZXIgOiBtX3JlbW92ZWRBbmltYXRpb25JZHMpCisgICAgICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25EZXN0cm95ZWQoaWRlbnRpZmllcik7CisK
KyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuY2xlYXIoKTsKK30KKwordm9pZCBJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6cmVzZXQoKQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsK
KworICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5jbGVhcigpOworCisgICAgaWYgKG1fYW5pbWF0
aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95
ZWRUaW1lci5zdG9wKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0b3BU
cmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZlQW5pbWF0aW9uJiBhbmltYXRp
b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckFuaW1hdGlvbkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckFuaW1hdGlvbkFnZW50LmgKaW5kZXggN2EyNGJiY2JiMWIzMzFkMTkwZGE2MGMwMGQyMWJk
OTM1NDhmYWIwMC4uMTAwMGM5NTgwOWE3ZTgwODI1YTU1ZjE4MTE0Njk0OTE2ZmI3OGE4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRp
b25BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQuaApAQCAtMjcsMTYgKzI3LDIwIEBACiAKICNpbmNsdWRlICJDb21wdXRl
ZEVmZmVjdFRpbWluZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgorI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRl
bmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgQW5pbWF0aW9uRWZmZWN0OwogY2xhc3MgRGVjbGFyYXRpdmVBbmlt
YXRpb247CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZlbnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNz
IEtleWZyYW1lRWZmZWN0OworY2xhc3MgUGFnZTsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKIAogdHlw
ZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CkBAIC01MywyMCArNTcsNDQgQEAgcHVibGljOgogICAg
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIEFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFu
ZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0Tm9kZShFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGludCogbm9kZUlkKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHJlc29sdmVBbmltYXRpb24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpIG92ZXJyaWRlOwogICAgIHZvaWQg
c3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFRyYWNr
aW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24KICAgICB2b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBLZXlmcmFt
ZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICB2b2lkIGRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZFNldFdlYkFuaW1hdGlv
bkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkFuaW1h
dGlvbihXZWJBbmltYXRpb24mKTsKICAgICB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdl
YkFuaW1hdGlvbiYpOworICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmKTsKIAogcHJpdmF0
ZToKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q+IGJ1
aWxkT2JqZWN0Rm9yRWZmZWN0KEFuaW1hdGlvbkVmZmVjdCopOworCisgICAgU3RyaW5nIGZpbmRB
bmltYXRpb25JZChXZWJBbmltYXRpb24mKTsKKyAgICBXZWJBbmltYXRpb24qIGFzc2VydEFuaW1h
dGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOworICAgIHZvaWQg
YmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mLCBib29sIGNhcHR1cmVCYWNrdHJhY2UpOworICAg
IHZvaWQgdW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOworICAgIHZv
aWQgYW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpOworICAgIHZvaWQgcmVzZXQoKTsKKwog
ICAgIHZvaWQgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFyYXRpdmVBbmlt
YXRpb24mKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250
ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPEluc3BlY3Rv
cjo6QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiAKKyAg
ICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXI7CisgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOworCisgICAgSGFzaE1hcDxTdHJpbmcsIFdl
YkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7CisgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1v
dmVkQW5pbWF0aW9uSWRzOworICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXI7CisK
ICAgICBzdHJ1Y3QgVHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0aW9uRGF0YSB7CiAgICAgICAgIFN0
cmluZyB0cmFja2luZ0FuaW1hdGlvbklkOwogICAgICAgICBDb21wdXRlZEVmZmVjdFRpbWluZyBs
YXN0Q29tcHV0ZWRUaW1pbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGFlY2M3OWJjMGNhNTZmYjY1ZmUwMzMw
ZjA4ZTRlZTY4OGJmODFlODkuLjBmNDZhMzAzM2FlZjQwMDdmNmViODM3YTYxMDVmMDVhMGM1OTA2
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCkBAIC01NjYsNyArNTY2LDcgQEAgaW50IEluc3BlY3RvckRPTUFnZW50
OjpwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1l
bnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQobm9kZVRvUHVzaCk7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
ZXJyb3JTdHJpbmcsIG5vZGVUb1B1c2gpOwogfQogCiBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6
bm9kZUZvcklkKGludCBpZCkKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwg
Y29ucwogICAgIH0KIAogICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcXVlcnlSZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkpCi0gICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKGVsZW1lbnQpOworICAgICAgICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChlcnJvclN0cmluZywgZWxlbWVudCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1
ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25z
dCBTdHJpbmcmIHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mIHJlc3VsdCkK
QEAgLTYzOSwxMyArNjM5LDI0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0
b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjCiB9CiAKIGludCBJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKiBub2RlVG9QdXNo
KQoreworICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQoaWdub3JlZCwgbm9kZVRvUHVzaCk7Cit9CisKK2ludCBJbnNwZWN0b3JET01BZ2Vu
dDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyBlcnJvclN0cmluZywgTm9kZSog
bm9kZVRvUHVzaCkKIHsKICAgICBBU1NFUlQobm9kZVRvUHVzaCk7ICAvLyBJbnZhbGlkIGlucHV0
CiAKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3VtZW50KSB7CisgICAgICAg
IGVycm9yU3RyaW5nID0gIk1pc3NpbmcgZG9jdW1lbnQiX3M7CiAgICAgICAgIHJldHVybiAwOwot
ICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1lbnQpKQorICAg
IH0KKworICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1lbnQp
KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRvY3VtZW50IG11c3QgaGF2ZSBiZWVuIHJlcXVl
c3RlZCJfczsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgLy8gUmV0dXJuIGlkIGlu
IGNhc2UgdGhlIG5vZGUgaXMga25vd24uCiAgICAgaW50IHJlc3VsdCA9IG1fZG9jdW1lbnROb2Rl
VG9JZE1hcC5nZXQobm9kZVRvUHVzaCk7CkBAIC03OTAsNyArODAxLDcgQEAgdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9k
ZUlkLCBjb25zdAogICAgIGlmICghbV9kb21FZGl0b3ItPnJlbW92ZUNoaWxkKCpwYXJlbnQsICpv
bGROb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgICpuZXdJZCA9IHB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3RWxlbWVudC5wdHIoKSk7CisgICAgKm5ld0lkID0gcHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3RWxlbWVudC5wdHIoKSk7CiAgICAg
aWYgKG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkKICAgICAgICAgcHVzaENo
aWxkTm9kZXNUb0Zyb250ZW5kKCpuZXdJZCk7CiB9CkBAIC04MzAsNyArODQxLDcgQEAgdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
aW50IG5vZGVJZCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCBuZXdJ
ZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7CisgICAgaW50IG5ld0lkID0gcHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3Tm9kZSk7CiAKICAgICBib29sIGNo
aWxkcmVuUmVxdWVzdGVkID0gbV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhub2RlSWQpOwog
ICAgIGlmIChjaGlsZHJlblJlcXVlc3RlZCkKQEAgLTE0MjIsNyArMTQzMyw3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2Rl
SWQsIGludCB0YXJnZXRFCiAgICAgaWYgKCFtX2RvbUVkaXRvci0+aW5zZXJ0QmVmb3JlKCp0YXJn
ZXRFbGVtZW50LCAqbm9kZSwgYW5jaG9yTm9kZSwgZXJyb3JTdHJpbmcpKQogICAgICAgICByZXR1
cm47CiAKLSAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAg
ICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuZG8oRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nKQpAQCAtMTQ5OCwxMSArMTUwOSwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRB
dHRyaWJ1dGVzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgUmVmUAogICAg
IHJlc3VsdCA9IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhlbGVtZW50KTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJl
cXVlc3ROb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCwgaW50KiBub2RlSWQpCiB7CiAgICAgTm9kZSogbm9kZSA9IG5vZGVGb3JPYmplY3RJZChvYmpl
Y3RJZCk7CiAgICAgaWYgKG5vZGUpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zy
b250ZW5kKG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChl
cnJvclN0cmluZywgbm9kZSk7CiAgICAgZWxzZQogICAgICAgICAqbm9kZUlkID0gMDsKIH0KQEAg
LTI2NDYsNyArMjY1Nyw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yT2JqZWN0
SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hO
b2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcGF0aCwgaW50KiBub2RlSWQpCiB7CiAgICAgaWYgKE5vZGUqIG5vZGUgPSBub2RlRm9yUGF0
aChwYXRoKSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7
CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBu
b2RlKTsKICAgICBlbHNlCiAgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgbm9kZSBmb3Ig
Z2l2ZW4gcGF0aCJfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA1MTYzOWFiZWI4NGY0ZDk1ZGVkM2Y0ZmI2NDA5
YWQ4ZjYyYTI4OTRlLi43ZGYwZTgzZWI1M2Q3NWM0MWM1NTRmMTQwMTIzNWJhMjE3MTk0MTRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01B
Z2VudC5oCkBAIC0xODAsNiArMTgwLDggQEAgcHVibGljOgogCiAgICAgaW50IHB1c2hOb2RlVG9G
cm9udGVuZChOb2RlKik7CiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYs
IGludCBkb2N1bWVudE5vZGVJZCwgTm9kZSopOworICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKE5vZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZywg
Tm9kZSopOwogICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsKICAgICBpbnQgYm91bmRO
b2RlSWQoY29uc3QgTm9kZSopOwogCkBAIC0yMTcsNyArMjE5LDYgQEAgcHJpdmF0ZToKICAgICBO
b2RlKiBhc3NlcnRFZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKICAgICBF
bGVtZW50KiBhc3NlcnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsK
IAotICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKICAgICB2b2lkIHB1c2hD
aGlsZE5vZGVzVG9Gcm9udGVuZChpbnQgbm9kZUlkLCBpbnQgZGVwdGggPSAxKTsKIAogICAgIFJl
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9yTm9kZShOb2Rl
KiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMKaW5kZXggN2E3NDdhNjk0OTMzNDdmYzE4ZjBkMWNmMDU1N2Y1YzllZjkwNmE1Ny4uODZlOTk0
ZjFiNmQ5MjNjZTA3YTgwZjQ1OWViYTE1ZTgzODEyNWZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzCkBAIC0xMjAsMTcgKzEyMCwyMiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwg
aXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSBlcnJvciBvYmplY3RzIl0gPSAiQWxsIGl0
ZQogbG9jYWxpemVkU3RyaW5nc1siQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11c3QgYmUg
bm9uLWVtcHR5IHN0cmluZ3MiXSA9ICJBbGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBi
ZSBub24tZW1wdHkgc3RyaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwgaXRlbXMgaW4gXHUw
MDIyJXNcdTAwMjIgbXVzdCBiZSB2YWxpZCBET00gbm9kZXMiXSA9ICJBbGwgaXRlbXMgaW4gXHUw
MDIyJXNcdTAwMjIgbXVzdCBiZSB2YWxpZCBET00gbm9kZXMiOwogbG9jYWxpemVkU3RyaW5nc1si
QWxsb3cgTWVkaWEgQ2FwdHVyZSBvbiBJbnNlY3VyZSBTaXRlcyJdID0gIkFsbG93IE1lZGlhIENh
cHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiOworbG9jYWxpemVkU3RyaW5nc1siQWx0ZXJuYXRlIl0g
PSAiQWx0ZXJuYXRlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFsdGVybmF0ZSBSZXZlcnNlIl0gPSAi
QWx0ZXJuYXRlIFJldmVyc2UiOwogbG9jYWxpemVkU3RyaW5nc1siQW4gZXJyb3Igb2NjdXJyZWQg
dHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291cmNlLiJdID0gIkFuIGVycm9yIG9jY3VycmVkIHRyeWlu
ZyB0byBsb2FkIHRoZSByZXNvdXJjZS4iOwogbG9jYWxpemVkU3RyaW5nc1siQW4gZXJyb3Igb2Nj
dXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRhYmxlLiJdID0gIkFuIGVy
cm9yIG9jY3VycmVkIHRyeWluZyB0byByZWFkIHRoZSBcdTIwMUMlc1x1MjAxRCB0YWJsZS4iOwog
bG9jYWxpemVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciAlcyBvY2N1cnJlZC4iXSA9ICJB
biB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiB1
bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJy
ZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuZ2xlIl0gPSAiQW5nbGUiOworbG9jYWxpemVkU3Ry
aW5nc1siQW5pbWF0aW9uIl0gPSAiQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFuaW1h
dGlvbiAlZCJdID0gIkFuaW1hdGlvbiAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24g
RnJhbWUgJWQgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgQ2FuY2VsZWQiOwogbG9j
YWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIl0gPSAiQW5pbWF0aW9uIEZy
YW1lICVkIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBSZXF1
ZXN0ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVzdGVkIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxl
ZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgRmlyZWQiXSA9ICJBbmltYXRp
b24gRnJhbWUgRmlyZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lIFJlcXVl
c3RlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0ZWQiOworbG9jYWxpemVkU3RyaW5nc1si
QW5pbWF0aW9uIFRhcmdldCJdID0gIkFuaW1hdGlvbiBUYXJnZXQiOwogbG9jYWxpemVkU3RyaW5n
c1siQW5vbnltb3VzIFNjcmlwdCAlZCJdID0gIkFub255bW91cyBTY3JpcHQgJWQiOwogbG9jYWxp
emVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdHMiXSA9ICJBbm9ueW1vdXMgU2NyaXB0cyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQiXSA9ICJBbm9ueW1vdXMg
U3R5bGUgU2hlZXQgJWQiOwpAQCAtMTY5LDE2ICsxNzQsMTkgQEAgbG9jYWxpemVkU3RyaW5nc1si
QXZlcmFnZTogJXMiXSA9ICJBdmVyYWdlOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCTVAiXSA9
ICJCTVAiOwogbG9jYWxpemVkU3RyaW5nc1siQmFjayAoJXMpIl0gPSAiQmFjayAoJXMpIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkJhY2t0cmFjZSJdID0gIkJhY2t0cmFjZSI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJCYWNrd2FyZHMiXSA9ICJCYWNrd2FyZHMiOwogbG9jYWxpemVkU3RyaW5nc1siQmFzaWMi
XSA9ICJCYXNpYyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCZWFjb24iXSA9ICJCZWFjb24iOwogbG9j
YWxpemVkU3RyaW5nc1siQmVhY29ucyJdID0gIkJlYWNvbnMiOwogbG9jYWxpemVkU3RyaW5nc1si
QmluYXJ5IEZyYW1lIl0gPSAiQmluYXJ5IEZyYW1lIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJpbmRp
bmciXSA9ICJCaW5kaW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIkJpdG1hcCBSZW5kZXJlciJdID0g
IkJpdG1hcCBSZW5kZXJlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbGFja2JveCJdID0gIkJsYWNr
Ym94IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJsYWNrYm94IFNjcmlwdCJdID0gIkJsYWNrYm94IFNj
cmlwdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbGFja2JveCBzY3JpcHQgdG8gaWdub3JlIGl0IHdo
ZW4gZGVidWdnaW5nIl0gPSAiQmxhY2tib3ggc2NyaXB0IHRvIGlnbm9yZSBpdCB3aGVuIGRlYnVn
Z2luZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbG9jayBWYXJpYWJsZXMiXSA9ICJCbG9jayBWYXJp
YWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQm9keToiXSA9ICJCb2R5OiI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJCb3RoIl0gPSAiQm90aCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb3VuZGFyeSJdID0g
IkJvdW5kYXJ5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJveCBNb2RlbCJdID0gIkJveCBNb2RlbCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJCcmVhayBvbiJdID0gIkJyZWFrIG9uIjsKQEAgLTIwMSw5ICsy
MDksMTEgQEAgbG9jYWxpemVkU3RyaW5nc1siQ1BVIl0gPSAiQ1BVIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkNQVSBVc2FnZSJdID0gIkNQVSBVc2FnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1AgSGFz
aCJdID0gIkNTUCBIYXNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRpb24iXSA9ICJD
U1MgQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRpb25zIl0gPSAiQ1NT
IEFuaW1hdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENhbnZhcyJdID0gIkNTUyBDYW52
YXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENoYW5nZXM6Il0gPSAiQ1NTIENoYW5nZXM6IjsK
IGxvY2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0aW9uIl0gPSAiQ1NTIFRyYW5zaXRpb24iOwor
bG9jYWxpemVkU3RyaW5nc1siQ1NTIFRyYW5zaXRpb25zIl0gPSAiQ1NTIFRyYW5zaXRpb25zIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIwMUQiXSA9ICJDU1MgY2Fu
dmFzIFx1MjAxQyVzXHUyMDFEIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhY2hlZCJdID0gIkNhY2hl
ZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWxsIEZyYW1lcyBUcnVuY2F0ZWQiXSA9ICJDYWxsIEZy
YW1lcyBUcnVuY2F0ZWQiOwpAQCAtMzc3LDYgKzM4Nyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkRl
dmljZSAlZCJdID0gIkRldmljZSAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZXZpY2UgU2V0dGlu
Z3MiXSA9ICJEZXZpY2UgU2V0dGluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siRGlhZ25vc2VzIGNv
bW1vbiBhY2Nlc3NpYmlsaXR5IHByb2JsZW1zIGFmZmVjdGluZyBzY3JlZW4gcmVhZGVycyBhbmQg
b3RoZXIgYXNzaXN0aXZlIHRlY2hub2xvZ3kuIl0gPSAiRGlhZ25vc2VzIGNvbW1vbiBhY2Nlc3Np
YmlsaXR5IHByb2JsZW1zIGFmZmVjdGluZyBzY3JlZW4gcmVhZGVycyBhbmQgb3RoZXIgYXNzaXN0
aXZlIHRlY2hub2xvZ3kuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpbWVuc2lvbnMiXSA9ICJEaW1l
bnNpb25zIjsKK2xvY2FsaXplZFN0cmluZ3NbIkRpcmVjdGlvbiJdID0gIkRpcmVjdGlvbiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIEJyZWFrcG9pbnQiXSA9ICJEaXNhYmxlIEJyZWFrcG9p
bnQiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50cyJdID0gIkRpc2FibGUg
QnJlYWtwb2ludHMiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBEZXNjZW5kYW50IEJyZWFr
cG9pbnRzIl0gPSAiRGlzYWJsZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIjsKQEAgLTQxOSw2ICs0
MzAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJEdXJhdGlvbjogU2hvcnQiXSA9ICJEdXJhdGlvbjog
U2hvcnQiOwogbG9jYWxpemVkU3RyaW5nc1siRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhl
IHBhcmVudCBlbGVtZW50Il0gPSAiRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhlIHBhcmVu
dCBlbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9y
IHRoZSBzZWxlY3RlZCBlbGVtZW50Il0gPSAiRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhl
IHNlbGVjdGVkIGVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRHluYW1pY2FsbHkgY2FsY3Vs
YXRlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQgYW5kIGRpZCBub3QgbWF0Y2giXSA9ICJEeW5h
bWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0ZWQgZWxlbWVudCBhbmQgZGlkIG5vdCBt
YXRjaCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFYXNpbmciXSA9ICJFYXNpbmciOwogLyogTGFiZWwg
Zm9yIGEgZ3VpZGUgd2l0aGluIHRoZSBjb2xvciBwaWNrZXIgKi8KIGxvY2FsaXplZFN0cmluZ3Nb
IkVkZ2Ugb2Ygc1JHQiBjb2xvciBzcGFjZSJdID0gIkVkZ2Ugb2Ygc1JHQiBjb2xvciBzcGFjZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0Il0gPSAiRWRpdCI7CkBAIC00MzAsNiArNDQyLDcgQEAg
bG9jYWxpemVkU3RyaW5nc1siRWRpdCBcdTIwMUNzcHJpbmdcdTIwMUQgZnVuY3Rpb24iXSA9ICJF
ZGl0IFx1MjAxQ3NwcmluZ1x1MjAxRAogbG9jYWxpemVkU3RyaW5nc1siRWRpdCBjb25maWd1cmF0
aW9uIl0gPSAiRWRpdCBjb25maWd1cmF0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVkaXQgY3Vz
dG9tIGdyYWRpZW50Il0gPSAiRWRpdCBjdXN0b20gZ3JhZGllbnQiOwogbG9jYWxpemVkU3RyaW5n
c1siRWRpdGluZyBhdWRpdHMiXSA9ICJFZGl0aW5nIGF1ZGl0cyI7Citsb2NhbGl6ZWRTdHJpbmdz
WyJFZmZlY3QiXSA9ICJFZmZlY3QiOwogbG9jYWxpemVkU3RyaW5nc1siRWxlbWVudCJdID0gIkVs
ZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRWxlbWVudCBTZWxlY3Rpb246Il0gPSAiRWxlbWVu
dCBTZWxlY3Rpb246IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQgY2xpcHMgY29tcG9zaXRp
bmcgZGVzY2VuZGFudHMiXSA9ICJFbGVtZW50IGNsaXBzIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRz
IjsKQEAgLTQ3OCw2ICs0OTEsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgc291cmNlIG1h
cHMiXSA9ICJFbmFibGUgc291cmNlIG1hcHMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5hYmxlZCJd
ID0gIkVuYWJsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RlZCJdID0gIkVuY29kZWQiOwog
bG9jYWxpemVkU3RyaW5nc1siRW5jb2RpbmciXSA9ICJFbmNvZGluZyI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJFbmQgRGVsYXkiXSA9ICJFbmQgRGVsYXkiOworbG9jYWxpemVkU3RyaW5nc1siRW5kIERl
bGF5ICVzIl0gPSAiRW5kIERlbGF5ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuZXJneSBJbXBh
Y3QiXSA9ICJFbmVyZ3kgSW1wYWN0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuc3VyZSBhcmlhLWhp
ZGRlbj1cdTAwMjIlc1x1MDAyMiBpcyBub3QgdXNlZC4iXSA9ICJFbnN1cmUgYXJpYS1oaWRkZW49
XHUwMDIyJXNcdTAwMjIgaXMgbm90IHVzZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuc3VyZSB0
aGF0IFx1MDAyMiVzXHUwMDIyIGlzIHNwZWxsZWQgY29ycmVjdGx5LiJdID0gIkVuc3VyZSB0aGF0
IFx1MDAyMiVzXHUwMDIyIGlzIHNwZWxsZWQgY29ycmVjdGx5LiI7CkBAIC01MzcsNiArNTUyLDcg
QEAgbG9jYWxpemVkU3RyaW5nc1siRmV0Y2giXSA9ICJGZXRjaCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJGZXRjaGVzIl0gPSAiRmV0Y2hlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWxlIG9yIFJlc291
cmNlIl0gPSAiRmlsZSBvciBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWxlbmFtZSJd
ID0gIkZpbGVuYW1lIjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGwiXSA9ICJGaWxsIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkZpbHRlciJdID0gIkZpbHRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWx0
ZXIgRnVsbCBVUkwiXSA9ICJGaWx0ZXIgRnVsbCBVUkwiOwogbG9jYWxpemVkU3RyaW5nc1siRmls
dGVyOiJdID0gIkZpbHRlcjoiOwpAQCAtNTY1LDYgKzU4MSw3IEBAIGxvY2FsaXplZFN0cmluZ3Nb
IkZvcm1hdDogUkdCQSJdID0gIkZvcm1hdDogUkdCQSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGb3Jt
YXQ6IFNob3J0IEhleCJdID0gIkZvcm1hdDogU2hvcnQgSGV4IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkZvcm1hdDogU2hvcnQgSGV4IHdpdGggQWxwaGEiXSA9ICJGb3JtYXQ6IFNob3J0IEhleCB3aXRo
IEFscGhhIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZvcndhcmQgKCVzKSJdID0gIkZvcndhcmQgKCVz
KSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJGb3J3YXJkcyJdID0gIkZvcndhcmRzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkZyYWdtZW50Il0gPSAiRnJhZ21lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRnJh
Z21lbnQgU2hhZGVyIl0gPSAiRnJhZ21lbnQgU2hhZGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZy
YW1lICVkIl0gPSAiRnJhbWUgJWQiOwpAQCAtNTg1LDYgKzYwMiw3IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIkdsb2JhbCBDb2RlIl0gPSAiR2xvYmFsIENvZGUiOwogbG9jYWxpemVkU3RyaW5nc1siR2xv
YmFsIExleGljYWwgRW52aXJvbm1lbnQiXSA9ICJHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVudCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgVmFyaWFibGVzIl0gPSAiR2xvYmFsIFZhcmlhYmxl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcmFtbWFyIl0gPSAiR3JhbW1hciI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJHcmFwaGljcyJdID0gIkdyYXBoaWNzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3Vw
Il0gPSAiR3JvdXAiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAgQnkgUmVzb3VyY2UiXSA9ICJH
cm91cCBCeSBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBNZWRpYSBSZXF1ZXN0
cyJdID0gIkdyb3VwIE1lZGlhIFJlcXVlc3RzIjsKQEAgLTYzMiw2ICs2NTAsNyBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJJbWFnZXMiXSA9ICJJbWFnZXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1hZ2Vz
OiJdID0gIkltYWdlczoiOwogbG9jYWxpemVkU3RyaW5nc1siSW1tZWRpYXRlIFBhdXNlIFJlcXVl
c3RlZCJdID0gIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1si
SW1wb3J0Il0gPSAiSW1wb3J0IjsKK2xvY2FsaXplZFN0cmluZ3NbIkltcG9ydCBSZWNvcmRpbmci
XSA9ICJJbXBvcnQgUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIl0gPSAi
SW1wb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgLSAlcyJdID0gIkltcG9ydGVk
IC0gJXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgXHUyMDE0ICVzIl0gPSAiSW1wb3J0
ZWQgXHUyMDE0ICVzIjsKQEAgLTY2MCw2ICs2NzksNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJJbnZv
a2UgZ2V0dGVyIl0gPSAiSW52b2tlIGdldHRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJdCBpcyBl
dmFsdWF0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGdsb2JhbCBvYmplY3QgaXMgY3JlYXRlZCwg
YmVmb3JlIGFueSBvdGhlciBjb250ZW50IGhhcyBsb2FkZWQuIl0gPSAiSXQgaXMgZXZhbHVhdGVk
IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGNyZWF0ZWQsIGJlZm9yZSBh
bnkgb3RoZXIgY29udGVudCBoYXMgbG9hZGVkLiI7CiAvKiBUb29sdGlwIGZvciBhIHRpbWVzdGFt
cCBtYXJrZXIgdGhhdCByZXByZXNlbnRzIHdoZW4gYSBDU1MgYW5pbWF0aW9uL3RyYW5zaXRpb24g
aXRlcmF0ZXMgKi8KIGxvY2FsaXplZFN0cmluZ3NbIkl0ZXJhdGlvbiJdID0gIkl0ZXJhdGlvbiI7
Citsb2NhbGl6ZWRTdHJpbmdzWyJJdGVyYXRpb25zIl0gPSAiSXRlcmF0aW9ucyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJKUDIiXSA9ICJKUDIiOwogbG9jYWxpemVkU3RyaW5nc1siSlBFRyJdID0gIkpQ
RUciOwogbG9jYWxpemVkU3RyaW5nc1siSmF2YVNjcmlwdCJdID0gIkphdmFTY3JpcHQiOwpAQCAt
NjY5LDYgKzY4OSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkphdmFTY3JpcHQgQ29udGV4dCJdID0g
IkphdmFTY3JpcHQgQ29udGV4dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJKdW1wIHRvIERlZmluaXRp
b24iXSA9ICJKdW1wIHRvIERlZmluaXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siS2V5Il0gPSAi
S2V5IjsKIGxvY2FsaXplZFN0cmluZ3NbIktleSBQYXRoIl0gPSAiS2V5IFBhdGgiOworbG9jYWxp
emVkU3RyaW5nc1siS2V5ZnJhbWVzIl0gPSAiS2V5ZnJhbWVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkxhYmVsIl0gPSAiTGFiZWwiOwogbG9jYWxpemVkU3RyaW5nc1siTGF0ZW5jeSJdID0gIkxhdGVu
Y3kiOwogbG9jYWxpemVkU3RyaW5nc1siTGF5ZXIgQ291bnQ6ICVkIl0gPSAiTGF5ZXIgQ291bnQ6
ICVkIjsKQEAgLTY5Niw2ICs3MTcsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBTdG9yYWdl
Il0gPSAiTG9jYWwgU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBWYXJpYWJsZXMi
XSA9ICJMb2NhbCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYXRlZCBhdCAlcyJd
ID0gIkxvY2F0ZWQgYXQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYXRpb24iXSA9ICJMb2Nh
dGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQW5pbWF0aW9uIl0gPSAiTG9nIEFuaW1hdGlv
biI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQ2FudmFzIENvbnRleHQiXSA9ICJMb2cgQ2FudmFz
IENvbnRleHQiOwogLyogTG9nIChwcmludCkgRE9NIGVsZW1lbnQgdG8gQ29uc29sZSAqLwogbG9j
YWxpemVkU3RyaW5nc1siTG9nIEVsZW1lbnQiXSA9ICJMb2cgRWxlbWVudCI7CkBAIC03NjgsNiAr
NzkwLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm8gRW5hYmxlZCBBdWRpdHMiXSA9ICJObyBFbmFi
bGVkIEF1ZGl0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFbnRyaWVzIl0gPSAiTm8gRW50cmll
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFdmVudCBMaXN0ZW5lcnMiXSA9ICJObyBFdmVudCBM
aXN0ZW5lcnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRmlsdGVyIFJlc3VsdHMiXSA9ICJObyBG
aWx0ZXIgUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBLZXlmcmFtZXMiXSA9ICJObyBL
ZXlmcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gTGF5ZXIgQXZhaWxhYmxlIl0gPSAiTm8g
TGF5ZXIgQXZhaWxhYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIE92ZXJyaWRlcyJdID0gIk5v
IE92ZXJyaWRlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBQYXJhbWV0ZXJzIl0gPSAiTm8gUGFy
YW1ldGVycyI7CkBAIC03NzksNiArODAyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzcG9u
c2UgSGVhZGVycyJdID0gIk5vIFJlc3BvbnNlIEhlYWRlcnMiOwogbG9jYWxpemVkU3RyaW5nc1si
Tm8gUmVzdWx0Il0gPSAiTm8gUmVzdWx0IjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFJlc3VsdHMg
Rm91bmQiXSA9ICJObyBSZXN1bHRzIEZvdW5kIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFNlYXJj
aCBSZXN1bHRzIl0gPSAiTm8gU2VhcmNoIFJlc3VsdHMiOworbG9jYWxpemVkU3RyaW5nc1siTm8g
U3R5bGVzIl0gPSAiTm8gU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFdhdGNoIEV4cHJl
c3Npb25zIl0gPSAiTm8gV2F0Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8g
YXVkaXQgc2VsZWN0ZWQiXSA9ICJObyBhdWRpdCBzZWxlY3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iXSA9ICJObyBjZXJ0aWZpY2F0
ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iOwpAQCAtNzk4LDYgKzgyMiw3IEBAIGxvY2FsaXplZFN0
cmluZ3NbIk5vZGUiXSA9ICJOb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vZGUgUmVtb3ZlZCJd
ID0gIk5vZGUgUmVtb3ZlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb2RlcyJdID0gIk5vZGVzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5vbmUiXSA9ICJOb25lIjsKK2xvY2FsaXplZFN0cmluZ3NbIk5v
cm1hbCJdID0gIk5vcm1hbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb3QgZm91bmQiXSA9ICJOb3Qg
Zm91bmQiOwogbG9jYWxpemVkU3RyaW5nc1siT2JqZWN0IEdyYXBoIl0gPSAiT2JqZWN0IEdyYXBo
IjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVjdCBTdG9yZSJdID0gIk9iamVjdCBTdG9yZSI7CkBA
IC05MTEsNyArOTM2LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVkaXJlY3RzIl0gPSAiUmVkaXJl
Y3RzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZmVyZW5jZSBJc3N1ZSJdID0gIlJlZmVyZW5jZSBJ
c3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZsZWN0aW9uIl0gPSAiUmVmbGVjdGlvbiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIl0gPSAiUmVmcmVzaCI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJSZWZyZXNoIGFsbCJdID0gIlJlZnJlc2ggYWxsIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZnJl
c2ggd2F0Y2ggZXhwcmVzc2lvbnMiXSA9ICJSZWZyZXNoIHdhdGNoIGV4cHJlc3Npb25zIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiJdID0gIlJl
Z2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWd1
bGFyIEV4cHJlc3Npb24iXSA9ICJSZWd1bGFyIEV4cHJlc3Npb24iOwpAQCAtOTc5LDYgKzEwMDMs
NyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gTmV0d29yayBUYWIiXSA9ICJSZXZlYWwg
aW4gTmV0d29yayBUYWIiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE9yaWdpbmFsIFJl
c291cmNlIl0gPSAiUmV2ZWFsIGluIE9yaWdpbmFsIFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlJldmVhbCBpbiBTb3VyY2VzIFRhYiJdID0gIlJldmVhbCBpbiBTb3VyY2VzIFRhYiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gU3R5bGUgU2hlZXQiXSA9ICJSZXZlYWwgaW4gU3R5
bGUgU2hlZXQiOworbG9jYWxpemVkU3RyaW5nc1siUmV2ZXJzZSJdID0gIlJldmVyc2UiOwogbG9j
YWxpemVkU3RyaW5nc1siUm9sZSJdID0gIlJvbGUiOwogbG9jYWxpemVkU3RyaW5nc1siUnVuICVk
Il0gPSAiUnVuICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJ1biBjb25zb2xlIGNvbW1hbmRzIGFz
IGlmIGluc2lkZSBhIHVzZXIgZ2VzdHVyZSJdID0gIlJ1biBjb25zb2xlIGNvbW1hbmRzIGFzIGlm
IGluc2lkZSBhIHVzZXIgZ2VzdHVyZSI7CkBAIC0xMDIxLDYgKzEwNDYsNyBAQCBsb2NhbGl6ZWRT
dHJpbmdzWyJTZWN1cml0eSBPcmlnaW4iXSA9ICJTZWN1cml0eSBPcmlnaW4iOwogbG9jYWxpemVk
U3RyaW5nc1siU2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90Il0gPSAiU2VsZWN0IGJhc2VsaW5lIHNu
YXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBjb21wYXJpc29uIHNuYXBzaG90Il0g
PSAiU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0
ZWQiXSA9ICJTZWxlY3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBBbmltYXRpb24i
XSA9ICJTZWxlY3RlZCBBbmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgQ2Fu
dmFzIENvbnRleHQiXSA9ICJTZWxlY3RlZCBDYW52YXMgQ29udGV4dCI7CiAvKiBTZWxlY3RlZCBE
T00gZWxlbWVudCAqLwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgRWxlbWVudCJdID0gIlNl
bGVjdGVkIEVsZW1lbnQiOwpAQCAtMTEwNCw2ICsxMTMwLDggQEAgbG9jYWxpemVkU3RyaW5nc1si
U3BlbGxpbmciXSA9ICJTcGVsbGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFnaW5nOiJdID0g
IlN0YWdpbmc6IjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YWxsZWQiXSA9ICJTdGFsbGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlN0YXJ0Il0gPSAiU3RhcnQiOworbG9jYWxpemVkU3RyaW5nc1siU3Rh
cnQgRGVsYXkiXSA9ICJTdGFydCBEZWxheSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBEZWxh
eSAlcyJdID0gIlN0YXJ0IERlbGF5ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0IFRpbWUi
XSA9ICJTdGFydCBUaW1lIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0IGVsZW1lbnQgc2VsZWN0
aW9uICglcykiXSA9ICJTdGFydCBlbGVtZW50IHNlbGVjdGlvbiAoJXMpIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlN0YXJ0IHJlY29yZGluZyAoJXMpXG5DcmVhdGUgbmV3IHJlY29yZGluZyAoJXMpIl0g
PSAiU3RhcnQgcmVjb3JkaW5nICglcylcbkNyZWF0ZSBuZXcgcmVjb3JkaW5nICglcykiOwpAQCAt
MTE3Niw2ICsxMjA0LDggQEAgbG9jYWxpemVkU3RyaW5nc1siVGhlc2UgdGVzdHMgc2VydmUgYXMg
YSBkZW1vbnN0cmF0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFuZAogbG9jYWxpemVkU3RyaW5n
c1siVGhpcyBSZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSJdID0g
IlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUiOwogbG9j
YWxpemVkU3RyaW5nc1siVGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiXSA9ICJU
aGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJU
aGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEiXSA9ICJU
aGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEiOworbG9j
YWxpemVkU3RyaW5nc1siVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiJdID0gIlRoaXMg
YW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iOworbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhbmlt
YXRpb24gaGFzIG5vIGtleWZyYW1lcy4iXSA9ICJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJh
bWVzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiXSA9
ICJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBp
cyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIl0gPSAiVGhp
cyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJyb3JzIGFyZSBzaG93
bi4gVGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRpb24gZXJyb3JzIHdp
bGwgYXBwZWFyIGluIHRoZSBzYW1lIHdheS4iXSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93
IGVycm9ycyBhcmUgc2hvd24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBidXQgZXhl
Y3V0aW9uIGVycm9ycyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIjsKQEAgLTEyODgsMTIg
KzEzMTgsMTcgQEAgbG9jYWxpemVkU3RyaW5nc1siVmlldyBTaGFkZXIiXSA9ICJWaWV3IFNoYWRl
ciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3cG9ydCJdID0gIlZpZXdwb3J0IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlZpc2libGUiXSA9ICJWaXNpYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRp
bmciXSA9ICJXYWl0aW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFuaW1hdGlv
bnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5
IENTUy4iOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVk
IGJ5IEphdmFTY3JpcHQuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEph
dmFTY3JpcHQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0
cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIl0gPSAiV2FpdGluZyBmb3IgY2FudmFzIGNvbnRl
eHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGlu
ZyBmb3IgZnJhbWVzXHUyMDI2Il0gPSAiV2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2IjsKK2xvY2Fs
aXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiJdID0g
IldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJXYXJuaW5nOiAiXSA9ICJXYXJuaW5nOiAiOwogbG9jYWxpemVkU3RyaW5nc1siV2Fybmlu
Z3MiXSA9ICJXYXJuaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRjaCBFeHByZXNzaW9ucyJd
ID0gIldhdGNoIEV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhdGVyZmFsbCJdID0g
IldhdGVyZmFsbCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIl0gPSAiV2ViIEFu
aW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9ucyJdID0gIldlYiBBbmlt
YXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNwZWN0b3IiXSA9ICJXZWIgSW5zcGVj
dG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBQYWdlIl0gPSAiV2ViIFBhZ2UiOwogbG9jYWxp
emVkU3RyaW5nc1siV2ViS2l0IFRocmVhZHMiXSA9ICJXZWJLaXQgVGhyZWFkcyI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggYTgy
Y2NmODM0YmQ0Y2NlMGQ3MWJiZTM3YWU5NjU2ZDZmYmM5OTA2YS4uZTgwNzg4NzI5Y2RmNDA0NjMx
MjkxZmMyZTMxZjgxYzJmNDkxZWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTIzLDYgKzEyMyw3IEBAIFdJLmxvYWRlZCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3JrZXJNYW5h
Z2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRE9NRGVidWdnZXJN
YW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNhbnZhc01hbmFnZXIs
CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0aW9uTWFuYWdlciwK
ICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAgLTE0Nyw3ICsxNDgsNyBA
QCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50Vmll
dy5UeXBlLAogICAgICAgICBXSS5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAg
IFdJLlN0b3JhZ2VUYWJDb250ZW50Vmlldy5UeXBlLAotICAgICAgICBXSS5DYW52YXNUYWJDb250
ZW50Vmlldy5UeXBlLAorICAgICAgICBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUsCiAg
ICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuQ29uc29sZVRh
YkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgXSk7CkBAIC0xNzMsNiArMTc0LDEzIEBAIFdJLmxvYWRl
ZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIFdJLl9zZWxlY3RlZFRhYkluZGV4U2V0dGluZy52
YWx1ZSA9IHNvdXJjZXNJbmRleDsKICAgICB9CiAKKyAgICAvLyBDYW52YXMgVGFiIHdhcyByZW5h
bWVkIHRvIEdyYXBoaWNzIFRhYi4KKyAgICBsZXQgY2FudmFzSW5kZXggPSBXSS5fb3BlblRhYnNT
ZXR0aW5nLnZhbHVlLmluZGV4T2YoImNhbnZhcyIpOworICAgIGlmIChjYW52YXNJbmRleCA+PSAw
KSB7CisgICAgICAgIFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuc3BsaWNlKGNhbnZhc0luZGV4
LCAxLCBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUpOworICAgICAgICBXSS5fb3BlblRh
YnNTZXR0aW5nLnNhdmUoKTsKKyAgICB9CisKICAgICAvLyBTdGF0ZS4KICAgICBXSS5wcmludFN0
eWxlc0VuYWJsZWQgPSBmYWxzZTsKICAgICBXSS5zZXRab29tRmFjdG9yKFdJLnNldHRpbmdzLnpv
b21GYWN0b3IudmFsdWUpOwpAQCAtNDY1LDcgKzQ3Myw3IEBAIFdJLmNvbnRlbnRMb2FkZWQgPSBm
dW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50VmlldywKICAgICAgICAgV0ku
VGltZWxpbmVUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuU3RvcmFnZVRhYkNvbnRlbnRWaWV3
LAotICAgICAgICBXSS5DYW52YXNUYWJDb250ZW50VmlldywKKyAgICAgICAgV0kuR3JhcGhpY3NU
YWJDb250ZW50VmlldywKICAgICAgICAgV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcsCiAgICAgICAg
IFdJLkF1ZGl0VGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkNvbnNvbGVUYWJDb250ZW50Vmll
dywKQEAgLTEyMjIsMTEgKzEyMzAsOCBAQCBXSS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVz
ZW50ZWRPYmplY3QgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkKICAgICAgICAgfHwgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAg
IHJldHVybiBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3OwogCi0gICAgaWYgKHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgcmV0dXJuIFdJLkNh
bnZhc1RhYkNvbnRlbnRWaWV3OwotCi0gICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuUmVjb3JkaW5nKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXc7
CisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzIHx8IHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXc7CiAKICAgICByZXR1cm4gbnVsbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFu
YWdlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMDk3MzdiOGJlMWQ5MmNhZmIyZThmZjQyMWE4ZjRhODg4MzVh
M2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcwpAQCAtMCwwICsxLDE1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKy8vIEZJWE1FOiBBbmltYXRpb25NYW5hZ2VyIGxhY2tzIGFkdmFuY2VkIG11bHRp
LXRhcmdldCBzdXBwb3J0LiAoQW5pbWF0aW9ucyBwZXItdGFyZ2V0KQorCitXSS5BbmltYXRpb25N
YW5hZ2VyID0gY2xhc3MgQW5pbWF0aW9uTWFuYWdlcgoreworICAgIGNvbnN0cnVjdG9yKCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYW5pbWF0
aW9uQ29sbGVjdGlvbiA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uOworICAgICAgICB0aGlz
Ll9hbmltYXRpb25JZE1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgV0kuRnJhbWUuYWRkRXZlbnRM
aXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX2hhbmRs
ZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CisgICAgfQorCisgICAgLy8gQWdlbnQKKwor
ICAgIGdldCBkb21haW5zKCkgeyByZXR1cm4gWyJBbmltYXRpb24iXTsgfQorCisgICAgYWN0aXZh
dGVFeHRyYURvbWFpbihkb21haW4pCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChkb21h
aW4gPT09ICJBbmltYXRpb24iKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFy
Z2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpOworICAgIH0K
KworICAgIC8vIFRhcmdldAorCisgICAgaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpCisgICAgewor
ICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZW5hYmxlIGRpZCBub3Qg
ZXhpc3QgeWV0LgorICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5lbmFi
bGUiKSkKKyAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5lbmFibGUoKTsKKyAgICB9
CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBzdXBwb3J0ZWQoKQorICAgIHsKKyAgICAgICAg
Ly8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZW5hYmxlIGRpZCBub3QgZXhp
c3QgeWV0LgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNDb21tYW5kKCJBbmlt
YXRpb24uZW5hYmxlIik7CisgICAgfQorCisgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUo
YW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9hbmltYXRpb25Db2xs
ZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGFuaW1hdGlvblR5cGUpOworICAgIH0K
KworICAgIGVuYWJsZSgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZW5h
YmxlZCk7CisKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IHRydWU7CisKKyAgICAgICAgZm9yIChs
ZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUYXJn
ZXQodGFyZ2V0KTsKKyAgICB9CisKKyAgICBkaXNhYmxlKCkKKyAgICB7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHRoaXMuX2VuYWJsZWQpOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBX
SS50YXJnZXRzKSB7CisgICAgICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFu
aW1hdGlvbi5kaXNhYmxlIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICAgICAgaWYgKHRhcmdl
dC5oYXNDb21tYW5kKCJBbmltYXRpb24uZGlzYWJsZSIpKQorICAgICAgICAgICAgICAgIHRhcmdl
dC5BbmltYXRpb25BZ2VudC5kaXNhYmxlKCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9h
bmltYXRpb25Db2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFw
LmNsZWFyKCk7CisKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgIH0KKworICAg
IC8vIEFuaW1hdGlvbk9ic2VydmVyCisKKyAgICBhbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblBh
eWxvYWQpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fYW5pbWF0aW9uSWRN
YXAuaGFzKGFuaW1hdGlvblBheWxvYWQuYW5pbWF0aW9uSWQpLCBgQW5pbWF0aW9uIGFscmVhZHkg
ZXhpc3RzIHdpdGggaWQgJHthbmltYXRpb25QYXlsb2FkLmFuaW1hdGlvbklkfS5gKTsKKworICAg
ICAgICBsZXQgYW5pbWF0aW9uID0gV0kuQW5pbWF0aW9uLmZyb21QYXlsb2FkKGFuaW1hdGlvblBh
eWxvYWQpOworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmFkZChhbmltYXRpb24p
OworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uLmFuaW1hdGlvbklk
LCBhbmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVm
ZmVjdCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1h
cC5nZXQoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOwor
ICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBh
bmltYXRpb24uZWZmZWN0Q2hhbmdlZChlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5n
ZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0
aGlzLl9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFz
c2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBhbmltYXRpb24udGFyZ2V0Q2hhbmdlZChlZmZlY3QpOworICAgIH0K
KworICAgIGFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAgIGxl
dCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC50YWtlKGFuaW1hdGlvbklkKTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24p
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bi5yZW1vdmUoYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFu
ZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgV0kuRnJhbWUpOworICAgICAgICBpZiAoIWV2
ZW50LnRhcmdldC5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IFdJLkFuaW1hdGlvbi5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOworCisgICAgICAg
IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0
aW9uSWRNYXAuY2xlYXIoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIu
anMKaW5kZXggMTM1YzE2NjEzYWU4MDA5YzE2ZTI3MjJmNzI1ODVjOTdlNjlkZDExNC4uOTA1ODBm
NGVmZTBmN2YzYWE5OWM2N2EwNzdlMjk2ZjM1NDQwNGRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52
YXNNYW5hZ2VyLmpzCkBAIC0zMiw2ICszMiw3IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBD
YW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAg
ICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9u
ID0gbmV3IFdJLkNhbnZhc0NvbGxlY3Rpb247CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZp
ZXJNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1h
cCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncyA9IG5ldyBTZXQ7CkBA
IC03NiwxOCArNzcsOSBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHVibGljCiAKKyAgICBnZXQgY2FudmFzQ29sbGVj
dGlvbigpIHsgcmV0dXJuIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb247IH0KICAgICBnZXQgc2F2ZWRS
ZWNvcmRpbmdzKCkgeyByZXR1cm4gdGhpcy5fc2F2ZWRSZWNvcmRpbmdzOyB9CiAKLSAgICBnZXQg
Y2FudmFzZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fY2FudmFz
SWRlbnRpZmllck1hcC52YWx1ZXMoKSk7Ci0gICAgfQotCi0gICAgZ2V0IHNoYWRlclByb2dyYW1z
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3NoYWRlclByb2dyYW1J
ZGVudGlmaWVyTWFwLnZhbHVlcygpKTsKLSAgICB9Ci0KICAgICBhc3luYyBwcm9jZXNzSlNPTih7
ZmlsZW5hbWUsIGpzb24sIGVycm9yfSkKICAgICB7CiAgICAgICAgIGlmIChlcnJvcikgewpAQCAt
MTMzLDYgKzEyNSw3IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgdGFyZ2V0LkNhbnZhc0FnZW50LmRpc2Fi
bGUoKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uY2xlYXIo
KTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgICAgICB0
aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgICAgICB0aGlzLl9z
YXZlZFJlY29yZGluZ3MuY2xlYXIoKTsKQEAgLTE2MSw5ICsxNTQsOCBAQCBXSS5DYW52YXNNYW5h
Z2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjb25z
b2xlLmFzc2VydCghdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5oYXMoY2FudmFzUGF5bG9hZC5j
YW52YXNJZCksIGBDYW52YXMgYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke2NhbnZhc1BheWxvYWQu
Y2FudmFzSWR9LmApOwogCiAgICAgICAgIGxldCBjYW52YXMgPSBXSS5DYW52YXMuZnJvbVBheWxv
YWQoY2FudmFzUGF5bG9hZCk7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNh
bnZhcyk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuc2V0KGNhbnZhcy5pZGVu
dGlmaWVyLCBjYW52YXMpOwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIHtjYW52YXN9KTsKICAgICB9CiAK
ICAgICBjYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZpZXIpCkBAIC0xNzMsNyArMTY1LDE0IEBA
IFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIGlmICghY2FudmFzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRo
aXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICB0aGlzLl9zYXZlUmVjb3JkaW5ncyhj
YW52YXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlKGNhbnZhcyk7
CisKKyAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxl
Y3Rpb24pCisgICAgICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5kZWxl
dGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKKworICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNv
bGxlY3Rpb24uY2xlYXIoKTsKICAgICB9CiAKICAgICBjYW52YXNNZW1vcnlDaGFuZ2VkKGNhbnZh
c0lkZW50aWZpZXIsIG1lbW9yeUNvc3QpCkBAIC0yNzUsMjEgKzI3NCwxNCBAQCBXSS5DYW52YXNN
YW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8g
UHJpdmF0ZQogCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCisgICAgX3NhdmVSZWNvcmRpbmdz
KGNhbnZhcykKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHByb2dyYW0gb2YgY2FudmFzLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50
aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmllcik7Ci0KLSAgICAgICAgY2FudmFzLnNo
YWRlclByb2dyYW1Db2xsZWN0aW9uLmNsZWFyKCk7Ci0KICAgICAgICAgZm9yIChsZXQgcmVjb3Jk
aW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKSB7CiAgICAgICAgICAgICByZWNvcmRp
bmcuc291cmNlID0gbnVsbDsKICAgICAgICAgICAgIHJlY29yZGluZy5jcmVhdGVEaXNwbGF5TmFt
ZShyZWNvcmRpbmcuZGlzcGxheU5hbWUpOwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRp
bmdzLmFkZChyZWNvcmRpbmcpOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwge3JlY29yZGluZ30p
OwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0ku
Q2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB7Y2FudmFzfSk7CiAgICAgfQogCiAg
ICAgX21haW5SZXNvdXJjZURpZENoYW5nZShldmVudCkKQEAgLTMwMSwxNSArMjkzLDE0IEBAIFdJ
LkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIFdJLkNhbnZhcy5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOwogCiAgICAg
ICAgIGZvciAobGV0IGNhbnZhcyBvZiB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnZhbHVlcygp
KQotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgICAgICB0
aGlzLl9zYXZlUmVjb3JkaW5ncyhjYW52YXMpOwogCi0gICAgICAgIHRoaXMuX3NoYWRlclByb2dy
YW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24u
Y2xlYXIoKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5jbGVhcigpOworICAg
ICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgIH0KIH07
CiAKIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQgPSB7Ci0gICAgQ2FudmFzQWRkZWQ6ICJjYW52YXMt
bWFuYWdlci1jYW52YXMtd2FzLWFkZGVkIiwKLSAgICBDYW52YXNSZW1vdmVkOiAiY2FudmFzLW1h
bmFnZXItY2FudmFzLXdhcy1yZW1vdmVkIiwKICAgICBSZWNvcmRpbmdTYXZlZDogImNhbnZhcy1t
YW5hZ2VyLXJlY29yZGluZy1zYXZlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKaW5k
ZXggMWE4ZGY2OGJiYWRkOGRlOGJmZmIzODA3OTUyNjkyODdhM2EzMzI0Mi4uNzE4NTU1OGFkM2Uw
ZDk3OWJiMDAxZGI4ZTExMDNkYjgyYWE5ZTA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpz
CkBAIC0zMjMsNyArMzIzLDcgQEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKIAogICAgIG5vZGVGb3JJZChub2RlSWQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lk
VG9ET01Ob2RlW25vZGVJZF0gfHwgbnVsbDsKICAgICB9CiAKICAgICBfZG9jdW1lbnRVcGRhdGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwppbmRleCA3NjMzZGUxYmFlMGY0
MTNmZTEyY2QxYzM2MzM4NGFlZjNmZDg0NjU5Li43Mjk2OTZmMDQxYzE2MmZmOTdjZmIwOTI0OTdi
YmQxNWFiZjlmZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCkBAIC03
ODEsNyArNzgxLDcgQEAgV0kuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGV2
ZW50Lm5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFu
YWdlci5ub2RlRm9ySWQoZXZlbnQubm9kZUlkKTsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGRvbU5vZGUpOwogCiAgICAgICAgICAgICByZWNvcmQgPSBuZXcgV0kuTWVkaWFUaW1lbGluZVJl
Y29yZChldmVudFR5cGUsIGRvbU5vZGUsIGRldGFpbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGJkNjU3ZDkzMjZhYWEwY2U2NGY2ZDdlZjAzMWRmODE2YWYyY2Zl
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZworKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIg
dmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxyZWN0IHg9IjEuNSIgeT0i
Mi41IiB3aWR0aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENv
bG9yIi8+Ci0gICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3IDMgMTEgMyAxMiAxMyAx
MiAxMyAxMSAxMSA4Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZDY1N2Q5
MzI2YWFhMGNlNjRmNmQ3ZWYwMzFkZjgxNmFmMmNmZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnCkBAIC0w
LDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0g
Q29weXJpZ2h0IMKpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxz
dmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0i
MS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgorICAgIDxyZWN0IHg9IjEuNSIgeT0iMi41IiB3aWR0
aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cisg
ICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3IDMgMTEgMyAxMiAxMyAxMiAxMyAxMSAx
MSA4Ii8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01h
aW4uaHRtbAppbmRleCBjODI2ZDUxZjkxNzdlZGU0ZDliOTU2Yjk3YzUxZDQ5ODA2MGVlNzBjLi40
NWUyMWNhZTVlZDQyZjU4ZDhmNGNhYmYyYTM0MzhiNjU3ZTE3MjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0zMCw2ICszMCw5IEBACiAK
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkV4dGVybmFsL0NvZGVNaXJyb3IvY29k
ZW1pcnJvci5jc3MiPgogCisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9B
bmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BcHBsaWNhdGlv
bkNhY2hlRnJhbWVDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdFRlc3RDYXNlQ29udGVudFZpZXcuY3Nz
Ij4KQEAgLTU2LDcgKzU5LDYgQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZp
ZXdzL0NhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4KICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5jc3Mi
PgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzVGFiQ29udGVu
dFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoYW5n
ZXNEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJWaWV3cy9DaGFydERldGFpbHNTZWN0aW9uUm93LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGVja2JveE5hdmlnYXRpb25JdGVtLmNzcyI+CkBAIC0x
MTMsNiArMTE1LDggQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dv
VG9MaW5lRGlhbG9nLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9HcmFkaWVudEVkaXRvci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvR3JhZGllbnRTbGlkZXIuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MiPgog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmVPdmVydmlld0dyYXBoLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBTbmFwc2hvdEluc3RhbmNlc0NvbnRlbnRWaWV3
LmNzcyI+CkBAIC0zNDgsNiArMzUyLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvVGlt
ZWxpbmVPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1dv
cmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29s
bGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50
QWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbnNvbGVNZXNz
YWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luc3RydW1lbnQuanMi
Pjwvc2NyaXB0PgpAQCAtMzYxLDYgKzM2Niw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9T
Y3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3JpcHQu
anMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hlRnJhbWUu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNoZU1h
bmlmZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JhY2tGb3J3YXJk
RW50cnkuanMiPjwvc2NyaXB0PgpAQCAtMzgwLDcgKzM4Nyw2IEBACiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xs
ZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVj
dGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
b2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0PgpAQCAtNTY2LDkgKzU3Miw5IEBACiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL1N0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3NjcmlwdD4KIAogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9Db25zb2xlVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NjcmlwdFRyZWVFbGVtZW50LmpzIj48
L3NjcmlwdD4KQEAgLTU5NCw2ICs2MDAsOSBAQAogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0Fj
dGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9BY3RpdmF0ZUJ1dHRvblRvb2xiYXJJdGVtLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZURl
dGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9B
cHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LmpzIj48L3Njcmlw
dD4KQEAgLTY5Miw2ICs3MDEsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Hb1RvTGluZURp
YWxvZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50RWRpdG9y
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGllbnRTbGlkZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVu
dFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlv
bnNUaW1lbGluZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlUGF0aENvbXBvbmVudC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5l
T3ZlcnZpZXdHcmFwaC5qcyI+PC9zY3JpcHQ+CkBAIC04NTYsNiArODY2LDcgQEAKICAgICA8c2Ny
aXB0IHNyYz0iQ29udHJvbGxlcnMvQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyLmpzIj48L3Njcmlw
dD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9CYXNpY0Js
b2NrQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNDA1
MzVhYzcwYzcxNmEzMTcwMzYwYjZhY2FiM2UzNzA3NmIwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCkBA
IC0wLDAgKzEsMjY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uID0gY2xhc3MgQW5pbWF0
aW9uIGV4dGVuZHMgV0kuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoYW5pbWF0aW9uSWQsIHtj
c3NBbmltYXRpb25OYW1lLCBjc3NUcmFuc2l0aW9uUHJvcGVydHksIGVmZmVjdCwgYmFja3RyYWNl
fSA9IHt9KQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICBjb25zb2xlLmFzc2Vy
dChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghY3NzQW5pbWF0aW9uTmFt
ZSAmJiAhY3NzVHJhbnNpdGlvblByb3BlcnR5KSB8fCAhIWNzc0FuaW1hdGlvbk5hbWUgIT09ICEh
Y3NzVHJhbnNpdGlvblByb3BlcnR5KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25JZCA9IGFu
aW1hdGlvbklkOworCisgICAgICAgIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUgPSBjc3NBbmltYXRp
b25OYW1lIHx8IG51bGw7CisgICAgICAgIHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSA9IGNz
c1RyYW5zaXRpb25Qcm9wZXJ0eSB8fCBudWxsOworICAgICAgICB0aGlzLl91cGRhdGVFZmZlY3Qo
ZWZmZWN0KTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlID0gYmFja3RyYWNlIHx8IFtdOworCisg
ICAgICAgIHRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZSA9IG51bGw7CisgICAgfQorCisgICAgLy8g
U3RhdGljCisKKyAgICBzdGF0aWMgZnJvbVBheWxvYWQocGF5bG9hZCkKKyAgICB7CisgICAgICAg
IHJldHVybiBuZXcgV0kuQW5pbWF0aW9uKHBheWxvYWQuYW5pbWF0aW9uSWQsIHsKKyAgICAgICAg
ICAgIGNzc0FuaW1hdGlvbk5hbWU6IHBheWxvYWQuY3NzQW5pbWF0aW9uTmFtZSwKKyAgICAgICAg
ICAgIGNzc1RyYW5zaXRpb25Qcm9wZXJ0eTogcGF5bG9hZC5jc3NUcmFuc2l0aW9uUHJvcGVydHks
CisgICAgICAgICAgICBlZmZlY3Q6IHBheWxvYWQuZWZmZWN0LAorICAgICAgICAgICAgYmFja3Ry
YWNlOiBBcnJheS5pc0FycmF5KHBheWxvYWQuYmFja3RyYWNlKSA/IHBheWxvYWQuYmFja3RyYWNl
Lm1hcCgoaXRlbSkgPT4gV0kuQ2FsbEZyYW1lLmZyb21QYXlsb2FkKFdJLm1haW5UYXJnZXQsIGl0
ZW0pKSA6IFtdLAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVG
b3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUsIHBsdXJhbCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAoYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLldl
YkFuaW1hdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiV2Vi
IEFuaW1hdGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9uIik7CisgICAgICAgIGNh
c2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBs
dXJhbCA/IFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNTUyBB
bmltYXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9u
OgorICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlv
bnMiKSA6IFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbiIpOworICAgICAgICB9CisKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGFuaW1hdGlvbiB0eXBlIiwgYW5pbWF0
aW9uVHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNw
bGF5TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKHBsYXliYWNrRGlyZWN0aW9uKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChwbGF5YmFja0RpcmVjdGlvbikgeworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5QbGF5YmFja0RpcmVjdGlvbi5Ob3JtYWw6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlT
dHJpbmcoIk5vcm1hbCIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVj
dGlvbi5SZXZlcnNlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJSZXZlcnNlIik7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLkFsdGVybmF0ZToK
KyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQWx0ZXJuYXRlIik7CisgICAgICAgIGNh
c2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLkFsdGVybmF0ZVJldmVyc2U6CisgICAg
ICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFsdGVybmF0ZSBSZXZlcnNlIik7CisgICAgICAg
IH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gcGxheWJhY2sgZGly
ZWN0aW9uIiwgcGxheWJhY2tEaXJlY3Rpb24pOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9
CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JGaWxsTW9kZShmaWxsTW9kZSkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAoZmlsbE1vZGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmls
bE1vZGUuTm9uZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiTm9uZSIpOworICAg
ICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Gb3J3YXJkczoKKyAgICAgICAgICAgIHJl
dHVybiBXSS5VSVN0cmluZygiRm9yd2FyZHMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24u
RmlsbE1vZGUuQmFja3dhcmRzOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCYWNr
d2FyZHMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuQm90aDoKKyAgICAg
ICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQm90aCIpOworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5GaWxsTW9kZS5BdXRvOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBdXRv
Iik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24g
ZmlsbCBtb2RlIiwgZmlsbE1vZGUpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAg
ICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKQorICAgIHsKKyAgICAgICAg
V0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOworICAgIH0KKwor
ICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvbklkKCkgeyByZXR1cm4gdGhpcy5fYW5p
bWF0aW9uSWQ7IH0KKyAgICBnZXQgYmFja3RyYWNlKCkgeyByZXR1cm4gdGhpcy5fYmFja3RyYWNl
OyB9CisKKyAgICBnZXQgYW5pbWF0aW9uVHlwZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
Y3NzQW5pbWF0aW9uTmFtZSkKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5D
U1NBbmltYXRpb247CisgICAgICAgIGlmICh0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkpCisg
ICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjsKKyAgICAg
ICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBn
ZXQgc3RhcnREZWxheSgpCisgICAgeworICAgICAgICByZXR1cm4gInN0YXJ0RGVsYXkiIGluIHRo
aXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5zdGFydERlbGF5IDogTmFOOworICAgIH0KKworICAg
IGdldCBlbmREZWxheSgpCisgICAgeworICAgICAgICByZXR1cm4gImVuZERlbGF5IiBpbiB0aGlz
Ll9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuZW5kRGVsYXkgOiBOYU47CisgICAgfQorCisgICAgZ2V0
IGl0ZXJhdGlvbnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRpb25zIiBpbiB0aGlz
Ll9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRlcmF0aW9ucyA6IE5hTjsKKyAgICB9CisKKyAgICBn
ZXQgaXRlcmF0aW9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRpb25TdGFy
dCIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvblN0YXJ0IDogTmFOOwor
ICAgIH0KKworICAgIGdldCBpdGVyYXRpb25EdXJhdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4gIml0ZXJhdGlvbkR1cmF0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRl
cmF0aW9uRHVyYXRpb24gOiBOYU47CisgICAgfQorCisgICAgZ2V0IHRpbWluZ0Z1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiAidGltaW5nRnVuY3Rpb24iIGluIHRoaXMuX2VmZmVjdCA/
IHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbiA6IG51bGw7CisgICAgfQorCisgICAgZ2V0IHBs
YXliYWNrRGlyZWN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAicGxheWJhY2tEaXJlY3Rp
b24iIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5wbGF5YmFja0RpcmVjdGlvbiA6IG51
bGw7CisgICAgfQorCisgICAgZ2V0IGZpbGxNb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiAi
ZmlsbE1vZGUiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5maWxsTW9kZSA6IG51bGw7
CisgICAgfQorCisgICAgZ2V0IGtleWZyYW1lcygpCisgICAgeworICAgICAgICByZXR1cm4gImtl
eWZyYW1lcyIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LmtleWZyYW1lcyA6IFtdOwor
ICAgIH0KKworICAgIGdldCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
Y3NzQW5pbWF0aW9uTmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NBbmltYXRpb25O
YW1lOworCisgICAgICAgIGlmICh0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkpCisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5OworCisgICAgICAgIGlmICgh
dGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl91bmlxdWVE
aXNwbGF5TmFtZU51bWJlciA9IFdJLkFuaW1hdGlvbi5fbmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVt
YmVyKys7CisgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQW5pbWF0aW9uICVkIikuZm9ybWF0
KHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKTsKKyAgICB9CisKKyAgICByZXF1ZXN0Tm9k
ZSgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZSkgeworICAg
ICAgICAgICAgdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuZW5zdXJlRG9jdW1l
bnQoKTsKKworICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJn
ZXQoKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQucmVxdWVzdE5vZGUo
dGhpcy5fYW5pbWF0aW9uSWQsIChlcnJvciwgbm9kZUlkKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9k
ZUlkKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlOworICAgIH0KKworICAgIC8v
IEFuaW1hdGlvbk1hbmFnZXIKKworICAgIGVmZmVjdENoYW5nZWQoZWZmZWN0KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hh
bmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2UgPSBudWxsOwor
CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkFuaW1hdGlvbi5FdmVu
dC5UYXJnZXRDaGFuZ2VkKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfdXBkYXRl
RWZmZWN0KGVmZmVjdCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VmZmVjdCA9IGVmZmVjdCB8fCB7
fTsKKworICAgICAgICBpZiAodGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAg
ICAgdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uID0gV0kuQ3ViaWNCZXppZXIuZnJvbVN0cmlu
Zyh0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24pOworCisgICAgICAgIGlmICh0aGlzLl9lZmZl
Y3Qua2V5ZnJhbWVzKSB7CisgICAgICAgICAgICBmb3IgKGxldCBrZXlmcmFtZSBvZiB0aGlzLl9l
ZmZlY3Qua2V5ZnJhbWVzKSB7CisgICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lLmVhc2luZykK
KyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWUuZWFzaW5nID0gV0kuQ3ViaWNCZXppZXIuZnJv
bVN0cmluZyhrZXlmcmFtZS5lYXNpbmcpOworCisgICAgICAgICAgICAgICAgaWYgKGtleWZyYW1l
LnN0eWxlKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZS5zdHlsZSA9IGtleWZyYW1lLnN0
eWxlLnJlcGxhY2VBbGwoLztccysvZywgIjtcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQW5pbWF0aW9uLkV2
ZW50LkVmZmVjdENoYW5nZWQpOworICAgIH0KK307CisKK1dJLkFuaW1hdGlvbi5fbmV4dFVuaXF1
ZURpc3BsYXlOYW1lTnVtYmVyID0gMTsKKworV0kuQW5pbWF0aW9uLlR5cGUgPSB7CisgICAgV2Vi
QW5pbWF0aW9uOiAid2ViLWFuaW1hdGlvbiIsCisgICAgQ1NTQW5pbWF0aW9uOiAiY3NzLWFuaW1h
dGlvbiIsCisgICAgQ1NTVHJhbnNpdGlvbjogImNzcy10cmFuc2l0aW9uIiwKK307CisKK1dJLkFu
aW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbiA9IHsKKyAgICBOb3JtYWw6ICJub3JtYWwiLAorICAg
IFJldmVyc2U6ICJyZXZlcnNlIiwKKyAgICBBbHRlcm5hdGU6ICJhbHRlcm5hdGUiLAorICAgIEFs
dGVybmF0ZVJldmVyc2U6ICJhbHRlcm5hdGUtcmV2ZXJzZSIsCit9OworCitXSS5BbmltYXRpb24u
RmlsbE1vZGUgPSB7CisgICAgTm9uZTogIm5vbmUiLAorICAgIEZvcndhcmRzOiAiZm9yd2FyZHMi
LAorICAgIEJhY2t3YXJkczogImJhY2t3YXJkcyIsCisgICAgQm90aDogImJvdGgiLAorICAgIEF1
dG86ICJhdXRvIiwKK307CisKK1dJLkFuaW1hdGlvbi5FdmVudCA9IHsKKyAgICBFZmZlY3RDaGFu
Z2VkOiAiYW5pbWF0aW9uLWVmZmVjdC1jaGFuZ2VkIiwKKyAgICBUYXJnZXRDaGFuZ2VkOiAiYW5p
bWF0aW9uLXRhcmdldC1jaGFuZ2VkIiwKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9u
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgyNzZhYjQwZDY5OWQ1ZGViMmU2MDgxZjg0NTViMjJlNDEzNjc5ZmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcwpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1dJLkFuaW1hdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBBbmltYXRpb25Db2xsZWN0aW9uIGV4
dGVuZHMgV0kuQ29sbGVjdGlvbgoreworICAgIGNvbnN0cnVjdG9yKGFuaW1hdGlvblR5cGUpCisg
ICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghYW5pbWF0aW9uVHlwZSB8fCBPYmplY3QudmFs
dWVzKFdJLkFuaW1hdGlvbi5UeXBlKS5pbmNsdWRlcyhhbmltYXRpb25UeXBlKSk7CisKKyAgICAg
ICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25UeXBlID0gYW5pbWF0aW9uVHlw
ZSB8fCBudWxsOworCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uVHlwZSkKKyAgICAgICAg
ICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwID0gbnVsbDsKKyAgICB9CisK
KyAgICAvLyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25UeXBlKCkgeyByZXR1cm4gdGhpcy5f
YW5pbWF0aW9uVHlwZTsgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkKKyAgICB7CisgICAgICAg
IGlmICh0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBjb25zdCBwbHVyYWwgPSB0
cnVlOworICAgICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclR5cGUo
dGhpcy5fYW5pbWF0aW9uVHlwZSwgcGx1cmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbnMiKTsKKyAgICB9CisKKyAgICBvYmplY3RJc1Jl
cXVpcmVkVHlwZShvYmplY3QpCisgICAgeworICAgICAgICBpZiAoIShvYmplY3QgaW5zdGFuY2Vv
ZiBXSS5BbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJl
dHVybiAhdGhpcy5fYW5pbWF0aW9uVHlwZSB8fCBvYmplY3QuYW5pbWF0aW9uVHlwZSA9PT0gdGhp
cy5fYW5pbWF0aW9uVHlwZTsKKyAgICB9CisKKyAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlw
ZShhbmltYXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoT2JqZWN0LnZh
bHVlcyhXSS5BbmltYXRpb24uVHlwZSkuaW5jbHVkZXMoYW5pbWF0aW9uVHlwZSkpOworCisgICAg
ICAgIGlmICh0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChhbmltYXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZU1hcCkKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlTWFwID0gbmV3IE1hcDsKKworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZv
clR5cGUgPSB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcC5nZXQoYW5pbWF0aW9u
VHlwZSk7CisgICAgICAgIGlmICghYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUpIHsKKyAgICAg
ICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gbmV3IFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb24oYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0
aW9uRm9yVHlwZU1hcC5zZXQoYW5pbWF0aW9uVHlwZSwgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5
cGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlw
ZTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGl0ZW1BZGRlZChpdGVtKQorICAg
IHsKKyAgICAgICAgc3VwZXIuaXRlbUFkZGVkKGl0ZW0pOworCisgICAgICAgIGlmICghdGhpcy5f
YW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlID0gdGhpcy5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShpdGVtLmFuaW1hdGlvblR5cGUp
OworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUuYWRkKGl0ZW0pOworICAg
ICAgICB9CisgICAgfQorCisgICAgaXRlbVJlbW92ZWQoaXRlbSkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxl
Y3Rpb25Gb3JUeXBlID0gdGhpcy5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShpdGVtLmFuaW1h
dGlvblR5cGUpOworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUucmVtb3Zl
KGl0ZW0pOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuaXRlbVJlbW92ZWQoaXRlbSk7Cisg
ICAgfQorCisgICAgaXRlbXNDbGVhcmVkKGl0ZW1zKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKSB7CisgICAgICAgICAgICBmb3IgKGxldCBh
bmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSBvZiB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZU1hcC52YWx1ZXMoKSkKKyAgICAgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZS5jbGVhcigpOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuaXRlbXNDbGVhcmVkKGl0
ZW1zKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcwppbmRleCBj
OWNjMzk2MmU4MGZiNjZmZTE1ZGExMzU0ZWEyOTI2YmY4NDFjZGNlLi4zMWQ2MjdkODExYmQ2MzMy
ZGM0ODA4NWY5N2RmNTA2NGQyMDEyN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3Vs
dC5qcwpAQCAtMTQ2LDcgKzE0Niw3IEBAIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgPSBjbGFzcyBB
dWRpdFRlc3RDYXNlUmVzdWx0IGV4dGVuZHMgV0kuQXVkaXRUZXN0UmVzdWx0QmFzCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZUlkID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoZG9tTm9kZVN0cmlu
Zyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7IH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKSB8
fCBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kb21NYW5hZ2Vy
Lm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKaW5kZXggNjJiYTI2NDEw
NWFhZWRmNGJhNWUyYmUzNzU1YTJiNWQzOGJjZmFkMy4uOGUyYjUyZTJjMWYxMWEzNmQ2NWRmY2E0
ZWM5NTBmNjA5ODU5NjkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCkBAIC05Nyw3ICs5Nyw3IEBAIFdJLkNhbnZhcyA9
IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYXNlIFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5DYW52YXMyRDoKICAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiMkQi
KTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXI6Ci0g
ICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIp
OworICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiKTsKICAg
ICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0w6CiAgICAgICAgICAgICByZXR1
cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMMjoKQEAgLTEwNiw5ICsxMDYsMTAgQEAgV0kuQ2FudmFzID0gY2xh
c3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4gV0kudW5sb2Nh
bGl6ZWRTdHJpbmcoIldlYiBHUFUiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViTWV0YWw6CiAgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldl
Yk1ldGFsIik7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBjb25zb2xlLmVycm9yKCJJ
bnZhbGlkIGNhbnZhcyBjb250ZXh0IHR5cGUiLCBjb250ZXh0VHlwZSk7CiAgICAgICAgIH0KKwor
ICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gY2FudmFzIGNvbnRleHQgdHlw
ZSIsIGNvbnRleHRUeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCiAgICAgc3Rh
dGljIHJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCmluZGV4IDFm
OGRkN2VmNDVkNjI5Nzc4Y2Q4Mjg3YmZiOGQzMWIyYTEwODlmMzAuLmI2ZGU5NTM1NDIyYzljNjNh
ZTFhZDE0ZTlkYzQ3ZmVhYzc2ODA0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwpAQCAtMTQ4LDYgKzE0OCwy
MyBAQCBXSS5SZWNvcmRpbmcgPSBjbGFzcyBSZWNvcmRpbmcgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgcmV0dXJuIG5ldyBXSS5SZWNvcmRpbmcocGF5bG9hZC52ZXJzaW9uLCB0eXBlLCBwYXls
b2FkLmluaXRpYWxTdGF0ZSwgZnJhbWVzLCBwYXlsb2FkLmRhdGEpOwogICAgIH0KIAorICAgIHN0
YXRpYyBkaXNwbGF5TmFtZUZvclJlY29yZGluZ1R5cGUocmVjb3JkaW5nVHlwZSkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAocmVjb3JkaW5nVHlwZSkgeworICAgICAgICBjYXNlIFJlY29yZGluZy5U
eXBlLkNhbnZhczJEOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCIyRCIpOworICAg
ICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc0JpdG1hcFJlbmRlcmVyOgorICAgICAgICAg
ICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiKTsKKyAgICAgICAgY2FzZSBS
ZWNvcmRpbmcuVHlwZS5DYW52YXNXZWJHTDoKKyAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2Fs
aXplZFN0cmluZygiV2ViR0wiKTsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNX
ZWJHTDI6CisgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMMiIp
OworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIHJl
Y29yZGluZyB0eXBlIiwgcmVjb3JkaW5nVHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOworICAg
IH0KKwogICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclN3aXp6bGVUeXBlKHN3aXp6bGVUeXBlKQog
ICAgIHsKICAgICAgICAgc3dpdGNoIChzd2l6emxlVHlwZSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRp
b25PYnNlcnZlci5qcwppbmRleCBiMTE5NWVkMGNhMGNiMGNhODA2NjhlMGU5OGRjNjc5ZGNhZDkx
N2EzLi43ZTU2ZThiYjM5Y2JhMGM2MjgwZWE5Y2VkZDQ1YmU1NTQ1ZjBmMTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25P
YnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcwpAQCAtMjcsNiArMjcsMjYgQEAgV0kuQW5pbWF0aW9u
T2JzZXJ2ZXIgPSBjbGFzcyBBbmltYXRpb25PYnNlcnZlciBleHRlbmRzIEluc3BlY3RvckJhY2tl
bmQuRGlzcGF0Y2gKIHsKICAgICAvLyBFdmVudHMgZGVmaW5lZCBieSB0aGUgIkFuaW1hdGlvbiIg
ZG9tYWluLgogCisgICAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb24pCisgICAgeworICAgICAg
ICBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uKTsKKyAgICB9
CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAgICAg
ICBXSS5hbmltYXRpb25NYW5hZ2VyLmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCk7
CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAg
IFdJLmFuaW1hdGlvbk1hbmFnZXIudGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCk7CisgICAgfQor
CisgICAgYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgV0ku
YW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpOworICAgIH0K
KwogICAgIHRyYWNraW5nU3RhcnQodGltZXN0YW1wKQogICAgIHsKICAgICAgICAgV0kudGltZWxp
bmVNYW5hZ2VyLmFuaW1hdGlvblRyYWNraW5nU3RhcnRlZCh0aW1lc3RhbXApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2Jq
ZWN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVt
b3RlT2JqZWN0LmpzCmluZGV4IGRkMDBhZjU4YzEyNTMwNTg2ZTFjMjgzMDMyYjcyZmQ2MjlmYTMy
ZDkuLjJjYmE1NjRkNGE3YjZhMzhjMTg5ZTU3MzNkM2NmM2M2MGZjNTE2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVj
dC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9S
ZW1vdGVPYmplY3QuanMKQEAgLTE4OCw2ICsxODgsMjUgQEAgV0kuUmVtb3RlT2JqZWN0ID0gY2xh
c3MgUmVtb3RlT2JqZWN0CiAgICAgICAgIHRhcmdldC5DYW52YXNBZ2VudC5yZXNvbHZlQ29udGV4
dChjYW52YXMuaWRlbnRpZmllciwgb2JqZWN0R3JvdXAsIHdyYXBDYWxsYmFjayk7CiAgICAgfQog
CisgICAgc3RhdGljIHJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLCBvYmplY3RHcm91cCwgY2Fs
bGJhY2spCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgY2FsbGJhY2sgPT09
ICJmdW5jdGlvbiIpOworCisgICAgICAgIGZ1bmN0aW9uIHdyYXBDYWxsYmFjayhlcnJvciwgb2Jq
ZWN0KSB7CisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIW9iamVjdCkKKyAgICAgICAgICAgICAg
ICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxs
YmFjayhXSS5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2JqZWN0LCBXSS5tYWluVGFyZ2V0KSk7
CisgICAgICAgIH0KKworICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0
KCk7CisKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24ucmVz
b2x2ZUFuaW1hdGlvbiBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgY29uc29sZS5hc3NlcnQo
dGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIikpOworCisgICAg
ICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbi5hbmlt
YXRpb25JZCwgb2JqZWN0R3JvdXAsIHdyYXBDYWxsYmFjayk7CisgICAgfQorCiAgICAgLy8gUHVi
bGljCiAKICAgICBnZXQgdGFyZ2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCAxZDQ0NWEwNGNkZWJlZWNmYTdiMGNiMDhlZDZmYmJkNGJm
NDYxZTg0Li4wYmE1NjBiOTZjMDIzMDZlYjYxYjMyYmRmNGVhYzg5OTIzZGJmMGMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCkBAIC0xMDgsNiAr
MTA4LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvV29ya2VyT2JzZXJ2ZXIuanMiPjwv
c2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50QWN0aW9uLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VDb2RlLmpzIj48L3NjcmlwdD4KQEAgLTEyMSw2ICsxMjIs
OCBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2FsU2NyaXB0LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9DUFVJbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NQ
VVRpbWVsaW5lLmpzIj48L3NjcmlwdD4KQEAgLTEzNyw3ICsxNDAsNiBAQAogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJNb2RlbHMvQ2FudmFzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
Q29sbGVjdGlvbkVudHJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Nv
bGxlY3Rpb25FbnRyeVByZXZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ29sbGVjdGlvblR5cGVzLmpzIj48L3NjcmlwdD4KQEAgLTIzOCw2ICsyNDAsNyBAQAogICAg
IDxzY3JpcHQgc3JjPSJQcm94aWVzL0hlYXBTbmFwc2hvdFByb3h5LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iUHJveGllcy9IZWFwU25hcHNob3RXb3JrZXJQcm94eS5qcyI+PC9zY3Jp
cHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQnJlYWtw
b2ludExvZ01lc3NhZ2VMZXhlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKaW5kZXggM2M0M2FlNzhiZTE3Mjc3MDcy
OWI3MDMyYWJlNTQ0NDNjOTQ2YThiYi4uYWRkODg4NDEwZDQ2ZjI4ZjUyNGRmNTYyZDg0YjU1MzZm
MGY1OWQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdC9UZXN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvVGVzdC5qcwpAQCAtNzAsNiArNzAsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAg
ICAgIFdJLndvcmtlck1hbmFnZXIgPSBuZXcgV0kuV29ya2VyTWFuYWdlciwKICAgICAgICAgV0ku
ZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRPTURlYnVnZ2VyTWFuYWdlciwKICAgICAgICAg
V0kuY2FudmFzTWFuYWdlciA9IG5ldyBXSS5DYW52YXNNYW5hZ2VyLAorICAgICAgICBXSS5hbmlt
YXRpb25NYW5hZ2VyID0gbmV3IFdJLkFuaW1hdGlvbk1hbmFnZXIsCiAgICAgXTsKIAogICAgIC8v
IFJlZ2lzdGVyIGZvciBldmVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDVjNmE3NzU0ZTdhMjczYjk2Y2M5MDlk
NjEwYTQyNmNlYmMwNWJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpA
QCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24tY29s
bGVjdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHBhZGRpbmc6IDRweDsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iOWY2Nzc5ZWVlMTYxMjQ4OTk1MjcyMDJiZGFjNjRmMTI3ZjRiMTBkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQW5pbWF0aW9u
Q29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3Cit7
CisgICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICBjb25z
b2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb24pOworCisgICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKworICAgICAgICBsZXQgZGVzY3JpcHRpb25FbGVtZW50ID0gY29u
dGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
KTsKKyAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LmNsYXNzTmFtZSA9ICJkZXNjcmlwdGlvbiI7
CisKKyAgICAgICAgc3dpdGNoIChyZXByZXNlbnRlZE9iamVjdC5hbmltYXRpb25UeXBlKSB7Cisg
ICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAgICAg
ZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9y
IGFuaW1hdGlvbnMgY3JlYXRlZCBieSBKYXZhU2NyaXB0LiIpOworICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb246CisgICAgICAg
ICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGlu
ZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IENTUy4iKTsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjoKKyAgICAgICAg
ICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5n
IGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0
Q29udGVudCk7CisKKyAgICAgICAgc3VwZXIocmVwcmVzZW50ZWRPYmplY3QsIFdJLkFuaW1hdGlv
bkNvbnRlbnRWaWV3LCBjb250ZW50UGxhY2Vob2xkZXIpOworCisgICAgICAgIHRoaXMuc2VsZWN0
aW9uRW5hYmxlZCA9IHRydWU7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQo
ImFuaW1hdGlvbi1jb2xsZWN0aW9uIik7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBo
YW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICBmb3IgKGxldCBzdWJ2
aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNl
b2YgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5oYW5k
bGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gUHJv
dGVjdGVkCisKKyAgICBjb250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3KQorICAgIHsKKyAgICAg
ICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhp
cy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKTsKKyAgICAgICAgY29udGVudFZpZXcuZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5faGFuZGxlQ29udGVudFZp
ZXdNb3VzZUxlYXZlKTsKKyAgICB9CisKKyAgICBjb250ZW50Vmlld1JlbW92ZWQoY29udGVudFZp
ZXcpCisgICAgeworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50ZXIpOworICAg
ICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUi
LCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOworICAgIH0KKworICAgIGRldGFj
aGVkKCkKKyAgICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQo
KTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUK
KworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50ZXIoZXZlbnQpCisgICAgeworICAgICAg
ICBsZXQgY29udGVudFZpZXcgPSBXSS5WaWV3LmZyb21FbGVtZW50KGV2ZW50LnRhcmdldCk7Cisg
ICAgICAgIGlmICghKGNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29udGVudFZp
ZXcpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBjb250
ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgYW5pbWF0aW9uLnJlcXVlc3ROb2Rl
KCkudGhlbigobm9kZSkgPT4geworICAgICAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLm93bmVy
RG9jdW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbm9kZS5oaWdo
bGlnaHQoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgX2hhbmRsZUNvbnRlbnRWaWV3TW91
c2VMZWF2ZShldmVudCkKKyAgICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVI
aWdobGlnaHQoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3Nz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY1ODg5MGY1Y2NkNjRhY2JmNjJkOWFiOTEwY2JlYjg3OGNkZjYyODAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisuY29udGVudC12aWV3LmFuaW1hdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
IHdpZHRoOiAxMDAlOworICAgIG1hcmdpbjogNHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHZh
cigtLWJhY2tncm91bmQtY29sb3ItY29udGVudCk7CisgICAgYm9yZGVyOiAxcHggc29saWQgdmFy
KC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24uc2VsZWN0ZWQg
eworICAgIG91dGxpbmU6IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yOworfQorCisuY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBh
bGlnbi1pdGVtczogY2VudGVyOworICAgIGhlaWdodDogdmFyKC0tbmF2aWdhdGlvbi1iYXItaGVp
Z2h0KTsKKyAgICBwYWRkaW5nOiAwIDZweDsKKyAgICBmb250LXNpemU6IDEzcHg7Cit9CisKKy5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyB7CisgICAgd2hpdGUtc3Bh
Y2U6IG5vd3JhcDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0
bGVzID4gLnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LWRhcmspOwor
fQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0
bGUgeworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KKworLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5vdCg6
ZW1wdHkpOjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICJcMDBBMFwyMDE0XDAwQTAiOyAvKiAmbmJz
cDsmbWRhc2g7Jm5ic3A7ICovOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRl
ciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgYm9yZGVyOiBub25lOworICAgIG9wYWNpdHk6IDA7
Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uOmhvdmVyID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyIHsKKyAgICBvcGFjaXR5OiAxOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3IHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGp1c3RpZnktY29udGVudDogY2Vu
dGVyOworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDAsIDAlLCA5NiUpOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnIHsKKyAgICB3aWR0aDogMTAwJTsKK30KKworYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHsKKyAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7
Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgcmVjdCB7Cisg
ICAgZmlsbDogdHJhbnNwYXJlbnQ7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnBy
ZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS1ib3JkZXItY29s
b3IpOworICAgIHN0cm9rZS13aWR0aDogMjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgcGF0aCB7CisgICAgZmlsbDogdmFyKC0tZ2x5cGgt
Y29sb3ItYWN0aXZlKTsKKyAgICBmaWxsLW9wYWNpdHk6IDAuNTsKKyAgICBzdHJva2U6IHZhcigt
LWdseXBoLWNvbG9yLWFjdGl2ZSk7CisgICAgc3Ryb2tlLXdpZHRoOiAxOworfQorCisuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBjaXJjbGUgeworICAg
IGZpbGw6IHZhcigtLXRleHQtY29sb3IpOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBsaW5lIHsKKyAgICBzdHJva2U6IHZhcigtLXRleHQt
Y29sb3IpOworICAgIHN0cm9rZS13aWR0aDogMjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHNwYW4geworICAgIHBhZGRpbmc6IDRweDsKKyAgICBjb2xvcjogdmFy
KC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2No
ZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0
bGVzID4gLnRpdGxlIHsKKyAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpOworICAgIH0K
KworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0
aXRsZSB7CisgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7CisgICAg
fQorCisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyB7CisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMjAlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiOGE1MjhlNjliMWM1ZGIzY2U2MGNlNWU4
OTA2MWEyYmU2MjI1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDMw
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQW5pbWF0
aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9y
KHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOworCisgICAgICAgIHN1cGVyKHJl
cHJlc2VudGVkT2JqZWN0KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2Rl
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fY2FjaGVkV2lkdGggPSBOYU47CisKKyAgICAgICAgdGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImFuaW1hdGlvbiIpOworICAgIH0KKworICAgIC8vIFN0
YXRpYworCisgICAgc3RhdGljIGdldCBwcmV2aWV3SGVpZ2h0KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiA0MDsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRsZVJlZnJlc2hCdXR0
b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAg
IH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAg
ICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgbGV0IGhlYWRlckVsZW1lbnQg
PSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaGVhZGVy
IikpOworCisgICAgICAgIGxldCB0aXRsZXNDb250YWluZXIgPSBoZWFkZXJFbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgdGl0bGVzQ29u
dGFpbmVyLmNsYXNzTmFtZSA9ICJ0aXRsZXMiOworCisgICAgICAgIGxldCB0aXRsZUVsZW1lbnQg
PSB0aXRsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Bh
biIpKTsKKyAgICAgICAgdGl0bGVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aXRsZSI7CisgICAgICAg
IHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZGlzcGxh
eU5hbWU7CisKKyAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50ID0gdGl0bGVzQ29udGFpbmVy
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgIHRo
aXMuX3N1YnRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAic3VidGl0bGUiOworCisgICAgICAgIGxl
dCBuYXZpZ2F0aW9uQmFyID0gbmV3IFdJLk5hdmlnYXRpb25CYXI7CisKKyAgICAgICAgbGV0IGFu
aW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRp
b25JdGVtKCJhbmltYXRpb24tdGFyZ2V0IiwgV0kuVUlTdHJpbmcoIkFuaW1hdGlvbiBUYXJnZXQi
KSwgIkltYWdlcy9NYXJrdXAuc3ZnIiwgMTYsIDE2KTsKKyAgICAgICAgYW5pbWF0aW9uVGFyZ2V0
QnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0
ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKKyAgICAgICAgV0kuYWRkTW91c2VEb3duQ29udGV4
dE1lbnVIYW5kbGVycyhhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbGVtZW50
LCB0aGlzLl9wb3B1bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51LmJpbmQodGhp
cykpOworICAgICAgICBuYXZpZ2F0aW9uQmFyLmFkZE5hdmlnYXRpb25JdGVtKGFuaW1hdGlvblRh
cmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKKworICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVu
ZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQpOworICAgICAgICB0aGlzLmFkZFN1YnZpZXcobmF2aWdh
dGlvbkJhcik7CisKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lciA9IHRoaXMuZWxlbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRo
aXMuX3ByZXZpZXdDb250YWluZXIuY2xhc3NOYW1lID0gInByZXZpZXciOworICAgIH0KKworICAg
IGxheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5sYXlvdXQoKTsKKworICAgICAgICB0aGlz
Ll9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFByZXZpZXcoKTsKKyAg
ICB9CisKKyAgICBzaXplRGlkQ2hhbmdlKCkKKyAgICB7CisgICAgICAgIHN1cGVyLnNpemVEaWRD
aGFuZ2UoKTsKKworICAgICAgICB0aGlzLl9jYWNoZWRXaWR0aCA9IHRoaXMuZWxlbWVudC5yZWFs
T2Zmc2V0V2lkdGg7CisgICAgfQorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3Vw
ZXIuYXR0YWNoZWQoKTsKKworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50
TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUVm
ZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2
ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRs
ZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7Cisg
ICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Bbmlt
YXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlVGFyZ2V0Q2hhbmdlZCwgdGhp
cyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
SS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlRWZmZWN0Q2hhbmdl
ZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICAvLyBQ
cml2YXRlCisKKyAgICBfcmVmcmVzaFN1YnRpdGxlKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVw
cmVzZW50ZWRPYmplY3QucmVxdWVzdE5vZGUoKS50aGVuKChkb21Ob2RlKSA9PiB7CisgICAgICAg
ICAgICB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlID0gZG9tTm9kZTsKKworICAgICAgICAg
ICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICBp
ZiAoZG9tTm9kZSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuYXBwZW5k
Q2hpbGQoV0kubGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBfcmVmcmVzaFByZXZpZXcoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmll
d0NvbnRhaW5lci5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAgIGxldCBrZXlmcmFtZXMgPSB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmtleWZyYW1lczsKKyAgICAgICAgaWYgKCFrZXlmcmFtZXMu
bGVuZ3RoKSB7CisgICAgICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAg
IHNwYW4udGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtl
eWZyYW1lcy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IEFsbCBhbmltYXRpb24gdGltZXMgYXJlIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgICAgbGV0IHN0
YXJ0RGVsYXkgPSAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5zdGFydERlbGF5IHx8IDApICogMTAw
MDsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbkR1cmF0aW9uID0gKHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuaXRlcmF0aW9uRHVyYXRpb24gfHwgMCkgKiAxMDAwOworICAgICAgICBsZXQgZW5kRGVsYXkg
PSAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5lbmREZWxheSB8fCAwKSAqIDEwMDA7CisgICAgICAg
IGxldCB0b3RhbER1cmF0aW9uID0gc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgZW5k
RGVsYXk7CisgICAgICAgIGlmICh0b3RhbER1cmF0aW9uID09PSAwKSB7CisgICAgICAgICAgICBs
ZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSBXSS5V
SVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgcHJldmlld0hlaWdodCA9IFdJLkFu
aW1hdGlvbkNvbnRlbnRWaWV3LnByZXZpZXdIZWlnaHQ7CisgICAgICAgIGNvbnN0IGhpZ2hlclJl
c29sdXRpb24gPSB0cnVlOworCisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRSYWRpdXMgPSA0Owor
ICAgICAgICBjb25zdCBtYXJrZXJIZWFkUGFkZGluZyA9IDI7CisKKyAgICAgICAgLy8gU3F1ZWV6
ZSB0aGUgZW50aXJlIHByZXZpZXcgc28gdGhhdCBtYXJrZXJzIGFyZW4ndCBjdXQgb2ZmLgorICAg
ICAgICBjb25zdCBzcXVlZXplWFN0YXJ0ID0gKGl0ZXJhdGlvbkR1cmF0aW9uICYmIHN0YXJ0RGVs
YXkpID8gMCA6IG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAg
Y29uc3Qgc3F1ZWV6ZVhFbmQgPSAoaXRlcmF0aW9uRHVyYXRpb24gJiYgZW5kRGVsYXkpID8gMCA6
IG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1
ZWV6ZVlTdGFydCA9IDg7CisKKyAgICAgICAgLy8gTW92ZSB0aGUgZWFzaW5nIGxpbmUgZG93biB0
byBjdXQgb2ZmIHRoZSBib3R0b20gYm9yZGVyLgorICAgICAgICBjb25zdCBhZGp1c3RFYXNpbmdZ
ID0gMC41OworCisgICAgICAgIGxldCBzZWNvbmRzUGVyUGl4ZWwgPSB0aGlzLl9jYWNoZWRXaWR0
aCAvIHRvdGFsRHVyYXRpb247CisKKyAgICAgICAgc3RhcnREZWxheSAqPSBzZWNvbmRzUGVyUGl4
ZWw7CisgICAgICAgIGl0ZXJhdGlvbkR1cmF0aW9uID0gKGl0ZXJhdGlvbkR1cmF0aW9uICogc2Vj
b25kc1BlclBpeGVsKSAtIHNxdWVlemVYU3RhcnQgLSBzcXVlZXplWEVuZDsKKyAgICAgICAgZW5k
RGVsYXkgKj0gc2Vjb25kc1BlclBpeGVsOworCisgICAgICAgIGxldCBzdmcgPSB0aGlzLl9wcmV2
aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInN2ZyIpKTsKKyAgICAg
ICAgc3ZnLnNldEF0dHJpYnV0ZSgidmlld0JveCIsIGAwIDAgJHt0aGlzLl9jYWNoZWRXaWR0aH0g
JHtwcmV2aWV3SGVpZ2h0fWApOworCisgICAgICAgIGZ1bmN0aW9uIGFkZFRpdGxlKHBhcmVudCwg
dGl0bGUpIHsKKyAgICAgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSBwYXJlbnQuYXBwZW5kQ2hp
bGQoY3JlYXRlU1ZHRWxlbWVudCgidGl0bGUiKSk7CisgICAgICAgICAgICB0aXRsZUVsZW1lbnQu
dGV4dENvbnRlbnQgPSB0aXRsZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydERlbGF5
KSB7CisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGls
ZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgc3RhcnREZWxheUNvbnRhaW5l
ci5jbGFzc0xpc3QuYWRkKCJkZWxheSIsICJzdGFydCIpOworCisgICAgICAgICAgICBsZXQgc3Rh
cnREZWxheUxpbmUgPSBzdGFydERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0Vs
ZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUo
InkxIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAgICAg
c3RhcnREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ4MiIsIHN0YXJ0RGVsYXkpOworICAgICAgICAg
ICAgc3RhcnREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1
ZWV6ZVlTdGFydCkgLyAyKTsKKworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlFbGVtZW50ID0g
c3RhcnREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0Iikp
OworICAgICAgICAgICAgc3RhcnREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0
YXJ0RGVsYXkpOworICAgICAgICAgICAgc3RhcnREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJo
ZWlnaHQiLCBwcmV2aWV3SGVpZ2h0KTsKKworICAgICAgICAgICAgYWRkVGl0bGUoc3RhcnREZWxh
eUVsZW1lbnQsIFdJLlVJU3RyaW5nKCJTdGFydCBEZWxheSAlcyIpLmZvcm1hdChOdW1iZXIuc2Vj
b25kc1RvU3RyaW5nKHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3RhcnREZWxheSwgaGlnaGVyUmVz
b2x1dGlvbikpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbmREZWxheSkgeworICAgICAg
ICAgICAgbGV0IGVuZERlbGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0Vs
ZW1lbnQoImciKSk7CisgICAgICAgICAgICBlbmREZWxheUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUo
InRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24g
KyBzcXVlZXplWFN0YXJ0fSwgMClgKTsKKyAgICAgICAgICAgIGVuZERlbGF5Q29udGFpbmVyLmNs
YXNzTGlzdC5hZGQoImRlbGF5IiwgImVuZCIpOworCisgICAgICAgICAgICBsZXQgZW5kRGVsYXlM
aW5lID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGlu
ZSIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgKHByZXZp
ZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAgICAgZW5kRGVsYXlMaW5l
LnNldEF0dHJpYnV0ZSgieDIiLCBlbmREZWxheSk7CisgICAgICAgICAgICBlbmREZWxheUxpbmUu
c2V0QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsK
KworICAgICAgICAgICAgbGV0IGVuZERlbGF5RWxlbWVudCA9IGVuZERlbGF5Q29udGFpbmVyLmFw
cGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICBlbmREZWxh
eUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJh
dGlvbiArIGVuZERlbGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQpOworCisgICAgICAgICAgICBhZGRUaXRsZShlbmRE
ZWxheUVsZW1lbnQsIFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkgJXMiKS5mb3JtYXQoTnVtYmVyLnNl
Y29uZHNUb1N0cmluZyh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVuZERlbGF5LCBoaWdoZXJSZXNv
bHV0aW9uKSkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGl0ZXJhdGlvbkR1cmF0aW9uKSB7
CisgICAgICAgICAgICBsZXQgdGltaW5nRnVuY3Rpb24gPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnRpbWluZ0Z1bmN0aW9uOworCisgICAgICAgICAgICBsZXQgYWN0aXZlRHVyYXRpb25Db250YWlu
ZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAg
IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOworICAgICAg
ICAgICAgYWN0aXZlRHVyYXRpb25Db250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBg
dHJhbnNsYXRlKCR7c3RhcnREZWxheSArIHNxdWVlemVYU3RhcnR9LCAke3NxdWVlemVZU3RhcnR9
KWApOworCisgICAgICAgICAgICBjb25zdCBzdGFydFkgPSAwOworICAgICAgICAgICAgY29uc3Qg
ZW5kWSA9IHByZXZpZXdIZWlnaHQgLSBzcXVlZXplWVN0YXJ0OworICAgICAgICAgICAgY29uc3Qg
aGVpZ2h0ID0gZW5kWSAtIHN0YXJ0WTsKKworICAgICAgICAgICAgZm9yIChsZXQgW2tleWZyYW1l
QSwga2V5ZnJhbWVCXSBvZiBrZXlmcmFtZXMuYWRqYWNlbmNpZXMoKSkgeworICAgICAgICAgICAg
ICAgIGxldCBzdGFydFggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lQS5vZmZzZXQ7Cisg
ICAgICAgICAgICAgICAgbGV0IGVuZFggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lQi5v
ZmZzZXQ7CisgICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gZW5kWCAtIHN0YXJ0WDsKKworICAg
ICAgICAgICAgICAgIGxldCBlYXNpbmcgPSBrZXlmcmFtZUEuZWFzaW5nIHx8IHRpbWluZ0Z1bmN0
aW9uOworCisgICAgICAgICAgICAgICAgbGV0IGVhc2luZ0NvbnRhaW5lciA9IGFjdGl2ZUR1cmF0
aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAg
ICAgICAgICAgZWFzaW5nQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImVhc2luZyIpOworICAgICAg
ICAgICAgICAgIGVhc2luZ0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFu
c2xhdGUoJHtzdGFydFh9LCAke3N0YXJ0WX0pYCk7CisKKyAgICAgICAgICAgICAgICBsZXQgeDEg
PSBlYXNpbmcuaW5Qb2ludC54ICogd2lkdGg7CisgICAgICAgICAgICAgICAgbGV0IHkxID0gKCgx
IC0gZWFzaW5nLmluUG9pbnQueSkgKiBoZWlnaHQpICsgYWRqdXN0RWFzaW5nWTsKKyAgICAgICAg
ICAgICAgICBsZXQgeDIgPSBlYXNpbmcub3V0UG9pbnQueCAqIHdpZHRoOworICAgICAgICAgICAg
ICAgIGxldCB5MiA9ICgoMSAtIGVhc2luZy5vdXRQb2ludC55KSAqIGhlaWdodCkgKyBhZGp1c3RF
YXNpbmdZOworCisgICAgICAgICAgICAgICAgbGV0IGVhc2luZ1BhdGggPSBlYXNpbmdDb250YWlu
ZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpKTsKKyAgICAgICAgICAgICAg
ICBlYXNpbmdQYXRoLnNldEF0dHJpYnV0ZSgiZCIsIGBNIDAgJHtoZWlnaHQgKyBhZGp1c3RFYXNp
bmdZfSBDICR7eDF9ICR7eTF9ICR7eDJ9ICR7eTJ9ICR7d2lkdGh9ICR7YWRqdXN0RWFzaW5nWX0g
ViAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IFpgKTsKKworICAgICAgICAgICAgICAgIGxldCB0
aXRsZVJlY3QgPSBlYXNpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgi
cmVjdCIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIs
IHdpZHRoKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQi
LCBoZWlnaHQpOworCisgICAgICAgICAgICAgICAgYWRkVGl0bGUodGl0bGVSZWN0LCBlYXNpbmcu
dG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IGtleWZy
YW1lIG9mIGtleWZyYW1lcykgeworICAgICAgICAgICAgICAgIGxldCB4ID0gaXRlcmF0aW9uRHVy
YXRpb24gKiBrZXlmcmFtZS5vZmZzZXQ7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVD
b250YWluZXIgPSBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdF
bGVtZW50KCJnIikpOworICAgICAgICAgICAgICAgIGtleWZyYW1lQ29udGFpbmVyLmNsYXNzTGlz
dC5hZGQoImtleWZyYW1lIik7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVDb250YWluZXIuc2V0
QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7eH0sICR7c3RhcnRZfSlgKTsKKwor
ICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1hcmtlckhlYWQgPSBrZXlmcmFtZUNvbnRhaW5l
ci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJjaXJjbGUiKSk7CisgICAgICAgICAgICAg
ICAga2V5ZnJhbWVNYXJrZXJIZWFkLnNldEF0dHJpYnV0ZSgiciIsIG1hcmtlckhlYWRSYWRpdXMp
OworCisgICAgICAgICAgICAgICAgbGV0IGtleWZyYW1lTWFya2VyTGluZSA9IGtleWZyYW1lQ29u
dGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAg
ICAgICAga2V5ZnJhbWVNYXJrZXJMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCBoZWlnaHQpOworCisg
ICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENo
aWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0
LnNldEF0dHJpYnV0ZSgieCIsIC0xICogKG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFk
ZGluZykpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoInkiLCAtMSAq
IHNxdWVlemVZU3RhcnQpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUo
IndpZHRoIiwgKG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZykgKiAyKTsKKyAg
ICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBoZWlnaHQgKyBz
cXVlZXplWVN0YXJ0KTsKKworICAgICAgICAgICAgICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwga2V5
ZnJhbWUuc3R5bGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgX2hh
bmRsZUVmZmVjdENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoUHJl
dmlldygpOworICAgIH0KKworICAgIF9oYW5kbGVUYXJnZXRDaGFuZ2VkKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAgfQorCisgICAgX3BvcHVsYXRl
QW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUoY29udGV4dE1lbnUpCisgICAgeworICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQW5pbWF0aW9uIiks
ICgpID0+IHsKKyAgICAgICAgICAgIFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKHRo
aXMucmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91
cCwgKHJlbW90ZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBjb25zdCB0
ZXh0ID0gV0kuVUlTdHJpbmcoIlNlbGVjdGVkIEFuaW1hdGlvbiIpOworICAgICAgICAgICAgICAg
IGNvbnN0IGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MgPSB0cnVlOworICAgICAgICAgICAgICAgIFdJ
LmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBlbmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVz
dWx0KHRleHQsIHJlbW90ZU9iamVjdCwgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJh
dG9yKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUpCisgICAg
ICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwg
dGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNT
aWRlYmFyUGFuZWwuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA0Y2EzMjVi
OGIxNjY2YmM1OWNkZjA2MDk5NGNlZmUyMzg2NDYzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRl
YmFyUGFuZWwuY3NzCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmlt
YXRpb24ta2V5ZnJhbWVzIC5oZWFkZXIgPiAuc3VidGl0bGUgeworICAgIGNvbG9yOiB2YXIoLS10
ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KKworLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5h
bmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1l
cyAuZGV0YWlscy1zZWN0aW9uIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk3
JSk7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQg
PiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAu
cm93LnN0eWxlcyB7CisgICAgZGlzcGxheTogdGFibGUtcm93OworfQorCisuc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmlt
YXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3Ig
eworICAgIGhlaWdodDogYXV0bzsKKyAgICBwYWRkaW5nOiA0cHggMDsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB0cmFuc3BhcmVudDsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTog
ZGFyaykgeworICAgIC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRl
bnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlv
biB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTglKTsKKyAgICB9Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9B
bmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mODQzNGFmZjgyOTg4NWMyOGFiMGNhMGRlZDVjMDYxZmJiMjFhMjJjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtMCwwICsxLDI1MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1dJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBBbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuRGV0YWlsc1NpZGViYXJQYW5lbAoreworICAgIGNvbnN0
cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCJhbmltYXRpb24iLCBXSS5VSVN0cmluZygi
QW5pbWF0aW9uIikpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbiA9IG51bGw7CisKKyAgICAg
ICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAgPSBuZXcgTWFwOworICAgIH0KKworICAgIC8v
IFB1YmxpYworCisgICAgaW5zcGVjdChvYmplY3RzKQorICAgIHsKKyAgICAgICAgaWYgKCEob2Jq
ZWN0cyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAgICAgICAgIG9iamVjdHMgPSBbb2JqZWN0c107
CisKKyAgICAgICAgdGhpcy5hbmltYXRpb24gPSBvYmplY3RzLmZpbmQoKG9iamVjdCkgPT4gb2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsKKworICAgICAgICByZXR1cm4gISF0aGlzLmFu
aW1hdGlvbjsKKyAgICB9CisKKyAgICBnZXQgYW5pbWF0aW9uKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9hbmltYXRpb247CisgICAgfQorCisgICAgc2V0IGFuaW1hdGlvbihhbmltYXRp
b24pCisgICAgeworICAgICAgICBpZiAoYW5pbWF0aW9uID09PSB0aGlzLl9hbmltYXRpb24pCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikgeworICAg
ICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9u
LkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQs
IHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvbkVm
ZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9u
ID0gYW5pbWF0aW9uIHx8IG51bGw7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikgewor
ICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9u
LkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQs
IHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvblRhcmdl
dENoYW5nZWQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgp
OworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaW5pdGlhbExheW91dCgpCisgICAg
eworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fbmFtZVJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiTmFtZSIpKTsK
KyAgICAgICAgdGhpcy5fdHlwZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhX
SS5VSVN0cmluZygiVHlwZSIpKTsKKyAgICAgICAgdGhpcy5fdGFyZ2V0Um93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJUYXJnZXQiKSk7CisgICAgICAgIGxl
dCBpZGVudGl0eVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1pZGVu
dGl0eSIsIFdJLlVJU3RyaW5nKCJJZGVudGl0eSIpLCBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3Jv
dXAoW3RoaXMuX25hbWVSb3csIHRoaXMuX3R5cGVSb3csIHRoaXMuX3RhcmdldFJvd10pXSk7Cisg
ICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChpZGVudGl0eVNlY3Rp
b24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uc1JvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiSXRlcmF0aW9ucyIpKTsKKyAgICAgICAg
dGhpcy5faXRlcmF0aW9uU3RhcnRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3co
V0kuVUlTdHJpbmcoIlN0YXJ0IikpOworICAgICAgICB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRHVyYXRpb24i
KSk7CisgICAgICAgIGxldCBpdGVyYXRpb25zR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25H
cm91cChbdGhpcy5faXRlcmF0aW9uc1JvdywgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3csIHRoaXMu
X2l0ZXJhdGlvbkR1cmF0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5fc3RhcnREZWxheVJvdyA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiU3RhcnQgRGVsYXki
KSk7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2lt
cGxlUm93KFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkiKSk7CisgICAgICAgIHRoaXMuX3RpbWluZ0Z1
bmN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJF
YXNpbmciKSk7CisgICAgICAgIGxldCB0aW1pbmdHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
bkdyb3VwKFt0aGlzLl9zdGFydERlbGF5Um93LCB0aGlzLl9lbmREZWxheVJvdywgdGhpcy5fdGlt
aW5nRnVuY3Rpb25Sb3ddKTsKKworICAgICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdyA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRGlyZWN0aW9uIikp
OworICAgICAgICB0aGlzLl9maWxsTW9kZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdyhXSS5VSVN0cmluZygiRmlsbCIpKTsKKyAgICAgICAgbGV0IGZpbGxEaXJlY3Rpb25Hcm91
cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJv
dywgdGhpcy5fZmlsbE1vZGVSb3ddKTsKKworICAgICAgICBsZXQgZWZmZWN0U2VjdGlvbiA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWVmZmVjdCIsIFdJLlVJU3RyaW5nKCJFZmZl
Y3QiKSwgW2l0ZXJhdGlvbnNHcm91cCwgdGltaW5nR3JvdXAsIGZpbGxEaXJlY3Rpb25Hcm91cF0p
OworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZWZmZWN0U2Vj
dGlvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl9rZXlmcmFtZXNHcm91cCA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvbkdyb3VwOworICAgICAgICBsZXQga2V5ZnJhbWVzU2VjdGlvbiA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWtleWZyYW1lcyIsIFdJLlVJU3RyaW5nKCJLZXlm
cmFtZXMiKSwgW3RoaXMuX2tleWZyYW1lc0dyb3VwXSk7CisgICAgICAgIHRoaXMuY29udGVudFZp
ZXcuZWxlbWVudC5hcHBlbmRDaGlsZChrZXlmcmFtZXNTZWN0aW9uLmVsZW1lbnQpOworCisgICAg
ICAgIGNvbnN0IHNlbGVjdGFibGUgPSBmYWxzZTsKKyAgICAgICAgbGV0IGJhY2t0cmFjZVRyZWVP
dXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lKHNlbGVjdGFibGUpOworICAgICAgICBiYWNrdHJh
Y2VUcmVlT3V0bGluZS5kaXNjbG9zdXJlQnV0dG9ucyA9IGZhbHNlOworICAgICAgICB0aGlzLl9i
YWNrdHJhY2VUcmVlQ29udHJvbGxlciA9IG5ldyBXSS5DYWxsRnJhbWVUcmVlQ29udHJvbGxlcihi
YWNrdHJhY2VUcmVlT3V0bGluZSk7CisKKyAgICAgICAgbGV0IGJhY2t0cmFjZVJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdzsKKyAgICAgICAgYmFja3RyYWNlUm93LmVsZW1lbnQuYXBwZW5k
Q2hpbGQoYmFja3RyYWNlVHJlZU91dGxpbmUuZWxlbWVudCk7CisgICAgICAgIHRoaXMuX2JhY2t0
cmFjZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1iYWNrdHJhY2Ui
LCBXSS5VSVN0cmluZygiQmFja3RyYWNlIiksIFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChb
YmFja3RyYWNlUm93XSldKTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50
LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQpOworICAgIH0KKworICAgIGxheW91
dCgpCisgICAgeworICAgICAgICBzdXBlci5sYXlvdXQoKTsKKworICAgICAgICBpZiAoIXRoaXMu
X2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9yZWZyZXNo
SWRlbnRpdHlTZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7
CisgICAgICAgIHRoaXMuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKCk7CisKKyAgICAgICAgZm9y
IChsZXQgY29kZU1pcnJvciBvZiB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC52YWx1ZXMoKSkK
KyAgICAgICAgICAgIGNvZGVNaXJyb3IucmVmcmVzaCgpOworICAgIH0KKworICAgIC8vIFByaXZh
dGUKKworICAgIF9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMu
X25hbWVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZGlzcGxheU5hbWU7CisgICAgICAgIHRo
aXMuX3R5cGVSb3cudmFsdWUgPSBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JBbmltYXRpb25U
eXBlKHRoaXMuX2FuaW1hdGlvbi5hbmltYXRpb25UeXBlKTsKKworICAgICAgICB0aGlzLl90YXJn
ZXRSb3cudmFsdWUgPSBudWxsOworICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVxdWVzdE5vZGUo
KS50aGVuKChkb21Ob2RlKSA9PiB7CisgICAgICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUg
PSBkb21Ob2RlID8gV0kubGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkgOiBudWxsOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVmcmVzaEVmZmVjdFNlY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgY29uc3QgaGlnaGVyUmVzb2x1dGlvbiA9IHRydWU7CisgICAgICAgIGNvbnN0IHByZWNp
c2lvbiA9IDA7CisgICAgICAgIGNvbnN0IHJlYWRPbmx5ID0gdHJ1ZTsKKworICAgICAgICB0aGlz
Ll9pdGVyYXRpb25zUm93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25z
KSA/IHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25zLnRvTG9jYWxlU3RyaW5nKCkgOiBudWxsOwor
ICAgICAgICB0aGlzLl9pdGVyYXRpb25TdGFydFJvdy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmlt
YXRpb24uaXRlcmF0aW9uU3RhcnQpID8gdGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0LnRv
TG9jYWxlU3RyaW5nKCkgOiBudWxsOworICAgICAgICB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJv
dy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pID8gTnVt
YmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24sIGhp
Z2hlclJlc29sdXRpb24pIDogbnVsbDsKKworICAgICAgICB0aGlzLl9zdGFydERlbGF5Um93LnZh
bHVlID0gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0RGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5n
KHRoaXMuX2FuaW1hdGlvbi5zdGFydERlbGF5LCBoaWdoZXJSZXNvbHV0aW9uKSA6IG51bGw7Cisg
ICAgICAgIHRoaXMuX2VuZERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5
ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24uZW5kRGVsYXksIGhpZ2hl
clJlc29sdXRpb24pIDogbnVsbDsKKyAgICAgICAgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3cudmFs
dWUgPSB0aGlzLl9hbmltYXRpb24udGltaW5nRnVuY3Rpb24gPyB0aGlzLl9hbmltYXRpb24udGlt
aW5nRnVuY3Rpb24udG9TdHJpbmcoKSA6IG51bGw7CisKKyAgICAgICAgdGhpcy5fcGxheWJhY2tE
aXJlY3Rpb25Sb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24gPyBX
SS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbih0aGlzLl9hbmltYXRp
b24ucGxheWJhY2tEaXJlY3Rpb24pIDogbnVsbDsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cu
dmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZmlsbE1vZGUgPyBXSS5BbmltYXRpb24uZGlzcGxheU5h
bWVGb3JGaWxsTW9kZSh0aGlzLl9hbmltYXRpb24uZmlsbE1vZGUpIDogbnVsbDsKKworICAgICAg
ICBmb3IgKGxldCBzZWN0aW9uIG9mIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmtleXMoKSkK
KyAgICAgICAgICAgIHNlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5EZXRhaWxzU2VjdGlv
bi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRsZURldGFpbHNTZWN0aW9u
Q29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fY29kZU1pcnJvclNl
Y3Rpb25NYXAuY2xlYXIoKTsKKworICAgICAgICBsZXQga2V5ZnJhbWVTZWN0aW9ucyA9IFtdOwor
ICAgICAgICBmb3IgKGxldCBrZXlmcmFtZSBvZiB0aGlzLl9hbmltYXRpb24ua2V5ZnJhbWVzKSB7
CisgICAgICAgICAgICBsZXQgcm93cyA9IFtdOworCisgICAgICAgICAgICBsZXQga2V5ZnJhbWVT
ZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24ta2V5ZnJhbWUtb2Zmc2V0
LSIgKyBrZXlmcmFtZS5vZmZzZXQsIE51bWJlci5wZXJjZW50YWdlU3RyaW5nKGtleWZyYW1lLm9m
ZnNldCwgcHJlY2lzaW9uKSk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb24uYWRkRXZlbnRM
aXN0ZW5lcihXSS5EZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRo
aXMuX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAg
ICAgICAgICAgIGtleWZyYW1lU2VjdGlvbnMucHVzaChrZXlmcmFtZVNlY3Rpb24pOworCisgICAg
ICAgICAgICBpZiAoa2V5ZnJhbWUuZWFzaW5nKSB7CisgICAgICAgICAgICAgICAgbGV0IHN1YnRp
dGxlID0ga2V5ZnJhbWVTZWN0aW9uLmhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZS5jbGFzc05h
bWUgPSAic3VidGl0bGUiOworICAgICAgICAgICAgICAgIHN1YnRpdGxlLnRleHRDb250ZW50ID0g
YCAke2VtRGFzaH0gJHtrZXlmcmFtZS5lYXNpbmcudG9TdHJpbmcoKX1gOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpIHsKKyAgICAgICAgICAgICAgICBs
ZXQgY29kZU1pcnJvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICAgICAgICAgICAgICBsZXQgY29kZU1pcnJvciA9IFdJLkNvZGVNaXJyb3JFZGl0b3IuY3JlYXRl
KGNvZGVNaXJyb3JFbGVtZW50LCB7CisgICAgICAgICAgICAgICAgICAgIG1vZGU6ICJjc3MiLAor
ICAgICAgICAgICAgICAgICAgICByZWFkT25seTogIm5vY3Vyc29yIiwKKyAgICAgICAgICAgICAg
ICAgICAgbGluZVdyYXBwaW5nOiB0cnVlLAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGNvZGVNaXJyb3Iuc2V0VmFsdWUoa2V5ZnJhbWUuc3R5bGUpOworCisgICAgICAgICAg
ICAgICAgY29uc3QgcmFuZ2UgPSBudWxsOworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wdGlv
bnNGb3JUeXBlKHR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFsbG93ZWRUb2tlbnM6IC9cYnRhZ1xiLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKG1hcmtlciwgdmFsdWVPYmplY3QsIHZhbHVlU3RyaW5nKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBXSS5JbmxpbmVTd2F0
Y2godHlwZSwgdmFsdWVPYmplY3QsIHJlYWRPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb2RlTWlycm9yLnNldFVuaXF1ZUJvb2ttYXJrKG1hcmtlci5yYW5nZS5zdGFydFBvc2l0
aW9uKCkudG9Db2RlTWlycm9yKCksIHN3YXRjaC5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckNvbG9yVGV4dE1hcmtlcnMoY29kZU1pcnJvciwg
cmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkNvbG9yKSk7CisgICAg
ICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckdyYWRpZW50VGV4dE1hcmtlcnMoY29kZU1pcnJv
ciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkdyYWRpZW50KSk7
CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVyVGV4dE1hcmtlcnMo
Y29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkJl
emllcikpOworICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0TWFya2Vy
cyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUu
U3ByaW5nKSk7CisKKyAgICAgICAgICAgICAgICBsZXQgcm93ID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uUm93OworICAgICAgICAgICAgICAgIHJvdy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInN0eWxl
cyIpOworICAgICAgICAgICAgICAgIHJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGNvZGVNaXJyb3JF
bGVtZW50KTsKKyAgICAgICAgICAgICAgICByb3dzLnB1c2gocm93KTsKKworICAgICAgICAgICAg
ICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLnNldChrZXlmcmFtZVNlY3Rpb24sIGNvZGVN
aXJyb3IpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXJvd3MubGVuZ3RoKSB7
CisgICAgICAgICAgICAgICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93
KFdJLlVJU3RyaW5nKCJObyBTdHlsZXMiKSk7CisgICAgICAgICAgICAgICAgZW1wdHlSb3cuc2hv
d0VtcHR5TWVzc2FnZSgpOworICAgICAgICAgICAgICAgIHJvd3MucHVzaChlbXB0eVJvdyk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbi5ncm91cHMgPSBbbmV3
IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAocm93cyldOworICAgICAgICB9CisgICAgICAgIGlmICgh
a2V5ZnJhbWVTZWN0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxldCBlbXB0eVJvdyA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvblJvdyhXSS5VSVN0cmluZygiTm8gS2V5ZnJhbWVzIikpOworICAg
ICAgICAgICAgZW1wdHlSb3cuc2hvd0VtcHR5TWVzc2FnZSgpOworICAgICAgICAgICAga2V5ZnJh
bWVTZWN0aW9ucy5wdXNoKGVtcHR5Um93KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9rZXlm
cmFtZXNHcm91cC5yb3dzID0ga2V5ZnJhbWVTZWN0aW9uczsKKyAgICB9CisKKyAgICBfcmVmcmVz
aEJhY2t0cmFjZVNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgbGV0IGNhbGxGcmFtZXMgPSB0aGlz
Ll9hbmltYXRpb24uYmFja3RyYWNlOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VUcmVlQ29udHJv
bGxlci5jYWxsRnJhbWVzID0gY2FsbEZyYW1lczsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2Vj
dGlvbi5lbGVtZW50LmhpZGRlbiA9ICFjYWxsRnJhbWVzLmxlbmd0aDsKKyAgICB9CisKKyAgICBf
aGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMu
X3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7CisgICAgfQorCisgICAgX2hhbmRsZUFuaW1hdGlvblRh
cmdldENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlT
ZWN0aW9uKCk7CisgICAgfQorCisgICAgX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3Rh
dGVDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSB0aGlzLl9j
b2RlTWlycm9yU2VjdGlvbk1hcC5nZXQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgY29kZU1pcnJv
ci5yZWZyZXNoKCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcwppbmRl
eCA0ZTVhOTBlMWYwMzE3ZjBjNGViZjRmNzk5NzAyNzZjN2ZiZDI3ZjU4Li5jYzE2NmJkM2U2MGQz
ODFhNzVhMWExNzk0M2FiZTIzNjcwN2E4YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcu
Y3NzCkBAIC0yMywxMSArMjMsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmll
dy5jYW52YXMgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmll
dy5jYW52YXMgPiAucHJldmlldyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBqdXN0aWZ5LWNv
bnRlbnQ6IGNlbnRlcjsKICAgICBhbGlnbi1pdGVtczogY2VudGVyOwpAQCAtMzYsMTcgKzM2LDE3
IEBACiAgICAgcGFkZGluZzogMTVweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50
YWIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZs
ZXgtZGlyZWN0aW9uOiBjb2x1bW47CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFi
KSA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBp
bWcgewogICAgIG1heC13aWR0aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3Rlcikg
eworLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAg
IGRpc3BsYXk6IG5vbmU7CiB9CiAKQEAgLTU2LDcgKzU2LDcgQEAKIH0KIAogQG1lZGlhIChwcmVm
ZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgu
dGFiKSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiB1bnNldDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCmluZGV4IDli
NGZkNmY2ZWQ3ZTFjYjc2Mzk3NTExMTAxMTUzMjQ2NTRkNThmMDEuLjk5M2RhNTEzZjJkZDU2MzNm
ZDc5NDgzZWE0Y2E5ZmZiYTk2ZWZjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCkBA
IC00NSw3ICs0NSw3IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0
b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIs
IFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMp
OwogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVBy
aW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKLSAgICAg
ICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5yZWZyZXNoUHJldmlldywg
dGhpcyk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVu
dExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuaGFu
ZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3Nob3dHcmlk
QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRl
bSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0ku
VUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRl
bUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVu
dC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwpAQCAtNzcsNiAr
NzcsMjkgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIGhhbmRsZVJl
ZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXco
KTsKKyAgICB9CisKKyAgICAvLyBEcm9wWm9uZVZpZXcgZGVsZWdhdGUKKworICAgIGRyb3Bab25l
U2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAg
IHJldHVybiBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIik7CisgICAg
fQorCisgICAgZHJvcFpvbmVIYW5kbGVEcm9wKGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAg
ICAgIGxldCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAgaWYgKGZp
bGVzLmxlbmd0aCAhPT0gMSkgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJl
ZXAoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFdJLkZpbGVV
dGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJv
Y2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBpbml0
aWFsTGF5b3V0KCkKQEAgLTE2MCw2ICsxODMsMTMgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAg
aWYgKGlzQ2FyZCkKICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hQaXhlbFNpemUoKTsKKworICAg
ICAgICBpZiAoIWlzQ2FyZCkgeworICAgICAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9IG5ldyBX
SS5Ecm9wWm9uZVZpZXcodGhpcyk7CisgICAgICAgICAgICBkcm9wWm9uZVZpZXcudGV4dCA9IFdJ
LlVJU3RyaW5nKCJJbXBvcnQgUmVjb3JkaW5nIik7CisgICAgICAgICAgICBkcm9wWm9uZVZpZXcu
dGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKKyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmll
dyhkcm9wWm9uZVZpZXcpOworICAgICAgICB9CiAgICAgfQogCiAgICAgbGF5b3V0KCkKQEAgLTE5
MSwxMyArMjIxLDYgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX3VwZGF0ZUltYWdlR3Jp
ZCgpOwogICAgIH0KIAotICAgIHNob3duKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnNob3duKCk7
Ci0KLSAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOwotICAgIH0KLQogICAgIGF0dGFjaGVk
KCkKICAgICB7CiAgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CkBAIC0yMjMsNiArMjQ2LDggQEAg
V0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJ
LkNvbnRlbnRWaWV3CiAgICAgICAgIH0pOwogCiAgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFn
ZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX3Vw
ZGF0ZUltYWdlR3JpZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOwog
ICAgIH0KIAogICAgIGRldGFjaGVkKCkKQEAgLTI5MSwxMSArMzE2LDYgQEAgV0kuQ2FudmFzQ29u
dGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3
CiAKICAgICBfcG9wdWxhdGVDYW52YXNFbGVtZW50QnV0dG9uQ29udGV4dE1lbnUoY29udGV4dE1l
bnUpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fY2FudmFzTm9kZSkKLSAgICAgICAgICAgIFdJ
LmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9jYW52
YXNOb2RlKTsKLQotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKLQogICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQ2FudmFzIENvbnRl
eHQiKSwgKCkgPT4gewogICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVDYW52YXND
b250ZXh0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVP
YmplY3RHcm91cCwgKHJlbW90ZU9iamVjdCkgPT4gewogICAgICAgICAgICAgICAgIGlmICghcmVt
b3RlT2JqZWN0KQpAQCAtMzA2LDYgKzMyNiwxMSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNs
YXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAg
ICAgICBXSS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9u
V2l0aFJlc3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZFNlcGFyYXRvcigpOworCisgICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKQorICAgICAgICAg
ICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUsIHRoaXMu
X2NhbnZhc05vZGUpOwogICAgIH0KIAogICAgIF9zaG93R3JpZEJ1dHRvbkNsaWNrZWQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
T3ZlcnZpZXdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwppbmRleCAxMGYzN2MwNDZi
MGMyYTEyODJjNWVjOTlkYzZjYjk5MGIyMjM2YzVmLi43ZGRiZjQ0YmU1ZDdlM2Y2ZjIxY2E3Mjhj
ZWFmYmM2ZWU5NWZjNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3LmNzcwpAQCAtMjQsMzEgKzI0LDM0IEBACiAgKi8KIAogLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgewotICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgIGp1c3RpZnktY29u
dGVudDogdmFyKC0tY2FudmFzLW92ZXJ2aWV3LWNvbnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQp
OwogICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhz
bCgwLCAwJSwgOTAlKTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgcGFkZGluZzogNHB4
IDA7CiAKLSAgICAtLWl0ZW0tbWFyZ2luOiAxMHB4OworICAgIC0tY2FudmFzLW92ZXJ2aWV3LWNv
bnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQtZGVmYXVsdDogY2VudGVyOworICAgIC0tY2FudmFz
LW92ZXJ2aWV3LWNvbnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLWNhbnZhcy1vdmVy
dmlldy1jb250ZW50LXZpZXctanVzdGlmeS1jb250ZW50LW92ZXJyaWRlLCB2YXIoLS1jYW52YXMt
b3ZlcnZpZXctY29udGVudC12aWV3LWp1c3RpZnktY29udGVudC1kZWZhdWx0KSk7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzIHsKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGZs
ZXgtZ3JvdzogMDsKLSAgICBtYXJnaW46IHZhcigtLWl0ZW0tbWFyZ2luKTsKKyAgICBmbGV4LXNo
cmluazogMDsKICAgICB3aWR0aDogNDAwcHg7CisgICAgbWFyZ2luOiA0cHg7CiAgICAgYm9yZGVy
OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgICBjdXJzb3I6IHBvaW50ZXI7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJl
dmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMu
cmVjb3JkaW5nLWFjdGl2ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgIGJvcmRlci1jb2xvcjogcmVk
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsK
ICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgZmxleC1z
aHJpbms6IDA7CkBAIC01OSwxMzYgKzYyLDEzNiBAQAogICAgIGN1cnNvcjogZGVmYXVsdDsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBo
ZWFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciB7CiAgICAgZm9udC1zaXplOiAxM3B4OwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
aGVhZGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5zaXplIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzLAor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciA+IC5zaXplIHsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRs
ZXMgPiAudGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB2YXIo
LS10ZXh0LWNvbG9yLWdyYXktZGFyayk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyIC5tZW1vcnktY29zdCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1l
bW9yeS1jb3N0IHsKICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
aGVhZGVyIC5zdWJ0aXRsZTo6YmVmb3JlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgLnN1YnRpdGxlOjpiZWZvcmUgewogICAg
IGNvbnRlbnQ6ICJcMDBBMFwyMDE0XDAwQTAiOyAvKiAmbmJzcDsmbWRhc2g7Jm5ic3A7ICovOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogd2hpdGU7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewogICAgIGNvbG9yOiB2YXIoLS1zZWxl
Y3RlZC1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgpOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAg
ICBhbGlnbi1pdGVtczogaW5pdGlhbDsKICAgICBib3JkZXI6IG5vbmU7CiAgICAgb3BhY2l0eTog
MDsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpo
b3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hl
cyg6aG92ZXIsIC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7
CiAgICAgb3BhY2l0eTogMTsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4t
b3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJsZWQgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJs
ZWQgewogICAgIGZpbHRlcjogZ3JheXNjYWxlKCk7CiAgICAgb3BhY2l0eTogMC41OwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJl
Y29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3Jk
LXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6aG92ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5k
aXNhYmxlZCk6aG92ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg5NSUpOwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29y
ZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0
YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlz
YWJsZWQpOmFjdGl2ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDgwJSk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1h
Y3RpdmUgPiAucHJvZ3Jlc3MtdmlldywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNz
LXZpZXcsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgewogICAgIGhlaWdodDogMjgwcHg7CiAgICAgdHJhbnNpdGlvbjogYmFj
a2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9n
cmVzcy12aWV3OmhvdmVyLAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mt
dmlldzpob3ZlciwKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDAlLCA5NiUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
LnByZXZpZXcgewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
ID4gaW1nIHsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm94LXNoYWRvdzogMXB4IDJw
eCA2cHggcmdiYSgwLCAwLCAwLCAwLjU4KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmll
dyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gLnByZXZpZXcgPiAubWVzc2FnZS10ZXh0LXZpZXcgewogICAgIHBvc2l0aW9uOiBzdGF0aWM7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgewogICAgIGJvcmRlci10b3A6IG5vbmU7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZp
ZXctcmVsYXRlZC1pdGVtcyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyB7CiAgICAgZGlz
cGxheTogZmxleDsKICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJl
bGF0ZWQtaXRlbXMgPiA6bWF0Y2hlcygudmlldy1zaGFkZXIsIC52aWV3LXJlY29yZGluZykgewor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiA6bWF0Y2hlcygudmlldy1zaGFkZXIsIC52aWV3
LXJlY29yZGluZykgewogICAgIHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290
ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gaW1nICsgaW1nIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxh
dGVkLWl0ZW1zID4gaW1nICsgaW1nIHsKICAgICAtd2Via2l0LW1hcmdpbi1zdGFydDogNHB4Owog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1zaGFkZXIgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52
aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1zaGFkZXIgewogICAgIGNvbnRlbnQ6IGltYWdlLXNl
dCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVu
dEdMQDJ4LnBuZykgMngpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1y
ZWNvcmRpbmcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1yZWNvcmRpbmcg
ewogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4g
LmZsZXhpYmxlLXNwYWNlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxleGlibGUtc3BhY2UgewogICAgIGZsZXg6IDE7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgLXdlYmtp
dC1wYWRkaW5nLXN0YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIHsK
ICAgICBoZWlnaHQ6IDM0MHB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1y
ZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgewogICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQt
cmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lID4gLml0ZW0ucmVjb3JkaW5nID4gLmljb24geworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1y
ZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CiAgICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIApAQCAtMjA5LDQzICsy
MTIsMzkgQEAKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogdW5zZXQ7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisgICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcywKKyAgICAuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcg
ewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXNlY29u
ZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAot
ICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
LnByZXZpZXc6aG92ZXIgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVy
LAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiAucHJldmlldzpob3ZlciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJh
Y2tncm91bmQtY29sb3ItdGVydGlhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgeworICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSB7CiAgICAgICAgIC0tcmVjb3JkaW5nLWNvbG9yOiBoc2woMCwgMTAwJSwg
MzklKTsKICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yZWNvcmRpbmctY29sb3IpOwogICAg
IH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRl
ciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAg
ICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKyAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSB7CiAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICB9CiAKLSAg
ICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhl
YWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKyAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAg
ICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
LnZpZXctcmVjb3JkaW5nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC52aWV3LXJlY29yZGluZyB7CiAgICAgICAgIGZp
bHRlcjogaW52ZXJ0KCk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRs
ZXMgPiAuc3VidGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAu
c3VidGl0bGUgewogICAgICAgICBjb2xvcjogdW5zZXQ7CiAgICAgICAgIG9wYWNpdHk6IDAuNQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCmluZGV4IDYz
OWIzNmQ4NTliYjdjZjNjMzQ0NDVhYTBlYjc0OTU0MzNjNDEwOTguLjBkMTY1ZGQyNjhkNDM3MDI4
YTQzZDE0OWUwN2NmYTgzOGI0ZGU3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdD
b250ZW50Vmlldy5qcwpAQCAtMjksNyArMjksOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwog
ICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb2xsZWN0aW9uKTsKIAotICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVy
ID0gV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4
dHMiKSk7CisgICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5hbmltYXRpb25NYW5h
Z2VyLnN1cHBvcnRlZCA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIDogV0kuY3JlYXRl
TWVzc2FnZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4dHMiKSk7CisKICAg
ICAgICAgbGV0IGRlc2NyaXB0aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CiAgICAgICAgIGRlc2NyaXB0aW9u
RWxlbWVudC5jbGFzc05hbWUgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICBkZXNjcmlwdGlvbkVs
ZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgY2FudmFzIGNvbnRl
eHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iKTsKQEAgLTYyLDIxICs2Myw3IEBAIFdJLkNh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLl91cGRhdGVSZWNvcmRpbmdBdXRv
Q2FwdHVyZUNoZWNrYm94TGFiZWwoZnJhbWVDb3VudCk7CiAgICAgICAgIH0KIAotICAgICAgICB0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbSgiaW1wb3J0LXJlY29yZGluZyIsIFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9J
bXBvcnQuc3ZnIiwgMTUsIDE1KTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0udG9vbHRpcCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQiKTsKLSAgICAgICAgdGhpcy5faW1w
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7Ci0KLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5h
dmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoLWFsbCIs
IFdJLlVJU3RyaW5nKCJSZWZyZXNoIGFsbCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMs
IDEzKTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQg
PSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5f
cmVmcmVzaFByZXZpZXdzLCB0aGlzKTsKLQotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5h
dmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ct
Z3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5n
KCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vy
cy5zdmciLCAxMywgMTMpOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKLSAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7Ci0g
ICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5l
cihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1
dHRvbkNsaWNrZWQsIHRoaXMpOwotCiAgICAgICAgIGltcG9ydE5hdmlnYXRpb25JdGVtLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5f
aGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKLSAgICAgICAg
dGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3Jk
aW5nc0NvbnRlbnRWaWV3ID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJl
ZU91dGxpbmUgPSBudWxsOwpAQCAtOTAsMTcgKzc3LDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29s
bGVjCiAKICAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKICAgICB7Ci0gICAgICAgIGxldCBuYXZp
Z2F0aW9uSXRlbXMgPSBbdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5E
aXZpZGVyTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwg
dGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbV07Ci0gICAgICAgIGlmIChXSS5DYW52
YXNNYW5hZ2VyLnN1cHBvcnRzUmVjb3JkaW5nQXV0b0NhcHR1cmUoKSkKLSAgICAgICAgICAgIG5h
dmlnYXRpb25JdGVtcy51bnNoaWZ0KHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlv
bkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICBsZXQgbmF2aWdh
dGlvbkl0ZW1zID0gW107CisgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5h
dmlnYXRpb25JdGVtKQorICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5fcmVj
b3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSk7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0
aW9uSXRlbXM7CiAgICAgfQogCi0gICAgaGlkZGVuKCkKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpCiAgICAgewotICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxp
Z2h0KCk7Ci0KLSAgICAgICAgc3VwZXIuaGlkZGVuKCk7CisgICAgICAgIGZvciAobGV0IHN1YnZp
ZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJl
ZnJlc2hCdXR0b25DbGlja2VkKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQcm90ZWN0
ZWQKQEAgLTExNSwyMyArMTAzLDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAg
ICAgICB0aGlzLnJlbW92ZVN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcp
OwogICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRl
bnRWaWV3KTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25JdGVt
cygpOwogICAgIH0KIAogICAgIGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKICAgICB7
CiAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vl
bnRlciIsIHRoaXMuX2NvbnRlbnRWaWV3TW91c2VFbnRlcik7CiAgICAgICAgIGNvbnRlbnRWaWV3
LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2NvbnRlbnRW
aWV3TW91c2VMZWF2ZSk7Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7
CiAgICAgfQogCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQo
KTsKIAotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIo
V0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl91cGRhdGVTaG93SW1hZ2VHcmlkLCB0aGlz
KTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVk
LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVD
YW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWRDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAg
V0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LmFkZEV2ZW50
TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVDYW52YXNSZWNv
cmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnRDaGFuZ2VkLCB0aGlzKTsKIApAQCAtMTQxLDQ5ICsx
MjQsMjcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3NhdmVk
UmVjb3JkaW5nc1RyZWVPdXRsaW5lLnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIGZvciAobGV0
IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykKICAgICAgICAg
ICAgIHRoaXMuX2FkZFNhdmVkUmVjb3JkaW5nKHJlY29yZGluZyk7CisKKyAgICAgICAgZm9yIChs
ZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcu
cmVmcmVzaFByZXZpZXcoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGRldGFjaGVkKCkKICAg
ICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKwogICAg
ICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhp
cyk7CiAKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFt
ZUNvdW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAgICAgICAgIFdJ
LnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC5yZW1vdmVFdmVudExp
c3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VH
cmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgc3Vw
ZXIuZGV0YWNoZWQoKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBnZXQgX2l0ZW1N
YXJnaW4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRoaXMuZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgiLS1pdGVtLW1hcmdpbiIpKTsK
LSAgICB9Ci0KLSAgICBfcmVmcmVzaFByZXZpZXdzKCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0
IGNhbnZhc0NvbnRlbnRWaWV3IG9mIHRoaXMuc3Vidmlld3MpCi0gICAgICAgICAgICBjYW52YXND
b250ZW50Vmlldy5yZWZyZXNoUHJldmlldygpOwotICAgIH0KLQotICAgIF91cGRhdGVOYXZpZ2F0
aW9uSXRlbXMoKQotICAgIHsKLSAgICAgICAgbGV0IGhhc0l0ZW1zID0gISF0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LnNpemU7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRl
bS5lbmFibGVkID0gaGFzSXRlbXM7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uZW5hYmxlZCA9IGhhc0l0ZW1zOwotICAgIH0KLQotICAgIF9zaG93R3JpZEJ1dHRv
bkNsaWNrZWQoZXZlbnQpCi0gICAgewotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlk
LnZhbHVlID0gIXRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOwot
ICAgIH0KLQotICAgIF91cGRhdGVTaG93SW1hZ2VHcmlkKCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5z
aG93SW1hZ2VHcmlkLnZhbHVlOwotICAgIH0KLQogICAgIF9jb250ZW50Vmlld01vdXNlRW50ZXIo
ZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgY29udGVudFZpZXcgPSBXSS5WaWV3LmZyb21FbGVt
ZW50KGV2ZW50LnRhcmdldCk7CkBAIC0zMDEsOCArMjYyLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdD
b250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b2xsZWMKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3LmVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUuZWxlbWVudCk7
CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgIGxl
dCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNv
cmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKKyAg
ICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVu
dChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIFdJLlJlY29yZGluZy5kaXNw
bGF5TmFtZUZvclJlY29yZGluZ1R5cGUocmVjb3JkaW5nLnR5cGUpLCByZWNvcmRpbmcpOwogICAg
ICAgICByZWNvcmRpbmdUcmVlRWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgIHRo
aXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVF
bGVtZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKaW5kZXggYzJiYmRj
MDJlOWU4OTZiNDJiMWI2M2QzMzRiY2ZmMjJkODI3NGExOS4uYzcxMWZhZjQ2MmI3NmU1ZTkwODI3
NDdmMTdmOTJlYTg2YjFmYjBiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwpAQCAt
MjM3LDEwICsyMzcsOCBAQCBXSS5DYW52YXNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52YXNTaWRl
YmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogCiAgICAgY2FuU2hvd1Jl
cHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYgKHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICByZXR1cm4gc3VwZXIuY2FuU2hvd1JlcHJlc2Vu
dGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZzsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc1RhYkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODlkYWI1ZWY5OTc5ZDYyYjgxMTU5ODlhOTE2NDA0MTNjNzJhOGNkYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLmNvbnRlbnQtdmlldy50YWIu
Y2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24gewot
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKLX0KLQotLmNv
bnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMuY2Fu
dmFzLTJkIC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczJELnN2Zyk7
Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
Y2FudmFzOm1hdGNoZXMoLndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29u
IHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Ci19Ci0KLS5jb250
ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4g
Lmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7Ci19Ci0K
LS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuc2hhZGVy
LXByb2dyYW0gPiAuaWNvbiB7Ci0gICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMv
RG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7
Ci19Ci0KLUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVu
dC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmll
dyAuaWNvbiB7Ci0gICAgICAgIGZpbHRlcjogaW52ZXJ0KDYwJSk7Ci0gICAgfQotCi0gICAgLmNv
bnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMgLmlj
b24sCi0gICAgLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5yZWNvcmRpbmcgPiAuaWNvbiB7Ci0gICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7Ci0gICAgfQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmUxZGJlNDgwMWU1NTdiYzdjMjBlNTJlYzc3YzgwOTk5ZDU2YThkNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcworKysgL2Rl
di9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuQ2FudmFzVGFiQ29udGVu
dFZpZXcgPSBjbGFzcyBDYW52YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93
c2VyVGFiQ29udGVudFZpZXcKLXsKLSAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkK
LSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFyZXByZXNlbnRlZE9iamVjdCB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IHRhYkJh
ckl0ZW0gPSBXSS5HZW5lcmFsVGFiQmFySXRlbS5mcm9tVGFiSW5mbyhXSS5DYW52YXNUYWJDb250
ZW50Vmlldy50YWJJbmZvKCkpOwotCi0gICAgICAgIGNvbnN0IG5hdmlnYXRpb25TaWRlYmFyUGFu
ZWxDb25zdHJ1Y3RvciA9IFdJLkNhbnZhc1NpZGViYXJQYW5lbDsKLSAgICAgICAgY29uc3QgZGV0
YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyA9IFtXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNT
aWRlYmFyUGFuZWwsIFdJLlJlY29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbCwgV0kuQ2Fu
dmFzRGV0YWlsc1NpZGViYXJQYW5lbF07Ci0gICAgICAgIGNvbnN0IGRpc2FibGVCYWNrRm9yd2Fy
ZCA9IHRydWU7Ci0gICAgICAgIHN1cGVyKCJjYW52YXMiLCBbImNhbnZhcyJdLCB0YWJCYXJJdGVt
LCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxD
b25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2FyZCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFz
Q29sbGVjdGlvbiA9IG5ldyBXSS5DYW52YXNDb2xsZWN0aW9uOwotCi0gICAgICAgIHRoaXMuX2Nh
bnZhc1RyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lOwotICAgICAgICB0aGlzLl9jYW52
YXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOwotICAgICAgICB0aGlz
Ll9jYW52YXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50
LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rpb25EaWRD
aGFuZ2UsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQgPSBuZXcg
V0kuR2VuZXJhbFRyZWVFbGVtZW50KCJjYW52YXMtb3ZlcnZpZXciLCBXSS5VSVN0cmluZygiT3Zl
cnZpZXciKSwgbnVsbCwgdGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX2Nh
bnZhc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQpOwot
Ci0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50ID0gbmV3IFdJLkZvbGRl
clRyZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJTYXZlZCBSZWNvcmRpbmdzIiksIFdJLlJlY29yZGlu
Z0NvbGxlY3Rpb24pOwotICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5o
aWRkZW4gPSB0cnVlOwotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9y
ZWNvcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdJLktleWJvYXJk
U2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNl
OwotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0
Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQsIFdJLktleWJvYXJkU2hvcnRj
dXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhp
cy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0g
ZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQg
PSB0cnVlOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7Ci0gICAgfQotCi0g
ICAgc3RhdGljIHRhYkluZm8oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAg
IGltYWdlOiAiSW1hZ2VzL0NhbnZhcy5zdmciLAotICAgICAgICAgICAgdGl0bGU6IFdJLlVJU3Ry
aW5nKCJDYW52YXMiKSwKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaXNUYWJBbGxv
d2VkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigi
Q2FudmFzIik7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICB0cmVlRWxlbWVudEZvclJl
cHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRlZE9iamVj
dCk7Ci0gICAgfQotCi0gICAgZ2V0IHR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdJLkNh
bnZhc1RhYkNvbnRlbnRWaWV3LlR5cGU7Ci0gICAgfQotCi0gICAgZ2V0IHN1cHBvcnRzU3BsaXRD
b250ZW50QnJvd3NlcigpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAg
ICBnZXQgbWFuYWdlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotCi0gICAgY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2Vu
dGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQ2FudmFzCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24KLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW07Ci0gICAgfQotCi0gICAgc2hvd24oKQotICAg
IHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1
dC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0
Y3V0LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRCcm93c2Vy
LmN1cnJlbnRDb250ZW50VmlldykKLSAgICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2Jq
ZWN0KHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwotICAgIH0KLQotICAgIGhpZGRlbigpCi0gICAg
ewotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAg
IHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAg
ICAgIHN1cGVyLmhpZGRlbigpOwotICAgIH0KLQotICAgIGNsb3NlZCgpCi0gICAgewotICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKLQotICAgICAgICBzdXBlci5jbG9zZWQoKTsK
LSAgICB9Ci0KLSAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2
PiBpcyBjb21wbGV0ZS4KLSAgICB9Ci0KLSAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUpCi0g
ICAgewotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCi0gICAgfQotCi0gICAgYXN5bmMgaGFuZGxlRmlsZURy
b3AoZmlsZXMpCi0gICAgewotICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09O
KGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkp
OwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0gICAgYXR0YWNoZWQoKQotICAgIHsKLSAg
ICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKLQotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgdGhpcy5faGFu
ZGxlQ2FudmFzQWRkZWQsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB0aGlzLl9oYW5k
bGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hh
bmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKLSAgICAgICAgV0kuQ2FudmFzLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hh
bmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKLQotICAgICAgICBsZXQgY2FudmFz
ZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOwotCi0gICAgICAgIGZvciAobGV0IGNhbnZh
cyBvZiB0aGlzLl9jYW52YXNDb2xsZWN0aW9uKSB7Ci0gICAgICAgICAgICBpZiAoIWNhbnZhc2Vz
LmluY2x1ZGVzKGNhbnZhcykpCi0gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNh
bnZhcyk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgY2FudmFzZXMp
IHsKLSAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5oYXMoY2FudmFzKSkK
LSAgICAgICAgICAgICAgICB0aGlzLl9hZGRDYW52YXMoY2FudmFzKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7
Ci0gICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVj
b3JkaW5ncykKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIHtzdXBw
cmVzc1Nob3dSZWNvcmRpbmc6IHRydWV9KTsKLSAgICB9Ci0KLSAgICBkZXRhY2hlZCgpCi0gICAg
ewotICAgICAgICBXSS5DYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlz
KTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51
bGwsIHRoaXMpOwotCi0gICAgICAgIHN1cGVyLmRldGFjaGVkKCk7Ci0gICAgfQotCi0gICAgLy8g
UHJpdmF0ZQotCi0gICAgX2FkZENhbnZhcyhjYW52YXMpCi0gICAgewotICAgICAgICB0aGlzLl9v
dmVydmlld1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyBXSS5DYW52YXNUcmVlRWxlbWVudChj
YW52YXMpKTsKLSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5hZGQoY2FudmFzKTsKLQot
ICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3Jk
aW5nOiB0cnVlLAotICAgICAgICB9OwotCi0gICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBj
YW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGlu
ZyhyZWNvcmRpbmcsIG9wdGlvbnMpOwotICAgIH0KLQotICAgIF9yZW1vdmVDYW52YXMoY2FudmFz
KQotICAgIHsKLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fY2FudmFzVHJlZU91dGxp
bmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVF
bGVtZW50LCAiTWlzc2luZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOwotCi0g
ICAgICAgIGNvbnN0IHN1cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKLSAgICAgICAgdHJlZUVs
ZW1lbnQuZGVzZWxlY3Qoc3VwcHJlc3NOb3RpZmljYXRpb24pOwotICAgICAgICB0aGlzLl9vdmVy
dmlld1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlz
Ll9jYW52YXNDb2xsZWN0aW9uLnJlbW92ZShjYW52YXMpOwotCi0gICAgICAgIGxldCBjdXJyZW50
Q29udGVudFZpZXcgPSB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKLSAg
ICAgICAgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRW
aWV3KQotICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHRoaXMuX2NhbnZhc0Nv
bGxlY3Rpb24pOwotICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2Vv
ZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5o
YXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKLSAgICAgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50
VmlldygpOwotCi0gICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZp
Z2F0aW9uU2lkZWJhclBhbmVsOwotICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBp
bnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LnZpc2libGUpCi0gICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJl
c2VudGVkT2JqZWN0cygpOwotCi0gICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxz
KCk7Ci0gICAgfQotCi0gICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkK
LSAgICB7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgewotICAgICAgICAgICAgY29u
c3Qgc3VidGl0bGUgPSBudWxsOwotICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50
ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlz
cGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOwotICAgICAgICAgICAgdGhpcy5fc2F2ZWRS
ZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLl9z
YXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVu
dCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3Jk
aW5nKQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVjb3JkaW5nKTsK
LSAgICB9Ci0KLSAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0
aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAgIF9oYW5kbGVD
YW52YXNSZW1vdmVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGV2
ZW50LmRhdGEuY2FudmFzKTsKLSAgICB9Ci0KLSAgICBfY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rp
b25EaWRDaGFuZ2UoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50ID0g
dGhpcy5fY2FudmFzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAgaWYg
KCFzZWxlY3RlZEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHJl
cHJlc2VudGVkT2JqZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwotICAg
ICAgICBpZiAoIXRoaXMuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0
KSkgewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJlcHJl
c2VudGVkT2JqZWN0LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2Vu
dGVkT2JqZWN0KTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQo
ZXZlbnQpCi0gICAgewotICAgICAgICBsZXQge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyLCBp
bXBvcnRlZH0gPSBldmVudC5kYXRhOwotICAgICAgICBpZiAoIXJlY29yZGluZykKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OwotCi0gICAgICAgIC8vIEFs
d2F5cyBzaG93IGltcG9ydGVkIHJlY29yZGluZ3MuCi0gICAgICAgIGlmIChyZWNvcmRpbmcuc291
cmNlIHx8ICFpbXBvcnRlZCkKLSAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3Jk
aW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXBy
ZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsKLQotICAgICAgICB0aGlzLl9hZGRSZWNvcmRp
bmcocmVjb3JkaW5nLCBvcHRpb25zKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlU3BhY2UoZXZlbnQp
Ci0gICAgewotICAgICAgICBpZiAoV0kuaXNFdmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChldmVu
dCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25T
aWRlYmFyUGFuZWwpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGNhbnZhcyA9
IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbC5jYW52YXM7Ci0gICAgICAgIGlmICghY2FudmFz
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5nQWN0
aXZlKQotICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2ZW50LnNoaWZ0S2V5OwotICAgICAg
ICAgICAgY2FudmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfQotfTsKLQotV0kuQ2FudmFzVGFi
Q29udGVudFZpZXcuVHlwZSA9ICJjYW52YXMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50
Vmlldy5jc3MKaW5kZXggZmUzM2U3YWNkOWYxNjFiMmNjMGNlNzFjZDUyNGE0OTFhZGQzM2MyYi4u
ODJjYmNmYThiYjUwNDNiM2NmZTVhNzYzMjNiZDEwNDljZDVjNTcyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0yNSwyMiArMjUsMzQgQEAKIAogLmNvbnRlbnQt
dmlldy5jb2xsZWN0aW9uIHsKICAgICBkaXNwbGF5OiBmbGV4OwotICAgIGZsZXgtd3JhcDogd3Jh
cDsKLSAgICBvdmVyZmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7CisgICAgZmxleC13cmFwOiB2YXIo
LS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1mbGV4LXdyYXApOworICAgIG92ZXJmbG93LXg6IHZh
cigtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXgpICFpbXBvcnRhbnQ7CisgICAg
b3ZlcmZsb3cteTogdmFyKC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteSkgIWlt
cG9ydGFudDsKKworICAgIC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwLWRlZmF1
bHQ6IHdyYXA7CisgICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy14LWRlZmF1
bHQ6IGhpZGRlbjsKKyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXktZGVm
YXVsdDogYXV0bzsKKworICAgIC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwOiB2
YXIoLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1mbGV4LXdyYXAtb3ZlcnJpZGUsIHZhcigtLWNv
bGxlY3Rpb24tY29udGVudC12aWV3LWZsZXgtd3JhcC1kZWZhdWx0KSk7CisgICAgLS1jb2xsZWN0
aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy14OiB2YXIoLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmll
dy1vdmVyZmxvdy14LW92ZXJyaWRlLCB2YXIoLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVy
Zmxvdy14LWRlZmF1bHQpKTsKKyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93
LXk6IHZhcigtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXktb3ZlcnJpZGUsIHZh
cigtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXktZGVmYXVsdCkpOwogfQogCiAu
Y29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAuY29udGVudC12aWV3IHsKICAgICBmbGV4LWdyb3c6
IDE7CiB9CiAKLS5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nIHsK
LSAgICBvdXRsaW5lOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwotfQotCi0uY29u
dGVudC12aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZzpob3ZlciB7Ci0gICAgb3V0
bGluZS1jb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKQotfQotCiAuY29udGVudC12aWV3
LmNvbGxlY3Rpb24gPiAuY29udGVudC12aWV3W2hpZGRlbl0gewogICAgIGRpc3BsYXk6IG5vbmU7
CiB9CisKKy5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRlcjpub3QoLm1lc3Nh
Z2UtdGV4dC12aWV3KSB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4LWRpcmVjdGlvbjog
Y29sdW1uOworICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgIGFsaWduLWl0ZW1zOiBj
ZW50ZXI7CisgICAgd2lkdGg6IDEwMCU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZv
bnQtc2l6ZTogMTNweDsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggMDU0NzQxNjgxYzgx
OGJlNWJjYWE1ZDZmZjE5ZDUzNzI5YjdiMzg2Ni4uZDRlNjFlMDgyNTUwY2E1ZDM4NjAyMmRlZjBl
ZmIzOTU1ZThjYjU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAt
MjgsNyArMjgsNyBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9u
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgIGNvbnN0cnVjdG9yKGNvbGxl
Y3Rpb24sIGNvbnRlbnRWaWV3Q29uc3RydWN0b3IsIGNvbnRlbnRQbGFjZWhvbGRlcikKICAgICB7
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbGxlY3Rpb24gaW5zdGFuY2VvZiBXSS5Db2xsZWN0
aW9uKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXdDb25zdHJ1Y3RvciBpbnN0
YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWNvbnRlbnRW
aWV3Q29uc3RydWN0b3IgfHwgY29udGVudFZpZXdDb25zdHJ1Y3Rvci5wcm90b3R5cGUgaW5zdGFu
Y2VvZiBXSS5Db250ZW50Vmlldyk7CiAKICAgICAgICAgc3VwZXIoY29sbGVjdGlvbik7CiAKQEAg
LTM4LDcgKzM4LDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlv
bkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY29udGVu
dFBsYWNlaG9sZGVyRWxlbWVudCA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3Q29u
c3RydWN0b3IgPSBjb250ZW50Vmlld0NvbnN0cnVjdG9yOwogICAgICAgICB0aGlzLl9jb250ZW50
Vmlld01hcCA9IG5ldyBNYXA7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwID0gbmV3IFdl
YWtNYXA7CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IG51bGw7CiAgICAgICAgIHRoaXMu
X3NlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTsKICAgICB9CkBAIC04MywxOSArODIsMjUgQEAgV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7CiAg
ICAgfQogCi0gICAgc2V0U2VsZWN0ZWRJdGVtKGl0ZW0pCisgICAgZ2V0IHNlbGVjdGVkSXRlbSgp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtOworICAgIH0KKworICAg
IHNldCBzZWxlY3RlZEl0ZW0oaXRlbSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX3NlbGVjdGlvbkVuYWJsZWQsICJBdHRlbXB0ZWQgdG8gc2V0IHNlbGVjdGVkIGl0ZW0gd2hl
biBzZWxlY3Rpb24gaXMgZGlzYWJsZWQuIik7CiAgICAgICAgIGlmICghdGhpcy5fc2VsZWN0aW9u
RW5hYmxlZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgY29udGVudFZpZXcg
PSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGNvbnRlbnRWaWV3LCAiTWlzc2luZyBjb250ZXQgdmlldyBmb3IgaXRlbS4iLCBpdGVtKTsKLSAg
ICAgICAgaWYgKCFjb250ZW50VmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB0
aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnNjcm9s
bEludG9WaWV3SWZOZWVkZWQoKTsKKworICAgICAgICBpZiAoaXRlbSkgeworICAgICAgICAgICAg
bGV0IGNvbnRlbnRWaWV3ID0gdGhpcy5fY29udGVudFZpZXdNYXAuZ2V0KGl0ZW0pOworICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRldCB2aWV3IGZv
ciBpdGVtLiIsIGl0ZW0pOworICAgICAgICAgICAgaWYgKGNvbnRlbnRWaWV3KQorICAgICAgICAg
ICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0xMjAsMjAgKzEyNSw5IEBAIFdJ
LkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gbmV3IHRoaXMu
X2NvbnRlbnRWaWV3Q29uc3RydWN0b3IoaXRlbSwgdGhpcy5jb250ZW50Vmlld0NvbnN0cnVjdG9y
T3B0aW9ucyk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3IGluc3RhbmNlb2Yg
V0kuQ29udGVudFZpZXcpOwotCi0gICAgICAgIGxldCBoYW5kbGVDbGljayA9IChldmVudCkgPT4g
ewotICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlv
bkVuYWJsZWQpCi0gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVtKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRl
bSk7Ci0gICAgICAgIH07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LnJlcHJl
c2VudGVkT2JqZWN0ID09PSBpdGVtKTsKIAogICAgICAgICB0aGlzLl9jb250ZW50Vmlld01hcC5z
ZXQoaXRlbSwgY29udGVudFZpZXcpOwotICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcC5zZXQo
aXRlbSwgaGFuZGxlQ2xpY2spOwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgaGFuZGxlQ2xpY2spOwogCiAgICAgICAgIHRoaXMuYWRkU3Vidmll
dyhjb250ZW50Vmlldyk7CiAgICAgICAgIHRoaXMuY29udGVudFZpZXdBZGRlZChjb250ZW50Vmll
dyk7CkBAIC0xNjksMTQgKzE2Myw2IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAg
Y29udGVudFZpZXcucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAotICAg
ICAgICBsZXQgaGFuZGxlQ2xpY2sgPSB0aGlzLl9oYW5kbGVDbGlja01hcC5nZXQoaXRlbSk7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhhbmRsZUNsaWNrKTsKLQotICAgICAgICBpZiAoaGFuZGxl
Q2xpY2spIHsKLSAgICAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCBoYW5kbGVDbGljayk7Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlj
a01hcC5kZWxldGUoaXRlbSk7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoIXRoaXMuc3Vidmll
d3MubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVyKCk7CiAg
ICAgfQpAQCAtMjAwLDYgKzE4Niw4IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAg
ICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCA9IHRoaXMuX2NvbnRlbnRQbGFj
ZWhvbGRlcjsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgicGxhY2Vob2xkZXIiKTsKKwogICAgICAgICBpZiAoIXRoaXMu
X2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50KTsKICAg
ICB9CkBAIC0yMTIsMTAgKzIwMCwxMSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFz
cyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgaW5p
dGlhbExheW91dCgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
c2l6ZSB8fCAhdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikgeworICAgICAgICBpZiAodGhp
cy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworCisg
ICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlzLl9jb250ZW50
Vmlld0NvbnN0cnVjdG9yKQogICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVy
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBhdHRhY2hl
ZCgpCkBAIC0yOTIsNiArMjgxLDMwIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAg
ICBzZWxlY3RlZENvbnRlbnRWaWV3LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsK
ICAgICAgICAgfQogCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNv
bGxlY3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2VkKTsKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxl
bWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKICAgICB9CisKKyAgICBfaGFuZGxl
Q2xpY2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2
ZW50LmN0cmxLZXkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgW2l0
ZW0sIGNvbnRlbnRWaWV3XSBvZiB0aGlzLl9jb250ZW50Vmlld01hcCkgeworICAgICAgICAgICAg
aWYgKGNvbnRlbnRWaWV3LmVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgeworICAgICAg
ICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlz
Ll9zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsK
KyAgICB9Cit9OworCitXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQgPSB7CisgICAgU2Vs
ZWN0ZWRJdGVtQ2hhbmdlZDogImNvbGxlY3Rpb24tY29udGVudC12aWV3LXNlbGVjdGVkLWl0ZW0t
Y2hhbmdlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcwppbmRleCBkZjkxMmRkNTZmYTA3ZGY5NDhmMGQ3
ZjdhZjBkN2M2ZDFiNzlhMmY2Li4yOTZjMmE1NDIzYTBmNjkxZWFjN2QyZDBlOTM2MDBmNTE1NGYw
ZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db250ZW50Vmlldy5qcwpAQCAtNjAsOSArNjAsNiBAQCBXSS5Db250ZW50VmlldyA9
IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJ
LkNhbnZhc0NvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAK
LSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVj
dGlvbikKLSAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwotCiAgICAgICAgIGlmIChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAgICBy
ZXR1cm4gbmV3IFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwg
ZXh0cmFBcmd1bWVudHMpOwogCkBAIC0xODIsNiArMTc5LDkgQEAgV0kuQ29udGVudFZpZXcgPSBj
bGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXAgfHwgcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBu
ZXcgV0kuQXVkaXRUZXN0R3JvdXBDb250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFB
cmd1bWVudHMpOwogCisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQW5pbWF0aW9uQ29udGVudFZp
ZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKKwogICAgICAgICBpZiAocmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0
dXJuIG5ldyBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJh
QXJndW1lbnRzKTsKIApAQCAtMjczLDggKzI3Myw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3Mg
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5UaW1lbGluZVJlY29yZGluZykKQEAgLTMxOCwxMCArMzE2LDE0IEBAIFdJLkNv
bnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2UgfHwgcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cAogICAgICAgICAgICAgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHR5cGVvZiByZXByZXNlbnRlZE9iamVjdCA9PT0g
InN0cmluZyIgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0W1dJLkNvbnRl
bnRWaWV3LmlzVmlld2FibGVTeW1ib2xdKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTUxMiw0ICs1MTQsNSBAQCBXSS5Db250ZW50
Vmlldy5FdmVudCA9IHsKICAgICBOYXZpZ2F0aW9uSXRlbXNEaWRDaGFuZ2U6ICJjb250ZW50LXZp
ZXctbmF2aWdhdGlvbi1pdGVtcy1kaWQtY2hhbmdlIgogfTsKIAorV0kuQ29udGVudFZpZXcuaXNW
aWV3YWJsZVN5bWJvbCA9IFN5bWJvbCgiaXMtdmlld2FibGUiKTsKIFdJLkNvbnRlbnRWaWV3LkNv
bnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3RTeW1ib2wgPSBTeW1ib2woImNvbnRlbnQtdmll
dy1mb3ItcmVwcmVzZW50ZWQtb2JqZWN0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2lt
cGxlUm93LmpzCmluZGV4IGU1YTVmZWMxZWFiYjVjMDk3MmNmYTA1M2Q1MzRjMzYwMDllMWI3NmYu
LjdlZDBjODJlYjNiNzFlZWI2YmJiMWY5N2U5NzkwZjZiYmJjNTU2MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2lt
cGxlUm93LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzCkBAIC05Niw3ICs5Niw3IEBAIFdJLkRldGFpbHNT
ZWN0aW9uU2ltcGxlUm93ID0gY2xhc3MgRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cgZXh0ZW5kcyBX
SS5EZXRhaWxzU2VjCiAgICAgewogICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8ICIiOwog
Ci0gICAgICAgIGlmICh0aGlzLl92YWx1ZSkgeworICAgICAgICBpZiAodGhpcy5fdmFsdWUgfHwg
dGhpcy5fdmFsdWUgPT09IDApIHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3Qu
cmVtb3ZlKFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93LkVtcHR5U3R5bGVDbGFzc05hbWUpOwog
CiAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaGFzIHNwYWNlIGNoYXJhY3RlcnMgdGhhdCBj
YXVzZSB3b3JkIHdyYXBwaW5nIHRoZW4gd2UgZG9uJ3QgbmVlZCB0aGUgZGF0YSBjbGFzcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJiYzg4ZWViZDJiNzNhM2ZkZTZlOTg1NjE5M2IxMGY0MjI1ZjEzZTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNv
bnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFy
KC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50KTsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7Cisg
ICAgcGFkZGluZy1ib3R0b206IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOworfQorCisuY29udGVudC12aWV3LmdyYXBo
aWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGJh
Y2tncm91bmQtY29sb3I6IGluaGVyaXQ7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3Zl
cnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpIHsKKyAgICBtYXJnaW4tdG9wOiAyMHB4
OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFk
ZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBw
b3NpdGlvbjogc3RpY2t5OworICAgIHRvcDogMDsKKyAgICB6LWluZGV4OiAxOworICAgIG1pbi1o
ZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgLXdlYmtpdC1wYWRkaW5n
LXN0YXJ0OiA4cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NyUpOworICAg
IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUp
ID4gLmhlYWRlciB7CisgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xv
cik7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhl
YWRlciA+IGgxIHsKKyAgICBtYXJnaW46IDA7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgZmxl
eC1ncm93OiAxOworICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CisgICAgYm9yZGVyLWJv
dHRvbTogbm9uZTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rp
b24uY2FudmFzID4gLmNvbnRlbnQgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7Cisg
ICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1mbGV4LXdyYXAtb3ZlcnJpZGU6IG5vd3JhcDsK
KyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXgtb3ZlcnJpZGU6IGF1dG87
CisgICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy15LW92ZXJyaWRlOiBoaWRk
ZW47CisgICAgLS1jYW52YXMtb3ZlcnZpZXctY29udGVudC12aWV3LWp1c3RpZnktY29udGVudC1v
dmVycmlkZTogZmxleC1zdGFydDsKK30KKworLyogRW5zdXJlIHRoYXQgc3RhcnQvZW5kIG1hcmdp
bnMgb2Ygc3Vidmlld3MgYXJlIHNob3duLiAqLworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVy
dmlldyA+IHNlY3Rpb24gPiAuY29udGVudCA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
Om1hdGNoZXMoOjpiZWZvcmUsIDo6YWZ0ZXIpIHsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBm
bGV4LXNocmluazogMDsKKyAgICB3aWR0aDogNHB4OworICAgIGNvbnRlbnQ6ICIiOworfQorCisu
Y29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgcmlnaHQ6
IDA7CisgICAgYm90dG9tOiAwOworICAgIGxlZnQ6IDA7Cit9CisKK0BtZWRpYSAocHJlZmVycy1j
b2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAxNCUpOworICAgIH0KKwor
ICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciB7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMjElKTsKKyAgICB9Cit9CisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dy
YXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNmE4NmY0MDk5YjlmYjZhZjhhNDM4NjVhM2FlNGUxOGEyZDAyMWQzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAg
eworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJncmFwaGljcy1vdmVydmlldyIpOworCisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5n
IiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOwor
ICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlT
dHJpbmcoIkltcG9ydCIpOworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4
dDsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0
ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJ
bXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMu
X3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5z
dmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
YWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0
aGlzLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5f
c2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmln
YXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3Jp
ZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmln
YXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdy
aWQudmFsdWU7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRk
RXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlz
Ll9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX2Nh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyhXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworCisgICAgICAgIHRoaXMuX292
ZXJ2aWV3Vmlld3MgPSBbXTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBzdXBw
bGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X292ZXJ2aWV3Vmlld3MuZmxhdE1hcCgoc3VidmlldykgPT4gc3Vidmlldy5zdXBwbGVtZW50YWxS
ZXByZXNlbnRlZE9iamVjdHMpOworICAgIH0KKworICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQor
ICAgIHsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFtdOworICAgICAgICBpZiAoIVdJ
LmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRl
bXMucHVzaEFsbCh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVt
cyk7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaChuZXcgV0kuRGl2aWRlck5hdmln
YXRpb25JdGVtKTsKKyAgICAgICAgfQorICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlz
Ll9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRl
bSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRv
bk5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKKyAgICB9
CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1
cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRF
dmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0lt
YWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5faGFuZGxlU2hvd0lt
YWdlR3JpZFNldHRpbmdDaGFuZ2VkKCk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsK
KyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAg
IFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5n
LkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCwg
dGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFs
TGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAg
ICBpZiAoV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGxldCBj
cmVhdGVTZWN0aW9uID0gKGlkZW50aWZpZXIsIHRpdGxlLCBvdmVydmlld1ZpZXcpID0+IHsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChvdmVydmlld1ZpZXcgaW5zdGFuY2VvZiBXSS5D
b250ZW50Vmlldyk7CisKKyAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbkVsZW1lbnQgPSB0aGlz
LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIpKTsK
KyAgICAgICAgICAgICAgICBzZWN0aW9uRWxlbWVudC5jbGFzc05hbWUgPSBpZGVudGlmaWVyOwor
CisgICAgICAgICAgICAgICAgbGV0IGhlYWRlckVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAg
aGVhZGVyRWxlbWVudC5jbGFzc05hbWUgPSAiaGVhZGVyIjsKKworICAgICAgICAgICAgICAgIGxl
dCB0aXRsZUVsZW1lbnQgPSBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImgxIikpOworICAgICAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVu
dCA9IHRpdGxlOworCisgICAgICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IG92ZXJ2
aWV3Vmlldy5uYXZpZ2F0aW9uSXRlbXM7CisgICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25J
dGVtcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBu
ZXcgV0kuTmF2aWdhdGlvbkJhcihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJuYXYiKSwgbmF2aWdh
dGlvbkl0ZW1zKTsKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmRDaGls
ZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN1
YnZpZXcobmF2aWdhdGlvbkJhcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgbGV0IGNvbnRlbnRFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50
LmNsYXNzTmFtZSA9ICJjb250ZW50IjsKKworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50
LmFwcGVuZENoaWxkKG92ZXJ2aWV3Vmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICB0aGlz
LmFkZFN1YnZpZXcob3ZlcnZpZXdWaWV3KTsKKworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmll
dy5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rl
ZEl0ZW1DaGFuZ2VkLCB0aGlzLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuYWRkRXZlbnRMaXN0ZW5lcihX
SS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFu
Z2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0
c0RpZENoYW5nZSwgdGhpcyk7CisgICAgICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdWaWV3cy5w
dXNoKG92ZXJ2aWV3Vmlldyk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBjcmVhdGVT
ZWN0aW9uKCJjYW52YXMiLCBXSS5VSVN0cmluZygiQ2FudmFzZXMiKSwgdGhpcy5fY2FudmFzT3Zl
cnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJ3ZWItYW5pbWF0
aW9uIiwgV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9u
Rm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24pKSk7CisgICAgICAgICAgICBj
cmVhdGVTZWN0aW9uKCJjc3MtYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25z
IiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoV0kuYW5pbWF0aW9uTWFu
YWdlci5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5DU1NBbmlt
YXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3MtdHJhbnNpdGlvbiIsIFdJ
LlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25D
b250ZW50VmlldyhXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBl
KFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb24pKSk7CisKKyAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQo
dGhpcykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlz
Ll9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KTsKKworICAgICAgICBsZXQgZHJvcFpvbmVWaWV3
ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRleHQg
PSBXSS5VSVN0cmluZygiSW1wb3J0IFJlY29yZGluZyIpOworICAgICAgICBkcm9wWm9uZVZpZXcu
dGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRy
b3Bab25lVmlldyk7CisgICAgfQorCisgICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVnYXRlCisKKyAg
ICBkcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudChkcm9wWm9uZSwgZXZlbnQpCisgICAg
eworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxl
cyIpOworICAgIH0KKworICAgIGRyb3Bab25lSGFuZGxlRHJvcChkcm9wWm9uZSwgZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAg
ICAgIGlmIChmaWxlcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5iZWVwKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNN
YW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKwor
ICAgIF9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICBmb3IgKGxl
dCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykKKyAgICAgICAgICAgIG92ZXJ2
aWV3Vmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOworICAgIH0KKworICAgIF9oYW5k
bGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZlbnQpCisgICAgeworICAgICAgICBXSS5zZXR0aW5n
cy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uYWN0aXZhdGVkOworICAgIH0KKworICAgIF9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0No
YW5nZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgfQor
CisgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZChldmVudCkKKyAg
ICB7CisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuaW1wb3J0SlNPTigocmVzdWx0KSA9PiBXSS5j
YW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCksIHttdWx0aXBsZTogdHJ1ZX0pOworICAg
IH0KKworICAgIF9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgaWYgKCFldmVudC50YXJnZXQuc2VsZWN0ZWRJdGVtKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVy
dmlld1ZpZXdzKSB7CisgICAgICAgICAgICBpZiAob3ZlcnZpZXdWaWV3ICE9PSBldmVudC50YXJn
ZXQgJiYgb3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3Zl
cnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBf
aGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdl
KGV2bmV0KQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0ku
Q29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdl
KTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2xpY2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAo
ZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAg
ICAgICAgICAgIGlmIChvdmVydmlld1ZpZXcuc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAg
ICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJdGVtID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZi
NWFmZDgxNjBmMTYwZjYwMzQyYmFiZGZhM2UwZGZiMDM1OWU3NGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNv
bnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmll
dy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAu
aWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwor
fQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
Y2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52
YXMyRC5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAuY2FudmFzOm1hdGNoZXMoLndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2Vi
bWV0YWwpIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7
Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRp
bmcuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gLnNoYWRlci1wcm9ncmFtID4gLmljb24geworICAgIGNvbnRlbnQ6IGltYWdlLXNl
dCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVu
dEdMQDJ4LnBuZykgMngpOworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJr
KSB7CisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0gLmdyYXBoaWNzLW92ZXJ2aWV3IC5pY29uIHsKKyAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAl
KTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAorICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNz
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgICAgIGZp
bHRlcjogaW52ZXJ0KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZp
ZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDhkY2YyYjEwOWE4Mjc1ZDM3MTA3MjVlYWZjODkwYWNkYTYwYzMx
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NUYWJDb250
ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcKK3sKKyAgICBj
b25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxU
YWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbygp
KTsKKworICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBX
SS5DYW52YXNTaWRlYmFyUGFuZWw7CisgICAgICAgIGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxD
b25zdHJ1Y3RvcnMgPSBbCisgICAgICAgICAgICBXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRl
YmFyUGFuZWwsCisgICAgICAgICAgICBXSS5SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFu
ZWwsCisgICAgICAgICAgICBXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAg
ICAgV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgXTsKKyAgICAgICAg
Y29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKKyAgICAgICAgc3VwZXIoImdyYXBoaWNz
IiwgWyJncmFwaGljcyJdLCB0YWJCYXJJdGVtLCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3Ry
dWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2Fy
ZCk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0
bGluZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxl
Y3Rpb24gPSB0cnVlOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFkZEV2ZW50
TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9o
YW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKworICAg
ICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVu
dCgiY2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlTdHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHtbV0ku
Q29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbF06IHRydWV9KTsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZCh0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50KTsK
KworICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBX
SS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmluZygiU2F2ZWQgUmVjb3JkaW5ncyIpKTsKKyAg
ICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1
ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9z
YXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fcmVjb3Jk
U2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0
Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRo
aXMuX3JlY29yZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAg
ICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRo
aXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChX
SS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0Lktl
eS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3Jl
Y29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNl
OworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1
ZTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgpOworICAgICAgICBXSS5hbmlt
YXRpb25NYW5hZ2VyLmVuYWJsZSgpOworICAgIH0KKworICAgIHN0YXRpYyB0YWJJbmZvKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBpbWFnZTogIkltYWdlcy9HcmFwaGlj
cy5zdmciLAorICAgICAgICAgICAgdGl0bGU6IFdJLlVJU3RyaW5nKCJHcmFwaGljcyIpLAorICAg
ICAgICB9OworICAgIH0KKworICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52YXMiKQorICAgICAgICAg
ICAgfHwgSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkFuaW1hdGlvbiIpOworICAgIH0KKwor
ICAgIC8vIFB1YmxpYworCisgICAgdHJlZUVsZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXBy
ZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisgICAg
Z2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcuVHlwZTsKKyAgICB9CisKKyAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGdldCBtYW5hZ2VzTmF2
aWdhdGlvblNpZGViYXJQYW5lbCgpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBzaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSkK
KyAgICB7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxl
Y3Rpb24pIHsKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3
KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgc3VwZXIuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2Jq
ZWN0LCBjb29raWUpOworICAgIH0KKworICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXBy
ZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nCisgICAgICAgICAgICB8fCBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW1Db2xsZWN0aW9uCisg
ICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dy
YW0KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0
aW9uQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5BbmltYXRpb247CisgICAgfQorCisgICAgY2xvc2VkKCkKKyAgICB7CisgICAgICAgIFdJ
LmFuaW1hdGlvbk1hbmFnZXIuZGlzYWJsZSgpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmRp
c2FibGUoKTsKKworICAgICAgICBzdXBlci5jbG9zZWQoKTsKKyAgICB9CisKKyAgICByZXN0b3Jl
U3RhdGVGcm9tQ29va2llKGNvb2tpZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9
CisKKyAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUpCisgICAgeworICAgICAgICAvLyBGSVhN
RTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxl
dGUuCisgICAgfQorCisgICAgYXN5bmMgaGFuZGxlRmlsZURyb3AoZmlsZXMpCisgICAgeworICAg
ICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBX
SS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKworICAgIC8vIFBy
b3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQo
KTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRM
aXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFz
QWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
YWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9o
YW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMu
X2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuQ2FudmFz
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMu
X2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKworICAgICAgICBmb3IgKGxl
dCBjaGlsZCBvZiB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmNoaWxkcmVuKSB7CisgICAgICAg
ICAgICBsZXQgY2FudmFzID0gY2hpbGQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgICAgICBp
ZiAoY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzICYmICFXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCisgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2Fu
dmFzKGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMu
X2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcykpCisgICAgICAgICAg
ICAgICAgdGhpcy5fYWRkQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBmb3Ig
KGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3MpIHsKKyAg
ICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQo
cmVjb3JkaW5nKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5n
LCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlfSk7CisgICAgICAgIH0KKworICAgICAgICB0
aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNv
cmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgZGV0
YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0
cnVlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0g
dHJ1ZTsKKworICAgICAgICBXSS5DYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMu
RXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3Bw
ZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3Jk
aW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKwor
ICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIGluaXRpYWxMYXlvdXQoKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDb250ZW50VmlldyA9IG5ldyBXSS5HcmFwaGlj
c092ZXJ2aWV3Q29udGVudFZpZXc7CisgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0Nv
bnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAgIH0KKworICAgIC8vIFBy
aXZhdGUKKworICAgIF9hZGRDYW52YXMoY2FudmFzKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2Fu
dmFzKSk7CisKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHN1cHByZXNz
U2hvd1JlY29yZGluZzogdHJ1ZSwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGxldCByZWNv
cmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9h
ZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICBfcmVtb3ZlQ2Fu
dmFzKGNhbnZhcykKKyAgICB7CisgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZh
c2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcyk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlzc2luZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBj
YW52YXMpOworCisgICAgICAgIGNvbnN0IHN1cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKKyAg
ICAgICAgdHJlZUVsZW1lbnQuZGVzZWxlY3Qoc3VwcHJlc3NOb3RpZmljYXRpb24pOworICAgICAg
ICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKKwor
ICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJy
ZW50Q29udGVudFZpZXc7CisgICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9i
amVjdChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBlbHNlIGlm
IChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAm
JiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJl
c2VudGVkT2JqZWN0KSkKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIudXBkYXRlSGll
cmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50VmlldygpOworCisgICAgICAgIGxldCBuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsOworICAgICAg
ICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBpbnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQ
YW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnZpc2libGUpCisgICAgICAgICAgICBuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJlc2VudGVkT2JqZWN0cygpOworCisgICAgICAg
IHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxzKCk7CisgICAgfQorCisgICAgX2FkZFJlY29y
ZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkKKyAgICB7CisgICAgICAgIGlmICghcmVjb3Jk
aW5nLnNvdXJjZSkgeworICAgICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOworICAgICAg
ICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVu
dChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRp
bmcpOworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQu
aGlkZGVuID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NU
cmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nKQorICAgICAgICAg
ICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVjb3JkaW5nKTsKKyAgICB9CisKKyAgICBf
aGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9hZGRDYW52YXMo
ZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVu
dCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhldmVudC5kYXRhLml0ZW0pOwor
ICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdl
KGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2NhbnZh
c2VzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKKyAgICAgICAgaWYgKCFzZWxlY3Rl
ZEVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc3dpdGNoIChzZWxlY3Rl
ZEVsZW1lbnQpIHsKKyAgICAgICAgY2FzZSB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50OgorICAg
ICAgICBjYXNlIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50OgorICAgICAg
ICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdD
b250ZW50Vmlldyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBs
ZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7
CisgICAgICAgIGlmICghdGhpcy5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QpKSB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQg
cmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRPYmplY3QpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVw
cmVzZW50ZWRPYmplY3QpOworICAgIH0KKworICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3Rv
cHBlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVz
ZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmICghcmVjb3JkaW5nKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBvcHRpb25zID0ge307CisKKyAgICAgICAg
Ly8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5ncy4KKyAgICAgICAgaWYgKHJlY29yZGlu
Zy5zb3VyY2UgfHwgIWltcG9ydGVkKQorICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dS
ZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVu
dFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpOworCisgICAgICAgIHRoaXMuX2FkZFJl
Y29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOworICAgIH0KKworICAgIF9oYW5kbGVTcGFjZShl
dmVudCkKKyAgICB7CisgICAgICAgIGlmIChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxk
KGV2ZW50KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXRoaXMubmF2aWdh
dGlvblNpZGViYXJQYW5lbCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgY2Fu
dmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNhbnZhczsKKyAgICAgICAgaWYgKCFj
YW52YXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRp
bmdBY3RpdmUpCisgICAgICAgICAgICBjYW52YXMuc3RvcFJlY29yZGluZygpOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIGxldCBzaW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Cisg
ICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOworICAgICAgICB9
CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9Cit9OworCitXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiZ3JhcGhpY3MiOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwppbmRleCA5ZjEwNWYxZTk2
ZTgzMWNlNTQ1MTA0OTM4NGU3YWQ4ZDYxODM0NWE0Li44ZmUxMzFjMmYwZTM2MTc2ZWZhMGZjYWJk
MDJjMjc1ODY0YzZmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NYWluLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NYWluLmNzcwpAQCAtMjA5LDEyICsyMDksMTIgQEAgYm9keS5kb2NrZWQ6
bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5y
ZXNpemVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZp
ZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CiAgICAg
ZGlzcGxheTogYmxvY2s7CiAgICAgbGluZS1oZWlnaHQ6IDIycHg7CiB9CiAKLS5tZXNzYWdlLXRl
eHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyIHsKKy5uYXZpZ2F0
aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgZGlzcGxheTogaW5saW5lLWZs
ZXg7CiAgICAgaGVpZ2h0OiAyMHB4OwogICAgIHBhZGRpbmc6IDAgNHB4OwpAQCAtMjIyLDkgKzIy
Miw5IEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lk
ZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7CiAgICAgdmVydGljYWwtYWxpZ246IC0zcHg7CiB9
CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24t
YmFyID4gLml0ZW0geworLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0gewogICAgIGhlaWdodDogMTAwJTsKLSAgICBwYWRkaW5nOiAwIDRweDsKKyAgICBwYWRk
aW5nOiAwIDRweCAhaW1wb3J0YW50OwogICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICBib3JkZXIt
cmFkaXVzOiA0cHg7CiAgICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tYm9yZGVyLWNvbG9yKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
Y29yZGluZ0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwppbmRleCA4ZDYwZjIzZjBiMmJlYzcw
ZDhiZTgzZDAyMTdhNzBhYzc0ZmQyMzU4Li4xMWYxZGQ4MmU1NTM3NzAxOTBiMmZmN2ViOGI2MDhl
ZWM3ZTI5YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCkBAIC0yMywx
OCArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0u
Y29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgeworLmNvbnRlbnQtdmlldy5yZWNvcmRp
bmcgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAg
ICBwYWRkaW5nOiAxMHB4OwogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsK
IH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyIHsKKy5jb250
ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owog
fQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVy
LWNvbnRhaW5lciB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXIt
Y29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtd3JhcDogd3JhcDsKICAg
ICBwYWRkaW5nOiA0cHggMDsKQEAgLTQzLDMxICs0MywzMSBAQAogICAgIGJvcmRlci1yYWRpdXM6
IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4g
LnNsaWRlci1jb250YWluZXIgPiAqIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVy
ID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsKICAgICBtYXJnaW46IDRweCA4cHg7CiB9CiAKLS5j
b250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFp
bmVyID4gLnNsaWRlci12YWx1ZSB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+
IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7CiAgICAgZm9udC1mYW1pbHk6IE1l
bmxvLCBtb25vc3BhY2U7CiAgICAgZm9udC1mYW1pbHk6IDExcHg7CiB9CiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5w
dXRbdHlwZT1yYW5nZV0geworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xp
ZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKICAgICBmbGV4OiAxOwogICAgIHdp
ZHRoOiAxMDAlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFk
ZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRl
ci1ydW5uYWJsZS10cmFjayB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5z
bGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5h
YmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6IDJweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIo
LS1ib3JkZXItY29sb3IpOwogICAgIGJvcmRlci1yYWRpdXM6IDFweDsKIH0KIAotLmNvbnRlbnQt
dmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBp
bnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeworLmNvbnRlbnQtdmlldy5y
ZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2Vd
Ojotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgbWFyZ2luLXRvcDogLTZweDsKIH0KIAotLmNv
bnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gLnByZXZpZXctY29udGFpbmVyIHsKKy5j
b250ZW50LXZpZXcucmVjb3JkaW5nID4gLnByZXZpZXctY29udGFpbmVyIHsKICAgICBkaXNwbGF5
OiBmbGV4OwogICAgIGZsZXg6IDE7CiAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CkBAIC03
NywyNyArNzcsMjcgQEAKICAgICBoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7CiB9CiAK
LS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA6bWF0Y2hlcyhpbWcsIGNhbnZhcykg
eworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsKICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6
IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyBjYW52YXMucGF0
aCB7CisuY29udGVudC12aWV3LnJlY29yZGluZyBjYW52YXMucGF0aCB7CiAgICAgei1pbmRleDog
MTA7CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29u
dGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgeworICAgIC5jb250ZW50LXZpZXcucmVjb3Jk
aW5nIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgfQogCi0gICAgLmNv
bnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWlu
ZXIgeworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250
YWluZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAgICAgICAgYm9yZGVy
LWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29u
dGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5l
ciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhl
YWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0gewogICAgICAgICBi
YWNrZ3JvdW5kOiBub25lOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRleCAzYTlhOWFlZmYyOWM1ZWZjZDc3OWJiNGQyOTA0
MGFhZDg5ZGJmMWQ0Li4yZjk0YmM3NDA5ZjRkNTU0NjY1Y2RlODljOWYwZjk5Y2FkZWY5NzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBA
IC0yMyw2ICsyMywxNCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKKy5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBp
bWcgeworICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisK
Ky5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6
aG92ZXIgeworICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSkKK30K
KwogLnJlc291cmNlLWNvbGxlY3Rpb24taW1hZ2UtdHlwZS1zY29wZS1iYXIuZGVmYXVsdC1pdGVt
LXNlbGVjdGVkIHsKICAgICAtLXNjb3BlLWJhci10ZXh0LWNvbG9yLW92ZXJyaWRlOiB2YXIoLS10
ZXh0LWNvbG9yKTsKICAgICAtLXNjb3BlLWJhci1iYWNrZ3JvdW5kLWNvbG9yLW92ZXJyaWRlOiB0
cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZp
ZXcuanMKaW5kZXggYzk0ZWNhNzc3MjE0ZTMxZGM1ZDgxZTYxMDkwNjA2M2Y3N2M3NGZjYy4uZmMx
YzZhMmNkNGFhN2RhMTk1MGMwYTNkM2ZmMDYzNDMyZjk3ZDZmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTM1LDYgKzM1LDggQEAgV0ku
UmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBSZXNvdXJjZUNvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFcKIAogICAgICAgICBzdXBlcihjb2xsZWN0aW9uLCBjb250ZW50
Vmlld0NvbnN0cnVjdG9yKTsKIAorICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
cmVzb3VyY2UtY29sbGVjdGlvbiIpOworCiAgICAgICAgIGlmIChjb2xsZWN0aW9uLnJlc291cmNl
VHlwZSA9PT0gV0kuUmVzb3VyY2UuVHlwZS5JbWFnZSkgewogICAgICAgICAgICAgdGhpcy5fc2hv
d0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRp
b25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIp
LCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRp
b25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlk
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRo
aXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386149</attachid>
            <date>2019-12-19 14:55:02 -0800</date>
            <delta_ts>2019-12-19 20:25:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20191219145502.patch</filename>
            <type>text/plain</type>
            <size>327926</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJhMGU3MjIzOGI4MzdlYzg5Y2M5ZTgzMjdkNDhi
MDIzOWMzYzY3NDQuLmVmZDM4ZjI4NDFhZjRkY2U1MGI5YmZkMWJlNjA1YmE5NDIwZTA5YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTE5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAxOS0xMi0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVudHM6IHJlc3RyaWN0
IHNob3dpbmcgcGFpbnQgZmxhc2hpbmcgYW5kIGNvbXBvc2l0aW5nIGJvcmRlcnMgdG8gdGhlIFdl
YiBJbnNwZWN0b3Igc2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmNWJlN2NhNzg1YTgxZWYzY2FlMjhm
ZGIyMDE0MzAwNWVlZWU3MjcuLjY0MzBkYzRmZGU5MmQwNDNiMWYxZGE1NzM4MGJkZmQxZTk0Yzdj
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDIgQEAKKzIwMTktMTItMTkgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBpbnN0
cnVtZW50YXRpb24gZm9yIHNob3dpbmcgZXhpc3RpbmcgV2ViIEFuaW1hdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQzNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjgzMjgwODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHR5cGVzL2NvbW1hbmRzL2V2ZW50cyBmb3IgaW5zdHJ1bWVu
dGluZyB0aGUgbGlmZWN5Y2xlIG9mIGBBbmltYXRpb25gIG9iamVjdHMsIGFzIHdlbGwgYXMKKyAg
ICAgICAgY29tbWFuZHMgZm9yIGdldHRpbmcgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3Qg
YW5kIHRoZSB0YXJnZXQgRE9NIG5vZGUuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9hbmlt
YXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rv
ci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAg
IGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbAorICAgICAg
ICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0Tm9kZS5odG1sCisgICAgICAgICAg
ICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbAorICAgICAgICAg
ICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKKworICAgICAgICAq
IGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBbmltYXRpb246On5XZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0
aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0
aW9uOjpzZXRFZmZlY3RJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246
OmVmZmVjdFRhcmdldERpZENoYW5nZSk6CisgICAgICAgICogYW5pbWF0aW9uL0NTU0FuaW1hdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb246OmNyZWF0ZSk6CisgICAgICAg
ICogYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVHJh
bnNpdGlvbjo6Y3JlYXRlKToKKworICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5o
OgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnBhcnNlZEtleWZyYW1lcyBjb25z
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmJsZW5kaW5nS2V5
ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6
aGFzQmxlbmRpbmdLZXlmcmFtZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6
Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKToKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBh
Y2Nlc3MgdGhlIGxpc3Qgb2Yga2V5ZnJhbWVzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0VGltaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRp
b24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBs
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0VGFyZ2V0SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9u
SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwpOiBEZWxldGVkLgorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRp
bmdBZ2VudHM6OmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCBjb25zdCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6c2V0RW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KTogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6cmVz
ZXQpOgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3ROb2RlKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzb2x2ZUFuaW1hdGlvbik6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZFNl
dFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0ZVdlYkFuaW1hdGlvbik6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95V2ViQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmcmFtZU5h
dmlnYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmJ1aWxkT2Jq
ZWN0Rm9yRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6YXNzZXJ0QW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YmluZEFuaW1hdGlvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnVuYmluZEFuaW1hdGlv
bik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFu
aW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdCk6IERl
bGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zyb250ZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXROb2RlTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQpOgorICAgICAgICBBZGQgYW4g
b3ZlcmxvYWQgZm9yIGBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kYCB0aGF0IGV4cG9zZXMgYW4gYEVy
cm9yU3RyaW5nYC4KKwogMjAxOS0xMi0xOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KIAogICAgICAgICBJbmRleGVkREI6IHBlcmZvcm0gSURCU2VydmVyIHdvcmsgb25seSBvbiBi
YWNrZ3JvdW5kIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMDFkMjE2YmJmNTRl
YzIxYjFjYWZiZDRjMWJjNjZlZDFmNWQxOTEyZC4uZWQ1OWNjMWIwZGExNGM3MGYzMWFhYTVmZjIw
N2Q4NGY0YmVhOTRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMyIEBA
CisyMDE5LTEyLTE5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5n
IFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFu
aW1hdGlvbk1hbmFnZXIpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUu
Z2V0IGRvbWFpbnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYWN0
aXZhdGVFeHRyYURvbWFpbik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlw
ZS5pbml0aWFsaXplVGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90
eXBlLmdldCBhbmltYXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLmdldCBzdXBwb3J0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuZW5hYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90
eXBlLmRpc2FibGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5p
bWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5l
ZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLnRh
cmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5p
bWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBl
Ll9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5BbmltYXRpb25PYnNl
cnZlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5p
bWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAg
KFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKTogQWRkZWQuCisg
ICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVk
KTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xs
ZWN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24pOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlO
YW1lKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLm9iamVjdElz
UmVxdWlyZWRUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBl
LmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb24ucHJvdG90eXBlLml0ZW1BZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0
aW9uLnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0
aW9uLnByb3RvdHlwZS5pdGVtc0NsZWFyZWQpOgorICAgICAgICBTaW1pbGFyIHRvIGBXSS5SZXNv
dXJjZUNvbGxlY3Rpb25gLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiBgV0kuQ29sbGVjdGlvbmAgdGhh
dCBtYWludGFpbnMgaXQncworICAgICAgICBvd24gc3ViLWBXSS5BbmltYXRpb25Db2xsZWN0aW9u
YHMgZm9yIGVhY2ggdHlwZSBvZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1h
dGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZnJvbVBheWxvYWQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAgIChXSS5Bbmlt
YXRpb24uZGlzcGxheU5hbWVGb3JGaWxsTW9kZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucmVz
ZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS5nZXQgYW5pbWF0aW9uSWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5n
ZXQgYmFja3RyYWNlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1h
dGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgc3RhcnREZWxh
eSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBlbmREZWxheSk6CisgICAg
ICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25zKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJhdGlvblN0YXJ0KToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbi5wcm90b3R5cGUuZ2V0IHRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbi5wcm90b3R5cGUuZ2V0IHBsYXliYWNrRGlyZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbi5wcm90b3R5cGUuZ2V0IGZpbGxNb2RlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90
b3R5cGUuZ2V0IGtleWZyYW1lcyk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdl
dCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnJlcXVlc3RO
b2RlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uLnByb3RvdHlwZS5fdXBkYXRlRWZmZWN0KToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdJLlJlbW90ZU9iamVj
dC5yZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanM6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcy4KKyAg
ICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NU
YWJDb250ZW50Vmlldy50YWJJbmZvKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcuaXNUYWJBbGxvd2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLnNob3dSZXByZXNlbnRlZE9iamVjdCk6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmNsb3NlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KTog
QWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFu
ZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSk6IEFkZGVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3M6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNU
YWJDb250ZW50Vmlldy5jc3MuCisgICAgICAgIFJlbmFtZSB0aGUgQ2FudmFzIFRhYiB0byBHcmFw
aGljcyBUYWIgYW5kIGRpc3BsYXkgZm91ciBzZWN0aW9uczoKKyAgICAgICAgIC0gQ2FudmFzZXMK
KyAgICAgICAgIC0gV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIEFuaW1hdGlvbnMKKyAg
ICAgICAgIC0gQ1NTIFRyYW5zaXRpb25zCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgT25seSBhcHBlYXIg
aWYgYSBgV0kuQ2FudmFzYCBvciBgV0kuUmVjb3JkaW5nYCBpcyBzZWxlY3RlZC4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBzdXBwbGVtZW50
YWxSZXByZXNlbnRlZE9iamVjdHMpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQp
OgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9w
Wm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lSGFuZGxlRHJvcCk6CisgICAgICAgIChX
SS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRp
bmdDaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90
b3R5cGUuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmll
d1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJl
c2VudGVkT2JqZWN0c0RpZENoYW5nZSk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAg
KC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24pOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1jaGlsZCkpOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmly
c3Qtb2YtdHlwZSkgPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
cik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbi5j
YW52YXMgPiAuY29udGVudCA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmNvbnRlbnQg
PiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldzptYXRjaGVzKDo6YmVmb3JlLCA6OmFmdGVy
KSk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNj
aGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAo
QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAgIEFkZCBzdGlja3kgaGVh
ZGVycyBmb3IgZWFjaCBvZiB0aGUgc2VjdGlvbnMgZGVzY3JpYmVkIGFib3ZlLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6
IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxl
UmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZGV0
YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VM
ZWF2ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
LWNvbGxlY3Rpb24pOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25D
b250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldyk6
CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5nZXQgcHJldmlld0hlaWdodCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1
dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
c2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5
cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
cmVmcmVzaFN1YnRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fcmVmcmVzaFByZXZpZXcuYWRkVGl0bGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlldyk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUVmZmVjdENoYW5nZWQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVUYXJnZXRDaGFuZ2VkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcG9wdWxhdGVBbmlt
YXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3M6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24pOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24uc2VsZWN0
ZWQpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIpOgorICAgICAg
ICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzKToKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6Cisg
ICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3Vi
dGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0
bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZvcmUpOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyk6CisgICAgICAgICgu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnKToKKyAgICAgICAgKGJvZHlb
ZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2Zyk6CisgICAg
ICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QpOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBs
aW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcg
PiAuYWN0aXZlIHBhdGgpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxpbmUpOgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHNwYW4pOgorICAgICAgICAoQG1lZGlhIChw
cmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnRpdGxlKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1z
Y2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+
IC5zdWJ0aXRsZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJr
KSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3KToKKyAgICAgICAgVmlzdWFsaXpl
IHRoZSBzdGFydC9lbmQgZGVsYXkgYW5kIGtleWZyYW1lcyBvZiB0aGUgZ2l2ZW4gYW5pbWF0aW9u
IGFzIGEgc2VyaWVzIG9mIGJlemllcgorICAgICAgICBjdXJ2ZXMgc2VwYXJhdGVkIGJ5IG1hcmtl
cnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRl
YmFyUGFuZWwuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQ
YW5lbCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlw
ZS5pbnNwZWN0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLmdldCBhbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGVi
YXJQYW5lbC5wcm90b3R5cGUuc2V0IGFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmxheW91dCk6CisgICAgICAg
IChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaElkZW50
aXR5U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5fcmVmcmVzaEVmZmVjdFNlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVB
bmltYXRpb25FZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRl
YmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2VkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVEZXRh
aWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzczogQWRkZWQuCisgICAgICAg
ICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFp
bHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5oZWFkZXIgPiAuc3VidGl0bGUpOgorICAg
ICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5k
ZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uKToKKyAg
ICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAu
ZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93
LnN0eWxlcyk6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+
IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxz
LXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3IpOgorICAgICAgICAoLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5p
bWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uKToKKyAgICAgICAgU2hvdyBjb2xsZWN0
ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVjdGVkIGFuaW1hdGlvbiwgaXRzIGVmZmVjdCwg
YW5kIGl0cyB0YXJnZXQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Nh
bnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyKToKKyAgICAgICAgKFdJ
LkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNDb2xsZWN0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJ
LkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZh
c01hbmFnZXIucHJvdG90eXBlLmNhbnZhc1JlbW92ZWQpOgorICAgICAgICAoV0kuQ2FudmFzTWFu
YWdlci5wcm90b3R5cGUuX3NhdmVSZWNvcmRpbmdzKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52
YXNNYW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdJ
LkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNlcyk6IERlbGV0ZWQuCisgICAgICAg
IChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlQ2FudmFzKTogRGVsZXRlZC4KKyAg
ICAgICAgUmF0aGVyIHRoYW4gaGF2ZSB0aGUgYFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3YCBtYWlu
YWluIHRoZSBgV0kuQ2FudmFzQ29sbGVjdGlvbmAgYW5kIGhhdmUgdG8KKyAgICAgICAgbGlzdGVu
IGZvciBldmVudHMgZnJvbSB0aGUgYFdJLkNhbnZhc01hbmFnZXJgLCBqdXN0IGhhdmUgdGhlIGBX
SS5DYW52YXNNYW5hZ2VyYCBob2xkIG9uIHRvCisgICAgICAgIGl0IGluc3RlYWQgYW5kIHByb3Zp
ZGUgYSBnZXR0ZXIgZm9yIGl0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3QWRkZWQpOgor
ICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZp
ZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90
eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcu
cHJvdG90eXBlLl9hZGRTYXZlZFJlY29yZGluZyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oaWRkZW4pOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IF9pdGVtTWFyZ2luKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9yZWZy
ZXNoUHJldmlld3MpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuX3VwZGF0ZU5hdmlnYXRpb25JdGVtcyk6IERlbGV0ZWQuCisgICAgICAg
IChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2hvd0dyaWRCdXR0b25D
bGlja2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcu
cHJvdG90eXBlLl91cGRhdGVTaG93SW1hZ2VHcmlkKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyk6CisgICAgICAgIChAbWVkaWEg
KHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyk6IERlbGV0ZWQuCisgICAgICAgIFN1cHBvcnQgYmVpbmcgYWJsZSB0byBsYXlvdXQgYXMgYSB2
ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseSBzY3JvbGxpbmcgbGlzdC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5DYW52
YXNDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUu
aGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6IEFk
ZGVkLgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lSGFu
ZGxlRHJvcCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBl
LmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBl
LmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcG9w
dWxhdGVDYW52YXNFbGVtZW50QnV0dG9uQ29udGV4dE1lbnUpOgorICAgICAgICAoV0kuQ2FudmFz
Q29udGVudFZpZXcucHJvdG90eXBlLnNob3duKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUg
IkxvZyBDYW52YXMgQ29udGV4dCIgdG8gYmUgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGNhbnZhcyBl
bGVtZW50IGJ1dHRvbiBjb250ZXh0IG1lbnUuCisgICAgICAgIERyaXZlLWJ5OiBhZGQgYSBgV0ku
RHJvcFpvbmVWaWV3YCBmb3Igd2hlbiByZWNvcmRpbmcgSlNPTiBmaWxlcyBhcmUgZHJhZ2dlZCBv
biB0b3AuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3
LmNzczoKKyAgICAgICAgRHJpdmUtYnk6IGRyb3AgYDpub3QoLnRhYilgIGZyb20gYWxsIHNlbGVj
dG9ycyBzaW5jZSB0aGUgQ2FudmFzIFRhYiBkb2Vzbid0IGV4aXN0IGFueW1vcmUuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qczoKKyAgICAg
ICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLmdldCBzZWxlY3RlZEl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVk
LgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5hZGRDb250ZW50
Vmlld0Zvckl0ZW0pOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5yZW1vdmVDb250ZW50Vmlld0Zvckl0ZW0pOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5zaG93Q29udGVudFBsYWNlaG9sZGVyKToKKyAgICAgICAgKFdJLkNv
bGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChX
SS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9zZWxlY3RJdGVtKToKKyAgICAgICAg
KFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNsaWNrKTogQWRkZWQu
CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNldFNlbGVjdGVk
SXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9u
Q29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRlcjpub3QoLm1lc3Nh
Z2UtdGV4dC12aWV3KSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9u
IC5yZXNvdXJjZS5pbWFnZSBpbWcpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5j
b2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIpOiBEZWxldGVkLgorICAgICAgICBX
aGVuIHNlbGVjdGlvbiBpcyBlbmFibGVkLCBjbGlja2luZyBvdXRzaWRlIG9mIGFueSBvZiB0aGUg
Y29udGVudCB2aWV3cyBzaG91bGQgZGlzbWlzcyB0aGUKKyAgICAgICAgY3VycmVudCBzZWxlY3Rp
b24uIENsaWVudHMgc2hvdWxkIGFsc28gYmUgYWJsZSB0byBnZXQgdGhlIGN1cnJlbnRseSBzZWxl
Y3RlZCBpdGVtLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
blNpbXBsZVJvdy5qczoKKyAgICAgICAgKFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93LnByb3Rv
dHlwZS5zZXQgdmFsdWUpOgorICAgICAgICBFbnN1cmUgdGhhdCBgMGAgaXMgY29uc2lkZXJlZCBh
cyBhIHZhbGlkIHZhbHVlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6
CisgICAgICAgIChXSS5sb2FkZWQpOgorICAgICAgICAoV0kuY29udGVudExvYWRlZCk6CisgICAg
ICAgIChXSS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Db250
ZW50Vmlldy5jcmVhdGVGcm9tUmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAgICAoV0kuQ29udGVu
dFZpZXcuaXNWaWV3YWJsZSk6CisgICAgICAgIEFsbG93IGBXSS5BbmltYXRpb25gIHRvIGJlIHZp
ZXdhYmxlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzczoKKyAgICAg
ICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IEFkZGVkLgorICAgICAgICAoLm5hdmlnYXRpb24t
aXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyKTogQWRkZWQuCisgICAgICAgICgubmF2aWdhdGlv
bi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6IEFkZGVkLgorICAgICAgICAo
Lm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IERlbGV0ZWQuCisgICAg
ICAgICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9u
LWJhcik6IERlbGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24t
aXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtKTogRGVsZXRlZC4KKyAgICAgICAgQWxs
b3cgYFdJLmNyZWF0ZU5hdmlnYXRpb25JdGVtSGVscGAgdG8gYmUgdXNlZCBpbmRlcGVuZGVudGx5
IG9mIGBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXdgLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzOgorICAgICAgICAoV0kuRE9NTWFuYWdlci5wcm90
b3R5cGUubm9kZUZvcklkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Rp
bWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUu
YW5pbWF0aW9uVHJhY2tpbmdVcGRhdGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzOgorICAgICAgICAoV0kuQXVkaXRUZXN0Q2FzZVJlc3Vs
dC5hc3luYyBmcm9tUGF5bG9hZCk6CisgICAgICAgIEFkZCBhIGZhbGxiYWNrIHNvIGNhbGxlcnMg
ZG9uJ3QgbmVlZCB0by4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VD
b2xsZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5SZXNvdXJjZUNvbGxlY3Rpb25D
b250ZW50Vmlldyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxl
Y3Rpb25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LnJlc291cmNlLWNv
bGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogQWRkZWQuCisgICAgICAgICguY29udGVu
dC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyKTog
QWRkZWQuCisgICAgICAgIERyaXZlLWJ5OiBtb3ZlIHRoZXNlIHN0eWxlcyB0byB0aGUgcmlnaHQg
ZmlsZSBhbmQgbWFrZSB0aGVtIG1vcmUgc3BlY2lmaWMuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9DYW52YXMuanM6CisgICAgICAgIChXSS5DYW52YXMuZGlzcGxheU5hbWVGb3JD
b250ZXh0VHlwZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpz
OgorICAgICAgICAoV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlwZSk6IEFk
ZGVkLgorICAgICAgICBEcml2ZS1ieTogZml4IGxvY2FsaXplZCBzdHJpbmdzLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3M6CisgICAgICAg
IERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3RvcnMgc2luY2UgdGhl
IFJlY29yZGluZyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhp
Y3Muc3ZnOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0NhbnZhcy5zdmcuCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0Lmh0bWw6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanM6CisgICAgICAgIChXSS5sb2FkZWQp
OgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzOgorICAgICAg
ICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdEVtcHR5KTogQWRkZWQuCisgICAgICAgIChU
ZXN0SGFybmVzcy5wcm90b3R5cGUuZXhwZWN0Tm90RW1wdHkpOiBBZGRlZC4KKyAgICAgICAgKFRl
c3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0YXRpb25NZXNzYWdlRm9ybWF0KToKKyAgICAgICAg
KFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0ZWRWYWx1ZUZvcm1hdCk6CisgICAgICAgIEFk
ZCB1dGlsaXR5IGZ1bmN0aW9uIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBp
cyBlbXB0eToKKyAgICAgICAgIC0gQXJyYXkgYGxlbmd0aCA9PT0gMGAKKyAgICAgICAgIC0gU3Ry
aW5nIGBsZW5ndGggPT09IDBgCisgICAgICAgICAtIFNldCBgc2l6ZSA9PT0gMGAKKyAgICAgICAg
IC0gTWFwIGBzaXplID09PSAwYAorICAgICAgICAgLSBPYmplY3QgYGlzRW1wdHlPYmplY3RgCisg
ICAgICAgIEFueSBvdGhlciB0eXBlIHdpbGwgYXV0b21hdGljYWxseSBmYWlsLCBhcyBub24tb2Jq
ZWN0cyBjYW4ndCBiZSAiZW1wdHkiIChlLmcuIGA0MmApLgorCiAyMDE5LTEyLTE4ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbGVt
ZW50czogcmVzdHJpY3Qgc2hvd2luZyBwYWludCBmbGFzaGluZyBhbmQgY29tcG9zaXRpbmcgYm9y
ZGVycyB0byB0aGUgV2ViIEluc3BlY3RvciBzZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgppbmRleCBiZWFm
OGRlMjhhYzc1M2UzN2VmMmJlODljMDFmY2IwYmQ1M2RhZmJiLi4yNDI0ZjM5NTU3MjUxYzkwZTlj
MGRjYWYwNTI3YmJjYTNlNDg5YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KQEAgLTE0LDYgKzE0LDUxIEBA
CiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImVudW0iOiBbInJl
YWR5IiwgImRlbGF5ZWQiLCAiYWN0aXZlIiwgImNhbmNlbGVkIiwgImRvbmUiXQogICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiUGxheWJhY2tEaXJlY3Rpb24iLAorICAg
ICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub3JtYWwi
LCAicmV2ZXJzZSIsICJhbHRlcm5hdGUiLCAiYWx0ZXJuYXRlLXJldmVyc2UiXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiRmlsbE1vZGUiLAorICAgICAgICAgICAg
InR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub25lIiwgImZvcndhcmRz
IiwgImJhY2t3YXJkcyIsICJib3RoIiwgImF1dG8iXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVj
dCIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjc3NBbmltYXRpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGBh
bmltYXRpb24tbmFtZWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGB0
cmFuc2l0aW9uUHJvcGVydHlgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiY3NzVHJhbnNpdGlvblByb3BlcnR5IiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5n
IGB0cmFuc2l0aW9uLXByb3BlcnR5YCBDU1MgcHJvcGVydHkuIFNob3VsZCBub3QgYmUgcHJvdmlk
ZWQgaWYgYGFuaW1hdGlvbk5hbWVgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1
ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFja3RyYWNlIiwgInR5cGUiOiAiYXJy
YXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNvbnNvbGUuQ2FsbEZyYW1lIiB9LCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQmFja3RyYWNlIHRoYXQgd2FzIGNhcHR1cmVkIHdoZW4g
dGhpcyBgV2ViQW5pbWF0aW9uYCB3YXMgY3JlYXRlZC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkVmZmVjdCIsCisgICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzdGFydERlbGF5IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlv
bmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kRGVsYXkiLCAidHlw
ZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJpdGVyYXRpb25zIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uU3RhcnQiLCAidHlwZSI6ICJudW1i
ZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVy
YXRpb25EdXJhdGlvbiIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWluZ0Z1bmN0aW9uIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGxheWJh
Y2tEaXJlY3Rpb24iLCAiJHJlZiI6ICJQbGF5YmFja0RpcmVjdGlvbiIsICJvcHRpb25hbCI6IHRy
dWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZpbGxNb2RlIiwgIiRyZWYiOiAiRmls
bE1vZGUiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJr
ZXlmcmFtZXMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiS2V5ZnJhbWUi
IH0sICJvcHRpb25hbCI6IHRydWUgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAiaWQiOiAiS2V5ZnJhbWUiLAorICAgICAgICAgICAgInR5cGUiOiAi
b2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAibnVtYmVyIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZWFzaW5nIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAg
ICAgICAgICAgImlkIjogIlRyYWNraW5nVXBkYXRlIiwKICAgICAgICAgICAgICJ0eXBlIjogIm9i
amVjdCIsCkBAIC0yNyw2ICs3MiwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAgICAiY29tbWFu
ZHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRpc2FibGUiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIENhbnZhcyBkb21haW4gZXZlbnRzLiIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVxdWVzdE5vZGUiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkdldHMgdGhlIGBET00uTm9kZUlkYCBmb3IgdGhl
IHRhcmdldCBvZiB0aGUgZWZmZWN0IG9mIHRoZSBhbmltYXRpb24gd2l0aCB0aGUgZ2l2ZW4gYEFu
aW1hdGlvbklkYC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlc29sdmVBbmltYXRp
b24iLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc29sdmVzIEphdmFTY3JpcHQgYFdl
YkFuaW1hdGlvbmAgb2JqZWN0IGZvciBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklk
IiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJv
YmplY3RHcm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJTeW1ib2xpYyBncm91cCBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVsZWFzZSBt
dWx0aXBsZSBvYmplY3RzLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5z
IjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiUnVudGlt
ZS5SZW1vdGVPYmplY3QiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewog
ICAgICAgICAgICAgIm5hbWUiOiAic3RhcnRUcmFja2luZyIsCiAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiU3RhcnQgdHJhY2tpbmcgYW5pbWF0aW9ucy4gVGhpcyB3aWxsIHByb2R1Y2UgYSBg
dHJhY2tpbmdTdGFydGAgZXZlbnQuIgpAQCAtMzcsNiArMTExLDM1IEBACiAgICAgICAgIH0KICAg
ICBdLAogICAgICJldmVudHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFu
aW1hdGlvbkNyZWF0ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQg
d2hlbmV2ZXIgYSBgV2ViQW5pbWF0aW9uYCBpcyBjcmVhdGVkLiIsCisgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbiIsICIkcmVm
IjogIkFuaW1hdGlvbiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJlZmZlY3RDaGFuZ2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBp
cyBjaGFuZ2VkIGluIGFueSB3YXkuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25J
ZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVmZmVj
dCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIG9taXR0ZWQgd2hl
biB0aGUgZWZmZWN0IGlzIHJlbW92ZWQgd2l0aG91dCBhIHJlcGxhY2VtZW50LiIgfQorICAgICAg
ICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ0YXJn
ZXRDaGFuZ2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5l
dmVyIHRoZSB0YXJnZXQgb2YgYW55IGVmZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQg
aW4gYW55IHdheS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFu
aW1hdGlvbkRlc3Ryb3llZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hl
ZCB3aGVuZXZlciBhIGBXZWJBbmltYXRpb25gIGlzIGRlc3Ryb3llZC4iLAorICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIs
ICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAg
ICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInRyYWNraW5nU3RhcnQiLAogICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgYWZ0ZXIgYHN0YXJ0VHJhY2tpbmdgIGNvbW1hbmQu
IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5kZXggN2M3MmY2
MjRjMzMwYWY5NmJhNzBiN2FlNGU5MmI1MDFjYTEwMTA3ZS4uZmQzZWI5ZGJkZTliYzFhYjBiOTdm
MGEwNzFlMDBlODBmYjgxMzEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0NTU0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1h
dGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAKQEAgLTM5LDYgKzQwLDkgQEAgUmVmPENTU0FuaW1hdGlvbj4gQ1NTQW5pbWF0aW9uOjpj
cmVhdGUoRWxlbWVudCYgb3duaW5nRWxlbWVudCwgY29uc3QgQW5pbWF0aW9uJgogewogICAgIGF1
dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDU1NBbmltYXRpb24ob3duaW5nRWxlbWVudCwgYmFj
a2luZ0FuaW1hdGlvbiwgbmV3U3R5bGUpKTsKICAgICByZXN1bHQtPmluaXRpYWxpemUob2xkU3R5
bGUsIG5ld1N0eWxlKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKaW5kZXggZGZmNWZiMWY3
OWE4OWM1NjYwYTQ5YzFiMzY0M2RkMDdkODI0MzI3MS4uYWFhZTVlMmQwYzYxNzIwY2QxMDhkZDZk
Y2U1OTUxOWNhMGFjM2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U1RyYW5zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0
aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KIApAQCAtNDAsNiArNDEsOSBAQCBSZWY8Q1NTVHJhbnNpdGlvbj4gQ1NTVHJhbnNpdGlv
bjo6Y3JlYXRlKEVsZW1lbnQmIG93bmluZ0VsZW1lbnQsIENTU1Byb3BlcnR5SUQgcAogICAgIGF1
dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDU1NUcmFuc2l0aW9uKG93bmluZ0VsZW1lbnQsIHBy
b3BlcnR5LCBnZW5lcmF0aW9uVGltZSwgYmFja2luZ0FuaW1hdGlvbiwgbmV3U3R5bGUsIHJldmVy
c2luZ0FkanVzdGVkU3RhcnRTdHlsZSwgcmV2ZXJzaW5nU2hvcnRlbmluZ0ZhY3RvcikpOwogICAg
IHJlc3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOwogICAgIHJlc3VsdC0+c2V0
VGltaW5nUHJvcGVydGllcyhkZWxheSwgZHVyYXRpb24pOworCisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuY3BwCmluZGV4IGY5OTQzMDdkNjYwYTk2YTA5ZmIwNzQyY2ZlZmMzYzI4MWU0MTJiMDEuLmMx
NDFjNjE2MTc2OWJhMjlmMjgwNDExMGM2NDAzZGMxN2NjMzAwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtMTEwNSw3ICsxMTA1LDcgQEAgdm9p
ZCBLZXlmcmFtZUVmZmVjdDo6aW52YWxpZGF0ZSgpCiAKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmNv
bXB1dGVTaG91bGRSdW5BY2NlbGVyYXRlZCgpCiB7Ci0gICAgbV9zaG91bGRSdW5BY2NlbGVyYXRl
ZCA9IGhhc0JsZW5kaW5nS2V5ZnJhbWVzKCk7CisgICAgbV9zaG91bGRSdW5BY2NlbGVyYXRlZCA9
IG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOwogICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0eUlk
IDogbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCkpIHsKICAgICAgICAgaWYgKCFDU1NQ
cm9wZXJ0eUFuaW1hdGlvbjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxlcmF0ZWQoY3NzUHJv
cGVydHlJZCkpIHsKICAgICAgICAgICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5kZXggMDQ5MzM3ZGRh
MDA1ODhiMjZlZTdkMmI5OWRlMDY3ODQ0NjYxZWVjNS4uZDg5ZTEzNTJjYzgyNWUzYzkxMjIwMjY4
ZTVmNmQ1NTU0OWUyNzc0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZm
ZWN0LmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgICAgICBDb21wb3NpdGVPcGVyYXRp
b25PckF1dG8gY29tcG9zaXRlIHsgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvOjpBdXRvIH07CiAg
ICAgfTsKIAorICAgIGNvbnN0IFZlY3RvcjxQYXJzZWRLZXlmcmFtZT4mIHBhcnNlZEtleWZyYW1l
cygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VkS2V5ZnJhbWVzOyB9CisKICAgICBFbGVtZW50KiB0
YXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0VGFy
Z2V0KFJlZlB0cjxFbGVtZW50PiYmKTsKIApAQCAtMTM0LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGNvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9jb2xvckZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogCiAgICAgdm9pZCBjb21w
dXRlRGVjbGFyYXRpdmVBbmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7Ci0gICAgYm9vbCBoYXNC
bGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6
ZSgpOyB9CisgICAgY29uc3QgS2V5ZnJhbWVMaXN0JiBibGVuZGluZ0tleWZyYW1lcygpIGNvbnN0
IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXM7IH0KICAgICBjb25zdCBIYXNoU2V0PENTU1By
b3BlcnR5SUQ+JiBhbmltYXRlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5n
S2V5ZnJhbWVzLnByb3BlcnRpZXMoKTsgfQogCiAgICAgYm9vbCBjb21wdXRlRXh0ZW50T2ZUcmFu
c2Zvcm1BbmltYXRpb24oTGF5b3V0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCA1MTVkMzY5MDdmOTEwMzU4MTAzMDYwNzA2ZDg4NjVh
ZDljZTljNmE3Li4zZWEzODY0YjY5ZTgyZDQ1ZjdiN2IwZWRkYTJiMjkyNTI3YjQ1NWU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtNDQsNiArNDQsOCBA
QAogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb25VdGls
aXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTUxLDEx
ICs1MywzMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChXZWJBbmltYXRpb24pOwogCitIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBXZWJBbmltYXRp
b246Omluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SGFzaFNldDxXZWJBbmltYXRpb24qPj4gaW5zdGFuY2VzOworICAgIHJldHVybiBpbnN0
YW5jZXM7Cit9CisKK0xvY2smIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKQoreworICAg
IHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIGluaXRpYWxpemVNdXRleDsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXpl
TXV0ZXgsIFtdIHsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CisgICAgfSk7CisgICAgcmV0
dXJuIG11dGV4LmdldCgpOworfQorCiBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0KQogewogICAg
IGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQpKTsKICAg
ICByZXN1bHQtPnNldEVmZmVjdChlZmZlY3QpOwogICAgIHJlc3VsdC0+c2V0VGltZWxpbmUoJmRv
Y3VtZW50LnRpbWVsaW5lKCkpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
cmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKQEAgLTY1LDYgKzg2LDkgQEAgUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmUKICAgICByZXN1bHQt
PnNldEVmZmVjdChlZmZlY3QpOwogICAgIGlmICh0aW1lbGluZSkKICAgICAgICAgcmVzdWx0LT5z
ZXRUaW1lbGluZSh0aW1lbGluZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIApAQCAtNzUsNiArOTksOSBAQCBXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7CiAgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOwogICAg
IHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4
KCkpOworICAgIGluc3RhbmNlcyhsb2NrKS5hZGQodGhpcyk7CiB9CiAKIFdlYkFuaW1hdGlvbjo6
fldlYkFuaW1hdGlvbigpCkBAIC04Myw2ICsxMTAsMTAgQEAgV2ViQW5pbWF0aW9uOjp+V2ViQW5p
bWF0aW9uKCkKIAogICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5lLT5mb3Jn
ZXRBbmltYXRpb24odGhpcyk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgo
KSk7CisgICAgQVNTRVJUKGluc3RhbmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAgaW5z
dGFuY2VzKGxvY2spLnJlbW92ZSh0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OmNvbnRl
eHREZXN0cm95ZWQoKQpAQCAtMTE0LDYgKzE0NSw4IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp1bnN1
c3BlbmRFZmZlY3RJbnZhbGlkYXRpb24oKQogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRpbWlu
Z0RpZENoYW5nZSgpCiB7CiAgICAgdGltaW5nRGlkQ2hhbmdlKERpZFNlZWs6Ok5vLCBTeW5jaHJv
bm91c2x5Tm90aWZ5OjpZZXMpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoKnRoaXMpOwogfQogCiB2b2lkIFdlYkFuaW1h
dGlvbjo6c2V0RWZmZWN0KFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0KQpAQCAt
MTg4LDcgKzIyMSw3IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbChSZWZQ
dHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVjdCwgYm9vbCBkCiAgICAgICAgICAgICBtX3Rp
bWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7CiAg
ICAgfQogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3QoKnRoaXMpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2Vi
QW5pbWF0aW9uRWZmZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVs
aW5lKFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4mJiB0aW1lbGluZSkKQEAgLTI0NywxNCArMjgw
LDE1IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRUaW1lbGluZUludGVybmFsKFJlZlB0cjxBbmlt
YXRpb25UaW1lbGluZT4mJiB0aW1lbGluZSkKIAogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRh
cmdldERpZENoYW5nZShFbGVtZW50KiBwcmV2aW91c1RhcmdldCwgRWxlbWVudCogbmV3VGFyZ2V0
KQogewotICAgIGlmICghbV90aW1lbGluZSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3Rp
bWVsaW5lKSB7CisgICAgICAgIGlmIChwcmV2aW91c1RhcmdldCkKKyAgICAgICAgICAgIG1fdGlt
ZWxpbmUtPmFuaW1hdGlvbldhc1JlbW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFy
Z2V0KTsKIAotICAgIGlmIChwcmV2aW91c1RhcmdldCkKLSAgICAgICAgbV90aW1lbGluZS0+YW5p
bWF0aW9uV2FzUmVtb3ZlZEZyb21FbGVtZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOworICAg
ICAgICBpZiAobmV3VGFyZ2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2Fz
QWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOworICAgIH0KIAotICAgIGlmIChuZXdU
YXJnZXQpCi0gICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KCp0
aGlzLCAqbmV3VGFyZ2V0KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCgqdGhpcyk7CiB9CiAKIE9wdGlvbmFsPGRvdWJsZT4g
V2ViQW5pbWF0aW9uOjpzdGFydFRpbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5oCmluZGV4IGRhNGQ4ZWMzYmMyZTU3MGI0OGE1MWRiYzE0YTM0NGU2YzQ5YmEw
NzAuLmM5OTYxM2IyNjYxZDc2NWYwZWUzYjg2ZDYxNGY5Y2QyYjdkYzIzYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViQW5p
bWF0aW9uVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTWFya2FibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9TZWNvbmRzLmg+CkBAIC01NCw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdl
YkFuaW1hdGlvbj4gY3JlYXRlKERvY3VtZW50JiwgQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9u
VGltZWxpbmUqKTsKICAgICB+V2ViQW5pbWF0aW9uKCk7CiAKKyAgICBzdGF0aWMgSGFzaFNldDxX
ZWJBbmltYXRpb24qPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBzdGF0aWMg
TG9jayYgaW5zdGFuY2VzTXV0ZXgoKTsKKwogICAgIHZpcnR1YWwgYm9vbCBpc0RlY2xhcmF0aXZl
QW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXND
U1NBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0NTU1RyYW5zaXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0
ZjE4YjU4YzZjZDAxZTBiNjlhODk1M2FkMDlhNzM5YzM1MjA0OTZhLi5kMTMwOTg5MWRjNmIyM2Iy
YjI3ZTVjMjVjMGU5NjQ0NTJhNzM5OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNzIzLDYgKzcyMyw5IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBj
YW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkK
ICAgICAgICAgY2FudmFzQWdlbnQtPmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKIAorICAgIGlmIChh
dXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5mcmFtZU5hdmlnYXRl
ZChmcmFtZSk7CisKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlk
Q29tbWl0TG9hZChmcmFtZS5kb2N1bWVudCgpKTsKIApAQCAtMTEzMywxNSArMTEzNiwzNyBAQCB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmCiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsQXBwbHlL
ZXlmcmFtZUVmZmVjdCh0YXJnZXQsIGVmZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi12b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24m
IGFuaW1hdGlvbikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmlt
YXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMs
IFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewotICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
KQotICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KGFu
aW1hdGlvbik7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9u
QWdlbnQtPmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworICAgIGVsc2UgaWYg
KGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRTZXRXZWJB
bmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7
CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFi
bGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworfQorCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRp
b24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBh
bmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlv
bik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmlt
YXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFu
aW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAg
ICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDcmVhdGVXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9u
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRp
b24mIGFuaW1hdGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICBpZiAo
YXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lX
ZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
KQogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5pbWF0
aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oCmluZGV4IGRiZjgyMjA1ZGI1YmNjYmUxNjllZDBlOTQ3ZDFhZDgzZGQ4
NTBmZDYuLmEyOTgxYWQ5ODJkZTY4NzNkNGU5NjM3NDQ5Y2I3ZjMyZjhjMjVjMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgK
QEAgLTMwNSw3ICszMDUsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCB3
aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRl
ZEVmZmVjdFRpbWluZyk7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVm
ZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lk
IGRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3
aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lk
IG5ldHdvcmtTdGF0ZUNoYW5nZWQoUGFnZSYpOwpAQCAtNTA1LDcgKzUwOCwxMCBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVk
RWZmZWN0VGltaW5nKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMg
dm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBX
ZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3RUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVX
ZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKICAg
ICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIFdlYkFuaW1hdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hh
bmdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CkBAIC0xNDY2LDExICsxNDcyLDMyIEBAIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZl
Y3QoRWxlbWVudCYgdGFyZ2V0LCBLCiAgICAgICAgIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1w
bCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsK
IH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCitpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRp
b24mIGFuaW1hdGlvbikKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgp
KTsKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAg
ICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBh
bmltYXRpb24pOworICAgICAgICBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRp
b24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgp
KTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAg
ICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdl
bnRzLCBhbmltYXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBp
ZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250
ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmlt
YXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENy
ZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JF
VFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKCpp
bnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYg
YW5pbWF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1l
bnRpbmdBZ2VudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuY3BwCmluZGV4IDFmOWEwZDdjNTMyYTNmOTA4NTZjMTg0YTFmZmMzYjFjZjM1ZWZjODcu
LmQ3YTJmNzE5NThkOTQzY2NjYWM0MzRlYWM5M2UzM2RhZTI3Y2M0MDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTcwLDYgKzcw
LDcgQEAgdm9pZCBJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCgpCiAgICAgbV9wYWdlRE9NRGVi
dWdnZXJBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JDYW52YXNBZ2VudCA9IG51bGxw
dHI7CiAgICAgbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOwor
ICAgIG1fZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKICAgICBtX3Ry
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCBmNmZlYTdkYTIx
MzYwZGQwOGNjM2Q5NjZiMTRlMmFhYzQ2NTQ0OTE1Li5mNTljM2RiZGNhZjc4Y2Y5YzZkOGRiYjQz
MmRjY2YyMmYxNWQ1MDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmgKQEAgLTE1Niw2ICsxNTYsOSBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQqIHBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CiAgICAgdm9p
ZCBzZXRQZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQqIGFnZW50KSB7IG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gYWdl
bnQ7IH0KIAorICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBlbmFibGVkSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDsgfQorICAgIHZvaWQgc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCA9IGFnZW50OyB9CisKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogdHJhY2tpbmdJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tpbmdJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDsgfQogICAgIHZvaWQgc2V0VHJhY2tpbmdJbnNwZWN0b3JBbmltYXRp
b25BZ2VudChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV90cmFja2luZ0luc3Bl
Y3RvckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KIApAQCAtMTkwLDYgKzE5Myw3IEBAIHByaXZh
dGU6CiAgICAgUGFnZURPTURlYnVnZ2VyQWdlbnQqIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQgeyBu
dWxscHRyIH07CiAgICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQqIG1faW5zcGVjdG9yQ2FudmFzQWdl
bnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fcGVyc2lzdGVu
dEluc3BlY3RvckFuaW1hdGlvbkFnZW50IHsgbnVsbHB0ciB9OworICAgIEluc3BlY3RvckFuaW1h
dGlvbkFnZW50KiBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsK
ICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlv
bkFnZW50IHsgbnVsbHB0ciB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAppbmRleCBkZTlh
MmM1OWJkYWJjMjkwODk2Yzk2MzljZWFiYjRlMmM0NzNiODI5Li43NTZkMjEwOTRiMDQxZWJhYTAx
NWI3MWY0YWFlNTEzODY0YjIzMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcApAQCAtMjksMTkg
KzI5LDMzIEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0LmgiCiAjaW5jbHVkZSAiQW5pbWF0
aW9uRWZmZWN0UGhhc2UuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb24uaCIKKyNpbmNsdWRlICJD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVz
LmgiCiAjaW5jbHVkZSAiQ1NTVHJhbnNpdGlvbi5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiRGVjbGFyYXRpdmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJGaWxsTW9kZS5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50
aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAiSlNXZWJBbmltYXRpb24uaCIKICNpbmNsdWRlICJLZXlm
cmFtZUVmZmVjdC5oIgorI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJQbGF5YmFja0RpcmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlckVsZW1l
bnQuaCIKKyNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlv
bi5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lkZW50aWZpZXJzRmFjdG9yeS5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckVudmlyb25tZW50Lmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdh
dGNoLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNTIsNiArNjYsOSBAQCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICA6IElu
c3BlY3RvckFnZW50QmFzZSgiQW5pbWF0aW9uIl9zLCBjb250ZXh0KQogICAgICwgbV9mcm9udGVu
ZERpc3BhdGNoZXIobWFrZVVuaXF1ZTxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0
Y2hlcj4oY29udGV4dC5mcm9udGVuZFJvdXRlcikpCiAgICAgLCBtX2JhY2tlbmREaXNwYXRjaGVy
KEluc3BlY3Rvcjo6QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJh
Y2tlbmREaXNwYXRjaGVyLCB0aGlzKSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNv
bnRleHQuaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICwgbV9pbnNwZWN0ZWRQYWdlKGNvbnRl
eHQuaW5zcGVjdGVkUGFnZSkKKyAgICAsIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIoKnRoaXMs
ICZJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCkK
IHsKIH0KIApAQCAtNjcsMTEgKzg0LDEwMyBAQCB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAg
IEVycm9yU3RyaW5nIGlnbm9yZWQ7CiAgICAgc3RvcFRyYWNraW5nKGlnbm9yZWQpOworICAgIGRp
c2FibGUoaWdub3JlZCk7CiAKICAgICBBU1NFUlQobV9pbnN0cnVtZW50aW5nQWdlbnRzLnBlcnNp
c3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpID09IHRoaXMpOwogICAgIG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0cik7
CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcpCit7CisgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0g
IkFuaW1hdGlvbiBkb21haW4gYWxyZWFkeSBlbmFibGVkIl9zOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCh0aGlzKTsKKworICAgIGNvbnN0IGF1dG8gZXhpc3RzSW5DdXJyZW50UGFnZSA9
IFsmXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgewor
ICAgICAgICBpZiAoIWlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzE2ODQ3NT4gV2ViIEluc3BlY3RvcjogQ29ycmVjdGx5IGRpc3BsYXkgaWZyYW1lJ3Mg
V2ViU29ja2V0cworICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCkg
PT0gJm1faW5zcGVjdGVkUGFnZTsKKyAgICB9OworCisgICAgeworICAgICAgICBMb2NrSG9sZGVy
IGxvY2soV2ViQW5pbWF0aW9uOjppbnN0YW5jZXNNdXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRv
KiBhbmltYXRpb24gOiBXZWJBbmltYXRpb246Omluc3RhbmNlcyhsb2NrKSkgeworICAgICAgICAg
ICAgaWYgKGV4aXN0c0luQ3VycmVudFBhZ2UoYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpKQorICAgICAgICAgICAgICAgIGJpbmRBbmltYXRpb24oKmFuaW1hdGlvbiwgZmFsc2Up
OworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpk
aXNhYmxlKEVycm9yU3RyaW5nJikKK3sKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0RW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIpOworCisgICAgcmVzZXQoKTsKK30K
Kwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkKK3sK
KyAgICBhdXRvKiBhbmltYXRpb24gPSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJpbmcsIGFuaW1h
dGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byogZG9tQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKTsK
KyAgICBpZiAoIWRvbUFnZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRPTSBkb21haW4g
bXVzdCBiZSBlbmFibGVkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byog
ZWZmZWN0ID0gYW5pbWF0aW9uLT5lZmZlY3QoKTsKKyAgICBpZiAoIWlzPEtleWZyYW1lRWZmZWN0
PihlZmZlY3QpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3IgZ2l2ZW4g
YW5pbWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhbiBlZmZlY3QiX3M7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvJiBrZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0PEtleWZyYW1lRWZm
ZWN0PigqZWZmZWN0KTsKKworICAgIGF1dG8qIHRhcmdldCA9IGtleWZyYW1lRWZmZWN0LnRhcmdl
dCgpOworICAgIGlmICghdGFyZ2V0KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlv
biBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCJfczsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgICpub2RlSWQgPSBkb21BZ2VudC0+cHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChlcnJvclN0cmluZywgdGFyZ2V0KTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6cmVzb2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpCit7
CisgICAgYXV0byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmlt
YXRpb25JZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8qIHN0YXRlID0gYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV4ZWNTdGF0
ZSgpOworICAgIGF1dG8gaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5p
bmplY3RlZFNjcmlwdEZvcihzdGF0ZSk7CisgICAgQVNTRVJUKCFpbmplY3RlZFNjcmlwdC5oYXNO
b1ZhbHVlKCkpOworCisgICAgSlNDOjpKU1ZhbHVlIHZhbHVlOworICAgIHsKKyAgICAgICAgSlND
OjpKU0xvY2tIb2xkZXIgbG9jayhzdGF0ZSk7CisKKyAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0
ID0gZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShzdGF0ZSk7CisgICAgICAgIHZh
bHVlID0gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBhbmltYXRpb24pOworICAgIH0KKworICAg
IGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGVy
cm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiB1bmtub3duIEFuaW1hdGlvbiBmb3IgZ2l2ZW4g
YW5pbWF0aW9uSWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgb2Jq
ZWN0R3JvdXBOYW1lID0gb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiBTdHJpbmcoKTsKKyAg
ICByZXN1bHQgPSBpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KHZhbHVlLCBvYmplY3RHcm91cE5h
bWUpOworfQorCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdGFydFRyYWNraW5nKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKICAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdlbnRz
LnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CkBAIC0xNzAsMTYg
KzI3OSwyODAgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbEFwcGx5S2V5ZnJh
bWVFZmZlY3QoRWxlbWVudCYgdGFyZ2V0LCBLZXlmcmFtZUUKICAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlci0+dHJhY2tpbmdVcGRhdGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+
ZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCksIFdURk1vdmUoZXZlbnQpKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1h
dGlvbiYgYW5pbWF0aW9uKQordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2Vi
QW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxE
ZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVj
bGFyYXRpdmVBbmltYXRpb24oZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlv
bikpOworCisgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFuaW1hdGlvbik7
CisgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisK
K3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVj
dFRpbWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1hdGlv
bklkYCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxl
ZC4KKyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7Cisg
ICAgaWYgKGFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGJ1aWxkT2JqZWN0
Rm9yRWZmZWN0KGFuaW1hdGlvbi5lZmZlY3QoKSkpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1h
dGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9u
JiBhbmltYXRpb24pCit7CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlm
IEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRp
b25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmIChhbmltYXRpb25JZC5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50
YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQorewor
ICAgIGlmICghZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbikuaXNFbXB0eSgpKSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYmlu
ZEFuaW1hdGlvbihhbmltYXRpb24sIHRydWUpOwogfQogCiB2b2lkIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
IHsKICAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAgICAgICAg
IHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0aXZlQW5p
bWF0aW9uPihhbmltYXRpb24pKTsKKworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBl
bXB0eSBpZiBBbmltYXRpb24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8g
YW5pbWF0aW9uSWQgPSBmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoIWFuaW1h
dGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsK
K30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUm
IGZyYW1lKQoreworICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7CisgICAgICAgIHJlc2V0
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiBhbmltYXRp
b25JZHNUb1JlbW92ZTsKKyAgICBmb3IgKGF1dG8mIFthbmltYXRpb25JZCwgYW5pbWF0aW9uXSA6
IG1fYW5pbWF0aW9uSWRNYXApIHsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgPSBhbmltYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICAg
ICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBkb3duY2FzdDxE
b2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLmZyYW1lKCkgPT0gJmZyYW1lKQorICAg
ICAgICAgICAgICAgIGFuaW1hdGlvbklkc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb25JZCk7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb25JZCA6IGFuaW1h
dGlvbklkc1RvUmVtb3ZlKQorICAgICAgICB1bmJpbmRBbmltYXRpb24oYW5pbWF0aW9uSWQpOwor
fQorCitzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhjb25z
dCBTZWNvbmRzJiBzZWNvbmRzKQoreworICAgIGlmIChzZWNvbmRzID09IFNlY29uZHM6OmluZmlu
aXR5KCkgfHwgc2Vjb25kcyA9PSBTZWNvbmRzOjpuYW4oKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICByZXR1cm4gc2Vjb25kcy5taWxsaXNlY29uZHMoKTsKK30KKworUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RWZmZWN0PiBJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6YnVpbGRPYmplY3RGb3JFZmZlY3QoQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QpCit7
CisgICAgaWYgKCFlZmZlY3QpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBl
ZmZlY3RQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q6OmNy
ZWF0ZSgpCisgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICBpZiAoYXV0byBzdGFydERlbGF5ID0g
cHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LT5kZWxheSgpKSkKKyAgICAgICAgZWZmZWN0
UGF5bG9hZC0+c2V0U3RhcnREZWxheShzdGFydERlbGF5LnZhbHVlKCkpOworCisgICAgaWYgKGF1
dG8gZW5kRGVsYXkgPSBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QtPmVuZERlbGF5KCkp
KQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRFbmREZWxheShlbmREZWxheS52YWx1ZSgpKTsK
KworICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvbnMoZWZmZWN0LT5pdGVyYXRpb25zKCkp
OworICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvblN0YXJ0KGVmZmVjdC0+aXRlcmF0aW9u
U3RhcnQoKSk7CisKKyAgICBpZiAoYXV0byBpdGVyYXRpb25EdXJhdGlvbiA9IHByb3RvY29sVmFs
dWVGb3JTZWNvbmRzKGVmZmVjdC0+aXRlcmF0aW9uRHVyYXRpb24oKSkpCisgICAgICAgIGVmZmVj
dFBheWxvYWQtPnNldEl0ZXJhdGlvbkR1cmF0aW9uKGl0ZXJhdGlvbkR1cmF0aW9uLnZhbHVlKCkp
OworCisgICAgaWYgKGF1dG8qIHRpbWluZ0Z1bmN0aW9uID0gZWZmZWN0LT50aW1pbmdGdW5jdGlv
bigpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5j
dGlvbi0+Y3NzVGV4dCgpKTsKKworICAgIHN3aXRjaCAoZWZmZWN0LT5kaXJlY3Rpb24oKSkgewor
ICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbDoKKyAgICAgICAgZWZmZWN0UGF5bG9h
ZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24oSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQ
bGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF5
YmFja0RpcmVjdGlvbjo6UmV2ZXJzZToKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJh
Y2tEaXJlY3Rpb24oSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVj
dGlvbjo6UmV2ZXJzZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rp
b246OkFsdGVybmF0ZToKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rp
b24oSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0
ZXJuYXRlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0
ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rp
b24oSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0
ZXJuYXRlUmV2ZXJzZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHN3aXRjaCAoZWZm
ZWN0LT5maWxsKCkpIHsKKyAgICBjYXNlIEZpbGxNb2RlOjpOb25lOgorICAgICAgICBlZmZlY3RQ
YXlsb2FkLT5zZXRGaWxsTW9kZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxN
b2RlOjpOb25lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGaWxsTW9kZTo6Rm9yd2FyZHM6
CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkZvcndhcmRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBGaWxsTW9kZTo6QmFja3dhcmRzOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9k
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCYWNrd2FyZHMpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZpbGxNb2RlOjpCb3RoOgorICAgICAgICBlZmZlY3RQ
YXlsb2FkLT5zZXRGaWxsTW9kZShJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxN
b2RlOjpCb3RoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGaWxsTW9kZTo6QXV0bzoKKyAg
ICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0RmlsbE1vZGUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5p
bWF0aW9uOjpGaWxsTW9kZTo6QXV0byk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlm
IChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkgeworICAgICAgICBhdXRvJiBrZXlmcmFtZUVm
ZmVjdCA9IGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PigqZWZmZWN0KTsKKworICAgICAgICBhdXRv
IGtleWZyYW1lc1BheWxvYWQgPSBKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFu
aW1hdGlvbjo6S2V5ZnJhbWU+OjpjcmVhdGUoKTsKKworICAgICAgICBpZiAoaXM8RGVjbGFyYXRp
dmVBbmltYXRpb24+KGtleWZyYW1lRWZmZWN0LmFuaW1hdGlvbigpKSkgeworICAgICAgICAgICAg
QVNTRVJUKGtleWZyYW1lRWZmZWN0LnRhcmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8qIHJlbmRl
cmVyID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCktPnJlbmRlcmVyKCk7CisKKyAgICAgICAgICAg
IENvbXB1dGVkU3R5bGVFeHRyYWN0b3IgY29tcHV0ZWRTdHlsZUV4dHJhY3RvcihrZXlmcmFtZUVm
ZmVjdC50YXJnZXQoKSk7CisKKyAgICAgICAgICAgIGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWVzID0g
a2V5ZnJhbWVFZmZlY3QuYmxlbmRpbmdLZXlmcmFtZXMoKTsKKyAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICBhdXRvJiBibGVuZGluZ0tleWZyYW1lID0gYmxlbmRpbmdLZXlmcmFtZXNbaV07CisK
KyAgICAgICAgICAgICAgICBBU1NFUlQoYmxlbmRpbmdLZXlmcmFtZS5zdHlsZSgpKTsKKyAgICAg
ICAgICAgICAgICBhdXRvJiBzdHlsZSA9ICpibGVuZGluZ0tleWZyYW1lLnN0eWxlKCk7CisKKyAg
ICAgICAgICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgICAgIC5zZXRP
ZmZzZXQoYmxlbmRpbmdLZXlmcmFtZS5rZXkoKSkKKyAgICAgICAgICAgICAgICAgICAgLnJlbGVh
c2UoKTsKKworICAgICAgICAgICAgICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IGJsZW5k
aW5nS2V5ZnJhbWUudGltaW5nRnVuY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJh
bWVQYXlsb2FkLT5zZXRFYXNpbmcodGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAg
ICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0eWxlUGF5bG9hZEJ1aWxkZXI7CisgICAgICAgICAg
ICAgICAgYXV0byYgY3NzUHJvcGVydHlJZHMgPSBibGVuZGluZ0tleWZyYW1lLnByb3BlcnRpZXMo
KTsKKyAgICAgICAgICAgICAgICBzaXplX3QgY291bnQgPSBjc3NQcm9wZXJ0eUlkcy5zaXplKCk7
CisgICAgICAgICAgICAgICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBjc3NQcm9wZXJ0eUlk
cykgeworICAgICAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgICAgICBp
ZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0eUN1c3RvbSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxk
ZXIuYXBwZW5kKGdldFByb3BlcnR5TmFtZVN0cmluZyhjc3NQcm9wZXJ0eUlkKSk7CisgICAgICAg
ICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCI6ICIpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoYXV0byB2YWx1ZSA9IGNvbXB1dGVkU3R5bGVFeHRyYWN0b3IudmFsdWVG
b3JQcm9wZXJ0eUluU3R5bGUoc3R5bGUsIGNzc1Byb3BlcnR5SWQsIHJlbmRlcmVyKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKHZhbHVlLT5jc3NU
ZXh0KCkpOworICAgICAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgn
OycpOworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPiAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgaWYgKCFzdHlsZVBheWxvYWRCdWlsZGVyLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRTdHlsZShzdHlsZVBheWxv
YWRCdWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAgICAga2V5ZnJhbWVzUGF5bG9h
ZC0+YWRkSXRlbShXVEZNb3ZlKGtleWZyYW1lUGF5bG9hZCkpOworICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYXJzZWRLZXlmcmFt
ZSA6IGtleWZyYW1lRWZmZWN0LnBhcnNlZEtleWZyYW1lcygpKSB7CisgICAgICAgICAgICAgICAg
YXV0byBrZXlmcmFtZVBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246Oktl
eWZyYW1lOjpjcmVhdGUoKQorICAgICAgICAgICAgICAgICAgICAuc2V0T2Zmc2V0KHBhcnNlZEtl
eWZyYW1lLmNvbXB1dGVkT2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOwor
CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5lYXNpbmcuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyhwYXJzZWRLZXlm
cmFtZS5lYXNpbmcpOworCisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5zdHls
ZS0+aXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldFN0
eWxlKHBhcnNlZEtleWZyYW1lLnN0eWxlLT5hc1RleHQoKSk7CisKKyAgICAgICAgICAgICAgICBr
ZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoa2V5ZnJhbWVzUGF5bG9hZC0+bGVu
Z3RoKCkpCisgICAgICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRLZXlmcmFtZXMoV1RGTW92ZShr
ZXlmcmFtZXNQYXlsb2FkKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0UGF5
bG9hZCk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlv
bklkKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGZvciAoYXV0byYgW2FuaW1hdGlv
bklkLCBleGlzdGluZ0FuaW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlm
IChleGlzdGluZ0FuaW1hdGlvbiA9PSAmYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGFu
aW1hdGlvbklkOworICAgIH0KKyAgICByZXR1cm4gbnVsbFN0cmluZygpOworfQorCitXZWJBbmlt
YXRpb24qIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRpb24oRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKQoreworICAgIGF1dG8q
IGFuaW1hdGlvbiA9IG1fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICBpZiAo
IWFuaW1hdGlvbikKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBhbmltYXRpb24gZm9y
IGdpdmVuIGFuaW1hdGlvbklkIl9zOworICAgIHJldHVybiBhbmltYXRpb247Cit9CisKK3ZvaWQg
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24sIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSkKK3sKKyAgICBhdXRvIGFuaW1hdGlvbklkID0g
bWFrZVN0cmluZygiYW5pbWF0aW9uOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50
aWZpZXIoKSk7CisgICAgbV9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uSWQsICZhbmltYXRp
b24pOworCisgICAgYXV0byBhbmltYXRpb25QYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6
QW5pbWF0aW9uOjpBbmltYXRpb246OmNyZWF0ZSgpCisgICAgICAgIC5zZXRBbmltYXRpb25JZChh
bmltYXRpb25JZCkKKyAgICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlmIChpczxDU1NBbmltYXRp
b24+KGFuaW1hdGlvbikpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldENzc0FuaW1hdGlv
bk5hbWUoZG93bmNhc3Q8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24pLmFuaW1hdGlvbk5hbWUoKSk7
CisgICAgZWxzZSBpZiAoaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5p
bWF0aW9uUGF5bG9hZC0+c2V0Q3NzVHJhbnNpdGlvblByb3BlcnR5KGRvd25jYXN0PENTU1RyYW5z
aXRpb24+KGFuaW1hdGlvbikudHJhbnNpdGlvblByb3BlcnR5KCkpOworCisgICAgaWYgKGF1dG8g
ZWZmZWN0UGF5bG9hZCA9IGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KGFuaW1hdGlvbi5lZmZlY3QoKSkp
CisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldEVmZmVjdChXVEZNb3ZlKGVmZmVjdFBheWxv
YWQpKTsKKworICAgIGlmIChjYXB0dXJlQmFja3RyYWNlKSB7CisgICAgICAgIGF1dG8gc3RhY2tU
cmFjZSA9IEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTRXhlY1N0YXRlOjpjdXJy
ZW50U3RhdGUoKSwgSW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVU
b0NhcHR1cmUpOworICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRCYWNrdHJhY2Uoc3RhY2tU
cmFjZS0+YnVpbGRJbnNwZWN0b3JBcnJheSgpKTsKKyAgICB9CisKKyAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlci0+YW5pbWF0aW9uQ3JlYXRlZChXVEZNb3ZlKGFuaW1hdGlvblBheWxvYWQpKTsKK30K
Kwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0
cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5yZW1vdmUoYW5pbWF0
aW9uSWQpOworCisgICAgLy8gVGhpcyBjYW4gYmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIEdDLiBE
dWUgdG8gdGhlIHNpbmdsZS1wcm9jZXNzIG1vZGVsIHVzZWQgaW4gV2ViS2l0MSwgdGhlCisgICAg
Ly8gZXZlbnQgbXVzdCBiZSBkaXNwYXRjaGVkIGZyb20gYSB0aW1lciB0byBwcmV2ZW50IHRoZSBm
cm9udGVuZCBmcm9tIG1ha2luZyBKUyBhbGxvY2F0aW9ucworICAgIC8vIHdoaWxlIHRoZSBHQyBp
cyBzdGlsbCBhY3RpdmUuCisgICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmFwcGVuZChhbmltYXRp
b25JZCk7CisKKyAgICBpZiAoIW1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKK30K
Kwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJG
aXJlZCgpCit7CisgICAgaWYgKCFtX3JlbW92ZWRBbmltYXRpb25JZHMuc2l6ZSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGlkZW50aWZpZXIgOiBtX3JlbW92ZWRBbmltYXRp
b25JZHMpCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25EZXN0cm95ZWQo
aWRlbnRpZmllcik7CisKKyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuY2xlYXIoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzZXQoKQoreworICAgIG1fYW5pbWF0aW9u
SWRNYXAuY2xlYXIoKTsKKworICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5jbGVhcigpOworCisg
ICAgaWYgKG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9h
bmltYXRpb25EZXN0cm95ZWRUaW1lci5zdG9wKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OnN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZlQW5p
bWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKaW5kZXggN2EyNGJiY2JiMWIzMzFk
MTkwZGE2MGMwMGQyMWJkOTM1NDhmYWIwMC4uMTAwMGM5NTgwOWE3ZTgwODI1YTU1ZjE4MTE0Njk0
OTE2ZmI3OGE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaApAQCAtMjcsMTYgKzI3LDIwIEBACiAKICNp
bmNsdWRlICJDb21wdXRlZEVmZmVjdFRpbWluZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvcldlYkFn
ZW50QmFzZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQW5pbWF0aW9uRWZmZWN0OwogY2xhc3Mg
RGVjbGFyYXRpdmVBbmltYXRpb247CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZlbnQ7CitjbGFz
cyBGcmFtZTsKIGNsYXNzIEtleWZyYW1lRWZmZWN0OworY2xhc3MgUGFnZTsKIGNsYXNzIFdlYkFu
aW1hdGlvbjsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CkBAIC01MywyMCArNTcsNDQg
QEAgcHVibGljOgogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIEFuaW1hdGlvbkJhY2tl
bmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBy
ZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGludCog
bm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc29sdmVBbmltYXRpb24oRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAg
IHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVs
ZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICB2b2lk
IGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRp
ZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICB2b2lkIHdpbGxEZXN0cm95
V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRnJh
bWUmKTsKIAogcHJpdmF0ZToKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0
aW9uOjpFZmZlY3Q+IGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KEFuaW1hdGlvbkVmZmVjdCopOworCisg
ICAgU3RyaW5nIGZpbmRBbmltYXRpb25JZChXZWJBbmltYXRpb24mKTsKKyAgICBXZWJBbmltYXRp
b24qIGFzc2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9u
SWQpOworICAgIHZvaWQgYmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mLCBib29sIGNhcHR1cmVC
YWNrdHJhY2UpOworICAgIHZvaWQgdW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uSWQpOworICAgIHZvaWQgYW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpOworICAgIHZv
aWQgcmVzZXQoKTsKKwogICAgIHZvaWQgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24o
RGVjbGFyYXRpdmVBbmltYXRpb24mKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6
OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAg
UmVmUHRyPEluc3BlY3Rvcjo6QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERp
c3BhdGNoZXI7CiAKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXI7CisgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOworCisgICAgSGFz
aE1hcDxTdHJpbmcsIFdlYkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7CisgICAgVmVjdG9y
PFN0cmluZz4gbV9yZW1vdmVkQW5pbWF0aW9uSWRzOworICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVz
dHJveWVkVGltZXI7CisKICAgICBzdHJ1Y3QgVHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0aW9uRGF0
YSB7CiAgICAgICAgIFN0cmluZyB0cmFja2luZ0FuaW1hdGlvbklkOwogICAgICAgICBDb21wdXRl
ZEVmZmVjdFRpbWluZyBsYXN0Q29tcHV0ZWRUaW1pbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGFlY2M3OWJj
MGNhNTZmYjY1ZmUwMzMwZjA4ZTRlZTY4OGJmODFlODkuLjBmNDZhMzAzM2FlZjQwMDdmNmViODM3
YTYxMDVmMDVhMGM1OTA2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NjYsNyArNTY2LDcgQEAgaW50IElu
c3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBpbnQgZG9jdW1lbnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJu
IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZVRvUHVzaCk7CisgICAgcmV0dXJuIHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGVUb1B1c2gpOwogfQogCiBOb2RlKiBJbnNw
ZWN0b3JET01BZ2VudDo6bm9kZUZvcklkKGludCBpZCkKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lk
IEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nJiBlcnJvclN0cmlu
ZywgaW50IG5vZGVJZCwgY29ucwogICAgIH0KIAogICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcXVl
cnlSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpCi0gICAgICAgICplbGVtZW50SWQgPSBwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKGVsZW1lbnQpOworICAgICAgICAqZWxlbWVudElkID0gcHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgZWxlbWVudCk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBp
bnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5T2Y8
aW50Pj4mIHJlc3VsdCkKQEAgLTYzOSwxMyArNjM5LDI0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlk
LCBjCiB9CiAKIGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChO
b2RlKiBub2RlVG9QdXNoKQoreworICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgcmV0dXJu
IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoaWdub3JlZCwgbm9kZVRvUHVzaCk7Cit9CisKK2ludCBJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyBlcnJv
clN0cmluZywgTm9kZSogbm9kZVRvUHVzaCkKIHsKICAgICBBU1NFUlQobm9kZVRvUHVzaCk7ICAv
LyBJbnZhbGlkIGlucHV0CiAKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3Vt
ZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3NpbmcgZG9jdW1lbnQiX3M7CiAgICAg
ICAgIHJldHVybiAwOwotICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1f
ZG9jdW1lbnQpKQorICAgIH0KKworICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRh
aW5zKG1fZG9jdW1lbnQpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRvY3VtZW50IG11c3Qg
aGF2ZSBiZWVuIHJlcXVlc3RlZCJfczsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAg
Ly8gUmV0dXJuIGlkIGluIGNhc2UgdGhlIG5vZGUgaXMga25vd24uCiAgICAgaW50IHJlc3VsdCA9
IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZVRvUHVzaCk7CkBAIC03OTAsNyArODAxLDcg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmIGVycm9y
U3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdAogICAgIGlmICghbV9kb21FZGl0b3ItPnJlbW92ZUNo
aWxkKCpwYXJlbnQsICpvbGROb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAot
ICAgICpuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3RWxlbWVudC5wdHIoKSk7Cisg
ICAgKm5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3RWxlbWVu
dC5wdHIoKSk7CiAgICAgaWYgKG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkK
ICAgICAgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKCpuZXdJZCk7CiB9CkBAIC04MzAsNyAr
ODQxLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGludCBuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7CisgICAg
aW50IG5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3Tm9kZSk7
CiAKICAgICBib29sIGNoaWxkcmVuUmVxdWVzdGVkID0gbV9jaGlsZHJlblJlcXVlc3RlZC5jb250
YWlucyhub2RlSWQpOwogICAgIGlmIChjaGlsZHJlblJlcXVlc3RlZCkKQEAgLTE0MjIsNyArMTQz
Myw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyhFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGludCBub2RlSWQsIGludCB0YXJnZXRFCiAgICAgaWYgKCFtX2RvbUVkaXRvci0+aW5z
ZXJ0QmVmb3JlKCp0YXJnZXRFbGVtZW50LCAqbm9kZSwgYW5jaG9yTm9kZSwgZXJyb3JTdHJpbmcp
KQogICAgICAgICByZXR1cm47CiAKLSAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9u
dGVuZChub2RlKTsKKyAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJv
clN0cmluZywgbm9kZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuZG8oRXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nKQpAQCAtMTQ5OCwxMSArMTUwOSwxMSBAQCB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpnZXRBdHRyaWJ1dGVzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5v
ZGVJZCwgUmVmUAogICAgIHJlc3VsdCA9IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhl
bGVtZW50KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKK3ZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpCiB7CiAgICAgTm9kZSogbm9kZSA9IG5vZGVG
b3JPYmplY3RJZChvYmplY3RJZCk7CiAgICAgaWYgKG5vZGUpCi0gICAgICAgICpub2RlSWQgPSBw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7CiAgICAgZWxzZQogICAgICAgICAqbm9k
ZUlkID0gMDsKIH0KQEAgLTI2NDYsNyArMjY1Nyw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50
Ojpub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHZvaWQgSW5zcGVjdG9y
RE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpCiB7CiAgICAgaWYgKE5vZGUqIG5v
ZGUgPSBub2RlRm9yUGF0aChwYXRoKSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQobm9kZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
KGVycm9yU3RyaW5nLCBub2RlKTsKICAgICBlbHNlCiAgICAgICAgIGVycm9yU3RyaW5nID0gIk1p
c3Npbmcgbm9kZSBmb3IgZ2l2ZW4gcGF0aCJfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA1MTYzOWFiZWI4NGY0
ZDk1ZGVkM2Y0ZmI2NDA5YWQ4ZjYyYTI4OTRlLi43ZGYwZTgzZWI1M2Q3NWM0MWM1NTRmMTQwMTIz
NWJhMjE3MTk0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xODAsNiArMTgwLDggQEAgcHVibGljOgogCiAgICAg
aW50IHB1c2hOb2RlVG9Gcm9udGVuZChOb2RlKik7CiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVu
ZChFcnJvclN0cmluZyYsIGludCBkb2N1bWVudE5vZGVJZCwgTm9kZSopOworICAgIGludCBwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChFcnJvclN0cmluZywgTm9kZSopOwogICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsK
ICAgICBpbnQgYm91bmROb2RlSWQoY29uc3QgTm9kZSopOwogCkBAIC0yMTcsNyArMjE5LDYgQEAg
cHJpdmF0ZToKICAgICBOb2RlKiBhc3NlcnRFZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkKTsKICAgICBFbGVtZW50KiBhc3NlcnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JTdHJpbmcm
LCBpbnQgbm9kZUlkKTsKIAotICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsK
ICAgICB2b2lkIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChpbnQgbm9kZUlkLCBpbnQgZGVwdGgg
PSAxKTsKIAogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2Jq
ZWN0Rm9yTm9kZShOb2RlKiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKaW5kZXggN2E3NDdhNjk0OTMzNDdmYzE4ZjBkMWNmMDU1N2Y1Yzll
ZjkwNmE1Ny4uODZlOTk0ZjFiNmQ5MjNjZTA3YTgwZjQ1OWViYTE1ZTgzODEyNWZlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xMjAsMTcgKzEyMCwyMiBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJBbGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSBlcnJvciBvYmpl
Y3RzIl0gPSAiQWxsIGl0ZQogbG9jYWxpemVkU3RyaW5nc1siQWxsIGl0ZW1zIGluIFx1MDAyMiVz
XHUwMDIyIG11c3QgYmUgbm9uLWVtcHR5IHN0cmluZ3MiXSA9ICJBbGwgaXRlbXMgaW4gXHUwMDIy
JXNcdTAwMjIgbXVzdCBiZSBub24tZW1wdHkgc3RyaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJB
bGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSB2YWxpZCBET00gbm9kZXMiXSA9ICJB
bGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSB2YWxpZCBET00gbm9kZXMiOwogbG9j
YWxpemVkU3RyaW5nc1siQWxsb3cgTWVkaWEgQ2FwdHVyZSBvbiBJbnNlY3VyZSBTaXRlcyJdID0g
IkFsbG93IE1lZGlhIENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiOworbG9jYWxpemVkU3RyaW5n
c1siQWx0ZXJuYXRlIl0gPSAiQWx0ZXJuYXRlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFsdGVybmF0
ZSBSZXZlcnNlIl0gPSAiQWx0ZXJuYXRlIFJldmVyc2UiOwogbG9jYWxpemVkU3RyaW5nc1siQW4g
ZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291cmNlLiJdID0gIkFuIGVycm9y
IG9jY3VycmVkIHRyeWluZyB0byBsb2FkIHRoZSByZXNvdXJjZS4iOwogbG9jYWxpemVkU3RyaW5n
c1siQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRh
YmxlLiJdID0gIkFuIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byByZWFkIHRoZSBcdTIwMUMlc1x1
MjAxRCB0YWJsZS4iOwogbG9jYWxpemVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciAlcyBv
Y2N1cnJlZC4iXSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0
ZWQgZXJyb3Igb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuZ2xlIl0gPSAiQW5nbGUi
OworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIl0gPSAiQW5pbWF0aW9uIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIkFuaW1hdGlvbiAlZCJdID0gIkFuaW1hdGlvbiAlZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbmltYXRpb24gRnJhbWUgJWQgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQg
Q2FuY2VsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIl0g
PSAiQW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlv
biBGcmFtZSAlZCBSZXF1ZXN0ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVzdGVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxlZCJdID0gIkFuaW1hdGlv
biBGcmFtZSBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgRmly
ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgRmlyZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0
aW9uIEZyYW1lIFJlcXVlc3RlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0ZWQiOworbG9j
YWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIFRhcmdldCJdID0gIkFuaW1hdGlvbiBUYXJnZXQiOwog
bG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdCAlZCJdID0gIkFub255bW91cyBTY3Jp
cHQgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdHMiXSA9ICJBbm9ueW1v
dXMgU2NyaXB0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQi
XSA9ICJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQiOwpAQCAtMTY5LDE2ICsxNzQsMTkgQEAgbG9j
YWxpemVkU3RyaW5nc1siQXZlcmFnZTogJXMiXSA9ICJBdmVyYWdlOiAlcyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJCTVAiXSA9ICJCTVAiOwogbG9jYWxpemVkU3RyaW5nc1siQmFjayAoJXMpIl0gPSAi
QmFjayAoJXMpIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJhY2t0cmFjZSJdID0gIkJhY2t0cmFjZSI7
Citsb2NhbGl6ZWRTdHJpbmdzWyJCYWNrd2FyZHMiXSA9ICJCYWNrd2FyZHMiOwogbG9jYWxpemVk
U3RyaW5nc1siQmFzaWMiXSA9ICJCYXNpYyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCZWFjb24iXSA9
ICJCZWFjb24iOwogbG9jYWxpemVkU3RyaW5nc1siQmVhY29ucyJdID0gIkJlYWNvbnMiOwogbG9j
YWxpemVkU3RyaW5nc1siQmluYXJ5IEZyYW1lIl0gPSAiQmluYXJ5IEZyYW1lIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkJpbmRpbmciXSA9ICJCaW5kaW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIkJpdG1h
cCBSZW5kZXJlciJdID0gIkJpdG1hcCBSZW5kZXJlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbGFj
a2JveCJdID0gIkJsYWNrYm94IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJsYWNrYm94IFNjcmlwdCJd
ID0gIkJsYWNrYm94IFNjcmlwdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbGFja2JveCBzY3JpcHQg
dG8gaWdub3JlIGl0IHdoZW4gZGVidWdnaW5nIl0gPSAiQmxhY2tib3ggc2NyaXB0IHRvIGlnbm9y
ZSBpdCB3aGVuIGRlYnVnZ2luZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbG9jayBWYXJpYWJsZXMi
XSA9ICJCbG9jayBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQm9keToiXSA9ICJCb2R5
OiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJCb3RoIl0gPSAiQm90aCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJCb3VuZGFyeSJdID0gIkJvdW5kYXJ5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJveCBNb2RlbCJd
ID0gIkJveCBNb2RlbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCcmVhayBvbiJdID0gIkJyZWFrIG9u
IjsKQEAgLTIwMSw5ICsyMDksMTEgQEAgbG9jYWxpemVkU3RyaW5nc1siQ1BVIl0gPSAiQ1BVIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkNQVSBVc2FnZSJdID0gIkNQVSBVc2FnZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJDU1AgSGFzaCJdID0gIkNTUCBIYXNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBB
bmltYXRpb24iXSA9ICJDU1MgQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmlt
YXRpb25zIl0gPSAiQ1NTIEFuaW1hdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENhbnZh
cyJdID0gIkNTUyBDYW52YXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENoYW5nZXM6Il0gPSAi
Q1NTIENoYW5nZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0aW9uIl0gPSAiQ1NT
IFRyYW5zaXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQ1NTIFRyYW5zaXRpb25zIl0gPSAiQ1NT
IFRyYW5zaXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIw
MUQiXSA9ICJDU1MgY2FudmFzIFx1MjAxQyVzXHUyMDFEIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNh
Y2hlZCJdID0gIkNhY2hlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWxsIEZyYW1lcyBUcnVuY2F0
ZWQiXSA9ICJDYWxsIEZyYW1lcyBUcnVuY2F0ZWQiOwpAQCAtMzc3LDYgKzM4Nyw3IEBAIGxvY2Fs
aXplZFN0cmluZ3NbIkRldmljZSAlZCJdID0gIkRldmljZSAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJEZXZpY2UgU2V0dGluZ3MiXSA9ICJEZXZpY2UgU2V0dGluZ3MiOwogbG9jYWxpemVkU3RyaW5n
c1siRGlhZ25vc2VzIGNvbW1vbiBhY2Nlc3NpYmlsaXR5IHByb2JsZW1zIGFmZmVjdGluZyBzY3Jl
ZW4gcmVhZGVycyBhbmQgb3RoZXIgYXNzaXN0aXZlIHRlY2hub2xvZ3kuIl0gPSAiRGlhZ25vc2Vz
IGNvbW1vbiBhY2Nlc3NpYmlsaXR5IHByb2JsZW1zIGFmZmVjdGluZyBzY3JlZW4gcmVhZGVycyBh
bmQgb3RoZXIgYXNzaXN0aXZlIHRlY2hub2xvZ3kuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpbWVu
c2lvbnMiXSA9ICJEaW1lbnNpb25zIjsKK2xvY2FsaXplZFN0cmluZ3NbIkRpcmVjdGlvbiJdID0g
IkRpcmVjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIEJyZWFrcG9pbnQiXSA9ICJE
aXNhYmxlIEJyZWFrcG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50
cyJdID0gIkRpc2FibGUgQnJlYWtwb2ludHMiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBE
ZXNjZW5kYW50IEJyZWFrcG9pbnRzIl0gPSAiRGlzYWJsZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRz
IjsKQEAgLTQxOSw2ICs0MzAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJEdXJhdGlvbjogU2hvcnQi
XSA9ICJEdXJhdGlvbjogU2hvcnQiOwogbG9jYWxpemVkU3RyaW5nc1siRHluYW1pY2FsbHkgY2Fs
Y3VsYXRlZCBmb3IgdGhlIHBhcmVudCBlbGVtZW50Il0gPSAiRHluYW1pY2FsbHkgY2FsY3VsYXRl
ZCBmb3IgdGhlIHBhcmVudCBlbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkR5bmFtaWNhbGx5
IGNhbGN1bGF0ZWQgZm9yIHRoZSBzZWxlY3RlZCBlbGVtZW50Il0gPSAiRHluYW1pY2FsbHkgY2Fs
Y3VsYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRHlu
YW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQgYW5kIGRpZCBub3Qg
bWF0Y2giXSA9ICJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0ZWQgZWxlbWVu
dCBhbmQgZGlkIG5vdCBtYXRjaCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFYXNpbmciXSA9ICJFYXNp
bmciOwogLyogTGFiZWwgZm9yIGEgZ3VpZGUgd2l0aGluIHRoZSBjb2xvciBwaWNrZXIgKi8KIGxv
Y2FsaXplZFN0cmluZ3NbIkVkZ2Ugb2Ygc1JHQiBjb2xvciBzcGFjZSJdID0gIkVkZ2Ugb2Ygc1JH
QiBjb2xvciBzcGFjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0Il0gPSAiRWRpdCI7CkBAIC00
MzAsNiArNDQyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRWRpdCBcdTIwMUNzcHJpbmdcdTIwMUQg
ZnVuY3Rpb24iXSA9ICJFZGl0IFx1MjAxQ3NwcmluZ1x1MjAxRAogbG9jYWxpemVkU3RyaW5nc1si
RWRpdCBjb25maWd1cmF0aW9uIl0gPSAiRWRpdCBjb25maWd1cmF0aW9uIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVkaXQgY3VzdG9tIGdyYWRpZW50Il0gPSAiRWRpdCBjdXN0b20gZ3JhZGllbnQiOwog
bG9jYWxpemVkU3RyaW5nc1siRWRpdGluZyBhdWRpdHMiXSA9ICJFZGl0aW5nIGF1ZGl0cyI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJFZmZlY3QiXSA9ICJFZmZlY3QiOwogbG9jYWxpemVkU3RyaW5nc1si
RWxlbWVudCJdID0gIkVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRWxlbWVudCBTZWxlY3Rp
b246Il0gPSAiRWxlbWVudCBTZWxlY3Rpb246IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQg
Y2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiXSA9ICJFbGVtZW50IGNsaXBzIGNvbXBvc2l0
aW5nIGRlc2NlbmRhbnRzIjsKQEAgLTQ3OCw2ICs0OTEsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJF
bmFibGUgc291cmNlIG1hcHMiXSA9ICJFbmFibGUgc291cmNlIG1hcHMiOwogbG9jYWxpemVkU3Ry
aW5nc1siRW5hYmxlZCJdID0gIkVuYWJsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RlZCJd
ID0gIkVuY29kZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RpbmciXSA9ICJFbmNvZGluZyI7
Citsb2NhbGl6ZWRTdHJpbmdzWyJFbmQgRGVsYXkiXSA9ICJFbmQgRGVsYXkiOworbG9jYWxpemVk
U3RyaW5nc1siRW5kIERlbGF5ICVzIl0gPSAiRW5kIERlbGF5ICVzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkVuZXJneSBJbXBhY3QiXSA9ICJFbmVyZ3kgSW1wYWN0IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkVuc3VyZSBhcmlhLWhpZGRlbj1cdTAwMjIlc1x1MDAyMiBpcyBub3QgdXNlZC4iXSA9ICJFbnN1
cmUgYXJpYS1oaWRkZW49XHUwMDIyJXNcdTAwMjIgaXMgbm90IHVzZWQuIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVuc3VyZSB0aGF0IFx1MDAyMiVzXHUwMDIyIGlzIHNwZWxsZWQgY29ycmVjdGx5LiJd
ID0gIkVuc3VyZSB0aGF0IFx1MDAyMiVzXHUwMDIyIGlzIHNwZWxsZWQgY29ycmVjdGx5LiI7CkBA
IC01MzcsNiArNTUyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRmV0Y2giXSA9ICJGZXRjaCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJGZXRjaGVzIl0gPSAiRmV0Y2hlcyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJGaWxlIG9yIFJlc291cmNlIl0gPSAiRmlsZSBvciBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJGaWxlbmFtZSJdID0gIkZpbGVuYW1lIjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGwiXSA9
ICJGaWxsIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbHRlciJdID0gIkZpbHRlciI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJGaWx0ZXIgRnVsbCBVUkwiXSA9ICJGaWx0ZXIgRnVsbCBVUkwiOwogbG9jYWxp
emVkU3RyaW5nc1siRmlsdGVyOiJdID0gIkZpbHRlcjoiOwpAQCAtNTY1LDYgKzU4MSw3IEBAIGxv
Y2FsaXplZFN0cmluZ3NbIkZvcm1hdDogUkdCQSJdID0gIkZvcm1hdDogUkdCQSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJGb3JtYXQ6IFNob3J0IEhleCJdID0gIkZvcm1hdDogU2hvcnQgSGV4IjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkZvcm1hdDogU2hvcnQgSGV4IHdpdGggQWxwaGEiXSA9ICJGb3JtYXQ6
IFNob3J0IEhleCB3aXRoIEFscGhhIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZvcndhcmQgKCVzKSJd
ID0gIkZvcndhcmQgKCVzKSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJGb3J3YXJkcyJdID0gIkZvcndh
cmRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZyYWdtZW50Il0gPSAiRnJhZ21lbnQiOwogbG9jYWxp
emVkU3RyaW5nc1siRnJhZ21lbnQgU2hhZGVyIl0gPSAiRnJhZ21lbnQgU2hhZGVyIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkZyYW1lICVkIl0gPSAiRnJhbWUgJWQiOwpAQCAtNTg1LDYgKzYwMiw3IEBA
IGxvY2FsaXplZFN0cmluZ3NbIkdsb2JhbCBDb2RlIl0gPSAiR2xvYmFsIENvZGUiOwogbG9jYWxp
emVkU3RyaW5nc1siR2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQiXSA9ICJHbG9iYWwgTGV4aWNh
bCBFbnZpcm9ubWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgVmFyaWFibGVzIl0gPSAi
R2xvYmFsIFZhcmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcmFtbWFyIl0gPSAiR3JhbW1h
ciI7Citsb2NhbGl6ZWRTdHJpbmdzWyJHcmFwaGljcyJdID0gIkdyYXBoaWNzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkdyb3VwIl0gPSAiR3JvdXAiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAgQnkg
UmVzb3VyY2UiXSA9ICJHcm91cCBCeSBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91
cCBNZWRpYSBSZXF1ZXN0cyJdID0gIkdyb3VwIE1lZGlhIFJlcXVlc3RzIjsKQEAgLTYzMiw2ICs2
NTAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXMiXSA9ICJJbWFnZXMiOwogbG9jYWxpemVk
U3RyaW5nc1siSW1hZ2VzOiJdID0gIkltYWdlczoiOwogbG9jYWxpemVkU3RyaW5nc1siSW1tZWRp
YXRlIFBhdXNlIFJlcXVlc3RlZCJdID0gIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9j
YWxpemVkU3RyaW5nc1siSW1wb3J0Il0gPSAiSW1wb3J0IjsKK2xvY2FsaXplZFN0cmluZ3NbIklt
cG9ydCBSZWNvcmRpbmciXSA9ICJJbXBvcnQgUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkltcG9ydGVkIl0gPSAiSW1wb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgLSAl
cyJdID0gIkltcG9ydGVkIC0gJXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgXHUyMDE0
ICVzIl0gPSAiSW1wb3J0ZWQgXHUyMDE0ICVzIjsKQEAgLTY2MCw2ICs2NzksNyBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJJbnZva2UgZ2V0dGVyIl0gPSAiSW52b2tlIGdldHRlciI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJJdCBpcyBldmFsdWF0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGdsb2JhbCBvYmpl
Y3QgaXMgY3JlYXRlZCwgYmVmb3JlIGFueSBvdGhlciBjb250ZW50IGhhcyBsb2FkZWQuIl0gPSAi
SXQgaXMgZXZhbHVhdGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGNy
ZWF0ZWQsIGJlZm9yZSBhbnkgb3RoZXIgY29udGVudCBoYXMgbG9hZGVkLiI7CiAvKiBUb29sdGlw
IGZvciBhIHRpbWVzdGFtcCBtYXJrZXIgdGhhdCByZXByZXNlbnRzIHdoZW4gYSBDU1MgYW5pbWF0
aW9uL3RyYW5zaXRpb24gaXRlcmF0ZXMgKi8KIGxvY2FsaXplZFN0cmluZ3NbIkl0ZXJhdGlvbiJd
ID0gIkl0ZXJhdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJJdGVyYXRpb25zIl0gPSAiSXRlcmF0
aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJKUDIiXSA9ICJKUDIiOwogbG9jYWxpemVkU3RyaW5n
c1siSlBFRyJdID0gIkpQRUciOwogbG9jYWxpemVkU3RyaW5nc1siSmF2YVNjcmlwdCJdID0gIkph
dmFTY3JpcHQiOwpAQCAtNjY5LDYgKzY4OSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkphdmFTY3Jp
cHQgQ29udGV4dCJdID0gIkphdmFTY3JpcHQgQ29udGV4dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJK
dW1wIHRvIERlZmluaXRpb24iXSA9ICJKdW1wIHRvIERlZmluaXRpb24iOwogbG9jYWxpemVkU3Ry
aW5nc1siS2V5Il0gPSAiS2V5IjsKIGxvY2FsaXplZFN0cmluZ3NbIktleSBQYXRoIl0gPSAiS2V5
IFBhdGgiOworbG9jYWxpemVkU3RyaW5nc1siS2V5ZnJhbWVzIl0gPSAiS2V5ZnJhbWVzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkxhYmVsIl0gPSAiTGFiZWwiOwogbG9jYWxpemVkU3RyaW5nc1siTGF0
ZW5jeSJdID0gIkxhdGVuY3kiOwogbG9jYWxpemVkU3RyaW5nc1siTGF5ZXIgQ291bnQ6ICVkIl0g
PSAiTGF5ZXIgQ291bnQ6ICVkIjsKQEAgLTY5Niw2ICs3MTcsNyBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJMb2NhbCBTdG9yYWdlIl0gPSAiTG9jYWwgU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJM
b2NhbCBWYXJpYWJsZXMiXSA9ICJMb2NhbCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1si
TG9jYXRlZCBhdCAlcyJdID0gIkxvY2F0ZWQgYXQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9j
YXRpb24iXSA9ICJMb2NhdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQW5pbWF0aW9uIl0g
PSAiTG9nIEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQ2FudmFzIENvbnRleHQi
XSA9ICJMb2cgQ2FudmFzIENvbnRleHQiOwogLyogTG9nIChwcmludCkgRE9NIGVsZW1lbnQgdG8g
Q29uc29sZSAqLwogbG9jYWxpemVkU3RyaW5nc1siTG9nIEVsZW1lbnQiXSA9ICJMb2cgRWxlbWVu
dCI7CkBAIC03NjgsNiArNzkwLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm8gRW5hYmxlZCBBdWRp
dHMiXSA9ICJObyBFbmFibGVkIEF1ZGl0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFbnRyaWVz
Il0gPSAiTm8gRW50cmllcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFdmVudCBMaXN0ZW5lcnMi
XSA9ICJObyBFdmVudCBMaXN0ZW5lcnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRmlsdGVyIFJl
c3VsdHMiXSA9ICJObyBGaWx0ZXIgUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBLZXlm
cmFtZXMiXSA9ICJObyBLZXlmcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gTGF5ZXIgQXZh
aWxhYmxlIl0gPSAiTm8gTGF5ZXIgQXZhaWxhYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIE92
ZXJyaWRlcyJdID0gIk5vIE92ZXJyaWRlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBQYXJhbWV0
ZXJzIl0gPSAiTm8gUGFyYW1ldGVycyI7CkBAIC03NzksNiArODAyLDcgQEAgbG9jYWxpemVkU3Ry
aW5nc1siTm8gUmVzcG9uc2UgSGVhZGVycyJdID0gIk5vIFJlc3BvbnNlIEhlYWRlcnMiOwogbG9j
YWxpemVkU3RyaW5nc1siTm8gUmVzdWx0Il0gPSAiTm8gUmVzdWx0IjsKIGxvY2FsaXplZFN0cmlu
Z3NbIk5vIFJlc3VsdHMgRm91bmQiXSA9ICJObyBSZXN1bHRzIEZvdW5kIjsKIGxvY2FsaXplZFN0
cmluZ3NbIk5vIFNlYXJjaCBSZXN1bHRzIl0gPSAiTm8gU2VhcmNoIFJlc3VsdHMiOworbG9jYWxp
emVkU3RyaW5nc1siTm8gU3R5bGVzIl0gPSAiTm8gU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vIFdhdGNoIEV4cHJlc3Npb25zIl0gPSAiTm8gV2F0Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxp
emVkU3RyaW5nc1siTm8gYXVkaXQgc2VsZWN0ZWQiXSA9ICJObyBhdWRpdCBzZWxlY3RlZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iXSA9
ICJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iOwpAQCAtNzk4LDYgKzgyMiw3
IEBAIGxvY2FsaXplZFN0cmluZ3NbIk5vZGUiXSA9ICJOb2RlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vZGUgUmVtb3ZlZCJdID0gIk5vZGUgUmVtb3ZlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb2Rl
cyJdID0gIk5vZGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vbmUiXSA9ICJOb25lIjsKK2xvY2Fs
aXplZFN0cmluZ3NbIk5vcm1hbCJdID0gIk5vcm1hbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb3Qg
Zm91bmQiXSA9ICJOb3QgZm91bmQiOwogbG9jYWxpemVkU3RyaW5nc1siT2JqZWN0IEdyYXBoIl0g
PSAiT2JqZWN0IEdyYXBoIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVjdCBTdG9yZSJdID0gIk9i
amVjdCBTdG9yZSI7CkBAIC05MTEsNyArOTM2LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVkaXJl
Y3RzIl0gPSAiUmVkaXJlY3RzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZmVyZW5jZSBJc3N1ZSJd
ID0gIlJlZmVyZW5jZSBJc3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZsZWN0aW9uIl0gPSAi
UmVmbGVjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIl0gPSAiUmVmcmVzaCI7Ci1s
b2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIGFsbCJdID0gIlJlZnJlc2ggYWxsIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiXSA9ICJSZWZyZXNoIHdhdGNoIGV4
cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVu
dGlyZXR5LiJdID0gIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJSZWd1bGFyIEV4cHJlc3Npb24iXSA9ICJSZWd1bGFyIEV4cHJlc3Npb24iOwpA
QCAtOTc5LDYgKzEwMDMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gTmV0d29yayBU
YWIiXSA9ICJSZXZlYWwgaW4gTmV0d29yayBUYWIiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFs
IGluIE9yaWdpbmFsIFJlc291cmNlIl0gPSAiUmV2ZWFsIGluIE9yaWdpbmFsIFJlc291cmNlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBTb3VyY2VzIFRhYiJdID0gIlJldmVhbCBpbiBT
b3VyY2VzIFRhYiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gU3R5bGUgU2hlZXQiXSA9
ICJSZXZlYWwgaW4gU3R5bGUgU2hlZXQiOworbG9jYWxpemVkU3RyaW5nc1siUmV2ZXJzZSJdID0g
IlJldmVyc2UiOwogbG9jYWxpemVkU3RyaW5nc1siUm9sZSJdID0gIlJvbGUiOwogbG9jYWxpemVk
U3RyaW5nc1siUnVuICVkIl0gPSAiUnVuICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJ1biBjb25z
b2xlIGNvbW1hbmRzIGFzIGlmIGluc2lkZSBhIHVzZXIgZ2VzdHVyZSJdID0gIlJ1biBjb25zb2xl
IGNvbW1hbmRzIGFzIGlmIGluc2lkZSBhIHVzZXIgZ2VzdHVyZSI7CkBAIC0xMDIxLDYgKzEwNDYs
NyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTZWN1cml0eSBPcmlnaW4iXSA9ICJTZWN1cml0eSBPcmln
aW4iOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90Il0gPSAiU2Vs
ZWN0IGJhc2VsaW5lIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBjb21wYXJp
c29uIHNuYXBzaG90Il0gPSAiU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiOwogbG9jYWxpemVk
U3RyaW5nc1siU2VsZWN0ZWQiXSA9ICJTZWxlY3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTZWxl
Y3RlZCBBbmltYXRpb24iXSA9ICJTZWxlY3RlZCBBbmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5n
c1siU2VsZWN0ZWQgQ2FudmFzIENvbnRleHQiXSA9ICJTZWxlY3RlZCBDYW52YXMgQ29udGV4dCI7
CiAvKiBTZWxlY3RlZCBET00gZWxlbWVudCAqLwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQg
RWxlbWVudCJdID0gIlNlbGVjdGVkIEVsZW1lbnQiOwpAQCAtMTEwNCw2ICsxMTMwLDggQEAgbG9j
YWxpemVkU3RyaW5nc1siU3BlbGxpbmciXSA9ICJTcGVsbGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJTdGFnaW5nOiJdID0gIlN0YWdpbmc6IjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YWxsZWQiXSA9
ICJTdGFsbGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0Il0gPSAiU3RhcnQiOworbG9jYWxp
emVkU3RyaW5nc1siU3RhcnQgRGVsYXkiXSA9ICJTdGFydCBEZWxheSI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJTdGFydCBEZWxheSAlcyJdID0gIlN0YXJ0IERlbGF5ICVzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlN0YXJ0IFRpbWUiXSA9ICJTdGFydCBUaW1lIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0
IGVsZW1lbnQgc2VsZWN0aW9uICglcykiXSA9ICJTdGFydCBlbGVtZW50IHNlbGVjdGlvbiAoJXMp
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0IHJlY29yZGluZyAoJXMpXG5DcmVhdGUgbmV3IHJl
Y29yZGluZyAoJXMpIl0gPSAiU3RhcnQgcmVjb3JkaW5nICglcylcbkNyZWF0ZSBuZXcgcmVjb3Jk
aW5nICglcykiOwpAQCAtMTE3Niw2ICsxMjA0LDggQEAgbG9jYWxpemVkU3RyaW5nc1siVGhlc2Ug
dGVzdHMgc2VydmUgYXMgYSBkZW1vbnN0cmF0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFuZAog
bG9jYWxpemVkU3RyaW5nc1siVGhpcyBSZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJj
ZSBPdmVycmlkZSJdID0gIlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2Ug
T3ZlcnJpZGUiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3Vh
bCBjaGFuZ2UiXSA9ICJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNp
YmxlIGFyZWEiXSA9ICJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNp
YmxlIGFyZWEiOworbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0
aW9uLiJdID0gIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iOworbG9jYWxpemVkU3Ry
aW5nc1siVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4iXSA9ICJUaGlzIGFuaW1hdGlv
biBoYXMgbm8ga2V5ZnJhbWVzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGF1ZGl0IGlzIG5v
dCBzdXBwb3J0ZWQiXSA9ICJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiOwogbG9jYWxpemVk
U3RyaW5nc1siVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMg
c2hvd24uIl0gPSAiVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEg
aXMgc2hvd24uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cg
ZXJyb3JzIGFyZSBzaG93bi4gVGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVj
dXRpb24gZXJyb3JzIHdpbGwgYXBwZWFyIGluIHRoZSBzYW1lIHdheS4iXSA9ICJUaGlzIGlzIGFu
IGV4YW1wbGUgb2YgaG93IGVycm9ycyBhcmUgc2hvd24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1h
bnVhbGx5LCBidXQgZXhlY3V0aW9uIGVycm9ycyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXku
IjsKQEAgLTEyODgsMTIgKzEzMTgsMTcgQEAgbG9jYWxpemVkU3RyaW5nc1siVmlldyBTaGFkZXIi
XSA9ICJWaWV3IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3cG9ydCJdID0gIlZpZXdw
b3J0IjsKIGxvY2FsaXplZFN0cmluZ3NbIlZpc2libGUiXSA9ICJWaXNpYmxlIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIldhaXRpbmciXSA9ICJXYWl0aW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRp
bmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0
aW9ucyBjcmVhdGVkIGJ5IENTUy4iOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5p
bWF0aW9ucyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9u
cyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9y
IGNhbnZhcyBjb250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIl0gPSAiV2FpdGluZyBm
b3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iOwogbG9jYWxpemVk
U3RyaW5nc1siV2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2Il0gPSAiV2FpdGluZyBmb3IgZnJhbWVz
XHUyMDI2IjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0
ZWQgYnkgQ1NTLiJdID0gIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXJuaW5nOiAiXSA9ICJXYXJuaW5nOiAiOwogbG9jYWxpemVk
U3RyaW5nc1siV2FybmluZ3MiXSA9ICJXYXJuaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRj
aCBFeHByZXNzaW9ucyJdID0gIldhdGNoIEV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IldhdGVyZmFsbCJdID0gIldhdGVyZmFsbCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0
aW9uIl0gPSAiV2ViIEFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9u
cyJdID0gIldlYiBBbmltYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNwZWN0b3Ii
XSA9ICJXZWIgSW5zcGVjdG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBQYWdlIl0gPSAiV2Vi
IFBhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siV2ViS2l0IFRocmVhZHMiXSA9ICJXZWJLaXQgVGhy
ZWFkcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01h
aW4uanMKaW5kZXggYTgyY2NmODM0YmQ0Y2NlMGQ3MWJiZTM3YWU5NjU2ZDZmYmM5OTA2YS4uZTgw
Nzg4NzI5Y2RmNDA0NjMxMjkxZmMyZTMxZjgxYzJmNDkxZWU1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTIzLDYgKzEyMyw3
IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5l
dyBXSS5Xb3JrZXJNYW5hZ2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcg
V0kuRE9NRGVidWdnZXJNYW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJ
LkNhbnZhc01hbmFnZXIsCisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5p
bWF0aW9uTWFuYWdlciwKICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAg
LTE0Nyw3ICsxNDgsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJj
ZXNUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5UaW1lbGluZVRhYkNvbnRlbnRWaWV3
LlR5cGUsCiAgICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50Vmlldy5UeXBlLAotICAgICAgICBX
SS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBlLAorICAgICAgICBXSS5HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAg
ICAgV0kuQ29uc29sZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgXSk7CkBAIC0xNzMsNiArMTc0
LDEzIEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIFdJLl9zZWxlY3RlZFRh
YkluZGV4U2V0dGluZy52YWx1ZSA9IHNvdXJjZXNJbmRleDsKICAgICB9CiAKKyAgICAvLyBDYW52
YXMgVGFiIHdhcyByZW5hbWVkIHRvIEdyYXBoaWNzIFRhYi4KKyAgICBsZXQgY2FudmFzSW5kZXgg
PSBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoImNhbnZhcyIpOworICAgIGlmIChj
YW52YXNJbmRleCA+PSAwKSB7CisgICAgICAgIFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuc3Bs
aWNlKGNhbnZhc0luZGV4LCAxLCBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUpOworICAg
ICAgICBXSS5fb3BlblRhYnNTZXR0aW5nLnNhdmUoKTsKKyAgICB9CisKICAgICAvLyBTdGF0ZS4K
ICAgICBXSS5wcmludFN0eWxlc0VuYWJsZWQgPSBmYWxzZTsKICAgICBXSS5zZXRab29tRmFjdG9y
KFdJLnNldHRpbmdzLnpvb21GYWN0b3IudmFsdWUpOwpAQCAtNDY1LDcgKzQ3Myw3IEBAIFdJLmNv
bnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50Vmll
dywKICAgICAgICAgV0kuVGltZWxpbmVUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuU3RvcmFn
ZVRhYkNvbnRlbnRWaWV3LAotICAgICAgICBXSS5DYW52YXNUYWJDb250ZW50VmlldywKKyAgICAg
ICAgV0kuR3JhcGhpY3NUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuTGF5ZXJzVGFiQ29udGVu
dFZpZXcsCiAgICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkNvbnNv
bGVUYWJDb250ZW50VmlldywKQEAgLTEyMjIsMTEgKzEyMzAsOCBAQCBXSS50YWJDb250ZW50Vmll
d0NsYXNzRm9yUmVwcmVzZW50ZWRPYmplY3QgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkK
ICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNl
UmVzdWx0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBS
ZXN1bHQpCiAgICAgICAgIHJldHVybiBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3OwogCi0gICAgaWYg
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAg
ICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3OwotCi0gICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFz
VGFiQ29udGVudFZpZXc7CisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
Q2FudmFzIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSB8
fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXc7CiAKICAgICByZXR1cm4gbnVsbDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25N
YW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvQW5pbWF0aW9uTWFuYWdlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQ2NmE5YTJjMmQyMzJmOGQwYjMz
NDVkNTlhMGNkNGQyNjc3Y2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcwpAQCAtMCww
ICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIEZJWE1FOiBBbmltYXRpb25NYW5hZ2VyIGxhY2tz
IGFkdmFuY2VkIG11bHRpLXRhcmdldCBzdXBwb3J0LiAoQW5pbWF0aW9ucyBwZXItdGFyZ2V0KQor
CitXSS5BbmltYXRpb25NYW5hZ2VyID0gY2xhc3MgQW5pbWF0aW9uTWFuYWdlcgoreworICAgIGNv
bnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbiA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9u
OworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgV0ku
RnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFu
Z2UsIHRoaXMuX2hhbmRsZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CisgICAgfQorCisg
ICAgLy8gQWdlbnQKKworICAgIGdldCBkb21haW5zKCkgeyByZXR1cm4gWyJBbmltYXRpb24iXTsg
fQorCisgICAgYWN0aXZhdGVFeHRyYURvbWFpbihkb21haW4pCisgICAgeworICAgICAgICBjb25z
b2xlLmFzc2VydChkb21haW4gPT09ICJBbmltYXRpb24iKTsKKworICAgICAgICBmb3IgKGxldCB0
YXJnZXQgb2YgV0kudGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0
YXJnZXQpOworICAgIH0KKworICAgIC8vIFRhcmdldAorCisgICAgaW5pdGlhbGl6ZVRhcmdldCh0
YXJnZXQpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24u
ZW5hYmxlIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQo
IkFuaW1hdGlvbi5lbmFibGUiKSkKKyAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5l
bmFibGUoKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25Db2xs
ZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbjsgfQorCisgICAgZ2V0
IHN1cHBvcnRlZCgpCisgICAgeworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6
IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIHJldHVybiBJbnNw
ZWN0b3JCYWNrZW5kLmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5lbmFibGUiKTsKKyAgICB9CisKKyAg
ICBlbmFibGUoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2VuYWJsZWQp
OworCisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSB0cnVlOworCisgICAgICAgIGZvciAobGV0IHRh
cmdldCBvZiBXSS50YXJnZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFyZ2V0KHRh
cmdldCk7CisgICAgfQorCisgICAgZGlzYWJsZSgpCisgICAgeworICAgICAgICBjb25zb2xlLmFz
c2VydCh0aGlzLl9lbmFibGVkKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFy
Z2V0cykgeworICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRp
b24uZGlzYWJsZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgICAgIGlmICh0YXJnZXQuaGFz
Q29tbWFuZCgiQW5pbWF0aW9uLmRpc2FibGUiKSkKKyAgICAgICAgICAgICAgICB0YXJnZXQuQW5p
bWF0aW9uQWdlbnQuZGlzYWJsZSgpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fYW5pbWF0
aW9uQ29sbGVjdGlvbi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5jbGVh
cigpOworCisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBB
bmltYXRpb25PYnNlcnZlcgorCisgICAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25QYXlsb2Fk
KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2FuaW1hdGlvbklkTWFwLmhh
cyhhbmltYXRpb25QYXlsb2FkLmFuaW1hdGlvbklkKSwgYEFuaW1hdGlvbiBhbHJlYWR5IGV4aXN0
cyB3aXRoIGlkICR7YW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZH0uYCk7CisKKyAgICAgICAg
bGV0IGFuaW1hdGlvbiA9IFdJLkFuaW1hdGlvbi5mcm9tUGF5bG9hZChhbmltYXRpb25QYXlsb2Fk
KTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5hZGQoYW5pbWF0aW9uKTsKKyAg
ICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuc2V0KGFuaW1hdGlvbi5hbmltYXRpb25JZCwgYW5p
bWF0aW9uKTsKKyAgICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3Qp
CisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAuZ2V0
KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAg
ICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0
aW9uLmVmZmVjdENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKGFu
aW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5f
YW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
YW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgYW5pbWF0aW9uLnRhcmdldENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAg
ICBhbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBsZXQgYW5p
bWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAudGFrZShhbmltYXRpb25JZCk7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24ucmVt
b3ZlKGFuaW1hdGlvbik7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZU1h
aW5SZXNvdXJjZURpZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIFdJLkZyYW1lKTsKKyAgICAgICAgaWYgKCFldmVudC50
YXJnZXQuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBXSS5B
bmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsKKworICAgICAgICB0aGlz
Ll9hbmltYXRpb25Db2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklk
TWFwLmNsZWFyKCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCmlu
ZGV4IDEzNWMxNjYxM2FlODAwOWMxNmUyNzIyZjcyNTg1Yzk3ZTY5ZGQxMTQuLmRiYjhlNmZlNDk3
MzFkNTIzMWUyODNmNjlmYTI5MGYzN2I2YmJmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFu
YWdlci5qcwpAQCAtMzIsNiArMzIsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFz
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRo
aXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbiA9IG5l
dyBXSS5DYW52YXNDb2xsZWN0aW9uOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFw
ID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAgPSBu
ZXcgTWFwOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MgPSBuZXcgU2V0OwpAQCAtNzYs
MTMgKzc3LDkgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKIAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IGNhbnZhc0NvbGxlY3Rpb24o
KSB7IHJldHVybiB0aGlzLl9jYW52YXNDb2xsZWN0aW9uOyB9CiAgICAgZ2V0IHNhdmVkUmVjb3Jk
aW5ncygpIHsgcmV0dXJuIHRoaXMuX3NhdmVkUmVjb3JkaW5nczsgfQogCi0gICAgZ2V0IGNhbnZh
c2VzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2NhbnZhc0lkZW50
aWZpZXJNYXAudmFsdWVzKCkpOwotICAgIH0KLQogICAgIGdldCBzaGFkZXJQcm9ncmFtcygpCiAg
ICAgewogICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRp
Zmllck1hcC52YWx1ZXMoKSk7CkBAIC0xMzMsNiArMTMwLDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9
IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICB0
YXJnZXQuQ2FudmFzQWdlbnQuZGlzYWJsZSgpOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5f
Y2FudmFzQ29sbGVjdGlvbi5jbGVhcigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVy
TWFwLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNs
ZWFyKCk7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncy5jbGVhcigpOwpAQCAtMTYxLDkg
KzE1OSw4IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9jYW52YXNJZGVudGlmaWVy
TWFwLmhhcyhjYW52YXNQYXlsb2FkLmNhbnZhc0lkKSwgYENhbnZhcyBhbHJlYWR5IGV4aXN0cyB3
aXRoIGlkICR7Y2FudmFzUGF5bG9hZC5jYW52YXNJZH0uYCk7CiAKICAgICAgICAgbGV0IGNhbnZh
cyA9IFdJLkNhbnZhcy5mcm9tUGF5bG9hZChjYW52YXNQYXlsb2FkKTsKKyAgICAgICAgdGhpcy5f
Y2FudmFzQ29sbGVjdGlvbi5hZGQoY2FudmFzKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRp
Zmllck1hcC5zZXQoY2FudmFzLmlkZW50aWZpZXIsIGNhbnZhcyk7Ci0KLSAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRl
ZCwge2NhbnZhc30pOwogICAgIH0KIAogICAgIGNhbnZhc1JlbW92ZWQoY2FudmFzSWRlbnRpZmll
cikKQEAgLTE3Myw3ICsxNzAsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAg
IHRoaXMuX3NhdmVSZWNvcmRpbmdzKGNhbnZhcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzQ29s
bGVjdGlvbi5yZW1vdmUoY2FudmFzKTsKKworICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNh
bnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbikKKyAgICAgICAgICAgIHRoaXMuX3NoYWRlclBy
b2dyYW1JZGVudGlmaWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOworCisgICAgICAg
IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5jbGVhcigpOwogICAgIH0KIAogICAgIGNh
bnZhc01lbW9yeUNoYW5nZWQoY2FudmFzSWRlbnRpZmllciwgbWVtb3J5Q29zdCkKQEAgLTI3NSwy
MSArMjc5LDE0IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVu
ZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZh
cykKKyAgICBfc2F2ZVJlY29yZGluZ3MoY2FudmFzKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQg
cHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24pCi0gICAgICAgICAgICB0
aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5kZWxldGUocHJvZ3JhbS5pZGVudGlmaWVy
KTsKLQotICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIoKTsKLQog
ICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24p
IHsKICAgICAgICAgICAgIHJlY29yZGluZy5zb3VyY2UgPSBudWxsOwogICAgICAgICAgICAgcmVj
b3JkaW5nLmNyZWF0ZURpc3BsYXlOYW1lKHJlY29yZGluZy5kaXNwbGF5TmFtZSk7CiAgICAgICAg
ICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MuYWRkKHJlY29yZGluZyk7CiAgICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29y
ZGluZ1NhdmVkLCB7cmVjb3JkaW5nfSk7CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQs
IHtjYW52YXN9KTsKICAgICB9CiAKICAgICBfbWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQpA
QCAtMzAxLDE1ICsyOTgsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFn
ZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgV0kuQ2FudmFzLnJlc2V0VW5pcXVlRGlzcGxh
eU5hbWVOdW1iZXJzKCk7CiAKICAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZh
c0lkZW50aWZpZXJNYXAudmFsdWVzKCkpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMo
Y2FudmFzKTsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVSZWNvcmRpbmdzKGNhbnZhcyk7CiAKLSAg
ICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAgICAgICAg
dGhpcy5fY2FudmFzQ29sbGVjdGlvbi5jbGVhcigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVu
dGlmaWVyTWFwLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVy
TWFwLmNsZWFyKCk7CiAgICAgfQogfTsKIAogV0kuQ2FudmFzTWFuYWdlci5FdmVudCA9IHsKLSAg
ICBDYW52YXNBZGRlZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtYWRkZWQiLAotICAgIENh
bnZhc1JlbW92ZWQ6ICJjYW52YXMtbWFuYWdlci1jYW52YXMtd2FzLXJlbW92ZWQiLAogICAgIFJl
Y29yZGluZ1NhdmVkOiAiY2FudmFzLW1hbmFnZXItcmVjb3JkaW5nLXNhdmVkIiwKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9E
T01NYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvRE9NTWFuYWdlci5qcwppbmRleCAxYThkZjY4YmJhZGQ4ZGU4YmZmYjM4MDc5NTI2OTI4
N2EzYTMzMjQyLi43MTg1NTU4YWQzZTBkOTc5YmIwMDFkYjhlMTEwM2RiODJhYTllMDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9E
T01NYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKQEAgLTMyMyw3ICszMjMsNyBAQCBXSS5ET01NYW5hZ2Vy
ID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgbm9kZUZvcklkKG5v
ZGVJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdOwor
ICAgICAgICByZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXSB8fCBudWxsOwogICAgIH0K
IAogICAgIF9kb2N1bWVudFVwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2Vy
LmpzCmluZGV4IDc2MzNkZTFiYWUwZjQxM2ZlMTJjZDFjMzYzMzg0YWVmM2ZkODQ2NTkuLjcyOTY5
NmYwNDFjMTYyZmY5N2NmYjA5MjQ5N2JiZDE1YWJmOWZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9U
aW1lbGluZU1hbmFnZXIuanMKQEAgLTc4MSw3ICs3ODEsNyBAQCBXSS5UaW1lbGluZU1hbmFnZXIg
PSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0ku
ZG9tTWFuYWdlci5ub2RlRm9ySWQoZXZlbnQubm9kZUlkKSB8fCBudWxsOworICAgICAgICAgICAg
bGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChldmVudC5ub2RlSWQpOwogICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoZG9tTm9kZSk7CiAKICAgICAgICAgICAgIHJlY29yZCA9
IG5ldyBXSS5NZWRpYVRpbWVsaW5lUmVjb3JkKGV2ZW50VHlwZSwgZG9tTm9kZSwgZGV0YWlscyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
Q2FudmFzLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9D
YW52YXMuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmQ2NTdkOTMyNmFhYTBj
ZTY0ZjZkN2VmMDMxZGY4MTZhZjJjZmU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9DYW52YXMuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+
Ci0gICAgPHJlY3QgeD0iMS41IiB5PSIyLjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0i
bm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KLSAgICA8cG9seWdvbiBwb2ludHM9IjExIDgg
OSAxMSA2IDcgMyAxMSAzIDEyIDEzIDEyIDEzIDExIDExIDgiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5z
dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGJkNjU3ZDkzMjZhYWEwY2U2NGY2ZDdlZjAzMWRmODE2YWYyY2ZlOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9HcmFwaGljcy5zdmcKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJl
Y3QgeD0iMS41IiB5PSIyLjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ry
b2tlPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcg
MyAxMSAzIDEyIDEzIDEyIDEzIDExIDExIDgiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IGM4MjZkNTFmOTE3N2VkZTRkOWI5
NTZiOTdjNTFkNDk4MDYwZWU3MGMuLjQ1ZTIxY2FlNWVkNDJmNThkOGY0Y2FiZjJhMzQzOGI2NTdl
MTcyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01h
aW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0
bWwKQEAgLTMwLDYgKzMwLDkgQEAKIAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
RXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+CiAKKyAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3Mi
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29udGVu
dFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFy
UGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0
VGVzdENhc2VDb250ZW50Vmlldy5jc3MiPgpAQCAtNTYsNyArNTksNiBAQAogICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbC5jc3Mi
PgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzT3ZlcnZpZXdD
b250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
Q2FudmFzU2lkZWJhclBhbmVsLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQ2hhbmdlc0RldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoYXJ0RGV0YWlsc1NlY3Rpb25Sb3cu
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoZWNrYm94TmF2
aWdhdGlvbkl0ZW0uY3NzIj4KQEAgLTExMyw2ICsxMTUsOCBAQAogICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iVmlld3MvR29Ub0xpbmVEaWFsb2cuY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYWRpZW50RWRpdG9yLmNzcyI+CiAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFkaWVudFNsaWRlci5jc3MiPgorICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFwaGlj
c1RhYkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguY3NzIj4KICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmll
dy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcFNuYXBz
aG90SW5zdGFuY2VzQ29udGVudFZpZXcuY3NzIj4KQEAgLTM0OCw2ICszNTIsNyBAQAogICAgIDxz
Y3JpcHQgc3JjPSJQcm90b2NvbC9UaW1lbGluZU9ic2VydmVyLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iUHJvdG9jb2wvV29ya2VyT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogCisgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CkBAIC0zNjEsNiArMzY2LDggQEAKICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9Mb2NhbFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0FuaW1hdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9B
bmltYXRpb25Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0FwcGxpY2F0aW9uQ2FjaGVGcmFtZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQmFja0ZvcndhcmRFbnRyeS5qcyI+PC9zY3JpcHQ+CkBAIC0zODAsNyArMzg3
LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+PC9zY3JpcHQ+CkBAIC01
NjYsOSArNTcyLDkgQEAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU3R5bGVEZXRhaWxzUGFuZWwu
anMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0F1ZGl0VGFiQ29udGVudFZp
ZXcuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9DYW52YXNUYWJDb250ZW50
Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NvbnNvbGVUYWJDb250
ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0VsZW1lbnRzVGFi
Q29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGlj
c1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5
ZXJzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9S
ZXNvdXJjZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
U2NyaXB0VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtNTk0LDYgKzYwMCw5IEBACiAKICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FjdGl2YXRlQnV0dG9uVG9vbGJhckl0ZW0u
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRp
b25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9BcHBsaWNhdGlvbkNhY2hlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1l
VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtNjkyLDYgKzcwMSw3IEBACiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0dvVG9MaW5lRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iVmlld3MvR3JhZGllbnRFZGl0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9HcmFkaWVudFNsaWRlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdz
L0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3Jp
ZE5vZGVQYXRoQ29tcG9uZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
SGVhcEFsbG9jYXRpb25zVGltZWxpbmVPdmVydmlld0dyYXBoLmpzIj48L3NjcmlwdD4KQEAgLTg1
Niw2ICs4NjYsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Bbm5vdGF0b3IuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yRWRpdGlu
Z0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L0FuaW1hdGlvbk1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9s
bGVycy9BdWRpdE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9s
bGVycy9BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNvbnRyb2xsZXJzL0Jhc2ljQmxvY2tBbm5vdGF0b3IuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlv
bi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRp
b24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2M0MDUzNWFjNzBjNzE2YTMxNzAzNjBiNmFjYWIzZTM3MDc2YjBh
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9BbmltYXRpb24uanMKQEAgLTAsMCArMSwyNjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5B
bmltYXRpb24gPSBjbGFzcyBBbmltYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKK3sKKyAgICBjb25z
dHJ1Y3RvcihhbmltYXRpb25JZCwge2Nzc0FuaW1hdGlvbk5hbWUsIGNzc1RyYW5zaXRpb25Qcm9w
ZXJ0eSwgZWZmZWN0LCBiYWNrdHJhY2V9ID0ge30pCisgICAgeworICAgICAgICBzdXBlcigpOwor
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoKCFjc3NBbmltYXRpb25OYW1lICYmICFjc3NUcmFuc2l0aW9uUHJvcGVydHkpIHx8ICEh
Y3NzQW5pbWF0aW9uTmFtZSAhPT0gISFjc3NUcmFuc2l0aW9uUHJvcGVydHkpOworCisgICAgICAg
IHRoaXMuX2FuaW1hdGlvbklkID0gYW5pbWF0aW9uSWQ7CisKKyAgICAgICAgdGhpcy5fY3NzQW5p
bWF0aW9uTmFtZSA9IGNzc0FuaW1hdGlvbk5hbWUgfHwgbnVsbDsKKyAgICAgICAgdGhpcy5fY3Nz
VHJhbnNpdGlvblByb3BlcnR5ID0gY3NzVHJhbnNpdGlvblByb3BlcnR5IHx8IG51bGw7CisgICAg
ICAgIHRoaXMuX3VwZGF0ZUVmZmVjdChlZmZlY3QpOworICAgICAgICB0aGlzLl9iYWNrdHJhY2Ug
PSBiYWNrdHJhY2UgfHwgW107CisKKyAgICAgICAgdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlID0g
bnVsbDsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBmcm9tUGF5bG9hZChw
YXlsb2FkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb24ocGF5bG9hZC5h
bmltYXRpb25JZCwgeworICAgICAgICAgICAgY3NzQW5pbWF0aW9uTmFtZTogcGF5bG9hZC5jc3NB
bmltYXRpb25OYW1lLAorICAgICAgICAgICAgY3NzVHJhbnNpdGlvblByb3BlcnR5OiBwYXlsb2Fk
LmNzc1RyYW5zaXRpb25Qcm9wZXJ0eSwKKyAgICAgICAgICAgIGVmZmVjdDogcGF5bG9hZC5lZmZl
Y3QsCisgICAgICAgICAgICBiYWNrdHJhY2U6IEFycmF5LmlzQXJyYXkocGF5bG9hZC5iYWNrdHJh
Y2UpID8gcGF5bG9hZC5iYWNrdHJhY2UubWFwKChpdGVtKSA9PiBXSS5DYWxsRnJhbWUuZnJvbVBh
eWxvYWQoV0kubWFpblRhcmdldCwgaXRlbSkpIDogW10sCisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUoYW5pbWF0aW9uVHlwZSwgcGx1
cmFsKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChhbmltYXRpb25UeXBlKSB7CisgICAgICAgIGNh
c2UgV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBs
dXJhbCA/IFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIldlYiBB
bmltYXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb246
CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25z
IikgOiBXSS5VSVN0cmluZygiQ1NTIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5UeXBlLkNTU1RyYW5zaXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0ku
VUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9u
Iik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24g
YW5pbWF0aW9uIHR5cGUiLCBhbmltYXRpb25UeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7Cisg
ICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24ocGxheWJh
Y2tEaXJlY3Rpb24pCisgICAgeworICAgICAgICBzd2l0Y2ggKHBsYXliYWNrRGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLk5vcm1hbDoKKyAg
ICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiTm9ybWFsIik7CisgICAgICAgIGNhc2UgV0ku
QW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLlJldmVyc2U6CisgICAgICAgICAgICByZXR1cm4g
V0kuVUlTdHJpbmcoIlJldmVyc2UiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJh
Y2tEaXJlY3Rpb24uQWx0ZXJuYXRlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJB
bHRlcm5hdGUiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24u
QWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQWx0ZXJu
YXRlIFJldmVyc2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNl
LCAiVW5rbm93biBwbGF5YmFjayBkaXJlY3Rpb24iLCBwbGF5YmFja0RpcmVjdGlvbik7CisgICAg
ICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckZpbGxN
b2RlKGZpbGxNb2RlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWxsTW9kZSkgeworICAgICAg
ICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Ob25lOgorICAgICAgICAgICAgcmV0dXJuIFdJ
LlVJU3RyaW5nKCJOb25lIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkZv
cndhcmRzOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJGb3J3YXJkcyIpOworICAg
ICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5CYWNrd2FyZHM6CisgICAgICAgICAgICBy
ZXR1cm4gV0kuVUlTdHJpbmcoIkJhY2t3YXJkcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlv
bi5GaWxsTW9kZS5Cb3RoOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCb3RoIik7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkF1dG86CisgICAgICAgICAgICBy
ZXR1cm4gV0kuVUlTdHJpbmcoIkF1dG8iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGZhbHNlLCAiVW5rbm93biBmaWxsIG1vZGUiLCBmaWxsTW9kZSk7CisgICAgICAgIHJl
dHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVt
YmVycygpCisgICAgeworICAgICAgICBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFt
ZU51bWJlciA9IDE7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9u
SWQoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25JZDsgfQorICAgIGdldCBiYWNrdHJhY2UoKSB7
IHJldHVybiB0aGlzLl9iYWNrdHJhY2U7IH0KKworICAgIGdldCBhbmltYXRpb25UeXBlKCkKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0
dXJuIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjsKKyAgICAgICAgaWYgKHRoaXMuX2Nz
c1RyYW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlw
ZS5DU1NUcmFuc2l0aW9uOworICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5p
bWF0aW9uOworICAgIH0KKworICAgIGdldCBzdGFydERlbGF5KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAic3RhcnREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnN0YXJ0RGVs
YXkgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGVuZERlbGF5KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAiZW5kRGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5lbmREZWxheSA6
IE5hTjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9ucygpCisgICAgeworICAgICAgICByZXR1
cm4gIml0ZXJhdGlvbnMiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25z
IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25TdGFydCgpCisgICAgeworICAgICAg
ICByZXR1cm4gIml0ZXJhdGlvblN0YXJ0IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3Qu
aXRlcmF0aW9uU3RhcnQgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9u
KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uRHVyYXRpb24iIGluIHRoaXMuX2Vm
ZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25EdXJhdGlvbiA6IE5hTjsKKyAgICB9CisKKyAg
ICBnZXQgdGltaW5nRnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJ0aW1pbmdGdW5j
dGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uIDogbnVs
bDsKKyAgICB9CisKKyAgICBnZXQgcGxheWJhY2tEaXJlY3Rpb24oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuICJwbGF5YmFja0RpcmVjdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0
LnBsYXliYWNrRGlyZWN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQgZmlsbE1vZGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuICJmaWxsTW9kZSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5f
ZWZmZWN0LmZpbGxNb2RlIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQga2V5ZnJhbWVzKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAia2V5ZnJhbWVzIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9l
ZmZlY3Qua2V5ZnJhbWVzIDogW107CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1RyYW5z
aXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NUcmFuc2l0aW9uUHJv
cGVydHk7CisKKyAgICAgICAgaWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcikKKyAg
ICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gV0kuQW5pbWF0aW9uLl9u
ZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIrKzsKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5n
KCJBbmltYXRpb24gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIpOwor
ICAgIH0KKworICAgIHJlcXVlc3ROb2RlKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fcmVx
dWVzdE5vZGVQcm9taXNlKSB7CisgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2Ug
PSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgV0ku
ZG9tTWFuYWdlci5lbnN1cmVEb2N1bWVudCgpOworCisgICAgICAgICAgICAgICAgbGV0IHRhcmdl
dCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworICAgICAgICAgICAgICAgIHRhcmdldC5Bbmlt
YXRpb25BZ2VudC5yZXF1ZXN0Tm9kZSh0aGlzLl9hbmltYXRpb25JZCwgKGVycm9yLCBub2RlSWQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXNvbHZlKG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShXSS5k
b21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0Tm9kZVBy
b21pc2U7CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9uTWFuYWdlcgorCisgICAgZWZmZWN0Q2hh
bmdlZChlZmZlY3QpCisgICAgeworICAgICAgICB0aGlzLl91cGRhdGVFZmZlY3QoZWZmZWN0KTsK
KyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlcXVl
c3ROb2RlUHJvbWlzZSA9IG51bGw7CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpOworICAgIH0KKworICAgIC8v
IFByaXZhdGUKKworICAgIF91cGRhdGVFZmZlY3QoZWZmZWN0KQorICAgIHsKKyAgICAgICAgdGhp
cy5fZWZmZWN0ID0gZWZmZWN0IHx8IHt9OworCisgICAgICAgIGlmICh0aGlzLl9lZmZlY3QudGlt
aW5nRnVuY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24gPSBX
SS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbik7CisK
KyAgICAgICAgaWYgKHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGZvciAo
bGV0IGtleWZyYW1lIG9mIHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoa2V5ZnJhbWUuZWFzaW5nKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZS5lYXNp
bmcgPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKGtleWZyYW1lLmVhc2luZyk7CisKKyAgICAg
ICAgICAgICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpCisgICAgICAgICAgICAgICAgICAgIGtleWZy
YW1lLnN0eWxlID0ga2V5ZnJhbWUuc3R5bGUucmVwbGFjZUFsbCgvO1xzKy9nLCAiO1xuIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCk7CisgICAgfQorfTsKKwor
V0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOworCitXSS5Bbmlt
YXRpb24uVHlwZSA9IHsKKyAgICBXZWJBbmltYXRpb246ICJ3ZWItYW5pbWF0aW9uIiwKKyAgICBD
U1NBbmltYXRpb246ICJjc3MtYW5pbWF0aW9uIiwKKyAgICBDU1NUcmFuc2l0aW9uOiAiY3NzLXRy
YW5zaXRpb24iLAorfTsKKworV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uID0geworICAg
IE5vcm1hbDogIm5vcm1hbCIsCisgICAgUmV2ZXJzZTogInJldmVyc2UiLAorICAgIEFsdGVybmF0
ZTogImFsdGVybmF0ZSIsCisgICAgQWx0ZXJuYXRlUmV2ZXJzZTogImFsdGVybmF0ZS1yZXZlcnNl
IiwKK307CisKK1dJLkFuaW1hdGlvbi5GaWxsTW9kZSA9IHsKKyAgICBOb25lOiAibm9uZSIsCisg
ICAgRm9yd2FyZHM6ICJmb3J3YXJkcyIsCisgICAgQmFja3dhcmRzOiAiYmFja3dhcmRzIiwKKyAg
ICBCb3RoOiAiYm90aCIsCisgICAgQXV0bzogImF1dG8iLAorfTsKKworV0kuQW5pbWF0aW9uLkV2
ZW50ID0geworICAgIEVmZmVjdENoYW5nZWQ6ICJhbmltYXRpb24tZWZmZWN0LWNoYW5nZWQiLAor
ICAgIFRhcmdldENoYW5nZWQ6ICJhbmltYXRpb24tdGFyZ2V0LWNoYW5nZWQiLAorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRp
b25Db2xsZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI3NmFiNDBkNjk5ZDVkZWIy
ZTYwODFmODQ1NWIyMmU0MTM2NzlmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzCkBAIC0w
LDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlvbiA9IGNsYXNz
IEFuaW1hdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBXSS5Db2xsZWN0aW9uCit7CisgICAgY29uc3Ry
dWN0b3IoYW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFhbmlt
YXRpb25UeXBlIHx8IE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFu
aW1hdGlvblR5cGUpKTsKKworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuX2FuaW1h
dGlvblR5cGUgPSBhbmltYXRpb25UeXBlIHx8IG51bGw7CisKKyAgICAgICAgaWYgKCF0aGlzLl9h
bmltYXRpb25UeXBlKQorICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5
cGVNYXAgPSBudWxsOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlv
blR5cGUoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25UeXBlOyB9CisKKyAgICBnZXQgZGlzcGxh
eU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAg
ICAgICAgIGNvbnN0IHBsdXJhbCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0
aW9uLmRpc3BsYXlOYW1lRm9yVHlwZSh0aGlzLl9hbmltYXRpb25UeXBlLCBwbHVyYWwpOworICAg
ICAgICB9CisKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpOwor
ICAgIH0KKworICAgIG9iamVjdElzUmVxdWlyZWRUeXBlKG9iamVjdCkKKyAgICB7CisgICAgICAg
IGlmICghKG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICF0aGlzLl9hbmltYXRpb25UeXBlIHx8IG9iamVj
dC5hbmltYXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlOworICAgIH0KKworICAgIGFu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGFuaW1hdGlvblR5cGUpCisgICAgeworICAgICAgICBj
b25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFdJLkFuaW1hdGlvbi5UeXBlKS5pbmNsdWRlcyhh
bmltYXRpb25UeXBlKSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlv
blR5cGUpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIXRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKQorICAgICAgICAgICAgdGhp
cy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAgPSBuZXcgTWFwOworCisgICAgICAgIGxl
dCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlTWFwLmdldChhbmltYXRpb25UeXBlKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZSkgeworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUg
PSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbihhbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAg
IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnNldChhbmltYXRpb25UeXBlLCBh
bmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisg
ICAgaXRlbUFkZGVkKGl0ZW0pCisgICAgeworICAgICAgICBzdXBlci5pdGVtQWRkZWQoaXRlbSk7
CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBsZXQg
YW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9u
Rm9yVHlwZS5hZGQoaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpdGVtUmVtb3ZlZChp
dGVtKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAg
ICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxl
Y3Rpb25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25D
b2xsZWN0aW9uRm9yVHlwZS5yZW1vdmUoaXRlbSk7CisgICAgICAgIH0KKworICAgICAgICBzdXBl
ci5pdGVtUmVtb3ZlZChpdGVtKTsKKyAgICB9CisKKyAgICBpdGVtc0NsZWFyZWQoaXRlbXMpCisg
ICAgeworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApIHsK
KyAgICAgICAgICAgIGZvciAobGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlIG9mIHRoaXMu
X2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgICAg
IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAg
ICBzdXBlci5pdGVtc0NsZWFyZWQoaXRlbXMpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3Vs
dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRl
c3RDYXNlUmVzdWx0LmpzCmluZGV4IGM5Y2MzOTYyZTgwZmI2NmZlMTVkYTEzNTRlYTI5MjZiZjg0
MWNkY2UuLjMxZDYyN2Q4MTFiZDYzMzJkYzQ4MDg1Zjk3ZGY1MDY0ZDIwMTI3ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RD
YXNlUmVzdWx0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCkBAIC0xNDYsNyArMTQ2LDcgQEAgV0kuQXVkaXRU
ZXN0Q2FzZVJlc3VsdCA9IGNsYXNzIEF1ZGl0VGVzdENhc2VSZXN1bHQgZXh0ZW5kcyBXSS5BdWRp
dFRlc3RSZXN1bHRCYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUucXVl
cnlTZWxlY3Rvcihkb21Ob2RlU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
IGNhdGNoIHsgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kb21NYW5h
Z2VyLm5vZGVGb3JJZChub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q2FudmFzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0Nh
bnZhcy5qcwppbmRleCA2MmJhMjY0MTA1YWFlZGY0YmE1ZTJiZTM3NTVhMmI1ZDM4YmNmYWQzLi44
ZTJiNTJlMmMxZjExYTM2ZDY1ZGZjYTRlYzk1MGY2MDk4NTk2OTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKQEAgLTk3
LDcgKzk3LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEOgogICAgICAgICAgICAg
cmV0dXJuIFdJLlVJU3RyaW5nKCIyRCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5CaXRtYXBSZW5kZXJlcjoKLSAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0
cmluZygiQml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmco
IkJpdG1hcCBSZW5kZXJlciIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTDoKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wiKTsK
ICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgpAQCAtMTA2LDkgKzEw
NiwxMCBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViIEdQVSIpOwogICAgICAgICBj
YXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJNZXRhbDoKICAgICAgICAgICAgIHJldHVybiBX
SS51bmxvY2FsaXplZFN0cmluZygiV2ViTWV0YWwiKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgY2FudmFzIGNvbnRleHQgdHlwZSIsIGNvbnRl
eHRUeXBlKTsKICAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5r
bm93biBjYW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOworICAgICAgICByZXR1cm4g
bnVsbDsKICAgICB9CiAKICAgICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1JlY29yZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9SZWNvcmRpbmcuanMKaW5kZXggMWY4ZGQ3ZWY0NWQ2Mjk3NzhjZDgyODdiZmI4ZDMxYjJhMTA4
OWYzMC4uYjZkZTk1MzU0MjJjOWM2M2FlMWFkMTRlOWRjNDdmZWFjNzY4MDRjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3Jk
aW5nLmpzCkBAIC0xNDgsNiArMTQ4LDIzIEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29yZGlu
ZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gbmV3IFdJLlJlY29yZGluZyhwYXls
b2FkLnZlcnNpb24sIHR5cGUsIHBheWxvYWQuaW5pdGlhbFN0YXRlLCBmcmFtZXMsIHBheWxvYWQu
ZGF0YSk7CiAgICAgfQogCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlwZShy
ZWNvcmRpbmdUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyZWNvcmRpbmdUeXBlKSB7Cisg
ICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQ6CisgICAgICAgICAgICByZXR1cm4g
V0kuVUlTdHJpbmcoIjJEIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzQml0
bWFwUmVuZGVyZXI6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJpdG1hcCBSZW5k
ZXJlciIpOworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMOgorICAgICAg
ICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIpOworICAgICAgICBjYXNl
IFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMMjoKKyAgICAgICAgICAgIHJldHVybiBXSS51bmxv
Y2FsaXplZFN0cmluZygiV2ViR0wyIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFz
c2VydChmYWxzZSwgIlVua25vd24gcmVjb3JkaW5nIHR5cGUiLCByZWNvcmRpbmdUeXBlKTsKKyAg
ICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCiAgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yU3dp
enpsZVR5cGUoc3dpenpsZVR5cGUpCiAgICAgewogICAgICAgICBzd2l0Y2ggKHN3aXp6bGVUeXBl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCmluZGV4IGIxMTk1ZWQwY2EwY2Iw
Y2E4MDY2OGUwZTk4ZGM2NzlkY2FkOTE3YTMuLjdlNTZlOGJiMzljYmEwYzYyODBlYTljZWRkNDVi
ZTU1NDVmMGYxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCkBAIC0yNyw2
ICsyNywyNiBAQCBXSS5BbmltYXRpb25PYnNlcnZlciA9IGNsYXNzIEFuaW1hdGlvbk9ic2VydmVy
IGV4dGVuZHMgSW5zcGVjdG9yQmFja2VuZC5EaXNwYXRjaAogewogICAgIC8vIEV2ZW50cyBkZWZp
bmVkIGJ5IHRoZSAiQW5pbWF0aW9uIiBkb21haW4uCiAKKyAgICBhbmltYXRpb25DcmVhdGVkKGFu
aW1hdGlvbikKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ3Jl
YXRlZChhbmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQs
IGVmZmVjdCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZWZmZWN0Q2hhbmdl
ZChhbmltYXRpb25JZCwgZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKGFuaW1h
dGlvbklkKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci50YXJnZXRDaGFuZ2Vk
KGFuaW1hdGlvbklkKTsKKyAgICB9CisKKyAgICBhbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9u
SWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkRlc3Ryb3ll
ZChhbmltYXRpb25JZCk7CisgICAgfQorCiAgICAgdHJhY2tpbmdTdGFydCh0aW1lc3RhbXApCiAg
ICAgewogICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuYW5pbWF0aW9uVHJhY2tpbmdTdGFydGVk
KHRpbWVzdGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKaW5kZXggZGQwMGFmNThjMTI1MzA1
ODZlMWMyODMwMzJiNzJmZDYyOWZhMzJkOS4uMmNiYTU2NGQ0YTdiNmEzOGMxODllNTczM2QzY2Yz
YzYwZmM1MTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwpAQCAtMTg4LDYgKzE4OCwyNSBA
QCBXSS5SZW1vdGVPYmplY3QgPSBjbGFzcyBSZW1vdGVPYmplY3QKICAgICAgICAgdGFyZ2V0LkNh
bnZhc0FnZW50LnJlc29sdmVDb250ZXh0KGNhbnZhcy5pZGVudGlmaWVyLCBvYmplY3RHcm91cCwg
d3JhcENhbGxiYWNrKTsKICAgICB9CiAKKyAgICBzdGF0aWMgcmVzb2x2ZUFuaW1hdGlvbihhbmlt
YXRpb24sIG9iamVjdEdyb3VwLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIik7CisKKyAgICAgICAgZnVuY3Rpb24g
d3JhcENhbGxiYWNrKGVycm9yLCBvYmplY3QpIHsKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAh
b2JqZWN0KQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdJLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChv
YmplY3QsIFdJLm1haW5UYXJnZXQpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCB0YXJnZXQg
PSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChp
T1MgMTMuMSk6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGRpZCBub3QgZXhpc3QgeWV0Lgor
ICAgICAgICBjb25zb2xlLmFzc2VydCh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLnJlc29s
dmVBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJlc29sdmVB
bmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCwgd3JhcENhbGxiYWNr
KTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0YXJnZXQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmluZGV4IDFkNDQ1YTA0Y2Rl
YmVlY2ZhN2IwY2IwOGVkNmZiYmQ0YmY0NjFlODQuLjBiYTU2MGI5NmMwMjMwNmViNjFiMzJiZGY0
ZWFjODk5MjNkYmYwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0Lmh0bWwKQEAgLTEwOCw2ICsxMDgsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm90b2Nv
bC9Xb3JrZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
Q29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db25zb2xl
TWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0cnVtZW50
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUuanMiPjwv
c2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9TY3Jp
cHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3JpcHQuanMi
Pjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NQVUluc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVVGltZWxpbmUuanMiPjwvc2NyaXB0PgpAQCAtMTM3LDcg
KzE0MCw2IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9k
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0PgpA
QCAtMjM4LDYgKzI0MCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVhcFNuYXBzaG90
UHJveHkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm94aWVzL0hlYXBTbmFwc2hv
dFdvcmtlclByb3h5LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVy
cy9BbmltYXRpb25NYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJv
bGxlcnMvQXVkaXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJv
bGxlcnMvQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250cm9sbGVycy9CcmVha3BvaW50TG9nTWVzc2FnZUxleGVyLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVz
dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcwpp
bmRleCAzYzQzYWU3OGJlMTcyNzcwNzI5YjcwMzJhYmU1NDQ0M2M5NDZhOGJiLi4wMDY0NDdhOTY3
ZTljMjM3ZjYwYzEwMDA4YmI0NjM0NTcyYjdjNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCkBAIC03MCw2ICs3MCw3IEBAIFdJLmxv
YWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3Jr
ZXJNYW5hZ2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRE9NRGVi
dWdnZXJNYW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNhbnZhc01h
bmFnZXIsCisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0aW9uTWFu
YWdlciwKICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAgLTkxLDYgKzky
LDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogV0kuY29udGVudExvYWRlZCA9IGZ1bmN0aW9u
KCkKIHsKICAgICAvLyBUaGluZ3MgdGhhdCB3b3VsZCBub3JtYWxseSBnZXQgY2FsbGVkIGJ5IHRo
ZSBVSSwgdGhhdCB3ZSBzdGlsbCB3YW50IHRvIGRvIGluIHRlc3RzLgorICAgIFdJLmFuaW1hdGlv
bk1hbmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuYXBwbGljYXRpb25DYWNoZU1hbmFnZXIuZW5hYmxl
KCk7CiAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5kYXRhYmFzZU1hbmFn
ZXIuZW5hYmxlKCk7CkBAIC0xODEsNiArMTgzLDcgQEAgV0kudXBkYXRlVmlzaWJpbGl0eVN0YXRl
ID0gKCkgPT4ge307CiAgICAgICAgICAgICBnZXQoKSB7IHJldHVybiBXSS5tYWluVGFyZ2V0Ll9h
Z2VudHNbZG9tYWluTmFtZV07IH0sCiAgICAgICAgIH0pOwogICAgIH0KKyAgICBtYWtlQWdlbnRH
ZXR0ZXIoIkFuaW1hdGlvbiIpOwogICAgIG1ha2VBZ2VudEdldHRlcigiQXVkaXQiKTsKICAgICBt
YWtlQWdlbnRHZXR0ZXIoIkFwcGxpY2F0aW9uQ2FjaGUiKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIo
IkNQVVByb2ZpbGVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcwppbmRleCBkNDQ3Yjg5NTBiOTM5MjFkMGE4NjAx
MzA2OGE4YjM0ODJiNTMxOGRjLi5kMmU5OWFmMWI2ZTg1MTA3ZGZkNjZkNDFhMzEzYTY0ZWFlNzAw
ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0
L1Rlc3RIYXJuZXNzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QvVGVzdEhhcm5lc3MuanMKQEAgLTEzMSw2ICsxMzEsNDYgQEAgVGVzdEhhcm5lc3MgPSBj
bGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9leHBlY3Qo
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlLCAhYWN0dWFsLCBtZXNzYWdlLCBhY3R1
YWwpOwogICAgIH0KIAorICAgIGV4cGVjdEVtcHR5KGFjdHVhbCwgbWVzc2FnZSkKKyAgICB7Cisg
ICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgdHlwZW9mIGFjdHVhbCA9PT0gInN0
cmluZyIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlv
blR5cGUuRW1wdHksICFhY3R1YWwubGVuZ3RoLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdHVhbCBpbnN0YW5jZW9mIFNl
dCB8fCBhY3R1YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChU
ZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksICFhY3R1YWwuc2l6ZSwgbWVzc2FnZSwg
YWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0
eXBlb2YgYWN0dWFsID09PSAib2JqZWN0IikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRl
c3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgaXNFbXB0eU9iamVjdChhY3R1YWwpLCBt
ZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5mYWlsKCJleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9u
LW9iamVjdDpcbiAgICBBY3R1YWw6ICIgKyB0aGlzLl9leHBlY3RhdGlvblZhbHVlQXNTdHJpbmco
YWN0dWFsKSk7CisgICAgfQorCisgICAgZXhwZWN0Tm90RW1wdHkoYWN0dWFsLCBtZXNzYWdlKQor
ICAgIHsKKyAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCB0eXBlb2YgYWN0dWFs
ID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4
cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwubGVuZ3RoLCBtZXNzYWdlLCBhY3R1YWwp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdHVhbCBp
bnN0YW5jZW9mIFNldCB8fCBhY3R1YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIHRo
aXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHksICEhYWN0dWFs
LnNpemUsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0gIm9iamVjdCIpIHsKKyAgICAgICAgICAg
IHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHksICFpc0Vt
cHR5T2JqZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmZhaWwoImV4cGVjdE5vdEVtcHR5IHNob3VsZCBu
b3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAgIEFjdHVhbDogIiArIHRoaXMuX2V4
cGVjdGF0aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAgICB9CisKICAgICBleHBlY3ROdWxs
KGFjdHVhbCwgbWVzc2FnZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVz
cy5FeHBlY3RhdGlvblR5cGUuTnVsbCwgYWN0dWFsID09PSBudWxsLCBtZXNzYWdlLCBhY3R1YWws
IG51bGwpOwpAQCAtMzgxLDYgKzQyMSwxMCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJu
ZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4gImV4cGVjdFRoYXQoJXMp
IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2U6CiAgICAg
ICAgICAgICByZXR1cm4gImV4cGVjdEZhbHNlKCVzKSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5l
c3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJleHBlY3RFbXB0
eSglcykiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0
eToKKyAgICAgICAgICAgIHJldHVybiAiZXhwZWN0Tm90RW1wdHkoJXMpIjsKICAgICAgICAgY2Fz
ZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTnVsbDoKICAgICAgICAgICAgIHJldHVybiAi
ZXhwZWN0TnVsbCglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlw
ZS5Ob3ROdWxsOgpAQCAtNDE2LDYgKzQ2MCwxMCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RI
YXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4gInRydXRoeSI7CiAg
ICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlOgogICAgICAgICAg
ICAgcmV0dXJuICJmYWxzZXkiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZS5FbXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZW1wdHkiOworICAgICAgICBjYXNlIFRl
c3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eToKKyAgICAgICAgICAgIHJldHVybiAi
bm90IGVtcHR5IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90
TnVsbDoKICAgICAgICAgICAgIHJldHVybiAibm90IG51bGwiOwogICAgICAgICBjYXNlIFRlc3RI
YXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFcXVhbDoKQEAgLTQ0MCw2ICs0ODgsOCBAQCBUZXN0
SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiBUZXN0SGFybmVz
cy5FeHBlY3RhdGlvblR5cGUgPSB7CiAgICAgVHJ1ZTogU3ltYm9sKCJleHBlY3QtdHJ1ZSIpLAog
ICAgIEZhbHNlOiBTeW1ib2woImV4cGVjdC1mYWxzZSIpLAorICAgIEVtcHR5OiBTeW1ib2woImV4
cGVjdC1lbXB0eSIpLAorICAgIE5vdEVtcHR5OiBTeW1ib2woImV4cGVjdC1ub3QtZW1wdHkiKSwK
ICAgICBOdWxsOiBTeW1ib2woImV4cGVjdC1udWxsIiksCiAgICAgTm90TnVsbDogU3ltYm9sKCJl
eHBlY3Qtbm90LW51bGwiKSwKICAgICBFcXVhbDogU3ltYm9sKCJleHBlY3QtZXF1YWwiKSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI0NWM2YTc3NTRlN2EyNzNiOTZjYzkwOWQ2MTBhNDI2Y2ViYzA1YmQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisuY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uIHsKKyAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgcGFkZGluZzogNHB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZjY3NzllZWUxNjEyNDg5
OTUyNzIwMmJkYWM2NGYxMjdmNGIxMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZp
ZXcuanMKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0
aW9uQ29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNl
bnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbik7CisKKyAgICAgICAgbGV0IGNv
bnRlbnRQbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworCisgICAg
ICAgIGxldCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBjb250ZW50UGxhY2Vob2xkZXIuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICBkZXNjcmlwdGlvbkVs
ZW1lbnQuY2xhc3NOYW1lID0gImRlc2NyaXB0aW9uIjsKKworICAgICAgICBzd2l0Y2ggKHJlcHJl
c2VudGVkT2JqZWN0LmFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24u
VHlwZS5XZWJBbmltYXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENv
bnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEph
dmFTY3JpcHQuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50
ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQg
YnkgQ1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5BbmltYXRp
b24uVHlwZS5DU1NUcmFuc2l0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRl
eHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQg
YnkgQ1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50KTsKKworICAgICAgICBzdXBl
cihyZXByZXNlbnRlZE9iamVjdCwgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcsIGNvbnRlbnRQbGFj
ZWhvbGRlcik7CisKKyAgICAgICAgdGhpcy5zZWxlY3Rpb25FbmFibGVkID0gdHJ1ZTsKKworICAg
ICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW9uLWNvbGxlY3Rpb24iKTsK
KyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2Vk
KCkKKyAgICB7CisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2aWV3cykgewor
ICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50Vmll
dykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGNvbnRlbnRWaWV3
QWRkZWQoY29udGVudFZpZXcpCisgICAgeworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNl
RW50ZXIpOworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1v
dXNlbGVhdmUiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOworICAgIH0KKwor
ICAgIGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAgIGNvbnRl
bnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2hh
bmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3
TW91c2VMZWF2ZSk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0ku
ZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAgIHN1cGVyLmRldGFj
aGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZUNvbnRlbnRWaWV3
TW91c2VFbnRlcihldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZp
ZXcuZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgaWYgKCEoY29udGVudFZpZXcg
aW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGNvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0
OworICAgICAgICBhbmltYXRpb24ucmVxdWVzdE5vZGUoKS50aGVuKChub2RlKSA9PiB7CisgICAg
ICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUub3duZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICBub2RlLmhpZ2hsaWdodCgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworICAgIH0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU4ODkwZjVjY2Q2
NGFjYmY2MmQ5YWI5MTBjYmViODc4Y2RmNjI4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNz
cwpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9u
IHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDEwMCU7CisgICAgbWFyZ2lu
OiA0cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1jb250
ZW50KTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisu
Y29udGVudC12aWV3LmFuaW1hdGlvbi5zZWxlY3RlZCB7CisgICAgb3V0bGluZTogYXV0byAtd2Vi
a2l0LWZvY3VzLXJpbmctY29sb3I7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVh
ZGVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAg
aGVpZ2h0OiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIHBhZGRpbmc6IDAgNnB4
OworICAgIGZvbnQtc2l6ZTogMTNweDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgPiAudGl0bGVzIHsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCisuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIGNvbG9y
OiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktZGFyayk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRl
eHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhl
YWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGU6bm90KDplbXB0eSk6OmJlZm9yZSB7CisgICAgY29u
dGVudDogIlwwMEEwXDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87Cit9CisK
Ky5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAg
ICBib3JkZXI6IG5vbmU7CisgICAgb3BhY2l0eTogMDsKK30KKworLmNvbnRlbnQtdmlldy5hbmlt
YXRpb246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIG9wYWNpdHk6IDE7
Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgIGRpc3BsYXk6
IGZsZXg7CisgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNl
bnRlcjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7Cit9CisKKy5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgeworICAgIHdpZHRoOiAxMDAlOwor
fQorCitib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBz
dmcgeworICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiAucHJldmlldyA+IHN2ZyByZWN0IHsKKyAgICBmaWxsOiB0cmFuc3BhcmVudDsKK30K
KworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBsaW5l
IHsKKyAgICBzdHJva2U6IHZhcigtLWJvcmRlci1jb2xvcik7CisgICAgc3Ryb2tlLXdpZHRoOiAy
OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2
ZSBwYXRoIHsKKyAgICBmaWxsOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAgIGZpbGwt
b3BhY2l0eTogMC41OworICAgIHN0cm9rZTogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKKyAg
ICBzdHJva2Utd2lkdGg6IDE7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZp
ZXcgPiBzdmcgPiAuYWN0aXZlIGNpcmNsZSB7CisgICAgZmlsbDogdmFyKC0tdGV4dC1jb2xvcik7
Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZl
IGxpbmUgeworICAgIHN0cm9rZTogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgc3Ryb2tlLXdpZHRo
OiAyOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3BhbiB7Cisg
ICAgcGFkZGluZzogNHB4OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7
Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgICAgICBj
b2xvcjogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICAgICAgY29sb3I6IHZh
cigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IC5wcmV2aWV3IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAl
LCAyMCUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzk5MDQ1Y2UwNjY4NDYwNzRmMmJlYTI4YjkxYjg0OTdiMDBkOTIwNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5p
bWF0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db250ZW50VmlldyBleHRlbmRzIFdJ
LkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCisgICAg
eworICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkFuaW1hdGlvbik7CisKKyAgICAgICAgc3VwZXIocmVwcmVzZW50ZWRPYmplY3QpOworCisgICAg
ICAgIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUgPSBudWxsOworICAgICAgICB0aGlzLl9j
YWNoZWRXaWR0aCA9IE5hTjsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
YW5pbWF0aW9uIik7CisgICAgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgZ2V0IHBy
ZXZpZXdIZWlnaHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDQwOworICAgIH0KKworICAgIC8v
IFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisK
KyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQo
KTsKKworICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9IHRoaXMuZWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoZWFkZXIiKSk7CisKKyAgICAgICAgbGV0IHRpdGxl
c0NvbnRhaW5lciA9IGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOworICAgICAgICB0aXRsZXNDb250YWluZXIuY2xhc3NOYW1lID0gInRpdGxl
cyI7CisKKyAgICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aXRsZUVsZW1l
bnQuY2xhc3NOYW1lID0gInRpdGxlIjsKKyAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50
ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNwbGF5TmFtZTsKKworICAgICAgICB0aGlzLl9z
dWJ0aXRsZUVsZW1lbnQgPSB0aXRsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LmNsYXNz
TmFtZSA9ICJzdWJ0aXRsZSI7CisKKyAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBuZXcgV0ku
TmF2aWdhdGlvbkJhcjsKKworICAgICAgICBsZXQgYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImFuaW1hdGlvbi10YXJnZXQi
LCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIFRhcmdldCIpLCAiSW1hZ2VzL01hcmt1cC5zdmciLCAx
NiwgMTYpOworICAgICAgICBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNp
YmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93
OworICAgICAgICBXSS5hZGRNb3VzZURvd25Db250ZXh0TWVudUhhbmRsZXJzKGFuaW1hdGlvblRh
cmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVsZW1lbnQsIHRoaXMuX3BvcHVsYXRlQW5pbWF0aW9u
VGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUuYmluZCh0aGlzKSk7CisgICAgICAgIG5hdmlnYXRpb25C
YXIuYWRkTmF2aWdhdGlvbkl0ZW0oYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0p
OworCisgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kKG5hdmlnYXRpb25CYXIuZWxlbWVudCk7
CisgICAgICAgIHRoaXMuYWRkU3VidmlldyhuYXZpZ2F0aW9uQmFyKTsKKworICAgICAgICB0aGlz
Ll9wcmV2aWV3Q29udGFpbmVyID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5jbGFz
c05hbWUgPSAicHJldmlldyI7CisgICAgfQorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAg
IHN1cGVyLmxheW91dCgpOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAg
ICAgICB0aGlzLl9yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIHNpemVEaWRDaGFuZ2Uo
KQorICAgIHsKKyAgICAgICAgc3VwZXIuc2l6ZURpZENoYW5nZSgpOworCisgICAgICAgIHRoaXMu
X2NhY2hlZFdpZHRoID0gdGhpcy5lbGVtZW50LnJlYWxPZmZzZXRXaWR0aDsKKyAgICB9CisKKyAg
ICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgpOworCisgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZl
bnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAg
ICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24u
RXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7Cisg
ICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2Vk
LCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RD
aGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKworICAgICAgICBzdXBl
ci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9yZWZyZXNoU3Vi
dGl0bGUoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0Tm9k
ZSgpLnRoZW4oKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvblRhcmdl
dERPTU5vZGUgPSBkb21Ob2RlOworCisgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQu
cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIGlmIChkb21Ob2RlKQorICAgICAgICAgICAg
ICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChXSS5saW5raWZ5Tm9kZVJlZmVy
ZW5jZShkb21Ob2RlKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoUHJldmll
dygpCisgICAgeworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLnJlbW92ZUNoaWxkcmVu
KCk7CisKKyAgICAgICAgbGV0IGtleWZyYW1lcyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qua2V5
ZnJhbWVzOworICAgICAgICBpZiAoIWtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxl
dCBzcGFuID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IFdJLlVJ
U3RyaW5nKCJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHN0YXJ0RGVsYXkgPSB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbkR1cmF0
aW9uID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5pdGVyYXRpb25EdXJhdGlvbiB8fCAwOworICAg
ICAgICBsZXQgZW5kRGVsYXkgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVuZERlbGF5IHx8IDA7
CisgICAgICAgIGxldCB0b3RhbER1cmF0aW9uID0gc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0
aW9uICsgZW5kRGVsYXk7CisgICAgICAgIGlmICh0b3RhbER1cmF0aW9uID09PSAwKSB7CisgICAg
ICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRl
bnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgcHJldmlld0hlaWdo
dCA9IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByZXZpZXdIZWlnaHQ7CisKKyAgICAgICAgY29u
c3QgbWFya2VySGVhZFJhZGl1cyA9IDQ7CisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRQYWRkaW5n
ID0gMjsKKworICAgICAgICAvLyBTcXVlZXplIHRoZSBlbnRpcmUgcHJldmlldyBzbyB0aGF0IG1h
cmtlcnMgYXJlbid0IGN1dCBvZmYuCisgICAgICAgIGNvbnN0IHNxdWVlemVYU3RhcnQgPSAoaXRl
cmF0aW9uRHVyYXRpb24gJiYgc3RhcnREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyArIG1h
cmtlckhlYWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWEVuZCA9IChpdGVyYXRpb25E
dXJhdGlvbiAmJiBlbmREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQ
YWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWVN0YXJ0ID0gODsKKworICAgICAgICAvLyBN
b3ZlIHRoZSBlYXNpbmcgbGluZSBkb3duIHRvIGN1dCBvZmYgdGhlIGJvdHRvbSBib3JkZXIuCisg
ICAgICAgIGNvbnN0IGFkanVzdEVhc2luZ1kgPSAwLjU7CisKKyAgICAgICAgbGV0IHNlY29uZHNQ
ZXJQaXhlbCA9IHRoaXMuX2NhY2hlZFdpZHRoIC8gdG90YWxEdXJhdGlvbjsKKworICAgICAgICBz
dGFydERlbGF5ICo9IHNlY29uZHNQZXJQaXhlbDsKKyAgICAgICAgaXRlcmF0aW9uRHVyYXRpb24g
PSAoaXRlcmF0aW9uRHVyYXRpb24gKiBzZWNvbmRzUGVyUGl4ZWwpIC0gc3F1ZWV6ZVhTdGFydCAt
IHNxdWVlemVYRW5kOworICAgICAgICBlbmREZWxheSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisKKyAg
ICAgICAgbGV0IHN2ZyA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRl
U1ZHRWxlbWVudCgic3ZnIikpOworICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCJ2aWV3Qm94Iiwg
YDAgMCAke3RoaXMuX2NhY2hlZFdpZHRofSAke3ByZXZpZXdIZWlnaHR9YCk7CisKKyAgICAgICAg
ZnVuY3Rpb24gYWRkVGl0bGUocGFyZW50LCB0aXRsZSkgeworICAgICAgICAgICAgbGV0IHRpdGxl
RWxlbWVudCA9IHBhcmVudC5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJ0aXRsZSIpKTsK
KyAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHN0YXJ0RGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5
Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAg
ICAgICAgICBzdGFydERlbGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImRlbGF5IiwgInN0YXJ0
Iik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5TGluZSA9IHN0YXJ0RGVsYXlDb250YWlu
ZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAgIHN0
YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZ
U3RhcnQpIC8gMik7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngy
Iiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUo
InkyIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisgICAgICAgICAg
ICBsZXQgc3RhcnREZWxheUVsZW1lbnQgPSBzdGFydERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxk
KGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICBzdGFydERlbGF5RWxlbWVu
dC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBzdGFydERl
bGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQpOworCisgICAg
ICAgICAgICBhZGRUaXRsZShzdGFydERlbGF5RWxlbWVudCwgV0kuVUlTdHJpbmcoIlN0YXJ0IERl
bGF5ICVzIikuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5zdGFydERlbGF5IC8gMTAwMCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbmRE
ZWxheSkgeworICAgICAgICAgICAgbGV0IGVuZERlbGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENo
aWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICBlbmREZWxheUNvbnRhaW5l
ci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydERlbGF5ICsgaXRl
cmF0aW9uRHVyYXRpb24gKyBzcXVlZXplWFN0YXJ0fSwgMClgKTsKKyAgICAgICAgICAgIGVuZERl
bGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImRlbGF5IiwgImVuZCIpOworCisgICAgICAgICAg
ICBsZXQgZW5kRGVsYXlMaW5lID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRl
U1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1
dGUoInkxIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAg
ICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieDIiLCBlbmREZWxheSk7CisgICAgICAgICAg
ICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6
ZVlTdGFydCkgLyAyKTsKKworICAgICAgICAgICAgbGV0IGVuZERlbGF5RWxlbWVudCA9IGVuZERl
bGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAg
ICAgICAgICBlbmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkg
KyBpdGVyYXRpb25EdXJhdGlvbiArIGVuZERlbGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxl
bWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQpOworCisgICAgICAgICAg
ICBhZGRUaXRsZShlbmREZWxheUVsZW1lbnQsIFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkgJXMiKS5m
b3JtYXQoTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVuZERl
bGF5IC8gMTAwMCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpdGVyYXRpb25EdXJhdGlv
bikgeworICAgICAgICAgICAgbGV0IHRpbWluZ0Z1bmN0aW9uID0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdC50aW1pbmdGdW5jdGlvbjsKKworICAgICAgICAgICAgbGV0IGFjdGl2ZUR1cmF0aW9uQ29u
dGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAg
ICAgICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTsKKyAg
ICAgICAgICAgIGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3Jt
IiwgYHRyYW5zbGF0ZSgke3N0YXJ0RGVsYXkgKyBzcXVlZXplWFN0YXJ0fSwgJHtzcXVlZXplWVN0
YXJ0fSlgKTsKKworICAgICAgICAgICAgY29uc3Qgc3RhcnRZID0gMDsKKyAgICAgICAgICAgIGNv
bnN0IGVuZFkgPSBwcmV2aWV3SGVpZ2h0IC0gc3F1ZWV6ZVlTdGFydDsKKyAgICAgICAgICAgIGNv
bnN0IGhlaWdodCA9IGVuZFkgLSBzdGFydFk7CisKKyAgICAgICAgICAgIGZvciAobGV0IFtrZXlm
cmFtZUEsIGtleWZyYW1lQl0gb2Yga2V5ZnJhbWVzLmFkamFjZW5jaWVzKCkpIHsKKyAgICAgICAg
ICAgICAgICBsZXQgc3RhcnRYID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZUEub2Zmc2V0
OworICAgICAgICAgICAgICAgIGxldCBlbmRYID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFt
ZUIub2Zmc2V0OworICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGVuZFggLSBzdGFydFg7CisK
KyAgICAgICAgICAgICAgICBsZXQgZWFzaW5nID0ga2V5ZnJhbWVBLmVhc2luZyB8fCB0aW1pbmdG
dW5jdGlvbjsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmdDb250YWluZXIgPSBhY3RpdmVE
dXJhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAg
ICAgICAgICAgICAgIGVhc2luZ0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJlYXNpbmciKTsKKyAg
ICAgICAgICAgICAgICBlYXNpbmdDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBg
dHJhbnNsYXRlKCR7c3RhcnRYfSwgJHtzdGFydFl9KWApOworCisgICAgICAgICAgICAgICAgbGV0
IHgxID0gZWFzaW5nLmluUG9pbnQueCAqIHdpZHRoOworICAgICAgICAgICAgICAgIGxldCB5MSA9
ICgoMSAtIGVhc2luZy5pblBvaW50LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7CisgICAg
ICAgICAgICAgICAgbGV0IHgyID0gZWFzaW5nLm91dFBvaW50LnggKiB3aWR0aDsKKyAgICAgICAg
ICAgICAgICBsZXQgeTIgPSAoKDEgLSBlYXNpbmcub3V0UG9pbnQueSkgKiBoZWlnaHQpICsgYWRq
dXN0RWFzaW5nWTsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmdQYXRoID0gZWFzaW5nQ29u
dGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgiKSk7CisgICAgICAgICAg
ICAgICAgZWFzaW5nUGF0aC5zZXRBdHRyaWJ1dGUoImQiLCBgTSAwICR7aGVpZ2h0ICsgYWRqdXN0
RWFzaW5nWX0gQyAke3gxfSAke3kxfSAke3gyfSAke3kyfSAke3dpZHRofSAke2FkanVzdEVhc2lu
Z1l9IFYgJHtoZWlnaHQgKyBhZGp1c3RFYXNpbmdZfSBaYCk7CisKKyAgICAgICAgICAgICAgICBs
ZXQgdGl0bGVSZWN0ID0gZWFzaW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1l
bnQoInJlY3QiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lk
dGgiLCB3aWR0aCk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgiaGVp
Z2h0IiwgaGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwgZWFz
aW5nLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGxldCBr
ZXlmcmFtZSBvZiBrZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBsZXQgeCA9IGl0ZXJhdGlv
bkR1cmF0aW9uICoga2V5ZnJhbWUub2Zmc2V0OworCisgICAgICAgICAgICAgICAgbGV0IGtleWZy
YW1lQ29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRl
U1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUNvbnRhaW5lci5jbGFz
c0xpc3QuYWRkKCJrZXlmcmFtZSIpOworICAgICAgICAgICAgICAgIGtleWZyYW1lQ29udGFpbmVy
LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3h9LCAke3N0YXJ0WX0pYCk7
CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVNYXJrZXJIZWFkID0ga2V5ZnJhbWVDb250
YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiY2lyY2xlIikpOworICAgICAgICAg
ICAgICAgIGtleWZyYW1lTWFya2VySGVhZC5zZXRBdHRyaWJ1dGUoInIiLCBtYXJrZXJIZWFkUmFk
aXVzKTsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1hcmtlckxpbmUgPSBrZXlmcmFt
ZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAg
ICAgICAgICAgIGtleWZyYW1lTWFya2VyTGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgaGVpZ2h0KTsK
KworICAgICAgICAgICAgICAgIGxldCB0aXRsZVJlY3QgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBl
bmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgICAgIHRpdGxl
UmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAtMSAqIChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVh
ZFBhZGRpbmcpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ5Iiwg
LTEgKiBzcXVlZXplWVN0YXJ0KTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmli
dXRlKCJ3aWR0aCIsIChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmcpICogMik7
CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgaGVpZ2h0
ICsgc3F1ZWV6ZVlTdGFydCk7CisKKyAgICAgICAgICAgICAgICBhZGRUaXRsZSh0aXRsZVJlY3Qs
IGtleWZyYW1lLnN0eWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IF9oYW5kbGVFZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVz
aFByZXZpZXcoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlVGFyZ2V0Q2hhbmdlZChldmVudCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAgIH0KKworICAgIF9wb3B1
bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51KGNvbnRleHRNZW51KQorICAgIHsK
KyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiTG9nIEFuaW1hdGlv
biIpLCAoKSA9PiB7CisgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlv
bih0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50aW1lTWFuYWdlci5Db25zb2xlT2JqZWN0
R3JvdXAsIChyZW1vdGVPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIXJlbW90ZU9i
amVjdCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgY29u
c3QgdGV4dCA9IFdJLlVJU3RyaW5nKCJTZWxlY3RlZCBBbmltYXRpb24iKTsKKyAgICAgICAgICAg
ICAgICBjb25zdCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBXSS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9uV2l0
aFJlc3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNl
cGFyYXRvcigpOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKQor
ICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1l
bnUsIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUpOworICAgIH0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwNGNh
MzI1YjhiMTY2NmJjNTljZGYwNjA5OTRjZWZlMjM4NjQ2MzMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLmNzcwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnNpZGViYXIg
PiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24u
YW5pbWF0aW9uLWtleWZyYW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjogdmFy
KC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFp
bHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlm
cmFtZXMgLmRldGFpbHMtc2VjdGlvbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAl
LCA5NyUpOworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250
ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rp
b24gLnJvdy5zdHlsZXMgeworICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKK30KKworLnNpZGViYXIg
PiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24u
YW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIC5Db2RlTWly
cm9yIHsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgcGFkZGluZzogNHB4IDA7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hl
bWU6IGRhcmspIHsKKyAgICAuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5j
b250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNl
Y3Rpb24geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE4JSk7CisgICAg
fQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjc2YjQ0Mjk1MDFjMzJlNjdlMTllYWNjYTNlNWFmZThiMDg5YzUyOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTAsMCArMSwyNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTaWRlYmFyUGFuZWwKK3sKKyAgICBj
b25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigiYW5pbWF0aW9uIiwgV0kuVUlTdHJp
bmcoIkFuaW1hdGlvbiIpKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBudWxsOworCisg
ICAgICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwID0gbmV3IE1hcDsKKyAgICB9CisKKyAg
ICAvLyBQdWJsaWMKKworICAgIGluc3BlY3Qob2JqZWN0cykKKyAgICB7CisgICAgICAgIGlmICgh
KG9iamVjdHMgaW5zdGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICBvYmplY3RzID0gW29iamVj
dHNdOworCisgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gb2JqZWN0cy5maW5kKChvYmplY3QpID0+
IG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbik7CisKKyAgICAgICAgcmV0dXJuICEhdGhp
cy5hbmltYXRpb247CisgICAgfQorCisgICAgZ2V0IGFuaW1hdGlvbigpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uOworICAgIH0KKworICAgIHNldCBhbmltYXRpb24oYW5p
bWF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGFuaW1hdGlvbiA9PT0gdGhpcy5fYW5pbWF0aW9u
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24pIHsK
KyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1h
dGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFu
Z2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExpc3Rl
bmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRp
b25FZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FuaW1h
dGlvbiA9IGFuaW1hdGlvbiB8fCBudWxsOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24p
IHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1h
dGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFu
Z2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVy
KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25U
YXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMubmVlZHNMYXlv
dXQoKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQoKQor
ICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIHRoaXMuX25h
bWVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIk5hbWUi
KSk7CisgICAgICAgIHRoaXMuX3R5cGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVS
b3coV0kuVUlTdHJpbmcoIlR5cGUiKSk7CisgICAgICAgIHRoaXMuX3RhcmdldFJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiVGFyZ2V0IikpOworICAgICAg
ICBsZXQgaWRlbnRpdHlTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24t
aWRlbnRpdHkiLCBXSS5VSVN0cmluZygiSWRlbnRpdHkiKSwgW25ldyBXSS5EZXRhaWxzU2VjdGlv
bkdyb3VwKFt0aGlzLl9uYW1lUm93LCB0aGlzLl90eXBlUm93LCB0aGlzLl90YXJnZXRSb3ddKV0p
OworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoaWRlbnRpdHlT
ZWN0aW9uLmVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbnNSb3cgPSBuZXcgV0ku
RGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkl0ZXJhdGlvbnMiKSk7CisgICAg
ICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxl
Um93KFdJLlVJU3RyaW5nKCJTdGFydCIpKTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uRHVyYXRp
b25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkR1cmF0
aW9uIikpOworICAgICAgICBsZXQgaXRlcmF0aW9uc0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uR3JvdXAoW3RoaXMuX2l0ZXJhdGlvbnNSb3csIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LCB0
aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvd10pOworCisgICAgICAgIHRoaXMuX3N0YXJ0RGVsYXlS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IERl
bGF5IikpOworICAgICAgICB0aGlzLl9lbmREZWxheVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
blNpbXBsZVJvdyhXSS5VSVN0cmluZygiRW5kIERlbGF5IikpOworICAgICAgICB0aGlzLl90aW1p
bmdGdW5jdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmlu
ZygiRWFzaW5nIikpOworICAgICAgICBsZXQgdGltaW5nR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Hcm91cChbdGhpcy5fc3RhcnREZWxheVJvdywgdGhpcy5fZW5kRGVsYXlSb3csIHRoaXMu
X3RpbWluZ0Z1bmN0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25S
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkRpcmVjdGlv
biIpKTsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25T
aW1wbGVSb3coV0kuVUlTdHJpbmcoIkZpbGwiKSk7CisgICAgICAgIGxldCBmaWxsRGlyZWN0aW9u
R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fcGxheWJhY2tEaXJlY3Rp
b25Sb3csIHRoaXMuX2ZpbGxNb2RlUm93XSk7CisKKyAgICAgICAgbGV0IGVmZmVjdFNlY3Rpb24g
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1lZmZlY3QiLCBXSS5VSVN0cmluZygi
RWZmZWN0IiksIFtpdGVyYXRpb25zR3JvdXAsIHRpbWluZ0dyb3VwLCBmaWxsRGlyZWN0aW9uR3Jv
dXBdKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGVmZmVj
dFNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fa2V5ZnJhbWVzR3JvdXAgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25Hcm91cDsKKyAgICAgICAgbGV0IGtleWZyYW1lc1NlY3Rpb24gPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1rZXlmcmFtZXMiLCBXSS5VSVN0cmluZygi
S2V5ZnJhbWVzIiksIFt0aGlzLl9rZXlmcmFtZXNHcm91cF0pOworICAgICAgICB0aGlzLmNvbnRl
bnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoa2V5ZnJhbWVzU2VjdGlvbi5lbGVtZW50KTsKKwor
ICAgICAgICBjb25zdCBzZWxlY3RhYmxlID0gZmFsc2U7CisgICAgICAgIGxldCBiYWNrdHJhY2VU
cmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZShzZWxlY3RhYmxlKTsKKyAgICAgICAgYmFj
a3RyYWNlVHJlZU91dGxpbmUuZGlzY2xvc3VyZUJ1dHRvbnMgPSBmYWxzZTsKKyAgICAgICAgdGhp
cy5fYmFja3RyYWNlVHJlZUNvbnRyb2xsZXIgPSBuZXcgV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xs
ZXIoYmFja3RyYWNlVHJlZU91dGxpbmUpOworCisgICAgICAgIGxldCBiYWNrdHJhY2VSb3cgPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgIGJhY2t0cmFjZVJvdy5lbGVtZW50LmFw
cGVuZENoaWxkKGJhY2t0cmFjZVRyZWVPdXRsaW5lLmVsZW1lbnQpOworICAgICAgICB0aGlzLl9i
YWNrdHJhY2VTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24tYmFja3Ry
YWNlIiwgV0kuVUlTdHJpbmcoIkJhY2t0cmFjZSIpLCBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3Jv
dXAoW2JhY2t0cmFjZVJvd10pXSk7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxl
bWVudC5oaWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50KTsKKyAgICB9CisKKyAgICBs
YXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgaWYgKCF0
aGlzLl9hbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcmVm
cmVzaElkZW50aXR5U2VjdGlvbigpOworICAgICAgICB0aGlzLl9yZWZyZXNoRWZmZWN0U2VjdGlv
bigpOworICAgICAgICB0aGlzLl9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigpOworCisgICAgICAg
IGZvciAobGV0IGNvZGVNaXJyb3Igb2YgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAudmFsdWVz
KCkpCisgICAgICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9CisKKyAgICAvLyBQ
cml2YXRlCisKKyAgICBfcmVmcmVzaElkZW50aXR5U2VjdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLl9uYW1lUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmRpc3BsYXlOYW1lOworICAgICAg
ICB0aGlzLl90eXBlUm93LnZhbHVlID0gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0
aW9uVHlwZSh0aGlzLl9hbmltYXRpb24uYW5pbWF0aW9uVHlwZSk7CisKKyAgICAgICAgdGhpcy5f
dGFyZ2V0Um93LnZhbHVlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlcXVlc3RO
b2RlKCkudGhlbigoZG9tTm9kZSkgPT4geworICAgICAgICAgICAgdGhpcy5fdGFyZ2V0Um93LnZh
bHVlID0gZG9tTm9kZSA/IFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKGRvbU5vZGUpIDogbnVsbDsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCkKKyAgICB7
CisgICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IDA7CisgICAgICAgIGNvbnN0IHJlYWRPbmx5ID0g
dHJ1ZTsKKworICAgICAgICB0aGlzLl9pdGVyYXRpb25zUm93LnZhbHVlID0gIWlzTmFOKHRoaXMu
X2FuaW1hdGlvbi5pdGVyYXRpb25zKSA/IHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25zLnRvTG9j
YWxlU3RyaW5nKCkgOiBudWxsOworICAgICAgICB0aGlzLl9pdGVyYXRpb25TdGFydFJvdy52YWx1
ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQpID8gdGhpcy5fYW5pbWF0
aW9uLml0ZXJhdGlvblN0YXJ0LnRvTG9jYWxlU3RyaW5nKCkgOiBudWxsOworICAgICAgICB0aGlz
Ll9pdGVyYXRpb25EdXJhdGlvblJvdy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRl
cmF0aW9uRHVyYXRpb24pID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24u
aXRlcmF0aW9uRHVyYXRpb24gLyAxMDAwKSA6IG51bGw7CisKKyAgICAgICAgdGhpcy5fc3RhcnRE
ZWxheVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5zdGFydERlbGF5ID8gTnVtYmVyLnNlY29u
ZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24uc3RhcnREZWxheSAvIDEwMDApIDogbnVsbDsKKyAg
ICAgICAgdGhpcy5fZW5kRGVsYXlSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZW5kRGVsYXkg
PyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5lbmREZWxheSAvIDEwMDAp
IDogbnVsbDsKKyAgICAgICAgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3cudmFsdWUgPSB0aGlzLl9h
bmltYXRpb24udGltaW5nRnVuY3Rpb24gPyB0aGlzLl9hbmltYXRpb24udGltaW5nRnVuY3Rpb24u
dG9TdHJpbmcoKSA6IG51bGw7CisKKyAgICAgICAgdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25Sb3cu
dmFsdWUgPSB0aGlzLl9hbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24gPyBXSS5BbmltYXRpb24u
ZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbih0aGlzLl9hbmltYXRpb24ucGxheWJhY2tE
aXJlY3Rpb24pIDogbnVsbDsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cudmFsdWUgPSB0aGlz
Ll9hbmltYXRpb24uZmlsbE1vZGUgPyBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JGaWxsTW9k
ZSh0aGlzLl9hbmltYXRpb24uZmlsbE1vZGUpIDogbnVsbDsKKworICAgICAgICBmb3IgKGxldCBz
ZWN0aW9uIG9mIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmtleXMoKSkKKyAgICAgICAgICAg
IHNlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5EZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xs
YXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3Rh
dGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAuY2xl
YXIoKTsKKworICAgICAgICBsZXQga2V5ZnJhbWVTZWN0aW9ucyA9IFtdOworICAgICAgICBmb3Ig
KGxldCBrZXlmcmFtZSBvZiB0aGlzLl9hbmltYXRpb24ua2V5ZnJhbWVzKSB7CisgICAgICAgICAg
ICBsZXQgcm93cyA9IFtdOworCisgICAgICAgICAgICBsZXQga2V5ZnJhbWVTZWN0aW9uID0gbmV3
IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24ta2V5ZnJhbWUtb2Zmc2V0LSIgKyBrZXlmcmFt
ZS5vZmZzZXQsIE51bWJlci5wZXJjZW50YWdlU3RyaW5nKGtleWZyYW1lLm9mZnNldCwgcHJlY2lz
aW9uKSk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5E
ZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRsZURl
dGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIGtl
eWZyYW1lU2VjdGlvbnMucHVzaChrZXlmcmFtZVNlY3Rpb24pOworCisgICAgICAgICAgICBpZiAo
a2V5ZnJhbWUuZWFzaW5nKSB7CisgICAgICAgICAgICAgICAgbGV0IHN1YnRpdGxlID0ga2V5ZnJh
bWVTZWN0aW9uLmhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpKTsKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZS5jbGFzc05hbWUgPSAic3VidGl0
bGUiOworICAgICAgICAgICAgICAgIHN1YnRpdGxlLnRleHRDb250ZW50ID0gYCAke2VtRGFzaH0g
JHtrZXlmcmFtZS5lYXNpbmcudG9TdHJpbmcoKX1gOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpIHsKKyAgICAgICAgICAgICAgICBsZXQgY29kZU1pcnJv
ckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgICAg
ICBsZXQgY29kZU1pcnJvciA9IFdJLkNvZGVNaXJyb3JFZGl0b3IuY3JlYXRlKGNvZGVNaXJyb3JF
bGVtZW50LCB7CisgICAgICAgICAgICAgICAgICAgIG1vZGU6ICJjc3MiLAorICAgICAgICAgICAg
ICAgICAgICByZWFkT25seTogIm5vY3Vyc29yIiwKKyAgICAgICAgICAgICAgICAgICAgbGluZVdy
YXBwaW5nOiB0cnVlLAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGNvZGVN
aXJyb3Iuc2V0VmFsdWUoa2V5ZnJhbWUuc3R5bGUpOworCisgICAgICAgICAgICAgICAgY29uc3Qg
cmFuZ2UgPSBudWxsOworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wdGlvbnNGb3JUeXBlKHR5
cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFsbG93ZWRUb2tlbnM6IC9cYnRhZ1xiLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNh
bGxiYWNrKG1hcmtlciwgdmFsdWVPYmplY3QsIHZhbHVlU3RyaW5nKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBXSS5JbmxpbmVTd2F0Y2godHlwZSwgdmFs
dWVPYmplY3QsIHJlYWRPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlTWly
cm9yLnNldFVuaXF1ZUJvb2ttYXJrKG1hcmtlci5yYW5nZS5zdGFydFBvc2l0aW9uKCkudG9Db2Rl
TWlycm9yKCksIHN3YXRjaC5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
Y3JlYXRlQ29kZU1pcnJvckNvbG9yVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlv
bnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkNvbG9yKSk7CisgICAgICAgICAgICAgICAg
Y3JlYXRlQ29kZU1pcnJvckdyYWRpZW50VGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9w
dGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkdyYWRpZW50KSk7CisgICAgICAgICAg
ICAgICAgY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVyVGV4dE1hcmtlcnMoY29kZU1pcnJvciwg
cmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkJlemllcikpOworICAg
ICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0TWFya2Vycyhjb2RlTWlycm9y
LCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nKSk7CisK
KyAgICAgICAgICAgICAgICBsZXQgcm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OworICAg
ICAgICAgICAgICAgIHJvdy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInN0eWxlcyIpOworICAgICAg
ICAgICAgICAgIHJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGNvZGVNaXJyb3JFbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICByb3dzLnB1c2gocm93KTsKKworICAgICAgICAgICAgICAgIHRoaXMuX2Nv
ZGVNaXJyb3JTZWN0aW9uTWFwLnNldChrZXlmcmFtZVNlY3Rpb24sIGNvZGVNaXJyb3IpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXJvd3MubGVuZ3RoKSB7CisgICAgICAgICAg
ICAgICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93KFdJLlVJU3RyaW5n
KCJObyBTdHlsZXMiKSk7CisgICAgICAgICAgICAgICAgZW1wdHlSb3cuc2hvd0VtcHR5TWVzc2Fn
ZSgpOworICAgICAgICAgICAgICAgIHJvd3MucHVzaChlbXB0eVJvdyk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbi5ncm91cHMgPSBbbmV3IFdJLkRldGFpbHNT
ZWN0aW9uR3JvdXAocm93cyldOworICAgICAgICB9CisgICAgICAgIGlmICgha2V5ZnJhbWVTZWN0
aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxldCBlbXB0eVJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblJvdyhXSS5VSVN0cmluZygiTm8gS2V5ZnJhbWVzIikpOworICAgICAgICAgICAgZW1w
dHlSb3cuc2hvd0VtcHR5TWVzc2FnZSgpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9ucy5w
dXNoKGVtcHR5Um93KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9rZXlmcmFtZXNHcm91cC5y
b3dzID0ga2V5ZnJhbWVTZWN0aW9uczsKKyAgICB9CisKKyAgICBfcmVmcmVzaEJhY2t0cmFjZVNl
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgbGV0IGNhbGxGcmFtZXMgPSB0aGlzLl9hbmltYXRpb24u
YmFja3RyYWNlOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VUcmVlQ29udHJvbGxlci5jYWxsRnJh
bWVzID0gY2FsbEZyYW1lczsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50
LmhpZGRlbiA9ICFjYWxsRnJhbWVzLmxlbmd0aDsKKyAgICB9CisKKyAgICBfaGFuZGxlQW5pbWF0
aW9uRWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hFZmZl
Y3RTZWN0aW9uKCk7CisgICAgfQorCisgICAgX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQo
ZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCk7Cisg
ICAgfQorCisgICAgX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkKGV2
ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSB0aGlzLl9jb2RlTWlycm9yU2Vj
dGlvbk1hcC5nZXQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgY29kZU1pcnJvci5yZWZyZXNoKCk7
CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcwppbmRleCA0ZTVhOTBlMWYw
MzE3ZjBjNGViZjRmNzk5NzAyNzZjN2ZiZDI3ZjU4Li5jYzE2NmJkM2U2MGQzODFhNzVhMWExNzk0
M2FiZTIzNjcwN2E4YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCkBAIC0yMywx
MSArMjMsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0u
Y29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgewog
ICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiAu
cHJldmlldyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl
cjsKICAgICBhbGlnbi1pdGVtczogY2VudGVyOwpAQCAtMzYsMTcgKzM2LDE3IEBACiAgICAgcGFk
ZGluZzogMTVweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKy5jb250
ZW50LXZpZXcuY2FudmFzIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9u
OiBjb2x1bW47CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IC5wcmV2aWV3
ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIG1h
eC13aWR0aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhczpub3QoLnRhYikgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgeworLmNvbnRlbnQt
dmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAgIGRpc3BsYXk6IG5v
bmU7CiB9CiAKQEAgLTU2LDcgKzU2LDcgQEAKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNj
aGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisgICAg
LmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsK
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCmluZGV4IDliNGZkNmY2ZWQ3ZTFj
Yjc2Mzk3NTExMTAxMTUzMjQ2NTRkNThmMDEuLjk5M2RhNTEzZjJkZDU2MzNmZDc5NDgzZWE0Y2E5
ZmZiYTk2ZWZjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCkBAIC00NSw3ICs0NSw3
IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9u
SXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5n
KCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwogICAgICAgICB0
aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0ku
TmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKLSAgICAgICAgdGhpcy5fcmVm
cmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5yZWZyZXNoUHJldmlldywgdGhpcyk7CisgICAg
ICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJ
LkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuaGFuZGxlUmVmcmVzaEJ1
dHRvbkNsaWNrZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlk
IiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhp
ZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2
ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
YWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0
aGlzLl9zaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwpAQCAtNzcsNiArNzcsMjkgQEAgV0ku
Q2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNv
bnRlbnRWaWV3CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKKyAgICB9CisK
KyAgICAvLyBEcm9wWm9uZVZpZXcgZGVsZWdhdGUKKworICAgIGRyb3Bab25lU2hvdWxkQXBwZWFy
Rm9yRHJhZ0V2ZW50KGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBldmVu
dC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIik7CisgICAgfQorCisgICAgZHJv
cFpvbmVIYW5kbGVEcm9wKGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIGxldCBmaWxl
cyA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCAh
PT0gMSkgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMucmVh
ZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVz
dWx0KSk7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBpbml0aWFsTGF5b3V0KCkK
QEAgLTE2MCw2ICsxODMsMTMgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXND
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgaWYgKGlzQ2FyZCkK
ICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hQaXhlbFNpemUoKTsKKworICAgICAgICBpZiAoIWlz
Q2FyZCkgeworICAgICAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9IG5ldyBXSS5Ecm9wWm9uZVZp
ZXcodGhpcyk7CisgICAgICAgICAgICBkcm9wWm9uZVZpZXcudGV4dCA9IFdJLlVJU3RyaW5nKCJJ
bXBvcnQgUmVjb3JkaW5nIik7CisgICAgICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVu
dCA9IHRoaXMuZWxlbWVudDsKKyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyhkcm9wWm9uZVZp
ZXcpOworICAgICAgICB9CiAgICAgfQogCiAgICAgbGF5b3V0KCkKQEAgLTE5MSwxMyArMjIxLDYg
QEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX3VwZGF0ZUltYWdlR3JpZCgpOwogICAgIH0K
IAotICAgIHNob3duKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnNob3duKCk7Ci0KLSAgICAgICAg
dGhpcy5yZWZyZXNoUHJldmlldygpOwotICAgIH0KLQogICAgIGF0dGFjaGVkKCkKICAgICB7CiAg
ICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CkBAIC0yMjMsNiArMjQ2LDggQEAgV0kuQ2FudmFzQ29u
dGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3
CiAgICAgICAgIH0pOwogCiAgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZl
bnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZUltYWdlR3Jp
ZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOwogICAgIH0KIAogICAg
IGRldGFjaGVkKCkKQEAgLTI5MSwxMSArMzE2LDYgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBfcG9w
dWxhdGVDYW52YXNFbGVtZW50QnV0dG9uQ29udGV4dE1lbnUoY29udGV4dE1lbnUpCiAgICAgewot
ICAgICAgICBpZiAodGhpcy5fY2FudmFzTm9kZSkKLSAgICAgICAgICAgIFdJLmFwcGVuZENvbnRl
eHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9jYW52YXNOb2RlKTsKLQot
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKLQogICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQ2FudmFzIENvbnRleHQiKSwgKCkgPT4g
ewogICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVDYW52YXNDb250ZXh0KHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCwg
KHJlbW90ZU9iamVjdCkgPT4gewogICAgICAgICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0KQpA
QCAtMzA2LDYgKzMyNiwxMSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0Nv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgICAgICBXSS5jb25z
b2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9uV2l0aFJlc3VsdCh0
ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigp
OworCisgICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKQorICAgICAgICAgICAgV0kuYXBwZW5k
Q29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUp
OwogICAgIH0KIAogICAgIF9zaG93R3JpZEJ1dHRvbkNsaWNrZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwppbmRleCAxMGYzN2MwNDZiMGMyYTEyODJjNWVj
OTlkYzZjYjk5MGIyMjM2YzVmLi43ZGRiZjQ0YmU1ZDdlM2Y2ZjIxY2E3MjhjZWFmYmM2ZWU5NWZj
NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpAQCAt
MjQsMzEgKzI0LDM0IEBACiAgKi8KIAogLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgewot
ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgIGp1c3RpZnktY29udGVudDogdmFyKC0t
Y2FudmFzLW92ZXJ2aWV3LWNvbnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQpOwogICAgIGFsaWdu
LWl0ZW1zOiBmbGV4LXN0YXJ0OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAl
KTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgcGFkZGluZzogNHB4IDA7CiAKLSAgICAt
LWl0ZW0tbWFyZ2luOiAxMHB4OworICAgIC0tY2FudmFzLW92ZXJ2aWV3LWNvbnRlbnQtdmlldy1q
dXN0aWZ5LWNvbnRlbnQtZGVmYXVsdDogY2VudGVyOworICAgIC0tY2FudmFzLW92ZXJ2aWV3LWNv
bnRlbnQtdmlldy1qdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLWNhbnZhcy1vdmVydmlldy1jb250ZW50
LXZpZXctanVzdGlmeS1jb250ZW50LW92ZXJyaWRlLCB2YXIoLS1jYW52YXMtb3ZlcnZpZXctY29u
dGVudC12aWV3LWp1c3RpZnktY29udGVudC1kZWZhdWx0KSk7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGZsZXgtZ3JvdzogMDsK
LSAgICBtYXJnaW46IHZhcigtLWl0ZW0tbWFyZ2luKTsKKyAgICBmbGV4LXNocmluazogMDsKICAg
ICB3aWR0aDogNDAwcHg7CisgICAgbWFyZ2luOiA0cHg7CiAgICAgYm9yZGVyOiAxcHggc29saWQg
dmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgICBjdXJzb3I6IHBvaW50ZXI7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLAor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3ID4gaW1nIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFj
dGl2ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgIGJvcmRlci1jb2xvcjogcmVkOwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVz
KGhlYWRlciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKICAgICBkaXNwbGF5
OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgZmxleC1zaHJpbms6IDA7CkBA
IC01OSwxMzYgKzYyLDEzNiBAQAogICAgIGN1cnNvcjogZGVmYXVsdDsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciB7CiAgICAgZm9udC1zaXplOiAxM3B4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3Jk
aW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciA+IC50aXRsZXMsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcyA+IGZvb3RlciA+IC5zaXplIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzLAorLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5zaXpl
IHsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUg
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+
IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9y
LWdyYXktZGFyayk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50
LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnkt
Y29zdCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKKy5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsK
ICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIC5zdWJ0
aXRsZTo6YmVmb3JlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBoZWFkZXIgLnN1YnRpdGxlOjpiZWZvcmUgewogICAgIGNvbnRlbnQ6ICJc
MDBBMFwyMDE0XDAwQTAiOyAvKiAmbmJzcDsmbWRhc2g7Jm5ic3A7ICovOwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0
aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIg
PiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogd2hpdGU7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUg
PiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+
IC50aXRsZXMgPiAuc3VidGl0bGUgewogICAgIGNvbG9yOiB2YXIoLS1zZWxlY3RlZC1zZWNvbmRh
cnktdGV4dC1jb2xvcik7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAu
aXRlbSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgpOwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC5u
YXZpZ2F0aW9uLWJhciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBhbGlnbi1pdGVt
czogaW5pdGlhbDsKICAgICBib3JkZXI6IG5vbmU7CiAgICAgb3BhY2l0eTogMDsKICAgICB0cmFu
c2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJlY29y
ZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5y
ZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgb3BhY2l0
eTogMTsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJl
Y29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3Jk
LXN0YXJ0LXN0b3AuZGlzYWJsZWQgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5h
dmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJsZWQgewogICAgIGZp
bHRlcjogZ3JheXNjYWxlKCk7CiAgICAgb3BhY2l0eTogMC41OwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3Rp
dmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6
bm90KC5kaXNhYmxlZCk6aG92ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5h
dmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6aG92
ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg5NSUpOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUp
ID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90
KC5kaXNhYmxlZCk6YWN0aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZp
Z2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmFjdGl2
ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDgwJSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJv
Z3Jlc3MtdmlldywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXcsCisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZp
ZXcgewogICAgIGhlaWdodDogMjgwcHg7CiAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xv
ciAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3Omhv
dmVyLAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMg
PiAucHJldmlldzpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAu
cHJldmlldzpob3ZlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NiUpOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByZXZpZXcgewog
ICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAg
ICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm94LXNoYWRvdzogMXB4IDJweCA2cHggcmdiYSgw
LCAwLCAwLCAwLjU4KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmlldyB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcg
PiAubWVzc2FnZS10ZXh0LXZpZXcgewogICAgIHBvc2l0aW9uOiBzdGF0aWM7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgewogICAgIGJvcmRlci10b3A6IG5vbmU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1p
dGVtcyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyB7CiAgICAgZGlzcGxheTogZmxleDsK
ICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMg
PiA6bWF0Y2hlcygudmlldy1zaGFkZXIsIC52aWV3LXJlY29yZGluZykgeworLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3
LXJlbGF0ZWQtaXRlbXMgPiA6bWF0Y2hlcygudmlldy1zaGFkZXIsIC52aWV3LXJlY29yZGluZykg
ewogICAgIHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1y
ZWxhdGVkLWl0ZW1zID4gaW1nICsgaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4g
aW1nICsgaW1nIHsKICAgICAtd2Via2l0LW1hcmdpbi1zdGFydDogNHB4OwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52
aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1zaGFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQt
aXRlbXMgPiAudmlldy1zaGFkZXIgewogICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1h
Z2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykg
MngpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1yZWNvcmRpbmcgewor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1yZWNvcmRpbmcgewogICAgIGNvbnRl
bnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLmZsZXhpYmxlLXNw
YWNlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBmb290ZXIgPiAuZmxleGlibGUtc3BhY2UgewogICAgIGZsZXg6IDE7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5t
ZW1vcnktY29zdCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgLXdlYmtpdC1wYWRkaW5nLXN0
YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIHsKICAgICBoZWlnaHQ6
IDM0MHB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50
cmVlLW91dGxpbmUgewogICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAu
dHJlZS1vdXRsaW5lID4gLml0ZW0ucmVjb3JkaW5nID4gLmljb24geworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50
cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CiAgICAgY29udGVudDogdXJs
KC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIApAQCAtMjA5LDQzICsyMTIsMzkgQEAKIH0K
IAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7Ci0g
ICAgfQotCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMgPiAucHJldmlldyA+IGltZyB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcywKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeSk7CiAgICAg
fQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAotICAgIC5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92
ZXIgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAorICAgIC5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmll
dzpob3ZlciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29s
b3ItdGVydGlhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgeworICAgIC5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSB7CiAgICAgICAgIC0tcmVjb3JkaW5nLWNvbG9yOiBoc2woMCwgMTAwJSwgMzklKTsKICAgICAg
ICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yZWNvcmRpbmctY29sb3IpOwogICAgIH0KIAotICAgIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgPiBoZWFkZXIgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAgICAgfQogCi0gICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAg
ICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRs
ZXMgPiAuc3VidGl0bGUsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKyAgICAuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxl
cyA+IC5zdWJ0aXRsZSwKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgICAgIGNvbG9yOiB2
YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLnZpZXctcmVjb3Jk
aW5nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gZm9vdGVyIC52aWV3LXJlY29yZGluZyB7CiAgICAgICAgIGZpbHRlcjogaW52ZXJ0
KCk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0
bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewog
ICAgICAgICBjb2xvcjogdW5zZXQ7CiAgICAgICAgIG9wYWNpdHk6IDAuNQogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCmluZGV4IDYzOWIzNmQ4NTliYjdj
ZjNjMzQ0NDVhYTBlYjc0OTU0MzNjNDEwOTguLjBkMTY1ZGQyNjhkNDM3MDI4YTQzZDE0OWUwN2Nm
YTgzOGI0ZGU3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5q
cwpAQCAtMjksNyArMjksOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3Mg
Q2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgIHsKICAgICAg
ICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXND
b2xsZWN0aW9uKTsKIAotICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVyID0gV0kuY3JlYXRl
TWVzc2FnZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4dHMiKSk7CisgICAg
ICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRl
ZCA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIDogV0kuY3JlYXRlTWVzc2FnZVRleHRW
aWV3KFdJLlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4dHMiKSk7CisKICAgICAgICAgbGV0IGRl
c2NyaXB0aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5jbGFz
c05hbWUgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENv
bnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQg
Ynkgc2NyaXB0IG9yIENTUy4iKTsKQEAgLTYyLDIxICs2Myw3IEBAIFdJLkNhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29sbGVjCiAgICAgICAgICAgICB0aGlzLl91cGRhdGVSZWNvcmRpbmdBdXRvQ2FwdHVyZUNoZWNr
Ym94TGFiZWwoZnJhbWVDb3VudCk7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9pbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0
LXJlY29yZGluZyIsIFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwg
MTUsIDE1KTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbHRp
cCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQiKTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2
aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5J
bWFnZUFuZFRleHQ7Ci0KLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVt
ID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoLWFsbCIsIFdJLlVJU3RyaW5n
KCJSZWZyZXNoIGFsbCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKLSAgICAg
ICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAg
ICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fcmVmcmVzaFByZXZp
ZXdzLCB0aGlzKTsKLQotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVt
ID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJ
U3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5z
cGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywg
MTMpOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRl
ZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKLSAgICAgICAgdGhpcy5fc2hv
d0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu
X3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1dHRvbkNsaWNrZWQs
IHRoaXMpOwotCiAgICAgICAgIGltcG9ydE5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0
QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5faW1wb3J0
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bUNsaWNrZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRW
aWV3ID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUgPSBu
dWxsOwpAQCAtOTAsMTcgKzc3LDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAKICAgICBn
ZXQgbmF2aWdhdGlvbkl0ZW1zKCkKICAgICB7Ci0gICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMg
PSBbdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdh
dGlvbkl0ZW0sIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwgdGhpcy5fc2hvd0dy
aWRCdXR0b25OYXZpZ2F0aW9uSXRlbV07Ci0gICAgICAgIGlmIChXSS5DYW52YXNNYW5hZ2VyLnN1
cHBvcnRzUmVjb3JkaW5nQXV0b0NhcHR1cmUoKSkKLSAgICAgICAgICAgIG5hdmlnYXRpb25JdGVt
cy51bnNoaWZ0KHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0sIG5ldyBX
SS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0g
W107CisgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVt
KQorICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5fcmVjb3JkaW5nQXV0b0Nh
cHR1cmVOYXZpZ2F0aW9uSXRlbSk7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7CiAg
ICAgfQogCi0gICAgaGlkZGVuKCkKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCiAg
ICAgewotICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Ci0KLSAg
ICAgICAgc3VwZXIuaGlkZGVuKCk7CisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5z
dWJ2aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXND
b250ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTExNSwy
MyArMTAzLDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLnJl
bW92ZVN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcpOwogICAgICAgICAg
ICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3KTsKICAg
ICAgICAgfQotCi0gICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpOwogICAgIH0K
IAogICAgIGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKICAgICB7CiAgICAgICAgIGNv
bnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMu
X2NvbnRlbnRWaWV3TW91c2VFbnRlcik7CiAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2NvbnRlbnRWaWV3TW91c2VMZWF2
ZSk7Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7CiAgICAgfQogCiAg
ICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKIAotICAgICAg
ICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5F
dmVudC5DaGFuZ2VkLCB0aGlzLl91cGRhdGVTaG93SW1hZ2VHcmlkLCB0aGlzKTsKICAgICAgICAg
V0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkLmFkZEV2ZW50TGlz
dGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVDYW52YXNSZWNvcmRp
bmdBdXRvQ2FwdHVyZUVuYWJsZWRDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3Mu
Y2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LmFkZEV2ZW50TGlzdGVuZXIoV0ku
U2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVDYW52YXNSZWNvcmRpbmdBdXRvQ2Fw
dHVyZUZyYW1lQ291bnRDaGFuZ2VkLCB0aGlzKTsKIApAQCAtMTQxLDQ5ICsxMjQsMjcgQEAgV0ku
Q2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1Ry
ZWVPdXRsaW5lLnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBv
ZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykKICAgICAgICAgICAgIHRoaXMuX2Fk
ZFNhdmVkUmVjb3JkaW5nKHJlY29yZGluZyk7CisKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBv
ZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJ
LkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcucmVmcmVzaFByZXZp
ZXcoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGRldGFjaGVkKCkKICAgICB7CisgICAgICAg
IFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKwogICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAg
ICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LnJlbW92
ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdzLmNh
bnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC5yZW1vdmVFdmVudExpc3RlbmVyKG51bGws
IG51bGwsIHRoaXMpOwotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnJlbW92ZUV2
ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgc3VwZXIuZGV0YWNoZWQo
KTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBnZXQgX2l0ZW1NYXJnaW4oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMu
ZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgiLS1pdGVtLW1hcmdpbiIpKTsKLSAgICB9Ci0KLSAg
ICBfcmVmcmVzaFByZXZpZXdzKCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGNhbnZhc0NvbnRl
bnRWaWV3IG9mIHRoaXMuc3Vidmlld3MpCi0gICAgICAgICAgICBjYW52YXNDb250ZW50Vmlldy5y
ZWZyZXNoUHJldmlldygpOwotICAgIH0KLQotICAgIF91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKQot
ICAgIHsKLSAgICAgICAgbGV0IGhhc0l0ZW1zID0gISF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNp
emU7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0g
aGFzSXRlbXM7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5h
YmxlZCA9IGhhc0l0ZW1zOwotICAgIH0KLQotICAgIF9zaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZl
bnQpCi0gICAgewotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRo
aXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOwotICAgIH0KLQotICAg
IF91cGRhdGVTaG93SW1hZ2VHcmlkKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlk
LnZhbHVlOwotICAgIH0KLQogICAgIF9jb250ZW50Vmlld01vdXNlRW50ZXIoZXZlbnQpCiAgICAg
ewogICAgICAgICBsZXQgY29udGVudFZpZXcgPSBXSS5WaWV3LmZyb21FbGVtZW50KGV2ZW50LnRh
cmdldCk7CkBAIC0zMDEsOCArMjYyLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9
IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAg
ICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUuZWxlbWVudCk7CiAgICAgICAgIH0K
IAotICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgIGxldCByZWNvcmRpbmdU
cmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVj
b3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKKyAgICAgICAgbGV0IHJl
Y29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGlu
ZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIFdJLlJlY29yZGluZy5kaXNwbGF5TmFtZUZvclJl
Y29yZGluZ1R5cGUocmVjb3JkaW5nLnR5cGUpLCByZWNvcmRpbmcpOwogICAgICAgICByZWNvcmRp
bmdUcmVlRWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVj
b3JkaW5nc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKaW5kZXggYzJiYmRjMDJlOWU4OTZiNDJi
MWI2M2QzMzRiY2ZmMjJkODI3NGExOS4uYzcxMWZhZjQ2MmI3NmU1ZTkwODI3NDdmMTdmOTJlYTg2
YjFmYjBiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwpAQCAtMjM3LDEwICsyMzcs
OCBAQCBXSS5DYW52YXNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52YXNTaWRlYmFyUGFuZWwgZXh0
ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogCiAgICAgY2FuU2hvd1JlcHJlc2VudGVkT2Jq
ZWN0KHJlcHJlc2VudGVkT2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgICAgICByZXR1cm4gc3VwZXIuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJl
cHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQ2FudmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLlJlY29yZGluZzsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRl
bnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc1RhYkNvbnRlbnRWaWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODlk
YWI1ZWY5OTc5ZDYyYjgxMTU5ODlhOTE2NDA0MTNjNzJhOGNkYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MKKysrIC9kZXYvbnVsbApAQCAt
MSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZp
Z2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24gewotICAgIGNvbnRlbnQ6
IHVybCguLi9JbWFnZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50
YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMuY2FudmFzLTJkIC5pY29u
IHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczJELnN2Zyk7Ci19Ci0KLS5jb250
ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNo
ZXMoLndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29uIHsKLSAgICBjb250
ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFi
LmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24gewotICAg
IGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZp
ZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuc2hhZGVyLXByb2dyYW0gPiAu
aWNvbiB7Ci0gICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5w
bmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7Ci19Ci0KLUBtZWRp
YSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3LnRhYi5j
YW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0g
ICAgICAgIGZpbHRlcjogaW52ZXJ0KDYwJSk7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQtdmlldy50
YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMgLmljb24sCi0gICAgLmNv
bnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcg
PiAuaWNvbiB7Ci0gICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29u
dGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNUYWJDb250ZW50Vmlldy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUx
ZGJlNDgwMWU1NTdiYzdjMjBlNTJlYzc3YzgwOTk5ZDU2YThkNS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDI5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFz
cyBDYW52YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQ29udGVu
dFZpZXcKLXsKLSAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCFyZXByZXNlbnRlZE9iamVjdCB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IHRhYkJhckl0ZW0gPSBXSS5H
ZW5lcmFsVGFiQmFySXRlbS5mcm9tVGFiSW5mbyhXSS5DYW52YXNUYWJDb250ZW50Vmlldy50YWJJ
bmZvKCkpOwotCi0gICAgICAgIGNvbnN0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3Rv
ciA9IFdJLkNhbnZhc1NpZGViYXJQYW5lbDsKLSAgICAgICAgY29uc3QgZGV0YWlsc1NpZGViYXJQ
YW5lbENvbnN0cnVjdG9ycyA9IFtXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWws
IFdJLlJlY29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbCwgV0kuQ2FudmFzRGV0YWlsc1Np
ZGViYXJQYW5lbF07Ci0gICAgICAgIGNvbnN0IGRpc2FibGVCYWNrRm9yd2FyZCA9IHRydWU7Ci0g
ICAgICAgIHN1cGVyKCJjYW52YXMiLCBbImNhbnZhcyJdLCB0YWJCYXJJdGVtLCBuYXZpZ2F0aW9u
U2lkZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMs
IGRpc2FibGVCYWNrRm9yd2FyZCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbiA9
IG5ldyBXSS5DYW52YXNDb2xsZWN0aW9uOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRs
aW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGlu
ZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVl
T3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRp
ZENoYW5nZSwgdGhpcy5fY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMp
OwotCi0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRy
ZWVFbGVtZW50KCJjYW52YXMtb3ZlcnZpZXciLCBXSS5VSVN0cmluZygiT3ZlcnZpZXciKSwgbnVs
bCwgdGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRs
aW5lLmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRo
aXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50ID0gbmV3IFdJLkZvbGRlclRyZWVFbGVtZW50
KFdJLlVJU3RyaW5nKCJTYXZlZCBSZWNvcmRpbmdzIiksIFdJLlJlY29yZGluZ0NvbGxlY3Rpb24p
OwotICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSB0cnVl
OwotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Nh
dmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1
dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5
LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fcmVj
b3JkU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwotICAgICAgICB0
aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5fcmVj
b3JkU2luZ2xlRnJhbWVTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJv
YXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNl
LCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2lu
Z2xlRnJhbWVTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0gICAg
ICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0g
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7Ci0gICAgfQotCi0gICAgc3RhdGljIHRh
YkluZm8oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIGltYWdlOiAiSW1h
Z2VzL0NhbnZhcy5zdmciLAotICAgICAgICAgICAgdGl0bGU6IFdJLlVJU3RyaW5nKCJDYW52YXMi
KSwKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaXNUYWJBbGxvd2VkKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQ2FudmFzIik7Ci0g
ICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICB0cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2Jq
ZWN0KHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2NhbnZh
c1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgfQot
Ci0gICAgZ2V0IHR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRl
bnRWaWV3LlR5cGU7Ci0gICAgfQotCi0gICAgZ2V0IHN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3Nl
cigpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBnZXQgbWFuYWdl
c05hdmlnYXRpb25TaWRlYmFyUGFuZWwoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotCi0gICAgY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZh
c0NvbGxlY3Rpb24KLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuUmVjb3JkaW5nCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLlNoYWRlclByb2dyYW07Ci0gICAgfQotCi0gICAgc2hvd24oKQotICAgIHsKLSAgICAgICAg
c3VwZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9
IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVk
ID0gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250
ZW50VmlldykKLSAgICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHRoaXMuX2Nh
bnZhc0NvbGxlY3Rpb24pOwotICAgIH0KLQotICAgIGhpZGRlbigpCi0gICAgewotICAgICAgICB0
aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3JlY29y
ZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgIHN1cGVyLmhp
ZGRlbigpOwotICAgIH0KLQotICAgIGNsb3NlZCgpCi0gICAgewotICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmRpc2FibGUoKTsKLQotICAgICAgICBzdXBlci5jbG9zZWQoKTsKLSAgICB9Ci0KLSAg
ICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0
ZS4KLSAgICB9Ci0KLSAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUpCi0gICAgewotICAgICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4g
aXMgY29tcGxldGUuCi0gICAgfQotCi0gICAgYXN5bmMgaGFuZGxlRmlsZURyb3AoZmlsZXMpCi0g
ICAgewotICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVz
dWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOwotICAgIH0KLQot
ICAgIC8vIFByb3RlY3RlZAotCi0gICAgYXR0YWNoZWQoKQotICAgIHsKLSAgICAgICAgc3VwZXIu
YXR0YWNoZWQoKTsKLQotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRk
ZWQsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1v
dmVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGlu
Z1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKLSAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGlu
Z1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKLQotICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzOwotCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiB0aGlzLl9j
YW52YXNDb2xsZWN0aW9uKSB7Ci0gICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmluY2x1ZGVzKGNh
bnZhcykpCi0gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgY2FudmFzZXMpIHsKLSAgICAgICAg
ICAgIGlmICghdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5oYXMoY2FudmFzKSkKLSAgICAgICAgICAg
ICAgICB0aGlzLl9hZGRDYW52YXMoY2FudmFzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMu
X3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIGZv
ciAobGV0IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykKLSAg
ICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIHtzdXBwcmVzc1Nob3dSZWNv
cmRpbmc6IHRydWV9KTsKLSAgICB9Ci0KLSAgICBkZXRhY2hlZCgpCi0gICAgewotICAgICAgICBX
SS5DYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKLSAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwot
Ci0gICAgICAgIHN1cGVyLmRldGFjaGVkKCk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0g
ICAgX2FkZENhbnZhcyhjYW52YXMpCi0gICAgewotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVF
bGVtZW50LmFwcGVuZENoaWxkKG5ldyBXSS5DYW52YXNUcmVlRWxlbWVudChjYW52YXMpKTsKLSAg
ICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5hZGQoY2FudmFzKTsKLQotICAgICAgICBjb25z
dCBvcHRpb25zID0gewotICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlLAot
ICAgICAgICB9OwotCi0gICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3Jk
aW5nQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcs
IG9wdGlvbnMpOwotICAgIH0KLQotICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQotICAgIHsKLSAg
ICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuZmluZFRyZWVF
bGVtZW50KGNhbnZhcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlz
c2luZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOwotCi0gICAgICAgIGNvbnN0
IHN1cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKLSAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxl
Y3Qoc3VwcHJlc3NOb3RpZmljYXRpb24pOwotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVt
ZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xs
ZWN0aW9uLnJlbW92ZShjYW52YXMpOwotCi0gICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcg
PSB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKLSAgICAgICAgaWYgKGN1
cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQotICAgICAg
ICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwot
ICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5SZWNvcmRp
bmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMoY3VycmVudENv
bnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKLSAgICAgICAgICAgIHRoaXMuY29udGVudEJy
b3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50VmlldygpOwotCi0g
ICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJh
clBhbmVsOwotICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBpbnN0YW5jZW9mIFdJ
LkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnZpc2libGUpCi0g
ICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJlc2VudGVkT2JqZWN0
cygpOwotCi0gICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxzKCk7Ci0gICAgfQot
Ci0gICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkKLSAgICB7Ci0gICAg
ICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgewotICAgICAgICAgICAgY29uc3Qgc3VidGl0bGUg
PSBudWxsOwotICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdl
bmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1
YnRpdGxlLCByZWNvcmRpbmcpOwotICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJl
ZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGlu
Z3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nKQotICAgICAg
ICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVjb3JkaW5nKTsKLSAgICB9Ci0KLSAg
ICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9hZGRDYW52
YXMoZXZlbnQuZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAgIF9oYW5kbGVDYW52YXNSZW1vdmVk
KGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGV2ZW50LmRhdGEuY2Fu
dmFzKTsKLSAgICB9Ci0KLSAgICBfY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2Uo
ZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5fY2FudmFz
VHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAgaWYgKCFzZWxlY3RlZEVs
ZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHJlcHJlc2VudGVkT2Jq
ZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwotICAgICAgICBpZiAoIXRo
aXMuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KSkgewotICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJlcHJlc2VudGVkT2JqZWN0
LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsK
LSAgICB9Ci0KLSAgICBfaGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQoZXZlbnQpCi0gICAg
ewotICAgICAgICBsZXQge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyLCBpbXBvcnRlZH0gPSBl
dmVudC5kYXRhOwotICAgICAgICBpZiAoIXJlY29yZGluZykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OwotCi0gICAgICAgIC8vIEFsd2F5cyBzaG93IGlt
cG9ydGVkIHJlY29yZGluZ3MuCi0gICAgICAgIGlmIChyZWNvcmRpbmcuc291cmNlIHx8ICFpbXBv
cnRlZCkKLSAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nID0gIWluaXRp
YXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9iamVj
dHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuUmVjb3JkaW5nKTsKLQotICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5n
LCBvcHRpb25zKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlU3BhY2UoZXZlbnQpCi0gICAgewotICAg
ICAgICBpZiAoV0kuaXNFdmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChldmVudCkpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGNhbnZhcyA9IHRoaXMubmF2aWdh
dGlvblNpZGViYXJQYW5lbC5jYW52YXM7Ci0gICAgICAgIGlmICghY2FudmFzKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5nQWN0aXZlKQotICAgICAg
ICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2ZW50LnNoaWZ0S2V5OwotICAgICAgICAgICAgY2FudmFz
LnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKLSAgICAgICAgfQotCi0gICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfQotfTsKLQotV0kuQ2FudmFzVGFiQ29udGVudFZpZXcu
VHlwZSA9ICJjYW52YXMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKaW5k
ZXggZmUzM2U3YWNkOWYxNjFiMmNjMGNlNzFjZDUyNGE0OTFhZGQzM2MyYi4uODJjYmNmYThiYjUw
NDNiM2NmZTVhNzYzMjNiZDEwNDljZDVjNTcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29u
dGVudFZpZXcuY3NzCkBAIC0yNSwyMiArMjUsMzQgQEAKIAogLmNvbnRlbnQtdmlldy5jb2xsZWN0
aW9uIHsKICAgICBkaXNwbGF5OiBmbGV4OwotICAgIGZsZXgtd3JhcDogd3JhcDsKLSAgICBvdmVy
Zmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7CisgICAgZmxleC13cmFwOiB2YXIoLS1jb2xsZWN0aW9u
LWNvbnRlbnQtdmlldy1mbGV4LXdyYXApOworICAgIG92ZXJmbG93LXg6IHZhcigtLWNvbGxlY3Rp
b24tY29udGVudC12aWV3LW92ZXJmbG93LXgpICFpbXBvcnRhbnQ7CisgICAgb3ZlcmZsb3cteTog
dmFyKC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctb3ZlcmZsb3cteSkgIWltcG9ydGFudDsKKwor
ICAgIC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwLWRlZmF1bHQ6IHdyYXA7Cisg
ICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy14LWRlZmF1bHQ6IGhpZGRlbjsK
KyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXktZGVmYXVsdDogYXV0bzsK
KworICAgIC0tY29sbGVjdGlvbi1jb250ZW50LXZpZXctZmxleC13cmFwOiB2YXIoLS1jb2xsZWN0
aW9uLWNvbnRlbnQtdmlldy1mbGV4LXdyYXAtb3ZlcnJpZGUsIHZhcigtLWNvbGxlY3Rpb24tY29u
dGVudC12aWV3LWZsZXgtd3JhcC1kZWZhdWx0KSk7CisgICAgLS1jb2xsZWN0aW9uLWNvbnRlbnQt
dmlldy1vdmVyZmxvdy14OiB2YXIoLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy14
LW92ZXJyaWRlLCB2YXIoLS1jb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy14LWRlZmF1
bHQpKTsKKyAgICAtLWNvbGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXk6IHZhcigtLWNv
bGxlY3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXktb3ZlcnJpZGUsIHZhcigtLWNvbGxlY3Rp
b24tY29udGVudC12aWV3LW92ZXJmbG93LXktZGVmYXVsdCkpOwogfQogCiAuY29udGVudC12aWV3
LmNvbGxlY3Rpb24gPiAuY29udGVudC12aWV3IHsKICAgICBmbGV4LWdyb3c6IDE7CiB9CiAKLS5j
b250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nIHsKLSAgICBvdXRsaW5l
OiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwotfQotCi0uY29udGVudC12aWV3LmNv
bGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZzpob3ZlciB7Ci0gICAgb3V0bGluZS1jb2xvcjog
dmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKQotfQotCiAuY29udGVudC12aWV3LmNvbGxlY3Rpb24g
PiAuY29udGVudC12aWV3W2hpZGRlbl0gewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CisKKy5jb250
ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRlcjpub3QoLm1lc3NhZ2UtdGV4dC12aWV3
KSB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAg
IGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAg
d2lkdGg6IDEwMCU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogMTNw
eDsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9u
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggMDU0NzQxNjgxYzgxOGJlNWJjYWE1ZDZm
ZjE5ZDUzNzI5YjdiMzg2Ni4uZDRlNjFlMDgyNTUwY2E1ZDM4NjAyMmRlZjBlZmIzOTU1ZThjYjU2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMjgsNyArMjgsNyBA
QCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgIGNvbnN0cnVjdG9yKGNvbGxlY3Rpb24sIGNvbnRl
bnRWaWV3Q29uc3RydWN0b3IsIGNvbnRlbnRQbGFjZWhvbGRlcikKICAgICB7CiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGNvbGxlY3Rpb24gaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKTsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXdDb25zdHJ1Y3RvciBpbnN0YW5jZW9mIFdJLkNv
bnRlbnRWaWV3KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWNvbnRlbnRWaWV3Q29uc3RydWN0
b3IgfHwgY29udGVudFZpZXdDb25zdHJ1Y3Rvci5wcm90b3R5cGUgaW5zdGFuY2VvZiBXSS5Db250
ZW50Vmlldyk7CiAKICAgICAgICAgc3VwZXIoY29sbGVjdGlvbik7CiAKQEAgLTM4LDcgKzM4LDYg
QEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVy
RWxlbWVudCA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IgPSBj
b250ZW50Vmlld0NvbnN0cnVjdG9yOwogICAgICAgICB0aGlzLl9jb250ZW50Vmlld01hcCA9IG5l
dyBNYXA7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwID0gbmV3IFdlYWtNYXA7CiAgICAg
ICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkVu
YWJsZWQgPSBmYWxzZTsKICAgICB9CkBAIC04MywxOSArODIsMjUgQEAgV0kuQ29sbGVjdGlvbkNv
bnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7CiAgICAgfQogCi0gICAg
c2V0U2VsZWN0ZWRJdGVtKGl0ZW0pCisgICAgZ2V0IHNlbGVjdGVkSXRlbSgpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtOworICAgIH0KKworICAgIHNldCBzZWxlY3Rl
ZEl0ZW0oaXRlbSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3NlbGVjdGlv
bkVuYWJsZWQsICJBdHRlbXB0ZWQgdG8gc2V0IHNlbGVjdGVkIGl0ZW0gd2hlbiBzZWxlY3Rpb24g
aXMgZGlzYWJsZWQuIik7CiAgICAgICAgIGlmICghdGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgY29udGVudFZpZXcgPSB0aGlzLl9jb250
ZW50Vmlld01hcC5nZXQoaXRlbSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3
LCAiTWlzc2luZyBjb250ZXQgdmlldyBmb3IgaXRlbS4iLCBpdGVtKTsKLSAgICAgICAgaWYgKCFj
b250ZW50VmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB0aGlzLl9zZWxlY3RJ
dGVtKGl0ZW0pOwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnNjcm9sbEludG9WaWV3SWZO
ZWVkZWQoKTsKKworICAgICAgICBpZiAoaXRlbSkgeworICAgICAgICAgICAgbGV0IGNvbnRlbnRW
aWV3ID0gdGhpcy5fY29udGVudFZpZXdNYXAuZ2V0KGl0ZW0pOworICAgICAgICAgICAgY29uc29s
ZS5hc3NlcnQoY29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRldCB2aWV3IGZvciBpdGVtLiIsIGl0
ZW0pOworICAgICAgICAgICAgaWYgKGNvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIGNvbnRl
bnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0xMjAsMjAgKzEyNSw5IEBAIFdJLkNvbGxlY3Rpb25D
b250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAKICAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gbmV3IHRoaXMuX2NvbnRlbnRWaWV3
Q29uc3RydWN0b3IoaXRlbSwgdGhpcy5jb250ZW50Vmlld0NvbnN0cnVjdG9yT3B0aW9ucyk7CiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ29udGVudFZp
ZXcpOwotCi0gICAgICAgIGxldCBoYW5kbGVDbGljayA9IChldmVudCkgPT4gewotICAgICAgICAg
ICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCi0g
ICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVtKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRlbSk7Ci0gICAgICAg
IH07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0
ID09PSBpdGVtKTsKIAogICAgICAgICB0aGlzLl9jb250ZW50Vmlld01hcC5zZXQoaXRlbSwgY29u
dGVudFZpZXcpOwotICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcC5zZXQoaXRlbSwgaGFuZGxl
Q2xpY2spOwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgaGFuZGxlQ2xpY2spOwogCiAgICAgICAgIHRoaXMuYWRkU3Vidmlldyhjb250ZW50Vmll
dyk7CiAgICAgICAgIHRoaXMuY29udGVudFZpZXdBZGRlZChjb250ZW50Vmlldyk7CkBAIC0xNjks
MTQgKzE2Myw2IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgY29udGVudFZpZXcu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAotICAgICAgICBsZXQgaGFu
ZGxlQ2xpY2sgPSB0aGlzLl9oYW5kbGVDbGlja01hcC5nZXQoaXRlbSk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGhhbmRsZUNsaWNrKTsKLQotICAgICAgICBpZiAoaGFuZGxlQ2xpY2spIHsKLSAg
ICAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBoYW5kbGVDbGljayk7Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcC5kZWxldGUo
aXRlbSk7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoIXRoaXMuc3Vidmlld3MubGVuZ3RoKQog
ICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVyKCk7CiAgICAgfQpAQCAtMjAw
LDYgKzE4Niw4IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICAgICAgdGhpcy5f
Y29udGVudFBsYWNlaG9sZGVyRWxlbWVudCA9IHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlcjsKICAg
ICAgICAgfQogCisgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQuY2xhc3NM
aXN0LmFkZCgicGxhY2Vob2xkZXIiKTsKKwogICAgICAgICBpZiAoIXRoaXMuX2NvbnRlbnRQbGFj
ZWhvbGRlckVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50KTsKICAgICB9CkBAIC0yMTIs
MTAgKzIwMCwxMSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9u
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgaW5pdGlhbExheW91dCgp
CiAgICAgewotICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZSB8fCAhdGhp
cy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikgeworICAgICAgICBpZiAodGhpcy5fY29udGVudFZp
ZXdDb25zdHJ1Y3RvcikKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworCisgICAgICAgIGlmICgh
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVj
dG9yKQogICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVyKCk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBhdHRhY2hlZCgpCkBAIC0yOTIs
NiArMjgxLDMwIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICBzZWxlY3RlZENv
bnRlbnRWaWV3LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKICAgICAgICAgfQog
CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNvbGxlY3Rpb25Db250
ZW50Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2VkKTsKICAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVz
ZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKICAgICB9CisKKyAgICBfaGFuZGxlQ2xpY2soZXZlbnQp
CisgICAgeworICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgW2l0ZW0sIGNvbnRlbnRW
aWV3XSBvZiB0aGlzLl9jb250ZW50Vmlld01hcCkgeworICAgICAgICAgICAgaWYgKGNvbnRlbnRW
aWV3LmVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgeworICAgICAgICAgICAgICAgIGlm
ICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxl
Y3RJdGVtKGl0ZW0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
V0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25F
bmFibGVkKQorICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKKyAgICB9Cit9Owor
CitXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQgPSB7CisgICAgU2VsZWN0ZWRJdGVtQ2hh
bmdlZDogImNvbGxlY3Rpb24tY29udGVudC12aWV3LXNlbGVjdGVkLWl0ZW0tY2hhbmdlZCIsCiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50Vmlldy5qcwppbmRleCBkZjkxMmRkNTZmYTA3ZGY5NDhmMGQ3ZjdhZjBkN2M2ZDFi
NzlhMmY2Li4yOTZjMmE1NDIzYTBmNjkxZWFjN2QyZDBlOTM2MDBmNTE1NGYwZGU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmll
dy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250
ZW50Vmlldy5qcwpAQCAtNjAsOSArNjAsNiBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNhbnZhc0NvbnRl
bnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKLSAgICAgICAgaWYg
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAg
ICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyhyZXByZXNlbnRl
ZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwotCiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJ
LlNoYWRlclByb2dyYW1Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVu
dHMpOwogCkBAIC0xODIsNiArMTc5LDkgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50
VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQXVkaXRUZXN0R3JvdXAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQXVkaXRU
ZXN0R3JvdXBDb250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwog
CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikK
KyAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcocmVwcmVzZW50
ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKKwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsK
IApAQCAtMjczLDggKzI3Myw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZh
c0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5U
aW1lbGluZVJlY29yZGluZykKQEAgLTMxOCwxMCArMzE2LDE0IEBAIFdJLkNvbnRlbnRWaWV3ID0g
Y2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2UgfHwgcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cAogICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5p
bWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgaWYgKHR5cGVvZiByZXByZXNlbnRlZE9iamVjdCA9PT0gInN0cmluZyIgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0W1dJLkNvbnRlbnRWaWV3LmlzVmll
d2FibGVTeW1ib2xdKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKQEAgLTUxMiw0ICs1MTQsNSBAQCBXSS5Db250ZW50Vmlldy5FdmVudCA9
IHsKICAgICBOYXZpZ2F0aW9uSXRlbXNEaWRDaGFuZ2U6ICJjb250ZW50LXZpZXctbmF2aWdhdGlv
bi1pdGVtcy1kaWQtY2hhbmdlIgogfTsKIAorV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJv
bCA9IFN5bWJvbCgiaXMtdmlld2FibGUiKTsKIFdJLkNvbnRlbnRWaWV3LkNvbnRlbnRWaWV3Rm9y
UmVwcmVzZW50ZWRPYmplY3RTeW1ib2wgPSBTeW1ib2woImNvbnRlbnQtdmlldy1mb3ItcmVwcmVz
ZW50ZWQtb2JqZWN0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzCmlu
ZGV4IGU1YTVmZWMxZWFiYjVjMDk3MmNmYTA1M2Q1MzRjMzYwMDllMWI3NmYuLjdlZDBjODJlYjNi
NzFlZWI2YmJiMWY5N2U5NzkwZjZiYmJjNTU2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0
aW9uU2ltcGxlUm93LmpzCkBAIC05Niw3ICs5Niw3IEBAIFdJLkRldGFpbHNTZWN0aW9uU2ltcGxl
Um93ID0gY2xhc3MgRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cgZXh0ZW5kcyBXSS5EZXRhaWxzU2Vj
CiAgICAgewogICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8ICIiOwogCi0gICAgICAgIGlm
ICh0aGlzLl92YWx1ZSkgeworICAgICAgICBpZiAodGhpcy5fdmFsdWUgfHwgdGhpcy5fdmFsdWUg
PT09IDApIHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93LkVtcHR5U3R5bGVDbGFzc05hbWUpOwogCiAgICAgICAgICAg
ICAvLyBJZiB0aGUgdmFsdWUgaGFzIHNwYWNlIGNoYXJhY3RlcnMgdGhhdCBjYXVzZSB3b3JkIHdy
YXBwaW5nIHRoZW4gd2UgZG9uJ3QgbmVlZCB0aGUgZGF0YSBjbGFzcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYzg4ZWViZDJi
NzNhM2ZkZTZlOTg1NjE5M2IxMGY0MjI1ZjEzZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVu
dFZpZXcuY3NzCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3Vu
ZC1jb2xvci1jb250ZW50KTsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgcGFkZGluZy1i
b3R0b206IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogaHNsKDAsIDAlLCA5MCUpOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
ID4gc2VjdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGJhY2tncm91bmQtY29s
b3I6IGluaGVyaXQ7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uOm5vdCg6Zmlyc3QtY2hpbGQpIHsKKyAgICBtYXJnaW4tdG9wOiAyMHB4OworfQorCisuY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgeworICAgIGRp
c3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBwb3NpdGlvbjogc3Rp
Y2t5OworICAgIHRvcDogMDsKKyAgICB6LWluZGV4OiAxOworICAgIG1pbi1oZWlnaHQ6IHZhcigt
LW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA4cHg7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NyUpOworICAgIGJvcmRlci1ib3R0
b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3Lmdy
YXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRlciB7
CisgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5j
b250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxIHsK
KyAgICBtYXJnaW46IDA7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBz
ZWN0aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgZmxleC1ncm93OiAxOwor
ICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CisgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsK
K30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24uY2FudmFzID4g
LmNvbnRlbnQgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7CisgICAgLS1jb2xsZWN0
aW9uLWNvbnRlbnQtdmlldy1mbGV4LXdyYXAtb3ZlcnJpZGU6IG5vd3JhcDsKKyAgICAtLWNvbGxl
Y3Rpb24tY29udGVudC12aWV3LW92ZXJmbG93LXgtb3ZlcnJpZGU6IGF1dG87CisgICAgLS1jb2xs
ZWN0aW9uLWNvbnRlbnQtdmlldy1vdmVyZmxvdy15LW92ZXJyaWRlOiBoaWRkZW47CisgICAgLS1j
YW52YXMtb3ZlcnZpZXctY29udGVudC12aWV3LWp1c3RpZnktY29udGVudC1vdmVycmlkZTogZmxl
eC1zdGFydDsKK30KKworLyogRW5zdXJlIHRoYXQgc3RhcnQvZW5kIG1hcmdpbnMgb2Ygc3Vidmll
d3MgYXJlIHNob3duLiAqLworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rp
b24gPiAuY29udGVudCA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3Om1hdGNoZXMoOjpi
ZWZvcmUsIDo6YWZ0ZXIpIHsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBmbGV4LXNocmluazog
MDsKKyAgICB3aWR0aDogNHB4OworICAgIGNvbnRlbnQ6ICIiOworfQorCisuY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgeworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgYm90
dG9tOiAwOworICAgIGxlZnQ6IDA7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6
IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3IHsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAxNCUpOworICAgIH0KKworICAgIC5jb250ZW50
LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciB7CisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMjElKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzNiMDc1YWI5
YzQzNjk5ZjYxYzdlN2QxOTk2NTIwY2VhZTVmNTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LmpzCkBAIC0wLDAgKzEsMjA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBz
dXBlcigpOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJncmFwaGljcy1v
dmVydmlldyIpOworCisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
bmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJp
bmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOworICAgICAgICB0aGlz
Ll9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlTdHJpbmcoIkltcG9y
dCIpOworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHls
ZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKKyAgICAgICAg
dGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0
b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIs
IFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMp
OworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0
ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVS
ZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0
b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJz
aG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0
cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hl
Y2tlcnMuc3ZnIiwgMTMsIDEzKTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0
aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7Cisg
ICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5l
cihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVTaG93
R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcgPSBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyhXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworCisgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmlld3Mg
PSBbXTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBzdXBwbGVtZW50YWxSZXBy
ZXNlbnRlZE9iamVjdHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJ2aWV3Vmll
d3MuZmxhdE1hcCgoc3VidmlldykgPT4gc3Vidmlldy5zdXBwbGVtZW50YWxSZXByZXNlbnRlZE9i
amVjdHMpOworICAgIH0KKworICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQorICAgIHsKKyAgICAg
ICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFtdOworICAgICAgICBpZiAoIVdJLmFuaW1hdGlvbk1h
bmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaEFsbCh0
aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVtcyk7CisgICAgICAg
ICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaChuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsK
KyAgICAgICAgfQorICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9pbXBvcnRCdXR0
b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVm
cmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25J
dGVtKTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKKyAgICB9CisKKyAgICAvLyBQ
cm90ZWN0ZWQKKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVk
KCk7CisKKyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVy
KFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRp
bmdDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRp
bmdDaGFuZ2VkKCk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0ku
ZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAgIFdJLnNldHRpbmdz
LnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5n
ZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisKKyAg
ICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAg
ICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBpZiAoV0kuYW5p
bWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGxldCBjcmVhdGVTZWN0aW9u
ID0gKGlkZW50aWZpZXIsIHRpdGxlLCBvdmVydmlld1ZpZXcpID0+IHsKKyAgICAgICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChvdmVydmlld1ZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7
CisKKyAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbkVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIpKTsKKyAgICAgICAgICAg
ICAgICBzZWN0aW9uRWxlbWVudC5jbGFzc05hbWUgPSBpZGVudGlmaWVyOworCisgICAgICAgICAg
ICAgICAgbGV0IGhlYWRlckVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAgaGVhZGVyRWxlbWVu
dC5jbGFzc05hbWUgPSAiaGVhZGVyIjsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZUVsZW1l
bnQgPSBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgx
IikpOworICAgICAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOwor
CisgICAgICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IG92ZXJ2aWV3Vmlldy5uYXZp
Z2F0aW9uSXRlbXM7CisgICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25JdGVtcy5sZW5ndGgp
IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdh
dGlvbkJhcihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJuYXYiKSwgbmF2aWdhdGlvbkl0ZW1zKTsK
KyAgICAgICAgICAgICAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChuYXZpZ2F0aW9u
QmFyLmVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcobmF2aWdh
dGlvbkJhcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IGNvbnRl
bnRFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LmNsYXNzTmFtZSA9
ICJjb250ZW50IjsKKworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxk
KG92ZXJ2aWV3Vmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXco
b3ZlcnZpZXdWaWV3KTsKKworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExp
c3RlbmVyKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2Vk
LCB0aGlzLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzKTsKKyAg
ICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db250ZW50Vmll
dy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UsIHRoaXMuX2hh
bmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSwg
dGhpcyk7CisgICAgICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdWaWV3cy5wdXNoKG92ZXJ2aWV3
Vmlldyk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjYW52
YXMiLCBXSS5VSVN0cmluZygiQ2FudmFzZXMiKSwgdGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldyk7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uID0gV0kuYW5pbWF0
aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uOworICAgICAgICAgICAgY3JlYXRlU2VjdGlv
bigid2ViLWFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpLCBuZXcgV0ku
QW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0
aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uKSkpOwor
ICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigiY3NzLWFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJD
U1MgQW5pbWF0aW9ucyIpLCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KGFu
aW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9u
LlR5cGUuQ1NTQW5pbWF0aW9uKSkpOworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigiY3NzLXRy
YW5zaXRpb24iLCBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb25zIiksIG5ldyBXSS5BbmltYXRp
b25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uKSkpOworCisgICAg
ICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5k
bGVDbGljay5iaW5kKHRoaXMpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLmFk
ZFN1YnZpZXcodGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk7CisKKyAgICAgICAgbGV0
IGRyb3Bab25lVmlldyA9IG5ldyBXSS5Ecm9wWm9uZVZpZXcodGhpcyk7CisgICAgICAgIGRyb3Ba
b25lVmlldy50ZXh0ID0gV0kuVUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAgICAg
ZHJvcFpvbmVWaWV3LnRhcmdldEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgICAgIHRoaXMu
YWRkU3Vidmlldyhkcm9wWm9uZVZpZXcpOworICAgIH0KKworICAgIC8vIERyb3Bab25lVmlldyBk
ZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUs
IGV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5p
bmNsdWRlcygiRmlsZXMiKTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpv
bmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVy
LmZpbGVzOworICAgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkg
PT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKKyAgICAv
LyBQcml2YXRlCisKKyAgICBfaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAg
ICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpCisgICAg
ICAgICAgICBvdmVydmlld1ZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICB9
CisKKyAgICBfaGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZSA9ICF0aGlzLl9zaG93R3JpZEJ1dHRv
bk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZDsKKyAgICB9CisKKyAgICBfaGFuZGxlU2hvd0ltYWdl
R3JpZFNldHRpbmdDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZh
bHVlOworICAgIH0KKworICAgIF9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNr
ZWQoZXZlbnQpCisgICAgeworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmltcG9ydEpTT04oKHJl
c3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpLCB7bXVsdGlwbGU6
IHRydWV9KTsKKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hh
bmdlZChldmVudCkKKyAgICB7CisgICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnNlbGVjdGVkSXRl
bSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcg
b2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykgeworICAgICAgICAgICAgaWYgKG92ZXJ2aWV3VmlldyAh
PT0gZXZlbnQudGFyZ2V0ICYmIG92ZXJ2aWV3Vmlldy5zZWxlY3Rpb25FbmFibGVkKQorICAgICAg
ICAgICAgICAgIG92ZXJ2aWV3Vmlldy5zZWxlY3RlZEl0ZW0gPSBudWxsOworICAgICAgICB9Cisg
ICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2Jq
ZWN0c0RpZENoYW5nZShldm5ldCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2Jq
ZWN0c0RpZENoYW5nZSk7CisgICAgfQorCisgICAgX2hhbmRsZUNsaWNrKGV2ZW50KQorICAgIHsK
KyAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gdGhpcy5lbGVtZW50KQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmll
d1ZpZXdzKSB7CisgICAgICAgICAgICBpZiAob3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJsZWQp
CisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7CisgICAg
ICAgIH0KKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYjVhZmQ4MTYwZjE2MGY2MDM0MmJhYmRmYTNlMGRmYjAzNTllNzRiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
R3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
Ky5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52
YXMtb3ZlcnZpZXcgLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzT3Zl
cnZpZXcuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24t
YmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMtMmQgLmljb24geworICAgIGNvbnRlbnQ6IHVybCgu
Li9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3Mg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhczptYXRjaGVzKC53ZWJnbCwgLndlYmdsMiwg
LndlYmdwdSwgLndlYm1ldGFsKSAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9D
YW52YXMzRC5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlv
bi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9J
bWFnZXMvUmVjb3JkaW5nLnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXItcHJvZ3JhbSA+IC5pY29uIHsKKyAgICBjb250
ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9J
bWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9y
LXNjaGVtZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0
aW9uLWJhciA+IC5pdGVtIC5ncmFwaGljcy1vdmVydmlldyAuaWNvbiB7CisgICAgICAgIGZpbHRl
cjogaW52ZXJ0KDYwJSk7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3Mg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwKKyAgICAuY29udGVudC12aWV3
LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24g
eworICAgICAgICBmaWx0ZXI6IGludmVydCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGlj
c1RhYkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZGNmMmIxMDlhODI3NWQzNzEwNzI1ZWFm
Yzg5MGFjZGE2MGMzMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEs
MzE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworV0kuR3JhcGhpY3NUYWJDb250ZW50VmlldyA9IGNsYXNzIEdy
YXBoaWNzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRW
aWV3Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgbGV0IHRhYkJhckl0ZW0g
PSBXSS5HZW5lcmFsVGFiQmFySXRlbS5mcm9tVGFiSW5mbyhXSS5HcmFwaGljc1RhYkNvbnRlbnRW
aWV3LnRhYkluZm8oKSk7CisKKyAgICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENv
bnN0cnVjdG9yID0gV0kuQ2FudmFzU2lkZWJhclBhbmVsOworICAgICAgICBjb25zdCBkZXRhaWxz
U2lkZWJhclBhbmVsQ29uc3RydWN0b3JzID0gWworICAgICAgICAgICAgV0kuUmVjb3JkaW5nU3Rh
dGVEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuUmVjb3JkaW5nVHJhY2VEZXRh
aWxzU2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5l
bCwKKyAgICAgICAgICAgIFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAg
IF07CisgICAgICAgIGNvbnN0IGRpc2FibGVCYWNrRm9yd2FyZCA9IHRydWU7CisgICAgICAgIHN1
cGVyKCJncmFwaGljcyIsIFsiZ3JhcGhpY3MiXSwgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGVi
YXJQYW5lbENvbnN0cnVjdG9yLCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCBkaXNh
YmxlQmFja0ZvcndhcmQpOworCisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUgPSBu
ZXcgV0kuVHJlZU91dGxpbmU7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuYWxs
b3dzUmVwZWF0U2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0
bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENo
YW5nZSwgdGhpcy5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwg
dGhpcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5l
cmFsVHJlZUVsZW1lbnQoImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIp
LCBudWxsLCB7W1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVTeW1ib2xdOiB0cnVlfSk7CisgICAg
ICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhpcy5fY2FudmFzZXNU
cmVlRWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVs
ZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJlZUVsZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVkIFJlY29y
ZGluZ3MiKSk7CisgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50
LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQpOworCisgICAgICAg
IHRoaXMuX3JlY29yZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0ku
S2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykp
OworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0
ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsK
KworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJv
YXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9h
cmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOworICAg
ICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0Rl
ZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5k
aXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKKyAg
ICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lbmFibGUoKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
dGFiSW5mbygpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgaW1hZ2U6ICJJ
bWFnZXMvR3JhcGhpY3Muc3ZnIiwKKyAgICAgICAgICAgIHRpdGxlOiBXSS5VSVN0cmluZygiR3Jh
cGhpY3MiKSwKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNUYWJBbGxvd2VkKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQ2FudmFz
IikKKyAgICAgICAgICAgIHx8IEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJBbmltYXRpb24i
KTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50
ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
Y2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVwcmVzZW50ZWRPYmplY3QpOwor
ICAgIH0KKworICAgIGdldCB0eXBlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXSS5HcmFwaGlj
c1RhYkNvbnRlbnRWaWV3LlR5cGU7CisgICAgfQorCisgICAgZ2V0IHN1cHBvcnRzU3BsaXRDb250
ZW50QnJvd3NlcigpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBn
ZXQgbWFuYWdlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2Jq
ZWN0LCBjb29raWUpCisgICAgeworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5Db2xsZWN0aW9uKSB7CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNo
b3dDb250ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVyLnNob3dSZXByZXNlbnRlZE9iamVjdChy
ZXByZXNlbnRlZE9iamVjdCwgY29va2llKTsKKyAgICB9CisKKyAgICBjYW5TaG93UmVwcmVzZW50
ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uCisgICAgICAgICAgICB8
fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcworICAgICAgICAgICAgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uCisgICAg
ICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZworICAg
ICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFt
Q29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5TaGFkZXJQcm9ncmFtCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uOworICAgIH0KKworICAgIGNsb3NlZCgpCisgICAg
eworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmRpc2FibGUoKTsKKyAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5kaXNhYmxlKCk7CisKKyAgICAgICAgc3VwZXIuY2xvc2VkKCk7CisgICAgfQor
CisgICAgcmVzdG9yZVN0YXRlRnJvbUNvb2tpZShjb29raWUpCisgICAgeworICAgICAgICAvLyBG
SVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29t
cGxldGUuCisgICAgfQorCisgICAgc2F2ZVN0YXRlVG9Db29raWUoY29va2llKQorICAgIHsKKyAg
ICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2
MDY+IGlzIGNvbXBsZXRlLgorICAgIH0KKworICAgIGFzeW5jIGhhbmRsZUZpbGVEcm9wKGZpbGVz
KQorICAgIHsKKyAgICAgICAgYXdhaXQgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywg
KHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9
CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1
cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRoaXMu
X2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVt
b3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGlu
Z1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAg
ICAgIFdJLkNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdT
dG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisKKyAg
ICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5jaGlsZHJl
bikgeworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGNoaWxkLnJlcHJlc2VudGVkT2JqZWN0Owor
ICAgICAgICAgICAgaWYgKGNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcyAmJiAhV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQorICAgICAgICAgICAgICAgIHRo
aXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQg
Y2FudmFzIG9mIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikgeworICAgICAgICAg
ICAgaWYgKCF0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMp
KQorICAgICAgICAgICAgICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOworICAgICAgICB9CisK
KyAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNv
cmRpbmdzKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmlu
ZFRyZWVFbGVtZW50KHJlY29yZGluZykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3Jk
aW5nKHJlY29yZGluZywge3N1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZX0pOworICAgICAgICB9
CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAg
ICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOworICAg
IH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
LmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1
dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAgV0kuQ2FudmFzLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGlu
Z1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMu
X2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlv
bi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsKKyAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3Zl
ZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0
aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcgPSBu
ZXcgV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3OworICAgICAgICB0aGlzLmNvbnRlbnRC
cm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICB9
CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfYWRkQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAg
ICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1Ry
ZWVFbGVtZW50KGNhbnZhcykpOworCisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAg
ICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWUsCisgICAgICAgIH07CisKKyAgICAgICAg
Zm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKQorICAgICAg
ICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7CisgICAgfQorCisg
ICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCisgICAgeworICAgICAgICBsZXQgdHJlZUVsZW1lbnQg
PSB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMpOworICAg
ICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCwgIk1pc3NpbmcgdHJlZSBlbGVtZW50IGZv
ciBjYW52YXMuIiwgY2FudmFzKTsKKworICAgICAgICBjb25zdCBzdXBwcmVzc05vdGlmaWNhdGlv
biA9IHRydWU7CisgICAgICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KHN1cHByZXNzTm90aWZpY2F0
aW9uKTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZCh0cmVl
RWxlbWVudCk7CisKKyAgICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY29udGVu
dEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OworICAgICAgICBpZiAoY3VycmVudENvbnRlbnRW
aWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICBXSS5zaG93
UmVwcmVzZW50ZWRPYmplY3QoV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAg
ICAgICAgZWxzZSBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5n
Q29udGVudFZpZXcgJiYgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24uaGFzKGN1cnJlbnRDb250
ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCkpCisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93
c2VyLnVwZGF0ZUhpZXJhcmNoaWNhbFBhdGhGb3JDdXJyZW50Q29udGVudFZpZXcoKTsKKworICAg
ICAgICBsZXQgbmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQ
YW5lbDsKKyAgICAgICAgaWYgKG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5D
YW52YXNTaWRlYmFyUGFuZWwgJiYgbmF2aWdhdGlvblNpZGViYXJQYW5lbC52aXNpYmxlKQorICAg
ICAgICAgICAgbmF2aWdhdGlvblNpZGViYXJQYW5lbC51cGRhdGVSZXByZXNlbnRlZE9iamVjdHMo
KTsKKworICAgICAgICB0aGlzLnNob3dEZXRhaWxzU2lkZWJhclBhbmVscygpOworICAgIH0KKwor
ICAgIF9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zID0ge30pCisgICAgeworICAgICAg
ICBpZiAoIXJlY29yZGluZy5zb3VyY2UpIHsKKyAgICAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0g
bnVsbDsKKyAgICAgICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5l
cmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0
aXRsZSwgcmVjb3JkaW5nKTsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5n
c1RyZWVFbGVtZW50LmhpZGRlbiA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52
YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGlu
ZykKKyAgICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlY29yZGluZyk7Cisg
ICAgfQorCisgICAgX2hhbmRsZUNhbnZhc0FkZGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fYWRkQ2FudmFzKGV2ZW50LmRhdGEuaXRlbSk7CisgICAgfQorCisgICAgX2hhbmRsZUNhbnZh
c1JlbW92ZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQu
ZGF0YS5pdGVtKTsKKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVj
dGlvbkRpZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQg
PSB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CisgICAgICAg
IGlmICghc2VsZWN0ZWRFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHN3
aXRjaCAoc2VsZWN0ZWRFbGVtZW50KSB7CisgICAgICAgIGNhc2UgdGhpcy5fY2FudmFzZXNUcmVl
RWxlbWVudDoKKyAgICAgICAgY2FzZSB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxl
bWVudDoKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRo
aXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgbGV0IHJlcHJlc2VudGVkT2JqZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJlcHJl
c2VudGVkT2JqZWN0OworICAgICAgICBpZiAoIXRoaXMuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0
KHJlcHJlc2VudGVkT2JqZWN0KSkgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2Us
ICJVbmV4cGVjdGVkIHJlcHJlc2VudGVkT2JqZWN0LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuc2hvd1JlcHJlc2Vu
dGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICB9CisKKyAgICBfaGFuZGxlUmVjb3Jk
aW5nU2F2ZWRPclN0b3BwZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQge3JlY29yZGluZywg
aW5pdGlhdGVkQnlVc2VyLCBpbXBvcnRlZH0gPSBldmVudC5kYXRhOworICAgICAgICBpZiAoIXJl
Y29yZGluZykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgb3B0aW9ucyA9IHt9
OworCisgICAgICAgIC8vIEFsd2F5cyBzaG93IGltcG9ydGVkIHJlY29yZGluZ3MuCisgICAgICAg
IGlmIChyZWNvcmRpbmcuc291cmNlIHx8ICFpbXBvcnRlZCkKKyAgICAgICAgICAgIG9wdGlvbnMu
c3VwcHJlc3NTaG93UmVjb3JkaW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRC
cm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3Qp
ID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsKKworICAgICAg
ICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICBf
aGFuZGxlU3BhY2UoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoV0kuaXNFdmVudFRhcmdldEFu
RWRpdGFibGVGaWVsZChldmVudCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYg
KCF0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgbGV0IGNhbnZhcyA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbC5jYW52YXM7Cisg
ICAgICAgIGlmICghY2FudmFzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChj
YW52YXMucmVjb3JkaW5nQWN0aXZlKQorICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmco
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2ZW50
LnNoaWZ0S2V5OworICAgICAgICAgICAgY2FudmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1l
KTsKKyAgICAgICAgfQorCisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgfQor
fTsKKworV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlID0gImdyYXBoaWNzIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKaW5k
ZXggOWYxMDVmMWU5NmU4MzFjZTU0NTEwNDkzODRlN2FkOGQ2MTgzNDVhNC4uOGZlMTMxYzJmMGUz
NjE3NmVmYTBmY2FiZDAyYzI3NTg2NGM2ZmFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKQEAgLTIwOSwxMiArMjA5LDEyIEBA
IGJvZHkuZG9ja2VkOm1hdGNoZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5j
b2xsYXBzZWQgPiAucmVzaXplciB7CiAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKIH0KIAotLm1l
c3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CisubmF2aWdhdGlvbi1pdGVt
LWhlbHAgewogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogfQog
Ci0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJh
ciB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGRpc3Bs
YXk6IGlubGluZS1mbGV4OwogICAgIGhlaWdodDogMjBweDsKICAgICBwYWRkaW5nOiAwIDRweDsK
QEAgLTIyMiw5ICsyMjIsOSBAQCBib2R5LmRvY2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNu
YXZpZ2F0aW9uLXNpZGViYXIuY29sbGFwc2VkID4gLnJlc2l6ZXIgewogICAgIHZlcnRpY2FsLWFs
aWduOiAtM3B4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxw
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZp
Z2F0aW9uLWJhciA+IC5pdGVtIHsKICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgcGFkZGluZzogMCA0
cHg7CisgICAgcGFkZGluZzogMCA0cHggIWltcG9ydGFudDsKICAgICBmb250LXNpemU6IDExcHg7
CiAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJv
cmRlci1jb2xvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKaW5kZXggOGQ2
MGYyM2YwYjJiZWM3MGQ4YmU4M2QwMjE3YTcwYWM3NGZkMjM1OC4uMTFmMWRkODJlNTUzNzcwMTkw
YjJmZjdlYjhiNjA4ZWVjN2UyOWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3
LmNzcwpAQCAtMjMsMTggKzIzLDE4IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nIHsKKy5jb250ZW50
LXZpZXcucmVjb3JkaW5nIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9u
OiBjb2x1bW47CiAgICAgcGFkZGluZzogMTBweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2wo
MCwgMCUsIDkwJSk7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhl
YWRlciB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciB7CiAgICAgbWFyZ2luLWJv
dHRvbTogMTBweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVh
ZGVyID4gLnNsaWRlci1jb250YWluZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFk
ZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LXdy
YXA6IHdyYXA7CiAgICAgcGFkZGluZzogNHB4IDA7CkBAIC00MywzMSArNDMsMzEgQEAKICAgICBi
b3JkZXItcmFkaXVzOiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGlu
ZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gKiB7CisuY29udGVudC12aWV3LnJlY29y
ZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gKiB7CiAgICAgbWFyZ2luOiA0cHgg
OHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAu
c2xpZGVyLWNvbnRhaW5lciA+IC5zbGlkZXItdmFsdWUgeworLmNvbnRlbnQtdmlldy5yZWNvcmRp
bmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IC5zbGlkZXItdmFsdWUgewogICAgIGZv
bnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlOwogICAgIGZvbnQtZmFtaWx5OiAxMXB4OwogfQog
Ci0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNv
bnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4g
aGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CiAgICAgZmxl
eDogMTsKICAgICB3aWR0aDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6
LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcg
PiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0
LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CiAgICAgaGVpZ2h0OiAycHg7CiAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiB9
CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXIt
Y29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKKy5j
b250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1
dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgIG1hcmdpbi10b3A6IC02
cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IC5wcmV2aWV3LWNv
bnRhaW5lciB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IC5wcmV2aWV3LWNvbnRhaW5lciB7
CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4OiAxOwogICAgIGp1c3RpZnktY29udGVudDog
Y2VudGVyOwpAQCAtNzcsMjcgKzc3LDI3IEBACiAgICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZh
aWxhYmxlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgOm1hdGNoZXMo
aW1nLCBjYW52YXMpIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nIDptYXRjaGVzKGltZywgY2Fu
dmFzKSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIG1heC13aWR0aDogMTAwJTsKICAg
ICBtYXgtaGVpZ2h0OiAxMDAlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRp
bmcgY2FudmFzLnBhdGggeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgY2FudmFzLnBhdGggewog
ICAgIHotaW5kZXg6IDEwOwogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJr
KSB7Ci0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nIHsKKyAgICAuY29udGVu
dC12aWV3LnJlY29yZGluZyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAg
IH0KIAotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5z
bGlkZXItY29udGFpbmVyIHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+
IC5zbGlkZXItY29udGFpbmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAg
ICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yLXNlY29uZGFyeSk7CiAgICAg
fQogCi0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNs
aWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CisgICAgLmNvbnRlbnQtdmlldy5y
ZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2Vd
IHsKICAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25D
b250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKaW5kZXggM2E5YTlhZWZmMjljNWVm
Y2Q3NzliYjRkMjkwNDBhYWQ4OWRiZjFkNC4uMmY5NGJjNzQwOWY0ZDU1NDY2NWNkZTg5YzlmMGY5
OWNhZGVmOTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LmNzcwpAQCAtMjMsNiArMjMsMTQgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisuY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVz
b3VyY2UuaW1hZ2UgaW1nIHsKKyAgICBvdXRsaW5lOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXIt
Y29sb3IpOworfQorCisuY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3Vy
Y2UuaW1hZ2UgaW1nOmhvdmVyIHsKKyAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xv
ci1hY3RpdmUpCit9CisKIC5yZXNvdXJjZS1jb2xsZWN0aW9uLWltYWdlLXR5cGUtc2NvcGUtYmFy
LmRlZmF1bHQtaXRlbS1zZWxlY3RlZCB7CiAgICAgLS1zY29wZS1iYXItdGV4dC1jb2xvci1vdmVy
cmlkZTogdmFyKC0tdGV4dC1jb2xvcik7CiAgICAgLS1zY29wZS1iYXItYmFja2dyb3VuZC1jb2xv
ci1vdmVycmlkZTogdHJhbnNwYXJlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmpzCmluZGV4IGM5NGVjYTc3NzIxNGUzMWRjNWQ4MWU2MTA5MDYwNjNm
NzdjNzRmY2MuLmZjMWM2YTJjZDRhYTdkYTE5NTBjMGEzZDNmZjA2MzQzMmY5N2Q2ZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0zNSw2
ICszNSw4IEBAIFdJLlJlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgUmVzb3Vy
Y2VDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXCiAKICAgICAgICAgc3VwZXIoY29sbGVj
dGlvbiwgY29udGVudFZpZXdDb25zdHJ1Y3Rvcik7CiAKKyAgICAgICAgdGhpcy5lbGVtZW50LmNs
YXNzTGlzdC5hZGQoInJlc291cmNlLWNvbGxlY3Rpb24iKTsKKwogICAgICAgICBpZiAoY29sbGVj
dGlvbi5yZXNvdXJjZVR5cGUgPT09IFdJLlJlc291cmNlLlR5cGUuSW1hZ2UpIHsKICAgICAgICAg
ICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVC
dXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNw
YXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIklt
YWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgICAgICB0
aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlU2hvd0dyaWRCdXR0
b25DbGlja2VkLCB0aGlzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MjVhOThiYjc3ZThiMDA0NGE0MDMyZmYxZmQyYTY3
NmMxNzJiY2UwLi4zNzExOTk2YjcwYjRlOWI4ZGQ4ZGU2ODc3MWU3NGZhZTIyZWI3YzY1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzEgQEAKKzIwMTktMTItMTkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBpbnN0cnVtZW50YXRpb24gZm9y
IHNob3dpbmcgZXhpc3RpbmcgV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MjgzMjgwODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5p
bWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5
Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvYW5pbWF0aW9uL3JlcXVlc3ROb2RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9hbmltYXRpb24vcmVxdWVzdE5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xp
ZmVjeWNsZS11dGlsaXRpZXMuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlQW5pbWF0aW9uKToK
KyAgICAgICAgKGRlc3Ryb3lBbmltYXRpb25zKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5p
bWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGF3YWl0QW5pbWF0aW9uQ3JlYXRlZCk6Cisg
ICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBh
d2FpdEFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlv
bkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBjcmVhdGVBbmltYXRpb24pOgorICAgICAgICAoSW5z
cGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgZGVzdHJveUFuaW1h
dGlvbnMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJn
cHUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29u
dGV4dC11dGlsaXRpZXMuanM6CisgICAgICAgIChkZXN0cm95Q2FudmFzZXMpOgorICAgICAgICAo
YXdhaXRDYW52YXNBZGRlZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkNyZWF0ZUNvbnRleHRV
dGlsaXRpZXMuaW5pdGlhbGl6ZVRlc3RTdWl0ZSk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
ZXh0ZW5zaW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWw6CisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
c2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qczoKKyAgICAgICAgKHdp
bmRvdy5nZXRDYW52YXMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9n
cmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91
cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1
LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0t
dXRpbGl0aWVzLXdlYmdsLmpzOgorICAgICAgICAoZGVsZXRlQ29udGV4dCk6CisgICAgICAgICh3
aGVuUHJvZ3JhbUFkZGVkKToKKyAgICAgICAgKHdpbmRvdy5pbml0aWFsaXplVGVzdFN1aXRlKToK
KyAgICAgICAgKHdpbmRvdy5hZGRQYXJlbnRDYW52YXNSZW1vdmVkVGVzdENhc2UpOgorCisgICAg
ICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0
LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTggIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTjogWyBNYWMgd2syIF0gdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZmFzdC1zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLXdpdGgt
aGFuZGxlci5odG1sIGlzIGEgZmxha2V5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIyZjMzY2JkN2Y5MzNkM2I0OWJiZmY1ZDM3OGRlNTdiODIzMTJiZTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmVm
ZmVjdENoYW5nZWQgZXZlbnQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24u
ZWZmZWN0Q2hhbmdlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFu
Z2VkLk5ld0VmZmVjdAorUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0No
YW5naW5nIGVmZmVjdC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0
LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTnVsbEVmZmVjdAorUEFTUzog
QW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0NoYW5naW5nIGVmZmVjdC4uLgorCitQ
QVNTOiBBbmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlv
biBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDVkODViMWUx
ZjIxNjg4MWZmYmQ2ZjYxYjM3NDdjNzBkYmYxNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0g
ZG9jdW1lbnQuYm9keS5hbmltYXRlKFt7b3BhY2l0eTogMH1dKTsKKworICAgIHJ1blRlc3QoKTsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCIpOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTmV3
RWZmZWN0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2Jq
ZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmlt
YXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBi
ZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0
aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAg
dGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24u
YW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0
aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRL
ZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3ROb3RFbXB0eShvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4g
ZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgZWZm
ZWN0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAg
ICAgICBhbmltYXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdl
ZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93
LmFuaW1hdGlvbi5lZmZlY3QgPSBuZXcgS2V5ZnJhbWVFZmZlY3Qod2luZG93LmFuaW1hdGlvbi5l
ZmZlY3QudGFyZ2V0LCBbe29wYWNpdHk6IDF9XSwge30pYCksCisgICAgICAgICAgICBdKTsKKwor
ICAgICAgICAgICAgbGV0IG5ld0tleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG5ld0tleWZyYW1lcywgIkFuaW1h
dGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xkS2V5ZnJhbWVzLCAiQW5p
bWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0p
OworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVm
ZmVjdENoYW5nZWQuTnVsbEVmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJl
dHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIs
CisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFy
cmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhl
cmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFu
aW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgewor
ICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFu
aW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAg
ICAgICAgICBsZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9u
IHNob3VsZCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNoYW5naW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFs
bChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2
ZW50LkVmZmVjdENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbnVsbGApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVz
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFbXB0eShuZXdLZXlmcmFtZXMsICJB
bmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwobmV3S2V5ZnJhbWVzLCBvbGRLZXlmcmFt
ZXMsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0
aGUgQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3Nz
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjk2MDcy
MmNlZmU1YTBiYTE4Nzc4ZGU3YmRjMmQyMWY2NjdmYjNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0
aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNo
b3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4KK1BB
U1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgQW5pbWF0aW9uLgorc3RhcnREZWxheTog
MTAwCitpdGVyYXRpb25zOiAyCitpdGVyYXRpb25EdXJhdGlvbjogNDAwCit0aW1pbmdGdW5jdGlv
bjogImxpbmVhciIKK3BsYXliYWNrRGlyZWN0aW9uOiAiYWx0ZXJuYXRlIgorZmlsbE1vZGU6ICJi
b3RoIgora2V5ZnJhbWVzOgorWworICB7CisgICAgIm9mZnNldCI6IDAsCisgICAgInN0eWxlIjog
ImNvbG9yOiByZ2IoMjU1LCAwLCAwKTtcbm9wYWNpdHk6IDA7IgorICB9LAorICB7CisgICAgIm9m
ZnNldCI6IDAuNSwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJnYigwLCAxMjgsIDApO1xub3BhY2l0
eTogMC41OyIKKyAgfSwKKyAgeworICAgICJvZmZzZXQiOiAxLAorICAgICJzdHlsZSI6ICJjb2xv
cjogcmdiKDAsIDAsIDI1NSk7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQorCitEZXN0cm95aW5nIGFu
aW1hdGlvbnMuLi4KKworUEFTUzogQW5pbWF0aW9uIGRlc3Ryb3llZC4KK1BBU1M6IFJlbW92ZWQg
YW5pbWF0aW9uIGhhcyBleHBlY3RlZCBJRC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2ZGEwOTUxYmY1ZTQ1MzYyMzkyMzA1MTM2YzgyYjU0NDZjOGUwZWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
YW5pbWF0aW9uLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xp
ZmVjeWNsZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorQGtleWZyYW1lcyBmYWRl
LWluIHsKKyAgICBmcm9tIHsKKyAgICAgICAgY29sb3I6IHJlZDsKKyAgICAgICAgb3BhY2l0eTog
MDsKKyAgICB9CisgICAgNTAlIHsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgICAgICBvcGFj
aXR5OiAwLjU7CisgICAgfQorICAgIHRvIHsKKyAgICAgICAgY29sb3I6IGJsdWU7CisgICAgICAg
IG9wYWNpdHk6IDE7CisgICAgfQorfQorZGl2I3RhcmdldC5hY3RpdmUgeworICAgIGFuaW1hdGlv
bi1uYW1lOiBmYWRlLWluOworICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7CisgICAgYW5p
bWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCk7
CisgICAgYW5pbWF0aW9uLWRlbGF5OiAxMDBtczsKKyAgICBhbmltYXRpb24taXRlcmF0aW9uLWNv
dW50OiAyOworICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICBhbmltYXRp
b24tZmlsbC1tb2RlOiBib3RoOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFu
aW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIgQ1NT
IGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3Qo
KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1h
bmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBh
bnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQg
UHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlm
ZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5BbmltYXRpb24uVHlwZS5D
U1NBbmltYXRpb24pLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QuYWRkKCJhY3Rp
dmUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxp
dGllcy5hd2FpdEFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb24uYW5pbWF0aW9uSWQpLAorICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmRl
c3Ryb3lBbmltYXRpb25zKCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5yZW1v
dmUoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRp
b24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVu
dHMuPC9wPgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
dHJhbnNpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk4ZWUz
MTk5YzAxNjNhNDc4Zjk1NmZhMDIwNjFmMGJlYjAwYzRiMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmlt
YXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy4KKwor
Cis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5MaWZlY3ljbGUKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24KK1BBU1M6IFRoZXJl
IHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4K
K1BBU1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgVHJhbnNpdGlvbi4KK3N0YXJ0RGVs
YXk6IDEwMAoraXRlcmF0aW9uczogMQoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVu
Y3Rpb246ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIKK3BsYXliYWNrRGlyZWN0
aW9uOiAibm9ybWFsIgorZmlsbE1vZGU6ICJiYWNrd2FyZHMiCitrZXlmcmFtZXM6CitbCisgIHsK
KyAgICAib2Zmc2V0IjogMCwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMDsiCisgIH0sCisgIHsK
KyAgICAib2Zmc2V0IjogMSwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMTsiCisgIH0KK10KKwor
RGVzdHJveWluZyBhbmltYXRpb25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQ
QVNTOiBSZW1vdmVkIGFuaW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNp
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNDVhMzhhMjA0ZTBjNmM0ZDNhNzFiZjBlZDlkYzk2MGUw
NDA4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
K2RpdiN0YXJnZXQgeworICAgIGNvbG9yOiByZWQ7CisgICAgb3BhY2l0eTogMDsKKworfQorZGl2
I3RhcmdldC5hY3RpdmUgeworICAgIGNvbG9yOiBibHVlOworICAgIG9wYWNpdHk6IDE7CisKKyAg
ICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OworICAgIHRyYW5zaXRpb24tZHVyYXRpb246
IDQwMG1zOworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4x
LCAwLjIsIDAuMywgMC40KTsKKyAgICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtczsKK30KKzwvc3R5
bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisKKyAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5Y2xlLkNT
U1RyYW5zaXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgV2ViIEluc3Bl
Y3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgdHJhbnNpdGlvbnMgYXJlIGNyZWF0ZWQvZGVz
dHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5z
aXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAg
ICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0
aW9uQ3JlYXRlZChXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uKSwKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOwor
CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95
ZWQoYW5pbWF0aW9uLmFuaW1hdGlvbklkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucygpLAorICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKWApLAorICAgICAgICAg
ICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRG
aW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFu
aW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAgICA8ZGl2IGlkPSJ0YXJn
ZXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWRkYmI1NjYwZTVjNjg2MGIyNGQxYzE4NTlhNWVlZTMw
MmZjZTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAor
VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFu
aW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmlt
YXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNs
ZS5XZWJBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMu
CitDcmVhdGluZyBhbmltYXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCisgIDA6
IGFuaW1hdGUgLSBbbmF0aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1hdGlvbiAtIGluc3BlY3Rv
ci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6NzozNQorICAyOiBH
bG9iYWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5z
aW9uIC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0aW9uKSAtIFtuYXRpdmUg
Y29kZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFTUzogQW5pbWF0aW9uIHR5
cGUgc2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitzdGFydERlbGF5OiAxMDAKK2VuZERlbGF5OiAy
MDAKK2l0ZXJhdGlvbnM6IDEwCitpdGVyYXRpb25TdGFydDogNQoraXRlcmF0aW9uRHVyYXRpb246
IDMwMAordGltaW5nRnVuY3Rpb246ICJlYXNlLWluLW91dCIKK3BsYXliYWNrRGlyZWN0aW9uOiAi
YWx0ZXJuYXRlIgorZmlsbE1vZGU6ICJib3RoIgora2V5ZnJhbWVzOgorWworICB7CisgICAgIm9m
ZnNldCI6IDAuMjUsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywg
MC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZWQ7XG5vcGFjaXR5OiAwOyIKKyAgfSwKKyAg
eworICAgICJvZmZzZXQiOiAwLjc1LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuNiwg
MC43LCAwLjgsIDAuOSkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogYmx1ZTtcbm9wYWNpdHk6IDE7
IgorICB9CitdCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMjcwYTRi
MjdkMWRjMGJhYTY3Njc0YWI3MDdjMDk4YmNhOGJhZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLmh0bWwK
QEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNs
ZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9u
LkxpZmVjeWNsZS5XZWJBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
YXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciB3ZWIgYW5pbWF0aW9ucyBhcmUg
Y3JlYXRlZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25D
b2xsZWN0aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIp
OworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5Bbmlt
YXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3JlYXRlQW5pbWF0aW9uKFdJLkFuaW1hdGlvbi5UeXBl
LldlYkFuaW1hdGlvbiwgeworICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAiYm9keSIsCisgICAg
ICAgICAgICAgICAga2V5ZnJhbWVzOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG9mZnNldDogMC4yNSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVh
c2luZzogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbG9yOiAicmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6
IDAsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9mZnNldDogMC43NSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVhc2luZzogImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbG9yOiAiYmx1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBvcGFj
aXR5OiAxLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgICAgICAgICBkZWxheTogMTAwLAor
ICAgICAgICAgICAgICAgICAgICBlbmREZWxheTogMjAwLAorICAgICAgICAgICAgICAgICAgICBk
dXJhdGlvbjogMzAwLAorICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJlYXNlLWluLW91dCIs
CisgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogImFsdGVybmF0ZSIsCisgICAgICAgICAg
ICAgICAgICAgIGZpbGw6ICJib3RoIiwKKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uczog
MTAsCisgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvblN0YXJ0OiA1LAorICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRl
LnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0
aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1h
dGlvbi9yZXF1ZXN0Tm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL3JlcXVlc3ROb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGRmODMxZTlhYzEw
Yjc0MWJkYzdlYTM2MGUyMDQ2NDQxNTIyZDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0Tm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0NCBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24ucmVxdWVzdE5vZGUgY29tbWFuZC4KKwor
Cis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5yZXF1ZXN0Tm9kZQorLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXF1ZXN0Tm9kZS5XaXRoVGFyZ2V0CitDcmVhdGluZyBh
bmltYXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCisgIDA6IGFuaW1hdGUgLSBb
bmF0aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1hdGlvbiAtIGluc3BlY3Rvci9hbmltYXRpb24v
cmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6NzozNQorICAyOiBHbG9iYWwgQ29kZSAt
IFtwcm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIC0gW25hdGl2
ZSBjb2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0aW9uKSAtIFtuYXRpdmUgY29kZV0KKyAgNTog
X3dyYXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJl
IFdlYiBBbmltYXRpb24uCitpdGVyYXRpb25zOiAxCit0aW1pbmdGdW5jdGlvbjogImxpbmVhciIK
K3BsYXliYWNrRGlyZWN0aW9uOiAibm9ybWFsIgorZmlsbE1vZGU6ICJhdXRvIgorCitQQVNTOiBB
bmltYXRpb24gaGFzIGEgdmFsaWQgRE9NIG5vZGUgdGFyZ2V0LgorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQW5pbWF0aW9uLnJlcXVlc3ROb2RlLldpdGhvdXRUYXJnZXQKK0NyZWF0aW5nIGFuaW1h
dGlvbi4uLgorCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4KKyAgMDogKGFub255bW91cyBmdW5j
dGlvbikgLSBbbmF0aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1hdGlvbiAtIGluc3BlY3Rvci9h
bmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6OTozNAorICAyOiBHbG9i
YWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9u
IC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0aW9uKSAtIFtuYXRpdmUgY29k
ZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFTUzogQW5pbWF0aW9uIHR5cGUg
c2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitpdGVyYXRpb25zOiAxCit0aW1pbmdGdW5jdGlvbjog
ImxpbmVhciIKK3BsYXliYWNrRGlyZWN0aW9uOiAibm9ybWFsIgorZmlsbE1vZGU6ICJhdXRvIgor
CitQQVNTOiBBbmltYXRpb24gZG9lcyBub3QgaGF2ZSBhIHZhbGlkIERPTSBub2RlIHRhcmdldC4K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXF1ZXN0Tm9kZS5JbnZhbGlkSWRl
bnRpZmllcgorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IE1pc3Np
bmcgYW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3ROb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3ROb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJjZDRmYmE1
YWY0OTlmYzMyYzNiOTZiNDk2ZTQ1NGQ3OTI2NmQ4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdE5vZGUuaHRtbApAQCAtMCwwICsxLDUy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24ucmVxdWVzdE5vZGUiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXF1ZXN0Tm9k
ZS5XaXRoVGFyZ2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgYmUgYWJsZSB0byBn
ZXQgdGhlIERPTSBub2RlIGZvciBhbiBhbmltYXRpb24gdGhhdCBoYXMgYSB0YXJnZXQuIiwKKyAg
ICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhd2FpdCBJ
bnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24o
V0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCB7c2VsZWN0b3I6ICJib2R5In0pOworICAg
ICAgICAgICAgbGV0IGRvbU5vZGUgPSBhd2FpdCBhbmltYXRpb24ucmVxdWVzdE5vZGUoKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlIGluc3RhbmNlb2YgV0ku
RE9NTm9kZSwgIkFuaW1hdGlvbiBoYXMgYSB2YWxpZCBET00gbm9kZSB0YXJnZXQuIik7CisgICAg
ICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJBbmltYXRpb24ucmVxdWVzdE5vZGUuV2l0aG91dFRhcmdldCIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIGdldCB0aGUgRE9NIG5vZGUgZm9yIGFuIGFuaW1h
dGlvbiB0aGF0IGRvZXMgbm90IGhhdmUgYSB0YXJnZXQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgp
IHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhd2FpdCBJbnNwZWN0b3JUZXN0LkFuaW1h
dGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24oV0kuQW5pbWF0aW9uLlR5cGUu
V2ViQW5pbWF0aW9uKTsKKyAgICAgICAgICAgIGxldCBkb21Ob2RlID0gYXdhaXQgYW5pbWF0aW9u
LnJlcXVlc3ROb2RlKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE51bGwoZG9t
Tm9kZSwgIkFuaW1hdGlvbiBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgRE9NIG5vZGUgdGFyZ2V0LiIp
OworICAgICAgICB9LAorICAgIH0pOworCisgICAgLy8gLS0tLS0tCisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24ucmVxdWVzdE5vZGUuSW52YWxpZElk
ZW50aWZpZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5pbWF0aW9uIGlkZW50
aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgewor
ICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElTVCI7CisKKyAgICAg
ICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgpID0+IHsK
KyAgICAgICAgICAgICAgICBhd2FpdCBBbmltYXRpb25BZ2VudC5yZXF1ZXN0Tm9kZShpZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5yZXF1ZXN0
Tm9kZSBjb21tYW5kLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiZDQ4ZGE4MTUyMTk5NzNkNjEyNjA4MzYwODZlZTIxMWUyYTFhZjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29s
dmVBbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIGZvciB0aGUg
QW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
QW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uVmFsaWRJZGVudGlmaWVyCitQQVNTOiBQYXlsb2Fk
IHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuCitQQVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIGNs
YXNzTmFtZSAiQW5pbWF0aW9uIi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5y
ZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlmaWVyCitQQVNTOiBTaG91bGQgcHJvZHVjZSBh
biBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBhbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlv
bklkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2
ZUFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZl
QW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEyM2UzOTc0YzM0YzE5N2NkZDU5ODYxMGY3Mzc3
MTA2N2UzMDEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmlt
YXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5p
bWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnJl
c29sdmVBbmltYXRpb24iKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmllciIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVu
IGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAg
ICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmlt
YXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1h
dGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4i
KTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAg
ICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFu
aW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09
IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3
ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0
IjsKKyAgICAgICAgICAgIGxldCB7b2JqZWN0fSA9IGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlc29s
dmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC50eXBlLCAib2JqZWN0IiwgYFBh
eWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAib2JqZWN0Ii5gKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwob2JqZWN0LmNsYXNzTmFtZSwgIkFuaW1hdGlvbiIsIGBQYXlsb2Fk
IHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi5gKTsKKyAgICAgICAgfSwKKyAgICB9
KTsKKworICAgIC8vIC0tLS0tLQorCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uSW52YWxpZElkZW50aWZpZXIiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5pbWF0aW9uIGlkZW50aWZpZXJzIHNob3VsZCBj
YXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgY29u
c3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElTVCI7CisgICAgICAgICAgICBjb25zdCBvYmpl
Y3RHcm91cCA9ICJ0ZXN0IjsKKworICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGF3YWl0IEFuaW1hdGlv
bkFnZW50LnJlc29sdmVBbmltYXRpb24oaWRlbnRpZmllciwgb2JqZWN0R3JvdXApOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNB
bmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCki
PgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFu
ZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMGVkOTU1OTZhZDFiZTc2MGM2NTU0YTk5OTg4YjRjNDY5NWIyOGQzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMv
bGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDEzMCBAQAord2luZG93LmFuaW1hdGlv
bnMgPSBbXTsKKworZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKHNlbGVjdG9yLCBrZXlmcmFtZXMg
PSBbXSwgb3B0aW9ucyA9IHt9KSB7CisgICAgbGV0IGFuaW1hdGlvbiA9IG51bGw7CisKKyAgICBs
ZXQgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgaWYgKHRh
cmdldCkKKyAgICAgICAgYW5pbWF0aW9uID0gdGFyZ2V0LmFuaW1hdGUoa2V5ZnJhbWVzLCBvcHRp
b25zKTsKKyAgICBlbHNlCisgICAgICAgIGFuaW1hdGlvbiA9IG5ldyBBbmltYXRpb24obmV3IEtl
eWZyYW1lRWZmZWN0KG51bGwsIGtleWZyYW1lcywgb3B0aW9ucykpOworCisgICAgd2luZG93LmFu
aW1hdGlvbnMucHVzaChhbmltYXRpb24pOworfQorCitmdW5jdGlvbiBkZXN0cm95QW5pbWF0aW9u
cygpIHsKKyAgICBmb3IgKGxldCBhbmltYXRpb24gb2Ygd2luZG93LmFuaW1hdGlvbnMpIHsKKyAg
ICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5p
bWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIGlmIChhbmltYXRpb24uZWZmZWN0KSB7CisgICAg
ICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBh
bmltYXRpb24uZWZmZWN0LnRhcmdldC5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICBhbmltYXRp
b24uZWZmZWN0LnRhcmdldCA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFu
aW1hdGlvbi5lZmZlY3QgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFu
aW1hdGlvbnMgPSBbXTsKKworICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgYW5pbWF0
aW9uIGFuZCBpdCdzIHRhcmdldCBhcmUgYm90aCBkZXN0cm95ZWQsIGFzIG90aGVyd2lzZSB0aGUK
KyAgICAvLyBmcm9udGVuZCB3aWxsIG5vdCByZWNlaXZlIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0
cm95ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBHQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOworICAgIH0pOworfQorCitUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KCgpID0+IHsKKyAgICBmdW5jdGlvbiBqc29uS2V5ZnJhbWVGaWx0ZXIoa2V5LCB2YWx1ZSkgewor
ICAgICAgICBpZiAoa2V5ID09PSAiZWFzaW5nIiAmJiB2YWx1ZSBpbnN0YW5jZW9mIFdJLkN1Ymlj
QmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7CisgICAgICAgIHJl
dHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNs
ZVV0aWxpdGllcyA9IHt9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVV
dGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9u
VHlwZSkgeworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50ID0g
YXdhaXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLmF3YWl0RXZlbnQo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOworCisgICAgICAgIEluc3BlY3RvclRlc3Qu
cGFzcygiQW5pbWF0aW9uIGNyZWF0ZWQuIik7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFu
aW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CisKKyAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBhbmltYXRpb24uYmFja3RyYWNlLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgICAgICBsZXQgY2FsbEZyYW1lID0gYW5pbWF0aW9uLmJhY2t0cmFjZVtpXTsKKyAgICAgICAg
ICAgIGxldCB0cmFjZVRleHQgPSBgICAke2l9OiBgOworICAgICAgICAgICAgdHJhY2VUZXh0ICs9
IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIihhbm9ueW1vdXMgZnVuY3Rpb24pIjsKKworICAg
ICAgICAgICAgaWYgKGNhbGxGcmFtZS5uYXRpdmVDb2RlKQorICAgICAgICAgICAgICAgIHRyYWNl
VGV4dCArPSAiIC0gW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJh
bWUucHJvZ3JhbUNvZGUpCisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9ICIgLSBbcHJvZ3Jh
bSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0
aW9uKSB7CisgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNv
ZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAtICIgKyBzYW5pdGl6
ZVVSTChsb2NhdGlvbi5zb3VyY2VDb2RlLnVybCkgKyBgOiR7bG9jYXRpb24ubGluZU51bWJlcn06
JHtsb2NhdGlvbi5jb2x1bW5OdW1iZXJ9YDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2codHJhY2VUZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUsIGFuaW1hdGlvblR5
cGUsIGBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgJHtXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUpfS5gKTsKKworICAgICAgICBpZiAoYW5pbWF0
aW9uLnN0YXJ0RGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygic3RhcnREZWxh
eTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5zdGFydERlbGF5KSk7CisgICAgICAgIGlm
IChhbmltYXRpb24uZW5kRGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZW5k
RGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZW5kRGVsYXkpKTsKKyAgICAgICAg
aWYgKGFuaW1hdGlvbi5pdGVyYXRpb25zKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
Iml0ZXJhdGlvbnM6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0aW9ucykpOwor
ICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KQorICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIml0ZXJhdGlvblN0YXJ0OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9u
Lml0ZXJhdGlvblN0YXJ0KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uaXRlcmF0aW9uRHVyYXRp
b24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiaXRlcmF0aW9uRHVyYXRpb246ICIg
KyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pKTsKKyAgICAgICAg
aWYgKGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJ0aW1pbmdGdW5jdGlvbjogIiArIEpTT04uc3RyaW5naWZ5KFN0cmluZyhhbmltYXRpb24u
dGltaW5nRnVuY3Rpb24pKSk7CisgICAgICAgIGlmIChhbmltYXRpb24ucGxheWJhY2tEaXJlY3Rp
b24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygicGxheWJhY2tEaXJlY3Rpb246ICIg
KyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pKTsKKyAgICAgICAg
aWYgKGFuaW1hdGlvbi5maWxsTW9kZSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJm
aWxsTW9kZTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5maWxsTW9kZSkpOworICAgICAg
ICBpZiAoYW5pbWF0aW9uLmtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJrZXlmcmFtZXM6Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmpzb24o
YW5pbWF0aW9uLmtleWZyYW1lcywganNvbktleWZyYW1lRmlsdGVyKTsKKyAgICAgICAgfQorCisg
ICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOworCisgICAgICAgIHJldHVybiBhbmltYXRp
b24KKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRp
ZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQgPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25JZGVu
dGlmaWVyKSB7CisgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVu
dCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5hd2FpdEV2
ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQpCisKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5wYXNzKCJBbmltYXRpb24gZGVzdHJveWVkLiIpOworCisgICAgICAgIGxldCBhbmltYXRp
b24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVudC5kYXRhLml0ZW07CisgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBhbmlt
YXRpb25JZGVudGlmaWVyLCAiUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELiIpOwor
ICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5j
cmVhdGVBbmltYXRpb24gPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25UeXBlLCB7c2VsZWN0b3Is
IGtleWZyYW1lcywgb3B0aW9uc30gPSB7fSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
Q3JlYXRpbmcgYW5pbWF0aW9uLi4uXG4iKTsKKworICAgICAgICBsZXQgc3RyaW5naWZpZWRTZWxl
Y3RvciA9IEpTT04uc3RyaW5naWZ5KHNlbGVjdG9yIHx8IG51bGwpOworICAgICAgICBsZXQgc3Ry
aW5naWZpZWRLZXlmcmFtZXMgPSBKU09OLnN0cmluZ2lmeShrZXlmcmFtZXMgfHwgW10pOworICAg
ICAgICBsZXQgc3RyaW5naWZpZWRPcHRpb25zID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucyB8fCB7
fSk7CisKKyAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRB
bmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblR5cGUpLAorICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQW5pbWF0aW9uKCR7c3RyaW5naWZpZWRTZWxlY3Rvcn0s
ICR7c3RyaW5naWZpZWRLZXlmcmFtZXN9LCAke3N0cmluZ2lmaWVkT3B0aW9uc30pYCkKKyAgICAg
ICAgXSk7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdGlvbjsKKyAgICB9OworCisgICAgSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMgPSBh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlc3Ryb3lpbmcg
YW5pbWF0aW9ucy4uLlxuIik7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYGRlc3Ryb3lBbmltYXRpb25zKClgKTsKKyAgICB9OworfSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ODhkZTIyZDM0OGNlYTlhYzlhZmYzZmFkMWYxNDI1MTA3NmNkN2Q1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJn
ZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFu
aW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTog
QW5pbWF0aW9uLnRhcmdldENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24u
dGFyZ2V0Q2hhbmdlZC5OZXdUYXJnZXQKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRh
cmdldC4KK0NoYW5naW5nIHRhcmdldC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUg
YSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0
CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQu
Li4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhIHRhcmdldC4KK1BBU1M6IEFu
aW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTQ3
MjUwNDMwNDYzYzkxMTg3MmI0MzJjMDgxNjE4ODQ3MGFlNGE2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKQEAgLTAs
MCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0
aW9uID0gZG9jdW1lbnQuYm9keS5hbmltYXRlKFtdKTsKKworICAgIHJ1blRlc3QoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZCIpOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZv
ciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgp
IHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25N
YW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUg
YW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1sw
XTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cg
YE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0
aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNo
b3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRET01Ob2Rl
ID0gYXdhaXQgYW5pbWF0aW9uLnJlcXVlc3ROb2RlKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQob2xkRE9NTm9kZSBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRp
b24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5h
bGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5F
dmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGxldCBu
ZXdET01Ob2RlID0gYXdhaXQgYW5pbWF0aW9uLnJlcXVlc3ROb2RlKCk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobmV3RE9NTm9kZSBpbnN0YW5jZW9mIFdJLkRPTU5vZGUs
ICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3RE9NTm9kZSwgb2xkRE9NTm9kZSwgIkFuaW1hdGlv
biBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJnZXRD
aGFuZ2VkLk51bGxUYXJnZXQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4g
YSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAg
ICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5m
cm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNo
b3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRp
b24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAg
ICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRp
b24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAg
ICAgbGV0IG9sZERPTU5vZGUgPSBhd2FpdCBhbmltYXRpb24ucmVxdWVzdE5vZGUoKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChvbGRET01Ob2RlIGluc3RhbmNlb2YgV0ku
RE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5naW5nIHRhcmdldC4uLlxuIik7CisgICAgICAgICAg
ICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZl
bnQoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpLAorICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0LnRhcmdl
dCA9IG51bGxgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3RE9NTm9k
ZSA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0Tm9kZSgpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3ROdWxsKG5ld0RPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGEg
dGFyZ2V0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVxdWFsKG5l
d0RPTU5vZGUsIG9sZERPTU5vZGUsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5n
ZWQuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRG
aW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgor
ICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnRhcmdldENoYW5nZWQgZXZlbnQuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
Y29udGV4dC1hdHRyaWJ1dGVzLmh0bWwKaW5kZXggZDRlMTExZmQ5ZDg1MzcxNWU0NDYzMzM2YjRi
ZDA3ODI3OGNhZjYxZS4uMmQ2Mjc0YjdmNTU0N2RlYjgyODMzYjlmYWE1YzIzYmYwMGNmYjA3OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmli
dXRlcy5odG1sCkBAIC0yMCw5ICsyMCw5IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICBuYW1lLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGNyZWF0ZWQgY2Fu
dmFzZXMgaGF2ZSB0aGUgY29ycmVjdCB0eXBlIGFuZCBhdHRyaWJ1dGVzIHNlbnQgdG8gdGhlIGZy
b250ZW5kLiIsCiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc0FkZGVkKQorICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKQogICAgICAg
ICAgICAgICAgIC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQgY2Fu
dmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXMg
PSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJBZGRlZCBjYW52YXMuIik7CiAKICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHREaXNw
bGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBlKGNvbnRleHRUeXBl
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRl
eHQtd2ViZ3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250
ZXh0LXdlYmdwdS5odG1sCmluZGV4IGJjMTgxZjYyZjJkNGY0M2ViNGExYWJmMWQ5ZjgzNmZjZTNk
MmJiNWYuLmIxNDBmMTE4ZDA4ODZjYjc1ODAyZmExNTQwY2E1Zjg1NzZhYzZhMDEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJn
cHUuaHRtbApAQCAtMzQsMTQgKzM0LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRl
c2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgYXR0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3Qg
dHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAg
ICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVu
ZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihX
SS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0g
dHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVBdHRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAg
ICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdl
ci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0
ZWQgZm9yIGF0dGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BV
RGV2aWNlLiIpOwogICAgICAgICB9LApAQCAtNTIsMTQgKzUyLDE0IEBAIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgZGV0YWNoZWQgR1BVQ2FudmFz
Q29udGV4dCBhcmVuJ3QgdHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BV
RGV2aWNlLiIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRl
ZCA9IGZhbHNlOwotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVu
dCkgPT4gewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdl
dC5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAg
ICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRk
RXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAg
ICAgICBjcmVhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2Fp
dCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVEZXRhY2hlZENhbnZhcygiZ3B1
IilgKQogCi0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91
bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGRldGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBj
b25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApAQCAtNzAsMTQgKzcwLDE0IEBA
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgQ1NT
IEdQVUNhbnZhc0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2Yg
dGhlIFdlYkdQVURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAg
bGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZh
c01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0Fk
ZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChl
dmVudC50YXJnZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUp
OworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChl
dmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRh
dGEuaXRlbS5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAg
ICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQ1NTQ2FudmFz
KCJncHUiLCAiY3NzLWNhbnZhcyIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5y
ZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxp
c3RlbmVyKTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5y
ZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5l
cik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIklu
c3BlY3RvciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBDU1MgR1BVQ2FudmFzQ29u
dGV4dCB3aXRob3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7CiAgICAgICAgIH0sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCmluZGV4IGU4ZmNiZmUw
MDczYzE5YjM4NWM0NmI5N2Q0MTVmZjg5N2JhZjFlMjEuLjkzN2MxZjM0YmJhOTZiNTcwMTFhMzMx
OWU4YTU3ODJjMTg0MzJjYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvZXh0ZW5zaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0
ZW5zaW9ucy5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
IG5hbWU6ICJDYW52YXMuZXh0ZW5zaW9ucy5lbmFibGUiLAogICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoYXQgZW5hYmxpbmcgYW4gZXh0ZW5zaW9uIG5vdGlmaWVzIHRoZSBmcm9udGVuZC4i
LAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZh
c2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAg
ICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkg
ewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBXZWJHTCBjYW52YXMuIik7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9tZW1vcnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0
bWwKaW5kZXggMmE0OWUwM2ExODg4ZWU4NTVlYmJiM2FmMTg4NDNiY2UzZTJiZGIxYy4uNGJmZDdh
NmNlYWI1M2ZjNWQ5YjhlNzEzYjg1M2QyNzVlMDE3M2U3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL21lbW9yeS5odG1sCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAvLyBwZXJmb3JtZWQgb24gdGhhdCBjYW52YXMgdGhhdCByZXF1aXJlcyB0
aGUgaW1hZ2UgYnVmZmVyLiAgQSBibGFuayBjYW52YXMgdGhhdCB3YXMKICAgICAgICAgICAgIC8v
IGp1c3QgY3JlYXRlZCB3aWxsIG5vdCBoYXZlIGEgYnVmZmVyLCBzbyBpdHMgbWVtb3J5IGNvc3Qg
d2lsbCBiZSAwL05hTi4KIAotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFu
YWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2Vz
ID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigo
Y2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5D
YW52YXMyRCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAg
ICAgICAgIHJlamVjdCgiTWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpAQCAtNDUsNyArNDUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAi
Q2FudmFzLm1lbW9yeS5jYW52YXNNZW1vcnlDaGFuZ2VkIiwKICAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGF0IG1lbW9yeSBjb3N0IGlzIHVwZGF0ZWQgd2hlbiB0aGUgYmFja2VuZCB2YWx1
ZSBjaGFuZ2VzLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAg
ICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRlcigoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMy
RCk7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICgh
Y2FudmFzZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIDJEIGNh
bnZhcy4iKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZWNvcmRpbmcuaHRtbAppbmRleCA0ZDNjZmU5YjhlNmU5NzQwZDRlY2E2Nzc5NGE0
NWE0ZjllZWM2OGQxLi5iZTA4YTIwNDEzMDJjMzc3NjE0Y2MzM2UxMzk0YTA5MDE3NTJlMmI4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKQEAgLTI1LDcg
KzI1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5BY3Rpb25Q
YXJhbWV0ZXJOYU4iLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgTmFOIGlzIGNv
bnZlcnRlZCBpbnRvIHRoZSBwcm9wZXIgdmFsdWUgZm9yIHNlcmlhbGl6YXRpb24uIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5
LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBv
bmUgY2FudmFzIGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGNhbnZhcy5hd2FpdEV2ZW50KFdJ
LkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkKQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLk11bHRpcGxlUmVjb3JkaW5nIiwKICAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IG11bHRpcGxlIHJlY29yZGluZ3MgYXJlIGFi
bGUgdG8gYmUgc3RhcnRlZC9zdG9wcGVkIGF0IHRoZSBzYW1lIHRpbWUuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXM7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9t
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CiAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDIsICJUaGVyZSBzaG91bGQgYmUgdHdv
IGNhbnZhcyBjb250ZXh0cy4iKTsKIAogICAgICAgICAgICAgY2FudmFzZXNbMV0uYXdhaXRFdmVu
dChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTExMiw3ICsxMTIsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLk5vQWN0aW9ucyIsCiAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhIGNhbnZhcyBpcyBzdGlsbCBhYmxlIHRvIGJl
IHJlY29yZGVkIGFmdGVyIHN0b3BwaW5nIGEgcmVjb3JkaW5nIHdpdGggbm8gYWN0aW9ucy4iLAog
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgICAgICBsZXQgY2FudmFzID0g
QXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxl
YXN0IG9uZSBjYW52YXMgY29udGV4dC4iKTsKIAogICAgICAgICAgICAgbGV0IGV2ZW50Q291bnQg
PSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xp
ZW50Tm9kZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVu
dE5vZGVzLmh0bWwKaW5kZXggMjNjZDA0ODY4NTBkMGFlMWI3Njc5ODc1YjBhZjI3YTA1MWMwZjRj
ZC4uZjc0ZDE1ZTEwNmVhM2IwNWNhOTFiODAxZjgxYzhhMDJmMTE1MDRjMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCkBA
IC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMu
cmVxdWVzdENsaWVudE5vZGVzLkluaXRpYWwiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNr
IHRoYXQgY3JlYXRpbmcgYSBDU1MgY2FudmFzIGNsaWVudCBub2RlIGlzIHRyYWNrZWQgY29ycmVj
dGx5LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBj
YW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQg
YmUgYXQgbGVhc3Qgb25lIGNhbnZhcy4iKTsKIAogICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RD
bGllbnROb2RlcygoY2xpZW50Tm9kZXMpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbAppbmRleCA1MzUwOTU3NjJiMzkwZjJj
ZTNmYjVhOTY5NmFkZTYxMTM0MzNjMmZkLi5lOWNiYTFkMDEwN2MzYTY3Y2VmMTcyZThhYjVhOWE0
YTRhYTljYTBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RDb250ZW50LTJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q29udGVudC0yZC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnQyRC52YWxpZENhbnZhc0lkIiwKICAg
ICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBj
YW52YXMgb24gdGhlIHBhZ2Ugd2l0aCB0aGUgZ2l2ZW4gdHlwZS4iLAogICAgICAgICB0ZXN0KHJl
c29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJy
YXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykg
PT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQp
OwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1p
c3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFw
cmVuZGVyZXIuaHRtbAppbmRleCBjZDUwODNjMjUyNTI3NGQ3OWZiOGY0YmQ3OWI5NzkzOGZlMzBj
NjMwLi5mNTI2NmVmZGVmZDdlYzc0NzRlOTZlYmFhZmQwYmI1NzNiMjVmMmI4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRl
cmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRCaXRtYXBSZW5kZXJlci52YWxp
ZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVk
IGRhdGEgZm9yIHRoZSBCaXRtYXBSZW5kZXJlciBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9u
KS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAg
ICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LXdlYmdsLmh0bWwKaW5kZXggYWViODFlZjI3ZDNjOTgwNTg0OTc5OTZhMTc5YmQ2NGE1
YmZlOWJlZi4uNzBjMjFmZTQzMzk2OTE1OTYwOTEyMjg0NTY2YWYyZjczZDU4Yjk2NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2Vi
Z2wuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1l
OiAiQ2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRl
c2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wgY2Fu
dmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
ICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52
YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdM
KTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykg
ewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKaW5kZXggNmIwM2Q1ZWM3ZTU5ZDAyNjY4N2M2Yjdm
MGRiMjgwNmUxNjNhZWNjZi4uZjdiNTVmNGEzZGZjMDg0M2FlZjc4ODBiOWY3OTc0MGNlMTVhMDg2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LXdlYmdsMi5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRXZWJHTDIudmFsaWRDYW52YXNJZCIs
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0
aGUgV2ViR0wyIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CiAgICAgICAgICAg
ICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMu
YCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Tm9kZS5odG1sCmluZGV4IGU1YzYxNDdlMzQ3YmMzNjllMmMwNWNjODQxNjZk
ODA2YTcxYzA2MTYuLmRjYzRiY2NlZTc1ZjRhNjkzODQ1YmJkZWU3MTIzYWZmZTJhNzkwNTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKQEAgLTE4
LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1
ZXN0Tm9kZS52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIG5v
ZGUgaWQgZm9yIGVhY2ggY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc2VzOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAgICAgICAgbGV0IGV4cGVjdGVkTGVu
Z3RoID0gY2FudmFzZXMubGVuZ3RoOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
ZXhwZWN0ZWRMZW5ndGggPT09IDMsICJUaGUgcGFnZSBoYXMgMyBjYW52YXNlcy4iKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1s
CmluZGV4IGM0MWNjNmJjNzRhMzI0MTkyMGIzZDZiNWMzZDliM2M2YmZkYTk1ZDEuLmZlMTQxMTc5
YjdjYWRhM2JiNTg1YTg4ODg0ZGU2YmI2MzRlNzQzOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKQEAgLTE3LDcgKzE3LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHQy
RC52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4g
YSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2Fu
dmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQo
KGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
Q2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICBy
ZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFw
cmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRl
eHQtYml0bWFwcmVuZGVyZXIuaHRtbAppbmRleCA4NjI1MjkyNjVjNGRkNmIyOWIyOTY3ODg0NDFj
ZWY5ZTY3N2I5YjEwLi4yOTdkNDQxZTE0ZmE0YjFiZDM5NmRjMDU0Zjg1YjhkOTNmOWFlNWMwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJp
dG1hcHJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
bHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0Qml0bWFwUmVuZGVy
ZXIudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJu
IGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9u
KS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAg
ICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LXdlYmdsLmh0bWwKaW5kZXggOTVhZGYxMmMwOTNhZGYzMGM0N2QyOTI5OTIzNDNkY2Yw
MWNjZTg3ZS4uMmE3MGZhNGEwZmIxN2ZmYTE5NDQ0NzUxOWNiMzllNTgwYjkzNWU1OSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z2wuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTog
YENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRl
c2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNh
bnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
ICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52
YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdM
KTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykg
ewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKaW5kZXggMTE1MWY5MTdhN2EyM2U2ZmUzMzJiNDNh
OWEzNDA2YTljZmU5MGE1NC4uZDhlMDgzMWU2YmMzYTI5NjVlOGQ0MmNmZDU4N2UyZGZhMTRkMmM3
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4
dC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LXdlYmdsMi5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
ICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0V2ViR0wyLnZhbGlkSWRlbnRpZmllcmAs
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3Ig
dGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
cy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMMik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKICAgICAgICAgICAg
IGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5g
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAppbmRleCBkYzAwZWYxMjM3
YTY3Yjg5MDVmMzgwZGNlY2Y2YTc5Y2ViNjMyNjc2Li5lOTI1YjI3MTY0OGY0NDRjMjNjOWQyYTg1
Y2I4NTIwNjI0Y2I2MjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTIyLDE0ICsyMiwxNCBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdQVS52
YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2
YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICBh
c3luYyB0ZXN0KCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXMubGVuZ3RoLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbi5zaXplLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOwogCi0g
ICAgICAgICAgICBsZXQgW2NhbnZhc0FkZGVkRXZlbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwot
ICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LkNhbnZhc0FkZGVkKSwKKyAgICAgICAgICAgIGxldCBbY2FudmFzQ29sbGVjdGlv
bkl0ZW1BZGRlZEV2ZW50XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1BZGRlZCksCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZShgY3JlYXRlRGV2aWNlKClgKSwKICAgICAgICAgICAgIF0pOwogCi0gICAgICAgICAg
ICBsZXQge2NhbnZhc30gPSBjYW52YXNBZGRlZEV2ZW50LmRhdGE7CisgICAgICAgICAgICBsZXQg
Y2FudmFzID0gY2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50LmRhdGEuaXRlbTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlwZSwgV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdQVSwgIkFkZGVkIGNhbnZhcyBzaG91bGQgYmUgYSBXZWJHUFUgZGV2
aWNlLiIpOwogCiAgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250
ZXh0LXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2Vz
L2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwppbmRleCAzYTQ2MDQ1NTI1MTAxODJiYmUyZWYz
NTU3MjNhNDFlMDQyODlkNjJmLi4xNTkxNTgwMjU5MDIzYjllMjM4ZTcxYmI1Yzg1NWFhN2M4NjQ4
MWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9j
cmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCkBAIC0zNSw3ICszNSw3
IEBAIGZ1bmN0aW9uIGRlc3Ryb3lDYW52YXNlcygpIHsKICAgICB3aW5kb3cuY29udGV4dHMgPSBb
XTsKIAogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMg
ZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2
ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRv
ZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVv
dXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApAQCAtNDMsOSAr
NDMsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICBsZXQgc3Vp
dGUgPSBudWxsOwogCiAgICAgZnVuY3Rpb24gYXdhaXRDYW52YXNBZGRlZChjb250ZXh0VHlwZSkg
ewotICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpCisgICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRl
ZCkKICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0g
ZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5p
dGVtOwogICAgICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNw
bGF5TmFtZUZvckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwoY2FudmFzLmNvbnRleHRUeXBlLCBjb250ZXh0VHlwZSwgYENhbnZh
cyBjb250ZXh0IHNob3VsZCBiZSAke2NvbnRleHREaXNwbGF5TmFtZX0uYCk7CiAKQEAgLTczLDkg
KzczLDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gYXdhaXRDYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZpZXIpIHsKLSAgICAg
ICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc1JlbW92ZWQpCisgICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQog
ICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVu
dC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5pZGVudGlmaWVy
LCBjYW52YXNJZGVudGlmaWVyLCAiUmVtb3ZlZCBjYW52YXMgaGFzIGV4cGVjdGVkIElELiIpOwog
ICAgICAgICB9KTsKICAgICB9CkBAIC04OSw3ICs4OSw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5p
dGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uTm9DYW52
YXNlc2AsCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIENhbnZhc01h
bmFnZXIgaGFzIG5vIGNhbnZhc2VzIGluaXRpYWxseS4iLAogICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91
bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplLCAwLCAiQ2Fu
dmFzTWFuYWdlciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsKICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRp
ZXMuanMKaW5kZXggNjAxNDZmZjM4NDg3ZmQxOTNlMjNkMzM3NDdkZjMxMDQ2Y2M2ODFmMy4uNzdh
MGVhMzQzYjY1ZjQyNGJhYzZkZTM3NWUzM2JmMmNhYmRjY2JkNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRp
bGl0aWVzLmpzCkBAIC04Niw3ICs4Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIo
KCkgPT4gewogICAgIH0KIAogICAgIHdpbmRvdy5nZXRDYW52YXMgPSBmdW5jdGlvbih0eXBlKSB7
Ci0gICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVy
KChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlwZSk7CisgICAgICAgIGxldCBj
YW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5m
aWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSB0eXBlKTsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAxLCBgVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGNhbnZhcyB3aXRoIHR5cGUgIiR7dHlwZX0iLmApOwogICAgICAgICBpZiAo
Y2FudmFzZXMubGVuZ3RoICE9PSAxKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFt
LXV0aWxpdGllcy13ZWJnbC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCmluZGV4IDUyNzVjNDQxYWFmYzcz
YjkxMDc5NDViM2NkNzNmOWNhNjdlMWU2NWUuLmY0M2U2ZjI3N2NkYzdkMDU4ZDA5OTQxYTc2Njc3
NjM0ZTA1ZTZjYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVz
b3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmds
LmpzCkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9uIGRlbGV0ZVByb2dyYW0oKSB7CiBmdW5jdGlv
biBkZWxldGVDb250ZXh0KCkgewogICAgIGNvbnRleHQgPSBudWxsOwogICAgIC8vIEZvcmNlIEdD
IHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2Ug
dGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFz
LmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApAQCAtNDcsOCArNDcsOSBAQCBUZXN0UGFnZS5yZWdp
c3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVu
Y3Rpb24gd2hlblByb2dyYW1BZGRlZChjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNo
b3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICBsZXQg
Y2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRo
ZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIGNhbnZhc2VzWzBdLnNo
YWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rp
b24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFt
ID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiQWRkZWQgU2hhZGVyUHJvZ3Jh
bS4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZh
cyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJl
bnQgQ2FudmFzLiIpOwpAQCAtNTcsOCArNTgsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxp
emVyKCgpID0+IHsKICAgICB9CiAKICAgICBmdW5jdGlvbiB3aGVuUHJvZ3JhbVJlbW92ZWQoY2Fs
bGJhY2spIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIp
OwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xs
ZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJl
bW92ZWQsIChldmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJ
LmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBj
YW52YXMuIik7CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNp
bmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChl
dmVudCkgPT4gewogICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJ
LlNoYWRlclByb2dyYW0sICJSZW1vdmVkIFNoYWRlclByb2dyYW0uIik7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52
YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTc0
LDcgKzc2LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAg
ICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgU2hhZGVyUHJvZ3JhbUFkZGVkIGlzIHNlbnQg
Zm9yIGEgcHJvZ3JhbSBjcmVhdGVkIGJlZm9yZSBDYW52YXNBZ2VudCBpcyBlbmFibGVkLiIsCiAg
ICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAgIC8vIFRo
aXMgY2FuJ3QgdXNlIGBhd2FpdEV2ZW50YCBzaW5jZSB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGhh
cHBlbnMgb24gdGhlIG5leHQgdGljay4KLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRk
ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRk
ZWQoKHByb2dyYW0pID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAg
ICAgICAgICAgICAgICAgICAgfSk7CkBAIC0xMTMsNyArMTE1LDcgQEAgVGVzdFBhZ2UucmVnaXN0
ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewogICAgICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAg
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3Rl
bmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9KTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCmluZGV4IGZl
NDhkOGZkODUxMTQ2NTg5OGZkM2IwNDUwZGU4OTUxMzc0NDliZTQuLmI4ZGUzNGNmYTg3ODY4NWY5
NjVhOWY5MGJiNGJmOGFhYjM1NzM2MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0
aWxpdGllcy13ZWJncHUuanMKQEAgLTY0LDcgKzY0LDcgQEAgYXN5bmMgZnVuY3Rpb24gY3JlYXRl
UmVuZGVyUGlwZWxpbmUoY29kZSA9IHJlbmRlclBpcGVsaW5lU291cmNlKSB7CiBmdW5jdGlvbiBk
ZWxldGVEZXZpY2UoKSB7CiAgICAgZGV2aWNlID0gbnVsbDsKICAgICAvLyBGb3JjZSBHQyB0byBt
YWtlIHN1cmUgdGhlIGRldmljZSBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQK
LSAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVt
b3ZlZCBldmVudHMuCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3Zl
ZCBldmVudHMuCiAgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7
IH0sIDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Nl
dFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbAppbmRleCBk
OThmMGZlYTRlOTJjMTUyOTc4MTEyYzJkMDcwY2Q3NGU5NTlkNGUyLi41NWU1NTI0NzMwODNhYTJk
MWJhZWIwZTg4N2VlMDVmYzI4ZjBhMGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNv
dW50Lmh0bWwKQEAgLTc3LDggKzc3LDggQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAg
ICAgICAgICAgaGFuZGxlUmVjb3JkaW5nU3RvcHBlZChjYW52YXMsIGV2ZW50LmRhdGEucmVjb3Jk
aW5nKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFz
QWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5k
YXRhLmNhbnZhczsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRk
ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRh
Lml0ZW07CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFjYW52YXMu
cmVjb3JkaW5nQWN0aXZlKQogCiAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExp
c3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdGFydGVkLCBoYW5kbGVSZWNvcmRpbmdT
dGFydGVkV3JhcHBlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCmluZGV4IGQ0
MGZhYjc4MzgxMzBjYzk0YjAzYmY5MWQ5NmYyMjcwOTA0ZWIwMTMuLmQ1ZmI4NzcyYzBiMzc1YzQw
ZDVkN2EwZTQyMDJhNTRmZjVkNTJkMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5o
dG1sCkBAIC0xNCw5ICsxNCwxMSBAQCB3aW5kb3cuYmVmb3JlVGVzdCA9IGFzeW5jIGZ1bmN0aW9u
KCkgewogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZUFzeW5jU3VpdGUoYENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVWApOwogCi0gICAgbGV0
IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgbGV0IGNhbnZhc2Vz
ID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBv
bmx5IGJlIG9uZSBjYW52YXMuIik7CisKKyAgICBsZXQgY2FudmFzID0gY2FudmFzZXNbMF07CiAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGEgY2FudmFz
LiIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMu
bGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHUFUsICJDYW52YXMgc2hvdWxkIGJlIFdlYkdQVS4iKTsKIAogICAgIGFzeW5j
IGZ1bmN0aW9uIGF3YWl0UHJvZ3JhbUFkZGVkKHByb2dyYW1UeXBlKSB7CkBAIC0xMTgsNyArMTIw
LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsK
ICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNSZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBjYW52
YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJh
Z21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdl
YmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCmluZGV4IDM0ZDAyYWIxN2U5MDVhNGI3OGEw
MjY1NTA0OWFlMjhkYjMzMTA4NzEuLjhjZjlhNDc1NjIyNDIxYzgzNjg5YzlhZDM3ZDIxOTBhMDFj
ZTllMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hh
ZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5o
dG1sCkBAIC01NywxMCArNTcsMTAgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkNyZWF0aW5nIHJlbmRlciBwaXBlbGluZS4uLiIpOwogICAgICAgICBsZXQg
ZXZhbHV0ZVByb21pc2UgPSBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVSZW5k
ZXJQaXBlbGluZSgpYCk7CiAKLSAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2Vz
Lmxlbmd0aCkKLSAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChX
SS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKTsKKyAgICAgICAgaWYgKCFXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSkKKyAgICAgICAgICAgIGF3YWl0IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZl
bnQuSXRlbUFkZGVkKTsKIAotICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlc1swXTsKKyAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFu
YWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
Y2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2Fu
dmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CiAKICAgICAgICAgbGV0IGl0ZW1BZGRlZEV2ZW50ID0g
YXdhaXQgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5j
dGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDY2YmRiYWI5ZWVlMzE2NzkwZjhmMjY3NDZmOTNlMjFl
ZDRjM2RmMWUuLmRiZjYzNTFlOWEwOTI0NjBhYmVlOWQzNGQ5MjA2YjBmNzMzNmIzYTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBl
Y3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTU0
LDYgKzU0LDc0IEBAIEZBSUw6IGV4cGVjdEZhbHNlKFtdKQogICAgIEV4cGVjdGVkOiBmYWxzZXkK
ICAgICBBY3R1YWw6IFtdCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVtcHR5CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3RFbXB0eShudWxsKQorUEFT
UzogZXhwZWN0RW1wdHkoIiIpCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK1BBU1M6IGV4cGVjdEVt
cHR5KFtdKQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK0V4
cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDog
ZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhwZWN0RW1wdHkoeyJ0ZXN0IjoxfSkK
KyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6IHsidGVzdCI6MX0KK0ZBSUw6IGV4cGVj
dEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0Igor
RkFJTDogZXhwZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7
fQorRkFJTDogZXhwZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFs
OiB7fQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1v
YmplY3Q6CisgICAgQWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJl
IGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBleHBl
Y3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1
YWw6IDEKK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24t
b2JqZWN0OgorICAgIEFjdHVhbDogdW5kZWZpbmVkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJ
bnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBl
Y3ROb3RFbXB0eSgidGVzdCIpCitQQVNTOiBleHBlY3ROb3RFbXB0eSh7InRlc3QiOjF9KQorUEFT
UzogZXhwZWN0Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoe30pCitQQVNT
OiBleHBlY3ROb3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4cGVjdE5vdEVt
cHR5KG51bGwpCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogbnVsbAorRkFJ
TDogZXhwZWN0Tm90RW1wdHkoIiIpCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVh
bDogIiIKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkK
KyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0eShbXSkKKyAgICBFeHBlY3RlZDog
bm90IGVtcHR5CisgICAgQWN0dWFsOiBbXQorRkFJTDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAg
RXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5
KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBl
Y3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBB
Y3R1YWw6IHRydWUKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdp
dGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogZmFsc2UKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5
IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogMQor
RkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmpl
Y3Q6CisgICAgQWN0dWFsOiB1bmRlZmluZWQKKwogLS0gUnVubmluZyB0ZXN0IGNhc2U6IEluc3Bl
Y3RvclRlc3QuZXhwZWN0TnVsbAogRXhwZWN0ZWQgdG8gUEFTUwogUEFTUzogZXhwZWN0TnVsbChu
dWxsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1o
YXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKaW5kZXggOTFlODU4MGM3
Y2I2MjczNDU4MjU0MDI0OTcyMDA5ZTk5Y2RhODM0ZC4uZTM4NjRhMDNjNGUwOTQxY2E4YzAyZjJm
MGE3ODYyNjM5ODhiMDEyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQt
dGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1s
CkBAIC00OCw2ICs0OCwyMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRUZXN0Q2FzZShleHBl
Y3RUaGF0VGVzdENhc2UpOwogICAgIGFkZEludmVyc2VUZXN0Q2FzZSgiZXhwZWN0RmFsc2UiLCBl
eHBlY3RUaGF0VGVzdENhc2UpOwogCisgICAgbGV0IGV4cGVjdEVtcHR5VGVzdENhc2UgPSB7Cisg
ICAgICAgIGZ1bmN0aW9uTmFtZTogImV4cGVjdEVtcHR5IiwKKyAgICAgICAgcGFzc2luZ0lucHV0
czogW251bGwsICIiLCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXRdLAorICAgICAgICBmYWlsaW5n
SW5wdXRzOiBbInRlc3QiLCB7dGVzdDogMX0sIFsidGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAx
XV0pLCBuZXcgU2V0KFsidGVzdCJdKSwgdHJ1ZSwgZmFsc2UsIDEsIHVuZGVmaW5lZF0sCisgICAg
fTsKKyAgICBhZGRUZXN0Q2FzZShleHBlY3RFbXB0eVRlc3RDYXNlKTsKKworICAgIGxldCBleHBl
Y3ROb3RFbXB0eVRlc3RDYXNlID0geworICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROb3RF
bXB0eSIsCisgICAgICAgIHBhc3NpbmdJbnB1dHM6IFsidGVzdCIsIHt0ZXN0OiAxfSwgWyJ0ZXN0
Il0sIG5ldyBNYXAoW1sidGVzdCIsIDFdXSksIG5ldyBTZXQoWyJ0ZXN0Il0pXSwKKyAgICAgICAg
ZmFpbGluZ0lucHV0czogW251bGwsICIiLCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXQsIHRydWUs
IGZhbHNlLCAxLCB1bmRlZmluZWRdLAorICAgIH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0Tm90
RW1wdHlUZXN0Q2FzZSk7CisKICAgICBsZXQgZXhwZWN0TnVsbFRlc3RDYXNlID0gewogICAgICAg
ICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROdWxsIiwKICAgICAgICAgcGFzc2luZ0lucHV0czogW251
bGxdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>386154</attachid>
            <date>2019-12-19 15:20:09 -0800</date>
            <delta_ts>2019-12-19 15:20:09 -0800</delta_ts>
            <desc>[Image] After Patch is applied</desc>
            <filename>Screen Shot 2019-12-19 at 15.19.58.png</filename>
            <type>image/png</type>
            <size>1310679</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAADCIAAArcCAYAAAC7tb4iAAAKy2lDQ1BJQ0MgUHJvZmlsZQAASImV
lwdUU+kSgOfe9JDQAghICb0JUqRLCaEFUJAONkISIJQYAkHFhsriCq4FFREsK7ooomCjiA2xYFsU
C3Y3yCKirosFG2reBR5h973z3jtvzpnzf3fu/DPz3/P/98wPQCdzxeJMVBUgS5QriQzyY8YnJDJJ
PaAEZKCCHdhyeTliVkREGGAyNv5dPnQBMjzesh2O9e/v/6uo8QU5PAAkAuNkfg4vC+NjmA7wxJJc
ANwezG4yP1c8zJcw1pBgBWL8aJhTR3lgmJNHGI8f8YmOZGOsDUCmcbmSVACaKWZn5vFSsTg0f4zt
RXyhCGPsGbx5aVw+xlhemJSVNW+YZRhbJv8lTurfYiYrYnK5qQoeXcuIkP2FOeJM7sL/83P8b8nK
lI7lMMeUliYJjsRGrC7kXsa8UAWLkqeHj7GQP+I/wmnS4Jgx5uWwE8eYz/UPVczNnB42xinCQI4i
Ti4neowFOQFRYyyZF6nIlSJhs8aYKxnPK82IUdjTBBxF/Py06LgxzhPGTh/jnIyo0HEftsIukUYq
6heIgvzG8wYq1p6V85f1CjmKublp0cGKtXPH6xeIWOMxc+IVtfEF/gHjPjEKf3GunyKXODNC4S/I
DFLYc/KiFHNzsQ05PjdC8Q3TuSERYwxhEARMiIFMyAUJcCEQhCACQa5gwfAeBfY88UKJMDUtl8nC
TpmAyRHx7CYxHe0d3AGGz+zolninNXIWEa0r47aVNQBex+Vy+YlxW8gNgMNJANSGcZvlbADVPoBL
J3lSSd6obfg4AQH7E6iABuiAAZiAJdiCI7iAJ/hCAIRAOERDAswBHqRBFlb5fFgMy6EISmA9bIYK
2Am7YR8chCPQBCfhLFyEq3AD7sBDkEEvvIQB+ABDCIKQEDrCQHQQQ8QMsUEcETfEGwlAwpBIJAFJ
QlIRESJFFiMrkRKkFKlAdiE1yGHkOHIWuYx0IveRbqQfeYt8QXEoDdVA9VFzdDLqhrLQUDQanY2m
otloPlqIrkXL0Sr0ANqInkWvondQGfoSHcQBTgmnhTPC2eLccGxcOC4Rl4KT4JbiinFluCpcHa4F
1467hZPhXuE+44l4Bp6Jt8V74oPxMXgePhu/FL8GX4Hfh2/En8ffwnfjB/DfCXSCHsGG4EHgEOIJ
qYT5hCJCGaGa0EC4QLhD6CV8IBKJWkQLoisxmJhATCcuIq4hbifWE1uJncQe4iCJRNIh2ZC8SOEk
LimXVETaSjpAOkO6SeolfSIrkQ3JjuRAciJZRF5BLiPvJ58m3yT3kYcoqhQzigclnMKnLKSso+yh
tFCuU3opQ1Q1qgXVixpNTacup5ZT66gXqI+o75SUlIyV3JVmKAmVCpTKlQ4pXVLqVvpMU6dZ09i0
WTQpbS1tL62Vdp/2jk6nm9N96Yn0XPpaeg39HP0J/ZMyQ9lOmaPMV16mXKncqHxT+bUKRcVMhaUy
RyVfpUzlqMp1lVeqFFVzVbYqV3WpaqXqcdW7qoNqDDUHtXC1LLU1avvVLqs9Vyepm6sHqPPVC9V3
q59T72HgGCYMNoPHWMnYw7jA6NUgalhocDTSNUo0Dmp0aAxoqmtO0YzVXKBZqXlKU6aF0zLX4mhl
aq3TOqLVpfVlgv4E1gTBhNUT6ibcnPBRe6K2r7ZAu1i7XvuO9hcdpk6ATobOBp0mnce6eF1r3Rm6
83V36F7QfTVRY6LnRN7E4olHJj7QQ/Ws9SL1Funt1rumN6hvoB+kL9bfqn9O/5WBloGvQbrBJoPT
Bv2GDENvQ6HhJsMzhi+YmkwWM5NZzjzPHDDSMwo2khrtMuowGjK2MI4xXmFcb/zYhGriZpJissmk
zWTA1NB0muli01rTB2YUMzezNLMtZu1mH80tzOPMV5k3mT+30LbgWORb1Fo8sqRb+lhmW1ZZ3rYi
WrlZZVhtt7phjVo7W6dZV1pft0FtXGyENtttOicRJrlPEk2qmnTXlmbLss2zrbXtttOyC7NbYddk
93qy6eTEyRsmt0/+bu9sn2m/x/6hg7pDiMMKhxaHt47WjjzHSsfbTnSnQKdlTs1Ob6bYTBFM2THl
njPDeZrzKuc2528uri4SlzqXfldT1yTXba533TTcItzWuF1yJ7j7uS9zP+n+2cPFI9fjiMefnrae
GZ77PZ9PtZgqmLpnao+XsRfXa5eXzJvpneT9s7fMx8iH61Pl89TXxJfvW+3bx7JipbMOsF772ftJ
/Br8PrI92EvYrf44/yD/Yv+OAPWAmICKgCeBxoGpgbWBA0HOQYuCWoMJwaHBG4LvcvQ5PE4NZyDE
NWRJyPlQWmhUaEXo0zDrMElYyzR0Wsi0jdMeTTebLpreFA7hnPCN4Y8jLCKyI07MIM6ImFE541mk
Q+TiyPYoRtTcqP1RH6L9otdFP4yxjJHGtMWqxM6KrYn9GOcfVxoni58cvyT+aoJugjChOZGUGJtY
nTg4M2Dm5pm9s5xnFc3qmm0xe8Hsy3N052TOOTVXZS537tEkQlJc0v6kr9xwbhV3MJmTvC15gMfm
beG95PvyN/H7BV6CUkFfildKacrzVK/Ujan9aT5pZWmvhGxhhfBNenD6zvSPGeEZezPkmXGZ9Vnk
rKSs4yJ1UYbo/DyDeQvmdYptxEViWbZH9ubsAUmopDoHyZmd05yrgTVH16SW0h+k3XneeZV5n+bH
zj+6QG2BaMG1hdYLVy/syw/M/2URfhFvUdtio8XLF3cvYS3ZtRRZmry0bZnJssJlvQVBBfuWU5dn
LP91hf2K0hXvV8atbCnULywo7Pkh6IfaIuUiSdHdVZ6rdv6I/1H4Y8dqp9VbV38v5hdfKbEvKSv5
uoa35spPDj+V/yRfm7K2Y53Luh3rietF67s2+GzYV6pWml/as3HaxsZNzE3Fm95vnrv5ctmUsp1b
qFukW2TlYeXNW023rt/6tSKt4k6lX2X9Nr1tq7d93M7ffnOH7466nfo7S3Z++Vn4871dQbsaq8yr
ynYTd+ftfrYndk/7L26/1FTrVpdUf9sr2ivbF7nvfI1rTc1+vf3ratFaaW3/gVkHbhz0P9hcZ1u3
q16rvuQQHJIeenE46XDXkdAjbUfdjtYdMzu2rYHRUNyINC5sHGhKa5I1JzR3Hg853tbi2dJwwu7E
3pNGJytPaZ5ad5p6uvC0/Ez+mcFWceurs6lne9rmtj08F3/u9vkZ5zsuhF64dDHw4rl2VvuZS16X
Tl72uHz8ituVpqsuVxuvOV9r+NX514YOl47G667Xm2+432jpnNp5+qbPzbO3/G9dvM25ffXO9Dud
XTFd9+7Ouiu7x7/3/H7m/TcP8h4MPSx4RHhU/Fj1cdkTvSdVv1n9Vi9zkZ3q9u++9jTq6cMeXs/L
33N+/9pb+Iz+rKzPsK/muePzk/2B/TdezHzR+1L8cuhV0R9qf2x7bfn62J++f14biB/ofSN5I3+7
5p3Ou73vp7xvG4wYfPIh68PQx+JPOp/2fXb73P4l7kvf0PyvpK/l36y+tXwP/f5IniWXi7kS7kgr
gMMUTUkBeLsXgJ4AwMB6COrM0Z56RJDRe8AIwX/i0b57RFwA6rBhuDVitwIcwtS8AEDFF2C4LYr2
BdTJSaH/lJwUJ8fRWDSsuyR8ksvf6QOQWgC+SeTyoe1y+TfszoC7D9CaPdrLD4sBdq+YqYb56XRV
ry6Af5F/AB67FdmY4ZK3AAAAimVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABG
ASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAAAJAAAAABAAAAkAAAAAEAA5KGAAcAAAASAAAA
eKACAAQAAAABAAAMIqADAAQAAAABAAAK3AAAAABBU0NJSQAAAFNjcmVlbnNob3RK2C9UAAAACXBI
WXMAABYlAAAWJQFJUiTwAAAB2GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4
bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRm
OlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1u
cyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxu
czpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBp
eGVsWERpbWVuc2lvbj4zMTA2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6
VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgICAgPGV4aWY6
UGl4ZWxZRGltZW5zaW9uPjI3ODA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpE
ZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K9FmuGQAAABxpRE9UAAAAAgAA
AAAAAAVuAAAAKAAABW4AAAVuAApqS5r6LmQAAEAASURBVHgB7L17zLZbXtd373f2nj0HhhlGYIQO
MHIIHpJWsS2hEWnrATmagJrggUhM+lcHE41tE/QP09pCrP1b2xgapWpGbdUA2hZtFCjYYiFtGqWA
QFHojDJ7nPPsY9fnuu7Pc63neu/n9L7Pe9rv5zf7ftZ5/db6Xr/1O6z7uuc9HKIQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQ
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
mIqvfUfVsg9SdaZ5ZYI9zmfJZ0O75BqoO8Xffk9lCjhPMyls4oCAWIcwzfUKmsI4CxMYciAgFJV9
qFPwmIs5IP6fKRB4BXbmc13+zOUhhMdz4wO9ND7Mb/vMn7XZ9zr8WR/EmP3+nZ+UdnhCt8Wfvc24
PGz+7D3+PNFH8/zDP/nr/HX+0j/p30fhf2R/sj/Zn+xP9if7k/15+PF/9jf7m/3N/mZ/s7/Z3+xv
9/+rP4BfBBZ85u9/bvv7l/yv/K/8L7yP7G/2N/ub/c3+Yg/yP/K/8j/zv4s/ir+KP1c9gH9c/E2k
dHvvf3b/8GDuH9DbvCt8nfd/bzv+hydn5Tb5+06z5w8e6iVS+PFhL/SF6HvV/ul/2f6ZU194ZG/0
/jfrYi3M79pGdsmTPnUk0E/dxseGFTRShULBQDgk+1HmEEPWWbaOcbPwz/NYj/DO/C7i79hZIctv
5k8eIt3zp7/t8Kd8GX/amGP+MM459vzdx+hybf7M5zjm5TOXZ97u5zb5X7Z/+MT/PAa3/fzD/7y8
J//n8ej8df5mGUj/3K79Tf+e1zfp3/N4zGePfOev85f/PQ7CoNuIf9K/5/VN+vc8Hunf/N9ZBrK/
2d/sb/Y3/yP/K/9z1QPow9lvpJay8ar2E7zUndhRyvnf5/3NGUcxFD/xFMPkbwjQIPCYcbNOvMQv
+ev8eXbSP+nf7E/2N/8j/2N+32X2I8jrO5h2/7P5EPmfeJr5n5yT+dyISf73+fcPiz823ZH/nf+d
/319/xus1KfoWui27S9zznqcvH6P6U38H9ZHf8dSdu33cv7H8GW8c+z3b9l+4iV/Uumm/B33VKQC
/FRs9rhJAkEIISI/C6uCRPtemOxLqoCBnxgyj/X2nQ/FaD4n1AQjtJPSH2IOf9kz8yevIDsn/U/x
ty/zMhdl5oXm/rbflP9V+4cffJ3/Mv73sv/r8Hfeq/Zvv5vgf6/8xV55AZ+HyX+wu+v5x//m5+9e
n3/4J3/qAGSh85/+S/+mfx+E/6VcPU7+T/Yv+5f9W2Ug+5//k/+X/6edfhj3D9nf7G/2N/vb/SOa
MP8j/yP/I/+j+6fun272/Wvf/2zfc8/+pN9/3+T75/RP+if9k/7p/mONSa7z/k/2J/uDjYWyv9t9
Tv7Hei7yv7a4vu+/L3//M//7av9bvQJW5LO/p98nFqf70T/EApxZiHnmz03x5188uM3zz3O/zvMf
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
C8+QZ4r0ovdvsj/Zn+wPJyT7Qxyr7sj+bu/YGbcb55Pmf+R/aHOVC3RI9nfTIeABNtCT4n+wTui2
9N86273tH72DjN1E/9BXHQ7v6+LPGPo69l73fx3+nhvuv7wLHNlz/FkHc7EO1uXHsaPq9UM+pNfP
jtad+NB8iAqHZXrRR+Gznjry9DdPClEv2Y5Q0O7H+Uw9RKf4W8dY+5lHmZN3XSO7CKx8SaHr8Gcu
ec3zMf9+nTN/xsz9OTDyNb2KP+Ppywde83xX8b9o/2Oas3VcxJ8+7uVR8N/j+rD3H/+ef/K/6dXO
38PVv+mf9E/6J/2jX5v+Tf8+TP8/+5P9yf5kf7I/j+b+Jf2b/k3/pn/Tv+nf7t8f/vcf2d/sb/Y3
+5v9zf5mf7O/3b93/979+8N7/yj/O/87/zv/O/87//tB+N/oFgj5Iu9Hu2N62/InX/YE3Qv/deS6
5v06mZ85T73/PP9g9Dr84XMv++c951P83SvzXsafdvfl+870p84yfdjrvh91vjNtnhSi/nVLbvL1
tMFTe+KBQwgE7bNQUU8dfWinDXIe66lTcGy3rPBQPkXWM788nJ/+M38OAkQ/iLHk7XMqPcV/nn/m
T/2p/Y/qhc9F/GlnnlP8XaN86DuT9e7jFH/nmPnLa8bCujk9tf/b4M8crsv8zJc2yvFfZcfnDFYz
WX/T588c4X9eFyR/d+uhzl/nD92inpl1jzqENP2z2qvr2l+xy/6CxN16B3nL/uf/ZH+yP9mf7G/+
x2Im7/ojLvlf+V/4S/mfqxx4UIzpOR/z/RftnJ38b5DI/zbe2Kf5n/mf+Z/5n/pZq7bc/lqf/5X/
lf+V/5n/nf+NHpCKP7Y4q/hrlYo55pzzysqcFn8UfxR/FH8YZ2hXTK0v/ij+wG7kf+Z/IgeSvgT6
If9rRWX2uea8WM3pdf0vxvC57fPHfKxRPT+y58h6+uz50+ZeaL/q+TPxPIaxl+2fvpfxZ75T/KmD
GHtT/OW3THCcg/yp/VM/8wdL6Cr+ex7rqCf0r5t9Qpd/4bLZFw+dh+WHX7nwkE1tH1VngkqedseQ
0g9BZ07HUs8/q0FKm+VZiJyfNj6M5ZA9Nz77g+v8o+ku/oyz3TnkR0obH+YlhS7aP78qmvkvnccf
56cMD9dMep39y/+q/c/85QPPm/AHw4v2fxP+Pp/L+NO23//D5H8K//g/vOcf/sl/53/Tz1fZn9vW
v52/zl/nr/Onf5j+WWOIh+X/pn/Tv+nf9G/6d7v/Kf4u/s7+nr//vJf7P+wKOELqF/LeC9KW/5H/
kf+xnY/in+Kf/I/8j/yP/I/5++f8r+17bXzI637/nf8JWpt/QT7/e7UvxR/FX8WfxZ/Fn5t9KP4s
/iz+LP4s/ry3+PPF4V/P798+jvGH9/L36/8SgzkHKbZjfv9XPqP67P7ffvO4y+wvca8fcWW+U/Ef
81zFn7Fz/MPcl/FnnfQhJR6f3387tX/amZ903j/jpZk/9af409d5HPdEp4D1eqL9w1UY5oc2P1ge
tBjsx4LLLAiU6QMpOIx1vEJrm3OTKqTkXYv8HG95dFnmp5456a+wX8TfvqfmmHnOa7HvRfwH24Uv
a7+Kv32dkzK8LLvneS22XcX/sv0zh+Mvw/9B8Yd3/AcIg8J/k3fwQNaRjVnm5/xtyH/y1/lL/3Da
0j/p3/SvNoXzkP3J/uZ/5H/NPuecV1foP1hWd5BiUy6Lv/I/8z+Vn/yP/I+9Dsn+ZH9mmzPnlRX1
h+Xszyoz2d/8j/yv/M/871UPYDuwERB5qPij+EP/ofij+GPvQxZ/FH/MMcecV1bUH5axK9qX/K/8
r/yv/C/0ADoh/xPtuOnH/O/8b+1n/nf+996Hyv9+uP63eKujLd/W+6+edf1jytZddf79AZNrUVYc
b9m1w+O6/rd993MwN23yJE+f+YcAF/Ef3c7409+x1JOHGOv4i/bvHpgDgj91rs3x+7XTV570h+w7
8ze/9nhC/7qxJ3T5Z8v24e4fJvvjw8PiY3lkz9XbRr35eRzz8kGYqEewOVj2OcVfwXRN87xj6NlY
6u1LPWXGOLfj9vxdi/2dgzJEO+tkHsh5LM/zO9Z+1+G/37/rOMWfugfN3z3cL3/nmfEhv8d/v3/H
xR8pOi9/N3n+4hj+65nx3CR/N9O/s/5L/q6vfzt/17O/6f/NR0E3KTfZv8X8nfO/0j/pH+04fg00
+zeeHerNz+3ks//Zf2O+68Sf+T9b/Jv+Tf+mf1ebk/3BymZ/Z/9CnwNczM/t+R/5X/mf+Z/5n6vd
yP+++vuv4o/iD79/LP4q/ir+Kv4ijuADzfGFMQf15ud28vmf+Z/5n/mf6IL87/zvvn/fbGjfv29+
A34mVPxZ/Fn8uemIffzFGTEu1+emzvx1/W/7m173/N2EP32v6/+zDuiq80+fm+wfPG7if4oH48jv
8Z/xtW10O9fP9dH3sv0z7okmNvikk3uYHyZ1fKhTIMhrsGmjHkWFcFEPUUebD53Uvs43qs7GUSfJ
hzL1tnkg9vyp518bwKFSYboW+Fo/smfrco+uWx72cR835c86oOvwp5//wsNV/Fnvfv/uYb9/5r0u
/+vsHyxO8fcZP2j+YBP/u59/+K+6Ifk7r/9u+/x3/tI/6d/0L3oWfwFZwCfI/mR/sA3Z3+zvHH8N
kbjV+CP/I/8j/yP/I/8j/yv/M/+7+KP4q/iz+Lv7h+4fun/o/qX7p+6fun86/54DZwIfic9F7z+M
pmu/f9H9S/cv3b90/9L9S/cv3b90/9L9S/cvT/r9C3rsOu+/3u/3zy8d+eBvixm8oav40+cm/DmX
0FX+P+uAruIPb+g6/v+8z9vkv98/a5/1D2X34f7FmbJrGdlr4e+zof8TRz6wJ27hxwWzfh8uD8I8
ze6NdH7otM3EGMba3wdKiqA4lhSy3XHypN48/chDzItQeelgHSkED8ae4u98roM+V/Gn3bWM7IX8
5QePq/iz9pvsn/lYM3TV/h8U/+vifx3+4s9+2BvkOFKwEfM5T7/b2H/8by5/PX+kL/nr/F1uf9Rj
2gP126zP0j/pn5va//Rv+jf7k/3N/mZ/L4t/8z+ujr/zv/K/8r9Wf8r4RL1BOt+5zPn8j/yP/I/8
j/yPi79/UI92/3PevnT/tX2flf+Z/5n/eV4/qDfzP/O/55hjzhd/FH8UfxR/FH8Uf1z0/pd+RPHX
ef+q+Kv4S9+6+LP4s/jzvH7UbnhGZn1p3viDH/Xelv3xOTwo/s7vHiifOv/Yy7nPqTx11/W/R9eF
GAPN8+3522bKGk/lmecUf+olcbwN+++cT1zq5p+4hR8X7CFkH+ZJcfxJIQSEj8JEX4XGfgr/qTFz
H+ZgLOQcjJ3502f+NT/96OPL/DN/6l03/RgLOca5HHsZf9qc7yL+zDvzn/c282cNzCV/576IP3tw
H6QX8WfOPX/nnvnv92+fi/jP+F+H/1jGst6L9v+g+TM/64z/JjcP8/mHf/LX+Uv/pH/Tv+gB/JLs
z8X+5237X9nf7G/2N/ub/c3+Zn/zP/K/8j/zv/O/iTMgZOEm9883vf8t/ij+KP4o/ij+KP4o/ij+
KP4o/ij+KP4o/ljCr+Kv4s/i7yED6APfZfM+AjsBeYdAffcPWxyBPy1m4gRGvsO4f/8v/zv/O//7
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
jJwxX8BHRpopLVwgRfOflE3fvClNGtXENcy1wVnkrQbZBGhs7i/Hl9DWrdskq9eWSq1mh0md9rgi
vmE74Nl6+bdGn3nitdyBe8xZcDF/9C0pXCjPLnpMPlj5ltRsnCEZeIFUE1/TSgf/dMAqLcMV2CW4
BWG9FK8pkgOadcEtCCfLbpntiMIqpMryb43+zua/099y/Tv/d27/9/bn7W9L8tf7n/e/nal/uPxx
+ePyp2r91+Wvy1+Xv5CRYTanv5xqV3f+vb3zT+9/3v+8/3n/q678Wbd+veTnrZZ0fFmoadOmWErD
siTWCqtaf0vVf/khEG4G5i0DOUhfq1bGTl3/S6Wfuv62Jfm3aeMGyV2VK7Vr10VZs1U2c/Uuvv5J
+Tt9Br7OPhNfZ89qLOP06+xYbC4txQ0Qq7D0WSSNGzaW+rgtgbS2Rp98yVu9Rgqw3te4UUNp1LCR
rrVWtf4al/88krAmL18KCwqEhxb4VLf8/EBNcXExyoqPyqBOKxt/NmJTee5qHM4oL5X69ZE34g8M
qXb9b638ZPL/0vi3fj3aGA681MR6r/anmjW3qfzlWPdegZtGyrCG3TSnCdaOM5J0ierWf3X7f2Xt
n/2f9DcVbVQxkIkbBhImWv/m7Q+1cXPyluqf7QsfS0LzKpP6bPt42L74rqE67Z9lpSSPl6U65b/n
vnvlA9zYkpOTIzfccMM28d/bP6p0G+T/lurf2sz/Uv/f0vizK94/OX3X/13/d/0/Pma6/PX1l8r0
f47PVel/1Z3/+fhPDgYT+pyPPz7++Pjj449Jhf+t9Q+ff7j8d/nv8n9XyH9+OIk31eIDOsdA2s7H
w2t+i/EYedrcM8092dxvTWWNflV7YdMwjoZhfJjG4ODU/dcWRli6+Vg6OBOG4dx/TpuGm5IJR5qp
9LmPmyaOJ5U+8RAHbcYR1vx0Gx1LR7/tf4dTYUmbD+kRzh6jzzgzhod+ummMHt3xvNK/Q4wVYocg
S0FijLNg+i2MBWThyAALo03GWCXGw+OMM+YzPcNZucZopjGGw6nx9BsjGU+TSp9hRt/wV0aftCze
KpU2aRCnpbE4BCXywzg+NIS1dFYO2gyzRmSwCFJjZSV9wtXH027lypUvleIrXRT8RK+JuHiPHKXD
Vw6sPKMQkBGGhsuhEJT6NQ36Q1q6aMLSf7qULpovmz58T4pmfyllq5ZLKW4+IJ50vLBKz2khGbju
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
tbju2UVH58ydY5YtXWbKirDywQceMLlyC4F2np/X3xDaLecDfy602ymPFb/4szCjRo0WQ4e9plnT
ZqZ9h/YJwYkVn2+XvHxAIvePv57Rr+e2bdulUhhj2RD26xR9nZL9vkuUb6Vf6zatTWvxfHVSwmx/
PlaMEQj7KJERekpkhELiqdDfF6l7XyT7fftTG1+Q3npeNyV5uMx43Wi0MlYe2PO6ntb+1Ghiss5X
aXXLFi3lm1aezAvi1cvnKbMO/fs/J8TEmHfefidHr9uVwuPvP//8/ZTpz6JFS+zz7OXEsgwJyFGj
8aZXuvy99983p0+dMh07dTJNGjfOVvnCihUrbaQFIiM888zTKb1OV/q6eHyp/Vxlx/VTntfLg+Ve
yEE9g5yg37HKGGKZ1949YoywSIwRJDJCjZpijCDy4XLlxRghwnsnO/FGgh/LeH2/1Ltfk+m6erqX
mvdPZvteq1auMnXq1sn2fazM8Hp6lJr3k79uV+a65TS9zennM5Hxb9m61UycMMEUL1HCPNy3r8mT
N4/IUi+ar6dMMRs3bAjym+F6Uspf8b6sW6euue322+Qwlzl/4bwZPnyEGDIcMnf0uMPUql0rIn8W
/p7Nlz+fGJe20YgIJ+WKoxQPZ8ePYzhf9KY51jrK0LumDUr8qg9OGT/qqeOYpOV6DDyS21dxurnC
oj3H4CcpfMWv+t6Kh/YKh/YcKyyO6c8PeDp2ObSJdpo4Bpbi1zo9px1lqo+ueBQmdTpW2mpS/Apf
4Wp9XDnAspp0Qu5gdZC6YOT8dHLg1AlwTKKepG20rwuL+nB8tNfFUpj0oZ3CkMOQxeacOtqQaE+i
jBuCnKS4XVjg4+JrX8XvtuFY6zUHJm1dXHquZVJ9mQECdQqDY/oAi4gIVRcsICLCGTmkimKfp8I6
vP76G/Z6DRz48xy9blcKT6T7bvPmTeb48ePWC0GxYsVzdJ6R8KfCfeDHfe3Rq+3bt8m9bgzekfz1
Ta3r++OPB8yIEcPtdbv//vtMhQoV5Tj0vfr66/+w9QMHDsjw+p7BQFDex/mFUQ6/D3bv3m0+/fRT
W963bx9TunQZOQ7F48+zfz2OHTtutmzZbEOn16tX97LrEn6d/HlqPb/qQa5ater+eUphepIo36r9
RDAhwolWEhnhlERGGGug66VLlzI9e/aSyAgFc+y5P3/+guF7rCAGDym8/p7upRbdu1rX6xK99bzu
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
gfO06HnBLOgv3d48c+Zn3hdKf18g8tsv3RoTHQcJWn/65nRN5metrtG8jrEllvnR09fH/NqzFvOX
bl0DOsT8rAUdPvco10blJPD80k6r/OMf/+j23nvv7qijjuq9UVhUgm233bbjFDUf5ERCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCYBgCV111VS2cpai1FKR0q6++er0z
NkWrkxHuCM5N9q6//vrub3/7Wy10ffjDH96ttdZak3GPzQQEvve979VC36c85SkD3dX9kksu6c46
66zu6quv7jbeeOPumc98Zs1y/PHHd7///e87CojLXVAnyHzXTC1rBxH4N3Pqqad28ObfwPOf//zu
X/7lX+4aeEtx1qkcROBQ1Fe+8pWOu+sPIve4xz1qMT6HpIaRiQ4i8DfvgAMOqP/G+mPzd5OC/ssv
v7xO9R9EuOaaa2p9EE97GEvwf8tb3tJtvfXWdZqDCu1BBOL99re/Hcu1e9e73tU9/vGPrwcJnv3s
Z49pg5KDCO985zvr/HgHESbj3x40INhnP/vZUX/3X/3qV/c4PPaxj+3222+/mjM/QiAEQiAEQiAE
7loC/P9GOUS+c1nFJeXi0UjUWVvQT021NdjqiqoeFqCWmjmE2mprstHR5w0kfWvA8fdNpYcNiqon
rY+xaFt/areJgT/5mVP0Qeea6evvWlt/10MMfWi52v0xb3x8WhbMoWO+v/6+zWl8bNt+GdYx7VDS
bmKoAMWJGC6MGIBu4ZoDnS+CLyibbl/Q1rcFqR+xgMUYyPTNTx8RpHmdNx5jXwRs7WtHDIT1Mk9c
crkG4pi/fTHs46PoQ2ziGafdg/G0xVd7YjGvHzZy5Dlm65Q3OfN5UzFd8pe//KU+4eDMM88cOCQf
Ap144ondox71qIF94xACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIXD3
JkCR609/+tOOYl1ugkfxLnfI5EIWdRjB784pyOaiWJi7fVM8/LjHPW6gu19/5jOf6X7yk58s9IKs
tNJK3QMf+MCOww1bbrllt8oqqyxks7wqODBwwQUX1DuqUzw8GeHwwnve857eTRAf/ehH1zu3X3HF
Fd12221XQxB3zz33nEy4JWozlYMI55xzTvf2t7+9KzeX7Hbbbbdul112GXjtp512Wv0dm4wjN5zc
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
ARMwARMwARMwARMwARMwARMwgSoBb0SoEnHbBEzABEzABEzABN46Assvv3waMGDA+DyDR/PFRgQJ
edm6yJ9+I1/Kw1ZutsaVRK18bPWjp7zyXC11xsjFpmSMUn5ztUjVP/qKL3/E5MJeQvzYT1v6+NBG
CeWCY6v46EmiH/zRxlb577QVl5L5IvKrOdCvccaUfy89+cC2y6LgXXaQDVkQwoS0eNosRDeDSTNO
H3WASVdzkJ88VPQoseEGyzbqMI6t+hSffoni40M3SfEFUvZqy0al+vGJLv0S2rLX2hir2moNjKku
v5QI/WJGWz7UTx+6itc/10f6RASwWEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEygfQLeiNA+H4+agAmYgAmYgAmYwOIksMwyy6TBgwePyzGfyNfcfJFHrXxv
5YWTQB/ryq9GV0KdS/nmylOnjHoalx0lOtEnOrQVk/FYl27uLqK25kAnNuR8Kz653xqnxIYLQafe
OHr4YP2qS1dzzEM1W+roIZovJaJYGo/xpdOi2eRPOW7SrI06ADRpTZJSE1Wf2jigTj+XbOmL9WhH
DACiQ3I+YKkjMX5LT4sfboB08IWe2tTln5joItJjHFFbLwj6FV868iUfxGCu7D5RvFwt8dGlTzbU
iY9PhHj4kW/6qNOneaLLyQoj84kIk3wiQiZhMQETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMIF2CHgjQjtwPGQCJmACJmACJmACi5lAg40IPP1fOdTkTXNJlPdN
SZ52HFOOObrRDl/4VO42dQQdxmSHTy7y05UPjo5i5mpN6FMM5YnjB3/KC5edYmCMX82FcY1R0ubC
D3r4oU0c6ooT/WsNebi2nqqdYtCPX+XfKz4+uiyaVJcdZEP5YEKqU3IJAItAKAUEUErojzcMHS7d
SPzIBn8IdrrxiimYio0P9BWHOnHki1J+dMN087CVXa4WP/KHf9nRp/jyT1v91KMf4qDHuOJT0k+f
4tOWHT5kk6tFj/h98zVy2rRpk/JmBPotJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACHRDYZpttOtDwsAmYgAmYgAmYgAmYwKImsOyyy6ZBgwYdmuM8ka/X
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
nywbJmDIfEePHp3e9773pa985Stp4MCBreJx6sFDDz2U1lhjjcRrZMCAAWnixIlF55JLLilr//Sn
P5322muvVjGmTp2arrvuujKXFVdcMXGyw957753YMBCF+33ppZemU045Jd11113pqquuSnfffXe5
52yKgdcKK5Au2L6sv/76aZ999kmnn356mjFjRonnExHaZ+ZREzCBpYPAcsstx2f7YXm1M/LFiQPk
jpM/jVBHSJJWEj1txumLJfnX0idJn5xr6ZB7ja4u2vJHH0KbnG1K7KSTq0WkL1/oxEvxZUd8BP/0
IdE3/coxZ4y24tNWHEqtA/3YRo8xRL4YJw5tzY8+RGuVD+aovqLQlR9y3hVb2ehm4YsJUaquSdLW
olggEu1YrOyq9aKcf9AvyPJVtRE8+tFXfEouRPHlQ/PQODrYq6350E981hhtq7EYwxY96dOmHxEj
+Yhli0aLveLTRwxEmxywKSci5I0IE70RobDxDxMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARNoSMAbERqi6bUD2ojAZoANN9wwnXPOOWnw4MHp/PPPL0nnmni9
jQizZ89O9LMZYfnlly92JK4jI0aMSP/zP/+TVl111dJ+4403ymkL73jHO9IyyyxTbPr165fmzp1b
xkkiv/XWW0syPcnwL7/8culfbbXV0nnnnddqLiTnX3TRRWWcueKDDRQkyX/ve98rmyHK4CL8MWfO
nLJRom/fvmUDxtlnn52+8Y1vpC996Utlw0UMzdzYoMEmCRJCH3nkkcS6XnjhhaIGBzYPxE0UjA8Z
MiQ98MADRUc+4Ao/NhOwiYN5IB/96EfTNddckx5//PFWvonLhgN8IS+++GLZ+IE9Cf7cDzagIJwm
wIkOMOV+bbnllumVV15Js2bNKrHwwaYPNhgg//3f/52++c1vlvJjH/tY6ePHt771rXTmmWeWNvcf
X2y64KncP/nJT9J+++1X0/2v//qvcs94/eGXjRVsWkEfYSMKr6OO5JZbbiknUqDH6RRsfPBGhI6o
edwETGBpILDwRITD81ofzVfLh+u/TwVQvjc51ORes8FAOd2U8crNokOJoM8lHXKy8SdfuVobo67N
C9TRkz5t6opPW3nj1PEvQYcxxVBsSvLJFUN6uatmr5j0Ma6Y8ocP8Yhj9KODqE6bOn4k5J0rhvQY
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
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZQm4ESE0mw8smgQGDZs
WBgzZkw488wzw6GHHlpnUxqrqfkqEWHw4MFh7Nix4W9/+1sYMGBAHf2mNIoTER599NGw8847hw03
3DCMGzeujun33nsvrL322oEYuDwRoY5SA41VVlklfPLJJw1o1A59+9vfDo888sg8ek1NRNhnn33S
ns4///wA42I56qijwsiRI8MJJ5wQ/u///q942G0TMAETWKwJtGrVKrRv354vz6nx+jBexE4TFE28
NHHYXAh91Imh1qkBxGETY00/MdYI9TzumrbGsckcxW9TMk9x4dilTj+l5mJP/okLl3/5wob8U+JH
ktvQWnP78o++/DNHa5JdrRX/rAVbjOV7VR/+VUdH6xRT+lSP1aaJFtA0K7Wzteh88wKABjefzbB4
gKCvS23GmJNfzNM6mY+gRx/zqCO0madAffoEjzGtS/5lo7jNvHzdzJOu7OVt6ohK/COygW8urQs9
xmQD++yDEr1iYZ5083mciNA1HiF1w+efM91iAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZQioATEUqRcf+iQuCmm24KP/zhD0ObNm3CJZdcEnbYYYd0gsHF
F1+c3tjPPmtqvkpEIHj+V7/6VVhjjTVSAsOKK66YUHCqwp577hnefPPNlBywzjrrNApRcSLCrFmz
AjY++uijOicDEPdGMsS9996b7FeSiPD++++HL75QWOFXy5w2bVrYeuutQ69evdIell566bDCCit8
pTC31tREhCuuuCL89Kc/Deuuu26Af5cuXQo+JkyYEPbaa6/w4Ycfpj1usMEGhTFXTMAETMAEYnD0
kktyms2QyGJKvP4XL77QCYpWYLTiptVWSbw1Y7QpaTM3vxTXHbtT8D6lhGD+XJhHHHc+n3FsK84b
H7l/xvM2c9Hnkr1YTaIxbCDMU522/EiPUuPsgzZlPk/roeSSb0pE/dSZj6hP7dreJvzEYFMFwAiL
0uK1acboY0yLl09g6OboZqObB/LLHiW62JFurCabauf+pavgf9lBV/7Rl5766SNbJBfNxZbmaJx5
8i89xtBlf5x8QD8XfqVPXbYYU7/8a41xqCDaCyXCWVg9438wjfzyy9x1GvMPEzABEzABEzABEzAB
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
YAK1CPgiQi0y1puACZiACZiACZjA9CdQfxFh55j5zdj0IgK11dSMUz+tumoVSrOG0NOkxy6vM0cv
W10eiKqi1lw6/BDVt9Mj+Ct/nictxh+KndsRk/pu/KTHTvtirNpwrSs/a4y1D9axpaGTPg6r2imn
8usc2Odj4iHS4aezpIWm/tABmuqX2+uQ9LU2I0DY6LB5bh0EAPpwdVhyaaw46OTDGkDoy+tRVSEC
rA+IReJoL8RgDZEtMfOx9pL7kB8bpByvTlunxybfL2vM5aP8zJUTm/IYXefYeo8dO3aYbq6itJiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACTQk4IsIDZlY
YwImYAImYAImYAI/FIEOHTqEbt266SLC+LgParapyabPx6rZVo15XE526FUTzgsB+KCTr/ywYawC
/LzP9cobTYsYjPM4zBHlIhb13+RHGCuO/Jgjea+89Lk+Gdb/UBzVmuscspcv62LDGNG+GGMv27wX
B2yaJQRrLaFYXkX8xM1BcgC+5Z9D0utDFwgOgg+NOOjVmGudsUARRzasd4pNgMtx4lKKi6/slAdb
/AVecaMqic5BT8MWwQ5hD+hmqO+JJ1vGrCPYk192yq+YzBHFrZt9xwM7+bA2W2y944sIQ/0iAjgs
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJlCbgC8i1Gbj
FRMwARMwARMwAROY3gQ6duwYunbtOijmHRkbFxEk1GWrUT89OTbVYas2W+uq01Y9tvTYqa48DtOY
NWqx6VmjV9w4TFKOj73yKx45afhLyJ/rmcueGLoooVpwfJUfO0keh3jM8VX9O3PlpWe/iOJqD+i1
zprq72WnGPg2W5S82QGiIwdC2JAOz5yD6MNg06yjYwww2WoPihOXkh09PnzA8s1tWMdXOuVHL1F+
YuhDUn6BlL/m8lEvPTGxRS9hLn+djbWyr87AmsaKS4+gFzPmiiE9OmyVb5Y47usXEcBiMQETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIGpE/BFhKnz8aoJmIAJ
mIAJmIAJTE8C7dq1Cz169Ngp5nw7ti9jo45a9d6qC6eAPh+rvhpbCWOa6s1Vp06f22ldfvTY5DGx
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
hSOPPHKakp988slhueWWK2x32mmn8NlnnxXzeeedNyy11FLhgAMOKHS33HJLxUWHGWecMfTr1y/s
s88+YaGFFirspsfgvPPOC48++mhKteyyy4bDDjtseqR1DhMwARMwARMwgR+QQM+ePXUR4cu4Deqp
85cB+JewvD6bMZcIqP/OXybIa7IZ5w1bfIiNPo8Xp6neW3pssFXNeLV/CVR+xSQe/uRBNFevWnWK
vdHRGKv4W2dET37mqhnXvsr2sqNHsFN9uXKgQ7BhTM8aUo5Xp23GTx2iGa6FCzEEBaVismnGOgBj
GoCAWj6MDknPGn7yicM0Zg1RTI3z/KwhisdcuRgrPzYIOvIoBj2NPSoW64yJWW2MveKo1y8Cc8VW
DH3YcSnlISaifTBWfnTKqTzEmSm2PvFFhGvzW8tRZzEBEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEygRaM5FhG+++SbcfPPN4dNPPy1Fa9q0W7duYYsttgh8
829TpLkXET744IOw2267Fan22GOPsPXWWxdzDf785z+HESNGpGnXrl3DlVdeGWaYge9enf5y2mmn
hYceeiglXmGFFcJJJ500/TfhjCZgAiZgAiZgAtONAJc0478jcRFhdGwTYqNOmgsGqp2mFhsdosJ/
1ZKrNhs99tiqzjsOk19ugw7JYyq27OiVRzGTU72e2m7lRy8b9fjn/7KnuPhoTH4EH3QSzVknBq3s
R358FAsfnVm2+ClWHKYxa4jsNc7zJ4Om/iBga4ig6TDERMcG882jRyf7fJ5DQa9YigNYCvilx0YC
WAQbjQU7txdYYuZnz/ejsfYpO+KQX/uMwyIGubDDRmPlUH7WFUs2UZV0smWusfJrP8TRaw3E4UWE
PpMnT762tW5dx3iWNk7gwgsvDEOGDAmjR48OW221VTj++OPDAgss0MZP3fjxXnvttfSkIP/DAbf6
99tvv7D33ns37mgLEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCB
nwyB5lxE4HDvvvtuuP3221t0zo033jjMPffcTY5Rvohw4IEHhoUXXrhqHOLzogHyzjvvhL322quw
O//888P8889fzDU488wzw3333Zemq6yySjj22GO11KDnUsYbb7wRxo0bFxZZZJHQuXPnBjbVFLzK
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
+8Qzg19++WW6WMPvFefV51TpUTdrjDPxmvLZVsvx5ptvBv6ZePHFFwOffZ8+fRK7xRZbLMw666zV
XKwzARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgTZNoLUuIvD/+99w
ww0hfoFoVV4zzzxz2HrrrYtv+q9qNI3K8kUE6nuWXHLJRr1b4yLCJZdcEm6++eaUiy8mnVrdzpxz
zhlOOOGEVH+x/fbbF3UyBx10UFh//fUb3S8GvogwTZhsZAImYAImYAJthgA1ml27dh0UDzQytryI
k3psNeqnJ8emOmzVZmtdddqqx5YeO9WVx2Eas0YtNj1r9Iobh0nK8bFXfsUjJw1/CflzPXPZE0MX
JVQLjq/yYyfJ4xCPOb6qf2euvPTsF1Fc7QG91llT/b3sFAPfZouSNztAdORACBvS4ZlzEH0YbJp1
dIwBJlvtQXHiUrKjx4cPWL65Dev4Sqf86CXKTwx9SMovkPLXXD7qpScmtuglzOWvs7FW9tUZWNNY
cekR9GLGXDGkR4et8s0Sx31b60WEBx54IGy44YbkKIRnz3gmjUJ6ycsvv5wKzzUv98cdd1w4+uij
K9S77757GD58eIWOp9rOOuusCh1F07///e/T83UUTpelffv26Q+TY445JvziF78oL6ei67KeYvLX
X389PPbYY+E3v/lNeOGFFxr48cfOiSeeGJZbbrkGa01VcHFgwQUXDBTSS7bZZptUUP/f//5XqtTf
csst4Ze//GWFLp9cf/31YdAg/vP1O/nf//3f9JICf6Rdfvnl6bm671bjL0181m///fcPXCzhj9pc
br311rDtttvmqrDqqquGu+++u9DVyvnHP/4x8Dled911xR+KclpxxRXDX/7yl1TkzmWLa665Jhx1
1FHho48+kknquYTAH5oXXnhhzYsEX3zxRbjqqqvSDXkualQTfh9XW221cNlll4W55567MHnooYfC
5ptvnuZT+0NfDvBYZZVV0pSeixO53HbbbWGdddbJVWnMGbnxf/HFF1f9fcJolllmSf+DAhwWWGCB
BjFqceaVjOZ8tkrAZYjDDz88fU5c3qgmXELYY489wsEHHxz4HwEsJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJvBzIdBaFxHgRT0K9TbVhJcJqB9pDfkhLyLce++9RX1P
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
T6oVq+d2MOIyR/lmvWx4iSK/FNHciwiKR88fhuPGjctVVcf8wcsfvny+1YTfCW60S6rtjbWFFloo
XS7hWT6K+fmDtCz7779/4I/iBx98sLhZj301yf8Qv/POOwOF+Mi0vIgwZMiQcOihh1YLG3r37p0u
sMC7Wm5u/bPGZ4a09mfLCyH8jwm5dOrUKcCGM/I7wkWN/I912fI/DPDPtcUETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE2jqB1r6IAK/HH388cFkA4RIABfetKeWLCFOL
ffLJJ4flllsumbTGRQQCffLJJ+Hwww9PX8JZK/fSSy+dLjDkNUx80elll11WyyXMNddcYfDgwRVf
GPr000+HY445poEPNRt8eafFBEzABEzABEygbRHILiKMiSej4JR6b0Q12xSDUktN0b906qMq6TTH
lzE9ddYqzmeuNdZZk43WpJM+miQhPzXcyo+d8uVjjPFF8hzUi0uvXn5aQ18eEwc7zsD52QeCDiEH
PsolnXrW5Ku82rf8lFN6fJss2lCTHUsOxNGGtHl6hA3S+CA4DLbMczv0sonDNEYHvBwEc+zyGJor
v4CTD2FdsWVLX46NLTrFlo9+ieSDnWzy/Wicx2VP+NG4iEAvLrLLuaAjNoIta5yfXnPWaTPH1m/i
xIlDdXs4zlskzzzzTOCSQC4UWL/yyitJVa3Qn+fVtt5664CvhGLtU045JU35A4cbzrkcffTR4bjj
jkuqK6+8suKb8VHOOuus6TJD/g3yxOdGdbkInksDXB5Aqu0vLcQfv/zlLwN74eY2rzRwAeCwww6r
uECBLYXqvGDQnJvp3Bw/4YQTlDL1PC23xx57pDF/KPESQC75RY9cz7hWsTrF7FdffXXgkgPF5lzG
4KUKPXWnOLy08PHHH6fb9uiqFfuXvxG/Vk5usvMHIn84UrjOOdhDNTnooIPSH4XkHzFiROCyiv7g
lj2XSPL98gfreeedp+XUb7fdduGqq64K+iOV33MuMHCBIBd+T3hVIxd+/0499dRcFfbdd99AwX41
aewiArm5FPH2229XuHOxhZc5eM0B4ZsO9tlnn+LySW6cv1BRi3NzP9tBgwal35c839lnn532kut4
IaN8GYFvE8DfYgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAJtncD3
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
JLdhjl4xmDMmPnazxtZn8uTJQ7/+mlStJ9WKpMvR+Rb18sUDisZfeeWVsmkx33777cNVV11VzL/9
9tsw22yzha++4p+t7+TJJ58MvMrQVKl1EeHSSy8NgwYNahCOb9+ff/75w+eff16xdsQRR4QTTzyx
QldrQtF3//79w9ixY2uZTJOe/zDlW/TnmWeewr7a57DuuuumAvPCKBs09q35P9aLCC+//HJYZpll
spPUDW+//faw9tprV+irvT4xrRcR9tlnn3D22WdXxNNklVVWCU8//bSmqb/tttvCOuusk8ZnnXVW
OO644yrWe/bsmS7WcCOvLBT28zJBLl27di1eKmjtzzbPUx5zeYOXSIYOHRquu+66dJkjt+Hs99xz
T67y2ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwATaJAFfRGiTH6sP
ZQImYAImYAIm8BMlUP8iAhcRRsc2ITbqo/XNy9R7U0edF/Cjo2HHmtaZq76asXw1jqokisU6efAh
Rm6PTa5TnTixEOWXL+vKz5qa9sOcMb1ixWFxLnIh9MTBRjr82A+FqvhLsEEnH/xkIzvWGNOIg2if
GidlS35ooy2JweaIw6EkApavcRAOqcMKlA6KL2PN6RH5CRr+slMs5sqPvQr+lR87Gnr50OOnvSqf
5vSI4smPufJrb8wVD51eLiCf1hRHvez1wStfuY8hin3rXMTsHFuvWGR8LQatKR999FHo3bt34KJA
NenVq1d49dVXGyz97ne/C+eff34DvRQXXXRR+NWvfqVp6jfaaKNw//33V+iOOeaYcOyxx1bomMRL
F2H48OEhv3hBMfjmm2+ebGtdRJh99tnDf/7zn8ALDbnwzfrXXHNNrkrjm266KWy44YYN9NUU7J0z
5DLrrLOGP//5z7mqYjxu3Lhw8MEHV+iYlF+ZaO1i9R/rRQT+yN9ss80qePCZvfXWWxU6JlwQ+cMf
/lChn9aLCFx24IWAatLYRYQnnngirL766g1cjz/++HDUUUdV6N95552wwgorhE8++aRCv+WWW4Zr
r637x7U1P1su8tx7770V/7zy6kK1/Z533nmBFzxy6devX3jxxRdzlccmYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAIm0CYJ+CJCm/xYfSgTMAETMAETMIGfMIFYB7xT3P7o
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
J/FGcU3ke2fnEMKacIpNCIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACITAhk+Awwj77bVmdTNcTQ4irNk9nexBhM997nPlbW97W7nPfe5THvrQh46ZZPbs2eU2t7lN
W1vdQYTjjz++HS641a1uVQ444IBCv/3225ff/OY35a1vfeu0n4hw+OGHtyc1fOxjHytz584dtd+f
/OQn5dhjjy13vetdy6tf/eq2NtmDCAbkEMWZZ55Zfvazn5VvfOMb5Y9//GPZcsst26GNbbel9Gvm
5cEPfnD53ve+1w56HHrooTO/gWQMgRAIgRAIgY4ABwPnzZt3ZFWdV5unD3lzZ3E8PQX71FEzZq2f
12mbo9dGX98kGo91P/kdG+qztSUmc0Vf1mnGZt38vQ1jbOjV12ET58THF9He/PTmp2fdHh9r6+uw
7Udb5tjStOl9jYEd+/M6semvifUpSb+RKQWoTm5SgMzdrBfWQ2BdYIz1H6sftqvmTbRlwhg7AZJb
OOgp3Dd/HQ7sscGXvgfaz9Ej6GgIPuZ3bB7WsWMv5ETM7wGDPj7+7pueOObRDhvGNPMx3rq23S++
+OLF119vqqoZRy65Ylb50k9wi4RACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACITApkHg/7vLDWXnuZb4THxNOYgwMR9XV3cQ4UEPelA55phjNG8HBJ71rGeVvffe
uz0hYLAwzmCigwiXXHJJOfroowtPUDjppJNGHRTgqQs8fWG8JyIM74v0J554Yvnwhz9c2B9PQkBe
+tKXlu9///uFAw/3uMc9ms4v5ORpDEcccUR53OMe19RTPYhgTHqekvCSl7ykcNCh30tvszbG//7v
/16+8pWvlFe96lXlgQ984Coh73vf+7aDEYsWLRpzfRWHKEIgBEIgBEJgHRJYeRCBJyL8vjYOIlAn
fV1t1n0zpviZ+mrEgmnseANoc90eO98gYqseHePez/jY0TisgA113eS3vrsOB3GwQ8zRx2fNfWIz
ni1r+JGfONjpi566c/bSr6M3Hr1+6vu5Y+2reRP0Sj9WN6l+OPiknFcac4HG4ULcOH1/c7gRgBVI
HTbxItAjxNAPiMz1Nab56lKzdY6t9tjqR29M8+tTl5pgg4856DevjT27D2PqS088ehrr5Ndef2LT
3FsdDpgZCx/8zUGPfx+vTltsfLapbfeLLrpo8Q03YDKxnPbL2eW8S0w1sW1WQyAEQiAEQiAEQiAE
QiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQmBjIHCLnVeU+9xu9bUzXEsOIqzZ
HR3vIALF+xTxL1y4sLz3ve8dBONgAU8ZuOqqq8qzn/3scsghhwzWTjjhhMKTB/bbb7/y4he/uOkn
OojAUwQe/vCHFz6Y9T3veU/LhdMFF1zQnlRw6aWXrnIQYbx94TfWQQT2w/533nnn8o53vGNw2OGc
c84pz3nOc8ry5cvLa17zmrLvvvsSokzmIMKKFSvK4x//+HL11Ve3GHvuuWeLgf7lL395Of3009t1
3O9+92v6tf3lIx/5SHn6059e7nznOzfu8+fPH6T4/Oc/Xx772Me2pzL89re/LVtvzefgRkIgBEIg
BEJg/RLYaaedjq47OK+2K2ujJtvie3oKn2mOedNHfTXSF/ujY44tPTXbxmFOs34cW2Ngr682vT/r
7klbfX0Dql5/9OR3To8Pdoj+zPXFR/thf2xc05fesdeFH2N6atK5fvdRh4P8jBHzE3vKQpDpihDs
uQjFi2TuOjoujL6/aHTC09Y5tjRh1eEgntBcIw5iDMdNWb8ImLnx1QET+Pgi5hyZjeR3rI35zUvv
Wt87JiYHDBDz0ntogfzERLA1LvM+Ns/n2q0+EeGkNXkiwkdPn12uudYtECoSAiEQAiEQAiEQAiEQ
AiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAhs3ga23WFEO25/Sm9VLDiKsnhEW
4x1EqHVK5TGPeUzhQ1MXLFhQ7nKXu7SDB/iceeaZhU/jp45pr732agcIKOyn4J2nG7z97W8vFuVP
dBCBWBxY+OEPf1i22267luO6665rn+K/+eablyuuuGKVgwgT7Wusgwjsn0MB3/3ud8tWW21Vbn/7
2xf29Ktf/ao9uYBDFRwmUCZzEAGfd7/73eUTn/hEi33ggQeW7bffvvz85z8vv/zlL8u8efPKhz70
obLNNnwG7dqXv/zlL+Xggw8uZ599dtlll13a+CY3uUn5xS9+UU455ZTCgQj4Pu95z1v7yRMxBEIg
BEIgBCZJgPcIc+fOPbK6/b62ZbVRN80bOxpjG3NqvKmjdr0O25jiaNboado6JgZibMbYIPTaWYdu
TnvtrDE3f+/HGv7o8HOOLXPWHNdh0+mvj/ldp0fcB/5+6H0fHybMrTHHHlvjmt846u2r6dSFINOV
PgZjGhekvocnAC+Gi0a4YAQf1vRFjz9NXQ9LkHW5CTbYeooDJXNiEotif3PX4QC6wNEhxKG5F/ZJ
HARbb5b7Q29u7NwXY/MTywMIddjEuH0cFvAxP2Pt1DHnIMKC+kSEk9bkiQgnnDa73LAC99Gy9/Y/
GK3ILARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIAQ2QAK/
uPLuq+xq9qwV5VH3ofRm9ZKDCKtnhMV4BxFY++IXv1hOPvnkUmuWyg477FA+/vGPo27Cp/1/+tOf
LmeddVbh8ADFhbe5zW3Ks571rLLHHnto1tYe/OAHt0J5npgwLDxN4L/+678KTzr4298oAytl//33
b09aoIj+AQ94QHn+858/ym28fS1atKj8z//8T9vDQx7ykIEPTz3gqQgceLjwwgvLrFmz2kGJe93r
XuWoo44a2DH4wAc+0K75BS94QTsE0S+++c1vbkyOP/74co973KMtUcvFkwk++clPtoMTKDnwwMEN
nrjQP6Wgj7W2xjyZ4phjjilf+MIX2gEL497sZjcrxx13XHnEIx6hKn0IhEAIhEAIrFcCs2fPLjvu
uCMHEc6v7Zrarlu5Ieu3qce2bpw3fDbqqB37RtAeX3wQCqdprKGzkHrkDUZVVMEeYY382tDjg6/5
sHXuWH/0+pqLuTpyUhOOuM4Yf+3Irw29+x6uv9eGdcU4zNVjZ35yOh/Oj8+UxOBTcl7pxMWxYRrx
uBA2Sk9T3Lx65r0PvsQCNGNj2ePHjRSEOcbKjx2CDzmYE0cfY7Gmjt742lbVKGFdH+wR8xPTWOiY
E8f8rOlTh4MXJTHdj/l7W2IoxmV9u9p2q2+EF7s4UZ+DCBPRyVoIhEAIhEAIhEAIhEAIhEAIhEAI
hEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhMCGTiAHETaMO8Sn6nNYgIMGW2655Sqbosj/0ksv
LTe96U2bzSoGa6jgEAJPO6Bwf+utt16t1+r2NV6AP//5z22fPLlgbcvll1/eWHEIgMMOMykcBuEp
D5dddlm57W1vW9hDJARCIARCIAQ2JAL8bqy/54+oezq/tqtqoz6aOnFqr4eL5am1Rm9tNnMb9dce
YqjDZqc9PT7EQ/Qnl3nQM1aHj/n9Bc66sRgjzBHzY2t89PqwPlwfj4518zAmPzFpzuuwxVQvI/Kg
ox8rvvZ1eXBdjlkzP3mmLCRfW8KGEIB4I9B5IV44NhTUe7JDCOgRwWDP2DkXyhg9Psz7+MREiGvB
vuvo8cUHX55M4D7rcFQe4+PLWHGfxiSWeYxJDvITn3WfwFCHAyaMt6jN/Pj012VO87OGkIM1c25V
x3tccsklizz5W+fjyuoOIhxyyCHj+mYhBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIg
BEIgBEIgBEIgBEIgBEIgBNYXgc9//vMtdQ4irK87kLwhEAIhEAIhEAIhsPYJcKhx7ty5R9fIS2q7
ojZqp60vpw6bhqCzbtunBvQF/NRYI9j0ddfGsAYbH+u36dFbF05cxujp9SWe+akLN7+5iGF+81RV
kz4GcZj38c2PsfmxcU/Gda/kZy/EYq2/VnXUmjvGxn2iZ4zOcR1OT9zA9KKMeLvp/uIFgAUF9FwA
mwcI9jbnrOHTN/zcJ/4IdujwY4wwx89CfXTCY819md8Yw3P8+n3jp63x+jljxJ78iDHITXNf2LFm
DOJzHfTYDQt+2vZ+PBFhQT31e/L11+M+seQgwsR8shoCIRACIRACIRACIRACIRACIRACIRACIRAC
IRACIRACIRACIRACIRACIRACIRACIbBhEshBhA3zvmRXIRACIRACIRACITAdArNnzy477rjjkTXG
72tbXht12hRFWxht3bRze+qtWWNOzxzfvlnXXdWteJ9eoZi/F/yo4+79WSe2dd7k6POz3s/xxZ5m
vDps4hoxEPwcMzePdvSucx3M6Xs/90NPMzc9op4x/og65yPaaXwl4HQFwAibcvNeNGvoWHPz5gSG
N8ebjW1fyG88emyJo20dtpjO+/zaWvxvHGzNj7126tFxWqQXfYmlj+v4mV871rDl+njyAXoaebVn
bCzW1JvfPdalgXgt9Mg2tS1cunTpIh4rtjrJQYTVEcp6CIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACITAhkggBxE2xLuSPYVACIRACIRACITA9AnstNNOHkT4a41G
PXX/ZABqsfsiacYcIqD+u38yQV+Tzbhv2OJDbPR9vDpt9d7qscHWmnHyD4v5jUk8/MmDOLe3Vp3a
cHQ0xtaKe43oyc/cmnH3NWyvHT2CnfXl5kCHYMOYnjVkON6IdgpfvYgpuA5ciCEUlMZk04y9AMY0
AAF1+GK8SHrW8NOnDtuYNcSYjvv8rCHGY24uxubHBkFHHmPQ09ijsVhnTMyxxtgbx94XAnNjG8Ob
XZdaHmIi7oOx+dGZ0zzE2aq23esTEU7KExEqiUgIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAI
hEAIhEAIhEAIhEAIhEAIhEAIhMAmSSAHETbJ25qLCoEQCIEQCIEQuJETmDNnTpk3bx4HEZbUdk1t
1ElzwMDaaWqx0SEW/ltLbm02euyxtc67Dptfb4MO6WMaWzt68xizOa3Ue6hAnTb2+FPjrRiXfTkm
P4IPOsU568SgDftZf28sfLxmbfEzVh22MWuI9o77/M1gsl8IuDZEaF4MMdGxwX7z6NFp3897KOiN
ZRzAesJkeN+ARbBxLGzjsC5YYvYx+v04dp/aEccTJursycUYG8fmMD/rw/ZV1XTaMndsfvdDHJ/W
QByeiLD7pZdeetJ11/E9N7HkiQgT88lqCIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACITAhkkgBxE2zPuSXYVACIRACIRACITAdAjMmjWrzJ8//6ga49zaltVG7TRC
zTQ14cxt1mNrY8E+vcJaPzcOtdiMjUXP3FpzDx+gp0bbOPSI9sRRh79xsVHQI8RhzH6oP3df+tOb
nzVj2xunt2cNQUfTFp016vg57u2Mh62C/1h611fbm2i1hhMYsAlhYeamvHDWGPsUAC/Qi6PHB9Gu
B4q9BxAA7po++PX5scGHWIh26LWjR3ob1yj2Jwf2CGN02BqbmDTj0LNOjw1j9qBdHbZr0M496aMd
PuSiN786bD0Igf12te1+0UUXnXjDDZhMLDmIMDGfrIZACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACGyYBHIQYcO8L9lVCIRACIRACIRACEyXwE477eQTETiIQM02
hwKsr6ZAmppp5qwh6JyzxpxG3bVPR2DO2Lpv6rf1t5YbG/XEIxY2vZ1xzYc9Oub07k07fN0TY/P3
eyMGQgzzMzc/sRBj0yPosTc3fb/mYQf93F+/N/z1Gc5flyYvXszkPVf18OKAJUh0AmHsnIvox8JB
p6+A0CEC8cJHtH+/EcajkJ8XD0DVGYO8xnHsTRas69W0vQDchz1649G7H/wZ9wcZjI0dTRv05u8P
WVR12x/riH3vZ6z2RIRLLrlk8d/+xuVOLDmIMDGfrIZACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACGyYBHIQYcO8L9lVCIRACIRACIRACEyHwJw5c8q8efM4iHBe
bdfWdl1t1Ekj1JNTl01DmLtGrTdC73p/CAG73gZbY9n38RhTz01+arbxN38dNmHOGkLsPgc68lvv
7T7JhS169+N+jVGX2pr5qR3vY2PvvN+bMc3l/rB3H3U4yG9edMjwfEQ7ya8mn6TbKHM2i3iR9GzO
CxGcF0yPjRdch030ByS+gh9ZHR2fGNwwC/qx0Z8187PujXLdG0R+x3XYoKPz6QfEYJ0e337/5mev
jBHzOievTzfo/fUxv/bkMj/xzM9Yf3X4bFHbHvWJCIvzRAQQRUIgBEKfXy5wAABAAElEQVQgBEIg
BEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBEIgBDZFAjmIsCne1VxTCIRACIRA
CITAjZ3ArFmzyvz584+uHM6r7ZraqL22oJ+aamvA1VVVOyxAzTVrCLXV1mSjY2zNuDXg+KNDPGww
Mhv52vsYi773p3abGPhbX16HTfTB3j0z1t+99v7uhwD60NP662Pd+Pj0LFhDx/pw/X2f0/jY9uM6
bXP6KUl/EVMKUJ2I4caIAWjAKeZA503whnLR/Q3tfXuQ+hELWMwt3Dc/ekSQ5nXdeMy9Cdg61o4Y
CPtl3ZvnHohj/v5mOMZH0YfYxGPP6PprMJ62dbnxND/r+mEjx+3reEEOIlQKkRAIgRAIgRAIgRAI
gRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgU2WQA4ibLK3NhcWAiEQAiEQAiFw
Iyaw8iDC4RXBktqW10bNNI1aaYSemmvqsBFqzhHqqnmCAnXV2CPYao/eWnVruK0zdw1b1rBjTMw+
d502PTrzY4tQK25+47gPenK4b3zNQ+9aHQ70jM3PGDGnNed9DGz7+nvW2AdCftaH8zt3DVv83Dfz
SYubnLTjkANxvIi+Z3PMgYY4Z9zbCUm4XCTr2OvrgYGqaoDo9cPWeNgD01j0xEPnza7Dtt7b9TkZ
G0fbPhfriPsjN/aIfb8f7c2nPXPWiM2LEj0xGZtfW2zcF/02tS24+OKLT77+epYmlhNOm11uWEGo
0bL39j9oikMOOWT0QmYhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIh
EAIhEAIhsAEQyEGEDeAmZAshEAIhEAIhEAIhsJYJrDyIcFQN+/vafCICtdX9IQLqqi2UZg2hp6mn
QLqvM0evrYcHqmpQa67OwmpyMKZH8GdO6/PUaRNj93bEpL4bH/XYuS/G1oa7ji3CGmP3wTq2NHTq
63BMO3Oa3+vAvh8TD1GHn9fSFib7xQuYrF9v70XSj7cZAWHjxfa5vRAAeHO9WHI5Ng46fVgDCP3w
elWNEgF7g1gkjnshBmuItsTsx+6l9yE/NshwvBHtiB6bfr+sMdfH/MzNic3wGN22te22dOnSxStW
sMWJJQcRJuaT1RAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAI
gQ2TQA4ibJj3JbsKgRAIgRAIgRAIgekQmDNnTpk3b54HEa6usSiIpiabvh9bs22NeV1uduitCecJ
Afig01c/bBhbgN/3vd681XQQg3EfhzliLmJR/01+hLFx9GOO9L156Xt9M1z5xTjWmnsd2uvLumwY
I+6LMfba9r0csJmSEGxtCcXyFvETtwfJBfAp/1wkvTddEFwIPjTioLcxd52xoIijDeub1ybg4Th1
qcXFVzvzYIu/4I1bVU28Dnoatgh2CHtAt8XKnnjaMmYdwZ782pnfmMwR447M/s4DO31Y26G23eoT
ERbliQjgiIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACGyK
BHIQYVO8q7mmEAiBEAiBEAiBGzuBzTbbrMydO/foyuHc2jiIoFCXbaN++trarMO2Ntt167Stx1aP
nXXlddjGrFGLTc8avXHrsMlwfOzNbzxy0vBXyN/rmWtPDA9KWAuOr/mxU/o4xGOOr/XvzM1Lz34R
47oH9K6zZv29dsbAd8pi8ikHqI5cEMKGvHjmXIg3g02zjo4xwLR1D8apS82OHh9usL69Dev4qjM/
esX8xPAmmV+Q+jvXx149MbFFrzDX32tjbdjXa2DNsXHpEfQyY24M9eiwNd82dbwwT0QASyQEQiAE
QiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQmBTJZCDCJvqnc11hUAI
hEAIhEAI3JgJzJo1q8yfP/+IyuCC2v5aG3XU1ntbF04BfT+2vhpbhTHNenPr1Ol7O9f1o8emj4kN
c3Oy3o+1reomzt0DSnyo+TY/td+u0+NDQ7AZax07YnD9jrV1j3Vp4MsYO8T90iPmcr3Pr82I5SS/
GniSbquYA8BNu0l6N6rOOQEYo6fpi64f937kACA2FOcDljHS5x/RjMThBmhDLOycMzY+ObFFtGMd
ce4LAr35tTGWMcjBXjl9Yr46bPmxRacPY/ITEyEfcYyNjjE694ktT1ZYWJ+IsDhPRKgkIiEQAiEQ
AiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQApskgRxE2CRvay4qBEIg
BEIgBELgRk5gnIMIfPq/NdTUTdMU677pqdPu16wxx7b3IxYxrd1mjGDDmn7EpFGfbj04Nuasw4Gg
M4d14sQhnnXh+pkDZ+K6F9Zdo2dOIw52xGFOHsbm6eN7DXV5cD3DfuZAT1zr781PjCmLm5pygOpo
DDbkmJ4mAC4CoRcIoCzo728YNjRvJHH0IR6CnzfenMI0NzGwNw9j8hiL3jjeMG8evvrVYYtjPOLr
h878xmeunnEfhzzYsW5+evTozM9cP2LoU4fNjvxb1paDCBCJhEAIhEAIhEAIhEAIhEAIhEAIhEAI
hEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIhEAIbLIEchBhk721ubAQCIEQCIEQCIEbMYHZs2eXHXfc
8fCK4ILarl6JgpppaqupI7fe2npsTNBTR31tbdRbY0vNNTY0DzIQRz09Qjz8EdYRbUZmI19ZMz9j
89ObnzzWhRvD+PSIemLQsMefOAo22qNjDVv0Xh/rXKf7MA49YgzzoyeGPowR9O6pKeoX15xPqu8v
ZFKOnTGbYqNsxAtl2dj0rHPTvXmuVVXzwRcdzQsyHr056rCtY0eufq23V489tuYHHmIuxsIm3rCY
l70TUzE/c21Y7+2IRzM/T0fw5qmvqoEPcRR8EPdmXPdNv11tuy1dunTxihX91nBbVU44bXa5YYVh
/76+9/Y/aJNDDjnk78qMQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAEQiAE
QiAEQiAEQmADIZCDCBvIjcg2QiAEQiAEQiAEQmAtEugOIvyhhr2qNuq9EQujqTunlpqif3X2VdV0
zq1lp6dg2uJ85q5hy5o2rqlTX02a9IcO9DUfPo4xxhfRjjn14urt9XOtt3NMHOy4Bq5/uP6eHPib
qw4He3FNX/OiR/Qzv/qR1Ul+ZZNrQ4jjhui9ecRmgzSK6bmYHqB26LWpwzZGB7wehIX5fQz8+vwC
Jx/S59eWfjg2tuiMjQ0xfBHpU1UDm34/jvu43ix8OYhAjw7RrueCjvyI+bl+bJyzTtu6tltcfPHF
i66/HpOJJQcRJuaT1RAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAIgRAI
gRAIgQ2TQA4ibJj3JbsKgRAIgRAIgRAIgekQWHkQ4aga4/e1LauNAwfUSFMzTR25NeQWSluH3s+1
6X2o1SYWvT6sa0MO/Ogd9z5VPchPDbf58Neentg0a8iNTyzqz83POnYIvXrzq2PP2CLG0hdbdMOx
0Y3l4/XpQ484J6cx28JUvhBguiIENtZvjrhukAv0JjDGjjV0ANFOfwHTo1OY42PxPhCIpz9z19Cp
R8cNZW5+Y+lflwYvBvOyJmh80fc52Fvvz5xc7tlc6LyhjBHzM3evXo9+9q47x2er2natBxFOzkGE
SiISAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiGwSRLIQYRN
8rbmokIgBEIgBEIgBG7kBGbNmlXmz59/ZMVwXm3La6PWmlpqhJ5aa4rzqcu2hrsOmx099dX6WGtt
vTa99dzYMrd2Wxt8yMOcGm191GNP/bn5jTfsTwx83KP+2hvHHF6bdsxdq8MWC190XD/CGB0+HnJg
jM545qdnj4pzYmBrHPNrN+meANOVflOM2Tgb7oUNo6NXGGvPPvTRXyiuedOMgb1r2NIo0O/96nQg
Y12re2eNMbH1d38E6O2YI+S34YM9Tz1gjD3iNfVjcrkXczJn7+ZXT+/e3Je+29W1hUuXLl20YgVu
E0ueiDAxn6yGQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAhs
mARyEGHDvC/ZVQiEQAiEQAiEQAhMh8DKJyIcXmNcWNuVtVEjbU22NdVVtYqO+moK9K2pxtYPrO/r
zVlnzrrx9KmqFpd14vV+rPX27gm9deLmI575qRtn3RzmpzcGYxs68lJDbv46HAhxEXvH5NGeMevM
za+utzOGufs9VdepCUGmK8ZwQxbRA6cX1gHFjefC9BMEcy4Sf4S5UNALg3UBsd7bk9OCfnxo5qHn
oID5iYHgwxpz/etwMNefPOQjvvmxN7861hHj6s86+XnheQ11ONgjOvP3+2FMc50YxNq6tgU35ici
8CSIk08+uZx//vnlyCOPLLvvvntFsnHL2WefXT760Y+W293uduVhD3vYxn0xG9nuOdBz6qmnlhtu
uKEsXLiw3PKWt9zgroDXB693fvne9773XWf7O/fcc8s555xTOG14wAEHlM0288faOkuZwCGwSRHY
GH6ezBTwdflzC85nnXVWufDCC8tVV11VNt9883LQQQeVrbfmLdLMS352zjzzZBybwPLly8vXvva1
cvnll5d73vOe7X3N2JZja9fl9+3YGTcsLT9b/vznP5etttqqbLPNNhvW5rKbEAiBEAiBEAiBEAiB
EAiBEAiBEAiBEAiBEAiBELgRE8hBhBvxzc+lh0AIhEAIhEAIbLIEVh5EOKpe4Hm18UQE6qips6ZH
7KmhvrY26qkVDyJQK46dddysEwNRjy0xEHQeImiK+sV6dNYYExNhbg03+cmh9DHMwxr2rqknJr6s
maOPhc46ccbWv7sPijitfycGemIyNqbXx5w1BDvyuA99mTNGzDEym+RXg0zSbRVz4rBRQbFBhAtn
g14AOte058L7CxMkfkLxIplzc4yrn/ldcx/a4Y8NzfzEwg4b9IhzbfRnDZveh5hcg7H7Nfyx32Ll
urbohu05WICeZn5sEPIrrDMnNj1VdgvrQYRFFOSvTmbyiQif+tSnys9//vO2pWc84xllp512Wt32
prROgdWxxx7bfPfbb7/y9re/fUpxNiSnww47rBWAs6cPfOAD5Y53vOOGtL0J93LRRReVD37wg+W6
664rN7nJTcrTn/70Ce03tMW//e1v5XWve13b1r777lsOPvjgDW2L5Qtf+EI588wz275e/OIXr7P9
feMb3yjf/e53W/xjjjkmRXjrjHQCb6oENoafJzPFfl393OLQ2IknnlguuOCCUZfC75558+aN0s3U
JD87Z4p08qyOwBlnnFFOOeWUZsZ7sic/+cmrcxm1vq6+b/skV155Zfnc5z7XDoCi5/v2kEMO6U1W
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
5PPCAXH6weQ94weC+slibdUdEzCBnYnAb352arrxivNyAUBDFCd99oxvpGPefHz+TMH/QfhswaX+
hvg105ZxpeiHjtaifSw+UzwWhQXdnYhUz5oXM/C5QScj7RanJI2JQuvdXHBQj8pjE9juBP51xuS0
cRO/ZuTPZCUtX97BDzm3+64c0ARMwARMwAS2LQEXImxbvvZuAiZgAiZgAiZgAjuKQBQizIjYS+PS
iQj80CN+EppzqsnYIq86fqOapfoDkS054ZpHDxv9poV56TIvQU/+mWOMEEOxGGPPWPqKwxoi36Ue
ceKnqtlG84qlnHC1Wld89BSflnV0udib9hfdDvVko/joS8o+/hDNYad7yQs9/YKDvopukrazzQgQ
OrrZMrZuBAB64LpZ9qe+/DAnG9YAQlu/HlNtRID1gFjEj/aCD9YQ6eKz7GsvpQ3x0UHq/VVnq/Po
lPtljbFsFJ+xYqJT32cuDjZOk5ubm2eTUNmddFeI0J29103ABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABExgRxKY/8TL2oUfVmlJ7z1auVTtlttM/N///V8eH3PM
MW3mPTABEzABEzABEzABE9j+BIbFG5oaGxtViBCvU8l54HywIzGaS33lbCvHPJZqyfnKCY/XstTy
yGUrO3To60Nj2Zbzihuqtfj0Sz+MEXRlS/438RH68iM7xkjZypa2nM+KrV/kR7nmug/py5Z1saGP
cI/qoy/dshUH9HslOOsvIVleSfz4ZfMCQMu79rhJWj10geBGsOHCT2nHWOv0BQo/0mM93g+U/Xbk
J5ayX2ylpzjoYy/Y8htTWXQftFzoIugh7IG5ePdhbZ/SxbfuEX3iS0/x5ZMxIr/V0RYe6MmGtXjH
apocJyLM6o8TEXBoMQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMIGBSsCFCAP1yXhfJmACJmACJmACJtBzAsOHD08NDQ0zw3JxXBQiSMjL1kX+dJwtX8tDV262
1pWnrXxszaOnxP3o5j5r5GLTskar/O7oZqn3j77iyx8xubCXEL+cZyx9fKhQQrng2Co+epLSD/4Y
Y6v8d8aKS8t+EfnVHpjXOmvKv5eefGDba1HwXjsIQ24IYUO6ecbciB4Gm2adOfoAk672ID+xlPVo
seEBy7bUYR1bzSk+8xLFx4cekuILpOw1lo1azeMTXeYljGWve2Ot3lb3wJr68kuLMC9mjOVD88yh
q3hx+HGaurUnIlz0x2Hp6Y3l1nFnMQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMIHBS6CpoSW9+5WkDXUvPhGhe0bWMAETMAETMAETMIHtSaCpqem4iLcirifj
Io9a+d7KCyeBvuwrvxpdCX0u9OSDfGt8lXpaj+maoFP6RIexYrJe9qUb01k01h6YxIacb8VnL1qn
xYYLQaejdfTwwf2rL13tMZZqtvTRQ7RfWkSxtF7Gl05Vs4df5biHZu3UAaBNa5O02qjmNMYBfea5
ZMtc2S/t9A2BDsn5gKWPlPGrM1U/PADp4As9jenLPzHRRaTHOqKxviGYV3zpyJd8EIOHTfWJ4kU3
x0eXOdnQJz4+EeLhR76Zo8+c9okuJytMjRMRZm/NiQjX3jksLVlTbiWsLSZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiYwiAnsO74lHX0QKTXdiwsRumdkDRMw
ARMwARMwARPYngQ6KETg7f/KoeZDXvlBT3nftORpl2uMlShd2uELn8rdpo+gw5rs8MlFfrrywdFR
zOjWhDnFUEz84I9xaacYMZ39ai/40BotYy78EB8/ikNfcUr/uodYrt1PvZ1iMI9f5d8rPj56LdpU
rx2EoXywIfVpuQSAm0Bo2TBrgFJCf/nA0OHSg0RXNvhDsNODZx0RTMZc+EBfcegTR75o5UcPTA8P
W9lFN/uRP3zLjjnFl3/FpuUq/RAHPewUn5Z5xaTPJTt8yCa6WY/4jXFtdSHCmscq6Xe3EcJiAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAkODwBsOezaNH0Nq
TffiQoTuGVnDBEzABEzABEzABLYXgUqlkkaMGPGeiLcirqda4/LBjtxq8siVb618bFSYJ496Y1zk
W6NLzrXytlXIgB/N0yL4wx7RB0jpVGerX1lTfPqKT6v4xCF+GUf+lbAt3+hwoY89fiToSJ851uRT
98c696l9yA8tIh+Kzzw+ZEMfYV57yhPxRWsa96gtb6RHhoUym2KjbEQ3yrJ807LOQ9fD01pMZRts
mePSDckfrWJEN6+jR6xyrdTXPProKj7wEMWiL9j4qxfFZe/4lCg+Y+mwXurhj0vxOR1BD0/zMVWz
wY8EG0R7k1/tm3ZUXJObm5tnt7SUW8OsY7npnkq6e2VHt9mxvmdNwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMYKASOPC5z6YjD9i6vBnuwYUI7Z8kTNatW9d+
oZh5+ctfTpJgMdM/3S996Uvpj3/8Y/qP//iPdOCBB3bp9OGHH07z5s1rpzNmzJi0995756vdYi8n
jj322LRhw4b061//upcedqzZ3Llz0+LFizvdxAtf+MJ0wAEHtFtfs2ZNOu+889I999yTRo8enXju
73znO9OwYZ3nm1166aXp2muvTTyf/fbbLx133HFp3333befbEyZgAiZgAibQEYGiEOGBWOcDCfne
iD7gkXdOLjVJ/5pTG1N5TmPlstOSZ63kfMZaQ5c16WhNc5oPlSxl0YFsFQ8b9VHGFpEeY/4R1bxa
2Wmt1FMfP+hxD9x/ff49MbBXrOjW9qI12Sou84jsFF/z1dUefmWT/SH40YZo9fDwzQa5SKbnZkqA
0mNeOtHNfeaAV4JQYn7pA7syvoATDynjS5e23je6zMk3OvjQN5FsYqqmU+5H/dKvHha2FCLQModI
r+TCHPERxef+0dGYda6muPZdvXr1rM2bUeleng0Pt9zrYoTuSVnDBEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABExgIBOgCOFlz29Jw5RpsxWbdSFCe0h///d/n+6/
//72C8XMnDlz0qRJk4qZ/umeeuqp6frrr08//OEP04te9KIunV533XXptNNO61SHxPoPfvCD6RWv
eEWnOlu78Dd/8ze5EOHqq6/eWpMBpfe+970v8cw6k8997nPp9NNPb7PMn43Xv/716cknn2wz/+pX
vzpddtllafhw0trayowZM9L//M//tJlsaGhIF154YYKhxQRMwARMwAS6I9BaiDAj9JbGtT4uCg74
dEfONHnkyiFXorTy0MuxdEobcrXxRSsb1qVDDOxo1S9tYroWnxxuxcNe+rT45uIfytI/vsg/V3zW
0UNoNa/4mmPP+kdXe5UtuszV+2auIxvdn2xoEY2JKZ95oTdfcNBXEQQ2Vm4Ov9ogN6iHQB891pgD
iPRkL8C0zEkYY6PkfSDgT/aMtcac5pnjgTJWfPmSfSzVvhkUlzWBxpb5MgZ7K+0ZE0t7Vizm9EDp
I4rPWHvV/chOrdY1xoYy40lRiDBnawsRQj/LmscqaeEDlbT60ZQ28C1rMQETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIEBTqAxXgM6YfeUXjixJY0fo/Scrd+0
CxHas1Ihwjve8Y40duzY9gox8653vSuNGjWqw7W+TPamEIG37R9zzDE57NNPP50WLFiQr02bNqVd
dtklnXXWWflN/n3Z12AvRHjDG96QrrnmmnTGGWd0WEBw1FFHtSnYWL9+fR7fdddd6c1vfnPie2Lp
0qXpe9/7Xlq0aFH68pe/nD796U+3QXr++efnwo8JEyakD3/4w+mwww5LF110UZo1a1Y+neK2225L
u+8ef1gtJmACJmACJtANgaampuNDZUlcG+Ii15pcaoSWXGsynfngpxzu6GY9WvKrZaNca+Vr05Yf
GBkrd1s62BCHMTnastE8+uSfK7781dvjAxvtUfbSlx/F0L1Jj7HWopt9YcucMr3pM4eNihzoMyd/
ik/LHiUa4wNd+VF86fW4xUFfpdwUfTbOhkthw8zRSuhLn33IRvaCojU9NPlAX2vocpGgX9rFsCYd
3av2zhp9fMte+8NBqccYIb4ubNDn1AP66CO6p7JPLO1FMRmzd8XXPK32pn3Jlk/3U5ubm2e1tGBm
MQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET6IyACxHa
k1EhwnnnnZemTZvWXmEbzvSmEOG1r31tTowvt0URwr//+7+nX//616mxsTF9+9vfToceemip0qP+
YC9E+Iu/+Iu0YsWK9OCDD27VfXNCwre+9a300pe+NF177bWJt1Mj8+bNS0ceeWQu8LjlllsSp04g
8eLczPexxx5Lv/rVr/JJCnkhvhx33HF5bubMmenHP/6xpt2agAmYgAmYQIcEWk9EeE8srozribj4
R0g52cqpjql2c+RXk6CvnGp09cL6Mt+cdcasy59sYir7ZR1/pR1rpb72xLzyxBUPf4pP3jjriqH4
tPJBXxdzxCWHXPGjWxP8ImrVJ4706bPOWPE1V+rJh2KXewrT3glO+iryoQ0piR44pbAOKB48NyY7
gWDMTWKPMBYU5gWDdQFivdQnphL6seFSHFoKBRQfHwg2rDGWfXRrY9kTh3j4V3z0FV9zrCPyK3vW
ic83nu4hurU9Mqf45X7oc2kdH/hqimtib05ECDuLCZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACexUBFyI0P5x97QQgWT/yy+/PP3TP/1Tuvfee3PiOu348ePT
0UcfnWbMmJGe8xylT1XjsY7NTTfdlDjF4EUvelH6h3/4h/SDH/wgXX/99emHP/xhnmu/uy0z1113
XTrttNNSR4UIaD377LP5BAAS6UmopzChXq688sp08803pz//+c/59IeXvOQlOYl+2rRpbVQ7K0RY
s2ZNvt9bb701LVy4ME2cODG94AUvyPcyevTo7OPzn/98LgDgBIF6v8T96U9/ml74whemj3zkI21i
9ueAUwrGjRuX5s+fv1Vu4XDnnXcm+LzqVa9qY8Nzmj17di7u4OQD5OKLL07HH398+su//Mv0u9/9
ro3+/fffnw455JB8GsIDDzxQW+O+L7jggvTVr341fx9QwIAuRRNnnnlmevGLX5zj8D2xePHi9Pzn
Pz+9/e1vTx/72MdqPtT52c9+lv73f/83zZ07N3FCxute97r01re+NR188MFScWsCJmACJjBICLQW
IsyI7S6JixMRyKMmz5oWUUsO9ca4yKeWkA/OmFxx9JTHHd3sg1bz6OIDYU5FBHkivigfnTX6+EQY
E0PxiSEpfSgOa+hrTfP4xJY1xSh9Mac8cfrKf9c++HDFPcgH8/jEn3zq/hizhqCHjfbBGnOM6SOK
UR318Kuc9NCsnTp+2KhAsUGEG9eGBUxr0ufGyxsTSOwERTfJmIcjv7JTfK1pH9LDHh0uxccXeugw
j2gsHdmzhk5pg0/uQb7LNezRb2hdly5z9foUFjDPpfjoIMSXsM4Y37QUIkyNQoRZmzdjZjEBEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE+iMgAsR2pPpaSHC
97///TRr1qz0spe9LPGW/JEjRyZylzZsIHcw5YTwk08+uRZo6dKl6aSTTkpPPvlkftM+CfuPP/54
GjVqVC5eWLRoUb8UIhCwubk5HXvssYkY9Qny//mf/5mLANAbO3Zs3g97HjNmTPrRj36UiwpYQzoq
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
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAl0RsCFCJ2R8bwJmIAJmIAJ
mIAJbH8CrYUIMyLy0rjWx0XBATnS5EyTR64cciVKKw+9HEuntCFXG1+0smFdOsTAjlb90iama/HJ
4VY87KVPi28u5ZDLP77IP1d81tFDaDWv+Jpjz+gi8iVbdJmr981cRza6P9nQIhoTUz7zQm++4KCv
IghsrNwcfrVBblAPgT56rDEHEOnJXoBpmZMwxkbJ+0DAn+wZa405zTPHA2Ws+PIl+1iqfTMoLmsC
jS3zZQz2VtozJpb2rFjM6YHSRxSfsfaq+5GdWq1rjM2IuCZFIcIcFyIECYsJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJdEHAhQhdwPGSCZiACZiACZiACewA
Ak1NTcdH2CVxbYiLXGtyqRFacq1JzicvWznc0c16tORXy0a51srXplU+N7qMlbstHWyIw5gcbdlo
Hn3yzxVf/urt8YGN9ih76cuPYujepMdYa9HNvrBljvtH6DOHjYoc6DMnf4pPyx4lGuMDXflRfOn1
uMVBX6XcFH02zoZLYcPM0UroS599yEb2gqI1PTT5QF9r6HKRoF/axbAmHd2r9s4afXzLXvvDQanH
GCG+LmzQ59QD+ugjuqeyTyztRTEZs3fF1zyt9qZ9yXZUrE1tbm6e1dKCmcUETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKAzAi5E6IyM503ABEzABEzABExg
+xNoPRHhPRF5ZVxPxEWOtHKylVMdU+3myK8mQV851ejqhfVlvjnrjFmXP9nEVPbLOv5KO9ZKfe2J
eeWJKx7+FJ+8cdYVQ/Fp5YO+LuaISw654ke3JvhF1KpPHOnTZ52x4muu1JMPxS73FKa9E5z0VeRD
G1ISPXBKYR1QPHhuTHYCwZibxB5hLCjMCwbrAsR6qU9MJfRjw6U4tBQKKD4+EGxYYyz76NbGsicO
8fCv+OgrvuZYR+RX9qwTn2883UN0a3tkTvHL/dDn0jo+8NUU10SfiBAULCZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAibQDQEXInQDyMsmYAImYAImYAImsB0J
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
birCZ0xttdr8oAA12XkRtfroZa94zKFHpKMem3iKozp31XIzh5/yM6/8sZv8FFNjYipe7kdOiWIq
P3p0xMcXP+bw4dG6aBVHeaIqica0iPzUEh9hPs+veGmyrj+UrK5+RXsBl74SVB0C0EbwkZ3gCYLG
mpeesdYsyLJVbtnKTvN6OYwRjbEDIocHJNio6J+c2l/eR8ej+MTRE7tJ8nni4a89KD825G8aHwk2
yo8OGwl+SKv4dHz//fcHfPEFv9MWEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzCBmgj4IEJNZBacvr4HEf7973+H559/PrzwwgthxowZoVOnTmH33XcPO++8
c7XN3HfffeHJJ58Mw4cPD23atAlbb7112HHHHQM3LeRywgknhFatWoWLLrooqanJOumkk0KHDh1C
z549w4ABA8LLL7+c8q2//vrhmGOOqRYDx7feeis8/PDD4bnnnku2nTt3DkceeWR45plnwtNPPx36
9OkTuAHim5BKBxFY9y233JL2ss8++6S0N998cxg0aFC48MILw6uvvhqGDBmS2nbt2oWuXbuGU045
JSy7bF5OV7XaO++8MzzyyCOJ5+qrrx44QNK9e/fAHovyf//3f+Hvf/97eOyxx8K0adPCFltsEbp1
65bi57Zay29+85vA78ODDz6YGD700EPJJ7d13wRMwARMYPEj0KJFC92IMDXujppsHuqoqa2mLlt1
1oxVg02LHTrVWOdjxYnTZbHQExOh+Fq13MRDmFdf+bGhz4Pgjw0POtV1KyfjPI5sozr54M8jX+Vj
Hj8JffbGo9jMaUwfvfITR2P1tVZsJcqv+LT1FoI1VLShfLFaJBuRnj6bpUW0garR13rZyDePhW0x
n14YdopJHzvFiN00p8MAjJnDBlsJutyGeUQt/TxfPlY+Wh6tW/EVGx90yq/Y0hUPIKDPbZhnn9yI
0P69994bxIkgiwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYQM0EfBChZjYLaqY+BxEorO/Xr19acuvWrVORO4XuSy21VDj55JPDgQceWNrOJZdcEjiI0KxZ
s7DOOuuEWGsVPv3001Rkf9lll4Utt9yyZLvDDjuEFVdcMdx///1JN3PmzNClS5ew1lprhSZNmoSx
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
fvvt8N///jetj7Vtt912pbXLpqaW2zj4PRkzZkw6sPLZZ5+FDTbYIGy66aZh/fXXn6dbHOpyEIHD
Me+9917ZcpZbbrkQr/gp0xUHr776amLx7rvvhs8//zystdZaoV27dun3e4UVViial41r41yfd1sW
PA5YzxtvvJHeAXvj0Atrgx+PxQRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwASWdAI+iLCk/wZ4/yZgAiZgAiZgAgsTgTkHEbgRYXR8KGCmTnpWfFT3TZ+aaeqrEdVmY0fx
tB7Nq8VOxdXYSo+Ofu6n+NjxcFgBG+q6ya/67tgtxcEOUY48PnNaJzY12TKHH/mJg5180VO0zVry
efSKRys/6fOx+rKP5knQS/K+dHVqi8Hr5DzHmA0qDhvRwmnzl8OLAKyAxG4SbQI9Qgz5AZGxfBVT
+eJUstUYW9ljKz9axVR++cSpJNjgoxy0y8aHNWsdiilfWuLR8jBPftnLn9g8WlvslpgpFj74Kwct
/nm8OEyx8WkZnw6xgHwgyobKtddeG375y19WC3PssceGyy67rJpeCgqfOWRAYXcuhx9+eOjXr19S
DRkyJHTr1i2fDhTYc/ihpuLtSuvZbbfdyg4efPe73w3/+9//yuL+4he/CL/73e/KdBqwRm4umDhx
olSpffLJJ8PWW29dpqvLgJw33HBDmcvFF19c7XYJOHGQoDbZcsstw5tvvllmMnbs2FSgz40Uo0aN
KptjsN5664Ubb7wxfP/73682h+6VV14p0z/44IPpoIeUNeXkJonDDjusGq/mzZuHc889N5xwwglh
6aWXDhTl87tTPBRCfA5R3HbbbRXXxvyUKVPS/DXXXBNGjhyJqpqQj0MNN910U1hzzTXL5vfdd9/A
QRAkP0who6ZNm5YOMXAw5t57701TDzzwQDj44INlltptt902cLimKBz0ge/1118fhg4dWpxOYw6e
HHjggeHMM88M6667bkWbmjhz+KI+71ZJuNHjxBNPDG+99VbgQEcl2WGHHcJJJ50U9tprr0rT1pmA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZjAEkHABxGWiNfsTZqACZiA
CZiACSxCBOIXSPeKyx0Vn8nxoSZbxfe0qs9WnyJJ6quRvNgfHWPsaanZVhzGPKofx1YxsJevbHJ/
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
R6bCf2zygwjc8MAb//W7wDyHGPT7wJjvNzdoSIjNgQGE7+zuu++e+vzIDyIQm7kllliimKfDoSAO
CCD5QQYOdTz66KNJv+qqqxZ7TYr446GHHgrcXILktxvw+3nLLbckPYdu1lhjjdTXj4cffjh9Boy5
HYJbRJALLrggHY7gO3TggQcmnX589NFHgX9G8J1abrnlAjepWEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABxH8HTABEzABEzABEzCB1keAF5HHlyrvEndGASpvcqaO
WvXeqgungD7vq74aWwl9HuwUo23sEyu303xUF4JNHhMbxsrJfN6XbVQn0VhrQIkPNd/Kz1o0T4sP
D4JNpXnsiMH+1Zet1hinCl/62CFaLy2iXJrP88umzrLKnwpcpdsM5gDQorVIWi1UOo0JQB89j3zR
5f3cT18IbCjOByx9JM9fp6mLwwcgG2JhpzF9xScntojsmEc01hcCvfLLRrEUgxx82Jw+Ub7YTfmx
RScf+uQnJkI+4ig2OvrotE5suVmhWyyqHt4SbkSgyPi2225Lb4aP62ogvPmegwbIueeeG3r37p36
FCdTvE4RuQrS00T2Q7ceoDriiCPSoQZN/+pXv0pvkufN8jfeeGPxhnfNV2rzgwgcOCgXv+PDYQEK
qznM0KdPn3DWWWcVoZpyEGHYsGFhxRVXLHzU4VDD448/ngrqr7/+eqlbfMsb8e+88860zrwoP194
/nZ89E05iIAdhfUU2Jffms/chRdeGD744IPAgREK1vkXTlnOO++89Lb+bbbZJqy11lrFNN+zzz//
PH2+HHLIhZsFKHZHKhXQo2c/3KqAcDsAD3L++eeHTz/9NN1iwCGZSmvKC/e5pUO++UEEblHg+5sL
62U/FOFzS8L//M//5NOpP2TIkECxPr9v3DIgyQ8ibLnllmH99dfXVNF+8cUXaf3Tpk1LBxw46NAU
+fjjj8PgwYOTaX6AAT78ziN83/lucAji20QMdZNJftji23w9bwImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImMG8S8EGEefNz965NwARMwARMwARaN4FGDiLw9n/VUFM3zSOh
xhqhpU47n2OsQtPcj1jEVO02fQQb5uRHTB7q01UPjo1yxm4h6JRDOYlDPMa5n3JEdYqrtRBDc7SM
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
aF20iqM8UZVEY1pEfmqJjzCf51e8NFntDyWr1q9sL+DS64NiLKg6BKCN4CM7wRMEjTUvvWIRF3/B
AKxEtrSIYunDUX6NsQPiN0dq63xU9E9O7S/vo+NRfOLoid0k+Tzx8NcelB8b8uevlcdG+WO3yE9f
e+0Q+90mTpw4rPwHeYyaKt/lQYSnnnoq7LvvvmmpnPo96KCDwmqrrZZuJXjzzTfDyJEjww033JDm
OX08dOjQpm6rUTsfRGgUTcUJeFlaLgHeBMANCOWDCPyHhqeffrrlLryJK+ONA4cffngTrW1mAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAibQWgm0hIMIvM2fOhYVsDeVNW//
33777cMCCyzQVJcGdpUOIvCm/SFDhhR2HCY47LDDirE6HCqgroAbHSoJBxKOOuqosOmmm6bpvKAf
xZVXXpnqeNJk/LHffvult/wzXm+99cLJJ5/c4HCC7PJWBwzy2EsttVT44IMPGrCU3V133RXOO++8
PMQM/YMPPjhweECSx+7cuXM63KBDF7Kh5VaKxm626N+/fzqsIPtq2eF3+umnh4ceekghZmg5nIHN
KqusMsOcFSZgAiZgAiYwLxLgzyLxBeW6EeGzyICabB7qqKmtpi5bddaMVYNNix065pF8rDjo81jo
iYlwoEC13NggzKuv/NjQ50Hwx0ZxVdetnIzzOLKN6uSjWnPiKT9zCH4S+uyNR7GZ05g+euUnj8bq
a63YSpRf8WlrFoI1V7ShfLFaJBuRnn4OTBtQfuYR2cg3j8V8OR/2xMJOMeljpxixm+Z0GIAxc9hg
K0GX2zCPqKWf58vHykfLo3UrvmLjg075FVs68ksUJ7dhnn1yI0KXeI3XCK7zqlW+y4MIrPn4448P
d95550yX36NHj3DuuecGTlo3V3wQoTqC+ot8dV62nlMEuJaIvySXDyJwCIH/6DC3Cwctttpqq7l9
G16/CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhAMwmofmHddddtViTV
yWy88cY1xXnxxRfDo48+WpXvRhttFHgBZ61SPojAm/25hUAvLl111VUD9TC6gSDPw0tBx4wZk1Tc
JrDjjjuGDh06hHvvvTfdtMAEfrq14OWXX27wwsBDDjmk+P/2kyZNCrvvvnuKxQ9eLLjFFluE++67
Lzz++OPhhRdeCNggHTt2DGuuuWbq77XXXmHxxReveGCBFxQut9xy6UDCMcccExjvueeexQEF9sZN
EhxauOOOO4rbE3784x+nGw9SgvgjP4iAjkMf66+/fhg3blwYP368zFKrubfeeiu8/vrrxRz1SRyG
kFTL7pNPPgkcZvjqq7oaRW5l2GyzzdIhkMsuuyy89957KfTmm28ejjjiCKVxawImYAImYALzNAFq
IBdZZJF+EcLY+Eyph0FRNHXSCC3/cqWOmj5z+TgO0xi9bOSLDlE85jl8gGBD3bZsial679hNPrTM
8yg2OuVXfOaVn1Z6bBGNiY8vInvlp1V+WubV4kPtuuLktlGd9MzJJvdVDOzYg/aJTb4n5msSLbom
53onLZIFafFarDaWQ8BeEOjLv1JbtqtPWfgwVjwBJLfg4E/hvvLHbmGPDb60OdB8jB5Bx4Pgk69V
+XWAADvWQk5E+fN55cNX66ZlvcpDix029Hnoa7xg7Hd99913h+sPsHFctegvWH379q3ad1Y53H77
7emqNQqntReuROPgAX+B5MT2QgstNEvS8RcpbmLgL1e6jWGWBHYQE/gOCXB9ItcBUrivtxR8h8tx
ahMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROYpQRaykEEXhbKWv7z
n/80aX8U4FOTw9t+a5XyQYRynAEDBoRddtmlrE51BPvss0+hHzRoUKCAH+FWB24VePPNN9OYmw4o
nEf23nvvEF+Mmvo9e/YMxx13XOrzotE//elPqc/hheHDh4fvf5/3qNbJ2WefHe6///40WGuttcIf
/vCH+pm6pnxYoHfv3uHII49scICCAwccbECoHeLljO3bt0/jW2+9NVx00UWpD8/rrrsuHVxAUY59
2mmnhbXXXjvZsv5nnnkm9flx6qmnhnXWWSeNWeMjjzyS+uTjxgtusKAGo1p21CP97ne/S7H4wZqW
WWaZNH7ttdfCSy+9lPrxrc9hww03TH3/MAETMAETMIF5nUD9QQRuRBgXHw4i8IemafFR3Td96qep
r0ZUm40dNdZ6NK8WO+YQbKVHRz/3U3zseDisgA113eRXfXfsFnGwQ5Qjj8+c1olNY7bM4Ud+4mAn
X/TUnbOWfB694tHKT/p8rL7so3kS9JK8L11VbTl4Vc71xmxQcdiIFk6bfzh8EIAVkNhNok2gR4gh
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
iNapflI254cW2pwYLI44bEoiYPkcG2GT2qxAaaP40teYFpGfoOEvO8VirPzYq+Bf+bHjQS8fWvy0
VuXTmBZRPPkxVn6tjbHiodPNBeTTnOKolb0+eOUrtzFEsW7ti5jfj8+y77zzzoivvyZUbdLYQYS1
1lorvPLKKzUFXXPNNcMjjzxSk6+dTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAE5m4CG2+8cXj66adr2sQKK6wQ/v3vfzfw9UGEBjg8MAETMAETMAETMIFWQYD6
53bt2u0SNzM+Pp/Gh5pq1ZfHbirCZ0xttdr8oAA12XkRtfroZa94zKFHpKMem3iKozp31XIzh5/y
M6/8sZv8FFNjYipe7kdOiWIqP3p0eU05c/jwaF20iqM8UZVEY1pEfmqJjzCf51e8NFntDyWr1q9s
L+DSV4KqQwDaCD6yEzxB0Fjz0jPWmvGnL9vYTSJb2WleHw5jRGPsgMjhAQk2Kvonp/aX99HxKD5x
9MRuknyeePhrD8qPDfnnj48EG+VHh40EP6RDfLpNnDhx2Jdf8p2uTRo7iLDwwguHr76q7buF74QJ
E2pbkL1MwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwATmagJL
L710+Pjjj2vaQyxGm8HXBxFqQmknEzABEzABEzABE2jRBKZPnx7atm3bPy5yfHw+iw812TzUUVPE
TF226qwZqwabFjt0qrHOx4oTpxvEQk9MhOJr1XITD2FefeXHhj4Pgj82POhU162cjPM4so3q5KNa
c/kqH/P4SeizNx7FZk5j+uiVnzgaq6+1YitRfsWnrVkI1lzRhvLFapFsRHr6bJYW0QbqRt/oZSPf
PBa25Xz6wLBTTPrYKUbspjkdBmDMHDbYStDlNswjaunn+fKx8tHyaN2Kr9j4oFN+xZaufAABfW7D
PPvkRoQuseB/BL+ItUpjBxF+8IMfhFpvWujQoUN49913a12S/UzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABGYTga9i1cm0WPY0NZZe6SnGUT8t6otxvQ1jni+Y
K3Rt6vwr+Fx84JJh2he81LZ6icVo4ZNPPmng6IMIDXB4YAImYAImYAImYAKthkCbNm36xc2Mjc+U
+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
P5W8TffsxuYQHZqezekgAqcD02OjA8cwi/wBia+A1VYb4xODD0wF/djInzXlZ10flNb1AZFf4xhm
6Oj09gNisE6Pb7l/5WevjBHl1Zy8ertB6S8f5Zc9uZSfeMrPWP7S4TM+2vR4I8JcvxEBRBYTMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETGDyB5qf/54L9+A1kWZivQv+GYv74jZ7m
vT614v/y0oDG+VJBS5/6BYFY4zJCJwhF92Vhf1WYH7+d3PDT/mMdm+4o/u/qihi9lwBaXh6IPOVl
glY2ncDDezABEzABExh5AqP1IgIkfvjDH6Y//OEPbUF59rOfnY466qi2fO+999508snU56V03HHH
pfe///0NcW6++eb03ve+N+ve9a53Zdurr746nXPOOWmrrbZK1157bS7M/+AHP5h+9rOfpSOOOCKd
ffbZ2f7GG29MH/rQh3JxPW990AWHhgQdNunvIsL555+fLxfMmDEjHX/88dWuP/GJT+QLCrwxYttt
t03weuKJJ6r15z73uenII49secGAt03wmS9atCjH4CIDb5fYb7/90gte8IIqhga33HJLmjdvXkP8
zTffPO25557pmGOOSePHU+7VK+XeuChxxx13pJUrV+a96I0WvdYemYAJmIAJmMDYI1C/RDg7TjY/
2opo1F6roJ+aatWASxeqfFmAmmvWEH6qgq10jKm7Zp01xvjTI7psUJvV/ix9FIu+9Kd2mxj4q748
hlnkg732zFj+2mvpr/0QQD70NJ2FNUTx8SlZsIaO9eb6+zKn4mNbjmOa5/RtSXmItgKEEzG0MWIA
GnAS5UCnD0EfKIcuP9DStwQpP2IBizmQGSs/Y0QglVfrisdcHwK2GsuOGAj7ZZ245NIeiKP85Yeh
MT4S+RCbeIpTnkHxZIuv7InFuvywEcetYryrLyIEBYsJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmMCoINDq6f9VMX/8Bo2ifRXwNxT7xxrzBl3MV/UM7QJA6b+W38J1iKgon4sAGqsv
ddXFgMKupuMCQK9veZmgihO/aSxt0Jd2jP30/w75gvA2TMAETGAMExjNFxGWL1+eLr300lwoPpSP
aIsttkhvfetb06RJk4biVtnqsgCKCy64IL30pS+t1hjwVP1DDjkk8SBT3pzAxYJ77rknzZ49OxfP
H3300WmXXXZJl19+eeLJ/meeeWbi7QzLli3LlxYeeeSRStcQuEMn/V1E+NSnPpV6enpy0f+JJ55Y
7f7jH/94HnMp47HHHqv05WD//ffPFwVKHRcKfvKTn5SqhjEXSw444IBKd9ttt6Uf/ehH1bx5wBsO
+Dro5puuumhv6MoH0fLWBV9EECX3JmACJmACY5lA/SLCSXHGBdFWReOnNTRqpRF6aq6pq0aoOUeo
q+YNCvzFqp/wYCt79NSH40eTPobZhzV0rGlMzDJ3TLMNOuXHFqG+W/kVR/ugJ7/2rT1oP1oLkyo/
Y+VnjCgncfDRXumxLevv0bEPhPysN+fXXGvY4qd9Mx+yEGAkhDg6RNmzOeYAQDRnXNoJkuBySNax
ly8fgMasI/LDVvGwAaZi0WOPTh92DPN6aVfmZKw4si1zKb/2R27sEfXlfmSvfLJnzhqx+aJET0zG
yi9bbLQvev51smu8jutK/kHRrtx+++3ZdebMmQOG4FVv3AyWcEuXf5RYTMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAEOpsARfetCvzLwvxW6+jyGwLiN3W19a7GywCx3ueCQAud8hCj
457+H7+VU4F+LsxnXtc1zBt0xRP/47d5pV15caC6BBA2Gqsv7Tr7q8e7MwETMAETMIGRIzCaLyJA
gSfW//jHPx4SkMMPPzxR6N6uXHbZZenzn/98ducywR577NEn1Gte85q0ZMmSnEe2n/3sZ9OcOXMa
bPfZZ5/0hS98IfGUfr0h4fnPf37Clqf9jwZp9yICZ6Pu6dBDD81vHPj973+faAhnf8973pO4NIL8
5S9/SVdddVUeT548OXGZg4sEDzzwQPrBD36QVqxYkX3e8pa35EseXHD43Oc+ly8TcImAtx/w5oSo
60o//elP00MPPZRjnXLKKWnXXXfNY/7QRQTGfCYvfOELczwuJuy1116oLSZgAiZgAiYw5gnE38Oz
4pD3RdMbEaitVtE+36BQVx0/UcrCGkJPkx67ss4cvWzRS7BDLx1zhBzKxRx/5rJXHtYQxS7tiEl9
Nz7SK1f8VCn7qNc6tgh2jLUP1rGloZM+hi3tlFP5sZeUY+Ih0uGns+SFof6hAwzVr7TXIen724wA
YaPDlrl1EADow9VhyaWx4qCTD2sAoW9eD1WDCLA+IBaJo70QgzVEtsQsx9pL6UN+bJDmeDVtTY9N
uV/WmMtH+ZkrJzbNY3RbRpsar/6ay42gdsUXEdolZz8TMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAET2DABfoVD4X2tgL/xaf6r0cdvxVSg338xP0/8Xx92w7sA0IlP/6cgvyzGb1WgT4H/
Zg126xue4l/5hI0uE+S4zAfQjZJauw1/kXnVBEzABEzABEYZgdF+EYEanblz56bFixcPijzF6Cef
fPKwivzPPvvs9MMf/jDnu/766xOF8c1y2mmnpd/+9re50F622PCU/t/85jeJh49Onz49HXHEEWnc
uHE5HnF5SwOXG3hjwmiRdi8iUNx/+umnNzyE9ctf/nK+LMDZuVTwjGc8I2O45ppr8qUTJm9/+9vT
jjvumPX8wdsmrrzyyjx/xStekQ466KDM909/+lPWYfv0pz89j/njd7/7Xfr+97+f5zNnzkwveclL
qrXyIkKZvzLwwARMwARMwAQ2AQLFRYTlcVwKoqnJpi/HqtlWjXksV8X5qgnnDQH4YCtf+WHDWAX4
ZV/qlTdMqxiMyzjMEeUiVvwUqnpbA2PFkR9zpOyVl77UZ8P6H4pDTOx0DtnLl3WxYYxoX4yxl23Z
iwM2bQnBRkoolueACHFLkByAp/xzSHp96ALBQfChEQe9GnOtMxYo4siG9c2jCXBznFjKcfGVnfJg
i7/AK26osugc9DRsEewQ9oBufL0nnmwZs45gT37ZKb9iMkcUtzbr5YGdfFjbOtrUuDk7x29EAIfF
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABGoEKLrvr8B/oAsAjeu14v9G3eDfANAT
+xjG86RG9ONUwX/15P74LVY1jt9CqWi/QRc2taL+xqf/NxT6hy+x82UBxanrcswWuhE9mIOZgAmY
gAmYgAmMKgKj/SICsHnKPW8aGOjBoTxlf9asWflJ+sP5kD7ykY+kG264IYe48cYb89P8m+OdccYZ
6Ve/+lWaOHFiZdtsozlvTmBfjz/+ePrQhz6Ujj322Pwk/1tvvTXNnz8/bb311om3JPAGgA3JvHnz
0sKFCzdk0tbalClT0otf/OJ+fdu9iMB5Tj311Ia48Lzpppuy7sQTT0x77rlnHuuCAjyPO+64Bp91
69alK664Iut4w8TrXve6hnUmjz76aFq5cmVuvA3h2muvzTYvf/nL0yGHHFLZ6yJCq71VRh6YgAmY
gAmYwBgnEN8zzY4j3huNiwiS+Klars2mj58updXRVIet2mzZqE4bO+nosVNdeQzzGD212PSs0Stu
DLM0x8de+RWPnDT8JeQv9cxlTwxdlGAsX+XHTlLGwY45vqp/Z6689OwXUVztAb3WWVP9vewUA9+2
RcnbDhCOHAhhQzo8cw6iD4NNs46OMcBkqz0oTixlO3p8+IDlW9qwjq90yo9eovzE0Iek/AIpf83l
o156YmKLXsJc/joba82+OgNrGisuPYJezJgrhvTosFW+STGe5jcigMViAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAibwVBPQ0//zk/3jtzINT/uPeb4YEL/u2vAFgcan/m/oAkD5loGGmJEr
aoM6RvorxpdeFwQ0p6/peov/8+WA+M2RbKrLAkPQ+en/HfMl4Y2YgAmYgAmYwCZNYCxcROAD/MlP
fpLfNLChD/N5z3teeuUrX7khk0GtXXzxxenSSy/NtldddVXabbfd+vgdf/zx6f77708zZsxIl112
WZ91Kbg8ceaZZ6Zf/vKX6aUvfWm64IIL0ooVK9K73/3u/EYF2W2xxRbpYx/7WOKJ//3Jt771rfQ/
//M//S23rX/Ws56VXv/61/fr3+5FhL333rvPpYI777wzXX311TmXLiL09PSk888/P1/O6HcT9YXt
t98+v2WBKZcPiMcbEB5++OGWrv1dRGi1t5YBrDQBEzABEzCBMUaA703irUVvjGMtjPZENOqoVe+t
unAK6Mtx/EQs22ErYUzDTjGotyZWaaf1UFeCTRkTG+bKyXo5lm2os2iuPaDEh5pv5WcvWqfHh4Zg
02odO2Jwfo1lqz3GUuXLGDtE+6VHlEvrZX7Z1CyH+KcCD9GtjzkAtGltkl4blU5zAjBGT5MvunJc
+ukLAhuK8wHLGCnz1zS1OHwAsiEWdpozVnxyYovIjnVEc31BoFd+2SiWYpCDD5vbJ8oXw5wfW3Ty
YUx+YiLkI45io2OMTvvEljcrTItb1nP9RoQgYTEBEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzCBTZQAT92n6J/C/FX00arC/NBt8AJAw3pXjkHxv3xaFfu3zBM5O/Hp/7moP37LMi5+G1ONmW9Q
xy9A6zYbsGuwCbv+LhRsol+WPrYJmIAJmIAJmIAJtCQwVi4irFq1Kl1yySVp+fLywb29R540aVL6
h3/4h5ZvL+i1GtzouuuuS2eddVY2vuiii9KBBx7Y4EgB32GHHZZWr16djjjiiHT22Wc3rJcTLg9Q
ZM9bD3irww477JC+8IUvpK985SuJywfHHHNMvpDwpz/9KW2zzTbpO9/5Tn7LQhlDY97ScM8992g6
Yv3uu++eZs6c2W+8J+MiwnnnnZffeLHZZptt8M0QkydPzpcmuLwAx7///e/VvmHM1wGyePHi3Psi
QsbgP0zABEzABEygItDPRQSe/h8/bctC3TRNorpv+vgpZsMac9Vsl37EIqZqtxkj2LAmP2LS4ied
VU05NsoZw0rQKYdyEod4zEs/5Qh1jqu9EENr9MxpxKFmnDjKw1h5yvg6QyxX52n2Uw70xOV8smGN
GG0LgYYrisFhNaanCQAbRbRh1gClgn4OhggIdvogsUWveDHMfvrg0SPyZU4jhj4Q8jBWMT/r2KMv
PzCN8dX+Yph9FQ9f+aFjjii+ctPTyjjkxw4/5adHr5yMafIjhnximO3IPyGaLyJAxGICJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACTzKBdfGTewryc9F/9Crcb3UBoKGYv49P8QaAIk6DT/zG
JOeKdV00qNZD1ylP/+eJ+83F+M3zfBkg7PJFgPjNiPrurqan/7NW2FVF/4PRhY2f/v8k/wfhdCZg
AiZgAiZgAiYwSAJj5SICx/3DH/6QfvjDH7Y8+VFHHZWe/exnt1wbqvKuu+7Klxrw+8d//Mf05je/
uSHE3Xffnd70pjdl3dve9rZ06qmnNqxrwhsTsOMNCFxW4NICctppp+XLB7xV4X3ve1+Kh6Km1772
tXmNtzE897nPzeNO+WNjX0TgnF/60pfSkiVL0nbbbZeZD3T2m266Kd14443ZDF6HHHJIvsiBAu56
S4UvImRE/sMETMAETMAEGgh0dXWdFIqF0XTDk5ppaqupI1e9dfzEL9dVR5f11FGvjka9NbbxU9Jc
s42dLjIQR3p6hHjERVhHZFOb1f5kTfkZKz89evKTh/xlHsWnRxQbGxr2+BNHgo3s0bGmmDof65xT
+1AcekQxlB89MeTDGEGvPWVF/KE1zYfUlwcZkmNhzKbYKBvRQVlWbHrWga4PT2uhyj74oqPpQIpH
rxwxzOvYkatcK+2lxx5b5QceolyMBZt4zaK87J2YEuVnLhvWSzvi0ZSftyPow5M+VJUPcST4INqb
4mrf9JOjTV20aNFcbgS1K7fffnt2nTlz5oAh1qxZk7bddtvKbvz48WnZsmXV3AMTMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAET2NgEeOp+VfQfP3XXuCzM76OL307wlP/GSwP1p//X11r5bCgm
a50izcX+uWg/fpOQi/7jNxIq9ldhf1XUz1r9AkClG6Rfc86ci99eWEzABEzABEzABEzABExgAwTG
0kUEjvn1r389/fWvf2048dSpU9OJJ57YoBvOhIsDr3rVqxJ1Ozxln7ca8CR+yQc+8IH03//933n6
iU98Ih122GFaqvp1cXuZSwx33nlnftvAOeecU62dcMIJaeHChenMM89Mb3jDG+Ki87psw1sfzj33
3FxUXxl3wODJuIhw9dVXZ1Ycl8sbfKYS3jxx2223ZU5Pe9rT0j777JO++93v5osprex5c8Qtt9yS
3X0RQRTdm4AJmIAJmEAvgfpFhPtD83g06r0RFUZTd04tNUX/0qkPVdZpji9jen5SyU9w4yegea41
1lmTDX2rcaizkJ8abuXHV/nKMcbEQcocyo9e6/LTGvrmMfbYcQbOzz4QdAg58FEu6dSzJl/l1b7l
p5zS4ztk0YaG7NjkQBxtSJunR9ggjQ+Cw2DLvLRDL5sY5jE64JUgmGNXxtBc+QWcfAjrii1b+ubY
2KJTbPnoi0g+2Mmm3I/GZVz2hB+Niwj04iK7kgs6YiPYssb56TVnnTYx2jPjFvKctWsxaU98EaE9
bvYyARMwARMwARMwARMwARMwARMwARMwARMwARMwgU2JQMPT/+On5hT19yncb9LlJ/eHLhf/N/g0
XgDQOoX9rZ7235yHvXSCtHr6v4rxq8L/+I1AS138lL+7u+kNAKEr/fLFgMHowsZP/++ErwjvwQRM
wARMwARMwARMYDAExtpFhL/97W/pq1/9ai5K5/zd8Y08byygQH0k5YILLkjf/OY3c0iets+bD3bY
YYdcAM9bC5Bdd901XXXVVWncOMqPGmXOnDnps5/9bNp+++0T4/JBpFxAmDdvXjr44IPTJz/5yVyA
z6UF5Gtf+1rac889G4M9xbMn4yLCn//85/SNb3wjn3TixIn57RHwfeSRR9IvfvGLtGDBgrx25JFH
pgMPPDBfNODCAbL77runl73sZYkHvPLWjJtvvjnr+cMXESoUHpiACZiACZhARSAuIsyKyX3RVkaj
4D9+4plrpqkjj58aV/XeMazq0NEjpQ0/OdacWm1i0aNTTNkwJwa9xqVPqKtYquVGh7/s6YlN4xsw
1hSfWNSfKz/r2CH00iu/dOxZ38wplnyxRdccG10rH51PPvSI5uRUzLzQzh8EGK4IAhsrN0dcbZAD
6kNnjB1r6AAiO/kLMD06CXN8+FABQCOe/JlrDZ306PhAmSu/Ysk/lqp4ysuaQOOLvszB3kp/5uTS
npULnT5QxojyM9dedR75qde65vhsEW1KXES40hcRgoTFBEzABEzABEzABEzABEzABEzABEzABEzA
BEzABMYgAYrzc6OQv6GYv6aXrk8xP359fGoXAJovCFQXAJp85K89dAre5gL95nku/I+fwLd++n/o
4wJA9ilsKp8N6CofbKLxRgCLCZiACZiACZiACZiACZjA0AiMtYsInJ63Efzyl7/MIF70ohflgv6h
URnYmgL4d7zjHVUBfLMHRe9cVqAovlnuueee9Na3vjXxJP9PfepTffZ33XXXpbPOOiu7cblh2bJl
iVqkGTNmpEsvvTRfrmiO+VTOn4yLCJyPtxjockGr8+60007pLW95S7748fDDD6dLLrkkM262nTBh
QuLtEogvIjTT8dwETMAETGBTJ7B+PT+r7T45OMyPxl+Y1FpTS43Qx09iq7cRMNYadgg/pZWPaq2Z
S696bmzRE4NeNtgRkzk12vT4SI899efoGCtesz8x8NEe5S97xVEOnU12zLUWwxwLX3RcTkAYo8OH
PRGTMTrFU3569ijRnBjYKo7yy27IPQGGK+WmGLNxNlwKG0ZHL2Ese/YhH/kLitb0oSkG9lrDlkaB
fukX00panVV7Z40xseWv/RGgtGOOkF8NH+x56wFj7BGdqRyTS3tRTubsXfmlp9fetC/58o61aYsW
LZrDf4jtit+I0C45+5mACZiACZiACZiACZiACZiACZiACZiACZiACYxVAjxxPz+FP34qrWJ83gCQ
x+rrlwLK9dY+XVWs5gsAA8XkAkAnPf2fwv7mYvxB6cKvVuhfvAGgrkOvRmG/xjX7mDfrYu6n/4/V
//J8LhMwARMwARMwARMwgU2BwFi8iLBmzZr0la98JX98FKZvvjnlQyMvS5YsyRcJeCJ/KdOmTUvv
fe97E5cgWsmpp56an8x/9NFHp49+9KOtTNJll12Wz7ByJQ8iTmm//fbLtlOmTGlp/1QqebPDo48+
mqZOnZre9KY3VVs5//zz80UALlAcf/zxlZ63PKxbty7tu+++6TWveU2lZ/C73/0uff/738+6k046
Kb/NoDS49dZb01133ZUeeOCB6q0XkyZNSvvvv3/izRTl2yfiYbLp6quvTnxOquWaPn16OvTQQ6uv
D3y4jCDZ0N5k494ETMAETMAExjqBeCPCSXHGB6I9Fi1+ApzrsCmMVk11DPvoqK/W2xNYx5bifPzj
J+u5R6d5GQ+dhNps7IlX+rGu/OWe0KtOXPlYV37qxllXDnrFRa89oacpPzXksothJdgj6jUmj+wZ
s85c+aUr7RRDuZVf+nAfuhBkuKIY2hAfBpsCTimsA0qvupCfQDDHD3+EuaCgFwzWBYj10p6cKujH
h6Y89Hynr/zEQPBhjbn8Y1jN5U8e8hFf+bFXfulYRxRX/qyTny88nSGG1R7RKX+5H8Y0rRODWBOj
7eo3IgQFiwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYwJggoCfv54L++EkqfXOxfsti/vjJbV+f
uAAgvfoyZitdPV9PrHWKtHzaf/zEuCzYz0X7ha66LJB1teL/Rl3Nv2Xs+Omziv8rn9D56f+d8hXh
fZiACZiACZiACZiACZjA6CYwFi8i8Incfffd+YPZc889N/oHdP/996f58+cnLkDsvPPO+c0F8STh
YeelWP+hhx5KW265ZW7DDjiGAsAaNttss03iIsKGhDdPPPHEE9mOtyFYTMAETMAETMAENkwgLiLM
Cov50XgjAnXU8ZP63EdX9dRQr45GPbVEFxGoFcePb4gYI8RApMeWGIhylLH4rYDqtBkrDrbYKX/5
TRc5FEN5QpV1WpOemPhij07zGGZBp/yMVf+ufVCbrvp3YqAnBmPF1PmYs4ZgR17tQ77MGSPKUZsN
8U8FGaJbH3PisFGBYYMIB2eDOgA6rcmeg5cHE0j8BEWHZM6Ho7jyU36taR+ywx8bmvITCzts0COa
y0b+rGFT+hCTMyh2uYY/9uPr67JF12zPxQL0NOXHBiG/hHXmxKbnIsK0uIgwh9ehtSt+I0K75Oxn
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAmODQPn0/z7F/PGjx0pXjuMnsfmCQCtdzxAuABT+nfj0
/+qp/PGT4Fz4Hz+lbaUrC/Zl193d+/T/7FP3zesRr/np//3Z+On/Y+O/M5/CBEzABEzABEzABEzA
BEygRmCsXkTw52sCJmACJmACJmACJtAegbiIMDs874nGRQTqwKmhpiabeun4LUIWdIxVg82Yumoa
Y5rq0vFjTE9DsCO29OjKGLqogA1CfuXEV2PWlJNYjLVPxcaWMb3yE0850MmPnkZebOiZq35d/qGq
YhFb9thqb2LGvBzHNM/FiHX8tA/mbQuBhisCp8No88QtN6ox67LV5tWr0J51DlzaokMEVXlLH9Yo
7Bcc5cQWIY9iaq690LOGjfyILSljoGOOrfJrTn6dh3jshTXlwb6MJT965WeMH7b4Ieg0Zj452pRF
ixZdqdd5oRyq+CLCUInZ3gRMwARMwARMwARMwARMwARMwARMwARMwASGT2B9/ASxJ34CmIv84yeh
fYr967qB1tfEj5prT/3vShTyYz94n/ipd/h00tP/WxXjt9I1P8m/ugjQ1Vv832yT48RPWfW0/2pe
6BTHT/8f/te4I5iACZiACZiACZiACZiACZhAKwK+iNCKinUmYAImYAImYAImsOkSiIsIJ8fp50fj
jQfxW4uqTpwxQk02Y+qoEeqr0ZU99deyp0gfW9moJhx7GnPFY44wp2abHj/ZxDCL7BULm7Ipv/zK
vaJDytjkVY05a8yVn7ny0Osc2Jdz7FhDFIt18jDX/tAhOqtisEfpskE7fyh4O77y0YdFLDZEr7E2
yVyH4oBI6cdh5dc8zsbxB3pBVqxmH8FDj73y09MQ5VcM7UPr2OCvufaDnvycsfRtzsUavtjJnjl6
RIwUo+xrFjV/5UdHDkSXHPDJb0SIiwhzfBEhs/EfJmACJmACJmACJmACJmACJmACJmACJmACJjAg
AT39f6Bi/YHWR+ICAJcROkF44j5F+RToqxA/zwerq/uXbwAYzNP+80UA5SZX+RPRTgDjPZiACZiA
CZiACZiACZiACZiACYw4AV9EGHGkDmgCJmACJmACJmACo5pAXESYFQe4N9rK+kG4SBC/PajqvRlT
e41eNd30ZYtptqFHsKfJht9AUD+uWDGs1hjr8gJj7GTPnLHyMycGcRH1jLFhTTmUm556cuWQXagq
f+VEx7pyKh4xVP9erqHHBtGYOWPiSKg7Vw7ZscaY1rYoedsBCkcOhrQ6gA6tovuaZe2Q6PDhwBxG
NjpYOVcObNEjAqM1enyx0fmwxY4PUnGVE12552YbxQ2z/MHKj5iMlV9z2aPXHunZD7ER/BSHywWM
kdKGOXrFYM6Y+NhtFW23pUuXzlmzhrd1tCd+I0J73OxlAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiYw
eALl0/8HKvBvWI+fsDFv0DFf29Wg67ve68OFgVXR9LaAtfxkrUNExf4DFe33/2T/3qf/56L++Mnh
hp72X9nU7XTpwE//75AvCG/DBEzABEzABEzABEzABEzABDYBAr6IsAl8yD6iCZiACZiACZiACQyB
QP0iwoJwWRGN3+KoKJp6b+qo47c8Ve00urJGXOv4qb6asXw1DlUWxWKdPPgQo7THptSpTpxYiPLL
l3XlZ01N+2HOmF6xYlidi1wIPXGwkQ4/9kP9OP4SbNDJBz/ZyI41xjTiINqnxlk5nD+00eHEYHPE
4VASASvXOAiH1GEFSgfFl7Hm9Ij8BA1/2SkWc+XHXgX/yo8dDb186PHTXpVPc3pE8eTHXPm1N+aK
h05vLiCf1hRHvez1wStfcx8hqn3rXMTcMtqUxYsXX7FuHaHaE19EaI+bvUzABEzABEzABEzABEzA
BEzABEzABExgNBCg6F4F+CrWby7Mb16XHb3GNZ+uKlazT+/bAZp9avmx75Sn/1N0rwL8Pm8AiLWG
Yv34SZ0K+2s+9cL/eIXAuO71vXHCbqDLBK0uHYyGryHv0QRMwARMwARMwARMwARMwARMwARGkoAv
IowkTccyARMwARMwARMwgdFNgPrncePGvTFOsSDa49GoqVZ9eQxzET5zaqvVlxcFqMkui6g1Ri97
xWMNPSId9djEUxzVuZMPYQ0/5Wdd+WOY/RRTc2IqXulHToliKj96dGVNOWv40LQvesVRnlBl0Zwe
kZ964iOsl/kVLy8O9Q8lG6pfs72AS98Kqi4B6CD4yE7wBEFzrUvPXHvGn7FsY5hFtrLTuj4c5ojm
2AGRywMSbFT0T06drxyjoyk+cdRimKVcJx7+OoPyY0P+8dEk2Cg/Omwk+CGTo01bsmTJnJ4evqbb
E19EaI+bvUzABEzABEzABEzABEzABEzABEzABEygPwLNT/9vKOaPnwLlov34cU6fYv5YU/H/6h6K
/tdn21V53FvgLxv8W10AKNdH49P/q4sA8ZO2qng/fjpG4b8uBVQ26PvY9a/jMoGf/t/fV671JmAC
JmACJmACJmACJmACJmACJrDxCfgiwsZn7AwmYAImYAImYAImMFoIrI9fqnV3d8+K/S6ItjwaNdk0
6qipraYuO367k8fMVYNNjx061pFyrjjoy1joiYlQfK1abmwQ1jVWfmwY0xD8sVFc1XUrJ/MyjmxD
nX3wpxFP+WOYBT8JY85GU2zWNGeMXvnJo7nG2iu2EuVXfPq2hWDDFR2o3Kw2yUGkZ1wC0wGUn3VE
NvItY7HenA97YmGnmIyxU4wY5jVdBmDOGjbYStCVNqwj6hmX+cq58tHTtG/FV2x80Cm/YkvXfAEB
fWnDOufkjQhTFy1adAX/IbYrvojQLjn7mYAJmIAJmIAJmIAJmIAJmIAJmIAJdBqB5qf/6wJALsyP
H+VRtF8W/2sd3SrWotV0XbULAQP45LgtYvbET26G8eOaEcWqp/Tnp/nHT5kaCvjjJ04q4q/eENCg
qz/9v0FXi5Hj1OPpskArnfKzZjEBEzABEzABEzABEzABEzABEzABEzABX0Tw14AJmIAJmIAJmIAJ
mEBJoKur6+SYz4+2oq6nKJo6aYSegn1+08SYtXIe0zxXTTY28lVxteIRI36zlwUb6rNlS0zmEvkq
nvKzrvylDWNs6KWPYRbNiY8vInvl135Yw4519fiotj6Gec/Ne8VeNqWvYuDH/nTO5vystyXlRtoK
EE7apAAy12Z1sBIC6wLGWP6t+ma7MM8iWyaMsRNActPQ0SjcV/4YVvbY4EtfAi3n6BF0NAQf5ddY
eVjHjr2QE1F+XTAo4+OvfdMTR3lkhw1jmvIxnhhttwcffHDu2rVKFZohii8iDBGYzU3ABEzABEzA
BEzABEzABEzABEzABBoIUHCfn8wfP55QMX9V7B+6XNjfoli/0af29H/eApCL+8NvQ5cGWl4ACJ94
e2vHyIaK85sL9rkEsFm0WtF+rfi/uhgQPw1SrCHp6n5d/DTJYgImYAImYAImYAImYAImYAImYAIm
YAIdQsAXETrkg/A2TMAETMAETMAETKBDCMRFBN6IcF80LiLwm6010eI3f7m+mjE10/otIHoEO2q8
1bSuHjvVgGMrPTrGpZ/iY0fjsgI21HWTX/XdMaziYIcoRxmfNe0Tm/5sWcOP/MTBTr7oqTtnL+U6
esWjl5/05Vxj2Yd5FvSScizdkPrm4ENyrhtzQMXhINo4ffnh8EEAVkBimEWHQI8QQ35AZC5fxVS+
WMq2mmMre2zlR6+Yyi+fWMqCDT7KQb95NPasfSimfOmJR09jnfyylz+xadpbDCtmioUP/spBj38Z
L6Y5Nj6Tou22ePHiueuG8Vt2X0QAqcUETMAETMAETMAETMAETMAETMAERh8Bnv6fi/zjJxeDvQDQ
+oJAb/F/q0sD8qHvkyd+9NWxT/+Pn9hs+Gn/sY5N3a67u3j6f6UrbFroyqf9K5Z0o+8ryjs2ARMw
ARMwARMwARMwARMwARMwARMwgY1PwBcRNj5jZzABEzABEzABEzCB0UKA+udx48bNjv3Oj/ZYtPiN
XFV8TxG+6rM1pqaa+mqE+m4JOubY01OzjQ/xmNMYY6cWw6r2u7Qp/YmnPTEufdkLIr1yoCe/5vT4
YYcwRpjLFx/ZN/tjozX5lvvQufBjTE9NOufXPmJY5WeMKD+x2xaCDFcEQT2HkOjAzLWOjoPRl4dG
J3iy1VzABCtMq3iCpjXiIIqhcVbGHwLMXPGlAybw8UXIW56nHMtG+ZWXXmtlrzExuWCAKC+9Li2Q
X3mwVdwY5rHibBnzqfFGhCv8RgTQWEzABEzABEzABEzABEzABEzABExg4xPQ0//11P4+hfvxkwWe
5K8LAtku5irmXx3rNR/eAFAbo9uQT2XXFGcYzyUYUVA8cV/F983F+JrTN9vUdL3F//0+7T/iN8SJ
WLpgkGMwr+v89P8R/WgdzARMwARMwARMwARMwARMwARMwARMwARGnIAvIow4Ugc0ARMwARMwARMw
gVFNIN6IcHIc4L5oK6NRN01NNY2xGvP4rWquo9Z6TLMdddWs0dNkqzExEMVmjA1CL7v4jWOVT3nl
q5jUeDNu9iM//sTCR3PsmLOmcQyzTnnlo/xap0e0F/zJ3xyfOnOxUSztT76KzVw26kPVvhBkuFLG
YEzTB0rsEp4A6GAqsufACL46JHP0+NOUp4SlDyqWs2CDrW5xoGROTGJR7K/cMawK+wUcHUKcci/s
kzgItsxZ1/5imOfY0LQvzZVTFxCwRxS3jIMeP+VnLDvpmHMRYdd4I8IVfiNCkLCYgAmYgAmYgAmY
gAmYgAmYgAmMaQI8dV/F+i0L9+Nf4lrvr3C/tj74CwCt8nTi0/+bi/Grgv74iYIK9Pvq1qcGXfzE
oSEOvi10rS8TjOkvPR/OBEzABEzABEzABEzABEzABEzABEzABExgBAn4IsIIwnQoEzABEzABEzAB
ExgDBOoXEf4aR1kRbU39SKolpx6bRt00tdZqzfNYymv0+OKDUHdNww8dY4Q6cwn2CGvklw09Pvgq
H7aaayx/9PJVLubSkZOacETrjPGXHfllQ699N9ffy4Z1ieIwlx475Sen5s358WlLFLwt57pT8+0O
DsJG6WkSbV565oKOjr0QC9ACKr18+CAFQjla5ccOwY8czIkpH/T6opCOXvFlG6oGKX2wR5SfmIqF
jjlxlJ81+cSwyk9M7Uf5S1tiSBSX9cnRpj7wwANztdhOf/vtt2e3mTNnDui+Zs2atO2221Z248eP
T8uWLavmHpiACZiACZiACZiACZiACZiACYwtAuviX6sU9avAv1Vh/kC62npX4xsCipgbvjRQy0+M
Tn76fy7gj3+956L/+Be7+uai/e6u3qf/V0X/TX75ckChqy4LNOti7qf/j63/3nwaEzABEzABEzAB
EzABEzABEzABEzABE9gUCPgiwqbwKfuMJmACJmACJmACJjA4AuvjdfTd3d1vDOu/Rns8GvXR1IlT
e00fvxXNQp01TXXn9NLRU3+tSwwxzHaypycO8RDG+JNLeWLYoMNH+bUH5ZQ/Ptghys9auS4f1pvr
49Epv3zYEzFprDFHWJdejKSjbxVf9vjrrBqzpvzkaVtIPlLChhDAa8PodBAdHBsK6nWzg/VyHwKD
PWPNOShj9PgwL+MTEyGuCva1jh5ffPDlzQTaZwwb8ig+vowl2qdiEkt5FJMc5Cc+63oDQwwrJozH
R1N+fMpzKafys4aQgzXl3CLG05csWTKnp4eU7YkvIrTHzV4mYAImYAImYAImYAImYAImsDEJ8NT9
1fFPvX4vAMS/KMv1qpg/9I0+xQWAgXxarBO3U6RlgX78i1kF/ZvFv5hLm6qAP/Tj6hcAKl3dT775
4kA/usqHOOTQv9I7BYz3YQImYAImYAImYAImYAImYAImYAImYAImYAKjiIAvIoyiD8tbNQETMAET
MAETMIEngUC8EWF2pFkQ7e/RqJ2mKDp+M5vrsKnFRtCpbltvDeC32fz2Fj011ghj/UYXHXOtExMf
msbYqC6cuIxZp5cv8ZSfunDlVy5iKD89sSVlDO21jK/82Cs/PtqT4uLDmPzshVjMy7NKR36NsdE+
0TNGp3EMhyfawPCi1Ly16fLwbFZCAT0HYPMAwV5Nc9bwKRt+2if+CHbo8GOMMMdPhfroBI817Uv5
FaN5jl+5b/xkq3jlnDGinvyIYpCbpn1hx5piEJ9z0GPXLPjJtvTjjQi7Pvjgg1euXYt7e+KLCO1x
s5cJmIAJmIAJmIAJmIAJmMDYI6Cn/1cF/vFPrXKcC/xLXfzzPj/tv9RV4/4vAFRvEAjbVjEp/mcv
nSA8cX9ctFbF+Ll4P/61qr756f81v943AOQYxCt9GA9GFzZ++n8nfEV4DyZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiYwPAK+iDA8fvY2ARMwARMwARMwgbFGIC4inBxnui/aqmjUacdvzHOLrqq3Roeo
j98g5zXm/HadOb5lo/ZaQvF+Kc1z/KjjLv2xJ7bqvMlR5me9nOOLPU3xYphFa8RA8NOYufLIjl7r
nIM5femn/dDTlJsekZ4x/oh0mte0w/iTgMMVACNsSpvXoVlDx5o2r5zA0IejDxvbspBf8eixJY5s
Y5hjal7ml62K/xUHW+XHXnbSo+O2SCnyJZZ8tI6f8suONWw5H28+QE8jr+wZKxZr0iu/9hhLlegs
9MikaNMWLVo0h1eTtCu+iNAuOfuZgAmYgAmYgAmYgAmYgAmMFAEK7/VE/z6F+azVC/51KQDbVaFr
7RMXAGI926qv2/bvU4tFvE6RlkX78S/FsoifcVn8X10WyHa1CwAt44RfWfzf6BcxWa83P/2/U74i
vA8TMAETMAETMAETMAETMAETMAETMAETMAETGBsEOuUiwr777js2gPoUJmACJmACJmACJjCKCXTH
L6ef+cxn6iLCE3GU+E11w5sB+C1+WSTNmEsE1H+XbyYoa7IZlw1bfIiNvowX01zvLT022KpmvFUV
gfIrJvHwJw+iuXrVqlMbjo7GmIbojOjJz1w149pXs73s6BHsVF+uHOgQbBjTs4Y0x6tp2/hTh2jD
tXIhhqCgVEw2zVgHYEwDEFCbD6ND0rOGn3ximMesIYqpcZmfNUTxmCsXY+XHBkFHHsWgp7FHxWKd
MTFbjbFXHPX6QmCu2IqhDzuWch5iItoHY+VHp5zKQ5wtou0Wb0S4wm9ECBIWEzABEzABEzABEzAB
EzCBIRHgifvNxfplAX8u/o9/Nle6chz/2tGlgN71rnwxoN9i//BpFZPi/05/+n+rNwL00cW/2vLF
gO7iDQB1nYr6my8OSF9eJpCNn/4/pC9nG5uACZiACZiACZiACZiACZiACZiACZiACZiACYwSAp1y
EeHwww8fJcS8TRMwARMwARMwARMYuwS4iDBhwgQuIiyItiIaddJcMFDtNLXY6BAV/quWHD126Omx
VZ13DLNfaYMOKWMqtuzolUcxs1Ndr0sF0slGPf7UeEsUl31pTH4EH3QSzVknBq3ZT/X3ioWPzixb
/BQrhnnMGiJ7jcv82WCofxBwJETQdBhiomOD5ebRo5N9OS+hoFcsxQEsBfzSYyMBLIKNxoJd2gss
Mcuzl/vRWPuUHXHIr33GsIpBLuyw0Vg5lJ91xZJNqLJOtsw1Vn7thzh6WwNxeCPCbkuXLr1izRr+
m2tP/EaE9rjZywRMwARMwARMwARMwATaJVA9xT/+9dKnML+uG3wxf634n0sBQ7pUEHl6+NdTh4iK
71WY32reSpef3B//OhpXL/6vnuSfdboYUOv7ewNA5RP/8vLT/zvkC8LbMAETMAETMAETMAETMAET
MAETMAETMAETMAETGLMEfBFhzH60PpgJmIAJmIAJmIAJtEVg4sSJs8Lx3mgro1E7jVAzTVUDczXV
Y8uGdWqsy+oH1sq54mDHWLHomavWXJcP0FOjrTj0iOyJIx3+iouNBD1CHMbsh/pz7Uv+9MrPmmKr
V5zSnjUEHU226MiH4Kdxaad42aj+B/6t9KXNBsdKtEGjARbZhGBhqk3p4KwxBiKiA+pw9PggsiuB
Yq8LCADXmnzwK/Njgw+xENmhlx09UtpojWJ/cmCPMEaHrWITk6Y49KzTY8OYPcguhvkMstOe5CM7
fMhFr/zSYauLENhPjrbb4sWLL1+3DpP2xBcR2uNmLxMwARMwARMwARMwgdFFQE//V7H+QBcA+lvP
Bf/xL4TVPX0vAAzkw3onPv0/F/jHvzCqSwDxr5ah6Yb/BoDR9dXk3ZqACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACbRLwBcR2iVnPxMwARMwARMwARMYewTWr1+fJk2apDcicBGBmm0uBai+mgJp
aqaZs4ag05w15jTqrvGlVps5Y9V9o5O/armxkZ54xMKmtFNc5VNs5qxpb7LDV3tirPzl3oiBEEP5
mSs/sRDFpkfQY6/c9OWaLjvIT/sr94a/fJrzx9LQRYcZumdfDx0OWAKJTkAYa84hyrHgoJOvAKFD
BEQHr2l7PwjFo5CfLx6ASqcY5FUcjfUhC6zWwzR/AWgf6tErHr32gz/j8iKDYmNHkw165S8vWYQ6
7491RH3pp1j5jQhLliyZ29PDcdsTX0Roj5u9TMAETMAETMAETMAEBiYQ/15MPfHddfm0/rJYX28G
6LMe/yLoo4tveVevbSz+x4YYrWKi01sFsOn0p/9v+Gn/8Q+D+BdB9eT+rqLwP/T5AkH8KyH3DXZN
urqN4vjp/wN/DdvCBEzABEzABEzABEzABEzABEzABEzABEzABEzABExgZAn4IsLI8nQ0EzABEzAB
EzABExjNBLqjgGHChAlcRJgfbXW0NdGok0aoJ6cum4Yw1xq13gi91immZh2d+hjmOR7SIOQAAEAA
SURBVL1iqS/jMaaem/zUbOOv/DHMwpw1pDkHOvKzTnztkzG26OkRdIhiaKz81I6X+1c8xdHeFFO5
tD/stQ/FLufoEO2jNmvzTyVv0z27sTlEh6ZnczqIwOnA9NjowDHMIn9A4itgtdXG+MTgA1NBPzby
Z035WdcHpXV9QOTXOIYZOjq9/YAYrNPjW+5f+dkrY0R5NSev3m5Q+stH+WVPLuUnnvIzlr90+IyP
Nj3eiDDXb0QAkcUETMAETMAETMAETEAEmp/+nwv2mwrzVejfUMwf341q3utTK/4f6NKA1psvAHAZ
oROEovtcgB99Q1F/fGc9blC6KP7v6ooYvZcAcpy6ry4BtNKRu1zvBB7egwmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAk8FQR8EeGpoO6cJmACJmACJmACJtC5BCZOnDg7djc/2opo1F6roJ+a
atWASxeqfFmAmmvWECpTVJONjnFUauR11hjjT4/oskFtVvuz9FEs+tKf2m1i4K/68hhmkQ/22jNj
+Wuvpb/2QwD50NPK87Gu+PiULFhDx3pz/X2ZU/GxLccxzXP6tqQ8RFsBwokY2hgxAA04iXKg04eg
D5RDlx9o6VuClB+xgMVchfvKjx4RSOXVuuIx14eArcayIwbCflnXh6c9EEf5yw9DY3wk8iE28dgz
uvIMiifbWM48lZ91+WEjjlvFeFdfRAgKFhMwARMwARMwARPoAAKtnv5fFfPHd38U6KtYv6HYP9aY
N+hivqqn7wUA+ec3ANT9pCv91/IdZIeICvCbi/GbC/b1lH5dCsjr8d3vOAr/47vpKk7WxbxZV8wr
37qO2H76f4d8QXgbJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACmzQBX0TYpD9+H94ETMAE
TMAETMAE+hCIiwgnhXJBtFXRqHihUSuN0FNzHRUgWag5R6ir5g0KURFSFdJjK3v01IfjR5M+htmH
NXSsaUzMMndMsw065ccWoVZc+RUHO4Se/Nq39qD9aA1b5Wes/IwR5SQOPrKlx7asv0fHPhDys96c
X3OtYYuf9s18yEKAkRDi6BBlz+aYAwDRnHFpJ0iCyyFZx16+fAAas47ID1vFwwaYikWPPTp92DHM
66VdmZOx4si2zKX82h+5sUfUl/uRvfLJnjlrxOaLEj0xGSu/bLHRvugnRdv1wQcfvHLtWpbak9tv
vz07zpw5c8AAa9asSdtuu21lN378+LRs2bJq7oEJmIAJmIAJmIAJPBUEKLpvVYxfFua3Wke3Kr7D
7L0g0NV4GSDW+1wQaKFTHuJ13NP/4ztKFexXhf51XcO8QVc88T++Ey3tBrpMUF0WCD+Nn4qvCec0
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARPoTAK+iNCZn4t3ZQImYAImYAImYAJPFYG4
iDArct8XTW9EoLZaRfvUUFNXHVU5WVhD6GnSY1fWmaOXLXoJduilY46QQ7mY489c9srDGqLYpR0x
qe/GR3rlisqc7KNe69gi2DHWPljHloZO+hi2tFNO5cdeUo6Jh0iHn86SF4b6hw4wVL/SXoek728z
AoSNDlvm1kEAoA9XhyWXxoqDTj6sAYS+eT1UDSLA+oBYJI72QgzWENkSsxxrL6UP+bFBmuPVtDU9
NuV+WWMuH+VnrpzYNI/RbRlt6qJFi+auH0bFmy8igNJiAiZgAiZgAiYwVAJ8+0HhfasC/9Xo4zs6
Fej3X8zPE//Xh93wLgB04tP/8xP54zs6FeOrLwv5KfDfLFqvbn2t6L/JL18EGEBXXRao23VFbzEB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBTiPgiwid9ol4PyZgAiZgAiZgAibw1BHo
joKXCRMm6CLC8tgJNdvUZNOXY1XCqMY8lqvifNWE84YAfLCVr/ywYawC/LIv9cobplUMxmUc5ohy
EYv6b/IjjBVHfsyRslde+lKfDet/KA4xsdM5ZC9f1sWGMaJ9McZetmUvDti0JQQbKaFYngMixC1B
cgCe8s8h6fWhCwQHwYdGHPRqzLXOWKCIIxvWN48mwM1xYinHxVd2yoMt/gKvuKHKonPQ07BFsEPY
A7rx9Z54smXMOoI9+WWn/IrJHFHc2qyXB3byYW3raFPjjQhz/EYEcFhMwARMwARMYNMgQNF9fwX+
A10AaFyvFf836gb/BoCe2Mcw7kKO6IelQv6yGL8ax3dQ+RJAfFfWoIt5vizQ3fj0/5qu7hO+xM6X
BRSnrtPFAvXaw4gezMFMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMYIwR8EWEMfaB
+jgmYAImYAImYAImMAwC48aNS+PHj58dIe6NxkUECXXZalGtk1ZHUx22arO1rjpt7KSjx0515THM
Y/TUYtOzRq+4MczSHB975Vc8ctLwl5C/1DOXPTF0UUK14PgqP3aSMg7xmOOr+nfmykvPfhHF1R7Q
a5011d/LTjHwbVuUvO0A4ciBEDakwzPnIPow2DTr6BgDTLbag+LEUrajx4cPWL6lDev4Sqf86CXK
Twx9SMovkPLXXD7qpScmtuglzOWvs7HW7KszsKax4tIj6MWMuWJIjw5b5ZsU42l+IwJYLCZgAiZg
AiawcQno6f/5yf7xHUXD0/5jni8GxLdqG74g0PjU/w1dACjfMtAQM3Kt4zueDhEV4atXMX5/c/Q1
m97i/3w5IL7rqXzCJo+HoPPT/zvkC8LbMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MIEBCPgiwgCAvGwCJmACJmACJmACmxiBiRMnvjGOvDDaE9Goo1a9t+rCKaAvx6qvxlbCmIadYlBv
TazSTuuhrgSbMiY2zJWT9XIs21Bn0Vx7QIkPNd/Kz160To8PDcGm1Tp2xOD8GstWe4ylypcxdoj2
S48ol9bL/LKpWQ7xTwUeolsfcwBo09okvTYqneYEYIyeJl905bj00xcENhTnA5YxUuavaWpx+ABk
QyzsNGes+OTEFpEd64jm+oJAr/yyUSzFIAcfNrdPlC+GOT+26OTDmPzERMhHHMVGxxid9oktb1aY
Fm9EmOs3IgQJiwmYgAmYwJgkwFP3KfqnMH8VfbSqMD90G7wA0LDelWNQ/L8hn5Z5ImcnPv0/F/XH
dwjj4juJasx8g7r1/bwVoO7Xj2/zBYOcr/wOZ0x+9flQJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACI03AFxGGRpSaoDVreABur3THk77iycG9ik1gtPzRv6ffX35ZWvSD76W1y6lR
HLqM33qb9KyTZqc9jntD6trE+A2dlj1MwARMwARM4Mkj0OIiAt/8RBVTFuqmaRLVfdNHJVjDGnNV
NJV+xCImaxrHMPsylx8xaVEtVtWUE0c5Y1gJOuVQTuIQj3nppxyhznG1F2JojZ45jTjUjBNHeRgr
TxmfPPgiGjf7KQd64nI+2bCGX9tCoOGKYnBYjelpAqBDasOsAUoF/RwMEQTs9EFii17xYpj99MGj
R+TLnEYMfSDkYaxiftaxR19+YBrjq/3FMPsqHr7yQ8ccUXzlpqeVcciPHX7KT49eORnT5EcM+cQw
25F/QjRfRICIxQRMwARMYEQJrIu/dSjIz0X/0fcp3C90DU/u7+NTvAGgP5/42z7ninVdNKhihq5T
nv7PE/ebi/Gb5yrOzxcB4m919d1dTU//Zy3iVeuyHYwubPz0/xH9cncwEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzCBJ5GALyIMDfaHPvShdOGFFzY4zZgxI91xxx0NurE84RLCj08+
ru0LCM1suJBw9Nf//1FxGeGbR34lrXhoeTrs00elqYdNbz6K5yZgAiZgAiYw6gl0RSHUFltscVIc
ZGG05fUDUTNNbTV15NRWM46qqVxXHV3WU0e9Ohr11qxHpVm2wU4XGYgjPT1CPOIirCOyqc1qf7Km
/IyVnx49+clD/jKP4tMjio0NDXv8iSPBRvboWFNMnY/1koPi0COKofzoiSEfxgh67Skr4g+taT6k
vjzIkBwLYzbFRtmIDsqyYtOzDnR9eFoLVfbBFx1NB1I8euWIYV7HjlzlWmkvPfbYKj/wEOViLNjE
axblZe/ElCg/c9mwXtoRj6b8vB1BH570oap8iCPBB9HeFFf7pp8cbeqiRYvmrl9fbg23wcvtt9+e
jWfOnDmgEzest91228qO29XLli2r5h6YgAmYgAkMjwBP3a+K/uNvDI3Lwvw+uviblaf8N14aqD/9
v742OJ/ahYBsq78th3ecEfFuLvaPh3tURfx5zLxfXe0CQGUXf3tiW8378WvOmX30N/OInMpBTMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETGDTJOCLCEP73C+++OJ05ZVXZqfFixen
e++9N+21117pzjvvHFqgUWx963/+R1r4zbnpaevWpj3Wrkpbr6cMbOjyaFd3+su4Celv3ePSc087
I+150puGHuRJ9rjykC+llQ+vSK+48Og07fA9nuTsTmcCJmACJmACG59AcRHh/sj2eDT9Ra/CaOrO
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
7VOxsWVMr/zEUw508qOnkRcbeuaqX5d/qKpYxJY9ttqbmDEvxzHNc+2Zdfy0D+ZtC4GGKwKnw2jz
xC03qjHrstXm1avQnnUOXNqiQwRVeUsf1ijsFxzlxBYhj2Jqrr3Qs4aN/IgtKWOgY46t8mtOfp2H
eOyFNeXBvowlP3rlZ4wftvgh6DRmPjnalHgF2pXr1ysd6qGJLyIMjZetBybAl2NPfPXmIv/4r7hP
sX9dN9A6bwioPfW/K1HIj/3gfeL/2OHTSU//pyC/uRi/la75Sf7VRYCu3uL/ZpscJ+Lraf/VvNAp
DnuwmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmMBTQWCsXES47rrr
0mtf+9qM8JxzzsmXDkqeFPzzVoBjjz02q8vLAe985zvTBRdcUJl/5zvfSSeffHKe93dBgMXBXkTQ
hYdtttkm3XzzzWn69Ok59vLly9OrXvWqdNttt/V76UEXEXA4+uij06WXXpq23nrr7M8fN9xwQ75w
MW4cJU69MtYvInDSqYdOT4ece2TafDLPpa3JAzf/Ne3yoimpKwo2bjv/F+l3X/lVGh+XFF59xYlp
62nbyiz98crfplv+7cbEZYPXfn9WtcZFhmtO/ka2O/gTR6Q9/tfeebwuCm+uf8f38tsYUPgiQsbi
P0zABEzABMYgge4obIw3LfGN0PxovPEgKj+rOnHGCEXSjKMiMgv11ejKnm9OZE+RPrayoWoSWzXm
iocOYU7NNj1+solhFtkrFjZlU375lXtFh5SxyYuP8tMrfwxzfnT46hzYl/OY5jV6xVJ+5tqf8iuX
YrBH6YjRlih4W851J31YxNKhNdYmmetQgERKPw6LDa15HKos6AVZsZp9iM2a4ig/PQ1RfsXQPrSO
Df6aaz/oyc8ZS9/mXKzhi53smaNHxEgxyr5mUfNXfnTkQHTJAZ/8RoS4iDDHFxEym03+Dz39f6Bi
/YHWR+ICwDDuxozo58gT9ynKp0Bfhfh5Plhd3b98A8BgLhPkiwDKTa7yv+YRPaGDmYAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmMDoITBWLiIcf/zx6Zprrkn77bdfuuWW
WxJP892QXHbZZen0009Pm222Wbr77rvzmwpK++c///nprrvuSrNnz05f/OIXy6VqPNiLCHvttVda
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
sQYtQivLzJkz47HHHgv+YvA+++wTixcvzjU4B0LsvvvuGy1alC1NEWPHjo0HHnggxowZE9tss03s
vvvuOcdLL70UHTp0yLay2uzZs+Opp54qTVkfMGBA0CRYLcvSKwfuueeeYN5ll11iwYIF8c9//jP+
9a9/xYYbbpjPCpOGBBacUcL5GmIgn8bMPzp+fNxwckLkAABAAElEQVR8/fTovmmb+OczW1VCbx0+
I046elxe90h7DxZ7ixcvi4fum5X3PrNrh3h1wsJ45IFZMeW1RdGvf03s/LkO0Wmdut/TE4/Mjrmz
l+Q3K2zRj3auujIp5Xh59Lxs/Owea8ca6e0M1XLvvfdmjti7d++e/11U+3htAiZgAiZgAh9XAu3a
tTs4PdukNOakQR+1+r3VF04DfamrvxpfCToDP+Wg35pcpZ/2k7ki+JQ58WGtmuyXunyTOYvWOgNG
YvgFSvU5i/aZiWEg+NS3jx85eH7p8tUZ01YlFh0/ROdlRlRL+2V9+dR6NvJTiRsZtpI7AHRoHZJZ
B5VNaxKgY2coFlupl3H6B4EPv9EBFh0p69daavPwBciHXPhpja781NRvzPJjH9Fa/yCwq758lEs5
qMGXzf9NqF5Sc318sSkGnfr6LZV65FHupGYdm86JL29W6JHeiDDMb0RIJCwmYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImsAoCzXERYb311os5c+ZEp06d4u23
387V0AcNGhRDhw6tVD/iiCPi17/+dWX95S9/Of7yl79U1qWy884751ga+Kvl4Ycfjr333jubuUSw
6667RuoXquN2xhlnxJlnnlmxDRs2LL7zne/EwoX88d5aWWeddeKggw6K3/zmN7HVVlvlCwPaY370
0Udjzz33LE1Z59JE586dV7JzAYOcCDlPO+204NKEpG3btvGHP/whX9KQrZzPOeecuPDCCyumiRMn
RpcutW8tqBhXQ/mPTz8T06YuisO+3SXOu6R7zvT2W4tjz/7Px/Q3aTurlQee3ip69mqTF9PfWBz9
ez2d9eNO2jB+e+nUdEFguWOaNuraOq7946ei79btKsZLfzYlfnXe5GjbrmXc+UCf6N13xd6cdEFh
v51fiAnjFgSXEK6/7dPpMkglNCtcLOFiiOSYY46JSy+9VEvPJmACJmACJvCxJ1DPRQT++r9+YtI3
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
jY5d9cmjtXSdFV+J6is/c5OFZKsreqDysDokDyI7Og/LjOgBalcr7PJRbJkL3+p6+sLwU050/JQj
qXlPlwFYs4cPvhJspQ/7iGb0sl65Vj1mhs6t/MpNDDbVV27Zyt9Ylaf0YZ/n5I0I3aZMmXIjN4Is
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACDRP4oC8i
NHyy5t1ZsmRJtGpFi9MK4Q+dbr311jF+/Pg455xzgksJlroE6ruIUNej+VcnnHBCXHPNNTnxr371
q/jOd77T/EWc0QRMwARMwAQ+pAR421KbNm0OSccbn8a85cekKZo+aYSZhn36qNHZK9dpmdfqycZH
sWquVj5y6C+/40PftnzJqX7vpOY6zMqn+thUX/nxUX1m2fFFtCY/sYj8VZ9Z9ZnZ10yMeuuTms8k
X9b4MuRTxioHfjyDnhOf8pnYb5KUB2lSghSkQ3IgHV6H1YOVEPAXMHTF1zdX+yX3LPJlgY6fAFJb
cLDTuK/6Sa3440Mscwm0XGNHsDEQYlRfuuqwjx9noSai+sxImZ94nZuZPKojP3zQGaqHzlXl7un1
acP4nweLCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhA
wwQ+KRcRunfvHgMHDoz9998/evXqFam/KH75y1/GvffeG+uss048//zzeW6Y1Cdz54O4iNCvX78Y
M2ZMdOvWLZ577rlo3br1JxO+n9oETMAETOATSWD5RQTeiDAhDS4i0Ce9KA31faPTM01/NaKGafzo
8dbQvmb81AOOr+zY0Ms45cePwWUFfOjrpr76u5NayYMfohplfvZ0Tnwa8mWPOOqTBz/FYqfvnLOU
+9iVj1lxspdr6fJP7lmwS0pdtkbN1ckbFbzcmQdUHh5EB2cuvxy+CMAKSFKz6CGwI+RQHBBZK1Y5
VS9tZV+t8ZU/vopjVk7VV0zayoIPMarBvGYanFnnUE7FMpOPmcE+9eWveHIzdLakVpgpFzHEqwYz
8WW+tMy5ialJo/vUqVOHLV2Ki8UETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETKAhAp+UiwjrrrtuzJunPyq8ggaXEH73u9/lCworrNZE4IO4iDBz5syg94sL
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
1KlTb1i6FBeLCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZhAQwR8EaEhMqtn/zhdRNhp82di6uRF0bFTqzjiO+vH9Ve9EdPfXOw3IqzePxFHm4AJmIAJmEC9
BJYtWxY1NTV6IwIXEejZ5lKA+qtpkKZnmjV7CDat2WPNoO9ab0dgja6+b/q3Fa9ebnxkJx+58Cn9
lFf18MfGmllnkx+xOhO66pdnIwdCDtVnrfrkQpSbGcGOv2ozl3u67KA4na88G/GKqa6fthovepjG
R64coYcDlkBiExB0rXmIUhccbIoVIGyIgOjBa60rvgjlo5GffzwAlU05qKs80vUlC6z2k2v+B6Bz
aMaufMw6D/Ho5UUG5caPIR/sql9eskjmfD72Ec1lnHLlNyJMmzZt2OLFPK7FBEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEygIQLNfRHh6aefDnK+8sorscEG
G8Q222wTu+yyS7RqpZaf2pPQ23PvvffmxW677Rbjx4+P+++/P1577bXYfvvtY/fdd4911lmn3mOP
GzcuHnzwweAtBbNmzYrevXvHlltuGTvssEOssQZtRw3L/Pnz4/HHH49Ro0YFeXTGPffcM1q2pB1p
hcyePTueeuqpFYbl2oABA1Z6Hrbwff3117PXDTfcECNGjMjP/9///d/LI2unnXfeOTp06JAXMIDF
VlttFV27dq3jp8UDDzwQnHvzzTePnj17ylyZyUHTItK9e/fMo7LZDMoBu78YA7/YKQ4/qku0X6tV
7L7tczFu7IL3dBEBxmPHjq2cgu/13b6jirMVEzABEzABE/gEEuD3kTZt2nARYXwaC9NYlAZ90gj9
5PzQr/3BX7vWHr3eCLP2y0sI+JU++CqXZvIrHzq/WFGfX5Kwq35Ss7DWL1DkLmvgQH32ya+86Phi
13mwIcohXfX5RbLMrXzKo7Mpp2rpfPjrHMpdrrEhOkftqomfKt7E8BzG4RA9NDOH04MInB6YGR89
cFKzKB6QxApY7W7d/OTgCwN2dX3Wqs++vijl1xdEfelJzXmw6e0H5GCfmVjy6kyqz1lVX3W1xldv
NyjjFaP68qeW6ic118WGKF5nIqZ1GpumNyIM8xsRQGQxARMwARMwARMwARMwARMwARMwARMwARMw
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
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACdQi8HkdRKBA/ZRTTknL
Oumkk0L37t1rLbFV6995551w5plnhrZt24b1118/bL/99mGVVVZp1Xv25kzABEzABEzABGoTmHsj
AgcRJsVnRnyoj54TH4R6b+qo8wJ+dHmNuObxU301ffmqH1VJFIt58uBDjNwem1ynOnFiIcovX+aV
nzk9Wg9j+rSKFbulfZELoSUONtLhx3qoH8dfgg06+eAnG9kxR5+HOIjWqX5SNueHFtqcGCyOOGxK
ImD5HBthk9qsQGmj+NLXmBaRn6DhLzvFYqz82KvgX/mx40EvH1r8tFbl05gWUTz5MVZ+rY2x4qHT
zQXk05ziqJW9PnjlK7YxRGnd2hcxO8en54wZM27CwGICJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJlCbwOd1EKH2ijxjAiZgAiZgAiZgAksugU8//TR06tRp
30hgUnw+jA811aovj91UhM+Y2mq1+UEBarKpx5aoj172isccekQ66rGJpziqc1ctN3P4KT/zyh+7
yU8xNSam4uV+5JQopvKjR5fXlDOHD4/WRas4yhNVSTSmReSnlvgI83l+xUuT9f5Qsnr9ivYCLn01
qDoEoI3gIzvBEwSNNS89Y60Zf/qyjd0kspWd5vXhMEY0xg6IHB6QYKOif3Jqf3kfHY/iE0dP7CbJ
54mHv/ag/NiQv318JNgoPzpsJPghXeLT2zciJBb+YQImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYALzJOCDCPPE40kTMAETMAETMAETWOgElllmGd2IMD0mpyab
hzpqaqupy1adNWPVYNNih0411vlYceJ0WSz0xEQ4UKBabuIhzKuv/NjQ50Hwx4YHneq6lZNxHke2
UZ18VGsuX+VjHj8JffbGo9jMaUwfvfITR2P1tVZsJcqv+LRNFoI1V7ShfLFaJBuRnj6bpUW0gYbR
Z3rZyDePhW0xnz4w7BSTPnaKEbtpTocBGDOHDbYSdLkN84ha+nm+fKx8tDxat+IrNj7olF+xpSse
QECf2zDPPrkRoZdvRIgULCZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
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
YYcdUlzaxggMRo0alYrX77vvvhAPaFS4feUrXwm77LJLOOigg9LhhAqD+SheffXVcNppp83HqnHT
7du3D7yd31JJ4P333w+9evWq+H374Q9/mG5JqPRonOaEE04IF154YZkxnwO/5xyusZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACbRuAj6I0Lo/X+/OBEzABEzABExg
8SMQX1TNQYQJ8ZkdnznxUc039eTUaPMgjDVHrTVCq/n8EAJ2uQ22iqU2j0efem7yU7ONv/LHbhLG
zCHEznOgI7/qvbVOcmGLXuvRehUjTqU55ad2PI+Nvcb52hRTubQ+7LWO2C3lV150SHHcoK3zp5LX
6VZmzmIRbZKWxWkjAqcN02KjDcduEvkDEl+Bb5gtj08MPjAV9GMjf+aUn3l9UJrXB0R+9WM3QUfH
QYLcnz6++fqVn7XSR5RXY/ISS/nR05eP8suetSh/7KY1oEOUn7Wgw6d9fPrEgvuRsW1RmTNnTqDo
+8orrwyNPeQwaNCgVOTNTQm1hIMMp59+erjgggvSTQW17HL9dtttFy6++OJUmJ7r8/5jjz0WDj/8
8MAb7xsjyy+/fPjZz36WDiQ0xl42//znP8PXvvY1DZvV8ob/6dOnNytGa3XmhNv6668fxo8fX7bF
66+/Puy5555lultvvTXw+yrhJo099tiDE3JSldoRI0ZUfOb9+/cPTz75ZODzsJiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACbRuAj6I0Lo/X+/OBEzABEzABExg8SLw
6aefhlj3OSyuekJ8eAM5ddYq6KemWjXY0kVVOixAkShzCLXVqslGR18146oBx1+FojpsEFUlyX0U
izb3p3abGPiTnzmJfNBpzfTlr7Xm/loPMeRDy5Pvj3nFxydnwRw65ov193lOxcc278dhGtM2SfJN
NClAdCKGFkYMQOdwlQOdPgR9oGw6/0Bz3xyk/IgFLMZApq/89BGBVF7NKx5jfQjYqi87YiCsl3ni
kktrII7y5x+G+vhI5ENs4ilOvgfFky2+sicW8/LDRhyXjf0eM2fOHMl/iC0l77zzTrqJ4MEHH6w7
JAX+f/zjH8OXv/zlCl/WeOCBB6ZbCyom56Po3bt34Itgz549Kywff/zxdHvC1KlTK+bmp+B2gxNP
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
uSR8//vfJ0eZHH744eHcc88t0+UDisw5ZECRdy4HHHBAuPTSS5Pq97//fdhnn33y6UDBPUXdFM1X
k2rr2W677coOHmyyySbhmWeeKXM/5phjwllnnVWm04A19u/fP0yZMkWq1P7lL38Jm266aZmu3kFT
DyJ8+ctfDi+88EJZOg4U3HnnneEnP/lJeOedd0pzcOZggOSf//xnOP/889NNER99pP990GxD26NH
j3TLxcEHH1w+MXdUK/+kSZPSDRgTJkyo8FtzzTXDb37zm3TbQ8XkXAW3THzve98LL774YvjkE/7T
rJQtt9wyHHvssWHQoEEVk9wk8cQTT5Tp//jHP6YDKrvsskv4+9//nubyQxwy5raJtm0b/rPiMMzo
0aPT1F133RX22GMPmaV28803DxyoqSYcwOB3iZs4quXBZ7311guHHXZYGD58eLUQ6VaOap/v5823
6mKtNAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIFWTsAHEVr5B+zt
mYAJmIAJmIAJLFYEeBF7mzZt9o2LfjU+0+JDHbXqvVUXToFs3ld9NbYS+jzYKQb11sTK7TQf1SXB
Jo+JDWPlZD7vyzaqk2isNaDEh0JW5WctmqfFhwfBpto8dsRg/+rLVmuMUyVf+tghWi8tolyaz/PL
psGyzp8KXKdbhTkAtGgtklYLlU5jAtBHzyNfdHk/99MvBDYU5wOWPpLnb9A0xOEDkA2xsNOYvuKT
E1tEdswjGusXAr3yy0axFIMcfNicPlG+2E35sUUnH/rkJyZCPuIoNjr66LRObLlZoXe8EWFkS9yI
QJE/xeO5rLDCCuG5556rertAbjd06NBw22235aqw4YYbppsJUN58882BgwlFefbZZ0Pfvn2L6jTm
0ABv+s+lU6dOZTcX8Nb/4q0J++67b7j66qtzt7I+hf2RWZlulVVWKRWul03UMWjJgwg///nP0yGE
Yvr8IMKIESPCIYccUrPIv+h76KGHhl//+tcVNwpUO4jw0EMPhd122y1wU0Qtif/DH2699daw0047
lZnwu3j22WeHn/3sZ4EbFRoj2B999NFlpvM6iMBtGayxMbLFFlsE/Z8IHO7Yc889y9xqHUTgpg0O
b3zwwQdl9rUGu+66azqcUTxYs6jyrbUP603ABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
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
exCBN9R/97vfjeHKZfz48anovVzbtFG8uSEVnz/77LN1BaDo/he/+EXYZx9uXqmUG264IRx22GEV
b/+vtCzXDBkyJBXaVytYL7ds3KglDyJ06tQpjBw5Mh3CqJadGyzyz5ybBjgwUBRuhHj44YfL1Jdd
dlnYf//9S7pqhfLoKLTv0KFDyY4Oh0PGjh1bpiMWMREK8DfZZJOyeQ5J8JmvvPLKZfq33nor5AcR
OCiS39TweR1E2HHHHcNf/vKXsrX26dMncVx22WXL9P/zP/8TfvzjH5fpGPztb39LtyrQX1T5sjaL
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACSxpBHwQYUn7xL1fEzAB
EzABEzCBRZkAtbBt2rQZEtc4IT6z4kOtNbXUCC211hTnU5etGu7YTXa01FfLR7XWqtemVT03toxV
uy0bfMjDmBpt+UiPPfXnyq94RX9i4KM1yl/2iqMc2pvsGGsudlMsfNGxf4Q+Onx0yIE+OsVTflrW
KNGYGNgqjvLLru6WAM2VfFH0WTgLzoUFo6OV0Jc965CP/AVFc/rQFAN7zWHLQ4F+7heHJam2V62d
OfrElr/WR4DcjjFCfj34YM+tB/SxR7SnvE8urUU5GbN25ZeeVmvTuuTbJc71jgX+I+JpoNhtulx3
3XWpmL8YgWLxLl1I0zLCG/1PPPHEcMUVV9Qd8NBDDw0UfleTBx98MBx44IFh8uTJ1aZr6iiOv+uu
u8K6665b06axEy15EIFDEldddVVjU9e044AGn20uF110URg+fHhJVa1Q/rTTTkufU8lobufMM88M
P//5z8vUO+20U7jtttuSjpspuAGhKPwO7bnnnuk2ik033TSssMIKRZOK8edxEIF/0Lp27Vp2QIKF
cRPCwQcfXLFG7DkoU7yR46yzzgrHHHNMsl9U+VZsxgoTMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETWAIILM4HESZNmhSuvfba9KJIamTatm0b+vXrFzbbbLNU17D00pQe
Vcq4cePC5ZdfHh555JFUE0GdUZ8+fdJLS7fddtsKh9dffz2cc8454fHHHw+zZ88Offv2DUceeWTK
U2EcFdQBYbveeuslu2o21pmACZiACZiACZhALQLxbxPeVP56fKbGh4Jo1WSrpjqqKnTUV1OgrwJq
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
M7HeBEzABEzABEzABExgKRFIT0OILl26HJbSvZbae6lRI62abNVUJ9UiOuqrKdBXTTW2esP6st6c
deasK558kirHZZ14pR9rpb32hF514spHPOWnbpx15VB+esVgrIaOvNSQK38aVoS4iHqNySN7xqwz
V37pSjvFUO5yT8m1NiFIa0UxtCEV0QOnFNYBxQvPweQnEMw5JP4Ic0FBLxisCxDrpT05VdCPD015
6LkooPzEQPBhjbn807Aylz95yEd85cde+aVjHVFc+bNOfj7xdIY0rOwRnfKX+2FM0zoxiNU1tfX9
RIREwWICJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACH0LA
FxE+BJCXTcAETMAETMAETGApElh4EeGIlHJsajwRgTpq6qzpEfXUUM9OTTXZrOkiArXi2KmOmzVi
INJjSwwEnS4RZEX6oHp01hgTE2GuGm7yk0NSxlAe1rDXmvTExJc15ShjoVOdOGPVv2sf1fX36IlJ
PMXU+ZizhmBHHu2DNXTMGSPKUTdr4UcFaaHbIubEYaMCxQYRXQrQAdBpTfYcvDyYQHIwQdEhmfPi
KK78lF9r2ofs8MeGpvzEwg4b9IjmspE/a9iUPsTkDIpdruGPfaeF67JFV23PxQL0NOXHBiG/hHXm
xKbnIkLfdBFh+Lx5uFlMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwAQaI+CLCI2Rsd4ETMAETMAETMAElj6BhRcRhqXML6fGRQTqwKmhpiabemkVSKNjrBps
xmXtNXPVpePHmJ6GYEts6dGVMXRRARuE/MqJr8asMVc+xtqnYmPLmF75iacc6ORHTyMvNvTMVb8u
/6SqxCK27LHV3sSMeTlO0zzXnlnHT/tgXrMQqLUicDqMNk/ccqMasy5bbV69Cu1Z58ClLTpEUJW3
9GGNwn7BUU5sEfIopubaCz1r2MiP2JIyBjrm2Cq/5uTXeYjHXlhTHuzLWPKjV37G+GGLH4JOY+bd
U9tg4sSJIxcsUDrUFhMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwgWoCvohQTcRzEzABEzABEzABE1h2BNq3bx+dO3cemnYwNjWeOEDtOPXTCGOEImkV0TNn
HV3ZU38te4r0VZuNjWrCGWuueMwR5tRs0xMbH8VLwzxWHTc+2JRN+eWHLaJ8jMvY6FVjzhpz5Weu
PdPrrNiXc+xYQxRL+Zlrf+gQciCKwR6lywu1fFDwWnzloxeLWGyIXmNtkrkOpRem9OOw8qsep6Us
6AVZsap9iM0aeuyVn56GKL9iaB9axwZ/zbUf9OTnjKVvdS7W8MVO9szRI2KkGGVfZ1Hnr/zoyIHo
kgM++YkI6SLCcF9EyGz8wQRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwAQaJeCLCI2i8YIJmIAJmIAJmIAJLHUCC5+IcERKPCa1mQs3oKcCqN6bGmpqr9Grppu+
bGmabegR7GmyoSabeIqVhpU1xrq8wBg72TNnrPzMVTfOmPgSbFhTDuWmp55cOWSXVBV/5UTHunIq
HjHEo1xDjw2iMXPGxJFQd64csmONMa1mUfKaAxSOHAxp6AA6tIru6yzrDokOHw7MYWSjg5Vz5cAW
PSIwWqPHFxudD1vseCEVVznRlXuutlHcZJZfWPkRk7Hyay579NojPfshNoKf4nC5gDFS2jBHrxjM
GRMfux6p9ZkyZcrwOXN4WofFBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEygMQK+iNAYGetNwARMwARMwARMYOkTWPhEBC4ijE9tRmrUR6somnpv6qjLAn50
ZY241vFTfTVj+WqcVFkUi3Xy4EOM0h6bUqc6cWIhyi9f1pWfNTXthzljesVKw8q5yIXQEwcb6fBj
P9SP4y/BBp188JON7FhjTCMOon1qnJWt+aCNtiYGmyMOh5IIWLnGQTikDitQOii+jDWnR+QnaPjL
TrGYKz/2KvhXfuxo6OVDj5/2qnya0yOKJz/myq+9MVc8dHpyAfm0pjjqZa8XXvmq+xSism+di5gr
p7bBpEmTrps/n1AWEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzCBxgj4IkJjZKw3ARMwARMwARMwgaVPYMGCBdGtW7fDU+bxqb2fGjXVqi9Pw1yEz5zaavXl
RQFqsssiao3Ry17xWEOPSEc9NvEUR3XuquVmDT/lZ1350zD7KabmxFS80o+cEsVUfvToyppy1vCh
aV/0iqM8SZVFc3pEfuqJj7Be5le8vNjSD0rWUr9qewGXviGougSgg+AjO8ETBM21Lj1z7Rl/xrJN
wyyylZ3W9eIwRzTHDohcHpBgo6J/cup85RgdTfGJo5aGWcp14uGvMyg/NuTvlJoEG+VHh40EP6R7
an0nT548fO5cPqctJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACjRHwRYTGyFhvAiZgAiZgAiZgAsuGQNeuXfVEhOlpB9Rk06ijpraaumzVWTNXDTY9duhU
Y13OFSct14uFnpgIxdeq5SYewrrGyo8NYxqCPzY0dKrrVk7mZRzZJnX2Ua25fJWPdfwkjDkbTbFZ
05wxeuUnjuYaa6/YSpRf8elrFoK1VnSgcrPaJAeRnjGHpUd0gLrZB3rZyLeMhW11Pr1g2CkmY+wU
Iw3zmi4DMGcNG2wl6Eob1hH1jMt85Vz56Gnat+IrNj7olF+xpau+gIC+tGGdc/JEhN4TJ068jhtB
FhMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgcYJ+CJC
42y8YgImYAImYAImYAJLm0D79u2jc+fOQ1PesanNWJifomgVx9NTsE8dNWPWynma5rlqsrGRr4qr
FY8Yeud3bKjPli0xmUvkq3jKz7rylzaMsaGXPg2zaE58fBHZK7/2wxp2rKvHR7X1aZj3XL1X7GVT
+ioGfuxP56zOz3pNUm6kpgDJSZsUQObarA5WQmBdwBjLv6G+2i6ZZ5EtE8bYCSC5aehoFO4rfxpW
7LHBl74EWs7RI+hoCD7Kr7HysI4deyEnovy6YFDGx1/7pieO8sgOG8Y05WPcNbU+r7/++oh585Qq
aSwmYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAKLEPBF
hEWQWGECJmACJmACJmACy4zAwosIPBFhXGpcRKBOek5qqvtmTM009dWICqaxo8ZbTevqsVMNOLbS
o2Nc+ik+djQuK2BDXTf5Vd+dhpU42CHKUcZnTfvEpjFb1vAjP3Gwky966s7ZS7mOXvHo5Sd9OddY
9sk8C3pJOZauRX118BY5LzTmgIrDQbRx+vLF4YUArICkYRYdAj1CDPkBkbl8FVP50lK21Rxb2WMr
P3rFVH75pKUs2OCjHPQdU2PP2odiypeeePQ01skve/kTm6a9pWGFmWLhg79y0ONfxkvTHBufbqn1
mTRp0oj58zGxmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJNEZgebuIwJuTzplD/dsHQsFep06dPlB8BEbT330nnr72qpj451tj3vRpNZ24U89esdlhw2Lj
z3wx2n3E+NUEzE4mYAImYAImsBQILFiwILp16zYspRqb2nupUZOt4nt61WdrTME09dVIWeyPjjn2
9NRsKw5zmurHsVUM7OUrm9Kfde1JtvJV8bb08kdPfs3p8cEOkT9z+eIj+2p/bLQmX3qNdS78GNNT
k875tY80rORnjCg/sWsWgrRWBEE9h5DokMy1jo6D0ZeHRid4stUcW5pgpWElnqBpjTiIYmiclemD
ADNXfOmACXx8EeWsm9Xl11g2yq+89Fore42JyQUDRHnpdWmB/MREsFVc5mXsldO8d3oiwnV+IgJo
LCZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAibQOIHl7SLC
9773vbjgggvqHah///4xatSoeroVecIlhL8M/UzNFxCq2XAh4eA//Gm5uIxww/6/jxlvTI+9zzso
eu/dr/oonpuACZiACZjAck+gQ4cOXLAcmg4yLrWZqVE3TU01jbEac2q8qaPWehrmMfXZrNHTZKsx
MRDFZowNQi871aErp3rZqcZc+Us/1vBHh5/m2DJXrTljhF7+8lF+rdMj2NKIpTe9L+PDhLlqzGWr
uMwVm7H06pOqdiFIa6WMwZjGgaQv4QkAB6FxaAQ4CD46JHP0+NMUr4QlkGk5CzbY6hYHSubEJBbF
/sqdhhXorCk+esY07YV9EgfBVi+W9odeubHTvhgrP7F0ASENsyhuGYcFfJSfseykY85FhPXTExGu
a80TEfQLVoplMQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MIE2S2DgwIGt2pvqZPbbb79WxVlazr/5zW9i5MiROV2qEYoxY8bEpptuGk8++eTS2sIyz/Pory+K
CTeMiNXnz4uN582Kngsos2q5vNuufbzUoXO82b5DbH3cSbHJYV9qeZCl7DFy0OUxc+qM2OeCg6Pv
fhsv5exOZwImYAImYAJLnkC7du2iS5cuXER4JbUZqelRUKrfph6bRt00/whQq56npbxGjy8+CHXX
NPzQMUaoM5dgj7BGftnQ44Ov8mGrucbyRy9f5WIunZ7QkFT19oK/7MhP3ThCr31X19/LhnWJ4jCX
HjvlZ0+aa3/Yav+MWywK3mLHwoHDsWEa8dgQG6UvN6fNS8+89MGXWIBmrFjq8eOFFAjlaCg/dgg+
5GBOHPkoFmvS0Su+bJOqnrAuH+wR5SemYqFjThzlZ00+aVj5pCSm9qP8pS0xJIrLevfUer/22msj
tFhLr1+wavG1jwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAksLQIftYsIJderr746jj/++I/cRYTbhuybn4aw+5zp0bXGSwjiOCNdRnigY7fgqQiH3HKn1G22
90WENvvSeGMmYAImYAKLicCCBQuiW7duh6dwr6T2fmrUR1MnTu11dbE8tdboVZvNXI36a11iSMNs
J3t6fIiHyJ9cyoOesXT4KL/quFlXLMYIc0T5sVV89PJhvbo+Hh3rysOY/MSkaZ6GOab0YkQedPQN
xZd9Wq6cS2PWlJ88NQvJF5ewIQQgeiHQ6SA6ODYU1OtmhyCgRwQGe8aac1DG6PFhXsYnJkJcFexr
HT2++ODLkwm0zzSsl0fx8WUs0T4Vk1jKo5jkID/xWdcTGNKwwoRxp9SUH5/yXMqp/Kwh5GBNObuk
cb/JkycPnzuXlLWJLiIMGTKktgD2MgETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMIElSOB///d/c3RfRPjoXUS4efAu+bXfbza1ia2Xv3TivV8jPn3Pw60PtoQj
+CLCEgbs8CZgAiZgAsucQIcOHaJTp07D0kbGp/ZOatROUxRNvTR12DQEneq29dSAsoCfGmsEm7Lu
WjFUg42P6rfp0asunLiM0dPLl3jKT1248isXMZRfeZIqSxmDOMzL+MqPsfJjoz0prvZKfvZCLNbK
s0oHO42x0T7FFJ3Gadg60QZaF6XOW5suDy8AWFBAz2HYPECwV9OcNXzKhp/2iT+CHTr8GCPM8VOh
PjrBY037Un7FqJ7jV+4bP9kqXjlnjKgnP6IY5KZpX9ixphjE5xz02FULfrIt/fhX8fqvv/76yHnz
cK9NfBGhNm72MgETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
WDoE2vJFhJdffjmeeOKJGD16dMyePTv69esEJ6jJAABAAElEQVQXBx10UKy77roNwhk1alRQr4Pf
2muvHdtuu23svvvuQSFeU9LSJyK88847cf/998dTTz2V9zVgwIDYddddY4MNNmg0zeOPPx5TpkyJ
/v3753NMnDgx7r777nj66aejT58+8ZnPfKbBc40ZMyZeeumlSty99947VlpJJVQVdU2DZXkR4Y2n
J8esqTOiZ79VoscGvWL65Gnx6gPj4+0X34zu6/WIvh/fJLqttXK9cy2YvyCmjJoUU597I96b8E70
6N0r1tpmnVhtwJr17MrJ/DnzYuI/X403npyUqsTaxToD14u1tl8vrt/7dzEz5d/ngoOj734bly55
vCS5L5LMChMwARMwARNYAgTatWsXXbp0GZpCj0ttVmrUaVMUrcJo1U1rrp56a9aY0zPHt2zUXkso
3i+leo4f/xgr/bEnNnrykKPMn6b15vhiT1O8NMyiNWIgilc3+yCP7OhlyzmY05d+2g89TbnpEekZ
449Ip3mdthUfCdha0b+C2ZQ2r0OzJqDavHICQy+OXmxs9a9QxopHj61ApmEWYsm3zC9bFf8rDrbK
j73spEfHbZFS5Ess+WgdP+WXHWvYcj6efICepr2WucjPmuIov/aYliqis9Aj3VLrm/7BP5xHk9Qq
vohQKzn7mYAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJLA0C
bfEiwsyZM+PMM8+MCy+8MObPp+TnA6EI/4ILLohjjjmmopw1a1Z85zvficsuu6yi02DQoEFx1VVX
xTrrrCPVIn1LLiI88sgjMWzYsJgwYUK9OF27do3zzz8/jjzyyHp6TbhAce+998bpp5+eLy/84he/
0FLu0zsWx+TJk6Nz58719GeccUacc845Fd348eNjzTUbL7yvGDZjsCwvItx5zM0x8ZEJ8bETd4r5
c+bHk799rN6O23fsEEc8cnx06EQJWMS019+Pf3z3rpj06Kv17JgMGLpN7PDtPSq2Mpj51oz428l/
jtcff02q3G/yqQEx4b6xwXpjFxGWJPd6m/HEBEzABEzABJYQAeqfu3XrposI01Ia6qnLJwNQi10W
STPmEgE/fMsnE6i+m3XGZcMWH2KjL+Olaa73lh4bbKnVRkf+alF+xVTOun8Q1MVXPHr09NSGY0tj
rFpxnRE9+ZmTX3EbspcdPUJ8fBDs5cscG9bp0SPV+eu0NXzUIWpwrbgQQ4dEqZiCpgNo0wACavVh
dEh61vCTTxrmMWuIYmpc5mcNUTzmysVY+bFB0JVnwJbGHhWLdcbEbGiMveKo1ycCc9ZLP73YSZ3z
sIbQY4soPzr5Kg8xu6TWJz0R4To/ESGRsJiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACayQBNriRYTPf/7zoX0NHjw49tprr+jYsWN+OsJNN90U3/zmN/NFBb0g
p512Wlx88cV5OmTIkPwUBN7R/oorroi5c+fGdtttFw8++KDMF+mbexEh1RIFTz+YMWNGfuIClw5S
gV/ccsst8e9//zvHveGGG+KQQw5ZJIcuImy99db5SQo81WHPPfeMVVddNXhawqOPPhpTp04NLjSU
siQL4tvCRYRV+68Rbz3/Rn76wdo7rB+de3aON0dPiSnpCQZfeuyr0aHLSjHn/dlx0yeujRlTpkXH
bh2j/+e2jO7r94ypz74RL976TPCkhC2P3C52PHWPEl3oskP7Du2j/xe2Sj494pV7xtS7mOCLCPWQ
eWICJmACJrACEWjfvj0XHLmIMD61GalRJ80FA9VOU4utumoV/quWHD126OmxVZ13Gma/0gYdUsZU
bNnRK49iZqeFel0qkE426vGnxluiuOxLY/Ij+KCTaM46MWjVfqq/Vyx8dGbZ4qdYaZjHrCGy17jM
nw1a+oGAi0METYchJjo2WG4ePTrZl/MSCnrFUhzA6oZJ9b4Bi2CjsWArDusCS8wyRrkfjbVP2RFH
N0ykU08uxthorBzKz3q1fVJlnWyZa6z82g9x9LQG4vBEhD7pcWjXzZnD11xt4ici1MbNXiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAkuHgAr+Bw4c2KqEqpPZ
b7/9WhXnzjvvjE996lM5xllnnZUvHZQBKfjnqQCHHnpoVpeXA0488cT41a9+VTG/+eabY+hQ6u8i
GrsgwFpzLyLowkOvXr3ioYcein79+uEe06dPjwMOOCAee+yxRi896CIC9gcffHBceeWV0bNnT6ZZ
7rnnnnzhokMHlWfV6Vf0iwicsvde/WLQOftHx+6d6g6dPr720Cux7k4bRLsO7eKxXz4Q//n949Ep
XVIYct0XomffVSp2z458Kh7+6b3BZYNP3XZEZY2LDLcP/WO22/Psj8fGn9g8j+fPnR93H39rfhoD
Cl9EyFj8wQRMwARMYAUlkC44HpGONia1malRO41QM01NOHM11WPLRgX79BLWyrniUIvNWLHomavW
XJcP0FOjrTj0iOyJIx3+iouNBD1CHMbsh/pz7Uv+9MrPmmKrV5zSnjUEHU226MiH4Kdxaad42Wjh
B/wb0pc2TY6VqEmjD1lkE4KFqTalg7PGGIiIDqjD0eODyK4Eij2+9ADXmnySql5+bLAlFiI79Nqn
zl3aaI1if3JgjzBGh61iE5OmOPSs02PDmD3ILg3zGWSnPclHdviQS2fFTzps4UCPfffU+kyaNOna
6se7JX2zRb9gcdPaYgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAJtjUBbu4jwuc99Lm6//fbYZptt4uGHH4527VRC1DC5q666Kk444YRYaaWV4sUXX8xPKigt
t99++3jmmWdi2LBh8dvf/rZcqoybexFh0003jQkTJuR8559/fsWfAU9qOOIIav0inn322ejbt28e
64MuIvAEBfaz1lpraanJ/pJLLolLL720YnP//ffHKqt8UIhfWahh0BaeiLBSeuLBZ+88MrquzvvG
NiCpmuvaHS+NuTPnxk7fHRRbDNu2ntG8WfPiD/teEbPenhm7nL5XbH74Nnn9sV+lywtXPh7d1u4e
n7/7qGjX/oPPo1fvHxd3n3BbtmvsIsKS5F7vAJ6YgAmYgAmYwBIisGDBAp7cpCcicBGBmm0uBVAr
zQ9G1WIzZw1Bpzn11Mxp1G/r6QjMGavum1jyZ4w/NtIzJxY2pZ3iKp/2JH98NCYXvtoTY+Uv90YM
BD/lZ6785EQUmx7RfpWPvlzTZQf5Yc9YZ2A/5JNPdf601HLRYVruuagHsdhUCRKdgDDWnEOUY8FB
pxdBgNAhAqKD12k/eCEUj0J+PnkAKp1iCCi9xnqRmSPKw5g17UM9esWj137wZ1xeZFBs7GiyQa/8
5SWLpK684IyxQ0o/xcpPRJg8efIIHs9Wq/giQq3k7GcCJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJrA0CLS1iwhcQHjhhRfihz/8YXz/+9//UAQ/+clP4mc/+1ls
vvnm8cQTTyxi//Wvfz1fQBg0aFDwtIWGpDkXEagh4gLAvHnz4tprr43Pfvaz9UKlOqPK5YO77ror
9txzz3rruohwyCGH5Kcz1FtcRpO2cBGh9979Yt//bvxNXt9/7b24Yf/fZ0JdVusatFxFtpBZqrGM
9199J7iQ0P/zW8VuP94nr9z77Tti7B0vxIb7bxJ7n3fQQuu6bs70OTF8p//Jk8YuItRz8MQETMAE
TMAElkMC7du3j86dO3MRYWxqs1Obkxp10gj15NRl0xAV0jNWbTq91stLCMQobfBRLPVlPMbUc5Of
mm38lT8NszBnDSF2mQMd+VXvrTOQC1v02o/2qxhpKa8pP7XjZWzsNS/3ppjKpf1hr32kYSW/8qJD
qud12hZ+VPIWutUzZ7OIDknP5nQQgdOB6bHRgdMwi/wBia/A163Wj08MXjAV9GMjf9aUn3W9UFrX
C0R+jdMwQ0enpx8Qg3V6fMv9Kz97ZYwor+bk1dMNSn/5KL/syaX8xFN+xvKXDh+e89UvPRFhhJ+I
ACKLCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZjAikigLV1E
oMh/1VVXjTlz5uTLAzzF4MPkuOOOi2uuuSb22muvuOOOOxYx/+lPfxpnnXVWbLjhhvlJBIsYJEVz
LiKMHz8+Nttss+x+9913xx577FEvFDVGPXr0CPrLL7+88nQEGekiwkknnRS//OUvpV6mfVu4iDDg
iG1j5+8NapTDaw+9Encde0teb79S+2iXWmPS74BNY4+z9svLtx/xx5gyalK9ywml37U71D1lwRcR
Sioem4AJmIAJrGgEunbtyj+mxqY2IzVqr6kP54cpNdWqAZcuqfJlAWquWUOorVZNNjrG1F0zVg04
/ugQXTaom9V9LH0Ui770Z0/EwF/15WmYRT7Ya8+M5a+9lv7aDwHkQ08rz8e64uNTsmANHevV9fdl
TsXHthynaZ7T1yTlIWoKkJyIoY0RA9CAkygHOr0IekE5dPmClr4lSPkRC1jMVbiv/OgRgVRerSse
c70I2GosO2Ig7Jd1vXjaA3GUv3wxNMZHIh9iE489oyvPoHiyTcuZp/KzLj9sxLFHGq/viwiJgsUE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETGCFJdCWLiIAeY01
1ohp06bFxRdfHF/5ylc+lPvXvva1XPi/6667xj333LOI/Y9//OM499xzG31iAg7NuYjw+uuv58sM
2N9+++0xePBghhWZPXt29OrVK88bemKCLiLwlAee9tAWpC1cRNj2qzvFdift3CiOyU9MjD9/6Ya8
/unbjoheG63WqG25cOcxN8fERyZE/89tGbudUf+1okLs6u0uiflz54cvIpTUPDYBEzABE1jRCKSL
CIelM41PbVZq1EzTqJVG6Km5pg4boeYcoa6aJyhQV409gq3s0atWXTXcxEG0hi1r2DEmZpk7TbMe
nfJji1ArrvyKo33Qk0P7xld56LWWhhU9Y+VnjCgncfApY2Bb1t+zxj4Q8rNenV9zrWGLn/bNvMWi
TbbYscqBODpE2bM55gBANGdc2gmS4HJI1rGXry4MJFUGRC8/bBUPe2AqFj3x0OnFTsO8XtqVORkr
jmzLXKwj2h+5sUfUl/uRvfLJnjlrxOaTEj0xGSu/bLHRvui7pbZ++gViJDeta5V//etf2XXIkMYf
H1ZrbPuZgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYQGsJ
tLWLCLvsskuMGjUqTj755Pj5z3/+ocf7xS9+ET/60Y+ib9++8eyzzy5if+yxxwYXA/bff/+49dZb
F1lHwTp26667brz88ssN2ixYsCBWW221mDlzZoNPaxg3bly+7IDz3//+99hxxx3rxdFFhNNPPz1+
8IMf1FtrajJ16tTgEoRk8803j3btKHlqvbSFiwgfO3Gn+NiJjV9EmPnWjBi55+X5sAdc8elYd6cN
mnXw+3/wl3jxlmei9179Yt9L6tdulTEbu4gwffr0etw32GCD6NixY7Ny28gETMAETMAE2gqBdBHh
iLSXcanpiQjUVlMzzj8maNRVq1CaNYSeJj12+KiGG71s0UuwQy8dc4QcysUcf+ayVx7WEMUu7YhJ
fTc+0iuXasLVax1bBDvG2gfr2NLQSZ+GDdopp/JjLynHxEOkw09nyQst/aADtNSvtNch6RvbjABh
o8OWuXUQAOjF1WHJpbHioJMPawChr15PqnoiwHqBWCSO9kIM1hDZErMcay+lD/mxQarj1Wnr9NiU
+2WNuXyUn7lyYlM9Rrdyar0nTpw4gl8iahVfRKiVnP1MwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwASWBoG2dhGBpyAMHz48PxnhmWeeie7duzeJ4cYbb4xhw4Zl
m0ceeSS22Wabij1PKdh4443jjTfeiBNOOCHOP//8ylo54EkKhxxySFY9//zz0bt373K5Mt5uu+3y
ZYdDDz00rr/++oqeAU9wOO200/IlAS4lrLnmmvXWa72IcMYZZ8Q555xTiTV+/PhFYlcWWzhYHi4i
cKTr97kiZkyZFpt+ZovY/cx9m3XKJ3/7WDx+4UPRsVvH+OJ9x8RKXT+4RPDCTaPjgR/9Ncdp7CKC
npKhZH/729+CSzIWEzABEzABE1heCLRv3z46d+6siwjT074piKYmm74cq2ZbNeZpuVKcr5pwnhCA
D7bylR82jFWAX/alXnmTaSUG4zIOc0S5iEX9N/kRxoojP+ZI2SsvfanPhgs/KI5qzXUO2cuXdbFh
jGhfjLGXbdmLAzY1CcEWl1AszwER4pYgOQDv8s8h6fWiCwQHwYdGHPRqzLXOWKCIIxvW+ZeYAFfH
SUs5Lr6yUx5s8Rd4xU2qLDoHPQ1bBDuEPaDrtLAnnmwZs45gT37ZKb9iMkcUt272AQ/s5MNaz9R6
p9vEw/1EBHBYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
VkQCbe0iAhcBdthhh5gzZ06+HHD55ZfHKqusktHzhqKXXXZZXvva176WdTyhYMCAATFp0qTYc889
46abbqpcXuBiABcEeIIAlxS23nrrBl/C9Gal0b9//5g7d24cddRRceaZZzZY7H/JJZfEt7/97ejQ
oUOMGDEiuJCAPPfcc3HggQfmPXzyk5+MkSNHLpLHFxHqI7nzmJtj4iMT0tMQmn4iAl7P3/B0PHjG
PdGuQ7vY9Uf7RP/PbvlBsFQ99trD4+O56/8Tu/54n+iyate8Nn3ytLjhgKti/px5MWDoNrHz9/fK
+mmT3o//O+rGeH/Cu3nuiwgfoPTIBEzABExgxSLAv1c6deo0LJ1qTGpcRJBQl61G/fTs1FSHrdps
ratOW/XY0mOnuvI0zGPWqMWmZ41ecdMwS3V87JVf8chJw19C/lLPXPbE0EUJxvJVfuwkZRzsmOOr
+nfmykvPfhHF1R7Qa5011d/LTjHwrVmUvOYAyZEDIWxIh2fOQfRisGnW0TEGmGy1B8VJS9mOHh9e
YPmWNqzjK53yo5coPzH0Iim/QMpfc/mol56Y2KKXMJe/zsZata/OwJrGikuPoBcz5oohPTpsla9b
Gvf1ExHAYjEBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE1hR
CbS1iwhw5gkAPAkA6dWrV2y77ba5+J8nJHDh4NRTT82XBbJB+nDFFVfESSedlKdrrbVWvnDAkwNe
eOGFrDv88MOzjewb6rnYwKUHJBXtRY8ePfJ41KhRsfrqq+cxlx4GDhwYL7/8cvAuw9tvv3106dIl
Hn/88Zg+fXp069Yt7rvvvthqq62yffnBFxFKGhEtuYiwYP6CuOu4W2Piw6/kID026BW9+q0S82bN
i7dfmhoz3qyrrfz8X4+Oldf+4Aka/zznHzH6mn9nn179Vo1ua60cb46eHHOmz4kF8ygli2jsIsKV
V14ZJ554Yrbhg5+IUEHhgQmYgAmYwHJEoGvXroen7U5IbVpq/PBTvbfqwimgL8eqr677QZkWkzCm
qd5cder0pZ3Wk7oi2JQxsWGunKyXY9kmdRbNtQeU+FDzrfzUfmudHh8agk1D69gRg/NrLFvtMS1V
fBljh2i/9Ihyab3ML5s6yxZ+VOAWui1iDgBtWpuk10al05wAjNHT5IuuHJd+5AAgNhTnA5YxUuav
09TF4QWQDbGw05yx4pMTW0R2rCOa6xMCvfLLRrEUgxzsldsnypeGOT+26OTDmPzERMhHHMVGxxid
9oktT1bom56IMMJPREgkLCZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiskgbZ4EQHQd999d5xyyim56L8Ez1MNuKiwzz77lOq49dZb82WEN998s6Lv3LlzfoLB
97///XxxoLLQwICnIfzsZz+LG264IV566aWYP59SogguNKy55poVj7fffjtOOOGEuO2224InNEjY
1+9///vYYostpKrXH3LIIXHPPffED3/4w2A/zRWeznD22WdXzCdMmFC5GFFR1ji4efAu2XO/2e/X
GKG+21861V0C+PQ9D9dfaGB217G3xGsPvRLbnbRzbPvVnRqwqK/iMsLoq/8doy77Z8x+jzdO/kC4
YNBn8Eaxw7d2j5W6UlK2UNLL8/hFD8V/rnw85s+tez1Z3/WHe8dj5z0QM96YHoMvPCT67LuRPCo9
n3s8fQPhcsvo0aNj5ZVXrqx7YAImYAImYALLA4EGLiLw7v+qoeaHY90PyLrD6B829NRpl2uqMcey
9CMWMVW7zRjBhjX5EZNGfbrqwbFRzjSsCDrlIC5CHOKpLlx+yoENcbUX1rVGz5xGHOyIw5w8jJWn
jK8zpOXKear9lAM9cVV/r/zEqFm0qZoDJEfFYEMa09MEgEMg9AICKBX0ly8YNjS9kMSRD/EQ/PTC
K6dgKjcxsFcexuRRLHrF0QumFw9f+aVhjqN4xJcfOuVXfObSMy7jkAc71pWfHj065WcuP2LIJw2z
Hfk7p+aLCBCxmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
rLAE2upFBAGfOnVqPPvss8FFgT59+sSGG26opUV6LgaMGzcuX15Ye+21Y7PNNouVVqIUaPHLtGnT
4umnn47Zs2fH5ptvHmusscbiT7KEI97+qQNi9rvvxO5zpkfXBZRZ1S4z2rWPBzp2iw7dVo5D//ev
tQdqhue0Se/Hu+PejvYd2sXK6/aI7uv1/KDKrAF/npww9dkp0S7ZrzZgzeRHKVnT8rGPfSyee+65
bHTuuecGT8ywmIAJmIAJmMDyRKBdu3Y8uemwtOcJqdU9PqiuZpof+tSRq95a9dhJlfX844lbf9Rb
Y0vNNTY0XWSg9lp6eoR4xEVYR2RTN6v7yJryM1Z+evTkJ4/qwhVD8fWDXHpi0LDHnzgSbGSPjjVs
0et8rHNO7UNx6BHFUH70xJAPYwS99pQV6YPWNG9RXx6kRY6FMZtio2xEB2VZselZB7pePK0lVfbB
Fx1NB1I8euVIw7yOHbnKtdJeeuyxVX7gIcrFWLCJVy3Ky96JKVF+5rJhvbQjHk35ucqqF0/6pKr4
EEeCD6K9Ka72Tc/13N4TJ04cUd5cxqkl8q9//SubDxkypCVutjUBEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBpUKgrV9EWCoQPqJJXhx5TTz1m0ti9fnzYuN5
s6JnjZcR3k2XEF7q0DnebN8hNvjc0NjxxK8v10RTzVhstNFG+QzrrbdevnCSCjmX6zN58yZgAiZg
Ah89AsVFhFfT6Xn8EfXeiGq2qTunlpqif+nUJ1XWaa5adnrqrFWcz1xr2LImG61JJ30yyVJeOpCv
8uGjMcb4IrJjTr249Orlp7XSTmPiYMcZOH91/T058FeuNKzsRWvyVV70iPyUX/q61RZ+ZJOLQ4ij
DdHrxSM2G6RRTM9hSoCyQy+bNMxjdMArQagwv4yBX5lfwMmHlPllS18dG1t0io0NMfRJJJ+kqtiU
+9G4jKsXC18uItCjQ2RXckFHfkT5OT82mrNO65rahq+//vrwefMwqU18EaE2bvYyARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARNYOgR8EWHpcG6LWRakpzn8+Quf
yE9FWBz742kI+424Kbr17LU4wi2zGH/4wx/iyCOPzPkvuuiiOPbYY5fZXpzYBEzABEzABGolsPAi
whHJf1xqM1PjwgE10tRMU0euGnIVSqsOvZzLpvShVptY9PJhXTbkwI9e49InqSv5qeFWPvxlT09s
mmrIFZ9Y1J8rP+vYIfTSK7907BlbRLHkiy266tjoGvLR+eRDj2hOTsXMC7V8IEBrRRDYWLk54mqD
HFAvAmPsWEMHENnJX4Dp0UmY46PifSAQT/7MtYZOenS8oMyVX7Hkn5YqnwzKy5pA44u+zMHeSn/m
5NKelQudXlDGiPIz1151Hvmp17rm+HCFdYN0EWGkLyIkEhYTMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMIEVkoAvIqyQL2uzD8VlhJduuj6eG3ltzRcSuICw7sGf
jC2HHbncX0IA3OzEZNq0aZlhr169on17StEsJmACJmACJrD8EejatevQtOuxqc1KjVpraqkRen7A
UZxPXbZquNMw29FTXy0f1VqrXpte9dzYMlfttmzwIQ9zarTlIz321J8rv+JV+xMDH+1R/rJXHOXQ
2WTHXGtpmGPhi47zI4zR4aNLDozRKZ7y07NHiebEwFZxlF92Le4J0FopN8WYjbPhUtgwOnoJY9mz
D/nIX1C0phdNMbDXGrY0CvRLvzStSENn1d5ZY0xs+Wt/BCjtmCPkV8MHe556wBh7RGcqx+TSXpST
OXtXfunptTftS77d01rf9Jit4QsW4Fab+IkItXGzlwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYwNIh4IsIS4ezs5iACZiACZiACZjA0iSw8IkIh6Wcr6X2XmrU
SKsmWzXVSbWIjvpqCvRVU42t3rC+rDdnnTnriiefpMpxWSde6cdaaa89oVeduPIRT/mpG2ddOZSf
XjEYq6EjLzXkyp+GFSEuol5j8sieMevMlV+60k4xlLvcU3KtTQjSWlEMbUhF9MAphXVA8cJzMPkJ
BHMOiT/CXFDQCwbrAsR6aU9OFfTjQ1Meei4KKD8xEHxYYy7/NKzM5U8e8hFf+bFXfulYRxRX/qyT
n088nSENK3tEp/zlfhjTtE4MYnVNbX0/ESFRWIby9NNPx1NPPRWTJ0+Obt26xZe//OXo1KnTMtzR
ip+aizf33ntvzJ8/P/r27RubbLJJqw89ZsyYePnll4MfaoMGDYqVVtKXcatDNxmg1rPU6tfUZpY3
Bk2dZUVdW1avUVviOWvWrPjrX/8ab7/9duy+++75e0Bb2p/3YgImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImsGQI+CLCkuHqqCZgAiZgAiZgAiawLAksvIhwRNrD2NR4IgJ11NRZ
0yPqqaGenZpqslnTRQRqxbFTHTdrxECkx5YYCDpdIsiK9EH16KwxJibCXDXc5CeHpIyhPKxhrzXp
iYkva8pRxkKnOnHGqn/XPihqVf07MdATk7Fi6nzMWUOwI4/2IV/mjBHlqJu18KOCtNBtEXPisFGB
YoMIB2eDOgA6rcmeg5cHE0j8BEWHZM6Lo7jyU36taR+ywx8bmvITCzts0COay0b+rGFT+hCTMyh2
uYY/9lSksy5bdNX2XCxAT1N+bBDyS1hnTmx6LiL0TRcRhs+bh1tt4ici1MYNr7PPPjtuvPHGegHu
ueee6NmzZz2dJ4uXwNy5c+Pcc8/NQQcOHBgHHHBAqxP87W9/i4ceeijHOeWUU/KlklYHbUaAWs9S
q19TW1reGDR1lhV1bVm9Rm2J56OPPhp333133tIaa6wRxx13XFvanvdiAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiawhAj4IsISAuuwJmACJmACJmACJrAMCSy8iDAsbeHl1LiI
QB04NdTUZFMvrQJpdIxVg824rL1mrrp0/BjT0xBsiS09ujKGLipgg5BfOfHVmDXmysdY+1RsbBnT
Kz/xlAOd/Ohp5MWGnrnq1+WfVJVYxJY9ttqbmDEvx2ma59oz6/hpH8xrFgK1VgROh9HmiVtuVGPW
ZavNq1ehPescuLRFhwiq8pY+rFHYLzjKiS1CHsXUXHuhZw0b+RFbUsZAxxxb5dec/DoP8dgLa8qD
fRlLfvTKzxg/bPFD0GnMvHtqG0ycOHEk745eq7T2IsJbb70Vw4cPz+kPPfTQ6NOnT61bWa78Hnzw
wfj617+e98w3wq233jr69esXp512WnTu3Hm5OsvytlkX4aefIL6M0einLRdK0gWt6NGjR+y7776N
2i2PC76IEDFq1Ki4/fbb88u37rrrxtFHH708vpTeswmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYQAsJ+CJCC4HZ3ARMwARMwARMwASWAwLt27en5nZo2urY1HjiALXj1E8jjBGK
pFVEz5x1dGVP/bXsKdJXbTY21F7TqzFXPHQIc2q26YktmzTMInvFwqZsyi8/8iPKz7iMjR4f5adX
/jSs7Jl4Oiv25Rw71hDFUn7m2h86RLkUQ7Xqdas1flTwGt2zm14sYrFJeo21SeY6FCCR0o/Dyq96
nI3TB/SCrFjVPsRmDT32yk9PQ5RfMbQPrWODv+baD3ryc8bStzoXa/jqk4KeOXpEjBSj7Oss6uyV
Hx05EF1ywCc/ESFdRBi+LC8ivPDCC3H44YfnzZ133nkxaNCgPF7RP1x00UVx9dVX52NeeumlseOO
O67oR24z53MRvi8iNPXJyMWocePGxSqrrBInnnhiU6bL3ZovItR97vNUhHfffTe23377WHPNNZe7
19EbNgETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETaDkBX0RoOTN7mIAJmIAJ
mIAJmEBbJ7DwiQhHpH2OSW3mwv3qqQCq96aGmtpr9Krppi9bmmYbegR7mmyoySaeYqVhZY2xLi8w
xk72zBkrP3PVjTMmvgQb1pRDuempP1cO2SVVxV850bGunIpHDPEo19Bjg2jMnDFxJNSdK4fsWGNM
q1mUvOYAhSMHQxo6gA6tovs6y7pDosOHA3MY2ehg5Vw5sEWPCIzW6PHFRufDFjteSMVVTnTlnqtt
FDeZ5RdWfsRkrPyayx699kjPfoiN4Kc4XC5gjJQ2zNErBnPGxMeuR2p9pkyZMnzOHJ7WUZu09okI
H9WLCN/97nfjL3/5S6y22mpxxx13BLeyLEuHgC8i1BVjn3vuuRn4wIED44ADDmg1/GVV5L64X09f
RGj1p4IDmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmECbI+CLCEv3JRk7
dmzsueeeOelTTz2V3wxw6e5g8WWbn6qsnhs9Ix596P2YNXN+bDtw5dh2+27RuYtrfRYfZUcyARMw
ARMwgdoILHwiAhcRxqc2IzXqo1UUTb03ddRlAT+6skZc6/ipvpqxfDVOqiyKxTp58CFGaY9NqVOd
OLEQ5Zcv68rPmpr2w5wxvWKlYeVc5ELoiYONdPixH+rH8Zdgg04++MlGdqwxphEH0T41zsrWfNBG
WxODzRGHQ0kErFzjIBxShxUoHRRfxprTI/ITNPxlp1jMlR97FfwrP3Y09PKhx097VT7N6RHFkx9z
5dfemCseOj25gHxaUxz1stcLr3zVfQpR2bfORcyVU9tg0qRJ183nX8w1yrK6iJAuUETae/Tt2zd6
9uy5yO5nzJgR6WkPMW/evNhwww2jY0eQNl+mT58e/FK07rrrxqqrrtosRwqix4wZEx06dIj11lsv
unTp0qjfqaeeGhRub7bZZkHhc1PC6/PGG2/k1r1791h77bV5lExTLoussbcXX3wxVlpppdhkk00W
WZcCXi+99FI+c0PvFD5r1qz8bvG9evXK+5Df8tQ3t3B92rRpMXXq1HjvvfeiR48e+bydOnVq8KgN
FeHzpJHXX389x/gw/zIofpMnT4533nkneO3FuqHLKs09SxmfcXP9VmQG1Uw4K5//N954Y/7esfLK
K8fRRx+dzfiaZt6Q8L2Cr8/3338/f13yJIXVV1+9IdNFdPi99dZb+XXGh8YNTS6H8T2M15yv+YaE
r0U+T/j8xIav165dedBN5L3wucO8/N7X0OdpQ7FhoTN169Yt1lhjjfw10JDth+l48gDCHjkP+3r1
1VcDbsStZsW5ORfrfK/jstaHSUs+T4kFM77OqvlU7xVb9gILvg7Za1Pf17FvrlTnWhJcWvK9hH3z
OUXj5wSvOzJz5sz8erE/zs/PQz5Hq4XXjc/b0rcWm2ofz03ABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABExgcRHwRYTFRbJ5cXhj0m222SYbT5gwYZG/DTcvyrK3mj5tfvzXF16Mh/7+
Xr3NrNe7U1z3v/1jw41aVr9TL4gnJmACJmACJmACrSZAjVSqdTo8BRqf2vupUVOt+vI0zEX4zKmt
Vl9eFKAmuyyi1hi97BWPNfSIdBRTEU9xVOeuWm7W8FN+1pU/DbOfYmpOTMUr/cgpUUzlR4+urCln
DR+a9kWvOMqTVFk0p0fkp574COtlfsXLiy39oGQt9au2F3DpG4KqSwA6CD6yEzxB0Fzr0jPXnvFn
LNs0zCJb2WldLw5zRHPsgFhWumOjon9y6nzlGB1N8YmjloZZynXi4a8zKD825C8rpLFR/jSs5GeM
H0J1a99UZDmcouRapdaLCPyC95Of/CQX/pa5KfhFfvrTn8bHP/7xXKR74IEHZt2FF16YLwdQKEzB
P/KjH/0oDj300DzmwyOPPBK/+93v4vHHH6/oKMTdaKON4ogjjoiDDz64omdAEXAZn4LWa665Jp55
5pnK3tZaa6045ZRTYv/996/nq8k///nPuOSSS4JfombPni117LzzznH88cdXfrFiYfDgwaGCZxnq
zFyouPvuu6XO+TkL533zzTcrego999577zjxxBOjT58+Fb0GvNM9PltttVWceeaZ8Ytf/CLzoLB3
nXXWCf1yXdqdf/75+fXgLOwPIfYPfvCD2H777eO1116LCy64IO69995cSMw6hc+f/OQn44QTTmC6
3MiHFeFz+eCee+7Jryc/pErhzJ/61Kfy2Ut9WeB98sknx4MPPhjc6KeIV8Llkd122y123XVXqRbp
n3766cyYSwilUAS/1157xcc+9rFS3ewLBfWc0sQMqolE/PKXv6z39VtawJ/XtRRe2//7v/+L5557
rvI1oXW+Z+y33375EpR0ZU9x++23354vPJR6Cr3xo1D//vvvz0vf//73S5M8vu+++4Kv1fJpNhT5
b7fddjFo0KDg6xnh3SX0DhPMy89Tvqep2Jw1hGJynan6c3/jjTeOIUOGNHohoy5C/Y9837rsssuy
ku8VXMzhe3P5fZLLZHwP51IA318ee+yxejzR48v38Gqp5WuVCyMXXXRRDlXyqd4rPxseffTRzER5
YczX7x577JEvnEnf0r461+Lmwn5a+r0En1tuuSVGjx6dL38cfvjh+ecIeys/F/jc5vOAnyWl/P73
v88/J/geeeyxx5ZLlfHVV18d/AcjF1COO+64it4DEzABEzABEzABEzABEzABEzABEzABEzABEzAB
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
BFAq6M9fMGy49EISRz7EQ/DTC6+cgqncxMBeeeiTR7FoFUcvmF48fOUXuymO4hFffuiUX/EZS08/
j0Me7JhXflr06JSfsfyIIZ/YTXbk7xovb0SAiMUETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETKDDEvBGhA770vrGTMAETMAETMAEPscEOnXqFLp16/adiOCteM1s
QEHNNLXV1JGr3lr12Jigp456bryot8aWmmtsuLSRgTjS0yLEwx9hHpFNaVT6ypzy01d+WuUnj+rC
FUPxaRHpicGFPf7EkWAje3TMYYte98c896l1KA4tohjKj54Y8qGPoNeakiJ+0ZzGNbX5jdTkmBmz
KBbKQnSjTCs2LfO86HrxNBdVyQdfdFy6IcWjVY7YTfPYkSufy+2lxx5b5Qceolz0BZt4laK8rJ2Y
EuVnLBvmczvicSk/pyPoxZM+qgof4kjwQbQ2xdW6aXvGq++kSZNGLliQLw23RZennnoqGe+2226L
7mRLEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE2gjAt6I
0EagncYETMAETMAETMAE2pBAthHh7Zh2eryo90ZUGE3dObXUFP1Lpzaqkk5j1bLTUmet4nzGmsOW
OdloTjrpo0mSfNOBfJUPH/UxxheRHWPqxaVXKz/N5XbqEwc77oH7r6y/Jwf+yhW7xVo0J1/lRY/I
T/mlL83W+JVFLg4hjhZEqxeP2CyQi2J6biYHKDv0sond1EcHvByECvPzGPjl+QWcfEieX7a0lbGx
RafY2BBDbyL5RFVhk69H/TyuXix82YhAiw6RXc4FHfkR5ef+sdGYea7u8Vpz8uTJI+bNw6Q+8UaE
+rjZywRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMoG0IeCNC
23B2FhMwARMwARMwARNoSwINGxEOiDnfiNfseLHhgBppaqapI1cNuQqlVYeej2WT+1CrTSxa+TAv
G3LgR6t+7hPVRX5quJUPf9nTEptLNeSKTyzqz5WfeewQWumVXzrWjC2iWPLFFl1lbHRN+ej+5EOL
aExOxUwT9XwhQEtFEFhYvjjiaoHcoF4E+tgxhw4gspO/ANOikzDGR8X7QCCe/BlrDp306HhBGSu/
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
kmuZ2uZ2zUyvRoqikblkpSapmWj1N5dEgZRVVsWNfVj+53WG948zP2ZUhjG39+d5zpxzPus5r+k+
zn2ez+EbvQ/augzJ67eT+1rFrDABEzABEzCBt4HA6ocIw1LqqWksSYMHB/RI0zNNH7l6yNUorT70
ci+fMoZebXIxKwa7fKhBHLPWZUxSV+rzR43qES9/ZnIz+EOuzE8u+s9VHzt+CLP0qi8dZ9YfhTqr
YvFFV50bXUMxup9imBHtqamc2dCUHyRYXxEEDlYejrw6IBfUL4E1ftjQAUR+ihdgZnQS9sSoeR8I
5FM8e9nQSY+OXyh71VcuxSdT5X8MqotNoIlFX9bgbGU8e2rpzKqFTr9Q1ojqs9dZdR/FaZZde2La
pbFleogw2g8REgmLCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACbwBgeZ8iLBkyZI477zz4tJLL42VK2n5WSM04V9yySVx/PHHV5RLly6NM844I6666qqKTot9
9903Ro4cGZtttplUa83r8hDh0UcfjeHDh8eMGTPq5Wnfvn1cfPHFceyxx9bTa8MDivvvvz/OOuus
/HjhBz/4gUx5btOmTcydOzfatm1bTz9ixIi46KKLKrpp06ZF9+6NN95XHN/C4p18iHD38b+OWY/O
iA+fvHusrF0ZT179t3onbtm6VQx79MvRqg0tXREL5yyIP/3XPTH7r/yjzvVlu6EDYrdvfqziK+uS
lxfHH7/225jz2Eyp8vyhI7aLGQ9MCeyNPUR4O7nXO4w3JmACJmACJvA2Ekh/nwxN6aeksTQNeq31
hxUzvdY059OXrR7utMx+zPRXK0a91urXZlY/N77s1bstH2Kow57/oCtGevzpP1d95auOJwcxOqPi
5a88qqG7yY+9bGmZcxGLjvsjrNERo0cOrNEpn+ozc0aJ9uTAV3lUX37rPJNgfaU8FGsOzoFL4cDo
mCWs5c85FKN4QZFNvzTlwF82fBk06JdxaVuRhu6qs2NjTW7F63wkKP3YI9TXIAZ/vnrAGn9EdyrX
1NJZVJM9Z1d96Zl1Np1LsXwnrHd6eTxq1SrCLCZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAo0RaM6HCEcddVT85je/yaUGDRoU++23X7Ru3Tp/HeHWW2+N
r3/96/mhgs5y+umnx+WXX563hx56aP4KAv+i/bXXXhvLly+PgQMHxsMPPyz3tea3+hAh/aOmwdcP
Fi9enL+4wKODmpqauO222+Lxxx/PeceMGRNDhgxZq4YeIuy00075Swp81WGfffaJrl27Bl9L+Otf
/xrz588PHjSU8nY2xL8bHiJ07bdxvDzxxfz1g0136xFtN2wbL42fF/PSFww+/7evRKt2G0TtgmVx
67/dEIvnLYzWNa2j35E7RMceG8b8Z1+Mf97+TPClhB2OHRgf+dbHSnShxw4tW7WMfkfvmGI6xfSx
k+s9TPBDhHrIvDEBEzABE3gfEVj9RYTPpSvxIu/1NOiRVk+2eqqTai0d/dU06KunGl/9g/Vlvzl2
9tiVTzFJlfNiJ18Zh63015nQq09c9cin+vSNY1cN1WdWDtYa6KhLD7nqp2VFyIto1po68meNnb3q
S1f6KYdql2dKoU0TkqyvKIcOpCZ64JSCHVD84rmY4gSCPZckHmEvKOgFA7sAYS/9qamGfmIYqsPM
QwHVJwdCDDb2ik/Lyl7x1KEe+VUff9WXDjuivIrHTn3+h6c7pGXljOhUvzwPa4bs5CAXf9H38BcR
EgWLCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACbwJgeZ6
iHD33XfHEUcckaudf/75+dFBWZqGf74KcNhhh2V1+Tjg5JNPjh/96EcV91//+tcxdCj/EHBEYw8E
sL3Vhwh68NC5c+cYN25c9OnTh/BYtGhRfOITn4i//e1vjT560EME/AcPHhzXXXddbLjhhmyzjB07
Nj+4aNVK7VJ1+vf7QwRu2XO/PrHvRR+P1h3b1F06/Zw5bnpsvvuW0aJVi/jbD/8c//j5Y9EmPVI4
9KajY8PeXSp+z45+Kh757v3BY4Mj7hhWsfGQ4a6hv8x++1xwcGz9b/3zeuXylXHvl2/PX2NA4YcI
GYt/mIAJmIAJvA8JrH6IMCxdbUoafBGBPmr6rJkRzfzxsSwN+qkleohArzh+6uPGTg5Eenz1Bww6
PSLAB1E/OjbW5ETYq4eb+tSQlDlUBxv+sklPTmKxqUaZC536xFmr/13nqO6/R09O8imn7sceG4If
dXQObOjYs0ZUo263jj+VZB3D1nInDwcVKA6I6FGALoBONvlz8fJiAsnFBEWXZM8vR3kVp/qy6Rzy
Ix4fhuqTCz980CPay0fx2PApY8jJHZS7tBGPP395Ypcvump/HhagZ6g+Pgj1JdjZk5uZhwi90/+j
MmrFCsIsJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
jRForocIRx55ZNx1110xYMCAeOSRR4ImujeSkSNHxkknnRQbbLBB/POf/8xfKij9d9lll3jmmWdi
+PDhcfXVV5emyvqtPkTYZpttYsaMGbnexRdfXIlnwZcahg2j1y/i2Wefjd69e+e1fughAl9Q4Dyb
bLKJTG84X3HFFXHllVdWfB566KHo0mVNI37F0ITFu+GLCBukLx585u5jo323moZvkDq9bvjIlbF8
yfLY/b/2je2H71zPb8XSFXHLgdfG0leWxEfP2i/6HzMg2//2o/R44brHombTjnHUvV+IFi3X/O/o
hYemxr0n3ZH9GnuI8HZyr3cBb0zABEzABEzgbSKw+iHC8JT++TR4iEAfOD3U9GTTL60GaXSsmdVv
zaw1NvWlE8eamYHgR27p0RGjHHqogA9CfdXER2tsqkku1jqncuPLmln1yaca6BTHzKAuPszs1b+u
+KSq5CK3/PHV2cSMfblO27wXI+zE6RzsmywkWl8ROF1GhydveVCtsctXh9esRnvsXLj0RYcIquqW
Mdho7Bcc1cQXoY5yaq+zMGPDR3HklpQ50LHHV/W1p77uQz7Ogk118C9zKY5Z9VkThy9xCDqt2XdM
Y8tZs2aNXrVK5VBbTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAEqgk010MEHiBMmjQpzjnnnDjzzDOry6y1/853vhPf+973on///vH3v/99Lfupp56aHyDs
u+++wdcWGpK38hBh+fLl+QEA/6jpDTfcEJ/5zGfqpZo7d27l8cE999wT++yzTz27HiIMGTIkf52h
nvEd2rwbHiL03L9PHPi/hzZKYMHM12PMx3+e7e02ah+MSvdY0tLateCFV4MHCf2O2jH2OveA7Hv/
N38fU34/Kbb6+Idi/x9/Muv0o3ZRbYza/ad529hDBPl6NgETMAETMIH3KoGWLVtG27Zt+TTUlDT4
4gC94/RPI6wRmqRZ00eNYEdXzvRfy58mfXzlQ+81vhrslQ8dwp6ebWbi5JOWWeSvXPiUQ/UVV54V
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
r9rMpU2PHRSn85VnI14x1fWTad1Fl1n3yLUjdDlgCSQ6AWGtPZco14KDTrEChA4REF28TrvmF6F8
NPLzPx6ASqcc1FUerfVLFljZk2v+H4DOoRm98jHrPMSzLh8yKDd+DPmgV/3ykUVS5/NhRzSXccqV
v4gwd+7cG5cv57oWEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzCBxgj4IUJjZOrrp0yZEvvss09WPvXUU9GlS5f6Du+hHf++64Txi+Ov4xbE0iUrY+ddO8TO
u9RE23a0Y1lMwARMwARMwATeSQItW7aMtm3b8hBhShrL0qhNgz5phH5y+rIZCHvZ6PVGmGUvHyHg
V/rgq1yay3ys6eemPn8kEK/6aZmFvf6AIHdZAwfqq99b56QWvuh1Hp1XOZIp21Sf3vEyN/7al2dT
TtXS+fDXOdKyUl910SHV+zrtOv5U8XUMq+fOYRFdkpnD6SICpwsz46MLp2UWxQOSWIGvs9bPTw5+
YWrox0fx2FQfu35RsusXRH2t0zJDR6evH5ADOzOx5flVn7OyRlRXe+rq6wZlvGJUX/7UUn3yqT5r
xUtHTJs0+qQvItzoLyKAyGICJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACjRPwQ4TG2ZSWSZMmxYABA7JqxowZ0a1bt9L8nlkvWrgyvnj0P2Pcg6/XO/MWPdvE
Tb/pF1v1bVtP740JmIAJmIAJmMC/nkD79u2Hp6pT0licBr3Xauinp1o94NIlVX4sQM81NoTeavVk
o2OtnnH1gBOPDtFjg7pd3c8yRrmYy3h6t8lBvPrL0zKLYvDXmVkrXmct43UeEiiGmVHeD7vyE1Oy
wIYOe3X/fVlT+fEt12mb98xNkvISTUqQgsihg5ED0ICTqAY6/RL0C+XS5S+0jC1BKo5cwGKvxn3V
R48IpOrKrnzs9UvAV2v5kQPhvNj1y9MZyKP65S9Da2IkiiE3+TgzuvIOyiffZM48VR+74vARx05p
3cMPERIFiwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAm8
CQE/RHgTQKvNPD44/PDD827s2LHRuXPntxb4LvJalTqsPvvJCfHonxdE69Yt4qDBXaJzl1bx+zte
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
o1esINxiAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAibQ
GAE/RGiMTH39pEmTYsCAAVk5Y8aM6NatW32Hqt0tt9wSN998cwwcODDOPvvsKut7b7vg9RVx/TXz
4pr/nRsvzqUnMOLEUzeNs87f8r13GZ/YBEzABEzABN7FBFq0aBHt2rUbmo44NY2ladCnTVO0GqPV
N629ZvqtsbFnZk9sOdTXndS5eZ9ZQjN/KcTRx13GYye3+rypUdbHXu6JxZ+hfGmZRTZyIMRpzV51
5McsO/dgz1zG6TzMDNVmRqRnTTwinfZ12vX4ScL1FQAjHEqH16WxocOmw6smMPTL0S8b37KRX/mY
8SWPfNMy59S+rC9fNf8rD76qj7/8pEfHa5FSFEsuxchOnOrLDxu+3I9nsOgZ1JU/a+XCJr3q64zJ
VBHdhRmpSaP3rFmzRvFpEosJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmEDjBPwQoXE2pYXHB4cffnhWjR07Njp37lya11qfd955ccEFF8RBBx0Ud95551r2
95Li8h/Mip9dOidee5XWrzXihwhrWHhlAiZgAiZgAs1FgP7nmpoaPURYmPLST11+GYD/IJdN0qx5
RED/d/llgrInm3U58CWG3OjLfGmb+72lxwdf9YzX/4MA7zX1lZN8xFMH0V6zetXpDUfHYK1ecd0R
PfXZq2dc56r2lx8zgp/6y1UDHYIPa2ZsSHW+Om0TfuoSTQithJBDUFAqJ4dmrQuwZgAIqNWX0SWZ
sRGnmLTMa2yIcmpd1seGKB971WKt+vgg6KijHMwMzqhc2FmTs6E1/sqjWf9DYK/cyqFfdjLlOuRE
dA7Wqo9ONVWHPO3S6JW+iHCTv4iQSFhMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARM4A0I+CHCG8BZD9P76SHCHts+GbNn1kbnLq3iuK9sEtdfPS9eenG5v4iw
Hv/7cKgJmIAJmIAJNEagZcuW0bZtWx4iTEtjcRr0SfPAQL3T9GKjQ9T4r15y9Wajxx9f9XmnZY4r
fdAhZU7llh+z6ihnDlqt16MC6eSjmXh6vCXKy7m0pj5CDDqJ9tjJwaiOU/+9chGjO8uXOOVKy7zG
hshf67J+dljXHyRsDhE0XYac6DhgeXj06ORf7kso6JVLeQCrFybV5wYsgo/Wgq082AWWnGWO8jxa
65zyI49emEinmVqs8dFaNVQfe7V/UmWdfNlrrfo6D3n0tQby8EWEXvPmzbuptrbuE2BpbzEBEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE2iAQHM/RHjiiSeC
nM8//3xsuummsfPOO8fee+8drVqpfanuEMuXL4/77rsvb/bdd9+YMmVK3H///fHCCy/ErrvuGvvv
v3907dq1gRNHTJ48OR588MHgKwWvvfZa9OvXL3bYYYfYbbfdYoMNyn8Lde3wJUuWxKOPPhrjx4/P
eXTGQYMGBY1/pSxYsCAef/zxUpXXe+6551r3wYBv+gdUs88NN9wQY8aMyff/n//5n6zTj7322is6
deqUtzCAxY477hg9evSQS735gQceCM697bbbxlZbbVXPxoYc/OvJSK9evTKPvGmmH4ft/2wMPqJL
fP5L3aNDx1ax/4f/EZOfW/qWHiLwu3ruuecqJ+H3+ma/o4qzFyZgAiZgAibwASXQvn37Yenqk9NY
kkbdf+Tr+rHpCWevoX5s+WDnDxpmCbZyT4z8WCsXM3v1muvxAXp6tJWHGZE/9aQjnj1zKdqThzX1
+aNN51I8s+rrjOhUQ3lKf2wIutIXHfUQ4rQu/ZQvO63+0dD5S/ubrlXoTR3fwIFDCBZuOpQujo21
/vLVBXU55hKMYKPDhj86ZoALtmKSql59fPAlFpEfep1T9y59ZKPZnxr4I6zR4avc5GQoDzN2ZnxY
cwb5pWW+g/x0JsXIjxhq6a7ESYcvHJjx75hGr9mzZ9+wciUuFhMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgcYINNdDhKVLl8YZZ5wRV1111VqleGgwcuTI
2GyzzSq29A+N5qZ5FF//+tfj4osvrjTTo6Mp/9Zbb40BAwawrcinP/3p+N3vflfZlwsa/EeNGlWv
Tmn/y1/+EieeeGJMmDChVOd1nz594sknn6zXJD9u3LgYNGjQWr48gOjWrdta+sMOOyzuvffetfTV
ij/96U/50QR6HjXwgOGYY46Ja6+9tto1P5bgkQUPDX75y1/GoYceWs+HRwx61ICB+1166aX1fJp7
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
6KHlU5/6VHnSk55UTj/99MWSvf3tby/vfe97F3kxob+I8JOf/KRst912i/ideOKJ5VWvehWFeOUv
f/lLWWmllco3vvGNsvvuuze7gw46qHApgWL9lVceKTHi5QDOM3wR4QMf+EB561vfWjbeeONyxRVX
LJLn7k7u6YsIH/nIR8qb3vSmsskmmxRynXzyyWX//fcv6667bnv5oX4z8t3d6j1ul4sI9zjiJAiB
EAiBEPgnJsDfNZMnT967Iri8Ni4iKNRl26ifnlebddjWZrtunbb12Oqxs668DtuYNf6YomeN3rh1
2GQ4PvbmNx45afgr5O/1zLUnhhclGOtrfuyUPg52zPG1/p25eenZL2Jc94Deddasv9fOGPhOWEw+
4QDVkQMhbMjDM+cgfhhsmnV0jAGmrXswTl1qdvT48AHr29uwjq8686NXzE8MPyTzC1J/5/rYqycm
tugV5vp7NtaGfT0Da46NS4+glxlzY6hHh635uN48LS8igCUSAiEQAiEQAiEQAiEQAiEQAiEQAiEQ
AiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAksmsDwuIrzvfe8rRx111JgvDhxwwAHli1/8Ytl5
553Lqaee2jbUX0Tg0sELX/jCRTb6/ve/v71qsOWWW5YLLrigrb361a8un//858tYLy9MnTq1/PnP
f26XDt72trcN4n3rW98qL3nJS9plhvoFp2XttdcerN3dwT19EeGGG24oD3zgA8u8efPK1772tfLB
D36w/PSnPy2w+/CHP7zEbV588cXlrrsoEytlgw02KBtuuOES7Zd1cTwXEW677bYCc2XTTTctq65K
zWAkBEIgBEIgBEJgLAL1AuIede3q2m6tjTpq672tC6eAvh9bX42twpiGnTGotyZWb+d6VQ8Emz4m
NszNyXo/1raqmzh3Dyjxoebb/OzFdXp8aAg2o61jRwzO71hb91iXBr6MsUPcLz1iLtf7/NqMWI7z
p4HH6baYOQDctJukd6PqnBOAMXqavuj6ce/nLwQ2FOcDljHS5x/RjMThA9CGWNg5Z2x8cmKLaMc6
4txfCPTm18ZYxiAHHzZ/SZqvDlt+bNHpw5j8xETIRxxjo2OMzn1iy8sK0+ofryfmRYRKIhICIRAC
IRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACSyCwPC4ifOUrXyl7
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
xtUPBx+X80JjDmgcDuLG6fsPhw8CsAKpwyYeAj1CDP2AyFxfY5qvLjVb59hqj61+9MY0vz51qQk2
+JiDftXa2LP7MKa+9MSjp7FOfu31JzbNvdXhgJmx8MHfHPT49/HqtMXGZ0ptm8+aNevEu+7CJBIC
IRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACITAWgeV5EYEc
X/rSl8pVV121SDq+Vf6lL33pIrplmfAN9b488PCHP7z813/9VyuMN+af/vSnsueee5abb765PPrR
j27rrvHaAa8eIAcccEB7pcG1iy66qM0plueCwRe/+EWXFunPOuuscvjhh7fLCrwCQQE98r3vfa+8
4x3vKGuvvXb5/ve/33S+sLD11luXz33uc0339/LjW9/6VvnNb37TtuO3/7s3Lh386le/KtRgrb/+
+u2FhxtuuKEcf/zxzeQBD3hAY6w9L2FwSWH+fGoT/3YR4dprry00hBcieF1BOfPMM8uPf/zjNuWi
Cp9V//rAAx/4wLL77ru3In59uOhgPOzXXHNNl+5Wf9ppp5XzzjtvkZw61pqz9hnxBbgbbrhh+/1g
DQbve9/7CnouYLzhDW8YXL7gIgWXG3jVAhnrIgJrhxxySHs9gnEkBEIgBEIgBMYiwL879ZLf3nX9
itpuro2abIvv6amXpjmmYJr6aqQv9kfHHFt6araNw5xm/Ti2xsBeX216f9bdk7b6WrytXn/05HdO
jw92iP7M9cVH+2F/bFzTl96x58KPMT016ZzffdThID9jxPzEnrAQZFlFCPYcQvGQzF1Hx8Ho+0Oj
E562zrGlCasOB/GE5hpxEGM4bsr6Q8DMja8OmMDHFzHnyGwkv2NtzG9eetf63jExuWCAmJfeSwvk
JyaCrXGZ97H5y3Kzemv1pLyIAJpICIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIxNYHlfRKBYneJ7v0R00qRJZd99923F7GPvYvwrn/zkJwuXAJCnPe1p5dWv
fnX7dn6+af/YY48tV1xxRVvjm/7Jr/Bt/Hz7PoX2U6ZMaRcKdtxxx/K73/2ufPSjH23fyI/tkUce
WXbddVfdBj2XG/baa69y/fXXlwMPPLC88pWvHKxdcMEFg+J1Xkng8gEXFngp4elPf3r5j//4j4Ht
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
Lmzls0pHfa3x0TnRs0andVpunOgAG5elJlqHLh9eAPDgy+cBODxA8NfQHhsx5SBO5yQewQ8dcawR
9sThr7qCh03nUn3lqN4n10o8a+Lkq3zlnjWimfqIzkBths6FHzblID/PwYxftRAn3zKO34q7zZkz
Z/TKlYRbTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
6iPQmBcRPvvZz8ZvfvObXGrgwIFxwAEHRIsWLeLvf/973HbbbfH1r389X1TQWc4888y44oor8vaI
I46IfffdN6ZMmRLXXXdd8EdIBwwYEI888ojc15nf6kWE1EsU/fr1i8WLF8cWW2yRLx20bds2br/9
9nj88cdz3jFjxsTgwYPXqaGLCLvssks89dRTsdVWW8V+++0XnTt3jvHjx8df//rXmD9/fr7QUAa/
nQ3x74aLCJ37bBavTHop2m7eLrbYo1u02qRVvDxhXsx7cnZ84W9fiWatm8fyBcvitn+7KRbPWxgt
2raIPp/ZKdp32yTmP/tS/POOZ2L1qtWx03ED4iPf+liJLnTZoWmzptHnmJ1TTId4YeyUWhcTfBGh
FjJvTMAETMAE3kcEmjRpEq1btx6SHmlaGkvToE+bpmg1RqtvWnvN9FtjY8/MnthyqK87qXPzPrOE
Zv5SiKOPu4zHTm71eVOjrI+93BOLP0P50jKLbORAiNOaverIj1l2noM9cxmn8zAzVJsZkZ418Yh0
2tdoN+KThBsrAEY4lA6vh8aGDpsOr5rA0JejLxvfspFf+ZjxJY980zLn1L6sL181/ysPvqqPv/yk
R8dtkVIUSy7FyE6c6ssPG748X8s00DOoK3/WyoVNetXXGZOpInoWZqRtGj1nzZo1cvXqsnS2+cME
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKAg0FgXEe65
5544+uijc+YLLrggXzooyuSGf94KcOSRR2Z1eTng1FNPjR//+McV91//+tcxZAj9dxH1XRDA9lYv
IujCQ8eOHWPcuHHRq1cvwmPRokXxiU98Iv72t7/Ve+lBFxHwHzRoUFx//fWxySabsM0yduzYfOGC
v15cyvv9IgLP2v2AXrH/xR+PFu1pB6uRmeNeiK323CaaNGsSf/vRn+MfvxgfLdMlhSNuPiY26dlJ
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
SpmDNYMHkr6EJwB6GB4a4YERYrApFj3xDOlKWPqikjkLPvjqFgdK9uQkF83+qp2WFegCjg4hD0Nn
4ZzkQfDVl6XzoVdt/HQu1qpPLl1ASMssylvmwUCM6rOWn3TsuYjQLb0R4Wb9Ipr2FhMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgToINOZFBN4asM0228QN
N9wQJ598cm7yv+uuu3JVNfyPGTMmBg8eXDkJ9UeMGBFTpkyJmTNnBpcQkOnTp8fSpUvje9/7Xnzj
G9+o+LMoLyKMGzcuPvzhD9eyl5tnnnkmdtttt6yi1o477liac4P7JZdc0ugXEe6888449NBDa9Xi
nBMnToy6LlfUcnwbNry94KDdat548IsxH4onxi+KS74/M19AuPaW7WLxolXRd4u/58q8vWDI8TWX
N8qLCNenuIGf6FjrdNdfNTeGn/lCbN29ZYybsEstGxtqXHrhrIp+3wM7xE139MlvRagovTABEzAB
EzABE6gQaNKkSaQ3PnER4YU0FqdR88vR2v5t+rHVN06vtQZ91FozI5rp1yYGoe+agQ0da4Q+cwn+
CDbqy4eZGGJVD1/ttVY8esWqFnvp9IaGpKp1FuLlR336xhFmnbu6/14+2CXKw156/FSfM2mv8+Gr
87PeYFHyDQ4sAng4DswgHwfioMzl4XR46dmXMcSSC9CslUszcXyRAqEaddXHDyGGGuzJoxjlwiYd
s/LLN6lqCXbF4I+oPjmVCx178qg+NsWkZeUfJTl1HtUvfckhUV7s7dPonv6nZJSMnk3ABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABOom0JgXEaZNmxabb755
3HzzzfnNA4MGDYpf/epXufDhhx8eDzzwQNxyyy1x5JFHZt1//Md/xP/+7/9WDta0adNo27Zt3vMm
g9WrV8c555wT5557bsWHRXkRYdasWet9a8C9994bRx11VI6fMWNGdOnSpVauH/3oR3Heeec1+kWE
Rx55JP9V/7LYHnvsEU8//XRceuml+aJGaXu716+/tjJ22ebxXOarZ24VV182O1q2aBp/+NuOsVW3
ljFn1vLYs8+T2X7N6O3i44M75XV5EeGuB/tF/91qvh+d99ej58cZJ06J5s2bxOSXd1vngsGq1CX2
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
fj62moAJmIAJmIAJmMC/mkCbNm2OTTVnpLEwDfqo1e+tvnAa6Mu1+qvxlbBmqN9cferMpZ/simPG
p8yJD3vVxF6u5ZvUWbTXGVASQ8+36tP7LTszMQwEn7rs+JGD59davjpjMlViWeOH6LzMiGrJXtaX
T43nBn4q8QaGreMOAB1ah2TWQaXTngSs0TMUi65cl3HUACA+NOcDljVS1q/R1OThC5APufDTnrXy
UxNfRH7YEe31DwK96stHuZSDGpyV2yeql5a5Pr7oFMOa+uREqEce5UbHGp3OiS9vVuiZ3ogwym9E
SCQsJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJrAeAr6I
sB44NpmACZiACZiACZjAO0CgjosI/PV/9VDTN82QqO+bmT7t0qYec3zLOHKRU73brBF8sCmOnAz6
09UPjo9qpmVF0KmG+sTJQz71hStONQgmr86CXTZm9gzy4Ece9tRhrTplfj1DMleepzpONdCTV/33
qk+OBosO1eAEKVA5OJDWzAwB4CEQZgEBlBr6yy8MH4a+SPIohnwIcfriVVMwVZsc+KsOa+ooF7Py
6AvTl0es4tIy51E+8isOneorP3vpWZd5qIMfdtVnRo9O9dkrjhyKScvsR/1WafgiAkQsJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJvAmBHwR4U0A2WwCJmAC
JmACJmAC/0ICTZo0idatW38+lZyRxqI1pemZpreaPnL1W6sfGxf09FEvS4N+a3zpucaHoYsM5JGe
GSEf8Qh2RD41u5pPbKrPWvWZVZ866gtXDuVnRqQnBwN/4skjwUf+6LDhi17Ph53n1DmUhxlRDtVH
Tw7FsEbQ60xZkT5k036D5vJBNiiwcOZQHJSD6EExKzczdr50fXmyJVWOIRYdQw+kfMyqkZbZjh+1
SlvpLz3++Ko+8BDVYi3Y5KsW1eXs5JSoPnv5YC/9yMdQfd6OoC9P+qSqxJBHQgyisymvzs3cPo3u
s2bNGrV6dXk0wiwmYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAIlAV9EKGnUv546dWrst99+2eGpp56KTp061e/8PrYsXbIqnvz7oqA1q9s2LaNbj5bv46f1
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
BEzABEzABEzABEzABEzABEzABEzABOoj0FgXEZYuXRpnnXVWXH311euU4qLBiBEjYsstt6zY5s2b
FzTNI1//+tfjkksuqTTTo6Mp/7bbbov+/fuzrcinPvWp+N3vflfZlwsa/EeOHFmrTmn/y1/+Eied
dFJMnDixVOd1r1694sknn6zVJD9u3LgYOHDgOr5cgOjSpcs6+iOPPDLuu+++dfTVij/96U/50gR6
LjVwgeHYY4+N6667rto1X5bgkgUXDX75y1/GEUccUcuHSwy61ICB57vssstq+TT2ZkMuIgwfPjwu
vvjiyhGmT58eXbt2rey9MAETMAETMAETqE1gzUWEYUn7fBpcRKAPnB5qerLpl1aDNDrW6sFmXfZe
s1dfOnGsmRkIvuSWHl2ZQxcV8EGor5rEao2Nveqx1jmVG1/WzKpPPtVApzhmBnXxYWZPn3gZn7aV
XOSWP746m5ixL9dpm/c6M3bidA72DRYSbawInB5GhydveVCtsctXh9esRnvsPHDpiw7Rl6K6ZQw2
GvsFRzXxRaijnNrrLMzY8FEcuSVlDnTs8VV97amv5yEfZ8GmOviXuRTHrPqsicOXOASd1uzbp7HN
rFmzRuuWL0qLCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZjAugQa6yLCmWeeGVdccUUuQLM8b0Hgr+HTXE+z/IABA+KRRx6pHKC8iICyV69eMWzYsFi+fHmO
mTt3bmy66aYxadKkaNeuXSVuzz33jMmTJ8egQYPyWxBoaudtCtdff3288sor0bt373yhoPoNDOPH
jw8uRPDHTXnTwpAhQ2K77bYLGuN/+9vf5jqvvfZatGzJ31itkRdeeCGuvPLKvJk/f37ceOONeV3f
RYTRo0fns+HE2x143p49e8bQoUNznD5OPPHEymWJa665Jk4//fRo27Zt5rXJJpvILc/f/e534/vf
/37257mr3ybgiwi1cHljAiZgAiZgAu95AryhqVWrVkPSg0xNgzce0DtO/zTCGqEnW0307LGjK2f6
r+VPk756s/FRTzhr7ZWPPcKenm1mchOjfGmZ1+rjJgafcqi+4vBFVI91mRs9MarPrPppWTkz+fSs
+Jd7/LAhyqX67HU+dIhqKQdnlC47NORDyRsS+//ZOxdwT6hx/6+ammmmGxXJdE8pjlyP9CRyIiTi
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
eAjrjs2PDWMagj82NHTWdZuTeR9H26puPvjT9DUf6/gpjDkbzdisOWeM3vzEce7YvWKrmN/49JMW
gi2ueKB+s26Sg6hnzGHpEQ8wMvubXht9+1jYDufzA8POmIyxM0YdtjUvAzBnDRtsFXS9DeuIPeM+
Xz83Hz3NfRvf2PigM7+x1Q1fQEDf27DOOXkRYZ25c+eewP+piIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIxPYElcRHjLW95SjjrqqLLllluW0047bYFk
//qv/1o+/OEPj3oxob+I8OMf/7hsscUWo/yOP/748rrXva5Mmzat/PWvfy3LLLNM+eY3v1l22mmn
Zrfvvvu2SwkU60+ZQulSKbwcwHmGLyIcdthh5V3veldZc801yyWXXNJsJ/rj/r6IcPjhh5cDDzyw
rLXWWoVcJ554Ytlrr73Kqquu2l5+qAWJE93y/Wafiwj3G9oEDoEQCIEQCIF2+bL+/cMNxEtqu20+
EoqiqZNG6CnYp46aMWv9vE7b3JpsbPS1uNp4xPCb37GhPltbYjJX9DWe+Vk3f2/DGBt69XXYxDnx
8UW0N7/7YQ071u3xsba+Dtueh/eKvTa9rzHwY3+eczg/65OSfiOTClCd3KQAmbtZD9ZDYF1gjPUf
qx+2q+ZNtGXCGDsBkpuGjkbhvvnrcGCPDb70PdB+jh5BR0PwMb9j87COHXshJ2J+Lxj08fF33/TE
MY922DCmmY8xf3Gve/XVVx9/992mqppICIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACITAAgSWxEWEj3zkI+WQQw4Z98WBvffeuxx33HFlu+22KyeddFLbQ38R
gUsHL3vZy0bt7WMf+1h71WCjjTYq5557blt7/etfX774xS+W8V5emDlzZrnuuuvapYN3v/vdg3jf
/va3yytf+cp2maHWFZWVV155sLaog/v7IsK1115bNtxwwzJv3rzy9a9/vXz84x8vP/nJTwrsPvnJ
Ty50m3/84x/LPfdQYlXKGmusUR7xiEcs1H5xFydyEeHWW28tMFfWXnvtsvzyyztNHwIhEAIhEAIh
MESA157qRQReRJhTGxcRqJO+szbrvhlTMz3yj//farOxo8bb5ro9/taAY6seHePez/jY0bisgA11
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
it///vdlhRX4ntlICIRACIRACITAeASWWWYZ/r3cpa7Pqe2O2qjTpijawmjrpp3bU2/NGnN65vj2
jdprheL9Xobn+FHH3ftjT2zrvMnR52e9n+OLPc14ddjENWIg+Dlmbh7t6F3nHMzpez/3Q08zNz2i
njH+iDrnI9rF+EnAxRUAI2zKzXto1tCx5ubNCQw/HD9sbPtCfuPRY0scbeuwxXTe59fW4n/jYGt+
7LVTj47bIr3oSyx9XMfP/Nqxhi3n4+UD9DTyas/YWKypN797rEsD8Sz0yIza1qt/xM7yubGmzY8Q
CIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEQCIEFCOQiwgJI
HlDFrbfeWr73ve+Vc889txxzzDGlfgFr2WyzzQqfC4WID2X50pe+VF796le3I3zyk58se++990P5
ONl7CIRACIRACDwgBKh/njFjhhcRbqlJqafuXwagFps6a4Uxlwio/+5fJuhrshn3DVt8iI2+j1en
rd5bPTbYWjNO/mExvzGJhz95EOf21qrzxw46GmP/+PGM6MnP3Jpx9zVsrx09gp315eZAh2DDmJ41
ZDjeiHYSPz3EJFwHLsQQCkpjsmnGHoAxDUBAHT6Mh6RnDT996rCNWUOM6bjPzxpiPObmYmx+bBB0
5DEGPY09Got1xsQca4y9cez9RWBubGP4YdelloeYiPtgbH505jQPcbgyu279g/yEvIhQSURCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCYCEEchFhIXAegKUL
LrigbL755oNMj3zkI8upp55aHvvYxw50D9XBvHnzyi23UD9ZyqqrrlqWXZbyrkgIhEAIhEAIhMDC
CPDv5bRp07iIcGltt9VGnTQXDKydphYbHWLhv7Xk1majxx5b67zrsPn1NuiQPqaxtaM3jzGb03y9
lwrUaWOPf/9HgHHZl2PyI/igU5yzTgzasJ/198bCxzNri5+x6rCNWUO0d9znbwYT/UHAJSFC8zDE
RMcG+82jR6d9P++hoDeWcQDrDZPhfQMWwcaxsI3DumCJ2cfo9+PYfWpHHG+YqLMnF2NsHJvD/KwP
21dV02nL3LH53Q9xfK2BOLyIsG59uu2EO+/kv7lICIRACIRACIRACIRACIRACIRACIRACIRACIRA
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
DgKceOKJxUsEL3zhCwd2GJx22mnl4IMPbrZbbLFF+fjHP97GvHxw8803t9cPGF9//fUFX4SC78c9
7nFtfPHFF5fXvva17cUELkM81ArA77jjjsK36T/iEY8o06ZNa2da2A9elKCon9cxuOyxKD433XRT
48clAC5p8DLBfQl7QtjX4go1ZX7BLZcRFPW18HOwJ16+uOaaa8pKK63U9srakpI777yzcGGAyzML
uxDBXtkbnIbzu2f21J8lFxGW1KeUOCEQAiGwdAjwd079330vItxSd0E9df8yALXYfZE0Yy4R8I8q
dthTe93XZDu3xxYfbft4Vd3qvbFFjw22/MOJjvzDYn5j4oet/9A7t0fPOv+4oqMx9h9bz4ie/Myt
GXdfw/ba0SPY+Y+9OdAh2DCmZw0ZjjeincRPDzEJ14ELMYSC0phsmrEHYEwDEFCHD+Mh6VnDT586
bGPWEGM67vOzhhiPubkYmx8bBB15jEFPY4/GYp0xMccaY28ce38RmBvbGH7YdanlISbiPhibH505
zUOcFWpbt/4xdYJ/MNZ5JARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC
IARCIARCIARCYAwCk72IQKjvfve75Q9/+MMYUe9bRfG+xfz3bT3agoL57bbbrhX8czHgve997yiD
2bNnl112oX6vlH322addDtCAiwZcOJg6dWr50pe+VNZcc02XWr/XXnsVXkeYMWNG+eEPf9h0XGSg
uHu//fYrO++8c7ngggvaSw4schlj3XXXbcX4+P7xj39slyS80NACPMh/nHXWWe1zrF/+2oreKXh/
1KMeVTbffPPy1Kc+dYHd8xIGbC688MJRaw972MMKn8fGG288Ss/k9NNPL7/85S/bSxUucnHhKU95
SuFb+4dfxeDFip/+9Kdlzpw55ZZbqMGs31BbP5P11luvbLvttqNeoTDeovRnnnnm4HN93eteN/j8
f/azn7V8xNh7773b7/aVV15ZKAZFuIzwohe9qGy00UZtPtkfv/rVr9rvF6yNzSUOLtTw4kZ/MYPL
L5/85CdbKi7GcO5e+Nx+8IMfNBUXYIjDBRguKAwLnymXcoY5D9tlHgIhEAIh8OAgUP93mz9kLq3t
ttr4H3YuGFg7TS22/2Nv4b+15OixQ0+PrXXeddj8eht0SB/T2NrRm8eYzWm+ntpu86PXxh5/arwV
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
QF/6YOeefBGhX3Nz81j+h2gxARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwAROoT8APEeqzscUETMAETMAETMAE1gaBTp06jUh1J6Uxf0V9mqLVHM9Mwz591Kyx
lfu0zXv1ZOOjWDVXKx859De/40N/tnzJyV6iWOVTfeyqX/qwxodZ+rTMoj35iUXkr/o6Dzb8sGsm
Rr31aZnPXHtW/OVTxioHcZxP96ytj71dUh6kXQlSkA4pgOx1WF2shIBdwFgrvrW51i+5Z5EvG9b4
CSC1GegYNO6rflpW/fEhlrkEWu7RI+gYCDGqr7XqYMePs1ATUX09MCjzE69zM5NHdeSHD2uG6rHu
nkb/GTNmjFm6VKWSxmICJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJrAKAT9EWAWJFSZgAiZgAiZgAiawVgmkhwh8EWFyGjxEoE96cRrq+2ZNzzT91YgapvGj
x1tDds34qQccX+nRsS7jlB8/Bo8V8KGvm/rq707Lah78ENUo82PTOfGp54uNOOqTBz/FoqfvnLOU
dvTKx6w46cu91vJP7lnQS8q1dG2aa5O3KXiFMxdUHi6igzOXPw4/BGAFJC2z6BLoEXIoDojsFauc
qpdM2Vd7fOWPr+KYlVP1FZNMWfAhRjWYu6TBmXUO5VQsM/mYGdipL3/Fk5uhs6VllZlyEUO8ajAT
X+ZL25ybmKY0+k+fPn3MsmW4WEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABOoR8EOEemSsNwETMAETMAETMIF3ngD9zw0NDaNS5UlpvJEGPdlqvmdWf7bW
NEzTX42Uzf7o2OPPTM+28rBnqH8cX+XAX7HyKeOx60zyVayat6VXPHrqa89MDH6I4tkrlhj518bj
I5timbXWvYhjzUxPOvfXOdKyWp81ovrkbreQZE1FEDRzCYkuyV52dFyMubw0OsGTr/b4MgQrLav5
BE028iDKoXVWpj8EmL3ySwdM4BOLqGZlV6mvtXxUX3WZZStnrcnJAwNEdZn1aIH65ETwVV72Ze71
075f+iLCWH8RATQWEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
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
Dh40lPJ2NsS/Gx4ibDRo0/jHcy/nrx9svnuf6LpB13hlwqyYlb5g8M+PfS4auq0Xi+csipv/6YaY
P2tudGnqEoM+vmP06LNBzH7m5fjbbU8HX0rY8dO7xge+vG+JLvTYoXND5xj0yZ1STM946d6JLR4m
+CFCC2TemIAJmIAJvIcIrHiIMDJdaXIaC9LgwQE90vRM00euHnI1SqsPvdzLp4yhV5tc6i1XTvmw
J45Z6zImqav11cuNjnj5M3Me9btjU35y0X+u+vSH44cwS6/60nFmfBHlUiy+6Gpzo2stRvdTDDOi
PTWVMxva8wcJ1lQEgYOVhyOvDsgF9aOzxg8bOoDIT/ECzIxOwp4YNe8DgXyKZy8bOunR8YOyV33l
UnwyVf9hUF1sAk0s+rIGZyvj2VNLZ1YtdPpBWSOqz15n1X0Up1l27Ynplkbf9H8exvkhQiJhMQET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIHVEOiohwh33nln
HHvssbnSBRdckB8dlGVp+OerAEcffXRWl48DTjvttPje975Xdb/llltixIgReV/vgQDGt/oQQQ8e
evXqFQ8//HAMHDgw5543b158+MMfjscee6zuowc9RCDgyCOPjKuvvjo22GCDHM8f9957b35w0dBA
C9NKea8/ROCm/Q4YGPtffFh06dFYvfi0h1+KLffoG50aOsVj330w/nrN49GYHikcNfaTscGADat+
z4z7SzzyzfuCxwbH3j6yauMhwx0j/if77Xfhh2Lbfxqc18uWLIu7T7ktf40BhR8iZCz+wwRMwARM
4D1KID1w5D+EJqWxMA16remlRpjptaY5n75s9XCnZfZjpr9aMeq1Vr82s/q58WWv3m35EEMd9vwH
jmKkx5/+c9VXvtp4chCjMype/sqjGrqb/NjLlpY5F7HouD/CGh0xeuTAGp3yqT4zZ5RoTw58lUf1
5dfmmQRrKuWhWHNwDlwKB0bHLGEtf86hGMULimz60ZQDf9nwZdCgX8albVVau6vOjo01uRWv85Gg
9GOPUF+DGPz56gFr/BHdqVxTS2dRTfacXfWlZ9bZdC7F9ki2Ac3NzaOXLyfMYgImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImUI9ARz1E+PjHPx533HFHDB06
NB555JHgb/NdnVx77bVx6qmnxnrrrRd/+9vf8pcKSv9hw4bF008/HaNGjYqf/OQnpam6fqsPEbbb
bruYOnVqrnfJJZdU41nwpYaRI0dm3TPPPBMDBgxoYddDBL6gwHk222yzFvZ6myuuuCKuvPLKqvmB
Bx6IDTdc2YhfNbRj8W74IsJ66YsHH7vz09F9k6bWb5Bat274wJWxZMGS2OO/9o8dRu3Swm/pwqXx
80N+FgtfXRAfPPuAGHz80Gx/7Hvp8cLVj0fT5j3iE3d/Jjp1XvnP0d8fmBx3n3p79qv3EOHt5N7i
At6YgAmYgAmYwNtEYMUXET6V0k9L4400+JeherLVU51Uq+jor6ZBX//yxFd/YX3Zb46dPXblU0xS
5bzYyVfGYSv9dSb06hNXPfKpPn3j2FVD9ZmVg7UGOurSQ676aVkV8iKataaO/FljZ6/60pV+yqHa
5ZlSaPuEJGsqyqEDqYkeOKVgBxQ/PBdTnECw55LEI+wFBb1gYBcg7KU/NdXQTwxDdZh5KKD65ECI
wcZe8WlZ3SueOtQjv+rjr/rSYUeUV/HYqc8/eLpDWlbPiE71y/OwZshODnLxjbM+/iJComAxARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgTch0FEPEXiA8Pzz
z8e5554bZ5111ptUjfjGN74R3/rWt2Lw4MHx5z//eRX/f//3f88PEPbff//gawutyVt5iLBkyZL8
AGDp0qVxww03xMc+9rEWqWbOnFl9fHDXXXfFfvvt18KuhwjDhw8Pvs7wbpB3w0OEfgcOjEP+v6Pq
4pgz7Y246bBrsr3bxt2DkTvCVkTwd8zO+ftrwYOEQZ/YKfb++kHZct+XfhuTfvt8bH3Y++LA7x+x
wrsyLZ63OEbv8aO8qfcQoUWANyZgAiZgAiawDhJY8RCBV5KT0uCLCPRR02fNjGimh3pRGvRTS/QQ
gV5x/NTHjZ0ciPT4kgNBp0cEWZH+UD86NtbkRNirh5v61JCUOVQHG/6ySU9OYrGpRpkLnfrEWav/
Xeeo7b9HT07yKafuxx4bgh91dA5s6NizRlSjsmvjn0rSxrBV3MnDQQWKAyJ6FKALoJNN/ly8vJhA
cjFB0SXZ8+Mor+JUXzadQ37E48NQfXLhhw96RHv5KB4bPmUMObmDcpc24vHnW1zY5Yuu1p+HBegZ
qo8PQn0JdvbkZuYhwoD0EGE0/+fBYgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImUJ9ARzxEoE9no402isWLF+fHA3zF4M3k5JNPjuuvvz4OOOCA+O1vf7uK
+ze/+c244IILYuutt85fIljFISneykOEKVOmxPbbb5/D77777th3331bpFq2bFn07NkzmK+66qrq
1xHkpIcIp59+enz3u9+Veq3O74aHCENG7hJ7fnX/uhymPfxS3HXSrdneeb3O0SmNejLww9vFvhcc
ms13jPyfmDV+eovHCWXcDbtXvrLghwglFa9NwARMwATeSwRWPETgP6ZeTIOHCPSB00NNTzb90mqQ
RsdaPdisy95r9upLJ441MwPBl9zSoytz6KECPgj1VZNYrbGxVz3WOqdy48uaWfXJpxroFMfMoC4+
zOzpEy/j07aai9zyx1dnEzP25Tpt815nxk6czsG+3UKiNRWB02V0ePKWB9Uau3x1eM1qtMfOhUtf
dIh+FNUtY7DR2C84qokvQh3l1F5nYcaGj+LILSlzoGOPr+prT33dh3ycBZvq4F/mUhyz6rMmDl/i
EHRas++RRt/m5uZxy3k2azEBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABE6hLoCMeIpB80003jblz58bll18en/3sZ+vWk+Hzn/98bvzfa6+94t5775W6On/9
61+Pb3/723W/mIDjW3mIkP5C0/yYAf877rgjDj74YJZVWbRoUfTq1SvvW/tigh4i8JUHvvbwbpB3
w0OEXT63R+x6+p51ccz8c3P8+p8rX5D4yO0jo9c2G9f1LQ13nnhLND86NQZ9fMfY+7yWvxXdZ9ft
ekUsW7Is/BChpOa1CZiACZjAe4lA586do2vXriPSnSalwRcH6B2nfxphjdAkzZo+agQ7unKm/1r+
NOnjKx/1hOPPYK987BH29GwzEyeftMwif+XCpxyqr7jyrOiQMjd11WOOjb3qs1cdZt0D/3KPHzZE
ubBTh73Ohw7RXZWDM0qXHdrzh5K3J1Yx+rHIxYGYtdYh2etSXBAp47is4mrX2Tn9gV6Qlas2RvDQ
46/6zAxE9ZVD55AdH+K113nQU587lrG1tbARi5/82aNHxEg5yrniUYlXfXTUQPTIgZj8RYT0EGG0
HyJkNv7DBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABOoS
6KiHCB/84Adj/Pjx8YUvfCEuuuiiuvVk+M53vhNf+9rXYsCAAfHMM89IXZ1POumk4GHAYYcdFrfd
dltVXy6w47flllvGiy++WJqqa3qINt5441iwYEGrX2uYPHlyfuxAwB/+8If4wAc+UI1loYcIZ599
dpxzzjktbKvbzJ49O3gEIRk8eHDwNxx3hLwbHiK8/7Q94v2n1X+IsOAf82Pcflfl6374Zx+JLffo
+5au/sA5v4u/3fp09DtgYBxyxVEtYsqc9R4izJs3rwX3vn37RpcutJdZTMAETMAETGDdILDiiwgj
02knprFgxal5SMB/SKjfmzW91+jV081cjrTNPswI/gz50JNNPuVKy6qNNbnVt42f/LGxVn325CAv
opk1PthUQ7WZ6SdXDfklVTVeNdFhV03lI4d4lDb0+CBas2dNHgl956ohP2ysGe0WFW93giKQiyGt
XUCXVtN9xbNySXTEcGEuIx9drNyrBr7oEYGRjZlYfHQ/fPHjh1Re1URXnrnWR3mTW/5hFUdO1qqv
vfzR64zMnIfcCHHKw3/9sUZKH/bolYM9a/Lj1zON/rNmzRrNp94sJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC9Ql01EMEvoIwevTo/GWEp59+Onr06FG/
aLL84he/iFGjRmWfRx99NIYOHVr15ysF2267bbz88stx6qmnxiWXXFK1lQu+pDB8+PCseu6556Jf
v36lubredddd82OHo48+Om688caqngVfcDjzzDPzIwEeJfTu3buFvb0PEc4777y4+OKLq7mmTJmy
Su6qsY2LdeEhAle68aCfxfxZc2O7j+4Q+5x/yFu65ZM/eSwev+zh6NLUJY67/8RYr/vKRwTP3zwh
HvzaPTlPvYcI+kqGiv3+978PHslYTMAETMAETGBdIbDiiwg8RJiSxvw06I9WUzT93vRRlw386Moe
cdmJU381a8VqnVRZlAs7dYghR+mPT6lTnzi5ENVXLHbVx6ah87BnzaxcaVm9F7UQZvLgIx1xnIf+
ceIl+KBTDHHykR821gzyIDqn1lm5Jn/ooGuSg8ORh0tJBKy0cREuqcsKlC5KLGvtmRHFCRrx8lMu
9qqPvxr+VR8/BnrFMBOns6qe9syI8imOverrbOyVD52+XEA92ZRHs/z1w6te7ZxSVM+te5Fz/TT6
Tp8+feyyZaSymIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJ1CPQUQ8ReAiw++67B395KI8Drrrqqthwww1zWb5K8OMf/zjbPv/5z2cdXygYMmRIpD6f2G+/
/eLmm2+uPl7gYQAPBPgbgXmksPPOO7d6/Obm5hg0aFAsWbIkPvOZz8T555/farP/FVdcEV/60pei
oaEhxowZEzxIQJ599tk4/PDD8xmOOeaYGDdu3Cp1/BChJZI7T7wlmh+dmr6GsPovIhD13E1PxUPn
3RudGjrFXl87KAZ9bMeVyVK32LRHpsSzN/419vr6QdFto+7ZNm/m3Ljpw9fGssVLY8iIobHnWQdk
/dzpc+I3n/lFzJn6et77IcJKlF6ZgAmYgAm8twjw301NTU3Hp1tNSWNOGvRUq788LXMTPnt6qzWX
DwXoyS6bqLVGL3/lw4YekY5+bPIpj/rc1cuNjTjVx676aZnjlFN7cipfGUdNiXKqPnp05CeWOGzE
MHQuZuVRnaTKoj0zojjN5Eewl/WVLxvb+oeKtTWu1l/ApW8Nqh4B6CLEyE/wBEF72aVnrzMLsnxV
W77yk10/DntEe/yAuPJJaQWwmv6pqfuVa3QM5SePRlpmKe3kI153UH18qN+YhgQf1UeHj4Q4hKfU
A2bOnDma/4NhMQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETqE+gox4iUIEvAPAlAKRXr16xyy675OZ/vpDAg4Mvf/nL+bFAdkh//OxnP4vTTz89bzfbbLP8
4IAvBzz//PNZd/zxx2cf+bc287CBRw9IY2Nj9OzZM6/Hjx8fm2yySV7z6GG33XaLF198MfhbhocN
GxbdunWLxx9/PObNm0ezX9x///2x0047Zf/yDz9EKGlEtOUhwvJly+Ouk2+L5kdeykl69u0VvQZu
GEsXLo1XX5gd81+Zl/WfuOeEWH/zlV/Q+N+L/xgTrn8i23oN3CiaNls/XpkwMxbPWxzLl9JCFlHv
IcLVV18dp512WvbhD38RoYrCCxMwARMwgXWIQPfu3fVFBP5lSU82g38J0ltNX7b6rNmrB5sZP3Tq
sS73ypPMLXKhJydC87V6uSv/0l1ZG7vq48OagRCPPwOd+rpVkz1r5ZRvUmWdes0VKz/sxElYczeG
cmPTnjV61SeP9lrrrPhKVF/5mdstJFtT0YXKw+qQXER61lyWGdEFKruVevkotsyFb209/WD4KSdr
/JQjLbNNjwHYY8MHXwm60gc7opl1Wa/cqx4zQ+dWfuUmBp3qK7d0tQ8Q0Jc+2LknX0Tol147j+VF
kMUETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKA+gY58
iECVu+++O84444zc9F9W5asGPFQ46KCDSnXcdttt+THCK6+8UtV37do1f8HgrLPOyg8HqoZWFvxl
pd/61rfipptuihdeeCGWLav0jfGgoXfv3tWIV199NU499dS4/fbbo+wr4lzXXHNN7LDDDlXfcsHX
He69994499xzg/O8VeHrDBdeeGHVferUqdWHEVVlOxe3HPzBHHnoIv6S5DWX3zVWHgF85N5H3jTZ
XSfdGtMefil2PX3P2OVze7ypP48RJlz3RIz/8f/GojcWtfDngUH/g7eJ3b+4T6zXvfj7clPb1+M/
eDj+evXjsWxJ5ffEvte5B8Zj338w5r88Lw6+bHj0P2SbFvnY8M8eX99AeNwyYcKEWH99WsosJmAC
JmACJrBuEODRZPpvoRHptJPSmL/i1DRFV/6lWJlp2KePGh22cp+2eY9ePopFhygfdv3N7/jQny1f
crKXKBY7Q7mxq37pwxofZunTMov25CcWkb/qM6s+M3bNxKi3Pi3zeeTLHl+GfMpY5cCP8+me+JR3
wt4uKQ/SrgQpSIcUQPY6rC5WQsAuYKwV39pc65fcs8iXDWv8BJDagoOexn3VT8uqPz7EMpdAyz16
BB0DIUb1tVYd7PhxFmoiqq8HBmV+4nVuZvKojvzwYc1QPdZ8o6v/jBkzxixdqlJJYzEBEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE1iFQEc/RFCB2bNnxzPP
PBM8FOjfv39svfXWMq0y8zBg8uTJ+fHC5ptvHttvv32st57ailZxXyPF3Llz46mnnopFixbF4MGD
Y9NNN12jfGsj+I5jPxyLXn8t9lk8L7ovp7Wq/TK/U+d4sEtTNDStH0f/6p72J3oLkXOnz4nXJ78a
nRs6xfpb9oweW21Q6fyqE8uXE2Y/Mys6Jf+Nh/ROcbSHrV7e//73x7PPPpudvv3tbwdfzLCYgAmY
gAmYwLpEYMVDBL6IMDkNHiLQJ704DfV9s+ZfivqPADVM40ePt4bsmvFTDzi+0qNjXcYpP34MHivg
Q1839dXfnZbVPPghqlHmx6Zz4lPPFxtx1CcPfopFz38gcpbSjl75mBUnfbnXWv7JPQt6SbmWrk1z
bfI2Ba9w5oLKw0V0cObyx+GHAKyApGUWXQI9Qg7FAZG9YpVT9ZIp+2qPr/zxVRyzcqq+YpIpCz7E
qAYzz085s86hnIplJh8zAzv15a94cjN0trSsMlMuYohXDWbiy3xpm3MT05RG//QptzF63YzRYgIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImsCqBt+shwqqV
rOkoAn8bd3385b+viE2WLY1tly6MDdr5GOH19AjhhYau8Urnhuj78RHxgdP+vaOOuFbyNDc3xzbb
bJNrb7XVVvnBSbdu3dbKWVzUBEzABEzABNpLgAeaTU1No1L8pDTeSIOebDXfM6s/W2t6qumvRspm
f3Ts8WemZ1t52DPUP46vcuCvWPmU8dh1JvkqlrMg0iteveLaMxODH6J49oolRv618fjIplhmrXUv
4lgz05PO/eFALKL6lV1lr9zStXmuTdrmBCmAHFxGM5eQ6JLsZUfHxZjLS5eN+vIVTHwZgpWW1XyC
Jht5EOXQOivTHwLMXvmlAzbwiUVUs7Kr1NdaPqqvusyylbPW5NT3tVSXWY8WqE9OBF/lZV/m5jta
/dIXEcb6iwigsZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZhAfQJ+iFCfzbvVsjx9zeHXn/yn/FWEjjgjX0M4dMzN0bRBr45It9Zy/PznP49Pf/rTuf4PfvCD
OOmkk9baWVzYBEzABEzABNpLoKGhIRobG0ek+MlpLEiDvml6qhmsNdjT400ftexpmdf0Z2NjZshX
a3Igys0aH4RZfupDV03N8lOPueqXcdiIR0ec9viyV685a4RZ8YpRfdmZEXwZ5NJfel/mhwl79ZjL
V3nZKzdr6TUnVfuFJGsqZQ7WDC4kfQlPALgIg0sjwEGI0SXZoyeeoXwlLIFM5iz44KtXHCjZk5Nc
NPurdlpWoWNTfvSsGToL5yQPgq9+LJ0PvWrjp3OxVn1y6QFCWmZR3jIPBmJUn7X8pGPPQ4Q+6YsI
Y/1FhETCYgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAKr
IeCHCKuB8y428RjhhZtvjGfH3dDuBwk8QNjyyGNix1GfXucfIfBTLUpM5s6dm3+1Xr16RefOtJhZ
TMAETMAETGDdItCpU6dIX/ThIcJLacxPY/GKG6h/m35s9Y3Ta61BH7XWzIhmYolB6LtmYEPHGqHP
XII/go368mEmhljVw1d7rRWPXrGqxV46faEhqVqchXj5UV//UmfWuWv77+WDXaI87KXHT/U5k/Y6
H746P+s2i5K3ObAI4HIcmEE+DsRBmcvD6fDSsy9jiCUXoFkrl2bi+CEFQjVaq48fQgw12JNHMcqF
TTpm5ZdvUrUQ7IrBH1F9cioXOvbkUX1siknL6j+U5NR5VL/0JYdEebH3SKPftGnTxsjo2QRMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMoHUCfojQOhdrTcAE
TMAETMAETGBtEFi+fHk0NTUdn2q/lMacNOiPpk+c3uvaZnl6rdGrN5u9Bv3XesSQltlP/szEkA9R
PLVUBz1r6YhRffVxY1cu1gh7RPXxVX70isFe2x+PDrvqsKY+ORnap2XOKb0YUQcdc2v55Z/M1Xtp
jU31qdNuoXhHCQdCAKIfAp0uoovjQ0O9XnYIAnpEYPBnrT0XZY2eGPZlfnIi5FXDvuzoiSWGWL5M
oHOmZYs6yk8sa4nOqZzkUh3lpAb1yY9dX2BIyyoT1o1pqD4x5b1UU/WxIdTApprd0nrgzJkzRy9Z
QkmLCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhAPQJ+
iFCPjPUmYAImYAImYAIm8M4TaGhoiMbGxlGp8pQ0XkuD3mmaoumXpg+bgaBT37a+GlA28NNjjeBT
9l0rh3qwiVH/NjN69YWTlzV6ZsWST/XpC1d91SKH6qtOUmUpc5CHfZlf9XFWfXx0JuXVWanPWciF
rbyrdLDTGh+dU0zRaZ2WayY6wJplqUTr0OXlBQAPGui5DIcHCP4a2mMjphzE6ZzEI/ihI441wp44
NeqjEzxsOpfqK0ftnrjy3MTJV/nKPWtEM/UR5aA2Q+fCD5tykJ97MONXK8TJt4zjiwh9ZsyYMW7p
UsItJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC9Qj4
IUI9MtabgAmYgAmYgAmYwDtPoFOnTtGtW7cRqfLkNBamQZ82TdFqjFbftPaa6bfGxp6ZPbHlUF93
UufmfWYJzfylEEcfdxmPndzq86ZGWR97uScWf4bypWUW2ciBEKc1e9WRH7Ps3IM9cxmn8zAzVJsZ
kZ418Yh02le0a/AnCddUAIxwKB1el8aGDpsOr5rA0I+jHxvfspFf+ZjxJY980zLn1L6sL181/ysP
vqqPv/ykR8drkVIUSy7FyE6c6ssPG77cjy8foGdQV/6slQub9KqvMyZTVXQXZqQpjQHNzc2j+TSJ
xQRMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMoD4BP0So
z8YWEzABEzABEzABE3inCdD/3NTUpIcIc1N9+qnLLwPQi102SbPmEQH93+WXCcqebNblwJcYcqMv
86Vt7veWHh981TNO/VpRfeUkH/HUQbTXrF51esPRMVirV1x3RE999uoZ17lq/eXHjOCn/nLVQIfg
w5oZG1Kbr6Jtx5+6RDtCqyHkEBSUysmhWesCrBkAAmrtZXRJZmzEKSYt8xobopxal/WxIcrHXrVY
qz4+CDrqKAczgzMqF3bW5Gxtjb/yaNY/COyVWzn0YydTrkNOROdgrfroVFN1yNMtjf7piwhj/UWE
RMJiAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAqsh4IcI
q4FjkwmYgAmYgAmYgAm8wwQ6d+4cXbt25SHClDTmp0GfNA8M1DtNLzY6RI3/6iVXbzZ6/PFVn3da
5rjSBx1S5lRu+TGrjnLmoBV6PSqQTj6aiafHW6K8nEtr6iPEoJNoj50cjNo49d8rFzG6s3yJU660
zGtsiPy1Lutnh7b+QcKOEEHTZciJjgOWh0ePTv7lvoSCXrmUB7B6YVJ7bsAi+Ggt2MqDXWDJWeYo
z6O1zik/8uiFiXSaqcUaH61VQ/Wx1/onVdbJl73Wqq/zkEdfayAPX0ToP2vWrLGLF/O/OYsJmIAJ
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
/YB2BT5JuKICYIRDeXgfGhs6bB7emsDwy/HLxrdt5DcfM77k0bcuu5zu2/r62vxvHnytj79+6tFx
W6QVY8lljHbirK8fNnx5Pt58gJ5BXf1Zmwubeut7xmrqic/CjEyqY9qsWbOm82qSSAiEQAiEQAiE
QAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEQAiEwPAEVvZFhIsvvriQ87rr
riubbLJJecYznlH+6q/+qvDXfVu57777yk9+8pNOteuuu5YZM2aUn/3sZ+Xmm28uz372s8tuu+1W
1ltvvTakt77++uvLeeedV3hLwV133VW22Wab8rSnPa085znPKautZhtRz33QYtGiReWCCy4ol19+
eSGPZ9x9993L2LG2PA2EzJ8/v1x00UWD4tnsvPPOyz0PenzrH1BlWU466aRy+umnd8//b//2b53O
j+c///llrbXW6rYwgMXTn/70MmXKFF0Gzeeee27h3Ntuu23ZcsstB9nYkMNeqS222KLjsZzTCihe
vtsVZa9XrFsOevNGZfKa48puz7y0XH/t4od1EQHG1157ba863+tDfUc95yxCIARCIARC4HFIgP+m
T5o0yYsICyoCfkFp3wxAL3bbJM2aSwT8stW+maDtyWbdDnyJITf6Nl/ddv3e6vHBl1+y0FG/X6xv
TvLh6y+A7p3RY6c3HB2DNQPxGdFTn709456r318/ZgQ/fzG0BjoEH9bM2JD+fAPaUXz6EKMI7YWQ
QygozcmhWfsArBkAAmr/w/iQzNiIM6YuuzU2xJyu2/rYEPOxtxZr6+ODoKOOOZgZnNFc2FmTc6g1
/uZx9geBvbnN4ZddTV0dciKeg7X10VnTOuRZo44t6i/0p+SNCJVEJARCIARCIARCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIAQehMDKuoiwePHi8v73v7988YtfXK4aFw1O
PPHEsummm/Zst956a6FpHnnPe95TPvOZz/Sa6dHRlH/GGWeUHXbYgW1P/u7v/q58//vf7+3bBQ3+
06dPH1SntV944YXlkEMOKVdeeWWr7tZbbbVV+f3vfz+oSf5Xv/pV2X333Zfz5QLEBhtssJz+5S9/
eTn77LOX0/crfv7zn3eXJtBzqYELDPvtt1854YQT+l27yxJcsqAp8Rvf+EbZe++9B/lwicFLDRh4
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
uHHlRS96UVltNdt0H8mqyT0SAsNcROCv//svSvqmGYp938z0abc2e8zxbePIRU57t1kj+GAzjpwM
+tPtB8fHmnXZE3TWsE+cPOSzL9w4axBMXs+CXRszewZ58CMPe+qwtk6b32eo5t7z9MdZAz157b+3
PjlGLR5q1AlqoDk4kGtmhgB4CIRZIICyob/9wvBh+EWSxxjyIcT5xVtTmNYmB/7WYU0dczGbxy/M
L49Y4+qyy2M+8huHzvrmZ6+edZuHOvhhtz4zenTWZ28cOYypy86P+hPqyEUEiERCIARCIARCIARC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARC4CEIPNYvIlx22WXlS1/6Urnn
nnvKWmutVY455pghn5jG7C9+8YvlwgsvLPfee28ZM2ZM2Wqrrcob3/jGssceewwZgxJfmtwZc+fO
7fxoIH7xi19cDj744OWarGkePOOMM8r06dPL7Nmzuwbw3Xbbrbzzne/smsL7C9HMfvTRRxfiPvCB
D5Rp06b1uzyu9r/73e/K97///e6Z99tvv+47eigAN910U/na177WudGU/b73ve+hQlaKfTRnXSmF
H0aSU045pVx//fWd5+6771641LGq5NRTTy3XXXdd97P/lre8ZbkmZ/5Z/OlPf1puu+223pHWWGON
stNOO3UXSfhn8+EKf6z4Jz/5SaGx+s477+zCiN944427fE9/+tOHTHXCCSeURYsWDWlTyaWWZz7z
mW5HPS9cuLCce+655aKLLipcHlD4Z51/92yyySaqHtbMhZuf//znZdasWd2/nwji30lbbrlleelL
XzrkBYdLL720nHfeeQ+an392+HfaypCV8R3/6U9/Kl//+tcf1nE222yz8spXvrLn+1j8fs8555xy
xRVX9J7hwRYvf/nLy+abb965jOa7vf3228uXv/zl7udxl112KYzInx+B+u+yfeupbqrj7mWno2ea
f4nQR05vNWv7seuy09NHfU8d9Ftjp+caH4YXGcijnhkhH3kR7Ig+A7uBT2zWZ219ZvTUpw712zrm
Z0bMjQ8Df+LJo+CjPzps5vT5sLcczMOMmMP66MlhDGsEvWfqFPVDm/sRze2DjCiwceZQHJSD+KCY
zc2MHeh+edqqqoshFh3DBzIfszXqsrPjR63W1vqrxx9f6wMPsRZrYZOvX6zL2cmpWJ+9PthbP/Ix
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
dtMZpKc9yUZ62BCLVvE1h64KIdDvFJ+eU6ZMuZmrSSwmYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAKVCbgQoTIbr5iACZiACZiACZjA0iZA/nObNm0GxrgT
40MhAjnbFAUov5oEaXKmGbOGMKcxa4x5yLvW7QiM6Svvm/xt2SuXGx3N4w9f6OR68qt46DPHmFZ7
kx622hN9xc/3hg8EH4rPWPHxhcg3LcI8+opNm6+p2EF22l++N+xlU4wfl5ouOkzTLetb6HDAEkjm
BIS+xhwi7wsOc7IVIOYQAdHBa2cXvQj5I5GfDw9ANScfxJUf9fWSBVbrUTV9ALQPtczLH632gz39
vJBBvtHjkQ7zip8XWcTptD/WEbW5nXylGxGmTp06bO5cjmsxARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwAROoRMCFCJXIeN4ETMAETMAETMAEvhwCrVq1ohBh
fHxmx2dOfMiTRsgnJy+bB2GsNXK9EVqt50UI6OU66MqX2twfffK5iU/ONvaKH7tJGLOG4DuPwRzx
le+tfRILXea1H+1XPuJSWlN8csdz3+hrnO9NPhVL+0Nf+4jdUnzFZQ4pjmtnm/hTwZtoVkedzSI6
JC2b00EETgemRUcHjt0ksgcktgJfu1rXPz54YUroR0f2rCk+63pRWtcLIr76sZugM6fbD/DBOi22
+f4Vn73SRxRXY+LqdoPcXjaKL31iKT7+FJ++7DWHTdv49I43IgzzjQggspiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhAZQIuRKjMxismYAImYAImYAImsLQJ
LFiwILRu3XpwjDs+PjPjQ+61EvrJqVYOuObiVCoWIOeaNYTcauVkM0dfOePKAceeOUTFBrWj2p+5
jXzR5vbkbuMDe+WXx24S2aCvPdOXvfaa22s/OJANLU9+PtblH5ucBWvMsV7Mv89jyj+6eT8O05i2
KskPUZWDaIQPbQwfgAacRDGY00vQC+XQ+QvNbXOQssMXsBgrcV/xmUcEUnG1Ln+M9RLQVV96+EDY
L+t6edoDfhQ/fxnqYyORDb7xx56Zy88gf9KNy4mn4rMuO3TEsXPsd3MhQqRgMQETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIHFEHAhwmIAedkETMAETMAETMAE
liKBhYUIh8eQE+PzRXzImeYhVxqhJeeaPGyEnHOEvGpuUCCvGn0EXekzr1x15XArz1xr6LKGHn18
5rHjMM0zp/joIuSKK778aB+0xNC+sVUcWq3FbmmevuLTRxRTOee5D3Tz/HvW2AdCfNaL8TXWGrrY
ad+MmyzaZJMNCwb40SHyls0xBhqiMf1cT5AEl0Oyjr5sVTAQpxIgWtmhK3/oA1O+aPHHnF527Kb1
XC+PSV9+pJvHYh3R/oiNPqI234/0FU/6jFnDNx9K5vFJX/Gli472RdsxPt3ef//9EfPmsWQxARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROoRMCFCJXIeN4E
TMAETMAETMAEvhwCrVq1GhQjT4iPbkQgtzovIiCvWonSrCG0PJon1zrPM2deuioeiFOlXHPNYYcQ
gz4tgj1jnjxOHCaR71wPn+R3Y6N59LQv+soN1zq6CGv0tQ/W0eVhTvOxW1ZPMRVf50A/7+MP0Rx2
OktaaOoPHaCpdrm+DklbaTMChI4Om8fWQQCgl6vDEkt9+WFONqwBhLa4HqfqiADrBbGIH+0FH6wh
0sVn3tdechvio4MU/dXO1s6jk++XNcayUXzGiolOsc/cKvHpUVNTM4yKIIsJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmEBlAi5EqMzGKyZgAiZgAiZgAibw
ZRDIChFmxPgkRJOTTZv3lbOtHPO4nPSYV044NwRgw5xsZYcOfSXg520+r7hRteSDfu6HMaJY+CL/
W7c10Jcf2TFG8lZxafP5pLjwh/wo11znkL5sWRcb+oj2RR996eatOKBTleCspYRkeSXx4zcHyQH4
ln8OSauXLhAcBBse/DCvh7HW6QsUfqTD+srxEeCin7iU/GIrPcVBF3uBl984lUTnoOVBF0EPYQ/M
tV3Y4k+69FlH0Ce+9BRfPhkj8ls7WsQDPdmwtmp8esQbEYb6RgRwWEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEygMgEXIlRm4xUTMAETMAETMAET+DIIxEKE
wTHuuPhQiCAhL1sP+dOz46M8bOVma1152srH1jx6yiuP3dRnjVxsWtZo5Td2kxT9o6/48kdMHuwl
xM/nGUsfHyqUUC44toqPniT3gz/G2Cr/nbHi0rJfRH61B+a1zpry76UnH9hWLQpetYNoyIEQNqTD
M+YgehlsmnXm6ANMutqD/MSlpEeLDS9YtrkO69hqTvGZlyg+PvSSFF8gZa+xbNRqHp/oMi9hLHud
jbWirc7AmvryS4swL2aM5UPzzKGreB1jv5dvRACLxQRMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwAQaJuBChIb5eNUETMAETMAETMAEliaBBQsWhNatWw+IMSfF
Z3p8yKNWvrfywkmgz/vKr0ZXQp9H+ebKU6fN9bQuO1p0cp/oMFZM1vO+dON0Eo21ByaxIedb8cn9
1jotNjwIOuXW0cMH51dfutpjXCrZ0kcP0X5pEcXSeh5fOrWaTfwpx000q6cOAG1am6TVRjWnMQ7o
M88jW+byfm5HDACiQ3I+YOkjefzamVo/vADp4As9jenLPzHRRaTHOqKxPhDMK7505Es+iMFeqT5R
vNhN8dFlTjb0iY9PhHj4kW/m6DOnfaLLzQq94o0Iw3wjQiRhMQETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMIEGCKgQYbPNNmtAy0smYAImYAImYAImYAJLg0Cb
Nm1Cr169ioUIfPu/cqjJm+aRKO+bljztfE055ujmdvjCp3K36SPosCY7fPKQn658cHQUM3ZLwpxi
KE8cP/hTXrjsFANj/GovrGuNljEPftDDD2Pi0Fec3L/OEJdL5ynaKQbz+FX+veLjo2rRpqp2EA3l
gw2pT8sjABwCoRUQQCmhP39h6PDoReJHNvhDsNOLV0zBVGx8oK849IkjX7Tyoxeml4et7GI3+ZE/
/MuOOcWXf8aap5/7IQ56rCs+LfPMKT5j2eFDNrGb9IjfLj4uRICIxQRMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAQWQ0CFCHvuuediNL1sAiZgAiZgAiZgAiaw
pAm0atUqtG/f/vAYZ1J8ZiyMR840udXkkSvfWvnYqDBPHvXs+JBvjS451+jwqJABP5qnRfCHPcI6
Ip3aUe1P1hSfvuLTKj5xlBcuH/JPi2geHzzoY48fCTrSZ441dJnX+VjnnNqH/NAi8qH4zONDNvQR
5rWnNBF/aE3jJrX5QZpkmCmzKTbKRnRQluWblnVeul6e1uJUssGWOR4dSP5oFSN20zp6xMrXcn3N
o4+u4gMPUSz6go2/oigue8enRPEZS4f1XA9/PIrP7Qh6eZqPUyUb/EiwQbQ3+dW+aTvFp0dNTc0w
riaxmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJVCbg
QoTKbLxiAiZgAiZgAiZgAkubQFaI8F6M/Xl8yPdGlBhN3jm51CT9a05tnEpzGiuXnZY8ayXnM9Ya
uqxJR2ua03xUSZIXHchW8bBRH2VsEekxJl9c82plp7VcT338oMcZOH8x/54Y2CtW7Jb2ojXZKi7z
iOwUX/O1q038ySZbQvCjDdHq5eGbDfKQTM9hcoDSY146sZv6zAEvB6HE/NwHdnl8AScekseXLm3R
N7rMyTc6+NCHSDZxqqST70f93K9eFrYUItAyh0gv58Ic8RHF5/zoaMw6T4f4rPf+++8PnTcPFYsJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmEAlAi5EqETG
8yZgAiZgAiZgAiaw9AksLEQYFCNPiM+s+FBwQI40OdPkkSuHXInSykPPx9LJbcjVxhetbFiXDjGw
o1U/t4nTpfjkcCse9tKnxTePcsjlH1/knys+6+ghtJpXfM2xZ3QR+ZItuswVfTNXzkbnkw0tojEx
5TMtVPMDB80VQWBj+ebwqw1yQL0E+uixxhxApCd7AaZlTsIYGyXvAwF/smesNeY0zxwvlLHiy5fs
41Lpw6C4rAk0tsznMdhbbs+YWNqzYjGnF0ofUXzG2qvOIzu1WtcYm/bx6R4LEUa4ECGSsJiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZhAAwRciNAAHC+ZgAmY
gAmYgAmYwJdAoEOHDgNj2PHx+SI+5FqTS43QkmtNcj552crhjt2kR0t+tWyUa618bVrlc6PLWLnb
0sGGOIzJ0ZaN5tEn/1zx5a9ojw9stEfZS19+FENnkx5jrcVu8oUtc5wfoc8cNipyoM+c/Ck+LXuU
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
z5+PK4sJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmEAl
AstbIcK8efNC8QtKSdhr27ZtpSOukPMzPv0kvHLzDaHm/rvDvBnTqzpj21W7hI0PHxw2OOSHodVX
jF9VwGxkAiZgAiZgAkuBwIIFC0LHjh0HxFAT4/N5fMipVn557KYkfMbkVqvNCwXIyc6TqNVnXvry
xxrziObIx8af/CjPXbncrGGn+KwrfuwmO/nUGJ/yl9sRUyKfis88c3lOOWvY8GhftPKjOHEqica0
iOzU4h9hPY8vf2mxqT8UrKl2RX0B13w5qCoC0EGwkZ7gCYLGWtc8Y+0Ze/rSjd0k0pWe1vVyGCMa
owdEigck6Cjpn5g6X95njkf+8aMndpPk6/jDXmdQfHSIn/8fAjqKH7ul+PSxQzrFp9fUqVOHzp3L
Z9piAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZQicDy
Vojwq1/9KlxyySV1jtOnT5/w4osv1plbkQcUIfxt4CFVFyAU2VCQsN+tf10uihFG7n19mPnBjLDb
H/cNPXbrXTyKxyZgAiZgAiawQhDo0KGDbkSYEQ9ETjYPedTkVpOXrTxrxsrBpkWPOdaRfCw/zOe+
mMcnQvK1crnRQVhXX/HRoc+DYI+O/CqvWzEZ536kG6eTDfY8+FP82E2CnYQ+Z+ORb9Y0ps+84hNH
Y/W1V3Qlii//tFULzporOlC+WW2Sg2iefg5MB1B81hHpyDb3xXoxHvr4Qk8+6aMnH7Gb1lQMwJg1
dNCVMJfrsI6opZ/Hy8eKR8ujfcu/fGPDnOLLt+aKBQjM5zqsc05uROhRU1MznIogiwmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYQGUCy1shwlVXXRVGjBiR
DjRlypQwbty4sNFGG4WXXnqp8iFXsJVn/99lYdLIYeFr8+eFDeZ9EVZdQNpU0+XTVq3D223ahQ9b
twlbHHNi2PDwHzXdyVK2GNHvmjDro5lh90v2C7323GApR3c4EzABEzABE1jyBLjpqV27dgNjpPHx
mbkwIknR+g8+LQn75FHTZy0fx2EaKycbHdkquVr+8KFvfkeH/Gzp4pOxRLbyp/isK36uQx8dWs3H
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
+IcJmIAJmMAKSIB/U8QblwbHo02Mzyfx4R8ZJEWTL03OtfKumaNPDrVuDcgT+JWrjU6edy0fysHG
RvnbtMwrLxy/9JmnlS3+FJ+8cMVXLHwovuLEqSS5D/wwzv0rPsqKj472JL/aK/HZC75Yy8+qOdip
j472KabMqR+7zRNtoHleaq216fzwAoAGL5/DsHmAoK9HY9awyR/stE/sEfSYw44+whg7JeozJ3is
aV+KLx/FMXb5vrGTrvzlY/qIWuIj8kFsHu0LPdbkA/+cgxa9omAn3dyOGxG6xf9RGTFvHuYWEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBSgRaqhDhsMMO
C/fdd1/Ycsstw9NPPx1atSqX8rNoFzfccEM47rjjwkorrRTGjh2bbipYtBrCN7/5zfDaa6+FwYMH
h6uvvjpfKvUbW4iw0UYbhUmTJqV4F198ccmeDjc1DBo0KM29/vrroVevXnXWVYjADQrsZ6211qqz
XmlwxRVXhD/96U+l5dGjR4fVVluUiF9aqKKzLNyIsFK88eDQh44IHb7WsfwJYkbXzdv9KcydNTds
/8t+4RuD+9bRm/fFvHDrHteFL/49K+x45q5hkwFbpvUxF8Xihb88Fzqu3Sl8/5EjQ6vWiz5H742e
EB457p6kV6kQYUlyr3MAD0zABEzABExgCRHg31Dt27enInNCfL6ID3naJEUrMVp50xqr5T+arDGm
ZYxt/iivO06n5H1aCcn8uWBHHnduzzq+ledNjDw+6/kYW/R55C92k2gNHwh26jNWHOnRap1zMKbN
7bQfWh7FpkU0Tx97RHMa18424ycOmysARtiUNq9Ds8Yca9q8YgJDL0cvG908kV/+aNHFj3RjN/nU
OI8vXSX/yw+6io++9DTPHNUiucgWX7LROnaKLz3W0OV8lMAyz0Nc6dOXL9Y0r/jaY1wqic5Ci/Av
2141NTVDuZrEYgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImUJlASxUiUIDw1ltvhf/6r/8K//mf/1k54MKV3/72t+F3v/td2GSTTcLzzz9fT//kk09OBQj9
+vUL3LZQThpTiDB37txUAMCXmt58883h0EMPreNq6tSppeKDhx9+OOyyyy511lWIsP/++6fbGeos
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
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBxRBoqUIEwnADADcBIF26dAl9
+/5/9s4EXO/p3NuPhAw7CYkkgkxERUxBODSUmkviQydqaj9qKq1qtZxjaB0tSrWm06pSGmQw1tCe
tpSD1nw+NYaIyMhOQkIicyT51r12fm/WfrN3dO9sVfye61rvWusZ1/9+c11757qetf/b5OZ/3pDA
hYPvf//7+bJAdkgf1113XZx88sl5u9566+ULB7w5YOzYsVl32GGHZR/5NzRzsYFLD0ibNm2iUyfa
hyKeffbZ6Nq1a15z6WH77beP1157Lfgrw4MGDYp27drF008/HfPmzYuampp46KGHYquttsr+5Ycv
IpQ0IppyEWHZ0mVx7/F3Re3jk3OSTr3WiXU27hxLFi6Jd8bNjPkz5mX9l+8/Ojr0WPEGjScv+muM
vvGZbFtn4y5Rs16HmDF6eiyetziWLaFNLKKxiwjXX399nHTSSdmHD78RoYLCCxMwARMwgY8QgXQR
4SvpuJPSWJgGPdOMuh+CdbN6xZM695wz01fNGxToq8YfIYahHm31qqsnGz1CDDZ8sWlNzrJ22mYf
dPgh+CL0d6u+8ugczNTQuYlVHWbZ0rKiZ636rBHV1POUOfAt+++xcQ6E+tir62svG77E6dzsmyw6
ZJMDqwLIo4coZw7HHmiI9qxLP0ESXB4SO/6K5cvTGjuiOHyVDx9gKhcz/uj0Zadltpd+ZU3WyiPf
spbq63zUxh/RXJ5H/qonf/bYyM0/SvTkZK368sVH52KuSaPntGnTRi1ZgsliAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAibQGIGWvIhAjfvuuy9OPfXU3PRf
1uStBlxU2GOPPUp13HXXXfkywowZMyr6tm3b5jcYnHnmmfniQMXQwIK3IVxwwQVx2223xbhx42Lp
UtqMUudeutDQvXv3SsQ777wTJ554Ytx9993BGxoknOu3v/1tbLHFFlLVm4cOHRoPPPBAnHPOOcF5
/lHh7QwXXnhhxX3KlCmVixEVZTMXv9vz0zly70Vzmpmhfthf2tRdAvj8A4/XNzSwu/e4O+ONxybH
difvFNt8Y8cGPOqruIww+oZn4tmrn4xF79KbuEK4YNBnz36xw2m7xJrt11phSF/P01c8Fi9c/3Qs
fa/u+8Q++Jzd439//kjMf2te7Hn50OizV78VMctX/Nvj7RsIl1tGjx4dHTp0WG71ZAImYAImYAIf
DQLpIsIR6aQT09AbEfjlhZ5x+qcZ/IBUo7R+sWFmSI9f2WeOXr66PJBUlV5z6YhDqKFa7Ilnzyjr
pG0W5S79yEl/NzHS46dzsVZvuOz4IthY6xzY8WWgkz4tG/RTTdXHX1KuyYdIR5yeJRua+qEHaGpc
6a+HZG7sMAKEjx62rK0HAYC+XD0stbRWHnSKwQYQ5mp7UtUTAdYXhJE8Ogs5sCHyJWe51lnKGOrj
g1Tnq9PW6fEpz4uNvWJUn71q4lO9Rsdvjb3Ta9dGlP9hwGAxARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwAROoT6ClLyIo+8yZM+Pll18OLgr06dMnNtpoI5lW
munzmThxYr680KNHj9hss81izTX5m6UtL3Pnzo0XX3wxFi1aFAMGDIhu3bq1fJEPOOMfDv5cLJo9
K3ZZPC/aL1PPXPOKzl+jVTyyVk20rukQB/7+/uYl+Qej5k6dE7MnvhOtWq8RHTboFB03XHtFh1oD
OXhzwsyX34w1kv+6m3dPcWpRa8B5uWrbbbeNMWPG5N3FF18cvDHDYgImYAImYAIfJQK8vSldytRF
BF4fRM82P/CZyzV91Yh6zFnjh1494bwhgBh0ilUcPqz1y0Q5l3rVTa6VHKzLPOwR1SIXP7ipj7BW
HsWxR8pZdZlLfXZc/qE85MRPzyF/xWIXG9aIzsUaf/mWszjg0ywhWUsJzfI8IELeEiQPwG/MPCSz
vnSB4EGIYZAHvQZ72VkLFHnkg52rogJcnSeZcl5i5ac6+BIv8MqbVFn0HMwMfBH8EM6Ars3ymXzy
ZY0dwZ/68lN95WSPKG/dbgUP/BSDLf12Gr3TGxGG+40I4LCYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYQOMEPqiLCI1XtGV1Cbw66sZ4/te/iK5Ll8QmSxbG
2s28jDA7XUIY17ptzGjVOnp96fD4t5NOWd2jfajx6Y/XRr9+/fIZNtxww3zhpF27dh/qmVzcBEzA
BEzABJpKoHXr1tGmTZsjU9z4NLiIIKEvW4P+aV41pD5s9WbLrj5t9WNLj5/6ytMyr7HRi82MjVl5
0zJLdX78VV/5qMkgXkL9Us9e/uTQRQn1ghOr+vhJyjzkY0+s+t/Zqy4z50WUV2dALzs29d/LTzmI
bbaoeLMTpEAeCOFAenj2PIi+DA6NHR1rgMlXZ1CeZMp+zMTwBSu29MFOrHSqj16i+uTQl6T6Aql4
7RWjWXpy4otewl7xejZs1bF6BmxaKy8zgl7M2CuH9OjwVb2atO7rNyKAxWICJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACqybgiwir5vOvaF2W3ubw34f8n/xW
hJY4H29D2HvEHVGz9jotke5Dy3HLLbfE1772tVz/iiuuiOOOO+5DO4sLm4AJmIAJmMDqEGjfvv1h
KX5KGnPToI9a/d7qC6eBvlyrvxpfCWuG+s3Vp85c+smuOGZ8ypz4sFdN7OVavkmdRXudASUx9Hyr
Pr3fsjMTw0DwaciOHzl4fq3lqzMmUyWWNX6IzsuMqJbsZX351Hk28VOJmxi2kjsAdGgdklkHlU57
ErBGz1AsunJdxlEDgPjQnA9Y1khZv05Tl4cvQD7kwk971spPTXwR+WFHtNc/CPSqLx/lUg5qcFZu
n6heWub6+KJTDGvqkxOhHnmUGx1rdDonvrxZoW96I8IIvxEhkbCYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYwCoI+CLCKuD8C5u4jDDujptjzKibmn0hgQsI
Gww5KLY88msf+UsIfFWLEpO5c+nXjFhnnXWiVauy1Syr/WECJmACJmACHwkCDVxE4K//6wcbfdMM
ifq+menTLm3qMce3jCMXOdW7zRrBB5viyMmgP1394PioZlpWBJ1qqE+cPORTX7jiVINg8uos2GVj
Zs8gD37kYU8d1qpT5tczJHPlearjVAM9edV/r/rkaLboUM1OkAKVgwNpzcwQAB4CYRYQQKmhv/zC
8GHoiySPYsiHEKcvXjUFU7XJgb/qsKaOcjErj74wfXnEKi4tcx7lI7/i0Km+8rOXnnWZhzr4YVd9
ZvToVJ+94sihmLTMftRvm4YvIkDEYgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYALvQ8AXEd4HkM0mYAImYAImYAIm8E8ksMYaa0S7du2+kkpOSWPe8tL0TNNb
TR+5+q3Vj40LevqoF6VBvzW+9Fzjw9BFBvJIz4yQj3gEOyKful3dJzbVZ636zKpPHfWFK4fyMyPS
k4OBP/HkkeAjf3TY8EWv58POc+ocysOMKIfqoyeHYlgj6HWmrEgfsmnfpLl8kCYFFs4cioNyED0o
ZuVmxs6Xri9PtqTKMcSiY+iBlI9ZNdIy2/GjVmkr/aXHH1/VBx6iWqwFm3zVorqcnZwS1WcvH+yl
H/kYqs/bEfTlSZ9UlRjySIhBdDbl1bmZO6bRu7a2dsSyZeXRCLOYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmUBHwRoaThtQmYgAmYgAmYgAl8uASKiwiv
p5PMSYN+b0SN0fSd00tN0790mpMq67RXLzszfdZqzmcvG77Y5CObdNInlyzlpQPFqh4xWuNMLCI/
9vSLS69ZcbKVflqTBz+egeev7r+nBvGqlZaVs8imWNVFjyhO9aWvszbxk0O2hJBHB2LWl0duDsig
mZ6HKQHKD7180jKv0QGvBKHG/DIHcWV9AaceUtaXL3N1bnzRKTc+5NA/IsUkVcWnPI/WZV59WcRy
EYEZHSK/kgs66iOqz/Pjoz12Rvs0Npo2bdrwJUtwsZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACTRGwBcRGiNjvQmYgAmYgAmYgAn88wksv4hwRKo8MY0F
aXDhgB5peqbpI1cPuRql1Yde7uVTxtCrTS5mxWCXDzWIY9a6jEnqSn16uFWPePkzk5uhHnLlJxf9
56qPHT+EWXrVl44z44sol2LxRVedG11DMXo+xTAj2lNTObOhOR8kWF0RBA5WHo68OiAPqC+BNX7Y
0AFEfooXYGZ0EvbEqHkfCORTPHvZ0EmPji+Uveorl+KTqfKPQXWxCTSx6MsanK2MZ08tnVm10OkL
ZY2oPnudVc+jOM2ya09MuzR6pYsIo3wRIZGwmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmMAqCPgiwirg2GQCJmACJmACJmACHwKB9u3bH57KTkhjYRr0WtNL
jTDTa01zPn3Z6uFOy+zHTH+1YtRrrX5tZvVz48tevdvyIYY67OnRVoz0+NN/rvrKVx1PDmJ0RsXL
X3lUQ88mP/aypWXORSw6nh9hjY4YXXJgjU75VJ+ZM0q0Jwe+yqP68mvyTILVlfJQrDk4By6FA6Nj
lrCWP+dQjOIFRTZ9acqBv2z4MmjQL+PStiINPavOjo01uRWv85Gg9GOPUF+DGPx56wFr/BE9U7mm
ls6imuw5u+pLz6yz6VyK7ZhsfWtra4cvW0aYxQRMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMoDECvojQGBnrTcAETMAETMAETOCfT2D5GxG+kiq/kca7adAj
rZ5s9VQn1Uo6+qtp0FdPNb76g/Vlvzl29tiVTzFJlfNiJ18Zh63015nQq09c9cin+vSNY1cN1WdW
DtYa6KhLD7nqp2VFyIto1po68meNnb3qS1f6KYdql2dKoc0TkqyuKIcOpCZ64JSCHVB88TyY4gSC
PQ9JPMJeUNALBnYBwl76U1MN/cQwVIeZiwKqTw6EGGzsFZ+Wlb3iqUM98qs+/qovHXZEeRWPnfr8
w9MzpGXljOhUvzwPa4bs5CBX+zR6+o0IiYLFBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABN6HgC8ivA+g5eYJEybErrvumnfPP/98dO7c+R8L/Bf0Wpq6scaM
nh9PPTYnFi5YGtts3yG2GVQTbdvRfmUxARMwARMwARP4MAksv4hwRDrDhDR4IwJ91PRZMyOa6aFe
lIZ6srHpIgK94vipjxsbORDp8SUHgk6XCLIifagfHRtrciLs1cNN/fIXiDKH6hCDv2zSk5NYbKpR
5kKnPnHW6n/XOar779GTk3zKqedjjw3Bjzo6BzZ07FkjqlG3a+KnkjQxbCV38nBQgeKAiC4F6AHQ
ySZ/Hrx8MIHkwQRFD8meL0d5Faf6sukc8iMeH4bqkws/fNAj2stH8djwKWPIyTMod2kjHv82y+3y
RVftz8UC9AzVxwehvgQ7e3IzcxGhb7qIMHzJEsIsJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACjRHwRYTGyNTXjx07NgYOHJiVU6ZMia5du9Z3+Ijs5s1d
Gscc8mo89jB/YHmFbNi7TYz8ff/YqF/bFUqvTMAETMAETMAE/ukEll9EODIVfi0NLiLQB04PNT3Z
9EurQRoda/Vgsy57r9mrL5041swMBF9yS4+uzKGLCvgg1FdNYrXGxl71WOucyo0va2bVJ59qoFMc
M4O6+DCzV/+64pOqkovc8sdXZxMz9uU6bfNeZ8ZOnM7BvtlCotUVgdPD6PDkLQ+qNXb56vCa1WiP
nQcufdEhgqq6ZQw2GvsFRzXxRaijnNrrLMzY8FEcuSVlDnTs8VV97amv5yEfZ8GmOviXuRTHrPqs
icOXOASd1uw7ptGrtrZ21LJlKofaYgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImUE3AFxGqiTS85/LBQQcdlI0PPPBArLPOOg07/gtraac6dP8x8cQjc2Kt
tdaIvYd0jnU6t44/3f1OvPP2e7He+mvFH/66eZ7/hR/DRzMBEzABEzCBjzWBVq1aRdu2bQ9PDzkh
Dd44QO84/dMIa4QmaTXRs8eOrpzpv5Y/TfrqzcZHPeGstVc+9gh7eraZyU2M8qVlXquPmxh8yqH6
isMXUT3WZW706jHHxl712evMzHpW/Ms9ftgQ5VJ99jofOoQaiHJwRumyoTkfSt6cWMXoyyIXB2LW
Wodkr4fSF1PG8bCKq14nUxb0gqxc1THkxoYef9VnZiCqrxw6h+z4EK+9zoOe+jxjGVtdCxux+Mmf
PXpEjJSjnOs86uJVHx01EF1yICa/ESFdRBjuiwiZjT9MwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMoFECvojQKJqPnYELCIfsNyY/149+1ie+enz3vH7hmXkx
dNeX8vp7P9gwvvX9DT52z+4HMgETMAETMIGPCoHlb0Q4Ip13fBoLlp9bbwVQvzc91PReo1dPN3M5
0jb7MCP4M+RDTzb5lCstKzbWurzAGj/5s2et+uzVN86a/BJ8sKmGajPTT64a8kuqSrxqosOumspH
DvEobejxQbRmz5o8EvrOVUN+2Fgzmi0q3uwERSAPhjT0AHpoNd3XedY9JDpieGAeRj56sHKvGvii
RwRGNmZi8dHz4YsfX6Tyqia68szVPsqb3PIXqzhyslZ97eWPXmdk5jzkRohTHi4XsEZKH/bolYM9
a/Lj1ymNPm+++ebwxYt5W4fFBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEygMQItcRGBNwTQq7P55pvHHXfcEQsWLMhvDxgwYEDcfffd8cQTT0T//v3jiCOO
SH+Jn7agFTJ+/Ph4+OGHgzcOzJ49O/ttueWWscMOO8Saa6qtaIU/q1mzZsXjjz8e/MXgffbZJ957
771cg3MgxO63335BI18p48aNi4ceeijGjh0b22yzTey+++45xyuvvBKdOnXKutJ/zpw58cwzz5Sq
vB48eHC0bl22L9W58IdT77vvvmDeZZddYuHChfHXv/41nnrqqVh//fXzWWHSmMCCM0o4X2MM5NOU
+fsnTYhbbpwRfTZuG399bqtK6O9GzYxTjxuf932T7eHC9t57y+JvD8zOtk/v2ikmT1wUjz40O2pf
XxwDB9XEzp/tFJ271P+ennx0TsybsyS/WWGLgTWVOlpMSTleHTM/bz+zx9qxZno7Q7Xcf//9mSP6
Pn365H8X1T7em4AJmIAJmMDHkcDyNyJwEWFSGvzApD9aTdH0e/ODs2zgR8fAD5vs7NVfzVqxWidV
FuXCTh1iyFH641Pq1CdOLkT1FYtd9bFp6DzsWTMrV1pWnotaCDN58JGOOM7DL2PES/BBpxji5CM/
bKwZ5EF0Tq2zcnU+dNDVycHhyMNDSQSstPEgPKQeVqD0oMSy1p4ZUZygES8/5WKv+vjrNz7Vx4+B
XjHMxOmsqqc9M6J8imOv+jobe+VDpzcXUE825dEsf33xqlc9pxSVc+u5yNkhjV5Tp04duXQpqSwm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAKNEWiJiwjd
unWLuXPnRufOneOdd97JpVgPHTo0hg8fXil99NFHxy9/+cvK/gtf+EL88Y9/rOzLxc4775xjaeCv
lkceeST23nvvrOYSwa677hrTpk2r53bWWWfF2WefXdGNGDEivvGNb8SiRYsqui5dusShhx4av/rV
r2KrrbbKFwYqxrR47LHHYs899yxVec2lia5du66k5wIGORFynnHGGfnShBzbtWsXv/3tb/MlDenK
+dxzz42LLrqoopo0aVJ071731oKKcjUW/7bpczF96uI48uvd4/zL+uRM77z9Xuw56MWY8Rb9fHXy
0LNbxUb92ubNjDffi0H9ns3rE09dP66+fGq6ILDcMU0b9GwT19/6qdh86/YV5eU/qY2fn/9GtGvf
Ku55aED033yFbW66oLD/zi/FxPELg0sIN965aboMUgnNCy6WcDFEcvzxx8fll1+urWcTMAETMAET
+FgT4EJjTU3NYekhJ6UxJw16qtVfnpa5CZ89P0E1lxcF+EldNlFrjV7+yodNP9mlox+bfMqjPnf9
xMZGnOpjV/20zHHKqT05la+Mo6ZEOVUfPbqypxwbMQydi1l5VCepsmjPjChOM/kR7GV95cvGpn6o
WFPjqv0FXPqGoNJEz8H1IMTIDx1wBEF72aVnrzMTz1q+aZlFvvKTXV8Oe0R7/IBYXkHGR03/1NTz
lWt0DOUnj0ZaZint5CNez6D6+FC/TRoSfFQfHT4S4pCOafSdPn36cH4htZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACTROoCUvIvTs2TM+//nPx7Bhw+Ld
d9/NRbkw0KFDh7jrrrtoqos33ngj2rata3Lfcccd89sJhgwZErwFgab7CRMmxPXXXx9vv/129OvX
L5577rmV3j5QXkTYfvvtg2fYbbfdYosttogZM2bEvffeG1//+tfj/PPPz2d49NFHY6+99spr6hxy
yCH57QvXXHNNnjE0dBFh8uTJ8Ytf/CLHzZw5M2688ca8/kcuIuC48cYbx5e//OV46aWX4g9/+EPw
h1V79+4do0ePbvBNBx/kRQT+puun1n06lixZFhde0TcOP7pbfpbTT5oYN9/4Vmy/U8f4f0/Q6xhx
272bxb8Npg0roryIwJ63KXzp8K7pDRjLYuRv34q3pi+OLuuuGY+O3jpqOtS1c1HryINeiUcefDc2
26J93P3ggHwpgfhvHzs+7rx5ZnTvsVb8+bEtomv3sh0Mj9TJ6IsIdSD8aQImYAIm8Ikl0L59e70R
YV6CQE82gz5qeqvpy1afNXv1YDPjh0491uVeeZK5Xi705ERovlYvN/kQ7FqrPj6sGQjx+DDQYUdU
k32ZR774sFavuWLRSYiTsObZGMqNTXvW6FWfPNprrbPiK1F95WdutpBsdUUPVB5WhxQwZgYPy4zo
Aep2K/TyUWyZC9/qevrC8FNO1vgpR1pmmy4DsMeGD74SdKUPdkQz67JeuVc9ZobOrfzKTQw61Vdu
6crfOJWn9MHOc/JGhN61tbUjuRFkMQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETaJxAS15EuOOOO2L//feP//iP/4jLLrss1ltvvZg4cWIuTgP+W2+9FU88
8UQMHDgw67icwNsM1l133XoH5C0JvC0BwWffffetZy8vIvCWgZEjR8Z+++1X8eHSAHW32267rDv4
4IPjz3/+c2y++ebx4IMPxtprr531jz/+eOyxxx553dBFhErCtBg7dmzl3P/IRYQ+ffrkZ+XNEMj9
998fBxxwQF5zhp122imvy48P8iICbzwYtHHdmw1+eUO/GPr5LvH4396Nrwx5JV0GWCtu/u/+sdcO
L+bjXHVjvxhycJe8Li8icHngj49sni8RYHxt7ILYL73dYOGCpXHuxb3j6G+sl2P44IICtjenLc6X
Hrj8cNuIGXHaCRPyGxBG3NM/Bu+24q0HlcC08EWEkobXJmACJmACnzQCrdKrgtKlzcPTc09IY/7y
56cpWs3xzDTs00fNGlu5T9u8V082PopVc7XykUN/+R0f+rblS072EsUqn+pjV/3ShzU+zNKnZRbt
yU8sIn/V13mw4YddMzHqrU/LfObqs+IvnzJWOYjjfHrO6vrYmyXlQZqVIAXpkALIXofVg5UQsAsY
a8U3NFf7Jfcs8mXDGj8BpDYDHYPGfdVPy4o/PsQyl0DLPXoEHQMhRvW1Vh3s+HEWaiKqrwsGZX7i
dW5m8qiO/PBhzVA91rzHq0961dqIJUtUKmksJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACKxFoyYsIzz77bPTv3z9+9atfxXe+853YeeedcwM+RXfZZZd4
+umn89sKuHywKlm8eHH07ds3vxXhyiuvjGOPPbaee3kR4dvf/nb85Cc/qWcvN3Pnzo1u3er++j9v
NzjmmGNKc/DGBvK19EWECy+8ME499dR6tTbccMP8TMOHD69ctCgdON9VV11VUf3tb38LXWSoKJu5
GDN6fuy70+gcfdNdm8ZOu3RKFwVGx7hXFgQXE/YZ0jk27fZ0tv/o533iq8d1z+vyIsLJp60fp5/b
s94Jvvl/X4t7bn87dty5Y9z6583q2R596N044sBX0psgIr7/w57xy5/Vxtw5S+O7Z20Y3/73Der5
lhv6vrhEwhskkMMPPzzOPPPM0sVrEzABEzABE/jYElh+EYE3IkxMg4sI9EkvTkN936zpma77Qbmi
Nxs/erw1ZNdMvHrA8ZUeHesyTvnxY3BZAR/6uqmv/u60rOTBD1GNMj+2srG7MV/iiaM+efBTLHr6
zjlLaUevfMyKk77cay3/5J4FvaRcS9ekuTp5k4KXO/OAysOD6ODM5ZfDFwFYAUnLLHoI9Ag5FAdE
9opVTtVLpuyrPb7yx1dxzMqp+opJpiz4EKMazGulwZl1DuVULDP5mBnYqS9/xZObobOlZYWZchFD
vGowE1/mS9ucm5iaNPpMnTp1hH4RxWgxARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARNYmUBLXkTgrQG9evWKG264IU444YTc5H/PPffkomr4v+2222Lo0KGV
g1B/2LBhMX78+HjjjTeCSwjIpEmTYuHChfHjH/84TjvttIo/i/IiwmOPPRbbbrttPXu5eemll2LQ
oEFZRa0tttiiNOcG90svvbTFLyLcfffdsc8++9SrxTnHjBkTDV2uqOf4AWx4e8Eeg+reePDb2z4V
zz49Ly694I18AeHamzeJ+fOWxoAef8+VeXvB4UfXXd4oLyJcn+L2/Nw69U53/VXT49zTJ8eGvdvE
Y6O3rmdjQ43LLqyt6HfZvVPcdFf//FaEitILEzABEzABEzCBCoFly5ZFTU3NkUkxIY1306AnW833
zOrP1pqeavqrkbLZHx17/Jnp2VYe9gz1j+OrHPgrVj5lPHadSb6K5SyI9IpXr7j2zMTghyievWKJ
kX91PD6yKZZZaz0XcayZ6Unn+eFALKL6dbu6vXJL1+S5OmmTE6QAcvAwmnkIiR6SvezoeDDm8qHL
Rn35Cia+DMFKy0o+QZONPIhyaJ2V6UOA2Su/dMAGPrGIatbt6uprLR/VV11m2cpZa3JywQBRXWZd
WqA+ORF8lZd9mbtD2vdOb0QY6TcigMZiAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAo0TaMmLCBMnToz11lsvRo4cmd88MGTIkLj99ttz8f333z8efPDBuPnm
m+PAAw/Mum9+85vxm9/8pnI4/gJwarzLe95kQCPeWWedFWeffXbFh0V5EaG2tnaVbw24995746CD
DsrxU6ZMia5du9bLdckll8Q555zT4hcRHn300fxX/ctiO+ywQ7z44otx2WWX5Ysape2DXs+etSS2
7vVMLvOt0zeIqy+fGm3WahV/+d8tYoOebWJa7eLYsf9z2X7NqE1i36Gd87q8iHDPQ5vHwEF134/O
+7tRM+PU48bHmmuuEWNnDFrpggEvNfjM1s/H65MW5ZBHXtg6evVto3DPJmACJmACJmACVQRat24d
bdq0OTypJ6axIA36pumpZrDWYE+PN33UsqdlXtOfjY2ZIV+tyYEoN2t8EGb5qQ9dNTXLTz3mql/G
YSMeHXHa48teveasEWbFK0b1ZWdG8GWQS3/0vswPE/bqMZev8rJXbtbSa06q5gtJVlfKHKwZPJD0
JTwB4EEYPDQCHIQYPSR79MQzlK+EJZDJnAUffHWLAyV7cpKLZn/VTssKdGzKj541Q2fhnORB8NWX
pfOhV238dC7Wqk8uXUBIyyzKW+bBQIzqs5afdOy5iNAzvRFhpN+IkEhYTMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETGAVBD6IiwijRo2Ko48+OlZ1EYE3Bhx6
6KH5ZCeeeGJwKWGjjTYKmu+Qz3zmM8HZ3u8iwvz587N/Yx+8MWHPPffM5ldeeSV69+5dz/XCCy+M
8847r8UvIjT0poYP8yICD71pt6dj0ULaterkRz/vE189rnvevPTC/Nhv8Oi8vvN/BsR2O9CGFVFe
RPjd/QNi0I51+mxMH3eMnBHfOX5CtGm7Rrzy5qBYg06uQnRRQarD/m+3+MmVfbX1bAImYAImYAIm
UEVgjfTDtF27dlxEmJwGv+jUvS5qRf82/dgMfmmi11qjep9M2cbMLwDEIPy0ZhCHTj+96TOX6BcG
bNSXDzMxxKoevtprrXj0ilUt9tJRk55wRHbWxMuP+vJh1rmr++/lg12iPOylx0/1qal9dX1imiVK
3qzg5UE8HAdmkI8H4aDMDIkOLz37MoZYcgGatXJpJo4vUiBUo6H6+CHEUIM9eRSjXNikY1Z++SZV
PcGuGPwR1SencqFjTx7Vx6aYtKz8oySnzqP6pS85JMqLvWMavdNr2kbI6NkETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETKBhAh/WRYQTTjghbrjhhvjsZz8b
f/rTn1Y6XM+ePWPmzJlx5pln5jcWlA7lGxHe7yJC6iOKTTbZJIf/5S9/iV122aVMFSeddFJcf/31
/xIXEXjeadOmVc43YMCA1NhftklVTM1a7DbwhZg4fmGO3X6njnH7fZtVLg7c9MxEqisAAEAASURB
VJs346xTJ2XbE2MGxvob1v1t2fIiwlU39oshB3epV/uqS6fGT37wemzUr2089OxW9WzjXlkQB+z2
UsybuzQ+u/fa8fD9s9NbLiIuv3bjOPjQdev5Vm/43hYurDtrx44do3v3ugsT1X7em4AJmIAJmMDH
jQBvhEpviDosPdfkNOakQX80feL0Xlc3y9NrjV692ew16L/WJYa0zH7yZyaGfIjiqaU66FlLR4zq
6xcU7MrFGmGPqD6+yo9eMdir++PRYVcd1tQnJ0P7tMw5pRcj6qBjbii//JO58lxaY1N96jRbKN5S
woEQgOiLQKcH0YPjQ0O9bnYIAnpEYPBnrT0Pyho9MezL/OREyKuGfdnRE0sMsfz2qHOmZb06yk8s
a4nOqZzkUh3lpAb1yY+dGRtCLnQI79xSfWLK51JN1ceGkAebarZL642nT58+/L33KGkxARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARNojMCHdRHhsMMOizvv
vLPeWxN0xnvvvTcOOuigvF3diwhLly6Nvn37xltvvRXHHXdcXHHFFSoTixcvjn79+mXbVlttFU89
9VTFVr0YO3ZsDBw4MKunTJkSXbt2rXaJBQsWRJcudY36zXkjwrnnnhsXXXRRJe+kSZNatAH/wnNe
j19dNjXnv/vBAbHN9ivebnDMl1+N+/80K7b7tw5x5wMDKmcoLyJ88fCu8fOrN6rYWHz5c2PiyUfn
xO77rB3D7ti0Yps/b2kctMfLMWb0/Njh0x3jlj/1j5/88PX49eXToqZDq/j9w5vHJv1p9WpY+vfv
H5MnT87GvfbaK37/+9837GitCZiACZiACXzMCPB2qDZt2hyZHmtSGrPSoHeapmj1XKvvGp36tvXW
gLKBX73a+JR91+wZ6sEmRv3bzOjVF05e1uiZFUs+1acvXPVVixyqrzpJlaXMQR72ZX7Vx1n18dGZ
lFdnpT5nIRe28lmlg53W+OicYopO67RcPdEBVi9LXbQOXT68AOBBAz0Pw+EBgr+G9tiIKQdxOifx
CH7oiGONsCdOjfroBA+bzqX6ylG9J648N3HyVb5yzxrRTH1EOajN0Lnww6Yc5Oc5mPGrFuLkW8bx
RoSe6WbwqCVLCLeYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAk0RuDDuojwgx/8IH7605/GmmuuGc8880zlrQVjxoyJL37xizFu3Lh85NW9iECSiy++OH74
wx/GWmutFddcc00ccsgh+RLCKaecEsOGDct1PgkXEV4dsyD22uHF/LxfOqJr/PSXG0Wr1IF11y0z
45Svj8/6C6/oG4cf3S2v+SgvIrRt1yqG3f6pGLxbp2y/5/a341tHv5bfcnD18E1ivwM7V+K+f9KE
uOXGGbH2Oq3jz49tERv2bhPvLV4WX9hnTDz7/+bGZlu0Dy5DtGtPC9jK4osIKzOxxgRMwARM4JNB
gLchtWvX7vD0tBPT4PVA9GnTFK3GaPVNa6+Zfmts7JnZE1uO8gcvzfulVO+Jo4+7jMef3OrzpkZZ
H3u5JxZ/hvKlZRbZyIEQpzV71ZEfs+w8B3vmMk7nYWaoNjMiPWviEem0r9OuxicJV1cAjHAoHV4P
jQ0dNh1eNYGhL0dfNr5lI7/yMeNLHvmmZc6pfVlfvmr+Vx58VR9/+UmPjtsipSiWXIqRnTjVlx82
fHk+3nyAnkFd+bNWLmzSq77OmEwV0bMwIzVp9K2trR3Oq0ksJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACjRP4sC4ivPzyyzF48OD8FgEa7nbaaado27Zt
PPnkk/mwXBqYPXt2tMRFhFmzZsU+++wTzz//fM7duXPnWLhwYcyfPz823HDDeOONN6L6IsKcOXNi
v/32q4DDd/To0XnPmxE4H9IqdfI//PDDef2v/kYEDnnOaZPihl+/mc/bvcda0Wnt1vHa2AV5P2jH
DjH87v75jQVZkT7Kiwjo1mqzRgzcrkMsXbIsnn16bqQXTsTW29XEPQ9tHulrzHLbiBlx2gkT8vpX
N/WL/Q+qe0sEionjF8aQnV+KOXOWxCFH1V2GyI5VH5/61Kfi9ddfz1q/EaEKjrcmYAImYAIfawL0
P9fU1Ogiwtz0sPRTl28GoBe7bJJmzSUC+r/LNxOUPdmsy4EvMeRGX+ZL29zvLT0++KpnnPrVovrK
ST7iqYNor1m96vz2gI7BWr3iekb01GevnnGdq9pffswIfuovVw10CD6smbEh1fnqtM341EM0I7QS
Qg5BQamcHJq1HoA1A0BArX4YPSQzNuIUk5Z5jQ1RTq3L+tgQ5WOvWqxVHx8EHXWUg5nBGZULO2ty
NrTGX3k06x8Ce+VWDn3ZyZTrkBPROVirPjrVVB3y8L6uPumNCCP9RoREwmICJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACqyDQEhcR1ltvvXj33Xdj8uTJ0a1b
t7jlllvia1/7WhxwwAFx66235upDhw6NBx54IO/RI3/4wx+CtxJwEUDCxYBrr702Lrnkkux/zjnn
5MsIsjM/9thjseeee6bG9zVi3rx5panRNef77ne/G/fdd1+k3qKg0f1LX/pSrLvuunH66afHjjvu
GA899FAl/p133okNNtigsm9swUWEuXPpEUx/sjhdbujSpUt6Q8CyePzxx2ObbbapF0YNLkNcccUV
cdxxx9WzsTnvvPPiwgsvrOinTJkSXbt2rexbavGTH7weN1wzPebOqWs7W2utNeKze68dV1zfLzp0
oAVrhZQXEa64buP48ZlTYvpUehzrZK/91gn0HTvR1hUxZeKi2HvHF2P+vKVxxDHd44LL+9Q5Fp/l
GxiuurFfDDl4xUUF3N58883o27dv5sgeJqeeeipLiwmYgAmYgAl87Anwu0W6nMlFhElpzE+DPml+
+Kp3ml5sdIga/+t+qK/ozUaPP77q807LHKf+bXwkZU7llh+z6iin4tDzS4Dqo5ePZuLLXzCUlxit
qY8Qg06iPXZyMKrjqE+MchGjZ5YvccqVlnmNDZG/1mX97NDUDxK2hAiaHoac6DhgeXj06ORf7kso
6JVLeQCrGybV56777a7+JQPBVh5yCiw5yxzlebTWOeVHHt0wkU4ztVjjo7VqqD72av+kyjr5stda
9XUe8uhtDeThjQh90i+jIxcvXvELb9JZTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAEqgi0xEWEqpRN2tK8/8orr+Tm88022yx69uzZpPjmOPN2g/bt2+fQ
M844I18MOOSQQ2LYsGHNSfeRjFmS3mjw0vPz0+WJpbHF1jXRvkbtWPUfp7yI8D9Pbxn9Nm0Xr45Z
EG9NXxwDtmofnbuUf3u2fmxzd7fddlscddRROXz99dfPb6LQ99XcnI4zARMwARMwgY8SgfRz74h0
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
xOBX+uNT6tQnTi5E9RWLXfWxaeg87FkzK1daVp6LWojOi490xHEe+seJl+CDTjHUl4/8sLFmkAfR
ObXOytX50EFXJweHIw8PJRGw0saD8JB6WIHSgxLLWntmRHGCRrz8lIu96uOvhn/Vx4+BXjHMxOms
qqc9M6J8imOv+jobe+VDpzcXUE825dEsf33xqlc9pxSVc+u5yNkhjV5Tp04dqdeN4WgxARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARNYmUBLXET41re+Fdde
e20MHjw4HnjggZWK/PCHP4yLL7643hsTyosIDz74YOy000714kaMGBFf//rXo23btvH2228Hfx34
7rvvjkMPPTT7nXjiiflSAs36rVvTahTBmwN4nuqLCJdeemmceeaZ0aNHj5gwYUL2berHB30R4cor
r4zTTz89Nthgg6DWqFGj4thjj4111lknv/mhffv2TT3yB+bviwgfGFonNgETMAETMIF8qTJdsjws
oZiUxpw0+EVH/eVpmZvw2dNbrbm8KEBPNv3YEq3Ry1/5sKFHpKMfm3zKoz539XJjI071sat+WuY4
5dSenMpXxlFTopyqjx4d+YklDhsxDJ2LWXlUJ6myaM+MKE4z+RHsZX3ly8amfqhYU+Oq/QVc+oag
6hKAHoQY+QmeIGgvu/TsdWZBlq9qy1d+suvLYY9ojx8QuTwgwUdN/9TU85VrdAzlJ49GWmYp7eQj
Xs+g+vhQv00aEnxUHx0+EuKQjmn0nT59+vD33uPftMUETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETKAxAi1xEeGnP/1p/OAHP2j0jQPHHXdc3HTTTbHvvvvG
XXfdlY9SXkTg0sHnP//5ekf82c9+lt9qsMkmm8QLL7yQbSeccELccMMN0dibF3r27BkzZ87Mlw7O
OeecSr7f//738eUvfzlfZpg2bVp06tSpYvtHFx/0RYQZM2ZEv379YtGiRfG73/0uLrvssnjooYcC
dldcccUqjzlmzJjQH23t1q1bdO/efZX+q2tsykWEefPmBcwlvXr1irXWKlvSZPFsAiZgAiZgAiYg
AukCot6IMC/p6Mlm0EdNbzV92eqzZq8ebGb80KnHutwrTzLXy4WenAjN1+rlJh+CXWvVx4c1AyEe
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
LDqGFzIfszXGcrXjR63ZNvurxx9f6wMPsRZrYZNvW6zL2cmpWJ+9PthnP/IxrM/XEfzx1A/VJoY8
CjGIZzOv52a+aIwrDx8+fMPRo/PRCEsiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQi
EIEIRCACEYhABCIQgZmADxG+/Mu/fFa3jkAEIhCBCEQgAhF4AggcOHBgueyyy3iI8Idj/MkY9Hsj
NkbTd04vNU3/6pyHatW5t5edmT5rm/PZa8MXmz7a1KkfLqvMjw6MtR4xrnEmFtGPPf3i6p2N0zb7
uSYPftyB+2/331ODeGuN5eYs2oy1LnrEOOur37Hu8U8O+XgIeTwQsz8euTkgg2Z6LjMD1A+9PmO5
rtEBbwZhY/6cg7i5vsCph8z19WXezo0vOnPjQw7/IzJmqDY+83lcz3n9sYjlIQIzOkS/mQs66iPW
5/74uMfOOH+MZx05cuT6hx/GJYlABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQ
gQhEIAIRiEAEdiPQQ4TdyKSPQAQiEIEIRCACZ57AsYcIrxqVbx3j/jF4cECPND3T9JHbQ26jtH3o
816fOYZebXIxG4NdH2oQx+x6jhnqTX16uK1HvP7M5GbYQ25+ctF/bn3s+CHM6q2vjjPji5jLWHzR
bedGd7IY72cMM+KemuZcDfv5gwSnK0LgYPPhyOsBuaA/Amv8sKEDiH7GC5gZncKeGJv3gUA+49lr
Q6ceHT8oe+uby/hh2vzHYF1sgiYW/VyDs83x7Knlma2Fzh+UNWJ99p7V+xjnrN09MU8a45njIcI7
e4gwSCQRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhE4BYEeIpwC
TqYIRCACEYhABCJwhgmcddZZy6FDh145yt4yxifHoNeaXmqEmV5rmvPpy7aHeyxXP2b6q42x19p+
bWb7ufFlb++2PsRQhz092saox5/+c+ubbzueHMR4RuP1N481vJt+7LWN5ZqLWHTcH2GNjhgfObBG
Zz7rM3NGxT058DWP9fXb80yC05X5UKw5OAeehQOjY1ZY6885jDFeKNr80cyBvzZ8GTToz3Fju5GT
3dWzY2NNbuM9HwlmP/YI9R3E4M9XD1jjj3ineU0tz2JN9pzd+uqZPZvnMvaiYbv68OHD1x89SlgS
gQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCOxGoIcIu5FJH4EI
RCACEYhABM48gWNfRHj5qHz7GHePQY+0Pdn2VA/VCTr6q2nQt6caX//B+rnfHDt77OYzZqjWvNjJ
N8dhm/09E3r7xK1HPuvTN47dGtZnNgdrBzrq0kNu/bHcCHkRZ9fU0Z81dvbWVzf7mcPa85lG6P6E
JKcr5vBANtEDZxbsgOKH52LGCYI9lyQeYS8U9MLALiDssz81begnhmEdZh4KWJ8cCDHY2Bs/lpu9
8dShHvmtj7/11WFHzGs8durzH553GMvNGdFZfz4Pa4Z2cpDr/DGu6IsIg0ISgQhEIAIRiEAEIhCB
CEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBRyHQQ4RHAZQ5AhGIQAQiEIEInEECxx4i
vGqUvGUMvohAHzV91syIMz3UD4xhTzY2HyLQK46ffdzYyIGox5ccCDofEayK8Yf96NhYkxNhbw83
9amhzDmsgw1/berJSSw2a8y50Nknztr+d8+x3X+PnpzkM6f3Y48NwY86ngMbOvasEWvs7Pb4p0n2
GHaCO3k4qKA4IOKjAC+ATpv+XHy+mCC5mFC8JHt+HPMaZ31tnkM/4vFhWJ9c+OGDHnGvj/HY8Jlj
yMkdzD3biMf/3GN2fdFt+/OwAD3D+vgg1Fewsyc3Mw8Rrh4PEa5/+GHCkghEIAIRiEAEIhCBCEQg
AhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCERgNwI9RNiNTPoIRCACEYhABCJw5gkce4hw
3ah80xg8RKAPnB5qerLpl7ZBGh1re7BZz73X7O1LJ441MwPBl9zq0c05fKiAD0J9axLrGht767H2
nObGlzWz9clnDXTGMTOoiw8ze/vXjR+qTS5y64+vZ5MZ+3k9tuveM2MnznOw37eQ6HRFcF7Gw5N3
Pqhr7Pp6eGcb7bFz4dkXHSJU684x2GjsF4418UWoY073noUZGz7GkVuZc6Bjj6/13VPf+5CPs2Cz
Dv5zLuOYrc+aOHyJQ9C5Zn/RGM88fPjwO48etRzqJAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhA
BCIQgQhEIAIRiEAEIhCBCEQgAhHYJtBDhG0i7SMQgQhEIAIRiMATR+DgwYPLpZde+spxglvG4IsD
9I7TP42wRmiStomePXZ080z/tf406dubjY894azdm489wp6ebWZyE2O+sVzX9nETg888rG8cvoj1
WM+50dtjjo299dl7Zmbviv+8xw8bYi7rs/d86BBqIObgjOpWw37+MPl+Yo3xxyIXB2J27SHZeyl/
mDmOyxq3vR6mVdAL2VzbMeTGhh5/6zMzEOubw3Nox4d4954HPfW54xy7XQsbsfjpzx49IiNzzPOO
x0689dFRA/GRAzHrFxHGQ4Tre4iwsumPCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCB
CEQgAhGIQAQiEIEI7Eqghwi7oskQgQhEIAIRiEAEzjiBY19EeNUofPMY9x87gF8FsN+bHmp6r9Hb
0808j7FdfZgR/Bn60JNNPnON5cbG2scLrPHTnz1r67O3b5w1+RV8sFnD2sz0k1tDv6HaxFsTHXZr
mo8c8pht6PFBXLNnTR6FvnNr6IeNNWPfYvF9J5gCuRhysgt4aZvudzx3LomOGC7MZfTxYvPeGvii
RwSjjZlYfLwfvvjxQ5rXmujmM2/7mHe4rT+sceRkbX33+qP3jMych9wIcebhcQFrZPZhj94c7FmT
H78nj3HVXXfddf2DD/K1jiQCEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQ
gQhEIAIR2I1ADxF2I5M+AhGIQAQiEIEInHkCx76IwEOE28a4bwz6o22Kpt+bPuq5gR/d3COunTj7
q1kb63qoVjEXduoQQ47ZH59ZZ584uRDrG4vd+tgcnoc9a2ZzjeXmXtRCmMmDjzriOA/948Qr+KAz
hjh99MPGmkEexHO6XpWn84cHPZ0cHI48XEoR2GzjIlzSywrKixLL2j0zYpzQiNfPXOytj78N/9bH
j4HeGGbiPKv13DMj5jOOvfU9G3vzofPLBdTTZh5n/f3hrbc9jxSbc3svcl44xjPvuOOOGx95hFRJ
BCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIrAbgR4i7EYmfQQi
EIEIRCACEXhiCFx++eWvGJVvG+NPxqCn2v7ysVyb8NnTW+08PxSgJ3tuonaNXn/zYUOPqKMfm3zm
sc/dXm5sxFkfu/XHco0zp3tymm+Oo6ZiTuujRzf3lGMjhuG5mM1jnaFaxT0zYpwz+RHsc33zrca9
/mGxvcZt+wtc/cmg+gjAixCjn/CE4F67evaemXjW+o7lKvrqp90fhz3iHj8g8nhAwcemf2p6v3mN
jmF+8jjGcpXZTj7ivYP18aH+uWMo+FgfHT4KcchFY1x95513Xv/QQ/w3nUQgAhGIQAQiEIEIRCAC
EYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACuxHoIcJuZNJHIAIRiEAEIhCBM0/grLPO
Wg4dOuQXEe4dJ6Anm0EfNb3V9GXbZ83eHmxm/NDZYz3vzTPMx+VCT06E5mt7ucmHYHdtfXxYMxDi
8WGgs6/bmuznPPoO9Rpjr7mx1sNOnMKauzHMjc09a/TWJ497154VX8X65mfet5DsdMULzYf1kFxE
PWsuy4x4gZ3dp/T6GDvnwne7nj8YfuZkjZ85xnK1+RiAPTZ88FXQzT7YEWfWc715bz1mhuc2v7mJ
QWd9c6vbfoCAfvbBzj35IsKVhw8fvvHoUVIlEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEI
RCACEYhABCIQgQhEIAIRiMBuBHqIsBuZ9BGIQAQiEIEIRODMEzh48OBy6aWXvnJUvmWM+46dgKZo
m+OZadinj5o1tnk/tuvenmx8jLW52nzk8F9+x4f+bH3JyV4x1nzWx2792Yc1Pszqx3IV9+QnFtHf
+p4HG37YnYmxt34s1zNvnxV/feZYcxDH+bzndn3s+5L5IPtKMII8pADZe1gvNkPALjDWxp9s3vYb
7qvoy4Y1fgKkNgMdg8Z964/lxh8fYplnoPMePYKOgRBjfdfWwY4fZ6EmYn0fGMz5iffczOSxjn74
sGZYj/X5Y1x15MiRGx5+2FJDk0QgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGI
QAQiEIEIRCACJxDoIcIJSFJEIAIRiEAEIhCBJ4zAsYcIfBHh1jF4iECf9INj2PfNmp5p+qsRG6bx
o8fbod0ZP3vA8VWPjvUcZ378GDxWwIe+burb3z2Wmzz4IdaY82PznPjs5ouNOOqTBz9j0dN3zllm
O3rzMRunft671n+4r4Jemdfq9jRvJ99T8DFnLmgeLuLBmecfhx8CsAIZy1W8BHqEHMYBkb2x5rTe
MK2+7vHVH1/jmM1pfWOGaRV8iLEG8zljcGbPYU5jmcnHzMBOff2NJzfDs43lhpm5iCHeGszEz/nG
ds1NzAVjXHXHHXfc8MgjuCQRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCB
CEQgAhGIwG4EeoiwG5nT1/+Lf/EvlgceeGBN9KIXvWi59tprTz9pGSIQgQhEIAIR+KwncPnll183
LnnLGHePQU+2zffM9me7pmGa/mpkbvZHxx5/Znq2zcOeYf84vubA31h95njsnklfY23eVm88euq7
ZyYGP8R49sYSo/92PD7ajGV27b2IY81MTzr39xxjuanPGrE+ufctJDldEYIzl1C8JHvt6LgY83xp
dMLT1z2+DGGN5Saf0LSRBzGH61U5/hAwe/OrAybwiUWsubPbqe9aH+tbl1nbPLsmJw8MEOsy+2iB
+uRE8DUv+zn3hWN/5fgiwo19EQE0SQQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQi
EIEIRCACEYhABHYn8Jn4EOHmm29e3v72t5/0Umedddby1Kc+dbnmmmuWF7zgBcvVV199Ur8zofy2
b/u25b77+IeMl+U1r3nN8pKXvORMlK1GBCIQgQhEIAKfwQTOPvvs5ZJLLnnluMKtY9w/Bn3T9FQz
WDvY0+NNH7X2sVzX9GdjY2bo65ociLlZ44Mw62cfujWd9bPH3PpzHDbi0RHnHl/29pqzRpiNN8b6
2pkRfBnk8h+9n/PDhL095vqal725Wat3Hqr9C0lOV+YcrBlcSP0MTwBchMGlEeAgxHhJ9uiJZ5hv
hiXIYV4FH3x9xYGSPTnJRbO/tcdyAx2b+dGzZngWzkkeBF9/LM+H3tr4eS7W1ieXDxDGchXzznkw
EGN91vqpY89DhCvGFxFu7IsIg0QSgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhE
IAIRiEAEIhCBUxDYz0OEo0ePLo/XPxJ68ODBhccDe5H//b//9/L3/t7fe9SQc845Z3n961+/fPVX
f/Wj+n46HPbzEOH2229f3vjGN26O8yM/8iPro4qNokUEIhCBCEQgAp/VBA4cOLBcdtllPET40Bi8
aHzw2IXt36Yf275xeq0d9FG7ZkaciSUG4S9eDGzo/IsYfeYK/gg26uvDTAyx1sPXvWvj0RtrLfbq
/ELDUB13FuL1oz594wiz597uv9cHu2Ie9urxsz5ncu/58PX8rPcsJt9z4BTA5Tgwg3wciIMyz4fz
8OrZzzHEkgvQrM3lTBw/pCCscbL6+CHEUIM9eYwxFzZ1zObXd6iOE+zG4I9Yn5zmQseePNbHZsxY
bv6jJKfnsf7sSw7FvNgvGuPK8RfyGzQ2RyACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEI
RCACEYhABCIQgQhEIAInJ7Cfhwj8A6Hvec97lo997GMnT/oYtZdeeunyTd/0TQsNd3uR7YcIF154
4XLuueeujyM+8YlPnJDqZ3/2Z5enP/3pJ+g/3Yr9PES47bbblte+9rWbo/3ET/zE8vmf//mbfYsI
RCACEYhABD67CfBA89ChQ68Yt/zQGH8yBn9Rok+c3uvtZnl6rdHbm83eQf+1jxjGcvXTn5kY8iHG
U8s66FmrI8b69nFjNxdrhD1ifXzNj94Y7Nv98eiwW4c19cnJcD+Wa071MqIOOuaT5dd/mDf3co3N
+tTZt1D88RIOhADEHwKdF/Hi+NBQ78sOIaBHBIM/a/dclDV6YtjP+cmJkNeGfe3oiSWGWL5M4DnH
8rg65ieWteI5zUku65iTGtQnP3a/wDCWGyaszx3D+sTM97Km9bEh1MBmzSeN9TV33nnn9Q89RMkk
AhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEdiNwH4eIpDrjjvu
WN773vfulvYx6b/+679+edrTnvaYfGen7YcIb33rW5drr712deGLAj//8z+/vP/979+E/O2//beX
b/iGb9jsXfCQ4vDhw8tHP/rR5XM/93OXK6+8cn3QoH23mccOv//7v79cdNFFy7Of/exdY071EOHe
e+9dHnzwU72Bl1xyyVrusTxEoD5fpUAuvvji9YsSd99993LTTTctT33qU094dPHpvud6kGN/8EiF
c3z84x9fvuALvmDhkUgSgQhEIAIRiMBjJ3D22Wcv4+8F142I28b4+Bj0TtMUTb80fdgMBJ192341
YG7g3/nLwo7P3HdtDnuwibF/mxm9feHkZY2e2VjyWZ++cOtjx0YO61tnqFaZc+DLfs5vfZytj49n
Mq9npT5nsS4zgp862LlG7zllis71WJ6eeIDTy7IT7aHnywsADxrouQyHBwj+DvfYiJkHcZ6TeAQ/
dMSxRtgTZ6M+OuFh81zWN8f2nrj53MTpa755zxpxpj5iDmozPBd+2MxBfu7BjN+2EKfvHMcXEa44
cuTIOx+vz79tF24fgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCB
zxYC+32IwP1//dd/ffm///f/7gvF533e5y1/8S/+xX3FnuohAglpyn/FK16xadbnQcB3fMd3bGrx
WIGvJPzmb/7mxgcjX2b40i/90uUNb3jD+shgE3Bs8Y53vGO984c//OGN6eDBg8tzn/vc5Y1vfOP6
CGBjGIvdHiJ88IMfXN70pjctn/zkJ1d3WPzYj/3Y8vKXv3zhH1+lmV/hX0Wmxld8xVcs3/d937fc
c889y8te9jLNy4/8yI8s73rXu5bf+Z3fWeNe+MIXLm95y1tW+5m6J8Wo9TM/8zPLBz7wgfWM6Dj7
s571rPWrF1/zNV+DKolABCIQgQhE4FEI8PeRyy677JXD7dYx+MsCfzGgp5qB2Dft3pl+a2zsmdkT
Ow/7uod6bd5nVmjmn4U4+rjneOzkts+bGnN97POeWPwZ5hvLVbSRAyHONXvr6MesnXuwZ57jPA8z
w9rMiHrWxCPq3O9oT+NPEp6uABjhUB7eS2NDh83DWxMY/jj+2PjOjfzmY8aXPPqO5ZrT/VxfX5v/
zYOv9fHXTz06XovMYiy5jNFOnPX1w4Yv9+PLB+gZ1NWftbmwqbe+ZxymjXgXZuSCMa4eL5Wv99Xv
qu2PCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIROAEAqfzEOH+
++9f/v2///fLAw88cELeUynOPffc5Vu/9VuXJz3pSady29X2aA8Rtu0/8AM/sPz5P//n13yc+Xu+
53sWvjywmzzjGc9Y3va2tx13vp/7uZ9b77pbzKWXXro+Crjmmms2Lid7iPCRj3xkrf/Hf/zHqx9f
hPin//Sfrl82eMlLXrKJ3V7wEOHNb37zCQ8RrrrqquPu4kOEM3lP7sJDDL6ScTLhQcL3fu/3Li96
0YtOZk4XgQhEIAIRiMAWgcsvv9yHCPcME/3U85cB6MWe+7NZ84iA/u/5ywRzTzbreeBLDLnRz/nG
du33Vo8PvvaMU39brG9O8hFPHcS9s73q9IajY7C2V9w7oqc+e3vGPde2v37MCH72l1sDHYIPa2Zs
yHa+He0+/vQS+wjdhJBDKCjNyaFZewHWDAABdfsyXpIZG3HGjOW6xoaY0/VcHxtiPvbWYm19fBB0
1DEHM4Mzmgs7a3KebI2/eZz9D4G9uc3hjz1Max1yIp6DtfXRWdM65OH/O7lqfBHhxr6IMEgkEYhA
BCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIROAWB03mIQNrf+73fW/7b
f/tvp6hwoolm+S/4gi840fAYNdsPDa677rrlmmuuWWi+51/k/+///b8vNvp/2Zd92cJDBJrhEf7V
/l/8xV9c1+ecc87y1/7aX1s+53M+Z/mf//N/rmM1jD9++Id/eP06Avv//J//8/KTP/mTmpanP/3p
C3cY/1jq8lu/9VvLgw/S87csX/mVX7l+6UDH7YcIf/kv/+X1qwY33XTT6nLxxRcvP/7jP75cccUV
65cZWH/iE59Yfvu3f9sUy5d8yZesjxS+8Au/cPmrf/WvnvAQQUdyPOUpT1k5fOd3fucZveff+Tt/
Z7n55ps3d3rpS1+6flHiv/yX/7LwWyFnn3328lM/9VPL1Vdfve77IwIRiEAEIhCBkxPgS0jjgSMP
EW4b474x6JPmLxv2TtOLjQ6x8d9ecvT4oWfG1z7vsVzjZh90yJzT3PoxW8eca9AxvY8K1OnjTDw9
3op5OZdr6iPEoFPcYycHYzvO/ntzEeOd9SXOXGO5rrEh+rue668Oe/2DhI+HCM3LkBMdB5wPjx6d
/vN+hoLeXOYBrC9Mts8NWAQf18I2D3bBknPOMZ/HtefUjzy+MFHnTC3W+Li2hvWxb/sP1arTl71r
63se8vi1BvLwRYSr7rrrrhv9C/7YJxGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGI
QAQiEIEIRCACEYjASQic7kOEo0ePLv/xP/7HhX/p/7EIzfLf+I3fuHkY8Fhitn22HyJs292/+MUv
XmjK5wsMCo8meECAPOc5z1m++Iu/eF0/9NBDy3d8x3dsHjDwxYZXv/rVq+0f/+N/vPzGb/zGur7s
ssuWn/7pn14uueSSdf+e97xn+Zf/8l+ua77wcMMNNyznnXfeup8fInzXd33X8r/+1/9a/sf/+B+r
jTORd/tBBl9qeO1rX7v68MdP/MRPLJ//+Z+/2d9zzz3Ly172ss3+wgsvXH7wB39w+aIv+qKNjsWZ
uuftt9++Mrb4fF6+lPH6179++fCHP7yaX/Oa1yyn+uqDOZojEIEIRCAC/y8T4PHkoUOHXjUY3DzG
/WPQO43QM01POHuH/dj62LDPrGCb9+ahF5u1uZjZ22vu4wP09GibhxnRnzzqiDcvPgp6hDysOQ/9
557LeGbrYzO3s3lmf2wIOoa+6OxRJ8717Gc+fBXiT6bX/qizhR7V8RQOHEJYuHkoL46NNRARL+jl
mIlB9JuB4k8sM8C1GTNUx9XHB19yIfqh95zee/bRRrM/NfBHWKPD19zkZJiHGTszPqw5g35jud5B
P89kjH7EUMu7EqcOXzgw43/RGFeNz3y945FHcEkiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQg
AhGIQAQiEIEIRCACEYhABCIQgd0InO5DBPLyCIHHCDxKOJXQWMcjBB4jnI481ocI1KCJn68b8PWB
bbnvvvvWRwk09zP+zb/5N8utt966uv2Vv/JX1iZ6NjxIOHLkyKp/+ctfvnz7t3/7uuYPHjBsf8HA
hw/zQ4TRULh55HDgwIHlLW95y8LXGrZlrw8RvuVbvmX5m3/zb26nOW7/6bznr/7qry4/9mM/ttbj
3q973euOq/3e9753/WoGyq/+6q9e/u7f/bvH2dtEIAIRiEAEInAigcsvv9wvIvAQgZ5tHgXYX02D
ND3T7LEh6NxjY8+gf9uvI7Bnbd83/dvG28uNj3rykQuf2c+81sMfHXtmz6YfsZ6JtfXns5EDIYf1
2VufXIi5mRH0+Fubebb52ME4zzefjXhjtusP097Fy+w98sQILwcsQaITCGv3XGJeCwedsQJChwjE
i+9oP/VDmI9Gfv7jAag6c1DXPK79kQWrfbiu/wF4Dmf05mP2PMSznh8ymBs/hj7orT8/shjq9XzY
Eec5zlzrFxHuvPPOG/hLfhKBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGI
QAQiEIEI7E7g8XiIQHb+Bf7f+73f273QsPCv/7/whS88pc9jMW4/RPj+7//+5XnPe976EIKHBHx5
4Bd+4ReWBx98cE333Oc+d/ln/+yfrWseS3BWGuh/8zd/c+Ff7T+Z+BDh7rvvXnh8oLzhDW9Y/tJf
+ktuTznPDxFmR75iwFcULr300lm9rvf6EOFNb3rT8pVf+ZUn5DlT9/yZn/mZ5Rd/8RdPqH8yxbOe
9az1axIns6WLQAQiEIEIRGCHwMGDB/k7Ag8RbhmDv6jwFxr6pBH6yenLZiDstdHrjTBrnx8h4Df7
4Gsu5zkfa/q5qU/PNvHWH8tV2GNDyD3XQEd9+709J7XwRe95PK85hmm1WZ/e8Tk3/u7ns5nTWp4P
f88xlpv61kWHbO93tHv80+J7DDvOncMiXpKZw3kRwXlhZny88FiuYjwgiRX8jvX4/OTgB7OhHx/j
sVkfuz+Udn8g6rseyxU6Or9+QA7szMTO57c+Z2WNWNc9df26wRxvjPX1p5b1yWd91sarI4bvqF0z
vohwQ19EAFESgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCB3Qk8
Xg8RaOin+Z9/ff9kcv755y/86/1+LeBkPo9Vt/0Q4a1vfety7bXXHhf+tre9bXnf+9630f3rf/2v
l6c+9akL87ve9a6NngVnu+iii5aPfvSj6xcO0PkQ4d57711e9rKXbb728N3f/d3L13zN1+DyqLLb
QwQC/9yf+3PLP/gH/+CEHHt9iMAjjC//8i8/Ic+ZuicPKt7znves9c8555zliiuuOOEsKuD/Qz/0
Q26bIxCBCEQgAhE4CQG+IDW+pHTdMN0yBn+xovfahn56qu0BVzdU62MBeq6xIfRW25ONjrU949hY
E8+M+NhgZ7fz5xxjLuY5nt5tchBvf/lYrmIM/p6ZtfGedY73PCQwhpkx3w+7+YmZWWBDh327/36u
aX585/XYrnvmfcl8iX0lGEHk8GDkADTgFGug80fwB+XS8w86x84gjSMXsNjbuG999IggravdfOz9
EfB1rR85EM6L3R/PM5DH+vOP4ZoYxRhyk48zo5vvYD59h3nlaX3sxuEjxyeP9RU9RBgUkghEIAIR
iEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCDwKgcfrIQJl/uAP/mD5tV/7
tZNW5F/tf85znnNS216Vj+UhAo8i/tW/+leb1D/8wz+8PP/5z19e+tKXbh4b/IW/8BeWb//2b1+e
+cxnrn7f8z3fs/z+7//+uvYhApvv+q7vWv7wD/9w1X/rt37r8upXv3pd88dDDz20yJD9n/2zf3bz
2GJ+iECN0VS4/M7v/A5uq7zmNa9ZXvKSl7hd5+2HCHzJgS86KPfcc8/6MML9yR4i8CjkTN3zl3/5
l5cf//EfX49z2WWXLe94xzs8WnMEIhCBCEQgAvsgcOwhAp9jum2MT45BzzSDXmmEmZ5r+rARes4R
+qr5ggJ91fgj+OqP3l51e7jJg2jDFxt+rMk51x7bVY/O+vgi9Ipb3zyeg5kanptY6zBrG8uNnrX1
WSPWJA8xcw585/57bJwDoT727fruteFLnOdmv2fxkHsO3Aogj5eYZw7HHgCIe9azn5CEyyWx428s
P55r7Ihx+JoPH2Caixl/dP7YY7naZ7+5Jmvz6DvXsr7nozb+iPN8Hv2tpz97bOTmP0r05GRtfX3x
8VzMF4xxxZEjR9758MOYkghEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAE
IhCBCERgNwI20Z/sX9XfLeZU+ve+973L+EdEj3N52tOetnz913/9cbrT2TzaQ4SPfOQjy9//+39/
uf3229cyNPTdcMMNy8c//vGF5n8FHx4jIDw0wPbII7QpfeqLCKz/yT/5J8uv/MqvsFwuvPDC5Z//
83++fl2BPV9X4OsDCF9WoI5ffZgfIvytv/W3Fh5jvO51r1s+9rGPrf74/eRP/uRy9dVXr3v+2H6I
sP1Y4bE8RPjQhz50xu4JNx5qKD/4gz+4fNmXfZnbhf8eeKCCPPvZz15e/OIXb2wtIhCBCEQgAhE4
kcCxhwivGpZbx/CLCPRW0zNO/7R91TZKY0OYGerxm/vM0euLXsEPvTr2CH8pshZ74tnrbx1siLln
P3LS302MemvZE+6sHV8EP9aeAzu+DHTqx/Kkfta0Pv7KvCYfoo4477Ia9vqHF9hr3OzvJZl3O4yA
8PGyc20vAgB/XC9LLdfmQWcMNoAwb9uH6jgRsD8QRvJ4FnJgQ/Ql57z2LHMM9fFBtvPtaHf0+Mzn
xcbeGOuztyY+22t0F45x5eHDh284epQjJhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQg
AhGIQAQiEIEIRCACEYjAbgQe74cINNm/5z3v2TT0HzhwYPmmb/qm5dJLL93tCHvWbz9EeN7znrfJ
TyM/jfiz/Jk/82fWhn/+YdO//tf/+nLfffT0Letjghe96EXrWd///vcvn/jEJzZh8xcR/ut//a/L
P/pH/2ixH+mSSy5ZvvRLv3S56667lg984AOL/2DqV33VVy3f+73fu8kxP0TwQcFv/dZvLT/0Qz+0
8XnWs561nu2cc85ZddsPDXis8CVf8iXLC17wgvXrCdv2k30R4UzeEyavf/3rl5tvvnk9P+f9uq/7
uuXpT3/68n/+z/9ZfvVXf3Vz1ze96U3rY4yNokUEIhCBCEQgAicQOHjwIH+v8SHCvcOBhmh6spnn
NX3ViD3mrPFDb084XwggBp2xxuHDmhhknme9dfExB+s5D3vEWuSi/5v6CGvzGMcemWfrMs/61fHY
H+YhJ37eQ39jscuGNeK5WOOv7zzLAZ99CckeL6FZ3iZ+8s4guQD/yj+XZPZHFwQXIYZBHvQO9tpZ
C4o8+mDnb6gC3s4zTGteYvWzDr7EC968Q7WK92Bm4Ivgh3AGdOcem8mnL2vsCP7U18/65mSPmHdn
9yke+BmD7eIxrhxfRLjev+CjTCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhE
IAIRiEAEIhCBEwk83g8RqECzPY8FkGuvvXZt2l83j9Mf2w8RTpX2mc985tr4/4xnPGN1e9vb3ra8
733vOyGEf32YBwZ+rWB+iIDzu9/97uVnf/ZnT4hT8bmf+7nLP/yH/3ChnnKyhwjY3v72ty//4T/8
B93WhxrzVwW+7/u+b33gsHEYi6/4iq9Y3vzmNy+P5SECcWfynh/96EcXzuwXKOZzu/7iL/7i5Ud/
9EcXOCcRiEAEIhCBCOxO4Oyzz+bvJNcNj5vH4CGCQl+2g/7pB8awD9vebO32aduPrR4/+8rHcl1j
oxebGRuzecdyle38+FvffNRkEK9Qf9az158cPpSwF5xY6+OnzHnIx55Y+9/ZW5fZv3CY1zOg146N
HnZEP3PsaPf5p8X3Gb6GcSGEA3l59lzEH4NDY0fHGmD6egbzDNPqx0wMP7Cxsw92YtVZH71ifXL4
I1lfkMa7N8ZZPTnxRa+wN967YduO9Q7YXJuXGUEvM/bmUI8OX+tdMNZX90UEsCQRiEAEIhCBCEQg
AhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhE4NYFPx0OEhx56aPmFX/iFtfC3fMu3
LDTUPZ7CVwhofN9NDh06tDznOc9ZPu/zPm/55m/+5uXCCy/cuPIv+POg4Jd+6ZeWu+++e9U/5SlP
WV796lcvv/Ebv7Hw9QPkxS9+8fK6171uXfvHf/pP/2n9F/4/+MEPLg88QO/dsuZ+/vOfv34VgIcM
s7z0pS9d7r13p3/wta997fKN3/iNq5nY7/7u715uvfXWdU9z/lvf+tbli77oi9b9H/3RHy0///M/
v/zar/3a+pUGzsyXG974xjeuX3PggYPylre8ZXnhC1/odjOfyXtSdPzDscu//bf/dvnd3/3d9UsR
HuTyyy9f+G+Ar2L0CEEqzRGIQAQiEIHdCfB/L8ffZV4xPD48xj1j0Edtv7d94TTQz2v7q/FVWDPs
N7dPnXn2024cMz5zTnzYWxP7vNZ3qFdx7xlQEkPPt/Xp/dbOTAwDwedkdvzIwf1d6+sZh2kTyxo/
xPMyI9bSPtfXZ8dzj3+aeI9hJ7gDwEN7SGYPqs49CVijZxiLbl7PcdQAID78jR2wrJG5/o5mJw8/
gD7kws89a/NTE19EP+yIe/+DQG99fcxlDmpwVl6fWG8s1/r4ojOGNfX9/0KoRx5zj+W6Ruc58eXL
ClePv9je0BcRBokkAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCAC
pyDw6XiIQLnbbrttrXrVVVedovoTZ6JR/84771wOHjy40Cy/lyZ5HlrcdNNNy5Of/OTl6U9/+qf1
Eo888sjC2O9jjifinnfdddfCY4orr7zyuEcgn1ZQJY9ABCIQgQh8lhDY5SEC//q/PdT0TTMU+76Z
6dOebfaY4zvHkYuc9m6zRvDBZhw5GfSn2w+OjzXHciPorGGfOHnIZ1+4cdYgmLyeBbs2ZvYM8uBH
HvbUYW2dOb93GObNfbbjrIGevPbfW58c+xYPte8EI9AcHMg1M0MAXAJhFgigbOiffzB8GP6Q5DGG
fAhx/vDWFKa1yYG/dVhTx1zM5vEH88cj1rixXPOYj/zGobO++dmrZz3noQ5+2K3PjB6d9dkbRw5j
xnL1o/55Y/QQASJJBCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAE
HoXAp+shwqOUzRyBCEQgAhGIQAQicBICBw4cWC677LKXD9OHx9j5tNJOzzS91fSR229tP/ZQrXr6
qPlkE/3W+NJzjQ/Dhwz0XqtnRshHXgQ7os/ObudPbNZnbX1m9NSnjn3h5jA/M6KeHAz8iSePgo/+
6LDhi977YeeensM8zIg5rI+eHMawRtB7plUx/tDmfk/zfJE9BU7OHIqDchAvitnczNiB7o+nbajW
GGLRMbyQ+ZitMZarHT9qzbbZXz3++FofeIi1WAubfNtiXc5OTsX67PXBPvuRj2F9vo7gj6d+qDYx
5FGIQTybeT0380VjXHn48OEbeM2bRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCAC
EYhABCIQgQhEIAK7E+ghwu5sskQgAhGIQAQiEIEzTWB6iPCHo/afjEG/N2JjNH3n9FLT9K/OeahW
nXt72Znps7Y5n702fLHpo02d+uGyyvzowFjrEeMaZ2IR/djTL67e2Thts59r8uDHHbj/dv89NYi3
1lhuzqLNWOuiR4yzvvod6x7/5JCPh5DHAzH745GbAzJopucyM0D90OszlusaHfBmEDbmzzmIm+sL
nHrIXF9f5u3c+KIzNz7k8D8iY4Zq4zOfx/Wc1x+LWB4iMKND9Ju5oKM+Yn3uj4977Izzx3jWkSNH
rn/4YVySCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRGA3Aj1E
2I1M+ghEIAIRiEAEInDmCRx7iPCqUfnWMe4fgwcH9EjTM00fuT3kNkrbhz7v9Zlj6NUmF7Mx2PWh
BnHMrueYod7Up4fbesTrz0xuhj3k5icX/efWx44fwqze+uo4M76IuYzFF912bnQni/F+xjAj7qlp
ztWwnz9IcLoiBA42H468HpAL+iOwxg8bOoDoZ7yAmdEp7ImxeR8I5DOevTZ06tHxg7K3vrmMH6bN
fwzWxSZoYtHPNTjbHM+eWp7ZWuj8QVkj1mfvWb2Pcc7a3RPzpDGeOR4ivLOHCINEEoEIRCACEYhA
BCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgVMQ6CHCKeBkikAEIhCBCEQgAmeY
wFlnnbUcOnTolaPsLWN8cgx6remlRpjptaY5n75se7jHcvVjpr/aGHut7ddmtp8bX/b2butDDHXY
06NtjHr86T+3vvm248lBjGc0Xn/zWMO76cde21iuuYhFx/0R1uiI8ZEDa3Tmsz4zZ1TckwNf81hf
vz3PJDhdmQ/FmoNz4Fk4MDpmhbX+nMMY44WizR/NHPhrw5dBg/4cN7YbOdldPTs21uQ23vORYPZj
j1DfQQz+fPWANf6Id5rX1PIs1mTP2a2vntmzeS5jLxq2qw8fPnz90aOEJRGIQAQiEIEIRCACEYhA
BCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYjAbgR6iLAbmfQRiEAEIhCBCETgzBM49kWE
l4/Kt49x9xj0SNuTbU/1UJ2go7+aBn17qvH1H6yf+82xs8duPmOGas2LnXxzHLbZ3zOht0/ceuSz
Pn3j2K1hfWZzsHagoy495NYfy42QF3F2TR39WWNnb311s585rD2faYTuT0hyumIOD2QTPXBmwQ4o
fnguZpwg2HNJ4hH2QkEvDOwCwj77U9OGfmIY1mHmoYD1yYEQg4298WO52RtPHeqR3/r4W18ddsS8
xmOnPv/heYex3JwRnfXn87BmaCcHuc4f44q+iDAoJBGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAE
IhCBCEQgAhGIQAQiEIEIRCACEXgUAj1EeBRAmSMQgQhEIAIRiMAZJHDsIcKrRslbxuCLCPRR02fN
jDjTQ/3AGPZkY/MhAr3i+NnHjY0ciHp8yYGg8xHBqhh/2I+OjTU5Efb2cFOfGsqcwzrY8NemnpzE
YrPGnAudfeKs7X/3HNv99+jJST5zej/22BD8qOM5sKFjzxqxxs5uj3+aZI9hJ7iTh4MKigMiPgrw
Aui06c/F54sJkosJxUuy58cxr3HW1+Y59CMeH4b1yYUfPugR9/oYjw2fOYac3MHcs414/M89ZtcX
3bY/DwvQM6yPD0J9BTt7cjPzEOHq8RDh+ocfJiyJQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCB
CEQgAhGIQAQiEIEIRCACEYhABHYj0EOE3cikj0AEIhCBCEQgAmeewLGHCNeNyjeNwUME+sDpoaYn
m35pG6TRsbYHm/Xce83evnTiWDMzEHzJrR7dnMOHCvgg1Lcmsa6xsbcea89pbnxZM1uffNZAZxwz
g7r4MLO3f934odrkIrf++Ho2mbGf12O77j0zduI8B/t9C4lOVwTnZTw8eeeDusaur4d3ttEeOxee
fdEhQrXuHIONxn7hWBNfhDrmdO9ZmLHhYxy5lTkHOvb4Wt899b0P+TgLNuvgP+cyjtn6rInDlzgE
nWv2F43xzMOHD7/z6FHLoU4iEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCAC
EYhABCIQgW0CPUTYJtI+AhGIQAQiEIEIPHEEDh48uFx66aWvHCe4ZQy+OEDvOP3TCGuEJmmb6Nlj
RzfP9F/rT5O+vdn42BPO2r352CPs6dlmJjcx5hvLdW0fNzH4zMP6xuGLWI/1nBu9PebY2FufvWdm
9q74z3v8sCHmsj57z4cOoQZiDs6objXs5w+T7yfWGH8scnEgZtcekr2X8oeZ47iscdvrYVoFvZDN
tR1Dbmzo8bc+MwOxvjk8h3Z8iHfvedBTnzvOsdu1sBGLn/7s0SMyMsc873jsxFsfHTUQHzkQs34R
YTxEuL6HCCub/ohABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiMCu
BHqIsCuaDBGIQAQiEIEIROCMEzj2RYRXjcI3j3H/sQP4VQD7vemhpvcavT3dzPMY29WHGcGfoQ89
2eQz11hubKx9vMAaP/3Zs7Y+e/vGWZNfwQebNazNTD+5NfQbqk28NdFht6b5yCGP2YYeH8Q1e9bk
Ueg7t4Z+2Fgz9i0W33eCKZCLISe7gJe26X7Hc+eS6IjhwlxGHy82762BL3pEMNqYicXH++GLHz+k
ea2Jbj7zto95h9v6wxpHTtbWd68/es/IzHnIjRBnHh4XsEZmH/bozcGeNfnxe/IYV911113XP/gg
X+tIIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIHdCPQQYTcy
6SMQgQhEIAIRiMCZJ3Dsiwg8RLhtjPvGoD/apmj6vemjnhv40c094tqJs7+atbGuh2oVc2GnDjHk
mP3xmXX2iZMLsb6x2K2PzeF52LNmNtdYbu5FLYSZPPioI47z0D9OvIIPOmOI00c/bKwZ5EE8p+tV
eTp/eNDTycHhyMOlFIHNNi7CJb2soLwosazdMyPGCY14/czF3vr42/BvffwY6I1hJs6zWs89M2I+
49hb37OxNx86v1xAPW3mcdbfH9562/NIsTm39yLnhWM884477rjxkUdIlUQgAhGIQAQiEIEIRCAC
EYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACuxHoIcJuZNJHIAIRiEAEIhCBJ4bA5Zdf
/opR+bYx/mQMeqrtLx/LtQmfPb3VzvNDAXqy5yZq1+j1Nx829Ig6+rHJZx773O3lxkac9bFbfyzX
OHO6J6f55jhqKua0Pnp0c085NmIYnovZPNYZqlXcMyPGOZMfwT7XN99q3OsfFttr3La/wNWfDKqP
ALwIMfoJTwjutatn75mJZ63vWK6ir37a/XHYI+7xAyKPBxR8bPqnpveb1+gY5iePYyxXme3kI947
WB8f6p87uxxEoAAAQABJREFUhoKP9dHhoxCHXDTG1Xfeeef1Dz3Ef9NJBCIQgQhEIAIRiEAEIhCB
CEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIrAbgR4i7EYmfQQiEIEIRCACETjzBM4666zl
0KFDfhHh3nECerIZ9FHTW01ftn3W7O3BZsYPnT3W8948w3xcLvTkRGi+tpebfAh219bHhzUDIR4f
Bjr7uq3Jfs6j71CvMfaaG2s97MQprLkbw9zY3LNGb33yuHftWfFVrG9+5n0LyU5XvNB8WA/JRdSz
5rLMiBfY2X1Kr4+xcy58t+v5g+FnTtb4mWMsV5uPAdhjwwdfBd3sgx1xZj3Xm/fWY2Z4bvObmxh0
1je3uu0HCOhnH+zcky8iXHn48OEbjx4lVRKBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAE
IhCBCEQgAhGIQAQiEIEI7Eaghwi7kUkfgQhEIAIRiEAEzjyBgwcPLpdeeukrR+Vbxrjv2AloirY5
npmGffqoWWOb92O77u3JxsdYm6vNRw7/5Xd86M/Wl5zsFWPNZ33s1p99WOPDrH4sV3FPfmIR/a3v
ebDhh92ZGHvrx3I98/ZZ8ddnjjUHcZzPe27Xx74vmQ+yrwQjyEMKkL2H9WIzBOwCY238yeZtv+G+
ir5sWOMnQGoz0DFo3Lf+WG788SGWeQY679Ej6BgIMdZ3bR3s+HEWaiLW94HBnJ94z81MHuvohw9r
hvVYnz/GVUeOHLnh4YctNTRJBCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhE
IAIRiEAEInACgR4inIAkRQQiEIEIRCACEXjCCBx7iMAXEW4dg4cI9Ek/OIZ936zpmaa/GrFhGj96
vB3anfGzBxxf9ehYz3Hmx4/BYwV86Oumvv3dY7nJgx9ijTk/Ns+Jz26+2IijPnnwMxY9feecZbaj
Nx+zcernvWv9h/sq6JV5rW5P83byPQUfc+aC5uEiHpx5/nH4IQArkLFcxUugR8hhHBDZG2tO6w3T
6useX/3xNY7ZnNY3ZphWwYcYazCfMwZn9hzmNJaZfMwM7NTX33hyMzzbWG6YmYsY4q3BTPycb2zX
3MRcMMZVd9xxxw2PPIJLEoEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhA
BCIQgQjsRqCHCLuRSR+BCEQgAhGIQASeGAKXX375daPyLWPcPQY92TbfM9uf7ZqGafqrkbnZHx17
/Jnp2TYPe4b94/iaA39j9ZnjsXsmfY21eVu98eip756ZGPwQ49kbS4z+2/H4aDOW2bX3Io41Mz3p
3N9zjOWmPmvE+uTet5DkdEUIzlxC8ZLstaPjYszzpdEJT1/3+DKENZabfELTRh7EHK5X5fhDwOzN
rw6YwCcWsebObqe+a32sb11mbfPsmpw8MECsy+yjBeqTE8HXvOzn3BeO/ZXjiwg39kUE0CQRiEAE
IhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhHYnUAPEXZnkyUCEYhABCIQ
gQicaQJnn332cskll7xy1L11jPvHoG+anmoGawd7erzpo9Y+luua/mxszAx9XZMDMTdrfBBm/exD
t6azfvaYW3+Ow0Y8OuLc48veXnPWCLPxxlhfOzOCL4Nc/qP3c36YsLfHXF/zsjc3a/XOQ7V/Icnp
ypyDNYMLqZ/hCYCLMLg0AhyEGC/JHj3xDPPNsAQ5zKvgg6+vOFCyJye5aPa39lhuoGMzP3rWDM/C
OcmD4OuP5fnQWxs/z8Xa+uTyAcJYrmLeOQ8GYqzPWj917HmIcMX4IsKNfRFhkEgiEIEIRCACEYhA
BCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCJwCgI9RDgFnEwRiEAEIhCBCETgDBM4
cODActlll/EQ4UNj3DfGg8eOYP82/dj2jdNr7aCP2jUz4kwsMQh91wxs6Fgj9Jkr+CPYqK8PMzHE
Wg9f966NR2+stdir8wsNQ3XcWYjXj/r0jSPMnnu7/14f7Ip52KvHz/qcyb3nw9fzs96zmHzPgVMA
l+PADPJxIA7KPB/Ow6tnP8cQSy5AszaXM3H8kIKwxsnq44cQQw325DHGXNjUMZtf36E6TrAbgz9i
fXKaCx178lgfmzFjufmPkpyex/qzLzkU82K/aIwrb7/99hs0NkcgAhGIQAQiEIEIRCACEYhABCIQ
gQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACJyfQQ4STc0kbgQhEIAIRiEAEnggCZ5111nLo0KFX
jNofGuNPxqA/mj5xeq+3m+XptUZvbzZ7B/3XPmIYy9VPf2ZiyIcYTy3roGetjhjr28eN3VysEfaI
9fE1P3pjsG/3x6PDbh3W1Ccnw/1YrjnVy4g66JhPll//Yd7cyzU261Nn30Lxx0s4EAIQfwh0XsSL
40NDvS87hIAeEQz+rN1zUdboiWE/5ycnQl4b9rWjJ5YYYvkygeccy+PqmJ9Y1ornNCe5rGNOalCf
/Nj9AsNYbpiwPncM6xMz38ua1seGUAObNZ801tfceeed1z/0ECWTCEQgAhGIQAQiEIEIRCACEYhA
BCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRGA3Aj1E2I1M+ghEIAIRiEAEInDmCZx99tnLJZdc
ct2ofNsYHx+D3mmaoumXpg+bgaCzb9uvBswN/PRYI/jMfdfmsAebGPu3mdHbF05e1uiZjSWf9ekL
t761yGF96wzVKnMO8rCf81sfZ+vj45nM61mpz1nIhW2+qzrYucbHc8oUneuxPD3xAKeXZSfaQ8+X
FwAeNNBzGQ4PEPwd7rERMw/iPCfxCH7oiGONsCfORn10wsPmuaxvju09cfO5idPXfPOeNeJMfcQc
1GZ4LvywmYP83IMZv20hTt85ji8iXHHkyJF3Pvww4UkEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQ
gQhEIAIRiEAEIhCBCEQgAhGIQAQisBuBHiLsRiZ9BCIQgQhEIAIROPMEDhw4sFx22WWvHJVvHeOT
Y9CnTVO0jdH2Tbt3pt8aG3tm9sTOw77uoV6b95kVmvlnIY4+7jkeO7nt86bGXB/7vCcWf4b5xnIV
beRAiHPN3jr6MWvnHuyZ5zjPw8ywNjOinjXxiDr3O9rT+JOEpysARjiUh/fS2NBh8/DWBIY/jj82
vnMjv/mY8SWPvmO55nQ/19fX5n/z4Gt9/PVTj47XIrMYSy5jtBNnff2w4cv9+PIBegZ19WdtLmzq
re8Zh2kj3oUZuWCMqw8fPnz90aNz6dXWHxGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQg
AhGIQAQiEIEIRCACEYjARKCHCBOMlhGIQAQiEIEIROBPAYHLL7/chwj3jOPQTz1/GYBe7LlJmjWP
COj/nr9MMPdks54HvsSQG/2cb2zXfm/1+OBrzzj1t8X65iQf8dRB3Dvbq05vODoGa3vFvSN66rO3
Z9xzbfvrx4zgZ3+5NdAh+LBmxoZs59vR7uNPL7GP0E0IOYSC0pwcmrUXYM0AEFC3L+MlmbERZ8xY
rmtsiDldz/WxIeZjby3W1scHQUcdczAzOKO5sLMm58nW+JvH2f8Q2JvbHP7Yw7TWISfiOVhbH501
rUOeJ41x1fgiwo19EWGQSCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIR
iEAEInAKAqfzEOHuu+9e/uAP/mC5/fbbl3vvvfcUVfZuuuCCC5ZnPOMZy3Oe85zlyU9+8t4TFBGB
CEQgAhGIQAQ+AwkcPHhwufTSS3mIcNsY941BnzQPDOydphcbHWLjv73k9majxx9f+7zHco2bfdAh
c05z68dsHXOuQcf0PipQp48z8fR4K+blXK6pjxCDTnGPnRyM7Tj7781FjHfWlzhzjeW6xobo73qu
vzrs9Q8SPh4iNC9DTnQccD48enT6z/sZCnpzmQewvjDZPjdgEXxcC9s82AVLzjnHfB7XnlM/8vjC
RJ0ztVjj49oa1se+7T9Uq05f9q6t73nI49cayMMXEa666667bnzwQf43l0QgAhGIQAQiEIEIRCAC
EYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACuxHY70OEj33sY8sv//IvL5/ufyyUZryv
+qqvoiFvtyukj0AEIhCBCEQgAp81BM4666zl0KFDrxoXunmM+8egdxqhZ5qecPYO+7H1sWGfWcE2
781DLzZrczGzt9fcxwfo6dE2DzOiP3nUEW9efBT0CHlYcx76zz2X8czWx2ZuZ/PM/tgQdAx90dmj
Tpzr2c98+CrEn0yv/VFnCz2q4ykcOISwcPNQXhwba78C4AW9HDMxiH4zUPx9gABwbcYQN9fHhxhy
Ifqh148ZmX200exPDfwR1ujwNTc5GeZhxs6MD2vOoN9YrnfQzzMZox8x1GK2vjp8fQiB/0VjXHXH
HXe845FHcEkiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgd0I
7Pchwq/8yq8sH/nIR5aLL754/XIBXzB4PIUvLPClhU984hPLU57ylOVFL3rR45m+XBGIQAQiEIEI
ROBPLYHLL7/cLyLwEIGebR4F2F9NgzQ90+yxIejcY2PPoO/aryOwZ23fN/3bxtvLjY968pELn9nP
vNbDHx17Zs+mH7GeibX157ORAyGH9dlbn1yIuZkR9Phbm3m2+djBOM83n414Y7brD9PexcvsPfLE
CC8HLEGiEwhr91xiXgsHnbECQocIxIvvaD/1Q5iPRn7+4wGoOnNQ1zyu/ZEFq324rv8BeA5n9OZj
9jzEs54fMpgbP4Y+6K0/P7IY6vV82BHnOc5c6xcR7rzzzhseeojrJhGIQAQiEIEIRCACEYhABCIQ
gQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYjAbgT2+xDh3e9+9/o1hOc973nLeeedt0l///33
L5/85Cc3+3POOWc5//zzF/5131kefPDB5b777luOHqW1aDQ1nX32wmOG2Y88H/jABxa+ivDN3/zN
c3jrCEQgAhGIQAQi8FlJgL/3jC9B8RDhljEeGOPBMfyLFP3k/OVp5y9QO/3l2uj1Rpi1z48Q8Jt9
8DWXM/nNx5p+burTs43e+mO5CntsCLnnGuiob7+3eamFL3rP43nNMUyrzfr0js+58Xc/n82c1vJ8
+HuOsdzUty46ZHu/o93jnxbfY9hx7hwW8ZLMHM6LCM4LM+PjhcdyFeMBSazgd6zH5ycHP5gN/fgY
j8362P2htPsDUd/1WK7Q0fn1A3JgZyZ2Pr/1OStrxLruqevXDeZ4Y6yvP7WsTz7rszZeHTHnjnHN
+CLCDX0RAURJBCIQgQhEIAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEdiew
34cI73rXu9akL3jBCzbJP/rRj65fSdgoji14YHDFFVds1DwwuO222zZ7FxdeeOH6dQX3zL/927+9
br/t275tVj8h6z/+4z9eDh069ITUrmgEIhCBCEQgAv9vEOBR5vj7xnXjtreMcd8Y9F7b0E9PtT3g
6oZqfSxAzzU2hN5qe7LRsbZn3B5w4tEhPjbY2e38OceYi3mOp3ebHMTbXz6WqxiDv2dmbbxnneM9
DwmMYWbM98NufmJmFtjQYd/uv59rmh/feT226555XzJfYl8JRhA5PBg5AA04xRro/BH8Qbn0/IPO
sTNI48gFLPY27lsfPSJI62o3H3t/BHxd60cOhPNi98fzDOSx/vxjuCZGMYbc5OPM6OY7mE/fYV55
Wh+7cfjI8cljfUUPEQaFJAIRiEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQhEIAIRiEAEIhCB
CEQgAo9C4PF8iMDjAh4ZXH311cu55/LviS7Lhz70oYWvJHzO53wO/7rvqvvIRz6y8Ghh1t10003r
Fxae/exnr19AWB3HH39aHiJ8//d///L2t799efOb37y84Q1v8HjNEYhABCIQgQhE4HElcOwhwstH
0tvG4DNT9Ewz6JVGmOm5pg8boeccoa+aLyjQV40/gq/+6O1Vt4fbPnNt+GLDjzU559pju+rRWR9f
hF5x65vHczBTw3MTax1mbWO50bO2PmvEmvaczznwnfvvsXEOhPrYt+u714YvcZ6b/Z7FQ+45cCuA
PF5injkce6Ah7lnPfkISLpfEjr+xPhgYqhUQs3H4mg9/YJqLmXzo/LHHcrXPfnNN1ubRd66FHfF8
1MYfcZ7Po7/19GePjdz8R4menKytry8+nov5gjGuOHLkyDsffhhTEoEIRCACEYhABCIQgQhEIAIR
iEAEIhCBCEQgAhGIQAQiEIEIRCACEYhABCIQgQjsRuDxfIhw6623Lg888MDyDd/wDcvFF1+8lvzw
hz+8/Pqv//pCUx0PFM4555zlrrvuWj72sY8tfE3huc997ur37ne/e32w8Kf1IcLLXvay5Zd+6ZcW
5v/v/2fvTKD1kM79/Wae54QQScypOUTRqhYlFVTNNV01taVuq4pW61JKr6JVlKVapVQSqn9UKS7S
KG5Lu8ypIEhkjkhknpP/fvbJ77PPl3PCOTnJTdvfu9b+9t7vfoe9ny9dPdZ697dvvLE+nOtEf/vt
t+eXJ84888xo06bNOsnpJCZgAiZgAiZgAuuGwMqLCMenbONS04sI1FaXlwioq1ahNGsIPU16aq3L
OnP0stXlgaSq1JpLhx9CDsb0CP7MaWWeNM2i2KUdManvxkd67LQvxqoN1zq2CGuMtQ/WsaWhkz4N
67RTTuXXObAvx8RDpMNPZ8kLDf3QARrqV9rrkPT1bUaAsNFhy9w6CAD05eqw5NJYcdDJhzWA0Fev
J1UtEWB9QSwSR3shBmuIbIlZjrWX0of82CDV8Wq0NXpsyv2yxlw+ys9cObGpHqPrkFrfyZMnD1ux
gi1aTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE6iOw
ti8ikPevf/1rvP3229G2bdvo27fvP+VFhGnTpsWIESNi8ODB0b179/pwrhP9nnvuGaNHj47XX389
evTosU5yOokJmIAJmIAJmMC6IdCiRQtekdJFhPkpKwXR1GTTl2PVbKvGPC1nO/SqCeeFAHzQyVd+
2DBWAX7Zl3rlTaaVGIzLOMwR5SIW9d/kRxgrjvyYI2WvvPSlPhuu/FAc1ZrrHLKXL+tiwxjRvhhj
L9uyFwdsGiUEayqhWF5F/MQtQXIAfuWfQ9LrSxcIDoIPjTjo1ZhrnbFAEUc2rLdKTYCr46SlHBdf
2SkPtvgLvOImVRadg56GLYIdwh7Q8cYaPfFky5h1BHvyy075FZM5org1sw94YCcf1rhK3Te9iDDU
LyKAw2ICJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC9RNY
FxcReCXhoYceivnz50fPnj1j6dKl/3QvItRPcN2v+CLCumfujCZgAiZgAiawrgi0bNkyunTpckLK
93ZqXESQUI+tRv304tRUh63abK2rTlv12NJjp7ryNMxj1qjFpmeNXnHTMEt1fOyVX/HIScNfQv5S
z1z2xNBFCdWC46v82EnKOMRjjq/q35krLz37RRRXe0CvddZUfy87xcC30aLkjQ6QHDkQwoZ0eOYc
RF8Gm2YdHWOAyVZ7UJy0lO3o8eELlm9pwzq+0ik/eonyE0NfkvILpPw1l4966YmJLXoJc/nrbKxV
++oMrGmsuPQIejFjrhjSo8NW+dqncX+/iAAWiwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmsnsC6uIjADlI9T4wcOTKaNWsW7dq1y5cSdtlllxgwYEDe4L33
3hsLFy6MzTffPPglYMlzzz2Xh0ceeaRUq+0nTpwYDz74YM7F2TbbbLMYOHBgnH/++fy6cMX3tttu
i7vvvjsuvvjiePnll+OBBx6IV155Jfr06RMHH3xwfP3rX49Wrahtq5G77rorfvOb38SZZ54ZQ4YM
ycoyxrPPPptjvPXWW7HjjjvG97///dhuu+3it7/9bdx8880xbty42GKLLXLsr33tawpb6R999NH8
4gKM4LDDDjvEUUcdFZ///OcrNrfffnuO9/zzz2ebQYMGRevWrYN4Bx54YMVu7Nix+WxPPPFEfoli
jz32iL333juOP/74aN5cZVYVcw9MwARMwARMwATWIwL8rZReXzo2bWlCavNSo45a9d6qC6eAvhyr
vhpbCWOa6s1Vp05f2mldfvTYlDGxYa6crJdj2SZ1Fs21B5T48Eee8vNHidbp8aEh2NS1jh0xOL/G
stUe01LFlzF2iPZLjyiX1sv8sqmxbOCnAjfQbRVzAGjT2iS9Niqd5gRgjJ4mX3TluPQjBwCxoTgf
sIyRMn+NpiYOX4BsiIWd5owVn5z6q152rCOa6x8EeuWXjWIpBjnYK3+hK18a5vzYopMPY/ITEyEf
cRQbHWN02ie2vKzQP72IMMwvIiQSFhMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARNYDYG1eRGBlw/4VV/J3/72txgzZoym0dQXEd57773YZ599gssIXCLYcMMN
Y8KECTnf1ltvnS8opMK+PP/BD34Q1157bbb/05/+FB07dswvNXAJAPnSl74UV199dR7zcdVVV8WP
fvSj3J9yyilZrxh77bVXPPnkk9GtW7f80sOKFSvypYcTTjghrr/++ujQoUNQy6TYF110UZx11lmV
2OyDWEivXr3yJY158+blSxtXXHFFnHrqqXntZz/7WfzqV7+KSZMm5Xi9e/fO5/ze974XRx99dLbh
wsfgwYOzTZs2bfKepkyZktfOOOOMuOyyy/LYHyZgAiZgAiZgAusngXouIvDr/6qhpm6aJlHdNz11
2uWaasyxLf2IRUzVbjNGsGFNfsSkUZ+uenBslDMNK4JOOVQnThziqS5cfsqBM3G1F9a1Rs+cRhzs
iMOcPIyVp4yvM6Tlynmq/ZQDPXFVf6/8xGi0aFONDpAcFYMNaUxPEwAOgdALCKD467v6C8OGJj1x
5EM8BD998copmMpNDOyVhzEAFYtecfSF6cvDV35pmOMoHvHlh075FZ+59IzLOOTBjnXlp0ePTvmZ
y48Y8knDbEf+Nqn5IgJELCZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAibwIQTW5kWEmTNnBpcDttxyy7wLLib88Y9/DIrskaa+iMArBsOGDcuvCNx0001BIf74
8ePzSwCjRo2KG2+8sVKwr0sEFPv99Kc/jeOOOy4WLFgQvDpw4YUX5pcDXn311ejZs2fe6+ouInDZ
ggsCvKRAvpNOOileeOGF7HfeeefFueeeG4sWLcoXG6655prYZptt4qmnnsrrvF6w22675QsFv/vd
7+ITn/hELF68OO64447Ad9NNNw19R9khfey5554xevToeP3116NHjx5SBxcguIjBCw+nnXZavtwA
A85++OGHx/Tp0/PrDIcddljFxwMTMAETMAETMIH1iwCvF6XLjcekXU1Ibf7K3VEzTW01deSqt1Y9
NiboqaNenBr11thSc40NTRcZiCM9PUI8/BHWEdnUzGo+WVN+xspPr/zkIX+ZR/HpEcXGhoY9/sSR
YCN7dKwpps7HOufUPhSHHlEM5UdPDPkwRtBrT1mRPrSmeYP68iANciyM2RQbZSM6KMuKTc86X7q+
PK0lVfbBFx1NB1I8euVIw7yOHbnKtdJeeuyxVX7gIcrFWLCJVy3Ky96JKVF+5rJhvbQjHk35eR1B
X570SVXxIY4EH0R7U1ztm75jan3Tzd5h/GFtMQETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETqJ+Aitw/+clP1m9UxwpF8wiXCSTjxo3LRfQHHXRQdO7cObiI
8Pjjj8eQIUPyqwDYTZs2LUaMGJGL5pv6IsKcOXPyqwNdu3bNhf3a1y233JKL+nnJgAsFiC4iHHro
ofkSgWyXL1+eLwpQtP/ggw/GHnvskZdWdxHh+OOPj+uuu04h4u67747TTz89Ntlkk3jxxRcremJy
CQHhVQNebeClhBkzZkTr1q2jS5cuFVv0O+64Y/CawWuvvVa5EIFBfRcReG1i9913j+233z5GjhyZ
X1RQwHvuuSe+/OUvxzHHHBM33HCD1O5NwARMwARMwATWMwLFRYSJaWtzU6PeG1FhNHXn1FJT9C+d
+qTKOs1Vy05PnbWK85lrDVvWZKM16aRPJlnKSwfyVT58NMYYX0R2zKkXl169/LRW2mlMHOw4A+ev
rr8nB/7KlYaVvWhNvsqLHpGf8ktfs9rATzbZFEIcbYheXx6x2SCNYnoOUwKUHXrZpGEeowNeCUKF
+WUM/Mr8Ak4+pMwvW/rq2NiiU2xsiKF/RPJJqopNuR+Ny7j6svDlIgI9OkR2JRd05EeUn/Njoznr
tHapbTp16tSh/DFuMQETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETqJ/A2r6I8PDDD8eGG24Y++67b2UTzz33XC6ub+qLCEowf/78eOaZZ/JFiFmzZsXzzz8f
Q4cOrVWEr4sIP/zhD/OlAfnSn3rqqXHfffdlnwMOOCAvre4iwk9+8pP8CoJiwHTw4MHxuc99Lr/Q
ID39TjvtFBMmTMgXEXitoBQuHLz55pvBnmlcGODCAvvv169fxbS+iwi6APGpT30qvwJRcUgDLjRc
csklse2228aTTz5ZLnlsAiZgAiZgAiawHhFYeRHh+LSlcaktTI0LB9RIUzNNHblqyFUojY71ci6b
0odabWLRy4d12SgGvcalT1JX8lPDrXz4y56e2DTqv8v4xKL+XPlZxw6hl175pWPP2CLaq3yxRVcd
G11dPuy59MEOUQxyaj0vNOaDAGsqxNBGys0RV3oOqC+BMXasoQOI7OQvwPToJMzxUfE+EIgnf+Za
Qyc9Or5Q5sqvWPJPS5V/DMrLmkDji77Mwd5Kf+bk0p6VC52+UMaI8jPXXnUe+anXuub4tE1tk3QR
4U5fREgkLCZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiaw
GgLr4iIC6QcNGhRbb7113gl1PVxQ2HLLLWPAgAFZd++99+bXDDbffPNo0YJyoBrh0gJy5JFH1ihW
80nR/mWXXRYPPPBAzJs3bxXL8jUAXUS4/vrr49hjj61le9ZZZ8Udd9zxkS8iVMfQRQQuMXABopSB
AwfG+PHja11EGDZsWNx0003xyiuvlKaV8Ue9iHDppZfGNddcU/Gra8DLC5MnT65ryToTMAETMAET
MIH1gECzZs2ie/fux6WtjE1tUWrUWlNLjdBTa01xPnXZquFOw2xHT321fFRrrXptetVzY8tctduy
wYc8zPmjTD7SY0/9ufIrXrU/MfDRHuUve8VRDp1Ndsy1loY5Fr7oOD/CGB0+uuTAGJ3iKT89e5Ro
TgxsFUf5ZdfgngBrKuWmGLNxNlwKG0ZHL2Ese/YhH/kLitb0pSkG9lrDlkaBfumXphWp66zaO2uM
iS1/7Y8ApR1zhPxq+GDPqweMsUd0pnJMLu1FOZmzd+WXnl57077k2zGt9U9/LA9dsQI3iwmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYQH0E1tVFhJYtW8aQ
IUOiY0fKeyLee++93HQ5oSkuIpx00knxhz/8Ib868IUvfCH33bp1Cy4znHvuuXW+iFB9iYC9rcuL
CFw+2GeffYLXEQ4//PA83mijjaJr1675ZYbRo0d/5BcRbrnlljjvvPPisMMOi69+9ascZRXhV5a5
FGIxARMwARMwARNYPwmsfBHhmLS7SanNSY0aadVkq6Y6qVbRUV9Ngb5qqrHVD9aX9easM2dd8eST
VDku68Qr/Vgr7bUn9KoTVz7iKT9146wrh/LTKwZjNXTkpYZc+dOwIsRF1GtMHtkzZp258ktX2imG
cpd7Sq6NE4KsqSiGNsSXwWaBUwrrgOKL52DyEwjm+OGPMBcU9ILBugCxXtqTUwX9+NCUh56LAspP
DAQf1pjLPw0rc/mTh3zEV37slV861hHFlT/r5Ocfns6QhpU9olP+cj+MaVonBrHapdbHLyIkChYT
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET+BAC6+oiAtvo
1atXfPaznw1+6RdZvHhx8Av9yJpeRJgwYUK+eEA8ivt79OiR4/LBKwG8FrA+vojwjW98I7+acMYZ
Z+TXHLRp2PBiBC871PciwqhRo6J3795yyRcu9t9//9hjjz3iwQcfrOg9MAETMAETMAET+OchsPIi
wvFpx2NT40UE6qips6ZH1FNDvTi1mj+sWPngIgK14tipjps1YiDSUztODASdLhFkRfpQPTprjImJ
MFcNN/nJISljKA9r2GtNemLiy5pylLHQqU6cserftY/q+nv0xCSeYup8zFlDsCOP9sEaOuaMEeWo
mTXwU0Ea6LaKOXHYqECxQUSXAnQAdFqTPQcvDyaQHExQdEjmfDmKKz/l15r2ITv8saEpP7GwwwY9
orls5M8aNqUPMTmDYpdr+GPPfz2wLlt01fZcLEBPU35sEPJLWGdObHouIvRPFxGG8oSbxQRMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMoH4C6+IiQqtWrWLF
ihWxdOnS2GWXXWLAgAGrbGhNLyLMnTs3F+6T4+mnn67kGDNmTH5pYOLEievlRYQf/OAHce211+ZX
DG6++eYKl0suuSSuu+66PK++iMBljhdeeCFuvfXWOOSQQyo+ixYtim222SZmzZoVP/7xj+Pkk0+u
rF155ZXxs5/9LA444ID45S9/WdF7YAImYAImYAImsH4RWHkR4YS0q7dS4yICdeDUUFOTTb20CqTR
MVYNNuOy9pq56tLxY0xPQ7AltvToyhi6qIANQn7lxFdj1pgrH2PtU7GxZUyv/MRTDnTyo6eRFxt6
5qpfl39SVWIRW/bYam9ixrwcp2mea8+s46d9MG+0EGhNReB0GG2euOVGNWZdttq8ehXas86BS1t0
iKAqb+nDGoX9gqOc2CLkUUzNtRd61rCRH7ElZQx0zLFVfs3Jr/MQj72wpjzYl7HkR6/8jPHDFj8E
ncbMebttk8mTJ9/Jf7xYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAE6iewLi4itGnTJr9QMGnSpGjRokUuhu/cuXOtTa3pRQSCHXXUUTFixIjo2rVr7LXX
XrFkyZJ46qmnom3btjF9+vT18iLCs88+GwcddFAsX748v+jAJY2XX345Ro8eHd26dYsZM2as8iKC
XlGA66c//engNYXPfOYzmSfnhQNn33nnnfOFDF5OeOmll4ILIY899lhsv/32tdh7YgImYAImYAIm
sP4Q4G+l9LfMcWlHY1PjxQFqx6mfRhgjFEmriJ456+jKnvpr2VOkr9psbFQTzlhzxWOOMKdmm57Y
+CheGuax6rjxwaZsyi8/bBHlY1zGRq8ac9aYKz9z7ZleZ8W+nGPHGqJYys9c+0OHkANRDPYoXV5o
zIeCN8ZXPvqyiMWG6DXWJpnrUPpiSj8OK7/qcVrKgl6QFavah9isocde+elpiPIrhvahdWzw11z7
QU9+zlj6VudiDV/sZM8cPSJGilH2NRY1/sqPjhyILjngk19ESBcRhvoiQmbjDxMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwAROol8C6uojQr1+/mDp1asyePTt6
9uwZ++23XzRrpvKfiKa4iDBnzpw488wz49FHH43Fi6nbizjwwAPjpJNOiqOPPjqOPfbYuP7667P+
0ksvjWuuuSZuuOGGfEEhK1d+nH322XH77bfH8OHDY/DgwVnLCwOXX355XHXVVXHKKaesNgYvGHC+
IUOGxB133FGGzpcD3nnnnUj1TdG6deu89sADD8T555+fdSh69eoV7A8mjzzySH79oG/fvpU4XOj4
7ne/Gw8//HB+ZeKKK66I0047rbL+0EMPxU033RRccuCVBC4gDBo0KO992223rdh5YAImYAImYAIm
sP4RWPkiwvFpZ2+ntnDlDvUqgOq9+SOK2mv0qummL1uaZht6BHuabKjJJp5ipWFljbEuLzDGTvbM
GSs/c2IQF1HPGBvWlEO56aknVw7ZJVXFXznRsa6cikcM8SjX0GODaMycMXEk1J0rh+xYY0xrtCh5
owMUjhwMqesAOrSK7mssaw6JDh8OzGFko4OVc+XAFj0iMFqjxxcbnQ9b7PgiFVc50ZV7rrZR3GSW
v1j5EZOx8msue/TaIz37ITaCn+JwuYAxUtowR68YzBkTH7tOqfV79913h3Kr12ICJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJlA/gXV5EYFf/R83blwunh84
cGBss802lY01xUUEBeMSwoQJE2KDDTaIjh07Sr3e99OmTcsXKDbeeOOgCPHDhHPOnz8/unTpUutS
h/wWLlwYEydODC6BcBnBYgImYAImYAImsP4TWPkiAhcR3kltQWrUR6somnpv6qjLAn50ZY241vFT
fTVj+WqcVFkUi3Xy4EOM0h6bUqc6cWIhyi9f1pWfNTXthzljesVKw8q5yIXQEwcb6fBjP9SP4y/B
Bp188JON7FhjTCMOon1qnJVr8qGNrkkMNkccDiURsHKNg3BIHVagdFB8GWtOj8hP0PCXnWIxV37s
VfCv/NjR0MuHHj/tVfk0p0cUT37MlV97Y6546PRyAfm0pjjqZa8vXvmq+xSism+di5gdUttkypQp
w/kPF4sJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmED9
BNbGRYQtt9wy2rRpExTCv/nmm9G2bdvQL/pTOE9xPEV2AwYMqBTQv/baa/mCwuabb57XtOPnnnsu
D4888kip3JuACZiACZiACZjAvzSBHj16HJsO+E5qc1Ojplr15WmYi/CZU1utvrwoQE12WUStMXrZ
Kx5r6BHpqMcmnuKozl213Kzhp/ysK38aZj/F1JyYilf6kVOimMqPHl1ZU84aPjTti15xlCepsmhO
j8hPPfER1sv8ipcXG/qhZA31q7YXcOnrgqpLADoIPrITPEHQXOvSM9ee8Wcs2zTMIlvZaV1fDnNE
c+yAWF6FxUZF/+TU+coxOpriE0ctDbOU68TDX2dQfmzIX/P+WBokwUb5mWMjwQ/hCnP/dDt46NKl
/Ju2mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ1Eeg
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
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJlAQ8EWEAoaHJmAC
JmACJmACJrAeEOjRo4cuIsxL26GeunwZgFrsskiaMZcIqP8uXyYoa7IZlw1bfIiNvoyXprneW3ps
sFXNOPmrRfkVk3j4kwfRXL1q1akNR0djrFpxnRE9+ZmrZlz7qraXHT2CnerLlQMdgg1jetaQ6ng1
2kZ86hCNcK24EENQUComm2asAzCmAQio1YfRIelZw08+aZjHrCGKqXGZnzVE8ZgrF2PlxwZBRx7F
oKexR8VinTEx6xpjrzjq9Q+BuWIrhr7stJTzEBPRPhgrPzrlVB7itE2tX3oRYbhfREgkLCZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiawGgK+iLAaOF4yARMw
ARMwARMwgXVMoEWLFtG1a1cuIryT2oLUqJPmgoFqp6nFRoeo8F+15KrNRo89tqrzTsPsV9qgQ8qY
ii07euVRzOy0Uq9LBdLJRj3+1HhLFJd9aUx+BB90Es1ZJwat2k/194qFj84sW/wUKw3zmDVE9hqX
+bNBQz8I2BQiaDoMMdGxwXLz6NHJvpyXUNArluIAVjdMqvcNWAQbjQVbcVgXWGKWMcr9aKx9yo44
umEinXpyMcZGY+VQftar7ZMq62TLXGPl136Io9caiMOLCP3efffd4UuW8L85iwmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYQH0EfBGhPjLWm4AJmIAJmIAJ
mMC6J9CsWbPo3r378Snz26ktTI3aaYSaaWrCmaupHls2Ktinl7BWzhWHWmzGikXPXLXmunyAnhpt
xaFHZE8c6fBXXGwk6BHiMGY/1J9rX/KnV37WFFu94pT2rCHoaLJFpxp1/DQu7RQPWwn+dem1/qG9
En2o4WoM2IRgYaZN6eCsMdYrADqgDkePDyK7Eij2uoAAcK3JB78yPzb4EAuRHXrZ0SOljdYo9icH
9ghjdNgqNjFpikPPOj02jNmD7NIwn0F22pN8ZIcPueiVXzpsdREC+46p9ZsyZcody5djYjEBEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE6iPgC8i1EfGehMw
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
yoRqy6LFi+Ifr74aLVq0iJPPOaL2omcmYAImYAImYAIm8C9IgL+JunXrdkw62oTU5q88IjXT1FZT
R656a9VjY4KeOurFqVFvjS0119jQKPTHjzjS0yPo8UdYR2RTM6v5ZE35GSs/vfKTR3XhiqH49Ij0
xKBhjz9xJNjIHh1r2KLX+VjnnNqH4tAjiqH86IkhH8YIeu0pK9KH1jRvUF8epEGOhTGbYqNsRAdl
WbHpWedL15entaSqfNnoaDqQ4tErRxrmdezIVa6V9tJjj63yAw9RLsaCTbxqUV72TkyJ8jOXDeul
HfFoys/rCPrypE+qig9xJPgg2pviat/0HVPrO3ny5GErVpRbw81iAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZQEmjsRYSbr/xtDrPzTgPLcJUxtTszZ8yM
Gal9WB0Pv/y70cYbRYcOq76q8PyLL+SYp3376EpsD0zg/5rAjBkzonv37v/X23B+EzABEzCBf0EC
xUWEiel4c1Oj3htRYTR159RSU/QvnfqkyjrNVctOT521ivOZaw1b1mSjNemkTyZZyksH8lU+fDTG
GF9EdsypF5devfy0VtppTBzsOAPnr66/Jwf+ypWGlb1oTb7Kix6Rn/JLX7PawE822RRCHG2IXl8e
sdkgjWJ6DlMClB162aRhHqMDXglChfllDPzK/AJOPqTML1v66tjYolNsbIihf0TySaqKTbkfjcu4
+rLw5SICPTpEdiUXdORHlJ/zY6M567R2qW06derUody4tpiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACdRPYG1dRJg6ZWrMnj0nuGSw2YBNos/mvaNL9075
5YPZM+fGnPfnxuzUJr41JebPWxgbbdQ7OnbiN0hrS2MvIixcuDDuu++++Mc//hHTp0+PbdLLDYMG
DcqtTZv6X3ConX39n/3617+OSy65JL7zne/E6aef3qQbnjZtWjz77LOrjdm3b9/YaaedVmuzpotr
84yN2dsFF1wQP//5z+N73/tenHPOOY0JYR8TMAETMAETqJfAyosIxyeDcaktTI0LB9RIUzNNHblq
yFUorTr0ci6b0odabWLRy4d12ZADP3qNS5+kruSnhlv58Jc9PbFpqiFXfGJRf678rGOH0Euv/NKx
Z2wRxZIvtuiqY6Ory0fnkw89ojk5FTMvNOaDAGsqgsDGys0RVxvkgPoSGGPHGjqAyE7+AkyPTsIc
HxXvA4F48meuNXTSo+MLZa78iiX/tFT5x6C8rAk0vujLHOyt9GdOLu1ZudDpC2WMKD9z7VXnkZ96
rWuOT9vUNkkXEe70RYREwmICJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACqyGwNi4izJ41O6ZOnRat27SKg0/YN3pv0qveHTxy95/jzX+806QXEZ577rn44he/
mF5jmLFK3q222iqGDh0aW2yxxSpr/4yKm266KRfEX3jhhfHNb36zSY/w4IMPxoknnrjamEcddVQu
yl+t0Rours0z1re1MWPGxP333x8777xz7LPPPrXMjj766Hj88ceD/sYbb6y15okJmIAJmIAJrCkB
LnGmV3eOS3HGprYoNWqtqaVG6Km1pjifumzVcKdhtqOnvlo+qrVWvTa96rmxZa7abdngQx7m1GjL
R3rsqT9XfsWr9icGPtqj/GWvOMqhs8mOudbSMMfCFx3nRxijw0eXHBijUzzlp2ePEs2Jga3iKL/s
GtwTYE2l3BRjNs6GS2HD6OgljGXPPuQjf0HRmr40xcBea9jSKNAv/dK0InWdVXtnjTGx5a/9EaC0
Y46QXw0f7Hn1gDH2iM5UjsmlvSgnc/au/NLTa2/al3y5Ft1/8uTJQz/sSbdkZzEBEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBf2sCa+MiwttvjY2lS5fGfofv
GVvvsFnmu3jRkhj3xsSYNvG96Ny9Y/Tq3T16bNgtRvz+f5v0IsLEiRNjv/32C37Nf8CAAXHggQfG
7rvvHm+//XbccccdMWrUqOjcuXPcc889ucj8n/3LX5tF+rqIsPXWW8cRRxxRJ6rtttsuhgwZUuda
UynX5hnr2yOXEE4++eQ47bTT4oorrqhlxr+tESNGxODBgykUrbXmiQmYgAmYgAmsKYGVLyIck+JM
Sm1OatRIqyZbNdVJtYqO+moK9FVTja1+sL6sN2edOeuKJ5+kynFZJ17px1pprz2hV5248hFP+akb
Z105lJ9eMRiroSMvNeTKn4YVIS6iXmPyyJ4x68yVX7rSTjGUu9xTcm2cEGRNRTG0IRXRA6cU1gHF
F8/B5CcQzDkk/ghzQUEvGKwLEOulPTlV0I8PTXnouSig/MRA8GGNufzTsDKXP3nIR3zlx175pWMd
UVz5s05+/uHpDGlY2SM65S/3w5imdWIQq11qffwiQqJgMQETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMIEPIdDUFxEWL14c48a+E+07touTvpWK11dWCT101xPx
9ujxtXbTvEXzaN26VSxcsKhJXkRYtGhRLg5/5ZVXYo899ojf//730bKlypbSTwqn9a985SvxwAMP
5AsKv/nNb2rt559xsjaL9HUR4ZBDDolbb731/wzP2jxjfYda3UWE+nysNwETMAETMIGmILDyIsLx
KdbY1HgRgTpq6qzpEfXUUC9ObeVfWyxVLiJQK46d6rhZIwYiPbXjxEDQ6RJBVqQP1aOzxpiYCHPV
cJOfHJIyhvKwhr3WpCcmvqwpRxkLHfujp6n+XfvgjzzVvxMDPTEZK6bOx5w1BDvyEFP50THHDlGO
mlkDPxWkgW6rmBOHDQoUG0Q4uDYsYFqTPQfHX3YCyVxQdEjmfDmKKz/l15r2ITv8saEpP7GwwwY9
orls5M8aNqUPMTmDYpdr+GPfeuW6bNFV23OxAD1N+bFByC9hnTmx6bmI0D9dRBi6bBluFhMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgfoINPVFhIULFsb4
8RNiw016xhGnHlBJO+z6++P992ZHs+bNol27dvnFhMWLqF2rkY026h0dO3XUtNI//+ILeXzat4+u
6Oob/O///m98/vOfj549e8YTTzwRvXv3XsV0ypQpMWjQoFiyZEk8//zz0adPn4rN2LFj43e/+108
9dRT8dprr8Uuu+wSe+65Zxx77LHRrVu3ih2+hx9+eGy11Vbx9a9/Pa677rp4+umnY+HChbH99tvH
BRdcELwUUC233357vgTBRYn+/fvHvvvuGwcddFBsu+221ab5xYY//elPwZng9alPfSpfnvj0pz9d
y3Z1Rfqc5+67784seBGCyxl77713HH/88UGR44dJQy4i8ELA1VdfHbvttltcdNFFq4T+8pe/HJMn
T46f/vSnmRsGjz76aH5ZYOTIkZndDjvsEEcddVT+DssAdZ3xmmuuicceeywuu+yyGDhwYGkel156
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
umujLiIo2KuvvppfVnj88cfjscceC2qcuPzAJQiEFxfSj7Dm1xPSryHLLfd//vOf47DDDot99903
ePUAqesiwi233BLnnXdetv3qV7+a7ao/mjdvHoMGDapW15o35iLC3//+9/jc5z6XL2xwceMzn/lM
8OrBqFGjQufh8gGvTMCeix2MN9poo+jatWt+DWD06NEf+UUELjSQr5QjjjgiRo4cGY8++mjssssu
eemkk06KP/zhD/mCyBe+8IXcd+vWLZ577rngu1+TiwgkaOj35osI5TfmsQmYgAmYQEmAv5fS/yce
l3RjU1uwco2iaBXH01OwTx01Y9bKeZrmuWqysZGviqsVjxj65Xds+ANNtsSs+YMtDZLIV/GUnzXl
L20YY0MvfRpm0Zz4+CKyV37thzXsWFePj2rr0zDvuXqv2Mum9FUM/Nifzlmdn/VGSbmRRgVITtqk
ADLXZnWwEgLrAsZY/nX11XbJPItsmTDGTgDJTUNH4y995U/Dij02+NKXQMs5egQdDcFH+TVWHtax
Yy/kRJS/5r84aufDX/umJ47y0JMfG8Y05WPcLrV+U6dOHbZsmVIljcUETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETGAVAk19EYFfhx//zoTo0LFDLixv165t
LF26NN6bPiNmz56d82+/69bx6YN2q+zl8fv+N1578a3YYMMNokuXzhU9g4ZcRPjHP/4Re+21V1Bk
/7vf/S4XwdcKlibvvPNO7LHHHvliBL+6TwE8rxp89rOfjZ133jlfDih9FixYENtuu23Mnz8/xo0b
ly9KcMaNN944GvIiQhlT46eeeiooit9ggw1yoT775tfx/+d//ie4VDF48GCZ5v6nP/1p/lX/8uJC
XRcRKK7ff//98zm5TNBYacxFBHLttttuMWXKlPjjH/+Yv4MhQ4bkX/jXPngFgl/7P+OMM/J5pF+8
eHHw2gMvFnzYiwjf/va341e/+lW+RMBLGKUMGDAgXX6ZXrmIMGHChHzxgFcguAShCxH48BIGL0jU
dxHhxBNPDLiXctVVV8WPfvSjoD/llFPyUkO/N19EKIl6bAImYAImUBJYeRGBFxHGpcZFBOqkl6Sm
um/G1ExTX42oYBo7aqzVtK4eO9WAYys9Osaln+JjR+OyAjbUdZNf9d1pWImDHaIcZXzWtE9s6rNl
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
EAIhEAIhEAIhEAIhEAIhEAIhEAIhMBGBB/MiAi8fbL655VGlXQygGFt5MC4iUFB+7LHHlpe//OXl
Ix/5iKla//d///flL//yL9t4m222aZch7rjjjnY54j3veU856qijBvbYYb/vvvu2iwUU8nMeCruR
8f4K/3vf+95CHGTWrFmFlyCw33TTTcsnPvGJNS47jBL/zW9+c/l//+//tXNRUN4Lxeunn356u1jw
R3/0R+Wuu+4q2267bVm0aFE719VXX11mzJhRbr311uZ2xBFHtML5K6+8sr1OsWzZsqbHh8sZ8+bN
G4Qf5Tyvfe1rCwX1XN545jOfOYjB4LDDDitf/vKXC5dA+ObIT37yk/LiF7+4XUBgr/BCR80XzD/z
mc80u/F+3HLLLeXpT3964ULCL3/5y3Y+9s0FFn+fR93PKN/DPf3t3/5t+b//9/+2KfvnW/PN+Z3/
m7/5m/IHf/AHbf7EJz6x3HbbbWvsdeutt26/Vzhjy2US+le96lWGL6Pw97tvt912jcMvfvGLNb4v
Fzu4eMK6wuUF5vfee2+55JJL2mUV19KHQAiEQAg8tATq/675IgL/8KBmm0sB1ldTIE3NNHPWEHTO
WWNOo34bX2q1mTNGxxid/tZy93riEQub3s645jM2c9bcm3b4uifG5u/3RgyEGP2+zE8sxNj0CPp+
7+7ZNf4hav5+f/3e8DfecH7ijCweZmTHcRw8HLA8CDqBMHbOIfqxcNDpKyB0CDZCVYdeEMajkJ9f
HoCq0x5/4zj2IzNHXGfMmvuwR288evO7t/4ig7Gxo2mD3vzsk5zokH6srvczVnsRod4gPZV/+EdC
IARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIARCIAQmJmDh9v/+
3/97YqNxViwUt7Ack8svv7wVXr/whS9sheUUid94442Dv4JPPc9//Md/FIr/kQfjIoIF5RSI//Ef
/3HLw4/LLrus/M7v/E57xYC9P+lJT2p7PeWUU8qb3vSm8qhHPWpQxI69cfirxLwqcOihh5Y777yz
/Mu//Ev58z//83a54H/+539asTf2/EX5o446qlDwTUxeQOC8p512WnnjG99Ypk2b1grx/av0o8T/
8Y9/3Ir7+av/5557LumaUPTOCwnwvPDCC9teLEjHgBcG2C8vULCPN7zhDc1v4cKFhRcott9+++b3
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
QZpBUh8hLVDIFxiUCyDKY33aFKGfOlxqhxBGpdrHBkIdykirvkV70qpPO7SHfbWPvtpXHuWI7Ko+
5bTPxNMYLNrTR/LUftwf4lwqxwa2xtq1kJ+IYCjUgWRxRIDw+9RrhQDJrcNm1kJzNwR2JV/Odt8s
Fsh19xlR8+nXu8Lr73eFuYzwtvT8DclO2pV2WsZWNY4I7JD+4HOF8NybhUC74z/dEFZZNJfsClrc
L6XfntYV/vJsIZmYW62cD//7uCs89HwhPGpjZPJ+foFc2GqlfBhbtKkou4A+bzsYSzZeLp/sxK70
YMPB7FKadUzcU3b8ftbGxdiXtp1Nv2L3lftbTh6bWgh/e7GQ7K7MDvRrL5ULD1v6rDs7wmfnagi/
P6h3O+3BjKlc+0OVz5ifsN3AmTPPv9mVkEGXsvHsaIR2iFa3/rsztNoKuIHtAL+WYRLLmx90hQds
3qH39oddCdFzic8w7xpKfidUN8t9Yn7e/WQh2Tm7yVbsFRfOhfVtN+u/PtcZOClgJdvtev45+94v
6jz8Akt0X1nfxtKsVT8qYlfu5wwD7GAP23+3+/yBHR4FJjgtcQJBOan1d+OQyW3hr/Yd/dRsDQlZ
Wj256L6O8Ns/85gKYQ7r35++3xKa9JQr19ka5Ve77v3zv+n8Wch2R19knoZwz9OFxEFsbtvBfIWF
G8IGdo9zGmjU56xzTyaqWcsfte/1ux/1rnnY4PuybAniIXr3PZPOueltXeHU29L7goPIUtGOyZ8x
IvaXbc1Ann29EJ54rSvkbZxb21pcSvQ9RYf1uhiSWs+9ax/tDPc81Rm+uU5jWNWeLb//W2c47qbU
KaZeHBGqnXv6voP3P+x7foutdeB62Na9jjyk2aVf36csdbCPMIPuNQz//XJXeMPWTkj3nMyyvM3z
NZaY+VmbVLKPgT6fssw9tUHYadP25n/xypwK30ecToZKwO7bF6anTvzAnKV2su8E8sH0rrDLWW3J
Owjp727cGHb/cokFmsIByjE3tocb/9FpzgYN4YZDWsLY3ls6QAvDozbQe6veZF33qMf85l3xQ3ue
zTWbHc9m7zdfXioflpiveDVJW6tm3euwuXPTPzuTOb7eMrnw7rQQHnqh094tuhKnEta6Nez0i3LC
ekx7/323Kyxl78lfttNjxjY3JHOfe1j87oGdWs/XmGi+7Sr58OPudeHKhzrCKd3r+tGcqvGF0mv2
dJvq9z/TGZ6xdywcX8B72QXT3wClEM96b2u9rpS7ZwPNr+b3CfPo9sc7k98x/LbiXScWnN+Yv/zm
WmzetIx30Lfs/RPhfZV3Nt7h9lq37xqyzudygZNRJIN9L4/nhzsiCFUPHQFHwBFwBBwBR8ARcAQc
AUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHYFZDwBwRdrcxT7GL3SIhTEGUIkQU8o91CCO9
/7TtdUTgH77oQSpI//mb2rBkTz4EJf1zXm3EtiC7UE4ZcdkhjZ7aj4kL9FM21L5lJXkqUz42qYu+
2ohtkaf2idM+uuoH/8AW/1352CQumxofacoQ6tOO+qG6pIkjaiNNVfkpI1VWm0kdO3RUQNFBhIHT
QQ2APJVJn4HHAxOQ1BMoGiRpbo7sqp7aV5n6IT3qo8Ol9rGFHjrkI0pLR/UpQyeug03GINtxGfXR
h3ZNuXTJK9aH0kQ+l9pHB6F9CeWksU2II8Ki5ogwyUKXEUaA3XJxKBjIiQjvGGn/uJs6gnaALu76
XkbO3Gf93lsPAfrnv283IpamZW+NhY3AeoyRlyC79ycDdUSAeHOsEUIhPcXC5Nt9rcaw7waNCeEx
LiP+gDkhHHpFWun0PZrDoZe3hTZmcyQQBSEMxnLiLe3hmkd6Fa8+oCUwpqGSwZCDqh0TBPZz7uoI
7PatL7DGgQMGxLNNzNEiFvSo87u/sHT1CqRSdkT9t52yMZocESCwQ2QvlkWN5PW6kedwQkAgg5+5
Z3NY2Qj6iHYDTxIlPias2Rj232ho5t5Uc3RgrkJoi2V1IzZCXoSA/H/bNiWOM3E5zjnft3ldLNd8
t6Wkk8nxN7eH64xwzX1ssWkPoS0WHFPOn5ju4h3nK17r78Z6v54R2ux+bLp8Pvxih/R7CXFzj3Nb
k3z1Y6RIcVnWvZ//oT0hD0J6/thuFQ4tsaxlBNZf7dQcZoscogYz96pdy+nLty5oS5x14n5tvkI+
/Gz7vmsj5az5B0+aec7FdYlD8D73m+mgWMPBATnH8lYqQf7+ntnEqYa19ipbc4tX3FrPvaRz0Ue9
OSJkmXv6vkfDKhmNHS2y1MEoa9T+tus/jjelBAeUI7fpO5+qfT5lmXtxX943h4DNT0hPESB/M5vj
Py8xx+M61cQvfaAjcdSjDnMYZx5ETgNJwj74zp+4W/SFV0EV4ZYntYb3zCnoq1/Kh+9v3hfXKszU
TLXae0tHsq57OJz++Oq2xGGv1ID+YE6T85vzZLFUs+6BNZgju9mz/6qHOxJHgdjmQZs0JmVxHqv9
uXd3hEvu7/sO0mivXayDOCgUv0+pfq3na0w0r9YRAefOn9lvgJft+Vwsa5qTxc/t+Y1zsiTrvR2O
dUV9zBJW+/sknkdnfL05fHGxvr+Ttj+tNbxhjt3xiVByKq/Uv9Psd86X7HQUyWB+a2Ajnh/FttWG
h46AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIfNIRMEeEPWyM
L9gFaYB//vOPcsiWEGREMCWPOCH/LCdOqDhp/qFLSD3ihFwIethWPnmxDTkqiHxA+2qTuopTT21i
i7j6KdvoEidU+9hTG+SpHiEX7aJDSBoScVzfkj22sC19dNU3YUY6jluyh/+uflFP/UA/s2BosCLg
NBh1HrtxRxWnXLrqvEIR7SnnBse65CG6KWo3rkMZLCGBozbRRQSubJEmrpD2FMdGLxs8nRSWlZQT
6maofaVpHxuIsKBM7aAf90f1CNU+cbWvvpKnuEXDOLsWLhQKV9iXkLTLCCEAGXWbk1uTm77n2o0J
qaVcVyD67HV+W3jGdq1GIGJ/yQjQjXZ3n7JdrNklescv5sOhEWH/yGvaw11P8nUIAdIRddgR9Y+2
Qy/22K3zaiNDa5flRLHoYyCOCOxg/3UjITN5ITVBlmKn97utbZwskB9u2ZT0L0lEHzFpn13UP5zR
lRC/2N3/g+nmqGC7wUO2/ZHVj6XWhNejbSfjO/+TYnfNgS09O5hCQPrAHDyWtB33zzMyeCmpdkwn
GPGcnb4RyOfrfT4X2JGV+/Sa3S/I9xfv3ZKcZKH22K31p0YwQ9hJeBMjhb/3UbAdwjt6iH7FxLnB
jEnt1iqMHRHWXSYf+G6wczUC+ZvxcRIBu1bHpE52P/7VDe3JLvbsdAxJv9Om3H22oz2nSyB7m3PO
RHPSKZZq7hOzeMLZrQnpi1VzSzulAyeJv9iu8zGpt5QjAiRACNPIm0Zwv0PzqoIjQlLBPtiNn3vJ
PecUB+Rbtsvut9ebeUyU1fK78ZG9rm18nG0FbBLvGH7gZW2JMwZrCrusI8fv0hy+Yrv/DrdkWffk
iKC+srv0sgs0JARUTn9AdjYy8aERmTjr3MuyltM+a8Sr3U4wEEbBuZwjAqffsBM70mrLxKQH03dc
To7B2ULCCRDMZQTnkq3tecQavI0R0o8oIqSzU/YOtv7R/5iAKVuEtZx7cTuK15sjQpa5xwlA/zLH
MeQpIw6zszYyMdpJmzv2dXtHaOn+ymepg80/2Xp5lK2XCO8EnLjCju9T3irYulQI69gu8j/dru+z
ttrnU5a5l3So+6PWxG5OB7nCdpPndIK7Dh+TtMqzAgeNnC1Xc9vu56yzy9hpTBd/u/QzPu5vuTgk
//WOmZG8Fx1lTp/akZ13uAXtOcVpT6zhrJkjJdXeW/qZZd3jfYbnJw5rnL6xrr3jLDFfLnHSwLEJ
x8lyjnnVrHsxgZy+fsawxWHueTul66/2veLJxPvEDQePSU5OQgfhmfyT69LvBevjZlaHZ9119j41
I80eMUcE5g3v18i2qzSGgzdLF4E/PNYZTrst7dwvd5z5WQtRfpezWhMnTt7Ht7P3ct6PnrTfCxDz
Ed4tjtm59/ue5d5iZzjWFdrJIll+n8TzaKCOCGD3ir2vI7xbcsoIJx9sb7/LYtnWnq2xw81g38vj
vlb6HRn3w+OOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCHyS
EDAO9AQbzxS72LWVf4qn5Js0bsmEMkC+iGyU80/eOOQfvOk/1HsdDqQDuQNdXaRljzyENP/UJ6Se
dCyaiPRlC534UvuqF/eVPCS2TbvUUfuEat+iSfvkUVfjQD9OWzIpI5QttU9a/VP7aks26KPysJFJ
ZDxT5e5KdITOYkuDVlydJK1BASQS11N99IrjiXJ3vkCWLfTjOtimTHlqn5ALUfuyoX6oHB3qK63+
kE/7jDGuW9wWZdRFT/qkyUeEkWzEYaqR1lf75NEGAtOE/lAnORHBHBEmuSOCoTFCws2Id7SHqLaR
kV/LSUy45OQDyNW6udR53IhcrxnxSDvnx+SbrYxoeqTt1C59CO6QX5ByDgJJoX0MxBFB5EvITpcY
YX4xI2gjELn2udhOfDBHBQhhEM2KnR5iMjiE+18ZDhsaOUoCIR1i43ILxdN6+Amv6s9AwmrGxH3a
87cpuZfdqDn9AByQaYbfLme2hndtl192UGW3U4S5Q53n3uhKdia/6FvNYZw5cSA4pBx+dXpvix0R
EoU6/ZAjAiTAK/dvSXak3+aUlHx3gJ1osIedqsHpD2fbKRCrLJoLZ9mpCMhL73QlzhqrG6m2G7ae
EULCoxzyHXOvWKq5T382XH/cjev3Nm0Mu67BEm1vHbYqH3hpW4/TQylHhLjdJ42cNtEcipByxMt4
t3OIqjgdILT17QvbwtNmY1lzWLnQ7nspqSUZHDzBFTnC5uo2Rm68+V+d4ZfXtwcciY7bpSnsZ4Re
hLmMU9JwStZ1L3ZE4N5yjxG+a//X7dA1xp6if/heS88O0lnnXrVredKRoo8f2Mkc7DBezhEhVp9m
jgWbHJ/es1MmNIc17LtSTk6yk2autpNmIOv+8ftjErK2dPX9Y326/uCWhFCsMoW1nHtqIw5jLOMT
A2Kd4YpnnXtx/0To5Vl6z49TknxcXipeTZ1v2trD+rHU/A3h0n36romcZvSWOUrFjipZnk9xH6uZ
e6pXa0cEHPhw6uKd5Hr7PuMw8HV7nnLiDURe3qMon2+OBiOs98VIfRxIiNPnTqen37slzbESLIuF
NfOk3ZrC8guX/04W1xmqdNZ7m2Xdu98c9n54Zfpc+PVXm8L6n+/7XOBdBse+4vfD4rFWWvdiUvbc
RgKf9J3mQIjgGHuEreXIibs2h7WWTjGP36cWNMesi8z5ZM7uUwJw+Dl4ctrvcu9TtZ6vSYczfGin
fU7VOm+vFnOe7X1D0lqOWU7E4WQcJMu9pd5wryu0OVDJ8vsknkcDdUSI+3PKrR3hSjuNY3n73VLO
YTnWH2ycd2VOceJdl3dj1jYXR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFw
BBwBR8ARcARmJQSMA727jfdFu9LddVNHAv55Kr43cbjX7OQKVYA0YXxZMtEhRNDnkg7/XMeebFm0
p4w4tkUAQU/6lBFX+6TVPnHsS9ChTG2obULIbGpDepbVU19tkke52pQ9bAiPuIx8dBDFSRPHjgSy
h9qQHmXEuTKLGs9sIKrIwJBSA9CgGUjcYQZJHnWIUyYd6cVptaF6pt4DjMoIqYuOxocNAORGyq7a
JC/uc7GO7JpacmNVT/3WjVFa+uSThxDSH2wj2JAdnAuII7EOafJlgzRx7KM3h12LdHV1TbLQZZgR
+PUf28PTr6fkaXZ3h3jFjtTs+C8Ceqku7XNRW7JrLEQTiNp5zZZSypY3+a8d4fTbO5KJwKkH1JOw
ozUEOQj+7FjOzuXlZCCOCBseOyNAYtxixfxMuynf+PfOcIyNGWF3YXYZjiUmg2+3aj4cvhXTurJA
pNKO32hDvoE4WA9SzZjOuKMj2a0csthNRvyF7ByLCPrME3Zv5gQMdibf7tSU4HjgJo1hwppaHtKa
u3Xv3F+OOBfbr5e4xrnWUrlw4m7pfFzXdpOGJCriok6B+Nxnc+bwUn7Oakzn39MRLri3IzmdoxSp
t5r7xBxmLnPix42H9HWouffpznDYVekcH0pHBOYCc4K5Ibnwvo5w3p87EhI4/SgltfxucPrDvhen
xMyjbSflLy6WC7ue1Rb+Z6eE4JjAerLlSenc3HeDxvCNr/Sdm6X6O5R5Wdc9OSKwBkM+nsd27ZY8
YbvUf+uC3jHHjlLSKQ77m3vVruXFtklXIuTGdaohg0NO3qN79+2fmPOaTkvA3q7mgDLVHFH6e2bU
cu7FY1K8nhwRss49jYWwGqcC1aumDk5C7P7PKTqX7dvS8wIpW8VhludTbKOauad6H9tXba/zU+c8
8jYw0vr+5ow2VKLTW8BgkmFwoT0jzrNnxcKfhrjeEk69vT1cZ6ePNNoz974jBuYMUqpv/7K18jvd
ayXl2P/eJk1hHnsDf9gI7rTZaW/knIxwob0b9a44pawNfd5g722pHpVb9x6dUkgc9qhzNM6m/Tjd
lrKrvErrXkwg5xQkHHYlvPeu9+sZocPeKQ6z98zt7X0Tid+n4lN+VG/P37aFZ98olD0RodbzVf2o
JuR9nPdyZG9zZoxPVyEPJ9dtT7b3dnttKVWOTrGUu7foDce6wkk9739c3KvyaU4d4Xme5fdJPI9G
gyPCIy8Wwm/sHRXnJ9YtTjqavaUh8D66uK1zLo6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKO
gCPgCDgCjoAj4Ag4Ao6AI+AIfNIR6HZEeMnGOd0u+NEpkS/le/OP05jADwecCz3KVE4aYishFzqU
KW7RRGSLctqhDnqxPjpxnnji2ELUvupSThlpynSpP6RVJluW1TMu2kLUX3SURz36A1ECOxJ0yFMd
2peO9CiL+2LJnn4qTjgoUUcHY4RBYodBSQRYXMZgGKQGK6A0UOoSV5oQUT2BRn3pyRZptY++WCtq
Hz0u8lWHkHrqq9pTmhCRPdUjrfbVN9KyRx40ZNVTmdIKpa8br/aKQzPV02+NC5uz27WwnYhwuZ+I
AETDKxON0PqkEVsl7HQPWWqFCjvibnFia0L2hXQO+bySaGfrcrv6/sx2Bb7Ndv0ttTNybLuSIwLO
FJudkBKPS+2A/t93u8LXbFd/5De2E+56RTvhxmTwM82ZYFXb7X60SzVj+pHtEnyf7RaMjDPiUFfy
9U8R6LJv/Ax7XEGgQ67YryXZNTgmOJ63V/NMuyn/5k/t4frHOssS51Jr9fUpRwRI3hDcEc097eKu
0x6KTzh4zchXVzzUGf7zSiG8YU4akF+RNnuEgh2L3j1GKC3ebbma+yTy6hpL5MIpu0eeAWabUzu2
Pjmd40PpiACBbLIRZWO53pwhIJyNNYhwTBluYe1iDUN+sUNTgADHCSt8b/n+vm1YbNONRSlSZ637
m3XdkyOCTuSI+8lsWufoGQlp+CBbe3eLHH+yzL1q1/K4L4pXIuRKj7BaMjinbvBdik8eedzSe1s+
cuzXmsO6y9THOl1PjghZ514CavdHNU4FqldNnev+1hmOvyn9rcXJResukw8r2W7oK45v6DlVR3YJ
szyf4vrVzr24bq3ih17eFh54rhDGm2PACbYz/tfN8QaHtzO63z+OtefnH+z5Odg1Nl4rGQtreUwK
PufujnDJ/fzOsx3rJ9pzvOjUp6Sghh+DubfVrns8h7dj13Z7PvAc5j0QJzZOulraTucYqFRa92IC
eSmHB+0cHz+bYue6Uu9Tx9r35Q/2vRlNjp3PvF4I3zgvXa/BNn635L0SwYEC2Xi5fPjVjuk7F+lq
7y11hmNdiU+Kos1KwvdtnnEh0++TeB6NBkcEfof97i+dySkMONpIfmu/Dyr9tpSuh46AI+AIOAKO
gCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIjFYEjAMd8vn8btb/l+yaZhec
av57KkIC5AzSkJ0Ukkc5/0Xn6iXz9sbJl77sodf9n/eeNrCDPdkRz13kKsqop/YpV/sW7ekDcQQ7
6ltxPfohUZnaJ5887GOD9iijDpf6RSg7aseyElGaEFE9hdhHKI/bl72ksNoPNVZtvWJ9Aa583SjS
AlVOABoIdaQn8ASC0ipXvmxhVyBLlzxEuhqbynVzSCNKoweIvQyOFGCxxGlT44vj5HHJPnZ0WTSR
uBx71NcY1D46tB+zYtFR+xbtaZ849RCjZoRF/USEBIth/3jfCCPTbKNSdp4+/Y728LIR9Tnd4Hf7
tCS7FJfqELuXbnJcurvpIZs1ha+trltZSjvNY4d2dmrnBAJOIiiWU27rCFc+1BHmGNMQbvthX7Jz
rCsyOCc27PDFmdt99o2usOdvUxI2JyuwW3Yslfoek8F/f1BLQvaK64/GeDVjmnBOa3jxLb62IbTE
39wSA4ckt7SdBnDHfzrDT65LyaSXm3MChNJYzjWC48VGcBxNxDk5Imy6fD4huDMeEbZFBBOu8bgg
lB52VVuyy7EwaDYc+U7hiMCO08jtPxpjZLw0rk/ZI11p7mk3+M1XyIefbR8v+baQ2+1b+6j0+zmU
jggrL5ILZ3+j73cX0v/RN7aHZvsq4lwx3PKGnaKy/Wnp9319I5P++anO5MSJy2wncYi9zGXmNPLT
7ZqSU1KGs49Z1z05IkDKPuebfTGn/5sc12q7SHeFXddoDN/bNP2iZpl7ldbDgWJViZAb26mWDH6D
Obtwcg+rik7TOc7IuJD+OSni+u9VPpEnbr+W8XpyRMg692J8qnEqUL1q6rCr+P9d2x4efkGvs6mV
2WzKf3V1TtfJhznt1BdJlueT6hJWO/fiurWKs36yjjJOSPB/m1II26yST050oc0jDZ+7nuhMTpG6
xk6TyiqcOLVD91q5gO1Qft2BfW1NebsrcHoRwjOFZ8twStZ7m2XdY1w3/6sz8N4JaToWiNLftl37
Vzcnv0pSad3LQiC/3d6nftr9PsX9jk8Poz86OSJ+76jUz5EuZ/4yjxFOBSh2woz7t/bSvc6fWe/t
cKwrJ97SHq55ZOB/t+DkuFZ7B8zy+yTLPIoxPeVW+331cEfiXISTUa3le5PakjWde80pVBt8Phfm
nK0hOSWOPBdHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBD7J
CBgHOuRyud1tjC/Z9bFdkGK4ICjwj2b+cwopgTgX+eQRokeeSAtxWnasuI8t8vXfWBwKIHxgiwuh
XHG1j47aR0fto0e+SCNqk3RsJ7ZPnPpcqqv2LCupR4hgg7FxybZFe9LEyVf72FFacfUVXYnal33C
zIKxwYoGGHdWnRRghFwMlhDRANJUb750VDe2hW5xe7ph6MkmcfRkw6JJGcxDtU+IDroS8mIdyhGF
xOP24rTaI+RSv2VftqlDntqXbeWl7Ei0eu3EOpQzTk5EGO8nIhgKIyyPTimEAy9NtyXdd4PGhEBS
qkvs1rv+r2ckhOf9NmwMe64d3+pSNYwEbCce3G4nHpTaVZ0a2l103jkawo0H9yXIxRYrOSK89E5X
2OWslExXagfamNBz+NZNYTsj/MUSk8FLkcVj3dESr2ZM37Ld5Z+wXeYh4Z1atNN+ufHG9ot3WabO
6bd3hMl//eQ7IsS7LM9rBOlDNjMy45L5HoeDW//dGSCYI6XmVoxjqfKkYveH7hM7iB/7tb6OCB/Z
9N+421FouBwRIBbeOwKOCKxF6x6TOl0In3hNemxqIRzwu3RNYz4PhFwqO0MRZl335Iiw7IK5cOG3
ZiYOah1k7WW8WedelrW8FC6VCLlxnWrJ4NPt9m118oxAOHGd9LnEiR+QTb++VmPYf6PKz5+4/VrG
68kRIevci/GpxqlA9bLU4VQdCNiQ8OUIh70N7ESaY7pPpCGtda+a5xP1JNXOPdWrZXj2XR22ezi/
A1PBueby/ZoTp0xy9rf16++2jkGQZ0fxrAIJmvc2ZMuV8uEn2/Z9bsROSd+x979vGoF4OCXLvc26
7mlc7MJ/w987DN+u8NDznQlRXGWTzJltic/oZ49y+4aV1r34fVMOjLEFnOhwpoufWQ+aM+P37ZQM
BIfg4hMaTjXniSvMaXc0OSLEYxrorviDvbfgV8t1BafSDn7BDlBw7M36+6TSPOLUJ073iOdR3K3h
dETgOb3RsTOSPwzgCI5DuIsj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgC
joAj4Ag4ArMaAg0NDRNszFPsmt49dvjV+i8zIYR9eNTEKYvTlkzS4mSjo7rkIbKHDZFO0IHoIF1s
xsQH1ZU9tW9qPe3HOsTRIVS+RRNRGvu0g0hf7as/lKFHuULqQNqVnVjXspN8yqQT15UN9OifxolO
PCbKMwkNDFbUSQGBHAedAABAAElEQVRIWp3VwGIQKBcIxFW/VFisp75KlzRx9AQgbQsc8mEFqX2L
9uijQ13CGNA4TT5CHhdCHbWvuNqhHD36QpuI2hc7KbZPffWbEDtqR3roEOdSe8TH2rWIeQNNttBl
BBGA+LPVSa3hfx93hZ1Wy4cfbNGXqBZ3beczWsMr73UlO4yz03glEdluXEtDuNVOPCjeFVOErkpk
u81OaE12sC1HuGHXech2TPiDNmkMu62p6Zr28MnXCmHi+SnJqxQxuRoyeDxmTpJ45X/6moWw6qK5
fnd9jevWOl7NmH55fXuyU/AS8zWESfuWdwiJ+8xpGnucmzp/nGJk7zWKdhLmtAROTRhq4hzkrKnm
eCL5nJ3OwE7aQyFZTkR45vVC+MZ56dwqdRrH+fd0hAvuTZ/9pRwNqrlP7CJ+p+0yvKQRJdn9P5Zn
rR97dvejHhwRav3d0EkVYLD0/LlwkZ24wgkUyIX3dYTz/pxiXuq0DnSeNMcbSLrInHYiSyXyaao5
sM+s654cEXBoufGQvvd3hvmybPCblFD8QzsZZkc7GWYwc6/atbzUyLV+lzqho1g/JoOfPKE5rLlk
980qVozSnIjAyQjzz9UQDjDHA+0Yzi7Ti8zD60RpqfXcK261WkeEepx78ZiyOBVkqRO3yTP6+Js6
ku8lp8ncfOiYnnU9y/Mptp1l7vFehIMEITL/nA0znfqTlmT7vPbRznDCzamDGhZiB0ochTh9ivVp
oy/kw1E7zfyuxXOA3f0lX1oiH3Ypc0qVTlJZ3pwaONEolvh0mXInTtVyvma5t4NZ9+KxE8eB78Z/
dASI/gg7ueOQ259UWvcqEchLOSLEJ1P8+qtNgZN+YtFJJ+Xep2o9X+O+DDTObwWeM8jR5li0oTkY
VZKhvLe0Vct1pdJYVJ719wlOQpvaOsASdMKuzWHtpXufmThE4IzJfS/3u0iOCMstlAvn1/hEhKl2
ssqu3Ser4OyE01MlqeW7fKW2vdwRcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFw
BBwBR8ARcAQcgVogYI4InIgw1S4cESA2QQwR75s4//iFX42I9IEe/xrWpXKF6FGGoKt88ojH9WQf
PS7IEOjwT1zaJ1R9heghakP5pClTP9Epp0sZ9Whf9VSXfIgY9CUuJ1/2CFVP+XFacembeiLkS+K4
8qoKi41XVblbmQHKDgNRxwnjm8ONAFgBYtFENAjyEWyoHiCSVl3ZVHtWlOgqja700VU9QtlU+6pj
RYmgQx21QQh7iT6rH7KpuoTYI+SinPalr/rY5lLfLNqDmWxRh/pqg5D6sT1LJrapM5tdi9iJCJPt
S0i+ywgisPdFbeHxlwth+1Xz4bCtZia9qWsiQ0EUvOa7LWE+O8mgP4FECpkUOWm35vDlpZhuqXww
vStsc0prgKSzxYr50J9jA4R3iO8QcSDklJJtzdZbH3aFL9hu4hcU7SZ+xh0dYdKDKdGMfi80d99+
V0MGj9s+8Zb2cM0jvevt1Qe0hIU/3dd2rD+c8WrGBDZghAx051p2Fd7shBmhw4a/g5GiITFKIE1v
bbuZQ/IrR5yTbrXhlQ93hlNuTecUdQdKah5IO1kcEdh99zsXp44IJ9rcXCsii0Eo5aSO17qdVQbr
iHDx/R3h3LvT+3TJ3s0BJwxJPMfrwRGh1t+N425qDxDAkWO/1hzWXSbFggcPTkdPGbG53Eks1NHp
AsSHmqiXdd2TIwJ9Kv4e3mYny/zMTphB5Ew1mLlX7VqeNFz0UYmQG6vHxMkjt2kKW6/MK0X/wikt
7JiONJo6a83Ki+TC2d8o/QyQtVrPPbWjsFpHhHqcexoLYRangix14jaJ32Knx/yi+/SYc77ZHFYa
n36nszyfYttZ5t779n6yuTlASjZbIR9+vn3vM075WUPeVbY/tTUhEuNI9bt9euf0/c8Uwg+vTOd9
7KAQt3WeObhd2O3gRn5//QNTsMUR9KZDW8JcY3vfUXBmwBkAOX2P5rDa4r3PlCTTPmo5X7Pc28Gs
expTcSjHLMYPDv1JpXUviyNC8h584ozAe9U6tqP8cdGO8sm7su1+32brX7n3qVrP1/7wKFcGSX7T
49P3QBxVcVitJLW4t7VaVyqNJS7P8vuEd5n1zdmA+/69TRvDrmvwMzuVh14ohIMnpWtEOUcErRE4
8v3hoL6OjbIzVGHsSMPvL36HVZJavstXatvLHQFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwB
R8ARcAQcAUfAEXAEHAFHwBEYagSMAx3y+fweZneKXR/axT9OIfkphKzBRR4hnGr+NYykBLg0Th5p
dAghWMkOaS5soqfLoom+6konro+9uC9xXfqCoCMb6IorHtujHD2EOEJadakj/eL66KhMdQkV17io
p/b5ZznjBwfqImo/TfW2r3LlVxUWG62qcreyQFDIICQaJGmVk8fACONBkyfwpKs0ulwCy6I99gSa
yrCDyIbiSaZ9YFNsBNlXHmBSRl1EbaaptH3FpaP21S6hyuJQcWyKjaV2CclT+9hE0JVd0rHt2S09
3k5EuJwCl5FFQI4I25kjwuH9OCI8zckCRgyFYAQJmp16x3cT76cbJwaSNLuSH2inEiAQ0Xc4rTV8
OKMr2cH6NCMiQYqBdMWO+fc+nX7/zzXS4YrdpMNSSIigO9Zm2f4bNSWOCzhD0JZOWbjIdkGHSI7s
b7tnf32ttA+PvFgIhxmpb7px7b5kJLPTSpDMqiHtx/0bbsJr3HaleDVjgvy2y5mt4e1pXYkjxc+M
cLm87aIq4b5fa6TvFoP00M319Q8JgREiI/kQ51Y3shlz46gb0hMWqF+OOCfb1Ya1JC9lcUTgJBF2
50fY5f3nOzQlRE/mG044txuBXDJYRwTa2tG+T9jGmYbv3xLz5cLdT3aGo25sT4jatDUrOCL855VC
+PaFKRFvFTuJ5LivNYWxzQ0JOZcTEZDvbtwYdv9yug4kGdFHLcm1Wdc9rXN0k/X1tD3SufT6+13h
gN+1hVfNoYX7fpU5PLHuDWbuVbuWR9D1RCsRcnsUuyPaCZyxcXLNSuZU0Ni7zBSrJ2k5oalwIE4M
w7Euc0+mpQdUBJxELn0gnXOn2GkP89iJFshnP9UQxpXgf9bj3BO+hFmcCqqpc+Q17cm933LFXBhn
p5EgkK058YXn9eyG2bUH9hLmsz6fEsPdH9XOveEgdh8yuS389flC8sLNLvjr2S74fMdxbHvbHBXm
NIeBP9rJKE3xW3T3eEQy1hj7c0R4dEohHHhpulZuu0o+cKIK37uX7GShg60POMp9araGxLkU7Iul
lvM1y73Nuu7h4HGXPStxnOQULoT3lQefKwTWMmSkTkSg7bPu7OhZRyauayd7rZEPH1m3fmmOJI9N
5WdW+fep4ZivSQeq/Jj8145w+u3p2sizeJ/1GwPv7gi/GW61tfP6x+z9xd5leLZlvbfYG4l1hXYH
Ill/n3DKAKcNgA3PPt51ePZ8//K28OJb/MQufyLCH//RGY6290LpcHLRZ+xkl1oIfZlwTvoe7I4I
tUDYbToCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjsBoQMA2Y59g
/ZxqF4wi/qnLP/u5iOsiDZkQNojKLZrE+acuZYRc0lU8/Udxr21TSXQUSg9ShNqLQ+nRBv+9V/tx
PcqoTx51lUaXNGWKWzTJU33VUfsqJ0TUF+rTfrF9MKE9ccwpR1d21b7sKF+hqWYXjAxWYhvEuRiQ
8mPwBIAGI3oQA0aoQ5nqkk99LuXFYOlGWXEi6KALa0O2SWMTWzCA1bZFe0AX4OQh2OFSX7CFHQRd
3Sz1j3y1jZ76RVztY6uXgWwJE9mN7ZBPHbVPXHrKI40jwkLuiGAo1IEcdFlbQgDccNl8OHrn4tvc
t4NnGlnqsm7SJTcUxwJIsW980BXYeXjn1fLh0C16bVxuRKTTuolIOA7Mb0SY94xQDQkJKd79Nc3t
+/mCkVz2/G1rYj8ugVgDaR6B/LubkXbYaRj59OzWL2sPQh/SbLPuTNtJOybYJwX2UQ1pX3UIh4Pw
GrdXTbzaMf35qc7wU3MOYRd/BMLSWNvA9h3z0ZvWmmK44RdsfhhhTMIuqBMvMGJ8973khAxOQ8Dx
RDLUjgjxDsq0MdInItCHw69uD/cYfghzfLF5G8Kr79kcTzlgST4fg3VEwEaxIwZ5CERSSHxIsSMC
DiZ7ndd9k6yce6R7OocRgXEkQTic5kojuePwc/zN7eG6RztL7kAvghsE2XuPGJNWLvocju8GO3nj
CIOwYz7rkeYvZPczv97UQ3ROlKKPDY+d0TNvh/pEBJrJsu7FjgjYgLAJqZ01jdMAENY71j3JYOZe
tWs5hFJI95J3P+pKiLzM+blt/kl2tGfAXut0TyplWsgO7hCoJazJTabGzvcn2ok5peRqO3HmJDt5
BmE9+tMhY5KwlK7yhmPu4QSDM0x/cvBmTWGX1XvvlXTrce6pb4TVOBWoXjV1OAmJ5zLvDQsawZZ5
PsWe8ZDCERwZJ6zZd/5keT6l1tLPaufecBC7ObXloMvae56XY2zdbbWpDgx8m47o5+SQahwRsPcj
c8aEiI+Ma2kInx4Xwiv2jOKdDeEkLE7EKiW1nq9Z7m2Wde96O6HrN90ndPHcg9yN4wdOMMi8ttbi
5MU6E0u1616WExFoj+c3Tig4iJSTcu9TwzFfy/Wpv/wOm1/72Zge714redfg3ZLvOg4w+s5P3rcl
OcEIW1nuLfVGYl2h3YFI1t8nxe+7/K5hnvC+g0M3Uu5EBN7Ddz6jrWd+oytHI563OnGG/MFKfJLF
xd9uDsssYC8FFaR4bEP5Ll+haS92BBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAE
HAFHwBFwBBwBR6AmCHQ7IvzXjE+3S6xBSADQQCBccUHOgK2hqzhtRUkZIXVF1MIGF/XII470ErFS
ffIoo33pEFKHumoP20orToiQr7pqi7TyaFP/GFa5ZfVQXtCjfekQqt8QgmhHl3Qol1CmtpSPnvJo
U+ni9mWj6lDGq64YVWBwdJgLewyEjmqwFk1EnVc+6bgOdbEF0MRlSyH1uJECQm2Uah89hDq0QRo7
qiNblCmPUPala1l9hHLVQR9R+9iULfJIY0ftU6Y6Fu2ZlNhUf9R+rIsNiexSbjSoML6jo2OyHUui
cg9HCAF2zYRcDJn50u80J4Ss/rrCSQYn3doR3rCdOWNZ1AjYB23cFNZaOp4qIdzyb8ikHT2EO+pA
pNll9caERAORtZJAZDrzjo7w7BuFxOkA/S1WzIefbtdLjIcABjn5IdtlOO7ZovM0hF/YTvXlyDHo
szMwk/XOwyoTXdXXU2/rCFc81LueX2e7OC9gu2DXg2QZ0/NvdiW7+D9hWMf4QRjlxIqvGqkWZ5VY
nn29kBDHIPRJll0wF1ZbLJfs7ruwnZhxtZH7hkrYNfvOJ1hGU0LldQc1B0iFQyEiq8bzSuS2s82J
ZWXbwV24xuOCBHjsnzqSkwnUD+b3WkvlA7t+Q6wrN7dkr1y57MUhpyxc9mCn7YhbSMi8y9vuzuw0
vN8l6Wkl7C68kTmNSN40J6HtTk13q1VeqZD7fMeP0vkP+RsS+Gp2isjpRaeIQP7ne4bDwl2Hl3ZE
GI7vBiTGk29N1y6cKxDGQJ/BoNy8wIEGpyXJRCPN7234DbVUu+7JEWENO1lkLluL7/hPZw9RE3Ls
YbaTOTufxzKYuYedatbyY4zEe6OReSsJO19zGkWx4CRyi82da8zBZcrbhR4iJbs8n7VnEfu3u/I7
5kSz9cnpvdp65XyyK3Sx3eL0cMw9CMOQL/uTH5hD3k7mlBFLvc69uI/M21/YLuzMubvseTgQqaYO
J8Xc81QhMHdjgYi/02qNYd8NG0uelJHl+ST71c69aUbi5SQA9XDLlfLhJ9v2vmvI7mDDZ+z5yelQ
Mfmc9zBODOE5VE7iHdbRqdQ/1kocdG76Z2fiiCa7c9mpC4du3hg2Wb50W8M1X6u9t1nWvX+8VAis
DWAuArxw4J3l4E0bS57MVe26R9+2OCGdO+fYaV/FhO+dz2hNnEBKndiDU8QJ9q78yAuFhECO48H6
dlJGi0097jlOjpfvN/P71HDNV+FVTYizyyV/SR2Y5bSq+hDr110ml5xipud1lnuLvZFYVzSOgYRZ
fp+02s+LY+z3WewAOLdhdvhWjYmDN85EpeaR+sNJBfxGYb3FMUHz/kx73q5qz92hEGzyvbrq4fS3
0O0/bCnrABq3V8t3+bgdjzsCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPg
CDgCjoAjMBwI2GbstmF2bjdr6792TbOLf8pCsoJcRAg1EIGKwkU+eYTKI4TAIScGi/aUS486Im+p
Pm2pHdVRHjbVvvoQ2yKOoIeofXRln3zVobyYH0+e2lcd2te4KCONUK588tQ38igrZV/6VpzYUZ/V
htpXPnpVC40PldAhhMHRSTpGngaigVtWj8OBBhP3Q2BRRlxp7BFXnWL7Yu1xo0TYV/uWldSlDv2B
DaV+WrRPO7JPXeKS+GYRx5bakU36R/vYp5yQMgRb5CEwBtW+xqh21abapxzBDmVqE3bb4vYlnGSh
ywgjwI60PzayNAKBmlMLVl0sF47YmilQXtiZE6KaraXJLqfsMFtOmACvvNsVXjdSNOQ3CFXsqF4L
+dg2f3/+zZRsNt6I8JCdXAaOAGQxiMIfWTinfVMXNOeKcRXI/hCiXjfHFPBmx9taCHNoq5NaA4Qu
ZO/1GsPEdbV0Jlkj+sHO9eDAd+hz8+eSnb5r2SF2GwZpHHnYXXjH01PC9oW2I+2yA9iRtpZ9G07b
EB0hlxIu+ZncTDtaF/flWiPCn2AnPiCQH687yIhzM3M7i6tlSlez7skR4ctL5cJJtmMx5NLnzDlo
dnviLmnzCSeLcjLYuVfNWl6uD7XIv92cMTipBfntXs1hBXO6Gc1Sr3NvuDGFvMpaybwl/il7J1jI
nh04N1WSLM+nSjZHuhyHm6m2Ez678i9ijpO1ErCGnMz3nfc8TqTob10ZzvnKmKu9t1nWPQjZzL1p
9rhstOVkASP7c7JXvQkkdJ1W9KsbUieStc3J94RdSztt1Vv/i/vDs/B1e0/hPZE48w/H3XLzL8u9
HQ3rSpbfJziTMmdxUlp8vvqYq49NLSTvUW/bqWk6BW2gp0tx/+v5Xb547nraEXAEHAFHwBFwBBwB
R8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHIGBIGAnIuxhei/Z9b5dsGLhYUN0gnPN
hZBHHMIjhCjKRcYnn3+pIsT1D2LySKtcdcTfJkSHNgmxS5x8QtXFntqHoaP21RZ1uRBC2pHENrBD
OraPPm0hah8d9Ul21Vfapy/Yoiweq/JoX3F01E/yiZOnuEUHJ+rA4KyktdXpePACAA1uPgOg8wCC
vi6lKaNOfFFP/aQ+gh551COOkKYe+mpX4FGmfql92ShOm2pPfeLUk67sxWniiELaR9QH2uZSv9Cj
TDawzzgI0SsW6kk3rseJCAuZI8IVxRU8PTIIXPZAR7jedrt+00hCbXZH2cWV3VxdHIF6QeAFI2Xv
fm5KtseZBQL5bLPYFP3Ihs/uyBAoY7ng3o5w/j0diXPPTYeOqRmxPm5ztMaPuKa95/SKfTdoDN/4
ih57IzuiYkeEke3NyLeOY8le57clp+CU2wl85HtZXQ/qde5VNwrXnlUQ8Pk6vHcaBxHI5rHgkLbj
6W0J2XuPtRrDARvVx/Mq7qPHZz0E7n6yM7A+IDh0rrlkLnzH3qf6c0gXSv4uLyQ8dAQcAUfAEXAE
HAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcgU8SAuaIMMHGM9UuyI3wtOFUcyHi
TSutEJIAZaQJSVM3vmKWIOT9WIrT1IPHHddHH9viedNG3D7lcZq66HPJnkUTURk2EOopTlrtSI9Q
5YyDNGFcT/0h5FLbhIjyiVMfUZ7Sae4gPjE4WAFghE6p8xo0ZeRRps6rTcDQzdHNRlcMEeKyR4gu
dqRr0cSm0nH70sVWbAddtY++9JRPXvF+suoDtlTHoolQT+1LjwJ0GR8UX7VPu9InLluUK1/tq49W
1CMaCyEym12LdnZ2TrJjSZIM/6gfBNjd0hZHJzPXzy3xnhgCVz/SGU66JSU+QcaDlDerybl3d4Q/
PNYZNlshH5ZbqMF2TG4If5tSCNc80pHsLL7LGo3h4E1nPVwGOg94YG15YmuyIziEz+sObKl4gsJA
bQ9Wzx0RUgQfeLYQnnytEO56ojO8YLu3I4fb6TzbrcIrz+iVep57oxdV73mtEPD5WitkS9vF8Wqd
o2ckp5Gt9/l8Quh+107KuOzBjjDVTh7jtJCrDmgJ885R6idWaZue6wjUCgHm6/vTuxInhGpPt/N3
+VrdFbfrCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCI4VAoVAI
+XxejggfWT8gRMcnA8DFTklQaSeJ40QAGQo99OFec5FHudIKyaeOdGN7lp3wvdElHx10IRGSR/vF
ovZlU22KoKW0QvKxBXGBPC7iIjJojOTTPmnaV/1S+tIjRLAv4iP6qksZOpQTko8Ut5/mZvjUIDJU
7amCDQ2STNkUaBqAOg1AutnSp0yDJMQe9VTHokmcMkQ2FY/bpwyRPdICjrjaRwchj3Zkg5CLPsoW
5cSxWSqOvuwo1EQgLduyoZttRUk72ETUD+Jqnzy1qXawM8auRexEhMstdHEEHAFHoCIC9z9TCPc9
0xnytoIctElTGFPsdlXRwuhXwBHh4vt5/s8sayyRC0ft1BTG2e60LqURaLcn22m3twfC1Q2vDZfl
UVUf4o4I6X34wRVt4S/mjCDZeuV8OGKbpuRFQnmjMaznuTca8fQ+1xYBn6+1xbfYOsTur5gjQimZ
vSWEw7ZqCpssVz/Pq1L99DxHYCAI+Lv8QFByHUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFH
wBFwBBwBR8ARcAQcAUfAERhtCHSfiPCS9Xu6XfCkcTAQdxouNnmIiP8iR4mbTT766IrnbdGkXqxD
HhLblG3pEaod2UwqdedDQFD75EtHIfXheEtklzqK0z5CHfIkSlOODa7ierRPHdmijsYsXerJlkWT
OGWI9BWP208Uqv3A4FCIQNNgsEkeHYw7Tz550o/TMSjky5bsAKw8TIr7LWYJOooLbNnBpoDFZmwj
7o/i6qf0sCMPE+UppC3i6CiuNtQ+5cX6lpXkSZe04mpf/cGOaMPY4UQEd0QwEFwcAUfAERgoAm9/
2BUefC7dMf6daWmt8Z9uCMsv3BDWt12UXUYvArc93hn+/XIhLD1/Lmw7ynf/H8xduPHvneGZNwph
zrENYaXxubDa4rmQ09vHYAx7XUfAEXAE6hiBR18shL+/VAivvteV7DY/z7iGsNi8DWFjc0CYf05f
BOv41nnXHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBGZh
BGwz9pDL5XY3CF60i10I4U4jcKbhhJPWJT62dETYJ5RQFqdlBy42cdkiJC2uuZwPyIdoIDuEiPSx
ozzqyy46EvIR7BCnP/DP1S/VJ1T7lMm2QtmJ9SlDyOOSLnkiSFBP8VhP9tCVUL9UvsorhmqoomI/
CnRCYKGmTmnglBHXKQAaoAZHSB1EejGg6MsBAcBVpjrUi9tHhzrYQqRHvvQIkVhHZZD9aQN9hDh5
6Mo2Nrlkh5ByQnSI0wfpWTQZg/TUJ9WRHnVoi1DtKw9dOUKgP86uRexYksvMG8iiLo6AI+AIOAKO
gCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6A
I+AIOAKOgCPgCNQ/AsaBDvl8foL19CW7cESAs41TgPjV4mKTpgwhT2n41KS54F3rdATSxMX7hmit
+uJyo6N87GELnVhPdtUe+uSRJqSO4rRFXfWJuNqP+4YNhHpqn7Taxy4i24QI+eirPcK4TM4Oqqf+
Eapv1Fed4vatqHrRYKqvOXMNDU6dpaPkCRDiSsdlxAUO5boJAog8RIBo4Glu742QbYj8TB4AVZ5s
qC1CxXWTSSNqhzhl6odC8mWPUP2hPvHYkUG20eOSDvlqP3aysOykfcoRhXE92dKJCJNTVf90BBwB
R8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFH
wBFwBBwBR8ARcAQcAUdgdCBgm7HjiDDFrja72u2CJ43AJ4eXzYWQVpm46YQqj50Q0It1LNljSzZj
e8Thc9M+nG3qq32LJkKaMgTbcRvk0b743uonbaFLvvqj/sqGFSVlah/ueGwbfaXjvsmm2lL/0Fc/
LNrTvtolDylOp7lVfqrxKqv1UaeziAZJSOc0EAGnAROiowFbNBHVB0jqCvi0tK99bMhTpbh90mqf
m6EbJfu6QbSvuEUT0MnT6QfYoJyQuthVn9Q+fVX7aldpdHW6QVxfddS+9GlL7Vs0aZc8RPXVJ+o0
27W4eQNN9hMRgKg+5JX3usJr/+sK733cFT41W0P40uK6vfXRP++FI+AIOAKOgCPgCDgCjoAj4Ag4
Ao6AI1AKgbc+7AqPvlgIc9lv2XntDMZF582FFv6C4eIIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKO
gCPgCDgCjoAj4Ag4Ao6AI+AIOAKOQA0Q6OrqCrlcbg8zPcWu6XbBvRahH061OODKs6zEWQB+NWUI
3GpxsskjLs64OODUJw+Rs0GaSj/jOrJFGNeHEIwN6otfbtFEVAd99Zm46quvcX31BwOqQ8gVj49y
2adOjAVl5FFezL+P25R9dOO4JZM0YSaJB5HJgFXChjqGDYAGOInaIE83QTeUQcc3NK4bA6l62AIs
0oBMXO0TRwSk2lW57JHWTUBXcelhA6G/lGOXttQH7Kj9+GYoTh2J6mAbe7ITj0H2pEtd6WOLctVD
RzjOYfGF7EvoJyIYECMtM2wWH3ZVW3j4BW5XKiuOz4Vzv4m/yMjIy+929fki0ot552gIY3GPcal7
BNptlfiotSs05hvCuJa67+4s10HuD9LE6uziCGRAoGBP8057ZOTtyZ7jqe/yiUTgg+ldgXvdYPd4
rrEDu9FZ6nwiwfNBfeIQ8HXvE3dLR2RA/g5WW9jverIzHHkNf6JJBef6n2zbFNZamj9FuPw/e+cB
JllRteGanrQLK4iScw6CICggIDlJjkpYgixBchRJ/oAoIHkByTnssgTJkoPkDApITosgURBYZCf1
/Oe9d76Zmt7umek70zM9yznPc6fqVp06VfXd6rrV09+pcgQcAUfAEXAEHAFHwBFwBBwBR8ARcAQc
AUfAEXAEHAFHwBFwBBwBR8ARcAQcAUdgYBHocETY2qy+a1eTXZBwueBKI4Sw9US80Q+aMPc4QYEf
M0XcRVf6pIurTlmlWzQpQx5p5CmOzbhuu010SFP96CLwu1W/7KgdhNSvdlNW9RAqz6Kd6cRVP3FE
dWKHMrENdGP+PXm0A6F+8gvr173y0KWc2s192aJGll2woAB21Ik4pHHcAwCie+KxnkASuHSSfPRV
loenOPmIyqEre+gApmwRok+aHrZFk/xYL66TuOxIN65L9at91I0+ojBuj/RVn/S5Jw/bDErSsUlc
9UsXHbWLcBq7cESYYKHLECNw5aOt4ax70/llsdlzYfHZa8JCs+bCxkvr0Q9uAz+1nSw3Gsuc3F0O
2aA+bLrM0LSpe0sG5+6Ym1rCXS/y0Qnh5v0bw/em5eMUwoanNYX/2qkVC86SC5fuMnTOIkljSvzR
mJrtuzXh+n26PBGGc59KdHXYJb/2YT7seAFriBBu2LcxzDp9Oq6GXUeswV/bNPHsxHx4/l/5hBS/
8Kw14cfz5sJM5rTkUlkEfnt1c3jotXzYYKna8Dsj+H0bhUXQU+bA94XNx6yAVl+sNtRpFTWMAcER
8LQ7W8Jz9tn6Rl99rD+3HtAYvj+q+GcrS5lhDNGANf2Nj9rD39/Nh4mf5hNny6XmzgUcQQfauYd6
HnytLfCcIEHPbu/mH1ldKyw4FQzYAXsavRv6Ns57jJmtz0nX5JvZGvyg9dL5/vpn2sKpd6QTxHFb
NoRVFvGx1PsICmFqWoP1pb/90ck69iZ+2h5ufq4tcDLCg6+2hSb7ijvLdDXhhv0ak39W9KdNXtYR
cAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcgWII1NTUjLb0iXbp
RARoRRByIdpwwatOiaBdZHt0uJSOXswzJ518JCX3pnH0ZJ8U7hHqUF3cU5576ase8hDZjvWoB4Iu
ZZSuusQJV6h8dBH0iKsd5KPLRZrSLVpUT3WqfvQlcRx7iNIop74kGeX+UQfKLRfrq5OEpRojgNBR
Z+O61REA0ANXZ6lLcdkhTWXIAxDCwnxL6iYCWA+ITOyoLdggD5EuNuO42hKXoX50kEJ7aWqajk7c
XvK4VxnVz73qRKcwTtq0ds2Vz+fH24eQe5chROBw2zXyfts9cr6ZasL43btI40PVpK8mt4eDJ7R0
fiAhGSO/Xb8+bPZjDdWhat3g1fu7v7SEe19KP9I4IohcvfaJTWGSnTZQLc+rGCJXmHPL2ebcAskd
srtkOPdJfRju4csf5MOYC1NHhOv2bgxzzDA852AIZntf0Rze/Q+vuS6ZxnxzTtmmISHZdqV6bKAR
+M2E5vDI6/nw8x/WhqM27dkRgVN3fn1pc7CTyMJhG9YFHN6Gs3ASBE5izHNvf9I1/m6xeZqTe4az
sOP7Duc3hTc/TvvFiRfTNtYkC70JezYEdpYulCxlCm1U6r6ax964x1rDn+/R14YuBNYwh5bfb14/
YE4tp93ZGq57qjU52aKrljS2zDy5cPLWDWFkdfo0FjZ3yO/LmfeGvLED1IB3jNS9TYcjAg7Kh22Y
zvdXP9Eaxt6Vjt9jt6gPa/zg27M+7w+0U8sarD8YTLCxc9s/8mHR2WrC4RuVXj8MxNi7yRwS/nRr
6jBz24GNYYYOp+7+tN/LOgKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AI
OAKOgCNQiEDkiPA/y4N0A+GVMI6LdBOTRdAjXZxwfuCkDGkqq3LoEE/JtN3DOF31mmqnDeKxHe4R
1YVNCF3pD6xdfHblS7cwVL2E6CIK07v0njTso6d+SE9lyRc2xBG1izj60o1D4YFOJsHYQAnsiZTx
mzaWjtBwXezyTycJ9dAFBB2hLVzYURlC7pVPXEBhR3rk8yu8AC60Y1mJHcpKT/WgS3kBL7uWlIj6
QciFLoIeQhtIg4JEiD3pEicfQZ/6paf6ZZN7RHbTuy480FMZ8qazay47EWEcNy5Di8BulzSHF97L
h3WNUHp0L4TSoWjpOic1BZwT3BGBj2QI7ogwFKNw6qkT4v5h16aOCKdv1xBmLLHDeTX3mB29IUa+
/3l7snP4SgvlwqgRNcnOt5ySMMLelBeNaQzzz5x+Zqq5L8O1bZCbn367Lay6aG3YbbXCV3/3Xk2y
+Xttm8eRsds2hOUXYEkwPIXd6znZ5YP/annU1Y+pwRHh5X+bo9JF6fyw66p1Yavl68wRoauPxWJZ
yhSzU4m0ah177NZ9fAc5lpODlps/Fzi14J/vp8v09ZasDUduwpK/fxLXw3Pk8zqdzZX3v9IWPvoi
HcMb/qg2HNEDGbh/LZi6Spcz700tPR8IMvjUgsVA9GNqWIP1F4extn64+snWsMQcuXDBmNJeUAMx
9mLHj8t2bQgL24l/Lo6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6A
I+AIDDQC5oiwndl82y4cESSQQHTxYyWEHPGwxc1WvohI6CmNED3xyi2axEmHi01IHqHsWjSRQvvo
q37Zo04uykuoP07nXvrYkKOEuOCUVf3oSWI72OOesuK/c696CUXyk121gXTlkyf+vfRkw7KyiyrP
bqGLwE+D1Hns0RE9DBpNPmnEAUy6agP3EvQQyvCAVTbWIZ+ySlP9pEtUPzb0kFS/gFR53auMQqVj
E13SJdyrvPpGXmFZ9YE8xWWXECFdmHEvG0onDV3VN43F5/ETEYBl6GVXc0R40RwRNl2mNhyyQf+J
bwPdI3dECMFPRBjoUeX2hjMCnBTC6RrIHmvUhR1W4lUTwjPv5JNTEohv+ZPacNB61Tef0bZvm1Qr
GTzLc7jq8dZwxt3pmnbJuXLJCQEPvpou0aYGRwR9tljE3XZQY9ETEApxy1Km0Eal7qt17OFIBcmW
k44u3y09aYKTJfa4rDlwChQnUdy0X2P4fj8dxfa6vDk8O5GvGCFM2KMxzDNj+jWAujY5vSl8aifL
jLRp8p5DRiROXZV6Dm53+CIwEGTw4dt7b3klEBhMR4R4/F60c0P4wTA/kakSz8NtOgKOgCPgCDgC
joAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOQP8QsM3YQy6X28asvGfX13bBoxbf
W7xwyEZxXPxqdCXEudCTDfjW2Ir1lG/JnYJObBMd7lUn+XFcupaciO7VBhIpA+db9dMW5RNShgtB
p1g+etig/4pLV220rM6yxNFD1F5CRHUpP65fOqlmmX9luMxiU6gDgBqtRhKqoUrTPQaIk86lsqTF
8bicBgQ6MCYBljgS15+mpHZ4ANLBFnq6Jy771IkuIj3yEd1rQJCu+qUjW7JBHTxsGJyqz6JJ/eiS
pjLEqT9lgab1YUe2LZrESVM70WX7w3nsQzjeQpchRiCLIwKE31c+yIe3PmkPrTZa5pihJrAr+eK2
u2WhQHh7yIiar37YHj60HXinH1kTFpqlJtmZt7edlrFVjiMCO6Q/9kY+vPFxPlDvXN+rCUvPk0t2
3Sxsl+4/ndQeHnk9nwzUDWxn4P/+rz088WY+PG19ZIAvOlsubLBUbRhZsGknu2y+aTsYS9ZavDbZ
iV33/Q0hWkPwRMp1RMjaJ54pO36/bv2i7wvZzqE/s+fK8y0lkByfeTsfJtpO++xAv9KCufCk3Z99
b2uYdfqacMO+Xdtp96dPpeofqHT6/JLtBs6YefPj9oQMuqD1Z3MjtENkuvOFttBkM/fqtqP0ioZJ
LB9/2R4etXGHHsROxvX8MzPuaop+JlQ2y3NifN7/cj7ZObveZtMl58yF1RarDY+/0RY4KWCpuXNh
lum6Py/KPPkWU3B3Wc360qDZO8piV+43DAPsYA/bz9lz/nJyCGCC0xInEJSSSn82DhjfHB63z+h3
p6lJyNJqySUPtYbz/8brNYTvWPv+emBjqNebrVRjK5Re7rz3DyMfM37msN3R5/5+TXjg1XziIDbD
tDXhh3PWhNXtGefU0ajNWceeTJQzlz9tn+vPvu6a87DB52WxIsQ+9B56LR1z3zS3h9PvSp8LDiIL
RjsSz2xE7BVszkBe/zAfXvqgPdRaP9mlvZjoc4oO83UhJJUee395ui08YLvJ/2rlurCMvVtueKYt
nHhb6hRTLY4I5Y49fd7B++/2Ob/D5jpwPWTDLkce7tmlX5+nLGWwjzCCHjQMX3ivPXxkcyeke05m
WcLG+fLzT/muTQrZn76+n7KMPdVB2GbD9vbn03cv93wecToZKAG7XS5OT534jTlLbWGfCeTLb9rD
Vmc3J2sQ7vdeqy6MXqHIBE1mHwVnA+YI3uHX7d31Lqb4Kbe3hOtsPCM32nt6FntfD5X09dmqfVnn
PcoxvlkrfmXvs+nNLXpOw2aFBWvD/DMV7385816rjZ3b/tGWjPFVF8mFzyaF8MRbbba2aE+cSpjr
lrfTL0oJ8zH1/euz9rCgrZNXsNNjRjbUJGN/VGPNFGsP7FR6vMZE7o2Xrg2HdcwLVz/RGsZ2zOvH
blEf1vhB8Tn7GxvqD7/WFl6zNda/7SQZ8F5s9vQ7QDHEsz7bSs8rpZ5ZX9LLXYP1dxz1pU2FOuV8
f+I9+5atEWe2NeKy83Ufz5wWxPeCBhsOay/RNSZYI39i62OE9TRrStaYO63SfY5beeFc+J6te5D+
jr1CG+6IkMDqfxwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR2CA
ESjhiACZSD+oQqBKSVRp3SJfEULciPO418/pcTlsYZM8xS2alOVe5bDJBVFLP9piR3VatFNIUx2q
EzvY4z4upzosObGrtmBDeYTcc2GH+rGjeoirntg+9VAWUbywnOogHbv0TzrkUS6zYKi/Iht0VnFC
LgGgTqrB5AEUv5wXPjB0uJSOLp2UPYsm5fTgSUdiAEnDhh4I9RAHQNkiJD1+YIpTVu2zaFJW9rCt
cqSpftlX3YRcsR3qR49yqp+QdNVJnEvlsKEyFk30qB82lDsigEgVyOhzmxKHgr6ciPAfI+2feFtr
0A7Qhc3fyciZu63GI04F8s3RN7QYEYuh0l3mNALrcUZeguzek/TVEQFiywlGCIX0FAuDcPSKdWH3
1esSwmOcR/xRc0I4aEJa6MztGsJBVzWHZkZwJBAFIQzGcsodRuJ7qkvx2r0aA30aKOkPab/cPkFg
P/e+1sBu33xgY8EBA+LZ2uZoEQt6lLn8Eaa7LoFUyo6jL9gpG8PJEQECO0T2QmEH6Q+NWIUTAgIZ
/KwdGsKPjKCPaDfw5KbIn21/Whf2XHNgxt5EI6ozViGMxbKcERshL0JA/t3G9YnjTJyPc86BNq4L
BWJqMSeTk4yger0RVHmOjTbsIYzFQpkLx6S7eMfpilf6s7Hq8ZNDsz2PdYzk9vvN0s8lxM3tzmtK
0tWOoSKdZZn3jr6xJSHnQXr+nz0qHFpiWdEIrH/YoiFMEzlE9WfslTuX05adL2pOnHXidv38h7Xh
qE27z43kM+fvP27KMReXJQ7B+7xfpZ1iDgcH5FxLW6oI+Xs/s4lTDXPtNTbnFs64lR57SeOiP9Xm
iJBl7OnzHnWraDR2tMhSBqPMUXvarv843hQTHFCO2Kj7eCr3/ZRl7MVt+cIcAn5+clNn0ro2xo8u
MsY7FcqMXPFoa+KoRzHGMM48yHG3tIRb/t61puAzf8o20Qc+0Srvz+HXtZjjWltCgsehMXZmOsLy
7rM8SL+3HNA9r7xasmuX+2ypKeu8h8PpYdc2Jw57xVpcyhmjnHnvc3PAWv/UdOxsY+/+a55sTRwF
4vr2XbsukBcLs/1597eGyx7uvgaps2UX8yAOCoXrKZWv9HjtDxkc586j7DvAe/Z+LpSfmpPF0fb+
xjlZkvXZDsa8ojZmCctdg2UdR1naRplyvz9p/mcdfM6O3eeoW20OO9bmMpzWHjx8RGeT5PTemVAi
coZ9D5NzQ3/GnszHNmLbyvfQEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQc
AUfAEXAEHIGBQKCmpmZrs/OeXf/rsMcP5ZBjIAJAMiTOD+QihpAOeQByFaRM8slDh0uODNhRuspi
TwQD/SAvHcvqFPJUP3HVT6j6qYf643pkPyVHdtWPDhf6lMeOhPqlTxp5sqn+kR/jIDuEiGyoftKx
oTLEEdIL+6u8RKHcP3FHyi0rfRpFQ2mIOkqebBOSz0PXw1OeJSVlKEsalzoke4Sqw6JJPnrUFefF
+kpHH13VD3iI6iIusLFXKKqXtmNTovq5lw75sR72uFQ/rDA9PKVbUmcZ7Egog6htsqt2E46ya662
trbxdiwJui5DhABk1I1Oa0oGyA4r1YU91uBxFReIPjtd2Bxes12rEQgoyxoBus4e4Su2izW7RG/+
49pwUETYF9ENfUhHlGFHVIgq2GM3zGuNDK1dltErlL44IrCD/fZGQmYgQ2pi11Z2eoeAx6kNyMHr
1yftS26iPzFpn13Uv5rcnhC/2N3/y2/MUcF2g4ds+1srH0ulCa8Qee79Z/qxv26fxs4dQjc9oyl8
aQ4eC9iO+xcYGbyYlNunk414zk7fCOTzVRfNBXZk5TmxuynkxUt3bUxOslB9d7/YFo40ghnCTsLs
fPq5HS50wzOtnUS/QuJcf/qkeisVxo4IqyxSG/hssHM1Avmb/nESAbtW/2LZ2nDgz9PxwO7Hf7i5
Jdk1m52OIem32ZB7yHa053QJZNfV6sIYc9IplHKeE6N423Oakh1imUTXt1M6cJJ4xHadj0m9xRwR
IAFCmEY+NoL7PRpXvTgiJAXsD7vx8yx55pzigOxsu9jusuqUfSKvkp+Nr43judaJtpW1Sbxj+D5X
NifOGMwp7LKOnLRVQ/iZ7a472JJl3pMjgtrK7tKLzVaTEFA5/QHZ0sbdQR3jjvusYy/LXE59zBH/
7nCCgTAKzqUcETj9RqTqJpsmxj2WLqE4OQZnCwknQDCWEZxLNrT3EXPwRkZIP7yAkM5O2ZvZ/Ef7
eVfxziqUSo69wrq4rzZHhCxjjxOAnjfHMeQVIw6zczUyJtqpmie2veHd2AF5ljLY/KvNl3+0+RJh
TcCJK+z4/s4neZuX8mFl20X+yE26v2vLfT9lGXtJgzr+VJrYzekgE2w3+ZHWzfsOTYm6vCtw0GBJ
PIOd9MI8u4idxnTpLsXf8XF7e4oz1//f9SnerIH4XEFu/6c9772uMKdL+8xx6s/B0bqtJ3sDnVfu
s6X+LPMe6xnenziscfrGKrbGmX+mnK1Z0tOCcJws5ZhXzrwXE8hpKzvG4zD3pp3S9bh9rngzsZ64
ef8RyclJ6CDxc2J+XNfK8K673tZTk9PHN2SOCDg+sr5GNl66Luy/bjoJ3PhsWzjjrrRxx2w+5bv2
I3sHbHV2U+LEyXp8E1uXsz562b4vQHxHWFsct2XX5z3Ls8XOYMwr1JNVyl2DZR1HWdqX5ftTFkcE
nu379n0CYe3LKSg4QW1q3xtj2djmKJ3OknXsxfZiLHv7nhuX87gj4Ag4Ao6AI+AIOAKOgCPgCDgC
joAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4AuUg0OGI8L6VmWRXSrzp4mxDmuLHUX5kT3847Qot
KUlTOmWJE0LX4Qd2yG/cK4988qSjPKUp3VQSoX5+7Ff96Km+OI4yZZG4DtVPuvJVTnmkF8bRR48+
0H/agZCGUAdlVJfSFJKnsqpX7VY51al0ypYtalDZBQsKYEcNUuMJERrIxYOgM+hyH+uRLh2LJnHS
AC8Ggnv0Yhu6V/0CPGV5pPqyLV3CQtuWlKTJtspoEKkMetKJ26N4bJc2UY4LlgihcJFejAtp2EbQ
JY/+E+qefK6Rds1rx5KMs9BliBDgocQ72v/RTidY08ivpSQmXHLyAeRqPXDKvGhErg+MeKSd82Ny
ywZGND3CdmqXvnbMpFwpBwHykL44Ioh8CdnpMiPMz2sEbQQi126X2okP5qgAIQyiWaHTQ0wGh3D/
B8NhDSNHSSCkQ2xcfA4N/zRnsAmvak9fwnL6xHPa4fyU3Mtu1Jx+oF2TJxl+W53VFD4zsh47lLKb
KMLYocwbH7UnO5NfsnNDGGVOHAgOKYdem5LTCh0REoUq/SNHBEiAV+/ZmOxIv9HYlHy3l51osJ2d
qsHpD+fYKRBLz5MLZ9upCMi7/2lPnDWWM1Ktxre6CAmPfMh3jL1CKec5/c1wPawD1/3WqQtbL8/U
am9oe9vsY4RSOT0Uc0SI633ZyF9jzKEIKUW8FMkMHZwNcDpAqGuXi5vDq2ZjMXNYudieezGp5GcD
PMEVOdzG6kZGbrz9+bZwzE0tAUeiE7eqD3sYoRdhLOOUNJiSdd6LHRF4tjxjhM/a7zp2Lh9hb+Ib
92vs3EE669grdy5PGlLw5zd2Mgc7jJdyRIjVJ5ljwdonpc9s7LYNYXn7rJSSU+2kmWvtpBnIurce
OCIha0tXnz/mp5tsd3cIxYVSybFXWBf3MZbxiQHFdCudlnXsxe0SoZd36QOHde1mHesUxssp8yub
e5g/FpylJlyxW/c5kdOMPjFHqdhRJcv7KW5fOWNP5SrtiIADH05drEluss8zpwJsb+9TTryBKMs6
ivyZvlNjhPXuGKmNfQ2xzU77V9vO/K0WZ45kHgFnhNMYTh/dEGYzh6DBlqzPNsu897A57B18dfpe
OP4X9WG1Rbu/F1jL4NhXuD4sxKS3eS8mPc9gJOtxv24IhAiOsZxQgZyydUNYcaF0HozXU7Pbc7jE
nE+m6zglAIef/cen7S61nqr0eE0anOGPTvXiVK0Ldmo059muMaa5HLOciMPJOEiWZ0u5wZ5XqDOr
9GUNlmUcZW1Plu9PWiOWcyJC3L6xd6Zz0hL2vaqUQ3Ws3984a3lOmWItztqdudfFEXAEHAFHwBFw
BBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHIGBRMAcEUabvYl2sbsu5AB+mIQS
AI8cDjVEBUKENPLje+nEZfgxHVuEKkO+dGSDUPG4jCV31g8RTfVRXvqE2OaijbF9bME/V/3ko4cQ
Kl31K402i5ihtqosuqQV2iatWBnaHJdBD5EN6lR+kpHlDwb6K9hQQ+LGYVfpdFAPgTh65JEGINJT
eQFMSJqEe8rwUAGAC3sqz73ySFM6aTxQ7lW/bKm8ZXXaU73kCWjKkh7XQdvi8txTl9qsukjTAyWO
qH7u1Vb1R+UUKl/3lIHdNqc5Ikyw0GWQETj+1pbw6ocpeZrd3SFesSM1O/6LgF6sSbtd0hzYNRYi
B0TtWkZBDzL+8dZw5t2tyQDh1APKSdjReoszmxKCPzuWs3N5KemLI8IaJ0wOkBjXW7J2it2Ub3mu
LRxnfUbYXZhdhmOJyeCbLFMbDt0Av5veBSKVdvxGG3ILxMFqkHL69Od7WpPdyiGL3WbEX0iKsYig
zzhh92ZOwGBn8k1OT4nF+6xdF7b9qaaGtOQ2HTv3lyLOxfarJa5+rrhgLpyyTToeVzluckISFXFR
p0AsPGvOHF5Kj1n16cIHWsNFD7Ymp3MUI/WW85wYw4xlTvy45YDuDjUPvtoWDrkmHeMD6YjAWGBM
MDYkFz/UGi74W2tCAqcdxaSSnw1Of9j90pSYeaztpPzjeXNh67Obw3/tlBAcE5hP1j81HZu7r14X
dvxZ97FZrL0DmZZ13pMjAnMw5OPvRyT7l2yX+p0v6upz7ChVqu09jb1y5/JidfRGyI3LlEMGh5y8
Xcfu2/9nzms6LQF7W5sDykRzROnpnVHJsRf3SfFqckTIOvbUF8JynApUrpwyOAnhNMUpOlfu3pis
D2SnWJjl/RTbKWfsqdz/7KO204Wpcx5pqxtpfU9zRhso0ektYDDOMLjY3hEX2LtiTnMKGPfrxnD6
3S3hejt9hJMLHjq8b84gPbUNDA4zAvzTb7NM7xKcTS7ZpTF5Fl2pgxfr77Mt1tJS897T7+QThz3K
HIuzaQ9Ot8XsKq23eS8mkHMKEg67Eta9qx4/OXEIOcTWmZvaehOJ11PxKT8qt8P5zeH1j/IlT0So
9HhVO8oJWY+zLkd2NWfG+HQV0nBy3fg0W7fbsqVYPjqFUurZojcY8won9XyhAzQLG1fkfnb7zlPs
O1W5jgh9HUecHtCub/BF2hMnjbJp5bt28gqS5fvTcHNEeMrmvj/ZGpoT+ZhXOYlp2saawHp5PpuH
XRwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARc0FZUQAAQABJ
REFU6A8CxoEOuVxuW7Pxjl2Q1uBai6RBCFkVYh+/6hJXHnoIP1yqDHHdK4x/DUYPG4Rc0scm95AR
CClDnuqHf676Za+wPLqUURtVXvqkY0d1yLb0uFeeRRNblCUtJTamcdIoIycH4qTJnupXPy0rEd1j
D13ZUf2pVoa/GOivxI0SCDQ4FhpMGqGEuPRph8rwcIgLFOXpockGOspDlwu2SlzObjulWF/VdvKI
Y1vl1T4MxHrcI9SvizLoQz8mjj5CvkRx6lJbVCf3tF31K51QbVO7VHaU5c3T1tY2zj6EFnUZTATG
GKH1ZSO2StjpHrLUD+fs+Vmsd0pTQvaFdA75vDfRztaldvU9ynYFvst2/S22M3JsuzdHBJwp1j05
JR4X2wH9X5+1h1/arv7In2wn3FULdsKNyeBnmTPBMrbb/XCXcvr0W9sl+CHbLRgZZcQcozJ1dh9S
02R7DUCgQybs0ZjsGvy8kcF/3UEGv2CnhrBEwdj5019bwk3PtpUkzqXWquuvHBEgeUNwRzT2tIu7
TnsoPOHgAyM3TXiiLfzz/Xz4yJw0IH4izfa6BDsmvgeMUFq423I5z0nk1eXnz4WxtoN1LJzaseFp
6RgfSEcECFrjjSgby03mDAGha6RBhGPKYAtzF3MY8vvN6gMEM05Y4XPL5/dTw2KjDiyKkTor3d6s
854cEXQiR9xORtPKx04ObfYx3dfm3m0ix58sY6/cuTxui+K9EXKlR1guGZxTN/gsxSePvGj3u1o6
csIvG8Iqi1THPF1NjghZx14CasefcpwKVK6cMtc/0xZOui39bsHJRassUhuWst3Ql5yrpvNUHdkl
zPJ+isuXO/bispWKH3RVc3j0jXxyGsHJtjP+9uZ4w8kFf+5Yf5xg788b7f05EHMs75g/3NySrN04
9YATTHAmfMx22ucUK0i5EJ055WqwpT/Pttx5j/fwJuyKbu8H3sOsA3Fi46Srhex0jr5Kb/Ne7IhQ
zOFBO7PH76bYua7YeuoE+7zcaJ+b4eTY+dqH+bDjBel8Dbbx2lJkeRwokLUWrw1/2Dxdc3Ff7rOl
zGDMKyLfU19fhLVTMZJ7uY4IfRlH8bjrS9twxMFu1u9PwmK4nIhAPy9/pK3zZBhhdL59f+ntu690
PXQEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHoCcE7ESErS3/
33Z9ZRdEBMiYUL64RNQtTINfDYlGxAV0IedzH/PNdR/bUxlTTeyjj724HHmqH33VTzpx9FUf+aof
Uhb5qoNQdmWDNF2kkQ/5RHoW7RTsIgoVpx7pEyefe9WvtFhPNlQ3odpk0WyCkf6KbKhBgEtjaVws
5AMUD56OqZyA4J5ylEe4FyikCwzyBRD5sT51Ugf6ulQPISwN1Y8NhDLkca/yFu28V3nqoT7sq370
Vb/SyEdkV+XJp34Gnvpg0aSd6JCm+uP2EI/zsYGtkXbN4SciGApDIF8YIWOSbVTKztNn3tMS3jOi
PqcbXL5b6Z1x2b107RPT3U0PWLc+/HI5DZ3SHWCHdnZq5wQCTiIolLF3tYarn2gN3xlRE+46uDvZ
OdYVGZwTGzb78ZT1vv5Re9jh/JSEzckK7JYdS29tj8ngN+zbmJC94vLDMV5On7Y9tym8/QlTTgiN
mgFKdBqS3EJ2GsA9/2wL/3d9Sia9ypwTIJTGct79reHSh1uHFXFOjgjrLFGbENzpjwjbf96+ISEt
CteYEAih9JBrmpNdjoUBO03zmcIRAfI4cvdvRxgZL43rr+xx39vY027wEEmP2rSLtEdZSJYr/TH9
fA6kI0JPJLMG+yjiXDHY8tEX7WHTM9LP+2pGJv3bK23JiRNX2k7ic9mO4oxlxjRy5Cb1ySkpg9nG
rPOeHBEgZZ/7qynny7VPbLJdpNvD1svXhf3WST+oWcZeb/NhX7HqjZAb2ymXDH6zObtwcg+zik7T
OdHIuJD+OSnipv16P5Enrr+S8WpyRMg69mJ8ynEqULlyyrCr+O/+0hKefKtjYuwwMo0N+V8sx+k6
tWE6O/VFkuX9pLKE5Y69uGyl4sfe0pI4T9FPSPDPvJMPGy1dm5zoQp1HGD73vdSWnCJ1nZ0mlVVa
DeIt7eQpnONYZ91kJ63g3IDwxj/K3uF327ucXds5maHwPZ4oVvBP1mebZd6jG7c/3xZYd0JKjgUi
8i62a/9y5uTXm/Q278WEcK0bYpu8u3iH7bFGXdhhpXQe5xkc2bGe4nnHp4dRVidHxOuO2GY1xhm/
jGOE8VXohBm3eaWFupw/sz7bwZhXTrmjJVz3FF+l+yacHIdjYaGU64jQl3HEiVCsV/sqa5vzxzHm
/JH1+9Nwc0TYb1xz8s5hLHJK1uqL5sJ0diIEjvLFTq3oK46u5wg4Ao6AI+AIOAKOgCPgCDgCjoAj
4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AEDBHhNEWf8cufryFFAPPWuQYhRBf2bYv/jGZH9e5
h8yAHuQFERuwgSgdXZFnSSM/tiU+OnnEZYd79FR/TJCIbageU030lad0bFIWW6ojtkUadRByUb/6
ZtEp+PfkYxMd2VT/uCcPQY96sKn6SeMePYT7zCIjmQ10FMQODRRQNBCBIaIGCzDlSZ+OU156ApJ7
gaJOcs/DkV2VU/3KUzukR3l0uFQ/ttBDh3RE99JRefLQictgkz7IdpxHefRhQpIvXdIK9aE0kc6l
+tFBqF9CPvfYJsQRYR5zRBhnocsQIvD0O/mwzxXptqS7r16XEDSKNYfdelc7fnJCeI4JVMV0lXak
nXhwt514UGxXdXREZJnRiCC3GEGulPTmiPDuf9rDVmenBJxiO4fGxLBDN6wPmxjhL5aYDF6MLB7r
Dpd4OX3a2XaXf8l2mYeEd3rBTvul+hvbL7br65l3t4bxj0/9jgjxLsszGkH6gHWNzLhAbafDwZ0v
tAUI5kixsRXjWCw/xl/PiR3ET/hld0eEr234r9XhKDRYjggQCx8cAkcE5qJVjkudLoRPPCc9OzEf
9ro8ndMYz30hl8rOQIRZ5z05Iiw2ey5cvPOUjgiaByGv0t+sYy/LXF4Ml94IuXGZcsng39jj2+C0
yYGQ3dohDnLiB2TT7VesC3uuGS8v4poGP15NjghZx16MWjlOBSqXpQyn6kDAhoQvRzjsrW4n0hzX
cSIN95r3ynk/UU5S7thTuUqG59zXartzs+RPBeeaq/ZoSJwFSNnT5q/nbB6DIM+O3Vll4qfmuHRO
ujaKHR1kLyYhl3L0lG4lwizPNuu8p/azC//Nz7Uavu3hiTfbQlPXYwjjzJlt/pn5ulJaepv34vVm
Xwjk1PSYOTMeaKdkIDgEF57QcLo5T0wwp93h5IgQ96mvu87399mCXyXnFZxKce7pq5Ry7K2EIwJt
isdyb23kVBScZbN+f9L3t2LOqpzmwqkuPa0Rx95pjuhPtoYl7ESSC8Zkn+N66yf5rCPWPGFy8g8M
HNVxWHdxBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR2CgETBH
hO3M5lt2QdSAjQCHGpIqvzTDq0ZIIy4ONvGYe829eOmUI07IhaCLbaWTFtuQo4LYENSvOimrOOW4
V33E1U7ZRpc4oerHnuogTeUIuagXHULuIXjF5e220xa2pY+u2ibMuI/jdtvJf1e7KKd2oJ9ZMNRf
EXDqjBqP3bihipMvXTVeoYj25POQYl3SED0U1RuXIQ92qcBRnegiAle2uCeukPoUx0bM1IttWFbn
IFH95FOW+gkRYUGe6kE/tqVyhKqfuOpXW0lT3KJhlF1z5vP5CfYh5N5liBCA+LPBqU2B3TS3+Elt
+M163QnOcbO2/HNTeP9z23Vzydpkp/E4r1hcZLtRjTXhTjvxoHDXSRG6eiPbrXtyU7KDbUw2jutj
13mcJBi4+65dF7b5aTz0Q4hJP8WIyeWQweN6OUni/f/q4xLCMvPketz1NS5b6Xg5fTrmppZkp+D5
Z6pJdkXuS9s4TWO781KC41gjey9fsJMwpyVwasJAE+cg+U00xxPJwnY6AztpD4RkORHhtQ/zYccL
UgJhsdM4LnygNVz0IO/M/jsisIv4vbbL8AJGlGT3/1het3bs0NGOanBEqPRnQydVgMFCs+TCJXbi
CqQ65OKHWsMFf0sxL3ZaBzovm+ONSHvT2U7hvZFPKdNXyTrvyREBh5ZbDuj+fCfbEm71P6XOFwfb
yTCb28kw/Rl75c7lxfqu+bvYCR2F+jEZ/LRtG8JPF+h4WIWK0T0nInAywizT14S9zPFAO4aX2mVa
RSs99lSPwnIdEapx7KkvhFmcCrKUievkHX3Sba3J55LTZG4/aETnvJ7l/RTbzjL2WBfhIEGIzDJd
zYCeFvCXp9vCybenDmrYjx0ocRTi9CnmpzV/UBv+uMWUazLeA+zuL1l2/tqwVZFTqmJH02Knw7xl
7/HRHe/xnczhZ7fVuq+dsF/J8Zrl2fZn3hNeCnHgu+XvrQGiP4LDEw65PUlv814WR4R3zGFkmw6H
keN/UR846ScWnXRSaj1V6fEat6Wvcb4r8J5BjjXHojXMwag3GchnS12VnFd660tP+fF3kmInYFA2
yzjqqc5SeVm/P8k5ZlE78Y71Vyxa9/bFEWFxc0S4sMKOCLFD1v9tXB/WX6r3sVjJeS/GyuOOgCPg
CDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCMw9SBgHOhtrTfv2AWREFIH
/GlEBA9YKMRFmiKftDjkB03pQ2ZAVzqQrNHVxb3skYZwD/GBkHLSsWgi0pctdOJL9atc3FbSkNg2
9VJG9ROqfosm9ZNGWfUD/fjebpM8QtlS/dyrfapfdckGbVQaNjKJjGcq3FFIDwtb6rTiaiT36hRA
InE5OosOV2HckhIhXSDLVmEZbJMnO6qfkAtR/bKhdigfHcrrXu0hnfrpY1y2sC7yKIue9LknHRFG
shGHqUZaXvWTRh2InBwok5yIYI4I49wRIcFmSP/seklzePG9fNh0mdpwyAZTkt7UOJGhIApCnpnJ
TjLoSSCRQiZFTt2mIaywYNew+PKb9rDR2KYACaY3xwYI7xDfV1ooF07eujvhRfVvbLY++ao9/MB2
E7+oYDfxP9/TGsY9lhLNipF+yiHtqz7CU+5oCdc9pY9kCNfu1Rjm/F7PmMTlKxkvp09gA0ZIX3eu
ZVfhdU+eHFqt+5sZKZrdlCWQpje03cwh+ZUizkm33PDqJ9vC2Du7CJx9JTX3pZ4sjgjsvvvrS1NH
hFNsbK5oY1QCoZSTOj7ocFYpduJBOc/p0odbw3n3p8/psl0bAk4YkniMV4MjQqU/Gyfe1hIggCMn
/LIhrLJIigUvvDEXNodXjNhc6iQWyuh0AeIDTYTLOu/JEYE2FX4O77KTZY6yE2YQOVP1Z+yVO5cn
FRf86Y2QG6uzkzSnWECYPWKj+rDhj7SkiLW6xzmlhR3TkTpTZ64ptvty91KDPy+X64hQjWMvxjCL
U0GWMnGdxO+w02N+33F6zLm/aghLzZV+prO8n2LbWcbeF7Y++bk5QErW/WFtOHrTrnec0rOGrFU2
Pb0p+TzgSHX5bl3rmodfy4eDr07HfeygENd1gTm4Xdzh4EZ6qfbFZHAcNHHUjAUb2EJwQsUZtVAq
OV6zPNv+zHuFfdO9HLN+Ml8unLld17NQfhz2Nu9lIZAn6+BTJgfWVSvbju0nRju2J2tlOw2m2ea/
UuupSo/XuP99jTPXr3NSug7EURWH1d6kEs+2UvNKb33pKb+aHBFoZ5bvT5fZevRcW49ON7Im3HZg
Y6cjKPb0nbInRwTNYTga3rhvd8dLbAykxI4+fD/ke2JvUsl5r7e6Pd8RcAQcAUfAEXAEHAFHwBFw
BBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcASGJwLGgR5tLX/brnSn2a5TAVKCW8qhhnsNUQOK
m3jbxHVZNOFnEyLocymfHzyxR1nSEeURx7Z+FEVP+uQRV/3cq37i2JCgQ57qkH1CiCeqQ3qW1Fle
dZJGvuqUPWwIjziPdHQQxbknjh0JxBbVIT3yiHNlFlWe2UBUkI4hxTqgTtORuMF0kjTKECdPOtKL
71WHypl6JzDKI6QsOuofNgCQBym7qpO0uM2FOrJrasmDVTm1Ww9G99InnTSEkPZgG8GG7MDMIo7E
OtyTLhvcE8c+et+xa+729vZxFroMMQIijWxijgiH9uCI8KqRe8cYMRSCESRoduqdq4N4/40RqCBJ
syv5Ph1kN4jom53RFL6a3B7m/n5NOMOISJBOIF2xY/6DrzLMrJyRDpfsIB0Wg0IE3ZE22vZcsz5x
XMAZgrp0ysIltgs6RHJkT9s9e/sV0+H61Nv5cIiR+r4xDu+yRjI7owjJrBwyeNy+SpOt47rKjZfT
J8hvW53VFD6d1J44UhxlhMslbJdSCc/9L0b6bjRID/p5FxlTuxmTDnFuOSObMTb+eHN6wgLlSxHn
ZLvcsNocEThJhN35EXZ5P3qz+jC9EbMYbzjh3G0Eckl/HRGoa3P7PGF7jhlqks/f/DPlwv0vt4U/
3tKSELWp69vgiPDP9/Nhl4tTsu7SdhLJib+sDyMbahJyLiciIHuvVRdGr5DOA0lC9KeSJLOs857m
OZrJ/HrGdulY+vCL9rDX5c3h3+bQwnO/xhyemPf6M/bKncsj6DqjvRFyOxU7Ipva2P3I+kLfIEQv
NXcu1HVNM4Xqyb2c0JTZFyeGwZiXeSaTOr424CRyxaPpmBtrpz183060QGb9bk0YVYRfWY1jT/gS
ZnEqKKfMEde1JM9+/SVzYZSdRoJAtubEF97X0xpmf9mnMZlHycv6fqKspNyxNxjE7gPGN4fH38wn
C2V2wV/VdsHnM45j26fmqADB91Y7GQUyb6GIxKv0Uo4IfGFY395PzBUNZue4XzQkDp2Ue9dOFtpv
XHNgLCOlTo+p5HjN8myzzns4eNxn70ocJzmFC2G98tgb+cBchgzViQjUffa9rZ3zyJhV7GSv5WvD
19asY8w559mJfG0qvZ4ajPGaNKDMP+Mfbw1n3p3OjbyLOXGDtTvCd4Y7be686Vlbv9h3Cd5tWZ8t
9oZiXqHeLFJtjghZvj9x4hnf4xCe7Q4r1SZzVuxc1JMjwq1/bwvH2roV4bQ7Tlaa2U6eqYS8/Ul7
2PbcdJ3ujgiVQNhtOgKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKO
AAh0OCK8a9Fv7OKH/vRH0ZTvzQ+i/IAOYYE8yBpcxMlTPvfSkR55ils0EdnCBvVQBj3upY9OnCae
OLYQ1a+y5Kt+8nSpPdwTJ5Qti3b2i7oQ1Y+O0ihHe2DBUF6CDmkqQ/3SkR55xLmwg6idiieJ/fmj
hvbHBo3DDp2SCLA4j47QSXVWQKmjlCWue0JE5QQa5aUnW9yrfvTFnFT96HGRrjKElFNbVZ/uCRHZ
UznuVb/axr3skQbTWOWUp3uF0teDV32FoZnqbLf6hc1p7ZrTTkS4yk9EAKKhlX2vbE4IgGssVhuO
3bKLaF6sVWcZWerKDtIlDxLHAkixH33ZHth5eEvbUfcg21lXcpURkc7oICLhODCLEU0+N1IcJCSk
cPfXNLX737eMRLLD+U2J/TgH4gqkeQTy7zbnpKcicP+9aa1dVh+EPgQS3lk7NnQj2CcZ9qcc0r7K
EA4G4TWur5x4uX362ytt4UgjFbGLPwIhaKRtYPufr0KY1JRiuMYPbHwYYUzCLqNjLjJifMez5IQM
TkPA8UQy0I4IMcmJOob6RATacOi1LeEBww9hjM87Y0349+c2xrWcSHJC6K8jAmYKHTE6TIfvTpOS
+LgvdETAwWSnCzoekuXzjPRMv2NEYBxJkBr7HF9tJHccfk66vSVc/3Rb0R3oRSDriWQ2GJ8NOcLQ
dnbMZz7S+IXsftb29Z1EZ3RiWeOEyZ3jdqBPRKCeLPNe7IiADQibkNrZPZ3TABDmO+Y9SX/GXrlz
OYRSSPeSz75uT4i8jPkZbPxJNrd3wE4r63Wv1JA4iWj3dVKZk+tNjZ3vT7ETc4rJtXbizKl28gzC
fPTXA0YkYTFdpQ3G2MMJBmeYnmT/devDVst1PSvpVuPYU9sIy3EqULlyynASEu9l1g2zG/mYcf6O
veMhhSM4Mm5ru/fHkuX9FJePd/4nvbexNxjEbk5t2ffKls735Qibd5tsqAMDn6bDezg5pK+OCPSV
dxPzhIQ12wiD9z17R7FmQ7Zc1tZtkZNhmpr+rfR4zfJss8x7N9kJXX/qOKGL9x7Edxw/cIJBZrS5
Ficv5plYyp33spyIQH2Q8HFCwUGklJRaTw3GeC3Vpp7SW2187WF9erFjrmStwdqSzzonRekzP373
xuQEI2xlebaUG4p5hXr7IlnWYFnHUV/aU6iT5ftTk/17iFNdGLcI8/jI+prAWJT0tEbke8KWf27u
/PxRBic0hPWATsRJU/r3Nz5p49JdGsIis9mipRep9LzXS/We7Qg4Ao6AI+AIOAKOgCPgCDgCjoAj
4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4AsMMAeNAh9ra2m2s2e/aNckuCEOQrESogoTPPT9YKowd
BfixNSYiKU669GWPPP04qzTqwZ7sUD96+oGUPN1ThnzVb9GknGzqHpuyp3arX+ggsqn6lYYeZSlH
HnWqXsrEdlSPJSeie0JE5RRSHiE/rp/8zKLKMhvoKCjAZacYqLCiaLg6QhnpkQY4AkH3ylc692qz
QJauZSUiXekpXw+He0T36AFiFzs4bSPtRahT/YvjpHHJPnZ0WTSROB97lFcfVD861B9Td9BR/Rbt
rJ845ZBRds3jJyIkWAz5H3alhFwMmfmKXzckhKyeGsVJBqfe2Zrsbh3rzWME7H3Xqg8rLsSw6JI7
XoBM2tpJuCMH4vBWy9UlO2FCZO1NIDKddU9reP2jfOJ0gP56S9aGIzfpGvoQdyAnP2G7DDMIJfPY
aQy/t53qS5FP0N/fdifmA3DvIb0TXWX39Ltaw4QnmJNTud52cZ7NdsGuBsnSpzc/bk928X/JsI7x
gzDKiRW/MFItziqxvP5hPiGOQeiTLDZ7Lvxk3lyyu++cdmLGtUbuGyhh1+x7X0rfG6Maa8L1+zYE
SIUDISKrxuNK5LZzzInlR7aDu3CN+wXx6oS/tiYnE6gdjO8VF6wN7PoNsa7U2JK9UvmyF4ecsnDl
Y23h7U/yCZl3CdvdmZ2G97gsPa2E3YXXNKcRycfmJLSJEcZ6E57zPb9Nxz/kb0jgP7FTRM4sOEXk
9ufbks8ZDgv3HTqiqNnB+GxAYjztznTuwrkCoQ+0GQxKjQscaHBakowx0vyuht9AS7nznhwRlreT
Raa3uZgdh0XUhBx7yPr1gZ3PY+nP2MNOOXP5cUbivcXIvL0JuyNzGkWh4CRyh42d68zB5Z1P88nJ
OOhwosXZO8RLiK6S/zEnmg1PS5/Vhj+qDZyI0JsMxtiDMAy5sSf5jTnkbWFOGbFU69iL28i4/b3t
ws6Yu8/eh32RcspwUswDr+S7EVapAyL+Fj+pC7vb7tjFTsrI8n5S28sde5OMJMtJAHqrrb9Ubfi/
jXsfe6qvr+Fr9v5kV/GYfM46jBNDeA+VkngHc3R6a99DdhrAWfe0hIkFJHdOXRizcm3YYtnimA/W
eC332WaZ9/7+bj4wN4C55lXhy5pl/3Xqip7MVe68R9vWOzkdO+faaV+FhOot/9wU3jcnkGIn9uAU
cbKtlZ96K58QtHE8WM1Oymi0occzx8mRkysKZbDGa2G9fbnH2eWyR1IHZjmtqhwOw6sskktOMdP7
Osuzxd5QzCvqR29hljVYf8ZRb+0plp/l+9PT7+TD7+yEG9qKsP5aYcFc+NnCtbYmtneIjdtSa0T0
OamA71C8D3BM0OfyLFsPLGPrgoEQbPK5v+bJ9Lva3Qc3lnRQVX2DNe+pPg8dAUfAEXAEHAFHwBFw
BBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUdg+CNgHGjbMDs32nryrl3/swtSERc/qEK2
ghrID6HEuUgnjRA90vRDaXwvO5bdzRbplEf4QRSSCba4EPIVV/3oqH50VD96pIuoojq5j+3E9olT
nktlVZ8lJeUIEWzQNy7ZtmjnPXHSVT92dK+42oquRPXLPmFmwVh/RR2MG6tGCjBCLjpLiKgD6V1X
unRUNraFbmF9emDoySZx9GTDokmenAG4Jw8ddCWkxTrkIwqJx/XF96qPkEvtln3Zpgxpql+2lRaz
D2Un1iGffnIiwlx+IoKhUAXCjrSHdeyYC4GaUwuWmTcXDt+wZ+IdO2FC2LC5NNnllB1mSwkD5v3P
2sOHRoqe3shvEKrYLbMS8j/b/P3Nj1Oy2VxGhIfs5NJ3BCCLQRT+2sLpjIc6uzlXjOqF7A+x7sMv
2gN4s+NtJYQxtMGpTQHCFLLrqnVhzCrxlJMkD9kfdq4HBz5DC8+SS3aIrWRj2G0YpHHkYXfhzc9M
CdsX246vi/Vhx9dKtm0wbUN0hFxKuMDMuSl2tC5sy1+MCH+ynfiAQH68fl8jpk3J7Swslum+nHlP
jggQ+U61HYEhl75hzkHTGiF8ARtPkPxKSX/HXjlzeak2VCL9bnPG4KQW5PydGsIPzelmOEu1jr3B
xhRyKHMl45b4d21NMIe9OyCu9iZZ3k+92RzqfBxucBJgV/65zXGyEsJc9Imtv8Ad4QQjHCd7cgQd
zPFKm8p9tlnmPQjPYDDJXpc4vMxmZH9Oiag2Ycd5nVb0h5tbwm3/aAsrmZPvyVsXd9qqtvYXtodR
96GtU1gnEud7BuOv1Hsty7P1eaUQ9fLvy/3+1Gzj9E1ziiVc0NZfOtWg/JoHtsSzE/PJOu9TO9VN
p7T19fSrwZ73Brbnbs0RcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8AR
cASGCoGampptre537Pqmow38PA5PGiGEsA/xiTh58b3dJvekS0dlSUNkj3ycDxB0ID1IF5sxCUJl
yeeSbYt21h/rEEeHUOkWTUT32KceRPqqn1D1E5KvkDKwhWUn1rXkJJ086cRlZQM92qd+ohP3ifxM
okZnKtxRSI0UgNyrsepYDAL5AoG4yhcLC/U6quwsw73sCUDqFjiUh2Wr+i3aqY8OZQljQON70hHS
uBDKxG1V/WLzokdbqBNR/XG+6qOs2k1Ie1UPIXroEOcirvuRFp/bvIHGW+hSBQhc+WhruMl2u/7Y
SELN9vTZxZXdXF0cgWpB4C0jZY8+LyXb48wCgXyab9kQ/dq6z+7IhTuGX/Rga7jwgdbEuee2g0ZU
jFhfLWOhP+043Hbwvf/l9BW3++p1Ycef6fXWH6v9L1voiNB/i8PbAo4lO13YnJyCU2on8OHWw2od
e8MNR2/v4CDg43VwcFYtOIRxIkYsOKRtfmZzQqbebsW6sNea1fG+itvocUeg2hBgjcf8heBw+tMF
cuHXtt7ryWFeffB5T0h46Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj
4Ag4AuUgYI4InIgw0S4cEfjxnx8txfsmDn8afjUibjZ6cKx1KV8heuQh6CqdNOJxOdlHjwtnBXTg
dVO/+N0W7bSDHqI6YvvkqZ3olNIlj3LUjx30VJZ0iA60Jc4nXfYIVU7p8b3i0jf1REiXxHGllRUW
Gi+rcIcyHZQdOqKGE8YPhwcBsALEoomoE6Qj2FA5QOReZWVT9VlWoqt7dKWPrsoRyqbqVxnLSgQd
yqgOQvaWpc1qh2yqLCH2CLnIp37pqzy2udQ2i3ZiJluUobzqIKR8bM9uE9uUmcauue1EhPH2ISTd
pYoQYPdInkuldgmvoq56U4YRAtc+1RZOvYP3YkjIeJDyvm1y3v2t4cZn28K6P6wNi89RYzsm14Rn
3smH655qTXYW32r5urD/Ot8+XPo6DngxrX9KUxDh8/p9Gns9QaGvtvur544IKYKPvp4PL3+QD/e9
1Bbe+oQnFsKhdjrPJkuzDBm+Us1jb/ii6i2vFAI+XiuFbHG7OF6tfOzk5DSyVRetTQjTn9lJGVc+
1hom2sljnBZyzV6NYUY7ycLFEXAEekaAz9MX37QnTgjlnL7n817PuHquI+AIOAKOgCPgCDgCjoAj
4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIFEfAONChtrZ2O8t9xy47uz3hZIt8T8iP/VyK
w6lOSVHdyf6kwfdGlxCylOxwzyX+OLqygb7KSicuTz7lVH9clrYgsQ10Saf+2B7l0EPiulWWMtIv
LI+O8lQ2bof6RTnVDwmSNqsdFu2snziCXdlOErL8wUB/BRsCiJBOSNRh7qVHGh0jjDtNmsCTru7R
5RJYFu20J9CUhx1ENhRPEu0PNsUylX2l8aDIoyyiOtO77n2TjupXvYTKi0PFsYmDAaJ6CeW0QP3Y
RNCVXe5j29Pa/Vx2IsJVZLg4Ao6AI9AbAg+/lg8PvdYWam2G2Xft+jBCM1FvBaeifBwRLn2Y9+uU
svz8ufDHLerDKNv91aU4Ai32ljzj7pZAuJzhtcZi8SuqeJnBSnVHhBTp30xoDo+YM4Jkwx/VhsM3
qu9cmCh9uIXVPPaGG5be3soj4OO18hjHNUCc/pk5IhSTaRtDOGSD+rD24tXzvirWTk9zBIY7Aj7v
Dfcn6O13BBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBIYOAdv0e1ur
faJd/PgPbxryExdxXdzD8YYAoHyLJnEIf+QRcklXcWwgsk0cHYRQeuKhq06F0qMOON6qPy5HHuVJ
o5zu0eWePMUtmqSpvMqofuUTImoH5am/0D6YUB+hbKGruOqXHaUrNNXsgpH+SmyDOBcdUnoMngBQ
Z8QIocMIZchTWdIpz6W0GCw9KMtOBB105cVBIvfYxBa0W9Vt0U7QBThpCHa41BbaiR0EXT0stY90
1Y2e2kVc9WOrkPYru7EdU0vKqH7KS09p3OOIMIc7IhgKLo6AI+AI9BGBT79qD4+9ke4Y/59JaaG5
vlcTlpizJqxmuyi7DF8E7nqxLbzwXj4sNEsubDzMd//vz1O45bm28NpH+TDdyJqw1Fy58JP5ciHH
6sHFEXAEHIGpGIGn386H597Nh39/3p7s5v79UTVh3hlrwlrmgDDLdD4JTsWP3rvmCDgCjoAj4Ag4
Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAjMMwR6HBE+Jd14xu7Wjq6I/42
fGzxxuFa64LspzghopCylEEgDXCRR5pIBPFuxugj5FG/dAgpQ1nVh67uFVd50lVWdXGvNOqEE44o
nzjlpUf90iFUuwv599IhXyI73CsdPdVPnbovrJ8ymUTGMxXuKFTo3UFHaCghl0SNVzr3Ap002oIt
gBagSlcZHqSAUB3F6kcPoRx1cI9NlSFdg0JphLIvXUvqJnEZ9BHVj03ZIo177Kh+8lTGop31Y1Pt
Uf2xLjYkskv+KLvmam1tHW/HkijfQ0fAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwB
R8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBKoaAduMPeRyuW2skf+yi62F
4UfDE4d7XUiWh2st3jkh97ogUsuJwaKJnvQJ4WJjDxG3m7pUD+nElUYZ1S8et+pUecqgh6h+8uJ8
lSG/kB9PmupXGerHJpfaY9HEptKFEWVIIyxmX/qW3dkvxclT/dSTWah8oIQGIQCvB0GaOqKOowOh
Xp4dAoF0RMCgT1z3dJQ46ZThPraPTQS7Iuwrn3TKUoaynEygdlq0Wz2yT1niErVTNrGlemSTOqgf
++TrBAaLdmJCvMEu1U+ZuF+qU/WTh1AHeapzhMXnsw/hOAtdHAFHwBFwBBwBR8ARcAQcAUfAEXAE
HAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARGDYI
2IkI21lj37XrC7vgTotfDg+bCyFNvG2dGiBHAdLhWCPEY94198qHg00Z8bcJKSdeOHaJk06osthT
/fDCVb/qwobqJxQP3KLdbGCHMrF91Y+u6kdHbZJdtZX6aQu2yIv7qjTqVxwdtZN04qQpbtH+iRrQ
PytpaTU67rwAQAMCPR2g8QCCvi7dk0eZ+KKc2kl5BD3SKEcc4Z5yIuqTJvDIU7tUv2wU3lMubjfl
pCt78T1xRCH1I7JB3VxqF3rkyQb26QcheoVCOenG5TgRYQ5zRJhQWMDvhw6B9z9vDx/8tz18/r/2
8N1pasKy82lYDF2bvGZHwBFwBBwBR8ARcAQcAUfAEXAEHAFHIAsCzfYvrE++ag8j7N9Z3x9V7F8W
Wax6GUfAEXAEKoOA5qyRtgXM96atzJzFnPj02/kwvf3fb0b77+w8M+ZCo/4bXJluuVVHwBFwBBwB
R8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUdgqkbAHBG2tQ5OtKvJLnjacKq5EPGmda+QHwLI
456Qe8rGV0zghbwfS+E95eBxx+XRx7Z43tQR109+fE9Z9Llkz6KJKA8bCOUU5171SI9Q+fSDe8K4
nNpDyKW6CRGlE6c8ojTdp6n9+IvB/goAIzRKjVenySONPDVedQKGHo4eNrr66Ya47BGiix3pWjSx
qfu4fumK/C876Kp+9KWndNLwFolFZbGlMsqnnOqXHnno0j9OPiCdi3qlT1y2yFO66lcbLatT1BdC
ZBq75mlraxtnx5IkCf5n6BCYbH5Ih1zTHJ58i0eYypJz5cJ5v2IIDI2891l75wdILZjxOzVhZOEI
V6aHVYVAi80gXze1h7ramjCqsaqa5o0xBHg+SD1vERdHIAMCeXv7t9kro9Ze4blib/0MNr1I9SHw
5TftgWddY894+pF9e9BZylRfz71FjsCUCPi8NyUm1ZDyhc1TdtJlQqbs2yw1Zaur7dkORJ+m7GXl
Uqp9XXnqHS3h2qfawvLz58LY0UP3/bZyT8AtOwKOwNSEwKNv5MNBVzWH6Wztfd3eDeE7I7K+3Uqj
ct/LbeGI69iQKBU2Ivm/jevDigv5/2eFiYeOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj
4Ag4Ao5AXxHI5/OhtrZWjghfWzn+4R6fDABTD561hDhOBDD30EMf4i4XaeTrXiHplJFubM+SE743
uqSjg6444x1MQUvpEtUvm6pTbELdKyQd+/xwQRoXcf2QoT6STv3cizOudhXqS48QQU/8ctVBGoIO
cULykEJ7aWqGv+pEhqKdRbAhUEiUTRpNXB0gzgVAetgW7eyMOkkoMFVGeuQhsql4XD95iOzFwBFX
/YmS/SGNemSDkIs2yhb5xLFZLI6+7CjUQOBetmVDD9uyknqwiagdxFU/aapT9WBnhF1z24kIV1no
MsQIXPloazjrXuaUEBabPRcWn70mLDRrLmy8NI9x8OVT251to7E4h3WXQzaoD5suMzRt6t6Swbk7
5qaWcNeLfBRDuHn/xs7d8DY8rSn8106tWHCWXLh0l+ok02hMzfbdmnD9Pl2eCMO5T4Pz1Ctfy2sf
5sOOFzQnFd2wb2OYdXpN4ZWve6Br+NqmiWcn5sPz/8onpPiFZ60JP543F2YypyWXyiLw26ubw0Ov
5cMGS9WG3xlp5dsoLGqeMge+L2w+ZqWz+mK1oY4VzjAXHAFPu7MlPGefrW+6+Enh1gMaS+4knaXM
MIdpwJrPjrR/N6yReWasCQvb+mugxefKgUH02zjv8dne+px0Tb6ZrcEPWi+d769/pi1A7kaO27Ih
rLLIwI/bvjy1+DvD+Ts1hB/Oma0d1fRsB6pPfcFvIHSqfV058dP2MPq8pmSdeMIv622slv4uORhz
JU4bD7/WFl79MD2JkLXEXN+rCUvZJgDLmaNEMXnrk/ZkrVssjzQcQjey7+1Dvfp94yN7n72bDxM/
zQc2EFhq7lxgc4OBdFh99z/t4ZHX2wInOX46KYSZbCf3uW0n97UXzyUnOhbD6Pbn20JT+q+OYtlh
sdlqwiKzFce+aIEKJFZ67LHz/XuGWW8ysz23mIjuYy+ESfYKvOef6f9kesNv5YVz3dbKWcceznFb
nNkUPvyiPWy1fF3Yf534X7BTtiLL/1iYG29+ri05LebBV9PPyCzT1YQb9msc8rlkyh56iiPgCDgC
joAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI1D9CHSciPCutfQbu/hhhh/U+QmPix8b9GON
iP/ikpOODunSFc/bkpJysQ5pSGxTtqVHqHpkMynUkc6PpqqfdOkopHz8A5rsUkZx/YBCGdIkuicf
G1yF5aifMrJFGfVZupSTLYsmcfIQ6Sse158olPsHgwMhAk2dwSZpNDBuPOmkST++j0EhXbZkB2D5
9Ujp6Ej0azg6igvsWF/AYjPue9wexdVO6WGH+tVOi3baoC700FFcdah+8mVLOpaUpEmXe8VVv9qD
HTEVscOJCO6IYCBUgxxuO6HdbzuizTdTTRi/exdpfKja9tXk9nDwhJZksNIGSMbIb9evD5v9mOH3
7ZDf/aUl3PtSOmfjiCBy9donNtkP4u1V87yKPY0rzLnlbHNugeQO2V0ynPukPgz38OUP8mHMhakj
wnV7N4Y5ZtDUPrx6Bnl37yuaA4SkWKYx35xTtmkIPzLyk0vlEPjNhGYjguXDz39YG47aVK/34vVx
6s6vL21Odqw+bMO6xOGtuObwSOUkCJzEmOfeNnKg5BabpyHeDWeB+LTD+U3hzY/TfnHixbSNNcli
b8KeDUVJflnKDBZG1Tz2IFEyhm77R1vnKTWbGNH7UHO6HEjxuXLg0Cxn3hu4WofW0jtGVNymwxEB
B+XDNkzH59VPtIaxd6XM3mO3qA9r/GBo1ucff9keNjk9dZTgJDdIz1mkmp7tQPUpCw5ZylT7ulLf
c1nvXrNXY0lS/GDMlaybfn9jS+C7bjFZdr5cOGbz+ineteMeaw1/vif9vBUrR9qDh48Y0pPOSrVx
DXPS/L31aSAcNfe5sjlAqC8m7Bi/n5G1cZAtlNX/NDmwHiglO6xUF/ZYo2eid6myA5E+GGPvkGta
AmTz3gRnLpy6JKWeq/IJp/ax97o58e/Q4cQf97tY/HQ7cSV2KOrP2BP2dTak+c6Ok0Ap6e//WG4y
h4Q/3Zp+SG47sDHMMG3pukq1wdMdAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBByB
bzMCthl7yOVyow2Dt+2abJd+EOTHLX6k4V4XafwzXjrk80N3/GMOefG97KBHXLYIuedHMuJyPiCu
OlS/JSU66GMHHUT3hLHoHjvEscOPamqXyhOqfvJkW6HsxPrkIaRxSZc0/VBBOcVjPdlDV0L5YunK
7zVURb0q9qBAIwQWamqUOk4ecf0yqQ6qc4SUQaQXA4o+ZQkBXHkqY0nd6kcHXWwh0iNd7VS/Yx3l
wQ6hDvQR4qShK9vY5JIdQvIJ0SFOG6Rn0aQP0lObVEZ6lKEu9ZVySkMXHAjRt73rwtx2LMmV5g1k
UZehRGC3S5rDC+/lw7pGKD26F0LpULRznZOaEsKGOyKknxV3RBiKUTj11Alx/7BrU0eE07drCDOO
Gn5zMLvJQoyEyMsuqystlAujjIAEwYYdRUfYm+iiMY1h/pmHX9+Gy0g77c5WI4O1hVUXrQ27raYl
UvHWTzLC3do2jyNjt20Iyy+gZURx/WpOZadfdh394L8sZ7rL1OCI8PK/zVHponR+2HXVumQX1mm7
fMm6d7jjLkuZooYqkFitY48xdOcLbQEnjlgG2hHB58oY3f7Hy5n3+l9bdVj4tjgiVNOzHW6OCNW8
roTgvdkZ6WkI7CjOzuLFZLDmyr883RZOvj0l+3L6zQK2TuWUu6eMXN/Kf21MVlgwlzjUxitYEZJZ
8y5aZOf+nC2rzt2xIeA8OBTCrurHd5CYOQ0PIjanI/zzff4VFMJ6S9aGIzfh30T9k/VOSU8FnG5k
TfiBneA4kxGzOZmKXeMR+n/2DlM6JIkMDpH7+0W+93CaxFCdujhYY++c+1i3p8+j8Cl88U178p2K
9NEr1IW91+r6nPjYCwk2R15f2pOFdTAjsMH+k3qrkfhxipH0Z+yxht3YTgnldLKdVq7r8ftWfx0R
Yoeyy3ZtqMjpXMLEQ0fAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR2BqRMA40KG2
tnZb69u7duGIwK9/OAXwMwI/HvBDDb/mcd/xy2CSpnvy0OGCv01ZlSMu3jdpKk+c8pRROvfYQifW
k13VJ9sqr7ZJj7JqE3HVH7cNGwg2VD/3qh9biGwTImqv6iaM8/ixSvVLh/y4bdSnMoX1W1b5os6U
X3LKEtiiUYCljpAmQIjrnk7EcYFDmsoKINIQdCinjpOG6F72+IWWwQOgSpMNAUqouB4y94jqIU6e
2qGQdNkjVP2UJ079GjyyjR6XdEhX/bSTOklD4rjS4nKypRMRxqfF/O9QIrCrOSK8aI4I/AB/yADv
xDsQ/XJHhBD8RISBGEluY2pBgJNCIFwg7GDKTqbIM+/kk1MSiG/5k9pw0Hr9Jz1hy6V/CFQrGTxL
r656vDWccTfLtJDsvP3daVIHGO6nBkcEfbZYrN12UOMUuzLTz0LJUqbQRqXuq3XsrXnC5PA/8/fA
yWOLn9SFK+1kBJwSBtoRQc8GfH2urNQom7rtflscEarpKQ43R4Rqwq6wLRc/2BoueKA1cFrWzfuP
SObcQh3uB2uuxAHtwdfyYceVarsRfXFG2P2y5jDRTiBBLjci8ELmqCARGRwi/Y379eIdqEKDGOIc
zFzB6X2X75aensQ7bQ/rEycb4iBwk7W7mBNAOc3c6/LmsJqdsLDRj2oTp2PKgtj1kYPHKovUhhN+
2X39LzL4ERvVhw2tbDXJYI29nvp89ZNtYeyd6feqq/ZoDPPOyCowFR97QqJ42Gr//cRZ4POv28Na
i9eGP9jpH7H0d+ydZI5LjG8+O3yGSjkb9dcRIX7XX7Rzgzn6dM0/cX887gg4Ao6AI+AIOAKOgCPg
CDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCpRGwzdhxRHjHLnb/5McX/egCF5uftdIfA1NutvLgWiOE
yo+dENCLddCVLYXYlz3ikOion3/4k676LZoI9/oxANtxHShQP/nYl13i6JKu9pCGyIbiqp8f5mLb
sic7aptsqi61D321Q7bje9IQtSO9y/hXlWcsnhSjcYg6TUjj1BEBpw4ToqMOWzQRlQdIygqwNLe7
fWzwwAC7sH7uVT/5elCyrwdE/YpbNLFDGr98xeWJUxa7apPqp62qX/XqHl1sqX7SiauM6pc+bVH9
Fk3aQBqi+mkLaZThvPf5zBtovJ+IYEgMsWRxRIDw+8oH+fDWJ+3JDo5zzFCT7Eq++BwaEl2dgojw
kO1U/uqH7cmOhdPbLoYLzVKT7KTd207LWCnHEYEd0h97Ix/e+DifkPrm+l5NWHqeXFiiSLvUwk8n
tYdHXs8nA3MDIydABnnizXx42vrI4GXnyQ2Wqg0jGbWRsHPcm7bbo4Qfn9mJfaCkPz8oZ+0Tz5Qd
v1+3ftF3SDA/s93meb6l5NmJ+fCM7bA40XbaZwf6lWwnzyft/ux7W8Os09eEG/btIsz0p0+l6h+o
dPr8ku1oyJh58+P2hDizoPVncyO08+M85KEmm7lXtx3gVzRMYoE09qiNO/Q+td1XGdfzz8y4qwnF
PhMqm+U5MT7vfzmf7DJabzPyknPmElLO42+0BXbVXGruXICoFAtlnrQdQwtlNetLA7N6gbCD6RuG
AXawh+3n7Dl/aT6bYILTEicQlJJKfzYOGN8cHrfPKCRwyNJqySUPtYbz/8brNSS7Uf7VdqWs15uo
VGMrlF7uvPcPI2oxfuawnWTn/n5NeODVfOIgNsO0NeGHc9aE1Y14xU64hZJ17MlOOXM5O6l+ZkSb
WPi8LFaErILeQ0a2Q75pbg+n35U+FxxEFozIdTMbaY3df5HXP8yHlz5oD7XWz1JEMX1O0WG+LoSk
0mOP3YwfeKUt/Mp2Jl3G3i03PNMWTrwtJW9ViyNCuWNPn3eewd/tc36HzXXgesiGXS807tnRWJ+n
LGWwjzCCHjQMX3ivPXxkcyekKk5mWcLG+fLzT/muTQrZn76+n7KMPdVB2GbD9vbnWdKmwudxybm6
z/nKyxpufXZTWMdOofrlsulcusGpTclna6AdEYbDXAmGfX22wjvrvEc5xjdrxa/sfTa9uUXPaeub
FRasDfPPVDibpLWVM+9BSLztH23JGF91kVz4bFIIT7zVZmuL9oREyFy3vO0UXkqYj6nvX5+1hwVt
nbzCAjlbe9Yk+IxqrJli7YGdSo/XmJy4se0afljHvHD1E61hbMe8fuwW9WGNH5R+2fKZfNzWSHxn
4DSZGaa1tcQsubC2rZvj7wHM32/Z2mNmW3ssO193nCjHepMdp9deoqsunukmp6cn7pz3q4bEwQcM
SV94VjAbmGdb+Mz62qfCcn2570+fsF/O54n14b0vTbk+jNs5/ciQEGzjtHLXlXHZctpHuSxrZdW3
9xXNiZMqpzf96Rdd7zTlK6yGuRKHtLPsuxNSSJivZjI464FdLuZ/qSH8xhyAt7B1HvKl7bK/1dnN
yfdq7tlln932KyF8/+E9+pXtID+Lffe8MfruSX39JYNXos2yWQ1jb/R5Tcncy/9LLhjT/R8ePvb0
pIqH97/cFg6/Lv0eUOzUt/6OPf4ftY/NY8j43RvDfCXWKv39H0v8rndHhOLP2lMdAUfAEXAEHAFH
wBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBByBnhBob28PuVxuO9N5x65v7OJHWH7844dvCCjcQ0pQ
mkUTZwF+XNMPttBp0FUaccqQT57Ki9wgZwPL6pS4jGwRxuVpEzYoT13kSVSGNLWZuMqrrXF5tQcb
KkPIpb6Qh8g+ZWIsyCONfH5UVP20Na5T9tGN43bbqUe8bIk7UXbhjgLYUMNIovF0RKI6SNNDAATS
6XT8QOOyMZAqRxnA4h6QiZOmdIt2AkkaonzZ414PgfoVlx5lENpLvh6e2oAd1R8/DMUpI1EZbGOP
NpMW90H2pGvZSZtVP/kqh45w/I7F57AP4XgLXYYYgdHn2o/PRg7qy4kI/zHS/om3tYYHzbGgmBQe
Gw9R5egbWoyIxVDoLnMagfU4Iy/FOz5210jv+uqIAFH8BCOEfpP+VttpigE8esW6sPvqdUV3kXvU
nBAOmpAWOnO7hnDQVc2huaB7kCogV8Ryyh0t4bqnuhSv3asx0KeBkv78oFxunyBwnHtfa2C3bz6k
seCAAfEMwlgs6FHm8keYhroEUim76L1gp2wMJ0cECOwQ2QtlHtsV8kMjwOGEgEAGP2uHhvAjI+gj
8U6WSULBn21/Whf2XHNgxh47pTJWIVHGspwRGyHeQUD+3cb1ieNMnI9zzoE2rgvlur0bizqZaPdF
nmOjDXucEGLBMeVCI6rgCFBMKv3ZWPX4yaHZnsc6Rkb8/Wbp5xLi5nZGpCFdMlREiizz3tE3tiTO
LpCe2Skdh5ZYVjQC6x+2aEh29VV6f8ZeuXM5de58UXPirKP6CX9uZOqjNu0+N5LOnL//uCnHHHmx
QPCGPIowh4MDcq6lLVWE/L2f2cSphrn2GptzC5EQN00AAEAASURBVEdgpcde0rjoT7U5ImQZe/q8
R90qGo0dLbKUwShz1J62QzKON8UEBxQImLGU+37KMvbi+r4w8uTPT06JzaSva2P86CJjPC7T33il
HBGqfa4s99mCc9Z5D4fTw65tThz2ij0viKsQWAulnHmPHZHXNzIsso29+695sjVxFIht7rt2XZIX
pzHbn3d/a7js4egFZml1tuxiHsRBoXA9pfKVHq8xOTGLI8JdL7aFU+5oTUjJarNC1pc32w7PcmzU
vML66pwd0/eCdG/9e1s49paWxBnqwcNHKDlxOJAjAs5hOCvEgrMl66LCNSw65Tzb2GY5fYrL9TUe
OyKU06csnyecj9m1vifB4ZD3bSzlrispm6V9lCv3Ow1lJJpbt7PvgXvZWryUVMNcGb+7Ctfy1UwG
v8IcKHA+RxgnjBfkOPu83mKfWwnr2FO26f65Vt5AhNpYodhc2V8y+EC0r5SNoR57L5ojya4djiSc
jMn/g2LxsRejMWVcjiQ40LH5QqHTeH/HHg67m3Y42x27pTn9mWN6MenP/42wF7/rz7D/hxU6Axar
09McAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR6ALgQ5HhK0t5V27IA3wwzWX
yF+E/HgmUkJKjkp51fxgCwlRP3ajK33S+TGOclxKt2hShjzSyFOcHxTiuu020SFN9ac/8KX8ctUv
O2oHIfWr3WqD2qM8U+msn7jqJ46oTuxQRm0lRDfm35NGOxDqJ7+wft0rD13Kqd3cly0YGAjBjjoR
hzSOewBAdE881hNIApdOko++yvIAFCcfUTl0ZQ8dwJQtQvRJ08O2aJIf68V1Epcd6cZ1qX61j7rR
RxTG7ZG+6pM+9+Rhm1/2SccmcdUvXXTULkLbgzRxRJhgocsQIgAZdaPTmpLBtcNKdWGPNUqTNCAQ
7nRhc3jNdq1GIAotawToOnvar9gu1uwSvfmPa8NBEWH/CNsh7j7bKQ75qe3sSpl/G6kbQhH22HH9
WiNDa5flRLHgT18cEdjBfnsjITMoOXEBshTkI3apw8kCOXj9+qR9yU30Jya4fMd2eWc3RYhf7O7/
pfmoPWq7wUO2/a2Vj6XShFcIV/f+M8Xuun0aw/dsZ3Rk0zOawpfm4LGA7bhfuGuh2ldun06+vSWw
0zcC+XzVRXOBnX15TuxCy4/ql+7amJxkoTruNnLZkeZkgrCTMDvUfv51sB3CWzuJfoVkkP70SfVW
KowdEVZZpDbw2WCXT2Qa483QP04iYIfPX9gu1gf+PB0P7H78h5tbkl3s2ekYkn6bDbmHbEd7CF7I
rqvVhTG2g3qhlPOcGMXbntOUEAUYCevbKR04STxiu87HpN5C8hJ1vmckfQjTyMdGcL9H46oXR4Sk
gP1hN36eJc+cnWmRnVepC7usOmWfyKvkZ+NrW66tdaJtZW0S7666z5XNiTMGcwqkDeSkrRrCzxbW
ay1JGpQ/WeY9OSKogewuvdhsNQkBldMfkC1t3B3UMe64zzr2sszl1Mcc8e8OJxjIwOBcyhHhwy/a
OwloTTZNQGRCODkGZwsJJ0AwlhGcSDa09xFz8EZGSD+8gJAOOXMzm/9oP+8q3lmFUsmxV1gX99Xm
iJBl7HEC0PPmOIa8YqfCcLoLMsY+4xKe2PaGd2NHUpYy2PqrzZd/tPkSYU3AiSvs+P7OJ3mbl/Jh
ZdtF/shNur9ry30/ZRl7SYM6/lSa2B3XpbjIsgN5IsJwmCvLfbbglWXeYz3D+xOHNU7fWMXWOPPP
lLM1S3paEI6TpRzzypn3YkcE2goxEYe5N+2ULk4E4M3EeuLm/Ud0OwmAd/L/XZ9+Lpgf17UyPL/r
bT01OU0eMkcEHB9ZXyMbL10X9l83nQRufLYtnHFX2rhjNi/+rsVp+ZBrUp1pjce+nq2lcSL76Es7
FcXysH27nWokp8b+OiLQxhntlB3eH5wUcfNzbclu7KxhIUgXnu5VzrPFNlJun9JS5f2NHREo2dc+
Zfk8UZfW/3ErOcno2g5na9b442wn7ljKXVdSNkv7KFfOWhl9STyX41DNd8NiUi1z5QUPtIaLH0zX
Slfv2dhtrSQyOO2fzdZN/7W5i/llXpvH+O6NQ/JQCSdeTbATUkbaq/u+Q1MnIb7/4HSYs2bNYE7L
fHdYxE4YvHSXyjgifGPTzPqnTE7mS76vHdPhpCxMRAbnZJkamw+YE+a171A4w+74s7pu87HKDEZY
DWPvuFvNYcTmStZ3tx44Iozq/lFP1u9/vicdlz72uo8K1ptbnJl+L2EcselFofR37LFuWN0c8NkQ
ge/dfP8uJv39H0u8funtf4LF6vc0R8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFH
wBEw4nRNzWjDYaJdOhGBf/XzQ4v9OtXJq07Je11ke3S4lI4uZfQDIOnkI+mPNmkcPdknhXsEwg/x
lPjTncQf14MuItvUQzku6uHHVeJKV120i7hC5aOLkEdc7SAfXS7SlG7RonqqU/WrH+jHcewhSqOc
+pJklPtHHSi3XKyvThKWaowAQkedjetWRwBAD1ydpS7FZYc0lSEPQAgL8y2pmwhgPSAysaO2YIM8
RLrYjONqS1yG+tFBCu2lqWk6OnF7yeNeZVQ/96oTncI4adPaNVc+nx9vH0LuXYYAAQZHvKP9H+10
gjWN/FpKYsIlJx9Aro6f3otG5PrAfpDVrqOxc8AGRjQ9wnYklb52NqWuUg4CakdfHBFEvsT54DIj
zEMuQPiBf7dL7cQHc1SAsAHRrNDpISa4QEz4g+EQ7zYHIZ0fmhefQx+ftGWDTXhNa+3b33L6xHPa
4fz0R3R2o4asAw7IJMNvq7OawmdGeGFnPHbIQxg7lHnjo/aEVHbJzg2dO9rikHLotSnxrNARISlc
pX/kiAAJEAIQO9JvNDYl37GLKrupcvrDOXYKxNK26+7ZdioC8u5/2hNnjeWMVKvxrS5udXZTkg/5
jbFXKOU8p78Zrod14LrfOnVh6+VTIgIEy32uaO50eijmiBDX+/IH+TDGHIqQUsRLkQHRiUkP1LWL
7Zr5qtlYzBxWLrbnXkwq+dkAb3BFDrexupERy25/vi0cc1NLwJHoxK3qO3f37Yl4VqzdA5GWdd6L
HRF4tjxjhM/a7zocukYYyetG2z0aZysk69grdy5PKiv48xs7mYMdxks5IsTqk8yxYO2T0mc2dtuG
sLx9VkrJqXbSDORHyLoQoiC2SfT5Y366af/GhFCsPIWVHHuqIw5jLOMTA2KdwYpnHXtx++QowLv0
gcO6dh2PdQrj5ZT5lc09zB8LzlITrtit+5zIaUaf2LwbO6pkeT/F7Stn7KlcTF4lbbieiDAc5spy
1x48jyzz3sPmsHfw1el77/hf1IfVFu2+1mUtg2Nf4fqQ+mLpbd6LiXwzmPPouF83BEIEx9jDbS5H
Ttm6Iay4UDoPxuup2Y1gfIkRdafrmONx+Nl/fNruUuupoRivSSd6+YNj2dbm/IEzKydNnLV9QzdH
AEiVkKs5NYp3G6K1R9YTEXB2uNzmFXBEWPvveGFTaLVvx5saWfuQAofiRKnjT2/PFrUsfYrr6Gs8
dkToa5/6O1cWtk27a/O+HTu6592x+7Ku7E/7ylkrx/2IT3tgzc7avZhUw1yZOPzY9yreg8XW17Ej
QrE+bG4n9x0cbQRQTKdSaTil46jM9+ybbI3KyRfbW184xQ1CM/8bIH8mcxK62dZulRDNHdg+2ebX
lTrmV9UlMrju45B2nbx1fVh41uLjI9Yd6PhQjz1OYNvw1MkBR45Sax0fe6Wfeuw8FJ8GEpcYiLE3
2pwBeZ/xfzr+X1cp4f8e/P+D/1swZ/KZdnEEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwB
R8ARcAQcgb4jEDki/M9KQQWAk00Yx/UPeHHMLTvRI12ccIgFlCFNZVUOHeLYRuIwTle96MgG8dgO
94jqwhY/mqXEhi4+u/KlWxiqXkJ0EYXpXXpPGvbRUz+kp7LkCxv9gKd2WVZnWymnMoTCAZ1MgpGB
EhgpdBDBLh2hwbpgBNJJQj10AUFHKMOFHZUh5F75xAUUdqRHPr8oCeBCO5aV2KGs9FQPupQX8LJr
SYmoH4Rc6CLoIbSBNNikhNiTLnHyEfSpX3qqXza5R2Q3vevCAz2VIW86u+ayY0nGceMyuAgcbzvf
vfphSp5md3eIV+xIzY7/IqAXa9FulzQHdo3lx0mI2rU81R5k/OOt4cy7W5NBxakH8U6k7GjNDnIQ
/NmxnJ3LS0lfHBHWOMF+RLcf09dbsnaK3ZTZ5Y/d/hB2YmRHxlhigks5uxFDir3FTgyQ8IMtZIZq
kHL6xC6HkAxG2iO4zYi/IoSpHyLoM07Y6ZITMGKS1D5r1yVEMukTbtOxc38p4lysWy1x9XPFBXPh
lG3S8bjKcZMTQo2IizoFArLKZbuWHrPq04W2u+lFtrtpKVJvOc9JO1ZCQr/lgO4ONfEOvQPpiMBY
YEwwNiQXP9QaLvhba0ICpx3FpJKfDU5/2P3SlJh57Jb14cfz5sLWZzcnux7jmMB88v/snQm8pfX8
x3/33DszLVNCCTVthGyRiEIqiXaFakqIVmQJJf72EBVJlLSomSlaSFSkLBEpQtakZtooJWmqucu5
9/99P8/9nPubM+cu59xlzm0+39frub/tu/ye9/Occ8+95/t7fjueUCa982RKnlA5ldLq+54WIvAe
TKLW4+Op3ZI/x1Pq33r60DnnC6WkU1+OdO81+15e75v2WJI2ZddMMjjJivsNPn37/2LxmnZLwNfe
sQBlUSxEGel3xmTeezqfvGynhQit3nv5+TSzqEB2zdgcGk9IJjmUJ2zPiydsD93l8rZ02crvp9xD
M/ee7EjMe0skL/M5BdkmktYPi8VokymTsSNCu79XjvfaNroew73vXb+wv1iwh80xLDYdYdFtI7/q
G+19L1+IwC5ILNiVcD9tHU81Jin+yJ1mpN03K/90yj9P5bv8yG7/r/Wkv9/dP+yOCMvjftXcRip/
fUt/etf88vfWaJ9L5EfJxK0uRGj0GZ4dGfiMxGKI7xze+DML8Ue7tug0e07s7vMA/2Iaozw5/r7i
M0B+T4z1nCby9TTvmr508pXlvywa3ZP1pzOWhQjjmV8zn5XzubEjBn/zIiziZMesRrK83yt5b2D3
AObB3wtnvW1W2jB+R+byrV9X0+U3VmNXqUqa87jYtS62XrvxjtjN4rq+1DP4p+h43tvyWM3WtSOZ
ds5gVwcStNn9ZP7Bs9KJV/Smi2JHra54y7v66LEtcGxmDvmCrUb/B8AXu2mxCJb3Fv6OYkcvdnVh
YSTC4ki4j/a/jUJ5An8s73vv4niNfHbwNXJSPGxg83joQL343qsnUrZ53e4R9xX3EjtpnvLm7I/l
zGQi7r0PxELKq2NBZaNFvFmocVevu7W/uB/YvZTXK7vWrRq7iPA7vP49adzB7MAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAEHoUEYiHCfnFat8aRf0vMF1I6+DKGL9FJJOALWb4UjG8dauPU
EfRkQ4me8sqjWtTpJ+mAkjFK+Y1qIfX+0Vd8+SOm5lBalfHzfuYjfXxooQR12So+ehLs5IeSNrbK
f9d5Rlcxf31JKr+ypR//lIyVX2YP5aIzNm5R8PE44oQQJqSTp82J4J+SE2BcdYBJV3OQnxgq9Cix
4QLLNtdhHFv1KT79EsXHhy4Sc6Eu4LJXWzYq1Y9PdOmX0Ja9zo2xeludA2Oqyy8lQr+Y0ZYP9dOH
ruKtEvX1vSMCWKZeDoiE1r9EYquEJ92TLPWcdXV5NLJ0+Zrju4tkX55eSvL5aKInWw/3BMSPxhMU
fxhPSBztS9XRFiKwmGKH48rE40ZPQL/9PwPpDfFUf+Sz8STcreuehJsnuJwciwk2G+aJmaOdbzuN
N3NO+nKb+c+OL5sHam9h8aKOV/WS+BWghMzzDp1VPDX4D5Esc/BgMvhpb5mZnl1373z2+73p4kjw
mI4LEUjyJsEd0b2np7hrt4f6HQ544u9511bTn+7sLxISSH5FeHou7HhD/Gkk39Q/bbmZ66REny02
qhRPpy0CDP5g146dv1De46Ml/I0lYUzJgCQdLIhk4VyUtMKT6lmYMtXCexfvYcjHXzsjkTTBDiu8
bnn93hssdhlkMZYEuomef6vve1qIoB058nlxN73smCWpGm/bh8d77z7xHixp5d5r9r1csfJyLEmb
0m82GZxdN3gt5TuP/DHaB0Y/cuwbZqaXP33k31eKPdllOy1EaPXeyxk1s6hAds3YXPSbavr8pWVi
KDsXvfzpnUUC13PndNR21ZFfylZ+P+X2zd57ue1U1idjIUK7v1eO59o2+77H7+HdeNJv/H7g9zCf
A1nExk5XG0cC6lhltPe9fCFCo6RgPW04/92UJ6I2+jx1bLxevhOvm+n0eQqeF0bi8XGXla/1K49c
qdjlZjTO+uzR6kKEj+w2o1iQnMfR07xJMP5ZfA4bbsH1aNe2lXPS+eTzGanO5y0+d+ULEcZ6TuN5
PeVzujYWkLw3duHgNcMOd5/Yo/w8nOvU18fyuXI882vms3I+Ny0epo8F9PluO7ne8n6vPDb+ZiIp
Hnnvq2ek179Q/17JZ9m4ztwPjAcF8PlQCwEaa05e7xHn9qRrbu6PBRLsLDAzvTEWk7IrwpcH/6bW
+U3G3w23/HugWJzMoh/+NuOBA7Njd7SxCPc4u9Twtx3C335jWeg7Ft9j1Vne957+J8Tvl4tiodbY
yJVnt6Lfe9zz3PvIh3aZkdhVcqzS7L13+Lye4u9d/lf3tfi/y2QJ/1M7+xfV9M1f9xWLJhWHmKP9
n1C6Lk3ABEzABEzABEzABEzABEzABEzABEzABEzABEzABExgRSUQD2NPlUplnzj/O+J4KA5Svcov
osrccZKcSKBXjni+EAFdCXUO9OQDW3zlehqP7pqgw1c+uQ/aisl4XpdudBeituzpxIYvQhSfuWic
EhsOBJ1G4+jhg3NWXbrMR/ayja7auWq+lIh08YPk8aVTjjT5U46bNFtGnZPQpDVJSk1UfWrjgDr9
HLKlL6/ndsQAIDpkEOpmimpxAWRHG6HNBUAfwRc+1M7BSzfXYzxv64agX/GlI1/oIMRgrmQeKF5U
i/jo0icb6sRXViTzxI98R7Wo06d5oss3aOvHi3BBlJYpJvBAfMm4eElKPHn6pB/1pjsiUZ8EnbMP
mlUkMTSazuLIcd7+c2EU8p4dZqQ3vEi3SyPtsk9PIWUHAhID6uWLP+xL37y2L60WCQM/fP/Syc65
rpLB2bHhtS9YNu7f7x5I+3+tTMJmZwWelp3LaHPPE1y+HV/C82X8dJdmzmnuKd3p1kjkQGbplTwM
AJLkNo7dAH70p2r6v4vKBLNzY3ECCaW5nPrjvnTWz/umVeKcdkR41bM7iwR3zkcJ219+48wiaVFc
84RAEhGO/FbPUl/Y80RTXlMsRCA5CLniAyvFQo+yrp/yR3u0e09Pg3/1czrTR3dfOjGMhIatPlW+
PidyIcJIyYAz46XI4oqplrtjF5Xd4wmUyCsimfQnkUAE73nx1FWSoLiXuaeRRgl8xcAk/mj1fU8L
EYZ7qub2n+tOi7sH0t5bdKV3vap8obZy7432fjhWNGNJ2pSvZpPB9RRj3lW0m87nIhmXpH92irg4
nmzM66sdpJ0WIrR67+Ucm1lUILtmbEgW/PCFvcWTxWVPuUp8RHj9i9hdpzOtHk8rlrTy+0m2lM3e
e7ntVNYnYyFCu79XtnptW3nf41pe9odq4nMniXa5kFz3tq270otikd9oMtr7Xr4QQZ8bcp/87uK6
HLptV9p/q/J9/Ir4PPWRwc9TF9TtHoatniSff+7IfbZrfayf8fP5K3F/pM8eLCRhQYEkT9r/wtyZ
6cVPWfo6kuBNIjTCbkPD7Vw22rXFvtlzOv7y3nTBdfxJPTZRsnwr59Tq6ymf2Z33DxQLPXmNbLx2
mfBav0tarq/6WBYijGd+zXxW1pwo878Pj48E+S03XvrekO7yfK/U3x7MZa/4fPfuwc93mttYyk9+
tzdd+vtq8bnoJx8sd64bi91E6RxzSW+xIJjf3Szs+s3C/rTL8zsTu5QhH4rf+Vf9uVosFOA9bqKE
XRXZ4evfDw6kNVbpSPyNyi4MzQhPfmeHRuSAl8cuNvG7YCpled57+euj1XNfUe897pGjzi8XsbDA
5vt1uweO5R5q5t5jVwXu913jdcVDNyZL2MWInX9YsMeOgts8o5JWj9cWvzeHW8Q3WXOxXxMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwAROYbgSGWYjAF9X6kpLswcEMwuLslLhAyZfK+ZhyzFHM
7fCFT74UUz2qhQ5t2eGTg/x0JdriRzGjWhP6FENftuEHf7RzO8WI7sKv5oIPjVHS5sAP8fGjONQV
J/dPHGwR1evtFIN+/Cr/XvGxa1k0qZYdhKF8MCHVKTkEQCdJyYQZAxTfVNZfMHQ41I+ubPCHYKcL
zziSA6QPH+grDnUAyhel/OiC6eJhK7uoFn7kD9+yo0/x5V+xKTlyP8RBDzvFp6RfMalzyA4fsolq
oUd8voX2QgSILGe5fmF/euc55dPcDtmmq/jSsdGUeLLhKz6zpHhCZp5A1UhXfR+JHQ94GmWjp6qj
o4SjNePLzUsiOWg4GW0hwm33DaS9vlImETR6Am2eGHZUfHm7W3yJm0ue4NIoWTzXnS71Zs7prfF0
+T/HEzVJwjtx32UXjDQ659y/nuCa6510RV9a8KtH/0IEFgDoKctrRoL0e3aIZMandNYWHPzgxmoi
wRxpdG/lHBuN50x1nXiC+LFvWDoJ4aG4/V85uFBoqhYi1CcD5nOdzDrvRS//dLnoQnHy96TfLupP
bz+7fE/jfh5Lcqn8TETZ6vueFiJs8uRKOuOty74O9T5I8irn2+q918p7eSMuY0nalF2zyeCPxOXb
6QtLEuUBLyt/L7HjB0nsb9yyKx22HR8j2kPaaSFCq/deTrKZRQWya8WGXXVIwCZhUQvh8LdN7Ejz
6cEdaWjrfa+Z30/YSZq992Q31eVkLERo9/fKVq5tq+97up4Px3vKd2/oSzcsGkjX/qOauvlrbVDm
x2K2jZ7Any3Dy2jve/nnzbEuRPhlLGZ87+BTlVkQXL9Dw4mxeOK8WLQ73RYiKMGahYIkR49MtmSu
vwsaLUTQgoL6zx550j6fjfiMlIvs6LsiFj0P97T00a4t9s2eEwtR+/hLeYyixcCtnFMrr6d8Wux+
duCZ3enmWNxNQvmZsYD8yWuM5aqlNJaFCOOZXzOflfNzYjHwNp8t/3YlwZ9E/0ayvN4reV3z+kZY
BP2x2OVrbMSXPot51/Slk68s/Xzr7eWi3KU1Jrf11av64inqQ2+mLBg999CZxYMGiHxYfCa/IT6b
T+TT3P/zUCzo+kZP4n8ALGRk94VN4sEHrQj3CPd/vhC9FT+t2Cyve4+5aqEU99wF75w15td7fp4r
4r3H+bMT4W4ndhcPG9hp087E396tyFjuvfzvNhaisyB9MoS/ubY7dknxj1se6sHDPSwmYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYALNEejo6Ng7LO6I4+FBS3Km+caYL9OUb83XM+RVI/Tz
z//4T30tL5wxdDhIOMQOP+qXLf36ko5xRDplq/zJmOJTV3xKxScOX7TnceSfEpFvdDjQxx4/EnSk
Tx9j8ok+LBin1DzkhxKRD8WnHx+yoY7QrzkVHfFDY2o3VeYn0pRhpsykmCgT0YkyLN+UjHPRdfE0
Fl21i00fh05I/igVI6rFOHrEysdyffWjj67iAw9RLOqCjb96UVzmjk+J4tOWDuO5Hv44FJ9v13Tx
1B9dNRv8SLBBNDf51bwpZ8cxp1qtLohtSdC1LCcCJHWRAPffh+OJgJt3pve9ZvgvUl/35e7E0zJf
89zO4knjo01ZiQmzZ3WkH0TyT/2T1JT0M1piwg7HdRdPsM2TjfPYJJqwSIKb+PDtu9I+L+aWG5I8
QaZRYnKrCS7sJHFnPElRstn6lUSCVDtIM+f0iYt7iycFb7RWR5p/yPALQvLzYjeN/U4tF398MZK9
t6h7kjC7JbBrwkQnzpHktyiSTiRPi90ZSECZCFGCWZ6IMtqOCDf9qz+96TQ+D8TCmga7cXz9p33p
9J+VvzoaLTRo5jrxFPEr44miT4lESZ7+n8vfYx77D86jHRYiTPZrQ9cFBjy1l4Q5PSH/jKv70mk/
KZk32q0Dm7/EwhsloK4eO7KMlnyKzVil1fc9LURgQcsl71n6+pIgRbIK8v7YGWaP2BlmPPdes+/l
jc5d79+Nduio18+TwRs9sbpen/ZnvtcbCcPVtHbsUPP2WHigJ4bridGNbOib7HuvPm6zCxHa8d7L
z6mVRQWt2OQx+R39+Uv7itclScuXHbFS7X29ld9Pue9W7j0+F7FAghJZe/WOZXb9KUcm7mczCxH4
PcDT/SUv3Kgz7TXMLlXt/F7ZyrUdz/ueeKlkAd8lvxtKBObpvyzIHUlGe99rZSHCwnsH0j5fLT9P
feb1M4qdfvI5aKeT4T5PLY/7NZ/fcHXuUa4xcuEYk1y16OIZkVDM7/Vc9HlqpIUIR7x6RnrdC5f+
IM7nAT4XrBq/Vn8UO1MNJ6NdW+xaOafh4o3Uny9EGOs5tfJ6yufA71gWh/G3Gr+nm1nEmf+d1WhX
D+KMZ37NfFbOz4n660/uLj4XjPY37njfK3mdVvVLI+LyWZyn9A8n3/tdNX06dhLg18xWsVPDsW8Y
+hw7nM1w/do1hfHLjpjVMO5kfva48PpqOu6y8rXOHPKHApBEzY6KfObe7pmd6VN7Lvt/hmZ+p+Gf
3+uHnd0bO170Fzuicb/yN3gr8khMe7v4fM11eF38H+SIBv8Hmcy/PZnzVN97xOR67DK4wPcFG1QS
C+dakRXt3hMjFt7w9x7y1TfNTCyea1bGcu/hM/+M8MW417eo2/Wn2bjD6S+KzyJ7D34W+b94/9ox
FliMJpP92hgtvsdNwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMoN0IDC5EuDPmtTgO8r2R
wcyTIu+cf8DzxZr6VEpPbeWyU/KlIwkifCFBW2PoMiYdjalP/aFSCF9ukBCh+OgpXl5HGVskj6H4
9Gtcdhqjv76OPnqcA+dffslS9kWziIGNYqlPJWOyVVzNW3aKqX5smxYmORGCH01Ik6dEmCAHF4KT
yQHmF1k6oVLoowu8HARt9HIfaiu+gCsThnH5li5lve/oKvrkWza6iWSDnnTy+aie+2VO2HHwrTGl
uEgv50IfvhF0GeP8KdVmnGPlODaIbUnmR2lZzgQOPLMn/fGO/rT7Zp3pyJ2WTRDQ9JQMRaIgiSZs
0z6SkERKMilywj4z00ueqtsnFQsLdvlid2IRwWgLG0h4J/GdRI3j9m78Rfmu4evfDw6kZ8bTxE+v
e5p4/iV5owSZVhNc9CRBMTg/nkK57uNGZiLdyS6bOaf5v+xLMEK+9paZxRMrR5sfTxXe4bglqS9e
4a+NpOgPRHK0hKTpneNp5iT5DZc4J91my2/+upq++IPynsJ2rEnNY4nTykIEnup98FnlQoTj497c
Mu5RCck37NTxz8HFKuNdiHDWz/vSqT8ur9M3DpyZWIQhye/xdliIMNmvjc9d2ptIAEdI3nr500sW
/KI54Os96a+R2DzcTizYaHcB6s9ap5K+fkDj9xXGm5VW3/e0EIF49a/DH8bOMh+NHWYQLaYaz73X
7Ht5Ebjux1iSNmXCU6HZxYIcvQ/tMiPt/Dw+Lows7NLCE5SRrlDnvabRU7LrvUz2vVcfr9mFCO14
7+Xn1MqiglZs8pjUL4/dYz4+uHvMKW+emTadU76mW/n9lPtu5d574JGB9OpYACnZ4TnxpOrdh37H
qX8iy2YWIpwWC9zOGFzgxhxGml87v1e2cm3H87433PXSwqzNN6ykk/Yb+XfBaO97rSxEKD4HH78k
8bnqZfEU4s9lTyH+X9yLJIv2xPvfcJ+nlsf9OhzLvP/v8WT9/b9Wvo5YHEBC/Wjyjficc0p8zuGJ
/Je+d1ZtgSF2+ltlpIUIJCOfHE9Gz2Xf+Bvilvgb4umxuOGsusUNud5o1xbdVs4pjzHWer4QYazn
1MrrSfPJbd/xyq6070v4033sMpaFCHmM+s84o0Vq5m+ael/6vDPa54fxvFfy2XPLTy69U9dIfxNe
FYvJWLDNZyKSwPkbmb+tWxGSmedG8vC/HhgoFs19511LL2SVz8n87MHf37vH0+E5HxYHn33Q0Gvw
5zf1p/d/s/wsly9Q0Lwom/mdxvkePq/8vwWfDT/7+pnF/wdyf83UL7iuWuwMgM1wn08n829P4k7l
vUc8JP/M9ZHdZhT/iylHxv5zRbv3RIbX+xsGFzit89iOdH78T6yV//6M5d4jJgt1eBgBwuubxbGT
IfmCB/6Xxv/URpPJfm2MFt/jJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJtBuBGIhwr4x
p0Vx8OUh/+DnH/t8vUAeOUluJEuVyW5Deeh5Wzq5Df+0xxdlnrsuHWJgR6l6bhPdtfh8K6l42Euf
Et8czJEx+ccXyYqKzzh6CKX6FV99zBldRL5kiy599b7pa2Sj85MNJaI2MeWzGGjlBw7GK4LAxPLJ
4VcT5AR1Eaijxxh9AJGe7AWYkj4JbWy4qADgwJ/saWuMPvXTxwWlrfjyJfsYqvlTXMYEGlv68xjM
LbenTSzNWbHo0wWljig+bc1V5yM7lRpXGxseSbluLEQ4L0rLciag5J7dYiHCUSMsRPhbJPceEImh
JBqQBM1TDecMJt6znTtJ0jyV/J2xKwFCIvprv9SdHownF673+I70pXhyPk+3JumKBIyf/a18WZ0a
SYfPHUw6bIRCCborRw7TYduVX5aTsEEs7bJwZjztlERy5LB4evYbtyzncN2t/enISIDgy/IXRpLZ
lxokmbWa4DLVCa+N2AzX18w5kfy2V3yhfu/igWIhxUcj4fLZkZwt4bpfGEnfswJpnkimp5vST+Ic
T0/l3vjUd8sdFrAfLnFOvpstJ/ML71YWIrCTCE+yRF4cTyj82GtnpMdEAh33G4twrogEcsl4FyIQ
a494PeGbxAdefxutVUk//ks1fSqeqkqiNrIiLET405396W1nlIlNz4/Ew8+9YUZaeWZHkZzLk4+R
kZLpJjMhq9X3Pb3PMXfeX7+0X3kvkVz29rN70l2xoIXr/q1Y8MT73njuvWbfy5lTvYwlaTO32T3u
3bvjXDg3dq7ZNJ4e2jX0NpOr1upahKaO4ZLENE45Fe/LXJPFgzmHLBI555rynuNJpY+PHS2QJ67R
kWY3yAdsx3uvmPDgj1YWFTRj86ELeotrv+NzK2l27EaCkGxNkhW/r3lqOU9P530UafX3U2E8+KPZ
e28qErv5HHRbtrvPId/oLj4zkYh+0CvKhG0+5/DZqV6aSdps5/fKVq5tq+97JMNeFb8rWTjJLlwI
n1d+eXN/4r0MWV47IhD7K1f21d5HDnh57Oy1RWd6KKb1iVic89tF/Hk1/Oepqbhfiwm08ENJ4Hxe
Pzh2myDBXZ/bOS8ScE+LBbCrDb4XsJMWfx8g6O6/VWexKCFPYh9pIQKvFnYN4jojvDfDFjlq5xlp
t+eX/UVH3Y+x/k5r9pzqwoypmS9EGOs5tfJ6YjLs/kJiN6+H7Z/VmT6xx+gLRupPYiwLEVqdH7Ga
+Zumfm7axQKO5x02q+F7Kjbjea8MdGNeiMDvuSPO7UksVp4Zt+OJ8Xdpo53d1ozF/o9btXz/v/t/
A+kD3+wtFnFuHQtv1xpMRL45Fvt8IRZn3zD4HsFrhs++jWQyP3sQ7z0LetKv/tFf/FOInV22fkZn
8bmVxdr3xkIFFhd9L3b7arRz4Fh/p3GPvnt+T/FZgZj7b9UVuyws+0Ey/sEbCyJKduh98Yd9xeeM
XeP1z24rK8Utzv8tvhu7UpxyVW9iAT27N5576MwE93qZzL89iTVV915+Xod+oyf97rb+4t77/ntX
Kpjk46r73hOJoZL3zHecU35uOOgVXektL2v8msNivPcePnh/5n1jk1gYcEbdwzYYnyi59d8Dae4p
5f80vBBhoqjajwmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYwIpEIHKgU6VSmRvnvDAO/ulO
Fl/5ZX9Z8sUWX4bz9SJ1jSmxkC+qZENdbZXYSdDDByWH9PFJmy/GKbFhjH70+fJc8eWv3h5dbDRH
2UtffhRDvqVHW2NRLXxhS1+ZDFDW6cOGOeGTOn3yp/iUzFGiNv7QlR/Fl17TJQ7GK/mkBIEJ58KE
6aOUUJc+85ANJ05dUDSmiyYf6GgMXQ6+xcrtolmTRuequTNGHd+y1/xwkOvRRoivAxv0yTygjj7C
uER1YmkuikmbuSu++ik1N81LtrNjbP1qtTo/XoRRtSxPAvqCc9tNOtMxrxs5AeXkSOiZN5h0ycVk
YQFJRXxRzZOHX7d5PPX0NUM+zv1VX/rSFWUSEIlIPMXt/kioJgEAqX/6a9m79M9b4otRnqqK/1xe
HU8pJmkeIfl3n3giJE9lREje4NYi+QEh2ePkN81cKsG+GIgfrSa4TEXCq+bYbNnsOf3kr9X0kUj+
IjEGeUJcp5XjgZb3PRj7BXWXDLd9Ztwfkfwu4cl5B5weifGD15IdMkjmYOGJZKIXIuTJaMRY3jsi
MIejzu9NPw1+CPf4Bmt2pLvuj3tcvz6LkZTGuxABN/XJMIOu0xqrdBSJ6bTrFyKwwOQtpw1epBjn
GumakvzHQhIk8nbSNyPJnQU/n7+sN110fbXhE+i/F4k7x8TCh/pkwNJL+XMqXhtaCENEnorK+5Hu
X5LdT37jjFqiczmroZ/bHrukdt9O9I4IRGnlfS9fiIAPkpBJauc9TYtMeL/jfU8ynnuv2ffyk+J9
nKR7yX8eGigSF7nnHxv3n2SP+B3QKCmHJ7iTbCbhPXlGnCNPvj8+ngbcSM6PJ9WecHn5QuL96Pvv
Wal4X2qkq76puPdYBEPi2Ejy7h1mpL1eNHStpNuO957mRtnMogLZNWPDTkj8XuZzw5NjYQ33+cL4
HU+CIcJCxrkvHnxTKrtSK7+fBk2Lotl7byoSu0nYJHFzJOH9+YfvX3Y1y1iTNuW7nd8rW7m2rbzv
XRw7dH12cIcuuLKoi8VdLIJB1oz3WhZ58T6TS7Pve63siEA8FliQsJsvTsnnQX24z1NTcb/Wz2Ws
bRgfFLuu3RefQxASrvmseP/D5QIk+i47YlbxGYZ6d/yK4Mnq8EB4f1h5RkfiHCX1nz3ypH3pKIGb
31MIi6bnH7J0EnSz11a+mz0n2TVTtnpOrbyevh6/l0/PdlhplCi+fnyuPeegofeiVj5Xcv6tzA+7
Zv+mwUbCoi9+7/Bar/8bVToqW32v5C4b644I3HcL4m/j0WSvLbrSu19V/i68/T8DxRPYZcPnJz70
cm6SjdbqSGe+bdawOytM9mcPdiI7fF5v7W9Akv274+MbbPiEePQIu2GN9Xcaf29yHmOR/G8udhTL
P7+y4JH/G+Qy0q4Ak/m3p+YwFfeeYvF7hh37EBZnfDAWaQ0nvveWJaP7ic+xFx0+8g4F0pWXZu+9
fHHA0XGddhlhMZ1itFrmO06xexC7CI0mU/HaGG0OHjcBEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzCBdiIQD8zaO+ZzVxyRbVl8TUZiEV+ZcSjJqL6Pb/9IjOJrNQRdvgmkneebq537k02oFv7R
x19ux5jio6/49FNHX/EYV3y+LGBcMSjlVz7o00Ef43zJKb2o1gS/iErViSN96ozTVnz15XryodiU
mlNUWxOcjFfkQxMCLpNlcrkwDiguPCcmO4GgjR32CG1BoV8wGBcgxnN9YhIDfR2KQ8m3hIqPDwQb
xmjLPqq1tuyJQzz8Kz76iq8+xhH5lT3jxOfG0zlEtZgnOvQpfj4f6vk4PvC1chzreEeEoNAGQlIx
ycUkM59zcDwNcPCJzsNNjZ0MTvhBX/F061yHRJXDXzkjbbkxl3hILr+RZNK+WnICIyQO7/WirnTo
tl1F8vaQduPaHyPp8+Qf9aW/391fSx54zXM7E4kDEhLA+CL/2kjw4wUkWT+eKPzxeFL9cF+oov/u
SAjkRr3yyNETXeX3xHjC4nnXDmWBXBRPcX5SPAW7HaSVc/rHPQPFU/z/HKxzfnzRzo4Vr4+kWhar
5PL3f/UXifgkZkl4Yt/mG1SKJ9GuG8lf50dy30QJT82+8s+8lZVPr7zo8KEn6Y43hpJV8/tKSbNf
jUUsz4snuItrfl4kyB37/b5iZwLNgft7y6d2Jp76TdLkcPeW/A03Ln95yS4L835ZTbf+u79I5n12
PN2ZJzLydEuSedkpYbtYNCJplNCmsbzkOv/oA+X9T/I3SeCbxy4iJ9XtIqKny7Jg4aqj2NxmWZmK
1wbnypNgee9icQXCOTBnGOgJy+XI0E8W0LBoSXJAPMnywOA30dLs+54WImwRO4s8Jt6LeTK0krNJ
jj0ynvK8Q7YIgfmO597Dvpn38k9HEu8lkcw7mgz3RF4WiVz+h2q6IBa4LLy3v5ZAx44WX9m/Lvt3
MAjJqzt/obxWOz+vM7EjwmgyFfceCcMk7Iwk74sFeXvGooxc2vXey+fIffvxeAo799xV8ftwLNKM
DTvF/PSv/UslFhODpMU9N+9Kh8RngkY7ZbTy+0lzb/beWxyL6Xh6tH6r7bhpZ/q/XUe/9xRvLCVP
t2UR6EjCZzKStOsl3wGKsdHm1+7vlc1e21be93jyM+8NN8VnFr2viiufWUj4bbQzV7Pve8ztNceV
984psdsXC61yed2Xu9OdsVCx0Y49JEofF5+Vr7ulv0iaZuHBK+Kp4rPi1uOas8jx3EOXvR+m4n7N
z6HZOufF3wx8dtOiOnyQTL1dPIGfndhYcCC5fmF/+nDsnAJLhN/rL3lqJb30aZ3xWSvem4JH/tkj
/z3Brl1n/byvtvAB+83idwyLrHk95dLstc1tmz2n3HYs9VbPCd/Nvp7q308aza/+3mvlc6X8Njs/
7Fr5rKx4lNrxjHvnu7GgsdFuRei1+l6J7UuPWbLUgvnh/ibMdz/BbjjJP0txP7zvvN7Eblb6vSQ7
XkdviEUL7KTC+TWSqfrswfsrO5rkC6p43bELFn9bDSf19+Bwv9P4rL9dLESofw+v98srPf97nmTp
s39RrS08y/U3XruS3vvqruJvvLw/r0/m356KMxX3nmLxHskulsjXYkca7RKk8bz0vZfTiH+Exkf/
V8Y9yKI5doI8MXb7HEnGe+8dG7sGfSd2pWRh+gXvmDXszhUjzWEsY9x/fEb61q/L++KKWASrXctG
sp+K18ZI8T1mAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAu1GIBYi7BtzWhgHiU4kFfHP
dyUXqeSLM5JF8i+wyXqjzdeB6JFooK8Gy3/gD/Wjqy/fFCP3RWIX44xRlx/a6Cl+nsxADPlQ/Ogq
+jSmfnxii75i5L7oU3zqxEdX8yA7gHOQD/rxiY586vxoM4agh43mIZ+0qSOKUbaa/CknTZoto44f
JipQTBDhxJmgToA+jUmfE89PTCCxExSdJG0ujvzKTvE1pnlID3t0OBQfX+ihQz+itnRkzxg6uQ0+
OQf5zsewR59v1hiXLn31+nzlTT+H4qODEF/COG18U7IQYf1YiDA/SstyJsATKj8YydIICdTsWrDZ
BpXEk9dGEp5YSnJD7C5TPEGfJ8wOJ9wUd8YTHf8VOyc8ZuWOIqGq0VM3h7Nvpv/heLv+xz1lshlP
QdWTUZvxsSLr8sRJEoUfinL1yEN9ciyuGO3LaBLr/vXAQPHUWXZTmAzhHtrphO7EghPkwK3LxJui
0QY/eHI9HHgNPS0SW/LEusmYHskQkOaJ9P+MhSB7nFQmbJ8RTzHcZAxPMZyMOS0Pn+yUQvIT5VOe
UFnmidb1c7owEuGPix0fEBYr8DTL4ZLS6m2bbTfzvqeFCCRcnhA7BJBcenMsDlo1fhM/Je4nkjGH
k/Hee828lw83h8novyIWY7BTCzJastRkxJ9on+167030eY7mj4Qn3iu5b6mvEZ8J1onf1cMlUeb+
Wvn9lNuvyPV2fq/kujR7bVt532PHJu69xfHrkgUvT4pkf3b2ajchyVG7FX3yu73p0t9X01axyPe4
vUdOemy388jnw2cWEpT/E0nVq8Zny/UeV0k8HbqR8KT3f8RiS8qnxu/14fQa2fJ7l6dIs1iABPr6
BQiNbFrta+acWo2BXSvn1OzraTzza8V2KufH34Wvj0VA7JDRaNed+vk3+15Zbz9Zbe5p3r/YUYT3
B3YX4W9v/g4YSabyswfzIHl9UbzWebDBevEwgHYQPmvcHnNiNw9et+zOwoMKVo/PHyMJr72p/NvT
995IV2P0sUfTvcfnlV1jNxcW4EzWbgi/XdRf/E18bzyTSTtajnWnwKl+bYx+9a1hAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAsufQCxE2C9mcUscJPDFt93FV73kZMc3VEVedRRFHznW/Lud
L6uoU6pOm28AKbGjTsmBoIdv9dOX+yDJipjoINSJJR3VGVNMfFHXPOUbXeqUio8/xaBPdpQcxFV8
2uSJ5/bRrPnCt/TR1dywxzftvB7Noi1GjGOnedBuWXA0XhE4nYwmj998oqozLl1NXqUS7RnnhHNd
+hBdFMXNbRgj81twFBNdhDjyqbbmQskYOrLDtyT3QR9tdBVfbeLrfPDHXBhTHPRzX7KjVHzq2KGL
HUKf6rRnx7Fuf3//efEipG1ZzgTmXdOXLo6nXd8TyeQ9cffyFFee5moxgXYhcEskZe97aplsz2IW
EshJJFmR5KE4fZ6OXP/E8NN/1pe+/tO+xOKeS48Y/mmvKxKr4c716HjS8o//wq/olA7Zpiu96aX5
r8rhrCa/v34hwuRHbO8IJGO95es9xS449U9jbu+ZDz+7dr33hp+xR1ZkAr5fp/bqsyCsPmmeBWl7
nNRTJAjut2VXevt27fH7amrJOJoJjJ8Au3nNiyfjs1D4o7uPvNB+/NHay4Pfy1u/Hv7bs3V2WPre
a53fL2/uT1++srd4QAiLEEdakN5qFP4e5hohLM5/8VMq6eD423ikh4soll8bIuHSBEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABIYIRA703GgtjCMelVZbSBDVok5JTraS6GmTX01fXpJ/XSa1
DS04kA5J1ujqoC1/9CG0SSygxE46US1E+vKFTn4ovuzI+UbwTx+S+6YfG8WnVPyoFjay1Xmgjy+1
0aOOyJfi09b8FF+x5EO56oWDVn/Ieav22DERJosvnbTqmiRtnRQgkdxO9ujV1wvlwX5Bli/0cxt8
M6Y+xafkQBRfPjQPjaODvdqaD/3E5xxz2/pYjGGLnvRp04+IkXzkZalR2is+fcRAtMgBm2JHhFiI
MN8LEQo2bfWDJ6JxXSbrKeFtdbKezLQhcP511XTC5eWX5STjkZS3osmpP+5L3/ltNe3wnM70rHU6
4omoHek3C/vTBdf1FU8W32uLrvTuV614XMZ6H/ALccfju5MSPi9656xRd1AYq+/x6nkhQknwmr/3
p7/8sz9d9edquiWeao0cFbvz7PZ8fQwp9abbz3a+96YbS8938gn4fp18xnkEFl697JglxW5kWz+j
s0gCZOcAEqcXxc5j7BbyrbfPSmvGE9AtJmACJjBWAn4vHyupxnr+27Mxl7H0+t4bC6Xlq8Nnjwdi
pxUWITS7U6lfG8v32jm6CZiACZiACZiACZiACZiACZiACZiACZiACZiACZhAexKIXNt9Y2a3xrFk
cIY87Z8v+ZXvTZ3ca/r5OoU2ZX5Es9ChRNDnkA452fiTr6jWxqjjW3nb6EmfMeqKT1vxqeNfgg5j
iqHYlCQlKob0oqtmr5j0Ma6Y8ocP8cjH6EcHUZ02dfxISB5TDOkxRp2jZVHwlh1khpwY0ugEdNJK
ui81y5OkDxtOmJORjk4sbysGuvQjAqMxSmzR0fmhix4XUn4Vk758zvU68htqxYWVHT6pK77a0qdf
c6RkPvhGsJMfFhdQR3Id2vTLB23q+EdvtTjWGxgYmB+lxQRMwARGJfDzm/rT1TdVU2e8ixy+/Yy0
Eu8+K5iwEOGsn/P7fFnZYqNK+tSeM9LsSCawNCbQG7/ZvnRFb6J8UfDadpP8V1Rjm6nq9UKEkvT7
zutJv4jFCJKdn9eZjt5lRu2DhvqnW9nO9950Y+n5Tj4B36+TzziPQDLgS2MhQiNZdVZKR+40I23/
rPb5fdVonu4zARNoPwJ+Lx/fNfHfnq3z873XOrvpYOnXxnS4Sp6jCZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZjAVBMYXIhwW8R9JA4Sn8qnLZf53iTz5Qn85IDnOeIax0751dTRYUz1qBYiX4wT
Bxv0cn108j7lieMLUXzZMq74jOnQfGhTp5SvqNbOi1iI5ouO+rBjPiQ+YC9Bhz7ZEF860mOMOgd+
EM1T9aJzPD800fH4YHL44aQkApaPcSKcpE5WoHSi2FJXmxKRnaBhLz35oq346CvhX/HR46BfNpTY
aa6KpzYlIn+yo634mhtt+aOP9F7ZaUxtldLXhVe8+jJc1eat88LnqnGsGzsinOsdEUBkMQETMIHR
Cdz74ED65c3lE+PvW1zqz3lcR3r2uh3pFfEUZcv0JfDDP1bTjXf0p43XrqRdp/nT/8dzFS65oZpu
urs/rb5yR9p0TiVtvmElVfjUYDEBEzCBRzGB62/tTzfc1p/uun+geELx42d3pA3W7EivjAUIa6/u
N8FH8aX3qZmACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACUxjApEDnTo7
O/eJU7gtDjL6SOJTfnlUiyR82uRWq8wXCpCTTT62RHX6pS9/jNGPqI+kAvzJj/LclcvNGHaKz7ji
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
Dw5kQ8mRnx/j8o9NzoIx+hivz7/PY8o/unk9mkWbsiXJT6IlB2GED00MH4AGnEQx6NNF0AXlpPML
mtvmIGWHL2DRBjJ1xaeOCKTialz+aOsioKu69PCBMF/G8UsszQE/ip9fDNWxkcgG3/iTn/wc5E+6
2EofX4zLDh1xXC3q68SL0DsiBIiJkusX9qd3nsOiqpQO2aYrveml+eWcqCj2YwImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIrLoHBhQh7
B4Hb4uiOg5xpDnKlEUrlitMm5xwhr5pkX/Kq0UfQlT79ylVXTrbyzDWGLmPoUcdnHjuaRT996CHo
IiQXK778aB6UxNC8sVUcSo1FtdZPXfGpI4qpnPPcB7p5/j1jzAMhPuP18dXWGLrYad60mxZNsmnD
OgP86CTyksnRBhqiNvVcT5AEl5NkHH3ZasFAdBWAKGWHrvyhD0z5osQffbrYUS3Gc708JnX5kW4e
i3FE8yM2+ojKfD7SVzzp02YM39yU9OOTuuJLFx3Ni3KVOFiIcF6U00ouuK6ajr+8N62xSke67IhZ
o879/ocG0qL7QFXK055YSauwH8QkSH+E2emE7vTfhwfSnpt3pve9hk0tLCZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAhNJoKOjY9/w
tygO7YhAwnC+iIC8anKoESUTU3Kon1zrPM+cfulq8UB01XLN1YcdQgzqlAj2tDnyONEsRL5zPXyS
342N+tHTvKgrN1zj6CKMUdc8GEeXgz71R7WhnmIqvs4D/byOP0R92OlcioFmf+gEmrXL9XWSlMNN
RoDQ0cnmsXUiANDF1ckSS3X5oU82jAGEsn48upYSAdYFYhA/mgs+GEOki8+8rrnkNsRHB6n3V/aW
/ejk82WMtmwUn7ZiolNfp2/VOOb09/cviBch7WkjzS5E+Oavq+mLP9AippS+MHdmevFTdBkm/rQP
PLMn/fGO/rT7Zp3pyJ28EGHiCdujCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZjAik4gW4jwcLAgZ5ucbMq8rkRp5ZjHcKFHv3LCSTTGhj7Z
yg4d6krAz8u8X3FDteaDeu6HNqJY+CKpWYnO1OVHdrSRvFRcyry/UBz8IT/4RE/nIX3ZMi421BHN
izr60s1LcUCnJcHZRAnJ8krix28OkhPgKf+cJKUuukBwIthw4Id+HbQ1Tl2g8CMdxskYF+B6PzFU
+MVWeoqDLvYCL7/RVYjOg5IDXQQ9hDnQxzP6KfEnXeqMI+gTX3qKL5+0EfktW0M80JMNY6vHMSd2
RJhPYzrJdFmIsFssRDjKCxGm063luZqACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACUwTArEQYb+Y6q1xsBBBQj62DvKne+JQHrZyszWuPG3l
Y6sfPeWVR7WoM0YuNiVjlPIb1ULq/aOv+PJHTA7sJcTP+2lLHx9aKKFccGwVHz1J7gd/tLFV/jtt
xaVkvoj8ag70a5wx5d9LTz6wbVkUvGUHYcgJIUxIJ0+bE9HFYNKM00cdYNLVHOQnhgo9Smy4wLLN
dRjHVn2KT79E8fGhi6T4Ail7tWWjUv34RJd+CW3Z69wYq7fVOTCmuvxSIvSLGW35UD996CreKlFf
f0XYEWH+L/vSl3+k+3/yd0Q4fF5Puu7W/rTtJp3pmNfxurWYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAlMFIF4GHuqVCr7hL874ngo
DvKole+tvHASiPO68qvRlVDnUL658tQpcz2Ny44SndwnOrQVk/G8Lt3oLkRtzYFObMj5VnxyvzVO
iQ0Hgk6jcfTwwfmrLl3NMYZqttTRQzRfSkSxNJ7Hl06p2eRPOW7SbBl1AGjSmiSlJqo+tXFAnX4O
2dKX13M7YgAQHZLzAUsdyeOXPaUfLoB08IWe2tTln5joItJjHFFbNwT9ii8d+ZIPYjBXstgVL6pF
fHTpkw114uMTIR5+5Js+6vRpnuiys8L68SJcEOW0kMVLBlI1zu47v6mmU37cl9ZYpSNddsSsUef+
4Qt705V/BmdKs2d1pIsOn5lWWynHOqqLphSOuaQ3fe931WJ+5xw8M605e/JiNTUxK5uACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZjAo4DA
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
sOHQvCjlR3GiqxC1KRHZqcQ/wngeX/6KwWZ/KFizdvX6Aq7+RlC1CEAngo30BE8Q1Na4+mlrzoIs
XcWWrvQ0rotDG1EbPSDmmcLoKOmfmDq/vE4fh/zjR0dUC8nH8Ye9zkHx0SF+pBDXBB3FpxMdCXbI
7DjW944IBYu2+jHdFyIsXjKQtv98PG4/5ItzZ6YtnpLffqOj/sIP+tL1t1bT1s/oTAe9Ir+NR7ed
zhqfuLg3/eDGaurn1ZvJWBYisPPBM560LOdKdJ3yppmpMxtigcM+X+1OLHrAbquNK2n2Sh3pZ3+r
JnZJWCneyU4/YFba6Am8HQ3Jd2+ops98r1woyG4dL9qoktgd4U93lm+Jr3luZ/rIbvnb4JCtayZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiYw
kQQiBzpVKpV9w+dtcTwcBwmNHGRikltNIiQZlNQ5lINNiR59yrDM2/ITw0v5ol/JlSwoUC63Mj8Z
V13x0VH8qBb26HDQr7xuxaSd+5FudNfmzxxkq3iMYyehzrlxyDdjalOnX/Hxo7bqxMn9R7OW6y7/
lC2LYLbsIAx1QvlkqautkhPhZHVCOoHoKkT90qEtP/KBYn08XTB05JM6evIR1WJMiwFoM4YOuhL6
ch3GEZXU83h5W/EoOfCrAz35pk6/4su3+vLMbfnJdRjnPNkRYY53RAgKbSYr+kKENrscUzad7Y5d
kh7uiRdmbIKx5+ZdaV7sjMCihLEsRFh79Y70nXeNbfeMK/9cTR++sFxQcOi2XWn/rcq3jN8s7C92
SeCEX7d5ZzriNUsvKmDxwsJ7B9Jaq3Wksw+amdZYpaOY36Hf6El/uD1WFca7zMUxh8fP5q3IYgIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAKT
S6Cjo2NuRFgYxyODkcivVnI8JQn75FFTZyxvR7NoKycbHdnSh8gfPlh8gKBDsqR08ZknT8pW/hQ/
1Grxcx3q6FCqP6qFqI1/4iDSV3zNhzH0GFeJjXLro1qbO3UEXQ7p5LbygR7z03mik58T4y0JAcYr
mqQA0tZkdWI5BMYFjLrsG5X1epqrdGlTR08AiS049JOlq/hRremjgy1lDjRv04/Qx4Fgo/iqKw7j
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
nfFqba3Hplwvc4zlo/yMlRObzj66DfLZttVqnZy/hIwtJmACJrDaCZx25WAcfR4H5yLe9aLuOPh5
nJOymIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmMDkCBQHER7LSNRsU5NNW/ZVKK0a85yu7NCrJpxCR3zQyVd+2NBXAX7ZlnrlTdPhGPTLOIwR
5SIW9d91oeVIPbvmZdvZKi8ttojaelSP0anWXPuQnXyZFxv6iNZFH3vZlq04YDMhIdjqEorlVcRP
XDbCwvVQvcomafXSBYKN4MNDHPnQMtY8fYEijuyYn5KPAHfGyakqDr6yUx5s8Rd4xU1VJdoHLQ+2
CHYIa0DHd4TTEk+29JlHsCe/7JRfMRkjiluPRnhgJx/mNspn27wRYR4DiwmYgAmsCQL/c10rLrlu
MLryL9Bh+06JqfwFtZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZjAJAnkQYSDM8TN+XAQQUI9th7qp/vyUR22arM1rzpt1WNLj53qyrNb9Zmj
FpuWOVrFzW4lnfGxV37FIycP/hLyl3rGsieGDkqoFhxf5cdOUsYhHmN8Vf/OWHlpWS+iuFoDes0z
p/p72SkGvhMWJZ9wgHRkQwgL0uYZsxG9DBbNPDr6AJOt1qA4OVXZ0eLDC5ZvacM8vtIpP3qJ8hND
L0n5BVL+GstHrfTExBa9hLH8tTfmOn21B+bUV1xaBL2YMVYM6dFhq3zTsz/bNyKAxWICJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJvB4
IZBfxh7NZvMNud5b83k0H+qoVe+tunAK6Mu+6quxldDnUb256tRpSzvNy48WmzImNoyVk/myL9tU
V6Kx1oASH2q+lZ/ab83T4sODYDPWPHbEYP/qy1ZrzKlhX/rYIVovLaJcmi/zy6a2HOdPBR6n2zLm
ANCitUhaLVQ6jQlAHz2PfNGV/dKPHADEhuJ8wNJHyvy1po7DC5ANsbDTmL7ikxNbRHbMIxrrA4Fe
+WWjWIpBDtbK6RPly26VH1t08qFPfmIi5COOYqOjj07rxJabFWbnL+HJ2VpMwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM4HFBYDkH
Efj2f9VQUzfNI1HdNy112uWcasyxLf2IRUzVbtNHsGFOfsTkoT5d9eDYKGd2hwWdcqhOnDjEU124
/JQDZ+JqLcxrjpYxD3GwIw5j8tBXnjK+9pDTw/vp9FMO9MRV/b3yE2PCokVNOEA6KgYLUp+WRwDY
BEIrIIBSQX/5wrDh0YskjnyIh+CnF6+cgqncxMBeeeiTR7FoFUcvTC8PX/llt4qjeMSXHzrlV3zG
0tMv45AHO+aVnxY9OuVnLD9iyCe7lR35e/PxQQSIWEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABB5XBBqNxkG54FvzeWxo4dRMU1tN
HbnqrVWPjQl66qj78qHeGltqrrHh0UEG4khPixAPf4R5RDb1qP7JnPLTV35a5SeP6sIVQ/FpEemJ
wYM9/sSRYCN7dMxhi177Y559ah2KQ4sohvKjJ4Z86CPotaZKkT80p/G42nIj43IsjFkUC2Uh2ijT
ik3LPC9dL09zqap88EXHow0pHq1yZLeax45c5VxpLz322Co/8BDloi/YxOsU5WXtxJQoP2PZMF/a
EY9H+bkdQS9P+lQN+xBHgg+itSmu1k07I59tBwcHT85rSbC1mIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmMDjgsDQQYTbcrGL8qHe
G1HNNnXn1FJT9C+d2lRVOo1Vy05LnbWK8xlrDlvmZKM56aRPk0rKQwfyVT581McYX0R2jCnwll6t
/DRX2qlPHOzYA/vvrL8nB/7Kld3htWhOvsqLHpGf8ktfz47zJ4tcHUIcLYhWL4/YLJCHYno2UwKU
HXrZZLfqowNeCUKF+WUM/Mr8Ak4+pMwvW9rO2NiiU2xsiKEPkXxSNWxTrkf9Mq5eFr4cRKBFh8iu
5IKO/Ijys39sNGaeZ1o+2+W1JPOytawHBPp5UylTeIuWcRFo5ad7MH/ju/K3o6nfgHFFsLEJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmMDj
iUAeRJib670lnyX5cOCAKlJqpqkjVw35UIXucB16OZZN6UOtNrFoiaOYsmGMH636pU+qh/NTw618
+Mueltg8VA4zp/jEov5c+ZnHDqGVXvmlY82qQlYs+WKLrjM2urF8tD/50CIak1Mxq4mJ/CDAZEUQ
WFi5OOJqgWxQL4E+dsyhA4js5C/AtOgkjPFR8T4QiCd/xppDJz06Xihj5Vcs+efU8IdBeZkTaHzR
lzlYW+nPmFxas3Kh0wuljyg/Y61V+5GfWs1rjM/UfLbJgwjzs7WsYwLX3dmKNx3HLS8R3zusN7ba
mFdmWVUCh5/aF5dc14pX7tEVH9uPMzuW5RFYtKQdV9+Wz+2tuOuhdjy0OOKJeT/KNps04iVP78q+
P3vLY2e9CZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZjA+kEga6Cj2WzOydUsyGdpPtRaU0uN0FJrTXE+ddmq4c5uZUdLwaR8VGutem1a1XNjy1i1
27LBhzyMqdGWj/TYU3+u/IrX6U8MfLRG+ctecZRDe5MdY81lt4qFLzr2j9BHh48OOdBHp3jKT8sa
JRoTA1vFUX7ZjbslwGSlXBR9Fs6CS2HB6Ggl9GXPOuQjf0HRnF6aYmCvOWx5KNAv/XI4LGPtVWtn
jj6x5a/1EaC0Y4yQXw8+2FNBTR97RHsq++TSWpSTMWtXfulptTatS75ZehyzBwcH5+UvYXYt65LA
tXe04pDj64MIp7+7N2ZmUfiKZP7lA3HOb1rxlK0b8S+v/vMovJ/Mnj4wvy8uvb4VL9utKz5xwJ8H
jxW9/8nM/fO8vrjiJv4cLCvTEt07XzQl/u4v9SdoWRtrTMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETGB9IJA3IhyU67g9n0fyofhWNdmqqU7V
MjqKJCnQV7EutvrC+rLenHnGzCuefFJVxWWeeKUfc6W91oSePvbKRzzlp6CbeeVQflrFoK8HHXmp
IVf+7A4LcRG16pNH9vSZZ6z80pV2iqHc5ZrSdWJCkMmKYmhBwGWxwCmFeUDx4tmY/ASCMX74I4wF
Bb1gMC9AzJf25FRBPz48ykNLhbPyEwPBhznG8s/u8Fj+5CEf8ZUfe+WXjnlEceXPPPn54GkP2R1e
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
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAJrisDQQYQ/
ZfzF+ai4UfXbFGPyUDdNrbWeznFOVXO0+KqIkyJKHvzQqaiyLjhNRQr2CHPklw0tPvgqH7Yaqy9/
9PJVLsbSkVPFmppP1XCtOnbklw2t1t1Zfy8b5iWsQ7mkx046cmrcmV8xxt0q+LgdCwc2x4J5iMdG
WCit4GZ3ePHSY1P64EssQNNXLLX48SIFQjnGyo8dgg85GBNHPorFnHS0ii/bVI0S5uWDPaL8xFQs
dIyJo/zMySe7wx9KYmo9yl/aEkOiuMzPyGfbgYGBk/NaEs27XUcExnsQ4exfD8YRZ9V/L9/xwu7q
JoAtNipfdb2Rx/JswIFfWRr3LmpXxezcFvD0vEVB8sf8lv4zfjUYvfnJeP/LOs+5RKzqQYQHH2vH
y49aWoWlKP2Tr5kSG09rxOJc4mfO7o8Lfs+vXS3LO4iwqntSnLJdlYMI37xkII79Wf23/50v6o6/
fx6/DhFX3tyKD53aV62VGwC4CUAy0YMIHz29P/aY1YxX7N6MGVPr9/Lw4nZ87Iz+Kt8GeXbkjH/q
rRgpl9o1eRDh+rva8ZHT+uLVz+iKFz61K570hEZ05ceBWw7mXTY4fBiDgzAcyBhLfBBhLCrWmYAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJrE0C
+WXs0Ww235A5/5TPonwokKVgldrrzmJ5aq3RqzabsR4Kqeui3OykYCd7WnxUCCt/cilPdqu+dPgo
f11EOhJT/vhghyg/c+W81sF8Z308OuWXD/mJycMcY4R56dFpbeiYGyu+7HO6ikM8RDmUX/p6dpw/
Sb66hAUhbI5FsjB02og2nqrhAwfaTLkOwWKOvsbEoy+fzvh1VXL9olSwr/zpVvniw3qo2NY6szsq
j+LjS19Sviz6xFIexWR9fFCIzzwtcwix0CFUSiu/9qi8yqn8zCPEYU45p2Z/+/wlnJetZS0T4GDA
m4+rbxAg9ZL887Voaf2qN8zCdQ4GII18e6fmN+JP45NQyCNL2vF3X+4LitslFLcjR71h9Dft/+wP
g/HxM/uDmwkQDixMy0/QfY+M5KQo/YjXdiRJ21U9iEDcD5/WHxdlLoTi9u02a8TtD7SrAv9KOfRj
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
Ix3+iouNBD1CHPqsh2JNrUv+tMrPnGKrVZzSnjkEHY9s0alGHT/1SzvFw1aC/1h6za+0VaKVGq7A
gEUIFmZalDbOHH1VvGqD2hwtPojsSqDY40sLcM3JJ1Wj8mODLbEQ2aHXOrXv0kZzFPuTA3uEPjps
FZuYPIpDyzwtNvRZg+yyW+1BdlqTfGSHD7m0V/ykwxYOtNjPyGdWXkvynTwNlF2LCZiACayYwP9c
14pLrhuMrvwLcti+U2Kqjjat2M2zJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJrBaCWQNdHR1dc3JoAvz4SACNdscClB9tWqxGTOHoNOYemrG
PNRv63YExvRV902htfxVy42N9KrNxqa0U1zlwx4dY1ryq08ufLUm+spfro0YCH7Kzxg/fIiLKDYt
gh575aMt53TYQX5aH63Whr98OvPn1PhFmxm/57Ie2pwWy0LRCQh9jcs5+oLDvF6CAKFDBEQbr7Uj
L0KxKa3lwwNQ6RRDuWjV10tmjCgPfea0DrXoFY9W68GfPvn14VFs7Hhkg175y0MWqa7yM4+oLf0U
SzcinFyb+qcJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJPD4I5JexcxBhQT59+fTnQ500Qi02ddk8CGPNqTadVvPlIQTsSpscDsdS
zDIefeq5yU/NNv7Kn91KGDOHELvMgY78qvfWOsmFLXqtR+tVjJyq5pSf2vEyNvYal2tTTOXS+rDX
OrI7nF950SGd41o7zp9KPk63UeYsFtEmaVmcNiJw2jAtNtpwdiuRPyDxFfh6dnR8YuikSmd+xsrP
y9CLUny9IPKrn90KOjoOEpT+9PElrtak/KxV+ZVXY2yJpfzo6ctH+WXPWpQ/u9Ua0CHKz1rQ4dOT
z/Z5Guhk34iQJCwmYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAKPCwLtdjuazebBudgF+SzOhzprFfRTU60abOlSVR0WoJaaOYTaatVk
o6OvmnHVgOOPDtFhg3pU/yx9FIu29Kd2mxj4k585iXzQac305a+1lv5aDzHkQ8tT7o95xcenZMEc
OuY76+/LnIqPbdnPYTWmnZCUm5hQgHQihhZGDECXcJUDnV6CXiibLl9o6VuClB+xgMUYyPSVnz4i
kMqrecVjrJeArfqyIwbCepknLrm0BuIof/ky1MdHIh9iE09xyj0onmzxlT2xmJcfNuK4YfZn5i+h
b0RIEBYTMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMIHHB4GhgwgH5WoX5rM0H2qmeaiVRmhVK86YmnOEumpuUKCuGnsEW9mjV626arJV
Z645bJnDjj4xy9w5rPTosEOwRajvVn7F0TpoyaF146s8tJrL7rCevvLTR5RTNedlDGzL+nvmWAdC
fuY782usOWzx07oZj1u0yHE7djgQR5soWxbHGGiIxvRLO0ESXDbJPPby1YGBVFWAaOWHreJhD0zF
oiUeOr3s7FbzpV2Zk77iyLbMxTyi9ZEbe0RtuR7ZK5/sGTNHbD6U6IlJX/lli43WRTs9Hw4izM/W
YgImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAKPGwKNRmNuLvaWfHQjArXV5SEC6qqpoUaYQ2h5pKfWuqwzRy9bHR5I1XCtuXT4IeSg
T4vgz5inzJPDShS7tCMm9d34SI+d1kVfteGaxxZhjr7WwTy2POikz+6Ydsqp/NoH9mWfeIh0+Gkv
1cR4f2gD4/Ur7bVJ2uUtRoCw0WbL3NoIAPRytVlyqa846OTDHEBoO+dTNUoEWC+ISeJoLcRgDpEt
Mcu+1lL6kB8bpDNera312JTrZY6xfJSfsXJi09lHt0E+27ZarZPzl5CxZR0T6B/65EzRJ2Edr+fx
lL6Vv2WD+VvUlb8BTX+cH0+vzms1ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwgQkRKA4iPJYBqNmmJpu27KuyVDXmOV3ZoVdNODcE4INOvvLD
hj6xkbIt9cqLjWLQL+MwRpSLWNR/67YG+oojP8ZI2SovbamvDId+KA4xsdM+ZC9f5sWGPqJ10cde
tmUrDthMSAi2uoTy66FS7GqxJUg2wLf8s0lavXSBYCOshYc46PUw1jx9gSKObJifko8Ad8bJqSou
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
LaQ3P4lrr6SPUzHhrgmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAks5wTyx9ij2Wzuk8u8IZ8F+VA7jVAzTU04Yz2qx5YN89RY00qYK8eK
gx19xaJlrFpzHT5AT3Gu4tAisieOdPgrLjYS9Ahx6LMe6s+1LvnTKj9ziq1WcUp75hB0PLJFp6Ji
/NQv7RQPWwn+E+k1/5itEj2m4aMYsAjBwkyL0saZow9ERBvU5mjxQWRXAsUeX1qAa04+qRqXHxts
iYXIDr3WqX2XNpqj2J8c2CP00WGr2MTkURxa5mmxoc8aZJfdag+y05rkIzt8yKW94icdtnCgxX5m
PhvktSSn5mmg7FqWFwKnXj4Ux10yFOuu0oiz37nkJxE+ceFgnPsbPoZjsvrMRlxw2JLHHou4/Pf+
elc7rryZr8PE0syvwa5bdY1+KUurh/sjfjOvVfkPZ4jN1mnE8zZqxporPvp35y93tON3N7Vi3t2t
WCNtt9igGZvPaga5LCZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAlMjkDXQ0dXVtXd635QPBxEoluVQgOqrKRqlZpqxCmnRacwcYx7qt3U7
AmP6qvum6lP+9PHHRnrGxMKmtFNc5cMenfy1NtnhqzXRV/5ybcRAiKH8jJWfWIhi0yLosVdu2nJO
hx3khz39cm34y6czf05NXrSZyXsu7KHNAUsg0QkIfY3ZRNkXHHTyFSB0iIBo47V27EUoHoX8fHgA
Kp1iCCit+nrJjBHloc+c1qEWveLRaj340y8PMig2djyyQa/85SGLVI++cPrYIaWfYulGhLm1if8u
LwS+ngcRjs+DCOus3IhzDl3ywwKn/XwoLr22/hrdcX877nigHaut0IgL373ksZcXZouzjjk/G4ov
fJ+v9qLlx4dPix59a0bM7nqwHYd8fSBuuoev55jM6I04eq/e2DIPF0wki8o3+5ld8dHX9kT3xG4T
hbLOBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEygg0D+GDsHEW7MZyCfwXyok0aoJ6fwU8WfjDVXF9XWNdeaLw8hYFfa5HA0lmKW8ehTz01+
qkPxV/7sVsJYlaPELnNgQH7mia910scWvdaj9SpGTlVzyk8VbBlb8RRHa1NM5dL6sNc6FLsco0O0
jno0xb9KPkX3yo3FIdo0LYvTRgROG6bFRhvObiXyByS+AlbPjo9PDF6YCvqxkT9zys+8XpTm9YLI
r352K+jodPsBMZinxbdcv/KzVvqI8mpMXt1uUPrLR/llTy7lJ57y05e/dPhkGXVsnKeB5vpGBBAt
P7K0DyKUOzvjl8Pxme8OPqkPInAbwTPW1ddmjE4zVV98c290FVOD+Y3a64T+uPXevL4n/bbdtBkz
pzXix38aDm5JmJbf0JP274tN1uIrNibn/XY4Pn4B/59EdbPF8zdpBrcjXHVr/c/Zjpt3xRG78fW2
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJTJZAu521nc3mvul3Yz7z86FIUwX91FSrBly6VFWHBai5rgs663pr1WSjo09RKH3VgOOvQlEd
NkjVqJQ+ikVb+lOdSgz8VV+e3Urkg73WTF/+Wmvpr/UQQD60POX+mFd8fEoWzKFjvrP+vsyp+NiW
/RxWY9opSbmJKQVIJ2JoYcQANOAkyoFOL0EvlE2XL7T0LUHKj1jAYqzCfeVHjwik8mpe8RjrJWCr
vuyIgbBe5vXytAbiKH/5MtTHRyIfYhOPNaMr96B4ss3piqfyMy8/bMRxxeyvl19C34iQIJYn8UGE
x+dt6IaCtVdqxLfetXi3QVxy9XB88Kz6QMFBs7tjv23rr+evb2xVtySw0tdv3RXv2XH8oQIOL9x4
dzvWXLERX/u33lhlRiNa+c076H8H4sqb8yqg/Caem2tYfSZfbYsJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmMBkCIwcRNgzfW7KJ39euiqK
p26aWmmElpprFWvWBaF1XTU3KFBXjT2CrezRq1ZdNdyqM9cctsxhR1/F//Ql9Imv/NgiFKMqv+Jo
HbTk0LrxVR5azWV3VE9f+ekjyqma8zIGtmX9PXNaN/mZ78yvsebSpMqhdTOetGiRk3bscCCONlG2
LI4x0BCN6Zd2giS4bJJ57OWrAwOpqgDRyg9bxcMemIpFSzx0etnZreZLuzInfcWRbZmLeUTrIzf2
iNpyPbJXPtkzZo7YfCjRE5O+8ssWG62LdkY+HEQ4PVvLE0TgN/Na8esbWjHvnnb1q/rbPq0Zv8zx
8ZcMxTorN+KcQycumL/29lb87qZW/Dl/ZZ8XvOk6zXhx/lr/eqsyWrRM5kaEOx9ox+V/aVUF9Xc/
2I4VcimbrNWMZ6/XiH9aTx/TOtef/9aKq29vR1em32VLfVzHr4O1Xn1bFuGnzc5p07nSa3JP16eN
ZId/6qpuHNB4SdupHEQ4bO5A/Pz6VnWQ4Nvv6Rtd8ymXDcWXLq3/P1gxb0i48N190TOybW49OOBk
/n+I+I88oPC6PKiAPDC/HXscPxD3PVLv8ZAdumOfF9UHGyoD/zEBEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE1hsAo1GY580npePbkSgSJMC
T8pUeairpoYaUZEqLY/02JV15uhlWxeLpiIFO/TSMUbIoVyM8Wcse+VhDlHs0o6YFJziI71yqSZc
reaxRbCjr3Uwjy0POumzO6Gdcio/9pKyTzxEOvy0l2pisn+0gcn6lfbaJO2iFiNA2GizZW5tBAB6
udosudRXHHTyYQ4gtJ3zqRonAqwXxCRxtBZiMIfIlphlX2spfciPDdIZr9bWemzK9TLHWD7Kz1g5
senso1shn1mtVmtufgkZW5YhAT4UX/zBUHztp/q41sn5pfxnPaUZf7ilNeFBhMH8dOF32s+HFvqy
TO+N+M9deuLlWcC/KFncgwjlTQATxdr7hd1x8Pbd1S/7M//dPwzHR75VHxT74r/2xhaz+CiOl3fN
GYhf/rUV66/WiG+8Y6yoX1ZHf2cwvnmFvj4RZ6YNtktLpnIQYbuPL4iBfEWveHZXfPQ19a0HN/+9
Hfue2F/ptbaT3tpbvTfGutGCPvucNbKHj50/GOf/bmx/2+Shk6P3ypdmMQETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETmDSB4iDCI+lMeS41
2bRlX8WoZdEudugp7KTolSJYfNDJV37Y0McHKdtSr7zYKAb9Mg5jRLmIpfzo6SuO/BgjZau8tKW+
Mhz5ozjExE77kL18mRcb+ojWRR972ZatOGAzJSHY0hKqp1WlS9wSJBvgp8PZJK1eukCwEXx4iINe
D2PN0xco4siGeaqMBbgzTk5VcfGVnfJgi7/AK26qKtE+aHmwRbBDWAM6KpJpiSdb+swj2JNfdsqv
mIwRxa1HYzywkw9zK+UzK29EmMPAsmwJXPzH4TjinLpwf5M1G/HyLHS/9+GIc349FBw2QCa6EeHT
Fw3GWb+qDTiwsN0zmjGUn5oLssD99vva0cxPzFcP7ItN1+ajs7As7kGEb/9+OP77vMHYYPVGvGCT
+qaF4fwkXvan+iYGIh/40u7Y/1/qjxvF+rsc2x8PLmjHrnnbweG71kX7WgG3K7zmc/3RyhgHze6O
/bbt/JhGLKuDCKxp3VUacd/D7VhrpUZstGYzXvu8rnh+7rOUh/OSnh2OWlCpytsL3nnqQPwqb61Y
O33vyH0hn9qjN168We3/2e8Nxem/GIrpieAH759WzXN7xcH/OxDNNFl1RiPufqgdT1+3GV89wAcR
KkD+YwImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAKTJJAHEfZNlxvy4SCChHpsPRR3DuSjOmzVZmu+LgQdq/GWHjvVlWe36jNHLTYtc7SKm91K
OuNjr/yKR04e/CWss9Qzlj0xdFBCteD4Kj92kjIO8Rjjq/p3xspLq4JjxdUa0GueOWrYEdkpRq2d
4l8ln6J75caGEBakzTNmI3oZLJp5dPQBJlutQXFyqrKjxYcXLN/Shnl8pVN+9BLlJ4ZekvILpPw1
lo9a6YmJLXoJY/lrb8x1+moPzKmvuLQIejFjrBjSo8NW+WZkf0PfiACWZSu8pP2+1B9/uaNd/eL/
Kflr+jOn1R+LH107HO8/sz6g0HkQ4fo725Ufxfy7ZLE/tx9w8AB5KIvm9ziuP/6exfX/vHEzPrfv
xAXui3sQ4aZ72tXBhuc/tTnuA0uuPY7vD+bXW7UR3zykD1Ulx+SNBmfmjQYzMvUF755WFeJrjpsf
TsibHFjvuf/eF2vMHFm4DLJdlgcRirSj3ddu3RX/b8exAxTskb0ihyfrXbfqiouuHI7/OncwVsz3
ddQePXFQHi5AeBevznmEAyYcNOGQw7nv6qsOlrwp3/e8u/P95QGM2+9vV/NrrtiI85KFxQRMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMYHIE
8sfY8weim3ul1y355M+BV3XUqvdWXTgF9GWfAlZKeXkkGqveXHXqtKWd5uVHi00ZExvGysl82Zdt
qivRWGtAiQ9FqcpP7bfmafHhQbCZaB47YrB/9WWrNebUqC997BCtlxZRLs2X+WVTW07yrwJP0m0h
cwBo0VokrRYqncYEoI+eR77oyn7pRw4AYkNxPmDpI2X+WlPH4QXIhljYaUxf8clZVyHXOuZ4EPnp
A4Fe+WVDi51ikIO1UhWtfNmtYmKLTj70yU9MRHEUGx19Ymud2FKpvmF+Cedma1mGBLgdYLfP1gXu
73x5d+z9Qr26ehF7ndAfN2bReudBhC98fyjm/Cx/aT/f3Lez0H/aWM185filS4filMuGoiffNL/E
311+Akb2t7gHER4Nx1d+NBQn/XgoenPZP/rP+hf/seegxL4n1vv60Kt7Yqct9HGO2DML+udlYT+3
BnB7wETCYYXz82YHyfH79QbF+ktLvvHL4fjOH4Zjh39qxqzV8iaJvOLhD7e046wrhmJgJO2Rr+uJ
2c+q1/37m1vx9q/WBw2OfH1PPG+jZu5jIO57pF0dTGAvOx1T7/ftL+uON7+4fo+6MYGbLua8vS9O
TlZfTmbrr5bjt/XFZy8ejLPzVovuTHPZ4WP8ltY+HccETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE/q8TWMRBBH4NXBW01E3zSFT3TUvlaDnH
WEWrpR+xiKna7frXxmtf5uRHTB7q01VASxzlzO6ooFMO5SQO8RiXfsqR6iqu1kIMzdEy5iEO+Ymj
PPSVp4xPHnwR9Tv9lAM9cVV/r/z4TVm0qCkHSEfFYEHq0/IIgDZJy4KZAxSVv50vDBse6bGVD/EQ
/PTimUdKgOiIgb3y0AegYtEqjl6YXh6+8stuFUfxiC0/dMqv+MpNy1PGIQ92+Ck/LXrlpM8jP2LI
J7uVHfn5KXYfRIDIMpYrs8D9bSMF7l9+S288e31e3Zh84sLBOPc3wwsdRHjvGQNx2XW87oiZfY18
qbzWWvJQVyzIf1q4LQE5/aC+2HANXv14mcxBhNvva8fpvxiOq25txR15eOKhBXXwgfxmkYfoP8pC
eg4+SA44eaCy32rDZnCQAPlj+h+YeuSTb+yNlzx9/H6riSfwzzW35fpOGYjhRKvDAywH/f4n1ev+
6Gt64oobWnFBHpR4bu7tuNzb3Q+1Y9dj64MIh+zQHfu8iK9VxHtOG4jL/9LKww6N+PSevfGmPJwx
mN/GL6QPvp/M9/utfL/T8yAJB0YsJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACkyfQaDT2TK9b8nlkxJtiV4ptqSNXvbXqsTFBT8EnBaJU
wGJLzTU2PBT640cc6WkR9PgjdVHtmE2trf8yp/z0lZ9W+clD/jKP4tMiyo8ND/b4E0eCjezRMaeY
2h/z7FPrUBxaRDGUHz0x5EMfQa81VYr8ozmNJ9WWG5mUY2HMolgoC9FGmVZsWuZ56Xp5mkvV6MtG
x6MNKR6tcmS3mseOXOVcaS899tgqP/AQ5aIv2MTrFOVl7cSUKD9j2TBf2hGPR/n5/Xu9POlTNepD
HAk+iNamuFo37cx8Zg0PD8/Na0mwtSwjAt+/ajg+dDb/fkSclgcGNuo4MHDiD4fiqz8ZWuggwt5f
7I8b7qo/Rn280UcRDjhsus7C73VxDyJQSP++bwzkrQFjSbgBoStDchCBon3k4vdOy0MRdZ+/5/12
OD5+wWD1oT3zkL5Yb9VGHPXtwTjn18Ox+sxGnPuuvirGmMfy0fvv8wbj278frtZ2ad7ywG0Sd9zf
jt0/Vx80eOkzuuLSa4erWyBOzVsNOGTAu+CdIEfs1hM7bl5/BY88f7A6sLDS9EZsunYjfn1jK3bd
qqu6RQHbD5w1GD+4erhi881kZDEBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABE5g8gZGDCLem50P5jFS3jtZsU3dOcSdFu6rjVpuqSqcxvvRp
qbOmgpZCXMaaY5452WhOOunTpBLyU/Gr/NgpX9nHGF+kzKH86DUvP82h7+xjjx17YP+d9ffkwEe5
sju6Ls3JV3nRI/JTTunr2Un+ZZFLQ4ijBdHq5RGbBfLwIthMCVB26GWT3aqPDnglCMbYlTE0Vn4B
V6k384otW9rO2KmqdIotH32I5IOdbMr1qF/GZU348XAQgRYdIruSCzpiI9gyx/5pNWaeZ3o+G+W1
JHOytSxDApf/uRXvOb3+pf25b++LjdfUK6sX8fmLh2Luzxc+iPDW/HX+q/NX+p+/STM+u09928Bk
l704BxG47WC3z/RXv/i/Rh4eOOyV3fH8p3aNHjj47h+G4yPfqg9SdB5EmJ/b2vnYBUG7/790x5tf
3B275K0BD+ZtCm/apjsO3l5fq8mu/PG1P/XyoTjukvrf2W+8oz5owC0GL/nYgnGJD5rdHfttW+/h
N/Na8Y6v1e+R98F7QU74wVB87af6NzuqAxinHdQbK06r3/PB6fPb9H1O3oTxpTwwYjEBEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABE5g8gTyI
sE96zcuHgk+KWynWpGaaOnLVkNMiqkMvx7IpfSgIJRatfJiXDTnwo1W/9En1aH7VcqPDX/a0xOZR
DbniE4tCVOVnHjuEVnrll441Y4solnyxRdcZG91EPtqffGgRjcmpmNXEVP4QYElFEFhYuTjiaoFs
UC+dPnbMoQOI7OQvwLToJIzx4aUCgId48mesOXTSo+OFMlZ+xZJ/To3GU17mBBpf9GUO1lb6MyaX
1qxc6PRC6SPKz1hr1X7kp1bzGuMzLZ/18yDC6dlaliGB6+9sx74n1r+k/5ksYH/BSAG7lsBtCdya
sM7KjTjn0LFfzP+vcwfjoiuHY5M8uDAnDzBMRc68YjiO+c5gTM9jLd9/37Ro8snokOv+1oo3f7ku
sP/UHr3x4s34qI3JV340FCf9uC607zyIgBU3InAzwtq5/nfkwYMjRm5/OOPgvthg9QkSjoS+5e/t
uPU+ffQjnrthM3r4xC4D+cL3h2LOz+o9XfSevlhlRr3OHY/uj/seqde06drNOOWA3tEbHU6+bCi+
fGntU95scdavhuPTF/FveS1Hvq4nZj+r3giHG15+1ILoT7ftU/c/Odcp9z7cjnn3jHHYLG+2mOHz
Cp2YPDYBEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABE3gSE8ga6Gg2m3snghvzoTCXWmtqqRFaCmAp6KQoUzXc2a3saCkWlQ99jdWOFXPWdqrdVk03
duRhTKEoLT7SY0+hqfIrXqc/MfDRGuUve8VRDu1Ndow1l90qFr7oVNBKHx0+rImY9NEpnvLTskaJ
xsTAVnGUX3aTbgmwpFIuij4LZ8GlsGB0tBL6smcd8pG/oGhOL00xsNcctjwU6Jd+ORyVifaqtTNH
n9jy1/oIUNoxRsivBx/sqUqmjz2iPZV9cmktysmYtSu/9LRam9Yl35k5t+Hw8PCc/BJm17KsCDyS
Nf6v/PSCGMpP5Gue1xXv3WmsGH1Bft13yRsFHs5/DjsPIlAoT8E8wi/p84v6k5VLrx2O/zyz/jeF
ovpnrLtwjCtvbsXbvlofRDh6z97YZtMxGwrp9zi+P24fOTAw0UEEbm3g9gakOz+B7HPLDZpxwpsf
vZr+6Dwg8c08KCE5M28mWH81fVylXfrt/MSx9wn98bf727H2So341rvGDnkc9e3BOOfX9Zo++cbe
eMnTaxZ80fb/ykBce3urutGCmy0kdz3Yjt0/2x/cLMHhha/929i+f3JdK/7fGTWb8oCCfGl1a4V0
x+7dGy986tg7kN6tCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACTyZCeSNCHvm/m/L58F8KDpVTbZqqlO1kI76aoppVaSKLQW6jCkapUWnMX3F
k0+qqrjYE6/0Y66015rQq05c+ZRLhwOYVw7lp1UM+nrQkZcacuXP7qiwBkSt+hSlyp4+84zpE1O6
0k4xlLtcU7pMTQiypKIYWhAvg8WykVKYBxQvno3JTyAY44c/wlhQ0AsG8wLEfGlPThX048OjPLRU
jCs/MRD16Ou0AABAAElEQVR8mGMs/+yOjuVPHvIRX/mxV37pmEcUV/7Mk58PmvaQ3dE1olP+cj30
eTRPDGJNz2c934iQFJ4A0e0Gffm2j8pbB56ftyJQuP4/59W3HrCkzoMIHGDY47j+uPuhdlWg/+Hd
e+LZ6/Eqa/lTFsWflUXzxHzPq8YON2ie9ua8dYAYfLDJefDs7thkrTqGbh/gBgBuAkAogP/Ia3pi
5emNoGCf2w4u/iMf41omOojADDc+cPOD5AO79sQuW+qjLu349vE8iHDHA+147xmD1Rq2y8MEa+aB
A+Qvd7Tj2O8Oxm/n8dWJ2OdF3XHIDvoKRlx1aysOOLk+OLBV3tBw1Bt7YnpvI07OGyG4EQHBHr9S
Dps7ED+/vlV98T7+hp7Y7hldcVse3uCAx915UGGl5HnBYX0T3vjggwglSfdNwARMwARMwARMwARM
wARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMYGICeRBhn5y5MR8K
XykGpbizLgodaylgpRi0Lh7NTgr14IwpdsWeYloVvtYFomN6bFUEqxxlLNWjM0dfcRhjp/xjRb9j
Bx9yejQ/fezJT6t1ERNf6TROVSXYkYOWh/zYah0UubIHxUBPDGwUU/tjzByCHT5ah2Iypo8oRz2a
5F8FmaTbQubEYaECwwIRNs4CtQF0mpM9Gy83JpD4CYo2yZiXo7jyU37NaR2ywx8bHuUnFnbYoEc0
lo38mcOm9CEme1Dscg5/7PkpdeZli67Tnopz9DzKjw1CfgnzjIlNy0GEDfMgwpxsLcuYwI13t2P/
k/pjfl3jHmuu2AhuQ3hwgV7dwgcRWCI3Ghxx9mBwMwGyVhbUT89PyT15juuh/tp39rO6gl/bX5Qc
cc74wwSy++YhfbHeqnxMIt6ftyb8KHMhXfkp3WiNRtx2b7s6jFApR/4s6iDCmXmzwTF5wwHC+i48
bFrVjrhN2DyeBxE4gPHGPIAh6eXbllsd0H8VOdxkzUacckBf9JbfmtTr0Ai+3PAAIfHfbJ1mHPem
npg5reaGDcJNCYeeOjj6Pqfl6+hPHPryHv4oBzPKmy+I5RsRoGAxARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgfEE8iDCvqn5az4UiVIVSqkm
VaLUS49U21Y6+irjpE/hJw99HtWl40eflgfBjtjSoytjUDBLTlWl0ieXbNRP1WhOYhFX61RsbOnT
Kj/xlAOd/Gi1NuVnTCVs6Z/D0VjEZp3YY6u1MSY247Kfw2osRszjp3UwnrIQaElF4LQZLZ645ULV
LzeuxatVoT22bLi0RYfopShv6cMcFdyCo5zYIuRRTI2xQU/LnPrEKEuayxg5NfohUX7m8SU/LUI8
4jCnPNiXseRHq/z0lR8/BJ36jGfms36r1To9v4SMLcuYwJ//1qoK/vmlfMkzn9KMrTdqxtcvH6pu
PTjzHX2aGm25aYCbCa7OX+sf88wXnK9x81nNeMPzu2L2M/koTCwU0Z/4w6H40Z+G49Ys0FeM8iDC
/fPb8ckLh+KH1/A1qoUi/G2e1hU7bd6s1s2n5pL3TXzA4J68tWGXY+vCf25C4EaEx5LPfm8oTv+F
/g2OOPudfbHuKkvns8l6/uP0weDWCO1X6+FQwhtf0B37v6Q7pk+wTG6q4NaEC343XB0WwQ/WW2/c
jP/JAx8rdhxCUNzr8v1+KA+N3HTPWMZVZjTi0Jd3x46bL/r9fPCswbjk6pr7zL5GnH1o7yJzKJdb
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
E3iyEcga6L1zzzfmw0+DU3xJ/TSiAliKOOlTR40wj65sKeqUvQ4cyIZCVmz1MFY8dAhj6rtp8ZNN
diuRvWJhUz7KL79yreiQMjZ58VF+WuXPbpUfHb7aB/blOIfVHK1iKT9jrU/5lUsxVKuO/5RFwacc
IB1ZCIslljatvhbJWJsCJFL6yR+7zn5lPKIXZMXCvvQhNnPSKT8tD6L8iqF1aB4b/DXWetCTnz2W
vp25mMMXO9kzRo+IkWKUbW1R+ys/OnIgOuSAT3UjQh5EmOODCBWbJ+zPrXnTwN/ub8es1RrVDQeL
uxBuU7jx7lY8nO1K0yKekkX7nb/Mv7ixFmV314PtYH0cQths7eZCtwUsyu/iq+qbG5j/0lt64znr
lx/HRXk9/voH8oAF+7n3kYi+/HZxEwW3QHDrw2PJcH7zOFxA+9S1mo95w4PicQhiXh5GWGNmIzZY
XV9FzY5v+cdi52P6496H6UUcuF19QKIa+I8JmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmMAogayB3icHN+SzYETJQQKKNVXvTZ/aa/Sq6aYt
nxxWNrQI9jyyocqUeIqV3dE5+jq8QB872TOmr/yMiUFcRC19bJhTDuWmpZ5cOWSXqlF/5UTHvHIq
HjHEo5xDjw2iPmP6xJFQd64csmOOPs+URcmnHKBwZGPIRBvQplV0X1vWm0SHDxtmM7LRxsqxcmCL
HhEYzdHii432hy12vEjFVU505Zo7bRQ3zaoXKz9i0ld+jWWPXmukZT3ERvBTHA4X0EdKG8boFYMx
feJjt2I+G7Tb7TnZWkxgqRGgUP8tXxmIP9/Rio3WaMRpBy18q8NSS/Z/LNBf87aLfU6sb5JYeTq3
IfTFjN7/Y5v0dkzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BEzABEzABEzABExgKRAYOYhwU4aanw/10YMjYan3po66LOBHV9aIax4/1VfTl6/6qapEsZgnDz7E
KO2xKXWqEycWovzyZV75mdOj9TCmT6tY2R3dF7kQWuJgIx1+rIf6cfwl2KCTD36ykR1z9HmIg2id
6lfKJfmjhS5JDBZHHDYlEbByjo2wSW1WoLRRfOlrTIvIT9Dwl51iMVZ+7FXwr/zY8aCXDy1+Wqvy
aUyLKJ78GCu/1sZY8dDp5gLyaU5x1MpeL175OtsMMbpu7YuYK+Szft6IcJpvRACRZUkJXP7nVlxz
eyt+cPVw/PUuPqYR79+lJ3bbio+oZXEInHnFcBzznfr/wHds3x37bqOv7OJ428YETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAEnhwEsgY6urq6
9srd3pTPQ/lQsKr68uxWRfiMqa1WWx4UoNiVemyJ+uhlr3jM1cWxYzmoxyae4qjOXbXczOGn/Mwr
f3YrP8XUmJiKV/qxDoliKj96dMTHFz/m8OHRumgVR3lSVYnGtIj81BIfYb7Mr3jV5GT/KNlk/Trt
BVz6iaDqEIA2go/sBE8QNNa89Iy1ZkGWrXLLVnaa18thjGiMHRA5PCDBRhXE5NT+yj46HsUnjp7s
VlLOEw9/7UH5sSF/+bvp2Ch/dkfz08cPmZnPhr4RoWLhP0uBwH+cPhA/zcMIkl227IrDd+0Z/cJJ
73bRBH5yXSsuu244uvJbfejLe2Ja+a/Kot08YwImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAJPKgJZAx3NZnOf3PRN+TySD0WsPNRRU1tNXbbq
rBmrBpsWO3TMI+VYcdCXsdATE+FAgWq5sUGYV1/5saHPg+CPjeKqrls5GZdxZJvqyke15sRTfuYQ
/CT02RuPYjOnMX30yk8ejdXXWrGVKL/i005ZCLakog2Vi9Ui2Yj09Etg2oDyM4/IRr5lLOY782FP
LOwUkz52ipHdak6HARgzhw22EnSlDfOIWvplvnKsfLQ8WrfiKzY+6JRfsaXrPICAvrRhnn1yI8Is
34iQFCxLhcD5vx2O6+5oxUrTG7HFrGZsvXEzmvr0LpUMDmICJmACJmACJmACJmACJmACJmACJmAC
JmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACJmACNYFGo7F39m7MZ36tqeqrqZNG
aCnYp46aPrXX5TiH1Vg12djIFx1Ci44YHD5AGFMhK1tilhWz8mVevqUtsUob+tJJn6pKNCY+eRDZ
Kyat8tMyrxYf1dZnd3Tt9BFseWRT+ioGdqxP+8SGsfJnd2qiRU/Nu/bSIgWQsRarjZUQmBcw+vKf
qO20qzOO+TBWPAEkt+DgT+G+8md31B4bfGlLoOUYPYKOB8GnXKvy6wABdqyFnIjyl/PKh6/WTct6
lYcWO2zo89DXeHr2N8jTQHOztZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiA
CZiACZiACZiACZiACZiACZiACZiACZiACZjAPwyBPIjAjQjz8uEgAjXSg/mo7ps+9dPUVyOqzcaO
Gms9mleLHXMIttKjo1/6KT52PBxWwIa6bvKrvju7o3GwQ5SjjM+c1onNomyZw4/8xMFOvuipO2ct
5Tx6xaOVn/TlWH3Zp3kl6CVlX7pJtZ3BJ+U8YswGFYeNaOG05cvhRQBWQLJbiTaBHiGG/IDIWL6K
qXw5VdlqjK3ssZUfrWIqv3xyqhJs8FEO2p58WLPWoZjypSUeLQ/z5Je9/InNo7Vld5SZYuGDv3LQ
4l/Gy2EVG58Z+WyQNyLMzS8heosJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJLPcEsgY6urq69s2F3pjPg/lQk63ie1oKpHnUp6aa
+mqkLPZHxxhbWmq2FYcxj+rHsVUM7OUrm9Kfea1JtvJlLYj08letuMa0+GCHyJ+xfPGRfac/NpqT
L6362hd+9GmpSWf/cMAXUf56VI8VW7pJt51BJx0gHYjBZtSyCYk2yVjz6NgYbbnpslBftoKJLY9g
ZXc0nqBpjjiIYqhfKfOPADNWfOmADXx8EeWsR3V+9WWj/MpLq7myVZ+YHDBAlJdWhxbIT0wEW8Vl
XMZeIcez8kaE05iwmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmMA/CoH8Mfa9c63z8lmQD3XT1FTz0NfDmBpv6qg1n92qT302c7Q8
slWfGIhi08cGoZWd6tCVU63sVGOu/KUfc/ijw09jbBmr1pw+Qit/+Si/5mkRbHmIpR+9L+PDhLFq
zGWruIwVm770alM1dSHIkkoZgz4PG5K+hCcAbISHTSPAQfDRJhmjx59H8UpYApnTlWCDrU5xoGRM
TGJR7K/c2R2Fzpzio6fPo7WwTuIg2OplaX3olRs7rYu+8hNLBxCyW4nilnGYwEf56ctOOsYcRFjP
BxGSwpNYHlrQjqH89Kw4rRFdfFKeAHlgfjvu50KcQnrzm772SnxcLSZgAiZgAiZgAiZgAiZgAiZg
AiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiawMIGRgwg35wyVqIMj
Fqrfph5bdePUWuuhjlp9WkQtvvggFLLyMIdOha3UmUuwR5gjv2xo8cFX+bDVWH35o5evcjGWTjc0
pGrcWvCXHflVDUyrdXfW38uGeYniMJYeO+VnTRprfdhq/fQnLQo+acfCgc2xYB7isSAWSlsuTouX
nnHpgy+xAE1fsdTix4sUCOWYKD92CD7kYEwc+SgWc9LRKr5sUzVOmJcP9ojyE1Ox0DEmjvIzJ5/s
jn4oian1KH9pSwyJ4jI/M59ZQ0NDc/NaEs27fZIReOnHF0R/fmM+9Oqe2GmL+nPwYB5OuORqPna1
9KR6/dUaseHqjVhlRvlxksWStZ+4cDDO/Q1fyzFZfWYjLjisb0zxJOhddOVw9S4WtdVnrtuIp69b
/hMwZvlwf8Rv5rXiyptbMZyvbrN1GvG8jZqx5oqLfl9T8RnL6J4JmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJPHEE8sfYo9ls7pUruDmfh/Kh
yJKCVIpgO4vlqbVGr9psxnoooNUhhuxWdrKnxUeFrvInl/Jkt+pLh4/yq5ATW8WijzBGlB9bxUcv
H+Y76+PRKb98yE9MHuYYI8xLj05rQ8fcRPFln9NVHK1ZOZRfeuwmLSRfWsKCEDbHIlkYOm1EG0/V
6IEDbaZch2AxR19j4tGXT2d8ivQRXpQK9pUfPb74sB5uJtA6szsuj+LjS19Sviz6xFIexSQH+YnP
vG5gyO4oE/q9+Sg/PuW+lFP5mUPIwZxyTsv+xvklnJOt5UlKYLs8iDCQn7gP5kGEnUcOIlx9Wyve
etLAhETWylsKDntld7z0GXy8lo6c9vOhuPRaPu4Rd9zfjjseaMdqKzTiwnc/uQ4ivOwTC2JB+d9Y
B979tu2Og2brn6mxybsebMchXx+Im+7hKz4mM/JfiaP36o0tN9A/CWNzU/EZ83bPBEzABEzABEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABJ54Ankjwr65
ipvyuT8filupw6ZwksLUuji11tGnCFO3BqgYH70KMOmXddeMNU9MfFS/TYsfOWmJSx89rXyJx5oY
Uxeu/IyZw1f5acuizzIGtozL+NiTC1F+bLQmxdVayc9alJcWwU468quPXusUU3TqZ3fJRAtYsii1
txZdbl4AsODlsxkWDxDs9WjMHD7lg5/WiT+CHTr86COM8cNeeQWPOa1L+RWjc5ymo/708ZOt4pVj
+oha8iNaA7l5tC7smFMM4rMPWuw6BT/Zln7ciLBeHkQ4vdPB4ycPgcc6iMAtCD35Cbrl7+1xRfKv
fE5XfGR3/j1aunLGL4fjM98dfFIfRFg7D3twI0Sn7LpVV+z+XL7mYzKY3/y9TuiPW+/NU33psu2m
zZg5rRE//tNwcOPBtHxFJ+3fF5usNRZvKj5jGd0zARMwARMwARMwARMwARMwARMwARMwARMwARMw
ARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwgeWDQB5E2DtXMi+frJocLdSnrhpR3bTGaimq
ZI4xLWNqvMtHdd2pror3aSUU85eCHwWepT/zxFadNznK/MyXY3yx51G87FaiOWIg+KnPWHlkR6t5
9sGYtvTTemh5lJsWkZ4+/oh0GtfaJfhLwCUVVdayKC1em2YOHXNavHICQy9HLxvbspBf8WixJY5s
s1vF1LjML1sV/ysOtsqPveykR9dZnS1fYsknu5Xgp/yyYwJb9sfNB+h5yCt7+orFnPTKrzXm1Kho
L7TIjHw2HB4enpPXklQK/3nyEXisgwhHvq4nZj+rq/oAXnVLK448fzBuvLv+qH7iDT2x3VK8GQH6
PogQ8YFde2KXLfmn5bHlkquH44NncYgtqtsSuDUB+fWNreqWBPqv37or3rPj2D9LU/EhjsUETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAElhcC
rVYrurq6dBDh4VwXBdHlzQDUYtdFr/Wi6XOIgCLN8maCsiabfvlgiw+x0ZfxcljVe0uPDbYUc6Ij
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
ytFRfuwQfMjBmDjyUSzmpKNVfNmGqo0wLx/sEeUnpmKhY0wc5WdOPtGtflISU+tR/tKWGBLFZX5o
XCNmz549MR5Lovle0R536ax0wS3NqV8s+7JDB6UhXTiLAKAP/Wh6mhGfHftu3S/tsxUoOhcfROic
jWdMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARMwARM
wARMwARMYGESiDdjT01NTXvEGh6L6/W4qI+mTpza69pieUqJ0as2m7EuCql1iCG62U72tPgQD5E/
uZQHPX3p8FF+1XEzr1j0EcaI8mOr+Ojlw3xtfTw65pWHPvmJyaVxdHNM6cWIPOhoO4ov+5iu7kt9
5pSfPA0LyXtKWBACEL0Q6LQRbRwbqsh1skMQ0CMCgz19jdkoffT4MC7jqzKduCrY13yosi8++PJk
Aq0zum3yKD6+9CVap2ISS3kUk/WRn/jM6wkM0a0yoU/pvfJrj8qrnMrPPEIO5pRzUPTHxBfhhGh7
lVx4W3M69uLK1/v+Y/ulz75fL93ctzH+jBnp0Wdb0zbv7puO3hW0nYsPInTOxjMmYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImsLAJxBMR
9ow1TI3rlbionVZ9OXXYXAg61W3rqQFlAT811gg2Zd21YqgGGx/Vb9OiV104cemjp5WvasMZU7ys
/MpFDOVXnlBlKWMQh3EZX/kxVn5stCbF1VrJDwtiMVfuVTpqzdXHRutETx+d+tHtnmgB3YtS8dai
y80LABZUm7MBFg8Q7HVpzBw+5YWf1ok/gh06/OgjjPFToT46wWNO61J+xagd41euGz/ZKl45po+o
VVW9YpCbS+vCjjnFID77oMWuVvCTbenHExFWjoMI59Y6LOrj2UHxmItmpcvubk4tsaMlh/RJKy7R
J20wsikdsp3wtd/FYX+cma55sCWttkKf9IcvDmxvUGh+f93sdNEdYK3Izz87IC23eEd4ZeHWBEzA
BEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzA
BExgQRGIgwjjIteUuGbERZ02xb8qAFbdtMZqKQhmjjEtY3zLS3Xdoc7F+7QSivlLwY867tKfeWKr
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
oU8i+YSqalOuR/0yrl4sfDmIQIsOkV3JBR35EeVn/9hozDzX4LhGx2NJJkRrMQETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIFeQyAO
IoyPxU6Ja3pcHDigRpqaaerIVUNOi6gOvRzLpvShVptYtPJhXjbkwI9W/dIn1NX81HArH/6ypyU2
l2rIFZ9Y1J8rP/PYIbTSK790rBlbRLHkiy262tjoOvLR/uRDi2hMTsXME418IEB3RRBYWLk44mqB
bFAvAn3smEMHENnJX4Bp0UkY46PifSAQT/6MNYdOenS8oIyVX7HkH1PVTwblZU6g8UVf5mBtpT9j
cmnNyoVOLyh9RPkZa63aj/zUal5jfAbFNTwOIpwbrcUETMAETMAETMAETMAETMAETMAETMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAEegWBqIFOTU1N42Kxk+OaERe1
1tRSI7TUWlOcT122arijm+1oqa+Wj2qtVa9Nq3pubBmrdls2+JCHMTXa8pEee+rPlV/xav2JgY/W
KH/ZK45yaG+yY6y56OZY+KJj/wh9dPjokAN9dIqn/LSsUaIxMbBVHOWXXd0tAbor5aLos3AWXAoL
RkcroS971iEf+QuK5vSiKQb2msOWiwL90i+GVelor1o7c/SJLX+tjwClHWOE/LrwwZ6nHtDHHtGe
yj65tBblZMzalV96Wq1N65Lv0Jgb1dzcPCG+CKNrMQETMAETMAETMAETMAETMAETMAETMAETMAET
MAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMIHeQSCeiLB7rPTJuF6Lixpp1WSr
pjpU7XTUV1Ogr5pqbPWG9WW9OfOMmVc8+YQqx2WeeKUfc6W91oRedeLKRzzlp6CbeeVQflrFoK8L
HXmpIVf+6FaFuIha9ckje/rMM1Z+6Uo7xVDuck3h2pgQpLuiGFqQiuiBUwrzgOKFZ2PyEwjGbBJ/
hLGgoBcM5gWI+dKenCrox4dLeWg5KKD8xEDwYY6x/KNbHcufPOQjvvJjr/zSMY8orvyZJz+feNpD
dKtrRKf85Xroc2meGMQaHNfKfiJCULCYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmY
gAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAn0KgJxEGF8LHhyXDwRgTpq6qxpEbXUUM+MSzXZ
zOkgArXi2KmOmzliINJjSwwEnQ4RZEV8UD06c/SJiTBWDTf5ySEpYygPc9hrTnpi4succpSx0KlO
nL7q37WO2vp79MQknmJqf4yZQ7Ajj9bBHDrG9BHlqIzq/Kggdbq1MycOCxUoFojoUIA2gE5zsmfj
5cYEko0JijbJmBdHceWn/JrTOmSHPzZcyk8s7LBBj2gsG/kzh03pQ0z2oNjlHP7YD5gzL1t0tfYc
LEDPpfzYIOSXMM+Y2LQcRBj16quvTmhp0XJDYzEBEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzCBRZhAU1NTGjZs2J6xxEfj4iACdeDU
UFOTTXE0ddUIOvqqwaZf1l4zVl06fvRpuRBsiS09ujKGDipgg5BfOfFVnznGykdf61RsbOnTKj/x
lAOd/Gi5yIsNLWPVr8s/VNVYxJY9tlqbmDEu+zHMY62Zefy0DsYNC4G6KwKnzWjxxC0Xqj7zstXi
1arQnnk2XNqiQwRVeUsf5ijsFxzlxBYhj2JqrLXQMoeN/IgtKWOgY4yt8mtMfu2HeKyFOeXBvowl
P1rlp48ftvgh6NRnPDSu4S+//PK5DCwmYAImYAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm
YAImYAImYAImYAImYAImYAImYAImYAImYAImYAIm0BsIzDmIMC7WOjkunjhA7Tj10wh9hJpsFdEz
Zh5d2VJ/LXuK9FWbjY1qwulrrHiMEcbUbNMSGx/Fi27uq44bH2zKS/nlhy2ifPTL2OhVY84cY+Vn
rDXTaq/Yl2PsmEMUS/kZa33oEHIgisEapcsTjXxQ8EZ85aMXi1gsiFZ9LZKxNqUXpvRjs/Kr7cdU
FvSCrFi1PsRmDj32yk/LhSi/YmgdmscGf421HvTkZ4+lb20u5vDFTvaM0SNipBhlW7Go+Cs/OnIg
OuSAT34iQjwNYUI8liRP+oMJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ
mIAJmIAJmIAJmIAJmIAJmIAJmIAJmIAJ9AYCUQM9PtY5Ka7pc9arpwKo3psiaWqv0aumm7a8Ypht
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
DhMWEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzABEzABEzABE+gtBOLN2MfFWqfENT0u6qapqeair4sxNd7UUWs+urlPfTZztFyyVZ8YiGLTxwah
lZ3q0JVTrexUY678pR9z+KPDT2NsGavWnD5CK3/5KL/maRFsuYilN70v48OEsWrMZau4jBWbvvRq
Q9W4EKS7Usagz8WGpC/hCQAb4WLTCHAQfLRJxujx51K8EpZAxnQWbLDVKQ6UjIlJLIr9lTu6VejM
KT56+lxaC+skDoKtXiytD71yY6d10Vd+YukAQnSzKG4Zhwl8lJ++7KRjzEGElX0QIShYTMAETMAE
TMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAETMAE
ehWBOQcRHotFT4tr1pzFq36bemzVjVNrrYs6avVpEbX44oNQd83FHDr6CHXmEuwR5sgvG1p88FU+
bDVWX/7o5atcjKXTExpC1WYt+MuO/NSNI7Rad239vWyYlygOY+mxU37WpLHWh63WT79uUfC6HQsH
NseCuYjHglgobbk4LV56xqUPvsQCNH3FUosfL6RAKEdH+bFD8CEHY+LIR7GYk45W8WUbqjbCvHyw
R5SfmIqFjjFxlJ85+US3+klJTK1H+UtbYkgUl/mhcY2YPXv2xHgsieZ7Tdvc3MzjVHrNer1QEzAB
EzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzABEzAB
EzCBniEQb8aempqa9ohoj8X1elzUR1MnTu11bbE8tdboVZvNWBcFyTrEEN1sJ3tafIiHyJ9cyoOe
vnT4KL/quJlXLPoIY0T5sVV89PJhvrY+Hh3zykOf/MTk0ji6Oab0YkQedLQdxZd9TFf3pT5zyk+e
hoXkPSUsCAGIXgh02og2jg0F9TrZIQjoEYHBnr7GbJQ+enwYl/GJiRBXBfuaR48vPvjyZAKtM7pt
8ig+vvQlWqdiEkt5FJMc5Cc+83oCQ3SrTOgPiEv58Sn3pZzKzxxCDuaUc1D0x8QX4YRoe0xmzpyZ
nn766RQnjNIKK6yQBgxgqT0vZ511VvrgBz+YRo8e3fPBHdEETMAETMAETMAETKDXEnjjhTfbrb3/
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
4PVqlsCH6wXvozjVMsXTNppV/UDk+vJ5b+aa9us1TkoRnJW+e/ZmeY+NZK10+jYXpLkWmjP98MYd
8hrP3/3ydO9lD6ev/OSLaY0dV0zt7nslYJcf+JcUJ9Kmxb84PH3n9OYxb2ZN+DlmgzNTBP2m1Xf8
XFr/J2uWrlMEqqU7zr03Lf2VxdKI4zfKY/2xphon/dgp99dIvE3xRJIa6xHUnz7zGb6np3TGGWek
bbbZJre5V2UP4F6bzwX3oiVdfPHFKZ5Ek1nxBJoUSVK5HYm5KU6WTd///vdTPMmrVOmxzV567LHH
pq9//evpT3/6U40cc4oEqhRPOkjPPfdcHhNvtdVWS/G0g8zjfo17RfbOCPJLjzzySIonCuS9LU6b
TVxb2t0jll9++RRJcSmSthL36SVx7Ykns2Us4uTwcii3290juOdnfRD3/WuttVZu9/aHPT8SWbIY
GCy+ePdrfDvXjL5cczXneCJHvmZy/eUa2iw1syZstfo69ceaml1Du3LvvTsxHbLicentV99Js849
S1rxW8um5b+5dPrYMP6PNXlqdf/H19iLHkhP3Pl07OuvpnjaQvyHoyPff7w4/pXsbK/R23fzfef5
96WLf3xNfMZS2vtvO6U5P8n/1Xqnv554R7r6kBvTvEvMnXa/etveFboknrjr3ykSLHJv+3M2Twuv
yv8He6dm9v8pdU3rffZ9k4iDHlIEzub/HbDPlhTJBPnel/s69k4oEjSr/1PEU1/SsGHDMl9/4olW
iXtV7r8j0Ursmvqiiy5K8bSvfE/F/W8z1I5OM3b7ItPOd67LDrg+3Xrm2LTkOoukb5+8cY37sRc+
kCIxMw2Za5b0k7t2qRmj087nqRWddr8bP/Tnf6azd7okDYrvnj+5c5c08xz8j7yTXnvujXToyp3X
ez7LfKbrqd3P+2nf/mOKJIY0bKUF0o7nf6vebI/93j7veh2Gfm7+tNMft8x2TvjmOSmeTpg2++1X
02c2Xiq98K+X0hHrnJpmGjJj2v++3fMeNzXf7/1t9H/TN9e7P6/lb/etkI759VPpvDOeS9vv8on0
yyMXTnfc8lr62hfuzeOXjv50WmX15vbqHkGeQgPcE3IfCC2xxBJ5X+M+TPehU2haLbtln73zzjsT
99Al8X8J7uNY2+DBg8uhmjb/H+Z7NRRPyk2RVFwz7o4RMAJGwAgYASNgBIyAETACRsAIGAEjYASM
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
/6uPsVrFsE25Jo1tMtFmrD7muMuu3yzNYaw2c9imDD/+u/97/p0bnDucI5xD7rLrN0tzGKvNHLYp
m3+af5p/mn+cG5w7nCOcQ+6y6zdLcxirzRy2KZt/mn+af5p/nBucO5wjnEPusus3S3MYq80ctimb
f5p/mn+af5wbnDucI5xD7rLrN0tzGKvNHLYpm3+af5p/mn+cG5w7nCOcQ+6y6zdLcxirzRy2KZt/
mn+af5p/nBucO5wjnEPusus3S3MYq80ctimbf5p/mn+af5wbnDucI5xD7rLrN0tzGKvNHLYpm3+a
f5p/mn+cG5w7nCOcQ+6y6zdLcxirzRy2KZt/mn+af5p/nBucO5wjnEPusus3S3MYq80ctimbf5p/
mn/uP/+8/vrrX/2zP/uzf/KnS77whS/8w89+9rN/+Ad/8AdfWo/UV9f1jXW9vi7OUHs+m5Iz0ZRc
HLzHzvlo6lzojaHOjwjm+Wx8OJ9tnlXdYjw7Tun57Rl79iM3vhPfnOYnhhye98bORX/0ta+0rVNy
0Vf7vqqbgMuFEAOW+fBH0E0f7IiY2vERc3N4+o/45qd8sJDssSKhs7N2cg6CuoMD07b4tLkmqfZv
5sYOmeokmDZkUIKjXUxs/rhhVW/h64veD2T2zxzmFkd/2vhYio+dOiI+dfLQBov6lNlH85gDX8ev
jvbs62ur/d51vf9pSV0cb/alunBN3T6QZ+Kj5wILm3X6bsy06aOf/aLkoh+KXJkHO+J4qGuzRAee
n79t+2M58amTG5u50Ym/qpvMPs48GM1BfeITQ1t/S/2wG4tNfOy0iVXO+OiJRcxBPfzj84//7r+e
v+Yf511L58nm3+Pd0fun92/rj30tyPzQ+qv1Z+tvnoRd2n8ce1TmBqT918ED9wfS/rP9p9+/tP9u
/93+u/23+25L3xPtv9t/+90190b7z/afriO5H9p/MVPuAi9cPCNwg7T/OHjwvmn/0f6j/cexrmj9
3frbdbclsyb3BXNm66+dB7hp/dn603UE90Prz0XCU4EXrtafrb95NpD2HwcPzhvtP9p/PGb/4bP1
rPcP+ZG7nj8Orruum+t/+4VNO3m4d8Gbcztt86/qZp/zP3VzUNpv8MR3DOJaEjv7hR+2iU8bH3y9
zEeJDsGPix8dfP1p+RerpA/o6RslYum4yIOIP/GMFQcfLvtoLPEIbXwdPzrakxtzYlNvSfzEp20/
yeM1fZZ6E3PQEB+d/bGv5px59cPm2MhDm1zKNXzzmANfYhznGd9c9y4FunfgCLCTEkjbztJRBk/H
p10S8DWeUiLPA9Rvudz68Ggj4lDiKyb5+GsB3LToEHHozzmv8frRtq6/bX3N5wF+/MTHR3x/BIDd
8VPnwu+ukvzY7KvlUm06SuLND7Z9wZcfJoCnfeKYe5m3XPZjtqkTw6WYg3hEfOOxgzn5t0/aHIe5
pp6c2InXzxIM6pSIfoxbm/w7bj5/8fU3n7kmvnmIR/Slru1Z+OTinp/4s3/ncZlT/WyD+Sx87MTN
/OHHf/dfz1/zzz7v+/6f86pzqvM/ZfPv8W6VD94vckVdDimV3j+9f1t/HM9G66/WX62/Wn+1/mr9
xfcOrT9vr49cZ7uudE2pfrZZY+pHXVvrT9jYpfX37fur9Vfrr9Zfrb9af7X+av3V+rP19+31kets
19WuqdXPNitM/ahra/0NG7u0/r59f7X+bv3d+rv1d+vv1t+tv1t/t/6+vT5yne262jW1+tlmhakf
dW2tv2Fjl3fC+ps1r5/Nfda/jMC4a5+/Nu4BxM/dEh1x1/BZgzn/Tjv68z21VLfOP9kWnzZiHykR
7OTj/Ic2cvPM00b/zaeldvwVfM11LvEjvxdtdZZn/OWyjQ18fBg/+Iz/nH+pNiEHgj8y29Qn99rM
RZu6+eWVXFyM3/kPP+zozUmpfubUb5kvvtQRMO0HbXHQEUdf5N/P3/M5y3TBw5fLuDO+bf2IVSb+
rGu/VwnAY4VBm4eOOyjK+eFQhzBKfVb1Qqh6cliHREmmNKd4S3Uhnjqx+BFH3YeDfFwztznsi5hi
UJ7zLNWWx1hKLmIRYsSd8dhnX/A1h3XsyIznRwxzPNjxE5c2ubnQEctFvyc+MeJTYps5VnOzU2Ij
H+UZHx3xiPGU4vsZiSEmdurYta3qlsO+iCk+4xDfPNrAVMSnTYwY1I0jNxc2cVb1gk9dPXHUKef9
R1v8Vb2IPKAg/8R1zOTjOuMv1ZaT8u3wiQ1/5wm+lPjf72P46P7r+Wv+Oeb95t/jndP75+CC96hi
vffvvr5g/oALyrn+af3R+qv1Z+tP5oYprb9bf3MPIO0/2n+0/2j/4fdu7b+OPUf7r4ML91y8M6y3
/2r/xb3Q/rP9d98/9P1L3z/1/VvfP+5rJtfRff/W9299/8au4ZC+f+z7x75/3J+Hvn/t+9e+f+37
175/PeYB5kTWTFzW/c6RWdM69pfx/RMHwp8Xn2f3ru+/yHPX+n+ZNiHWMToPTHzr5HHc1unjxCcP
+y9iuJ/E911r/DJdhBj9qRtHDPmxUReTEkwE/ez/jDcW+4wnTjEXGPgTb9wZX0xjKM1LnH2x/5bi
L5fLGPBViBUXX/Ep8TM3eFyIdXyoz3hwaYuPXb9V3WTig3ktnhiuib8Fr3/sh3kdI/qJTywy8Ww7
ts3hIf+ckz40B50ml0SZx0Ge2wwa8cOinIO2X9rJY25zimcpkZTG42t9VTchJw/YOaf42IyxX2La
b9rWJ/5Sb+OgNId1/YjlgD0y8/ulC6W5tW/O6x/6iEx8fKcfPmCJZ9322+ETL87MS5x68c/lctn6
DtaU2SYn4yfW/JSOn/GAo10uxFqmzeZ4HD+lPuLRVvQXa+ZX50NsTvNRnuvm03fii0nMFNpiWTee
MT8En36QM/zjM1p0bBL/MnHw0f13zP8+N5Q9f80/zb/7e8R3EvOn75Vz3fdf75/ev86j3iO+dXr/
ysRewkfv396/7HW8F5xrW3+0/mj90fqD+cA5wfcp5bne+mvnpPVn68/Wn8c+jblDYc6YQrv1Z+vP
1p+tv50LXGu0/2j/0f6j/Uf7j/ZfvhPOe0706Ljafx48tP9o/+GzQanwnEyh3f6r/Vf7r/ZfzgW+
a9t/tf9q//Xu3X+5Hr7v+9//fuHzT2ku1grWmS9cY0y98fqJjz8XMktiwUBnHkrivP/MqZ4SfzFm
HDritFEi5rdOmwtf8MlhHnHNQ45pt04fra/qVrc05owvruXb4cufOOYlftYnrv0nZuKLia91fHn/
m1/e4cQfcZADf/NSxx9f6/pQTj99lnrzpVSMnZ8//uRGZx5zT0xizU1dH8uleriQ5LEyc1DnYkDq
HSidlwDqCG2EASsOkrZEkMN85CZu4mijVE8Mgi95uLgBEDC4Zhu9Yp6Jb76poz6x7efsIzqw8PUH
CKt6wSfePOYSizjqjldf2ujnjYMNHde8ofE949NGGD9xtsWnVE8p3qpufRVn9tuYiY8/sfiBMfk+
t5f5IuRCiBPL/HPM4m/OT33x81dR6MXHF3xwvewPNgXbxKduH/CZ+NT1xUada+ITS/5r+PQNeR58
ccLfPw/4iP/uP58LniPqXD1/+zMCJ80/zb+9f3r/tv546/qv9RdviNafrb/3+4B/79r/uM5q/9H+
gzUl90P7r/ZfzgvMHdS52n+1/2KOQNp/tv9s/9n+s/1n+8/zf39p/72/I9t/7jzwb/vPY0/BfcF6
2v0W/LT/Pvho/3ncK9wb7b92Dtp/tv9s/8mM0P677x/6/qHvH/r+oe8f+v7hO/H9A2vy551/PJdK
DDL3f7vm9v6Pda6+2mm7/iWf7z/2SnP85Pb7F2zIxKeOD+Jairq5qc842srsF/3BTzxKc5sXu9jY
iaGNnjoXgm7iU0eM1e+bS2cOMMjDxXjxBYMLm21zUCKUE998jo22+PhP0QcdfmCRC/6pi/k8/BMv
T6t6q0/2zz7jy8X4jaGc+Ph6iY9doU4OxLzkUAembfGnL/V7i8nvHTgCJNcB0Hk66mB1BYtLPSTM
GGzo/BD1tSQOu0SIgQ6buSivPXDk4ULwN14dpfmpTzv+CHZxxHX85pz4xKDHl5xe6oyxJBfjB5vr
LGJN+xwr+cmFTqE/4JsPH8T+28aOTn7VW5r3PuMnxrFNfHRgkQs9bXAcP3VxV3WzU87+Gec47Jfj
NU6Mcz7x0YuP7nz/mYdSfGImPhhnfHJyTXyx0BNvzPPg4xP+MRHH/35/eR97L1Gi437h6v7bnzWe
vZ6/475o/mn+dc7o/bPPDcybd73/e/+2/mj91frLzXfrz9afvhN4j/oupWz9fawz4YNnpfV3+4/2
X8dz0f7rmDPbf7T/YG5o/9X+s/337bXSeiwu3+W2/2z/2f5zfz7af7f/bv+9r5n6/uHYS/T9S98/
9f3bsWbs+7e+f+z719t7KtYNff92vDP7/q3v3/r+7eV8/zjP0z7Pf//wEL2+5+9//H5s7n/B4D1P
jO97nmmuiU8boSTe7xLUs24Sf1Uv3zthd11NDOL8aWkuSvLg70W/EHHQ21f0tskFvoK/2JTYGT8i
P+jAtF/ksk/U7Zf+5jNuuVz6hW6On3iE0rziiGEpDqXjB4s2PohjRm99lvj5+eKPHwI2dfJO/KnD
x1zkwcZlv1f1whl6+00Mbcr5+atf6s1OaYx14hwrOA8WwF6U0CFE4ukYOjrrQO0sev20LdXFDx2D
pn8SQix1STa/OT18z43k4Xzxl2qL9UPkLxPwgWufOObHNvXgYNNOH42n7l87IC91/O2T40FH/bV1
Of5VvYxVP3QTn7a2ie84sYFJf8FXL/5SbTa5whd8MBByKubHNvVgkB+94yC/Oaljh/85fuIQbMYx
fvppfmwKdWIcv3pisYlPmzq+XI712uePnVjGTH3ia1vqzXYNHx/x6TN18Smxn/G1Y0MmPvw4/rvw
wSEGeSy+GI4//Pjv/tvnH58NnzOf/56/5p/m3+310/tn0cD7nPvhIe9/55jev/tapvVH64/WH60/
mEudG1f1UkfX+qv1V+svnor2/8wHrb9af7b+bv/R/uv+3z+7xmr/2f6Te6H9d/vv9t/tv9t/H985
uM9ijdn3D33/0vdPff/U90/Min3/1PdPff/W9499/9j3j385v3/k2X9Rzz953u77F3zuWn9yD9of
z8LyfqKOeP6V7/o8H2vf0U189zqW5DE/+Ip4tNGbh7o2zr8S//q6qIuvnbx85yA+/RR3VbdYbIj9
2Ft7DPkQ+0fbvjh+8eVl9o9Y+03/wNeOjVguhH5gQ9SLLyZtcCjxkX/GP/GNX+oLPp//xGdMCLhy
Qjn12tBR5xKH+jx/rJ7yjL9Um+9d3/9gJ4Zxik9bfDnTB/2jRaBHJ1oJyEXn5uBpK5LjB4m/g+XD
pG0O4owlDj3ioK/FGSu+/uYVn3Li2R9zEnfGx4bYJ33pjzZK7D6Qq7q1taPH337QL2xc5nGcS3XB
Is4c5J9xjAObOvGXahP9sYuPP/oZ97z4+IlFadyqbvnEp0SmfeKf88xxGEtpPrAQbdTpv3G08cEO
vwh1cWhP/Pn5E2cecxDrRT7xyYfQnnHqxDd24vu5229zmMe2sZZvh09c+Lc/f7mL/+Pe7f475qNr
z3/P3/EM+fxQNv8cz9C1+b/5t/dP799j7mC+cP7o/XvMHb1/e//yPLT+v73/5v0512POHZatP445
pPUHb9qdj3nfqHO96r3T++e4d3r/9P7p/dP7t/XH7fXGfI9Q991h2frjeIe0/mCl0fqD52Q+N3LS
+uv2f/9s/XnMHa0/W3+2/mz92fqz9ef8vm+uI1p/t/9w32XZ/utYQ7X/YqfR/qv9V/vP+d70mWj/
/Z3bf/MZPIR/4uZ6yPeeJetlPmvE+R/bXEdvxvXPGd+82PH3+wj15rWNn7j4ioMfdXUzbqkvgt19
PnUuY2d/wUPMw6F4hLZxlOJjQ4izf/iaBx2ivzkcl3rbxp3xzWG8cfhRJ47SOPMs1SbEOX79jUWP
vzwQcM6jL7GOnzhFHX5c5DPGcuLjjx7x8xcfvZd58AObS9GHNvkQdbZ37SP+JeFjRaIkiXwOGpuk
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
nBPffi/1/YXkL0LsJJ2nbukgGBA626v6Fj9JYnAMkjzTHz0+iKX2iS8WOnOps1/kwI6Ig4918fVH
z4eHHrGc+PbpnBdfbfiLox/t2U/q3CDop7/4xE1881EilPabkvZd/tqfhQ8eFz4TC53jV79UF16p
mx874nioE4+Ymz5aZ/zmx4d4xm8ex0Of8BN/jnuptz7LJTb7i404RExzyMXEpz7x7cfkBJ9r+PQV
/2v4+s8898UH18t8lIi5wo//7r+3Pv8+Lz1/xxzqnMGcwnyJUL9r/nPuoZTP5h9Ya/71Xur90/un
90/vn/P62/dF79/ev7wjWEP4zqDe+mORsAQuWn/tzwh8cK8g3Ctw4+V80voTdo5nqfVX66/WX62/
Wn/t7wrmRt4Zvi9af7b+bP25PxOtv/f/Xsb80P6DmXK/L9p/HPuO9h/7fdH+a3822n/eXk+1/z6e
j/77/z5vtv9s/9n+c58nXVO1/9z5aP/d/rv99/EseBay/ee+jmJ9/U7ff9JT5/OHrn/Jcdf3Lx6Y
x+e8/0Q3v8/0vqH0uZrrr2v9nDk9X0u8vvAPBmJ51olLzMQjN7ZpJ4ftuY+cnzN28iBi0SYfJTrE
/uBvXuzzvYJNPGz6rerlvyNalwvx8T3/YADfiW++WToWdPaHumI/9EM/P395QX/+/Gc+ck5c8xov
X/JDPvtEqZ858LdOicgd9ckPbXzAfLAI8uAEK5BO0UkHey2XnXSADlxfYyn9cKkjxBonwZbYJcwc
5zFNkpzgxdfXkhzYkIlpHb35xKNk/OQ+98u8y7QJPviDMXNSR7QRd7abC72czHLi60tpfVW3PopB
iWA3JzkcP3Vl1s03S/ohPjHTZg5KcM746h0Ln799wobYV30o8ZmlY8AfsQ/U8UPwQX/t8zf3fe4/
8R97/zsW+ncX/jLdGq8xlOHvn62fM1xNUX/+/PWRy/jv/uv5258KngXEedG6z8osm3+af7hfnGe5
V6aob/69vf6QI5+l3j+9f3r/7E9F75+dh96/t/d/zpWzbP3R+qP1R+sv15muqyzVt/5s/cl7w+//
vD98l7T+bv3d+nt/Klp/7zy0/m79PZ8F3xWzbP/R/oN7xHWm6wpL9fi0/mj91fpzfw58PpxLeT5a
f+2szHfOrMvVLHv/9P7hHvE943NlqR6f3j+9f3r/9P5hHlB8lzA/9P7dWZnv3FmXq1n2/u39yz3i
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
p5mHvPiJxfjnfeaYruGbb4Vc8NEp5CUOQa+/+HL4vPizX8acxx/+Rvf2T/x3//X87c9D80/zb++f
fa3T+3dfr7T+2N+PrqW4L561/mv9td83vFHkrPXn/n51/9H6e+fDe6T1185H66/WX62/Wn/xvmz9
2fqT9ULr79bfrI9cS7f/aP/V/vPu//7S/rv9N+9NxDmz7x92Pvr+YV9X9/3Lfj/4jPT9y85H37/0
/Uvfv/T9S9+/9P1T37/1/Vvfv/X94zvl+1fmI9Ymz/v9H/2+a/+7r3b3f/WhNde/fo/i+M/4HOh3
n40vewgu9RMfDAS7ebBPH+zgI+jNSR29OdDz/dfEMSd+U2+MJfjE43fGF2eZNixy4k+s/V7Vy3+X
mf0THz/wKRH1d+Hjg81x03asxMLvxMemXvyl2nRgYkfv5yI+Y0Mcx8TDx/6i58LfPNSx20/8/f7R
OG3mP+vFp1/2aVU3HMoHyxzIg5OMQAeKytyUDNDOY5viYPV3sJM4YqeeeOLQYSP/9F/NWx8Kdkmf
tlkXH53ieIj1Q7If9kl8YuyT/SKn4ycHHx4yx2weddiJMccs1VMaJz5+9nNVNzt+XI7fm0e9fpRT
RxtxPGLt2v1fdRNfnX3Gc+LzUEwc6mI4fmLRU6Kz75SI9hmHbfoZiz+5GLc/elBHiZgHP4RYRXzH
iF67cfqIST+s4y/+vP/Ewm4edeY3B/nC3z9f+JIfeYv/nZt5v1iHr+6//fnv+dsXJd4TlIjPUfPP
zofzi89Q82/vn96/vX+ZBxDnB+fN1h+tP+aaf9a5X1p/tf5i/9n6s/Un338grrWp+x5R5/ul9efO
Tevv1t+tv1t/t/7mbdH+w/ej7832X+2/5p5r1nle2n+1/2r/1f6z/Xf77/bfvBH7/sHvWuDCdaQ6
15d9/9L3L+4t+v6h7x/6/oHZsu8ffD/43nCOmO8L6/DV/rP959x/cm+41uD+8D5S5/3lPUTsXe8f
5iTvP+r6qV+qDYt179z/oFfAtU+U4ptjlsTQRmYcOvtJaT78EG30Q5tY9n9zXP+YnxIMSn2IoU2p
Th/9wLKOHyI+Py5QtDkO9OjmZW6xsJEbMU4fMR0/Mfhjn/yro0TMjR+C3kub5bSbX5v4lMSjV+jT
/PzFwm68OvtlDvJ5X+Gv3Th0jxbBH53oSgKJoONcDgZMBwlBc0D4INglYPpAJjbEHH4A5qH0g9cP
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
fROfunzqou0aj+p9/fTDw5g6lKG80kMfpKz89l/JLYkv/K/gXwhxVw2WBqOO4XhRvsCjeuuT76of
I0H+r/rP+fsiGFcH/G4I6ju+P+h3w8oLHxvNfl/OM3z1H2I3HOZAHzrBcZySMfr9v/Nww9IHNu0r
/KP7Roy7YelAn+un7sOYa6Lu+imd1xxXh+Ou337mDj3DZxx8dLh+9YjP+BU+ffBc4SMz8eU9um/k
HGm4/lfwp53VCf7sR/cVPn3SM/z5/tXl+ifOV+Fjf2xxZf/wz3Oe/c/zN/eFe3Y/f6/u//Zf5y//
k//t/jnjtu7/8x/UGh92/3b/4iM+O/4u/ij+KP4o/ij+KP4wly3+Kv66+v5b/FH8Vfz5ud+/i7+L
v4u/i7+Lv4u/i7/X35LLP8o/yj/expl9/18xQvnH233hndHvD9avjcinOCv9/mLZg/+yRzg3EHbh
Yb9gp/LP8s/yz/LPX80/9bXfcf+A+er9533wzP+5FsoZf+orsdGMP3Z82vv9Iw9y1Ce+vyOkn/GJ
j545zhg8yM9+108JKed6H+HDr07x1eH6//tDH3rBBJ9n9jtndEBzHfahl36JuTF2he/6pv2REwc9
rp9+dKsPnbv95bnCd17IMa4uSvUo5xht503fl5Mv8suBngCwaIzkXKhD03AYTIPIqxwlY5PfOjp5
MKov/ajesRhTj/iMQ+pAN/i0IUv7xGfMOjyMQ+L7jw7og09SzxU+Y1f4c97yiKktJj59rh9ZsaYe
54Qe+ildD7LomMTYxHSe8qkPXRMfHVf49l3hu0ZkHRffOc75Woef8Ufv33F10qYOqWNfl+PP8JFn
HGJdfwJ/ztO5h5/923+dv/zPef/pEykh/fi8f+jXh06/aj+lcpTwTD5l4ev8df46f50/4299AiWk
H8n/LHsYX+tDp1+Fw3Htlv/t/un+Lf6YfkLfgb8o/ir+Kv4q/ir+Wn/c0CdSQsZRxZ/LHsaX3iHz
XoHDce1W/Fn8WfxZ/Dn9hL4Df1H8WfxZ/Fn8WfxZ/MmPiyBjberGkfYZX3qHzHsFfseVK/4s/iz+
LP6cfkLfgb8o/iz+LP4s/iz+/Lz4U/9qie+9qn+m/+UMQ+BAe/w38ZkP49CV/18j67/qgQ8d6p/6
jDGRkEc5x5ifv9OFx3iWkrh37r+jeSdxLcV3DbNEiDYkruXks744T//PPy6AxKLuOqhDro+Ssbku
xie+66Rv8luHH7ryv/BA4jsn+9WB7mlXx5WjnPjW0QdRqsM9dBv48R/1yK9+y8n7ZXXBvwzggWJw
MQCG0ZCwUocwAo9j8NueBprj1innvyY5mrcXwUHghUxdtJVDrz/eP6r3l6cux8W3rU700DfxxYIH
fMbtA8v106++o3ojZORxI6rjB8t97mC6Dnids1jo4h9COFexrvCnzI5PW1KHOq/WLy880/70wy8+
4+rb8V0LPDu+a0ZGOfqQAQ9C745P3yP8KTNtKT6y8qCD9hW+c/1qfOYV/s/vP/uzS79+/7f/On/5
n/zPfv/mf/O/3T/dv8W/X5t/FH8VfxV/FX8Vf6271u8/xZ/Fn8WfxZ/Fn8WfxMjz7w/sic/6/l/8
Xfxd/F38Xfxd/O294t+siz+LP4s/iz+LP4u/yz+WH5hx0tXvv+adyTc871LOEG38KeRdW/5V/lX+
Vf41/Yo+Qz/xJ+5fsb767w+sZWI98n/MQ76r9WOvR/4Xfp7pf+Hd/S86xJ/f07D/jo+svPjuiY9u
+tRPXXz/nwloo5MxyDYlxBh19Pr+4Z26HFfW9T/CR6e6lBGf8tn6WQuEHM+8/9UlPm30XdlMfHi1
z1G98yPLPOb61Ssfunf7wy8fOiDxba/eP/BfFvBdNA3HPDCWL9cxS+dI2xcyX57y9GlwZFwffbxQ
yJfJmLqmPBg8boz5UpBVhn7xprwb7hi+xGfcdSIPlvO0veM7Tr+YlM7R8TlGHw88YLr+R/jwqW/H
P4Zuuuh3/fA63yt8ZNQz7T/x0QWP85z46qaE4Jn49MujPG3f71G96534jiOz46sPHOuU0Efwpwxr
+gx85vDq+sPHWp/7/tGX/c/zzx7jwSb7+Wv/HUYZdun8n/fPr/pf7Nn56/wZf+R/8r/dP92/xR/F
X8WfK3fHHxJfFX8TLZ7novi7+NvvX+Ufy1d89PsX56n8q/yr/Ou8Y8s/yj/KP844q/jz9A3Fn+e+
KP4u/i7+xiMs/8DfhIu/P/b3d2xX/lH+Uf5xxhjlH+Uf5R9nnFn+cfoG7kv/LlL8Xfxd/M2J+PPx
tz7pM+2Pz0fvK/f/M3zmtN8ftHn8bSzykjkL/kR8+vQzzkcZ+qlP/4Nu858dX8wdH36IfmQe4c/Y
UAxK5Y7qre4Y/HP+j/CRU48YlK7XdbpW16/co/WLN+WZK4+61bXj0y8P8ozbVsZ+8MGC0O364YNH
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
1OmHT3zlXY/jbgB4eWhbf4a/rxEZ8Rlzk/8q/qHiNhfnq13pF8s1gAs9w0fe9VC6RtePPH2un7br
YA3K07/jM24fdkbOubl+5SnlF+/oupFtS/HnvGEUa2LQP9c/x6b8q/jqk9/50x/+svW0sfb6rPev
vuy/zkv7b+25zl/+J/+b/+VO7/5ZvoB4Cir+WXnCZ8Sf2rP4o/iD81X8VfyFf4WKP4o/ij+Kv4o/
iz+5C4q/b9di+cdhhr5/fs73f3YUd2z5V/lX+Vf5Z/l3+Xf5N7di3x/6/tL3l76/9P2l7y99f+n7
S9+f+v624kLuxL4/nd+fsAp7w+9IlvThN3j4rYBk29Lfn159f6DvI/cPvO/hMw8wwYcmv/L0M84Y
JQ9zgejj/VPOuc35+z3tYLnJun5xZ/kMf18/cuKrw7k5n6nvo/j7vNWJnn39V/h+P8Au8Gs7eCX6
0EsJzfkqT7/rmjamH6IPnXPM9tQnPn3fSi72WyfxAxyjQRhMo1lnntQnTSMq63omL0Zm3Jeo0WnL
x6bg8ED0waMzpS2+9aPrzUtGl9iMqZe+Hd8x5qS+HZ9+50ddXvmPrjf4zp3+ncBHFw91HualzqN6
Xy91MODZ1++YtkDe9aH7EaELXvHRD038uX7GkIEfXte815HnQXbHF+MYuuma+OiGdvz/rO77+l/B
Z/2fhe87ZO6vrj/87N/++5zz3/lbDjD/k//t/nkt/uj+7f7t/u3+/Yz8o/ij+AMLFH8VfxV/FX/1
/en973/F38Xfxd/F38XfK3b2v7/y94/yj2W94u/i7+Lv4u/i7+Jv7gIe8oy9zu8Hyj/KP8o/yj/K
Pw5nOAhfKRFLvfL7q/KPZTFsV/xZ/Fn8+XPMNWOxf0v8xZqIIT7D/+l3LfEoj/yvMS08V/j+Pnba
3Lo6Z/w7MWcd3dP/04bUT53/V4G5fnjm/ocHnY/w0TWJ+UnUmSf6qPOgZ+KLd3TfxuBxXExKdSmP
3vn/jnA0bwSfpC7xr9ZPn+uHn2eu33c15+Ka1S8eJXySMuLDD7k+6pOf9h8nFvg3kIZmLhpIA9K3
j/Pi7IMf49qm9FEH5Xy5R/Pepg7BwzM3gC9b3fDteHtbbGUY3/EZe7SBxAcLPsiSOvpYv3rFt4TX
56je6uKz2alD2mO1zvXLA5+4YsFL/QofXmXEt03JM9c216/s5FH2ELuvgTo6Hr1/dIqtTkvXq96J
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
XrYw32J/lH+Xf7sfyr9PX8HZKP9eNij/Lv/GR0B9f+j7A3FU31/O3z/1/anvT31/6vtT359uIcKb
37/+Dd8f1qzWnUVMb75D/0fzX+Rfvf+8F5CB9u8PjD/C127Izvj7ET669/13hX+w/bR+dPLM/G/H
Zxya8R94YlDaZi4S/dKr61fGeb2y/mf4zn3HZ17q3tfPmPjTLq5/4lF3zsh9O7ngb5/IjwnwQ3EM
rUE1lqVGhZ06/WwmXpgvjT7Hjur9w+bUKc+UYfwZPjKM+5LFEJ9xdKDTDU6fWDu+cvQr+wj/YLmv
VUfwCj5yzAde8elzTq6fPsaZ07Q//ZDrYPwRvrrgneuf+Ohyvcxpyuz4rg+ZHR9ex7WjuiixozI7
/jH00/rh3fGdp/yu69H7n/jP1q++99Yf/npP2iv7r3PV/ltn9dn57/zl//L/aw90/53xD3cJxN7o
/n0efxV/FH9wTiB9Kfdq8UfxB76h+Gudi6v8s/jz9BnFH8Uf+Ap8hlT8VfxZ/F387TdT/AH+gXtz
fn8u/lwes/j7jLXKP8o/yj/Kv8o/T5/IPepdSln+Wf5pzMB+KP8q/yz/XrE0/+VslH+edwb2KP8q
/yz/7vtD31+WL8Qf4hchYynOR98f+v7w3d8f2JO/kv8yb/KBV+IfMJ7tf88HZwKdPOp3bsjv+Ydn
acZfys775xD9CR+Z/fypRx3iiWM/c3POjE1dtBkD/78/6vIezds80HN1/q/w4UMnMs7nVfxn/les
Q+3D9+/aKHmkK3zm9lcQk/vbyA2A0Z2fL5W2L0ODa0xePsRGlcc+eJFlDPIH//A5Rr86La/w0ekG
sw4/OuFnI1OHh3HGIPFp/+d42HCOTxzr+/qRY8y1oV8c8Y+um1771U//q/ja5BV8149+MKF9/fQ5
d+w/1y8Wc+ORj3LHZ72vrH/HR5d6n+EfbHe+V/G1L/yP1v/V+Ngl/Ozf/uME/+x/On+nX/sK/5f/
yf92/3T/dP90/3T/Fn/86fyr+KP4o/ij+KP4o/ij+KP4o/hj3QXERfP79NX3//n9nbPDPep3+Fe+
v/v9v/u3+7f7lxOU/83/5n/xBd0/3b/FHyumMq7q72/LHv7+pfjzjLmJHdwnlMXfKxfRLtwn++9/
yj/WPVv+Vf5V/oWnKP8q//qe/Iu7CPpO+3MPfBTfe5W5P4s/iF0f3b/oeOR/GFPvjH+Z5x7/ORf4
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
n/3ZDcse7b/n57/zt/ZK/ufn+zf/+/P97z3PrsG3dP/8HP91/yyfgm/t/un+eRZ/d/+us9L92/37
K/ln92/374w3qM9292/3b/fvecfiLzkTPsUfp226f95+fy//L//f//7R94/zbxb40OLPt/FW8ddb
exR/Fn8Wf54xVvHnGXvjG4q/z71R/F38Tc7h303KP8o/yj9WPEkMwXko/zrvzPKv8s/y77f5Zvn3
W3t8df5N9Dr/3vRR+7N/IeTei3/5Qf4z/+9ZmPOZ6/f+oM/HWOsRPvcOY/v9o7yYB8stbgPjCh9+
+uFXlvJX8Q/Ru76JR322xZj8O75j2n/Okfmhb18/MujZ1w8v/ZB6Vusv/S+T/NuJlwBhXDfMrePH
f3aD+7LgnS8IdtvwWPclaws2sTiU0OQVb42cGxEexthI/t9vKAcvddtzbuKLteMjA+3rn/1Ttxt5
rnFpWPjM8SP4yM55P1q/63i0fvU8wnc9+/qRg5R7hO8c38PXjvI77yt8bAje5P2T+Mwt/Ozf/vvZ
/x1H40acZ+yjjT7z/Hf+8j/53/NseR7WyVv/7fzlf/K/5xnp/rnOf/AW3tH4kVnXh8Czx//537e2
Kv9gl5zk3nE/df46f1ffX9gx7pH8z1tbeIawUf737fe/7p+3e6X7h1NykmdH39L90/3T/bP+aOaZ
8LTY7v5961P1Idip+7f71+9slvPcdP/qTVbp2dFG3b/dv92/3b+Pfv+Avyj+KP7wvmAveIdwoxR/
FX8Zd1nOvVL8xSk5ybOjjYq/ir+Kv4q/ir/OGOv0lufv2PSX78Ufyhq3fvT+IZ6RJuas68PhM/4R
T1nbOz786FLflf9XRh7WbH2WYL2Crz74nbt62HdX/gcZeV7Bh9/7/6j+9Ptr+uDZ8T+6/qv3zzzF
Bwd6ZH/4IGVYvzZ0vYzLR/2vIyb6t5Nz1KiUe501zD6M7ovkBUKM0zfl2QQS/bxANhJ8+4ufGwbe
udmP5h3fzYs8m2Liq3/KIwvRB+9H8V2D8pTOH107vhcEc6EuIef86EPOtdCe+ul/tH7xmcPV+sVX
Ht2Q+h+t33FKHuWpQ3Mc7F/Bd/3a79H6X8HHfh9df/iP9/98v9n//f3f/uv85X8e33/eH9wdED4l
/5v//az4I/+b/83/5n/xA5D3y7P8p/un+6f75/x+Uf69bKH/wJfgR8p/y3/NX9gLEKX7w+9XxR/F
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
jY/k30Qir9w//z34/M4BDjEcD79/nv3eZ0f35d8flWX8UfxD/yvfH+Gb+Mpcrd8+eF6NPw/W2zzM
45UTh/Zcj/1iKcc8JcZsy+fYX1868b9+og8myPx5abwojG/9qN5fCjyM+/IYm4TMo5eoPmTRAfmS
lZNHfErr8IPPpvKjo32W6vFdqF8d4CL7Hj769rnQN/GZByQW9St8xif+e+uHd/JbR//E53BDEx/d
8NtHHVKH7+699U9+6+i5wmfN0tX6GVPHV+C7VnDC//PvP/uz8xa1/9p/+DrPBHUo/3fep+/df9wR
017WsePV/aOtGe/8df7YL+4J6pB7qPhjxe6fGf9pa+zc+ev8df7yP/qE/C9esfun+7f4l9ig+Kv4
q/zv/e/P019a5x7hXn30/Zvx4u/ib/ZL8RenYe0Fy+6f7t/ij+KP4o/ij75/3q7H23dxasaN3pHG
nNjJOnzFn8Xf5R/Xvz/ifHiOir+xRvE3vhPShxZ/Fn8WfxZ/Fn+efpGa9+ZXxJ/43j/tf9fqfu3+
I76a87WOzqv4WyxK7XgVf9D33v0jj5hX8b//o+5Xvz+e+Ojggaa+K/8H7uS5qqMHvj3+pF+a+PS9
iq8cpWtW5z+uxEj/ZPIlsA7rlLx4SogXy+NmmhtIPp3slczkQcfVRrnChxeCH/3+Y4Id33k5xynD
mP8yRx3v4U+ZqWvHh2+u7Rm+ssi8h48NPfjP8Od78iChf8q4ll/B33WpY7c/83gPH13wUL66/vAP
Y/2wl3uXMvuvPfSR/d/+6/zlf/K/3T/dv8Uft7DiFocZu+3xtzFz8cc6L8Vfj/Mv99Cz/Kf4q/ir
+Kv4q/ir+Kv4q/jLuNLYofjz7ff34u91V7pPir+Lv/v7w8oh+v7f939iqP7+8frfX/v+0PeHvj/0
/aHvD31/6PtD3x/MK/v+cOYU2oKy7w99f+CuhPCXfX/p+8v/8vcXfuf7WevnLEHm8LTf+/79EXz0
emY5w/ryPf+hrc9/hD91vbd+9R9q38VX73v4Uxf42OHR9y940Qdd6aePcUrI9rQ/+v+RhFH+6cQa
fLnz5bAu+9nQviRfJmO+RPmQp+4Gk/fouhFt9KAPWR76lKft2FG9bxwPFH3UxUGX8oypjz7rlJL9
Ysjzu/joZU7qE8dy4jNnD7X8j/Dtn+tH9mr9H8F/Zf1gX+E/sv9n42Oz8Ne7nu8/+/+Z/d/+6/zl
f/I/3Gv535XQ4BO7f7p//kT82f3b/dv92/3b/Vv8UfxV/MUHdaj4s/iz+HPFhvP7Nzbxe7LfnS1v
B+f4D+2PfH8v/ir+Kv4q/ir+Kv4q/lq3aPFn8WfxZ/EnsXHx9/n7m/KP8q/yz3UezLstV+RQ/t33
h76/9P1pfU/AV+ov/c5Gm/yCErK//Pvz8u/5w/yvtL+xoe+S9/mq/0MWevX9w/tK/GXM6h57tn5z
HMpn+w+dzlN93nuWzA/6CL78Oz46nRt4E99+cS3RBdGe/kd+dMz3BO8/iljAv4FYhy/cAzTX5Quj
lCY/8m4QN4cy8LOR0SsOY/DT5kGGx3/1wpikjKX9z/CRR596KHd85vQK/sF2o8/GZ04Tn/VcrR9w
bUkp/e76d/xH9gfvI/jun/fsH/7b95/9P2f/t/+W3+v8Pff/+Z/8z7x/87/538+Iv7p/un+4W7p/
u3/ZBxDlnn8WfxR/FH+sPYCvLP4q/ir+WveE9wZ3B9T3t+UnXvn+Wfxd/M35Kf4u/taPUhZ/nz4U
P4pNij+LP9kDxd/lH+Vf5V/lX+Vf5k/HtXCn8s8zdtIo2GT+rol4ij7tV/5R/lH+sU5L+Vf5Z/n3
eYeUf//zvz9wv3/G/Y+H/JX8+yP45Pivnj/+oYb3FnODruK/j+CjD73MA10f3f9gKXtUb4SOK/tP
XmSg/f6hjzEfbPOPJhf6j17Ej8nzstxcvGTqO5GouqFcu3y03WDI0Z6b301DKS/jbnr6dnz00Q9R
gv/f40HGfjGm/DH80+ZzM17hIzvlXb/4lq7/FXz0uT7kn+Efw5f49k/8V9cvPuUjfOzNvKBX1/+Z
+Non/Ozf/nvs/77q/Hf+8n/5/9v11/13mOFR/JX/WffzR+LPV+Kv/G/+N/+b/y3/Kf8p/yn+KP5a
H5eJN7GFcadl8dfr3z+LP99+f/6V76/uO8v2X/uv798rZ8O/QOSw1Gf8Qn/+57QN/iP/s+xx9fc3
90vxT/EP+4PzUvxX/GvcZVn8VfxV/FX8RSxV/EnUdMaYxd/n90PsUv5x7o3yj/Kv8s/yT77VlH+v
uwGfuP/+Qvsw9hX5p/9vDNxNV/jPvn8cIh/6/TP8fpt7z/8zPuOHZ+v/v4P3o/EX6/pV/3OI3on8
71d/fw6+89D+tP8VxIL+beQLY128eDela/XlyUc5X6z9yFNHngfCCc7Djhz6KOH1oHqAdnz5D9aH
GxsMdIJJHZr4YtCnPvGd2yN8dO3r3x37jg/OxBfjCt+5vYIPjrqYP/psz/Xv+GL8Lj7vS7xH+L4/
sCDm/CfxwfvO9Yef/dt/b/1f53/5wT/hf/M/+Z/8T/6HPQAVfxV/dv92/xoX7Pmve+OV/POV/E+c
/E/+t/un+7f4o/jDO6b89+fvz9qm+3fZxu/H/o2AO2R+f3/v+3PxR98/+v7R94/yj/KP8o/yj/KP
8g9j7PKP8o++f37s91flX+Wf5d8rlu7vH+///q/vL31/+czvL+j62/0PfoE5Mtff2f+H+Lu/v96/
fxrbvooPBrzEQcxb+avvz8fwjT5if3T+6vsH7L3vv8wFDH9/bHvOccdnbfu8jq5/NmGAfxtxeHyR
M1BnnbzU+eJpQ5bKKgcvxLi2Ujdj1HcZNp886pmyjNNGp7iWU5eH9GC78TkXdMP/Hj4YV/hgXOHT
9wyfcegKn/mI9d76H+Gje8dHF6R+6lf49H0FPvOBwl/2xRbZ/7Xzh63ck/PsfGT/t/+wYucv/5P/
mT6E/fDe/c+5yf+s+2raLv+79gV7iAeyxDbGUnv8OW3Y/uv85X/WWZlnhrPzmflP8R/eqfgPf5v/
vW2F8s8f5yH/m//lvun+OWPW7t/ij+KvdR64Lcv/T9+APfSX2IWYyrzXcvrS8t91t2C34s/i7/IP
TsLyIZyH4u/Tn+JXvWu6f5dd2CvaZJ4d7hja7CHvHcvun2U77NP92/3LeYA4H/MM0c7/5n+N57t/
zrum+7f7l/MA4TM9G7Q9L8UfxV/cocadlsWf53n5N8afrumzzz969TUfvX/mPnxl/4GFzKvxn3M7
RD7k//xHDciBx/ogfOh7+GBC2kRZ5WhT54Es5/rBYY0Q4+qg/19HLu7ftjA3qSXrpM4L9UW6GWaJ
HXzp9rtJGGOjsMncIPBAyjhGvxuJkrb4blJ0KWd5dN37dnx4POTqegVf3cqIb1ucXZfjyEPiu0b1
Ooa8Y9RZ9zxY6nsV33n9Cj5Y79nf+YhDCbku+38FH9nw155/tP+z/7nX3HPtv9Mmnb9li/wPp2LZ
gvvPO+bqzDiW/+3+6f7t/jUOxB8Yb/yJ+DP/k//J/+R/8j/LD+R/u3+6f1cOU/xBNneeB3zDVS5n
f/nvzVy/9P21+6f7p++v139/8T7Sz1BC+iL78z+nXfr+1vdHv7F6TuaZcYyzU/5b/lv8UfxR/FH8
wX1gvFX+u+Ip7WGcSQl5r9pf/Hnapfiz+NMY03Myz4xjnJ3iz+LP4s/iz39j/GlssMcMX+3/5u+f
f9X/8gN/6KPxD+/xI/e/tvjo+5dfG380/kKOBz1X/od+SP2zpF+72i8+Y9qf+r+KWOy/kdwArs22
m99+XjJ92IENYpvSDaCMY8fQfZNZRx4+yA3EQdC+jNH2Hx8c1RuByeESn7Y8z/DRhRzEwUb/K/jI
qPeo3tYB3iv48IvhWuj7CL5rQ07MV/Gn/T8Dnzlob+diGyztxJptf+b6w8/+7rf23/9v78y229ph
LPjS/f8f3KNKTIUQI3mKhyQurHVMEgRInS0QA+3cu2xBPDxvnJHOX/5He8j/ciJ2LkH/rfEXXc9b
/if/gy1oD543bCT/m//VHvK/nIj8b/XXqtOxheLvihH6BnIJ/AU2Qh9iTpthTjLelH+Uf5R/lH/p
D8w38BPln+Wf2oMxxliCfRR/i7/YhbZR/lH+Vf5Z/l39Uf1V/UmGVP1NbmDO2P3D1SSuP6y3un/p
/qX7l+5f9AfW2zgJfKdjayx9KfPV39Xf2IW2Uf1d/V39/ffW39Pf49/n2DP+Gv+PLaCnDmPJePMo
/1SX1j66rkX/jD/wkEXmNfUf8n4e97uwnn1/93Ev/R9rSbw/Y7GU7zv5/o6f23+u7Vp/dSt4f/VL
PPjwvBtfPC3G4pessU0DYk5CnrHYTHn+aF4jYJ4+e/CwHoSuf3A/93cd23N/93vt/v4hv/uzvv/g
4Ln9nX/r+6PnGm/Zn3f1fS/dKzmmhcST9R/hj+xH7T+/r/a/b//hn/11/vBW63y81P9ybnje6n/x
TR/tf/N/K+4Uf4q/xf/iP/4Qwm/nf4s/xd91Fsr/rm7h6hPK/1ZOO8+GeaQt9lL+W/5f/VP9V/27
Ygc/PQ+00PSX1R/VH9gDhH3QnzEWPrzyj/KP83cz+hHb8q/yT3yI8QbfATmmhaa9FH+KP9gDhH3Q
L/4sLLr/wCrKPzgT5V/lX+Vft7HBPMK2/HPFDfOtq/O8/HBc/rUQmfZS/ln+iT1A5Z/l39hC9cfL
6g/irf6T9iPiLzkP38lb81/03xr/+AcJ0Gv3R4d9pbfsj671H31s8sz/HPP5fgf/uQ97/RNksvNP
vMydl5hG5SHEECCNhb5GYt8xLY/rMC/B42E91oIYQ+hIzj+1v8Y5dZA/95+fZTpgZKG37o9x/+d1
hbWnn+e1+/9Y4qZ5yfuzP84LYs/f3V+cWO+r9mdvqP3X+XjK/j/i+1/oh3/2l/0RKzp/yxdwHqAZ
//M/7x9/F8r53/xv/jf/W/wp/hZ/iQXlHyszKP/a90Tln+Wf733/Vf69ECj/Lv8u/y7/Lv8u/y7/
rv6o/qr+AoHqz+pP/k4Aqv6u/q7+Xmfhvf7+Zq228o3qr+qv6q/qr+qv6q/qrxUZ31p/oE2MRp+/
9yV3xbdOMq+FB97vHX9d8z3257O+Nf/m/d76/nx2ceJ9xBCeY/o8ys4+mEJisUbrJ3KSOk/FP2Rc
j75j++7vmv9cywt+B/KL5Mvmy4Vo5/vLV2bOq48e8xi/PMYYo2NaH9egncZ9Gf5iwMjwYLC0EOtA
rk3/qf39HMj7Hup+9v7ua8v+/ksp3oMxn1E6358xupBr0H/p+6tj+9r3b//wz/44cZ0/fQhY5H8e
xz98LFj56ENp87+3sb34V/wv/7k4hh+Ej+Ax/9V3MJ3/3TVB8af486j+LP7u3EOfYVv+sX0rPrX8
o/yj/IOTsKj8o/yr/HPHiPLvlUvgHcwh6Jd/l3+Xf+8zwXmw7rDlvHhmbMu/t2/Fj5R/l3+Xf3MS
FpV/l3+Xf+8YUf5d/k3uBJlD0a/+qP6o/thnovqj+su60xZ/qc+0rf7cuQVxpPqz+vO5+hM7gTxD
9H83/8DuoLfaH5/ld+Lf7+7v+/MO5Ogz/jCG+IxiZqusMrTMSfJZj/6cd07Zf66dQPxzL3e8kF8w
74wx0vr4pcufY5ZRjr40jYP+XF/jZD3++J7/bYh/YPXa/d2bdtLcn33m+uzPYYXP/+ngd/a/qF/f
nzUnvXT/177/xJHPD4nBGq2fH7U/e7E2bfsvrMN/2cNCY/3M/jYaT/mf157/zl/+J/9b/Cn+ln+U
f5V/gUD5Z/knNjCp/HujUf79+P6j+uN97n86f/u80cv/bDzyP/mfR/fP+d/873v8/qH4s/1t8af4
W/6xz0P5R/lH+cf+vdH8/X/5V/lX+detfyReeKdMO3/feI6JMsrSl4q/IrF+T5X/3XaU/91/f1b8
Kf4Uf4o/Mz4Uf3dOceYb55go+xH5x1z3I/Mfvvf3OP983kmvzb/OvysW0xPvc8yeytJ3X1t5c33j
PzK8P3+LPedfa//s8U8TAH830iB8bw1KPmONUSOyRefEbBopBnZPn7V5pkFehlc692cNZGlJ4tBh
f9dmbtK5/5T3c8/94bkn69hHhv6j/VmX+bm/e4sJus/t7z4X0Sv9zv4swN5+pq/a/6vfv/2vpnS1
3a+wv/APfxDI/3yN/+/8df46f/mf/G/+t/xv14v36r+PqL+Kv8Xf4m/xt/hb/C3+Fn+9ry7/WP6A
nIuHs1H+tX/nQM7wHvf/5Z8gWf5R/lH+Uf5R/lH+sWJB+dfOucq/NhbmXOQM9s1LiaH0aeffn+BX
kWVuErlX+ddCpPyj/KP8o/yj/KP8g1hQ/rVzjvKvjYU5F1mD/d/Jv1b28fX3P8S+94p/rPMe+Sf/
CAJs38v+zHUvS17pzH/5PuGZK+MHGL90/6l/UfsedIL6Pd56GQVf+PzSMRSMhlZDcqwsc/aVOVtk
JGQhcVaXAEXf9WkNWrSu6bx6rs1YGdopp8yFfd2DVnJPDvhc8zX7q/fU/sxByE469/dzv/f+7vkn
7S9evKv4f6f35zv5zt9/79/3n/2vWJX/22eBeP0d4l/+b3/n2f/GIvvv/Of/Xl7/kUPwWE/QWkfA
f039p174h/9L7x+yv85f/if/W/zZfsA4Wvwt/yj/uiShP4jzMIkxZ6X6t/pXW6j+r/6v/qz+rP7c
f8Rjbj3zSnNLWh5luv/p/mvaSfnn5XD8IM7JJMbln+Xf1R/VH/qC6o/qj+qP6o9H9Yd5Nv4CX0HL
I/875t+cl494f//PCa4989rX4u/3dPmoP0ke3zV913/u/DP/1P7M+Zmfy78vonftyDhEy1r8Q4xv
Q7zwdySNBoOEMDRJo2JMH9I46GMgjulPDOnzTL4GxlomwPR5ntufz8V67nfp3uzvPHzI/f1XQPDc
H9nn9kefz0ULuf6j/ed7Iv+S/ZF7r/d/y/7u/R74t/+2lZd+/+Gf/WsDv+v/On+dP2NV/udl8dez
V/z7/fwr/5P/yf/geRe9JP/P/5T/aQPlf+vcUGdLYKNP+Yj6W+xpw3+hHv5a38ff/2R/+X9tIP+T
/wGB/G/+VwTwDeU/C43yv2UL7/n7J2MPbfFn29nqlf/lf/K/xZ/tF8Ai/7vPBHf+4tH9/8YFi8FW
eN769yeskf/dmJb/LSw8b9hH5y//oz3kf7ev4GzkfxcGxZ/lI7AJzgpxhOe5v/+8iBR/LxhwjqDv
HH/Jwz76/bFNiH2k38n/WOO980/WNN7Qf0n+MeOS54/34r6J1ufR/dNF5HuRB+57vfV6Ww0EDDR+
DIMgBk/+pXudp1XHvsbFQfLQwkNOY0MWck36ykwd5p/a3700cvdAh3WYZw368NyfMbLuL993ga/u
uf9l6krqMP9of9/lvfb3/fgAX7G/uLR/+Gd/ywY+8/x3/hbm+Z/8T/4n/4MN5H8/L/8s/hR/OHNQ
/jf/m/8t/hR/i7+fdf9V/lH+Uf5R/lX+Wf5d/VH9Uf1R/VH9Uf1R/bH+lsG/D+BM8DcH7/33B9Vf
1V/VX9Vf1V/VX9Vf1V/VX9Vf/0L9RZ6MLb/k73/fO/+ZsfS99nedR/k/70Au78P4Je/vZ52te8Gj
zzpn/eHa7oMs9Jr9l8Y3+gk40TIScMB4wERjEh/GGrrGqAx8CIOEuChQBh5yPKw1ZZVz7jL9U861
n9qftTwEyPOv3SD+IQV955lzD/ak/5+Xx3816NyF9VMOHu9wb3/3dH1a5N3/v370nWfOPd5jf7F1
/Uf7s+eJ/2fu7+f7qvdv/77/7H/5nq/wP52/zl/nr/NX/P+a/C//m//N/+Z/87/53/L/dZfT/cc6
C79z//XS+6fyj/KP8o/yj/KP8o/yj/IPfpdW/lX+hS8o/3z775/Lv9fv9q0vaLGpP+33736+8p/y
n/Kf8p/yn/K/8t/y3/Lf8v/qn7fXP8RRcmvz6z81/8fXf+T9t+uf78/fNbOv+Jz1x2XqWivd+/tn
dMAXnUd//2z9qQw6EHtCfC5lzvefssi5ly3635IAIFoIgIUGgZFJ8hlrSPIcM6fuNL65jocDI9UI
0TnH6PhcujcHwv3c33WQe7Q/fOjR/sy7jmu4Py16rvFof+bVne+PvLofuf9lm/a/YOD35fcX/tlf
5w/v8LH+j/Xzf/mf/O86Z8WfdRaKv8Xf4i/Rsfhb/bPq57Pe5Xz8bv2JfZV/lX+Vf5V/df+0/ABn
ofyz/LP8k+yg/LP8s/yTeFD+fVtvVH/c4uHdnS1+wxiC/UCMJ27yyr/Lv8u/y7/1HdUf23eWf5V/
lX+Vf5Z/3+abM4+kb+ywLf/cMaT8m0qj+qP6q/pz+k3PxFfV3+yr7/7I+o/fE0MfYf+ua9y5bjT2
Ynz6X8fM3Xt/1pKey/+V+5Yt4EULgWlIcDRIjYkE0kJCngcCeebkK+uh1GBPeeXkI+d/2WDuT38a
svuod5n+ub+yHFrWYuz+7IcOxDxr0sKHPmJ/16Wdn/ez9p/v3/6f//2H/z5/2V/299n+t/PX+TP+
53/yP/kfMtHPy3/zv/nf/O86c8Wf4k/xZ52F7j8+5/6p+Fv8Lf4Wf0Gg/KP8o/yj/AMEyr/Kvz7j
95/ln+Wf5Z8r5pR/lX+Vf5V/lX+Vf5Z/l3+Xf3/8319Wf1R/vEf94d8q02JT0Mzn2QM+j+f6/Pvj
Kf8S/3+uyfgj9jcn9bNftvn5Lr7rS98fXWXBAf17+PsuzqH3bckv4NsC8MSLz0ODGGON5uxjbGJp
iyx9jfLS/bnGvcOkvHsg41pT917/3v4cdNY499cBsA7EHjxzf9b76P3ZA3Kfr9r/q9+//b/W/sI/
/L/S/2V/2V/293X5R+ev89f56/xVf2w/8Jn1X/53464fCv99L7BuCTZGjMXJPnjBg2yfu//w/gF5
17MN//D3XupqVMNGGGsn9rO/fe7ABur8rTP06P41/7PsBHvxPNnmf/O/+d/tUzkpno17/eLPxgqc
oOJP8QcfUvy9/b21v/8t/7i6iatf1bfaln+Uf5R/7JjKSfFs3OuXf2ysyj+WXy3/Kv8q/yr/LP8u
//ZvWomN1R/rD/X/tPqL78Uc7yvrHz7HR++PT3oK/8v0z7qQPiQ29/qsZd5n698TnP4P/uSx3rcn
Qfv2QBwAaCjgw4OheTh0qlMFeUjjow8PnXvyE3fXpYWc02DdnzH/wuZcDz34kMk//Uf7ux8ykGNa
9pr7O2aOtfkXTh+5/2X5F+3vZ0Sez/Ze7896rs17/qnvz+eUev++/+x/nYbf9X+s0vlfWOb/8v/F
v2UDf1r+s07o+ln8L/4X/9dZKP6vug803lL/oVf+Awq7lgeP/P+fVf9fv6AfP4p/xb/i3zoMxb/i
n3fRxf/79+/ECzHi1Dimhcp/Fg7d/3T/0/1P9z/VP9V/xMY/6fe/K0Ktn3y28v+FRfn/zu3Kf8t/
8Q33/l6l/H/5C36CkWeFcfUPKHT/W/1X/Vf9V/1X/ff31X8zpv/J+Q+fc35W4u6j/IP3oM679z4v
rf/YC3IP+i/dX7lzf9Ywn2TOtc2p7smjEw0EBG2w6v5AQEOaBojBU+yDm8bHPGMNDj59+BBz9D0s
Giu8KXMZ/pTzQkEZP8tr9p+f56n9mfNd0OEfG7j/pXtzAfXZ+/PZ+Cz+A4g/ZX/wEjM+473v/z3w
/1Pf/yX23/tfDONC8+wyBhd9At8vj7Z0nr++/z/z/Gf/22ax0fzfr/E//3cxjAvl/3ZeBx75/+Jf
8X+difKf8r/y351Llf/f3j9U/1T//In3P9V/22dV/1X/Vv9X/8/7DvpzjI949PuP8r/tS8v/yv/m
79/Kf8t/y3//vN//lv/vmFX+X/5f/n+b75b/3uJR/l/9U/3Hb3/XucBfciZ8+vsfkFnYVP+smse/
myj///vyf76z7r+uR/rm73/wd+DyGv+HPLHDFmxfU3+516P4c1nuuh6teQp7eP7g0X/t/uhB5/6s
HR0IAFL0NAIzSdA4p8Y9g9OQwRcDlhyzzuwj43dh3wOgLnw/izxa5V2PQP7fl4eDJ+/SvZLjp/b3
s/+p+4u37/TZ79/+Ir/a8F/nzLP10ecv+8v+JgKdv84fvif/s3Kh/O/H5n/Fn+l9Pz//Dv/wnwgU
/4v/xf/yn/K/8j9iQflv+e9H3v+Wf87sq/y//LP8s/yz/LP8s/yz/LP8u/qj+qP64+P+/qb6q/pr
IlD9Vf1V/VX9Vf1V/fUn1V/zb4yNV9ronKNvDEPuub8/fmn+M/d4zf5+FvZhDQk+43N/x7wbff7u
2nfwfS+sX/TgRT8QAKjoZQjMA6OB0Yrh5GGQPOqwA/Pw1NHgmYPUx5CROw3f+anP+oyhOa8+a7EO
5Lw6HpY1u+bhcZGgPrL0IfVpedSnD/mujNU/90cHHjIWq5fulVzzpfur7/60Ytr+C4vwv7X/7K/z
l//J/xZ/ir/mDz/Sj585TfnHzt+eyv/Er/xr56/lnyu2lH+Xf3MWqj+qP+b9Q/VX9Vf1V/VX9Vf1
l/VD9deuH4iP1Z/Vn9ZP1d+Pf/+k/+j+YfuP7h+6f+A86D+qv6u/q7+3f+z+ofuH7h+6f+j+ofsH
64cVHdaZqP7u/qH7l10/dP/Q/QO1JETM9H7hUfx0/lH9yTw2hT6+lr4k76XnT330IPVp2Z+H9Wf9
A495Hj/rpXsleeSHfv6n7F999CD1ae/tfxXqx30EBPH+bNwTAYyUAwBu9pHRCOlP43WO9jyE8Dh0
JER+D7QYMUTrQYLv89z+HiTWgFx77u+e7P9fl4d9oLk/8r4j88/tz+eCHu3v+7DOV+z/1e/f/svO
+v6z/87/8qef6X/zP/kf43jnr/NHHM7/fF7+m//N/+Z/l98t/hR/ij/F3/KP8o/Pun8s/yr/Kv8q
/+r+ufvn6o/qj+qP6o/qj+qP6o9VF/C3G/hE//6Eeuk9//6j+qv6q/qr+qv6q/qr+qv6q/rr76i/
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
7KsjX9m5D7JRCIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRA
CIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACIRACITAhyDw
/96S9ptq9jn1AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386176</attachid>
            <date>2019-12-19 20:25:24 -0800</date>
            <delta_ts>2019-12-21 22:38:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20191219202505.patch</filename>
            <type>text/plain</type>
            <size>325773</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDcwYWJiOTI5YTc3YTU1OTA1MGQ0MDFkNDRkOWE0
NGU3YTE1ZWQ4MjkuLmI2NGMwOWE0NDQxMWFlY2UwOGM1ZmNlYjYyOTM1NjAxYTNiYWYxM2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTE5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAxOS0xMi0xOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVHlwZUVycm9yOiBJbmplY3Rl
ZFNjcmlwdEhvc3QuaXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yIGZp
cnN0IGFyZ3VtZW50IG11c3QgYmUgYSBQcm9taXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU4NzMxMDg1OTgx
YWViMzI2M2MyMmM4ZWM4YTU5MWIyNTJiYmEzOS4uMjgyNjI1N2M5MjA5MzI2NGFlNmRmNmE1YzQ1
ZGRhNGViNWRhNDVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxOS0xMi0xOSAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZv
ciBpbnN0cnVtZW50aW5nIHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMg
d2VsbCBhcworICAgICAgICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFw
cGVyIG9iamVjdCBhbmQgdGhlIHRhcmdldCBET00gbm9kZS4KKworICAgICAgICBUZXN0czogaW5z
cGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKKyAgICAgICAgICAgICAgIGluc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbAorICAgICAgICAgICAg
ICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbAorICAg
ICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5o
dG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3ROb2RlLmh0bWwK
KyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1s
CisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbAor
CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlv
bi9XZWJBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjppbnN0
YW5jZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2Vz
TXV0ZXgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJBbmltYXRpb246OnNldEVmZmVjdEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKToKKyAgICAgICAgKiBhbmltYXRpb24v
Q1NTQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NUcmFuc2l0aW9uOjpjcmVhdGUpOgorCisgICAgICAgICogYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6cGFyc2VkS2V5
ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6
YmxlbmRpbmdLZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lRWZmZWN0OjpoYXNCbGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0ZWQpOgorICAgICAgICBQcm92aWRl
IGEgd2F5IHRvIGFjY2VzcyB0aGUgbGlzdCBvZiBrZXlmcmFtZXMuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUaW1pbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0
ZVdlYkFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlv
bkVmZmVjdEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lX
ZWJBbmltYXRpb25JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCk6IERlbGV0ZWQuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zdHJ1bWVudGluZ0FnZW50czo6ZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50IGNvbnN0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRFbmFi
bGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5n
QWdlbnRzOjpyZXNldCk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFu
aW1hdGlvbkFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmlt
YXRpb25BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjplbmFibGUpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVxdWVzdE5vZGUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZl
QW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGlt
aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ry
b3lXZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OmZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sVmFsdWVGb3JT
ZWNvbmRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6YnVpbGRPYmplY3RGb3JFZmZlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRpb24pOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpiaW5kQW5pbWF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5i
aW5kQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc2V0KTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0KTogRGVsZXRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJv
bnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVO
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCk6CisgICAg
ICAgIEFkZCBhbiBvdmVybG9hZCBmb3IgYHB1c2hOb2RlUGF0aFRvRnJvbnRlbmRgIHRoYXQgZXhw
b3NlcyBhbiBgRXJyb3JTdHJpbmdgLgorCiAyMDE5LTEyLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogKHIyNTE2NzcpIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9u
LTAvZm9ybS1kb3VibGUtc3VibWl0LTMuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCmluZGV4IDUwOGJmY2UwYzc3YmJlNWEwMzY0MjkzYzkwOGJlNmM2NWRhNzk5
ODIuLjI1MDZkM2RjN2RkMzdkNmI4NDM0OGFhOTljZjY3ZTFlNTMzNmVlOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyOCBAQAorMjAxOS0xMi0xOSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3Ry
dW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFu
YWdlci5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyKToKKyAgICAgICAg
KFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBkb21haW5zKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmFjdGl2YXRlRXh0cmFEb21haW4pOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuaW5pdGlhbGl6ZVRhcmdldCk6CisgICAg
ICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uQ29sbGVjdGlv
bik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgc3VwcG9ydGVk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmVuYWJsZSk6CisgICAg
ICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChX
SS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAg
IChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5faGFuZGxlTWFpblJlc291cmNlRGlkQ2hh
bmdlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVy
LmpzOgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmFuaW1hdGlvbkNy
ZWF0ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS5l
ZmZlY3RDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90
b3R5cGUudGFyZ2V0Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2
ZXIucHJvdG90eXBlLmFuaW1hdGlvbkRlc3Ryb3llZCk6IEFkZGVkLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qczogQWRkZWQuCisgICAgICAg
IChXSS5BbmltYXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rp
b24ucHJvdG90eXBlLmdldCBhbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNv
bGxlY3Rpb24ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db2xsZWN0aW9uLnByb3RvdHlwZS5vYmplY3RJc1JlcXVpcmVkVHlwZSk6CisgICAgICAgIChX
SS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlw
ZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtQWRkZWQp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbVJlbW92ZWQp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbXNDbGVhcmVk
KToKKyAgICAgICAgU2ltaWxhciB0byBgV0kuUmVzb3VyY2VDb2xsZWN0aW9uYCwgY3JlYXRlIGEg
c3ViY2xhc3Mgb2YgYFdJLkNvbGxlY3Rpb25gIHRoYXQgbWFpbnRhaW5zIGl0J3MKKyAgICAgICAg
b3duIHN1Yi1gV0kuQW5pbWF0aW9uQ29sbGVjdGlvbmBzIGZvciBlYWNoIHR5cGUgb2YgYFdJLkFu
aW1hdGlvbi5UeXBlYC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlv
bi5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0
aW9uLmZyb21QYXlsb2FkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFu
aW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yUGxheWJh
Y2tEaXJlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1v
ZGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJz
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvbklkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGJhY2t0cmFjZSk6CisgICAgICAgIChX
SS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBhbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbi5wcm90b3R5cGUuZ2V0IHN0YXJ0RGVsYXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
LnByb3RvdHlwZS5nZXQgZW5kRGVsYXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlw
ZS5nZXQgaXRlcmF0aW9ucyk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBp
dGVyYXRpb25TdGFydCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVy
YXRpb25EdXJhdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCB0aW1p
bmdGdW5jdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBwbGF5YmFj
a0RpcmVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBmaWxsTW9k
ZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBrZXlmcmFtZXMpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uLnByb3RvdHlwZS5yZXF1ZXN0Tm9kZSk6CisgICAgICAgIChXSS5BbmltYXRp
b24ucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuX3Vw
ZGF0ZUVmZmVjdCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmpl
Y3QuanM6CisgICAgICAgIChXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlvbik6IEFkZGVk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRl
bnRWaWV3KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbyk6Cisg
ICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmlzVGFiQWxsb3dlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgdHlwZSk6CisgICAgICAg
IChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93UmVwcmVzZW50ZWRPYmpl
Y3QpOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBl
LmNhblNob3dSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5jbG9zZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxl
Y3Rpb25EaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dy
YXBoaWNzVGFiQ29udGVudFZpZXcuY3NzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzLgorICAgICAg
ICBSZW5hbWUgdGhlIENhbnZhcyBUYWIgdG8gR3JhcGhpY3MgVGFiIGFuZCBkaXNwbGF5IGZvdXIg
c2VjdGlvbnM6CisgICAgICAgICAtIENhbnZhc2VzCisgICAgICAgICAtIFdlYiBBbmltYXRpb25z
CisgICAgICAgICAtIENTUyBBbmltYXRpb25zCisgICAgICAgICAtIENTUyBUcmFuc2l0aW9ucwor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanM6Cisg
ICAgICAgIChXSS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmNhblNob3dSZXByZXNlbnRl
ZE9iamVjdCk6CisgICAgICAgIE9ubHkgYXBwZWFyIGlmIGEgYFdJLkNhbnZhc2Agb3IgYFdJLlJl
Y29yZGluZ2AgaXMgc2VsZWN0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dy
YXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGlj
c092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5nZXQgc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzKToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmln
YXRpb25JdGVtcyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZl
bnQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5k
cm9wWm9uZUhhbmRsZURyb3ApOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0dyaWRCdXR0
b25DbGlja2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90
b3R5cGUuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCk6CisgICAgICAgIChXSS5H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVJbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbUNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZCk6
CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5k
bGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOgor
ICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxl
Q2xpY2spOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92
ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9u
Om5vdCg6Zmlyc3QtY2hpbGQpKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3Zl
cnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBo
aWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRlcik6Cisg
ICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFk
ZXIgPiBoMSk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2Vj
dGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5ncmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAg
ICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAuY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hl
bWU6IGxpZ2h0KSAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5o
ZWFkZXIpOgorICAgICAgICBBZGQgc3RpY2t5IGhlYWRlcnMgZm9yIGVhY2ggb2YgdGhlIHNlY3Rp
b25zIGRlc2NyaWJlZCBhYm92ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuY29udGVu
dFZpZXdBZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91
c2VFbnRlcik6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJv
dG90eXBlLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczogQWRkZWQuCisg
ICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29u
dGVudFZpZXcuZ2V0IHByZXZpZXdIZWlnaHQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAg
KFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNpemVEaWRDaGFuZ2UpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hTdWJ0aXRsZSk6CisgICAgICAg
IChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQcmV2aWV3LmFkZFRp
dGxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVz
aFByZXZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9o
YW5kbGVFZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5faGFuZGxlVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1l
bnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcu
Y3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uKToKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gaGVhZGVyID4gLnRpdGxlcyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5
KTo6YmVmb3JlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4g
Lm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uOmhvdmVy
ID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyA+IHN2Zyk6CisgICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcgPiBzdmcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHN2ZyByZWN0KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSk6CisgICAgICAgICguY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRoKToKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGNpcmNs
ZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4g
LmFjdGl2ZSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZp
ZXcgPiBzcGFuKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmsp
IC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6Cisg
ICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAoQG1l
ZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiAucHJldmlldyk6CisgICAgICAgIFZpc3VhbGl6ZSB0aGUgc3RhcnQvZW5kIGRlbGF5IGFuZCBr
ZXlmcmFtZXMgb2YgdGhlIGdpdmVuIGFuaW1hdGlvbiBhcyBhIHNlcmllcyBvZiBiZXppZXIKKyAg
ICAgICAgY3VydmVzIHNlcGFyYXRlZCBieSBtYXJrZXJzLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6CisgICAgICAgIChXSS5B
bmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNldCBhbmlt
YXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5
cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGVi
YXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24pOgorICAgICAgICAoV0ku
QW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hFZmZlY3RTZWN0
aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBl
Ll9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxl
QW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNo
YW5nZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbC5jc3M6IEFkZGVkLgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWls
cy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZy
YW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRl
dGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1r
ZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbik6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5k
ZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24t
a2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMpOgorICAgICAgICAoLnNpZGVi
YXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rp
b24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIC5Db2Rl
TWlycm9yKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4g
LmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMt
c2VjdGlvbik6CisgICAgICAgIFNob3cgY29sbGVjdGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBz
ZWxlY3RlZCBhbmltYXRpb24sIGl0cyBlZmZlY3QsIGFuZCBpdHMgdGFyZ2V0LgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAgICAgICAo
V0kuQ2FudmFzTWFuYWdlcik6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5n
ZXQgY2FudmFzQ29sbGVjdGlvbik6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5w
cm90b3R5cGUuZGlzYWJsZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5j
YW52YXNBZGRlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5jYW52YXNS
ZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9zYXZlUmVjb3Jk
aW5ncyk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX21haW5S
ZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5n
ZXQgY2FudmFzZXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5
cGUuX3JlbW92ZUNhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgIFJhdGhlciB0aGFuIGhhdmUgdGhl
IGBXSS5DYW52YXNUYWJDb250ZW50Vmlld2AgbWFpbmFpbiB0aGUgYFdJLkNhbnZhc0NvbGxlY3Rp
b25gIGFuZCBoYXZlIHRvCisgICAgICAgIGxpc3RlbiBmb3IgZXZlbnRzIGZyb20gdGhlIGBXSS5D
YW52YXNNYW5hZ2VyYCwganVzdCBoYXZlIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAgaG9sZCBvbiB0
bworICAgICAgICBpdCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEgZ2V0dGVyIGZvciBpdC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qczoK
KyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6Cisg
ICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZy
ZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChX
SS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAg
IChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWRkU2F2ZWRSZWNvcmRp
bmcpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaGlk
ZGVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmdldCBfaXRlbU1hcmdpbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXdzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVOYXZp
Z2F0aW9uSXRlbXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hvd0ltYWdl
R3JpZCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFy
aykgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOiBEZWxldGVkLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNh
bnZhc0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFz
Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KTog
QWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVI
YW5kbGVEcm9wKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5
cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5
cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLl9w
b3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgIChXSS5DYW52
YXNDb250ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRo
ZSAiTG9nIENhbnZhcyBDb250ZXh0IiB0byBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgY2FudmFz
IGVsZW1lbnQgYnV0dG9uIGNvbnRleHQgbWVudS4KKyAgICAgICAgRHJpdmUtYnk6IGFkZCBhIGBX
SS5Ecm9wWm9uZVZpZXdgIGZvciB3aGVuIHJlY29yZGluZyBKU09OIGZpbGVzIGFyZSBkcmFnZ2Vk
IG9uIHRvcC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZp
ZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBhbGwgc2Vs
ZWN0b3JzIHNpbmNlIHRoZSBDYW52YXMgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25D
b250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVkLgorICAgICAgICAo
V0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0ZWRJdGVtKTogQWRk
ZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmFkZENvbnRl
bnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLnJlbW92ZUNvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLnNob3dDb250ZW50UGxhY2Vob2xkZXIpOgorICAgICAgICAoV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAg
KFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEl0ZW0pOgorICAgICAg
ICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2spOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0U2VsZWN0
ZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rp
b25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAu
cGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4KKyAgICAgICAgKC5j
b250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogRGVsZXRlZC4KKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVy
KTogRGVsZXRlZC4KKyAgICAgICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgY2xpY2tpbmcg
b3V0c2lkZSBvZiBhbnkgb2YgdGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRpc21pc3MgdGhlCisg
ICAgICAgIGN1cnJlbnQgc2VsZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNvIGJlIGFibGUgdG8g
Z2V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAgIChXSS5EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdy5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgRW5zdXJlIHRo
YXQgYDBgIGlzIGNvbnNpZGVyZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKyAgICAgICAgKFdJ
LmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAoV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJlcHJl
c2VudGVkT2JqZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3
LmpzOgorICAgICAgICAoV0kuQ29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJlc2VudGVkT2JqZWN0
KToKKyAgICAgICAgKFdJLkNvbnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICBBbGxvdyBg
V0kuQW5pbWF0aW9uYCB0byBiZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvTWFpbi5jc3M6CisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBBZGRlZC4K
KyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhcik6IEFkZGVk
LgorICAgICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0pOiBBZGRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVt
LWhlbHApOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9u
LWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2Ut
dGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6
IERlbGV0ZWQuCisgICAgICAgIEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9uSXRlbUhlbHBgIHRv
IGJlIHVzZWQgaW5kZXBlbmRlbnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3YC4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qczoKKyAgICAg
ICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXSS5UaW1l
bGluZU1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRlZCk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qczoKKyAgICAgICAg
KFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgorICAgICAgICBBZGQg
YSBmYWxsYmFjayBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZyk6IEFk
ZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291
cmNlLmltYWdlIGltZzpob3Zlcik6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogbW92ZSB0aGVz
ZSBzdHlsZXMgdG8gdGhlIHJpZ2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3JlIHNwZWNpZmljLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAgICAoV0ku
Q2FudmFzLmRpc3BsYXlOYW1lRm9yQ29udGV4dFR5cGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5kaXNwbGF5TmFt
ZUZvclJlY29yZGluZ1R5cGUpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBsb2NhbGl6
ZWQgc3RyaW5ncy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29u
dGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBh
bGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9y
ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAgICAgICAqIExvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVGVzdC5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0Lmpz
OgorICAgICAgICAoV0kubG9hZGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0SGFybmVzcy5qczoKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5leHBlY3RFbXB0
eSk6IEFkZGVkLgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdE5vdEVtcHR5
KTogQWRkZWQuCisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGF0aW9uTWVz
c2FnZUZvcm1hdCk6CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGVkVmFs
dWVGb3JtYXQpOgorICAgICAgICBBZGQgdXRpbGl0eSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgd2hl
dGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgZW1wdHk6CisgICAgICAgICAtIEFycmF5IGBsZW5ndGgg
PT09IDBgCisgICAgICAgICAtIFN0cmluZyBgbGVuZ3RoID09PSAwYAorICAgICAgICAgLSBTZXQg
YHNpemUgPT09IDBgCisgICAgICAgICAtIE1hcCBgc2l6ZSA9PT0gMGAKKyAgICAgICAgIC0gT2Jq
ZWN0IGBpc0VtcHR5T2JqZWN0YAorICAgICAgICBBbnkgb3RoZXIgdHlwZSB3aWxsIGF1dG9tYXRp
Y2FsbHkgZmFpbCwgYXMgbm9uLW9iamVjdHMgY2FuJ3QgYmUgImVtcHR5IiAoZS5nLiBgNDJgKS4K
KwogMjAxOS0xMi0xOSAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbmFibGUgcDMgY29sb3IgcGlja2VyIGJ5IGRlZmF1bHQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5p
bWF0aW9uLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0Fu
aW1hdGlvbi5qc29uCmluZGV4IGJlYWY4ZGUyOGFjNzUzZTM3ZWYyYmU4OWMwMWZjYjBiZDUzZGFm
YmIuLjI0MjRmMzk1NTcyNTFjOTBlOWMwZGNhZjA1MjdiYmNhM2U0ODljMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24u
anNvbgpAQCAtMTQsNiArMTQsNTEgQEAKICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAg
ICAgICAgICAgICAiZW51bSI6IFsicmVhZHkiLCAiZGVsYXllZCIsICJhY3RpdmUiLCAiY2FuY2Vs
ZWQiLCAiZG9uZSJdCiAgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJQ
bGF5YmFja0RpcmVjdGlvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAg
ICAgICAgImVudW0iOiBbIm5vcm1hbCIsICJyZXZlcnNlIiwgImFsdGVybmF0ZSIsICJhbHRlcm5h
dGUtcmV2ZXJzZSJdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJG
aWxsTW9kZSIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImVu
dW0iOiBbIm5vbmUiLCAiZm9yd2FyZHMiLCAiYmFja3dhcmRzIiwgImJvdGgiLCAiYXV0byJdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJBbmltYXRpb24iLAorICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRp
b25JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNzc0FuaW1hdGlvbk5hbWUiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXF1YWwg
dG8gdGhlIGNvcnJlc3BvbmRpbmcgYGFuaW1hdGlvbi1uYW1lYCBDU1MgcHJvcGVydHkuIFNob3Vs
ZCBub3QgYmUgcHJvdmlkZWQgaWYgYHRyYW5zaXRpb25Qcm9wZXJ0eWAgaXMgYWxzbyBwcm92aWRl
ZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjc3NUcmFuc2l0aW9uUHJvcGVydHki
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXF1
YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYHRyYW5zaXRpb24tcHJvcGVydHlgIENTUyBwcm9wZXJ0
eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBpZiBgYW5pbWF0aW9uTmFtZWAgaXMgYWxzbyBwcm92
aWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6ICJF
ZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJi
YWNrdHJhY2UiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ29uc29sZS5D
YWxsRnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJCYWNrdHJhY2Ug
dGhhdCB3YXMgY2FwdHVyZWQgd2hlbiB0aGlzIGBXZWJBbmltYXRpb25gIHdhcyBjcmVhdGVkLiIg
fQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQi
OiAiRWZmZWN0IiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAi
cHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0RGVsYXkiLCAi
dHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJlbmREZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvbnMiLCAidHlwZSI6ICJudW1iZXIi
LCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRp
b25TdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvbkR1cmF0aW9uIiwgInR5cGUiOiAibnVtYmVyIiwg
Im9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltaW5nRnVu
Y3Rpb24iLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwbGF5YmFja0RpcmVjdGlvbiIsICIkcmVmIjogIlBsYXliYWNrRGly
ZWN0aW9uIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZmlsbE1vZGUiLCAiJHJlZiI6ICJGaWxsTW9kZSIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImtleWZyYW1lcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJLZXlmcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJLZXlmcmFtZSIs
CisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJudW1iZXIi
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlYXNpbmciLCAidHlwZSI6ICJzdHJpbmci
LCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZSIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiVHJhY2tpbmdVcGRhdGUiLAog
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKQEAgLTI3LDYgKzcyLDM1IEBACiAgICAgICAg
IH0KICAgICBdLAogICAgICJjb21tYW5kcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAiZW5hYmxlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIENhbnZh
cyBkb21haW4gZXZlbnRzLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAiZGlzYWJsZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgQ2Fu
dmFzIGRvbWFpbiBldmVudHMuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJyZXF1ZXN0Tm9kZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiR2V0cyB0
aGUgYERPTS5Ob2RlSWRgIGZvciB0aGUgdGFyZ2V0IG9mIHRoZSBlZmZlY3Qgb2YgdGhlIGFuaW1h
dGlvbiB3aXRoIHRoZSBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYi
OiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6
IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2Rl
SWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAicmVzb2x2ZUFuaW1hdGlvbiIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
UmVzb2x2ZXMgSmF2YVNjcmlwdCBgV2ViQW5pbWF0aW9uYCBvYmplY3QgZm9yIGdpdmVuIGBBbmlt
YXRpb25JZGAuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUgdGhhdCBj
YW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9CisgICAgICAgICAgICBd
LAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJv
YmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIgfQorICAgICAgICAgICAgXQor
ICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJzdGFydFRyYWNraW5n
IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdGFydCB0cmFja2luZyBhbmltYXRpb25z
LiBUaGlzIHdpbGwgcHJvZHVjZSBhIGB0cmFja2luZ1N0YXJ0YCBldmVudC4iCkBAIC0zNyw2ICsx
MTEsMzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uQ3JlYXRlZCIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciBhIGBXZWJBbmltYXRpb25gIGlzIGNyZWF0
ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiYW5pbWF0aW9uIiwgIiRyZWYiOiAiQW5pbWF0aW9uIiB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVmZmVjdENoYW5nZWQi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGVm
ZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55IHdheS4iLAorICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25J
ZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIlRoaXMgaXMgb21pdHRlZCB3aGVuIHRoZSBlZmZlY3QgaXMgcmVtb3ZlZCB3aXRob3V0IGEg
cmVwbGFjZW1lbnQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInRhcmdldENoYW5nZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIHRhcmdldCBvZiBhbnkgZWZmZWN0IG9mIGFu
eSBhbmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIsCisgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYi
OiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uRGVzdHJveWVkIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1hdGlvbmAgaXMgZGVz
dHJveWVkLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAg
ICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAidHJhY2tp
bmdTdGFydCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCBhZnRlciBg
c3RhcnRUcmFja2luZ2AgY29tbWFuZC4iLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5p
bWF0aW9uLmNwcAppbmRleCA3YzcyZjYyNGMzMzBhZjk2YmE3MGI3YWU0ZTkyYjUwMWNhMTAxMDdl
Li5mZDNlYjlkYmRlOWJjMWFiMGI5N2YwYTA3MWUwMGU4MGZiODEzMTJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5j
bHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzksNiArNDAsOSBAQCBSZWY8Q1NTQW5p
bWF0aW9uPiBDU1NBbmltYXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25pbmdFbGVtZW50LCBjb25z
dCBBbmltYXRpb24mCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENTU0FuaW1h
dGlvbihvd25pbmdFbGVtZW50LCBiYWNraW5nQW5pbWF0aW9uLCBuZXdTdHlsZSkpOwogICAgIHJl
c3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOworCisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0
aW9uLmNwcAppbmRleCBkZmY1ZmIxZjc5YTg5YzU2NjBhNDljMWIzNjQzZGQwN2Q4MjQzMjcxLi5h
YWFlNWUyZDBjNjE3MjBjZDEwOGRkNmRjZTU5NTE5Y2EwYWMzZTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNs
dWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC00MCw2ICs0MSw5IEBAIFJlZjxDU1NU
cmFuc2l0aW9uPiBDU1NUcmFuc2l0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3duaW5nRWxlbWVudCwg
Q1NTUHJvcGVydHlJRCBwCiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENTU1RyYW5z
aXRpb24ob3duaW5nRWxlbWVudCwgcHJvcGVydHksIGdlbmVyYXRpb25UaW1lLCBiYWNraW5nQW5p
bWF0aW9uLCBuZXdTdHlsZSwgcmV2ZXJzaW5nQWRqdXN0ZWRTdGFydFN0eWxlLCByZXZlcnNpbmdT
aG9ydGVuaW5nRmFjdG9yKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxlLCBuZXdT
dHlsZSk7CiAgICAgcmVzdWx0LT5zZXRUaW1pbmdQcm9wZXJ0aWVzKGRlbGF5LCBkdXJhdGlvbik7
CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihy
ZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggZjk5NDMwN2Q2NjBhOTZhMDlmYjA3
NDJjZmVmYzNjMjgxZTQxMmIwMS4uYzE0MWM2MTYxNzY5YmEyOWYyODA0MTEwYzY0MDNkYzE3Y2Mz
MDBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBA
IC0xMTA1LDcgKzExMDUsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjppbnZhbGlkYXRlKCkKIAog
dm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKCkKIHsKLSAg
ICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gaGFzQmxlbmRpbmdLZXlmcmFtZXMoKTsKKyAgICBt
X3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gbV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7CiAgICAg
Zm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMo
KSkgewogICAgICAgICBpZiAoIUNTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25PZlByb3Bl
cnR5SXNBY2NlbGVyYXRlZChjc3NQcm9wZXJ0eUlkKSkgewogICAgICAgICAgICAgbV9zaG91bGRS
dW5BY2NlbGVyYXRlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuaAppbmRleCAwNDkzMzdkZGEwMDU4OGIyNmVlN2QyYjk5ZGUwNjc4NDQ2NjFlZWM1Li5k
ODllMTM1MmNjODI1ZTNjOTEyMjAyNjhlNWY2ZDU1NTQ5ZTI3NzQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0byBjb21wb3NpdGUgeyBDb21wb3NpdGVPcGVy
YXRpb25PckF1dG86OkF1dG8gfTsKICAgICB9OwogCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZEtl
eWZyYW1lPiYgcGFyc2VkS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZWRLZXlmcmFt
ZXM7IH0KKwogICAgIEVsZW1lbnQqIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0Lmdl
dCgpOyB9CiAgICAgdm9pZCBzZXRUYXJnZXQoUmVmUHRyPEVsZW1lbnQ+JiYpOwogCkBAIC0xMzQs
NyArMTM2LDcgQEAgcHVibGljOgogICAgIGJvb2wgY29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0
Y2goKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01h
dGNoOyB9CiAKICAgICB2b2lkIGNvbXB1dGVEZWNsYXJhdGl2ZUFuaW1hdGlvbkJsZW5kaW5nS2V5
ZnJhbWVzKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5l
d1N0eWxlKTsKLSAgICBib29sIGhhc0JsZW5kaW5nS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4g
bV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7IH0KKyAgICBjb25zdCBLZXlmcmFtZUxpc3QmIGJs
ZW5kaW5nS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lczsgfQog
ICAgIGNvbnN0IEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4mIGFuaW1hdGVkUHJvcGVydGllcygpIGNv
bnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpOyB9CiAKICAgICBi
b29sIGNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFuaW1hdGlvbihMYXlvdXRSZWN0JikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDUxNWQzNjkw
N2Y5MTAzNTgxMDMwNjA3MDZkODg2NWFkOWNlOWM2YTcuLjNlYTM4NjRiNjllODJkNDVmN2I3YjBl
ZGRhMmIyOTI1MjdiNDU1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uY3BwCkBAIC00NCw2ICs0NCw4IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIldlYkFuaW1hdGlvblV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNTEsMTEgKzUzLDMwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYkFuaW1hdGlvbik7CiAKK0hhc2hTZXQ8V2Vi
QW5pbWF0aW9uKj4mIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFdlYkFuaW1hdGlvbio+PiBpbnN0
YW5jZXM7CisgICAgcmV0dXJuIGluc3RhbmNlczsKK30KKworTG9jayYgV2ViQW5pbWF0aW9uOjpp
bnN0YW5jZXNNdXRleCgpCit7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxMb2NrPiBt
dXRleDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU11dGV4OworICAgIHN0
ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVNdXRleCwgW10geworICAgICAgICBtdXRleC5jb25zdHJ1
Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gbXV0ZXguZ2V0KCk7Cit9CisKIFJlZjxXZWJBbmlt
YXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgQW5pbWF0aW9u
RWZmZWN0KiBlZmZlY3QpCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdlYkFu
aW1hdGlvbihkb2N1bWVudCkpOwogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAgICAg
cmVzdWx0LT5zZXRUaW1lbGluZSgmZG9jdW1lbnQudGltZWxpbmUoKSk7CisKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOwor
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNjUsNiArODYsOSBAQCBSZWY8V2ViQW5pbWF0
aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVm
ZmVjdCogZWZmZQogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAgICAgaWYgKHRpbWVs
aW5lKQogICAgICAgICByZXN1bHQtPnNldFRpbWVsaW5lKHRpbWVsaW5lKTsKKworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7
CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC03NSw2ICs5OSw5IEBAIFdlYkFuaW1hdGlv
bjo6V2ViQW5pbWF0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBtX3JlYWR5UHJvbWlz
ZS0+cmVzb2x2ZSgqdGhpcyk7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CisKKyAgICBMb2NrSG9s
ZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgaW5zdGFuY2VzKGxvY2spLmFkZCh0aGlz
KTsKIH0KIAogV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKQEAgLTgzLDYgKzExMCwxMCBA
QCBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24oKQogCiAgICAgaWYgKG1fdGltZWxpbmUpCiAg
ICAgICAgIG1fdGltZWxpbmUtPmZvcmdldEFuaW1hdGlvbih0aGlzKTsKKworICAgIExvY2tIb2xk
ZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICBBU1NFUlQoaW5zdGFuY2VzKGxvY2spLmNv
bnRhaW5zKHRoaXMpKTsKKyAgICBpbnN0YW5jZXMobG9jaykucmVtb3ZlKHRoaXMpOwogfQogCiB2
b2lkIFdlYkFuaW1hdGlvbjo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0xMTQsNiArMTQ1LDggQEAg
dm9pZCBXZWJBbmltYXRpb246OnVuc3VzcGVuZEVmZmVjdEludmFsaWRhdGlvbigpCiB2b2lkIFdl
YkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlkQ2hhbmdlKCkKIHsKICAgICB0aW1pbmdEaWRDaGFu
Z2UoRGlkU2Vlazo6Tm8sIFN5bmNocm9ub3VzbHlOb3RpZnk6Olllcyk7CisKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZygqdGhp
cyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRFZmZlY3QoUmVmUHRyPEFuaW1hdGlvbkVm
ZmVjdD4mJiBuZXdFZmZlY3QpCkBAIC0xODgsNyArMjIxLDcgQEAgdm9pZCBXZWJBbmltYXRpb246
OnNldEVmZmVjdEludGVybmFsKFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0LCBi
b29sIGQKICAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50
KCp0aGlzLCAqbmV3VGFyZ2V0KTsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdCgqdGhpcyk7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoKnRoaXMpOwogfQogCiB2b2lk
IFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmUoUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5lPiYmIHRp
bWVsaW5lKQpAQCAtMjQ3LDE0ICsyODAsMTUgQEAgdm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVs
aW5lSW50ZXJuYWwoUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5lPiYmIHRpbWVsaW5lKQogCiB2b2lk
IFdlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKEVsZW1lbnQqIHByZXZpb3VzVGFy
Z2V0LCBFbGVtZW50KiBuZXdUYXJnZXQpCiB7Ci0gICAgaWYgKCFtX3RpbWVsaW5lKQotICAgICAg
ICByZXR1cm47CisgICAgaWYgKG1fdGltZWxpbmUpIHsKKyAgICAgICAgaWYgKHByZXZpb3VzVGFy
Z2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVtb3ZlZEZyb21FbGVt
ZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOwogCi0gICAgaWYgKHByZXZpb3VzVGFyZ2V0KQot
ICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMs
ICpwcmV2aW91c1RhcmdldCk7CisgICAgICAgIGlmIChuZXdUYXJnZXQpCisgICAgICAgICAgICBt
X3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7
CisgICAgfQogCi0gICAgaWYgKG5ld1RhcmdldCkKLSAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0
aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOworICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KCp0aGlzKTsK
IH0KIAogT3B0aW9uYWw8ZG91YmxlPiBXZWJBbmltYXRpb246OnN0YXJ0VGltZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggZGE0ZDhlYzNiYzJlNTcw
YjQ4YTUxZGJjMTRhMzQ0ZTZjNDliYTA3MC4uYzk5NjEzYjI2NjFkNzY1ZjBlZTNiODZkNjE0Zjlj
ZDJiN2RjMjNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSURMVHlw
ZXMuaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KQEAgLTU0LDYgKzU1LDkgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8V2ViQW5pbWF0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBBbmlt
YXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1lbGluZSopOwogICAgIH5XZWJBbmltYXRpb24oKTsK
IAorICAgIHN0YXRpYyBIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBpbnN0YW5jZXMoY29uc3QgTG9j
a0hvbGRlciYpOworICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNNdXRleCgpOworCiAgICAgdmly
dHVhbCBib29sIGlzRGVjbGFyYXRpdmVBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU0FuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzQ1NTVHJhbnNpdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCmluZGV4IDRmMThiNThjNmNkMDFlMGI2OWE4OTUzYWQwOWE3MzljMzUy
MDQ5NmEuLmQxMzA5ODkxZGM2YjIzYjJiMjdlNWMyNWMwZTk2NDQ1MmE3Mzk4ZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCkBAIC03MjMsNiArNzIzLDkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENvbW1pdExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnQKICAgICBpZiAo
SW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JDYW52YXNBZ2VudCgpKQogICAgICAgICBjYW52YXNBZ2VudC0+ZnJhbWVOYXZpZ2F0
ZWQoZnJhbWUpOwogCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0
aW9uQWdlbnQtPmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKKwogICAgIGlmIChJbnNwZWN0b3JET01B
Z2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCkp
CiAgICAgICAgIGRvbUFnZW50LT5kaWRDb21taXRMb2FkKGZyYW1lLmRvY3VtZW50KCkpOwogCkBA
IC0xMTMzLDE1ICsxMTM2LDM3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
QXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYKICAgICAgICAgYW5p
bWF0aW9uQWdlbnQtPndpbGxBcHBseUtleWZyYW1lRWZmZWN0KHRhcmdldCwgZWZmZWN0LCBjb21w
dXRlZFRpbWluZyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRp
bmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7Ci0gICAg
aWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCi0gICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBpZiAoYXV0byogYW5pbWF0aW9u
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KGFu
aW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5p
bWF0aW9uQWdlbnQtPmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworfQorCit2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
VGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJB
bmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAg
ICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFu
aW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChhdXRvKiBh
bmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1h
dGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUYXJnZXQoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1
dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENyZWF0ZVdlYkFu
aW1hdGlvbihhbmltYXRpb24pOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewotICAgIGlmIChhdXRvKiBh
bmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCgpKQorICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1h
dGlvbkFnZW50LT53aWxsRGVzdHJveVdlYkFuaW1hdGlvbihhbmltYXRpb24pOworICAgIGVsc2Ug
aWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsRGVz
dHJveVdlYkFuaW1hdGlvbihhbmltYXRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZGJmODIyMDVkYjVi
Y2NiZTE2OWVkMGU5NDdkMWFkODNkZDg1MGZkNi4uYTI5ODFhZDk4MmRlNjg3M2Q0ZTk2Mzc0NDlj
YjdmMzJmOGMyNWMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMzA1LDcgKzMwNSwxMCBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBL
ZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICBzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZv
aWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2
b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAg
ICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0
aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlv
biYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlv
biYpOwogCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlJik7CkBAIC01
MDUsNyArNTA4LDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxB
cHBseUtleWZyYW1lRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRWxlbWVudCYsIEtl
eWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFu
aW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRhcmdldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAg
IHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIFdlYkFuaW1hdGlvbiYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0
aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0
aWMgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKQEAg
LTE0NjYsMTEgKzE0NzIsMzIgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0YXJnZXQsIEsKICAgICAgICAgd2ls
bEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0YXJnZXQsIGVm
ZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5p
bWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwo
Kmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7CisgICAgICAgIGRpZFNldFdlYkFuaW1h
dGlvbkVmZmVjdEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpCisgICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWlu
Z0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFy
Z2V0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZS
T05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkpCisgICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoKmlu
c3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAg
IGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNv
bnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgIGRpZENy
ZWF0ZVdlYkFuaW1hdGlvbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7CiB9
CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJB
bmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKaW5kZXggMWY5YTBkN2M1MzJhM2Y5MDg1
NmMxODRhMWZmYzNiMWNmMzVlZmM4Ny4uZDdhMmY3MTk1OGQ5NDNjY2NhYzQzNGVhYzkzZTMzZGFl
MjdjYzQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5n
QWdlbnRzLmNwcApAQCAtNzAsNiArNzAsNyBAQCB2b2lkIEluc3RydW1lbnRpbmdBZ2VudHM6OnJl
c2V0KCkKICAgICBtX3BhZ2VET01EZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3Bl
Y3RvckNhbnZhc0FnZW50ID0gbnVsbHB0cjsKICAgICBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCA9IG51bGxwdHI7CisgICAgbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQgPSBudWxscHRyOwogICAgIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51
bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oCmluZGV4IGY2ZmVhN2RhMjEzNjBkZDA4Y2MzZDk2NmIxNGUyYWFjNDY1NDQ5MTUuLmY1
OWMzZGJkY2FmNzhjZjljNmQ4ZGJiNDMyZGNjZjIyZjE1ZDUwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApAQCAtMTU2LDYgKzE1Niw5IEBA
IHB1YmxpYzoKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogcGVyc2lzdGVudEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ7IH0KICAgICB2b2lkIHNldFBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV9wZXJzaXN0ZW50SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQogCisgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQqIGVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CisgICAgdm9pZCBzZXRFbmFibGVkSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KKwogICAgIEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KiB0cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRU
cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBh
Z2VudCkgeyBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQogCkBA
IC0xOTAsNiArMTkzLDcgQEAgcHJpdmF0ZToKICAgICBQYWdlRE9NRGVidWdnZXJBZ2VudCogbV9w
YWdlRE9NRGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JDYW52YXNBZ2Vu
dCogbV9pbnNwZWN0b3JDYW52YXNBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCogbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRy
IH07CisgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fZW5hYmxlZEluc3BlY3RvckFuaW1h
dGlvbkFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3Ry
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQuY3BwCmluZGV4IGRlOWEyYzU5YmRhYmMyOTA4OTZjOTYzOWNlYWJiNGUyYzQ3M2I4
MjkuLjc1NmQyMTA5NGIwNDFlYmFhMDE1YjcxZjRhYWU1MTM4NjRiMjMxZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQuY3BwCkBAIC0yOSwxOSArMjksMzMgQEAKICNpbmNsdWRlICJBbmltYXRpb25FZmZl
Y3QuaCIKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3RQaGFzZS5oIgogI2luY2x1ZGUgIkNTU0Fu
aW1hdGlvbi5oIgorI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgorI2lu
Y2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NUcmFuc2l0aW9uLmgiCisj
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIgog
I2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkZpbGxN
b2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5o
IgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJKU1dlYkFuaW1h
dGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiS2V5ZnJhbWVM
aXN0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXliYWNrRGlyZWN0aW9uLmgi
CisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRpbWluZ0Z1bmN0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRl
bnRpZmllcnNGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRW52
aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0
b3J5Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Miw2ICs2Niw5IEBAIEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudChQYWdlQWdlbnRDb250
ZXh0JiBjb250ZXh0KQogICAgIDogSW5zcGVjdG9yQWdlbnRCYXNlKCJBbmltYXRpb24iX3MsIGNv
bnRleHQpCiAgICAgLCBtX2Zyb250ZW5kRGlzcGF0Y2hlcihtYWtlVW5pcXVlPEluc3BlY3Rvcjo6
QW5pbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVyPihjb250ZXh0LmZyb250ZW5kUm91dGVyKSkKICAg
ICAsIG1fYmFja2VuZERpc3BhdGNoZXIoSW5zcGVjdG9yOjpBbmltYXRpb25CYWNrZW5kRGlzcGF0
Y2hlcjo6Y3JlYXRlKGNvbnRleHQuYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpKQorICAgICwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIoY29udGV4dC5pbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAg
LCBtX2luc3BlY3RlZFBhZ2UoY29udGV4dC5pbnNwZWN0ZWRQYWdlKQorICAgICwgbV9hbmltYXRp
b25EZXN0cm95ZWRUaW1lcigqdGhpcywgJkluc3BlY3RvckFuaW1hdGlvbkFnZW50OjphbmltYXRp
b25EZXN0cm95ZWRUaW1lckZpcmVkKQogewogfQogCkBAIC02NywxMSArODQsMTAzIEBAIHZvaWQg
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERp
c2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKICAgICBzdG9wVHJh
Y2tpbmcoaWdub3JlZCk7CisgICAgZGlzYWJsZShpZ25vcmVkKTsKIAogICAgIEFTU0VSVChtX2lu
c3RydW1lbnRpbmdBZ2VudHMucGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0g
dGhpcyk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldFBlcnNpc3RlbnRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudChudWxscHRyKTsKIH0KIAordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKK3sKKyAgICBpZiAobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpID09IHRoaXMpIHsK
KyAgICAgICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGRvbWFpbiBhbHJlYWR5IGVuYWJsZWQi
X3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMu
c2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KHRoaXMpOworCisgICAgY29uc3QgYXV0
byBleGlzdHNJbkN1cnJlbnRQYWdlID0gWyZdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGlmICghaXM8RG9jdW1lbnQ+KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8v
IEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY4NDc1PiBXZWIgSW5zcGVjdG9yOiBDb3Jy
ZWN0bHkgZGlzcGxheSBpZnJhbWUncyBXZWJTb2NrZXRzCisgICAgICAgIGF1dG8qIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgICAgICBy
ZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKSA9PSAmbV9pbnNwZWN0ZWRQYWdlOworICAgIH07CisKKyAg
ICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhXZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4
KCkpOworICAgICAgICBmb3IgKGF1dG8qIGFuaW1hdGlvbiA6IFdlYkFuaW1hdGlvbjo6aW5zdGFu
Y2VzKGxvY2spKSB7CisgICAgICAgICAgICBpZiAoZXhpc3RzSW5DdXJyZW50UGFnZShhbmltYXRp
b24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAgYmluZEFuaW1h
dGlvbigqYW5pbWF0aW9uLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQoreworICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0
cik7CisKKyAgICByZXNldCgpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpy
ZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uSWQsIGludCogbm9kZUlkKQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9IGFzc2VydEFuaW1h
dGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkb21BZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JET01BZ2VudCgpOworICAgIGlmICghZG9tQWdlbnQpIHsKKyAgICAgICAgZXJy
b3JTdHJpbmcgPSAiRE9NIGRvbWFpbiBtdXN0IGJlIGVuYWJsZWQiX3M7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOworICAg
IGlmICghaXM8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcg
PSAiQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCBkb2VzIG5vdCBoYXZlIGFuIGVmZmVj
dCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGtleWZyYW1lRWZmZWN0
ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KCplZmZlY3QpOworCisgICAgYXV0byogdGFyZ2V0
ID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAgICAg
ZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCBkb2VzIG5vdCBo
YXZlIGEgdGFyZ2V0Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKm5vZGVJZCA9
IGRvbUFnZW50LT5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCB0YXJnZXQpOwor
fQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZlQW5pbWF0aW9uKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgY29uc3QgU3Ry
aW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJl
bW90ZU9iamVjdD4mIHJlc3VsdCkKK3sKKyAgICBhdXRvKiBhbmltYXRpb24gPSBhc3NlcnRBbmlt
YXRpb24oZXJyb3JTdHJpbmcsIGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byogc3RhdGUgPSBhbmltYXRpb24tPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+ZXhlY1N0YXRlKCk7CisgICAgYXV0byBpbmplY3RlZFNjcmlwdCA9IG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluamVjdGVkU2NyaXB0Rm9yKHN0YXRlKTsKKyAgICBBU1NF
UlQoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSk7CisKKyAgICBKU0M6OkpTVmFsdWUgdmFs
dWU7CisgICAgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHN0YXRlKTsKKworICAg
ICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKHN0YXRlKTsKKyAgICAgICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QsIGFu
aW1hdGlvbik7CisgICAgfQorCisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiSW50ZXJuYWwgZXJyb3I6IHVua25v
d24gQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCJfczsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIFN0cmluZyBvYmplY3RHcm91cE5hbWUgPSBvYmplY3RHcm91cCA/ICpvYmpl
Y3RHcm91cCA6IFN0cmluZygpOworICAgIHJlc3VsdCA9IGluamVjdGVkU2NyaXB0LndyYXBPYmpl
Y3QodmFsdWUsIG9iamVjdEdyb3VwTmFtZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OnN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogewogICAgIGlm
IChtX2luc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
ID09IHRoaXMpIHsKQEAgLTE3MCwxNiArMjc5LDI4MCBAQCB2b2lkIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0YXJnZXQsIEtleWZyYW1l
RQogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1VwZGF0ZShtX2Vudmlyb25tZW50
LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMoKSwgV1RGTW92ZShl
dmVudCkpOwogfQogCi12b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit2b2lkIEluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24pCiB7CiAgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKQog
ICAgICAgICBzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNsYXJh
dGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSk7CisKKyAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25F
ZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKKyAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RU
YXJnZXQoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQor
eworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRpb24gaXMg
dHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBmaW5kQW5p
bWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZWZmZWN0Q2hhbmdlZChh
bmltYXRpb25JZCwgYnVpbGRPYmplY3RGb3JFZmZlY3QoYW5pbWF0aW9uLmVmZmVjdCgpKSk7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1h
dGlvbklkYCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5h
YmxlZC4KKyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7
CisgICAgaWYgKGFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9mcm9udGVuZERpc3BhdGNoZXItPnRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpOworfQorCit2
b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKCFmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9u
KS5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBiaW5kQW5pbWF0aW9uKGFuaW1hdGlvbiwgdHJ1ZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdl
YkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlv
bj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24o
ZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpOworCisgICAgLy8gVGhl
IGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQg
bm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmlt
YXRpb24pOworICAgIGlmICghYW5pbWF0aW9uSWQuaXNFbXB0eSgpKQorICAgICAgICB1bmJpbmRB
bmltYXRpb24oYW5pbWF0aW9uSWQpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjpmcmFtZU5hdmlnYXRlZChGcmFtZSYgZnJhbWUpCit7CisgICAgaWYgKGZyYW1lLmlzTWFpbkZy
YW1lKCkpIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFZlY3RvcjxTdHJpbmc+IGFuaW1hdGlvbklkc1RvUmVtb3ZlOworICAgIGZvciAoYXV0byYgW2Fu
aW1hdGlvbklkLCBhbmltYXRpb25dIDogbV9hbmltYXRpb25JZE1hcCkgeworICAgICAgICBpZiAo
YXV0byogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSB7CisgICAgICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpICYmIGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCku
ZnJhbWUoKSA9PSAmZnJhbWUpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uSWRzVG9SZW1vdmUu
YXBwZW5kKGFuaW1hdGlvbklkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGNvbnN0IGF1
dG8mIGFuaW1hdGlvbklkIDogYW5pbWF0aW9uSWRzVG9SZW1vdmUpCisgICAgICAgIHVuYmluZEFu
aW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisKK3N0YXRpYyBPcHRpb25hbDxkb3VibGU+IHByb3Rv
Y29sVmFsdWVGb3JTZWNvbmRzKGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCit7CisgICAgaWYgKHNl
Y29uZHMgPT0gU2Vjb25kczo6aW5maW5pdHkoKSB8fCBzZWNvbmRzID09IFNlY29uZHM6Om5hbigp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBzZWNvbmRzLm1pbGxp
c2Vjb25kcygpOworfQorCitSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpF
ZmZlY3Q+IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpidWlsZE9iamVjdEZvckVmZmVjdChBbmlt
YXRpb25FZmZlY3QqIGVmZmVjdCkKK3sKKyAgICBpZiAoIWVmZmVjdCkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBhdXRvIGVmZmVjdFBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBbmltYXRpb246OkVmZmVjdDo6Y3JlYXRlKCkKKyAgICAgICAgLnJlbGVhc2UoKTsKKworICAg
IGlmIChhdXRvIHN0YXJ0RGVsYXkgPSBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QtPmRl
bGF5KCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRTdGFydERlbGF5KHN0YXJ0RGVsYXku
dmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byBlbmREZWxheSA9IHByb3RvY29sVmFsdWVGb3JTZWNv
bmRzKGVmZmVjdC0+ZW5kRGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEVuZERl
bGF5KGVuZERlbGF5LnZhbHVlKCkpOworCisgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9u
cyhlZmZlY3QtPml0ZXJhdGlvbnMoKSk7CisgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9u
U3RhcnQoZWZmZWN0LT5pdGVyYXRpb25TdGFydCgpKTsKKworICAgIGlmIChhdXRvIGl0ZXJhdGlv
bkR1cmF0aW9uID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LT5pdGVyYXRpb25EdXJh
dGlvbigpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9uRHVyYXRpb24oaXRl
cmF0aW9uRHVyYXRpb24udmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byogdGltaW5nRnVuY3Rpb24g
PSBlZmZlY3QtPnRpbWluZ0Z1bmN0aW9uKCkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldFRp
bWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOworCisgICAgc3dpdGNoIChl
ZmZlY3QtPmRpcmVjdGlvbigpKSB7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFs
OgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihJbnNwZWN0b3I6
OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWwpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpSZXZlcnNlOgorICAgICAgICBl
ZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihJbnNwZWN0b3I6OlByb3RvY29sOjpB
bmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpSZXZlcnNlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOgorICAgICAgICBlZmZlY3RQYXls
b2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGUpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlOgorICAgICAgICBlZmZlY3RQYXls
b2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgc3dpdGNoIChlZmZlY3QtPmZpbGwoKSkgeworICAgIGNhc2UgRmlsbE1vZGU6
Ok5vbmU6CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6Ok5vbmUpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZpbGxNb2RlOjpGb3J3YXJkczoKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0RmlsbE1v
ZGUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Rm9yd2FyZHMpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZpbGxNb2RlOjpCYWNrd2FyZHM6CisgICAgICAgIGVm
ZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6
RmlsbE1vZGU6OkJhY2t3YXJkcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmlsbE1vZGU6
OkJvdGg6CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkJvdGgpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZpbGxNb2RlOjpBdXRvOgorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9kZShJ
bnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpBdXRvKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKSB7Cisg
ICAgICAgIGF1dG8mIGtleWZyYW1lRWZmZWN0ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KCpl
ZmZlY3QpOworCisgICAgICAgIGF1dG8ga2V5ZnJhbWVzUGF5bG9hZCA9IEpTT046OkFycmF5T2Y8
SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZT46OmNyZWF0ZSgpOworCisg
ICAgICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oa2V5ZnJhbWVFZmZlY3QuYW5pbWF0
aW9uKCkpKSB7CisgICAgICAgICAgICBBU1NFUlQoa2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCkpOwor
ICAgICAgICAgICAgYXV0byogcmVuZGVyZXIgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKS0+cmVu
ZGVyZXIoKTsKKworICAgICAgICAgICAgQ29tcHV0ZWRTdHlsZUV4dHJhY3RvciBjb21wdXRlZFN0
eWxlRXh0cmFjdG9yKGtleWZyYW1lRWZmZWN0LnRhcmdldCgpKTsKKworICAgICAgICAgICAgYXV0
byYgYmxlbmRpbmdLZXlmcmFtZXMgPSBrZXlmcmFtZUVmZmVjdC5ibGVuZGluZ0tleWZyYW1lcygp
OworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibGVuZGluZ0tleWZyYW1lcy5z
aXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWUgPSBi
bGVuZGluZ0tleWZyYW1lc1tpXTsKKworICAgICAgICAgICAgICAgIEFTU0VSVChibGVuZGluZ0tl
eWZyYW1lLnN0eWxlKCkpOworICAgICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gKmJsZW5kaW5n
S2V5ZnJhbWUuc3R5bGUoKTsKKworICAgICAgICAgICAgICAgIGF1dG8ga2V5ZnJhbWVQYXlsb2Fk
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZTo6Y3JlYXRlKCkKKyAg
ICAgICAgICAgICAgICAgICAgLnNldE9mZnNldChibGVuZGluZ0tleWZyYW1lLmtleSgpKQorICAg
ICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8q
IHRpbWluZ0Z1bmN0aW9uID0gYmxlbmRpbmdLZXlmcmFtZS50aW1pbmdGdW5jdGlvbigpKQorICAg
ICAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyh0aW1pbmdGdW5jdGlv
bi0+Y3NzVGV4dCgpKTsKKworICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3R5bGVQYXls
b2FkQnVpbGRlcjsKKyAgICAgICAgICAgICAgICBhdXRvJiBjc3NQcm9wZXJ0eUlkcyA9IGJsZW5k
aW5nS2V5ZnJhbWUucHJvcGVydGllcygpOworICAgICAgICAgICAgICAgIHNpemVfdCBjb3VudCA9
IGNzc1Byb3BlcnR5SWRzLnNpemUoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8gY3NzUHJv
cGVydHlJZCA6IGNzc1Byb3BlcnR5SWRzKSB7CisgICAgICAgICAgICAgICAgICAgIC0tY291bnQ7
CisgICAgICAgICAgICAgICAgICAgIGlmIChjc3NQcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q3Vz
dG9tKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAg
ICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoZ2V0UHJvcGVydHlOYW1lU3RyaW5nKGNz
c1Byb3BlcnR5SWQpKTsKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5h
cHBlbmQoIjogIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHZhbHVlID0gY29tcHV0
ZWRTdHlsZUV4dHJhY3Rvci52YWx1ZUZvclByb3BlcnR5SW5TdHlsZShzdHlsZSwgY3NzUHJvcGVy
dHlJZCwgcmVuZGVyZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVp
bGRlci5hcHBlbmQodmFsdWUtPmNzc1RleHQoKSk7CisgICAgICAgICAgICAgICAgICAgIHN0eWxl
UGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb3Vu
dCA+IDApCisgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVu
ZCgnICcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXN0eWxlUGF5
bG9hZEJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxv
YWQtPnNldFN0eWxlKHN0eWxlUGF5bG9hZEJ1aWxkZXIudG9TdHJpbmcoKSk7CisKKyAgICAgICAg
ICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXlsb2Fk
KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIHBhcnNlZEtleWZyYW1lIDoga2V5ZnJhbWVFZmZlY3QucGFyc2VkS2V5ZnJhbWVz
KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAg
ICAgIC5zZXRPZmZzZXQocGFyc2VkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQpCisgICAgICAgICAg
ICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZy
YW1lLmVhc2luZy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9h
ZC0+c2V0RWFzaW5nKHBhcnNlZEtleWZyYW1lLmVhc2luZyk7CisKKyAgICAgICAgICAgICAgICBp
ZiAoIXBhcnNlZEtleWZyYW1lLnN0eWxlLT5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAg
IGtleWZyYW1lUGF5bG9hZC0+c2V0U3R5bGUocGFyc2VkS2V5ZnJhbWUuc3R5bGUtPmFzVGV4dCgp
KTsKKworICAgICAgICAgICAgICAgIGtleWZyYW1lc1BheWxvYWQtPmFkZEl0ZW0oV1RGTW92ZShr
ZXlmcmFtZVBheWxvYWQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlm
IChrZXlmcmFtZXNQYXlsb2FkLT5sZW5ndGgoKSkKKyAgICAgICAgICAgIGVmZmVjdFBheWxvYWQt
PnNldEtleWZyYW1lcyhXVEZNb3ZlKGtleWZyYW1lc1BheWxvYWQpKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gV1RGTW92ZShlZmZlY3RQYXlsb2FkKTsKK30KKworU3RyaW5nIEluc3BlY3RvckFuaW1h
dGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7Cisg
ICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGV4aXN0aW5nQW5pbWF0aW9uXSA6IG1fYW5pbWF0
aW9uSWRNYXApIHsKKyAgICAgICAgaWYgKGV4aXN0aW5nQW5pbWF0aW9uID09ICZhbmltYXRpb24p
CisgICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uSWQ7CisgICAgfQorICAgIHJldHVybiBudWxs
U3RyaW5nKCk7Cit9CisKK1dlYkFuaW1hdGlvbiogSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFz
c2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uSWQpCit7CisgICAgYXV0byogYW5pbWF0aW9uID0gbV9hbmltYXRpb25JZE1hcC5nZXQo
YW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICBlcnJvclN0cmluZyA9
ICJNaXNzaW5nIGFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQiX3M7CisgICAgcmV0dXJu
IGFuaW1hdGlvbjsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YmluZEFuaW1h
dGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbiwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKQorewor
ICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBtYWtlU3RyaW5nKCJhbmltYXRpb246IiArIElkZW50aWZp
ZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKTsKKyAgICBtX2FuaW1hdGlvbklkTWFwLnNl
dChhbmltYXRpb25JZCwgJmFuaW1hdGlvbik7CisKKyAgICBhdXRvIGFuaW1hdGlvblBheWxvYWQg
PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkFuaW1hdGlvbjo6Y3JlYXRlKCkKKyAg
ICAgICAgLnNldEFuaW1hdGlvbklkKGFuaW1hdGlvbklkKQorICAgICAgICAucmVsZWFzZSgpOwor
CisgICAgaWYgKGlzPENTU0FuaW1hdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5pbWF0aW9u
UGF5bG9hZC0+c2V0Q3NzQW5pbWF0aW9uTmFtZShkb3duY2FzdDxDU1NBbmltYXRpb24+KGFuaW1h
dGlvbikuYW5pbWF0aW9uTmFtZSgpKTsKKyAgICBlbHNlIGlmIChpczxDU1NUcmFuc2l0aW9uPihh
bmltYXRpb24pKQorICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRDc3NUcmFuc2l0aW9uUHJv
cGVydHkoZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKS50cmFuc2l0aW9uUHJvcGVy
dHkoKSk7CisKKyAgICBpZiAoYXV0byBlZmZlY3RQYXlsb2FkID0gYnVpbGRPYmplY3RGb3JFZmZl
Y3QoYW5pbWF0aW9uLmVmZmVjdCgpKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0RWZm
ZWN0KFdURk1vdmUoZWZmZWN0UGF5bG9hZCkpOworCisgICAgaWYgKGNhcHR1cmVCYWNrdHJhY2Up
IHsKKyAgICAgICAgYXV0byBzdGFja1RyYWNlID0gSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRDYWxs
U3RhY2soSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCBJbnNwZWN0b3I6OlNjcmlwdENhbGxT
dGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CisgICAgICAgIGFuaW1hdGlvblBheWxv
YWQtPnNldEJhY2t0cmFjZShzdGFja1RyYWNlLT5idWlsZEluc3BlY3RvckFycmF5KCkpOworICAg
IH0KKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25DcmVhdGVkKFdURk1vdmUo
YW5pbWF0aW9uUGF5bG9hZCkpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp1
bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCkKK3sKKyAgICBtX2FuaW1h
dGlvbklkTWFwLnJlbW92ZShhbmltYXRpb25JZCk7CisKKyAgICAvLyBUaGlzIGNhbiBiZSBjYWxs
ZWQgaW4gcmVzcG9uc2UgdG8gR0MuIER1ZSB0byB0aGUgc2luZ2xlLXByb2Nlc3MgbW9kZWwgdXNl
ZCBpbiBXZWJLaXQxLCB0aGUKKyAgICAvLyBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQgZnJvbSBh
IHRpbWVyIHRvIHByZXZlbnQgdGhlIGZyb250ZW5kIGZyb20gbWFraW5nIEpTIGFsbG9jYXRpb25z
CisgICAgLy8gd2hpbGUgdGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KKyAgICBtX3JlbW92ZWRBbmlt
YXRpb25JZHMuYXBwZW5kKGFuaW1hdGlvbklkKTsKKworICAgIGlmICghbV9hbmltYXRpb25EZXN0
cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojph
bmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoIW1fcmVtb3ZlZEFuaW1h
dGlvbklkcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgaWRlbnRp
ZmllciA6IG1fcmVtb3ZlZEFuaW1hdGlvbklkcykKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXItPmFuaW1hdGlvbkRlc3Ryb3llZChpZGVudGlmaWVyKTsKKworICAgIG1fcmVtb3ZlZEFuaW1h
dGlvbklkcy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNl
dCgpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisgICAgbV9yZW1vdmVkQW5p
bWF0aW9uSWRzLmNsZWFyKCk7CisKKyAgICBpZiAobV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5p
c0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLnN0b3AoKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RvcFRyYWNraW5nRGVjbGFyYXRpdmVB
bmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mIGFuaW1hdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
aAppbmRleCA3YTI0YmJjYmIxYjMzMWQxOTBkYTYwYzAwZDIxYmQ5MzU0OGZhYjAwLi4xMDAwYzk1
ODA5YTdlODA4MjVhNTVmMTgxMTQ2OTQ5MTZmYjc4YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCkBA
IC0yNywxNiArMjcsMjAgQEAKIAogI2luY2x1ZGUgIkNvbXB1dGVkRWZmZWN0VGltaW5nLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBB
bmltYXRpb25FZmZlY3Q7CiBjbGFzcyBEZWNsYXJhdGl2ZUFuaW1hdGlvbjsKIGNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgS2V5ZnJhbWVFZmZlY3Q7Citj
bGFzcyBQYWdlOwogY2xhc3MgV2ViQW5pbWF0aW9uOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0
cmluZzsKQEAgLTUzLDIwICs1Nyw0NCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwog
CiAgICAgLy8gQW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFi
bGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcm
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzb2x2
ZUFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGNvbnN0
IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1l
OjpSZW1vdGVPYmplY3Q+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFRyYWNraW5nKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBv
dmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgd2ls
bEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRF
ZmZlY3RUaW1pbmcpOwotICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFu
aW1hdGlvbiYpOworICAgIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlv
biYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1h
dGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFu
aW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYp
OwogICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CisgICAg
dm9pZCBmcmFtZU5hdmlnYXRlZChGcmFtZSYpOwogCiBwcml2YXRlOgorICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdD4gYnVpbGRPYmplY3RGb3JFZmZlY3Qo
QW5pbWF0aW9uRWZmZWN0Kik7CisKKyAgICBTdHJpbmcgZmluZEFuaW1hdGlvbklkKFdlYkFuaW1h
dGlvbiYpOworICAgIFdlYkFuaW1hdGlvbiogYXNzZXJ0QW5pbWF0aW9uKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBiaW5kQW5pbWF0aW9uKFdlYkFu
aW1hdGlvbiYsIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSk7CisgICAgdm9pZCB1bmJpbmRBbmltYXRp
b24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBhbmltYXRpb25EZXN0cm95
ZWRUaW1lckZpcmVkKCk7CisgICAgdm9pZCByZXNldCgpOworCiAgICAgdm9pZCBzdG9wVHJhY2tp
bmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNsYXJhdGl2ZUFuaW1hdGlvbiYpOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6QW5pbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zy
b250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpBbmltYXRpb25CYWNrZW5k
RGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAorICAgIEluc3BlY3Rvcjo6SW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAgICBQYWdlJiBtX2lu
c3BlY3RlZFBhZ2U7CisKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQW5pbWF0aW9uKj4gbV9hbmlt
YXRpb25JZE1hcDsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRBbmltYXRpb25JZHM7Cisg
ICAgVGltZXIgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lcjsKKwogICAgIHN0cnVjdCBUcmFja2Vk
RGVjbGFyYXRpdmVBbmltYXRpb25EYXRhIHsKICAgICAgICAgU3RyaW5nIHRyYWNraW5nQW5pbWF0
aW9uSWQ7CiAgICAgICAgIENvbXB1dGVkRWZmZWN0VGltaW5nIGxhc3RDb21wdXRlZFRpbWluZzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01B
Z2VudC5jcHAKaW5kZXggYWVjYzc5YmMwY2E1NmZiNjVmZTAzMzBmMDhlNGVlNjg4YmY4MWU4OS4u
MGY0NmEzMDMzYWVmNDAwN2Y2ZWI4MzdhNjEwNWYwNWEwYzU5MDY3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAg
LTU2Niw3ICs1NjYsNyBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVu
ZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBkb2N1bWVudAogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKLSAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlVG9QdXNo
KTsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZVRv
UHVzaCk7CiB9CiAKIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9ySWQoaW50IGlkKQpA
QCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3Io
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zCiAgICAgfQogCiAgICAg
aWYgKGF1dG8qIGVsZW1lbnQgPSBxdWVyeVJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkKLSAg
ICAgICAgKmVsZW1lbnRJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZWxlbWVudCk7CisgICAg
ICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBlbGVt
ZW50KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3Jz
LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYgcmVzdWx0KQpAQCAtNjM5LDEzICs2MzksMjQg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGMKIH0KIAogaW50IEluc3BlY3RvckRPTUFnZW50Ojpw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGVUb1B1c2gpCit7CisgICAgRXJyb3JTdHJp
bmcgaWdub3JlZDsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChpZ25vcmVkLCBu
b2RlVG9QdXNoKTsKK30KKworaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVBhdGhUb0Zy
b250ZW5kKEVycm9yU3RyaW5nIGVycm9yU3RyaW5nLCBOb2RlKiBub2RlVG9QdXNoKQogewogICAg
IEFTU0VSVChub2RlVG9QdXNoKTsgIC8vIEludmFsaWQgaW5wdXQKIAotICAgIGlmICghbV9kb2N1
bWVudCkKKyAgICBpZiAoIW1fZG9jdW1lbnQpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlz
c2luZyBkb2N1bWVudCJfczsKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKCFtX2RvY3VtZW50
Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpCisgICAgfQorCisgICAgaWYgKCFtX2Rv
Y3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpIHsKKyAgICAgICAgZXJyb3JT
dHJpbmcgPSAiRG9jdW1lbnQgbXVzdCBoYXZlIGJlZW4gcmVxdWVzdGVkIl9zOwogICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CiAKICAgICAvLyBSZXR1cm4gaWQgaW4gY2FzZSB0aGUgbm9kZSBpcyBr
bm93bi4KICAgICBpbnQgcmVzdWx0ID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChub2RlVG9Q
dXNoKTsKQEAgLTc5MCw3ICs4MDEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXROb2Rl
TmFtZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0CiAgICAgaWYg
KCFtX2RvbUVkaXRvci0+cmVtb3ZlQ2hpbGQoKnBhcmVudCwgKm9sZE5vZGUsIGVycm9yU3RyaW5n
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgKm5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChuZXdFbGVtZW50LnB0cigpKTsKKyAgICAqbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
KGVycm9yU3RyaW5nLCBuZXdFbGVtZW50LnB0cigpKTsKICAgICBpZiAobV9jaGlsZHJlblJlcXVl
c3RlZC5jb250YWlucyhub2RlSWQpKQogICAgICAgICBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQo
Km5ld0lkKTsKIH0KQEAgLTgzMCw3ICs4NDEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpz
ZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdAog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG5ld0lkID0gcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChuZXdOb2RlKTsKKyAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
KGVycm9yU3RyaW5nLCBuZXdOb2RlKTsKIAogICAgIGJvb2wgY2hpbGRyZW5SZXF1ZXN0ZWQgPSBt
X2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCk7CiAgICAgaWYgKGNoaWxkcmVuUmVx
dWVzdGVkKQpAQCAtMTQyMiw3ICsxNDMzLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6bW92
ZVRvKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgaW50IHRhcmdldEUKICAg
ICBpZiAoIW1fZG9tRWRpdG9yLT5pbnNlcnRCZWZvcmUoKnRhcmdldEVsZW1lbnQsICpub2RlLCBh
bmNob3JOb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgICpuZXdOb2Rl
SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICpuZXdOb2RlSWQgPSBwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6dW5kbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCkBAIC0xNDk4LDExICsx
NTA5LDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldEF0dHJpYnV0ZXMoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBSZWZQCiAgICAgcmVzdWx0ID0gYnVpbGRBcnJh
eUZvckVsZW1lbnRBdHRyaWJ1dGVzKGVsZW1lbnQpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGlu
dCogbm9kZUlkKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKIHsK
ICAgICBOb2RlKiBub2RlID0gbm9kZUZvck9iamVjdElkKG9iamVjdElkKTsKICAgICBpZiAobm9k
ZSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAg
ICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsK
ICAgICBlbHNlCiAgICAgICAgICpub2RlSWQgPSAwOwogfQpAQCAtMjY0Niw3ICsyNjU3LDcgQEAg
Tm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9i
amVjdElkKQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5k
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJ
ZCkKIHsKICAgICBpZiAoTm9kZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBhdGgpKQotICAgICAgICAq
bm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAgICAgKm5vZGVJZCA9
IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogICAgIGVsc2UKICAg
ICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBub2RlIGZvciBnaXZlbiBwYXRoIl9zOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01B
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2Vu
dC5oCmluZGV4IDUxNjM5YWJlYjg0ZjRkOTVkZWQzZjRmYjY0MDlhZDhmNjJhMjg5NGUuLjdkZjBl
ODNlYjUzZDc1YzQxYzU1NGYxNDAxMjM1YmEyMTcxOTQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTE4MCw2ICsx
ODAsOCBAQCBwdWJsaWM6CiAKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5kKE5vZGUqKTsKICAg
ICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgaW50IGRvY3VtZW50Tm9kZUlk
LCBOb2RlKik7CisgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSopOworICAgIGlu
dCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nLCBOb2RlKik7CiAgICAgTm9kZSog
bm9kZUZvcklkKGludCBub2RlSWQpOwogICAgIGludCBib3VuZE5vZGVJZChjb25zdCBOb2RlKik7
CiAKQEAgLTIxNyw3ICsyMTksNiBAQCBwcml2YXRlOgogICAgIE5vZGUqIGFzc2VydEVkaXRhYmxl
Tm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogICAgIEVsZW1lbnQqIGFzc2VydEVkaXRh
YmxlRWxlbWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogCi0gICAgaW50IHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQoTm9kZSopOwogICAgIHZvaWQgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5k
KGludCBub2RlSWQsIGludCBkZXB0aCA9IDEpOwogCiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkRPTTo6Tm9kZT4gYnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqLCBpbnQgZGVwdGgsIE5vZGVU
b0lkTWFwKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA3YTc0N2E2OTQ5
MzM0N2ZjMThmMGQxY2YwNTU3ZjVjOWVmOTA2YTU3Li44NmU5OTRmMWI2ZDkyM2NlMDdhODBmNDU5
ZWJhMTVlODM4MTI1ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTEy
MCwxNyArMTIwLDIyIEBAIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1
MDAyMiBtdXN0IGJlIGVycm9yIG9iamVjdHMiXSA9ICJBbGwgaXRlCiBsb2NhbGl6ZWRTdHJpbmdz
WyJBbGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSBub24tZW1wdHkgc3RyaW5ncyJd
ID0gIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIG5vbi1lbXB0eSBzdHJpbmdz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJl
IHZhbGlkIERPTSBub2RlcyJdID0gIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJl
IHZhbGlkIERPTSBub2RlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGxvdyBNZWRpYSBDYXB0dXJl
IG9uIEluc2VjdXJlIFNpdGVzIl0gPSAiQWxsb3cgTWVkaWEgQ2FwdHVyZSBvbiBJbnNlY3VyZSBT
aXRlcyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbHRlcm5hdGUiXSA9ICJBbHRlcm5hdGUiOworbG9j
YWxpemVkU3RyaW5nc1siQWx0ZXJuYXRlIFJldmVyc2UiXSA9ICJBbHRlcm5hdGUgUmV2ZXJzZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUg
cmVzb3VyY2UuIl0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291
cmNlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gcmVh
ZCB0aGUgXHUyMDFDJXNcdTIwMUQgdGFibGUuIl0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5n
IHRvIHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRhYmxlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJB
biB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Ig
JXMgb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2Nj
dXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iOwogbG9jYWxpemVkU3Ry
aW5nc1siQW5nbGUiXSA9ICJBbmdsZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24iXSA9
ICJBbmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uICVkIl0gPSAiQW5pbWF0
aW9uICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBDYW5jZWxlZCJd
ID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmlt
YXRpb24gRnJhbWUgJWQgRmlyZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgRmlyZWQiOwogbG9j
YWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCJdID0gIkFuaW1hdGlv
biBGcmFtZSAlZCBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1l
IENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIENhbmNlbGVkIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkFuaW1hdGlvbiBGcmFtZSBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBGaXJlZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIl0gPSAiQW5pbWF0aW9u
IEZyYW1lIFJlcXVlc3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gVGFyZ2V0Il0g
PSAiQW5pbWF0aW9uIFRhcmdldCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU2NyaXB0
ICVkIl0gPSAiQW5vbnltb3VzIFNjcmlwdCAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1v
dXMgU2NyaXB0cyJdID0gIkFub255bW91cyBTY3JpcHRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFu
b255bW91cyBTdHlsZSBTaGVldCAlZCJdID0gIkFub255bW91cyBTdHlsZSBTaGVldCAlZCI7CkBA
IC0xNjksMTYgKzE3NCwxOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBdmVyYWdlOiAlcyJdID0gIkF2
ZXJhZ2U6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJNUCJdID0gIkJNUCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJCYWNrICglcykiXSA9ICJCYWNrICglcykiOwogbG9jYWxpemVkU3RyaW5nc1siQmFj
a3RyYWNlIl0gPSAiQmFja3RyYWNlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkJhY2t3YXJkcyJdID0g
IkJhY2t3YXJkcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCYXNpYyJdID0gIkJhc2ljIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkJlYWNvbiJdID0gIkJlYWNvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCZWFj
b25zIl0gPSAiQmVhY29ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCaW5hcnkgRnJhbWUiXSA9ICJC
aW5hcnkgRnJhbWUiOwogbG9jYWxpemVkU3RyaW5nc1siQmluZGluZyJdID0gIkJpbmRpbmciOwor
bG9jYWxpemVkU3RyaW5nc1siQml0bWFwIFJlbmRlcmVyIl0gPSAiQml0bWFwIFJlbmRlcmVyIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkJsYWNrYm94Il0gPSAiQmxhY2tib3giOwogbG9jYWxpemVkU3Ry
aW5nc1siQmxhY2tib3ggU2NyaXB0Il0gPSAiQmxhY2tib3ggU2NyaXB0IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkJsYWNrYm94IHNjcmlwdCB0byBpZ25vcmUgaXQgd2hlbiBkZWJ1Z2dpbmciXSA9ICJC
bGFja2JveCBzY3JpcHQgdG8gaWdub3JlIGl0IHdoZW4gZGVidWdnaW5nIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkJsb2NrIFZhcmlhYmxlcyJdID0gIkJsb2NrIFZhcmlhYmxlcyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJCb2R5OiJdID0gIkJvZHk6IjsKK2xvY2FsaXplZFN0cmluZ3NbIkJvdGgiXSA9ICJC
b3RoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJvdW5kYXJ5Il0gPSAiQm91bmRhcnkiOwogbG9jYWxp
emVkU3RyaW5nc1siQm94IE1vZGVsIl0gPSAiQm94IE1vZGVsIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkJyZWFrIG9uIl0gPSAiQnJlYWsgb24iOwpAQCAtMjAxLDkgKzIwOSwxMSBAQCBsb2NhbGl6ZWRT
dHJpbmdzWyJDUFUiXSA9ICJDUFUiOwogbG9jYWxpemVkU3RyaW5nc1siQ1BVIFVzYWdlIl0gPSAi
Q1BVIFVzYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUCBIYXNoIl0gPSAiQ1NQIEhhc2giOwog
bG9jYWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbiJdID0gIkNTUyBBbmltYXRpb24iOworbG9j
YWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbnMiXSA9ICJDU1MgQW5pbWF0aW9ucyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJDU1MgQ2FudmFzIl0gPSAiQ1NTIENhbnZhcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJDU1MgQ2hhbmdlczoiXSA9ICJDU1MgQ2hhbmdlczoiOwogbG9jYWxpemVkU3RyaW5nc1si
Q1NTIFRyYW5zaXRpb24iXSA9ICJDU1MgVHJhbnNpdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJD
U1MgVHJhbnNpdGlvbnMiXSA9ICJDU1MgVHJhbnNpdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1si
Q1NTIGNhbnZhcyBcdTIwMUMlc1x1MjAxRCJdID0gIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIwMUQi
OwogbG9jYWxpemVkU3RyaW5nc1siQ2FjaGVkIl0gPSAiQ2FjaGVkIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkNhbGwgRnJhbWVzIFRydW5jYXRlZCJdID0gIkNhbGwgRnJhbWVzIFRydW5jYXRlZCI7CkBA
IC0zNzcsNiArMzg3LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRGV2aWNlICVkIl0gPSAiRGV2aWNl
ICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRldmljZSBTZXR0aW5ncyJdID0gIkRldmljZSBTZXR0
aW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaWFnbm9zZXMgY29tbW9uIGFjY2Vzc2liaWxpdHkg
cHJvYmxlbXMgYWZmZWN0aW5nIHNjcmVlbiByZWFkZXJzIGFuZCBvdGhlciBhc3Npc3RpdmUgdGVj
aG5vbG9neS4iXSA9ICJEaWFnbm9zZXMgY29tbW9uIGFjY2Vzc2liaWxpdHkgcHJvYmxlbXMgYWZm
ZWN0aW5nIHNjcmVlbiByZWFkZXJzIGFuZCBvdGhlciBhc3Npc3RpdmUgdGVjaG5vbG9neS4iOwog
bG9jYWxpemVkU3RyaW5nc1siRGltZW5zaW9ucyJdID0gIkRpbWVuc2lvbnMiOworbG9jYWxpemVk
U3RyaW5nc1siRGlyZWN0aW9uIl0gPSAiRGlyZWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRp
c2FibGUgQnJlYWtwb2ludCJdID0gIkRpc2FibGUgQnJlYWtwb2ludCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJEaXNhYmxlIEJyZWFrcG9pbnRzIl0gPSAiRGlzYWJsZSBCcmVha3BvaW50cyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJEaXNhYmxlIERlc2NlbmRhbnQgQnJlYWtwb2ludHMiXSA9ICJEaXNhYmxl
IERlc2NlbmRhbnQgQnJlYWtwb2ludHMiOwpAQCAtNDE5LDYgKzQzMCw3IEBAIGxvY2FsaXplZFN0
cmluZ3NbIkR1cmF0aW9uOiBTaG9ydCJdID0gIkR1cmF0aW9uOiBTaG9ydCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgcGFyZW50IGVsZW1lbnQiXSA9
ICJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgcGFyZW50IGVsZW1lbnQiOwogbG9jYWxp
emVkU3RyaW5nc1siRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1l
bnQiXSA9ICJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0ZWQgZWxlbWVudCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0
ZWQgZWxlbWVudCBhbmQgZGlkIG5vdCBtYXRjaCJdID0gIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQg
Zm9yIHRoZSBzZWxlY3RlZCBlbGVtZW50IGFuZCBkaWQgbm90IG1hdGNoIjsKK2xvY2FsaXplZFN0
cmluZ3NbIkVhc2luZyJdID0gIkVhc2luZyI7CiAvKiBMYWJlbCBmb3IgYSBndWlkZSB3aXRoaW4g
dGhlIGNvbG9yIHBpY2tlciAqLwogbG9jYWxpemVkU3RyaW5nc1siRWRnZSBvZiBzUkdCIGNvbG9y
IHNwYWNlIl0gPSAiRWRnZSBvZiBzUkdCIGNvbG9yIHNwYWNlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkVkaXQiXSA9ICJFZGl0IjsKQEAgLTQzMCw2ICs0NDIsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJF
ZGl0IFx1MjAxQ3NwcmluZ1x1MjAxRCBmdW5jdGlvbiJdID0gIkVkaXQgXHUyMDFDc3ByaW5nXHUy
MDFECiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0IGNvbmZpZ3VyYXRpb24iXSA9ICJFZGl0IGNvbmZp
Z3VyYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCBjdXN0b20gZ3JhZGllbnQiXSA9ICJF
ZGl0IGN1c3RvbSBncmFkaWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0aW5nIGF1ZGl0cyJd
ID0gIkVkaXRpbmcgYXVkaXRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkVmZmVjdCJdID0gIkVmZmVj
dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50Il0gPSAiRWxlbWVudCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJFbGVtZW50IFNlbGVjdGlvbjoiXSA9ICJFbGVtZW50IFNlbGVjdGlvbjoiOwogbG9j
YWxpemVkU3RyaW5nc1siRWxlbWVudCBjbGlwcyBjb21wb3NpdGluZyBkZXNjZW5kYW50cyJdID0g
IkVsZW1lbnQgY2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiOwpAQCAtNDc4LDYgKzQ5MSw4
IEBAIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBzb3VyY2UgbWFwcyJdID0gIkVuYWJsZSBzb3Vy
Y2UgbWFwcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGVkIl0gPSAiRW5hYmxlZCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJFbmNvZGVkIl0gPSAiRW5jb2RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJF
bmNvZGluZyJdID0gIkVuY29kaW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIkVuZCBEZWxheSJdID0g
IkVuZCBEZWxheSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbmQgRGVsYXkgJXMiXSA9ICJFbmQgRGVs
YXkgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5lcmd5IEltcGFjdCJdID0gIkVuZXJneSBJbXBh
Y3QiOwogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIGFyaWEtaGlkZGVuPVx1MDAyMiVzXHUwMDIy
IGlzIG5vdCB1c2VkLiJdID0gIkVuc3VyZSBhcmlhLWhpZGRlbj1cdTAwMjIlc1x1MDAyMiBpcyBu
b3QgdXNlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIHRoYXQgXHUwMDIyJXNcdTAwMjIg
aXMgc3BlbGxlZCBjb3JyZWN0bHkuIl0gPSAiRW5zdXJlIHRoYXQgXHUwMDIyJXNcdTAwMjIgaXMg
c3BlbGxlZCBjb3JyZWN0bHkuIjsKQEAgLTUzNyw2ICs1NTIsNyBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJGZXRjaCJdID0gIkZldGNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZldGNoZXMiXSA9ICJGZXRj
aGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGUgb3IgUmVzb3VyY2UiXSA9ICJGaWxlIG9yIFJl
c291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGVuYW1lIl0gPSAiRmlsZW5hbWUiOworbG9j
YWxpemVkU3RyaW5nc1siRmlsbCJdID0gIkZpbGwiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsdGVy
Il0gPSAiRmlsdGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbHRlciBGdWxsIFVSTCJdID0gIkZp
bHRlciBGdWxsIFVSTCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWx0ZXI6Il0gPSAiRmlsdGVyOiI7
CkBAIC01NjUsNiArNTgxLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRm9ybWF0OiBSR0JBIl0gPSAi
Rm9ybWF0OiBSR0JBIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZvcm1hdDogU2hvcnQgSGV4Il0gPSAi
Rm9ybWF0OiBTaG9ydCBIZXgiOwogbG9jYWxpemVkU3RyaW5nc1siRm9ybWF0OiBTaG9ydCBIZXgg
d2l0aCBBbHBoYSJdID0gIkZvcm1hdDogU2hvcnQgSGV4IHdpdGggQWxwaGEiOwogbG9jYWxpemVk
U3RyaW5nc1siRm9yd2FyZCAoJXMpIl0gPSAiRm9yd2FyZCAoJXMpIjsKK2xvY2FsaXplZFN0cmlu
Z3NbIkZvcndhcmRzIl0gPSAiRm9yd2FyZHMiOwogbG9jYWxpemVkU3RyaW5nc1siRnJhZ21lbnQi
XSA9ICJGcmFnbWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGcmFnbWVudCBTaGFkZXIiXSA9ICJG
cmFnbWVudCBTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siRnJhbWUgJWQiXSA9ICJGcmFtZSAl
ZCI7CkBAIC01ODUsNiArNjAyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIENvZGUiXSA9
ICJHbG9iYWwgQ29kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgTGV4aWNhbCBFbnZpcm9u
bWVudCJdID0gIkdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50IjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ikdsb2JhbCBWYXJpYWJsZXMiXSA9ICJHbG9iYWwgVmFyaWFibGVzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkdyYW1tYXIiXSA9ICJHcmFtbWFyIjsKK2xvY2FsaXplZFN0cmluZ3NbIkdyYXBoaWNzIl0g
PSAiR3JhcGhpY3MiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAiXSA9ICJHcm91cCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJHcm91cCBCeSBSZXNvdXJjZSJdID0gIkdyb3VwIEJ5IFJlc291cmNlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIE1lZGlhIFJlcXVlc3RzIl0gPSAiR3JvdXAgTWVkaWEg
UmVxdWVzdHMiOwpAQCAtNjMyLDYgKzY1MCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkltYWdlcyJd
ID0gIkltYWdlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXM6Il0gPSAiSW1hZ2VzOiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIl0gPSAiSW1tZWRpYXRl
IFBhdXNlIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQiXSA9ICJJbXBvcnQi
OworbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0IFJlY29yZGluZyJdID0gIkltcG9ydCBSZWNvcmRp
bmciOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQiXSA9ICJJbXBvcnRlZCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJJbXBvcnRlZCAtICVzIl0gPSAiSW1wb3J0ZWQgLSAlcyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJJbXBvcnRlZCBcdTIwMTQgJXMiXSA9ICJJbXBvcnRlZCBcdTIwMTQgJXMiOwpAQCAt
NjYwLDYgKzY3OSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkludm9rZSBnZXR0ZXIiXSA9ICJJbnZv
a2UgZ2V0dGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkl0IGlzIGV2YWx1YXRlZCBpbW1lZGlhdGVs
eSBhZnRlciB0aGUgZ2xvYmFsIG9iamVjdCBpcyBjcmVhdGVkLCBiZWZvcmUgYW55IG90aGVyIGNv
bnRlbnQgaGFzIGxvYWRlZC4iXSA9ICJJdCBpcyBldmFsdWF0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIg
dGhlIGdsb2JhbCBvYmplY3QgaXMgY3JlYXRlZCwgYmVmb3JlIGFueSBvdGhlciBjb250ZW50IGhh
cyBsb2FkZWQuIjsKIC8qIFRvb2x0aXAgZm9yIGEgdGltZXN0YW1wIG1hcmtlciB0aGF0IHJlcHJl
c2VudHMgd2hlbiBhIENTUyBhbmltYXRpb24vdHJhbnNpdGlvbiBpdGVyYXRlcyAqLwogbG9jYWxp
emVkU3RyaW5nc1siSXRlcmF0aW9uIl0gPSAiSXRlcmF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3Nb
Ikl0ZXJhdGlvbnMiXSA9ICJJdGVyYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkpQMiJdID0g
IkpQMiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJKUEVHIl0gPSAiSlBFRyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJKYXZhU2NyaXB0Il0gPSAiSmF2YVNjcmlwdCI7CkBAIC02NjksNiArNjg5LDcgQEAgbG9j
YWxpemVkU3RyaW5nc1siSmF2YVNjcmlwdCBDb250ZXh0Il0gPSAiSmF2YVNjcmlwdCBDb250ZXh0
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkp1bXAgdG8gRGVmaW5pdGlvbiJdID0gIkp1bXAgdG8gRGVm
aW5pdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJLZXkiXSA9ICJLZXkiOwogbG9jYWxpemVkU3Ry
aW5nc1siS2V5IFBhdGgiXSA9ICJLZXkgUGF0aCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJLZXlmcmFt
ZXMiXSA9ICJLZXlmcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTGFiZWwiXSA9ICJMYWJlbCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJMYXRlbmN5Il0gPSAiTGF0ZW5jeSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJMYXllciBDb3VudDogJWQiXSA9ICJMYXllciBDb3VudDogJWQiOwpAQCAtNjk2LDYgKzcx
Nyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFN0b3JhZ2UiXSA9ICJMb2NhbCBTdG9yYWdl
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFZhcmlhYmxlcyJdID0gIkxvY2FsIFZhcmlhYmxl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGVkIGF0ICVzIl0gPSAiTG9jYXRlZCBhdCAlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGlvbiJdID0gIkxvY2F0aW9uIjsKK2xvY2FsaXplZFN0
cmluZ3NbIkxvZyBBbmltYXRpb24iXSA9ICJMb2cgQW5pbWF0aW9uIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkxvZyBDYW52YXMgQ29udGV4dCJdID0gIkxvZyBDYW52YXMgQ29udGV4dCI7CiAvKiBMb2cg
KHByaW50KSBET00gZWxlbWVudCB0byBDb25zb2xlICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cg
RWxlbWVudCJdID0gIkxvZyBFbGVtZW50IjsKQEAgLTc2OCw2ICs3OTAsNyBAQCBsb2NhbGl6ZWRT
dHJpbmdzWyJObyBFbmFibGVkIEF1ZGl0cyJdID0gIk5vIEVuYWJsZWQgQXVkaXRzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIk5vIEVudHJpZXMiXSA9ICJObyBFbnRyaWVzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIk5vIEV2ZW50IExpc3RlbmVycyJdID0gIk5vIEV2ZW50IExpc3RlbmVycyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJObyBGaWx0ZXIgUmVzdWx0cyJdID0gIk5vIEZpbHRlciBSZXN1bHRzIjsKK2xv
Y2FsaXplZFN0cmluZ3NbIk5vIEtleWZyYW1lcyJdID0gIk5vIEtleWZyYW1lcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJObyBMYXllciBBdmFpbGFibGUiXSA9ICJObyBMYXllciBBdmFpbGFibGUiOwog
bG9jYWxpemVkU3RyaW5nc1siTm8gT3ZlcnJpZGVzIl0gPSAiTm8gT3ZlcnJpZGVzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIk5vIFBhcmFtZXRlcnMiXSA9ICJObyBQYXJhbWV0ZXJzIjsKQEAgLTc3OSw2
ICs4MDIsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXNwb25zZSBIZWFkZXJzIl0gPSAiTm8g
UmVzcG9uc2UgSGVhZGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXN1bHQiXSA9ICJObyBS
ZXN1bHQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzdWx0cyBGb3VuZCJdID0gIk5vIFJlc3Vs
dHMgRm91bmQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gU2VhcmNoIFJlc3VsdHMiXSA9ICJObyBT
ZWFyY2ggUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBTdHlsZXMiXSA9ICJObyBTdHls
ZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gV2F0Y2ggRXhwcmVzc2lvbnMiXSA9ICJObyBXYXRj
aCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBhdWRpdCBzZWxlY3RlZCJdID0g
Ik5vIGF1ZGl0IHNlbGVjdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIGNlcnRpZmljYXRlIHNl
Y3VyaXR5IGluZm9ybWF0aW9uLiJdID0gIk5vIGNlcnRpZmljYXRlIHNlY3VyaXR5IGluZm9ybWF0
aW9uLiI7CkBAIC03OTgsNiArODIyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm9kZSJdID0gIk5v
ZGUiOwogbG9jYWxpemVkU3RyaW5nc1siTm9kZSBSZW1vdmVkIl0gPSAiTm9kZSBSZW1vdmVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5vZGVzIl0gPSAiTm9kZXMiOwogbG9jYWxpemVkU3RyaW5nc1si
Tm9uZSJdID0gIk5vbmUiOworbG9jYWxpemVkU3RyaW5nc1siTm9ybWFsIl0gPSAiTm9ybWFsIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5vdCBmb3VuZCJdID0gIk5vdCBmb3VuZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJPYmplY3QgR3JhcGgiXSA9ICJPYmplY3QgR3JhcGgiOwogbG9jYWxpemVkU3RyaW5n
c1siT2JqZWN0IFN0b3JlIl0gPSAiT2JqZWN0IFN0b3JlIjsKQEAgLTkxMSw3ICs5MzYsNiBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJSZWRpcmVjdHMiXSA9ICJSZWRpcmVjdHMiOwogbG9jYWxpemVkU3Ry
aW5nc1siUmVmZXJlbmNlIElzc3VlIl0gPSAiUmVmZXJlbmNlIElzc3VlIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlJlZmxlY3Rpb24iXSA9ICJSZWZsZWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJl
ZnJlc2giXSA9ICJSZWZyZXNoIjsKLWxvY2FsaXplZFN0cmluZ3NbIlJlZnJlc2ggYWxsIl0gPSAi
UmVmcmVzaCBhbGwiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCB3YXRjaCBleHByZXNzaW9u
cyJdID0gIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVn
aW9uIGFubm91bmNlZCBpbiBpdHMgZW50aXJldHkuIl0gPSAiUmVnaW9uIGFubm91bmNlZCBpbiBp
dHMgZW50aXJldHkuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ3VsYXIgRXhwcmVzc2lvbiJdID0g
IlJlZ3VsYXIgRXhwcmVzc2lvbiI7CkBAIC05NzksNiArMTAwMyw3IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIlJldmVhbCBpbiBOZXR3b3JrIFRhYiJdID0gIlJldmVhbCBpbiBOZXR3b3JrIFRhYiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gT3JpZ2luYWwgUmVzb3VyY2UiXSA9ICJSZXZlYWwg
aW4gT3JpZ2luYWwgUmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIFNvdXJj
ZXMgVGFiIl0gPSAiUmV2ZWFsIGluIFNvdXJjZXMgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJl
dmVhbCBpbiBTdHlsZSBTaGVldCJdID0gIlJldmVhbCBpbiBTdHlsZSBTaGVldCI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJSZXZlcnNlIl0gPSAiUmV2ZXJzZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSb2xl
Il0gPSAiUm9sZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSdW4gJWQiXSA9ICJSdW4gJWQiOwogbG9j
YWxpemVkU3RyaW5nc1siUnVuIGNvbnNvbGUgY29tbWFuZHMgYXMgaWYgaW5zaWRlIGEgdXNlciBn
ZXN0dXJlIl0gPSAiUnVuIGNvbnNvbGUgY29tbWFuZHMgYXMgaWYgaW5zaWRlIGEgdXNlciBnZXN0
dXJlIjsKQEAgLTEwMjEsNiArMTA0Niw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlNlY3VyaXR5IE9y
aWdpbiJdID0gIlNlY3VyaXR5IE9yaWdpbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3QgYmFz
ZWxpbmUgc25hcHNob3QiXSA9ICJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiOwogbG9jYWxpemVk
U3RyaW5nc1siU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiXSA9ICJTZWxlY3QgY29tcGFyaXNv
biBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCJdID0gIlNlbGVjdGVkIjsK
K2xvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIEFuaW1hdGlvbiJdID0gIlNlbGVjdGVkIEFuaW1h
dGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBDYW52YXMgQ29udGV4dCJdID0gIlNl
bGVjdGVkIENhbnZhcyBDb250ZXh0IjsKIC8qIFNlbGVjdGVkIERPTSBlbGVtZW50ICovCiBsb2Nh
bGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBFbGVtZW50Il0gPSAiU2VsZWN0ZWQgRWxlbWVudCI7CkBA
IC0xMTA0LDYgKzExMzAsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTcGVsbGluZyJdID0gIlNwZWxs
aW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YWdpbmc6Il0gPSAiU3RhZ2luZzoiOwogbG9jYWxp
emVkU3RyaW5nc1siU3RhbGxlZCJdID0gIlN0YWxsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siU3Rh
cnQiXSA9ICJTdGFydCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBEZWxheSJdID0gIlN0YXJ0
IERlbGF5IjsKK2xvY2FsaXplZFN0cmluZ3NbIlN0YXJ0IERlbGF5ICVzIl0gPSAiU3RhcnQgRGVs
YXkgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgVGltZSJdID0gIlN0YXJ0IFRpbWUiOwog
bG9jYWxpemVkU3RyaW5nc1siU3RhcnQgZWxlbWVudCBzZWxlY3Rpb24gKCVzKSJdID0gIlN0YXJ0
IGVsZW1lbnQgc2VsZWN0aW9uICglcykiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgcmVjb3Jk
aW5nICglcylcbkNyZWF0ZSBuZXcgcmVjb3JkaW5nICglcykiXSA9ICJTdGFydCByZWNvcmRpbmcg
KCVzKVxuQ3JlYXRlIG5ldyByZWNvcmRpbmcgKCVzKSI7CkBAIC0xMTc2LDYgKzEyMDQsOCBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJUaGVzZSB0ZXN0cyBzZXJ2ZSBhcyBhIGRlbW9uc3RyYXRpb24gb2Yg
dGhlIGZ1bmN0aW9uYWxpdHkgYW5kCiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIFJlc291cmNlIGNh
bWUgZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIl0gPSAiVGhpcyBSZXNvdXJjZSBjYW1l
IGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlz
IGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSJdID0gIlRoaXMgYWN0aW9uIGNhdXNlcyBu
byB2aXN1YWwgY2hhbmdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYWN0aW9uIG1vdmVzIHRo
ZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSJdID0gIlRoaXMgYWN0aW9uIG1vdmVzIHRo
ZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaGlz
IGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIl0gPSAiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1
cmF0aW9uLiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJh
bWVzLiJdID0gIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlRoaXMgYXVkaXQgaXMgbm90IHN1cHBvcnRlZCJdID0gIlRoaXMgYXVkaXQgaXMgbm90
IHN1cHBvcnRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93
IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4iXSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUgb2Yg
aG93IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhp
cyBpcyBhbiBleGFtcGxlIG9mIGhvdyBlcnJvcnMgYXJlIHNob3duLiBUaGUgZXJyb3Igd2FzIHRo
cm93biBtYW51YWxseSwgYnV0IGV4ZWN1dGlvbiBlcnJvcnMgd2lsbCBhcHBlYXIgaW4gdGhlIHNh
bWUgd2F5LiJdID0gIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJyb3JzIGFyZSBzaG93bi4g
VGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRpb24gZXJyb3JzIHdpbGwg
YXBwZWFyIGluIHRoZSBzYW1lIHdheS4iOwpAQCAtMTI4OCwxMiArMTMxOCwxNyBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJWaWV3IFNoYWRlciJdID0gIlZpZXcgU2hhZGVyIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlZpZXdwb3J0Il0gPSAiVmlld3BvcnQiOwogbG9jYWxpemVkU3RyaW5nc1siVmlzaWJsZSJd
ID0gIlZpc2libGUiOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyJdID0gIldhaXRpbmciOwor
bG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IENTUy4i
XSA9ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iXSA9
ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iOwogbG9jYWxp
emVkU3RyaW5nc1siV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0
IG9yIENTUy4iXSA9ICJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3Jp
cHQgb3IgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBmcmFtZXNcdTIwMjYi
XSA9ICJXYWl0aW5nIGZvciBmcmFtZXNcdTIwMjYiOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGlu
ZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2FpdGluZyBmb3IgdHJhbnNp
dGlvbnMgY3JlYXRlZCBieSBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhcm5pbmc6ICJdID0g
Ildhcm5pbmc6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXJuaW5ncyJdID0gIldhcm5pbmdzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIldhdGNoIEV4cHJlc3Npb25zIl0gPSAiV2F0Y2ggRXhwcmVzc2lv
bnMiOwogbG9jYWxpemVkU3RyaW5nc1siV2F0ZXJmYWxsIl0gPSAiV2F0ZXJmYWxsIjsKK2xvY2Fs
aXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24iXSA9ICJXZWIgQW5pbWF0aW9uIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb25zIl0gPSAiV2ViIEFuaW1hdGlvbnMiOwogbG9jYWxpemVk
U3RyaW5nc1siV2ViIEluc3BlY3RvciJdID0gIldlYiBJbnNwZWN0b3IiOwogbG9jYWxpemVkU3Ry
aW5nc1siV2ViIFBhZ2UiXSA9ICJXZWIgUGFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWJLaXQg
VGhyZWFkcyJdID0gIldlYktpdCBUaHJlYWRzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCBhODJjY2Y4MzRiZDRjY2UwZDcxYmJl
MzdhZTk2NTZkNmZiYzk5MDZhLi5lODA3ODg3MjljZGY0MDQ2MzEyOTFmYzJlMzFmODFjMmY0OTFl
ZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzCkBAIC0xMjMsNiArMTIzLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAg
ICBXSS53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIsCiAgICAgICAgIFdJLmRv
bURlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIsCiAgICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAgICAgICAgV0kuYW5pbWF0
aW9uTWFuYWdlciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAgIF07CiAKICAgICAvLyBS
ZWdpc3RlciBmb3IgZXZlbnRzLgpAQCAtMTQ3LDcgKzE0OCw3IEBAIFdJLmxvYWRlZCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJ
LlRpbWVsaW5lVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuU3RvcmFnZVRhYkNvbnRl
bnRWaWV3LlR5cGUsCi0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGUsCisgICAg
ICAgIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuQXVkaXRUYWJD
b250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5Db25zb2xlVGFiQ29udGVudFZpZXcuVHlwZSwK
ICAgICBdKTsKQEAgLTE3Myw2ICsxNzQsMTMgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgV0kuX3NlbGVjdGVkVGFiSW5kZXhTZXR0aW5nLnZhbHVlID0gc291cmNlc0luZGV4
OwogICAgIH0KIAorICAgIC8vIENhbnZhcyBUYWIgd2FzIHJlbmFtZWQgdG8gR3JhcGhpY3MgVGFi
LgorICAgIGxldCBjYW52YXNJbmRleCA9IFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuaW5kZXhP
ZigiY2FudmFzIik7CisgICAgaWYgKGNhbnZhc0luZGV4ID49IDApIHsKKyAgICAgICAgV0kuX29w
ZW5UYWJzU2V0dGluZy52YWx1ZS5zcGxpY2UoY2FudmFzSW5kZXgsIDEsIFdJLkdyYXBoaWNzVGFi
Q29udGVudFZpZXcuVHlwZSk7CisgICAgICAgIFdJLl9vcGVuVGFic1NldHRpbmcuc2F2ZSgpOwor
ICAgIH0KKwogICAgIC8vIFN0YXRlLgogICAgIFdJLnByaW50U3R5bGVzRW5hYmxlZCA9IGZhbHNl
OwogICAgIFdJLnNldFpvb21GYWN0b3IoV0kuc2V0dGluZ3Muem9vbUZhY3Rvci52YWx1ZSk7CkBA
IC00NjUsNyArNDczLDcgQEAgV0kuY29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
V0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5UaW1lbGluZVRhYkNvbnRlbnRW
aWV3LAogICAgICAgICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcsCi0gICAgICAgIFdJLkNhbnZh
c1RhYkNvbnRlbnRWaWV3LAorICAgICAgICBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LAogICAg
ICAgICBXSS5MYXllcnNUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuQXVkaXRUYWJDb250ZW50
VmlldywKICAgICAgICAgV0kuQ29uc29sZVRhYkNvbnRlbnRWaWV3LApAQCAtMTIyMiwxMSArMTIz
MCw4IEBAIFdJLnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JSZXByZXNlbnRlZE9iamVjdCA9IGZ1bmN0
aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgcmV0dXJuIFdJLkF1ZGl0VGFi
Q29udGVudFZpZXc7CiAKLSAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5D
YW52YXNDb2xsZWN0aW9uKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXc7
Ci0KLSAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpCi0g
ICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50VmlldzsKKyAgICBpZiAocmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5TaGFkZXJQcm9ncmFtIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
UmVjb3JkaW5nIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKQor
ICAgICAgICByZXR1cm4gV0kuR3JhcGhpY3NUYWJDb250ZW50VmlldzsKIAogICAgIHJldHVybiBu
dWxsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNhNDY2YTlhMmMyZDIzMmY4ZDBiMzM0NWQ1OWEwY2Q0ZDI2NzdjZjkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Bbmlt
YXRpb25NYW5hZ2VyLmpzCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gRklYTUU6
IEFuaW1hdGlvbk1hbmFnZXIgbGFja3MgYWR2YW5jZWQgbXVsdGktdGFyZ2V0IHN1cHBvcnQuIChB
bmltYXRpb25zIHBlci10YXJnZXQpCisKK1dJLkFuaW1hdGlvbk1hbmFnZXIgPSBjbGFzcyBBbmlt
YXRpb25NYW5hZ2VyCit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgdGhpcy5f
ZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uID0gbmV3
IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwID0g
bmV3IE1hcDsKKworICAgICAgICBXSS5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdJLkZyYW1lLkV2
ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5faGFuZGxlTWFpblJlc291cmNlRGlkQ2hh
bmdlLCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBBZ2VudAorCisgICAgZ2V0IGRvbWFpbnMoKSB7
IHJldHVybiBbIkFuaW1hdGlvbiJdOyB9CisKKyAgICBhY3RpdmF0ZUV4dHJhRG9tYWluKGRvbWFp
bikKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbWFpbiA9PT0gIkFuaW1hdGlvbiIp
OworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKQorICAgICAgICAgICAg
dGhpcy5pbml0aWFsaXplVGFyZ2V0KHRhcmdldCk7CisgICAgfQorCisgICAgLy8gVGFyZ2V0CisK
KyAgICBpbml0aWFsaXplVGFyZ2V0KHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5f
ZW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZ
IChpT1MgMTMuMSk6IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAg
IGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmVuYWJsZSIpKQorICAgICAgICAgICAg
dGFyZ2V0LkFuaW1hdGlvbkFnZW50LmVuYWJsZSgpOworICAgIH0KKworICAgIC8vIFB1YmxpYwor
CisgICAgZ2V0IGFuaW1hdGlvbkNvbGxlY3Rpb24oKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25D
b2xsZWN0aW9uOyB9CisKKyAgICBnZXQgc3VwcG9ydGVkKCkKKyAgICB7CisgICAgICAgIC8vIENP
TVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmVuYWJsZSBkaWQgbm90IGV4aXN0IHll
dC4KKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiQW5pbWF0aW9u
LmVuYWJsZSIpOworICAgIH0KKworICAgIGVuYWJsZSgpCisgICAgeworICAgICAgICBjb25zb2xl
LmFzc2VydCghdGhpcy5fZW5hYmxlZCk7CisKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IHRydWU7
CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0
aGlzLmluaXRpYWxpemVUYXJnZXQodGFyZ2V0KTsKKyAgICB9CisKKyAgICBkaXNhYmxlKCkKKyAg
ICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuYWJsZWQpOworCisgICAgICAgIGZv
ciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKSB7CisgICAgICAgICAgICAvLyBDT01QQVRJQklM
SVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5kaXNhYmxlIGRpZCBub3QgZXhpc3QgeWV0LgorICAg
ICAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24uZGlzYWJsZSIpKQorICAg
ICAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5kaXNhYmxlKCk7CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRo
aXMuX2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7CisKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZh
bHNlOworICAgIH0KKworICAgIC8vIEFuaW1hdGlvbk9ic2VydmVyCisKKyAgICBhbmltYXRpb25D
cmVhdGVkKGFuaW1hdGlvblBheWxvYWQpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCgh
dGhpcy5fYW5pbWF0aW9uSWRNYXAuaGFzKGFuaW1hdGlvblBheWxvYWQuYW5pbWF0aW9uSWQpLCBg
QW5pbWF0aW9uIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHthbmltYXRpb25QYXlsb2FkLmFuaW1h
dGlvbklkfS5gKTsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gV0kuQW5pbWF0aW9uLmZyb21Q
YXlsb2FkKGFuaW1hdGlvblBheWxvYWQpOworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0
aW9uLmFkZChhbmltYXRpb24pOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5zZXQoYW5p
bWF0aW9uLmFuaW1hdGlvbklkLCBhbmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5n
ZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0
aGlzLl9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFz
c2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBhbmltYXRpb24uZWZmZWN0Q2hhbmdlZChlZmZlY3QpOworICAgIH0K
KworICAgIHRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAg
IGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOwor
ICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhbmltYXRpb24udGFyZ2V0Q2hhbmdl
ZChlZmZlY3QpOworICAgIH0KKworICAgIGFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCkK
KyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC50YWtl
KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAg
ICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uQ29sbGVjdGlvbi5yZW1vdmUoYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICAvLyBQ
cml2YXRlCisKKyAgICBfaGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgV0kuRnJhbWUp
OworICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIFdJLkFuaW1hdGlvbi5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVt
YmVycygpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uY2xlYXIoKTsKKyAg
ICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFz
TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0NhbnZhc01hbmFnZXIuanMKaW5kZXggMTM1YzE2NjEzYWU4MDA5YzE2ZTI3MjJmNzI1ODVj
OTdlNjlkZDExNC4uZGJiOGU2ZmU0OTczMWQ1MjMxZTI4M2Y2OWZhMjkwZjM3YjZiYmZhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
Q2FudmFzTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCkBAIC0zMiw2ICszMiw3IEBAIFdJLkNhbnZh
c01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IHN1cGVyKCk7CiAKICAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlz
Ll9jYW52YXNDb2xsZWN0aW9uID0gbmV3IFdJLkNhbnZhc0NvbGxlY3Rpb247CiAgICAgICAgIHRo
aXMuX2NhbnZhc0lkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9zaGFkZXJQ
cm9ncmFtSWRlbnRpZmllck1hcCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3Jk
aW5ncyA9IG5ldyBTZXQ7CkBAIC03NiwxMyArNzcsOSBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xh
c3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHVibGljCiAKKyAg
ICBnZXQgY2FudmFzQ29sbGVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb247
IH0KICAgICBnZXQgc2F2ZWRSZWNvcmRpbmdzKCkgeyByZXR1cm4gdGhpcy5fc2F2ZWRSZWNvcmRp
bmdzOyB9CiAKLSAgICBnZXQgY2FudmFzZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEFycmF5
LmZyb20odGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC52YWx1ZXMoKSk7Ci0gICAgfQotCiAgICAg
Z2V0IHNoYWRlclByb2dyYW1zKCkKICAgICB7CiAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRo
aXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLnZhbHVlcygpKTsKQEAgLTEzMyw2ICsxMzAs
NyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICAgICAgICAgIHRhcmdldC5DYW52YXNBZ2VudC5kaXNhYmxlKCk7CiAgICAg
ICAgIH0KIAorICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmNsZWFyKCk7CiAgICAgICAg
IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICAgICAgdGhpcy5fc2hhZGVy
UHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRp
bmdzLmNsZWFyKCk7CkBAIC0xNjEsOSArMTU5LDggQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNz
IENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY29uc29sZS5hc3NlcnQo
IXRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuaGFzKGNhbnZhc1BheWxvYWQuY2FudmFzSWQpLCBg
Q2FudmFzIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHtjYW52YXNQYXlsb2FkLmNhbnZhc0lkfS5g
KTsKIAogICAgICAgICBsZXQgY2FudmFzID0gV0kuQ2FudmFzLmZyb21QYXlsb2FkKGNhbnZhc1Bh
eWxvYWQpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52YXMpOwogICAg
ICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnNldChjYW52YXMuaWRlbnRpZmllciwgY2Fu
dmFzKTsKLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB7Y2FudmFzfSk7CiAgICAgfQogCiAgICAgY2FudmFz
UmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKQpAQCAtMTczLDcgKzE3MCwxNCBAQCBXSS5DYW52YXNN
YW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBp
ZiAoIWNhbnZhcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9yZW1vdmVD
YW52YXMoY2FudmFzKTsKKyAgICAgICAgdGhpcy5fc2F2ZVJlY29yZGluZ3MoY2FudmFzKTsKKwor
ICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLnJlbW92ZShjYW52YXMpOworCisgICAgICAg
IGZvciAobGV0IHByb2dyYW0gb2YgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uKQorICAg
ICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0u
aWRlbnRpZmllcik7CisKKyAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmNs
ZWFyKCk7CiAgICAgfQogCiAgICAgY2FudmFzTWVtb3J5Q2hhbmdlZChjYW52YXNJZGVudGlmaWVy
LCBtZW1vcnlDb3N0KQpAQCAtMjc1LDIxICsyNzksMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNs
YXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8vIFByaXZhdGUKIAot
ICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQorICAgIF9zYXZlUmVjb3JkaW5ncyhjYW52YXMpCiAg
ICAgewotICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmRl
bGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOwotCi0gICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFt
Q29sbGVjdGlvbi5jbGVhcigpOwotCiAgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBjYW52
YXMucmVjb3JkaW5nQ29sbGVjdGlvbikgewogICAgICAgICAgICAgcmVjb3JkaW5nLnNvdXJjZSA9
IG51bGw7CiAgICAgICAgICAgICByZWNvcmRpbmcuY3JlYXRlRGlzcGxheU5hbWUocmVjb3JkaW5n
LmRpc3BsYXlOYW1lKTsKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncy5hZGQocmVj
b3JkaW5nKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHtyZWNvcmRpbmd9KTsKICAgICAgICAg
fQotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwge2NhbnZhc30pOwogICAgIH0KIAogICAgIF9tYWluUmVz
b3VyY2VEaWRDaGFuZ2UoZXZlbnQpCkBAIC0zMDEsMTUgKzI5OCwxNCBAQCBXSS5DYW52YXNNYW5h
Z2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBXSS5D
YW52YXMucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsKIAogICAgICAgICBmb3IgKGxl
dCBjYW52YXMgb2YgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC52YWx1ZXMoKSkKLSAgICAgICAg
ICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICAgICAgdGhpcy5fc2F2ZVJl
Y29yZGluZ3MoY2FudmFzKTsKIAotICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmll
ck1hcC5jbGVhcigpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmNsZWFyKCk7CiAg
ICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5f
c2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICB9CiB9OwogCiBXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50ID0gewotICAgIENhbnZhc0FkZGVkOiAiY2FudmFzLW1hbmFnZXItY2Fu
dmFzLXdhcy1hZGRlZCIsCi0gICAgQ2FudmFzUmVtb3ZlZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZh
cy13YXMtcmVtb3ZlZCIsCiAgICAgUmVjb3JkaW5nU2F2ZWQ6ICJjYW52YXMtbWFuYWdlci1yZWNv
cmRpbmctc2F2ZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCmluZGV4IDFhOGRmNjhi
YmFkZDhkZThiZmZiMzgwNzk1MjY5Mjg3YTNhMzMyNDIuLjcxODU1NThhZDNlMGQ5NzliYjAwMWRi
OGUxMTAzZGI4MmFhOWUwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcwpAQCAtMzIzLDcg
KzMyMyw3IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAKICAgICBub2RlRm9ySWQobm9kZUlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X2lkVG9ET01Ob2RlW25vZGVJZF07CisgICAgICAgIHJldHVybiB0aGlzLl9pZFRvRE9NTm9kZVtu
b2RlSWRdIHx8IG51bGw7CiAgICAgfQogCiAgICAgX2RvY3VtZW50VXBkYXRlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1l
bGluZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKaW5kZXggNzYzM2RlMWJhZTBmNDEzZmUxMmNkMWMz
NjMzODRhZWYzZmQ4NDY1OS4uNzI5Njk2ZjA0MWMxNjJmZjk3Y2ZiMDkyNDk3YmJkMTVhYmY5ZmZi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwpAQCAtNzgxLDcgKzc4MSw3
IEBAIFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdJ
Lk9iamVjdAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChldmVudC5ub2RlSWQp
IHx8IG51bGw7CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZv
cklkKGV2ZW50Lm5vZGVJZCk7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChkb21Ob2RlKTsK
IAogICAgICAgICAgICAgcmVjb3JkID0gbmV3IFdJLk1lZGlhVGltZWxpbmVSZWNvcmQoZXZlbnRU
eXBlLCBkb21Ob2RlLCBkZXRhaWxzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRiZDY1N2Q5MzI2YWFhMGNlNjRmNmQ3ZWYwMzFkZjgxNmFmMmNmZTguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENv
cHlyaWdodCDCqSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEu
MSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cmVjdCB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9
IjEzIiBoZWlnaHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgotICAg
IDxwb2x5Z29uIHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMgMTIgMTMgMTIgMTMgMTEgMTEg
OCIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmQ2NTdkOTMyNmFhYTBjZTY0
ZjZkN2VmMDMxZGY4MTZhZjJjZmU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZwpAQCAtMCwwICsxLDYgQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDC
qSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0Jv
eD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEzIiBoZWln
aHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgorICAgIDxwb2x5Z29u
IHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMgMTIgMTMgMTIgMTMgMTEgMTEgOCIvPgorPC9z
dmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWlu
Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5k
ZXggYzgyNmQ1MWY5MTc3ZWRlNGQ5Yjk1NmI5N2M1MWQ0OTgwNjBlZTcwYy4uNDVlMjFjYWU1ZWQ0
MmY1OGQ4ZjRjYWJmMmEzNDM4YjY1N2UxNzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMzAsNiArMzAsOSBAQAogCiAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJFeHRlcm5hbC9Db2RlTWlycm9yL2NvZGVtaXJyb3IuY3Nz
Ij4KIAorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1l
Q29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQXVkaXRUZXN0Q2FzZUNvbnRlbnRWaWV3LmNzcyI+CkBAIC01Niw3
ICs1OSw2IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNE
ZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuY3NzIj4KLSAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGFuZ2VzRGV0YWlsc1Np
ZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
Q2hhcnREZXRhaWxzU2VjdGlvblJvdy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvQ2hlY2tib3hOYXZpZ2F0aW9uSXRlbS5jc3MiPgpAQCAtMTEzLDYgKzExNSw4
IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Hb1RvTGluZURpYWxv
Zy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhZGllbnRF
ZGl0b3IuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYWRp
ZW50U2xpZGVyLmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lT3ZlcnZp
ZXdHcmFwaC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVh
cEFsbG9jYXRpb25zVGltZWxpbmVWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250ZW50Vmlldy5jc3MiPgpAQCAt
MzQ4LDYgKzM1Miw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1RpbWVsaW5lT2JzZXJ2
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9Xb3JrZXJPYnNlcnZl
ci5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db25zb2xlTWVzc2FnZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0cnVtZW50LmpzIj48L3NjcmlwdD4K
QEAgLTM2MSw2ICszNjYsOCBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2FsU2NyaXB0LmpzIj48L3Njcmlw
dD4KIAorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNoZUZyYW1lLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CYWNrRm9yd2FyZEVudHJ5LmpzIj48
L3NjcmlwdD4KQEAgLTM4MCw3ICszODcsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2Fs
bGluZ0NvbnRleHRUcmVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Nh
bGxpbmdDb250ZXh0VHJlZU5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ2FudmFzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rp
b24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVBy
ZXZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvblR5
cGVzLmpzIj48L3NjcmlwdD4KQEAgLTU2Niw5ICs1NzIsOSBAQAogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9TdHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iVmlld3MvQ29uc29sZVRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvRWxlbWVudHNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9MYXllcnNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TY3JpcHRUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBA
IC01OTQsNiArNjAwLDkgQEAKIAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRv
bk5hdmlnYXRpb25JdGVtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0
aXZhdGVCdXR0b25Ub29sYmFySXRlbS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVEZXRhaWxzU2lkZWJh
clBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25D
YWNoZUZyYW1lQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBAIC02OTIs
NiArNzAxLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR29Ub0xpbmVEaWFsb2cuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFkaWVudEVkaXRvci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50U2xpZGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVE
YXRhR3JpZE5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxs
b2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZVBhdGhDb21wb25lbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3Jh
cGguanMiPjwvc2NyaXB0PgpAQCAtODU2LDYgKzg2Niw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkNv
bnRyb2xsZXJzL0Fubm90YXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRy
b2xsZXJzL0NvZGVNaXJyb3JFZGl0aW5nQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8
c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQmFzaWNCbG9ja0Fubm90YXRv
ci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzQwNTM1YWM3MGM3MTZh
MzE3MDM2MGI2YWNhYjNlMzcwNzZiMGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpAQCAtMCwwICsxLDI2
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbiA9IGNsYXNzIEFuaW1hdGlvbiBleHRlbmRz
IFdJLk9iamVjdAoreworICAgIGNvbnN0cnVjdG9yKGFuaW1hdGlvbklkLCB7Y3NzQW5pbWF0aW9u
TmFtZSwgY3NzVHJhbnNpdGlvblByb3BlcnR5LCBlZmZlY3QsIGJhY2t0cmFjZX0gPSB7fSkKKyAg
ICB7CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9u
SWQpOworICAgICAgICBjb25zb2xlLmFzc2VydCgoIWNzc0FuaW1hdGlvbk5hbWUgJiYgIWNzc1Ry
YW5zaXRpb25Qcm9wZXJ0eSkgfHwgISFjc3NBbmltYXRpb25OYW1lICE9PSAhIWNzc1RyYW5zaXRp
b25Qcm9wZXJ0eSk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWQgPSBhbmltYXRpb25JZDsK
KworICAgICAgICB0aGlzLl9jc3NBbmltYXRpb25OYW1lID0gY3NzQW5pbWF0aW9uTmFtZSB8fCBu
dWxsOworICAgICAgICB0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkgPSBjc3NUcmFuc2l0aW9u
UHJvcGVydHkgfHwgbnVsbDsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7Cisg
ICAgICAgIHRoaXMuX2JhY2t0cmFjZSA9IGJhY2t0cmFjZSB8fCBbXTsKKworICAgICAgICB0aGlz
Ll9yZXF1ZXN0Tm9kZVByb21pc2UgPSBudWxsOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisg
ICAgc3RhdGljIGZyb21QYXlsb2FkKHBheWxvYWQpCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IFdJLkFuaW1hdGlvbihwYXlsb2FkLmFuaW1hdGlvbklkLCB7CisgICAgICAgICAgICBjc3NBbmlt
YXRpb25OYW1lOiBwYXlsb2FkLmNzc0FuaW1hdGlvbk5hbWUsCisgICAgICAgICAgICBjc3NUcmFu
c2l0aW9uUHJvcGVydHk6IHBheWxvYWQuY3NzVHJhbnNpdGlvblByb3BlcnR5LAorICAgICAgICAg
ICAgZWZmZWN0OiBwYXlsb2FkLmVmZmVjdCwKKyAgICAgICAgICAgIGJhY2t0cmFjZTogQXJyYXku
aXNBcnJheShwYXlsb2FkLmJhY2t0cmFjZSkgPyBwYXlsb2FkLmJhY2t0cmFjZS5tYXAoKGl0ZW0p
ID0+IFdJLkNhbGxGcmFtZS5mcm9tUGF5bG9hZChXSS5tYWluVGFyZ2V0LCBpdGVtKSkgOiBbXSwK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yQW5pbWF0aW9u
VHlwZShhbmltYXRpb25UeXBlLCBwbHVyYWwpCisgICAgeworICAgICAgICBzd2l0Y2ggKGFuaW1h
dGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb246
CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25z
IikgOiBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5V
SVN0cmluZygiQ1NTIEFuaW1hdGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9uIik7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjoKKyAgICAgICAg
ICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb25zIikgOiBXSS5V
SVN0cmluZygiQ1NTIFRyYW5zaXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGZhbHNlLCAiVW5rbm93biBhbmltYXRpb24gdHlwZSIsIGFuaW1hdGlvblR5cGUpOwor
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JQ
bGF5YmFja0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlvbikKKyAgICB7CisgICAgICAgIHN3aXRj
aCAocGxheWJhY2tEaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJh
Y2tEaXJlY3Rpb24uTm9ybWFsOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJOb3Jt
YWwiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uUmV2ZXJz
ZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUmV2ZXJzZSIpOworICAgICAgICBj
YXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRlcm5hdGU6CisgICAgICAgICAg
ICByZXR1cm4gV0kuVUlTdHJpbmcoIkFsdGVybmF0ZSIpOworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRlcm5hdGVSZXZlcnNlOgorICAgICAgICAgICAgcmV0
dXJuIFdJLlVJU3RyaW5nKCJBbHRlcm5hdGUgUmV2ZXJzZSIpOworICAgICAgICB9CisKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIHBsYXliYWNrIGRpcmVjdGlvbiIsIHBs
YXliYWNrRGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3Rh
dGljIGRpc3BsYXlOYW1lRm9yRmlsbE1vZGUoZmlsbE1vZGUpCisgICAgeworICAgICAgICBzd2l0
Y2ggKGZpbGxNb2RlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLk5vbmU6
CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAgY2FzZSBX
SS5BbmltYXRpb24uRmlsbE1vZGUuRm9yd2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlT
dHJpbmcoIkZvcndhcmRzIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJh
Y2t3YXJkczoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQmFja3dhcmRzIik7Cisg
ICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJvdGg6CisgICAgICAgICAgICByZXR1
cm4gV0kuVUlTdHJpbmcoIkJvdGgiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1v
ZGUuQXV0bzoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQXV0byIpOworICAgICAg
ICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGZpbGwgbW9kZSIs
IGZpbGxNb2RlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIHJl
c2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCkKKyAgICB7CisgICAgICAgIFdJLkFuaW1hdGlv
bi5fbmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gMTsKKyAgICB9CisKKyAgICAvLyBQdWJs
aWMKKworICAgIGdldCBhbmltYXRpb25JZCgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbklkOyB9
CisgICAgZ2V0IGJhY2t0cmFjZSgpIHsgcmV0dXJuIHRoaXMuX2JhY2t0cmFjZTsgfQorCisgICAg
Z2V0IGFuaW1hdGlvblR5cGUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlv
bk5hbWUpCisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9u
OworICAgICAgICBpZiAodGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICAgICAg
cmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb247CisgICAgICAgIHJldHVybiBX
SS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb247CisgICAgfQorCisgICAgZ2V0IHN0YXJ0RGVs
YXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJzdGFydERlbGF5IiBpbiB0aGlzLl9lZmZlY3Qg
PyB0aGlzLl9lZmZlY3Quc3RhcnREZWxheSA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgZW5kRGVs
YXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJlbmREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8g
dGhpcy5fZWZmZWN0LmVuZERlbGF5IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25z
KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9ucyIgaW4gdGhpcy5fZWZmZWN0ID8g
dGhpcy5fZWZmZWN0Lml0ZXJhdGlvbnMgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlv
blN0YXJ0KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uU3RhcnQiIGluIHRoaXMu
X2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25TdGFydCA6IE5hTjsKKyAgICB9CisKKyAg
ICBnZXQgaXRlcmF0aW9uRHVyYXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRp
b25EdXJhdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkR1cmF0
aW9uIDogTmFOOworICAgIH0KKworICAgIGdldCB0aW1pbmdGdW5jdGlvbigpCisgICAgeworICAg
ICAgICByZXR1cm4gInRpbWluZ0Z1bmN0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZl
Y3QudGltaW5nRnVuY3Rpb24gOiBudWxsOworICAgIH0KKworICAgIGdldCBwbGF5YmFja0RpcmVj
dGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gInBsYXliYWNrRGlyZWN0aW9uIiBpbiB0aGlz
Ll9lZmZlY3QgPyB0aGlzLl9lZmZlY3QucGxheWJhY2tEaXJlY3Rpb24gOiBudWxsOworICAgIH0K
KworICAgIGdldCBmaWxsTW9kZSgpCisgICAgeworICAgICAgICByZXR1cm4gImZpbGxNb2RlIiBp
biB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuZmlsbE1vZGUgOiBudWxsOworICAgIH0KKwor
ICAgIGdldCBrZXlmcmFtZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJrZXlmcmFtZXMiIGlu
IHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMgOiBbXTsKKyAgICB9CisKKyAg
ICBnZXQgZGlzcGxheU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlv
bk5hbWUpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY3NzQW5pbWF0aW9uTmFtZTsKKworICAg
ICAgICBpZiAodGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eTsKKworICAgICAgICBpZiAoIXRoaXMuX3VuaXF1
ZURpc3BsYXlOYW1lTnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fdW5pcXVlRGlzcGxheU5hbWVO
dW1iZXIgPSBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcisrOworICAg
ICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFuaW1hdGlvbiAlZCIpLmZvcm1hdCh0aGlzLl91bmlx
dWVEaXNwbGF5TmFtZU51bWJlcik7CisgICAgfQorCisgICAgcmVxdWVzdE5vZGUoKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLl9yZXF1ZXN0Tm9kZVByb21pc2UpIHsKKyAgICAgICAgICAgIHRo
aXMuX3JlcXVlc3ROb2RlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmVuc3VyZURvY3VtZW50KCk7CisKKyAg
ICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisgICAg
ICAgICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJlcXVlc3ROb2RlKHRoaXMuX2FuaW1h
dGlvbklkLCAoZXJyb3IsIG5vZGVJZCkgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoZXJy
b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHRoaXMuX3JlcXVlc3ROb2RlUHJvbWlzZTsKKyAgICB9CisKKyAgICAvLyBBbmltYXRpb25N
YW5hZ2VyCisKKyAgICBlZmZlY3RDaGFuZ2VkKGVmZmVjdCkKKyAgICB7CisgICAgICAgIHRoaXMu
X3VwZGF0ZUVmZmVjdChlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoKQorICAg
IHsKKyAgICAgICAgdGhpcy5fcmVxdWVzdE5vZGVQcm9taXNlID0gbnVsbDsKKworICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hh
bmdlZCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3VwZGF0ZUVmZmVjdChlZmZl
Y3QpCisgICAgeworICAgICAgICB0aGlzLl9lZmZlY3QgPSBlZmZlY3QgfHwge307CisKKyAgICAg
ICAgaWYgKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgIHRoaXMuX2Vm
ZmVjdC50aW1pbmdGdW5jdGlvbiA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcodGhpcy5fZWZm
ZWN0LnRpbWluZ0Z1bmN0aW9uKTsKKworICAgICAgICBpZiAodGhpcy5fZWZmZWN0LmtleWZyYW1l
cykgeworICAgICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2YgdGhpcy5fZWZmZWN0LmtleWZy
YW1lcykgeworICAgICAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcpCisgICAgICAgICAg
ICAgICAgICAgIGtleWZyYW1lLmVhc2luZyA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcoa2V5
ZnJhbWUuZWFzaW5nKTsKKworICAgICAgICAgICAgICAgIGlmIChrZXlmcmFtZS5zdHlsZSkKKyAg
ICAgICAgICAgICAgICAgICAga2V5ZnJhbWUuc3R5bGUgPSBrZXlmcmFtZS5zdHlsZS5yZXBsYWNl
QWxsKC87XHMrL2csICI7XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RD
aGFuZ2VkKTsKKyAgICB9Cit9OworCitXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFt
ZU51bWJlciA9IDE7CisKK1dJLkFuaW1hdGlvbi5UeXBlID0geworICAgIFdlYkFuaW1hdGlvbjog
IndlYi1hbmltYXRpb24iLAorICAgIENTU0FuaW1hdGlvbjogImNzcy1hbmltYXRpb24iLAorICAg
IENTU1RyYW5zaXRpb246ICJjc3MtdHJhbnNpdGlvbiIsCit9OworCitXSS5BbmltYXRpb24uUGxh
eWJhY2tEaXJlY3Rpb24gPSB7CisgICAgTm9ybWFsOiAibm9ybWFsIiwKKyAgICBSZXZlcnNlOiAi
cmV2ZXJzZSIsCisgICAgQWx0ZXJuYXRlOiAiYWx0ZXJuYXRlIiwKKyAgICBBbHRlcm5hdGVSZXZl
cnNlOiAiYWx0ZXJuYXRlLXJldmVyc2UiLAorfTsKKworV0kuQW5pbWF0aW9uLkZpbGxNb2RlID0g
eworICAgIE5vbmU6ICJub25lIiwKKyAgICBGb3J3YXJkczogImZvcndhcmRzIiwKKyAgICBCYWNr
d2FyZHM6ICJiYWNrd2FyZHMiLAorICAgIEJvdGg6ICJib3RoIiwKKyAgICBBdXRvOiAiYXV0byIs
Cit9OworCitXSS5BbmltYXRpb24uRXZlbnQgPSB7CisgICAgRWZmZWN0Q2hhbmdlZDogImFuaW1h
dGlvbi1lZmZlY3QtY2hhbmdlZCIsCisgICAgVGFyZ2V0Q2hhbmdlZDogImFuaW1hdGlvbi10YXJn
ZXQtY2hhbmdlZCIsCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44Mjc2YWI0MGQ2OTlkNWRlYjJlNjA4MWY4NDU1YjIyZTQxMzY3OWZlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1h
dGlvbkNvbGxlY3Rpb24uanMKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uID0gY2xhc3MgQW5pbWF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIFdJLkNv
bGxlY3Rpb24KK3sKKyAgICBjb25zdHJ1Y3RvcihhbmltYXRpb25UeXBlKQorICAgIHsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoIWFuaW1hdGlvblR5cGUgfHwgT2JqZWN0LnZhbHVlcyhXSS5Bbmlt
YXRpb24uVHlwZSkuaW5jbHVkZXMoYW5pbWF0aW9uVHlwZSkpOworCisgICAgICAgIHN1cGVyKCk7
CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uVHlwZSA9IGFuaW1hdGlvblR5cGUgfHwgbnVsbDsK
KworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpCisgICAgICAgICAgICB0aGlzLl9h
bmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9IG51bGw7CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICBnZXQgYW5pbWF0aW9uVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblR5
cGU7IH0KKworICAgIGdldCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
YW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgY29uc3QgcGx1cmFsID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JUeXBlKHRoaXMuX2FuaW1h
dGlvblR5cGUsIHBsdXJhbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIldlYiBBbmltYXRpb25zIik7CisgICAgfQorCisgICAgb2JqZWN0SXNSZXF1aXJlZFR5cGUo
b2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0
aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gIXRoaXMu
X2FuaW1hdGlvblR5cGUgfHwgb2JqZWN0LmFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlv
blR5cGU7CisgICAgfQorCisgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoYW5pbWF0aW9u
VHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoV0kuQW5p
bWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAgICAgICBpZiAodGhp
cy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9u
VHlwZSA9PT0gdGhpcy5fYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5
cGVNYXApCisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9
IG5ldyBNYXA7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhp
cy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAuZ2V0KGFuaW1hdGlvblR5cGUpOworICAg
ICAgICBpZiAoIWFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKSB7CisgICAgICAgICAgICBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uKGFuaW1h
dGlvblR5cGUpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVN
YXAuc2V0KGFuaW1hdGlvblR5cGUsIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGU7CisgICAgfQor
CisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpdGVtQWRkZWQoaXRlbSkKKyAgICB7CisgICAgICAg
IHN1cGVyLml0ZW1BZGRlZChpdGVtKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5
cGUpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMu
YW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAg
ICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmFkZChpdGVtKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGl0ZW1SZW1vdmVkKGl0ZW0pCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Fu
aW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlw
ZSA9IHRoaXMuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsK
KyAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLnJlbW92ZShpdGVtKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHN1cGVyLml0ZW1SZW1vdmVkKGl0ZW0pOworICAgIH0KKworICAg
IGl0ZW1zQ2xlYXJlZChpdGVtcykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25D
b2xsZWN0aW9uRm9yVHlwZU1hcCkgeworICAgICAgICAgICAgZm9yIChsZXQgYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUgb2YgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAudmFs
dWVzKCkpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUuY2xlYXIo
KTsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVyLml0ZW1zQ2xlYXJlZChpdGVtcyk7CisgICAg
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKaW5kZXggYzljYzM5NjJlODBm
YjY2ZmUxNWRhMTM1NGVhMjkyNmJmODQxY2RjZS4uMzFkNjI3ZDgxMWJkNjMzMmRjNDgwODVmOTdk
ZjUwNjRkMjAxMjdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKQEAgLTE0
Niw3ICsxNDYsNyBAQCBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0ID0gY2xhc3MgQXVkaXRUZXN0Q2Fz
ZVJlc3VsdCBleHRlbmRzIFdJLkF1ZGl0VGVzdFJlc3VsdEJhcwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJZCA9
IGF3YWl0IGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGRvbU5vZGVTdHJpbmcpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggeyB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkgfHwgbnVsbDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQo
bm9kZUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IDYyYmEyNjQxMDVhYWVkZjRiYTVl
MmJlMzc1NWEyYjVkMzhiY2ZhZDMuLjhlMmI1MmUyYzFmMTFhMzZkNjVkZmNhNGVjOTUwZjYwOTg1
OTY5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DYW52YXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NhbnZhcy5qcwpAQCAtOTcsNyArOTcsNyBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52
YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
Q2FudmFzMkQ6CiAgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CiAgICAgICAg
IGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyOgotICAgICAgICAgICAg
cmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiKTsKKyAgICAgICAg
ICAgIHJldHVybiBXSS5VSVN0cmluZygiQml0bWFwIFJlbmRlcmVyIik7CiAgICAgICAgIGNhc2Ug
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9j
YWxpemVkU3RyaW5nKCJXZWJHTCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHTDI6CkBAIC0xMDYsOSArMTA2LDEwIEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5n
KCJXZWIgR1BVIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYk1ldGFs
OgogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJNZXRhbCIpOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY29uc29sZS5lcnJvcigiSW52YWxpZCBjYW52
YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOwogICAgICAgICB9CisKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGNhbnZhcyBjb250ZXh0IHR5cGUiLCBjb250ZXh0
VHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KIAogICAgIHN0YXRpYyByZXNldFVu
aXF1ZURpc3BsYXlOYW1lTnVtYmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwppbmRleCAxZjhkZDdlZjQ1ZDYy
OTc3OGNkODI4N2JmYjhkMzFiMmExMDg5ZjMwLi5iNmRlOTUzNTQyMmM5YzYzYWUxYWQxNGU5ZGM0
N2ZlYWM3NjgwNGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKQEAgLTE0OCw2ICsxNDgsMjMgQEAgV0kuUmVj
b3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVy
biBuZXcgV0kuUmVjb3JkaW5nKHBheWxvYWQudmVyc2lvbiwgdHlwZSwgcGF5bG9hZC5pbml0aWFs
U3RhdGUsIGZyYW1lcywgcGF5bG9hZC5kYXRhKTsKICAgICB9CiAKKyAgICBzdGF0aWMgZGlzcGxh
eU5hbWVGb3JSZWNvcmRpbmdUeXBlKHJlY29yZGluZ1R5cGUpCisgICAgeworICAgICAgICBzd2l0
Y2ggKHJlY29yZGluZ1R5cGUpIHsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXMy
RDoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiMkQiKTsKKyAgICAgICAgY2FzZSBS
ZWNvcmRpbmcuVHlwZS5DYW52YXNCaXRtYXBSZW5kZXJlcjoKKyAgICAgICAgICAgIHJldHVybiBX
SS5VSVN0cmluZygiQml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5
cGUuQ2FudmFzV2ViR0w6CisgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmco
IldlYkdMIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0wyOgorICAg
ICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTDIiKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biByZWNvcmRpbmcgdHlw
ZSIsIHJlY29yZGluZ1R5cGUpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKICAgICBz
dGF0aWMgZGlzcGxheU5hbWVGb3JTd2l6emxlVHlwZShzd2l6emxlVHlwZSkKICAgICB7CiAgICAg
ICAgIHN3aXRjaCAoc3dpenpsZVR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIu
anMKaW5kZXggYjExOTVlZDBjYTBjYjBjYTgwNjY4ZTBlOThkYzY3OWRjYWQ5MTdhMy4uN2U1NmU4
YmIzOWNiYTBjNjI4MGVhOWNlZGQ0NWJlNTU0NWYwZjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0
aW9uT2JzZXJ2ZXIuanMKQEAgLTI3LDYgKzI3LDI2IEBAIFdJLkFuaW1hdGlvbk9ic2VydmVyID0g
Y2xhc3MgQW5pbWF0aW9uT2JzZXJ2ZXIgZXh0ZW5kcyBJbnNwZWN0b3JCYWNrZW5kLkRpc3BhdGNo
CiB7CiAgICAgLy8gRXZlbnRzIGRlZmluZWQgYnkgdGhlICJBbmltYXRpb24iIGRvbWFpbi4KIAor
ICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0
aW9uTWFuYWdlci5hbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvbik7CisgICAgfQorCisgICAgZWZm
ZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0
aW9uTWFuYWdlci5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpOworICAgIH0KKwor
ICAgIHRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRp
b25NYW5hZ2VyLnRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpOworICAgIH0KKworICAgIGFuaW1h
dGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1h
bmFnZXIuYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKTsKKyAgICB9CisKICAgICB0cmFj
a2luZ1N0YXJ0KHRpbWVzdGFtcCkKICAgICB7CiAgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdlci5h
bmltYXRpb25UcmFja2luZ1N0YXJ0ZWQodGltZXN0YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5q
cwppbmRleCBkZDAwYWY1OGMxMjUzMDU4NmUxYzI4MzAzMmI3MmZkNjI5ZmEzMmQ5Li4yY2JhNTY0
ZDRhN2I2YTM4YzE4OWU1NzMzZDNjZjNjNjBmYzUxNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0
LmpzCkBAIC0xODgsNiArMTg4LDI1IEBAIFdJLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9i
amVjdAogICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQucmVzb2x2ZUNvbnRleHQoY2FudmFzLmlk
ZW50aWZpZXIsIG9iamVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOwogICAgIH0KIAorICAgIHN0YXRp
YyByZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbiwgb2JqZWN0R3JvdXAsIGNhbGxiYWNrKQorICAg
IHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGNhbGxiYWNrID09PSAiZnVuY3Rpb24i
KTsKKworICAgICAgICBmdW5jdGlvbiB3cmFwQ2FsbGJhY2soZXJyb3IsIG9iamVjdCkgeworICAg
ICAgICAgICAgaWYgKGVycm9yIHx8ICFvYmplY3QpCisgICAgICAgICAgICAgICAgY2FsbGJhY2so
bnVsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbGJhY2soV0kuUmVt
b3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVjdCwgV0kubWFpblRhcmdldCkpOworICAgICAgICB9
CisKKyAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworCisgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRp
b24gZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRhcmdldC5oYXND
b21tYW5kKCJBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiIpKTsKKworICAgICAgICB0YXJnZXQu
QW5pbWF0aW9uQWdlbnQucmVzb2x2ZUFuaW1hdGlvbihhbmltYXRpb24uYW5pbWF0aW9uSWQsIG9i
amVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAg
Z2V0IHRhcmdldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0
Lmh0bWwKaW5kZXggMWQ0NDVhMDRjZGViZWVjZmE3YjBjYjA4ZWQ2ZmJiZDRiZjQ2MWU4NC4uMGJh
NTYwYjk2YzAyMzA2ZWI2MWIzMmJkZjRlYWM4OTkyM2RiZjBjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAtMTA4LDYgKzEwOCw3IEBACiAg
ICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1dvcmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0luc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvU291cmNlQ29kZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMjEsNiArMTIyLDggQEAKICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9Mb2NhbFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0FuaW1hdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Bbmlt
YXRpb25Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Jy
ZWFrcG9pbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVSW5zdHJ1
bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DUFVUaW1lbGluZS5q
cyI+PC9zY3JpcHQ+CkBAIC0xMzcsNyArMTQwLDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0NhbnZhcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xs
ZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25F
bnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50
cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rp
b25UeXBlcy5qcyI+PC9zY3JpcHQ+CkBAIC0yMzgsNiArMjQwLDcgQEAKICAgICA8c2NyaXB0IHNy
Yz0iUHJveGllcy9IZWFwU25hcHNob3RQcm94eS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlByb3hpZXMvSGVhcFNuYXBzaG90V29ya2VyUHJveHkuanMiPjwvc2NyaXB0PgogCisgICAg
PHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0JyZWFrcG9pbnRMb2dNZXNz
YWdlTGV4ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVGVzdC9UZXN0LmpzCmluZGV4IDNjNDNhZTc4YmUxNzI3NzA3MjliNzAzMmFiZTU0
NDQzYzk0NmE4YmIuLjAwNjQ0N2E5NjdlOWMyMzdmNjBjMTAwMDhiYjQ2MzQ1NzJiN2M0NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMK
QEAgLTcwLDYgKzcwLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS53b3Jr
ZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIsCiAgICAgICAgIFdJLmRvbURlYnVnZ2Vy
TWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIsCiAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdl
ciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAgIF07CiAKICAgICAvLyBSZWdpc3RlciBm
b3IgZXZlbnRzLgpAQCAtOTEsNiArOTIsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiBXSS5j
b250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogewogICAgIC8vIFRoaW5ncyB0aGF0IHdvdWxkIG5v
cm1hbGx5IGdldCBjYWxsZWQgYnkgdGhlIFVJLCB0aGF0IHdlIHN0aWxsIHdhbnQgdG8gZG8gaW4g
dGVzdHMuCisgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5hcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgp
OwogICAgIFdJLmRhdGFiYXNlTWFuYWdlci5lbmFibGUoKTsKQEAgLTE4MSw2ICsxODMsNyBAQCBX
SS51cGRhdGVWaXNpYmlsaXR5U3RhdGUgPSAoKSA9PiB7fTsKICAgICAgICAgICAgIGdldCgpIHsg
cmV0dXJuIFdJLm1haW5UYXJnZXQuX2FnZW50c1tkb21haW5OYW1lXTsgfSwKICAgICAgICAgfSk7
CiAgICAgfQorICAgIG1ha2VBZ2VudEdldHRlcigiQW5pbWF0aW9uIik7CiAgICAgbWFrZUFnZW50
R2V0dGVyKCJBdWRpdCIpOwogICAgIG1ha2VBZ2VudEdldHRlcigiQXBwbGljYXRpb25DYWNoZSIp
OwogICAgIG1ha2VBZ2VudEdldHRlcigiQ1BVUHJvZmlsZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzCmluZGV4
IGQ0NDdiODk1MGI5MzkyMWQwYTg2MDEzMDY4YThiMzQ4MmI1MzE4ZGMuLmQyZTk5YWYxYjZlODUx
MDdkZmQ2NmQ0MWEzMTNhNjRlYWU3MDBmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcwpAQCAtMTMxLDYgKzEz
MSw0NiBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2Us
ICFhY3R1YWwsIG1lc3NhZ2UsIGFjdHVhbCk7CiAgICAgfQogCisgICAgZXhwZWN0RW1wdHkoYWN0
dWFsLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8
fCB0eXBlb2YgYWN0dWFsID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0
KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgIWFjdHVhbC5sZW5ndGgsIG1lc3Nh
Z2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0IHx8IGFjdHVhbCBpbnN0YW5jZW9mIE1hcCkgeworICAg
ICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwg
IWFjdHVhbC5zaXplLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICJvYmplY3QiKSB7CisgICAg
ICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5LCBp
c0VtcHR5T2JqZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmZhaWwoImV4cGVjdEVtcHR5IHNob3VsZCBu
b3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAgIEFjdHVhbDogIiArIHRoaXMuX2V4
cGVjdGF0aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAgICB9CisKKyAgICBleHBlY3ROb3RF
bXB0eShhY3R1YWwsIG1lc3NhZ2UpCisgICAgeworICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShh
Y3R1YWwpIHx8IHR5cGVvZiBhY3R1YWwgPT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICB0aGlz
Ll9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5LCAhIWFjdHVhbC5s
ZW5ndGgsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0IHx8IGFjdHVhbCBpbnN0YW5jZW9m
IE1hcCkgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwuc2l6ZSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAi
b2JqZWN0IikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0
aW9uVHlwZS5Ob3RFbXB0eSwgIWlzRW1wdHlPYmplY3QoYWN0dWFsKSwgbWVzc2FnZSwgYWN0dWFs
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZmFpbCgi
ZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6XG4g
ICAgQWN0dWFsOiAiICsgdGhpcy5fZXhwZWN0YXRpb25WYWx1ZUFzU3RyaW5nKGFjdHVhbCkpOwor
ICAgIH0KKwogICAgIGV4cGVjdE51bGwoYWN0dWFsLCBtZXNzYWdlKQogICAgIHsKICAgICAgICAg
dGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5OdWxsLCBhY3R1YWwgPT09
IG51bGwsIG1lc3NhZ2UsIGFjdHVhbCwgbnVsbCk7CkBAIC0zODEsNiArNDIxLDEwIEBAIFRlc3RI
YXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAg
IHJldHVybiAiZXhwZWN0VGhhdCglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVj
dGF0aW9uVHlwZS5GYWxzZToKICAgICAgICAgICAgIHJldHVybiAiZXhwZWN0RmFsc2UoJXMpIjsK
KyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHk6CisgICAgICAg
ICAgICByZXR1cm4gImV4cGVjdEVtcHR5KCVzKSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3Mu
RXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJleHBlY3ROb3RF
bXB0eSglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5OdWxs
OgogICAgICAgICAgICAgcmV0dXJuICJleHBlY3ROdWxsKCVzKSI7CiAgICAgICAgIGNhc2UgVGVz
dEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdE51bGw6CkBAIC00MTYsNiArNDYwLDEwIEBAIFRl
c3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
ICAgIHJldHVybiAidHJ1dGh5IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlv
blR5cGUuRmFsc2U6CiAgICAgICAgICAgICByZXR1cm4gImZhbHNleSI7CisgICAgICAgIGNhc2Ug
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJl
bXB0eSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5
OgorICAgICAgICAgICAgcmV0dXJuICJub3QgZW1wdHkiOwogICAgICAgICBjYXNlIFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3ROdWxsOgogICAgICAgICAgICAgcmV0dXJuICJub3QgbnVs
bCI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVxdWFsOgpA
QCAtNDQwLDYgKzQ4OCw4IEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5k
cyBXSS5PYmplY3QKIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZSA9IHsKICAgICBUcnVlOiBT
eW1ib2woImV4cGVjdC10cnVlIiksCiAgICAgRmFsc2U6IFN5bWJvbCgiZXhwZWN0LWZhbHNlIiks
CisgICAgRW1wdHk6IFN5bWJvbCgiZXhwZWN0LWVtcHR5IiksCisgICAgTm90RW1wdHk6IFN5bWJv
bCgiZXhwZWN0LW5vdC1lbXB0eSIpLAogICAgIE51bGw6IFN5bWJvbCgiZXhwZWN0LW51bGwiKSwK
ICAgICBOb3ROdWxsOiBTeW1ib2woImV4cGVjdC1ub3QtbnVsbCIpLAogICAgIEVxdWFsOiBTeW1i
b2woImV4cGVjdC1lcXVhbCIpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rp
b25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ1YzZhNzc1NGU3YTI3M2I5NmNjOTA5ZDYx
MGE0MjZjZWJjMDViZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAg
LTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxl
Y3Rpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHg7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjlmNjc3OWVlZTE2MTI0ODk5NTI3MjAyYmRhYzY0ZjEyN2Y0YjEwZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1dJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNv
bGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldworewor
ICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db2xsZWN0
aW9uKTsKKworICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisKKyAgICAgICAgbGV0IGRlc2NyaXB0aW9uRWxlbWVudCA9IGNvbnRl
bnRQbGFjZWhvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7
CisgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5jbGFzc05hbWUgPSAiZGVzY3JpcHRpb24iOwor
CisgICAgICAgIHN3aXRjaCAocmVwcmVzZW50ZWRPYmplY3QuYW5pbWF0aW9uVHlwZSkgeworICAg
ICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbjoKKyAgICAgICAgICAgIGRl
c2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBh
bmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iKTsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOgorICAgICAgICAg
ICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcg
Zm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb246CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBm
b3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENv
bnRlbnQpOworCisgICAgICAgIHN1cGVyKHJlcHJlc2VudGVkT2JqZWN0LCBXSS5BbmltYXRpb25D
b250ZW50VmlldywgY29udGVudFBsYWNlaG9sZGVyKTsKKworICAgICAgICB0aGlzLnNlbGVjdGlv
bkVuYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJh
bmltYXRpb24tY29sbGVjdGlvbiIpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaGFu
ZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgc3Vidmll
dyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9m
IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxl
UmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFByb3Rl
Y3RlZAorCisgICAgY29udGVudFZpZXdBZGRlZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAg
IGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMu
X2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3
TW91c2VMZWF2ZSk7CisgICAgfQorCisgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3
KQorICAgIHsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVy
KCJtb3VzZWVudGVyIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKTsKKyAgICAg
ICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwg
dGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKTsKKyAgICB9CisKKyAgICBkZXRhY2hl
ZCgpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7
CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisK
KyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IGNvbnRlbnRWaWV3ID0gV0kuVmlldy5mcm9tRWxlbWVudChldmVudC50YXJnZXQpOworICAg
ICAgICBpZiAoIShjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gY29udGVu
dFZpZXcucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGFuaW1hdGlvbi5yZXF1ZXN0Tm9kZSgp
LnRoZW4oKG5vZGUpID0+IHsKKyAgICAgICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5vd25lckRv
Y3VtZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG5vZGUuaGlnaGxp
Z2h0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNl
TGVhdmUoZXZlbnQpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGln
aGxpZ2h0KCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNTg4OTBmNWNjZDY0YWNiZjYyZDlhYjkxMGNiZWI4NzhjZGY2MjgwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
QW5pbWF0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
LmNvbnRlbnQtdmlldy5hbmltYXRpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3
aWR0aDogMTAwJTsKKyAgICBtYXJnaW46IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIo
LS1iYWNrZ3JvdW5kLWNvbG9yLWNvbnRlbnQpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigt
LWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkIHsK
KyAgICBvdXRsaW5lOiBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKK30KKworLmNvbnRl
bnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxp
Z24taXRlbXM6IGNlbnRlcjsKKyAgICBoZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdo
dCk7CisgICAgcGFkZGluZzogMCA2cHg7CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisuY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgeworICAgIHdoaXRlLXNwYWNl
OiBub3dyYXA7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxl
cyA+IC50aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKK30K
KworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxl
IHsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVt
cHR5KTo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7
Jm1kYXNoOyZuYnNwOyAqLzsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIgeworICAgIGJvcmRlcjogbm9uZTsKKyAgICBvcGFjaXR5OiAwOwor
fQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9u
LWJhciB7CisgICAgb3BhY2l0eTogMTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl
cjsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgw
LCAwJSwgOTYlKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2
ZyB7CisgICAgd2lkdGg6IDEwMCU7Cit9CisKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiAucHJldmlldyA+IHN2ZyB7CisgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOwor
fQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QgeworICAg
IGZpbGw6IHRyYW5zcGFyZW50OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2
aWV3ID4gc3ZnID4gLmRlbGF5IGxpbmUgeworICAgIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG9y
KTsKKyAgICBzdHJva2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGggeworICAgIGZpbGw6IHZhcigtLWdseXBoLWNv
bG9yLWFjdGl2ZSk7CisgICAgZmlsbC1vcGFjaXR5OiAwLjU7CisgICAgc3Ryb2tlOiB2YXIoLS1n
bHlwaC1jb2xvci1hY3RpdmUpOworICAgIHN0cm9rZS13aWR0aDogMTsKK30KKworLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlIHsKKyAgICBm
aWxsOiB2YXIoLS10ZXh0LWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS10ZXh0LWNv
bG9yKTsKKyAgICBzdHJva2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gLnByZXZpZXcgPiBzcGFuIHsKKyAgICBwYWRkaW5nOiA0cHg7CisgICAgY29sb3I6IHZhcigt
LXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVt
ZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxl
cyA+IC50aXRsZSB7CisgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICB9CisK
KyAgICAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0
bGUgeworICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworICAgIH0K
KworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDIwJSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25Db250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTkwNDVjZTA2Njg0NjA3NGYyYmVhMjhiOTFi
ODQ5N2IwMGQ5MjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlv
bkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3Rvcihy
ZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsKKworICAgICAgICBzdXBlcihyZXBy
ZXNlbnRlZE9iamVjdCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9
IG51bGw7CisgICAgICAgIHRoaXMuX2NhY2hlZFdpZHRoID0gTmFOOworCisgICAgICAgIHRoaXMu
ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBTdGF0
aWMKKworICAgIHN0YXRpYyBnZXQgcHJldmlld0hlaWdodCgpCisgICAgeworICAgICAgICByZXR1
cm4gNDA7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9
CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAg
ICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0g
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIp
KTsKKworICAgICAgICBsZXQgdGl0bGVzQ29udGFpbmVyID0gaGVhZGVyRWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRpdGxlc0NvbnRh
aW5lci5jbGFzc05hbWUgPSAidGl0bGVzIjsKKworICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0g
dGl0bGVzQ29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KSk7CisgICAgICAgIHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAidGl0bGUiOworICAgICAgICB0
aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc3BsYXlO
YW1lOworCisgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aGlz
Ll9zdWJ0aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gInN1YnRpdGxlIjsKKworICAgICAgICBsZXQg
bmF2aWdhdGlvbkJhciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyOworCisgICAgICAgIGxldCBhbmlt
YXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbSgiYW5pbWF0aW9uLXRhcmdldCIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24gVGFyZ2V0Iiks
ICJJbWFnZXMvTWFya3VwLnN2ZyIsIDE2LCAxNik7CisgICAgICAgIGFuaW1hdGlvblRhcmdldEJ1
dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVt
LlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7CisgICAgICAgIFdJLmFkZE1vdXNlRG93bkNvbnRleHRN
ZW51SGFuZGxlcnMoYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZWxlbWVudCwg
dGhpcy5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudS5iaW5kKHRoaXMp
KTsKKyAgICAgICAgbmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbShhbmltYXRpb25UYXJn
ZXRCdXR0b25OYXZpZ2F0aW9uSXRlbSk7CisKKyAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmQo
bmF2aWdhdGlvbkJhci5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRp
b25CYXIpOworCisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLmVsZW1lbnQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aGlz
Ll9wcmV2aWV3Q29udGFpbmVyLmNsYXNzTmFtZSA9ICJwcmV2aWV3IjsKKyAgICB9CisKKyAgICBs
YXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5f
cmVmcmVzaFN1YnRpdGxlKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAg
fQorCisgICAgc2l6ZURpZENoYW5nZSgpCisgICAgeworICAgICAgICBzdXBlci5zaXplRGlkQ2hh
bmdlKCk7CisKKyAgICAgICAgdGhpcy5fY2FjaGVkV2lkdGggPSB0aGlzLmVsZW1lbnQucmVhbE9m
ZnNldFdpZHRoOworICAgIH0KKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVy
LmF0dGFjaGVkKCk7CisKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExp
c3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZl
Y3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVu
dExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVU
YXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAg
ICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0
aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMp
OworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0ku
QW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQs
IHRoaXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJp
dmF0ZQorCisgICAgX3JlZnJlc2hTdWJ0aXRsZSgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnJlcXVlc3ROb2RlKCkudGhlbigoZG9tTm9kZSkgPT4geworICAgICAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IGRvbU5vZGU7CisKKyAgICAgICAgICAg
IHRoaXMuX3N1YnRpdGxlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICAgICAgaWYg
KGRvbU5vZGUpCisgICAgICAgICAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LmFwcGVuZENo
aWxkKFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKGRvbU5vZGUpKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgX3JlZnJlc2hQcmV2aWV3KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3ByZXZpZXdD
b250YWluZXIucmVtb3ZlQ2hpbGRyZW4oKTsKKworICAgICAgICBsZXQga2V5ZnJhbWVzID0gdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5rZXlmcmFtZXM7CisgICAgICAgIGlmICgha2V5ZnJhbWVzLmxl
bmd0aCkgeworICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICBz
cGFuLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlm
cmFtZXMuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQg
c3RhcnREZWxheSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3RhcnREZWxheSB8fCAwOworICAg
ICAgICBsZXQgaXRlcmF0aW9uRHVyYXRpb24gPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lml0ZXJh
dGlvbkR1cmF0aW9uIHx8IDA7CisgICAgICAgIGxldCBlbmREZWxheSA9IHRoaXMucmVwcmVzZW50
ZWRPYmplY3QuZW5kRGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IHRvdGFsRHVyYXRpb24gPSBzdGFy
dERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheTsKKyAgICAgICAgaWYgKHRvdGFs
RHVyYXRpb24gPT09IDApIHsKKyAgICAgICAgICAgIGxldCBzcGFuID0gdGhpcy5fcHJldmlld0Nv
bnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAg
ICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJUaGlzIGFuaW1hdGlvbiBo
YXMgbm8gZHVyYXRpb24uIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBjb25zdCBwcmV2aWV3SGVpZ2h0ID0gV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJldmll
d0hlaWdodDsKKworICAgICAgICBjb25zdCBtYXJrZXJIZWFkUmFkaXVzID0gNDsKKyAgICAgICAg
Y29uc3QgbWFya2VySGVhZFBhZGRpbmcgPSAyOworCisgICAgICAgIC8vIFNxdWVlemUgdGhlIGVu
dGlyZSBwcmV2aWV3IHNvIHRoYXQgbWFya2VycyBhcmVuJ3QgY3V0IG9mZi4KKyAgICAgICAgY29u
c3Qgc3F1ZWV6ZVhTdGFydCA9IChpdGVyYXRpb25EdXJhdGlvbiAmJiBzdGFydERlbGF5KSA/IDAg
OiBtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmc7CisgICAgICAgIGNvbnN0IHNx
dWVlemVYRW5kID0gKGl0ZXJhdGlvbkR1cmF0aW9uICYmIGVuZERlbGF5KSA/IDAgOiBtYXJrZXJI
ZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmc7CisgICAgICAgIGNvbnN0IHNxdWVlemVZU3Rh
cnQgPSA4OworCisgICAgICAgIC8vIE1vdmUgdGhlIGVhc2luZyBsaW5lIGRvd24gdG8gY3V0IG9m
ZiB0aGUgYm90dG9tIGJvcmRlci4KKyAgICAgICAgY29uc3QgYWRqdXN0RWFzaW5nWSA9IDAuNTsK
KworICAgICAgICBsZXQgc2Vjb25kc1BlclBpeGVsID0gdGhpcy5fY2FjaGVkV2lkdGggLyB0b3Rh
bER1cmF0aW9uOworCisgICAgICAgIHN0YXJ0RGVsYXkgKj0gc2Vjb25kc1BlclBpeGVsOworICAg
ICAgICBpdGVyYXRpb25EdXJhdGlvbiA9IChpdGVyYXRpb25EdXJhdGlvbiAqIHNlY29uZHNQZXJQ
aXhlbCkgLSBzcXVlZXplWFN0YXJ0IC0gc3F1ZWV6ZVhFbmQ7CisgICAgICAgIGVuZERlbGF5ICo9
IHNlY29uZHNQZXJQaXhlbDsKKworICAgICAgICBsZXQgc3ZnID0gdGhpcy5fcHJldmlld0NvbnRh
aW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJzdmciKSk7CisgICAgICAgIHN2Zy5z
ZXRBdHRyaWJ1dGUoInZpZXdCb3giLCBgMCAwICR7dGhpcy5fY2FjaGVkV2lkdGh9ICR7cHJldmll
d0hlaWdodH1gKTsKKworICAgICAgICBmdW5jdGlvbiBhZGRUaXRsZShwYXJlbnQsIHRpdGxlKSB7
CisgICAgICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gcGFyZW50LmFwcGVuZENoaWxkKGNyZWF0
ZVNWR0VsZW1lbnQoInRpdGxlIikpOworICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250
ZW50ID0gdGl0bGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RhcnREZWxheSkgeworICAg
ICAgICAgICAgbGV0IHN0YXJ0RGVsYXlDb250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRl
U1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlDb250YWluZXIuY2xhc3NM
aXN0LmFkZCgiZGVsYXkiLCAic3RhcnQiKTsKKworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlM
aW5lID0gc3RhcnREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJs
aW5lIikpOworICAgICAgICAgICAgc3RhcnREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIChw
cmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsKKyAgICAgICAgICAgIHN0YXJ0RGVs
YXlMaW5lLnNldEF0dHJpYnV0ZSgieDIiLCBzdGFydERlbGF5KTsKKyAgICAgICAgICAgIHN0YXJ0
RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3Rh
cnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5RWxlbWVudCA9IHN0YXJ0RGVs
YXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAg
ICAgICAgIHN0YXJ0RGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBzdGFydERlbGF5
KTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
cHJldmlld0hlaWdodCk7CisKKyAgICAgICAgICAgIGFkZFRpdGxlKHN0YXJ0RGVsYXlFbGVtZW50
LCBXSS5VSVN0cmluZygiU3RhcnQgRGVsYXkgJXMiKS5mb3JtYXQoTnVtYmVyLnNlY29uZHNUb1N0
cmluZyh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgLyAxMDAwKSkpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGVuZERlbGF5KSB7CisgICAgICAgICAgICBsZXQgZW5kRGVsYXlD
b250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAg
ICAgICAgIGVuZERlbGF5Q29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5z
bGF0ZSgke3N0YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIHNxdWVlemVYU3RhcnR9LCAw
KWApOworICAgICAgICAgICAgZW5kRGVsYXlDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZGVsYXki
LCAiZW5kIik7CisKKyAgICAgICAgICAgIGxldCBlbmREZWxheUxpbmUgPSBlbmREZWxheUNvbnRh
aW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAgICAg
ZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZ
U3RhcnQpIC8gMik7CisgICAgICAgICAgICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ4MiIs
IGVuZERlbGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkyIiwg
KHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisgICAgICAgICAgICBsZXQg
ZW5kRGVsYXlFbGVtZW50ID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1
dGUoIndpZHRoIiwgc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgZW5kRGVsYXkpOwor
ICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgcHJldmll
d0hlaWdodCk7CisKKyAgICAgICAgICAgIGFkZFRpdGxlKGVuZERlbGF5RWxlbWVudCwgV0kuVUlT
dHJpbmcoIkVuZCBEZWxheSAlcyIpLmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QuZW5kRGVsYXkgLyAxMDAwKSkpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGl0ZXJhdGlvbkR1cmF0aW9uKSB7CisgICAgICAgICAgICBsZXQgdGltaW5nRnVuY3Rp
b24gPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnRpbWluZ0Z1bmN0aW9uOworCisgICAgICAgICAg
ICBsZXQgYWN0aXZlRHVyYXRpb25Db250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgIGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmNsYXNz
TGlzdC5hZGQoImFjdGl2ZSIpOworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25Db250YWluZXIu
c2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3RhcnREZWxheSArIHNxdWVl
emVYU3RhcnR9LCAke3NxdWVlemVZU3RhcnR9KWApOworCisgICAgICAgICAgICBjb25zdCBzdGFy
dFkgPSAwOworICAgICAgICAgICAgY29uc3QgZW5kWSA9IHByZXZpZXdIZWlnaHQgLSBzcXVlZXpl
WVN0YXJ0OworICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gZW5kWSAtIHN0YXJ0WTsKKworICAg
ICAgICAgICAgZm9yIChsZXQgW2tleWZyYW1lQSwga2V5ZnJhbWVCXSBvZiBrZXlmcmFtZXMuYWRq
YWNlbmNpZXMoKSkgeworICAgICAgICAgICAgICAgIGxldCBzdGFydFggPSBpdGVyYXRpb25EdXJh
dGlvbiAqIGtleWZyYW1lQS5vZmZzZXQ7CisgICAgICAgICAgICAgICAgbGV0IGVuZFggPSBpdGVy
YXRpb25EdXJhdGlvbiAqIGtleWZyYW1lQi5vZmZzZXQ7CisgICAgICAgICAgICAgICAgbGV0IHdp
ZHRoID0gZW5kWCAtIHN0YXJ0WDsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmcgPSBrZXlm
cmFtZUEuZWFzaW5nIHx8IHRpbWluZ0Z1bmN0aW9uOworCisgICAgICAgICAgICAgICAgbGV0IGVh
c2luZ0NvbnRhaW5lciA9IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0
ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICAgICAgZWFzaW5nQ29udGFpbmVyLmNsYXNz
TGlzdC5hZGQoImVhc2luZyIpOworICAgICAgICAgICAgICAgIGVhc2luZ0NvbnRhaW5lci5zZXRB
dHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydFh9LCAke3N0YXJ0WX0pYCk7
CisKKyAgICAgICAgICAgICAgICBsZXQgeDEgPSBlYXNpbmcuaW5Qb2ludC54ICogd2lkdGg7Cisg
ICAgICAgICAgICAgICAgbGV0IHkxID0gKCgxIC0gZWFzaW5nLmluUG9pbnQueSkgKiBoZWlnaHQp
ICsgYWRqdXN0RWFzaW5nWTsKKyAgICAgICAgICAgICAgICBsZXQgeDIgPSBlYXNpbmcub3V0UG9p
bnQueCAqIHdpZHRoOworICAgICAgICAgICAgICAgIGxldCB5MiA9ICgoMSAtIGVhc2luZy5vdXRQ
b2ludC55KSAqIGhlaWdodCkgKyBhZGp1c3RFYXNpbmdZOworCisgICAgICAgICAgICAgICAgbGV0
IGVhc2luZ1BhdGggPSBlYXNpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgicGF0aCIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdQYXRoLnNldEF0dHJpYnV0ZSgiZCIs
IGBNIDAgJHtoZWlnaHQgKyBhZGp1c3RFYXNpbmdZfSBDICR7eDF9ICR7eTF9ICR7eDJ9ICR7eTJ9
ICR7d2lkdGh9ICR7YWRqdXN0RWFzaW5nWX0gViAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IFpg
KTsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZVJlY3QgPSBlYXNpbmdDb250YWluZXIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgICAgICB0aXRs
ZVJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHdpZHRoKTsKKyAgICAgICAgICAgICAgICB0aXRs
ZVJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBoZWlnaHQpOworCisgICAgICAgICAgICAgICAg
YWRkVGl0bGUodGl0bGVSZWN0LCBlYXNpbmcudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIGtleWZyYW1lcykgeworICAgICAgICAg
ICAgICAgIGxldCB4ID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZS5vZmZzZXQ7CisKKyAg
ICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVDb250YWluZXIgPSBhY3RpdmVEdXJhdGlvbkNvbnRh
aW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgICAg
IGtleWZyYW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImtleWZyYW1lIik7CisgICAgICAgICAg
ICAgICAga2V5ZnJhbWVDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNs
YXRlKCR7eH0sICR7c3RhcnRZfSlgKTsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1h
cmtlckhlYWQgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50
KCJjaXJjbGUiKSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVNYXJrZXJIZWFkLnNldEF0dHJp
YnV0ZSgiciIsIG1hcmtlckhlYWRSYWRpdXMpOworCisgICAgICAgICAgICAgICAgbGV0IGtleWZy
YW1lTWFya2VyTGluZSA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0Vs
ZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVNYXJrZXJMaW5lLnNldEF0
dHJpYnV0ZSgieTEiLCBoZWlnaHQpOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9
IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7
CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgieCIsIC0xICogKG1hcmtl
ckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZykpOworICAgICAgICAgICAgICAgIHRpdGxl
UmVjdC5zZXRBdHRyaWJ1dGUoInkiLCAtMSAqIHNxdWVlemVZU3RhcnQpOworICAgICAgICAgICAg
ICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgKG1hcmtlckhlYWRSYWRpdXMgKyBt
YXJrZXJIZWFkUGFkZGluZykgKiAyKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCBoZWlnaHQgKyBzcXVlZXplWVN0YXJ0KTsKKworICAgICAgICAgICAg
ICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwga2V5ZnJhbWUuc3R5bGUpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfQorCisgICAgX2hhbmRsZUVmZmVjdENoYW5nZWQoZXZlbnQpCisgICAg
eworICAgICAgICB0aGlzLl9yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIF9oYW5kbGVU
YXJnZXRDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxl
KCk7CisgICAgfQorCisgICAgX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1l
bnUoY29udGV4dE1lbnUpCisgICAgeworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJ
LlVJU3RyaW5nKCJMb2cgQW5pbWF0aW9uIiksICgpID0+IHsKKyAgICAgICAgICAgIFdJLlJlbW90
ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRp
bWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCwgKHJlbW90ZU9iamVjdCkgPT4geworICAgICAg
ICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gV0kuVUlTdHJpbmcoIlNlbGVjdGVkIEFu
aW1hdGlvbiIpOworICAgICAgICAgICAgICAgIGNvbnN0IGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3Mg
PSB0cnVlOworICAgICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBl
bmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJlbW90ZU9iamVjdCwgYWRkU3Bl
Y2lhbFVzZXJMb2dDbGFzcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2Fu
aW1hdGlvblRhcmdldERPTU5vZGUpCisgICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0
ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSk7
CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5l
bC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTA0Y2EzMjViOGIxNjY2YmM1OWNkZjA2MDk5NGNlZmUyMzg2NDYz
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzCkBAIC0wLDAgKzEsNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250
ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5oZWFkZXIgPiAuc3Vi
dGl0bGUgeworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KKwor
LnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxz
LXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk3JSk7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRl
dGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1r
ZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyB7CisgICAgZGlzcGxheTogdGFi
bGUtcm93OworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250
ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rp
b24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3IgeworICAgIGhlaWdodDogYXV0bzsKKyAgICBwYWRk
aW5nOiA0cHggMDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKK30KKworQG1l
ZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5zaWRlYmFyID4gLnBhbmVs
LmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlv
bi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGhzbCgwLCAwJSwgMTglKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzZiNDQyOTUwMWMzMmU2N2UxOWVhY2Nh
M2U1YWZlOGIwODljNTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAt
MCwwICsxLDI1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFu
ZWwgPSBjbGFzcyBBbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuRGV0YWls
c1NpZGViYXJQYW5lbAoreworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVy
KCJhbmltYXRpb24iLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIikpOworCisgICAgICAgIHRoaXMu
X2FuaW1hdGlvbiA9IG51bGw7CisKKyAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAg
PSBuZXcgTWFwOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaW5zcGVjdChvYmplY3Rz
KQorICAgIHsKKyAgICAgICAgaWYgKCEob2JqZWN0cyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAg
ICAgICAgIG9iamVjdHMgPSBbb2JqZWN0c107CisKKyAgICAgICAgdGhpcy5hbmltYXRpb24gPSBv
YmplY3RzLmZpbmQoKG9iamVjdCkgPT4gb2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsK
KworICAgICAgICByZXR1cm4gISF0aGlzLmFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBnZXQgYW5p
bWF0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9hbmltYXRpb247CisgICAgfQor
CisgICAgc2V0IGFuaW1hdGlvbihhbmltYXRpb24pCisgICAgeworICAgICAgICBpZiAoYW5pbWF0
aW9uID09PSB0aGlzLl9hbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKHRoaXMuX2FuaW1hdGlvbikgeworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92
ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hh
bmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5p
bWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5n
ZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICB9
CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0gYW5pbWF0aW9uIHx8IG51bGw7CisKKyAgICAg
ICAgaWYgKHRoaXMuX2FuaW1hdGlvbikgeworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hh
bmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5p
bWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQs
IHRoaXMuX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICB9CisK
KyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAor
CisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0
KCk7CisKKyAgICAgICAgdGhpcy5fbmFtZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdyhXSS5VSVN0cmluZygiTmFtZSIpKTsKKyAgICAgICAgdGhpcy5fdHlwZVJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiVHlwZSIpKTsKKyAgICAgICAg
dGhpcy5fdGFyZ2V0Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3Ry
aW5nKCJUYXJnZXQiKSk7CisgICAgICAgIGxldCBpZGVudGl0eVNlY3Rpb24gPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1pZGVudGl0eSIsIFdJLlVJU3RyaW5nKCJJZGVudGl0eSIp
LCBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX25hbWVSb3csIHRoaXMuX3R5cGVS
b3csIHRoaXMuX3RhcmdldFJvd10pXSk7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVu
dC5hcHBlbmRDaGlsZChpZGVudGl0eVNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5f
aXRlcmF0aW9uc1JvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmlu
ZygiSXRlcmF0aW9ucyIpKTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IikpOworICAgICAg
ICB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdyhXSS5VSVN0cmluZygiRHVyYXRpb24iKSk7CisgICAgICAgIGxldCBpdGVyYXRpb25zR3Jv
dXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5faXRlcmF0aW9uc1JvdywgdGhp
cy5faXRlcmF0aW9uU3RhcnRSb3csIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93XSk7CisKKyAg
ICAgICAgdGhpcy5fc3RhcnREZWxheVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyhXSS5VSVN0cmluZygiU3RhcnQgRGVsYXkiKSk7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93
ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFbmQgRGVsYXki
KSk7CisgICAgICAgIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFYXNpbmciKSk7CisgICAgICAgIGxldCB0aW1pbmdH
cm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9zdGFydERlbGF5Um93LCB0
aGlzLl9lbmREZWxheVJvdywgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3ddKTsKKworICAgICAgICB0
aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyhXSS5VSVN0cmluZygiRGlyZWN0aW9uIikpOworICAgICAgICB0aGlzLl9maWxsTW9kZVJvdyA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRmlsbCIpKTsKKyAg
ICAgICAgbGV0IGZpbGxEaXJlY3Rpb25Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3Vw
KFt0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdywgdGhpcy5fZmlsbE1vZGVSb3ddKTsKKworICAg
ICAgICBsZXQgZWZmZWN0U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9u
LWVmZmVjdCIsIFdJLlVJU3RyaW5nKCJFZmZlY3QiKSwgW2l0ZXJhdGlvbnNHcm91cCwgdGltaW5n
R3JvdXAsIGZpbGxEaXJlY3Rpb25Hcm91cF0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZWZmZWN0U2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlz
Ll9rZXlmcmFtZXNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwOworICAgICAgICBs
ZXQga2V5ZnJhbWVzU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWtl
eWZyYW1lcyIsIFdJLlVJU3RyaW5nKCJLZXlmcmFtZXMiKSwgW3RoaXMuX2tleWZyYW1lc0dyb3Vw
XSk7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChrZXlmcmFt
ZXNTZWN0aW9uLmVsZW1lbnQpOworCisgICAgICAgIGNvbnN0IHNlbGVjdGFibGUgPSBmYWxzZTsK
KyAgICAgICAgbGV0IGJhY2t0cmFjZVRyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lKHNl
bGVjdGFibGUpOworICAgICAgICBiYWNrdHJhY2VUcmVlT3V0bGluZS5kaXNjbG9zdXJlQnV0dG9u
cyA9IGZhbHNlOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VUcmVlQ29udHJvbGxlciA9IG5ldyBX
SS5DYWxsRnJhbWVUcmVlQ29udHJvbGxlcihiYWNrdHJhY2VUcmVlT3V0bGluZSk7CisKKyAgICAg
ICAgbGV0IGJhY2t0cmFjZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKKyAgICAgICAg
YmFja3RyYWNlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja3RyYWNlVHJlZU91dGxpbmUuZWxl
bWVudCk7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb24oImFuaW1hdGlvbi1iYWNrdHJhY2UiLCBXSS5VSVN0cmluZygiQmFja3RyYWNlIiksIFtu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYmFja3RyYWNlUm93XSldKTsKKyAgICAgICAgdGhp
cy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMu
Y29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVs
ZW1lbnQpOworICAgIH0KKworICAgIGxheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5sYXlv
dXQoKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCk7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCYWNrdHJh
Y2VTZWN0aW9uKCk7CisKKyAgICAgICAgZm9yIChsZXQgY29kZU1pcnJvciBvZiB0aGlzLl9jb2Rl
TWlycm9yU2VjdGlvbk1hcC52YWx1ZXMoKSkKKyAgICAgICAgICAgIGNvZGVNaXJyb3IucmVmcmVz
aCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9yZWZyZXNoSWRlbnRpdHlTZWN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX25hbWVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRp
b24uZGlzcGxheU5hbWU7CisgICAgICAgIHRoaXMuX3R5cGVSb3cudmFsdWUgPSBXSS5BbmltYXRp
b24uZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKHRoaXMuX2FuaW1hdGlvbi5hbmltYXRpb25U
eXBlKTsKKworICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBudWxsOworICAgICAgICB0
aGlzLl9hbmltYXRpb24ucmVxdWVzdE5vZGUoKS50aGVuKChkb21Ob2RlKSA9PiB7CisgICAgICAg
ICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBkb21Ob2RlID8gV0kubGlua2lmeU5vZGVSZWZl
cmVuY2UoZG9tTm9kZSkgOiBudWxsOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVmcmVz
aEVmZmVjdFNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gMDsKKyAg
ICAgICAgY29uc3QgcmVhZE9ubHkgPSB0cnVlOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbnNS
b3cudmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbnMpID8gdGhpcy5fYW5p
bWF0aW9uLml0ZXJhdGlvbnMudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRoaXMu
X2l0ZXJhdGlvblN0YXJ0Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRp
b25TdGFydCkgPyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQudG9Mb2NhbGVTdHJpbmco
KSA6IG51bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93LnZhbHVlID0gIWlz
TmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbikgPyBOdW1iZXIuc2Vjb25kc1Rv
U3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbiAvIDEwMDApIDogbnVsbDsK
KworICAgICAgICB0aGlzLl9zdGFydERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnN0
YXJ0RGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5zdGFydERl
bGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl9lbmREZWxheVJvdy52YWx1ZSA9IHRo
aXMuX2FuaW1hdGlvbi5lbmREZWxheSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5p
bWF0aW9uLmVuZERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl90aW1pbmdGdW5j
dGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbiA/IHRoaXMuX2Fu
aW1hdGlvbi50aW1pbmdGdW5jdGlvbi50b1N0cmluZygpIDogbnVsbDsKKworICAgICAgICB0aGlz
Ll9wbGF5YmFja0RpcmVjdGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFja0Rp
cmVjdGlvbiA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKHRo
aXMuX2FuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbikgOiBudWxsOworICAgICAgICB0aGlzLl9m
aWxsTW9kZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5maWxsTW9kZSA/IFdJLkFuaW1hdGlv
bi5kaXNwbGF5TmFtZUZvckZpbGxNb2RlKHRoaXMuX2FuaW1hdGlvbi5maWxsTW9kZSkgOiBudWxs
OworCisgICAgICAgIGZvciAobGV0IHNlY3Rpb24gb2YgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25N
YXAua2V5cygpKQorICAgICAgICAgICAgc2VjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkRl
dGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlRGV0
YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9j
b2RlTWlycm9yU2VjdGlvbk1hcC5jbGVhcigpOworCisgICAgICAgIGxldCBrZXlmcmFtZVNlY3Rp
b25zID0gW107CisgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIHRoaXMuX2FuaW1hdGlvbi5r
ZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGxldCByb3dzID0gW107CisKKyAgICAgICAgICAgIGxl
dCBrZXlmcmFtZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1rZXlm
cmFtZS1vZmZzZXQtIiArIGtleWZyYW1lLm9mZnNldCwgTnVtYmVyLnBlcmNlbnRhZ2VTdHJpbmco
a2V5ZnJhbWUub2Zmc2V0LCBwcmVjaXNpb24pKTsKKyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlv
bi5hZGRFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRl
Q2hhbmdlZCwgdGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQs
IHRoaXMpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9ucy5wdXNoKGtleWZyYW1lU2VjdGlv
bik7CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcpIHsKKyAgICAgICAgICAgICAg
ICBsZXQgc3VidGl0bGUgPSBrZXlmcmFtZVNlY3Rpb24uaGVhZGVyRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgICAgIHN1YnRp
dGxlLmNsYXNzTmFtZSA9ICJzdWJ0aXRsZSI7CisgICAgICAgICAgICAgICAgc3VidGl0bGUudGV4
dENvbnRlbnQgPSBgICR7ZW1EYXNofSAke2tleWZyYW1lLmVhc2luZy50b1N0cmluZygpfWA7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZS5zdHlsZSkgeworICAgICAg
ICAgICAgICAgIGxldCBjb2RlTWlycm9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yID0gV0kuQ29kZU1pcnJvckVk
aXRvci5jcmVhdGUoY29kZU1pcnJvckVsZW1lbnQsIHsKKyAgICAgICAgICAgICAgICAgICAgbW9k
ZTogImNzcyIsCisgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5OiAibm9jdXJzb3IiLAorICAg
ICAgICAgICAgICAgICAgICBsaW5lV3JhcHBpbmc6IHRydWUsCisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgY29kZU1pcnJvci5zZXRWYWx1ZShrZXlmcmFtZS5zdHlsZSk7CisK
KyAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IG51bGw7CisgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gb3B0aW9uc0ZvclR5cGUodHlwZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZFRva2VuczogL1xidGFnXGIvLAorICAg
ICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobWFya2VyLCB2YWx1ZU9iamVjdCwgdmFsdWVT
dHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3dhdGNoID0gbmV3IFdJ
LklubGluZVN3YXRjaCh0eXBlLCB2YWx1ZU9iamVjdCwgcmVhZE9ubHkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0VW5pcXVlQm9va21hcmsobWFya2VyLnJhbmdl
LnN0YXJ0UG9zaXRpb24oKS50b0NvZGVNaXJyb3IoKSwgc3dhdGNoLmVsZW1lbnQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yQ29sb3JUZXh0TWFya2Vycyhj
b2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuQ29s
b3IpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yR3JhZGllbnRUZXh0TWFya2Vy
cyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUu
R3JhZGllbnQpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yQ3ViaWNCZXppZXJU
ZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dh
dGNoLlR5cGUuQmV6aWVyKSk7CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvclNwcmlu
Z1RleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVT
d2F0Y2guVHlwZS5TcHJpbmcpKTsKKworICAgICAgICAgICAgICAgIGxldCByb3cgPSBuZXcgV0ku
RGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgICAgICAgICAgcm93LmVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgic3R5bGVzIik7CisgICAgICAgICAgICAgICAgcm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
Y29kZU1pcnJvckVsZW1lbnQpOworICAgICAgICAgICAgICAgIHJvd3MucHVzaChyb3cpOworCisg
ICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAuc2V0KGtleWZyYW1lU2Vj
dGlvbiwgY29kZU1pcnJvcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghcm93
cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBsZXQgZW1wdHlSb3cgPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5vIFN0eWxlcyIpKTsKKyAgICAgICAgICAgICAgICBl
bXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7CisgICAgICAgICAgICAgICAgcm93cy5wdXNoKGVt
cHR5Um93KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9uLmdy
b3VwcyA9IFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChyb3dzKV07CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFrZXlmcmFtZVNlY3Rpb25zLmxlbmd0aCkgeworICAgICAgICAgICAgbGV0IGVt
cHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93KFdJLlVJU3RyaW5nKCJObyBLZXlmcmFt
ZXMiKSk7CisgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7CisgICAgICAg
ICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goZW1wdHlSb3cpOworICAgICAgICB9CisgICAgICAg
IHRoaXMuX2tleWZyYW1lc0dyb3VwLnJvd3MgPSBrZXlmcmFtZVNlY3Rpb25zOworICAgIH0KKwor
ICAgIF9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigpCisgICAgeworICAgICAgICBsZXQgY2FsbEZy
YW1lcyA9IHRoaXMuX2FuaW1hdGlvbi5iYWNrdHJhY2U7CisgICAgICAgIHRoaXMuX2JhY2t0cmFj
ZVRyZWVDb250cm9sbGVyLmNhbGxGcmFtZXMgPSBjYWxsRnJhbWVzOworICAgICAgICB0aGlzLl9i
YWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlkZGVuID0gIWNhbGxGcmFtZXMubGVuZ3RoOworICAg
IH0KKworICAgIF9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fcmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAgICB9CisKKyAgICBfaGFuZGxl
QW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJl
c2hJZGVudGl0eVNlY3Rpb24oKTsKKyAgICB9CisKKyAgICBfaGFuZGxlRGV0YWlsc1NlY3Rpb25D
b2xsYXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgY29kZU1pcnJv
ciA9IHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmdldChldmVudC50YXJnZXQpOworICAgICAg
ICBjb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZp
ZXcuY3NzCmluZGV4IDRlNWE5MGUxZjAzMTdmMGM0ZWJmNGY3OTk3MDI3NmM3ZmJkMjdmNTguLmNj
MTY2YmQzZTYwZDM4MWE3NWExYTE3OTQzYWJlMjM2NzA3YThiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNz
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXND
b250ZW50Vmlldy5jc3MKQEAgLTIzLDExICsyMywxMSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7Cisu
Y29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5
MCUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiAucHJldmlldyB7Cisu
Y29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAg
IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CkBAIC0z
NiwxNyArMzYsMTcgQEAKICAgICBwYWRkaW5nOiAxNXB4OwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGRpc3BsYXk6IGZs
ZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXM6bm90KC50YWIpID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiAu
cHJldmlldyA+IGltZyB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEw
MCU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IDptYXRjaGVzKGhlYWRl
ciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9v
dGVyKSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApAQCAtNTYsNyArNTYsNyBAQAogfQogCiBA
bWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5j
YW52YXM6bm90KC50YWIpIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcu
anMKaW5kZXggOWI0ZmQ2ZjZlZDdlMWNiNzYzOTc1MTExMDExNTMyNDY1NGQ1OGYwMS4uOTkzZGE1
MTNmMmRkNTYzM2ZkNzk0ODNlYTRjYTlmZmJhOTZlZmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVu
dFZpZXcuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBD
YW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgdGhpcy5f
cmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
KCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2
ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52
aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHku
TG93OwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRM
aXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLnJlZnJl
c2hQcmV2aWV3LCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tl
ZCwgdGhpcy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhp
cy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5h
dmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kg
Z3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05h
dmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fc2hvd0dy
aWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRp
b25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7
CkBAIC03Nyw2ICs3NywyOSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0Nv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAgICAgfQogCisg
ICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZWZy
ZXNoUHJldmlldygpOworICAgIH0KKworICAgIC8vIERyb3Bab25lVmlldyBkZWxlZ2F0ZQorCisg
ICAgZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUsIGV2ZW50KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmls
ZXMiKTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpvbmUsIGV2ZW50KQor
ICAgIHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzOworICAg
ICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3QuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFz
TWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQK
IAogICAgIGluaXRpYWxMYXlvdXQoKQpAQCAtMTYwLDYgKzE4MywxMyBAQCBXSS5DYW52YXNDb250
ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcK
IAogICAgICAgICBpZiAoaXNDYXJkKQogICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFBpeGVsU2l6
ZSgpOworCisgICAgICAgIGlmICghaXNDYXJkKSB7CisgICAgICAgICAgICBsZXQgZHJvcFpvbmVW
aWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAgICAgICAgIGRyb3Bab25lVmll
dy50ZXh0ID0gV0kuVUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAgICAgICAgIGRy
b3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50OworICAgICAgICAgICAgdGhp
cy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBsYXlv
dXQoKQpAQCAtMTkxLDEzICsyMjEsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENh
bnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fdXBk
YXRlSW1hZ2VHcmlkKCk7CiAgICAgfQogCi0gICAgc2hvd24oKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCiAg
ICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKQEAgLTIyMyw2
ICsyNDYsOCBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAKICAgICAgICAgV0kuc2V0dGlu
Z3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdl
ZCwgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkLCB0aGlzKTsKKworICAgICAgICB0aGlzLnJlZnJlc2hQ
cmV2aWV3KCk7CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQpAQCAtMjkxLDExICszMTYsNiBAQCBX
SS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFZpZXcKIAogICAgIF9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVu
dShjb250ZXh0TWVudSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKQotICAg
ICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUs
IHRoaXMuX2NhbnZhc05vZGUpOwotCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRv
cigpOwotCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvZyBD
YW52YXMgQ29udGV4dCIpLCAoKSA9PiB7CiAgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVz
b2x2ZUNhbnZhc0NvbnRleHQodGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1hbmFn
ZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CiAgICAgICAgICAgICAg
ICAgaWYgKCFyZW1vdGVPYmplY3QpCkBAIC0zMDYsNiArMzI2LDExIEBAIFdJLkNhbnZhc0NvbnRl
bnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmlldwog
ICAgICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBlbmRJbW1lZGlh
dGVFeGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJlbW90ZU9iamVjdCwgYWRkU3BlY2lhbFVzZXJM
b2dDbGFzcyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2NhbnZhc05vZGUp
CisgICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0
TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7CiAgICAgfQogCiAgICAgX3Nob3dHcmlkQnV0dG9uQ2xp
Y2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCmluZGV4
IDEwZjM3YzA0NmIwYzJhMTI4MmM1ZWM5OWRjNmNiOTkwYjIyMzZjNWYuLjFjNmQ2NDMxZjliN2Q2
MzZlOGYzZThjZTE1YzZiYjJhNjViMTM2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcuY3NzCkBAIC0yNiwyOSArMjYsMjkgQEAKIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IHsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICBhbGlnbi1p
dGVtczogZmxleC1zdGFydDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7
Ci0KLSAgICAtLWl0ZW0tbWFyZ2luOiAxMHB4OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICBwYWRkaW5nOiA0cHggMDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyB7CiAgICAgZmxleC1ncm93OiAwOwotICAgIG1hcmdpbjogdmFyKC0t
aXRlbS1tYXJnaW4pOworICAgIGZsZXgtc2hyaW5rOiAwOwogICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBtYXJnaW46IDRweDsKICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3Ip
OwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMsCisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAg
IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSB7CiAgICAgYm9yZGVyLWNvbG9yOiByZWQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6
bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1k
aXJlY3Rpb246IHJvdzsKICAgICBmbGV4LXNocmluazogMDsKQEAgLTU5LDEzNiArNTksMTM2IEBA
CiAgICAgY3Vyc29yOiBkZWZhdWx0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIHsKICAgICBmb250LXNpemU6
IDEzcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVy
IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcywKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4g
LnNpemUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnNpemUgewogICAgIHdoaXRlLXNwYWNl
OiBub3dyYXA7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0
bGVzID4gLnN1YnRpdGxlLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgIGNvbG9yOiB2YXIoLS10
ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgLnN1YnRpdGxlOjpiZWZvcmUgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciAuc3VidGl0bGU6OmJlZm9yZSB7CiAgICAgY29udGVudDogIlwwMEEwXDIwMTRcMDBBMCI7IC8q
ICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0
bGVzID4gLnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUg
ewogICAgIGNvbG9yOiB3aGl0ZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMg
PiAuc3VidGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRs
ZSB7CiAgICAgY29sb3I6IHZhcigtLXNlbGVjdGVkLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5n
LWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKICAgICBmaWx0ZXI6
IGJyaWdodG5lc3MoMCkgaW52ZXJ0KCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFk
ZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGFsaWduLWl0ZW1zOiBpbml0aWFsOwogICAgIGJv
cmRlcjogbm9uZTsKICAgICBvcGFjaXR5OiAwOwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAw
bXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFk
ZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBvcGFjaXR5OiAxOwogICAgIHRyYW5zaXRp
b246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxl
ZCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
Om5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRl
bS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7CiAgICAgZmlsdGVyOiBncmF5c2NhbGUoKTsK
ICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2
aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3Zl
ciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
Om5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRl
bS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3ZlciB7CiAgICAgZmlsdGVyOiBi
cmlnaHRuZXNzKDk1JSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTphY3RpdmUg
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpu
b3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0u
cmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHsKICAgICBmaWx0ZXI6IGJy
aWdodG5lc3MoODAlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3LAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3MtdmlldywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CiAgICAgaGVpZ2h0OiAy
ODBweDsKICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGVhc2UtaW4tb3V0
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAorLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAu
cHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CiAgICAgZGlzcGxheTogbm9uZTsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMg
PiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIGJvcmRlci1yYWRpdXM6IDRw
eDsKICAgICBib3gtc2hhZG93OiAxcHggMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuNTgpOwogfQog
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmll
dyB7CiAgICAgcG9zaXRpb246IHN0YXRpYzsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciB7CiAgICAgYm9yZGVy
LXRvcDogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmll
dy1yZWxhdGVkLWl0ZW1zIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGFsaWduLWl0ZW1zOiBj
ZW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNo
YWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IDpt
YXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CiAgICAgd2lkdGg6IDE2cHg7
CiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcg
KyBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcgKyBpbWcgewogICAgIC13
ZWJraXQtbWFyZ2luLXN0YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+
IC52aWV3LXNoYWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRl
ciB7CiAgICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcp
IDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZp
ZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRl
ZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9S
ZWNvcmRpbmcuc3ZnKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxleGlibGUtc3BhY2UgeworLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5mbGV4
aWJsZS1zcGFjZSB7CiAgICAgZmxleDogMTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
Lm1lbW9yeS1jb3N0IHsKICAgICAtd2Via2l0LXBhZGRpbmctc3RhcnQ6IDRweDsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVj
b3JkaW5ncyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzLnNhdmVkLXJlY29yZGluZ3MgewogICAgIGhlaWdodDogMzQwcHg7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29y
ZGluZ3MgLnRyZWUtb3V0bGluZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CiAgICAg
b3ZlcmZsb3cteTogc2Nyb2xsOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgPiAuaXRl
bS5yZWNvcmRpbmcgPiAuaWNvbiB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSA+IC5pdGVt
LnJlY29yZGluZyA+IC5pY29uIHsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGlu
Zy5zdmcpOwogfQogCkBAIC0yMDksNDMgKzIwOSwzOSBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMt
Y29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
ewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKLSAgICB9Ci0KLSAgICAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcywKLSAgICAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4g
aW1nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZh
cigtLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZl
ID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CisgICAgLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0
aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci10ZXJ0aWFyeSk7CiAgICAg
fQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
PiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKICAgICAgICAgLS1yZWNv
cmRpbmctY29sb3I6IGhzbCgwLCAxMDAlLCAzOSUpOwogICAgICAgICBib3JkZXItY29sb3I6IHZh
cigtLXJlY29yZGluZy1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7
CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
dmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0
bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICAgICAgY29sb3I6IHZhcigt
LXRleHQtY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKLSAg
ICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciAubWVtb3J5LWNvc3QgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vj
b25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAudmlldy1yZWNvcmRpbmcgeworICAgIC5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLnZp
ZXctcmVjb3JkaW5nIHsKICAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKICAgICB9CiAKLSAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0
aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgICAgIGNvbG9yOiB1bnNl
dDsKICAgICAgICAgb3BhY2l0eTogMC41CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcuanMKaW5kZXggNjM5YjM2ZDg1OWJiN2NmM2MzNDQ0NWFhMGViNzQ5NTQz
M2M0MTA5OC4uMGQxNjVkZDI2OGQ0MzcwMjhhNDNkMTQ5ZTA3Y2ZhODM4YjRkZTdhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3Zl
cnZpZXdDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCkBAIC0yOSw3ICsyOSw4IEBA
IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pOwogCi0gICAg
ICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV0ku
VUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKyAgICAgICAgbGV0IGNvbnRlbnRQbGFj
ZWhvbGRlciA9IFdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkID8gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2IikgOiBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5v
IENhbnZhcyBDb250ZXh0cyIpKTsKKwogICAgICAgICBsZXQgZGVzY3JpcHRpb25FbGVtZW50ID0g
Y29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpKTsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LmNsYXNzTmFtZSA9ICJkZXNjcmlwdGlv
biI7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5n
KCJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiIp
OwpAQCAtNjIsMjEgKzYzLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAg
IHRoaXMuX3VwZGF0ZVJlY29yZGluZ0F1dG9DYXB0dXJlQ2hlY2tib3hMYWJlbChmcmFtZUNvdW50
KTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
ID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlT
dHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOwotICAgICAgICB0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlTdHJpbmcoIklt
cG9ydCIpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25T
dHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKLQotICAg
ICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2
aWdhdGlvbkl0ZW0oInJlZnJlc2gtYWxsIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2ggYWxsIiksICJJ
bWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWZyZXNo
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoUHJldmlld3MsIHRoaXMpOwotCi0gICAg
ICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVC
dXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNw
YXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIklt
YWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7Ci0gICAgICAgIHRoaXMu
X3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5z
aG93SW1hZ2VHcmlkLnZhbHVlOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZp
Z2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50
LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7Ci0KICAgICAgICAg
aW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bUNsaWNrZWQsIHRoaXMpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQs
IHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CiAK
ICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcgPSBudWxsOwogICAgICAg
ICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZSA9IG51bGw7CkBAIC05MCwxNyArNzcs
MTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKIAogICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMo
KQogICAgIHsKLSAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFt0aGlzLl9pbXBvcnRCdXR0
b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVm
cmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25J
dGVtXTsKLSAgICAgICAgaWYgKFdJLkNhbnZhc01hbmFnZXIuc3VwcG9ydHNSZWNvcmRpbmdBdXRv
Q2FwdHVyZSgpKQotICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnVuc2hpZnQodGhpcy5fcmVj
b3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9u
SXRlbSk7CisgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgaWYgKHRo
aXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0pCisgICAgICAgICAgICBuYXZp
Z2F0aW9uSXRlbXMucHVzaCh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVt
KTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKICAgICB9CiAKLSAgICBoaWRkZW4o
KQorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKICAgICB7Ci0gICAgICAgIFdJLmRv
bU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLQotICAgICAgICBzdXBlci5oaWRkZW4o
KTsKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAg
ICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAg
ICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAtMTE1LDIzICsxMDMsMTggQEAgV0kuQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMucmVtb3ZlU3Vidmlldyh0aGlzLl9z
YXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7CiAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXco
dGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcpOwogICAgICAgICB9Ci0KLSAgICAgICAg
dGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7CiAgICAgfQogCiAgICAgY29udGVudFZpZXdS
ZW1vdmVkKGNvbnRlbnRWaWV3KQogICAgIHsKICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUVu
dGVyKTsKICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJt
b3VzZWxlYXZlIiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUxlYXZlKTsKLQotICAgICAgICB0aGlz
Ll91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICB9CiAKICAgICBhdHRhY2hlZCgpCiAgICAg
ewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwogCi0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJ
bWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMu
X3VwZGF0ZVNob3dJbWFnZUdyaWQsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNS
ZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2
ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxl
ZENoYW5nZWQsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRv
Q2FwdHVyZUZyYW1lQ291bnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5n
ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudENoYW5n
ZWQsIHRoaXMpOwogCkBAIC0xNDEsNDkgKzEyNCwyNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxl
YwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUucmVtb3ZlQ2hp
bGRyZW4oKTsKICAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIu
c2F2ZWRSZWNvcmRpbmdzKQogICAgICAgICAgICAgdGhpcy5fYWRkU2F2ZWRSZWNvcmRpbmcocmVj
b3JkaW5nKTsKKworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsK
KyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcp
CisgICAgICAgICAgICAgICAgc3Vidmlldy5yZWZyZXNoUHJldmlldygpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgZGV0YWNoZWQoKQogICAgIHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRl
RE9NTm9kZUhpZ2hsaWdodCgpOworCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZl
bnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBXSS5zZXR0aW5ncy5jYW52
YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxs
LCBudWxsLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0Nh
cHR1cmVFbmFibGVkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0gICAg
ICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBu
dWxsLCB0aGlzKTsKIAogICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwogICAgIH0KIAogICAgIC8v
IFByaXZhdGUKIAotICAgIGdldCBfaXRlbU1hcmdpbigpCi0gICAgewotICAgICAgICByZXR1cm4g
cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KS5nZXRQcm9wZXJ0
eVZhbHVlKCItLWl0ZW0tbWFyZ2luIikpOwotICAgIH0KLQotICAgIF9yZWZyZXNoUHJldmlld3Mo
KQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgY2FudmFzQ29udGVudFZpZXcgb2YgdGhpcy5zdWJ2
aWV3cykKLSAgICAgICAgICAgIGNhbnZhc0NvbnRlbnRWaWV3LnJlZnJlc2hQcmV2aWV3KCk7Ci0g
ICAgfQotCi0gICAgX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpCi0gICAgewotICAgICAgICBsZXQg
aGFzSXRlbXMgPSAhIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZTsKLSAgICAgICAgdGhpcy5f
cmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBoYXNJdGVtczsKLSAgICAgICAg
dGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gaGFzSXRlbXM7Ci0g
ICAgfQotCi0gICAgX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZChldmVudCkKLSAgICB7Ci0gICAgICAg
IFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWUgPSAhdGhpcy5fc2hvd0dyaWRCdXR0b25O
YXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7Ci0gICAgfQotCi0gICAgX3VwZGF0ZVNob3dJbWFnZUdy
aWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5h
Y3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7Ci0gICAgfQotCiAg
ICAgX2NvbnRlbnRWaWV3TW91c2VFbnRlcihldmVudCkKICAgICB7CiAgICAgICAgIGxldCBjb250
ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKQEAgLTMwMSw4ICsy
NjIsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZp
ZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRS
ZWNvcmRpbmdzQ29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZFJlY29y
ZGluZ3NUcmVlT3V0bGluZS5lbGVtZW50KTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IHN1
YnRpdGxlID0gbnVsbDsKLSAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJ
LkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUs
IHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQg
PSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNw
bGF5TmFtZSwgV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlwZShyZWNvcmRp
bmcudHlwZSksIHJlY29yZGluZyk7CiAgICAgICAgIHJlY29yZGluZ1RyZWVFbGVtZW50LnNlbGVj
dGFibGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUu
YXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5l
bC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1Np
ZGViYXJQYW5lbC5qcwppbmRleCBjMmJiZGMwMmU5ZTg5NmI0MmIxYjYzZDMzNGJjZmYyMmQ4Mjc0
YTE5Li5jNzExZmFmNDYyYjc2ZTVlOTA4Mjc0N2YxN2Y5MmVhODZiMWZiMGJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFy
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzU2lkZWJhclBhbmVsLmpzCkBAIC0yMzcsMTAgKzIzNyw4IEBAIFdJLkNhbnZhc1NpZGVi
YXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25T
aWRlYmFyUGFuCiAKICAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmpl
Y3QpCiAgICAgewotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5D
YW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJl
dHVybiBzdXBlci5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOwor
ICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKKyAg
ICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nOwog
ICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcu
Y3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWRhYjVlZjk5NzlkNjJiODExNTk4
OWE5MTY0MDQxM2M3MmE4Y2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1RhYkNvbnRlbnRWaWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0g
LmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52
YXNPdmVydmlldy5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMtMmQgLmljb24gewotICAgIGNvbnRlbnQ6IHVy
bCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFz
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXM6bWF0Y2hlcygud2ViZ2wsIC53ZWJnbDIs
IC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMv
Q2FudmFzM0Quc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9u
LWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0lt
YWdlcy9SZWNvcmRpbmcuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZp
Z2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXItcHJvZ3JhbSA+IC5pY29uIHsKLSAgICBjb250ZW50
OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFn
ZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKLX0KLQotQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNj
aGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZl
cnQoNjAlKTsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwKLSAgICAuY29udGVudC12aWV3LnRhYi5jYW52
YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKLSAgICAgICAg
ZmlsdGVyOiBpbnZlcnQoKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTFkYmU0ODAxZTU1N2JjN2MyMGU1
MmVjNzdjODA5OTlkNTZhOGQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1RhYkNvbnRlbnRWaWV3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjk4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi1XSS5DYW52YXNUYWJDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc1RhYkNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYWJDb250ZW50VmlldwotewotICAgIGNvbnN0
cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
IXJlcHJlc2VudGVkT2JqZWN0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzKTsKLQotICAgICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZy
b21UYWJJbmZvKFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnRhYkluZm8oKSk7Ci0KLSAgICAgICAg
Y29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yID0gV0kuQ2FudmFzU2lkZWJh
clBhbmVsOwotICAgICAgICBjb25zdCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzID0g
W1dJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCwgV0kuUmVjb3JkaW5nVHJhY2VE
ZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsXTsKLSAgICAg
ICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKLSAgICAgICAgc3VwZXIoImNhbnZh
cyIsIFsiY2FudmFzIl0sIHRhYkJhckl0ZW0sIG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1
Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycywgZGlzYWJsZUJhY2tGb3J3YXJk
KTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uID0gbmV3IFdJLkNhbnZhc0NvbGxl
Y3Rpb247Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91
dGxpbmU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFsbG93c1JlcGVhdFNlbGVj
dGlvbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlz
dGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9jYW52
YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5f
b3ZlcnZpZXdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoImNhbnZhcy1v
dmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIpLCBudWxsLCB0aGlzLl9jYW52YXNDb2xs
ZWN0aW9uKTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhp
cy5fb3ZlcnZpZXdUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdz
VHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJlZUVsZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVk
IFJlY29yZGluZ3MiKSwgV0kuUmVjb3JkaW5nQ29sbGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX3Nh
dmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX292
ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVs
ZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJk
U2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRs
ZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5pbXBsaWNp
dGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0
Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmll
ci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNl
LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0Lmlt
cGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2lu
Z2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5lbmFibGUoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdGFiSW5mbygpCi0gICAgewotICAg
ICAgICByZXR1cm4gewotICAgICAgICAgICAgaW1hZ2U6ICJJbWFnZXMvQ2FudmFzLnN2ZyIsCi0g
ICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJpbmcoIkNhbnZhcyIpLAotICAgICAgICB9OwotICAg
IH0KLQotICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIElu
c3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52YXMiKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJs
aWMKLQotICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmpl
Y3QpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuZmluZFRy
ZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICB9Ci0KLSAgICBnZXQgdHlwZSgpCi0g
ICAgewotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXcuVHlwZTsKLSAgICB9
Ci0KLSAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQ
YW5lbCgpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBjYW5TaG93
UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1
cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKLSAgICAgICAgICAgIHx8
IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbgotICAgICAg
ICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcKLSAgICAg
ICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbTsK
LSAgICB9Ci0KLSAgICBzaG93bigpCi0gICAgewotICAgICAgICBzdXBlci5zaG93bigpOwotCi0g
ICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgIHRo
aXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAg
ICBpZiAoIXRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3KQotICAgICAgICAg
ICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0g
ICAgfQotCi0gICAgaGlkZGVuKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
LmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1
dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgc3VwZXIuaGlkZGVuKCk7Ci0gICAgfQotCi0g
ICAgY2xvc2VkKCkKLSAgICB7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZGlzYWJsZSgpOwot
Ci0gICAgICAgIHN1cGVyLmNsb3NlZCgpOwotICAgIH0KLQotICAgIHJlc3RvcmVTdGF0ZUZyb21D
b29raWUoY29va2llKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgotICAgIH0KLQotICAgIHNh
dmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KLSAgICB9
Ci0KLSAgICBhc3luYyBoYW5kbGVGaWxlRHJvcChmaWxlcykKLSAgICB7Ci0gICAgICAgIGF3YWl0
IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01h
bmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0K
LSAgICBhdHRhY2hlZCgpCi0gICAgewotICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwotCi0gICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc0FkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7Ci0gICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc1JlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOwotICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVu
dC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRo
aXMpOwotICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQu
UmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRo
aXMpOwotCi0gICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7
Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pIHsK
LSAgICAgICAgICAgIGlmICghY2FudmFzZXMuaW5jbHVkZXMoY2FudmFzKSkKLSAgICAgICAgICAg
ICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZv
ciAobGV0IGNhbnZhcyBvZiBjYW52YXNlcykgewotICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52
YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQotICAgICAgICAgICAgICAgIHRoaXMuX2FkZENhbnZh
cyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJl
ZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9m
IFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQotICAgICAgICAgICAgdGhpcy5fYWRk
UmVjb3JkaW5nKHJlY29yZGluZywge3N1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZX0pOwotICAg
IH0KLQotICAgIGRldGFjaGVkKCkKLSAgICB7Ci0gICAgICAgIFdJLkNhbnZhcy5yZW1vdmVFdmVu
dExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJl
bW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0KLSAgICAgICAgc3VwZXIuZGV0
YWNoZWQoKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfYWRkQ2FudmFzKGNhbnZh
cykKLSAgICB7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQo
bmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZhcykpOwotICAgICAgICB0aGlzLl9jYW52YXND
b2xsZWN0aW9uLmFkZChjYW52YXMpOwotCi0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAg
ICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWUsCi0gICAgICAgIH07Ci0KLSAgICAg
ICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKQotICAg
ICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7Ci0gICAgfQot
Ci0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCi0gICAgewotICAgICAgICBsZXQgdHJlZUVsZW1l
bnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoY2FudmFzKTsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQsICJNaXNzaW5nIHRyZWUgZWxlbWVudCBm
b3IgY2FudmFzLiIsIGNhbnZhcyk7Ci0KLSAgICAgICAgY29uc3Qgc3VwcHJlc3NOb3RpZmljYXRp
b24gPSB0cnVlOwotICAgICAgICB0cmVlRWxlbWVudC5kZXNlbGVjdChzdXBwcmVzc05vdGlmaWNh
dGlvbik7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJl
ZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlKGNhbnZh
cyk7Ci0KLSAgICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dz
ZXIuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3IGlu
c3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCi0gICAgICAgICAgICBXSS5zaG93UmVwcmVz
ZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgICAgIGVsc2UgaWYgKGN1
cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ICYmIGNh
bnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhjdXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50
ZWRPYmplY3QpKQotICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJj
aGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRWaWV3KCk7Ci0KLSAgICAgICAgbGV0IG5hdmlnYXRp
b25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWw7Ci0gICAgICAgIGlm
IChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGluc3RhbmNlb2YgV0kuQ2FudmFzU2lkZWJhclBhbmVs
ICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudmlzaWJsZSkKLSAgICAgICAgICAgIG5hdmlnYXRp
b25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVzZW50ZWRPYmplY3RzKCk7Ci0KLSAgICAgICAgdGhp
cy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsKLSAgICB9Ci0KLSAgICBfYWRkUmVjb3JkaW5n
KHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQotICAgIHsKLSAgICAgICAgaWYgKCFyZWNvcmRpbmcu
c291cmNlKSB7Ci0gICAgICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgICAg
ICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsi
cmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7
Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSBm
YWxzZTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmFwcGVu
ZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgh
b3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcpCi0gICAgICAgICAgICB0aGlzLnNob3dSZXBy
ZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOwotICAgIH0KLQotICAgIF9oYW5kbGVDYW52YXNBZGRl
ZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FkZENhbnZhcyhldmVudC5kYXRhLmNhbnZh
cyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZlbnQpCi0gICAgewotICAg
ICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQuZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAg
IF9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKLSAgICB7Ci0gICAg
ICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5zZWxlY3Rl
ZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAoIXNlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVsZW1l
bnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAgIGlmICghdGhpcy5jYW5TaG93UmVwcmVzZW50
ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRPYmpl
Y3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5zaG93
UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOwotICAgIH0KLQotICAgIF9oYW5k
bGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCB7cmVj
b3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7Ci0gICAgICAg
IGlmICghcmVjb3JkaW5nKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBvcHRp
b25zID0ge307Ci0KLSAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5ncy4K
LSAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQotICAgICAgICAgICAg
b3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMu
Y29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRl
ZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpOwot
Ci0gICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOwotICAgIH0K
LQotICAgIF9oYW5kbGVTcGFjZShldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChXSS5pc0V2ZW50
VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNh
bnZhczsKLSAgICAgICAgaWYgKCFjYW52YXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCi0gICAgICAgICAgICBjYW52YXMuc3RvcFJl
Y29yZGluZygpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGxldCBzaW5nbGVGcmFtZSA9
ICEhZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2lu
Z2xlRnJhbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
LSAgICB9Ci19OwotCi1XSS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBlID0gImNhbnZhcyI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xs
ZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRleCBmZTMzZTdhY2Q5ZjE2MWIy
Y2MwY2U3MWNkNTI0YTQ5MWFkZDMzYzJiLi41Y2U4ZGIwZjMwOGRkOTg5ODRiMzFiYjk0Y2M1Zjc5
YzM5NWMyZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTMz
LDE0ICszMywxNyBAQAogICAgIGZsZXgtZ3JvdzogMTsKIH0KIAotLmNvbnRlbnQtdmlldy5jb2xs
ZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcgewotICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZh
cigtLWJvcmRlci1jb2xvcik7Ci19Ci0KLS5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3Vy
Y2UuaW1hZ2UgaW1nOmhvdmVyIHsKLSAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xv
ci1hY3RpdmUpCi19Ci0KIC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5jb250ZW50LXZpZXdb
aGlkZGVuXSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KKworLmNvbnRlbnQtdmlldy5jb2xsZWN0
aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2FnZS10ZXh0LXZpZXcpIHsKKyAgICBkaXNwbGF5
OiBmbGV4OworICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAganVzdGlmeS1jb250ZW50
OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICB3aWR0aDogMTAwJTsKKyAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAxM3B4OworICAgIGNvbG9yOiB2
YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250
ZW50Vmlldy5qcwppbmRleCAwNTQ3NDE2ODFjODE4YmU1YmNhYTVkNmZmMTlkNTM3MjliN2IzODY2
Li5kNGU2MWUwODI1NTBjYTVkMzg2MDIyZGVmMGVmYjM5NTVlOGNiNTZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVu
dFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0yOCw3ICsyOCw3IEBAIFdJLkNvbGxlY3Rpb25D
b250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAgICAgY29uc3RydWN0b3IoY29sbGVjdGlvbiwgY29udGVudFZpZXdDb25zdHJ1Y3Rv
ciwgY29udGVudFBsYWNlaG9sZGVyKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29s
bGVjdGlvbiBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChjb250ZW50Vmlld0NvbnN0cnVjdG9yIGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcpOworICAg
ICAgICBjb25zb2xlLmFzc2VydCghY29udGVudFZpZXdDb25zdHJ1Y3RvciB8fCBjb250ZW50Vmll
d0NvbnN0cnVjdG9yLnByb3RvdHlwZSBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKIAogICAg
ICAgICBzdXBlcihjb2xsZWN0aW9uKTsKIApAQCAtMzgsNyArMzgsNiBAQCBXSS5Db2xsZWN0aW9u
Q29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldwogICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50ID0gbnVsbDsK
ICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvciA9IGNvbnRlbnRWaWV3Q29uc3Ry
dWN0b3I7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwID0gbmV3IE1hcDsKLSAgICAgICAg
dGhpcy5faGFuZGxlQ2xpY2tNYXAgPSBuZXcgV2Vha01hcDsKICAgICAgICAgdGhpcy5fc2VsZWN0
ZWRJdGVtID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOwog
ICAgIH0KQEAgLTgzLDE5ICs4MiwyNSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFz
cyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAg
ICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKICAgICB9CiAKLSAgICBzZXRTZWxlY3RlZEl0ZW0o
aXRlbSkKKyAgICBnZXQgc2VsZWN0ZWRJdGVtKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9zZWxlY3RlZEl0ZW07CisgICAgfQorCisgICAgc2V0IHNlbGVjdGVkSXRlbShpdGVtKQogICAg
IHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCwgIkF0dGVt
cHRlZCB0byBzZXQgc2VsZWN0ZWQgaXRlbSB3aGVuIHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4iKTsK
ICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIGxldCBjb250ZW50VmlldyA9IHRoaXMuX2NvbnRlbnRWaWV3TWFwLmdldChp
dGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRl
dCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOwotICAgICAgICBpZiAoIWNvbnRlbnRWaWV3KQotICAg
ICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAg
ICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworCisgICAg
ICAgIGlmIChpdGVtKSB7CisgICAgICAgICAgICBsZXQgY29udGVudFZpZXcgPSB0aGlzLl9jb250
ZW50Vmlld01hcC5nZXQoaXRlbSk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50
VmlldywgIk1pc3NpbmcgY29udGV0IHZpZXcgZm9yIGl0ZW0uIiwgaXRlbSk7CisgICAgICAgICAg
ICBpZiAoY29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5z
Y3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQcm90
ZWN0ZWQKQEAgLTEyMCwyMCArMTI1LDkgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xh
c3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAg
ICBsZXQgY29udGVudFZpZXcgPSBuZXcgdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcihpdGVt
LCB0aGlzLmNvbnRlbnRWaWV3Q29uc3RydWN0b3JPcHRpb25zKTsKICAgICAgICAgY29uc29sZS5h
c3NlcnQoY29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7Ci0KLSAgICAgICAg
bGV0IGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQuYnV0
dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKLSAgICAgICAgICAgICAgICB0
aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVtKTsKLSAgICAgICAgfTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QgPT09IGl0ZW0pOwogCiAg
ICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwLnNldChpdGVtLCBjb250ZW50Vmlldyk7Ci0gICAg
ICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLnNldChpdGVtLCBoYW5kbGVDbGljayk7Ci0gICAgICAg
IGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBoYW5kbGVDbGlj
ayk7CiAKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGNvbnRlbnRWaWV3KTsKICAgICAgICAgdGhp
cy5jb250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3KTsKQEAgLTE2OSwxNCArMTYzLDYgQEAgV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBjb250ZW50Vmlldy5yZW1vdmVFdmVudExpc3Rl
bmVyKG51bGwsIG51bGwsIHRoaXMpOwogCi0gICAgICAgIGxldCBoYW5kbGVDbGljayA9IHRoaXMu
X2hhbmRsZUNsaWNrTWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaGFuZGxl
Q2xpY2spOwotCi0gICAgICAgIGlmIChoYW5kbGVDbGljaykgewotICAgICAgICAgICAgY29udGVu
dFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIGhhbmRsZUNsaWNrKTsK
LSAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLmRlbGV0ZShpdGVtKTsKLSAgICAgICAg
fQotCiAgICAgICAgIGlmICghdGhpcy5zdWJ2aWV3cy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlz
LnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKICAgICB9CkBAIC0yMDAsNiArMTg2LDggQEAgV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xk
ZXJFbGVtZW50ID0gdGhpcy5fY29udGVudFBsYWNlaG9sZGVyOwogICAgICAgICB9CiAKKyAgICAg
ICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJwbGFjZWhv
bGRlciIpOworCiAgICAgICAgIGlmICghdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudC5w
YXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2Nv
bnRlbnRQbGFjZWhvbGRlckVsZW1lbnQpOwogICAgIH0KQEAgLTIxMiwxMCArMjAwLDExIEBAIFdJ
LkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBpbml0aWFsTGF5b3V0KCkKICAgICB7Ci0gICAgICAg
IGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlzLl9jb250ZW50Vmlld0Nv
bnN0cnVjdG9yKSB7CisgICAgICAgIGlmICh0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKQor
ICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
aGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpCiAgICAgICAgICAg
ICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQogICAgIH0KIAogICAgIGF0dGFjaGVkKCkKQEAgLTI5Miw2ICsyODEsMzAgQEAgV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHNlbGVjdGVkQ29udGVudFZpZXcuZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50LlNl
bGVjdGVkSXRlbUNoYW5nZWQpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRD
aGFuZ2UpOwogICAgIH0KKworICAgIF9oYW5kbGVDbGljayhldmVudCkKKyAgICB7CisgICAgICAg
IGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBmb3IgKGxldCBbaXRlbSwgY29udGVudFZpZXddIG9mIHRoaXMuX2Nv
bnRlbnRWaWV3TWFwKSB7CisgICAgICAgICAgICBpZiAoY29udGVudFZpZXcuZWxlbWVudC5jb250
YWlucyhldmVudC50YXJnZXQpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlv
bkVuYWJsZWQpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50
ZWRPYmplY3QoaXRlbSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCisgICAgICAg
ICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOworICAgIH0KK307CisKK1dJLkNvbGxlY3Rpb25D
b250ZW50Vmlldy5FdmVudCA9IHsKKyAgICBTZWxlY3RlZEl0ZW1DaGFuZ2VkOiAiY29sbGVjdGlv
bi1jb250ZW50LXZpZXctc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkIiwKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3Lmpz
CmluZGV4IGRmOTEyZGQ1NmZhMDdkZjk0OGYwZDdmN2FmMGQ3YzZkMWI3OWEyZjYuLjI5NmMyYTU0
MjNhMGY2OTFlYWM3ZDJkMGU5MzYwMGY1MTU0ZjBkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzCkBAIC02
MCw5ICs2MCw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZh
cykKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzQ29udGVudFZpZXcocmVwcmVzZW50
ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIG5l
dyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFy
Z3VtZW50cyk7Ci0KICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
U2hhZGVyUHJvZ3JhbSkKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuU2hhZGVyUHJvZ3JhbUNv
bnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKQEAgLTE4Miw2
ICsxNzksOSBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
VmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRl
c3RHcm91cCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3Vw
UmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5BdWRpdFRlc3RHcm91cENvbnRlbnRW
aWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKKyAgICAgICAgaWYgKHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0
dXJuIG5ldyBXSS5BbmltYXRpb25Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFB
cmd1bWVudHMpOworCiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkNvbGxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNvbGxlY3Rpb25Db250ZW50
VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCkBAIC0yNzMsOCArMjcz
LDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
aWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlRpbWVsaW5lUmVjb3JkaW5n
KQpAQCAtMzE4LDEwICszMTYsMTQgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50Vmll
dyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQXVkaXRUZXN0Q2FzZSB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1
ZGl0VGVzdEdyb3VwCiAgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAo
dHlwZW9mIHJlcHJlc2VudGVkT2JqZWN0ID09PSAic3RyaW5nIiB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFN0cmluZykKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBp
ZiAocmVwcmVzZW50ZWRPYmplY3RbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbF0pCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtNTEyLDQgKzUxNCw1IEBAIFdJLkNvbnRlbnRWaWV3LkV2ZW50ID0gewogICAgIE5hdmlnYXRp
b25JdGVtc0RpZENoYW5nZTogImNvbnRlbnQtdmlldy1uYXZpZ2F0aW9uLWl0ZW1zLWRpZC1jaGFu
Z2UiCiB9OwogCitXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9sID0gU3ltYm9sKCJpcy12
aWV3YWJsZSIpOwogV0kuQ29udGVudFZpZXcuQ29udGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVj
dFN5bWJvbCA9IFN5bWJvbCgiY29udGVudC12aWV3LWZvci1yZXByZXNlbnRlZC1vYmplY3QiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Rl
dGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKaW5kZXggZTVhNWZlYzFlYWJi
NWMwOTcyY2ZhMDUzZDUzNGMzNjAwOWUxYjc2Zi4uN2VkMGM4MmViM2I3MWVlYjZiYmIxZjk3ZTk3
OTBmNmJiYmM1NTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMK
QEAgLTk2LDcgKzk2LDcgQEAgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cgPSBjbGFzcyBEZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyBleHRlbmRzIFdJLkRldGFpbHNTZWMKICAgICB7CiAgICAgICAg
IHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgIiI7CiAKLSAgICAgICAgaWYgKHRoaXMuX3ZhbHVlKSB7
CisgICAgICAgIGlmICh0aGlzLl92YWx1ZSB8fCB0aGlzLl92YWx1ZSA9PT0gMCkgewogICAgICAg
ICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV0kuRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3cuRW1wdHlTdHlsZUNsYXNzTmFtZSk7CiAKICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1
ZSBoYXMgc3BhY2UgY2hhcmFjdGVycyB0aGF0IGNhdXNlIHdvcmQgd3JhcHBpbmcgdGhlbiB3ZSBk
b24ndCBuZWVkIHRoZSBkYXRhIGNsYXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBmMDViMGI0NTRkMWUxZTAyN2Y5M2E2Yjlm
NzMzMTA0ZjRhOWE1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKQEAgLTAs
MCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcg
eworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItY29udGVudCk7
CisgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1uYXZp
Z2F0aW9uLWJhci1oZWlnaHQpOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAl
KTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24geworICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OworfQor
CisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LWNo
aWxkKSB7CisgICAgbWFyZ2luLXRvcDogMjBweDsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGlj
cy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAg
IGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgcG9zaXRpb246IHN0aWNreTsKKyAgICB0b3A6IDA7
CisgICAgei1pbmRleDogMTsKKyAgICBtaW4taGVpZ2h0OiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1o
ZWlnaHQpOworICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogOHB4OworICAgIGJhY2tncm91bmQt
Y29sb3I6IGhzbCgwLCAwJSwgOTclKTsKKyAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFy
KC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+
IHNlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKSA+IC5oZWFkZXIgeworICAgIGJvcmRlci10b3A6
IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LmdyYXBo
aWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiBoMSB7CisgICAgbWFyZ2luOiAwOwor
fQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIgeworICAgIGZsZXgtZ3JvdzogMTsKKyAgICBqdXN0aWZ5LWNvbnRl
bnQ6IGZsZXgtZW5kOworICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cit9CisKKy5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICByaWdodDogMDsKKyAgICBi
b3R0b206IDA7CisgICAgbGVmdDogMDsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVt
ZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgeworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE0JSk7CisgICAgfQorCisgICAgLmNvbnRl
bnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAyMSUpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjM2IwNzVh
YjljNDM2OTlmNjFjN2U3ZDE5OTY1MjBjZWFlNWY1MTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcuanMKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBHcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAg
IHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImdyYXBoaWNz
LW92ZXJ2aWV3Iik7CisKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0g
PSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNvcmRpbmciLCBXSS5VSVN0
cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7CisgICAgICAgIHRo
aXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2x0aXAgPSBXSS5VSVN0cmluZygiSW1w
b3J0Iik7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmJ1dHRvblN0
eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0OworICAgICAg
ICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1
dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNo
IiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAx
Myk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExp
c3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRs
ZVJlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0o
InNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJ
U3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1D
aGVja2Vycy5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmln
YXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsK
KyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3Rl
bmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZVNo
b3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzT3ZlcnZp
ZXdDb250ZW50VmlldyA9IG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdWaWV3
cyA9IFtdOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHN1cHBsZW1lbnRhbFJl
cHJlc2VudGVkT2JqZWN0cygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcnZpZXdW
aWV3cy5mbGF0TWFwKChzdWJ2aWV3KSA9PiBzdWJ2aWV3LnN1cHBsZW1lbnRhbFJlcHJlc2VudGVk
T2JqZWN0cyk7CisgICAgfQorCisgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCisgICAgeworICAg
ICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW107CisgICAgICAgIGlmICghV0kuYW5pbWF0aW9u
TWFuYWdlci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoQWxs
KHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcubmF2aWdhdGlvbkl0ZW1zKTsKKyAgICAg
ICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0p
OworICAgICAgICB9CisgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX2ltcG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtLCB0aGlzLl9y
ZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlv
bkl0ZW0pOworICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOworICAgIH0KKworICAgIC8v
IFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNo
ZWQoKTsKKworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0
dGluZ0NoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0
dGluZ0NoYW5nZWQoKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICBX
SS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAgV0kuc2V0dGlu
Z3Muc2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hh
bmdlZCwgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKKwor
ICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIGluaXRpYWxMYXlvdXQoKQor
ICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIGlmIChXSS5h
bmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAgICAgICAgICAgbGV0IGNyZWF0ZVNlY3Rp
b24gPSAoaWRlbnRpZmllciwgdGl0bGUsIG92ZXJ2aWV3VmlldykgPT4geworICAgICAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KG92ZXJ2aWV3VmlldyBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3
KTsKKworICAgICAgICAgICAgICAgIGxldCBzZWN0aW9uRWxlbWVudCA9IHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIikpOworICAgICAgICAg
ICAgICAgIHNlY3Rpb25FbGVtZW50LmNsYXNzTmFtZSA9IGlkZW50aWZpZXI7CisKKyAgICAgICAg
ICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBoZWFkZXJFbGVt
ZW50LmNsYXNzTmFtZSA9ICJoZWFkZXIiOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxlRWxl
bWVudCA9IGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aDEiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7
CisKKyAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gb3ZlcnZpZXdWaWV3Lm5h
dmlnYXRpb25JdGVtczsKKyAgICAgICAgICAgICAgICBpZiAobmF2aWdhdGlvbkl0ZW1zLmxlbmd0
aCkgeworICAgICAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IG5ldyBXSS5OYXZp
Z2F0aW9uQmFyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5hdiIpLCBuYXZpZ2F0aW9uSXRlbXMp
OworICAgICAgICAgICAgICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKG5hdmlnYXRp
b25CYXIuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU3VidmlldyhuYXZp
Z2F0aW9uQmFyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsZXQgY29u
dGVudEVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQuY2xhc3NOYW1l
ID0gImNvbnRlbnQiOworCisgICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQuYXBwZW5kQ2hp
bGQob3ZlcnZpZXdWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmll
dyhvdmVydmlld1ZpZXcpOworCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmFkZEV2ZW50
TGlzdGVuZXIoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVkSXRlbUNoYW5n
ZWQsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNoYW5nZWQsIHRoaXMpOwor
ICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExpc3RlbmVyKFdJLkNvbnRlbnRW
aWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSwgdGhpcy5f
aGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdl
LCB0aGlzKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9vdmVydmlld1ZpZXdzLnB1c2gob3ZlcnZp
ZXdWaWV3KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oImNh
bnZhcyIsIFdJLlVJU3RyaW5nKCJDYW52YXNlcyIpLCB0aGlzLl9jYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3KTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb24gPSBXSS5hbmlt
YXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAgICAgICBjcmVhdGVTZWN0
aW9uKCJ3ZWItYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25zIiksIG5ldyBX
SS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5hbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24pKSk7
CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3MtYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmco
IkNTUyBBbmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXco
YW5pbWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRp
b24uVHlwZS5DU1NBbmltYXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3Mt
dHJhbnNpdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMiKSwgbmV3IFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFuaW1hdGlvbkNv
bGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb24pKSk7CisKKyAg
ICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hh
bmRsZUNsaWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMu
YWRkU3Vidmlldyh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KTsKKworICAgICAgICBs
ZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAgICAgZHJv
cFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmluZygiSW1wb3J0IFJlY29yZGluZyIpOworICAgICAg
ICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKKyAgICAgICAgdGhp
cy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgfQorCisgICAgLy8gRHJvcFpvbmVWaWV3
IGRlbGVnYXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudChkcm9wWm9u
ZSwgZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVz
LmluY2x1ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAgIGRyb3Bab25lSGFuZGxlRHJvcChkcm9w
Wm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNm
ZXIuZmlsZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvckZyb250ZW5kSG9zdC5iZWVwKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0
KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKworICAg
IC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgewor
ICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykKKyAg
ICAgICAgICAgIG92ZXJ2aWV3Vmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOworICAg
IH0KKworICAgIF9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZlbnQpCisgICAgeworICAg
ICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRoaXMuX3Nob3dHcmlkQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOworICAgIH0KKworICAgIF9oYW5kbGVTaG93SW1h
Z2VHcmlkU2V0dGluZ0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0
b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQu
dmFsdWU7CisgICAgfQorCisgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xp
Y2tlZChldmVudCkKKyAgICB7CisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuaW1wb3J0SlNPTigo
cmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCksIHttdWx0aXBs
ZTogdHJ1ZX0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1D
aGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVudC50YXJnZXQuc2VsZWN0ZWRJ
dGVtKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3Vmll
dyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAgICBpZiAob3ZlcnZpZXdWaWV3
ICE9PSBldmVudC50YXJnZXQgJiYgb3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJsZWQpCisgICAg
ICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRP
YmplY3RzRGlkQ2hhbmdlKGV2bmV0KQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRP
YmplY3RzRGlkQ2hhbmdlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2xpY2soZXZlbnQpCisgICAg
eworICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmVsZW1lbnQpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2
aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld1ZpZXcuc2VsZWN0aW9uRW5hYmxl
ZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJdGVtID0gbnVsbDsKKyAg
ICAgICAgfQorICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3Nz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZiNWFmZDgxNjBmMTYwZjYwMzQyYmFiZGZhM2UwZGZiMDM1OWU3NGIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNh
bnZhcy1vdmVydmlldyAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXNP
dmVydmlldy5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlv
bi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7CisgICAgY29udGVudDogdXJs
KC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGlj
cyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNoZXMoLndlYmdsLCAud2ViZ2wy
LCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2Vz
L0NhbnZhczNELnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0
aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4u
L0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3Mg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFtID4gLmljb24geworICAgIGNv
bnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4u
L0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOworfQorCitAbWVkaWEgKHByZWZlcnMtY29s
b3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmln
YXRpb24tYmFyID4gLml0ZW0gLmdyYXBoaWNzLW92ZXJ2aWV3IC5pY29uIHsKKyAgICAgICAgZmls
dGVyOiBpbnZlcnQoNjAlKTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGlj
cyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAorICAgIC5jb250ZW50LXZp
ZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNv
biB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBo
aWNzVGFiQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhkY2YyYjEwOWE4Mjc1ZDM3MTA3MjVl
YWZjODkwYWNkYTYwYzMxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMKQEAgLTAsMCAr
MSwzMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3Mg
R3JhcGhpY3NUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQ29udGVu
dFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBsZXQgdGFiQmFySXRl
bSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkdyYXBoaWNzVGFiQ29udGVu
dFZpZXcudGFiSW5mbygpKTsKKworICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVs
Q29uc3RydWN0b3IgPSBXSS5DYW52YXNTaWRlYmFyUGFuZWw7CisgICAgICAgIGNvbnN0IGRldGFp
bHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMgPSBbCisgICAgICAgICAgICBXSS5SZWNvcmRpbmdT
dGF0ZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5SZWNvcmRpbmdUcmFjZURl
dGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBh
bmVsLAorICAgICAgICAgICAgV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAg
ICAgXTsKKyAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKKyAgICAgICAg
c3VwZXIoImdyYXBoaWNzIiwgWyJncmFwaGljcyJdLCB0YWJCYXJJdGVtLCBuYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMsIGRp
c2FibGVCYWNrRm9yd2FyZCk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZSA9
IG5ldyBXSS5UcmVlT3V0bGluZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5h
bGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlk
Q2hhbmdlLCB0aGlzLl9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdl
LCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50ID0gbmV3IFdJLkdl
bmVyYWxUcmVlRWxlbWVudCgiY2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlTdHJpbmcoIk92ZXJ2aWV3
IiksIG51bGwsIHtbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbF06IHRydWV9KTsKKyAg
ICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZCh0aGlzLl9jYW52YXNl
c1RyZWVFbGVtZW50KTsKKworICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVl
RWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmluZygiU2F2ZWQgUmVj
b3JkaW5ncyIpKTsKKyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1l
bnQuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCk7CisKKyAgICAg
ICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBX
SS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlz
KSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1
bHQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVl
OworCisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5
Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXli
b2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7Cisg
ICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRz
RGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0
LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgpOwor
ICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVuYWJsZSgpOworICAgIH0KKworICAgIHN0YXRp
YyB0YWJJbmZvKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBpbWFnZTog
IkltYWdlcy9HcmFwaGljcy5zdmciLAorICAgICAgICAgICAgdGl0bGU6IFdJLlVJU3RyaW5nKCJH
cmFwaGljcyIpLAorICAgICAgICB9OworICAgIH0KKworICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52
YXMiKQorICAgICAgICAgICAgfHwgSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkFuaW1hdGlv
biIpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgdHJlZUVsZW1lbnRGb3JSZXByZXNl
bnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRlZE9iamVjdCk7
CisgICAgfQorCisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcuVHlwZTsKKyAgICB9CisKKyAgICBnZXQgc3VwcG9ydHNTcGxpdENv
bnRlbnRCcm93c2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCisgICAgeworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QsIGNvb2tpZSkKKyAgICB7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIu
c2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuc2hvd1JlcHJlc2VudGVkT2JqZWN0
KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpOworICAgIH0KKworICAgIGNhblNob3dSZXByZXNl
bnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24KKyAgICAgICAgICAg
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCisgICAgICAgICAgICB8
fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbGxlY3Rpb24KKyAg
ICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nCisg
ICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dy
YW1Db2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLlNoYWRlclByb2dyYW0KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb247CisgICAgfQorCisgICAgY2xvc2VkKCkKKyAg
ICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZGlzYWJsZSgpOworICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKKworICAgICAgICBzdXBlci5jbG9zZWQoKTsKKyAgICB9
CisKKyAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkKKyAgICB7CisgICAgICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBj
b21wbGV0ZS4KKyAgICB9CisKKyAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUpCisgICAgewor
ICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3
NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAgYXN5bmMgaGFuZGxlRmlsZURyb3AoZmls
ZXMpCisgICAgeworICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVz
LCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAg
IH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAg
c3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhp
cy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1S
ZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3Jk
aW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAg
ICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGlu
Z1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKwor
ICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmNoaWxk
cmVuKSB7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gY2hpbGQucmVwcmVzZW50ZWRPYmplY3Q7
CisgICAgICAgICAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzICYmICFXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCisgICAgICAgICAgICAgICAg
dGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxl
dCBjYW52YXMgb2YgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKSB7CisgICAgICAg
ICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNhbnZh
cykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0K
KworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJl
Y29yZGluZ3MpIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5m
aW5kVHJlZUVsZW1lbnQocmVjb3JkaW5nKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRSZWNv
cmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlfSk7CisgICAgICAg
IH0KKworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOworICAg
ICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7Cisg
ICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRj
dXQuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0
Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5DYW52YXMucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3Jk
aW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92
ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhp
cy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAg
ICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5l
cihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1v
dmVkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIGlu
aXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDb250ZW50VmlldyA9
IG5ldyBXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXc7CisgICAgICAgIHRoaXMuY29udGVu
dEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAg
IH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9hZGRDYW52YXMoY2FudmFzKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FudmFz
VHJlZUVsZW1lbnQoY2FudmFzKSk7CisKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAg
ICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKKyAgICAgICAgfTsKKworICAgICAg
ICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pCisgICAg
ICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKKyAgICB9CisK
KyAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAgICAgIGxldCB0cmVlRWxlbWVu
dCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcyk7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlzc2luZyB0cmVlIGVsZW1lbnQg
Zm9yIGNhbnZhcy4iLCBjYW52YXMpOworCisgICAgICAgIGNvbnN0IHN1cHByZXNzTm90aWZpY2F0
aW9uID0gdHJ1ZTsKKyAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxlY3Qoc3VwcHJlc3NOb3RpZmlj
YXRpb24pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRy
ZWVFbGVtZW50KTsKKworICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jb250
ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CisgICAgICAgIGlmIChjdXJyZW50Q29udGVu
dFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAgIFdJLnNo
b3dSZXByZXNlbnRlZE9iamVjdChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwor
ICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5SZWNvcmRp
bmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMoY3VycmVudENv
bnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJy
b3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50VmlldygpOworCisg
ICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJh
clBhbmVsOworICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBpbnN0YW5jZW9mIFdJ
LkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnZpc2libGUpCisg
ICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJlc2VudGVkT2JqZWN0
cygpOworCisgICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxzKCk7CisgICAgfQor
CisgICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkKKyAgICB7CisgICAg
ICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgeworICAgICAgICAgICAgY29uc3Qgc3VidGl0bGUg
PSBudWxsOworICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdl
bmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1
YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRp
bmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLl9zYXZlZENh
bnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVu
dCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3Jk
aW5nKQorICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVjb3JkaW5nKTsK
KyAgICB9CisKKyAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCisgICAgeworICAgICAgICB0
aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2Fu
dmFzUmVtb3ZlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhldmVu
dC5kYXRhLml0ZW0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2Vs
ZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVu
dCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKKyAgICAg
ICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
c3dpdGNoIChzZWxlY3RlZEVsZW1lbnQpIHsKKyAgICAgICAgY2FzZSB0aGlzLl9jYW52YXNlc1Ry
ZWVFbGVtZW50OgorICAgICAgICBjYXNlIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVF
bGVtZW50OgorICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXco
dGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVsZW1lbnQucmVw
cmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGlmICghdGhpcy5jYW5TaG93UmVwcmVzZW50ZWRPYmpl
Y3QocmVwcmVzZW50ZWRPYmplY3QpKSB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChmYWxz
ZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRPYmplY3QpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5zaG93UmVwcmVz
ZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0KKworICAgIF9oYW5kbGVSZWNv
cmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCB7cmVjb3JkaW5n
LCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmICgh
cmVjb3JkaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBvcHRpb25zID0g
e307CisKKyAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5ncy4KKyAgICAg
ICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQorICAgICAgICAgICAgb3B0aW9u
cy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVu
dEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVj
dCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpOworCisgICAg
ICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOworICAgIH0KKworICAg
IF9oYW5kbGVTcGFjZShldmVudCkKKyAgICB7CisgICAgICAgIGlmIChXSS5pc0V2ZW50VGFyZ2V0
QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBp
ZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNhbnZhczsK
KyAgICAgICAgaWYgKCFjYW52YXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYg
KGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCisgICAgICAgICAgICBjYW52YXMuc3RvcFJlY29yZGlu
ZygpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxldCBzaW5nbGVGcmFtZSA9ICEhZXZl
bnQuc2hpZnRLZXk7CisgICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJh
bWUpOworICAgICAgICB9CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9
Cit9OworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiZ3JhcGhpY3MiOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5j
c3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwpp
bmRleCA5ZjEwNWYxZTk2ZTgzMWNlNTQ1MTA0OTM4NGU3YWQ4ZDYxODM0NWE0Li44ZmUxMzFjMmYw
ZTM2MTc2ZWZhMGZjYWJkMDJjMjc1ODY0YzZmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwpAQCAtMjA5LDEyICsyMDksMTIg
QEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2aWdhdGlvbi1zaWRlYmFy
LmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogfQogCi0u
bWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIHsKKy5uYXZpZ2F0aW9uLWl0
ZW0taGVscCB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgbGluZS1oZWlnaHQ6IDIycHg7CiB9
CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24t
YmFyIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgZGlz
cGxheTogaW5saW5lLWZsZXg7CiAgICAgaGVpZ2h0OiAyMHB4OwogICAgIHBhZGRpbmc6IDAgNHB4
OwpAQCAtMjIyLDkgKzIyMiw5IEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMoLnJpZ2h0LCAubGVmdCkg
I25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7CiAgICAgdmVydGljYWwt
YWxpZ246IC0zcHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhl
bHAgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0geworLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5h
dmlnYXRpb24tYmFyID4gLml0ZW0gewogICAgIGhlaWdodDogMTAwJTsKLSAgICBwYWRkaW5nOiAw
IDRweDsKKyAgICBwYWRkaW5nOiAwIDRweCAhaW1wb3J0YW50OwogICAgIGZvbnQtc2l6ZTogMTFw
eDsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0t
Ym9yZGVyLWNvbG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwppbmRleCA4
ZDYwZjIzZjBiMmJlYzcwZDhiZTgzZDAyMTdhNzBhYzc0ZmQyMzU4Li4xMWYxZGQ4MmU1NTM3NzAx
OTBiMmZmN2ViOGI2MDhlZWM3ZTI5YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZp
ZXcuY3NzCkBAIC0yMywxOCArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgeworLmNvbnRl
bnQtdmlldy5yZWNvcmRpbmcgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rp
b246IGNvbHVtbjsKICAgICBwYWRkaW5nOiAxMHB4OwogICAgIGJhY2tncm91bmQtY29sb3I6IGhz
bCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4g
aGVhZGVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyIHsKICAgICBtYXJnaW4t
Ym90dG9tOiAxMHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBo
ZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhl
YWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgt
d3JhcDogd3JhcDsKICAgICBwYWRkaW5nOiA0cHggMDsKQEAgLTQzLDMxICs0MywzMSBAQAogICAg
IGJvcmRlci1yYWRpdXM6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3Jk
aW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsKKy5jb250ZW50LXZpZXcucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsKICAgICBtYXJnaW46IDRw
eCA4cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+
IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7CisuY29udGVudC12aWV3LnJlY29y
ZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7CiAgICAg
Zm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7CiAgICAgZm9udC1mYW1pbHk6IDExcHg7CiB9
CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXIt
Y29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcg
PiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKICAgICBm
bGV4OiAxOwogICAgIHdpZHRoOiAxMDAlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5y
ZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2Vd
Ojotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CisuY29udGVudC12aWV3LnJlY29yZGlu
ZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJr
aXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6IDJweDsKICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGJvcmRlci1yYWRpdXM6IDFweDsK
IH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRl
ci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewor
LmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlu
cHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgbWFyZ2luLXRvcDog
LTZweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gLnByZXZpZXct
Y29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gLnByZXZpZXctY29udGFpbmVy
IHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXg6IDE7CiAgICAganVzdGlmeS1jb250ZW50
OiBjZW50ZXI7CkBAIC03NywyNyArNzcsMjcgQEAKICAgICBoZWlnaHQ6IC13ZWJraXQtZmlsbC1h
dmFpbGFibGU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA6bWF0Y2hl
cyhpbWcsIGNhbnZhcykgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgOm1hdGNoZXMoaW1nLCBj
YW52YXMpIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwog
ICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29y
ZGluZyBjYW52YXMucGF0aCB7CisuY29udGVudC12aWV3LnJlY29yZGluZyBjYW52YXMucGF0aCB7
CiAgICAgei1pbmRleDogMTA7CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRh
cmspIHsKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgeworICAgIC5jb250
ZW50LXZpZXcucmVjb3JkaW5nIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAg
ICAgfQogCi0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4g
LnNsaWRlci1jb250YWluZXIgeworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVy
ID4gLnNsaWRlci1jb250YWluZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsK
ICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3Itc2Vjb25kYXJ5KTsKICAg
ICB9CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAu
c2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKKyAgICAuY29udGVudC12aWV3
LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5n
ZV0gewogICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRleCAzYTlhOWFlZmYyOWM1
ZWZjZDc3OWJiNGQyOTA0MGFhZDg5ZGJmMWQ0Li4yZjk0YmM3NDA5ZjRkNTU0NjY1Y2RlODljOWYw
Zjk5Y2FkZWY5NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcuY3NzCkBAIC0yMyw2ICsyMywxNCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKKy5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5y
ZXNvdXJjZS5pbWFnZSBpbWcgeworICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRl
ci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNv
dXJjZS5pbWFnZSBpbWc6aG92ZXIgeworICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWdseXBoLWNv
bG9yLWFjdGl2ZSkKK30KKwogLnJlc291cmNlLWNvbGxlY3Rpb24taW1hZ2UtdHlwZS1zY29wZS1i
YXIuZGVmYXVsdC1pdGVtLXNlbGVjdGVkIHsKICAgICAtLXNjb3BlLWJhci10ZXh0LWNvbG9yLW92
ZXJyaWRlOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICAtLXNjb3BlLWJhci1iYWNrZ3JvdW5kLWNv
bG9yLW92ZXJyaWRlOiB0cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xs
ZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggYzk0ZWNhNzc3MjE0ZTMxZGM1ZDgxZTYxMDkwNjA2
M2Y3N2M3NGZjYy4uZmMxYzZhMmNkNGFhN2RhMTk1MGMwYTNkM2ZmMDYzNDMyZjk3ZDZmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTM1
LDYgKzM1LDggQEAgV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBSZXNv
dXJjZUNvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFcKIAogICAgICAgICBzdXBlcihjb2xs
ZWN0aW9uLCBjb250ZW50Vmlld0NvbnN0cnVjdG9yKTsKIAorICAgICAgICB0aGlzLmVsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgicmVzb3VyY2UtY29sbGVjdGlvbiIpOworCiAgICAgICAgIGlmIChjb2xs
ZWN0aW9uLnJlc291cmNlVHlwZSA9PT0gV0kuUmVzb3VyY2UuVHlwZS5JbWFnZSkgewogICAgICAg
ICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0
ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFu
c3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAi
SW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgICAg
IHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVTaG93R3JpZEJ1
dHRvbkNsaWNrZWQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU2Mzc3Y2Y3ZjlkMWU0Njc5M2VlNDZkNTQ0Zjhh
YmMxMGQ1MDEwZjEuLmFhOTRmNTZlNzUzMzExNTJiMTRkYjAyZjM5ZTYzNDIxMWZkNWM1NTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw3MSBAQAorMjAxOS0xMi0xOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBm
b3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
YW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1h
bmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZl
Y3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9hbmltYXRpb24vcmVxdWVzdE5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2FuaW1hdGlvbi9yZXF1ZXN0Tm9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMv
bGlmZWN5Y2xlLXV0aWxpdGllcy5qczogQWRkZWQuCisgICAgICAgIChjcmVhdGVBbmltYXRpb24p
OgorICAgICAgICAoZGVzdHJveUFuaW1hdGlvbnMpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5B
bmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgYXdhaXRBbmltYXRpb25DcmVhdGVkKToK
KyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5j
IGF3YWl0QW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0
aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGNyZWF0ZUFuaW1hdGlvbik6CisgICAgICAgIChJ
bnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBkZXN0cm95QW5p
bWF0aW9ucyk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdl
YmdwdS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1j
b250ZXh0LXV0aWxpdGllcy5qczoKKyAgICAgICAgKGRlc3Ryb3lDYW52YXNlcyk6CisgICAgICAg
IChhd2FpdENhbnZhc0FkZGVkKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQ3JlYXRlQ29udGV4
dFV0aWxpdGllcy5pbml0aWFsaXplVGVzdFN1aXRlKToKKworICAgICAgICAqIGluc3BlY3Rvci9j
YW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9leHRlbnNpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbDoKKworICAgICAgICAqIGlu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzOgorICAgICAgICAo
d2luZG93LmdldENhbnZhcyk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclBy
b2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJn
cHUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ2wuanM6CisgICAgICAgIChkZWxldGVDb250ZXh0KToKKyAgICAgICAg
KHdoZW5Qcm9ncmFtQWRkZWQpOgorICAgICAgICAod2luZG93LmluaXRpYWxpemVUZXN0U3VpdGUp
OgorICAgICAgICAod2luZG93LmFkZFBhcmVudENhbnZhc1JlbW92ZWRUZXN0Q2FzZSk6CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9u
cy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBl
Y3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKwogMjAxOS0xMi0xOSAgQ2hhcmxpZSBUdXJuZXIg
IDxjdHVybmVyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gaHR0cC90ZXN0cy9tZWRpYS9j
bGVhcmtleS9jb2xsZWN0LXdlYmtpdC1tZWRpYS1zZXNzaW9uLmh0bWwgaXMgdGltaW5nIG91dCBz
aW5jZSBhZGRlZCBpbiByMjM1NDI5ICJXZWJLaXRNZWRpYVNlc3Npb24gc2hvdWxkIGJlIEdDIGNv
bGxlY3RhYmxlIHdoZW4gaXRzIGRvY3VtZW50IGlzIGJlaW5nIHN0b3BwZWQiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMmYzM2NiZDdmOTMzZDNiNDliYmZmNWQzNzhkZTU3YjgyMzEy
YmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9l
ZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhl
IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0
ZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRp
b24uZWZmZWN0Q2hhbmdlZC5OZXdFZmZlY3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBh
biBlZmZlY3QuCitDaGFuZ2luZyBlZmZlY3QuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBo
YXZlIGFuIGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdl
ZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxF
ZmZlY3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBl
ZmZlY3QuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuCitQ
QVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDQ1ZDg1YjFlMWYyMTY4ODFmZmJkNmY2MWIzNzQ3YzcwZGJmMTc0NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1s
CkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93
LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbe29wYWNpdHk6IDB9XSk7CisKKyAg
ICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IElu
c3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQiKTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZl
Y3RDaGFuZ2VkLk5ld0VmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVy
biBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5
LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUg
c2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1h
dGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAg
ICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1h
dGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAg
ICAgICBsZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNo
b3VsZCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkNoYW5naW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChb
CisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50
LkVmZmVjdENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbmV3IEtleWZyYW1lRWZmZWN0KHdpbmRv
dy5hbmltYXRpb24uZWZmZWN0LnRhcmdldCwgW3tvcGFjaXR5OiAxfV0sIHt9KWApLAorICAgICAg
ICAgICAgXSk7CisKKyAgICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5
ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eShuZXdLZXlm
cmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIpOworCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxsb3dFcXVhbChuZXdLZXlmcmFtZXMsIG9sZEtl
eWZyYW1lcywgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAg
ICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IkFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlv
bjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24g
aWRlbnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFu
aW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVj
dGlvbik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0
aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAg
ICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFh
bmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRp
b24uVHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlv
bi4iKTsKKworICAgICAgICAgICAgbGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFt
ZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1l
cywgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJ
LkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG51bGxgKSwK
KyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3S2V5ZnJhbWVzID0gYW5pbWF0
aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkobmV3
S2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1l
cywgb2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIp
OworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNo
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8
cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTI5NjA3MjJjZWZlNWEwYmExODc3OGRlN2JkYzJkMjFmNjY3ZmIzZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1h
bmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3RzIGZvciB0aGUgQW5p
bWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQg
ZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uCitQ
QVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorUEFTUzogQW5pbWF0aW9u
IGNyZWF0ZWQuCitQQVNTOiBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgQ1NTIEFuaW1hdGlvbi4K
K3N0YXJ0RGVsYXk6IDEwMAoraXRlcmF0aW9uczogMgoraXRlcmF0aW9uRHVyYXRpb246IDQwMAor
dGltaW5nRnVuY3Rpb246ICJsaW5lYXIiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIK
K2ZpbGxNb2RlOiAiYm90aCIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLAor
ICAgICJzdHlsZSI6ICJjb2xvcjogcmdiKDI1NSwgMCwgMCk7XG5vcGFjaXR5OiAwOyIKKyAgfSwK
KyAgeworICAgICJvZmZzZXQiOiAwLjUsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMCwgMTI4
LCAwKTtcbm9wYWNpdHk6IDAuNTsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMSwKKyAgICAi
c3R5bGUiOiAiY29sb3I6IHJnYigwLCAwLCAyNTUpO1xub3BhY2l0eTogMTsiCisgIH0KK10KKwor
RGVzdHJveWluZyBhbmltYXRpb25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQ
QVNTOiBSZW1vdmVkIGFuaW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NmRhMDk1MWJmNWU0NTM2MjM5MjMwNTEzNmM4MmI1NDQ2Yzhl
MGVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9s
aWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0Br
ZXlmcmFtZXMgZmFkZS1pbiB7CisgICAgZnJvbSB7CisgICAgICAgIGNvbG9yOiByZWQ7CisgICAg
ICAgIG9wYWNpdHk6IDA7CisgICAgfQorICAgIDUwJSB7CisgICAgICAgIGNvbG9yOiBncmVlbjsK
KyAgICAgICAgb3BhY2l0eTogMC41OworICAgIH0KKyAgICB0byB7CisgICAgICAgIGNvbG9yOiBi
bHVlOworICAgICAgICBvcGFjaXR5OiAxOworICAgIH0KK30KK2RpdiN0YXJnZXQuYWN0aXZlIHsK
KyAgICBhbmltYXRpb24tbmFtZTogZmFkZS1pbjsKKyAgICBhbmltYXRpb24tZHVyYXRpb246IDQw
MG1zOworICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAu
MiwgMC4zLCAwLjQpOworICAgIGFuaW1hdGlvbi1kZWxheTogMTAwbXM7CisgICAgYW5pbWF0aW9u
LWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7
CisgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5Y2xlLkNTU0FuaW1hdGlvbiIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBXZWIgSW5zcGVjdG9yIGlzIG5vdGlmaWVk
IHdoZW5ldmVyIENTUyBhbmltYXRpb25zIGFyZSBjcmVhdGVkL2Rlc3Ryb3llZC4iLAorICAgICAg
ICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChX
SS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uc2l6ZSwgMCwgIlRoZXJlIHNo
b3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7CisKKyAgICAgICAgICAgIGxldCBbYW5pbWF0
aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkNyZWF0ZWQoV0kuQW5p
bWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NM
aXN0LmFkZCgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2Fp
dCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25M
aWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uLmFuaW1h
dGlvbklkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNs
ZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucygpLAorICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5j
bGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZv
ciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25E
ZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9s
aWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk5OGVlMzE5OWMwMTYzYTQ3OGY5NTZmYTAyMDYxZjBiZWIwMGM0YjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
dHJhbnNpdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGVzdHMgZm9yIHRoZSBB
bmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3ll
ZCBldmVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xl
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NUcmFuc2l0aW9u
CitQQVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorUEFTUzogQW5pbWF0
aW9uIGNyZWF0ZWQuCitQQVNTOiBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgQ1NTIFRyYW5zaXRp
b24uCitzdGFydERlbGF5OiAxMDAKK2l0ZXJhdGlvbnM6IDEKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0
MDAKK3RpbWluZ0Z1bmN0aW9uOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiCitw
bGF5YmFja0RpcmVjdGlvbjogIm5vcm1hbCIKK2ZpbGxNb2RlOiAiYmFja3dhcmRzIgora2V5ZnJh
bWVzOgorWworICB7CisgICAgIm9mZnNldCI6IDAsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDA7
IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDEsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDE7
IgorICB9CitdCisKK0Rlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLgorCitQQVNTOiBBbmltYXRpb24g
ZGVzdHJveWVkLgorUEFTUzogUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
dHJhbnNpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3lj
bGUtY3NzLXRyYW5zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDQ1YTM4YTIwNGUwYzZjNGQzYTcx
YmYwZWQ5ZGM5NjBlMDQwODliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbApAQCAtMCwwICsxLDU0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CitkaXYjdGFyZ2V0IHsKKyAgICBjb2xvcjogcmVkOworICAgIG9wYWNpdHk6
IDA7CisKK30KK2RpdiN0YXJnZXQuYWN0aXZlIHsKKyAgICBjb2xvcjogYmx1ZTsKKyAgICBvcGFj
aXR5OiAxOworCisgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsKKyAgICB0cmFuc2l0
aW9uLWR1cmF0aW9uOiA0MDBtczsKKyAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3Vi
aWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCk7CisgICAgdHJhbnNpdGlvbi1kZWxheTogMTAw
bXM7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNs
ZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9u
LkxpZmVjeWNsZS5DU1NUcmFuc2l0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIgQ1NTIHRyYW5zaXRpb25zIGFy
ZSBjcmVhdGVkL2Rlc3Ryb3llZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlv
bkNvbGxlY3Rpb24uc2l6ZSwgMCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMu
Iik7CisKKyAgICAgICAgICAgIGxldCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGll
cy5hd2FpdEFuaW1hdGlvbkNyZWF0ZWQoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbiks
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCksCisgICAg
ICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5p
bWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlv
bnMoKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIilg
KSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25D
cmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+CisgICAg
PGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2Vi
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlkZGJiNTY2MGU1YzY4NjBiMjRk
MWMxODU5YTVlZWUzMDJmY2U1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzkgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5k
IEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1h
dGlvbi5MaWZlY3ljbGUuV2ViQW5pbWF0aW9uCitQQVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFu
eSBhbmltYXRpb25zLgorQ3JlYXRpbmcgYW5pbWF0aW9uLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBj
cmVhdGVkLgorICAwOiBhbmltYXRlIC0gW25hdGl2ZSBjb2RlXQorICAxOiBjcmVhdGVBbmltYXRp
b24gLSBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpz
Ojc6MzUKKyAgMjogR2xvYmFsIENvZGUgLSBbcHJvZ3JhbSBjb2RlXQorICAzOiBldmFsdWF0ZVdp
dGhTY29wZUV4dGVuc2lvbiAtIFtuYXRpdmUgY29kZV0KKyAgNDogKGFub255bW91cyBmdW5jdGlv
bikgLSBbbmF0aXZlIGNvZGVdCisgIDU6IF93cmFwQ2FsbCAtIFtuYXRpdmUgY29kZV0KK1BBU1M6
IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBXZWIgQW5pbWF0aW9uLgorc3RhcnREZWxheTogMTAw
CitlbmREZWxheTogMjAwCitpdGVyYXRpb25zOiAxMAoraXRlcmF0aW9uU3RhcnQ6IDUKK2l0ZXJh
dGlvbkR1cmF0aW9uOiAzMDAKK3RpbWluZ0Z1bmN0aW9uOiAiZWFzZS1pbi1vdXQiCitwbGF5YmFj
a0RpcmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2RlOiAiYm90aCIKK2tleWZyYW1lczoKK1sK
KyAgeworICAgICJvZmZzZXQiOiAwLjI1LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAu
MSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogcmVkO1xub3BhY2l0eTog
MDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMC43NSwKKyAgICAiZWFzaW5nIjogImN1Ymlj
LWJlemllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IGJsdWU7
XG5vcGFjaXR5OiAxOyIKKyAgfQorXQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mMDI3MGE0YjI3ZDFkYzBiYWE2NzY3NGFiNzA3YzA5OGJjYThiYWYxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFu
aW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZl
Y3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1h
dGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuV2ViQW5pbWF0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIgd2ViIGFu
aW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFn
ZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkg
YW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGF3YWl0IEluc3Bl
Y3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmNyZWF0ZUFuaW1hdGlvbihXSS5B
bmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sIHsKKyAgICAgICAgICAgICAgICBzZWxlY3Rvcjog
ImJvZHkiLAorICAgICAgICAgICAgICAgIGtleWZyYW1lczogWworICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuMjUsCisgICAgICAgICAgICAg
ICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInJlZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICBvcGFjaXR5OiAwLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuNzUsCisgICAgICAgICAg
ICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC42LCAwLjcsIDAuOCwgMC45KSIs
CisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogImJsdWUiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgb3BhY2l0eTogMSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAgICAgICAg
ZGVsYXk6IDEwMCwKKyAgICAgICAgICAgICAgICAgICAgZW5kRGVsYXk6IDIwMCwKKyAgICAgICAg
ICAgICAgICAgICAgZHVyYXRpb246IDMwMCwKKyAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAi
ZWFzZS1pbi1vdXQiLAorICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246ICJhbHRlcm5hdGUi
LAorICAgICAgICAgICAgICAgICAgICBmaWxsOiAiYm90aCIsCisgICAgICAgICAgICAgICAgICAg
IGl0ZXJhdGlvbnM6IDEwLAorICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25TdGFydDogNSwK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7
CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5p
bWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQg
ZXZlbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdE5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0Tm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmRkZjgzMWU5YWMxMGI3NDFiZGM3ZWEzNjBlMjA0NjQ0MTUyMmQ0ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdE5vZGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNDQgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlcXVlc3ROb2Rl
IGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24ucmVxdWVzdE5v
ZGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24ucmVxdWVzdE5vZGUuV2l0aFRhcmdl
dAorQ3JlYXRpbmcgYW5pbWF0aW9uLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorICAw
OiBhbmltYXRlIC0gW25hdGl2ZSBjb2RlXQorICAxOiBjcmVhdGVBbmltYXRpb24gLSBpbnNwZWN0
b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzOjc6MzUKKyAgMjog
R2xvYmFsIENvZGUgLSBbcHJvZ3JhbSBjb2RlXQorICAzOiBldmFsdWF0ZVdpdGhTY29wZUV4dGVu
c2lvbiAtIFtuYXRpdmUgY29kZV0KKyAgNDogKGFub255bW91cyBmdW5jdGlvbikgLSBbbmF0aXZl
IGNvZGVdCisgIDU6IF93cmFwQ2FsbCAtIFtuYXRpdmUgY29kZV0KK1BBU1M6IEFuaW1hdGlvbiB0
eXBlIHNob3VsZCBiZSBXZWIgQW5pbWF0aW9uLgoraXRlcmF0aW9uczogMQordGltaW5nRnVuY3Rp
b246ICJsaW5lYXIiCitwbGF5YmFja0RpcmVjdGlvbjogIm5vcm1hbCIKK2ZpbGxNb2RlOiAiYXV0
byIKKworUEFTUzogQW5pbWF0aW9uIGhhcyBhIHZhbGlkIERPTSBub2RlIHRhcmdldC4KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXF1ZXN0Tm9kZS5XaXRob3V0VGFyZ2V0CitD
cmVhdGluZyBhbmltYXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCisgIDA6IChh
bm9ueW1vdXMgZnVuY3Rpb24pIC0gW25hdGl2ZSBjb2RlXQorICAxOiBjcmVhdGVBbmltYXRpb24g
LSBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzOjk6
MzQKKyAgMjogR2xvYmFsIENvZGUgLSBbcHJvZ3JhbSBjb2RlXQorICAzOiBldmFsdWF0ZVdpdGhT
Y29wZUV4dGVuc2lvbiAtIFtuYXRpdmUgY29kZV0KKyAgNDogKGFub255bW91cyBmdW5jdGlvbikg
LSBbbmF0aXZlIGNvZGVdCisgIDU6IF93cmFwQ2FsbCAtIFtuYXRpdmUgY29kZV0KK1BBU1M6IEFu
aW1hdGlvbiB0eXBlIHNob3VsZCBiZSBXZWIgQW5pbWF0aW9uLgoraXRlcmF0aW9uczogMQordGlt
aW5nRnVuY3Rpb246ICJsaW5lYXIiCitwbGF5YmFja0RpcmVjdGlvbjogIm5vcm1hbCIKK2ZpbGxN
b2RlOiAiYXV0byIKKworUEFTUzogQW5pbWF0aW9uIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBET00g
bm9kZSB0YXJnZXQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24ucmVxdWVzdE5v
ZGUuSW52YWxpZElkZW50aWZpZXIKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4K
K0Vycm9yOiBNaXNzaW5nIGFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0Tm9kZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0Tm9kZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAyY2Q0ZmJhNWFmNDk5ZmMzMmMzYjk2YjQ5NmU0NTRkNzkyNjZkOGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3ROb2RlLmh0bWwK
QEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnJlcXVlc3RO
b2RlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRp
b24ucmVxdWVzdE5vZGUuV2l0aFRhcmdldCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxk
IGJlIGFibGUgdG8gZ2V0IHRoZSBET00gbm9kZSBmb3IgYW4gYW5pbWF0aW9uIHRoYXQgaGFzIGEg
dGFyZ2V0LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0
aW9uID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3Jl
YXRlQW5pbWF0aW9uKFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwge3NlbGVjdG9yOiAi
Ym9keSJ9KTsKKyAgICAgICAgICAgIGxldCBkb21Ob2RlID0gYXdhaXQgYW5pbWF0aW9uLnJlcXVl
c3ROb2RlKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSBp
bnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gaGFzIGEgdmFsaWQgRE9NIG5vZGUgdGFy
Z2V0LiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlcXVlc3ROb2RlLldpdGhvdXRUYXJnZXQiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCBub3QgYmUgYWJsZSB0byBnZXQgdGhlIERPTSBub2Rl
IGZvciBhbiBhbmltYXRpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGEgdGFyZ2V0LiIsCisgICAgICAg
IGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYXdhaXQgSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3JlYXRlQW5pbWF0aW9uKFdJLkFu
aW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbik7CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IGF3
YWl0IGFuaW1hdGlvbi5yZXF1ZXN0Tm9kZSgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3ROdWxsKGRvbU5vZGUsICJBbmltYXRpb24gZG9lcyBub3QgaGF2ZSBhIHZhbGlkIERPTSBu
b2RlIHRhcmdldC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIC8vIC0tLS0tLQorCisg
ICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlcXVlc3RO
b2RlLkludmFsaWRJZGVudGlmaWVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJJbnZhbGlkIGFu
aW1hdGlvbiBpZGVudGlmaWVycyBzaG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKKyAgICAgICAgYXN5
bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSAiRE9FU19OT1RfRVhJ
U1QiOworCisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgYXdhaXQgQW5pbWF0aW9uQWdlbnQucmVxdWVz
dE5vZGUoaWRlbnRpZmllcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKyAgICB9KTsK
KworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmlt
YXRpb24ucmVxdWVzdE5vZGUgY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmQ0OGRhODE1MjE5OTczZDYxMjYwODM2MDg2
ZWUyMTFlMmExYWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
ZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGNvbW1hbmQuCisKKworPT0g
UnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbgorLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmllcgor
UEFTUzogUGF5bG9hZCBzaG91bGQgaGF2ZSB0eXBlICJvYmplY3QiLgorUEFTUzogUGF5bG9hZCBz
aG91bGQgaGF2ZSBjbGFzc05hbWUgIkFuaW1hdGlvbiIuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbi5JbnZhbGlkSWRlbnRpZmllcgorUEFTUzogU2hv
dWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IE1pc3NpbmcgYW5pbWF0aW9uIGZvciBn
aXZlbiBhbmltYXRpb25JZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmlt
YXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMjNlMzk3NGMzNGMxOTdj
ZGQ1OTg2MTBmNzM3NzEwNjdlMzAxMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDYwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkgeworICAgIHdpbmRvdy5hbmltYXRpb24gPSBkb2N1
bWVudC5ib2R5LmFuaW1hdGUoW10pOworCisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUo
IkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbi5WYWxpZElkZW50aWZp
ZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3Qg
Zm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlv
bk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9u
ZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25z
WzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJv
dyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmlt
YXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24g
c2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgY29uc3Qgb2JqZWN0
R3JvdXAgPSAidGVzdCI7CisgICAgICAgICAgICBsZXQge29iamVjdH0gPSBhd2FpdCBBbmltYXRp
b25BZ2VudC5yZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbi5hbmltYXRpb25JZCwgb2JqZWN0R3Jv
dXApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChvYmplY3QudHlwZSwg
Im9iamVjdCIsIGBQYXlsb2FkIHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuYCk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC5jbGFzc05hbWUsICJBbmltYXRp
b24iLCBgUGF5bG9hZCBzaG91bGQgaGF2ZSBjbGFzc05hbWUgIkFuaW1hdGlvbiIuYCk7CisgICAg
ICAgIH0sCisgICAgfSk7CisKKyAgICAvLyAtLS0tLS0KKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVu
dGlmaWVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJJbnZhbGlkIGFuaW1hdGlvbiBpZGVudGlm
aWVycyBzaG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAg
ICAgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSAiRE9FU19OT1RfRVhJU1QiOworICAgICAgICAg
ICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICBh
d2FpdCBBbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0aW9uKGlkZW50aWZpZXIsIG9iamVjdEdy
b3VwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5yZXNvbHZlQW5p
bWF0aW9uIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5q
cyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11
dGlsaXRpZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBlZDk1NTk2YWQxYmU3NjBjNjU1NGE5OTk4OGI0YzQ2
OTViMjhkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRp
b24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMKQEAgLTAsMCArMSwxMzAgQEAKK3dp
bmRvdy5hbmltYXRpb25zID0gW107CisKK2Z1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvbihzZWxlY3Rv
ciwga2V5ZnJhbWVzID0gW10sIG9wdGlvbnMgPSB7fSkgeworICAgIGxldCBhbmltYXRpb24gPSBu
dWxsOworCisgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3Ip
OworICAgIGlmICh0YXJnZXQpCisgICAgICAgIGFuaW1hdGlvbiA9IHRhcmdldC5hbmltYXRlKGtl
eWZyYW1lcywgb3B0aW9ucyk7CisgICAgZWxzZQorICAgICAgICBhbmltYXRpb24gPSBuZXcgQW5p
bWF0aW9uKG5ldyBLZXlmcmFtZUVmZmVjdChudWxsLCBrZXlmcmFtZXMsIG9wdGlvbnMpKTsKKwor
ICAgIHdpbmRvdy5hbmltYXRpb25zLnB1c2goYW5pbWF0aW9uKTsKK30KKworZnVuY3Rpb24gZGVz
dHJveUFuaW1hdGlvbnMoKSB7CisgICAgZm9yIChsZXQgYW5pbWF0aW9uIG9mIHdpbmRvdy5hbmlt
YXRpb25zKSB7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGFuaW1hdGlvbi5jYW5jZWwoKTsKKworICAgICAgICBpZiAoYW5pbWF0aW9uLmVm
ZmVjdCkgeworICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0KSB7CisgICAg
ICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQucmVtb3ZlKCk7CisgICAgICAgICAg
ICAgICAgYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBudWxsOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0ID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHdpbmRvdy5hbmltYXRpb25zID0gW107CisKKyAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1
cmUgdGhlIGFuaW1hdGlvbiBhbmQgaXQncyB0YXJnZXQgYXJlIGJvdGggZGVzdHJveWVkLCBhcyBv
dGhlcndpc2UgdGhlCisgICAgLy8gZnJvbnRlbmQgd2lsbCBub3QgcmVjZWl2ZSBBbmltYXRpb24u
YW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy4KKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAg
ICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICB9KTsKK30KKworVGVzdFBhZ2UucmVnaXN0
ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgZnVuY3Rpb24ganNvbktleWZyYW1lRmlsdGVyKGtl
eSwgdmFsdWUpIHsKKyAgICAgICAgaWYgKGtleSA9PT0gImVhc2luZyIgJiYgdmFsdWUgaW5zdGFu
Y2VvZiBXSS5DdWJpY0JlemllcikKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygp
OworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5Bbmlt
YXRpb25MaWZlY3ljbGVVdGlsaXRpZXMgPSB7fTsKKworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0
aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZCA9IGFzeW5jIGZ1bmN0
aW9uKGFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVt
QWRkZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlv
bi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKKworICAgICAgICBJ
bnNwZWN0b3JUZXN0LnBhc3MoIkFuaW1hdGlvbiBjcmVhdGVkLiIpOworCisgICAgICAgIGxldCBh
bmltYXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbUFkZGVkRXZlbnQuZGF0YS5pdGVtOwor
CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYW5pbWF0aW9uLmJhY2t0cmFjZS5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgbGV0IGNhbGxGcmFtZSA9IGFuaW1hdGlvbi5iYWNrdHJhY2Vb
aV07CisgICAgICAgICAgICBsZXQgdHJhY2VUZXh0ID0gYCAgJHtpfTogYDsKKyAgICAgICAgICAg
IHRyYWNlVGV4dCArPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICIoYW5vbnltb3VzIGZ1bmN0
aW9uKSI7CisKKyAgICAgICAgICAgIGlmIChjYWxsRnJhbWUubmF0aXZlQ29kZSkKKyAgICAgICAg
ICAgICAgICB0cmFjZVRleHQgKz0gIiAtIFtuYXRpdmUgY29kZV0iOworICAgICAgICAgICAgZWxz
ZSBpZiAoY2FsbEZyYW1lLnByb2dyYW1Db2RlKQorICAgICAgICAgICAgICAgIHRyYWNlVGV4dCAr
PSAiIC0gW3Byb2dyYW0gY29kZV0iOworICAgICAgICAgICAgZWxzZSBpZiAoY2FsbEZyYW1lLnNv
dXJjZUNvZGVMb2NhdGlvbikgeworICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbiA9IGNhbGxG
cmFtZS5zb3VyY2VDb2RlTG9jYXRpb247CisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9ICIg
LSAiICsgc2FuaXRpemVVUkwobG9jYXRpb24uc291cmNlQ29kZS51cmwpICsgYDoke2xvY2F0aW9u
LmxpbmVOdW1iZXJ9OiR7bG9jYXRpb24uY29sdW1uTnVtYmVyfWA7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHRyYWNlVGV4dCk7CisgICAgICAgIH0KKwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGFuaW1hdGlvbi5hbmltYXRpb25UeXBl
LCBhbmltYXRpb25UeXBlLCBgQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlICR7V0kuQW5pbWF0aW9u
LmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZShhbmltYXRpb25UeXBlKX0uYCk7CisKKyAgICAg
ICAgaWYgKGFuaW1hdGlvbi5zdGFydERlbGF5KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coInN0YXJ0RGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uc3RhcnREZWxheSkp
OworICAgICAgICBpZiAoYW5pbWF0aW9uLmVuZERlbGF5KQorICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coImVuZERlbGF5OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLmVuZERlbGF5
KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uaXRlcmF0aW9ucykKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJpdGVyYXRpb25zOiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0
ZXJhdGlvbnMpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25TdGFydDogIiArIEpTT04uc3RyaW5n
aWZ5KGFuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0
ZXJhdGlvbkR1cmF0aW9uKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlv
bkR1cmF0aW9uOiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9u
KSk7CisgICAgICAgIGlmIChhbmltYXRpb24udGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygidGltaW5nRnVuY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShTdHJp
bmcoYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uKSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLnBs
YXliYWNrRGlyZWN0aW9uKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coInBsYXliYWNr
RGlyZWN0aW9uOiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9u
KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uZmlsbE1vZGUpCisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiZmlsbE1vZGU6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZmlsbE1v
ZGUpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5rZXlmcmFtZXMubGVuZ3RoKSB7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygia2V5ZnJhbWVzOiIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5qc29uKGFuaW1hdGlvbi5rZXlmcmFtZXMsIGpzb25LZXlmcmFtZUZpbHRlcik7Cisg
ICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKKworICAgICAgICBy
ZXR1cm4gYW5pbWF0aW9uCisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlm
ZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVzdHJveWVkID0gYXN5bmMgZnVuY3Rpb24o
YW5pbWF0aW9uSWRlbnRpZmllcikgeworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0
ZW1SZW1vdmVkRXZlbnQgPSBhd2FpdCBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxl
Y3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQorCisgICAg
ICAgIEluc3BlY3RvclRlc3QucGFzcygiQW5pbWF0aW9uIGRlc3Ryb3llZC4iKTsKKworICAgICAg
ICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1SZW1vdmVkRXZlbnQuZGF0
YS5pdGVtOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGFuaW1hdGlvbi5hbmlt
YXRpb25JZCwgYW5pbWF0aW9uSWRlbnRpZmllciwgIlJlbW92ZWQgYW5pbWF0aW9uIGhhcyBleHBl
Y3RlZCBJRC4iKTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3lj
bGVVdGlsaXRpZXMuY3JlYXRlQW5pbWF0aW9uID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uVHlw
ZSwge3NlbGVjdG9yLCBrZXlmcmFtZXMsIG9wdGlvbnN9ID0ge30pIHsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkNyZWF0aW5nIGFuaW1hdGlvbi4uLlxuIik7CisKKyAgICAgICAgbGV0IHN0
cmluZ2lmaWVkU2VsZWN0b3IgPSBKU09OLnN0cmluZ2lmeShzZWxlY3RvciB8fCBudWxsKTsKKyAg
ICAgICAgbGV0IHN0cmluZ2lmaWVkS2V5ZnJhbWVzID0gSlNPTi5zdHJpbmdpZnkoa2V5ZnJhbWVz
IHx8IFtdKTsKKyAgICAgICAgbGV0IHN0cmluZ2lmaWVkT3B0aW9ucyA9IEpTT04uc3RyaW5naWZ5
KG9wdGlvbnMgfHwge30pOworCisgICAgICAgIGxldCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21p
c2UuYWxsKFsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRp
bGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25UeXBlKSwKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUFuaW1hdGlvbigke3N0cmluZ2lm
aWVkU2VsZWN0b3J9LCAke3N0cmluZ2lmaWVkS2V5ZnJhbWVzfSwgJHtzdHJpbmdpZmllZE9wdGlv
bnN9KWApCisgICAgICAgIF0pOworCisgICAgICAgIHJldHVybiBhbmltYXRpb247CisgICAgfTsK
KworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmRlc3Ryb3lB
bmltYXRpb25zID0gYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJEZXN0cm95aW5nIGFuaW1hdGlvbnMuLi5cbiIpOworICAgICAgICBhd2FpdCBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKGBkZXN0cm95QW5pbWF0aW9ucygpYCk7CisgICAgfTsKK30pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2Vk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hh
bmdlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg4ZGUyMmQzNDhjZWE5YWM5YWZmM2ZhZDFm
MTQyNTEwNzZjZDdkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
bmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVz
dHMgZm9yIHRoZSBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZCBldmVudC4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0CitQQVNTOiBBbmltYXRpb24gc2hv
dWxkIGhhdmUgYSB0YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0aW9u
IHNob3VsZCBoYXZlIGEgdGFyZ2V0LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2
ZSBjaGFuZ2VkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnRhcmdldENoYW5n
ZWQuTnVsbFRhcmdldAorUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LgorQ2hh
bmdpbmcgdGFyZ2V0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYSB0YXJn
ZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDU0NzI1MDQzMDQ2M2M5MTE4NzJiNDMyYzA4MTYxODg0NzBhZTRhNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdl
ZC5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAg
d2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5U
ZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnRhcmdldENoYW5nZWQiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJnZXRDaGFu
Z2VkLk5ld1RhcmdldCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZh
bGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAg
IGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20o
V0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9
IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAg
ICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5p
bWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwg
IkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBs
ZXQgb2xkRE9NTm9kZSA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0Tm9kZSgpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG9sZERPTU5vZGUgaW5zdGFuY2VvZiBXSS5ET01O
b2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgdGFyZ2V0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3
YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uYXdhaXRFdmVudChX
SS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCksCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAg
ICAgICAgICBsZXQgbmV3RE9NTm9kZSA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0Tm9kZSgpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG5ld0RPTU5vZGUgaW5zdGFuY2Vv
ZiBXSS5ET01Ob2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVxdWFsKG5ld0RPTU5vZGUsIG9sZERPTU5v
ZGUsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmlt
YXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJT
aG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50
aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRp
b25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24p
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09
IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAg
ICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0
aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5
cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7
CisKKyAgICAgICAgICAgIGxldCBvbGRET01Ob2RlID0gYXdhaXQgYW5pbWF0aW9uLnJlcXVlc3RO
b2RlKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQob2xkRE9NTm9kZSBp
bnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7
CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIp
OworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1h
dGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9u
LmVmZmVjdC50YXJnZXQgPSBudWxsYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAg
bGV0IG5ld0RPTU5vZGUgPSBhd2FpdCBhbmltYXRpb24ucmVxdWVzdE5vZGUoKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0TnVsbChuZXdET01Ob2RlLCAiQW5pbWF0aW9uIHNob3Vs
ZCBub3QgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3ROb3RFcXVhbChuZXdET01Ob2RlLCBvbGRET01Ob2RlLCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91
bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2Vk
IGV2ZW50LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sCmluZGV4IGQ0ZTExMWZkOWQ4NTM3
MTVlNDQ2MzMzNmI0YmQwNzgyNzhjYWY2MWUuLjJkNjI3NGI3ZjU1NDdkZWI4MjgzM2I5ZmFhNWMy
M2JmMDBjZmIwNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29u
dGV4dC1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9j
b250ZXh0LWF0dHJpYnV0ZXMuaHRtbApAQCAtMjAsOSArMjAsOSBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhh
dCBjcmVhdGVkIGNhbnZhc2VzIGhhdmUgdGhlIGNvcnJlY3QgdHlwZSBhbmQgYXR0cmlidXRlcyBz
ZW50IHRvIHRoZSBmcm9udGVuZC4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCkKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCkKICAgICAgICAgICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgICAgICAg
ICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiQWRkZWQgY2FudmFzLiIpOwogCiAgICAgICAgICAgICAgICAgICAgIGxl
dCBjb250ZXh0RGlzcGxheU5hbWUgPSBXSS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlw
ZShjb250ZXh0VHlwZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbAppbmRleCBiYzE4MWY2MmYyZDRmNDNlYjRhMWFi
ZjFkOWY4MzZmY2UzZDJiYjVmLi5iMTQwZjExOGQwODg2Y2I3NTgwMmZhMTU0MGNhNWY4NTc2YWM2
YTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250
ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRl
LWNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTM0LDE0ICszNCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGF0dGFjaGVkIEdQVUNhbnZhc0Nv
bnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURl
dmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQg
PSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRk
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQp
ID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQu
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAg
ICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAg
ICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQXR0YWNoZWRDYW52YXMoImdwdSIp
YCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxk
IG5vdCBiZSBjcmVhdGVkIGZvciBhdHRhY2hlZCBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29u
bmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTUyLDE0ICs1MiwxNCBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGRldGFj
aGVkIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQg
b2YgdGhlIFdlYkdQVURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAg
ICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNh
bnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChldmVudC50YXJnZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
UFUpOworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50
LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7
CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV0YWNo
ZWRDYW52YXMoImdwdSIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVy
KTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3Rv
ciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBkZXRhY2hlZCBHUFVDYW52YXNDb250
ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTcw
LDE0ICs3MCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVu
c3VyZSB0aGF0IENTUyBHUFVDYW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFz
LCBpbnN0ZWFkIG9mIHRoZSBXZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsK
ICAgICAgICAgICAgIGxldCBjcmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVu
ZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR1BVKTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChldmVudC5kYXRhLml0ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHUFUpOwogICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNy
ZWF0ZUNTU0NhbnZhcygiZ3B1IiwgImNzcy1jYW52YXMiKWApCiAKLSAgICAgICAgICAgIFdJLmNh
bnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNh
bnZhc0FkZGVkLCBsaXN0ZW5lcik7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgbGlzdGVuZXIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNl
KGNyZWF0ZWQsICJJbnNwZWN0b3IgY2FudmFzIHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgQ1NT
IEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAg
ICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbApp
bmRleCBlOGZjYmZlMDA3M2MxOWIzODVjNDZiOTdkNDE1ZmY4OTdiYWYxZTIxLi45MzdjMWYzNGJi
YTk2YjU3MDExYTMzMTllOGE1NzgyYzE4NDMyY2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLmV4dGVuc2lvbnMuZW5hYmxlIiwKICAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGVuYWJsaW5nIGFuIGV4dGVuc2lvbiBub3RpZmllcyB0
aGUgZnJvbnRlbmQuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAg
ICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52
YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdM
KTsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52
YXNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgV2ViR0wgY2Fu
dmFzLiIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL21lbW9yeS5odG1sCmluZGV4IDJhNDllMDNhMTg4OGVlODU1ZWJiYjNhZjE4ODQzYmNlM2Uy
YmRiMWMuLjRiZmQ3YTZjZWFiNTNmYzVkOWI4ZTcxM2I4NTNkMjc1ZTAxNzNlNzEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbApAQCAtMjgsNyArMjgsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgLy8gcGVyZm9ybWVkIG9uIHRoYXQgY2FudmFzIHRo
YXQgcmVxdWlyZXMgdGhlIGltYWdlIGJ1ZmZlci4gIEEgYmxhbmsgY2FudmFzIHRoYXQgd2FzCiAg
ICAgICAgICAgICAvLyBqdXN0IGNyZWF0ZWQgd2lsbCBub3QgaGF2ZSBhIGJ1ZmZlciwgc28gaXRz
IG1lbW9yeSBjb3N0IHdpbGwgYmUgMC9OYU4uCiAKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAgICAg
IGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgp
IHsKICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgMkQgY2FudmFzLiIpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgbmFtZTogIkNhbnZhcy5tZW1vcnkuY2FudmFzTWVtb3J5Q2hhbmdlZCIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBtZW1vcnkgY29zdCBpcyB1cGRhdGVkIHdoZW4gdGhl
IGJhY2tlbmQgdmFsdWUgY2hhbmdlcy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5m
aWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAg
ICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgi
TWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKaW5kZXggNGQzY2ZlOWI4ZTZlOTc0
MGQ0ZWNhNjc3OTRhNDVhNGY5ZWVjNjhkMS4uYmUwOGEyMDQxMzAyYzM3NzYxNGNjMzNlMTM5NGEw
OTAxNzUyZTJiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5o
dG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJD
YW52YXMuQWN0aW9uUGFyYW1ldGVyTmFOIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IE5hTiBpcyBjb252ZXJ0ZWQgaW50byB0aGUgcHJvcGVyIHZhbHVlIGZvciBzZXJpYWxpemF0
aW9uLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBj
YW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQg
YmUgYXQgbGVhc3Qgb25lIGNhbnZhcyBjb250ZXh0LiIpOwogCiAgICAgICAgICAgICBjYW52YXMu
YXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTU4LDcgKzU4
LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5NdWx0aXBsZVJl
Y29yZGluZyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBtdWx0aXBsZSByZWNv
cmRpbmdzIGFyZSBhYmxlIHRvIGJlIHN0YXJ0ZWQvc3RvcHBlZCBhdCB0aGUgc2FtZSB0aW1lLiIs
CiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFz
ZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOworICAgICAgICAgICAgbGV0IGNhbnZhc2Vz
ID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAyLCAiVGhlcmUg
c2hvdWxkIGJlIHR3byBjYW52YXMgY29udGV4dHMuIik7CiAKICAgICAgICAgICAgIGNhbnZhc2Vz
WzFdLmF3YWl0RXZlbnQoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQpCkBAIC0xMTIs
NyArMTEyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5Ob0Fj
dGlvbnMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYSBjYW52YXMgaXMgc3Rp
bGwgYWJsZSB0byBiZSByZWNvcmRlZCBhZnRlciBzdG9wcGluZyBhIHJlY29yZGluZyB3aXRoIG5v
IGFjdGlvbnMuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
IGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9u
KVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNo
b3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFzIGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGxl
dCBldmVudENvdW50ID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCmluZGV4IDIzY2QwNDg2ODUwZDBhZTFiNzY3OTg3NWIw
YWYyN2EwNTFjMGY0Y2QuLmY3NGQxNWUxMDZlYTNiMDVjYTkxYjgwMWY4MWM4YTAyZjExNTA0YzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5v
ZGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50
Tm9kZXMuaHRtbApAQCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBu
YW1lOiAiQ2FudmFzLnJlcXVlc3RDbGllbnROb2Rlcy5Jbml0aWFsIiwKICAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGF0IGNyZWF0aW5nIGEgQ1NTIGNhbnZhcyBjbGllbnQgbm9kZSBpcyB0
cmFja2VkIGNvcnJlY3RseS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAg
ICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAi
VGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMuIik7CiAKICAgICAgICAgICAgIGNh
bnZhcy5yZXF1ZXN0Q2xpZW50Tm9kZXMoKGNsaWVudE5vZGVzKSA9PiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKaW5kZXggNTM1
MDk1NzYyYjM5MGYyY2UzZmI1YTk2OTZhZGU2MTEzNDMzYzJmZC4uZTljYmExZDAxMDdjM2E2N2Nl
ZjE3MmU4YWI1YTlhNGE0YWE5Y2EwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50MkQudmFsaWRD
YW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBk
YXRhIGZvciB0aGUgY2FudmFzIG9uIHRoZSBwYWdlIHdpdGggdGhlIGdpdmVuIHR5cGUuIiwKICAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRU
eXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0
IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5m
aW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJp
dG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggY2Q1MDgzYzI1MjUyNzRkNzlmYjhmNGJk
NzliOTc5MzhmZTMwYzYzMC4uZjUyNjZlZmRlZmQ3ZWM3NDc0ZTk2ZWJhYWZkMGJiNTczYjI1ZjJi
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC1iaXRtYXByZW5kZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMjIsNyArMjIsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50Qml0bWFw
UmVuZGVyZXIudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBi
YXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgQml0bWFwUmVuZGVyZXIgY2FudmFzIG9uIHRoZSBw
YWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
KyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCmluZGV4IGFlYjgxZWYyN2QzYzk4MDU4NDk3
OTk2YTE3OWJkNjRhNWJmZTliZWYuLjcwYzIxZmU0MzM5NjkxNTk2MDkxMjI4NDU2NmFmMmY3M2Q1
OGI5NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RDb250ZW50LXdlYmdsLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q29udGVudFdlYkdMLnZhbGlkQ2FudmFzSWQi
LAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3Ig
dGhlIFdlYkdMIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCmluZGV4IDZiMDNkNWVjN2U1
OWQwMjY2ODdjNmI3ZjBkYjI4MDZlMTYzYWVjY2YuLmY3YjU1ZjRhM2RmYzA4NDNhZWY3ODgwYjlm
Nzk3NDBjZTE1YTA4NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbApAQCAtMjEsNyArMjEsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wyLnZh
bGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29k
ZWQgZGF0YSBmb3IgdGhlIFdlYkdMMiBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIp
OwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1p
c3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAppbmRleCBlNWM2MTQ3ZTM0N2JjMzY5
ZTJjMDVjYzg0MTY2ZDgwNmE3MWMwNjE2Li5kY2M0YmNjZWU3NWY0YTY5Mzg0NWJiZGVlNzEyM2Fm
ZmUyYTc5MDUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3ROb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9k
ZS5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6
ICJDYW52YXMucmVxdWVzdE5vZGUudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiR2V0IHRoZSBub2RlIGlkIGZvciBlYWNoIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlczsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5
LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKICAgICAgICAgICAgIGxl
dCBleHBlY3RlZExlbmd0aCA9IGNhbnZhc2VzLmxlbmd0aDsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGV4cGVjdGVkTGVuZ3RoID09PSAzLCAiVGhlIHBhZ2UgaGFzIDMgY2FudmFz
ZXMuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2
ZUNvbnRleHQtMmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtMmQuaHRtbAppbmRleCBjNDFjYzZiYzc0YTMyNDE5MjBiM2Q2YjVjM2Q5YjNjNmJmZGE5
NWQxLi5mZTE0MTE3OWI3Y2FkYTNiYjU4NWE4ODg4NGRlNmJiNjM0ZTc0MzhiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCkBA
IC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJl
c29sdmVDb250ZXh0MkQudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJT
aG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZp
ZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAg
ICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggODYyNTI5MjY1YzRkZDZi
MjliMjk2Nzg4NDQxY2VmOWU2NzdiOWIxMC4uMjk3ZDQ0MWUxNGZhNGIxYmQzOTZkYzA1NGY4NWI4
ZDkzZjlhZTVjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
bHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMTcsNyArMTcs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4
dEJpdG1hcFJlbmRlcmVyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
U2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlm
aWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
KyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCmluZGV4IDk1YWRmMTJjMDkzYWRmMzBjNDdk
MjkyOTkyMzQzZGNmMDFjY2U4N2UuLjJhNzBmYTRhMGZiMTdmZmExOTQ0NDc1MTljYjM5ZTU4MGI5
MzVlNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29s
dmVDb250ZXh0LXdlYmdsLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHRXZWJHTC52YWxpZElkZW50aWZpZXJg
LAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9y
IHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCmluZGV4IDExNTFmOTE3YTdh
MjNlNmZlMzMyYjQzYTlhMzQwNmE5Y2ZlOTBhNTQuLmQ4ZTA4MzFlNmJjM2EyOTY1ZThkNDJjZmQ1
ODdlMmRmYTE0ZDJjNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMMi52YWxp
ZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxp
ZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFy
cmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlz
c2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKaW5k
ZXggZGMwMGVmMTIzN2E2N2I4OTA1ZjM4MGRjZWNmNmE3OWNlYjYzMjY3Ni4uZTkyNWIyNzE2NDhm
NDQ0YzIzYzlkMmE4NWNiODUyMDYyNGNiNjI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sCkBAIC0yMiwxNCAr
MjIsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNv
bnRleHRXZWJHUFUudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91
bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIu
IiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgIlRoZXJlIHNob3VsZCBiZSBu
byBjYW52YXNlcy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSwgIlRoZXJlIHNob3VsZCBiZSBubyBjYW52
YXNlcy4iKTsKIAotICAgICAgICAgICAgbGV0IFtjYW52YXNBZGRlZEV2ZW50XSA9IGF3YWl0IFBy
b21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCksCisgICAgICAgICAgICBsZXQgW2Nh
bnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpLAogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZURldmljZSgpYCksCiAgICAgICAgICAgICBdKTsK
IAotICAgICAgICAgICAgbGV0IHtjYW52YXN9ID0gY2FudmFzQWRkZWRFdmVudC5kYXRhOworICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IGNhbnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRh
Lml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5
cGUsIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUsICJBZGRlZCBjYW52YXMgc2hvdWxkIGJl
IGEgV2ViR1BVIGRldmljZS4iKTsKIAogICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAi
dGVzdCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNl
cy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKaW5kZXggM2E0NjA0NTUy
NTEwMTgyYmJlMmVmMzU1NzIzYTQxZTA0Mjg5ZDYyZi4uMTU5MTU4MDI1OTAyM2I5ZTIzOGU3MWJi
NWM4NTVhYTdjODY0ODFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwpA
QCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiBkZXN0cm95Q2FudmFzZXMoKSB7CiAgICAgd2luZG93
LmNvbnRleHRzID0gW107CiAKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZh
cyBlbGVtZW50IGlzIGRlc3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRv
ZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50
cy4KKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4K
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9
CiAKQEAgLTQzLDkgKzQzLDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7
CiAgICAgbGV0IHN1aXRlID0gbnVsbDsKIAogICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzQWRkZWQo
Y29udGV4dFR5cGUpIHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVu
dChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKQorICAgICAgICByZXR1cm4gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtQWRkZWQpCiAgICAgICAgIC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9
IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIGxldCBjb250ZXh0RGlzcGxheU5hbWUgPSBX
SS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlwZShjb250ZXh0VHlwZSk7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5jb250ZXh0VHlwZSwgY29udGV4
dFR5cGUsIGBDYW52YXMgY29udGV4dCBzaG91bGQgYmUgJHtjb250ZXh0RGlzcGxheU5hbWV9LmAp
OwogCkBAIC03Myw5ICs3Myw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4g
ewogICAgIH0KIAogICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlm
aWVyKSB7Ci0gICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkKQorICAgICAgICByZXR1cm4gV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtUmVtb3ZlZCkKICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZl
bnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjYW52
YXMuaWRlbnRpZmllciwgY2FudmFzSWRlbnRpZmllciwgIlJlbW92ZWQgY2FudmFzIGhhcyBleHBl
Y3RlZCBJRC4iKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtODksNyArODksNyBAQCBUZXN0UGFn
ZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgICAgIG5hbWU6IGAke3N1aXRl
Lm5hbWV9Lk5vQ2FudmFzZXNgLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0
IHRoZSBDYW52YXNNYW5hZ2VyIGhhcyBubyBjYW52YXNlcyBpbml0aWFsbHkuIiwKICAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgMCwgIkNhbnZh
c01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
c2l6ZSwgMCwgIkNhbnZhc01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CiAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11
dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNv
cmRpbmctdXRpbGl0aWVzLmpzCmluZGV4IDYwMTQ2ZmYzODQ4N2ZkMTkzZTIzZDMzNzQ3ZGYzMTA0
NmNjNjgxZjMuLjc3YTBlYTM0M2I2NWY0MjRiYWM2ZGUzNzVlMzNiZjJjYWJkY2NiZDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11
dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
cmVjb3JkaW5nLXV0aWxpdGllcy5qcwpAQCAtODYsNyArODYsNyBAQCBUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9CiAKICAgICB3aW5kb3cuZ2V0Q2FudmFzID0gZnVu
Y3Rpb24odHlwZSkgewotICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IHR5cGUpOwor
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlw
ZSk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwg
YFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMgd2l0aCB0eXBlICIke3R5cGV9Ii5gKTsK
ICAgICAgICAgaWYgKGNhbnZhc2VzLmxlbmd0aCAhPT0gMSkKICAgICAgICAgICAgIHJldHVybiBu
dWxsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
c2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcwppbmRleCA1
Mjc1YzQ0MWFhZmM3M2I5MTA3OTQ1YjNjZDczZjljYTY3ZTFlNjVlLi5mNDNlNmYyNzdjZGM3ZDA1
OGQwOTk0MWE3NjY3NzYzNGUwNWU2Y2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0
aWxpdGllcy13ZWJnbC5qcwpAQCAtMzksNyArMzksNyBAQCBmdW5jdGlvbiBkZWxldGVQcm9ncmFt
KCkgewogZnVuY3Rpb24gZGVsZXRlQ29udGV4dCgpIHsKICAgICBjb250ZXh0ID0gbnVsbDsKICAg
ICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlzIGRlc3Ryb3ll
ZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBkb2VzIG5vdCBy
ZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1lb3V0KCgpID0+
IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKQEAgLTQ3LDggKzQ3LDkgQEAg
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgbGV0IHN1aXRlID0gbnVs
bDsKIAogICAgIGZ1bmN0aW9uIHdoZW5Qcm9ncmFtQWRkZWQoY2FsbGJhY2spIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09
IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5n
dGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBj
YW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5l
cihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAg
ICBsZXQgcHJvZ3JhbSA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIkFkZGVk
IFNoYWRlclByb2dyYW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
cHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3Vs
ZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTU3LDggKzU4LDkgQEAgVGVzdFBhZ2UucmVn
aXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gd2hlblByb2dy
YW1SZW1vdmVkKGNhbGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUg
b25lIGNhbnZhcy4iKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0g
QXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQg
b25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBjYW52YXNlc1swXS5zaGFkZXJQcm9ncmFt
Q29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQu
ZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0g
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3Rh
bmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52
YXMuIik7CkBAIC03NCw3ICs3Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkg
PT4gewogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRlclByb2dyYW1B
ZGRlZCBpcyBzZW50IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQgaXMg
ZW5hYmxlZC4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAg
ICAgICAgICAvLyBUaGlzIGNhbid0IHVzZSBgYXdhaXRFdmVudGAgc2luY2UgdGhlIHByb21pc2Ug
cmVzb2x1dGlvbiBoYXBwZW5zIG9uIHRoZSBuZXh0IHRpY2suCi0gICAgICAgICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICB3
aGVuUHJvZ3JhbUFkZGVkKChwcm9ncmFtKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwpAQCAtMTEzLDcgKzExNSw3IEBAIFRl
c3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNl
OwogCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQp
ID0+IHsKICAgICAgICAgICAgICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdw
dS5qcwppbmRleCBmZTQ4ZDhmZDg1MTE0NjU4OThmZDNiMDQ1MGRlODk1MTM3NDQ5YmU0Li5iOGRl
MzRjZmE4Nzg2ODVmOTY1YTlmOTBiYjRiZjhhYWIzNTczNjBlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJncHUuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCkBAIC02NCw3ICs2NCw3IEBAIGFzeW5jIGZ1
bmN0aW9uIGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvZGUgPSByZW5kZXJQaXBlbGluZVNvdXJjZSkg
ewogZnVuY3Rpb24gZGVsZXRlRGV2aWNlKCkgewogICAgIGRldmljZSA9IG51bGw7CiAgICAgLy8g
Rm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBkZXZpY2UgaXMgZGVzdHJveWVkLCBvdGhlcndpc2Ug
dGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFz
LmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50
Lmh0bWwKaW5kZXggZDk4ZjBmZWE0ZTkyYzE1Mjk3ODExMmMyZDA3MGNkNzRlOTU5ZDRlMi4uNTVl
NTUyNDczMDgzYWEyZDFiYWViMGU4ODdlZTA1ZmMyOGYwYTBlNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9D
YXB0dXJlRnJhbWVDb3VudC5odG1sCkBAIC03Nyw4ICs3Nyw4IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJlY29yZGluZ1N0b3BwZWQoY2FudmFzLCBldmVu
dC5kYXRhLnJlY29yZGluZyk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2Vy
LkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2Fu
dmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFz
ID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCghY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKIAogICAgICAgICAgICAgICAgICAgICBjYW52
YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwgaGFu
ZGxlUmVjb3JkaW5nU3RhcnRlZFdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUu
aHRtbAppbmRleCBkNDBmYWI3ODM4MTMwY2M5NGIwM2JmOTFkOTZmMjI3MDkwNGViMDEzLi5kNWZi
ODc3MmMwYjM3NWM0MGQ1ZDdhMGU0MjAyYTU0ZmY1ZDUyZDBhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJl
bW92ZS13ZWJncHUuaHRtbApAQCAtMTQsOSArMTQsMTEgQEAgd2luZG93LmJlZm9yZVRlc3QgPSBh
c3luYyBmdW5jdGlvbigpIHsKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFVg
KTsKIAotICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAg
IGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJU
aGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworCisgICAgbGV0IGNhbnZhcyA9IGNh
bnZhc2VzWzBdOwogICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3Vs
ZCBiZSBhIGNhbnZhcy4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52
YXMuIik7CiAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7
CiAKICAgICBhc3luYyBmdW5jdGlvbiBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgewpA
QCAtMTE4LDcgKzEyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOwogCi0g
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVu
ZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNo
YXJlZFZlcnRleEZyYWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAppbmRleCAzNGQwMmFi
MTdlOTA1YTRiNzhhMDI2NTUwNDlhZTI4ZGIzMzEwODcxLi44Y2Y5YTQ3NTYyMjQyMWM4MzY4OWM5
YWQzN2QyMTkwYTAxY2U5ZTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVy
dGV4RnJhZ21lbnQuaHRtbApAQCAtNTcsMTAgKzU3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGluZyByZW5kZXIgcGlwZWxpbmUuLi4iKTsK
ICAgICAgICAgbGV0IGV2YWx1dGVQcm9taXNlID0gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZShgY3JlYXRlUmVuZGVyUGlwZWxpbmUoKWApOwogCi0gICAgICAgIGlmICghV0kuY2FudmFzTWFu
YWdlci5jYW52YXNlcy5sZW5ndGgpCi0gICAgICAgICAgICBhd2FpdCBXSS5jYW52YXNNYW5hZ2Vy
LmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCk7CisgICAgICAg
IGlmICghV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpemUpCisgICAgICAgICAg
ICBhd2FpdCBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5D
b2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCk7CiAKLSAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9t
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdQVSwgIkNhbnZhcyBzaG91bGQgYmUgV2ViR1BVLiIpOwogCiAgICAgICAgIGxldCBpdGVt
QWRkZWRFdmVudCA9IGF3YWl0IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hd2FpdEV2
ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVz
cy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCA2NmJkYmFiOWVlZTMxNjc5MGY4
ZjI2NzQ2ZjkzZTIxZWQ0YzNkZjFlLi5kYmY2MzUxZTlhMDkyNDYwYWJlZTlkMzRkOTIwNmIwZjcz
MzZiM2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0
LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0
ZWQudHh0CkBAIC01NCw2ICs1NCw3NCBAQCBGQUlMOiBleHBlY3RGYWxzZShbXSkKICAgICBFeHBl
Y3RlZDogZmFsc2V5CiAgICAgQWN0dWFsOiBbXQogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogSW5z
cGVjdG9yVGVzdC5leHBlY3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFTUworUEFTUzogZXhwZWN0RW1w
dHkobnVsbCkKK1BBU1M6IGV4cGVjdEVtcHR5KCIiKQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitQ
QVNTOiBleHBlY3RFbXB0eShbXSkKK1BBU1M6IGV4cGVjdEVtcHR5KHt9KQorUEFTUzogZXhwZWN0
RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisg
ICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5
KHsidGVzdCI6MX0pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7InRlc3QiOjF9
CitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0
dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0eQor
ICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0
eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVk
IHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdHJ1ZQorRkFJTDogZXhwZWN0RW1wdHkg
c2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiBmYWxz
ZQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmpl
Y3Q6CisgICAgQWN0dWFsOiAxCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxl
ZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHVuZGVmaW5lZAorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFT
UworUEFTUzogZXhwZWN0Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoeyJ0
ZXN0IjoxfSkKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KCJ0ZXN0IikKK1BBU1M6IGV4cGVjdE5vdEVt
cHR5KHt9KQorUEFTUzogZXhwZWN0Tm90RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlM
OiBleHBlY3ROb3RFbXB0eShudWxsKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1
YWw6IG51bGwKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KCIiKQorICAgIEV4cGVjdGVkOiBub3QgZW1w
dHkKKyAgICBBY3R1YWw6ICIiCitGQUlMOiBleHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3Rl
ZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0Tm90RW1wdHkoW10pCisg
ICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogW10KK0ZBSUw6IGV4cGVjdE5vdEVt
cHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBl
eHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7
fQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1v
YmplY3Q6CisgICAgQWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90
IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBl
eHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAg
ICBBY3R1YWw6IDEKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdp
dGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdW5kZWZpbmVkCisKIC0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdE51bGwKIEV4cGVjdGVkIHRvIFBBU1MKIFBBU1M6
IGV4cGVjdE51bGwobnVsbCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCmlu
ZGV4IDkxZTg1ODBjN2NiNjI3MzQ1ODI1NDAyNDk3MjAwOWU5OWNkYTgzNGQuLmUzODY0YTAzYzRl
MDk0MWNhOGMwMmYyZjBhNzg2MjYzOTg4YjAxMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1m
dW5jdGlvbnMuaHRtbApAQCAtNDgsNiArNDgsMjAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgYWRk
VGVzdENhc2UoZXhwZWN0VGhhdFRlc3RDYXNlKTsKICAgICBhZGRJbnZlcnNlVGVzdENhc2UoImV4
cGVjdEZhbHNlIiwgZXhwZWN0VGhhdFRlc3RDYXNlKTsKIAorICAgIGxldCBleHBlY3RFbXB0eVRl
c3RDYXNlID0geworICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3RFbXB0eSIsCisgICAgICAg
IHBhc3NpbmdJbnB1dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBuZXcgU2V0XSwKKyAg
ICAgICAgZmFpbGluZ0lucHV0czogWyJ0ZXN0Iiwge3Rlc3Q6IDF9LCBbInRlc3QiXSwgbmV3IE1h
cChbWyJ0ZXN0IiwgMV1dKSwgbmV3IFNldChbInRlc3QiXSksIHRydWUsIGZhbHNlLCAxLCB1bmRl
ZmluZWRdLAorICAgIH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0RW1wdHlUZXN0Q2FzZSk7CisK
KyAgICBsZXQgZXhwZWN0Tm90RW1wdHlUZXN0Q2FzZSA9IHsKKyAgICAgICAgZnVuY3Rpb25OYW1l
OiAiZXhwZWN0Tm90RW1wdHkiLAorICAgICAgICBwYXNzaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVz
dDogMX0sIFsidGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJd
KV0sCisgICAgICAgIGZhaWxpbmdJbnB1dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBu
ZXcgU2V0LCB0cnVlLCBmYWxzZSwgMSwgdW5kZWZpbmVkXSwKKyAgICB9OworICAgIGFkZFRlc3RD
YXNlKGV4cGVjdE5vdEVtcHR5VGVzdENhc2UpOworCiAgICAgbGV0IGV4cGVjdE51bGxUZXN0Q2Fz
ZSA9IHsKICAgICAgICAgZnVuY3Rpb25OYW1lOiAiZXhwZWN0TnVsbCIsCiAgICAgICAgIHBhc3Np
bmdJbnB1dHM6IFtudWxsXSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386313</attachid>
            <date>2019-12-21 22:39:01 -0800</date>
            <delta_ts>2019-12-29 12:48:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20191221233900.patch</filename>
            <type>text/plain</type>
            <size>326806</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5OTcxZmVmYjQwMjk2MWNlMWI1NTA0MzYzNTM1
YWFjMTNkOTdhNDIuLmEzMjdhNDgwMjA1ZTA2MzQyZDQzNmEyODQ1ZmYwOTRmYjVjNmY5OTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTIxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAxOS0xMi0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mu
a2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0pTQ10gTWVtb3J5IHVzYWdlIHN0YXRpc3Rp
Y3Mgc2hvdWxkIGJlIGF0dGFpbmFibGUgd2l0aG91dCBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJl
YWE4MTFkYWYwZDRjY2E2NTQyMDA4MWJmODQ5ZTZlYWYyNmQ4ZC4uNTY5MzliMjU1NGY5OTVkYmFm
NWQ1MjAzYzAyMDQzNGQ2YjJhZmNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNSBAQAorMjAx
OS0xMi0yMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIg
QW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMv
ZXZlbnRzIGZvciBpbnN0cnVtZW50aW5nIHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2Jq
ZWN0cywgYXMgd2VsbCBhcworICAgICAgICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNj
cmlwdCB3cmFwcGVyIG9iamVjdCBhbmQgdGhlIHRhcmdldCBET00gbm9kZS4KKworICAgICAgICBU
ZXN0czogaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKKyAgICAgICAgICAg
ICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbAorICAg
ICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24u
aHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFu
aW1hdGlvbi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RU
YXJnZXQuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5p
bWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hh
bmdlZC5odG1sCisKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmg6CisgICAgICAg
ICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmlt
YXRpb246Omluc3RhbmNlcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9u
OjppbnN0YW5jZXNNdXRleCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlkQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViQW5pbWF0aW9uOjplZmZlY3RUYXJnZXREaWRDaGFuZ2UpOgorICAgICAgICAq
IGFuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1RyYW5zaXRpb246OmNyZWF0ZSk6CisKKyAgICAgICAgKiBhbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0
OjpwYXJzZWRLZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lRWZmZWN0OjpibGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6S2V5ZnJhbWVFZmZlY3Q6Omhhc0JsZW5kaW5nS2V5ZnJhbWVzIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVTaG91bGRSdW5BY2NlbGVyYXRlZCk6CisgICAg
ICAgIFByb3ZpZGUgYSB3YXkgdG8gYWNjZXNzIHRoZSBsaXN0IG9mIGtleWZyYW1lcy4KKworICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RU
YXJnZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdCk6IERlbGV0
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0
V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBs
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1w
bCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKTogRGVsZXRl
ZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjplbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2Vu
dHM6OnNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCk6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sVmFs
dWVGb3JTZWNvbmRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9y
UGxheWJhY2tEaXJlY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sVmFs
dWVGb3JGaWxsTW9kZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JL
ZXlmcmFtZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yRWZmZWN0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjplbmFibGUpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVxdWVzdFRhcmdldCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc29sdmVBbmlt
YXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDcmVhdGVXZWJBbmltYXRpb24pOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveVdl
YkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
ZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OmZpbmRBbmltYXRpb25JZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmFzc2VydEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp1bmJpbmRBbmltYXRpb24pOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjphbmltYXRp
b25EZXN0cm95ZWRUaW1lckZpcmVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6cmVzZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBEZWxldGVk
LgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjpyZXF1ZXN0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01BZ2VudDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgQWRkIGFuIG92ZXJs
b2FkIGZvciBgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZGAgdGhhdCBleHBvc2VzIGFuIGBFcnJvclN0
cmluZ2AuCisKIDIwMTktMTItMjAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBHZXQgYXVkaW8gcGxheWluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNjk4MWQ3M2JkMDQxMGM0NzAzMDZmOTVlZDNkYTdh
ZWMyYWY4YzdkMS4uZTk3ZDE2ZDUyY2JhOWQ2ODJjN2I5Y2VjZjgwMTIyOTIzMzMxMmEyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzI4IEBACisyMDE5LTEyLTIxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Bbmlt
YXRpb25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZ2V0IGRvbWFpbnMpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYWN0aXZhdGVFeHRyYURvbWFpbik6
CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBhbmltYXRpb25D
b2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBz
dXBwb3J0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZW5hYmxl
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3Vy
Y2VEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9u
T2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5p
bWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJv
dG90eXBlLmVmZmVjdENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2Vy
dmVyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRp
b25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKTogQWRkZWQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLm9iamVjdElzUmVxdWlyZWRUeXBlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmFuaW1hdGlvbkNvbGxlY3Rp
b25Gb3JUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0
ZW1BZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVt
UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVt
c0NsZWFyZWQpOgorICAgICAgICBTaW1pbGFyIHRvIGBXSS5SZXNvdXJjZUNvbGxlY3Rpb25gLCBj
cmVhdGUgYSBzdWJjbGFzcyBvZiBgV0kuQ29sbGVjdGlvbmAgdGhhdCBtYWludGFpbnMgaXQncwor
ICAgICAgICBvd24gc3ViLWBXSS5BbmltYXRpb25Db2xsZWN0aW9uYHMgZm9yIGVhY2ggdHlwZSBv
ZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
QW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbik6CisgICAgICAgIChX
SS5BbmltYXRpb24uZnJvbVBheWxvYWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlO
YW1lRm9yQW5pbWF0aW9uVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JQbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JGaWxsTW9kZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFt
ZU51bWJlcnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9u
SWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYmFja3RyYWNlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgc3RhcnREZWxheSk6CisgICAgICAgIChXSS5B
bmltYXRpb24ucHJvdG90eXBlLmdldCBlbmREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24u
cHJvdG90eXBlLmdldCBpdGVyYXRpb25Db3VudCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJv
dG90eXBlLmdldCBpdGVyYXRpb25TdGFydCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90
eXBlLmdldCBpdGVyYXRpb25EdXJhdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90
eXBlLmdldCB0aW1pbmdGdW5jdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBl
LmdldCBwbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBl
LmdldCBmaWxsTW9kZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBrZXlm
cmFtZXMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5yZXF1ZXN0Tm9kZSk6CisgICAgICAg
IChXSS5BbmltYXRpb24ucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5w
cm90b3R5cGUuX3VwZGF0ZUVmZmVjdCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9SZW1vdGVPYmplY3QuanM6CisgICAgICAgIChXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1h
dGlvbik6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMuCisgICAgICAgIChXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcu
dGFiSW5mbyk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmlzVGFiQWxsb3dl
ZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgdHlw
ZSk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93UmVw
cmVzZW50ZWRPYmplY3QpOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcucHJvdG90eXBlLmNhblNob3dSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIChXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jbG9zZWQpOgorICAgICAgICAoV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6IEFkZGVkLgorICAgICAg
ICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3VHJl
ZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcu
Y3NzLgorICAgICAgICBSZW5hbWUgdGhlIENhbnZhcyBUYWIgdG8gR3JhcGhpY3MgVGFiIGFuZCBk
aXNwbGF5IGZvdXIgc2VjdGlvbnM6CisgICAgICAgICAtIENhbnZhc2VzCisgICAgICAgICAtIFdl
YiBBbmltYXRpb25zCisgICAgICAgICAtIENTUyBBbmltYXRpb25zCisgICAgICAgICAtIENTUyBU
cmFuc2l0aW9ucworCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFy
UGFuZWwuanM6CisgICAgICAgIChXSS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmNhblNo
b3dSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIE9ubHkgYXBwZWFyIGlmIGEgYFdJLkNhbnZh
c2Agb3IgYFdJLlJlY29yZGluZ2AgaXMgc2VsZWN0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRP
YmplY3RzKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJ
LkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBl
YXJGb3JEcmFnRXZlbnQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5kcm9wWm9uZUhhbmRsZURyb3ApOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgor
ICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxl
U2hvd0dyaWRCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250
ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCk6Cisg
ICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVJ
bXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJ
dGVtQ2hhbmdlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLl9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNE
aWRDaGFuZ2UpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5faGFuZGxlQ2xpY2spOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3Zl
cnZpZXcgPiBzZWN0aW9uKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
Z3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAgICguY29udGVu
dC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4g
LmhlYWRlcik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2Vj
dGlvbiA+IC5oZWFkZXIgPiBoMSk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92
ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAu
Y29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVy
cy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4g
c2VjdGlvbiA+IC5oZWFkZXIpOgorICAgICAgICBBZGQgc3RpY2t5IGhlYWRlcnMgZm9yIGVhY2gg
b2YgdGhlIHNlY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuY29udGVudFZpZXdBZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNv
bnRlbnRWaWV3TW91c2VFbnRlcik6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNz
czogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanM6
IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29udGVudFZpZXcuZ2V0IHByZXZpZXdIZWlnaHQpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNpemVEaWRDaGFuZ2Up
OgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hTdWJ0aXRs
ZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQ
cmV2aWV3LmFkZFRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fcmVmcmVzaFByZXZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLl9oYW5kbGVFZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0
dG9uQ29udGV4dE1lbnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9u
Q29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkKToKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyk6CisgICAgICAgICguY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUpOgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlKToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRs
ZTpub3QoOmVtcHR5KTo6YmVmb3JlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uOmhvdmVyID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiAucHJldmlldyA+IHN2Zyk6CisgICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcpOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyByZWN0KToKKyAgICAgICAgKC5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSk6CisgICAgICAg
ICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRo
KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAu
YWN0aXZlIGNpcmNsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2
aWV3ID4gc3ZnID4gLmFjdGl2ZSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gLnByZXZpZXcgPiBzcGFuKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1z
Y2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgor
ICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyk6CisgICAgICAgIFZpc3VhbGl6ZSB0aGUgc3RhcnQvZW5k
IGRlbGF5IGFuZCBrZXlmcmFtZXMgb2YgdGhlIGdpdmVuIGFuaW1hdGlvbiBhcyBhIHNlcmllcyBv
ZiBiZXppZXIKKyAgICAgICAgY3VydmVzIHNlcGFyYXRlZCBieSBtYXJrZXJzLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5nZXQgYW5p
bWF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90
eXBlLnNldCBhbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQ
YW5lbC5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
RGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24pOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJl
c2hFZmZlY3RTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFu
ZWwucHJvdG90eXBlLl9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbik6CisgICAgICAgIChXSS5Bbmlt
YXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9uRWZmZWN0
Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xs
YXBzZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3M6IEFkZGVkLgorICAgICAgICAoLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5p
bWF0aW9uLWtleWZyYW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5zaWRlYmFy
ID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9u
LmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbik6CisgICAgICAgICguc2lkZWJh
ciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlv
bi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMpOgorICAg
ICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5k
ZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cu
c3R5bGVzIC5Db2RlTWlycm9yKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMu
YW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFt
ZXMgLmRldGFpbHMtc2VjdGlvbik6CisgICAgICAgIFNob3cgY29sbGVjdGVkIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBzZWxlY3RlZCBhbmltYXRpb24sIGl0cyBlZmZlY3QsIGFuZCBpdHMgdGFyZ2V0
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpz
OgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlcik6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2Vy
LnByb3RvdHlwZS5nZXQgY2FudmFzQ29sbGVjdGlvbik6IEFkZGVkLgorICAgICAgICAoV0kuQ2Fu
dmFzTWFuYWdlci5wcm90b3R5cGUuZGlzYWJsZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2Vy
LnByb3RvdHlwZS5jYW52YXNBZGRlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5jYW52YXNSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBl
Ll9zYXZlUmVjb3JkaW5ncyk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90
b3R5cGUuX21haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2Vy
LnByb3RvdHlwZS5nZXQgY2FudmFzZXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFu
YWdlci5wcm90b3R5cGUuX3JlbW92ZUNhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgIFJhdGhlciB0
aGFuIGhhdmUgdGhlIGBXSS5DYW52YXNUYWJDb250ZW50Vmlld2AgbWFpbmFpbiB0aGUgYFdJLkNh
bnZhc0NvbGxlY3Rpb25gIGFuZCBoYXZlIHRvCisgICAgICAgIGxpc3RlbiBmb3IgZXZlbnRzIGZy
b20gdGhlIGBXSS5DYW52YXNNYW5hZ2VyYCwganVzdCBoYXZlIHRoZSBgV0kuQ2FudmFzTWFuYWdl
cmAgaG9sZCBvbiB0bworICAgICAgICBpdCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEgZ2V0dGVyIGZv
ciBpdC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAg
ICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRp
b25JdGVtcyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkNh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6Cisg
ICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6
CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hl
ZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWRk
U2F2ZWRSZWNvcmRpbmcpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5w
cm90b3R5cGUuaGlkZGVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcucHJvdG90eXBlLmdldCBfaXRlbU1hcmdpbik6IERlbGV0ZWQuCisgICAgICAgIChX
SS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXdzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
Ll91cGRhdGVOYXZpZ2F0aW9uSXRlbXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3Zl
cnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCk6IERlbGV0
ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBk
YXRlU2hvd0ltYWdlR3JpZCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9y
LXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOiBEZWxldGVkLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAg
ICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6IEFkZGVkLgorICAgICAg
ICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9y
RHJhZ0V2ZW50KTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5
cGUuZHJvcFpvbmVIYW5kbGVEcm9wKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50
Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50
Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcu
cHJvdG90eXBlLl9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudSk6CisgICAg
ICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOiBEZWxldGVkLgorICAg
ICAgICBNb3ZlIHRoZSAiTG9nIENhbnZhcyBDb250ZXh0IiB0byBiZSB0aGUgZmlyc3QgaXRlbSBp
biB0aGUgY2FudmFzIGVsZW1lbnQgYnV0dG9uIGNvbnRleHQgbWVudS4KKyAgICAgICAgRHJpdmUt
Ynk6IGFkZCBhIGBXSS5Ecm9wWm9uZVZpZXdgIGZvciB3aGVuIHJlY29yZGluZyBKU09OIGZpbGVz
IGFyZSBkcmFnZ2VkIG9uIHRvcC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzQ29udGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAg
ZnJvbSBhbGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBDYW52YXMgVGFiIGRvZXNuJ3QgZXhpc3QgYW55
bW9yZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmpzOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJ
LkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVk
LgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0
ZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLmFkZENvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLnJlbW92ZUNvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dDb250ZW50UGxhY2Vob2xkZXIpOgor
ICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0
KToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEl0
ZW0pOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxl
Q2xpY2spOiBBZGRlZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5
cGUuc2V0U2VsZWN0ZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LmNv
bGxlY3Rpb24gPiAucGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4K
KyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTog
RGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1h
Z2UgaW1nOmhvdmVyKTogRGVsZXRlZC4KKyAgICAgICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxl
ZCwgY2xpY2tpbmcgb3V0c2lkZSBvZiBhbnkgb2YgdGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRp
c21pc3MgdGhlCisgICAgICAgIGN1cnJlbnQgc2VsZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNv
IGJlIGFibGUgdG8gZ2V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAg
IChXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAg
ICAgRW5zdXJlIHRoYXQgYDBgIGlzIGNvbnNpZGVyZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKToK
KyAgICAgICAgKFdJLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAoV0kudGFiQ29udGVudFZpZXdD
bGFzc0ZvclJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJl
c2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkNvbnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAg
ICAgICBBbGxvdyBgV0kuQW5pbWF0aW9uYCB0byBiZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3M6CisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhl
bHApOiBBZGRlZC4KKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9u
LWJhcik6IEFkZGVkLgorICAgICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0pOiBBZGRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2
aWdhdGlvbi1pdGVtLWhlbHApOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3
IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAg
ICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSk6IERlbGV0ZWQuCisgICAgICAgIEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9u
SXRlbUhlbHBgIHRvIGJlIHVzZWQgaW5kZXBlbmRlbnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRl
eHRWaWV3YC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdl
ci5qczoKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAg
ICAgIChXSS5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRl
ZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5q
czoKKyAgICAgICAgKFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgor
ICAgICAgICBBZGQgYSBmYWxsYmFjayBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3Lmpz
OgorICAgICAgICAoV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmlt
YWdlIGltZyk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0
aW9uID4gLnJlc291cmNlLmltYWdlIGltZzpob3Zlcik6IEFkZGVkLgorICAgICAgICBEcml2ZS1i
eTogbW92ZSB0aGVzZSBzdHlsZXMgdG8gdGhlIHJpZ2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3Jl
IHNwZWNpZmljLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgor
ICAgICAgICAoV0kuQ2FudmFzLmRpc3BsYXlOYW1lRm9yQ29udGV4dFR5cGUpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGlu
Zy5kaXNwbGF5TmFtZUZvclJlY29yZGluZ1R5cGUpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6
IGZpeCBsb2NhbGl6ZWQgc3RyaW5ncy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
UmVjb3JkaW5nQ29udGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgu
dGFiKWAgZnJvbSBhbGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3Qg
ZXhpc3QgYW55bW9yZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAg
ICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
VGVzdC9UZXN0LmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qczoKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlw
ZS5leHBlY3RFbXB0eSk6IEFkZGVkLgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4
cGVjdE5vdEVtcHR5KTogQWRkZWQuCisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4
cGVjdGF0aW9uTWVzc2FnZUZvcm1hdCk6CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUu
X2V4cGVjdGVkVmFsdWVGb3JtYXQpOgorICAgICAgICBBZGQgdXRpbGl0eSBmdW5jdGlvbiBmb3Ig
Y2hlY2tpbmcgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgZW1wdHk6CisgICAgICAgICAtIEFy
cmF5IGBsZW5ndGggPT09IDBgCisgICAgICAgICAtIFN0cmluZyBgbGVuZ3RoID09PSAwYAorICAg
ICAgICAgLSBTZXQgYHNpemUgPT09IDBgCisgICAgICAgICAtIE1hcCBgc2l6ZSA9PT0gMGAKKyAg
ICAgICAgIC0gT2JqZWN0IGBpc0VtcHR5T2JqZWN0YAorICAgICAgICBBbnkgb3RoZXIgdHlwZSB3
aWxsIGF1dG9tYXRpY2FsbHkgZmFpbCwgYXMgbm9uLW9iamVjdHMgY2FuJ3QgYmUgImVtcHR5IiAo
ZS5nLiBgNDJgKS4KKwogMjAxOS0xMi0yMCAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBHcmFkaWVudCBlZGl0b3I6IG9wYWNp
dHkgc2xpZGVyIGlzIHRvbyBjbG9zZSB0byB0aGUgcmlnaHQgZWRnZSBvZiB0aGUgcG9wb3Zlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Bbmlt
YXRpb24uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5p
bWF0aW9uLmpzb24KaW5kZXggYmVhZjhkZTI4YWM3NTNlMzdlZjJiZTg5YzAxZmNiMGJkNTNkYWZi
Yi4uNTJlYWY4MTlmNDAxMzUyYzM0MjIxZTY1YmJmMDAzYTFmOGM2NDg5OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uCkBAIC0xNCw2ICsxNCw1MSBAQAogICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAg
ICAgICAgICAgICJlbnVtIjogWyJyZWFkeSIsICJkZWxheWVkIiwgImFjdGl2ZSIsICJjYW5jZWxl
ZCIsICJkb25lIl0KICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIlBs
YXliYWNrRGlyZWN0aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAg
ICAgICAiZW51bSI6IFsibm9ybWFsIiwgInJldmVyc2UiLCAiYWx0ZXJuYXRlIiwgImFsdGVybmF0
ZS1yZXZlcnNlIl0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkZp
bGxNb2RlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51
bSI6IFsibm9uZSIsICJmb3J3YXJkcyIsICJiYWNrd2FyZHMiLCAiYm90aCIsICJhdXRvIl0KKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkFuaW1hdGlvbiIsCisgICAg
ICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlv
bklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY3NzQW5pbWF0aW9uTmFtZSIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0
byB0aGUgY29ycmVzcG9uZGluZyBgYW5pbWF0aW9uLW5hbWVgIENTUyBwcm9wZXJ0eS4gU2hvdWxk
IG5vdCBiZSBwcm92aWRlZCBpZiBgdHJhbnNpdGlvblByb3BlcnR5YCBpcyBhbHNvIHByb3ZpZGVk
LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNzc1RyYW5zaXRpb25Qcm9wZXJ0eSIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFcXVh
bCB0byB0aGUgY29ycmVzcG9uZGluZyBgdHJhbnNpdGlvbi1wcm9wZXJ0eWAgQ1NTIHByb3BlcnR5
LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGBhbmltYXRpb25OYW1lYCBpcyBhbHNvIHByb3Zp
ZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVm
ZmVjdCIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJh
Y2t0cmFjZSIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDb25zb2xlLkNh
bGxGcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkJhY2t0cmFjZSB0
aGF0IHdhcyBjYXB0dXJlZCB3aGVuIHRoaXMgYFdlYkFuaW1hdGlvbmAgd2FzIGNyZWF0ZWQuIiB9
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6
ICJFZmZlY3QiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJw
cm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnREZWxheSIsICJ0
eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImVuZERlbGF5IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uQ291bnQiLCAidHlwZSI6ICJudW1i
ZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGl0ZXJhdGlv
bnMgaW4gdGhlIGFuaW1hdGlvbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVy
YXRpb25TdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJJbmRleCBvZiB3aGljaCBpdGVyYXRpb24gdG8gc3RhcnQgYXQuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uRHVyYXRpb24iLCAidHlwZSI6ICJudW1iZXIi
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVG90YWwgdGltZSBvZiBlYWNoIGl0
ZXJhdGlvbiwgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzLiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInRpbWluZ0Z1bmN0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNTUyB0aW1pbmcgZnVuY3Rpb24gb2YgdGhlIG92ZXJhbGwg
YW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBsYXliYWNrRGlyZWN0
aW9uIiwgIiRyZWYiOiAiUGxheWJhY2tEaXJlY3Rpb24iLCAib3B0aW9uYWwiOiB0cnVlIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmaWxsTW9kZSIsICIkcmVmIjogIkZpbGxNb2RlIiwg
Im9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAia2V5ZnJhbWVz
IiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWZyYW1lIiB9LCAib3B0
aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImlkIjogIktleWZyYW1lIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIs
CisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im9mZnNldCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWNpbWFsIHBlcmNl
bnRhZ2UgWzAsMV0gcmVwcmVzZW50aW5nIHdoZXJlIHRoaXMga2V5ZnJhbWUgaXMgaW4gdGhlIGVu
dGlyZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImVhc2luZyIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJDU1MgdGltaW5nIGZ1bmN0aW9uIGZvciBob3cgdGhlIGBzdHlsZWAgaXMgYXBw
bGllZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZSIsICJ0eXBlIjogInN0
cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1Mgc3R5bGUgZGVjbGFy
YXRpb24gb2YgdGhlIENTUyBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSBhbmltYXRlZC4iIH0KKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlkIjogIlRy
YWNraW5nVXBkYXRlIiwKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCkBAIC0yNyw2ICs3
MiwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAgICAiY29tbWFuZHMiOiBbCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiRW5hYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImRpc2FibGUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkRpc2FibGVzIENhbnZhcyBkb21haW4gZXZlbnRzLiIKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAicmVxdWVzdFRhcmdldCIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiR2V0cyB0aGUgYERPTS5Ob2RlSWRgIGZvciB0aGUgdGFyZ2V0IG9mIHRoZSBl
ZmZlY3Qgb2YgdGhlIGFuaW1hdGlvbiB3aXRoIHRoZSBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFu
aW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIs
ICIkcmVmIjogIkRPTS5Ob2RlSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVzb2x2ZUFuaW1hdGlvbiIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiUmVzb2x2ZXMgSmF2YVNjcmlwdCBgV2ViQW5pbWF0aW9uYCBvYmpl
Y3QgZm9yIGdpdmVuIGBBbmltYXRpb25JZGAuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmlt
YXRpb25JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5
cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGlj
IGdyb3VwIG5hbWUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMu
IiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJvYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIg
fQorICAgICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFt
ZSI6ICJzdGFydFRyYWNraW5nIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdGFydCB0
cmFja2luZyBhbmltYXRpb25zLiBUaGlzIHdpbGwgcHJvZHVjZSBhIGB0cmFja2luZ1N0YXJ0YCBl
dmVudC4iCkBAIC0zNyw2ICsxMTEsMzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50
cyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uQ3JlYXRlZCIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciBhIGBXZWJB
bmltYXRpb25gIGlzIGNyZWF0ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uIiwgIiRyZWYiOiAiQW5pbWF0aW9uIiB9
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1l
IjogImVmZmVjdENoYW5nZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNo
ZWQgd2hlbmV2ZXIgdGhlIGVmZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55
IHdheS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgb21pdHRlZCB3aGVuIHRoZSBlZmZlY3QgaXMg
cmVtb3ZlZCB3aXRob3V0IGEgcmVwbGFjZW1lbnQuIiB9CisgICAgICAgICAgICBdCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInRhcmdldENoYW5nZWQiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIHRhcmdldCBv
ZiBhbnkgZWZmZWN0IG9mIGFueSBhbmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIsCisg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFu
aW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uRGVzdHJveWVk
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdl
YkFuaW1hdGlvbmAgaXMgZGVzdHJveWVkLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0
aW9uSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAg
ICAgIm5hbWUiOiAidHJhY2tpbmdTdGFydCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGlzcGF0Y2hlZCBhZnRlciBgc3RhcnRUcmFja2luZ2AgY29tbWFuZC4iLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcAppbmRleCA3YzcyZjYyNGMzMzBhZjk2YmE3MGI3
YWU0ZTkyYjUwMWNhMTAxMDdlLi5mZDNlYjlkYmRlOWJjMWFiMGI5N2YwYTA3MWUwMGU4MGZiODEz
MTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRl
clN0eWxlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzksNiAr
NDAsOSBAQCBSZWY8Q1NTQW5pbWF0aW9uPiBDU1NBbmltYXRpb246OmNyZWF0ZShFbGVtZW50JiBv
d25pbmdFbGVtZW50LCBjb25zdCBBbmltYXRpb24mCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IENTU0FuaW1hdGlvbihvd25pbmdFbGVtZW50LCBiYWNraW5nQW5pbWF0aW9uLCBu
ZXdTdHlsZSkpOwogICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOwor
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVz
dWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcAppbmRleCBkZmY1ZmIxZjc5YTg5YzU2NjBhNDljMWIz
NjQzZGQwN2Q4MjQzMjcxLi5hYWFlNWUyZDBjNjE3MjBjZDEwOGRkNmRjZTU5NTE5Y2EwYWMzZTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJh
bWVFZmZlY3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC00MCw2
ICs0MSw5IEBAIFJlZjxDU1NUcmFuc2l0aW9uPiBDU1NUcmFuc2l0aW9uOjpjcmVhdGUoRWxlbWVu
dCYgb3duaW5nRWxlbWVudCwgQ1NTUHJvcGVydHlJRCBwCiAgICAgYXV0byByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IENTU1RyYW5zaXRpb24ob3duaW5nRWxlbWVudCwgcHJvcGVydHksIGdlbmVyYXRp
b25UaW1lLCBiYWNraW5nQW5pbWF0aW9uLCBuZXdTdHlsZSwgcmV2ZXJzaW5nQWRqdXN0ZWRTdGFy
dFN0eWxlLCByZXZlcnNpbmdTaG9ydGVuaW5nRmFjdG9yKSk7CiAgICAgcmVzdWx0LT5pbml0aWFs
aXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7CiAgICAgcmVzdWx0LT5zZXRUaW1pbmdQcm9wZXJ0aWVz
KGRlbGF5LCBkdXJhdGlvbik7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENy
ZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggZjk5
NDMwN2Q2NjBhOTZhMDlmYjA3NDJjZmVmYzNjMjgxZTQxMmIwMS4uM2MyZTcwODUxMjQ2MjNjOWE1
MWQ3NTk1OTdiODI1YjkzNjEzZjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3QuY3BwCkBAIC0xMTA1LDcgKzExMDUsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0
OjppbnZhbGlkYXRlKCkKIAogdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFj
Y2VsZXJhdGVkKCkKIHsKLSAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gaGFzQmxlbmRpbmdL
ZXlmcmFtZXMoKTsKKyAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gISFtX2JsZW5kaW5nS2V5
ZnJhbWVzLnNpemUoKTsKICAgICBmb3IgKGF1dG8gY3NzUHJvcGVydHlJZCA6IG1fYmxlbmRpbmdL
ZXlmcmFtZXMucHJvcGVydGllcygpKSB7CiAgICAgICAgIGlmICghQ1NTUHJvcGVydHlBbmltYXRp
b246OmFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKGNzc1Byb3BlcnR5SWQpKSB7CiAg
ICAgICAgICAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4IDA0OTMzN2RkYTAwNTg4YjI2ZWU3ZDJi
OTlkZTA2Nzg0NDY2MWVlYzUuLmQ4OWUxMzUyY2M4MjVlM2M5MTIyMDI2OGU1ZjZkNTU1NDllMjc3
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC05OCw2
ICs5OCw4IEBAIHB1YmxpYzoKICAgICAgICAgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvIGNvbXBv
c2l0ZSB7IENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0bzo6QXV0byB9OwogICAgIH07CiAKKyAgICBj
b25zdCBWZWN0b3I8UGFyc2VkS2V5ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMoKSBjb25zdCB7IHJl
dHVybiBtX3BhcnNlZEtleWZyYW1lczsgfQorCiAgICAgRWxlbWVudCogdGFyZ2V0KCkgY29uc3Qg
eyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFRhcmdldChSZWZQdHI8RWxl
bWVudD4mJik7CiAKQEAgLTEzNCw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb2xvckZp
bHRlckZ1bmN0aW9uTGlzdHNNYXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29sb3JG
aWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2g7IH0KIAogICAgIHZvaWQgY29tcHV0ZURlY2xhcmF0aXZl
QW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBj
b25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpOwotICAgIGJvb2wgaGFzQmxlbmRpbmdLZXlmcmFt
ZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgfQorICAgIGNv
bnN0IEtleWZyYW1lTGlzdCYgYmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2Js
ZW5kaW5nS2V5ZnJhbWVzOyB9CiAgICAgY29uc3QgSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgYW5p
bWF0ZWRQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9w
ZXJ0aWVzKCk7IH0KIAogICAgIGJvb2wgY29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9u
KExheW91dFJlY3QmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9XZWJBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5jcHAKaW5kZXggNTE1ZDM2OTA3ZjkxMDM1ODEwMzA2MDcwNmQ4ODY1YWQ5Y2U5YzZhNy4uM2Vh
Mzg2NGI2OWU4MmQ0NWY3YjdiMGVkZGEyYjI5MjUyN2I0NTVlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJT
dHlsZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MSwxMSArNTMsMzAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViQW5pbWF0
aW9uKTsKIAorSGFzaFNldDxXZWJBbmltYXRpb24qPiYgV2ViQW5pbWF0aW9uOjppbnN0YW5jZXMo
Y29uc3QgTG9ja0hvbGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
V2ViQW5pbWF0aW9uKj4+IGluc3RhbmNlczsKKyAgICByZXR1cm4gaW5zdGFuY2VzOworfQorCitM
b2NrJiBXZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KCkKK3sKKyAgICBzdGF0aWMgTGF6eU5l
dmVyRGVzdHJveWVkPExvY2s+IG11dGV4OworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0
aWFsaXplTXV0ZXg7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU11dGV4LCBbXSB7Cisg
ICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBtdXRleC5nZXQo
KTsKK30KKwogUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmVjdCkKIHsKICAgICBhdXRvIHJlc3VsdCA9
IGFkb3B0UmVmKCpuZXcgV2ViQW5pbWF0aW9uKGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRF
ZmZlY3QoZWZmZWN0KTsKICAgICByZXN1bHQtPnNldFRpbWVsaW5lKCZkb2N1bWVudC50aW1lbGlu
ZSgpKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0
aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC02NSw2ICs4
Niw5IEBAIFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlCiAgICAgcmVzdWx0LT5zZXRFZmZlY3QoZWZm
ZWN0KTsKICAgICBpZiAodGltZWxpbmUpCiAgICAgICAgIHJlc3VsdC0+c2V0VGltZWxpbmUodGlt
ZWxpbmUpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmlt
YXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTc1LDYg
Kzk5LDkgQEAgV2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsKICAgICBzdXNwZW5kSWZOZWVk
ZWQoKTsKKworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICBpbnN0
YW5jZXMobG9jaykuYWRkKHRoaXMpOwogfQogCiBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24o
KQpAQCAtODMsNiArMTEwLDEwIEBAIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigpCiAKICAg
ICBpZiAobV90aW1lbGluZSkKICAgICAgICAgbV90aW1lbGluZS0+Zm9yZ2V0QW5pbWF0aW9uKHRo
aXMpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIEFTU0VS
VChpbnN0YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOworICAgIGluc3RhbmNlcyhsb2NrKS5y
ZW1vdmUodGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpjb250ZXh0RGVzdHJveWVkKCkK
QEAgLTExNCw2ICsxNDUsOCBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6dW5zdXNwZW5kRWZmZWN0SW52
YWxpZGF0aW9uKCkKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFuZ2UoKQog
ewogICAgIHRpbWluZ0RpZENoYW5nZShEaWRTZWVrOjpObywgU3luY2hyb25vdXNseU5vdGlmeTo6
WWVzKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0VGltaW5nKCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldEVmZmVj
dChSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVjdCkKQEAgLTE4OCw3ICsyMjEsNyBA
QCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJuYWwoUmVmUHRyPEFuaW1hdGlvbkVm
ZmVjdD4mJiBuZXdFZmZlY3QsIGJvb2wgZAogICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0
aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOwogICAgIH0KIAotICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KCp0aGlz
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVj
dCgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRUaW1lbGluZShSZWZQdHI8QW5p
bWF0aW9uVGltZWxpbmU+JiYgdGltZWxpbmUpCkBAIC0yNDcsMTQgKzI4MCwxNSBAQCB2b2lkIFdl
YkFuaW1hdGlvbjo6c2V0VGltZWxpbmVJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9uVGltZWxpbmU+
JiYgdGltZWxpbmUpCiAKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUYXJnZXREaWRDaGFuZ2Uo
RWxlbWVudCogcHJldmlvdXNUYXJnZXQsIEVsZW1lbnQqIG5ld1RhcmdldCkKIHsKLSAgICBpZiAo
IW1fdGltZWxpbmUpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV90aW1lbGluZSkgeworICAg
ICAgICBpZiAocHJldmlvdXNUYXJnZXQpCisgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRp
b25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMsICpwcmV2aW91c1RhcmdldCk7CiAKLSAgICBp
ZiAocHJldmlvdXNUYXJnZXQpCi0gICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc1JlbW92
ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKKyAgICAgICAgaWYgKG5ld1Rh
cmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50
KCp0aGlzLCAqbmV3VGFyZ2V0KTsKKyAgICB9CiAKLSAgICBpZiAobmV3VGFyZ2V0KQotICAgICAg
ICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1Rhcmdl
dCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25F
ZmZlY3RUYXJnZXQoKnRoaXMpOwogfQogCiBPcHRpb25hbDxkb3VibGU+IFdlYkFuaW1hdGlvbjo6
c3RhcnRUaW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApp
bmRleCBkYTRkOGVjM2JjMmU1NzBiNDhhNTFkYmMxNGEzNDRlNmM0OWJhMDcwLi5jOTk2MTNiMjY2
MWQ3NjVmMGVlM2I4NmQ2MTRmOWNkMmI3ZGMyM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvblV0aWxpdGll
cy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hcmthYmxlLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgpA
QCAtNTQsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJBbmltYXRpb24+IGNy
ZWF0ZShEb2N1bWVudCYsIEFuaW1hdGlvbkVmZmVjdCosIEFuaW1hdGlvblRpbWVsaW5lKik7CiAg
ICAgfldlYkFuaW1hdGlvbigpOwogCisgICAgc3RhdGljIEhhc2hTZXQ8V2ViQW5pbWF0aW9uKj4m
IGluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgc3RhdGljIExvY2smIGluc3RhbmNl
c011dGV4KCk7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNEZWNsYXJhdGl2ZUFuaW1hdGlvbigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ1NTQW5pbWF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NUcmFuc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNGYxOGI1OGM2Y2QwMWUw
YjY5YTg5NTNhZDA5YTczOWMzNTIwNDk2YS4uZDEzMDk4OTFkYzZiMjNiMmIyN2U1YzI1YzBlOTY0
NDUyYTczOThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTcyMyw2ICs3MjMsOSBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYg
aW5zdHJ1bWVudAogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCiAgICAgICAgIGNhbnZh
c0FnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAKKyAgICBpZiAoYXV0byogYW5pbWF0aW9u
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOworCiAg
ICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPmRpZENvbW1pdExvYWQoZnJh
bWUuZG9jdW1lbnQoKSk7CiAKQEAgLTExMzMsMTUgKzExMzYsMzcgQEAgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJgogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3Qo
dGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24m
IGFuaW1hdGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKLSAgICAgICAgYW5p
bWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworICAg
IGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRTZXRX
ZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmltYXRp
b25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChhdXRv
KiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24p
Cit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5l
bmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQt
PmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQorCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25B
Z2VudC0+ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9CiAKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24p
CiB7Ci0gICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50
cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgaWYgKGF1dG8qIGFuaW1hdGlv
bkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKGFu
aW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKICAgICAgICAgYW5p
bWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAppbmRleCBkYmY4MjIwNWRiNWJjY2JlMTY5ZWQwZTk0N2QxYWQ4M2RkODUwZmQ2Li5hMjk4MWFk
OTgyZGU2ODczZDRlOTYzNzQ0OWNiN2YzMmY4YzI1YzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0zMDUsNyArMzA1
LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJh
bWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcp
OwotICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRp
b24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0
aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5n
KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJB
bmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJB
bmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVD
aGFuZ2VkKFBhZ2UmKTsKQEAgLTUwNSw3ICs1MDgsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWluZyk7
Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkU2V0V2Vi
QW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7
CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
V2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIHZvaWQg
d2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmlt
YXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYpOwpAQCAtMTQ2NiwxMSArMTQ3MiwzMiBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmIHRh
cmdldCwgSwogICAgICAgICB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoKmluc3RydW1lbnRp
bmdBZ2VudHMsIHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRpbWluZyk7CiB9CiAKLWlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24p
CiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKGF1
dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChh
bmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKKyAg
ICAgICAgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywg
YW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24p
Cit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1
dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChh
bmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9u
KTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24u
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0VGFyZ2V0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30KKwor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRp
b24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbCgqaW5zdHJ1bWVudGluZ0Fn
ZW50cywgYW5pbWF0aW9uKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAppbmRl
eCAxZjlhMGQ3YzUzMmEzZjkwODU2YzE4NGExZmZjM2IxY2YzNWVmYzg3Li5kN2EyZjcxOTU4ZDk0
M2NjY2FjNDM0ZWFjOTNlMzNkYWUyN2NjNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHZvaWQgSW5z
dHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQgPSBu
dWxscHRyOwogICAgIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgPSBudWxscHRyOwogICAgIG1fcGVy
c2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKKyAgICBtX2VuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiAgICAgbV90cmFja2luZ0luc3BlY3Rv
ckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggZjZmZWE3ZGEyMTM2MGRkMDhjYzNkOTY2
YjE0ZTJhYWM0NjU0NDkxNS4uZjU5YzNkYmRjYWY3OGNmOWM2ZDhkYmI0MzJkY2NmMjJmMTVkNTA3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2Vu
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5o
CkBAIC0xNTYsNiArMTU2LDkgQEAgcHVibGljOgogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KiBwZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3Bl
cnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQogICAgIHZvaWQgc2V0UGVyc2lzdGVu
dEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBhZ2VudCkg
eyBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAKKyAgICBJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCogZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KKyAgICB2
b2lkIHNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCogYWdlbnQpIHsgbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsg
fQorCiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHRyYWNraW5nSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ7IH0KICAgICB2b2lkIHNldFRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCA9IGFnZW50OyB9CiAKQEAgLTE5MCw2ICsxOTMsNyBAQCBwcml2YXRlOgogICAgIFBhZ2VE
T01EZWJ1Z2dlckFnZW50KiBtX3BhZ2VET01EZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9OwogICAg
IEluc3BlY3RvckNhbnZhc0FnZW50KiBtX2luc3BlY3RvckNhbnZhc0FnZW50IHsgbnVsbHB0ciB9
OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCB7IG51bGxwdHIgfTsKKyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogbV9l
bmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQqIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxw
dHIgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKaW5kZXggZGU5YTJjNTliZGFiYzI5MDg5
NmM5NjM5Y2VhYmI0ZTJjNDczYjgyOS4uMTljOGI1YzRjMDNiMGM1ZTFmYWMwMWQ2NWE5YTI4ZWY5
MTIzMGE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKQEAgLTI5LDI5ICsyOSwxODcgQEAKICNp
bmNsdWRlICJBbmltYXRpb25FZmZlY3QuaCIKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3RQaGFz
ZS5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRl
ICJDU1NUcmFuc2l0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJEZWNs
YXJhdGl2ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgorI2luY2x1ZGUgIkZpbGxNb2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIK
KyNpbmNsdWRlICJKU1dlYkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0Lmgi
CisjaW5jbHVkZSAiS2V5ZnJhbWVMaXN0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlBsYXliYWNrRGlyZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1
ZGUgIlRpbWluZ0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1
ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAK
K3N0YXRpYyBPcHRpb25hbDxkb3VibGU+IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGNvbnN0IFNl
Y29uZHMmIHNlY29uZHMpCit7CisgICAgaWYgKHNlY29uZHMgPT0gU2Vjb25kczo6aW5maW5pdHko
KSB8fCBzZWNvbmRzID09IFNlY29uZHM6Om5hbigpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworICAgIHJldHVybiBzZWNvbmRzLm1pbGxpc2Vjb25kcygpOworfQorCitzdGF0aWMgT3B0
aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbj4g
cHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKFBsYXliYWNrRGlyZWN0aW9uIHBsYXli
YWNrRGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAocGxheWJhY2tEaXJlY3Rpb24pIHsKKyAgICBj
YXNlIFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWw6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6
OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWw7CisgICAgY2Fz
ZSBQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZToKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246OlJldmVyc2U7CisgICAgY2Fz
ZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9y
OjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOworICAg
IGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZVJldmVyc2U6CisgICAgICAgIHJldHVy
biBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRl
cm5hdGVSZXZlcnNlOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3N0YXRpYyBPcHRpb25hbDxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBbmltYXRpb246OkZpbGxNb2RlPiBwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUoRmlsbE1v
ZGUgZmlsbE1vZGUpCit7CisgICAgc3dpdGNoIChmaWxsTW9kZSkgeworICAgIGNhc2UgRmlsbE1v
ZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OkZpbGxNb2RlOjpOb25lOworICAgIGNhc2UgRmlsbE1vZGU6OkZvcndhcmRzOgorICAgICAgICBy
ZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Rm9yd2FyZHM7
CisgICAgY2FzZSBGaWxsTW9kZTo6QmFja3dhcmRzOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9y
OjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6QmFja3dhcmRzOworICAgIGNhc2UgRmls
bE1vZGU6OkJvdGg6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRp
b246OkZpbGxNb2RlOjpCb3RoOworICAgIGNhc2UgRmlsbE1vZGU6OkF1dG86CisgICAgICAgIHJl
dHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpBdXRvOworICAg
IH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Cit9CisKK3N0YXRpYyBSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmlt
YXRpb246OktleWZyYW1lPj4gYnVpbGRPYmplY3RGb3JLZXlmcmFtZXMoS2V5ZnJhbWVFZmZlY3Qm
IGtleWZyYW1lRWZmZWN0KQoreworICAgIGF1dG8ga2V5ZnJhbWVzUGF5bG9hZCA9IEpTT046OkFy
cmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZT46OmNyZWF0ZSgp
OworCisgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihrZXlmcmFtZUVmZmVjdC5hbmlt
YXRpb24oKSkpIHsKKyAgICAgICAgQVNTRVJUKGtleWZyYW1lRWZmZWN0LnRhcmdldCgpKTsKKyAg
ICAgICAgYXV0byogcmVuZGVyZXIgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKS0+cmVuZGVyZXIo
KTsKKworICAgICAgICAvLyBTeW50aGVzaXplIENTUyBzdHlsZSBkZWNsYXJhdGlvbnMgZm9yIGVh
Y2gga2V5ZnJhbWUgc28gdGhlIGZyb250ZW5kIGNhbiBkaXNwbGF5IHRoZW0uCisgICAgICAgIENv
bXB1dGVkU3R5bGVFeHRyYWN0b3IgY29tcHV0ZWRTdHlsZUV4dHJhY3RvcihrZXlmcmFtZUVmZmVj
dC50YXJnZXQoKSk7CisKKyAgICAgICAgYXV0byYgYmxlbmRpbmdLZXlmcmFtZXMgPSBrZXlmcmFt
ZUVmZmVjdC5ibGVuZGluZ0tleWZyYW1lcygpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGJsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBi
bGVuZGluZ0tleWZyYW1lID0gYmxlbmRpbmdLZXlmcmFtZXNbaV07CisKKyAgICAgICAgICAgIEFT
U0VSVChibGVuZGluZ0tleWZyYW1lLnN0eWxlKCkpOworICAgICAgICAgICAgYXV0byYgc3R5bGUg
PSAqYmxlbmRpbmdLZXlmcmFtZS5zdHlsZSgpOworCisgICAgICAgICAgICBhdXRvIGtleWZyYW1l
UGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0
ZSgpCisgICAgICAgICAgICAgICAgLnNldE9mZnNldChibGVuZGluZ0tleWZyYW1lLmtleSgpKQor
ICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAgICAgICAgIGlmIChhdXRvKiB0aW1p
bmdGdW5jdGlvbiA9IGJsZW5kaW5nS2V5ZnJhbWUudGltaW5nRnVuY3Rpb24oKSkKKyAgICAgICAg
ICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyh0aW1pbmdGdW5jdGlvbi0+Y3NzVGV4
dCgpKTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHlsZVBheWxvYWRCdWlsZGVyOwor
ICAgICAgICAgICAgYXV0byYgY3NzUHJvcGVydHlJZHMgPSBibGVuZGluZ0tleWZyYW1lLnByb3Bl
cnRpZXMoKTsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IGNzc1Byb3BlcnR5SWRzLnNpemUo
KTsKKyAgICAgICAgICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0eUlkIDogY3NzUHJvcGVydHlJZHMp
IHsKKyAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgIGlmIChjc3NQcm9w
ZXJ0eUlkID09IENTU1Byb3BlcnR5Q3VzdG9tKQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKGdldFByb3Bl
cnR5TmFtZVN0cmluZyhjc3NQcm9wZXJ0eUlkKSk7CisgICAgICAgICAgICAgICAgc3R5bGVQYXls
b2FkQnVpbGRlci5hcHBlbmQoIjogIik7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gdmFsdWUg
PSBjb21wdXRlZFN0eWxlRXh0cmFjdG9yLnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKHN0eWxlLCBj
c3NQcm9wZXJ0eUlkLCByZW5kZXJlcikpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9h
ZEJ1aWxkZXIuYXBwZW5kKHZhbHVlLT5jc3NUZXh0KCkpOworICAgICAgICAgICAgICAgIHN0eWxl
UGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID4g
MCkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoJyAnKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3R5bGVQYXlsb2FkQnVpbGRlci5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRTdHlsZShzdHlsZVBh
eWxvYWRCdWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2Fk
LT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAgICAgIH0KKyAgICB9IGVs
c2UgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhcnNlZEtleWZyYW1lIDoga2V5ZnJhbWVF
ZmZlY3QucGFyc2VkS2V5ZnJhbWVzKCkpIHsKKyAgICAgICAgICAgIGF1dG8ga2V5ZnJhbWVQYXls
b2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZTo6Y3JlYXRlKCkK
KyAgICAgICAgICAgICAgICAuc2V0T2Zmc2V0KHBhcnNlZEtleWZyYW1lLmNvbXB1dGVkT2Zmc2V0
KQorICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAgICAgICAgIGlmICghcGFyc2Vk
S2V5ZnJhbWUuZWFzaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxv
YWQtPnNldEVhc2luZyhwYXJzZWRLZXlmcmFtZS5lYXNpbmcpOworCisgICAgICAgICAgICBpZiAo
IXBhcnNlZEtleWZyYW1lLnN0eWxlLT5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJh
bWVQYXlsb2FkLT5zZXRTdHlsZShwYXJzZWRLZXlmcmFtZS5zdHlsZS0+YXNUZXh0KCkpOworCisg
ICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXls
b2FkKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4ga2V5ZnJhbWVzUGF5bG9hZDsK
K30KKworc3RhdGljIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdD4g
YnVpbGRPYmplY3RGb3JFZmZlY3QoQW5pbWF0aW9uRWZmZWN0JiBlZmZlY3QpCit7CisgICAgYXV0
byBlZmZlY3RQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q6
OmNyZWF0ZSgpCisgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICBpZiAoYXV0byBzdGFydERlbGF5
ID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LmRlbGF5KCkpKQorICAgICAgICBlZmZl
Y3RQYXlsb2FkLT5zZXRTdGFydERlbGF5KHN0YXJ0RGVsYXkudmFsdWUoKSk7CisKKyAgICBpZiAo
YXV0byBlbmREZWxheSA9IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGVmZmVjdC5lbmREZWxheSgp
KSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0RW5kRGVsYXkoZW5kRGVsYXkudmFsdWUoKSk7
CisKKyAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRpb25Db3VudChlZmZlY3QuaXRlcmF0aW9u
cygpKTsKKyAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRpb25TdGFydChlZmZlY3QuaXRlcmF0
aW9uU3RhcnQoKSk7CisKKyAgICBpZiAoYXV0byBpdGVyYXRpb25EdXJhdGlvbiA9IHByb3RvY29s
VmFsdWVGb3JTZWNvbmRzKGVmZmVjdC5pdGVyYXRpb25EdXJhdGlvbigpKSkKKyAgICAgICAgZWZm
ZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9uRHVyYXRpb24oaXRlcmF0aW9uRHVyYXRpb24udmFsdWUo
KSk7CisKKyAgICBpZiAoYXV0byogdGltaW5nRnVuY3Rpb24gPSBlZmZlY3QudGltaW5nRnVuY3Rp
b24oKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0VGltaW5nRnVuY3Rpb24odGltaW5nRnVu
Y3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICBpZiAoYXV0byBwbGF5YmFja0RpcmVjdGlvbiA9IHBy
b3RvY29sVmFsdWVGb3JQbGF5YmFja0RpcmVjdGlvbihlZmZlY3QuZGlyZWN0aW9uKCkpKQorICAg
ICAgICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlv
bi52YWx1ZSgpKTsKKworICAgIGlmIChhdXRvIGZpbGxNb2RlID0gcHJvdG9jb2xWYWx1ZUZvckZp
bGxNb2RlKGVmZmVjdC5maWxsKCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9k
ZShmaWxsTW9kZS52YWx1ZSgpKTsKKworICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0
KSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0S2V5ZnJhbWVzKGJ1aWxkT2JqZWN0Rm9yS2V5
ZnJhbWVzKGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKSk7CisKKyAgICByZXR1cm4g
ZWZmZWN0UGF5bG9hZDsKK30KKwogSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgOiBJbnNwZWN0b3JB
Z2VudEJhc2UoIkFuaW1hdGlvbiJfcywgY29udGV4dCkKICAgICAsIG1fZnJvbnRlbmREaXNwYXRj
aGVyKG1ha2VVbmlxdWU8SW5zcGVjdG9yOjpBbmltYXRpb25Gcm9udGVuZERpc3BhdGNoZXI+KGNv
bnRleHQuZnJvbnRlbmRSb3V0ZXIpKQogICAgICwgbV9iYWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0
b3I6OkFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoY29udGV4dC5iYWNrZW5kRGlz
cGF0Y2hlciwgdGhpcykpCisgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihjb250ZXh0Lmlu
amVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICAsIG1faW5zcGVjdGVkUGFnZShjb250ZXh0Lmluc3Bl
Y3RlZFBhZ2UpCisgICAgLCBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpCiB7CiB9CiAK
QEAgLTY3LDExICsyMjUsMTAzIEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgRXJyb3JT
dHJpbmcgaWdub3JlZDsKICAgICBzdG9wVHJhY2tpbmcoaWdub3JlZCk7CisgICAgZGlzYWJsZShp
Z25vcmVkKTsKIAogICAgIEFTU0VSVChtX2luc3RydW1lbnRpbmdBZ2VudHMucGVyc2lzdGVudElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcyk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLnNldFBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChudWxscHRyKTsKIH0KIAor
dm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZykKK3sKKyAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCgpID09IHRoaXMpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0
aW9uIGRvbWFpbiBhbHJlYWR5IGVuYWJsZWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KHRoaXMpOworCisgICAgY29uc3QgYXV0byBleGlzdHNJbkN1cnJlbnRQYWdlID0gWyZdIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAg
IGlmICghaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTY4NDc1PiBXZWIgSW5zcGVjdG9yOiBDb3JyZWN0bHkgZGlzcGxheSBpZnJhbWUncyBXZWJTb2Nr
ZXRzCisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKSA9PSAmbV9p
bnNwZWN0ZWRQYWdlOworICAgIH07CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhX
ZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KCkpOworICAgICAgICBmb3IgKGF1dG8qIGFuaW1h
dGlvbiA6IFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKGxvY2spKSB7CisgICAgICAgICAgICBpZiAo
ZXhpc3RzSW5DdXJyZW50UGFnZShhbmltYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkp
CisgICAgICAgICAgICAgICAgYmluZEFuaW1hdGlvbigqYW5pbWF0aW9uLCBmYWxzZSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpc2FibGUo
RXJyb3JTdHJpbmcmKQoreworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0cik7CisKKyAgICByZXNldCgpOworfQorCit2b2lk
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXF1ZXN0VGFyZ2V0KEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpCit7CisgICAg
YXV0byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25J
ZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRv
bUFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCk7CisgICAg
aWYgKCFkb21BZ2VudCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJET00gZG9tYWluIG11c3Qg
YmUgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGVmZmVj
dCA9IGFuaW1hdGlvbi0+ZWZmZWN0KCk7CisgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZm
ZWN0KSkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1h
dGlvbklkIGRvZXMgbm90IGhhdmUgYW4gZWZmZWN0Il9zOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYXV0byYga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4o
KmVmZmVjdCk7CisKKyAgICBhdXRvKiB0YXJnZXQgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKTsK
KyAgICBpZiAoIXRhcmdldCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9y
IGdpdmVuIGFuaW1hdGlvbklkIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQiX3M7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICAqbm9kZUlkID0gZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRvRnJv
bnRlbmQoZXJyb3JTdHJpbmcsIHRhcmdldCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OnJlc29sdmVBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KQoreworICAg
IGF1dG8qIGFuaW1hdGlvbiA9IGFzc2VydEFuaW1hdGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9u
SWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBz
dGF0ZSA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5leGVjU3RhdGUoKTsK
KyAgICBhdXRvIGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5qZWN0
ZWRTY3JpcHRGb3Ioc3RhdGUpOworICAgIEFTU0VSVCghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1
ZSgpKTsKKworICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZTsKKyAgICB7CisgICAgICAgIEpTQzo6SlNM
b2NrSG9sZGVyIGxvY2soc3RhdGUpOworCisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGRl
cHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoc3RhdGUpOworICAgICAgICB2YWx1ZSA9
IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBpZiAo
IXZhbHVlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBlcnJvclN0
cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogdW5rbm93biBBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1h
dGlvbklkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG9iamVjdEdy
b3VwTmFtZSA9IG9iamVjdEdyb3VwID8gKm9iamVjdEdyb3VwIDogU3RyaW5nKCk7CisgICAgcmVz
dWx0ID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsK
K30KKwogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RhcnRUcmFja2luZyhFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcpCiB7CiAgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy50cmFj
a2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcykgewpAQCAtMTcwLDE2ICs0MjAs
MTUxIEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxBcHBseUtleWZyYW1lRWZm
ZWN0KEVsZW1lbnQmIHRhcmdldCwgS2V5ZnJhbWVFCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIt
PnRyYWNraW5nVXBkYXRlKG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBz
ZWRUaW1lKCkuc2Vjb25kcygpLCBXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24m
IGFuaW1hdGlvbikKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1h
dGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8RGVjbGFy
YXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0RlY2xhcmF0
aXZlQW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKTsK
KworICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworICAg
IGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQorCit2b2lk
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1p
bmcoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAg
bWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisg
ICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlm
IChhbmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRv
KiBlZmZlY3QgPSBhbmltYXRpb24uZWZmZWN0KCkpCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRj
aGVyLT5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBidWlsZE9iamVjdEZvckVmZmVjdCgqZWZm
ZWN0KSk7CisgICAgZWxzZQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZWZmZWN0Q2hh
bmdlZChhbmltYXRpb25JZCwgbnVsbHB0cik7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFu
aW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkgaWYgQW5p
bWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1hdGlvbklk
ID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKGFuaW1hdGlvbklkLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRhcmdl
dENoYW5nZWQoYW5pbWF0aW9uSWQpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAg
aWYgKCFmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBiaW5kQW5p
bWF0aW9uKGFuaW1hdGlvbiwgdHJ1ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewog
ICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3Rv
cFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRp
b24+KGFuaW1hdGlvbikpOworCisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5
IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmlt
YXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmICghYW5pbWF0aW9u
SWQuaXNFbXB0eSgpKQorICAgICAgICB1bmJpbmRBbmltYXRpb24oYW5pbWF0aW9uSWQpOworfQor
Cit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmcmFtZU5hdmlnYXRlZChGcmFtZSYgZnJh
bWUpCit7CisgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgcmVzZXQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+IGFuaW1hdGlvbklk
c1RvUmVtb3ZlOworICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBhbmltYXRpb25dIDogbV9h
bmltYXRpb25JZE1hcCkgeworICAgICAgICBpZiAoYXV0byogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAgICAgICBp
ZiAoaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PERvY3Vt
ZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkuZnJhbWUoKSA9PSAmZnJhbWUpCisgICAgICAg
ICAgICAgICAgYW5pbWF0aW9uSWRzVG9SZW1vdmUuYXBwZW5kKGFuaW1hdGlvbklkKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbklkIDogYW5pbWF0aW9u
SWRzVG9SZW1vdmUpCisgICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisK
K1N0cmluZyBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKFdlYkFuaW1h
dGlvbiYgYW5pbWF0aW9uKQoreworICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBleGlzdGlu
Z0FuaW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChleGlzdGluZ0Fu
aW1hdGlvbiA9PSAmYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbklkOwor
ICAgIH0KKyAgICByZXR1cm4gbnVsbFN0cmluZygpOworfQorCitXZWJBbmltYXRpb24qIEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9
IG1fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikK
KyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBhbmltYXRpb24gZm9yIGdpdmVuIGFuaW1h
dGlvbklkIl9zOworICAgIHJldHVybiBhbmltYXRpb247Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24sIGJvb2wg
Y2FwdHVyZUJhY2t0cmFjZSkKK3sKKyAgICBhdXRvIGFuaW1hdGlvbklkID0gbWFrZVN0cmluZygi
YW5pbWF0aW9uOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSk7Cisg
ICAgbV9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uSWQsICZhbmltYXRpb24pOworCisgICAg
YXV0byBhbmltYXRpb25QYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpB
bmltYXRpb246OmNyZWF0ZSgpCisgICAgICAgIC5zZXRBbmltYXRpb25JZChhbmltYXRpb25JZCkK
KyAgICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlmIChpczxDU1NBbmltYXRpb24+KGFuaW1hdGlv
bikpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldENzc0FuaW1hdGlvbk5hbWUoZG93bmNh
c3Q8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24pLmFuaW1hdGlvbk5hbWUoKSk7CisgICAgZWxzZSBp
ZiAoaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9h
ZC0+c2V0Q3NzVHJhbnNpdGlvblByb3BlcnR5KGRvd25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1h
dGlvbikudHJhbnNpdGlvblByb3BlcnR5KCkpOworCisgICAgaWYgKGF1dG8qIGVmZmVjdCA9IGFu
aW1hdGlvbi5lZmZlY3QoKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0RWZmZWN0KGJ1
aWxkT2JqZWN0Rm9yRWZmZWN0KCplZmZlY3QpKTsKKworICAgIGlmIChjYXB0dXJlQmFja3RyYWNl
KSB7CisgICAgICAgIGF1dG8gc3RhY2tUcmFjZSA9IEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKEpTRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgSW5zcGVjdG9yOjpTY3JpcHRDYWxs
U3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUpOworICAgICAgICBhbmltYXRpb25QYXls
b2FkLT5zZXRCYWNrdHJhY2Uoc3RhY2tUcmFjZS0+YnVpbGRJbnNwZWN0b3JBcnJheSgpKTsKKyAg
ICB9CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0aW9uQ3JlYXRlZChXVEZNb3Zl
KGFuaW1hdGlvblBheWxvYWQpKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
dW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAgbV9hbmlt
YXRpb25JZE1hcC5yZW1vdmUoYW5pbWF0aW9uSWQpOworCisgICAgLy8gVGhpcyBjYW4gYmUgY2Fs
bGVkIGluIHJlc3BvbnNlIHRvIEdDLiBEdWUgdG8gdGhlIHNpbmdsZS1wcm9jZXNzIG1vZGVsIHVz
ZWQgaW4gV2ViS2l0MSwgdGhlCisgICAgLy8gZXZlbnQgbXVzdCBiZSBkaXNwYXRjaGVkIGZyb20g
YSB0aW1lciB0byBwcmV2ZW50IHRoZSBmcm9udGVuZCBmcm9tIG1ha2luZyBKUyBhbGxvY2F0aW9u
cworICAgIC8vIHdoaWxlIHRoZSBHQyBpcyBzdGlsbCBhY3RpdmUuCisgICAgbV9yZW1vdmVkQW5p
bWF0aW9uSWRzLmFwcGVuZChhbmltYXRpb25JZCk7CisKKyAgICBpZiAoIW1fYW5pbWF0aW9uRGVz
dHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1l
ci5zdGFydE9uZVNob3QoMF9zKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpCit7CisgICAgaWYgKCFtX3JlbW92ZWRBbmlt
YXRpb25JZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGlkZW50
aWZpZXIgOiBtX3JlbW92ZWRBbmltYXRpb25JZHMpCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRj
aGVyLT5hbmltYXRpb25EZXN0cm95ZWQoaWRlbnRpZmllcik7CisKKyAgICBtX3JlbW92ZWRBbmlt
YXRpb25JZHMuY2xlYXIoKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVz
ZXQoKQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKworICAgIG1fcmVtb3ZlZEFu
aW1hdGlvbklkcy5jbGVhcigpOworCisgICAgaWYgKG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIu
aXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5zdG9wKCk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0b3BUcmFja2luZ0RlY2xhcmF0aXZl
QW5pbWF0aW9uKERlY2xhcmF0aXZlQW5pbWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50
LmgKaW5kZXggN2EyNGJiY2JiMWIzMzFkMTkwZGE2MGMwMGQyMWJkOTM1NDhmYWIwMC4uMmNjNWJh
YWU5ZWYyYjQzNDI3MjI4YzkzYWE5MGYxZWI1NDcyZmU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaApA
QCAtMjcsMTYgKzI3LDIwIEBACiAKICNpbmNsdWRlICJDb21wdXRlZEVmZmVjdFRpbWluZy5oIgog
I2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
QW5pbWF0aW9uRWZmZWN0OwogY2xhc3MgRGVjbGFyYXRpdmVBbmltYXRpb247CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgRXZlbnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIEtleWZyYW1lRWZmZWN0Owor
Y2xhc3MgUGFnZTsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JT
dHJpbmc7CkBAIC01MywyMCArNTcsNDIgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsK
IAogICAgIC8vIEFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5h
YmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0VGFyZ2V0KEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOworICAgIHZvaWQgcmVz
b2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGNv
bnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50
aW1lOjpSZW1vdGVPYmplY3Q+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFRyYWNraW5nKEVy
cm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcm
KSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQg
d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0
ZWRFZmZlY3RUaW1pbmcpOwotICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdl
YkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1h
dGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFu
aW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdl
YkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlv
biYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7Cisg
ICAgdm9pZCBmcmFtZU5hdmlnYXRlZChGcmFtZSYpOwogCiBwcml2YXRlOgorICAgIFN0cmluZyBm
aW5kQW5pbWF0aW9uSWQoV2ViQW5pbWF0aW9uJik7CisgICAgV2ViQW5pbWF0aW9uKiBhc3NlcnRB
bmltYXRpb24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKTsKKyAgICB2
b2lkIGJpbmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKTsK
KyAgICB2b2lkIHVuYmluZEFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKTsKKyAg
ICB2b2lkIGFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJlc2V0KCk7
CisKICAgICB2b2lkIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZl
QW5pbWF0aW9uJik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpBbmltYXRpb25G
cm9udGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OkFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwog
CisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyOworICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKKworICAgIEhhc2hNYXA8U3RyaW5n
LCBXZWJBbmltYXRpb24qPiBtX2FuaW1hdGlvbklkTWFwOworICAgIFZlY3RvcjxTdHJpbmc+IG1f
cmVtb3ZlZEFuaW1hdGlvbklkczsKKyAgICBUaW1lciBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVy
OworCiAgICAgc3RydWN0IFRyYWNrZWREZWNsYXJhdGl2ZUFuaW1hdGlvbkRhdGEgewogICAgICAg
ICBTdHJpbmcgdHJhY2tpbmdBbmltYXRpb25JZDsKICAgICAgICAgQ29tcHV0ZWRFZmZlY3RUaW1p
bmcgbGFzdENvbXB1dGVkVGltaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBhZWNjNzliYzBjYTU2ZmI2NWZl
MDMzMGYwOGU0ZWU2ODhiZjgxZTg5Li4wZjQ2YTMwMzNhZWY0MDA3ZjZlYjgzN2E2MTA1ZjA1YTBj
NTkwNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTY2LDcgKzU2Niw3IEBAIGludCBJbnNwZWN0b3JET01B
Z2VudDo6cHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IGRv
Y3VtZW50CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHJldHVybiBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKG5vZGVUb1B1c2gpOworICAgIHJldHVybiBwdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKGVycm9yU3RyaW5nLCBub2RlVG9QdXNoKTsKIH0KIAogTm9kZSogSW5zcGVjdG9yRE9NQWdl
bnQ6Om5vZGVGb3JJZChpbnQgaWQpCkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6cXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2Rl
SWQsIGNvbnMKICAgICB9CiAKICAgICBpZiAoYXV0byogZWxlbWVudCA9IHF1ZXJ5UmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpKQotICAgICAgICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChlbGVtZW50KTsKKyAgICAgICAgKmVsZW1lbnRJZCA9IHB1c2hOb2RlUGF0aFRvRnJv
bnRlbmQoZXJyb3JTdHJpbmcsIGVsZW1lbnQpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpxdWVyeVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwg
Y29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1
bHQpCkBAIC02MzksMTMgKzYzOSwyNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNl
bGVjdG9yQWxsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgYwogfQogCiBp
bnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSogbm9kZVRv
UHVzaCkKK3sKKyAgICBFcnJvclN0cmluZyBpZ25vcmVkOworICAgIHJldHVybiBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGlnbm9yZWQsIG5vZGVUb1B1c2gpOworfQorCitpbnQgSW5zcGVjdG9yRE9N
QWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcgZXJyb3JTdHJpbmcsIE5v
ZGUqIG5vZGVUb1B1c2gpCiB7CiAgICAgQVNTRVJUKG5vZGVUb1B1c2gpOyAgLy8gSW52YWxpZCBp
bnB1dAogCi0gICAgaWYgKCFtX2RvY3VtZW50KQorICAgIGlmICghbV9kb2N1bWVudCkgeworICAg
ICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIGRvY3VtZW50Il9zOwogICAgICAgICByZXR1cm4g
MDsKLSAgICBpZiAoIW1fZG9jdW1lbnROb2RlVG9JZE1hcC5jb250YWlucyhtX2RvY3VtZW50KSkK
KyAgICB9CisKKyAgICBpZiAoIW1fZG9jdW1lbnROb2RlVG9JZE1hcC5jb250YWlucyhtX2RvY3Vt
ZW50KSkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJEb2N1bWVudCBtdXN0IGhhdmUgYmVlbiBy
ZXF1ZXN0ZWQiX3M7CiAgICAgICAgIHJldHVybiAwOworICAgIH0KIAogICAgIC8vIFJldHVybiBp
ZCBpbiBjYXNlIHRoZSBub2RlIGlzIGtub3duLgogICAgIGludCByZXN1bHQgPSBtX2RvY3VtZW50
Tm9kZVRvSWRNYXAuZ2V0KG5vZGVUb1B1c2gpOwpAQCAtNzkwLDcgKzgwMSw3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1lKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50
IG5vZGVJZCwgY29uc3QKICAgICBpZiAoIW1fZG9tRWRpdG9yLT5yZW1vdmVDaGlsZCgqcGFyZW50
LCAqb2xkTm9kZSwgZXJyb3JTdHJpbmcpKQogICAgICAgICByZXR1cm47CiAKLSAgICAqbmV3SWQg
PSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5ld0VsZW1lbnQucHRyKCkpOworICAgICpuZXdJZCA9
IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5ld0VsZW1lbnQucHRyKCkpOwog
ICAgIGlmIChtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCkpCiAgICAgICAgIHB1
c2hDaGlsZE5vZGVzVG9Gcm9udGVuZCgqbmV3SWQpOwogfQpAQCAtODMwLDcgKzg0MSw3IEBAIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTChFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGludCBub2RlSWQsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQg
bmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5ld05vZGUpOworICAgIGludCBuZXdJZCA9
IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5ld05vZGUpOwogCiAgICAgYm9v
bCBjaGlsZHJlblJlcXVlc3RlZCA9IG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlk
KTsKICAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0ZWQpCkBAIC0xNDIyLDcgKzE0MzMsNyBAQCB2b2lk
IEluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQg
bm9kZUlkLCBpbnQgdGFyZ2V0RQogICAgIGlmICghbV9kb21FZGl0b3ItPmluc2VydEJlZm9yZSgq
dGFyZ2V0RWxlbWVudCwgKm5vZGUsIGFuY2hvck5vZGUsIGVycm9yU3RyaW5nKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgKm5ld05vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7
CisgICAgKm5ld05vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5v
ZGUpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmRvKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZykKQEAgLTE0OTgsMTEgKzE1MDksMTEgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
Z2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFJlZlAK
ICAgICByZXN1bHQgPSBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoZWxlbWVudCk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpCit2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0SWQsIGludCogbm9kZUlkKQogewogICAgIE5vZGUqIG5vZGUgPSBub2RlRm9yT2JqZWN0SWQo
b2JqZWN0SWQpOwogICAgIGlmIChub2RlKQotICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChub2RlKTsKKyAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRl
bmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogICAgIGVsc2UKICAgICAgICAgKm5vZGVJZCA9IDA7CiB9
CkBAIC0yNjQ2LDcgKzI2NTcsNyBAQCBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvck9i
amVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpCiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpw
dXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHBhdGgsIGludCogbm9kZUlkKQogewogICAgIGlmIChOb2RlKiBub2RlID0gbm9kZUZv
clBhdGgocGF0aCkpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5v
ZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmlu
Zywgbm9kZSk7CiAgICAgZWxzZQogICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIG5vZGUg
Zm9yIGdpdmVuIHBhdGgiX3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNTE2MzlhYmViODRmNGQ5NWRlZDNmNGZi
NjQwOWFkOGY2MmEyODk0ZS4uN2RmMGU4M2ViNTNkNzVjNDFjNTU0ZjE0MDEyMzViYTIxNzE5NDE0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
T01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuaApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKIAogICAgIGludCBwdXNoTm9k
ZVRvRnJvbnRlbmQoTm9kZSopOwogICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJp
bmcmLCBpbnQgZG9jdW1lbnROb2RlSWQsIE5vZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChOb2RlKik7CisgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJp
bmcsIE5vZGUqKTsKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJv
dW5kTm9kZUlkKGNvbnN0IE5vZGUqKTsKIApAQCAtMjE3LDcgKzIxOSw2IEBAIHByaXZhdGU6CiAg
ICAgTm9kZSogYXNzZXJ0RWRpdGFibGVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCk7CiAg
ICAgRWxlbWVudCogYXNzZXJ0RWRpdGFibGVFbGVtZW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJ
ZCk7CiAKLSAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKik7CiAgICAgdm9pZCBw
dXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQoaW50IG5vZGVJZCwgaW50IGRlcHRoID0gMSk7CiAKICAg
ICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPiBidWlsZE9iamVjdEZvck5vZGUo
Tm9kZSosIGludCBkZXB0aCwgTm9kZVRvSWRNYXAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzCmluZGV4IDdhNzQ3YTY5NDkzMzQ3ZmMxOGYwZDFjZjA1NTdmNWM5ZWY5MDZhNTcuLjg2
ZTk5NGYxYjZkOTIzY2UwN2E4MGY0NTllYmExNWU4MzgxMjVmZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcwpAQCAtMTIwLDE3ICsxMjAsMjIgQEAgbG9jYWxpemVkU3RyaW5nc1si
QWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11c3QgYmUgZXJyb3Igb2JqZWN0cyJdID0gIkFs
bCBpdGUKIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0
IGJlIG5vbi1lbXB0eSBzdHJpbmdzIl0gPSAiQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11
c3QgYmUgbm9uLWVtcHR5IHN0cmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siQWxsIGl0ZW1zIGlu
IFx1MDAyMiVzXHUwMDIyIG11c3QgYmUgdmFsaWQgRE9NIG5vZGVzIl0gPSAiQWxsIGl0ZW1zIGlu
IFx1MDAyMiVzXHUwMDIyIG11c3QgYmUgdmFsaWQgRE9NIG5vZGVzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkFsbG93IE1lZGlhIENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiXSA9ICJBbGxvdyBNZWRp
YSBDYXB0dXJlIG9uIEluc2VjdXJlIFNpdGVzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFsdGVybmF0
ZSJdID0gIkFsdGVybmF0ZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbHRlcm5hdGUgUmV2ZXJzZSJd
ID0gIkFsdGVybmF0ZSBSZXZlcnNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIGVycm9yIG9jY3Vy
cmVkIHRyeWluZyB0byBsb2FkIHRoZSByZXNvdXJjZS4iXSA9ICJBbiBlcnJvciBvY2N1cnJlZCB0
cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIGVycm9y
IG9jY3VycmVkIHRyeWluZyB0byByZWFkIHRoZSBcdTIwMUMlc1x1MjAxRCB0YWJsZS4iXSA9ICJB
biBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gcmVhZCB0aGUgXHUyMDFDJXNcdTIwMUQgdGFibGUu
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIl0g
PSAiQW4gdW5leHBlY3RlZCBlcnJvciAlcyBvY2N1cnJlZC4iOwogbG9jYWxpemVkU3RyaW5nc1si
QW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iXSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9j
Y3VycmVkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmdsZSJdID0gIkFuZ2xlIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIkFuaW1hdGlvbiJdID0gIkFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJB
bmltYXRpb24gJWQiXSA9ICJBbmltYXRpb24gJWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0
aW9uIEZyYW1lICVkIENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCJdID0gIkFuaW1hdGlv
biBGcmFtZSAlZCBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQg
UmVxdWVzdGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJBbmltYXRpb24gRnJhbWUgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgQ2Fu
Y2VsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lIEZpcmVkIl0gPSAiQW5p
bWF0aW9uIEZyYW1lIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBS
ZXF1ZXN0ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIjsKK2xvY2FsaXplZFN0cmlu
Z3NbIkFuaW1hdGlvbiBUYXJnZXQiXSA9ICJBbmltYXRpb24gVGFyZ2V0IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkFub255bW91cyBTY3JpcHQgJWQiXSA9ICJBbm9ueW1vdXMgU2NyaXB0ICVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFub255bW91cyBTY3JpcHRzIl0gPSAiQW5vbnltb3VzIFNjcmlwdHMi
OwogbG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFN0eWxlIFNoZWV0ICVkIl0gPSAiQW5vbnlt
b3VzIFN0eWxlIFNoZWV0ICVkIjsKQEAgLTE2OSwxNiArMTc0LDE5IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIkF2ZXJhZ2U6ICVzIl0gPSAiQXZlcmFnZTogJXMiOwogbG9jYWxpemVkU3RyaW5nc1siQk1Q
Il0gPSAiQk1QIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJhY2sgKCVzKSJdID0gIkJhY2sgKCVzKSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJCYWNrdHJhY2UiXSA9ICJCYWNrdHJhY2UiOworbG9jYWxpemVk
U3RyaW5nc1siQmFja3dhcmRzIl0gPSAiQmFja3dhcmRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJh
c2ljIl0gPSAiQmFzaWMiOwogbG9jYWxpemVkU3RyaW5nc1siQmVhY29uIl0gPSAiQmVhY29uIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkJlYWNvbnMiXSA9ICJCZWFjb25zIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkJpbmFyeSBGcmFtZSJdID0gIkJpbmFyeSBGcmFtZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJC
aW5kaW5nIl0gPSAiQmluZGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJCaXRtYXAgUmVuZGVyZXIi
XSA9ICJCaXRtYXAgUmVuZGVyZXIiOwogbG9jYWxpemVkU3RyaW5nc1siQmxhY2tib3giXSA9ICJC
bGFja2JveCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbGFja2JveCBTY3JpcHQiXSA9ICJCbGFja2Jv
eCBTY3JpcHQiOwogbG9jYWxpemVkU3RyaW5nc1siQmxhY2tib3ggc2NyaXB0IHRvIGlnbm9yZSBp
dCB3aGVuIGRlYnVnZ2luZyJdID0gIkJsYWNrYm94IHNjcmlwdCB0byBpZ25vcmUgaXQgd2hlbiBk
ZWJ1Z2dpbmciOwogbG9jYWxpemVkU3RyaW5nc1siQmxvY2sgVmFyaWFibGVzIl0gPSAiQmxvY2sg
VmFyaWFibGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJvZHk6Il0gPSAiQm9keToiOworbG9jYWxp
emVkU3RyaW5nc1siQm90aCJdID0gIkJvdGgiOwogbG9jYWxpemVkU3RyaW5nc1siQm91bmRhcnki
XSA9ICJCb3VuZGFyeSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb3ggTW9kZWwiXSA9ICJCb3ggTW9k
ZWwiOwogbG9jYWxpemVkU3RyaW5nc1siQnJlYWsgb24iXSA9ICJCcmVhayBvbiI7CkBAIC0yMDEs
OSArMjA5LDExIEBAIGxvY2FsaXplZFN0cmluZ3NbIkNQVSJdID0gIkNQVSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJDUFUgVXNhZ2UiXSA9ICJDUFUgVXNhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NQ
IEhhc2giXSA9ICJDU1AgSGFzaCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQW5pbWF0aW9uIl0g
PSAiQ1NTIEFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQW5pbWF0aW9ucyJdID0g
IkNTUyBBbmltYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBDYW52YXMiXSA9ICJDU1Mg
Q2FudmFzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBDaGFuZ2VzOiJdID0gIkNTUyBDaGFuZ2Vz
OiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgVHJhbnNpdGlvbiJdID0gIkNTUyBUcmFuc2l0aW9u
IjsKK2xvY2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0aW9ucyJdID0gIkNTUyBUcmFuc2l0aW9u
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgY2FudmFzIFx1MjAxQyVzXHUyMDFEIl0gPSAiQ1NT
IGNhbnZhcyBcdTIwMUMlc1x1MjAxRCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWNoZWQiXSA9ICJD
YWNoZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FsbCBGcmFtZXMgVHJ1bmNhdGVkIl0gPSAiQ2Fs
bCBGcmFtZXMgVHJ1bmNhdGVkIjsKQEAgLTM3Nyw2ICszODcsNyBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJEZXZpY2UgJWQiXSA9ICJEZXZpY2UgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siRGV2aWNlIFNl
dHRpbmdzIl0gPSAiRGV2aWNlIFNldHRpbmdzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpYWdub3Nl
cyBjb21tb24gYWNjZXNzaWJpbGl0eSBwcm9ibGVtcyBhZmZlY3Rpbmcgc2NyZWVuIHJlYWRlcnMg
YW5kIG90aGVyIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LiJdID0gIkRpYWdub3NlcyBjb21tb24gYWNj
ZXNzaWJpbGl0eSBwcm9ibGVtcyBhZmZlY3Rpbmcgc2NyZWVuIHJlYWRlcnMgYW5kIG90aGVyIGFz
c2lzdGl2ZSB0ZWNobm9sb2d5LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaW1lbnNpb25zIl0gPSAi
RGltZW5zaW9ucyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJEaXJlY3Rpb24iXSA9ICJEaXJlY3Rpb24i
OwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50Il0gPSAiRGlzYWJsZSBCcmVh
a3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2FibGUgQnJlYWtwb2ludHMiXSA9ICJEaXNh
YmxlIEJyZWFrcG9pbnRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2FibGUgRGVzY2VuZGFudCBC
cmVha3BvaW50cyJdID0gIkRpc2FibGUgRGVzY2VuZGFudCBCcmVha3BvaW50cyI7CkBAIC00MTks
NiArNDMwLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRHVyYXRpb246IFNob3J0Il0gPSAiRHVyYXRp
b246IFNob3J0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9y
IHRoZSBwYXJlbnQgZWxlbWVudCJdID0gIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoZSBw
YXJlbnQgZWxlbWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVk
IGZvciB0aGUgc2VsZWN0ZWQgZWxlbWVudCJdID0gIkR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgZm9y
IHRoZSBzZWxlY3RlZCBlbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkR5bmFtaWNhbGx5IGNh
bGN1bGF0ZWQgZm9yIHRoZSBzZWxlY3RlZCBlbGVtZW50IGFuZCBkaWQgbm90IG1hdGNoIl0gPSAi
RHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQgYW5kIGRpZCBu
b3QgbWF0Y2giOworbG9jYWxpemVkU3RyaW5nc1siRWFzaW5nIl0gPSAiRWFzaW5nIjsKIC8qIExh
YmVsIGZvciBhIGd1aWRlIHdpdGhpbiB0aGUgY29sb3IgcGlja2VyICovCiBsb2NhbGl6ZWRTdHJp
bmdzWyJFZGdlIG9mIHNSR0IgY29sb3Igc3BhY2UiXSA9ICJFZGdlIG9mIHNSR0IgY29sb3Igc3Bh
Y2UiOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCJdID0gIkVkaXQiOwpAQCAtNDMwLDYgKzQ0Miw3
IEBAIGxvY2FsaXplZFN0cmluZ3NbIkVkaXQgXHUyMDFDc3ByaW5nXHUyMDFEIGZ1bmN0aW9uIl0g
PSAiRWRpdCBcdTIwMUNzcHJpbmdcdTIwMUQKIGxvY2FsaXplZFN0cmluZ3NbIkVkaXQgY29uZmln
dXJhdGlvbiJdID0gIkVkaXQgY29uZmlndXJhdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0
IGN1c3RvbSBncmFkaWVudCJdID0gIkVkaXQgY3VzdG9tIGdyYWRpZW50IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkVkaXRpbmcgYXVkaXRzIl0gPSAiRWRpdGluZyBhdWRpdHMiOworbG9jYWxpemVkU3Ry
aW5nc1siRWZmZWN0Il0gPSAiRWZmZWN0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQiXSA9
ICJFbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQgU2VsZWN0aW9uOiJdID0gIkVs
ZW1lbnQgU2VsZWN0aW9uOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50IGNsaXBzIGNvbXBv
c2l0aW5nIGRlc2NlbmRhbnRzIl0gPSAiRWxlbWVudCBjbGlwcyBjb21wb3NpdGluZyBkZXNjZW5k
YW50cyI7CkBAIC00NzgsNiArNDkxLDggQEAgbG9jYWxpemVkU3RyaW5nc1siRW5hYmxlIHNvdXJj
ZSBtYXBzIl0gPSAiRW5hYmxlIHNvdXJjZSBtYXBzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJs
ZWQiXSA9ICJFbmFibGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuY29kZWQiXSA9ICJFbmNvZGVk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuY29kaW5nIl0gPSAiRW5jb2RpbmciOworbG9jYWxpemVk
U3RyaW5nc1siRW5kIERlbGF5Il0gPSAiRW5kIERlbGF5IjsKK2xvY2FsaXplZFN0cmluZ3NbIkVu
ZCBEZWxheSAlcyJdID0gIkVuZCBEZWxheSAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmVyZ3kg
SW1wYWN0Il0gPSAiRW5lcmd5IEltcGFjdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1cmUgYXJp
YS1oaWRkZW49XHUwMDIyJXNcdTAwMjIgaXMgbm90IHVzZWQuIl0gPSAiRW5zdXJlIGFyaWEtaGlk
ZGVuPVx1MDAyMiVzXHUwMDIyIGlzIG5vdCB1c2VkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnN1
cmUgdGhhdCBcdTAwMjIlc1x1MDAyMiBpcyBzcGVsbGVkIGNvcnJlY3RseS4iXSA9ICJFbnN1cmUg
dGhhdCBcdTAwMjIlc1x1MDAyMiBpcyBzcGVsbGVkIGNvcnJlY3RseS4iOwpAQCAtNTM3LDYgKzU1
Miw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkZldGNoIl0gPSAiRmV0Y2giOwogbG9jYWxpemVkU3Ry
aW5nc1siRmV0Y2hlcyJdID0gIkZldGNoZXMiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsZSBvciBS
ZXNvdXJjZSJdID0gIkZpbGUgb3IgUmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsZW5h
bWUiXSA9ICJGaWxlbmFtZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJGaWxsIl0gPSAiRmlsbCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJGaWx0ZXIiXSA9ICJGaWx0ZXIiOwogbG9jYWxpemVkU3RyaW5nc1si
RmlsdGVyIEZ1bGwgVVJMIl0gPSAiRmlsdGVyIEZ1bGwgVVJMIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkZpbHRlcjoiXSA9ICJGaWx0ZXI6IjsKQEAgLTU2NSw2ICs1ODEsNyBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJGb3JtYXQ6IFJHQkEiXSA9ICJGb3JtYXQ6IFJHQkEiOwogbG9jYWxpemVkU3RyaW5nc1si
Rm9ybWF0OiBTaG9ydCBIZXgiXSA9ICJGb3JtYXQ6IFNob3J0IEhleCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJGb3JtYXQ6IFNob3J0IEhleCB3aXRoIEFscGhhIl0gPSAiRm9ybWF0OiBTaG9ydCBIZXgg
d2l0aCBBbHBoYSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGb3J3YXJkICglcykiXSA9ICJGb3J3YXJk
ICglcykiOworbG9jYWxpemVkU3RyaW5nc1siRm9yd2FyZHMiXSA9ICJGb3J3YXJkcyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJGcmFnbWVudCJdID0gIkZyYWdtZW50IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkZyYWdtZW50IFNoYWRlciJdID0gIkZyYWdtZW50IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJGcmFtZSAlZCJdID0gIkZyYW1lICVkIjsKQEAgLTU4NSw2ICs2MDIsNyBAQCBsb2NhbGl6ZWRT
dHJpbmdzWyJHbG9iYWwgQ29kZSJdID0gIkdsb2JhbCBDb2RlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ikdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50Il0gPSAiR2xvYmFsIExleGljYWwgRW52aXJvbm1l
bnQiOwogbG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIFZhcmlhYmxlcyJdID0gIkdsb2JhbCBWYXJp
YWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siR3JhbW1hciJdID0gIkdyYW1tYXIiOworbG9jYWxp
emVkU3RyaW5nc1siR3JhcGhpY3MiXSA9ICJHcmFwaGljcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJH
cm91cCJdID0gIkdyb3VwIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIEJ5IFJlc291cmNlIl0g
PSAiR3JvdXAgQnkgUmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAgTWVkaWEgUmVx
dWVzdHMiXSA9ICJHcm91cCBNZWRpYSBSZXF1ZXN0cyI7CkBAIC02MzIsNiArNjUwLDcgQEAgbG9j
YWxpemVkU3RyaW5nc1siSW1hZ2VzIl0gPSAiSW1hZ2VzIjsKIGxvY2FsaXplZFN0cmluZ3NbIklt
YWdlczoiXSA9ICJJbWFnZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkltbWVkaWF0ZSBQYXVzZSBS
ZXF1ZXN0ZWQiXSA9ICJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkltcG9ydCJdID0gIkltcG9ydCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQgUmVjb3Jk
aW5nIl0gPSAiSW1wb3J0IFJlY29yZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCJd
ID0gIkltcG9ydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIC0gJXMiXSA9ICJJbXBv
cnRlZCAtICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIFx1MjAxNCAlcyJdID0gIklt
cG9ydGVkIFx1MjAxNCAlcyI7CkBAIC02NjAsNiArNjc5LDcgQEAgbG9jYWxpemVkU3RyaW5nc1si
SW52b2tlIGdldHRlciJdID0gIkludm9rZSBnZXR0ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siSXQg
aXMgZXZhbHVhdGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGNyZWF0
ZWQsIGJlZm9yZSBhbnkgb3RoZXIgY29udGVudCBoYXMgbG9hZGVkLiJdID0gIkl0IGlzIGV2YWx1
YXRlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgZ2xvYmFsIG9iamVjdCBpcyBjcmVhdGVkLCBiZWZv
cmUgYW55IG90aGVyIGNvbnRlbnQgaGFzIGxvYWRlZC4iOwogLyogVG9vbHRpcCBmb3IgYSB0aW1l
c3RhbXAgbWFya2VyIHRoYXQgcmVwcmVzZW50cyB3aGVuIGEgQ1NTIGFuaW1hdGlvbi90cmFuc2l0
aW9uIGl0ZXJhdGVzICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJJdGVyYXRpb24iXSA9ICJJdGVyYXRp
b24iOworbG9jYWxpemVkU3RyaW5nc1siSXRlcmF0aW9ucyJdID0gIkl0ZXJhdGlvbnMiOwogbG9j
YWxpemVkU3RyaW5nc1siSlAyIl0gPSAiSlAyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkpQRUciXSA9
ICJKUEVHIjsKIGxvY2FsaXplZFN0cmluZ3NbIkphdmFTY3JpcHQiXSA9ICJKYXZhU2NyaXB0IjsK
QEAgLTY2OSw2ICs2ODksNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJKYXZhU2NyaXB0IENvbnRleHQi
XSA9ICJKYXZhU2NyaXB0IENvbnRleHQiOwogbG9jYWxpemVkU3RyaW5nc1siSnVtcCB0byBEZWZp
bml0aW9uIl0gPSAiSnVtcCB0byBEZWZpbml0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIktleSJd
ID0gIktleSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJLZXkgUGF0aCJdID0gIktleSBQYXRoIjsKK2xv
Y2FsaXplZFN0cmluZ3NbIktleWZyYW1lcyJdID0gIktleWZyYW1lcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJMYWJlbCJdID0gIkxhYmVsIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxhdGVuY3kiXSA9ICJM
YXRlbmN5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkxheWVyIENvdW50OiAlZCJdID0gIkxheWVyIENv
dW50OiAlZCI7CkBAIC02OTYsNiArNzE3LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTG9jYWwgU3Rv
cmFnZSJdID0gIkxvY2FsIFN0b3JhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYWwgVmFyaWFi
bGVzIl0gPSAiTG9jYWwgVmFyaWFibGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2F0ZWQgYXQg
JXMiXSA9ICJMb2NhdGVkIGF0ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2F0aW9uIl0gPSAi
TG9jYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siTG9nIEFuaW1hdGlvbiJdID0gIkxvZyBBbmlt
YXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siTG9nIENhbnZhcyBDb250ZXh0Il0gPSAiTG9nIENh
bnZhcyBDb250ZXh0IjsKIC8qIExvZyAocHJpbnQpIERPTSBlbGVtZW50IHRvIENvbnNvbGUgKi8K
IGxvY2FsaXplZFN0cmluZ3NbIkxvZyBFbGVtZW50Il0gPSAiTG9nIEVsZW1lbnQiOwpAQCAtNzY4
LDYgKzc5MCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIk5vIEVuYWJsZWQgQXVkaXRzIl0gPSAiTm8g
RW5hYmxlZCBBdWRpdHMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRW50cmllcyJdID0gIk5vIEVu
dHJpZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRXZlbnQgTGlzdGVuZXJzIl0gPSAiTm8gRXZl
bnQgTGlzdGVuZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIEZpbHRlciBSZXN1bHRzIl0gPSAi
Tm8gRmlsdGVyIFJlc3VsdHMiOworbG9jYWxpemVkU3RyaW5nc1siTm8gS2V5ZnJhbWVzIl0gPSAi
Tm8gS2V5ZnJhbWVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIExheWVyIEF2YWlsYWJsZSJdID0g
Ik5vIExheWVyIEF2YWlsYWJsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBPdmVycmlkZXMiXSA9
ICJObyBPdmVycmlkZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUGFyYW1ldGVycyJdID0gIk5v
IFBhcmFtZXRlcnMiOwpAQCAtNzc5LDYgKzgwMiw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIk5vIFJl
c3BvbnNlIEhlYWRlcnMiXSA9ICJObyBSZXNwb25zZSBIZWFkZXJzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIk5vIFJlc3VsdCJdID0gIk5vIFJlc3VsdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXN1
bHRzIEZvdW5kIl0gPSAiTm8gUmVzdWx0cyBGb3VuZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBT
ZWFyY2ggUmVzdWx0cyJdID0gIk5vIFNlYXJjaCBSZXN1bHRzIjsKK2xvY2FsaXplZFN0cmluZ3Nb
Ik5vIFN0eWxlcyJdID0gIk5vIFN0eWxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBXYXRjaCBF
eHByZXNzaW9ucyJdID0gIk5vIFdhdGNoIEV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vIGF1ZGl0IHNlbGVjdGVkIl0gPSAiTm8gYXVkaXQgc2VsZWN0ZWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siTm8gY2VydGlmaWNhdGUgc2VjdXJpdHkgaW5mb3JtYXRpb24uIl0gPSAiTm8gY2VydGlm
aWNhdGUgc2VjdXJpdHkgaW5mb3JtYXRpb24uIjsKQEAgLTc5OCw2ICs4MjIsNyBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJOb2RlIl0gPSAiTm9kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb2RlIFJlbW92
ZWQiXSA9ICJOb2RlIFJlbW92ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siTm9kZXMiXSA9ICJOb2Rl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb25lIl0gPSAiTm9uZSI7Citsb2NhbGl6ZWRTdHJpbmdz
WyJOb3JtYWwiXSA9ICJOb3JtYWwiOwogbG9jYWxpemVkU3RyaW5nc1siTm90IGZvdW5kIl0gPSAi
Tm90IGZvdW5kIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVjdCBHcmFwaCJdID0gIk9iamVjdCBH
cmFwaCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPYmplY3QgU3RvcmUiXSA9ICJPYmplY3QgU3RvcmUi
OwpAQCAtOTExLDcgKzkzNiw2IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlZGlyZWN0cyJdID0gIlJl
ZGlyZWN0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZlcmVuY2UgSXNzdWUiXSA9ICJSZWZlcmVu
Y2UgSXNzdWUiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmbGVjdGlvbiJdID0gIlJlZmxlY3Rpb24i
OwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCJdID0gIlJlZnJlc2giOwotbG9jYWxpemVkU3Ry
aW5nc1siUmVmcmVzaCBhbGwiXSA9ICJSZWZyZXNoIGFsbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJS
ZWZyZXNoIHdhdGNoIGV4cHJlc3Npb25zIl0gPSAiUmVmcmVzaCB3YXRjaCBleHByZXNzaW9ucyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWdpb24gYW5ub3VuY2VkIGluIGl0cyBlbnRpcmV0eS4iXSA9
ICJSZWdpb24gYW5ub3VuY2VkIGluIGl0cyBlbnRpcmV0eS4iOwogbG9jYWxpemVkU3RyaW5nc1si
UmVndWxhciBFeHByZXNzaW9uIl0gPSAiUmVndWxhciBFeHByZXNzaW9uIjsKQEAgLTk3OSw2ICsx
MDAzLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE5ldHdvcmsgVGFiIl0gPSAiUmV2
ZWFsIGluIE5ldHdvcmsgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBPcmlnaW5h
bCBSZXNvdXJjZSJdID0gIlJldmVhbCBpbiBPcmlnaW5hbCBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJSZXZlYWwgaW4gU291cmNlcyBUYWIiXSA9ICJSZXZlYWwgaW4gU291cmNlcyBUYWIi
OwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIFN0eWxlIFNoZWV0Il0gPSAiUmV2ZWFsIGlu
IFN0eWxlIFNoZWV0IjsKK2xvY2FsaXplZFN0cmluZ3NbIlJldmVyc2UiXSA9ICJSZXZlcnNlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlJvbGUiXSA9ICJSb2xlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJ1
biAlZCJdID0gIlJ1biAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSdW4gY29uc29sZSBjb21tYW5k
cyBhcyBpZiBpbnNpZGUgYSB1c2VyIGdlc3R1cmUiXSA9ICJSdW4gY29uc29sZSBjb21tYW5kcyBh
cyBpZiBpbnNpZGUgYSB1c2VyIGdlc3R1cmUiOwpAQCAtMTAyMSw2ICsxMDQ2LDcgQEAgbG9jYWxp
emVkU3RyaW5nc1siU2VjdXJpdHkgT3JpZ2luIl0gPSAiU2VjdXJpdHkgT3JpZ2luIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlNlbGVjdCBiYXNlbGluZSBzbmFwc2hvdCJdID0gIlNlbGVjdCBiYXNlbGlu
ZSBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3QgY29tcGFyaXNvbiBzbmFwc2hv
dCJdID0gIlNlbGVjdCBjb21wYXJpc29uIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNl
bGVjdGVkIl0gPSAiU2VsZWN0ZWQiOworbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgQW5pbWF0
aW9uIl0gPSAiU2VsZWN0ZWQgQW5pbWF0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVk
IENhbnZhcyBDb250ZXh0Il0gPSAiU2VsZWN0ZWQgQ2FudmFzIENvbnRleHQiOwogLyogU2VsZWN0
ZWQgRE9NIGVsZW1lbnQgKi8KIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIEVsZW1lbnQiXSA9
ICJTZWxlY3RlZCBFbGVtZW50IjsKQEAgLTExMDQsNiArMTEzMCw4IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIlNwZWxsaW5nIl0gPSAiU3BlbGxpbmciOwogbG9jYWxpemVkU3RyaW5nc1siU3RhZ2luZzoi
XSA9ICJTdGFnaW5nOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFsbGVkIl0gPSAiU3RhbGxlZCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCJdID0gIlN0YXJ0IjsKK2xvY2FsaXplZFN0cmluZ3Nb
IlN0YXJ0IERlbGF5Il0gPSAiU3RhcnQgRGVsYXkiOworbG9jYWxpemVkU3RyaW5nc1siU3RhcnQg
RGVsYXkgJXMiXSA9ICJTdGFydCBEZWxheSAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBU
aW1lIl0gPSAiU3RhcnQgVGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBlbGVtZW50IHNl
bGVjdGlvbiAoJXMpIl0gPSAiU3RhcnQgZWxlbWVudCBzZWxlY3Rpb24gKCVzKSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJTdGFydCByZWNvcmRpbmcgKCVzKVxuQ3JlYXRlIG5ldyByZWNvcmRpbmcgKCVz
KSJdID0gIlN0YXJ0IHJlY29yZGluZyAoJXMpXG5DcmVhdGUgbmV3IHJlY29yZGluZyAoJXMpIjsK
QEAgLTExNzYsNiArMTIwNCw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlRoZXNlIHRlc3RzIHNlcnZl
IGFzIGEgZGVtb25zdHJhdGlvbiBvZiB0aGUgZnVuY3Rpb25hbGl0eSBhbmQKIGxvY2FsaXplZFN0
cmluZ3NbIlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUi
XSA9ICJUaGlzIFJlc291cmNlIGNhbWUgZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYWN0aW9uIGNhdXNlcyBubyB2aXN1YWwgY2hhbmdlIl0g
PSAiVGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiOwogbG9jYWxpemVkU3RyaW5n
c1siVGhpcyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIl0g
PSAiVGhpcyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIjsK
K2xvY2FsaXplZFN0cmluZ3NbIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iXSA9ICJU
aGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIjsKK2xvY2FsaXplZFN0cmluZ3NbIlRoaXMg
YW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIl0gPSAiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtl
eWZyYW1lcy4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVk
Il0gPSAiVGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRo
aXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiJdID0g
IlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGVycm9ycyBhcmUg
c2hvd24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBidXQgZXhlY3V0aW9uIGVycm9y
cyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIl0gPSAiVGhpcyBpcyBhbiBleGFtcGxlIG9m
IGhvdyBlcnJvcnMgYXJlIHNob3duLiBUaGUgZXJyb3Igd2FzIHRocm93biBtYW51YWxseSwgYnV0
IGV4ZWN1dGlvbiBlcnJvcnMgd2lsbCBhcHBlYXIgaW4gdGhlIHNhbWUgd2F5LiI7CkBAIC0xMjg4
LDEyICsxMzE4LDE3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgU2hhZGVyIl0gPSAiVmlldyBT
aGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siVmlld3BvcnQiXSA9ICJWaWV3cG9ydCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJWaXNpYmxlIl0gPSAiVmlzaWJsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJX
YWl0aW5nIl0gPSAiV2FpdGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBhbmlt
YXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRl
ZCBieSBDU1MuIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3Jl
YXRlZCBieSBKYXZhU2NyaXB0LiJdID0gIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBi
eSBKYXZhU2NyaXB0LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBjYW52YXMgY29u
dGV4dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGNhbnZhcyBj
b250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldh
aXRpbmcgZm9yIGZyYW1lc1x1MjAyNiJdID0gIldhaXRpbmcgZm9yIGZyYW1lc1x1MjAyNiI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4i
XSA9ICJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iOwogbG9jYWxpemVk
U3RyaW5nc1siV2FybmluZzogIl0gPSAiV2FybmluZzogIjsKIGxvY2FsaXplZFN0cmluZ3NbIldh
cm5pbmdzIl0gPSAiV2FybmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siV2F0Y2ggRXhwcmVzc2lv
bnMiXSA9ICJXYXRjaCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRlcmZhbGwi
XSA9ICJXYXRlcmZhbGwiOworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiJdID0gIldl
YiBBbmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbnMiXSA9ICJXZWIg
QW5pbWF0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgSW5zcGVjdG9yIl0gPSAiV2ViIElu
c3BlY3RvciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgUGFnZSJdID0gIldlYiBQYWdlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIldlYktpdCBUaHJlYWRzIl0gPSAiV2ViS2l0IFRocmVhZHMiOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4
IDljNDkyYWZiMmJmNmNjOWNmZmNjNTY2MWEyYTk3OWI1MTQzM2E1NDEuLjc1OTU5OTQ3NjMwZjhk
ZGU5NjMwYzI0YmRjYzRmMWMzMWRlNDQ0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTEyMyw2ICsxMjMsNyBAQCBXSS5sb2Fk
ZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLndvcmtlck1hbmFnZXIgPSBuZXcgV0kuV29ya2Vy
TWFuYWdlciwKICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRPTURlYnVn
Z2VyTWFuYWdlciwKICAgICAgICAgV0kuY2FudmFzTWFuYWdlciA9IG5ldyBXSS5DYW52YXNNYW5h
Z2VyLAorICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyID0gbmV3IFdJLkFuaW1hdGlvbk1hbmFn
ZXIsCiAgICAgXTsKIAogICAgIC8vIFJlZ2lzdGVyIGZvciBldmVudHMuCkBAIC0xNDcsNyArMTQ4
LDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVu
dFZpZXcuVHlwZSwKICAgICAgICAgV0kuVGltZWxpbmVUYWJDb250ZW50Vmlldy5UeXBlLAogICAg
ICAgICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcuVHlwZSwKLSAgICAgICAgV0kuQ2FudmFzVGFi
Q29udGVudFZpZXcuVHlwZSwKKyAgICAgICAgV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBl
LAogICAgICAgICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLkNvbnNv
bGVUYWJDb250ZW50Vmlldy5UeXBlLAogICAgIF0pOwpAQCAtMTczLDYgKzE3NCwxMyBAQCBXSS5s
b2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRp
bmcudmFsdWUgPSBzb3VyY2VzSW5kZXg7CiAgICAgfQogCisgICAgLy8gQ2FudmFzIFRhYiB3YXMg
cmVuYW1lZCB0byBHcmFwaGljcyBUYWIuCisgICAgbGV0IGNhbnZhc0luZGV4ID0gV0kuX29wZW5U
YWJzU2V0dGluZy52YWx1ZS5pbmRleE9mKCJjYW52YXMiKTsKKyAgICBpZiAoY2FudmFzSW5kZXgg
Pj0gMCkgeworICAgICAgICBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLnNwbGljZShjYW52YXNJ
bmRleCwgMSwgV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlKTsKKyAgICAgICAgV0kuX29w
ZW5UYWJzU2V0dGluZy5zYXZlKCk7CisgICAgfQorCiAgICAgLy8gU3RhdGUuCiAgICAgV0kucHJp
bnRTdHlsZXNFbmFibGVkID0gZmFsc2U7CiAgICAgV0kuc2V0Wm9vbUZhY3RvcihXSS5zZXR0aW5n
cy56b29tRmFjdG9yLnZhbHVlKTsKQEAgLTQ2NSw3ICs0NzMsNyBAQCBXSS5jb250ZW50TG9hZGVk
ID0gZnVuY3Rpb24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVudFZpZXcsCiAgICAgICAg
IFdJLlRpbWVsaW5lVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50
VmlldywKLSAgICAgICAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcsCisgICAgICAgIFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3LAogICAg
ICAgICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5Db25zb2xlVGFiQ29udGVu
dFZpZXcsCkBAIC0xMjIyLDExICsxMjMwLDggQEAgV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJl
cHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgICAgIHx8
IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAg
ICAgICByZXR1cm4gV0kuQXVkaXRUYWJDb250ZW50VmlldzsKIAotICAgIGlmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgIHJldHVybiBX
SS5DYW52YXNUYWJDb250ZW50VmlldzsKLQotICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLlJlY29yZGluZykKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRW
aWV3OworICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcyB8fCBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0gfHwgcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5BbmltYXRpb24pCisgICAgICAgIHJldHVybiBXSS5HcmFwaGljc1RhYkNvbnRl
bnRWaWV3OwogCiAgICAgcmV0dXJuIG51bGw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlv
bk1hbmFnZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E0NjZhOWEyYzJkMjMyZjhkMGIzMzQ1ZDU5YTBjZDRk
MjY3N2NmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMKQEAgLTAsMCArMSwxNTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisvLyBGSVhNRTogQW5pbWF0aW9uTWFuYWdlciBsYWNrcyBhZHZhbmNlZCBt
dWx0aS10YXJnZXQgc3VwcG9ydC4gKEFuaW1hdGlvbnMgcGVyLXRhcmdldCkKKworV0kuQW5pbWF0
aW9uTWFuYWdlciA9IGNsYXNzIEFuaW1hdGlvbk1hbmFnZXIKK3sKKyAgICBjb25zdHJ1Y3Rvcigp
CisgICAgeworICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2Fu
aW1hdGlvbkNvbGxlY3Rpb24gPSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbjsKKyAgICAgICAg
dGhpcy5fYW5pbWF0aW9uSWRNYXAgPSBuZXcgTWFwOworCisgICAgICAgIFdJLkZyYW1lLmFkZEV2
ZW50TGlzdGVuZXIoV0kuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9o
YW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMpOworICAgIH0KKworICAgIC8vIEFnZW50
CisKKyAgICBnZXQgZG9tYWlucygpIHsgcmV0dXJuIFsiQW5pbWF0aW9uIl07IH0KKworICAgIGFj
dGl2YXRlRXh0cmFEb21haW4oZG9tYWluKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
ZG9tYWluID09PSAiQW5pbWF0aW9uIik7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJ
LnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUYXJnZXQodGFyZ2V0KTsKKyAg
ICB9CisKKyAgICAvLyBUYXJnZXQKKworICAgIGluaXRpYWxpemVUYXJnZXQodGFyZ2V0KQorICAg
IHsKKyAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmVuYWJsZSBkaWQg
bm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24u
ZW5hYmxlIikpCisgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQuZW5hYmxlKCk7Cisg
ICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uQ29sbGVjdGlvbigpIHsg
cmV0dXJuIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb247IH0KKworICAgIGdldCBzdXBwb3J0ZWQo
KQorICAgIHsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24u
ZW5hYmxlIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2Vu
ZC5oYXNDb21tYW5kKCJBbmltYXRpb24uZW5hYmxlIik7CisgICAgfQorCisgICAgZW5hYmxlKCkK
KyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9lbmFibGVkKTsKKworICAgICAg
ICB0aGlzLl9lbmFibGVkID0gdHJ1ZTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0ku
dGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpOworICAg
IH0KKworICAgIGRpc2FibGUoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5f
ZW5hYmxlZCk7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpIHsKKyAg
ICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmRpc2FibGUg
ZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkFu
aW1hdGlvbi5kaXNhYmxlIikpCisgICAgICAgICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50
LmRpc2FibGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rp
b24uY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKworICAg
ICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9uT2Jz
ZXJ2ZXIKKworICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uUGF5bG9hZCkKKyAgICB7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9hbmltYXRpb25JZE1hcC5oYXMoYW5pbWF0aW9u
UGF5bG9hZC5hbmltYXRpb25JZCksIGBBbmltYXRpb24gYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAk
e2FuaW1hdGlvblBheWxvYWQuYW5pbWF0aW9uSWR9LmApOworCisgICAgICAgIGxldCBhbmltYXRp
b24gPSBXSS5BbmltYXRpb24uZnJvbVBheWxvYWQoYW5pbWF0aW9uUGF5bG9hZCk7CisgICAgICAg
IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uYWRkKGFuaW1hdGlvbik7CisgICAgICAgIHRoaXMu
X2FuaW1hdGlvbklkTWFwLnNldChhbmltYXRpb24uYW5pbWF0aW9uSWQsIGFuaW1hdGlvbik7Cisg
ICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAg
ICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLmdldChhbmltYXRpb25J
ZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5p
bWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1hdGlvbi5lZmZlY3RD
aGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCwg
ZWZmZWN0KQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklk
TWFwLmdldChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7
CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisgICAgYW5pbWF0aW9u
RGVzdHJveWVkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRo
aXMuX2FuaW1hdGlvbklkTWFwLnRha2UoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFz
c2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLnJlbW92ZShhbmltYXRp
b24pOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVNYWluUmVzb3VyY2VE
aWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChldmVudC50YXJn
ZXQgaW5zdGFuY2VvZiBXSS5GcmFtZSk7CisgICAgICAgIGlmICghZXZlbnQudGFyZ2V0LmlzTWFp
bkZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgV0kuQW5pbWF0aW9uLnJl
c2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9u
Q29sbGVjdGlvbi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5jbGVhcigp
OworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwppbmRleCAxMzVjMTY2
MTNhZTgwMDljMTZlMjcyMmY3MjU4NWM5N2U2OWRkMTE0Li5kYmI4ZTZmZTQ5NzMxZDUyMzFlMjgz
ZjY5ZmEyOTBmMzdiNmJiZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKQEAg
LTMyLDYgKzMyLDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0aGlzLl9lbmFibGVk
ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24gPSBuZXcgV0kuQ2FudmFz
Q29sbGVjdGlvbjsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcCA9IG5ldyBNYXA7
CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwID0gbmV3IE1hcDsKICAg
ICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzID0gbmV3IFNldDsKQEAgLTc2LDEzICs3Nyw5IEBA
IFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdldCBjYW52YXNDb2xsZWN0aW9uKCkgeyByZXR1cm4g
dGhpcy5fY2FudmFzQ29sbGVjdGlvbjsgfQogICAgIGdldCBzYXZlZFJlY29yZGluZ3MoKSB7IHJl
dHVybiB0aGlzLl9zYXZlZFJlY29yZGluZ3M7IH0KIAotICAgIGdldCBjYW52YXNlcygpCi0gICAg
ewotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnZh
bHVlcygpKTsKLSAgICB9Ci0KICAgICBnZXQgc2hhZGVyUHJvZ3JhbXMoKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAudmFs
dWVzKCkpOwpAQCAtMTMzLDYgKzEzMCw3IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52
YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgdGFyZ2V0LkNhbnZh
c0FnZW50LmRpc2FibGUoKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxl
Y3Rpb24uY2xlYXIoKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5jbGVhcigp
OwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAg
ICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MuY2xlYXIoKTsKQEAgLTE2MSw5ICsxNTksOCBAQCBX
SS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5oYXMoY2Fu
dmFzUGF5bG9hZC5jYW52YXNJZCksIGBDYW52YXMgYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke2Nh
bnZhc1BheWxvYWQuY2FudmFzSWR9LmApOwogCiAgICAgICAgIGxldCBjYW52YXMgPSBXSS5DYW52
YXMuZnJvbVBheWxvYWQoY2FudmFzUGF5bG9hZCk7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxl
Y3Rpb24uYWRkKGNhbnZhcyk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuc2V0
KGNhbnZhcy5pZGVudGlmaWVyLCBjYW52YXMpOwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIHtjYW52YXN9
KTsKICAgICB9CiAKICAgICBjYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZpZXIpCkBAIC0xNzMs
NyArMTcwLDE0IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICghY2FudmFzKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICB0aGlzLl9zYXZl
UmVjb3JkaW5ncyhjYW52YXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24ucmVt
b3ZlKGNhbnZhcyk7CisKKyAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVy
UHJvZ3JhbUNvbGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRp
Zmllck1hcC5kZWxldGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKKworICAgICAgICBjYW52YXMuc2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIoKTsKICAgICB9CiAKICAgICBjYW52YXNNZW1vcnlD
aGFuZ2VkKGNhbnZhc0lkZW50aWZpZXIsIG1lbW9yeUNvc3QpCkBAIC0yNzUsMjEgKzI3OSwxNCBA
QCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCisgICAgX3Nh
dmVSZWNvcmRpbmdzKGNhbnZhcykKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHByb2dyYW0gb2Yg
Y2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fc2hhZGVy
UHJvZ3JhbUlkZW50aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmllcik7Ci0KLSAgICAg
ICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmNsZWFyKCk7Ci0KICAgICAgICAgZm9y
IChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKSB7CiAgICAgICAg
ICAgICByZWNvcmRpbmcuc291cmNlID0gbnVsbDsKICAgICAgICAgICAgIHJlY29yZGluZy5jcmVh
dGVEaXNwbGF5TmFtZShyZWNvcmRpbmcuZGlzcGxheU5hbWUpOwogICAgICAgICAgICAgdGhpcy5f
c2F2ZWRSZWNvcmRpbmdzLmFkZChyZWNvcmRpbmcpOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwg
e3JlY29yZGluZ30pOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB7Y2FudmFzfSk7
CiAgICAgfQogCiAgICAgX21haW5SZXNvdXJjZURpZENoYW5nZShldmVudCkKQEAgLTMwMSwxNSAr
Mjk4LDE0IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgIFdJLkNhbnZhcy5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVy
cygpOwogCiAgICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiB0aGlzLl9jYW52YXNJZGVudGlmaWVy
TWFwLnZhbHVlcygpKQotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7Cisg
ICAgICAgICAgICB0aGlzLl9zYXZlUmVjb3JkaW5ncyhjYW52YXMpOwogCi0gICAgICAgIHRoaXMu
X3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2NhbnZh
c0NvbGxlY3Rpb24uY2xlYXIoKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5j
bGVhcigpOworICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigp
OwogICAgIH0KIH07CiAKIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQgPSB7Ci0gICAgQ2FudmFzQWRk
ZWQ6ICJjYW52YXMtbWFuYWdlci1jYW52YXMtd2FzLWFkZGVkIiwKLSAgICBDYW52YXNSZW1vdmVk
OiAiY2FudmFzLW1hbmFnZXItY2FudmFzLXdhcy1yZW1vdmVkIiwKICAgICBSZWNvcmRpbmdTYXZl
ZDogImNhbnZhcy1tYW5hZ2VyLXJlY29yZGluZy1zYXZlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1h
bmFnZXIuanMKaW5kZXggMWE4ZGY2OGJiYWRkOGRlOGJmZmIzODA3OTUyNjkyODdhM2EzMzI0Mi4u
NzE4NTU1OGFkM2UwZDk3OWJiMDAxZGI4ZTExMDNkYjgyYWE5ZTA1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9E
T01NYW5hZ2VyLmpzCkBAIC0zMjMsNyArMzIzLDcgQEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERP
TU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIG5vZGVGb3JJZChub2RlSWQpCiAgICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF0gfHwgbnVsbDsKICAgICB9CiAKICAgICBfZG9j
dW1lbnRVcGRhdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwppbmRleCA3
NjMzZGUxYmFlMGY0MTNmZTEyY2QxYzM2MzM4NGFlZjNmZDg0NjU5Li43Mjk2OTZmMDQxYzE2MmZm
OTdjZmIwOTI0OTdiYmQxNWFiZjlmZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5h
Z2VyLmpzCkBAIC03ODEsNyArNzgxLDcgQEAgV0kuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGlt
ZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIu
bm9kZUZvcklkKGV2ZW50Lm5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAgIGxldCBkb21Ob2Rl
ID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoZXZlbnQubm9kZUlkKTsKICAgICAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGRvbU5vZGUpOwogCiAgICAgICAgICAgICByZWNvcmQgPSBuZXcgV0kuTWVk
aWFUaW1lbGluZVJlY29yZChldmVudFR5cGUsIGRvbU5vZGUsIGRldGFpbHMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2Zwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJkNjU3ZDkzMjZhYWEwY2U2NGY2ZDdlZjAz
MWRmODE2YWYyY2ZlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2
ZworKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxyZWN0
IHg9IjEuNSIgeT0iMi41IiB3aWR0aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9r
ZT0iY3VycmVudENvbG9yIi8+Ci0gICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3IDMg
MTEgMyAxMiAxMyAxMiAxMyAxMSAxMSA4Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRiZDY1N2Q5MzI2YWFhMGNlNjRmNmQ3ZWYwMzFkZjgxNmFmMmNmZTgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhp
Y3Muc3ZnCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRm
LTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAtLT4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9v
dCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgorICAgIDxyZWN0IHg9IjEuNSIg
eT0iMi41IiB3aWR0aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVu
dENvbG9yIi8+CisgICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3IDMgMTEgMyAxMiAx
MyAxMiAxMyAxMSAxMSA4Ii8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBjODI2ZDUxZjkxNzdlZGU0ZDliOTU2Yjk3YzUxZDQ5
ODA2MGVlNzBjLi40NWUyMWNhZTVlZDQyZjU4ZDhmNGNhYmYyYTM0MzhiNjU3ZTE3MjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0zMCw2
ICszMCw5IEBACiAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkV4dGVybmFsL0Nv
ZGVNaXJyb3IvY29kZW1pcnJvci5jc3MiPgogCisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJWaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIj4KKyAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcyI+
CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdFRlc3RDYXNlQ29u
dGVudFZpZXcuY3NzIj4KQEAgLTU2LDcgKzU5LDYgQEAKICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IlZpZXdzL0NhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcu
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1NpZGVi
YXJQYW5lbC5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2Fu
dmFzVGFiQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IlZpZXdzL0NoYW5nZXNEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGFydERldGFpbHNTZWN0aW9uUm93LmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGVja2JveE5hdmlnYXRpb25JdGVt
LmNzcyI+CkBAIC0xMTMsNiArMTE1LDggQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0dvVG9MaW5lRGlhbG9nLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9HcmFkaWVudEVkaXRvci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvR3JhZGllbnRTbGlkZXIuY3NzIj4KKyAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MiPgor
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcEFs
bG9jYXRpb25zVGltZWxpbmVPdmVydmlld0dyYXBoLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuY3NzIj4KICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBTbmFwc2hvdEluc3RhbmNl
c0NvbnRlbnRWaWV3LmNzcyI+CkBAIC0zNDgsNiArMzUyLDcgQEAKICAgICA8c2NyaXB0IHNyYz0i
UHJvdG9jb2wvVGltZWxpbmVPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlByb3RvY29sL1dvcmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9CcmVha3BvaW50QWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0NvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0lu
c3RydW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtMzYxLDYgKzM2Niw4IEBACiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
TG9jYWxTY3JpcHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Bbmlt
YXRpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29s
bGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlv
bkNhY2hlRnJhbWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGlj
YXRpb25DYWNoZU1hbmlmZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0JhY2tGb3J3YXJkRW50cnkuanMiPjwvc2NyaXB0PgpAQCAtMzgwLDcgKzM4Nyw2IEBACiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0PgpAQCAtNTY2LDkgKzU3Miw5
IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3Njcmlw
dD4KIAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db25zb2xlVGFiQ29udGVudFZpZXcuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xheWVyc1RhYkNvbnRl
bnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVzb3VyY2VUcmVl
RWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NjcmlwdFRyZWVF
bGVtZW50LmpzIj48L3NjcmlwdD4KQEAgLTU5NCw2ICs2MDAsOSBAQAogCiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvblRvb2xiYXJJdGVtLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZp
ZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGlj
YXRpb25DYWNoZURldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50
LmpzIj48L3NjcmlwdD4KQEAgLTY5Miw2ICs3MDEsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9Hb1RvTGluZURpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dy
YWRpZW50RWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGll
bnRTbGlkZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9I
ZWFwQWxsb2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlUGF0aENv
bXBvbmVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcyI+PC9zY3JpcHQ+CkBAIC04NTYsNiArODY2LDcg
QEAKICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVy
LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BbmltYXRpb25N
YW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRN
YW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9s
bGVycy9CYXNpY0Jsb2NrQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM1YTI3YjgyNGYxYWY2NzllYjcyYzg0NDU4OWQ4Mjk2ODE3Yjc0YTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5p
bWF0aW9uLmpzCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uID0g
Y2xhc3MgQW5pbWF0aW9uIGV4dGVuZHMgV0kuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoYW5p
bWF0aW9uSWQsIHtjc3NBbmltYXRpb25OYW1lLCBjc3NUcmFuc2l0aW9uUHJvcGVydHksIGVmZmVj
dCwgYmFja3RyYWNlfSA9IHt9KQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICBj
b25zb2xlLmFzc2VydChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghY3Nz
QW5pbWF0aW9uTmFtZSAmJiAhY3NzVHJhbnNpdGlvblByb3BlcnR5KSB8fCAhIWNzc0FuaW1hdGlv
bk5hbWUgIT09ICEhY3NzVHJhbnNpdGlvblByb3BlcnR5KTsKKworICAgICAgICB0aGlzLl9hbmlt
YXRpb25JZCA9IGFuaW1hdGlvbklkOworCisgICAgICAgIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUg
PSBjc3NBbmltYXRpb25OYW1lIHx8IG51bGw7CisgICAgICAgIHRoaXMuX2Nzc1RyYW5zaXRpb25Q
cm9wZXJ0eSA9IGNzc1RyYW5zaXRpb25Qcm9wZXJ0eSB8fCBudWxsOworICAgICAgICB0aGlzLl91
cGRhdGVFZmZlY3QoZWZmZWN0KTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlID0gYmFja3RyYWNl
IHx8IFtdOworCisgICAgICAgIHRoaXMuX3JlcXVlc3RUYXJnZXRQcm9taXNlID0gbnVsbDsKKyAg
ICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBmcm9tUGF5bG9hZChwYXlsb2FkKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb24ocGF5bG9hZC5hbmltYXRpb25J
ZCwgeworICAgICAgICAgICAgY3NzQW5pbWF0aW9uTmFtZTogcGF5bG9hZC5jc3NBbmltYXRpb25O
YW1lLAorICAgICAgICAgICAgY3NzVHJhbnNpdGlvblByb3BlcnR5OiBwYXlsb2FkLmNzc1RyYW5z
aXRpb25Qcm9wZXJ0eSwKKyAgICAgICAgICAgIGVmZmVjdDogcGF5bG9hZC5lZmZlY3QsCisgICAg
ICAgICAgICBiYWNrdHJhY2U6IEFycmF5LmlzQXJyYXkocGF5bG9hZC5iYWNrdHJhY2UpID8gcGF5
bG9hZC5iYWNrdHJhY2UubWFwKChpdGVtKSA9PiBXSS5DYWxsRnJhbWUuZnJvbVBheWxvYWQoV0ku
bWFpblRhcmdldCwgaXRlbSkpIDogW10sCisgICAgICAgIH0pOworICAgIH0KKworICAgIHN0YXRp
YyBkaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUoYW5pbWF0aW9uVHlwZSwgcGx1cmFsKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChhbmltYXRpb25UeXBlKSB7CisgICAgICAgIGNhc2UgV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJ
LlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb24i
KTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb246CisgICAgICAg
ICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25zIikgOiBXSS5V
SVN0cmluZygiQ1NTIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBl
LkNTU1RyYW5zaXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmco
IkNTUyBUcmFuc2l0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9uIik7CisgICAg
ICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gYW5pbWF0aW9u
IHR5cGUiLCBhbmltYXRpb25UeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisg
ICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24ocGxheWJhY2tEaXJlY3Rp
b24pCisgICAgeworICAgICAgICBzd2l0Y2ggKHBsYXliYWNrRGlyZWN0aW9uKSB7CisgICAgICAg
IGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLk5vcm1hbDoKKyAgICAgICAgICAg
IHJldHVybiBXSS5VSVN0cmluZygiTm9ybWFsIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9u
LlBsYXliYWNrRGlyZWN0aW9uLlJldmVyc2U6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIlJldmVyc2UiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rp
b24uQWx0ZXJuYXRlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBbHRlcm5hdGUi
KTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uQWx0ZXJuYXRl
UmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQWx0ZXJuYXRlIFJldmVy
c2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93
biBwbGF5YmFjayBkaXJlY3Rpb24iLCBwbGF5YmFja0RpcmVjdGlvbik7CisgICAgICAgIHJldHVy
biBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckZpbGxNb2RlKGZpbGxN
b2RlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWxsTW9kZSkgeworICAgICAgICBjYXNlIFdJ
LkFuaW1hdGlvbi5GaWxsTW9kZS5Ob25lOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5n
KCJOb25lIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkZvcndhcmRzOgor
ICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJGb3J3YXJkcyIpOworICAgICAgICBjYXNl
IFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5CYWNrd2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkJhY2t3YXJkcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9k
ZS5Cb3RoOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCb3RoIik7CisgICAgICAg
IGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkF1dG86CisgICAgICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkF1dG8iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZh
bHNlLCAiVW5rbm93biBmaWxsIG1vZGUiLCBmaWxsTW9kZSk7CisgICAgICAgIHJldHVybiBudWxs
OworICAgIH0KKworICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpCisg
ICAgeworICAgICAgICBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9
IDE7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uSWQoKSB7IHJl
dHVybiB0aGlzLl9hbmltYXRpb25JZDsgfQorICAgIGdldCBiYWNrdHJhY2UoKSB7IHJldHVybiB0
aGlzLl9iYWNrdHJhY2U7IH0KKworICAgIGdldCBhbmltYXRpb25UeXBlKCkKKyAgICB7CisgICAg
ICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0dXJuIFdJLkFu
aW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1RyYW5zaXRp
b25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFu
c2l0aW9uOworICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOwor
ICAgIH0KKworICAgIGdldCBzdGFydERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAic3Rh
cnREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnN0YXJ0RGVsYXkgOiBOYU47
CisgICAgfQorCisgICAgZ2V0IGVuZERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiZW5k
RGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5lbmREZWxheSA6IE5hTjsKKyAg
ICB9CisKKyAgICBnZXQgaXRlcmF0aW9uQ291bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJp
dGVyYXRpb25Db3VudCIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkNv
dW50IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25TdGFydCgpCisgICAgeworICAg
ICAgICByZXR1cm4gIml0ZXJhdGlvblN0YXJ0IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZl
Y3QuaXRlcmF0aW9uU3RhcnQgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvbkR1cmF0
aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uRHVyYXRpb24iIGluIHRoaXMu
X2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25EdXJhdGlvbiA6IE5hTjsKKyAgICB9CisK
KyAgICBnZXQgdGltaW5nRnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJ0aW1pbmdG
dW5jdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uIDog
bnVsbDsKKyAgICB9CisKKyAgICBnZXQgcGxheWJhY2tEaXJlY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuICJwbGF5YmFja0RpcmVjdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZm
ZWN0LnBsYXliYWNrRGlyZWN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQgZmlsbE1vZGUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuICJmaWxsTW9kZSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhp
cy5fZWZmZWN0LmZpbGxNb2RlIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQga2V5ZnJhbWVzKCkK
KyAgICB7CisgICAgICAgIHJldHVybiAia2V5ZnJhbWVzIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlz
Ll9lZmZlY3Qua2V5ZnJhbWVzIDogW107CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1Ry
YW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NUcmFuc2l0aW9u
UHJvcGVydHk7CisKKyAgICAgICAgaWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcikK
KyAgICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gV0kuQW5pbWF0aW9u
Ll9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIrKzsKKyAgICAgICAgcmV0dXJuIFdJLlVJU3Ry
aW5nKCJBbmltYXRpb24gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIp
OworICAgIH0KKworICAgIHJlcXVlc3RUYXJnZXQoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlz
Ll9yZXF1ZXN0VGFyZ2V0UHJvbWlzZSkgeworICAgICAgICAgICAgdGhpcy5fcmVxdWVzdFRhcmdl
dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAg
ICAgICAgV0kuZG9tTWFuYWdlci5lbnN1cmVEb2N1bWVudCgpOworCisgICAgICAgICAgICAgICAg
bGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworICAgICAgICAgICAgICAgIHRh
cmdldC5BbmltYXRpb25BZ2VudC5yZXF1ZXN0VGFyZ2V0KHRoaXMuX2FuaW1hdGlvbklkLCAoZXJy
b3IsIG5vZGVJZCkgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlKFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX3Jl
cXVlc3RUYXJnZXRQcm9taXNlOworICAgIH0KKworICAgIC8vIEFuaW1hdGlvbk1hbmFnZXIKKwor
ICAgIGVmZmVjdENoYW5nZWQoZWZmZWN0KQorICAgIHsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWZm
ZWN0KGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZCgpCisgICAgeworICAgICAg
ICB0aGlzLl9yZXF1ZXN0VGFyZ2V0UHJvbWlzZSA9IG51bGw7CisKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpOwor
ICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF91cGRhdGVFZmZlY3QoZWZmZWN0KQorICAg
IHsKKyAgICAgICAgdGhpcy5fZWZmZWN0ID0gZWZmZWN0IHx8IHt9OworCisgICAgICAgIGlmICh0
aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9lZmZlY3QudGlt
aW5nRnVuY3Rpb24gPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRoaXMuX2VmZmVjdC50aW1p
bmdGdW5jdGlvbik7CisKKyAgICAgICAgaWYgKHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAg
ICAgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsK
KyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuZWFzaW5nKQorICAgICAgICAgICAgICAgICAg
ICBrZXlmcmFtZS5lYXNpbmcgPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKGtleWZyYW1lLmVh
c2luZyk7CisKKyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpCisgICAgICAgICAg
ICAgICAgICAgIGtleWZyYW1lLnN0eWxlID0ga2V5ZnJhbWUuc3R5bGUucmVwbGFjZUFsbCgvO1xz
Ky9nLCAiO1xuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCk7
CisgICAgfQorfTsKKworV0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIg
PSAxOworCitXSS5BbmltYXRpb24uVHlwZSA9IHsKKyAgICBXZWJBbmltYXRpb246ICJ3ZWItYW5p
bWF0aW9uIiwKKyAgICBDU1NBbmltYXRpb246ICJjc3MtYW5pbWF0aW9uIiwKKyAgICBDU1NUcmFu
c2l0aW9uOiAiY3NzLXRyYW5zaXRpb24iLAorfTsKKworV0kuQW5pbWF0aW9uLlBsYXliYWNrRGly
ZWN0aW9uID0geworICAgIE5vcm1hbDogIm5vcm1hbCIsCisgICAgUmV2ZXJzZTogInJldmVyc2Ui
LAorICAgIEFsdGVybmF0ZTogImFsdGVybmF0ZSIsCisgICAgQWx0ZXJuYXRlUmV2ZXJzZTogImFs
dGVybmF0ZS1yZXZlcnNlIiwKK307CisKK1dJLkFuaW1hdGlvbi5GaWxsTW9kZSA9IHsKKyAgICBO
b25lOiAibm9uZSIsCisgICAgRm9yd2FyZHM6ICJmb3J3YXJkcyIsCisgICAgQmFja3dhcmRzOiAi
YmFja3dhcmRzIiwKKyAgICBCb3RoOiAiYm90aCIsCisgICAgQXV0bzogImF1dG8iLAorfTsKKwor
V0kuQW5pbWF0aW9uLkV2ZW50ID0geworICAgIEVmZmVjdENoYW5nZWQ6ICJhbmltYXRpb24tZWZm
ZWN0LWNoYW5nZWQiLAorICAgIFRhcmdldENoYW5nZWQ6ICJhbmltYXRpb24tdGFyZ2V0LWNoYW5n
ZWQiLAorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI3
NmFiNDBkNjk5ZDVkZWIyZTYwODFmODQ1NWIyMmU0MTM2NzlmZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xs
ZWN0aW9uLmpzCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29s
bGVjdGlvbiA9IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBXSS5Db2xsZWN0aW9u
Cit7CisgICAgY29uc3RydWN0b3IoYW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCFhbmltYXRpb25UeXBlIHx8IE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5
cGUpLmluY2x1ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAgICAgICBzdXBlcigpOworCisgICAg
ICAgIHRoaXMuX2FuaW1hdGlvblR5cGUgPSBhbmltYXRpb25UeXBlIHx8IG51bGw7CisKKyAgICAg
ICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKQorICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGVNYXAgPSBudWxsOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisg
ICAgZ2V0IGFuaW1hdGlvblR5cGUoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25UeXBlOyB9CisK
KyAgICBnZXQgZGlzcGxheU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlv
blR5cGUpIHsKKyAgICAgICAgICAgIGNvbnN0IHBsdXJhbCA9IHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yVHlwZSh0aGlzLl9hbmltYXRpb25UeXBl
LCBwbHVyYWwpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJXZWIg
QW5pbWF0aW9ucyIpOworICAgIH0KKworICAgIG9iamVjdElzUmVxdWlyZWRUeXBlKG9iamVjdCkK
KyAgICB7CisgICAgICAgIGlmICghKG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICF0aGlzLl9hbmltYXRp
b25UeXBlIHx8IG9iamVjdC5hbmltYXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlOwor
ICAgIH0KKworICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGFuaW1hdGlvblR5cGUpCisg
ICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFdJLkFuaW1hdGlvbi5U
eXBlKS5pbmNsdWRlcyhhbmltYXRpb25UeXBlKSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1h
dGlvblR5cGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvblR5cGUgPT09
IHRoaXMuX2FuaW1hdGlvblR5cGUpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKQor
ICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAgPSBuZXcgTWFw
OworCisgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuX2FuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLmdldChhbmltYXRpb25UeXBlKTsKKyAgICAgICAgaWYg
KCFhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSkgeworICAgICAgICAgICAgYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUgPSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbihhbmltYXRpb25UeXBl
KTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnNldChh
bmltYXRpb25UeXBlLCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlOworICAgIH0KKworICAgIC8v
IFByb3RlY3RlZAorCisgICAgaXRlbUFkZGVkKGl0ZW0pCisgICAgeworICAgICAgICBzdXBlci5p
dGVtQWRkZWQoaXRlbSk7CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7Cisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZS5hZGQoaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpdGVtUmVtb3ZlZChpdGVtKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25U
eXBlKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlz
LmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAg
ICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZS5yZW1vdmUoaXRlbSk7CisgICAgICAgIH0K
KworICAgICAgICBzdXBlci5pdGVtUmVtb3ZlZChpdGVtKTsKKyAgICB9CisKKyAgICBpdGVtc0Ns
ZWFyZWQoaXRlbXMpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bkZvclR5cGVNYXApIHsKKyAgICAgICAgICAgIGZvciAobGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlIG9mIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnZhbHVlcygpKQor
ICAgICAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmNsZWFyKCk7CisgICAg
ICAgIH0KKworICAgICAgICBzdXBlci5pdGVtc0NsZWFyZWQoaXRlbXMpOworICAgIH0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVk
aXRUZXN0Q2FzZVJlc3VsdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCmluZGV4IGM5Y2MzOTYyZTgwZmI2NmZlMTVk
YTEzNTRlYTI5MjZiZjg0MWNkY2UuLjMxZDYyN2Q4MTFiZDYzMzJkYzQ4MDg1Zjk3ZGY1MDY0ZDIw
MTI3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCkBAIC0xNDYsNyArMTQ2
LDcgQEAgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCA9IGNsYXNzIEF1ZGl0VGVzdENhc2VSZXN1bHQg
ZXh0ZW5kcyBXSS5BdWRpdFRlc3RSZXN1bHRCYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQgPSBhd2FpdCBk
b2N1bWVudE5vZGUucXVlcnlTZWxlY3Rvcihkb21Ob2RlU3RyaW5nKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGNhdGNoIHsgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NhbnZhcy5qcwppbmRleCA2MmJhMjY0MTA1YWFlZGY0YmE1ZTJiZTM3NTVh
MmI1ZDM4YmNmYWQzLi44ZTJiNTJlMmMxZjExYTM2ZDY1ZGZjYTRlYzk1MGY2MDk4NTk2OTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2Fu
dmFzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
YW52YXMuanMKQEAgLTk3LDcgKzk3LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJE
OgogICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCIyRCIpOwogICAgICAgICBjYXNlIFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcjoKLSAgICAgICAgICAgIHJldHVybiBX
SS51bmxvY2FsaXplZFN0cmluZygiQml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgICAgICByZXR1
cm4gV0kuVUlTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIpOwogICAgICAgICBjYXNlIFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTDoKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0
cmluZygiV2ViR0wiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wy
OgpAQCAtMTA2LDkgKzEwNiwxMCBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViIEdQ
VSIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJNZXRhbDoKICAgICAg
ICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViTWV0YWwiKTsKLSAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgY2FudmFzIGNvbnRl
eHQgdHlwZSIsIGNvbnRleHRUeXBlKTsKICAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGZhbHNlLCAiVW5rbm93biBjYW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOwor
ICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKICAgICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNw
bGF5TmFtZU51bWJlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKaW5kZXggMWY4ZGQ3ZWY0NWQ2Mjk3NzhjZDgy
ODdiZmI4ZDMxYjJhMTA4OWYzMC4uYjZkZTk1MzU0MjJjOWM2M2FlMWFkMTRlOWRjNDdmZWFjNzY4
MDRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1JlY29yZGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCkBAIC0xNDgsNiArMTQ4LDIzIEBAIFdJLlJlY29yZGluZyA9
IGNsYXNzIFJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gbmV3IFdJ
LlJlY29yZGluZyhwYXlsb2FkLnZlcnNpb24sIHR5cGUsIHBheWxvYWQuaW5pdGlhbFN0YXRlLCBm
cmFtZXMsIHBheWxvYWQuZGF0YSk7CiAgICAgfQogCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9y
UmVjb3JkaW5nVHlwZShyZWNvcmRpbmdUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyZWNv
cmRpbmdUeXBlKSB7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQ6CisgICAg
ICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5n
LlR5cGUuQ2FudmFzQml0bWFwUmVuZGVyZXI6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIkJpdG1hcCBSZW5kZXJlciIpOworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZh
c1dlYkdMOgorICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIp
OworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMMjoKKyAgICAgICAgICAg
IHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wyIik7CisgICAgICAgIH0KKworICAg
ICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gcmVjb3JkaW5nIHR5cGUiLCByZWNv
cmRpbmdUeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCiAgICAgc3RhdGljIGRp
c3BsYXlOYW1lRm9yU3dpenpsZVR5cGUoc3dpenpsZVR5cGUpCiAgICAgewogICAgICAgICBzd2l0
Y2ggKHN3aXp6bGVUeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCmluZGV4
IGIxMTk1ZWQwY2EwY2IwY2E4MDY2OGUwZTk4ZGM2NzlkY2FkOTE3YTMuLjdlNTZlOGJiMzljYmEw
YzYyODBlYTljZWRkNDViZTU1NDVmMGYxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2Vy
dmVyLmpzCkBAIC0yNyw2ICsyNywyNiBAQCBXSS5BbmltYXRpb25PYnNlcnZlciA9IGNsYXNzIEFu
aW1hdGlvbk9ic2VydmVyIGV4dGVuZHMgSW5zcGVjdG9yQmFja2VuZC5EaXNwYXRjaAogewogICAg
IC8vIEV2ZW50cyBkZWZpbmVkIGJ5IHRoZSAiQW5pbWF0aW9uIiBkb21haW4uCiAKKyAgICBhbmlt
YXRpb25DcmVhdGVkKGFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFn
ZXIuYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5n
ZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFn
ZXIuZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJn
ZXRDaGFuZ2VkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdl
ci50YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkKTsKKyAgICB9CisKKyAgICBhbmltYXRpb25EZXN0
cm95ZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFu
aW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCk7CisgICAgfQorCiAgICAgdHJhY2tpbmdTdGFy
dCh0aW1lc3RhbXApCiAgICAgewogICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuYW5pbWF0aW9u
VHJhY2tpbmdTdGFydGVkKHRpbWVzdGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKaW5kZXgg
ZGQwMGFmNThjMTI1MzA1ODZlMWMyODMwMzJiNzJmZDYyOWZhMzJkOS4uMmNiYTU2NGQ0YTdiNmEz
OGMxODllNTczM2QzY2YzYzYwZmM1MTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwpAQCAt
MTg4LDYgKzE4OCwyNSBAQCBXSS5SZW1vdGVPYmplY3QgPSBjbGFzcyBSZW1vdGVPYmplY3QKICAg
ICAgICAgdGFyZ2V0LkNhbnZhc0FnZW50LnJlc29sdmVDb250ZXh0KGNhbnZhcy5pZGVudGlmaWVy
LCBvYmplY3RHcm91cCwgd3JhcENhbGxiYWNrKTsKICAgICB9CiAKKyAgICBzdGF0aWMgcmVzb2x2
ZUFuaW1hdGlvbihhbmltYXRpb24sIG9iamVjdEdyb3VwLCBjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIik7CisKKyAg
ICAgICAgZnVuY3Rpb24gd3JhcENhbGxiYWNrKGVycm9yLCBvYmplY3QpIHsKKyAgICAgICAgICAg
IGlmIChlcnJvciB8fCAhb2JqZWN0KQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdJLlJlbW90ZU9iamVj
dC5mcm9tUGF5bG9hZChvYmplY3QsIFdJLm1haW5UYXJnZXQpKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKworICAgICAgICAvLyBD
T01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGRpZCBu
b3QgZXhpc3QgeWV0LgorICAgICAgICBjb25zb2xlLmFzc2VydCh0YXJnZXQuaGFzQ29tbWFuZCgi
QW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGFyZ2V0LkFuaW1hdGlv
bkFnZW50LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91
cCwgd3JhcENhbGxiYWNrKTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0YXJn
ZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVz
dC5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmlu
ZGV4IDFkNDQ1YTA0Y2RlYmVlY2ZhN2IwY2IwOGVkNmZiYmQ0YmY0NjFlODQuLjBiYTU2MGI5NmMw
MjMwNmViNjFiMzJiZGY0ZWFjODk5MjNkYmYwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKQEAgLTEwOCw2ICsxMDgsNyBAQAogICAgIDxzY3Jp
cHQgc3JjPSJQcm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9Db25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9JbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1Nv
dXJjZUNvZGUuanMiPjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw4IEBACiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
TG9jYWxTY3JpcHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Bbmlt
YXRpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29s
bGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NQVUluc3RydW1lbnQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVVGltZWxpbmUuanMiPjwvc2Ny
aXB0PgpAQCAtMTM3LDcgKzE0MCw2IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5n
Q29udGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGlu
Z0NvbnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
YW52YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmll
dy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uVHlwZXMu
anMiPjwvc2NyaXB0PgpAQCAtMjM4LDYgKzI0MCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3hp
ZXMvSGVhcFNuYXBzaG90UHJveHkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm94
aWVzL0hlYXBTbmFwc2hvdFdvcmtlclByb3h5LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQg
c3JjPSJDb250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQ29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9CcmVha3BvaW50TG9nTWVzc2FnZUxleGVy
LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QvVGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QvVGVzdC5qcwppbmRleCAzYzQzYWU3OGJlMTcyNzcwNzI5YjcwMzJhYmU1NDQ0M2M5NDZh
OGJiLi4wMDY0NDdhOTY3ZTljMjM3ZjYwYzEwMDA4YmI0NjM0NTcyYjdjNDZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCkBAIC03MCw2
ICs3MCw3IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdl
ciA9IG5ldyBXSS5Xb3JrZXJNYW5hZ2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIg
PSBuZXcgV0kuRE9NRGVidWdnZXJNYW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0g
bmV3IFdJLkNhbnZhc01hbmFnZXIsCisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcg
V0kuQW5pbWF0aW9uTWFuYWdlciwKICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50
cy4KQEAgLTkxLDYgKzkyLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogV0kuY29udGVudExv
YWRlZCA9IGZ1bmN0aW9uKCkKIHsKICAgICAvLyBUaGluZ3MgdGhhdCB3b3VsZCBub3JtYWxseSBn
ZXQgY2FsbGVkIGJ5IHRoZSBVSSwgdGhhdCB3ZSBzdGlsbCB3YW50IHRvIGRvIGluIHRlc3RzLgor
ICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuYXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKICAgICBX
SS5kYXRhYmFzZU1hbmFnZXIuZW5hYmxlKCk7CkBAIC0xODEsNiArMTgzLDcgQEAgV0kudXBkYXRl
VmlzaWJpbGl0eVN0YXRlID0gKCkgPT4ge307CiAgICAgICAgICAgICBnZXQoKSB7IHJldHVybiBX
SS5tYWluVGFyZ2V0Ll9hZ2VudHNbZG9tYWluTmFtZV07IH0sCiAgICAgICAgIH0pOwogICAgIH0K
KyAgICBtYWtlQWdlbnRHZXR0ZXIoIkFuaW1hdGlvbiIpOwogICAgIG1ha2VBZ2VudEdldHRlcigi
QXVkaXQiKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIoIkFwcGxpY2F0aW9uQ2FjaGUiKTsKICAgICBt
YWtlQWdlbnRHZXR0ZXIoIkNQVVByb2ZpbGVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcwppbmRleCBkNDQ3Yjg5
NTBiOTM5MjFkMGE4NjAxMzA2OGE4YjM0ODJiNTMxOGRjLi5kMmU5OWFmMWI2ZTg1MTA3ZGZkNjZk
NDFhMzEzYTY0ZWFlNzAwZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMKQEAgLTEzMSw2ICsxMzEsNDYgQEAg
VGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlLCAhYWN0dWFs
LCBtZXNzYWdlLCBhY3R1YWwpOwogICAgIH0KIAorICAgIGV4cGVjdEVtcHR5KGFjdHVhbCwgbWVz
c2FnZSkKKyAgICB7CisgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgdHlwZW9m
IGFjdHVhbCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFy
bmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksICFhY3R1YWwubGVuZ3RoLCBtZXNzYWdlLCBhY3R1
YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdHVh
bCBpbnN0YW5jZW9mIFNldCB8fCBhY3R1YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAg
IHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksICFhY3R1YWwu
c2l6ZSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAib2JqZWN0IikgeworICAgICAgICAgICAg
dGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgaXNFbXB0eU9i
amVjdChhY3R1YWwpLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgdGhpcy5mYWlsKCJleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNh
bGxlZCB3aXRoIGEgbm9uLW9iamVjdDpcbiAgICBBY3R1YWw6ICIgKyB0aGlzLl9leHBlY3RhdGlv
blZhbHVlQXNTdHJpbmcoYWN0dWFsKSk7CisgICAgfQorCisgICAgZXhwZWN0Tm90RW1wdHkoYWN0
dWFsLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8
fCB0eXBlb2YgYWN0dWFsID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0
KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwubGVuZ3RoLCBt
ZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGFjdHVhbCBpbnN0YW5jZW9mIFNldCB8fCBhY3R1YWwgaW5zdGFuY2VvZiBNYXApIHsK
KyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90
RW1wdHksICEhYWN0dWFsLnNpemUsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0gIm9iamVjdCIp
IHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUu
Tm90RW1wdHksICFpc0VtcHR5T2JqZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmZhaWwoImV4cGVjdE5v
dEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAgIEFjdHVh
bDogIiArIHRoaXMuX2V4cGVjdGF0aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAgICB9CisK
ICAgICBleHBlY3ROdWxsKGFjdHVhbCwgbWVzc2FnZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2V4
cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTnVsbCwgYWN0dWFsID09PSBudWxsLCBt
ZXNzYWdlLCBhY3R1YWwsIG51bGwpOwpAQCAtMzgxLDYgKzQyMSwxMCBAQCBUZXN0SGFybmVzcyA9
IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4g
ImV4cGVjdFRoYXQoJXMpIjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5
cGUuRmFsc2U6CiAgICAgICAgICAgICByZXR1cm4gImV4cGVjdEZhbHNlKCVzKSI7CisgICAgICAg
IGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5OgorICAgICAgICAgICAgcmV0
dXJuICJleHBlY3RFbXB0eSglcykiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0
aW9uVHlwZS5Ob3RFbXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZXhwZWN0Tm90RW1wdHkoJXMp
IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTnVsbDoKICAgICAg
ICAgICAgIHJldHVybiAiZXhwZWN0TnVsbCglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNz
LkV4cGVjdGF0aW9uVHlwZS5Ob3ROdWxsOgpAQCAtNDE2LDYgKzQ2MCwxMCBAQCBUZXN0SGFybmVz
cyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1
cm4gInRydXRoeSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZh
bHNlOgogICAgICAgICAgICAgcmV0dXJuICJmYWxzZXkiOworICAgICAgICBjYXNlIFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZW1wdHkiOwor
ICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eToKKyAgICAg
ICAgICAgIHJldHVybiAibm90IGVtcHR5IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBl
Y3RhdGlvblR5cGUuTm90TnVsbDoKICAgICAgICAgICAgIHJldHVybiAibm90IG51bGwiOwogICAg
ICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFcXVhbDoKQEAgLTQ0MCw2
ICs0ODgsOCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2Jq
ZWN0CiBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUgPSB7CiAgICAgVHJ1ZTogU3ltYm9sKCJl
eHBlY3QtdHJ1ZSIpLAogICAgIEZhbHNlOiBTeW1ib2woImV4cGVjdC1mYWxzZSIpLAorICAgIEVt
cHR5OiBTeW1ib2woImV4cGVjdC1lbXB0eSIpLAorICAgIE5vdEVtcHR5OiBTeW1ib2woImV4cGVj
dC1ub3QtZW1wdHkiKSwKICAgICBOdWxsOiBTeW1ib2woImV4cGVjdC1udWxsIiksCiAgICAgTm90
TnVsbDogU3ltYm9sKCJleHBlY3Qtbm90LW51bGwiKSwKICAgICBFcXVhbDogU3ltYm9sKCJleHBl
Y3QtZXF1YWwiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0NWM2YTc3NTRlN2EyNzNiOTZjYzkwOWQ2MTBhNDI2Y2Vi
YzA1YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEs
MjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisuY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uIHsK
KyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgcGFkZGluZzogNHB4OworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMx
MGNkNzRiOTVjOTZhZmJmZWI2ZTA5ZGU3OGY3NTlkZDgzNzFlMmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5B
bmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcKK3sKKyAgICBjb25z
dHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbik7CisK
KyAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworCisgICAgICAgIGxldCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBjb250ZW50UGxhY2Vo
b2xkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAg
ICBkZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gImRlc2NyaXB0aW9uIjsKKworICAgICAg
ICBzd2l0Y2ggKHJlcHJlc2VudGVkT2JqZWN0LmFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgY2Fz
ZSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlv
bkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9u
cyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBhbmlt
YXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
Y2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uOgorICAgICAgICAgICAgZGVzY3Jp
cHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIHRyYW5z
aXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgY29uc29sZS5hc3NlcnQoZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50KTsK
KworICAgICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVjdCwgV0kuQW5pbWF0aW9uQ29udGVudFZp
ZXcsIGNvbnRlbnRQbGFjZWhvbGRlcik7CisKKyAgICAgICAgdGhpcy5zZWxlY3Rpb25FbmFibGVk
ID0gdHJ1ZTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW9u
LWNvbGxlY3Rpb24iKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRsZVJlZnJl
c2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhp
cy5zdWJ2aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5Bbmlt
YXRpb25Db250ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hC
dXR0b25DbGlja2VkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKwor
ICAgIGNvbnRlbnRWaWV3QWRkZWQoY29udGVudFZpZXcpCisgICAgeworICAgICAgICBjb250ZW50
Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5kbGVD
b250ZW50Vmlld01vdXNlRW50ZXIpOworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVh
dmUpOworICAgIH0KKworICAgIGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKKyAgICB7
CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vl
bnRlciIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAgIGNvbnRl
bnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2hh
bmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAg
IHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAg
ICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hh
bmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcihldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb250
ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgaWYg
KCEoY29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGNvbnRlbnRWaWV3LnJl
cHJlc2VudGVkT2JqZWN0OworICAgICAgICBhbmltYXRpb24ucmVxdWVzdFRhcmdldCgpLnRoZW4o
KG5vZGUpID0+IHsKKyAgICAgICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5vd25lckRvY3VtZW50
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG5vZGUuaGlnaGxpZ2h0KCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUo
ZXZlbnQpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0
KCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNTg4OTBmNWNjZDY0YWNiZjYyZDlhYjkxMGNiZWI4NzhjZGY2MjgwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRl
bnQtdmlldy5hbmltYXRpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDog
MTAwJTsKKyAgICBtYXJnaW46IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNr
Z3JvdW5kLWNvbG9yLWNvbnRlbnQpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRl
ci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkIHsKKyAgICBv
dXRsaW5lOiBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKK30KKworLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiBoZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRl
bXM6IGNlbnRlcjsKKyAgICBoZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7Cisg
ICAgcGFkZGluZzogMCA2cHg7CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisuY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgeworICAgIHdoaXRlLXNwYWNlOiBub3dy
YXA7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50
aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKK30KKworLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAg
ICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5KTo6
YmVmb3JlIHsKKyAgICBjb250ZW50OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7Jm1kYXNo
OyZuYnNwOyAqLzsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2
aWdhdGlvbi1iYXIgeworICAgIGJvcmRlcjogbm9uZTsKKyAgICBvcGFjaXR5OiAwOworfQorCisu
Y29udGVudC12aWV3LmFuaW1hdGlvbjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7
CisgICAgb3BhY2l0eTogMTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAg
ICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwg
OTYlKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyB7Cisg
ICAgd2lkdGg6IDEwMCU7Cit9CisKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHN2ZyB7CisgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOworfQorCisu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QgeworICAgIGZpbGw6
IHRyYW5zcGFyZW50OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnID4gLmRlbGF5IGxpbmUgeworICAgIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG9yKTsKKyAg
ICBzdHJva2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZp
ZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGggeworICAgIGZpbGw6IHZhcigtLWdseXBoLWNvbG9yLWFj
dGl2ZSk7CisgICAgZmlsbC1vcGFjaXR5OiAwLjU7CisgICAgc3Ryb2tlOiB2YXIoLS1nbHlwaC1j
b2xvci1hY3RpdmUpOworICAgIHN0cm9rZS13aWR0aDogMTsKK30KKworLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlIHsKKyAgICBmaWxsOiB2
YXIoLS10ZXh0LWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyA+IHN2ZyA+IC5hY3RpdmUgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS10ZXh0LWNvbG9yKTsK
KyAgICBzdHJva2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnBy
ZXZpZXcgPiBzcGFuIHsKKyAgICBwYWRkaW5nOiA0cHg7CisgICAgY29sb3I6IHZhcigtLXRleHQt
Y29sb3Itc2Vjb25kYXJ5KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFy
aykgeworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50
aXRsZSB7CisgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICB9CisKKyAgICAu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewor
ICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworICAgIH0KKworICAg
IC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBoc2woMCwgMCUsIDIwJSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250
ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWE5MGU0NDNlODQ3MjEyZDliNmMwMDRjMTMzNDA5MzMw
ZWU5ZjdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitXSS5BbmltYXRpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNl
bnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsKKworICAgICAgICBzdXBlcihyZXByZXNlbnRl
ZE9iamVjdCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IG51bGw7
CisgICAgICAgIHRoaXMuX2NhY2hlZFdpZHRoID0gTmFOOworCisgICAgICAgIHRoaXMuZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJhbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKwor
ICAgIHN0YXRpYyBnZXQgcHJldmlld0hlaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gNDA7
CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tl
ZCgpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAg
ICAvLyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3Vw
ZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKwor
ICAgICAgICBsZXQgdGl0bGVzQ29udGFpbmVyID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRpdGxlc0NvbnRhaW5lci5j
bGFzc05hbWUgPSAidGl0bGVzIjsKKworICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gdGl0bGVz
Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7Cisg
ICAgICAgIHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAidGl0bGUiOworICAgICAgICB0aXRsZUVs
ZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc3BsYXlOYW1lOwor
CisgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aGlzLl9zdWJ0
aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gInN1YnRpdGxlIjsKKworICAgICAgICBsZXQgbmF2aWdh
dGlvbkJhciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyOworCisgICAgICAgIGxldCBhbmltYXRpb25U
YXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgi
YW5pbWF0aW9uLXRhcmdldCIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24gVGFyZ2V0IiksICJJbWFn
ZXMvTWFya3VwLnN2ZyIsIDE2LCAxNik7CisgICAgICAgIGFuaW1hdGlvblRhcmdldEJ1dHRvbk5h
dmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2li
aWxpdHlQcmlvcml0eS5Mb3c7CisgICAgICAgIFdJLmFkZE1vdXNlRG93bkNvbnRleHRNZW51SGFu
ZGxlcnMoYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZWxlbWVudCwgdGhpcy5f
cG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudS5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgbmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbShhbmltYXRpb25UYXJnZXRCdXR0
b25OYXZpZ2F0aW9uSXRlbSk7CisKKyAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmQobmF2aWdh
dGlvbkJhci5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRpb25CYXIp
OworCisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aGlzLl9wcmV2
aWV3Q29udGFpbmVyLmNsYXNzTmFtZSA9ICJwcmV2aWV3IjsKKyAgICB9CisKKyAgICBsYXlvdXQo
KQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fcmVmcmVz
aFN1YnRpdGxlKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisg
ICAgc2l6ZURpZENoYW5nZSgpCisgICAgeworICAgICAgICBzdXBlci5zaXplRGlkQ2hhbmdlKCk7
CisKKyAgICAgICAgdGhpcy5fY2FjaGVkV2lkdGggPSB0aGlzLmVsZW1lbnQucmVhbE9mZnNldFdp
ZHRoOworICAgIH0KKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFj
aGVkKCk7CisKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVy
KFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFu
Z2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3Rl
bmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRD
aGFuZ2VkLCB0aGlzKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2
ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAg
ICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0
aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQsIHRoaXMp
OworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQor
CisgICAgX3JlZnJlc2hTdWJ0aXRsZSgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlcXVlc3RUYXJnZXQoKS50aGVuKChkb21Ob2RlKSA9PiB7CisgICAgICAgICAgICB0
aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlID0gZG9tTm9kZTsKKworICAgICAgICAgICAgdGhp
cy5fc3VidGl0bGVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICBpZiAoZG9t
Tm9kZSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQo
V0kubGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBfcmVmcmVzaFByZXZpZXcoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRh
aW5lci5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAgIGxldCBrZXlmcmFtZXMgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LmtleWZyYW1lczsKKyAgICAgICAgaWYgKCFrZXlmcmFtZXMubGVuZ3Ro
KSB7CisgICAgICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4u
dGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1l
cy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBzdGFy
dERlbGF5ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zdGFydERlbGF5IHx8IDA7CisgICAgICAg
IGxldCBpdGVyYXRpb25EdXJhdGlvbiA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaXRlcmF0aW9u
RHVyYXRpb24gfHwgMDsKKyAgICAgICAgbGV0IGVuZERlbGF5ID0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5lbmREZWxheSB8fCAwOworICAgICAgICBsZXQgdG90YWxEdXJhdGlvbiA9IHN0YXJ0RGVs
YXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIGVuZERlbGF5OworICAgICAgICBpZiAodG90YWxEdXJh
dGlvbiA9PT0gMCkgeworICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3Q29udGFp
bmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAg
ICAgICBzcGFuLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9uIGhhcyBu
byBkdXJhdGlvbi4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnN0IHByZXZpZXdIZWlnaHQgPSBXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcmV2aWV3SGVp
Z2h0OworCisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRSYWRpdXMgPSA0OworICAgICAgICBjb25z
dCBtYXJrZXJIZWFkUGFkZGluZyA9IDI7CisKKyAgICAgICAgLy8gU3F1ZWV6ZSB0aGUgZW50aXJl
IHByZXZpZXcgc28gdGhhdCBtYXJrZXJzIGFyZW4ndCBjdXQgb2ZmLgorICAgICAgICBjb25zdCBz
cXVlZXplWFN0YXJ0ID0gKGl0ZXJhdGlvbkR1cmF0aW9uICYmIHN0YXJ0RGVsYXkpID8gMCA6IG1h
cmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6
ZVhFbmQgPSAoaXRlcmF0aW9uRHVyYXRpb24gJiYgZW5kRGVsYXkpID8gMCA6IG1hcmtlckhlYWRS
YWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVlTdGFydCA9
IDg7CisKKyAgICAgICAgLy8gTW92ZSB0aGUgZWFzaW5nIGxpbmUgZG93biB0byBjdXQgb2ZmIHRo
ZSBib3R0b20gYm9yZGVyLgorICAgICAgICBjb25zdCBhZGp1c3RFYXNpbmdZID0gMC41OworCisg
ICAgICAgIGxldCBzZWNvbmRzUGVyUGl4ZWwgPSB0aGlzLl9jYWNoZWRXaWR0aCAvIHRvdGFsRHVy
YXRpb247CisKKyAgICAgICAgc3RhcnREZWxheSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisgICAgICAg
IGl0ZXJhdGlvbkR1cmF0aW9uID0gKGl0ZXJhdGlvbkR1cmF0aW9uICogc2Vjb25kc1BlclBpeGVs
KSAtIHNxdWVlemVYU3RhcnQgLSBzcXVlZXplWEVuZDsKKyAgICAgICAgZW5kRGVsYXkgKj0gc2Vj
b25kc1BlclBpeGVsOworCisgICAgICAgIGxldCBzdmcgPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInN2ZyIpKTsKKyAgICAgICAgc3ZnLnNldEF0
dHJpYnV0ZSgidmlld0JveCIsIGAwIDAgJHt0aGlzLl9jYWNoZWRXaWR0aH0gJHtwcmV2aWV3SGVp
Z2h0fWApOworCisgICAgICAgIGZ1bmN0aW9uIGFkZFRpdGxlKHBhcmVudCwgdGl0bGUpIHsKKyAg
ICAgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgidGl0bGUiKSk7CisgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQg
PSB0aXRsZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydERlbGF5KSB7CisgICAgICAg
ICAgICBsZXQgc3RhcnREZWxheUNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdF
bGVtZW50KCJnIikpOworICAgICAgICAgICAgc3RhcnREZWxheUNvbnRhaW5lci5jbGFzc0xpc3Qu
YWRkKCJkZWxheSIsICJzdGFydCIpOworCisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUxpbmUg
PSBzdGFydERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUi
KSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgKHByZXZp
ZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAgICAgc3RhcnREZWxheUxp
bmUuc2V0QXR0cmlidXRlKCJ4MiIsIHN0YXJ0RGVsYXkpOworICAgICAgICAgICAgc3RhcnREZWxh
eUxpbmUuc2V0QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkg
LyAyKTsKKworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlFbGVtZW50ID0gc3RhcnREZWxheUNv
bnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAg
ICAgc3RhcnREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkpOwor
ICAgICAgICAgICAgc3RhcnREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2
aWV3SGVpZ2h0KTsKKworICAgICAgICAgICAgYWRkVGl0bGUoc3RhcnREZWxheUVsZW1lbnQsIFdJ
LlVJU3RyaW5nKCJTdGFydCBEZWxheSAlcyIpLmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5n
KHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3RhcnREZWxheSAvIDEwMDApKSk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoZW5kRGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBlbmREZWxheUNvbnRh
aW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAg
ICAgZW5kRGVsYXlDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRl
KCR7c3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgc3F1ZWV6ZVhTdGFydH0sIDApYCk7
CisgICAgICAgICAgICBlbmREZWxheUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxheSIsICJl
bmQiKTsKKworICAgICAgICAgICAgbGV0IGVuZERlbGF5TGluZSA9IGVuZERlbGF5Q29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICBlbmRE
ZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFy
dCkgLyAyKTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngyIiwgZW5k
RGVsYXkpOworICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJl
dmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBlbmRE
ZWxheUVsZW1lbnQgPSBlbmREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVt
ZW50KCJyZWN0IikpOworICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgi
d2lkdGgiLCBzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheSk7CisgICAg
ICAgICAgICBlbmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2aWV3SGVp
Z2h0KTsKKworICAgICAgICAgICAgYWRkVGl0bGUoZW5kRGVsYXlFbGVtZW50LCBXSS5VSVN0cmlu
ZygiRW5kIERlbGF5ICVzIikuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5lbmREZWxheSAvIDEwMDApKSk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoaXRlcmF0aW9uRHVyYXRpb24pIHsKKyAgICAgICAgICAgIGxldCB0aW1pbmdGdW5jdGlvbiA9
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QudGltaW5nRnVuY3Rpb247CisKKyAgICAgICAgICAgIGxl
dCBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVt
ZW50KCJnIikpOworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25Db250YWluZXIuY2xhc3NMaXN0
LmFkZCgiYWN0aXZlIik7CisgICAgICAgICAgICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5zZXRB
dHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydERlbGF5ICsgc3F1ZWV6ZVhT
dGFydH0sICR7c3F1ZWV6ZVlTdGFydH0pYCk7CisKKyAgICAgICAgICAgIGNvbnN0IHN0YXJ0WSA9
IDA7CisgICAgICAgICAgICBjb25zdCBlbmRZID0gcHJldmlld0hlaWdodCAtIHNxdWVlemVZU3Rh
cnQ7CisgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBlbmRZIC0gc3RhcnRZOworCisgICAgICAg
ICAgICBmb3IgKGxldCBba2V5ZnJhbWVBLCBrZXlmcmFtZUJdIG9mIGtleWZyYW1lcy5hZGphY2Vu
Y2llcygpKSB7CisgICAgICAgICAgICAgICAgbGV0IHN0YXJ0WCA9IGl0ZXJhdGlvbkR1cmF0aW9u
ICoga2V5ZnJhbWVBLm9mZnNldDsKKyAgICAgICAgICAgICAgICBsZXQgZW5kWCA9IGl0ZXJhdGlv
bkR1cmF0aW9uICoga2V5ZnJhbWVCLm9mZnNldDsKKyAgICAgICAgICAgICAgICBsZXQgd2lkdGgg
PSBlbmRYIC0gc3RhcnRYOworCisgICAgICAgICAgICAgICAgbGV0IGVhc2luZyA9IGtleWZyYW1l
QS5lYXNpbmcgfHwgdGltaW5nRnVuY3Rpb247CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5n
Q29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdDb250YWluZXIuY2xhc3NMaXN0
LmFkZCgiZWFzaW5nIik7CisgICAgICAgICAgICAgICAgZWFzaW5nQ29udGFpbmVyLnNldEF0dHJp
YnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0WH0sICR7c3RhcnRZfSlgKTsKKwor
ICAgICAgICAgICAgICAgIGxldCB4MSA9IGVhc2luZy5pblBvaW50LnggKiB3aWR0aDsKKyAgICAg
ICAgICAgICAgICBsZXQgeTEgPSAoKDEgLSBlYXNpbmcuaW5Qb2ludC55KSAqIGhlaWdodCkgKyBh
ZGp1c3RFYXNpbmdZOworICAgICAgICAgICAgICAgIGxldCB4MiA9IGVhc2luZy5vdXRQb2ludC54
ICogd2lkdGg7CisgICAgICAgICAgICAgICAgbGV0IHkyID0gKCgxIC0gZWFzaW5nLm91dFBvaW50
LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7CisKKyAgICAgICAgICAgICAgICBsZXQgZWFz
aW5nUGF0aCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJw
YXRoIikpOworICAgICAgICAgICAgICAgIGVhc2luZ1BhdGguc2V0QXR0cmlidXRlKCJkIiwgYE0g
MCAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IEMgJHt4MX0gJHt5MX0gJHt4Mn0gJHt5Mn0gJHt3
aWR0aH0gJHthZGp1c3RFYXNpbmdZfSBWICR7aGVpZ2h0ICsgYWRqdXN0RWFzaW5nWX0gWmApOwor
CisgICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRD
aGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgICAgIHRpdGxlUmVj
dC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgd2lkdGgpOworICAgICAgICAgICAgICAgIHRpdGxlUmVj
dC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBhZGRU
aXRsZSh0aXRsZVJlY3QsIGVhc2luZy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2Yga2V5ZnJhbWVzKSB7CisgICAgICAgICAgICAg
ICAgbGV0IHggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lLm9mZnNldDsKKworICAgICAg
ICAgICAgICAgIGxldCBrZXlmcmFtZUNvbnRhaW5lciA9IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICAgICAga2V5
ZnJhbWVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgia2V5ZnJhbWUiKTsKKyAgICAgICAgICAgICAg
ICBrZXlmcmFtZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUo
JHt4fSwgJHtzdGFydFl9KWApOworCisgICAgICAgICAgICAgICAgbGV0IGtleWZyYW1lTWFya2Vy
SGVhZCA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImNp
cmNsZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtlckhlYWQuc2V0QXR0cmlidXRl
KCJyIiwgbWFya2VySGVhZFJhZGl1cyk7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVN
YXJrZXJMaW5lID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgibGluZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtlckxpbmUuc2V0QXR0cmli
dXRlKCJ5MSIsIGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGVSZWN0ID0ga2V5
ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAg
ICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ4IiwgLTEgKiAobWFya2VySGVh
ZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0
LnNldEF0dHJpYnV0ZSgieSIsIC0xICogc3F1ZWV6ZVlTdGFydCk7CisgICAgICAgICAgICAgICAg
dGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAobWFya2VySGVhZFJhZGl1cyArIG1hcmtl
ckhlYWRQYWRkaW5nKSAqIDIpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsIGhlaWdodCArIHNxdWVlemVZU3RhcnQpOworCisgICAgICAgICAgICAgICAg
YWRkVGl0bGUodGl0bGVSZWN0LCBrZXlmcmFtZS5zdHlsZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxlRWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgX2hhbmRsZVRhcmdl
dENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsK
KyAgICB9CisKKyAgICBfcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudShj
b250ZXh0TWVudSkKKyAgICB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlT
dHJpbmcoIkxvZyBBbmltYXRpb24iKSwgKCkgPT4geworICAgICAgICAgICAgV0kuUmVtb3RlT2Jq
ZWN0LnJlc29sdmVBbmltYXRpb24odGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1h
bmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CisgICAgICAgICAg
ICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBXSS5VSVN0cmluZygiU2VsZWN0ZWQgQW5pbWF0
aW9uIik7CisgICAgICAgICAgICAgICAgY29uc3QgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyA9IHRy
dWU7CisgICAgICAgICAgICAgICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZElt
bWVkaWF0ZUV4ZWN1dGlvbldpdGhSZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVjaWFs
VXNlckxvZ0NsYXNzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0
aW9uVGFyZ2V0RE9NTm9kZSkKKyAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNG
b3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKTsKKyAg
ICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNz
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMDRjYTMyNWI4YjE2NjZiYzU5Y2RmMDYwOTk0Y2VmZTIzODY0NjMzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQg
PiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmhlYWRlciA+IC5zdWJ0aXRs
ZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQorCisuc2lk
ZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2Vj
dGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24geworICAgIGJhY2tncm91
bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTsKK30KKworLnNpZGViYXIgPiAucGFuZWwuZGV0YWls
cy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZy
YW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIHsKKyAgICBkaXNwbGF5OiB0YWJsZS1y
b3c7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQg
PiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAu
cm93LnN0eWxlcyAuQ29kZU1pcnJvciB7CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHBhZGRpbmc6
IDRweCAwOworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworfQorCitAbWVkaWEg
KHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLnNpZGViYXIgPiAucGFuZWwuZGV0
YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtl
eWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDAsIDAlLCAxOCUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYzFhZTMwODQxNmI3ODE1MGY5MDI3ZWU3ODM3
MTg3NTcyYTk1NjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0wLDAg
KzEsMjUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCA9
IGNsYXNzIEFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5EZXRhaWxzU2lk
ZWJhclBhbmVsCit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIoImFu
aW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGhpcy5fYW5p
bWF0aW9uID0gbnVsbDsKKworICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcCA9IG5l
dyBNYXA7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBpbnNwZWN0KG9iamVjdHMpCisg
ICAgeworICAgICAgICBpZiAoIShvYmplY3RzIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICAg
ICAgb2JqZWN0cyA9IFtvYmplY3RzXTsKKworICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG9iamVj
dHMuZmluZCgob2JqZWN0KSA9PiBvYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOworCisg
ICAgICAgIHJldHVybiAhIXRoaXMuYW5pbWF0aW9uOworICAgIH0KKworICAgIGdldCBhbmltYXRp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbjsKKyAgICB9CisKKyAg
ICBzZXQgYW5pbWF0aW9uKGFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIGlmIChhbmltYXRpb24g
PT09IHRoaXMuX2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAo
dGhpcy5fYW5pbWF0aW9uKSB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxl
QW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRp
b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwg
dGhpcy5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKwor
ICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBhbmltYXRpb24gfHwgbnVsbDsKKworICAgICAgICBp
ZiAodGhpcy5fYW5pbWF0aW9uKSB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZl
bnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxl
QW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRp
b24uYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhp
cy5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKworICAg
ICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAg
ICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsK
KworICAgICAgICB0aGlzLl9uYW1lUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93
KFdJLlVJU3RyaW5nKCJOYW1lIikpOworICAgICAgICB0aGlzLl90eXBlUm93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJUeXBlIikpOworICAgICAgICB0aGlz
Ll90YXJnZXRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmco
IlRhcmdldCIpKTsKKyAgICAgICAgbGV0IGlkZW50aXR5U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvbigiYW5pbWF0aW9uLWlkZW50aXR5IiwgV0kuVUlTdHJpbmcoIklkZW50aXR5IiksIFtu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fbmFtZVJvdywgdGhpcy5fdHlwZVJvdywg
dGhpcy5fdGFyZ2V0Um93XSldKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFw
cGVuZENoaWxkKGlkZW50aXR5U2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl9pdGVy
YXRpb25Db3VudFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmlu
ZygiSXRlcmF0aW9ucyIpKTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IikpOworICAgICAg
ICB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdyhXSS5VSVN0cmluZygiRHVyYXRpb24iKSk7CisgICAgICAgIGxldCBpdGVyYXRpb25zR3Jv
dXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5faXRlcmF0aW9uQ291bnRSb3cs
IHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LCB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvd10pOwor
CisgICAgICAgIHRoaXMuX3N0YXJ0RGVsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IERlbGF5IikpOworICAgICAgICB0aGlzLl9lbmREZWxh
eVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRW5kIERl
bGF5IikpOworICAgICAgICB0aGlzLl90aW1pbmdGdW5jdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRWFzaW5nIikpOworICAgICAgICBsZXQgdGlt
aW5nR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fc3RhcnREZWxheVJv
dywgdGhpcy5fZW5kRGVsYXlSb3csIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93XSk7CisKKyAgICAg
ICAgdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3coV0kuVUlTdHJpbmcoIkRpcmVjdGlvbiIpKTsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkZpbGwiKSk7
CisgICAgICAgIGxldCBmaWxsRGlyZWN0aW9uR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25H
cm91cChbdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25Sb3csIHRoaXMuX2ZpbGxNb2RlUm93XSk7CisK
KyAgICAgICAgbGV0IGVmZmVjdFNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1h
dGlvbi1lZmZlY3QiLCBXSS5VSVN0cmluZygiRWZmZWN0IiksIFtpdGVyYXRpb25zR3JvdXAsIHRp
bWluZ0dyb3VwLCBmaWxsRGlyZWN0aW9uR3JvdXBdKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmll
dy5lbGVtZW50LmFwcGVuZENoaWxkKGVmZmVjdFNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAg
dGhpcy5fa2V5ZnJhbWVzR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cDsKKyAgICAg
ICAgbGV0IGtleWZyYW1lc1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlv
bi1rZXlmcmFtZXMiLCBXSS5VSVN0cmluZygiS2V5ZnJhbWVzIiksIFt0aGlzLl9rZXlmcmFtZXNH
cm91cF0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoa2V5
ZnJhbWVzU2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICBjb25zdCBzZWxlY3RhYmxlID0gZmFs
c2U7CisgICAgICAgIGxldCBiYWNrdHJhY2VUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGlu
ZShzZWxlY3RhYmxlKTsKKyAgICAgICAgYmFja3RyYWNlVHJlZU91dGxpbmUuZGlzY2xvc3VyZUJ1
dHRvbnMgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlVHJlZUNvbnRyb2xsZXIgPSBu
ZXcgV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIoYmFja3RyYWNlVHJlZU91dGxpbmUpOworCisg
ICAgICAgIGxldCBiYWNrdHJhY2VSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAg
ICAgIGJhY2t0cmFjZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGJhY2t0cmFjZVRyZWVPdXRsaW5l
LmVsZW1lbnQpOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uKCJhbmltYXRpb24tYmFja3RyYWNlIiwgV0kuVUlTdHJpbmcoIkJhY2t0cmFjZSIp
LCBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2JhY2t0cmFjZVJvd10pXSk7CisgICAgICAg
IHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxlbWVudC5oaWRkZW4gPSB0cnVlOworICAgICAgICB0
aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYmFja3RyYWNlU2VjdGlv
bi5lbGVtZW50KTsKKyAgICB9CisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIu
bGF5b3V0KCk7CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaElkZW50aXR5U2VjdGlvbigpOworICAgICAg
ICB0aGlzLl9yZWZyZXNoRWZmZWN0U2VjdGlvbigpOworICAgICAgICB0aGlzLl9yZWZyZXNoQmFj
a3RyYWNlU2VjdGlvbigpOworCisgICAgICAgIGZvciAobGV0IGNvZGVNaXJyb3Igb2YgdGhpcy5f
Y29kZU1pcnJvclNlY3Rpb25NYXAudmFsdWVzKCkpCisgICAgICAgICAgICBjb2RlTWlycm9yLnJl
ZnJlc2goKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfcmVmcmVzaElkZW50aXR5
U2VjdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9uYW1lUm93LnZhbHVlID0gdGhpcy5fYW5p
bWF0aW9uLmRpc3BsYXlOYW1lOworICAgICAgICB0aGlzLl90eXBlUm93LnZhbHVlID0gV0kuQW5p
bWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSh0aGlzLl9hbmltYXRpb24uYW5pbWF0
aW9uVHlwZSk7CisKKyAgICAgICAgdGhpcy5fdGFyZ2V0Um93LnZhbHVlID0gbnVsbDsKKyAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uLnJlcXVlc3RUYXJnZXQoKS50aGVuKChkb21Ob2RlKSA9PiB7Cisg
ICAgICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBkb21Ob2RlID8gV0kubGlua2lmeU5v
ZGVSZWZlcmVuY2UoZG9tTm9kZSkgOiBudWxsOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBf
cmVmcmVzaEVmZmVjdFNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgY29uc3QgcHJlY2lzaW9uID0g
MDsKKyAgICAgICAgY29uc3QgcmVhZE9ubHkgPSB0cnVlOworCisgICAgICAgIHRoaXMuX2l0ZXJh
dGlvbkNvdW50Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25Db3Vu
dCkgPyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uQ291bnQudG9Mb2NhbGVTdHJpbmcoKSA6IG51
bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LnZhbHVlID0gIWlzTmFOKHRoaXMu
X2FuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkgPyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3Rh
cnQudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkR1cmF0
aW9uUm93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbikg
PyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlv
biAvIDEwMDApIDogbnVsbDsKKworICAgICAgICB0aGlzLl9zdGFydERlbGF5Um93LnZhbHVlID0g
dGhpcy5fYW5pbWF0aW9uLnN0YXJ0RGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMu
X2FuaW1hdGlvbi5zdGFydERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl9lbmRE
ZWxheVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5lbmREZWxheSA/IE51bWJlci5zZWNvbmRz
VG9TdHJpbmcodGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAg
ICB0aGlzLl90aW1pbmdGdW5jdGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdG
dW5jdGlvbiA/IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbi50b1N0cmluZygpIDogbnVs
bDsKKworICAgICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdy52YWx1ZSA9IHRoaXMuX2Fu
aW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbiA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclBs
YXliYWNrRGlyZWN0aW9uKHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbikgOiBudWxs
OworICAgICAgICB0aGlzLl9maWxsTW9kZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5maWxs
TW9kZSA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckZpbGxNb2RlKHRoaXMuX2FuaW1hdGlv
bi5maWxsTW9kZSkgOiBudWxsOworCisgICAgICAgIGZvciAobGV0IHNlY3Rpb24gb2YgdGhpcy5f
Y29kZU1pcnJvclNlY3Rpb25NYXAua2V5cygpKQorICAgICAgICAgICAgc2VjdGlvbi5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdl
ZCwgdGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMp
OworICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5jbGVhcigpOworCisgICAgICAg
IGxldCBrZXlmcmFtZVNlY3Rpb25zID0gW107CisgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9m
IHRoaXMuX2FuaW1hdGlvbi5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGxldCByb3dzID0gW107
CisKKyAgICAgICAgICAgIGxldCBrZXlmcmFtZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rp
b24oImFuaW1hdGlvbi1rZXlmcmFtZS1vZmZzZXQtIiArIGtleWZyYW1lLm9mZnNldCwgTnVtYmVy
LnBlcmNlbnRhZ2VTdHJpbmcoa2V5ZnJhbWUub2Zmc2V0LCBwcmVjaXNpb24pKTsKKyAgICAgICAg
ICAgIGtleWZyYW1lU2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2
ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xs
YXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9ucy5w
dXNoKGtleWZyYW1lU2VjdGlvbik7CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcp
IHsKKyAgICAgICAgICAgICAgICBsZXQgc3VidGl0bGUgPSBrZXlmcmFtZVNlY3Rpb24uaGVhZGVy
RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAg
ICAgICAgICAgICAgIHN1YnRpdGxlLmNsYXNzTmFtZSA9ICJzdWJ0aXRsZSI7CisgICAgICAgICAg
ICAgICAgc3VidGl0bGUudGV4dENvbnRlbnQgPSBgICR7ZW1EYXNofSAke2tleWZyYW1lLmVhc2lu
Zy50b1N0cmluZygpfWA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFt
ZS5zdHlsZSkgeworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9y
ID0gV0kuQ29kZU1pcnJvckVkaXRvci5jcmVhdGUoY29kZU1pcnJvckVsZW1lbnQsIHsKKyAgICAg
ICAgICAgICAgICAgICAgbW9kZTogImNzcyIsCisgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5
OiAibm9jdXJzb3IiLAorICAgICAgICAgICAgICAgICAgICBsaW5lV3JhcHBpbmc6IHRydWUsCisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgY29kZU1pcnJvci5zZXRWYWx1ZShr
ZXlmcmFtZS5zdHlsZSk7CisKKyAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IG51bGw7Cisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gb3B0aW9uc0ZvclR5cGUodHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZFRva2Vu
czogL1xidGFnXGIvLAorICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobWFya2VyLCB2
YWx1ZU9iamVjdCwgdmFsdWVTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgc3dhdGNoID0gbmV3IFdJLklubGluZVN3YXRjaCh0eXBlLCB2YWx1ZU9iamVjdCwgcmVhZE9u
bHkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0VW5pcXVlQm9v
a21hcmsobWFya2VyLnJhbmdlLnN0YXJ0UG9zaXRpb24oKS50b0NvZGVNaXJyb3IoKSwgc3dhdGNo
LmVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9y
Q29sb3JUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5s
aW5lU3dhdGNoLlR5cGUuQ29sb3IpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9y
R3JhZGllbnRUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0ku
SW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2Rl
TWlycm9yQ3ViaWNCZXppZXJUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0Zv
clR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKSk7CisgICAgICAgICAgICAgICAgY3Jl
YXRlQ29kZU1pcnJvclNwcmluZ1RleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25z
Rm9yVHlwZShXSS5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpKTsKKworICAgICAgICAgICAgICAg
IGxldCByb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgICAgICAgICAgcm93
LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic3R5bGVzIik7CisgICAgICAgICAgICAgICAgcm93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQoY29kZU1pcnJvckVsZW1lbnQpOworICAgICAgICAgICAgICAgIHJv
d3MucHVzaChyb3cpOworCisgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25N
YXAuc2V0KGtleWZyYW1lU2VjdGlvbiwgY29kZU1pcnJvcik7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICghcm93cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBsZXQgZW1wdHlS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5vIFN0eWxlcyIpKTsK
KyAgICAgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7CisgICAgICAgICAg
ICAgICAgcm93cy5wdXNoKGVtcHR5Um93KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
a2V5ZnJhbWVTZWN0aW9uLmdyb3VwcyA9IFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChyb3dz
KV07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFrZXlmcmFtZVNlY3Rpb25zLmxlbmd0aCkgewor
ICAgICAgICAgICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93KFdJLlVJ
U3RyaW5nKCJObyBLZXlmcmFtZXMiKSk7CisgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlN
ZXNzYWdlKCk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goZW1wdHlSb3cpOwor
ICAgICAgICB9CisgICAgICAgIHRoaXMuX2tleWZyYW1lc0dyb3VwLnJvd3MgPSBrZXlmcmFtZVNl
Y3Rpb25zOworICAgIH0KKworICAgIF9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigpCisgICAgewor
ICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHRoaXMuX2FuaW1hdGlvbi5iYWNrdHJhY2U7CisgICAg
ICAgIHRoaXMuX2JhY2t0cmFjZVRyZWVDb250cm9sbGVyLmNhbGxGcmFtZXMgPSBjYWxsRnJhbWVz
OworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlkZGVuID0gIWNhbGxG
cmFtZXMubGVuZ3RoOworICAgIH0KKworICAgIF9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2Vk
KGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAg
ICB9CisKKyAgICBfaGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24oKTsKKyAgICB9CisKKyAgICBfaGFu
ZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCisgICAgeworICAg
ICAgICBsZXQgY29kZU1pcnJvciA9IHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmdldChldmVu
dC50YXJnZXQpOworICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCmluZGV4IDRlNWE5MGUxZjAzMTdmMGM0ZWJmNGY3OTk3
MDI3NmM3ZmJkMjdmNTguLmNjMTY2YmQzZTYwZDM4MWE3NWExYTE3OTQzYWJlMjM2NzA3YThiNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKQEAgLTIzLDExICsyMywxMSBAQAogICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzOm5vdCgudGFiKSB7CisuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgYmFja2dyb3VuZC1j
b2xvcjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRh
YikgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBk
aXNwbGF5OiBmbGV4OwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgIGFsaWduLWl0
ZW1zOiBjZW50ZXI7CkBAIC0zNiwxNyArMzYsMTcgQEAKICAgICBwYWRkaW5nOiAxNXB4OwogfQog
Ci0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmlldy5jYW52YXMg
ewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRl
bnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwog
ICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFi
KSA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IDpt
YXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApAQCAtNTYs
NyArNTYsNyBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0g
ICAgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKyAgICAuY29udGVudC12aWV3LmNh
bnZhcyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0Nv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzQ29udGVudFZpZXcuanMKaW5kZXggOWI0ZmQ2ZjZlZDdlMWNiNzYzOTc1MTExMDExNTMy
NDY1NGQ1OGYwMS4uOTkzZGE1MTNmMmRkNTYzM2ZkNzk0ODNlYTRjYTlmZmJhOTZlZmNlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuQ2FudmFzQ29u
dGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3
CiAKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIklt
YWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0
b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5W
aXNpYmlsaXR5UHJpb3JpdHkuTG93OwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5D
bGlja2VkLCB0aGlzLnJlZnJlc2hQcmV2aWV3LCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVz
aEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhp
cyk7CiAKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBX
SS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygi
U2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kg
Z3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAg
ICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVy
KFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0
dG9uQ2xpY2tlZCwgdGhpcyk7CkBAIC03Nyw2ICs3NywyOSBAQCBXSS5DYW52YXNDb250ZW50Vmll
dyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAg
ICAgfSk7CiAgICAgfQogCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsK
KyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIC8vIERyb3Bab25l
VmlldyBkZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJv
cFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50
eXBlcy5pbmNsdWRlcygiRmlsZXMiKTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3Ao
ZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRy
YW5zZmVyLmZpbGVzOworICAgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAg
ICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJl
c3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisK
ICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGluaXRpYWxMYXlvdXQoKQpAQCAtMTYwLDYgKzE4Mywx
MyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBpZiAoaXNDYXJkKQogICAgICAgICAgICAgdGhp
cy5fcmVmcmVzaFBpeGVsU2l6ZSgpOworCisgICAgICAgIGlmICghaXNDYXJkKSB7CisgICAgICAg
ICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAg
ICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0kuVUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmci
KTsKKyAgICAgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50
OworICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgICAgIH0K
ICAgICB9CiAKICAgICBsYXlvdXQoKQpAQCAtMTkxLDEzICsyMjEsNiBAQCBXSS5DYW52YXNDb250
ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcK
ICAgICAgICAgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkKCk7CiAgICAgfQogCi0gICAgc2hvd24oKQot
ICAgIHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLnJlZnJlc2hQcmV2
aWV3KCk7Ci0gICAgfQotCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0
YWNoZWQoKTsKQEAgLTIyMyw2ICsyNDYsOCBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAK
ICAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNl
dHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkLCB0aGlzKTsKKworICAg
ICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQpAQCAt
MjkxLDExICszMTYsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIF9wb3B1bGF0ZUNhbnZhc0VsZW1l
bnRCdXR0b25Db250ZXh0TWVudShjb250ZXh0TWVudSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlz
Ll9jYW52YXNOb2RlKQotICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRP
TU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUpOwotCi0gICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZFNlcGFyYXRvcigpOwotCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V0kuVUlTdHJpbmcoIkxvZyBDYW52YXMgQ29udGV4dCIpLCAoKSA9PiB7CiAgICAgICAgICAgICBX
SS5SZW1vdGVPYmplY3QucmVzb2x2ZUNhbnZhc0NvbnRleHQodGhpcy5yZXByZXNlbnRlZE9iamVj
dCwgV0kuUnVudGltZU1hbmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9
PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCkBAIC0zMDYsNiArMzI2LDEx
IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJv
bGxlci5hcHBlbmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJlbW90ZU9iamVj
dCwgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAgaWYg
KHRoaXMuX2NhbnZhc05vZGUpCisgICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1z
Rm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7CiAgICAgfQogCiAgICAg
X3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcuY3NzCmluZGV4IDEwZjM3YzA0NmIwYzJhMTI4MmM1ZWM5OWRjNmNiOTkwYjIyMzZj
NWYuLjFjNmQ2NDMxZjliN2Q2MzZlOGYzZThjZTE1YzZiYjJhNjViMTM2YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCkBAIC0yNiwyOSArMjYsMjkgQEAK
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNl
bnRlcjsKICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBoc2woMCwgMCUsIDkwJSk7Ci0KLSAgICAtLWl0ZW0tbWFyZ2luOiAxMHB4OworICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHggMDsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZmxleC1ncm93OiAwOwot
ICAgIG1hcmdpbjogdmFyKC0taXRlbS1tYXJnaW4pOworICAgIGZsZXgtc2hyaW5rOiAwOwogICAg
IHdpZHRoOiA0MDBweDsKKyAgICBtYXJnaW46IDRweDsKICAgICBib3JkZXI6IDFweCBzb2xpZCB2
YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMsCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMsCisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnBy
ZXZpZXcgPiBpbWcgewogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0
aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSB7CiAgICAgYm9yZGVyLWNvbG9yOiByZWQ7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMo
aGVhZGVyLCBmb290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAgIGRpc3BsYXk6
IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICBmbGV4LXNocmluazogMDsKQEAg
LTU5LDEzNiArNTksMTM2IEBACiAgICAgY3Vyc29yOiBkZWZhdWx0OwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVy
IHsKICAgICBmb250LXNpemU6IDEzcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlID4gaGVhZGVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVy
ID4gLnRpdGxlcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gZm9vdGVyID4gLnNpemUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
PiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnNpemUg
ewogICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4g
aGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3It
Z3JheS1kYXJrKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1j
b3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3Qgewog
ICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgLnN1YnRp
dGxlOjpiZWZvcmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9yZSB7CiAgICAgY29udGVudDogIlww
MEEwXDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+
IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB3aGl0ZTsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+
IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4g
LnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXNlbGVjdGVkLXNlY29uZGFy
eS10ZXh0LWNvbG9yKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5p
dGVtIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KCk7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLm5h
dmlnYXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGFsaWduLWl0ZW1z
OiBpbml0aWFsOwogICAgIGJvcmRlcjogbm9uZTsKICAgICBvcGFjaXR5OiAwOwogICAgIHRyYW5z
aXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3Jk
aW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJl
Y29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBvcGFjaXR5
OiAxOwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVj
b3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQt
c3RhcnQtc3RvcC5kaXNhYmxlZCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2
aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7CiAgICAgZmls
dGVyOiBncmF5c2NhbGUoKTsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2
ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpu
b3QoLmRpc2FibGVkKTpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2
aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3Zl
ciB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDk1JSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkg
PiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3Qo
LmRpc2FibGVkKTphY3RpdmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmln
YXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZl
IHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoODAlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9n
cmVzcy12aWV3LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3MtdmlldywKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmll
dyB7CiAgICAgaGVpZ2h0OiAyODBweDsKICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9y
IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92
ZXIsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IC5wcmV2aWV3OmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3OmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CiAg
ICAgZGlzcGxheTogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAg
IGJvcmRlci1yYWRpdXM6IDRweDsKICAgICBib3gtc2hhZG93OiAxcHggMnB4IDZweCByZ2JhKDAs
IDAsIDAsIDAuNTgpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3IHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+
IC5tZXNzYWdlLXRleHQtdmlldyB7CiAgICAgcG9zaXRpb246IHN0YXRpYzsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgewor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciB7CiAgICAgYm9yZGVyLXRvcDogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0
ZW1zIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKICAgICBkaXNwbGF5OiBmbGV4Owog
ICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+
IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXct
cmVsYXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7
CiAgICAgd2lkdGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJl
bGF0ZWQtaXRlbXMgPiBpbWcgKyBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
PiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBp
bWcgKyBpbWcgewogICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZp
ZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1p
dGVtcyA+IC52aWV3LXNoYWRlciB7CiAgICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFn
ZXMvRG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAy
eCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7Cisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CiAgICAgY29udGVu
dDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxleGlibGUtc3Bh
Y2UgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cyA+IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CiAgICAgZmxleDogMTsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1l
bW9yeS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAtd2Via2l0LXBhZGRpbmctc3Rh
cnQ6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgewogICAgIGhlaWdodDog
MzQwcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRy
ZWUtb3V0bGluZSB7CiAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50
cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRy
ZWUtb3V0bGluZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKICAgICBjb250ZW50OiB1cmwo
Li4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCkBAIC0yMDksNDMgKzIwOSwzOSBAQAogfQog
CiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKLSAg
ICB9Ci0KLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcywKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9
CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0gICAgLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3Zl
ciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCisgICAgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
OmhvdmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xv
ci10ZXJ0aWFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CisgICAgLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZl
IHsKICAgICAgICAgLS1yZWNvcmRpbmctY29sb3I6IGhzbCgwLCAxMDAlLCAzOSUpOwogICAgICAg
ICBib3JkZXItY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAgICAgfQogCi0gICAgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5n
LWFjdGl2ZSA+IGhlYWRlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAg
ICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxl
cyA+IC5zdWJ0aXRsZSwKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworICAgIC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVz
ID4gLnN1YnRpdGxlLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAgICAgY29sb3I6IHZh
cigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAudmlldy1yZWNvcmRp
bmcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBmb290ZXIgLnZpZXctcmVjb3JkaW5nIHsKICAgICAgICAgZmlsdGVyOiBpbnZlcnQo
KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRs
ZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAg
ICAgICAgIGNvbG9yOiB1bnNldDsKICAgICAgICAgb3BhY2l0eTogMC41CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3Zl
cnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKaW5kZXggNjM5YjM2ZDg1OWJiN2Nm
M2MzNDQ0NWFhMGViNzQ5NTQzM2M0MTA5OC4uMGQxNjVkZDI2OGQ0MzcwMjhhNDNkMTQ5ZTA3Y2Zh
ODM4YjRkZTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3Lmpz
CkBAIC0yOSw3ICsyOSw4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBD
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0Nv
bGxlY3Rpb24pOwogCi0gICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5jcmVhdGVN
ZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKyAgICAg
ICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVk
ID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgOiBXSS5jcmVhdGVNZXNzYWdlVGV4dFZp
ZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKwogICAgICAgICBsZXQgZGVz
Y3JpcHRpb25FbGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LmNsYXNz
TmFtZSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29u
dGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBi
eSBzY3JpcHQgb3IgQ1NTLiIpOwpAQCAtNjIsMjEgKzYzLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdD
b250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b2xsZWMKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlY29yZGluZ0F1dG9DYXB0dXJlQ2hlY2ti
b3hMYWJlbChmcmFtZUNvdW50KTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2ltcG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQt
cmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAx
NSwgMTUpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sdGlw
ID0gV0kuVUlTdHJpbmcoIkltcG9ydCIpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZp
Z2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLklt
YWdlQW5kVGV4dDsKLQotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0g
PSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2gtYWxsIiwgV0kuVUlTdHJpbmco
IlJlZnJlc2ggYWxsIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwotICAgICAg
ICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwotICAg
ICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihX
SS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoUHJldmll
d3MsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0g
PSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlT
dHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNw
YXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAx
Myk7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVk
ID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOwotICAgICAgICB0aGlzLl9zaG93
R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5f
c2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCwg
dGhpcyk7Ci0KICAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihX
SS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwotICAgICAgICB0aGlzLl9pbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
Q2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZp
ZXcgPSBudWxsOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZSA9IG51
bGw7CkBAIC05MCwxNyArNzcsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNs
YXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKIAogICAgIGdl
dCBuYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9
IFt0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0
aW9uSXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3Jp
ZEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKLSAgICAgICAgaWYgKFdJLkNhbnZhc01hbmFnZXIuc3Vw
cG9ydHNSZWNvcmRpbmdBdXRvQ2FwdHVyZSgpKQotICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1z
LnVuc2hpZnQodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSwgbmV3IFdJ
LkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBb
XTsKKyAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0p
CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9yZWNvcmRpbmdBdXRvQ2Fw
dHVyZU5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKICAg
ICB9CiAKLSAgICBoaWRkZW4oKQorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKICAg
ICB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLQotICAg
ICAgICBzdXBlci5oaWRkZW4oKTsKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1
YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0Nv
bnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNs
aWNrZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAtMTE1LDIz
ICsxMDMsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMucmVt
b3ZlU3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7CiAgICAgICAgICAg
ICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcpOwogICAg
ICAgICB9Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7CiAgICAgfQog
CiAgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQogICAgIHsKICAgICAgICAgY29u
dGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5f
Y29udGVudFZpZXdNb3VzZUVudGVyKTsKICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1v
dmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUxlYXZl
KTsKLQotICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICB9CiAKICAg
ICBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwogCi0gICAgICAg
IFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2
ZW50LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZVNob3dJbWFnZUdyaWQsIHRoaXMpOwogICAgICAgICBX
SS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQuYWRkRXZlbnRMaXN0
ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGlu
Z0F1dG9DYXB0dXJlRW5hYmxlZENoYW5nZWQsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5j
YW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5T
ZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1dG9DYXB0
dXJlRnJhbWVDb3VudENoYW5nZWQsIHRoaXMpOwogCkBAIC0xNDEsNDkgKzEyNCwyNyBAQCBXSS5D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJl
ZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9m
IFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQogICAgICAgICAgICAgdGhpcy5fYWRk
U2F2ZWRSZWNvcmRpbmcocmVjb3JkaW5nKTsKKworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9m
IHRoaXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0ku
Q2FudmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5yZWZyZXNoUHJldmll
dygpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQogICAgIHsKKyAgICAgICAg
V0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCiAgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAg
ICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQucmVtb3Zl
RXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2Fu
dmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwg
bnVsbCwgdGhpcyk7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQucmVtb3ZlRXZl
bnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBzdXBlci5kZXRhY2hlZCgp
OwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAotICAgIGdldCBfaXRlbU1hcmdpbigpCi0gICAg
ewotICAgICAgICByZXR1cm4gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5l
bGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCItLWl0ZW0tbWFyZ2luIikpOwotICAgIH0KLQotICAg
IF9yZWZyZXNoUHJldmlld3MoKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgY2FudmFzQ29udGVu
dFZpZXcgb2YgdGhpcy5zdWJ2aWV3cykKLSAgICAgICAgICAgIGNhbnZhc0NvbnRlbnRWaWV3LnJl
ZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpCi0g
ICAgewotICAgICAgICBsZXQgaGFzSXRlbXMgPSAhIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6
ZTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBo
YXNJdGVtczsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFi
bGVkID0gaGFzSXRlbXM7Ci0gICAgfQotCi0gICAgX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZChldmVu
dCkKLSAgICB7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWUgPSAhdGhp
cy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7Ci0gICAgfQotCi0gICAg
X3VwZGF0ZVNob3dJbWFnZUdyaWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0
b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQu
dmFsdWU7Ci0gICAgfQotCiAgICAgX2NvbnRlbnRWaWV3TW91c2VFbnRlcihldmVudCkKICAgICB7
CiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQoZXZlbnQudGFy
Z2V0KTsKQEAgLTMwMSw4ICsyNjIsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0g
Y2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAg
ICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5lbGVtZW50KTsKICAgICAgICAgfQog
Ci0gICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAgICAgICAgbGV0IHJlY29yZGluZ1Ry
ZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNv
cmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICBsZXQgcmVj
b3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5n
Il0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVj
b3JkaW5nVHlwZShyZWNvcmRpbmcudHlwZSksIHJlY29yZGluZyk7CiAgICAgICAgIHJlY29yZGlu
Z1RyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNv
cmRpbmdzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwppbmRleCBjMmJiZGMwMmU5ZTg5NmI0MmIx
YjYzZDMzNGJjZmYyMmQ4Mjc0YTE5Li5jNzExZmFmNDYyYjc2ZTVlOTA4Mjc0N2YxN2Y5MmVhODZi
MWZiMGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCkBAIC0yMzcsMTAgKzIzNyw4
IEBAIFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRl
bmRzIFdJLk5hdmlnYXRpb25TaWRlYmFyUGFuCiAKICAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmpl
Y3QocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgewotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgICAgIHJldHVybiBzdXBlci5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVw
cmVzZW50ZWRPYmplY3QpOworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5DYW52YXMKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuUmVjb3JkaW5nOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVu
dFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzVGFiQ29udGVudFZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWRh
YjVlZjk5NzlkNjJiODExNTk4OWE5MTY0MDQxM2M3MmE4Y2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0x
LDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmln
YXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0gICAgY29udGVudDog
dXJsKC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRh
Yi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMtMmQgLmljb24g
ewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKLX0KLQotLmNvbnRl
bnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXM6bWF0Y2hl
cygud2ViZ2wsIC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24gewotICAgIGNvbnRl
bnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIu
Y2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7Ci0gICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmll
dy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXItcHJvZ3JhbSA+IC5p
Y29uIHsKLSAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBu
ZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKLX0KLQotQG1lZGlh
IChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcudGFiLmNh
bnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKLSAg
ICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LnRh
Yi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwKLSAgICAuY29u
dGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+
IC5pY29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKLSAgICB9Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250
ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc1RhYkNvbnRlbnRWaWV3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTFk
YmU0ODAxZTU1N2JjN2MyMGU1MmVjNzdjODA5OTlkNTZhOGQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
Mjk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5DYW52YXNUYWJDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYWJDb250ZW50
VmlldwotewotICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoIXJlcHJlc2VudGVkT2JqZWN0IHx8IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKLQotICAgICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdl
bmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnRhYklu
Zm8oKSk7Ci0KLSAgICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9y
ID0gV0kuQ2FudmFzU2lkZWJhclBhbmVsOwotICAgICAgICBjb25zdCBkZXRhaWxzU2lkZWJhclBh
bmVsQ29uc3RydWN0b3JzID0gW1dJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCwg
V0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5DYW52YXNEZXRhaWxzU2lk
ZWJhclBhbmVsXTsKLSAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKLSAg
ICAgICAgc3VwZXIoImNhbnZhcyIsIFsiY2FudmFzIl0sIHRhYkJhckl0ZW0sIG5hdmlnYXRpb25T
aWRlYmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycywg
ZGlzYWJsZUJhY2tGb3J3YXJkKTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uID0g
bmV3IFdJLkNhbnZhc0NvbGxlY3Rpb247Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxp
bmUgPSBuZXcgV0kuVHJlZU91dGxpbmU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5l
LmFsbG93c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVP
dXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlk
Q2hhbmdlLCB0aGlzLl9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7
Ci0KLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJl
ZUVsZW1lbnQoImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIpLCBudWxs
LCB0aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxp
bmUuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhp
cy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJlZUVsZW1lbnQo
V0kuVUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSwgV0kuUmVjb3JkaW5nQ29sbGVjdGlvbik7
Ci0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7
Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2
ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXku
U3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNv
cmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0gICAgICAgIHRo
aXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl9yZWNv
cmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9h
cmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2Us
IHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5n
bGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdGFi
SW5mbygpCi0gICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgaW1hZ2U6ICJJbWFn
ZXMvQ2FudmFzLnN2ZyIsCi0gICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJpbmcoIkNhbnZhcyIp
LAotICAgICAgICB9OwotICAgIH0KLQotICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52YXMiKTsKLSAg
ICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmpl
Y3QocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2FudmFz
VHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICB9Ci0K
LSAgICBnZXQgdHlwZSgpCi0gICAgewotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVu
dFZpZXcuVHlwZTsKLSAgICB9Ci0KLSAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2Vy
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGdldCBtYW5hZ2Vz
TmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9Ci0KLSAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCi0g
ICAgewotICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52
YXMKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFz
Q29sbGVjdGlvbgotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5SZWNvcmRpbmcKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuU2hhZGVyUHJvZ3JhbTsKLSAgICB9Ci0KLSAgICBzaG93bigpCi0gICAgewotICAgICAgICBz
dXBlci5zaG93bigpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0g
ZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQg
PSBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRl
bnRWaWV3KQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2Fu
dmFzQ29sbGVjdGlvbik7Ci0gICAgfQotCi0gICAgaGlkZGVuKCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fcmVjb3Jk
U2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgc3VwZXIuaGlk
ZGVuKCk7Ci0gICAgfQotCi0gICAgY2xvc2VkKCkKLSAgICB7Ci0gICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuZGlzYWJsZSgpOwotCi0gICAgICAgIHN1cGVyLmNsb3NlZCgpOwotICAgIH0KLQotICAg
IHJlc3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRl
LgotICAgIH0KLQotICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAgICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBp
cyBjb21wbGV0ZS4KLSAgICB9Ci0KLSAgICBhc3luYyBoYW5kbGVGaWxlRHJvcChmaWxlcykKLSAg
ICB7Ci0gICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1
bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7Ci0gICAgfQotCi0g
ICAgLy8gUHJvdGVjdGVkCi0KLSAgICBhdHRhY2hlZCgpCi0gICAgewotICAgICAgICBzdXBlci5h
dHRhY2hlZCgpOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
SS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRl
ZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5D
YW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92
ZWQsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5n
U2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5l
cihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5n
U2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotCi0gICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXM7Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2Nh
bnZhc0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgIGlmICghY2FudmFzZXMuaW5jbHVkZXMoY2Fu
dmFzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBjYW52YXNlcykgewotICAgICAgICAg
ICAgaWYgKCF0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQotICAgICAgICAgICAg
ICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5f
c2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgZm9y
IChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQotICAg
ICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHByZXNzU2hvd1JlY29y
ZGluZzogdHJ1ZX0pOwotICAgIH0KLQotICAgIGRldGFjaGVkKCkKLSAgICB7Ci0gICAgICAgIFdJ
LkNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0K
LSAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAg
ICBfYWRkQ2FudmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVs
ZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZhcykpOwotICAg
ICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52YXMpOwotCi0gICAgICAgIGNvbnN0
IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWUsCi0g
ICAgICAgIH07Ci0KLSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRp
bmdDb2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywg
b3B0aW9ucyk7Ci0gICAgfQotCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCi0gICAgewotICAg
ICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5maW5kVHJlZUVs
ZW1lbnQoY2FudmFzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQsICJNaXNz
aW5nIHRyZWUgZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7Ci0KLSAgICAgICAgY29uc3Qg
c3VwcHJlc3NOb3RpZmljYXRpb24gPSB0cnVlOwotICAgICAgICB0cmVlRWxlbWVudC5kZXNlbGVj
dChzdXBwcmVzc05vdGlmaWNhdGlvbik7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1l
bnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxl
Y3Rpb24ucmVtb3ZlKGNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9
IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAoY3Vy
cmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCi0gICAgICAg
ICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0g
ICAgICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLlJlY29yZGlu
Z0NvbnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhjdXJyZW50Q29u
dGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQotICAgICAgICAgICAgdGhpcy5jb250ZW50QnJv
d3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRWaWV3KCk7Ci0KLSAg
ICAgICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFy
UGFuZWw7Ci0gICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGluc3RhbmNlb2YgV0ku
Q2FudmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudmlzaWJsZSkKLSAg
ICAgICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVzZW50ZWRPYmplY3Rz
KCk7Ci0KLSAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsKLSAgICB9Ci0K
LSAgICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQotICAgIHsKLSAgICAg
ICAgaWYgKCFyZWNvcmRpbmcuc291cmNlKSB7Ci0gICAgICAgICAgICBjb25zdCBzdWJ0aXRsZSA9
IG51bGw7Ci0gICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2Vu
ZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3Vi
dGl0bGUsIHJlY29yZGluZyk7Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVl
RWxlbWVudC5oaWRkZW4gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5n
c1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcpCi0gICAgICAg
ICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOwotICAgIH0KLQotICAg
IF9oYW5kbGVDYW52YXNBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FkZENhbnZh
cyhldmVudC5kYXRhLmNhbnZhcyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNhbnZhc1JlbW92ZWQo
ZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQuZGF0YS5jYW52
YXMpOwotICAgIH0KLQotICAgIF9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShl
dmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNU
cmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAoIXNlbGVjdGVkRWxl
bWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmpl
Y3QgPSBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAgIGlmICghdGhp
cy5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7Ci0gICAgICAg
ICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3Qu
IiwgcmVwcmVzZW50ZWRPYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0K
LSAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOwot
ICAgIH0KLQotICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKLSAgICB7
Ci0gICAgICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2
ZW50LmRhdGE7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIGxldCBvcHRpb25zID0ge307Ci0KLSAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1w
b3J0ZWQgcmVjb3JkaW5ncy4KLSAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9y
dGVkKQotICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlh
dGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0
cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5SZWNvcmRpbmcpOwotCi0gICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcs
IG9wdGlvbnMpOwotICAgIH0KLQotICAgIF9oYW5kbGVTcGFjZShldmVudCkKLSAgICB7Ci0gICAg
ICAgIGlmIChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0
aW9uU2lkZWJhclBhbmVsLmNhbnZhczsKLSAgICAgICAgaWYgKCFjYW52YXMpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCi0gICAgICAg
ICAgICBjYW52YXMuc3RvcFJlY29yZGluZygpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IGxldCBzaW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAgICBjYW52YXMu
c3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKLSAgICB9Ci19OwotCi1XSS5DYW52YXNUYWJDb250ZW50Vmlldy5U
eXBlID0gImNhbnZhcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRl
eCBmZTMzZTdhY2Q5ZjE2MWIyY2MwY2U3MWNkNTI0YTQ5MWFkZDMzYzJiLi41Y2U4ZGIwZjMwOGRk
OTg5ODRiMzFiYjk0Y2M1Zjc5YzM5NWMyZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250
ZW50Vmlldy5jc3MKQEAgLTMzLDE0ICszMywxNyBAQAogICAgIGZsZXgtZ3JvdzogMTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcgewotICAgIG91dGxp
bmU6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ci19Ci0KLS5jb250ZW50LXZpZXcu
Y29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsKLSAgICBvdXRsaW5lLWNvbG9y
OiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCi19Ci0KIC5jb250ZW50LXZpZXcuY29sbGVjdGlv
biA+IC5jb250ZW50LXZpZXdbaGlkZGVuXSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KKworLmNv
bnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2FnZS10ZXh0LXZp
ZXcpIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cisg
ICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAg
ICB3aWR0aDogMTAwJTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAx
M3B4OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rp
b25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRleCAwNTQ3NDE2ODFjODE4YmU1YmNhYTVk
NmZmMTlkNTM3MjliN2IzODY2Li5kNGU2MWUwODI1NTBjYTVkMzg2MDIyZGVmMGVmYjM5NTVlOGNi
NTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0yOCw3ICsyOCw3
IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50Vmll
dyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgY29uc3RydWN0b3IoY29sbGVjdGlvbiwgY29u
dGVudFZpZXdDb25zdHJ1Y3RvciwgY29udGVudFBsYWNlaG9sZGVyKQogICAgIHsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQoY29sbGVjdGlvbiBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pOwotICAg
ICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlld0NvbnN0cnVjdG9yIGluc3RhbmNlb2YgV0ku
Q29udGVudFZpZXcpOworICAgICAgICBjb25zb2xlLmFzc2VydCghY29udGVudFZpZXdDb25zdHJ1
Y3RvciB8fCBjb250ZW50Vmlld0NvbnN0cnVjdG9yLnByb3RvdHlwZSBpbnN0YW5jZW9mIFdJLkNv
bnRlbnRWaWV3KTsKIAogICAgICAgICBzdXBlcihjb2xsZWN0aW9uKTsKIApAQCAtMzgsNyArMzgs
NiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xk
ZXJFbGVtZW50ID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvciA9
IGNvbnRlbnRWaWV3Q29uc3RydWN0b3I7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwID0g
bmV3IE1hcDsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAgPSBuZXcgV2Vha01hcDsKICAg
ICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2VsZWN0aW9u
RW5hYmxlZCA9IGZhbHNlOwogICAgIH0KQEAgLTgzLDE5ICs4MiwyNSBAQCBXSS5Db2xsZWN0aW9u
Q29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKICAgICB9CiAKLSAg
ICBzZXRTZWxlY3RlZEl0ZW0oaXRlbSkKKyAgICBnZXQgc2VsZWN0ZWRJdGVtKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07CisgICAgfQorCisgICAgc2V0IHNlbGVj
dGVkSXRlbShpdGVtKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fc2VsZWN0
aW9uRW5hYmxlZCwgIkF0dGVtcHRlZCB0byBzZXQgc2VsZWN0ZWQgaXRlbSB3aGVuIHNlbGVjdGlv
biBpcyBkaXNhYmxlZC4iKTsKICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBjb250ZW50VmlldyA9IHRoaXMuX2Nv
bnRlbnRWaWV3TWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZp
ZXcsICJNaXNzaW5nIGNvbnRldCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOwotICAgICAgICBpZiAo
IWNvbnRlbnRWaWV3KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRoaXMuX3NlbGVj
dEl0ZW0oaXRlbSk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCgpOworCisgICAgICAgIGlmIChpdGVtKSB7CisgICAgICAgICAgICBsZXQgY29udGVu
dFZpZXcgPSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7CisgICAgICAgICAgICBjb25z
b2xlLmFzc2VydChjb250ZW50VmlldywgIk1pc3NpbmcgY29udGV0IHZpZXcgZm9yIGl0ZW0uIiwg
aXRlbSk7CisgICAgICAgICAgICBpZiAoY29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgY29u
dGVudFZpZXcuZWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTEyMCwyMCArMTI1LDkgQEAgV0kuQ29sbGVjdGlv
bkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29u
dGVudFZpZXcKIAogICAgICAgICBsZXQgY29udGVudFZpZXcgPSBuZXcgdGhpcy5fY29udGVudFZp
ZXdDb25zdHJ1Y3RvcihpdGVtLCB0aGlzLmNvbnRlbnRWaWV3Q29uc3RydWN0b3JPcHRpb25zKTsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50
Vmlldyk7Ci0KLSAgICAgICAgbGV0IGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7Ci0gICAgICAg
ICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkK
LSAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVtKTsKLSAgICAg
ICAgfTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmpl
Y3QgPT09IGl0ZW0pOwogCiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwLnNldChpdGVtLCBj
b250ZW50Vmlldyk7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLnNldChpdGVtLCBoYW5k
bGVDbGljayk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBoYW5kbGVDbGljayk7CiAKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGNvbnRlbnRW
aWV3KTsKICAgICAgICAgdGhpcy5jb250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3KTsKQEAgLTE2
OSwxNCArMTYzLDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlv
bkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBjb250ZW50Vmll
dy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCi0gICAgICAgIGxldCBo
YW5kbGVDbGljayA9IHRoaXMuX2hhbmRsZUNsaWNrTWFwLmdldChpdGVtKTsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQoaGFuZGxlQ2xpY2spOwotCi0gICAgICAgIGlmIChoYW5kbGVDbGljaykgewot
ICAgICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGlj
ayIsIGhhbmRsZUNsaWNrKTsKLSAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLmRlbGV0
ZShpdGVtKTsKLSAgICAgICAgfQotCiAgICAgICAgIGlmICghdGhpcy5zdWJ2aWV3cy5sZW5ndGgp
CiAgICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKICAgICB9CkBAIC0y
MDAsNiArMTg2LDggQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlv
bkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgICAgICB0aGlz
Ll9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5fY29udGVudFBsYWNlaG9sZGVyOwog
ICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJwbGFjZWhvbGRlciIpOworCiAgICAgICAgIGlmICghdGhpcy5fY29udGVudFBs
YWNlaG9sZGVyRWxlbWVudC5wYXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQpOwogICAgIH0KQEAgLTIx
MiwxMCArMjAwLDExIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rp
b25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBpbml0aWFsTGF5b3V0
KCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0
aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKSB7CisgICAgICAgIGlmICh0aGlzLl9jb250ZW50
Vmlld0NvbnN0cnVjdG9yKQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgaWYg
KCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRlbnRWaWV3Q29uc3Ry
dWN0b3IpCiAgICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGF0dGFjaGVkKCkKQEAgLTI5
Miw2ICsyODEsMzAgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlv
bkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHNlbGVjdGVk
Q29udGVudFZpZXcuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwogICAgICAgICB9
CiAKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVkSXRlbUNoYW5nZWQpOwogICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXBy
ZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOwogICAgIH0KKworICAgIF9oYW5kbGVDbGljayhldmVu
dCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtl
eSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBbaXRlbSwgY29udGVu
dFZpZXddIG9mIHRoaXMuX2NvbnRlbnRWaWV3TWFwKSB7CisgICAgICAgICAgICBpZiAoY29udGVu
dFZpZXcuZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7CisgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nl
bGVjdEl0ZW0oaXRlbSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRlbSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlv
bkVuYWJsZWQpCisgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOworICAgIH0KK307
CisKK1dJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVudCA9IHsKKyAgICBTZWxlY3RlZEl0ZW1D
aGFuZ2VkOiAiY29sbGVjdGlvbi1jb250ZW50LXZpZXctc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkIiwK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnRlbnRWaWV3LmpzCmluZGV4IGRmOTEyZGQ1NmZhMDdkZjk0OGYwZDdmN2FmMGQ3YzZk
MWI3OWEyZjYuLjI5NmMyYTU0MjNhMGY2OTFlYWM3ZDJkMGU5MzYwMGY1MTU0ZjBkZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bnRlbnRWaWV3LmpzCkBAIC02MCw5ICs2MCw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzQ29u
dGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAotICAgICAgICBp
ZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAg
ICAgICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KHJlcHJlc2Vu
dGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7Ci0KICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAgICAgICAgICAgIHJldHVybiBuZXcg
V0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3Vt
ZW50cyk7CiAKQEAgLTE4Miw2ICsxNzksOSBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5BdWRp
dFRlc3RHcm91cENvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7
CiAKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9u
KQorICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb25Db250ZW50VmlldyhyZXByZXNl
bnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOworCiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJ
LkNvbGxlY3Rpb25Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMp
OwogCkBAIC0yNzMsOCArMjczLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50Vmll
dyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAo
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LlRpbWVsaW5lUmVjb3JkaW5nKQpAQCAtMzE4LDEwICszMTYsMTQgQEAgV0kuQ29udGVudFZpZXcg
PSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZSB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwCiAgICAgICAgICAgICB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5B
bmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBpZiAodHlwZW9mIHJlcHJlc2VudGVkT2JqZWN0ID09PSAic3RyaW5nIiB8
fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykKICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3RbV0kuQ29udGVudFZpZXcuaXNW
aWV3YWJsZVN5bWJvbF0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApAQCAtNTEyLDQgKzUxNCw1IEBAIFdJLkNvbnRlbnRWaWV3LkV2ZW50
ID0gewogICAgIE5hdmlnYXRpb25JdGVtc0RpZENoYW5nZTogImNvbnRlbnQtdmlldy1uYXZpZ2F0
aW9uLWl0ZW1zLWRpZC1jaGFuZ2UiCiB9OwogCitXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3lt
Ym9sID0gU3ltYm9sKCJpcy12aWV3YWJsZSIpOwogV0kuQ29udGVudFZpZXcuQ29udGVudFZpZXdG
b3JSZXByZXNlbnRlZE9iamVjdFN5bWJvbCA9IFN5bWJvbCgiY29udGVudC12aWV3LWZvci1yZXBy
ZXNlbnRlZC1vYmplY3QiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMK
aW5kZXggZTVhNWZlYzFlYWJiNWMwOTcyY2ZhMDUzZDUzNGMzNjAwOWUxYjc2Zi4uN2VkMGM4MmVi
M2I3MWVlYjZiYmIxZjk3ZTk3OTBmNmJiYmM1NTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1Nl
Y3Rpb25TaW1wbGVSb3cuanMKQEAgLTk2LDcgKzk2LDcgQEAgV0kuRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3cgPSBjbGFzcyBEZXRhaWxzU2VjdGlvblNpbXBsZVJvdyBleHRlbmRzIFdJLkRldGFpbHNT
ZWMKICAgICB7CiAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgIiI7CiAKLSAgICAgICAg
aWYgKHRoaXMuX3ZhbHVlKSB7CisgICAgICAgIGlmICh0aGlzLl92YWx1ZSB8fCB0aGlzLl92YWx1
ZSA9PT0gMCkgewogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV0ku
RGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuRW1wdHlTdHlsZUNsYXNzTmFtZSk7CiAKICAgICAgICAg
ICAgIC8vIElmIHRoZSB2YWx1ZSBoYXMgc3BhY2UgY2hhcmFjdGVycyB0aGF0IGNhdXNlIHdvcmQg
d3JhcHBpbmcgdGhlbiB3ZSBkb24ndCBuZWVkIHRoZSBkYXRhIGNsYXNzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBmMDViMGI0
NTRkMWUxZTAyN2Y5M2E2YjlmNzMzMTA0ZjRhOWE1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250
ZW50Vmlldy5jc3MKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcu
Z3JhcGhpY3Mtb3ZlcnZpZXcgeworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91
bmQtY29sb3ItY29udGVudCk7CisgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgIHBhZGRpbmct
Ym90dG9tOiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIGJhY2tncm91bmQtY29s
b3I6IGhzbCgwLCAwJSwgOTAlKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmll
dyA+IHNlY3Rpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBpbmhlcml0OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2Vj
dGlvbjpub3QoOmZpcnN0LWNoaWxkKSB7CisgICAgbWFyZ2luLXRvcDogMjBweDsKK30KKworLmNv
bnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsKKyAgICBk
aXNwbGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgcG9zaXRpb246IHN0
aWNreTsKKyAgICB0b3A6IDA7CisgICAgei1pbmRleDogMTsKKyAgICBtaW4taGVpZ2h0OiB2YXIo
LS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogOHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTsKKyAgICBib3JkZXItYm90
dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKSA+IC5oZWFkZXIg
eworICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisu
Y29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiBoMSB7
CisgICAgbWFyZ2luOiAwOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4g
c2VjdGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIGZsZXgtZ3JvdzogMTsK
KyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOworICAgIGJvcmRlci1ib3R0b206IG5vbmU7
Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAg
ICByaWdodDogMDsKKyAgICBib3R0b206IDA7CisgICAgbGVmdDogMDsKK30KKworQG1lZGlhIChw
cmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE0JSk7Cisg
ICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAu
aGVhZGVyIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAyMSUpOworICAg
IH0KK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJjM2IwNzVhYjljNDM2OTlmNjFjN2U3ZDE5OTY1MjBjZWFlNWY1MTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBHcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9y
KCkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNz
TGlzdC5hZGQoImdyYXBoaWNzLW92ZXJ2aWV3Iik7CisKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0
dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydC1y
ZWNvcmRpbmciLCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1
LCAxNSk7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2x0aXAg
PSBXSS5VSVN0cmluZygiSW1wb3J0Iik7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1h
Z2VBbmRUZXh0OworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRF
dmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMu
X2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAg
ICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmln
YXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxv
YWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0
aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNs
aWNrZWQsIHRoaXMuX2hhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAg
ICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0
dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFy
ZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFn
ZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9z
aG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hv
d0ltYWdlR3JpZC52YWx1ZTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9u
SXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNr
ZWQsIHRoaXMuX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAg
dGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IG5ldyBXSS5DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisKKyAgICAgICAg
dGhpcy5fb3ZlcnZpZXdWaWV3cyA9IFtdOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAg
Z2V0IHN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0cygpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5fb3ZlcnZpZXdWaWV3cy5mbGF0TWFwKChzdWJ2aWV3KSA9PiBzdWJ2aWV3LnN1cHBs
ZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0cyk7CisgICAgfQorCisgICAgZ2V0IG5hdmlnYXRpb25J
dGVtcygpCisgICAgeworICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW107CisgICAgICAg
IGlmICghV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIG5hdmln
YXRpb25JdGVtcy5wdXNoQWxsKHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcubmF2aWdh
dGlvbkl0ZW1zKTsKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKG5ldyBXSS5EaXZp
ZGVyTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICB9CisgICAgICAgIG5hdmlnYXRpb25JdGVtcy5w
dXNoKHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5hdmln
YXRpb25JdGVtLCB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3Nob3dH
cmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1z
OworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAg
ICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VH
cmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5k
bGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9oYW5k
bGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQoKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgp
CisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisK
KyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdD
aGFuZ2VkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAg
IGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOwor
CisgICAgICAgIGlmIChXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAgICAgICAg
ICAgbGV0IGNyZWF0ZVNlY3Rpb24gPSAoaWRlbnRpZmllciwgdGl0bGUsIG92ZXJ2aWV3Vmlldykg
PT4geworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG92ZXJ2aWV3VmlldyBpbnN0YW5j
ZW9mIFdJLkNvbnRlbnRWaWV3KTsKKworICAgICAgICAgICAgICAgIGxldCBzZWN0aW9uRWxlbWVu
dCA9IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0
aW9uIikpOworICAgICAgICAgICAgICAgIHNlY3Rpb25FbGVtZW50LmNsYXNzTmFtZSA9IGlkZW50
aWZpZXI7CisKKyAgICAgICAgICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9IHNlY3Rpb25FbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAg
ICAgICAgICBoZWFkZXJFbGVtZW50LmNsYXNzTmFtZSA9ICJoZWFkZXIiOworCisgICAgICAgICAg
ICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaDEiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRl
eHRDb250ZW50ID0gdGl0bGU7CisKKyAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1z
ID0gb3ZlcnZpZXdWaWV3Lm5hdmlnYXRpb25JdGVtczsKKyAgICAgICAgICAgICAgICBpZiAobmF2
aWdhdGlvbkl0ZW1zLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlv
bkJhciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5hdiIp
LCBuYXZpZ2F0aW9uSXRlbXMpOworICAgICAgICAgICAgICAgICAgICBoZWFkZXJFbGVtZW50LmFw
cGVuZENoaWxkKG5hdmlnYXRpb25CYXIuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIHRo
aXMuYWRkU3VidmlldyhuYXZpZ2F0aW9uQmFyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBsZXQgY29udGVudEVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAgY29udGVu
dEVsZW1lbnQuY2xhc3NOYW1lID0gImNvbnRlbnQiOworCisgICAgICAgICAgICAgICAgY29udGVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQob3ZlcnZpZXdWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAg
ICAgIHRoaXMuYWRkU3VidmlldyhvdmVydmlld1ZpZXcpOworCisgICAgICAgICAgICAgICAgb3Zl
cnZpZXdWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50
LlNlbGVjdGVkSXRlbUNoYW5nZWQsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRl
bUNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExp
c3RlbmVyKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0
c0RpZENoYW5nZSwgdGhpcy5faGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50
ZWRPYmplY3RzRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9vdmVydmll
d1ZpZXdzLnB1c2gob3ZlcnZpZXdWaWV3KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAg
IGNyZWF0ZVNlY3Rpb24oImNhbnZhcyIsIFdJLlVJU3RyaW5nKCJDYW52YXNlcyIpLCB0aGlzLl9j
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3KTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNv
bGxlY3Rpb24gPSBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAg
ICAgICAgICBjcmVhdGVTZWN0aW9uKCJ3ZWItYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIldlYiBB
bmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0
aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlw
ZS5XZWJBbmltYXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3MtYW5pbWF0
aW9uIiwgV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9u
Rm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb24pKSk7CisgICAgICAgICAgICBj
cmVhdGVTZWN0aW9uKCJjc3MtdHJhbnNpdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlv
bnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25Db2xs
ZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLkNTU1Ry
YW5zaXRpb24pKSk7CisKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3KTsKKworICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0
aGlzKTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmluZygiSW1wb3J0IFJl
Y29yZGluZyIpOworICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxl
bWVudDsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgfQorCisg
ICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVnYXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFwcGVhckZv
ckRyYWdFdmVudChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gZXZlbnQu
ZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAgIGRyb3Ba
b25lSGFuZGxlRHJvcChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZmlsZXMg
PSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09
IDEpIHsKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5iZWVwKCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRK
U09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3Vs
dCkpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpCisgICAgeworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5f
b3ZlcnZpZXdWaWV3cykKKyAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5oYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCgpOworICAgIH0KKworICAgIF9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQo
ZXZlbnQpCisgICAgeworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0g
IXRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOworICAgIH0KKwor
ICAgIF9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAg
dGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRp
bmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgfQorCisgICAgX2hhbmRsZUltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAgIFdJLkZpbGVVdGls
aXRpZXMuaW1wb3J0SlNPTigocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09O
KHJlc3VsdCksIHttdWx0aXBsZTogdHJ1ZX0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmll
d1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVu
dC50YXJnZXQuc2VsZWN0ZWRJdGVtKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZv
ciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAg
ICBpZiAob3ZlcnZpZXdWaWV3ICE9PSBldmVudC50YXJnZXQgJiYgb3ZlcnZpZXdWaWV3LnNlbGVj
dGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9
IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxl
bWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKGV2bmV0KQorICAgIHsKKyAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxl
bWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKKyAgICB9CisKKyAgICBfaGFuZGxl
Q2xpY2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmVs
ZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdW
aWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld1Zp
ZXcuc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0
ZWRJdGVtID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNz
VGFiQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNWFmZDgxNjBmMTYwZjYwMzQyYmFiZGZh
M2UwZGZiMDM1OWU3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7CisgICAgY29udGVudDogdXJs
KC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5n
cmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7
CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOworfQorCisuY29udGVu
dC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNo
ZXMoLndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29uIHsKKyAgICBjb250
ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFi
LmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7Cisg
ICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKK30KKworLmNvbnRlbnQt
dmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFt
ID4gLmljb24geworICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50
R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOworfQorCitA
bWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy50
YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmdyYXBoaWNzLW92ZXJ2aWV3IC5p
Y29uIHsKKyAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKKyAgICB9CisKKyAgICAuY29udGVu
dC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29u
LAorICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7CisgICAgfQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
R3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhkY2Yy
YjEwOWE4Mjc1ZDM3MTA3MjVlYWZjODkwYWNkYTYwYzMxNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVu
dFZpZXcuanMKQEAgLTAsMCArMSwzMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5HcmFwaGljc1RhYkNv
bnRlbnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRCcm93c2VyVGFiQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAg
ICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbygpKTsKKworICAgICAgICBjb25zdCBuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBXSS5DYW52YXNTaWRlYmFyUGFuZWw7Cisg
ICAgICAgIGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMgPSBbCisgICAgICAg
ICAgICBXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBX
SS5SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5DYW52
YXNEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbCwKKyAgICAgICAgXTsKKyAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJk
ID0gdHJ1ZTsKKyAgICAgICAgc3VwZXIoImdyYXBoaWNzIiwgWyJncmFwaGljcyJdLCB0YWJCYXJJ
dGVtLCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFu
ZWxDb25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2FyZCk7CisKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZTsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0
aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUu
RXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5l
U2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVF
bGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudCgiY2FudmFzLW92ZXJ2aWV3IiwgV0ku
VUlTdHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHtbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5
bWJvbF06IHRydWV9KTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hcHBlbmRD
aGlsZCh0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50KTsKKworICAgICAgICB0aGlzLl9zYXZlZENh
bnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5V
SVN0cmluZygiU2F2ZWQgUmVjb3JkaW5ncyIpKTsKKyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNS
ZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFz
ZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVl
RWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9h
cmRTaG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFu
ZGxlU3BhY2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmltcGxp
Y2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRj
dXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hv
cnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlm
aWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3Bh
Y2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQu
aW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRT
aW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmVuYWJsZSgpOworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVuYWJsZSgpOwor
ICAgIH0KKworICAgIHN0YXRpYyB0YWJJbmZvKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICBpbWFnZTogIkltYWdlcy9HcmFwaGljcy5zdmciLAorICAgICAgICAgICAgdGl0
bGU6IFdJLlVJU3RyaW5nKCJHcmFwaGljcyIpLAorICAgICAgICB9OworICAgIH0KKworICAgIHN0
YXRpYyBpc1RhYkFsbG93ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tl
bmQuaGFzRG9tYWluKCJDYW52YXMiKQorICAgICAgICAgICAgfHwgSW5zcGVjdG9yQmFja2VuZC5o
YXNEb21haW4oIkFuaW1hdGlvbiIpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgdHJl
ZUVsZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChy
ZXByZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZTsKKyAgICB9CisKKyAgICBn
ZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCisg
ICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzaG93UmVwcmVzZW50ZWRP
YmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSkKKyAgICB7CisgICAgICAgIGlmIChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZp
ZXcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuc2hv
d1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpOworICAgIH0KKwor
ICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxl
Y3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29y
ZGluZ0NvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuUmVjb3JkaW5nCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLlNoYWRlclByb2dyYW1Db2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0KKyAgICAgICAgICAgIHx8IHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbgorICAgICAgICAg
ICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb247CisgICAgfQor
CisgICAgY2xvc2VkKCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZGlzYWJs
ZSgpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKKworICAgICAgICBzdXBl
ci5jbG9zZWQoKTsKKyAgICB9CisKKyAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkK
KyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9CisKKyAgICBzYXZlU3RhdGVUb0Nvb2tp
ZShjb29raWUpCisgICAgeworICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAgYXN5bmMg
aGFuZGxlRmlsZURyb3AoZmlsZXMpCisgICAgeworICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0
aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NK
U09OKHJlc3VsdCkpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQo
KQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2
ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xs
ZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlz
KTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JT
dG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2Fu
dmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JT
dG9wcGVkLCB0aGlzKTsKKworICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB0aGlzLl9jYW52YXNl
c1RyZWVFbGVtZW50LmNoaWxkcmVuKSB7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gY2hpbGQu
cmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgICAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgV0ku
Q2FudmFzICYmICFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykp
CisgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0K
KworICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmlu
ZFRyZWVFbGVtZW50KGNhbnZhcykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGNh
bnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2Fu
dmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3MpIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVjb3JkaW5nKSkKKyAgICAgICAgICAg
ICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5n
OiB0cnVlfSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNh
YmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRp
c2FibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAg
dGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICB0aGlzLl9yZWNv
cmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5DYW52
YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwg
dGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5S
ZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMp
OworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFz
QWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlz
Ll9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgp
OworICAgIH0KKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fb3Zl
cnZpZXdDb250ZW50VmlldyA9IG5ldyBXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXc7Cisg
ICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3
Q29udGVudFZpZXcpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9hZGRDYW52YXMo
Y2FudmFzKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBlbmRD
aGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7CisKKyAgICAgICAgY29uc3Qg
b3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKKyAg
ICAgICAgfTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGlu
Z0NvbGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBv
cHRpb25zKTsKKyAgICB9CisKKyAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAg
ICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVF
bGVtZW50KGNhbnZhcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlz
c2luZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOworCisgICAgICAgIGNvbnN0
IHN1cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxl
Y3Qoc3VwcHJlc3NOb3RpZmljYXRpb24pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVt
ZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKKworICAgICAgICBsZXQgY3VycmVudENvbnRl
bnRWaWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CisgICAgICAg
IGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykK
KyAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24pOworICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5z
dGFuY2VvZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVj
dGlvbi5oYXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKKyAgICAgICAg
ICAgIHRoaXMuY29udGVudEJyb3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRD
b250ZW50VmlldygpOworCisgICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhp
cy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsOworICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQ
YW5lbCBpbnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLnZpc2libGUpCisgICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0
ZVJlcHJlc2VudGVkT2JqZWN0cygpOworCisgICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFy
UGFuZWxzKCk7CisgICAgfQorCisgICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMg
PSB7fSkKKyAgICB7CisgICAgICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgeworICAgICAgICAg
ICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVF
bGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRp
bmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICAgICAgdGhpcy5f
c2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7CisgICAgICAg
ICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChy
ZWNvcmRpbmdUcmVlRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9wdGlvbnMu
c3VwcHJlc3NTaG93UmVjb3JkaW5nKQorICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRP
YmplY3QocmVjb3JkaW5nKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQp
CisgICAgeworICAgICAgICB0aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9
CisKKyAgICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMu
X3JlbW92ZUNhbnZhcyhldmVudC5kYXRhLml0ZW0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVy
dmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuc2VsZWN0ZWRU
cmVlRWxlbWVudDsKKyAgICAgICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgc3dpdGNoIChzZWxlY3RlZEVsZW1lbnQpIHsKKyAgICAgICAgY2Fz
ZSB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50OgorICAgICAgICBjYXNlIHRoaXMuX3NhdmVkQ2Fu
dmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50OgorICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nl
ci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBz
ZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGlmICghdGhpcy5jYW5T
aG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7CisgICAgICAgICAgICBj
b25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVw
cmVzZW50ZWRPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0K
KworICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKKyAgICB7CisgICAg
ICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRh
dGE7CisgICAgICAgIGlmICghcmVjb3JkaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGxldCBvcHRpb25zID0ge307CisKKyAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQg
cmVjb3JkaW5ncy4KKyAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQor
ICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlV
c2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21l
KChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5S
ZWNvcmRpbmcpOworCisgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlv
bnMpOworICAgIH0KKworICAgIF9oYW5kbGVTcGFjZShldmVudCkKKyAgICB7CisgICAgICAgIGlm
IChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsLmNhbnZhczsKKyAgICAgICAgaWYgKCFjYW52YXMpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCisgICAgICAgICAgICBj
YW52YXMuc3RvcFJlY29yZGluZygpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxldCBz
aW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7CisgICAgICAgICAgICBjYW52YXMuc3RhcnRS
ZWNvcmRpbmcoc2luZ2xlRnJhbWUpOworICAgICAgICB9CisKKyAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsKKyAgICB9Cit9OworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUg
PSAiZ3JhcGhpY3MiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTWFpbi5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9NYWluLmNzcwppbmRleCA5ZjEwNWYxZTk2ZTgzMWNlNTQ1MTA0OTM4NGU3YWQ4ZDYx
ODM0NWE0Li44ZmUxMzFjMmYwZTM2MTc2ZWZhMGZjYWJkMDJjMjc1ODY0YzZmYWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwpA
QCAtMjA5LDEyICsyMDksMTIgQEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAj
bmF2aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICBtYXJnaW4tYm90
dG9tOiAxNXB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxw
IHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgbGlu
ZS1oZWlnaHQ6IDIycHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVt
LWhlbHAgLm5hdmlnYXRpb24tYmFyIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0
aW9uLWJhciB7CiAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgaGVpZ2h0OiAyMHB4Owog
ICAgIHBhZGRpbmc6IDAgNHB4OwpAQCAtMjIyLDkgKzIyMiw5IEBAIGJvZHkuZG9ja2VkOm1hdGNo
ZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXpl
ciB7CiAgICAgdmVydGljYWwtYWxpZ246IC0zcHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAu
bmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0geworLm5hdmlnYXRp
b24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAgIGhlaWdodDogMTAw
JTsKLSAgICBwYWRkaW5nOiAwIDRweDsKKyAgICBwYWRkaW5nOiAwIDRweCAhaW1wb3J0YW50Owog
ICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm9yZGVy
OiBzb2xpZCAxcHggdmFyKC0tYm9yZGVyLWNvbG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRl
bnRWaWV3LmNzcwppbmRleCA4ZDYwZjIzZjBiMmJlYzcwZDhiZTgzZDAyMTdhNzBhYzc0ZmQyMzU4
Li4xMWYxZGQ4MmU1NTM3NzAxOTBiMmZmN2ViOGI2MDhlZWM3ZTI5YzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50
Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCkBAIC0yMywxOCArMjMsMTggQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5y
ZWNvcmRpbmcgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgewogICAgIGRpc3BsYXk6IGZsZXg7
CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwYWRkaW5nOiAxMHB4OwogICAgIGJh
Y2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3Qo
LnRhYikucmVjb3JkaW5nID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVh
ZGVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgu
dGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisuY29udGVudC12
aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKICAgICBkaXNwbGF5
OiBmbGV4OwogICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICBwYWRkaW5nOiA0cHggMDsKQEAgLTQz
LDMxICs0MywzMSBAQAogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKIH0KIAotLmNvbnRlbnQtdmll
dzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsK
Ky5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAq
IHsKICAgICBtYXJnaW46IDRweCA4cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJl
Y29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7Cisu
Y29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNs
aWRlci12YWx1ZSB7CiAgICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7CiAgICAgZm9u
dC1mYW1pbHk6IDExcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+
IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworLmNvbnRl
bnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5
cGU9cmFuZ2VdIHsKICAgICBmbGV4OiAxOwogICAgIHdpZHRoOiAxMDAlOwogfQogCi0uY29udGVu
dC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+
IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CisuY29u
dGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRb
dHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6
IDJweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGJv
cmRlci1yYWRpdXM6IDFweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5n
ID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xp
ZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7
CiAgICAgbWFyZ2luLXRvcDogLTZweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nID4gLnByZXZpZXctY29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4g
LnByZXZpZXctY29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXg6IDE7CiAg
ICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CkBAIC03NywyNyArNzcsMjcgQEAKICAgICBoZWln
aHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIp
LnJlY29yZGluZyA6bWF0Y2hlcyhpbWcsIGNhbnZhcykgeworLmNvbnRlbnQtdmlldy5yZWNvcmRp
bmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAg
bWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyBjYW52YXMucGF0aCB7CisuY29udGVudC12aWV3LnJlY29y
ZGluZyBjYW52YXMucGF0aCB7CiAgICAgei1pbmRleDogMTA7CiB9CiAKIEBtZWRpYSAocHJlZmVy
cy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNv
cmRpbmcgeworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nIHsKICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdW5zZXQ7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgeworICAgIC5jb250ZW50LXZpZXcu
cmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgewogICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB1bnNldDsKICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29s
b3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNv
cmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsK
KyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVy
ID4gaW5wdXRbdHlwZT1yYW5nZV0gewogICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpp
bmRleCAzYTlhOWFlZmYyOWM1ZWZjZDc3OWJiNGQyOTA0MGFhZDg5ZGJmMWQ0Li4yZjk0YmM3NDA5
ZjRkNTU0NjY1Y2RlODljOWYwZjk5Y2FkZWY5NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmll
dy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVz
b3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0yMyw2ICsyMywxNCBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy5jb250ZW50LXZpZXcucmVzb3Vy
Y2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWcgeworICAgIG91dGxpbmU6IDAuNXB4
IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcucmVzb3VyY2Ut
Y29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIgeworICAgIG91dGxpbmUtY29s
b3I6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSkKK30KKwogLnJlc291cmNlLWNvbGxlY3Rpb24t
aW1hZ2UtdHlwZS1zY29wZS1iYXIuZGVmYXVsdC1pdGVtLXNlbGVjdGVkIHsKICAgICAtLXNjb3Bl
LWJhci10ZXh0LWNvbG9yLW92ZXJyaWRlOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICAtLXNjb3Bl
LWJhci1iYWNrZ3JvdW5kLWNvbG9yLW92ZXJyaWRlOiB0cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggYzk0ZWNhNzc3MjE0
ZTMxZGM1ZDgxZTYxMDkwNjA2M2Y3N2M3NGZjYy4uZmMxYzZhMmNkNGFhN2RhMTk1MGMwYTNkM2Zm
MDYzNDMyZjk3ZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcuanMKQEAgLTM1LDYgKzM1LDggQEAgV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVu
dFZpZXcgPSBjbGFzcyBSZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFcKIAog
ICAgICAgICBzdXBlcihjb2xsZWN0aW9uLCBjb250ZW50Vmlld0NvbnN0cnVjdG9yKTsKIAorICAg
ICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgicmVzb3VyY2UtY29sbGVjdGlvbiIpOwor
CiAgICAgICAgIGlmIChjb2xsZWN0aW9uLnJlc291cmNlVHlwZSA9PT0gV0kuUmVzb3VyY2UuVHlw
ZS5JbWFnZSkgewogICAgICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5V
SVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFu
c3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMs
IDEzKTsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRk
RXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlz
Ll9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlZjc2NDM1ZDAy
NThhMmUyNjYyYmY5YjVmMTFhOGJhZDJjZTFhMzguLmI5NWI4YjZkZjg3MzBjZTA2NmQ0MDZkZTc1
NDkzOGUwNTcxZjY1NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MSBAQAorMjAxOS0xMi0yMSAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5n
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xp
ZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9h
bmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJh
bnNpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRp
b24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdFRhcmdldC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RUYXJnZXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5p
bWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlv
bi90YXJnZXRDaGFuZ2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRp
b24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6IEFkZGVkLgorICAg
ICAgICAoY3JlYXRlQW5pbWF0aW9uKToKKyAgICAgICAgKGRlc3Ryb3lBbmltYXRpb25zKToKKyAg
ICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGF3
YWl0QW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxp
ZmVjeWNsZVV0aWxpdGllcy5hc3luYyBhd2FpdEFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAg
IChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBjcmVhdGVB
bmltYXRpb24pOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGls
aXRpZXMuYXN5bmMgZGVzdHJveUFuaW1hdGlvbnMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanM6CisgICAgICAgIChkZXN0
cm95Q2FudmFzZXMpOgorICAgICAgICAoYXdhaXRDYW52YXNBZGRlZCk6CisgICAgICAgIChJbnNw
ZWN0b3JUZXN0LkNyZWF0ZUNvbnRleHRVdGlsaXRpZXMuaW5pdGlhbGl6ZVRlc3RTdWl0ZSk6CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvbWVtb3J5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q2xpZW50Tm9kZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC1iaXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVz
dENvbnRlbnQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5v
ZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5k
ZXJlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmds
Mi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1
Lmh0bWw6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0
aWxpdGllcy5qczoKKyAgICAgICAgKHdpbmRvdy5nZXRDYW52YXMpOgorCisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZy
YWdtZW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVy
UHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzOgorICAgICAgICAoZGVs
ZXRlQ29udGV4dCk6CisgICAgICAgICh3aGVuUHJvZ3JhbUFkZGVkKToKKyAgICAgICAgKHdpbmRv
dy5pbml0aWFsaXplVGVzdFN1aXRlKToKKyAgICAgICAgKHdpbmRvdy5hZGRQYXJlbnRDYW52YXNS
ZW1vdmVkVGVzdENhc2UpOgorCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1o
YXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10
ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMTkt
MTItMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIERl
YnVnXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3VzdnN0cmluZy1y
ZWZsZWN0aW9uLmh0dHBzLmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIyZjMzY2JkN2Y5MzNkM2I0OWJiZmY1ZDM3OGRlNTdiODIzMTJiZTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmVm
ZmVjdENoYW5nZWQgZXZlbnQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24u
ZWZmZWN0Q2hhbmdlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFu
Z2VkLk5ld0VmZmVjdAorUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0No
YW5naW5nIGVmZmVjdC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0
LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTnVsbEVmZmVjdAorUEFTUzog
QW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0NoYW5naW5nIGVmZmVjdC4uLgorCitQ
QVNTOiBBbmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlv
biBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDVkODViMWUx
ZjIxNjg4MWZmYmQ2ZjYxYjM3NDdjNzBkYmYxNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0g
ZG9jdW1lbnQuYm9keS5hbmltYXRlKFt7b3BhY2l0eTogMH1dKTsKKworICAgIHJ1blRlc3QoKTsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCIpOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTmV3
RWZmZWN0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2Jq
ZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmlt
YXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBi
ZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0
aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAg
dGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24u
YW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0
aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRL
ZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3ROb3RFbXB0eShvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4g
ZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgZWZm
ZWN0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAg
ICAgICBhbmltYXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdl
ZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93
LmFuaW1hdGlvbi5lZmZlY3QgPSBuZXcgS2V5ZnJhbWVFZmZlY3Qod2luZG93LmFuaW1hdGlvbi5l
ZmZlY3QudGFyZ2V0LCBbe29wYWNpdHk6IDF9XSwge30pYCksCisgICAgICAgICAgICBdKTsKKwor
ICAgICAgICAgICAgbGV0IG5ld0tleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG5ld0tleWZyYW1lcywgIkFuaW1h
dGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xkS2V5ZnJhbWVzLCAiQW5p
bWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0p
OworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVm
ZmVjdENoYW5nZWQuTnVsbEVmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJl
dHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIs
CisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFy
cmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhl
cmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFu
aW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgewor
ICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFu
aW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAg
ICAgICAgICBsZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9u
IHNob3VsZCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNoYW5naW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFs
bChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2
ZW50LkVmZmVjdENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbnVsbGApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVz
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFbXB0eShuZXdLZXlmcmFtZXMsICJB
bmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwobmV3S2V5ZnJhbWVzLCBvbGRLZXlmcmFt
ZXMsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0
aGUgQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3Nz
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTYzMTE2
OTg4ZDU2YjhiYWQ0N2YxM2ViZWZjYmNiMWI0ZmJjNTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0
aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNo
b3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4KK1BB
U1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgQW5pbWF0aW9uLgorc3RhcnREZWxheTog
MTAwCitpdGVyYXRpb25Db3VudDogMgoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVu
Y3Rpb246ICJsaW5lYXIiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2Rl
OiAiYm90aCIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLAorICAgICJzdHls
ZSI6ICJjb2xvcjogcmdiKDI1NSwgMCwgMCk7XG5vcGFjaXR5OiAwOyIKKyAgfSwKKyAgeworICAg
ICJvZmZzZXQiOiAwLjUsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMCwgMTI4LCAwKTtcbm9w
YWNpdHk6IDAuNTsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMSwKKyAgICAic3R5bGUiOiAi
Y29sb3I6IHJnYigwLCAwLCAyNTUpO1xub3BhY2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWlu
ZyBhbmltYXRpb25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1v
dmVkIGFuaW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MGY1ZTAyOTM3YmIxZWIyNTdmZTY3MzRmOWU4Y2IxZDYyZmU2YTUwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUt
Y3NzLWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOldlYkFuaW1hdGlvbnNDU1NJbnRlZ3Jh
dGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KK0BrZXlmcmFtZXMgZmFkZS1pbiB7CisgICAgZnJvbSB7CisgICAgICAg
IGNvbG9yOiByZWQ7CisgICAgICAgIG9wYWNpdHk6IDA7CisgICAgfQorICAgIDUwJSB7CisgICAg
ICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgb3BhY2l0eTogMC41OworICAgIH0KKyAgICB0byB7
CisgICAgICAgIGNvbG9yOiBibHVlOworICAgICAgICBvcGFjaXR5OiAxOworICAgIH0KK30KK2Rp
diN0YXJnZXQuYWN0aXZlIHsKKyAgICBhbmltYXRpb24tbmFtZTogZmFkZS1pbjsKKyAgICBhbmlt
YXRpb24tZHVyYXRpb246IDQwMG1zOworICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1
YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpOworICAgIGFuaW1hdGlvbi1kZWxheTogMTAw
bXM7CisgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICBhbmltYXRpb24tZGly
ZWN0aW9uOiBhbHRlcm5hdGU7CisgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKK30KKzwv
c3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisKKyAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5Y2xl
LkNTU0FuaW1hdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBXZWIgSW5z
cGVjdG9yIGlzIG5vdGlmaWVkIHdoZW5ldmVyIENTUyBhbmltYXRpb25zIGFyZSBjcmVhdGVkL2Rl
c3Ryb3llZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24u
c2l6ZSwgMCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7CisKKyAgICAg
ICAgICAgIGxldCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1h
dGlvbkNyZWF0ZWQoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uKSwKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOwor
CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95
ZWQoYW5pbWF0aW9uLmFuaW1hdGlvbklkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucygpLAorICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKWApLAorICAgICAgICAg
ICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRG
aW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFu
aW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAgICA8ZGl2IGlkPSJ0YXJn
ZXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2OTI3Y2YxNmJjNjMxNzViOGIxZjBmOGUyYTA0YTAw
N2VjNmVmYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBA
QAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9u
LmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBB
bmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLkxpZmVj
eWNsZS5DU1NUcmFuc2l0aW9uCitQQVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRp
b25zLgorUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCitQQVNTOiBBbmltYXRpb24gdHlwZSBzaG91
bGQgYmUgQ1NTIFRyYW5zaXRpb24uCitzdGFydERlbGF5OiAxMDAKK2l0ZXJhdGlvbkNvdW50OiAx
CitpdGVyYXRpb25EdXJhdGlvbjogNDAwCit0aW1pbmdGdW5jdGlvbjogImN1YmljLWJlemllcigw
LjEsIDAuMiwgMC4zLCAwLjQpIgorcGxheWJhY2tEaXJlY3Rpb246ICJub3JtYWwiCitmaWxsTW9k
ZTogImJhY2t3YXJkcyIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLAorICAg
ICJzdHlsZSI6ICJvcGFjaXR5OiAwOyIKKyAgfSwKKyAgeworICAgICJvZmZzZXQiOiAxLAorICAg
ICJzdHlsZSI6ICJvcGFjaXR5OiAxOyIKKyAgfQorXQorCitEZXN0cm95aW5nIGFuaW1hdGlvbnMu
Li4KKworUEFTUzogQW5pbWF0aW9uIGRlc3Ryb3llZC4KK1BBU1M6IFJlbW92ZWQgYW5pbWF0aW9u
IGhhcyBleHBlY3RlZCBJRC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTAxYzBjZDc2MWI5M2MwMzY2NDg1MWE4M2ZmOWI5ZTE2NzFlNmVkNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0
aW9uLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBleHBlcmltZW50YWw6V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxl
ZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0
eWxlPgorZGl2I3RhcmdldCB7CisgICAgY29sb3I6IHJlZDsKKyAgICBvcGFjaXR5OiAwOworCit9
CitkaXYjdGFyZ2V0LmFjdGl2ZSB7CisgICAgY29sb3I6IGJsdWU7CisgICAgb3BhY2l0eTogMTsK
KworICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7CisgICAgdHJhbnNpdGlvbi1kdXJh
dGlvbjogNDAwbXM7CisgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemll
cigwLjEsIDAuMiwgMC4zLCAwLjQpOworICAgIHRyYW5zaXRpb24tZGVsYXk6IDEwMG1zOworfQor
PC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3lj
bGUuQ1NTVHJhbnNpdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBXZWIg
SW5zcGVjdG9yIGlzIG5vdGlmaWVkIHdoZW5ldmVyIENTUyB0cmFuc2l0aW9ucyBhcmUgY3JlYXRl
ZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0
aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIpOworCisg
ICAgICAgICAgICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRB
bmltYXRpb25DcmVhdGVkKFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb24pLAorICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKWApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkRl
c3Ryb3llZChhbmltYXRpb24uYW5pbWF0aW9uSWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmRlc3Ryb3lBbmltYXRpb25zKCksCisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpYCksCisgICAg
ICAgICAgICBdKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNl
c0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBh
bmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuPC9wPgorICAgIDxkaXYgaWQ9
InRhcmdldCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhYTZiOGRhNTlmZmQ2ZjdiZjBkMWYwNWI4NTVl
NTk3YTEwOGJhZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5
IEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRp
b24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6
IEFuaW1hdGlvbi5MaWZlY3ljbGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlm
ZWN5Y2xlLldlYkFuaW1hdGlvbgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0
aW9ucy4KK0NyZWF0aW5nIGFuaW1hdGlvbi4uLgorCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4K
KyAgMDogYW5pbWF0ZSAtIFtuYXRpdmUgY29kZV0KKyAgMTogY3JlYXRlQW5pbWF0aW9uIC0gaW5z
cGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qczo3OjM1Cisg
IDI6IEdsb2JhbCBDb2RlIC0gW3Byb2dyYW0gY29kZV0KKyAgMzogZXZhbHVhdGVXaXRoU2NvcGVF
eHRlbnNpb24gLSBbbmF0aXZlIGNvZGVdCisgIDQ6IChhbm9ueW1vdXMgZnVuY3Rpb24pIC0gW25h
dGl2ZSBjb2RlXQorICA1OiBfd3JhcENhbGwgLSBbbmF0aXZlIGNvZGVdCitQQVNTOiBBbmltYXRp
b24gdHlwZSBzaG91bGQgYmUgV2ViIEFuaW1hdGlvbi4KK3N0YXJ0RGVsYXk6IDEwMAorZW5kRGVs
YXk6IDIwMAoraXRlcmF0aW9uQ291bnQ6IDEwCitpdGVyYXRpb25TdGFydDogNQoraXRlcmF0aW9u
RHVyYXRpb246IDMwMAordGltaW5nRnVuY3Rpb246ICJlYXNlLWluLW91dCIKK3BsYXliYWNrRGly
ZWN0aW9uOiAiYWx0ZXJuYXRlIgorZmlsbE1vZGU6ICJib3RoIgora2V5ZnJhbWVzOgorWworICB7
CisgICAgIm9mZnNldCI6IDAuMjUsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAw
LjIsIDAuMywgMC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZWQ7XG5vcGFjaXR5OiAwOyIK
KyAgfSwKKyAgeworICAgICJvZmZzZXQiOiAwLjc1LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6
aWVyKDAuNiwgMC43LCAwLjgsIDAuOSkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogYmx1ZTtcbm9w
YWNpdHk6IDE7IgorICB9CitdCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYwMjcwYTRiMjdkMWRjMGJhYTY3Njc0YWI3MDdjMDk4YmNhOGJhZjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0
aW9uLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xpZmVjeWNs
ZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9u
LkxpZmVjeWNsZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
QW5pbWF0aW9uLkxpZmVjeWNsZS5XZWJBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciB3ZWIgYW5pbWF0
aW9ucyBhcmUgY3JlYXRlZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5h
bmltYXRpb25Db2xsZWN0aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmlt
YXRpb25zLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYXdhaXQgSW5zcGVjdG9y
VGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3JlYXRlQW5pbWF0aW9uKFdJLkFuaW1h
dGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgeworICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAiYm9k
eSIsCisgICAgICAgICAgICAgICAga2V5ZnJhbWVzOiBbCisgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMC4yNSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVhc2luZzogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbG9yOiAicmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9wYWNpdHk6IDAsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMC43NSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVhc2luZzogImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAiYmx1ZSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICBvcGFjaXR5OiAxLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgICAgICAgICBkZWxh
eTogMTAwLAorICAgICAgICAgICAgICAgICAgICBlbmREZWxheTogMjAwLAorICAgICAgICAgICAg
ICAgICAgICBkdXJhdGlvbjogMzAwLAorICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJlYXNl
LWluLW91dCIsCisgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogImFsdGVybmF0ZSIsCisg
ICAgICAgICAgICAgICAgICAgIGZpbGw6ICJib3RoIiwKKyAgICAgICAgICAgICAgICAgICAgaXRl
cmF0aW9uczogMTAsCisgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvblN0YXJ0OiA1LAorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRp
b24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVu
dHMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi9yZXF1ZXN0VGFyZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdFRhcmdldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDhkMjY2OTlhYjc2OGVlMDIyMTgyNjEwMDQ4ZWJmMWVhYjE1MmQ1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdFRhcmdldC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0NCBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24ucmVxdWVzdFRh
cmdldCBjb21tYW5kLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLnJlcXVl
c3RUYXJnZXQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24ucmVxdWVzdFRhcmdldC5X
aXRoVGFyZ2V0CitDcmVhdGluZyBhbmltYXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9uIGNyZWF0
ZWQuCisgIDA6IGFuaW1hdGUgLSBbbmF0aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1hdGlvbiAt
IGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6Nzoz
NQorICAyOiBHbG9iYWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uIC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0aW9uKSAt
IFtuYXRpdmUgY29kZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFTUzogQW5p
bWF0aW9uIHR5cGUgc2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitpdGVyYXRpb25Db3VudDogMQor
dGltaW5nRnVuY3Rpb246ICJsaW5lYXIiCitwbGF5YmFja0RpcmVjdGlvbjogIm5vcm1hbCIKK2Zp
bGxNb2RlOiAiYXV0byIKKworUEFTUzogQW5pbWF0aW9uIGhhcyBhIHZhbGlkIERPTSBub2RlIHRh
cmdldC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXF1ZXN0VGFyZ2V0Lldp
dGhvdXRUYXJnZXQKK0NyZWF0aW5nIGFuaW1hdGlvbi4uLgorCitQQVNTOiBBbmltYXRpb24gY3Jl
YXRlZC4KKyAgMDogKGFub255bW91cyBmdW5jdGlvbikgLSBbbmF0aXZlIGNvZGVdCisgIDE6IGNy
ZWF0ZUFuaW1hdGlvbiAtIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11
dGlsaXRpZXMuanM6OTozNAorICAyOiBHbG9iYWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisgIDM6
IGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5vbnlt
b3VzIGZ1bmN0aW9uKSAtIFtuYXRpdmUgY29kZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2ZSBj
b2RlXQorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitpdGVy
YXRpb25Db3VudDogMQordGltaW5nRnVuY3Rpb246ICJsaW5lYXIiCitwbGF5YmFja0RpcmVjdGlv
bjogIm5vcm1hbCIKK2ZpbGxNb2RlOiAiYXV0byIKKworUEFTUzogQW5pbWF0aW9uIGRvZXMgbm90
IGhhdmUgYSB2YWxpZCBET00gbm9kZSB0YXJnZXQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBB
bmltYXRpb24ucmVxdWVzdFRhcmdldC5JbnZhbGlkSWRlbnRpZmllcgorUEFTUzogU2hvdWxkIHBy
b2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IE1pc3NpbmcgYW5pbWF0aW9uIGZvciBnaXZlbiBh
bmltYXRpb25JZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L3JlcXVlc3RUYXJnZXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVx
dWVzdFRhcmdldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMzNkMmE5OWJhNDhmNTUwYjMwY2ZkN2Q2M2U2
YTU1NjQzN2M5ODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL3JlcXVlc3RUYXJnZXQuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3lu
Y1N1aXRlKCJBbmltYXRpb24ucmVxdWVzdFRhcmdldCIpOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlcXVlc3RUYXJnZXQuV2l0aFRhcmdldCIs
CisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIGJlIGFibGUgdG8gZ2V0IHRoZSBET00gbm9k
ZSB0YXJnZXQgZm9yIGFuIGFuaW1hdGlvbiB0aGF0IGhhcyBhIHRhcmdldC4iLAorICAgICAgICBh
c3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGF3YWl0IEluc3BlY3Rv
clRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmNyZWF0ZUFuaW1hdGlvbihXSS5Bbmlt
YXRpb24uVHlwZS5XZWJBbmltYXRpb24sIHtzZWxlY3RvcjogImJvZHkifSk7CisgICAgICAgICAg
ICBsZXQgZG9tTm9kZSA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0VGFyZ2V0KCk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSBpbnN0YW5jZW9mIFdJLkRPTU5v
ZGUsICJBbmltYXRpb24gaGFzIGEgdmFsaWQgRE9NIG5vZGUgdGFyZ2V0LiIpOworICAgICAgICB9
LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5p
bWF0aW9uLnJlcXVlc3RUYXJnZXQuV2l0aG91dFRhcmdldCIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIGdldCB0aGUgRE9NIG5vZGUgdGFyZ2V0IGZvciBhbiBh
bmltYXRpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGEgdGFyZ2V0LiIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5B
bmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3JlYXRlQW5pbWF0aW9uKFdJLkFuaW1hdGlvbi5U
eXBlLldlYkFuaW1hdGlvbik7CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IGF3YWl0IGFuaW1h
dGlvbi5yZXF1ZXN0VGFyZ2V0KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE51
bGwoZG9tTm9kZSwgIkFuaW1hdGlvbiBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgRE9NIG5vZGUgdGFy
Z2V0LiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgLy8gLS0tLS0tCisKKyAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24ucmVxdWVzdFRhcmdldC5J
bnZhbGlkSWRlbnRpZmllciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiSW52YWxpZCBhbmltYXRp
b24gaWRlbnRpZmllcnMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gIkRPRVNfTk9UX0VYSVNUIjsK
KworICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMg
KCkgPT4geworICAgICAgICAgICAgICAgIGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlcXVlc3RUYXJn
ZXQoaWRlbnRpZmllcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRp
b24ucmVxdWVzdFRhcmdldCBjb21tYW5kLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZDQ4ZGE4MTUyMTk5NzNkNjEyNjA4MzYwODZl
ZTIxMWUyYTFhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC4KKworCis9PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uVmFsaWRJZGVudGlmaWVyCitQ
QVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuCitQQVNTOiBQYXlsb2FkIHNo
b3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlmaWVyCitQQVNTOiBTaG91
bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBhbmltYXRpb24gZm9yIGdp
dmVuIGFuaW1hdGlvbklkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmlt
YXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1h
dGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEyM2UzOTc0YzM0YzE5N2Nk
ZDU5ODYxMGY3Mzc3MTA2N2UzMDEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3Vt
ZW50LmJvZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgi
QW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24iKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmll
ciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBm
b3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3Qo
KSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9u
TWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25l
IGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNb
MF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93
IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1h
dGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBz
aG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBjb25zdCBvYmplY3RH
cm91cCA9ICJ0ZXN0IjsKKyAgICAgICAgICAgIGxldCB7b2JqZWN0fSA9IGF3YWl0IEFuaW1hdGlv
bkFnZW50LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91
cCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC50eXBlLCAi
b2JqZWN0IiwgYFBheWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAib2JqZWN0Ii5gKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwob2JqZWN0LmNsYXNzTmFtZSwgIkFuaW1hdGlv
biIsIGBQYXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi5gKTsKKyAgICAg
ICAgfSwKKyAgICB9KTsKKworICAgIC8vIC0tLS0tLQorCisgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uSW52YWxpZElkZW50
aWZpZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5pbWF0aW9uIGlkZW50aWZp
ZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAg
ICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElTVCI7CisgICAgICAgICAg
ICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKworICAgICAgICAgICAgYXdhaXQgSW5zcGVj
dG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGF3
YWl0IEFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oaWRlbnRpZmllciwgb2JqZWN0R3Jv
dXApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmlt
YXRpb24gY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0
aWxpdGllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWMyMTJmZjM2MTU4ZDhiYjRjY2UxNmE5NWRhMDUzNTJk
MGIwMWRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDEzMCBAQAord2lu
ZG93LmFuaW1hdGlvbnMgPSBbXTsKKworZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKHNlbGVjdG9y
LCBrZXlmcmFtZXMgPSBbXSwgb3B0aW9ucyA9IHt9KSB7CisgICAgbGV0IGFuaW1hdGlvbiA9IG51
bGw7CisKKyAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7
CisgICAgaWYgKHRhcmdldCkKKyAgICAgICAgYW5pbWF0aW9uID0gdGFyZ2V0LmFuaW1hdGUoa2V5
ZnJhbWVzLCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAgICAgIGFuaW1hdGlvbiA9IG5ldyBBbmlt
YXRpb24obmV3IEtleWZyYW1lRWZmZWN0KG51bGwsIGtleWZyYW1lcywgb3B0aW9ucykpOworCisg
ICAgd2luZG93LmFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pOworfQorCitmdW5jdGlvbiBkZXN0
cm95QW5pbWF0aW9ucygpIHsKKyAgICBmb3IgKGxldCBhbmltYXRpb24gb2Ygd2luZG93LmFuaW1h
dGlvbnMpIHsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgYW5pbWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIGlmIChhbmltYXRpb24uZWZm
ZWN0KSB7CisgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQpIHsKKyAgICAg
ICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldC5yZW1vdmUoKTsKKyAgICAgICAgICAg
ICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldCA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGFuaW1hdGlvbi5lZmZlY3QgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisg
ICAgd2luZG93LmFuaW1hdGlvbnMgPSBbXTsKKworICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3Vy
ZSB0aGUgYW5pbWF0aW9uIGFuZCBpdCdzIHRhcmdldCBhcmUgYm90aCBkZXN0cm95ZWQsIGFzIG90
aGVyd2lzZSB0aGUKKyAgICAvLyBmcm9udGVuZCB3aWxsIG5vdCByZWNlaXZlIEFuaW1hdGlvbi5h
bmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAg
ICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworICAgIH0pOworfQorCitUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBmdW5jdGlvbiBqc29uS2V5ZnJhbWVGaWx0ZXIoa2V5
LCB2YWx1ZSkgeworICAgICAgICBpZiAoa2V5ID09PSAiZWFzaW5nIiAmJiB2YWx1ZSBpbnN0YW5j
ZW9mIFdJLkN1YmljQmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1h
dGlvbkxpZmVjeWNsZVV0aWxpdGllcyA9IHt9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRp
b25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkID0gYXN5bmMgZnVuY3Rp
b24oYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1B
ZGRlZEV2ZW50ID0gYXdhaXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9u
LmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOworCisgICAgICAgIElu
c3BlY3RvclRlc3QucGFzcygiQW5pbWF0aW9uIGNyZWF0ZWQuIik7CisKKyAgICAgICAgbGV0IGFu
aW1hdGlvbiA9IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CisK
KyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmltYXRpb24uYmFja3RyYWNlLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gYW5pbWF0aW9uLmJhY2t0cmFjZVtp
XTsKKyAgICAgICAgICAgIGxldCB0cmFjZVRleHQgPSBgICAke2l9OiBgOworICAgICAgICAgICAg
dHJhY2VUZXh0ICs9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIihhbm9ueW1vdXMgZnVuY3Rp
b24pIjsKKworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS5uYXRpdmVDb2RlKQorICAgICAgICAg
ICAgICAgIHRyYWNlVGV4dCArPSAiIC0gW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICBlbHNl
IGlmIChjYWxsRnJhbWUucHJvZ3JhbUNvZGUpCisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9
ICIgLSBbcHJvZ3JhbSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUuc291
cmNlQ29kZUxvY2F0aW9uKSB7CisgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2FsbEZy
YW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAt
ICIgKyBzYW5pdGl6ZVVSTChsb2NhdGlvbi5zb3VyY2VDb2RlLnVybCkgKyBgOiR7bG9jYXRpb24u
bGluZU51bWJlcn06JHtsb2NhdGlvbi5jb2x1bW5OdW1iZXJ9YDsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2codHJhY2VUZXh0KTsKKyAgICAgICAgfQorCisg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUs
IGFuaW1hdGlvblR5cGUsIGBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgJHtXSS5BbmltYXRpb24u
ZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUpfS5gKTsKKworICAgICAg
ICBpZiAoYW5pbWF0aW9uLnN0YXJ0RGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
Zygic3RhcnREZWxheTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5zdGFydERlbGF5KSk7
CisgICAgICAgIGlmIChhbmltYXRpb24uZW5kRGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiZW5kRGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZW5kRGVsYXkp
KTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25Db3VudDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1h
dGlvbi5pdGVyYXRpb25Db3VudCkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvblN0
YXJ0KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvblN0YXJ0OiAiICsg
SlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSk7CisgICAgICAgIGlmIChh
bmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiaXRlcmF0aW9uRHVyYXRpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0
aW9uRHVyYXRpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbikKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJ0aW1pbmdGdW5jdGlvbjogIiArIEpTT04uc3Ry
aW5naWZ5KFN0cmluZyhhbmltYXRpb24udGltaW5nRnVuY3Rpb24pKSk7CisgICAgICAgIGlmIChh
bmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygicGxheWJhY2tEaXJlY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24ucGxheWJh
Y2tEaXJlY3Rpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5maWxsTW9kZSkKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJmaWxsTW9kZTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1h
dGlvbi5maWxsTW9kZSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmtleWZyYW1lcy5sZW5ndGgp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJrZXlmcmFtZXM6Iik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0Lmpzb24oYW5pbWF0aW9uLmtleWZyYW1lcywganNvbktleWZyYW1l
RmlsdGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOwor
CisgICAgICAgIHJldHVybiBhbmltYXRpb24KKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5B
bmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQgPSBhc3lu
YyBmdW5jdGlvbihhbmltYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAgIGxldCBhbmltYXRpb25D
b2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5p
bWF0aW9uQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92
ZWQpCisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBbmltYXRpb24gZGVzdHJveWVkLiIp
OworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92
ZWRFdmVudC5kYXRhLml0ZW07CisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5p
bWF0aW9uLmFuaW1hdGlvbklkLCBhbmltYXRpb25JZGVudGlmaWVyLCAiUmVtb3ZlZCBhbmltYXRp
b24gaGFzIGV4cGVjdGVkIElELiIpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1h
dGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24gPSBhc3luYyBmdW5jdGlvbihh
bmltYXRpb25UeXBlLCB7c2VsZWN0b3IsIGtleWZyYW1lcywgb3B0aW9uc30gPSB7fSkgeworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3JlYXRpbmcgYW5pbWF0aW9uLi4uXG4iKTsKKworICAg
ICAgICBsZXQgc3RyaW5naWZpZWRTZWxlY3RvciA9IEpTT04uc3RyaW5naWZ5KHNlbGVjdG9yIHx8
IG51bGwpOworICAgICAgICBsZXQgc3RyaW5naWZpZWRLZXlmcmFtZXMgPSBKU09OLnN0cmluZ2lm
eShrZXlmcmFtZXMgfHwgW10pOworICAgICAgICBsZXQgc3RyaW5naWZpZWRPcHRpb25zID0gSlNP
Ti5zdHJpbmdpZnkob3B0aW9ucyB8fCB7fSk7CisKKyAgICAgICAgbGV0IFthbmltYXRpb25dID0g
YXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25M
aWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblR5cGUpLAor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQW5pbWF0aW9u
KCR7c3RyaW5naWZpZWRTZWxlY3Rvcn0sICR7c3RyaW5naWZpZWRLZXlmcmFtZXN9LCAke3N0cmlu
Z2lmaWVkT3B0aW9uc30pYCkKKyAgICAgICAgXSk7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdGlv
bjsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRp
ZXMuZGVzdHJveUFuaW1hdGlvbnMgPSBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkRlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLlxuIik7CisgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlc3Ryb3lBbmltYXRpb25zKClgKTsKKyAg
ICB9OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Rh
cmdldENoYW5nZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODhkZTIyZDM0OGNlYTlh
YzlhZmYzZmFkMWYxNDI1MTA3NmNkN2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LgorCisK
Kz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OZXdUYXJnZXQKK1BBU1M6IEFu
aW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4KK0NoYW5naW5nIHRhcmdldC4uLgorCitQQVNT
OiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0
IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24u
dGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0
YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3Qg
aGF2ZSBhIHRhcmdldC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdl
ZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRD
aGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5n
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYWZmNjM0ODM2ODVkYTVmYWM4Y2EwMmRlMTllOGVjMTdmYzNm
YjY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90
YXJnZXRDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9h
ZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQuYm9keS5hbmltYXRlKFtdKTsK
KworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24udGFyZ2V0Q2hhbmdl
ZCIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9u
LnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQg
cmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIu
IiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0g
QXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJU
aGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQg
YW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7
CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2Vi
QW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAg
ICAgICAgICAgIGxldCBvbGRUYXJnZXQgPSBhd2FpdCBhbmltYXRpb24ucmVxdWVzdFRhcmdldCgp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG9sZFRhcmdldCBpbnN0YW5j
ZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIpOworICAg
ICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5h
d2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVj
dC50YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKWApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGxldCBuZXdUYXJnZXQgPSBhd2FpdCBhbmltYXRpb24ucmVxdWVz
dFRhcmdldCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG5ld1Rhcmdl
dCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQu
Iik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFyZ2V0
LCBvbGRUYXJnZXQsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0IiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0
aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxl
dCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNv
bGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5s
ZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlm
ICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9u
LmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmlt
YXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRUYXJnZXQgPSBhd2FpdCBhbmltYXRpb24u
cmVxdWVzdFRhcmdldCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG9s
ZFRhcmdldCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0
YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyB0YXJn
ZXQuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAg
ICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2Vk
KSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cu
YW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBudWxsYCksCisgICAgICAgICAgICBdKTsKKworICAg
ICAgICAgICAgbGV0IG5ld1RhcmdldCA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0VGFyZ2V0KCk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE51bGwobmV3VGFyZ2V0LCAiQW5pbWF0
aW9uIHNob3VsZCBub3QgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3ROb3RFcXVhbChuZXdUYXJnZXQsIG9sZFRhcmdldCwgIkFuaW1hdGlvbiBlZmZl
Y3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9ImxvYWQoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24udGFyZ2V0
Q2hhbmdlZCBldmVudC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbAppbmRleCBkNGUxMTFm
ZDlkODUzNzE1ZTQ0NjMzMzZiNGJkMDc4Mjc4Y2FmNjFlLi4yZDYyNzRiN2Y1NTQ3ZGViODI4MzNi
OWZhYTVjMjNiZjAwY2ZiMDc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTIwLDkgKzIwLDkgQEAgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNo
ZWNrIHRoYXQgY3JlYXRlZCBjYW52YXNlcyBoYXZlIHRoZSBjb3JyZWN0IHR5cGUgYW5kIGF0dHJp
YnV0ZXMgc2VudCB0byB0aGUgZnJvbnRlbmQuIiwKICAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpCisgICAgICAgICAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVu
dC5JdGVtQWRkZWQpCiAgICAgICAgICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkFkZGVkIGNhbnZhcy4iKTsKIAogICAgICAgICAgICAgICAg
ICAgICBsZXQgY29udGV4dERpc3BsYXlOYW1lID0gV0kuQ2FudmFzLmRpc3BsYXlOYW1lRm9yQ29u
dGV4dFR5cGUoY29udGV4dFR5cGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwKaW5kZXggYmMxODFmNjJmMmQ0ZjQz
ZWI0YTFhYmYxZDlmODM2ZmNlM2QyYmI1Zi4uYjE0MGYxMThkMDg4NmNiNzU4MDJmYTE1NDBjYTVm
ODU3NmFjNmEwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVh
dGUtY29udGV4dC13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sCkBAIC0zNCwxNCArMzQsMTQgQEAgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgdGhhdCBhdHRhY2hlZCBHUFVD
YW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFzLCBpbnN0ZWFkIG9mIHRoZSBX
ZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAgIGxldCBj
cmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwg
KGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQu
dGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKKyAg
ICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQp
ID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRhLml0
ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOwogICAgICAg
ICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAg
IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUF0dGFjaGVkQ2FudmFz
KCJncHUiKWApCiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCBsaXN0ZW5lcik7CisgICAg
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgbGlzdGVuZXIpOwogCiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGNyZWF0ZWQsICJJbnNwZWN0b3IgY2FudmFz
IHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgYXR0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCB3aXRo
b3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7CiAgICAgICAgIH0sCkBAIC01MiwxNCArNTIs
MTQgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgdGhh
dCBkZXRhY2hlZCBHUFVDYW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFzLCBp
bnN0ZWFkIG9mIHRoZSBXZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAg
ICAgICAgICAgIGxldCBjcmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVuZXIg
PSBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVu
dC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoZXZlbnQudGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuV2ViR1BVKTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRl
bUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChldmVudC5kYXRhLml0ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHUFUpOwogICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0
ZURldGFjaGVkQ2FudmFzKCJncHUiKWApCiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCBs
aXN0ZW5lcik7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgbGlzdGVu
ZXIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGNyZWF0ZWQsICJJ
bnNwZWN0b3IgY2FudmFzIHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgZGV0YWNoZWQgR1BVQ2Fu
dmFzQ29udGV4dCB3aXRob3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7CiAgICAgICAgIH0s
CkBAIC03MCwxNCArNzAsMTQgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgZGVzY3JpcHRp
b246ICJFbnN1cmUgdGhhdCBDU1MgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBhcyBh
IGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5jIHRl
c3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAgbGV0
IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKGBjcmVhdGVDU1NDYW52YXMoImdwdSIsICJjc3MtY2FudmFzIilgKQogCi0gICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVu
dC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQg
Zm9yIENTUyBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdlYkdQVURldmljZS4i
KTsKICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
ZXh0ZW5zaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25z
Lmh0bWwKaW5kZXggZThmY2JmZTAwNzNjMTliMzg1YzQ2Yjk3ZDQxNWZmODk3YmFmMWUyMS4uOTM3
YzFmMzRiYmE5NmI1NzAxMWEzMzE5ZThhNTc4MmMxODQzMmNhZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5leHRlbnNpb25zLmVuYWJsZSIsCiAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBlbmFibGluZyBhbiBleHRlbnNpb24gbm90
aWZpZXMgdGhlIGZyb250ZW5kLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0g
ICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRl
cigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKICAgICAgICAgICAgIGlm
ICghY2FudmFzZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIFdl
YkdMIGNhbnZhcy4iKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9tZW1vcnkuaHRtbAppbmRleCAyYTQ5ZTAzYTE4ODhlZTg1NWViYmIzYWYxODg0
M2JjZTNlMmJkYjFjLi40YmZkN2E2Y2VhYjUzZmM1ZDliOGU3MTNiODUzZDI3NWUwMTczZTcxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKQEAgLTI4LDcgKzI4LDcg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIC8vIHBlcmZvcm1lZCBvbiB0aGF0IGNh
bnZhcyB0aGF0IHJlcXVpcmVzIHRoZSBpbWFnZSBidWZmZXIuICBBIGJsYW5rIGNhbnZhcyB0aGF0
IHdhcwogICAgICAgICAgICAgLy8ganVzdCBjcmVhdGVkIHdpbGwgbm90IGhhdmUgYSBidWZmZXIs
IHNvIGl0cyBtZW1vcnkgY29zdCB3aWxsIGJlIDAvTmFOLgogCi0gICAgICAgICAgICBsZXQgY2Fu
dmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAg
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzZXMu
bGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIDJEIGNhbnZhcy4iKTsK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC00NSw3ICs0NSw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMubWVtb3J5LmNhbnZhc01lbW9yeUNoYW5nZWQiLAog
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgbWVtb3J5IGNvc3QgaXMgdXBkYXRlZCB3
aGVuIHRoZSBiYWNrZW5kIHZhbHVlIGNoYW5nZXMuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCBy
ZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5
LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykg
PT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQp
OwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICBy
ZWplY3QoIk1pc3NpbmcgMkQgY2FudmFzLiIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCmluZGV4IDRkM2NmZTli
OGU2ZTk3NDBkNGVjYTY3Nzk0YTQ1YTRmOWVlYzY4ZDEuLmJlMDhhMjA0MTMwMmMzNzc2MTRjYzMz
ZTEzOTRhMDkwMTc1MmUyYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVjb3JkaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmcuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBu
YW1lOiAiQ2FudmFzLkFjdGlvblBhcmFtZXRlck5hTiIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
Q2hlY2sgdGhhdCBOYU4gaXMgY29udmVydGVkIGludG8gdGhlIHByb3BlciB2YWx1ZSBmb3Igc2Vy
aWFsaXphdGlvbi4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgICAg
ICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24pWzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUg
c2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMgY29udGV4dC4iKTsKIAogICAgICAgICAgICAg
Y2FudmFzLmF3YWl0RXZlbnQoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQpCkBAIC01
OCw3ICs1OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMuTXVs
dGlwbGVSZWNvcmRpbmciLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgbXVsdGlw
bGUgcmVjb3JkaW5ncyBhcmUgYWJsZSB0byBiZSBzdGFydGVkL3N0b3BwZWQgYXQgdGhlIHNhbWUg
dGltZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0
IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlczsKKyAgICAgICAgICAgIGxldCBj
YW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMiwg
IlRoZXJlIHNob3VsZCBiZSB0d28gY2FudmFzIGNvbnRleHRzLiIpOwogCiAgICAgICAgICAgICBj
YW52YXNlc1sxXS5hd2FpdEV2ZW50KFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkKQpA
QCAtMTEyLDcgKzExMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52
YXMuTm9BY3Rpb25zIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGEgY2FudmFz
IGlzIHN0aWxsIGFibGUgdG8gYmUgcmVjb3JkZWQgYWZ0ZXIgc3RvcHBpbmcgYSByZWNvcmRpbmcg
d2l0aCBubyBhY3Rpb25zLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
ICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbilbMF07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJU
aGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGNhbnZhcyBjb250ZXh0LiIpOwogCiAgICAgICAg
ICAgICBsZXQgZXZlbnRDb3VudCA9IDA7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbAppbmRleCAyM2NkMDQ4Njg1MGQwYWUxYjc2
Nzk4NzViMGFmMjdhMDUxYzBmNGNkLi5mNzRkMTVlMTA2ZWEzYjA1Y2E5MWI4MDFmODFjOGEwMmYx
MTUwNGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
bGllbnROb2Rlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dENsaWVudE5vZGVzLmh0bWwKQEAgLTE2LDcgKzE2LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q2xpZW50Tm9kZXMuSW5pdGlhbCIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBjcmVhdGluZyBhIENTUyBjYW52YXMgY2xpZW50IG5v
ZGUgaXMgdHJhY2tlZCBjb3JyZWN0bHkuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBd
OworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5j
YW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNh
bnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFzLiIpOwogCiAgICAgICAg
ICAgICBjYW52YXMucmVxdWVzdENsaWVudE5vZGVzKChjbGllbnROb2RlcykgPT4gewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sCmlu
ZGV4IDUzNTA5NTc2MmIzOTBmMmNlM2ZiNWE5Njk2YWRlNjExMzQzM2MyZmQuLmU5Y2JhMWQwMTA3
YzNhNjdjZWYxNzJlOGFiNWE5YTRhNGFhOWNhMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q29udGVudDJE
LnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVu
Y29kZWQgZGF0YSBmb3IgdGhlIGNhbnZhcyBvbiB0aGUgcGFnZSB3aXRoIHRoZSBnaXZlbiB0eXBl
LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2Fu
dmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAg
ICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVj
dGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAg
ICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29u
dGVudC1iaXRtYXByZW5kZXJlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sCmluZGV4IGNkNTA4M2MyNTI1Mjc0ZDc5
ZmI4ZjRiZDc5Yjk3OTM4ZmUzMGM2MzAuLmY1MjY2ZWZkZWZkN2VjNzQ3NGU5NmViYWFmZDBiYjU3
M2IyNWYyYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwKQEAgLTIyLDcgKzIyLDcg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q29udGVu
dEJpdG1hcFJlbmRlcmVyLnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkdl
dCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3IgdGhlIEJpdG1hcFJlbmRlcmVyIGNhbnZhcyBv
biB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9
PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5k
ZXJlcik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbAppbmRleCBhZWI4MWVmMjdkM2M5
ODA1ODQ5Nzk5NmExNzliZDY0YTViZmU5YmVmLi43MGMyMWZlNDMzOTY5MTU5NjA5MTIyODQ1NjZh
ZjJmNzNkNThiOTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RDb250ZW50LXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRl
c3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRXZWJHTC52YWxpZENh
bnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRh
dGEgZm9yIHRoZSBXZWJHTCBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZy
b20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKICAgICAg
ICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENh
bnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbAppbmRleCA2YjAz
ZDVlYzdlNTlkMDI2Njg3YzZiN2YwZGIyODA2ZTE2M2FlY2NmLi5mN2I1NWY0YTNkZmMwODQzYWVm
Nzg4MGI5Zjc5NzQwY2UxNWEwODYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q29udGVudFdl
YkdMMi52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2
NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBXZWJHTDIgY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisgICAgICAgICAgICBsZXQgY2Fu
dmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQo
KGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0wyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVq
ZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKaW5kZXggZTVjNjE0N2Uz
NDdiYzM2OWUyYzA1Y2M4NDE2NmQ4MDZhNzFjMDYxNi4uZGNjNGJjY2VlNzVmNGE2OTM4NDViYmRl
ZTcxMjNhZmZlMmE3OTA1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXF1ZXN0Tm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVx
dWVzdE5vZGUuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICBuYW1lOiAiQ2FudmFzLnJlcXVlc3ROb2RlLnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNj
cmlwdGlvbjogIkdldCB0aGUgbm9kZSBpZCBmb3IgZWFjaCBjYW52YXMgb24gdGhlIHBhZ2UuIiwK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNl
cyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMg
PSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CiAgICAgICAg
ICAgICBsZXQgZXhwZWN0ZWRMZW5ndGggPSBjYW52YXNlcy5sZW5ndGg7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChleHBlY3RlZExlbmd0aCA9PT0gMywgIlRoZSBwYWdlIGhhcyAz
IGNhbnZhc2VzLiIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LTJkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
c29sdmVDb250ZXh0LTJkLmh0bWwKaW5kZXggYzQxY2M2YmM3NGEzMjQxOTIwYjNkNmI1YzNkOWIz
YzZiZmRhOTVkMS4uZmUxNDExNzliN2NhZGEzYmI1ODVhODg4ODRkZTZiYjYzNGU3NDM4YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQu
aHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENh
bnZhcy5yZXNvbHZlQ29udGV4dDJELnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0
aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBp
ZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAg
ICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+
IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsK
KyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykg
ewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sCmluZGV4IDg2MjUyOTI2
NWM0ZGQ2YjI5YjI5Njc4ODQ0MWNlZjllNjc3YjliMTAuLjI5N2Q0NDFlMTRmYTRiMWJkMzk2ZGMw
NTRmODViOGQ5M2Y5YWU1YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKQEAgLTE3
LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2
ZUNvbnRleHRCaXRtYXBSZW5kZXJlci52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlw
dGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMg
aWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9
PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5k
ZXJlcik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbAppbmRleCA5NWFkZjEyYzA5M2Fk
ZjMwYzQ3ZDI5Mjk5MjM0M2RjZjAxY2NlODdlLi4yYTcwZmE0YTBmYjE3ZmZhMTk0NDQ3NTE5Y2Iz
OWU1ODBiOTM1ZTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
c29sdmVDb250ZXh0LXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0V2ViR0wudmFsaWRJZGVu
dGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2Jq
ZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZy
b20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKICAgICAg
ICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENh
bnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbAppbmRleCAxMTUx
ZjkxN2E3YTIzZTZmZTMzMmI0M2E5YTM0MDZhOWNmZTkwYTU0Li5kOGUwODMxZTZiYzNhMjk2NWU4
ZDQyY2ZkNTg3ZTJkZmExNGQyYzc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHRXZWJH
TDIudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJu
IGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKyAgICAgICAgICAgIGxldCBjYW52
YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgo
Y2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTDIpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWpl
Y3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5o
dG1sCmluZGV4IGRjMDBlZjEyMzdhNjdiODkwNWYzODBkY2VjZjZhNzljZWI2MzI2NzYuLmU5MjVi
MjcxNjQ4ZjQ0NGMyM2M5ZDJhODVjYjg1MjA2MjRjYjYyNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbApAQCAt
MjIsMTQgKzIyLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJl
c29sdmVDb250ZXh0V2ViR1BVLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVu
dGlmaWVyLiIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydCghV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGgsICJUaGVyZSBzaG91
bGQgYmUgbm8gY2FudmFzZXMuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCgh
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpemUsICJUaGVyZSBzaG91bGQgYmUg
bm8gY2FudmFzZXMuIik7CiAKLSAgICAgICAgICAgIGxldCBbY2FudmFzQWRkZWRFdmVudF0gPSBh
d2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hd2Fp
dEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpLAorICAgICAgICAgICAg
bGV0IFtjYW52YXNDb2xsZWN0aW9uSXRlbUFkZGVkRXZlbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwo
WworICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2Fp
dEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKSwKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVEZXZpY2UoKWApLAogICAgICAgICAg
ICAgXSk7CiAKLSAgICAgICAgICAgIGxldCB7Y2FudmFzfSA9IGNhbnZhc0FkZGVkRXZlbnQuZGF0
YTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBjYW52YXNDb2xsZWN0aW9uSXRlbUFkZGVkRXZl
bnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNv
bnRleHRUeXBlLCBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQWRkZWQgY2FudmFzIHNo
b3VsZCBiZSBhIFdlYkdQVSBkZXZpY2UuIik7CiAKICAgICAgICAgICAgIGNvbnN0IG9iamVjdEdy
b3VwID0gInRlc3QiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCmluZGV4IDNh
NDYwNDU1MjUxMDE4MmJiZTJlZjM1NTcyM2E0MWUwNDI4OWQ2MmYuLjE1OTE1ODAyNTkwMjNiOWUy
MzhlNzFiYjVjODU1YWE3Yzg2NDgxYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcworKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRp
ZXMuanMKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gZGVzdHJveUNhbnZhc2VzKCkgewogICAg
IHdpbmRvdy5jb250ZXh0cyA9IFtdOwogCiAgICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRo
ZSBjYW52YXMgZWxlbWVudCBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAg
ICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3Zl
ZCBldmVudHMuCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3ZlZCBl
dmVudHMuCiAgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0s
IDApOwogfQogCkBAIC00Myw5ICs0Myw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIo
KCkgPT4gewogICAgIGxldCBzdWl0ZSA9IG51bGw7CiAKICAgICBmdW5jdGlvbiBhd2FpdENhbnZh
c0FkZGVkKGNvbnRleHRUeXBlKSB7Ci0gICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmF3
YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCkKKyAgICAgICAgcmV0
dXJuIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxl
Y3Rpb24uRXZlbnQuSXRlbUFkZGVkKQogICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAgIGxldCBj
YW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBsZXQgY29udGV4dERpc3BsYXlO
YW1lID0gV0kuQ2FudmFzLmRpc3BsYXlOYW1lRm9yQ29udGV4dFR5cGUoY29udGV4dFR5cGUpOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjYW52YXMuY29udGV4dFR5cGUs
IGNvbnRleHRUeXBlLCBgQ2FudmFzIGNvbnRleHQgc2hvdWxkIGJlICR7Y29udGV4dERpc3BsYXlO
YW1lfS5gKTsKIApAQCAtNzMsOSArNzMsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KCgpID0+IHsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhd2FpdENhbnZhc1JlbW92ZWQoY2FudmFz
SWRlbnRpZmllcikgewotICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5hd2FpdEV2ZW50
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCkKKyAgICAgICAgcmV0dXJuIFdJ
LmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbVJlbW92ZWQpCiAgICAgICAgIC50aGVuKChldmVudCkgPT4gewotICAgICAgICAg
ICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwoY2FudmFzLmlkZW50aWZpZXIsIGNhbnZhc0lkZW50aWZpZXIsICJSZW1vdmVkIGNhbnZhcyBo
YXMgZXhwZWN0ZWQgSUQuIik7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTg5LDcgKzg5LDcgQEAg
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICBuYW1lOiBg
JHtzdWl0ZS5uYW1lfS5Ob0NhbnZhc2VzYCwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hl
Y2sgdGhhdCB0aGUgQ2FudmFzTWFuYWdlciBoYXMgbm8gY2FudmFzZXMgaW5pdGlhbGx5LiIsCiAg
ICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGgsIDAs
ICJDYW52YXNNYW5hZ2VyIHNob3VsZCBoYXZlIG5vIGNhbnZhc2VzLiIpOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uLnNpemUsIDAsICJDYW52YXNNYW5hZ2VyIHNob3VsZCBoYXZlIG5vIGNhbnZhc2VzLiIp
OwogICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNv
cmRpbmctdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJj
ZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcwppbmRleCA2MDE0NmZmMzg0ODdmZDE5M2UyM2QzMzc0
N2RmMzEwNDZjYzY4MWYzLi43N2EwZWEzNDNiNjVmNDI0YmFjNmRlMzc1ZTMzYmYyY2FiZGNjYmQ2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNv
cmRpbmctdXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVz
b3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMKQEAgLTg2LDcgKzg2LDcgQEAgVGVzdFBhZ2Uu
cmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgd2luZG93LmdldENhbnZh
cyA9IGZ1bmN0aW9uKHR5cGUpIHsKLSAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFu
YWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSB0
eXBlKTsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUg
PT09IHR5cGUpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGgg
PT09IDEsIGBUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzIHdpdGggdHlwZSAiJHt0eXBl
fSIuYCk7CiAgICAgICAgIGlmIChjYW52YXNlcy5sZW5ndGggIT09IDEpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVz
b3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMK
aW5kZXggNTI3NWM0NDFhYWZjNzNiOTEwNzk0NWIzY2Q3M2Y5Y2E2N2UxZTY1ZS4uZjQzZTZmMjc3
Y2RjN2QwNThkMDk5NDFhNzY2Nzc2MzRlMDVlNmNjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJv
Z3JhbS11dGlsaXRpZXMtd2ViZ2wuanMKQEAgLTM5LDcgKzM5LDcgQEAgZnVuY3Rpb24gZGVsZXRl
UHJvZ3JhbSgpIHsKIGZ1bmN0aW9uIGRlbGV0ZUNvbnRleHQoKSB7CiAgICAgY29udGV4dCA9IG51
bGw7CiAgICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBjYW52YXMgZWxlbWVudCBpcyBk
ZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBkb2VzIG5vdCByZWNlaXZl
IFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgLy8gZG9l
cyBub3QgcmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3ZlZCBldmVudHMuCiAgICAgc2V0VGltZW91
dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwogfQogCkBAIC00Nyw4ICs0
Nyw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIGxldCBzdWl0
ZSA9IG51bGw7CiAKICAgICBmdW5jdGlvbiB3aGVuUHJvZ3JhbUFkZGVkKGNhbGxiYWNrKSB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVu
Z3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKLSAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5n
bGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50
KSA9PiB7CisgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFz
ZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKKyAg
ICAgICAgY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50
TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewogICAg
ICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0s
ICJBZGRlZCBTaGFkZXJQcm9ncmFtLiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3Jh
bSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMuIik7CkBAIC01Nyw4ICs1OCw5IEBAIFRlc3RQ
YWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIH0KIAogICAgIGZ1bmN0aW9uIHdo
ZW5Qcm9ncmFtUmVtb3ZlZChjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBv
bmx5IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNb
MF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29s
bGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgIGxldCBjYW52
YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUg
c2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKKyAgICAgICAgY2FudmFzZXNbMF0uc2hhZGVy
UHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvZ3JhbSA9
IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChw
cm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIlJlbW92ZWQgU2hhZGVyUHJvZ3Jh
bS4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZh
cyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJl
bnQgQ2FudmFzLiIpOwpAQCAtNzQsNyArNzYsNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxp
emVyKCgpID0+IHsKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBTaGFkZXJQ
cm9ncmFtQWRkZWQgaXMgc2VudCBmb3IgYSBwcm9ncmFtIGNyZWF0ZWQgYmVmb3JlIENhbnZhc0Fn
ZW50IGlzIGVuYWJsZWQuIiwKICAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAg
ICAgICAgICAgICAgICAgLy8gVGhpcyBjYW4ndCB1c2UgYGF3YWl0RXZlbnRgIHNpbmNlIHRoZSBw
cm9taXNlIHJlc29sdXRpb24gaGFwcGVucyBvbiB0aGUgbmV4dCB0aWNrLgotICAgICAgICAgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFu
YWdlci5FdmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgd2hlblByb2dyYW1BZGRlZCgocHJvZ3JhbSkgPT4gewogICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKQEAgLTExMyw3ICsxMTUs
NyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICAgICAgbGV0IGNhbnZhc1JlbW92ZWQg
PSBmYWxzZTsKIAotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2
ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCAoZXZlbnQp
ID0+IHsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
c2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwg
KGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOwog
ICAgICAgICAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy13ZWJncHUuanMKaW5kZXggZmU0OGQ4ZmQ4NTExNDY1ODk4ZmQzYjA0NTBkZTg5NTEzNzQ0OWJl
NC4uYjhkZTM0Y2ZhODc4Njg1Zjk2NWE5ZjkwYmI0YmY4YWFiMzU3MzYwZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGls
aXRpZXMtd2ViZ3B1LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcwpAQCAtNjQsNyArNjQsNyBAQCBh
c3luYyBmdW5jdGlvbiBjcmVhdGVSZW5kZXJQaXBlbGluZShjb2RlID0gcmVuZGVyUGlwZWxpbmVT
b3VyY2UpIHsKIGZ1bmN0aW9uIGRlbGV0ZURldmljZSgpIHsKICAgICBkZXZpY2UgPSBudWxsOwog
ICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgZGV2aWNlIGlzIGRlc3Ryb3llZCwgb3Ro
ZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFu
YWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBkb2VzIG5vdCByZWNlaXZl
IENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0ND
b250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJh
bWVDb3VudC5odG1sCmluZGV4IGQ5OGYwZmVhNGU5MmMxNTI5NzgxMTJjMmQwNzBjZDc0ZTk1OWQ0
ZTIuLjU1ZTU1MjQ3MzA4M2FhMmQxYmFlYjBlODg3ZWUwNWZjMjhmMGEwZTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFt
ZUNvdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRp
bmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbApAQCAtNzcsOCArNzcsOCBAQCBmdW5jdGlvbiB0
ZXN0KCkgewogICAgICAgICAgICAgICAgICAgICBoYW5kbGVSZWNvcmRpbmdTdG9wcGVkKGNhbnZh
cywgZXZlbnQuZGF0YS5yZWNvcmRpbmcpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAg
ICAgIGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xs
ZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGNhbnZhcyA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoIWNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCiAKICAgICAgICAgICAgICAgICAg
ICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0YXJ0
ZWQsIGhhbmRsZVJlY29yZGluZ1N0YXJ0ZWRXcmFwcGVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUt
d2ViZ3B1Lmh0bWwKaW5kZXggZDQwZmFiNzgzODEzMGNjOTRiMDNiZjkxZDk2ZjIyNzA5MDRlYjAx
My4uZDVmYjg3NzJjMGIzNzVjNDBkNWQ3YTBlNDIwMmE1NGZmNWQ1MmQwYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2Vi
Z3B1Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFt
LWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKQEAgLTE0LDkgKzE0LDExIEBAIHdpbmRvdy5iZWZvcmVU
ZXN0ID0gYXN5bmMgZnVuY3Rpb24oKSB7CiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZShgQ2FudmFzLlNoYWRlclByb2dyYW0u
V2ViR1BVYCk7CiAKLSAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1sw
XTsKKyAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09
PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKKworICAgIGxldCBjYW52
YXMgPSBjYW52YXNlc1swXTsKICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVy
ZSBzaG91bGQgYmUgYSBjYW52YXMuIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBv
bmUgY2FudmFzLiIpOwogICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkNhbnZhcyBzaG91bGQgYmUgV2Vi
R1BVLiIpOwogCiAgICAgYXN5bmMgZnVuY3Rpb24gYXdhaXRQcm9ncmFtQWRkZWQocHJvZ3JhbVR5
cGUpIHsKQEAgLTExOCw3ICsxMjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgbGV0IGNhbnZhc1JlbW92ZWQgPSBmYWxz
ZTsKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5l
cihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4geworICAg
ICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVu
dExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4gewog
ICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOwogICAgICAgICAgICAgfSk7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdl
YmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWwKaW5kZXgg
MzRkMDJhYjE3ZTkwNWE0Yjc4YTAyNjU1MDQ5YWUyOGRiMzMxMDg3MS4uOGNmOWE0NzU2MjI0MjFj
ODM2ODljOWFkMzdkMjE5MGEwMWNlOWUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNo
YXJlZFZlcnRleEZyYWdtZW50Lmh0bWwKQEAgLTU3LDEwICs1NywxMCBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3JlYXRpbmcgcmVuZGVyIHBpcGVsaW5l
Li4uIik7CiAgICAgICAgIGxldCBldmFsdXRlUHJvbWlzZSA9IEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGNyZWF0ZVJlbmRlclBpcGVsaW5lKClgKTsKIAotICAgICAgICBpZiAoIVdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoKQotICAgICAgICAgICAgYXdhaXQgV0kuY2FudmFz
TWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpOwor
ICAgICAgICBpZiAoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplKQorICAg
ICAgICAgICAgYXdhaXQgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZl
bnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOwogCi0gICAgICAgIGxldCBjYW52YXMg
PSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICBsZXQgY2FudmFzID0gQXJy
YXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHUFUsICJDYW52YXMgc2hvdWxkIGJlIFdlYkdQVS4iKTsKIAogICAgICAgICBs
ZXQgaXRlbUFkZGVkRXZlbnQgPSBhd2FpdCBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24u
YXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0
aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0
LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggNjZiZGJhYjllZWUz
MTY3OTBmOGYyNjc0NmY5M2UyMWVkNGMzZGYxZS4uZGJmNjM1MWU5YTA5MjQ2MGFiZWU5ZDM0ZDky
MDZiMGY3MzM2YjNhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25z
LWV4cGVjdGVkLnR4dApAQCAtNTQsNiArNTQsNzQgQEAgRkFJTDogZXhwZWN0RmFsc2UoW10pCiAg
ICAgRXhwZWN0ZWQ6IGZhbHNleQogICAgIEFjdHVhbDogW10KIAorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkKK0V4cGVjdGVkIHRvIFBBU1MKK1BBU1M6IGV4
cGVjdEVtcHR5KG51bGwpCitQQVNTOiBleHBlY3RFbXB0eSgiIikKK1BBU1M6IGV4cGVjdEVtcHR5
KHt9KQorUEFTUzogZXhwZWN0RW1wdHkoW10pCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK1BBU1M6
IGV4cGVjdEVtcHR5KHt9KQorRXhwZWN0ZWQgdG8gRkFJTAorRkFJTDogZXhwZWN0RW1wdHkoInRl
c3QiKQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAgIEFjdHVhbDogInRlc3QiCitGQUlMOiBleHBl
Y3RFbXB0eSh7InRlc3QiOjF9KQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAgIEFjdHVhbDogeyJ0
ZXN0IjoxfQorRkFJTDogZXhwZWN0RW1wdHkoInRlc3QiKQorICAgIEV4cGVjdGVkOiBlbXB0eQor
ICAgIEFjdHVhbDogInRlc3QiCitGQUlMOiBleHBlY3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDog
ZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3RFbXB0eSh7fSkKKyAgICBFeHBlY3Rl
ZDogZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJl
IGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHRydWUKK0ZBSUw6IGV4cGVj
dEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVh
bDogZmFsc2UKK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBu
b24tb2JqZWN0OgorICAgIEFjdHVhbDogMQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBi
ZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB1bmRlZmluZWQKKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1wdHkKK0V4cGVjdGVk
IHRvIFBBU1MKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KCJ0ZXN0IikKK1BBU1M6IGV4cGVjdE5vdEVt
cHR5KHsidGVzdCI6MX0pCitQQVNTOiBleHBlY3ROb3RFbXB0eSgidGVzdCIpCitQQVNTOiBleHBl
Y3ROb3RFbXB0eSh7fSkKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KHt9KQorRXhwZWN0ZWQgdG8gRkFJ
TAorRkFJTDogZXhwZWN0Tm90RW1wdHkobnVsbCkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5Cisg
ICAgQWN0dWFsOiBudWxsCitGQUlMOiBleHBlY3ROb3RFbXB0eSgiIikKKyAgICBFeHBlY3RlZDog
bm90IGVtcHR5CisgICAgQWN0dWFsOiAiIgorRkFJTDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAg
RXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5
KFtdKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IFtdCitGQUlMOiBleHBl
Y3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7fQor
RkFJTDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFj
dHVhbDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGgg
YSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdHJ1ZQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hv
dWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiBmYWxzZQor
RkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmpl
Y3Q6CisgICAgQWN0dWFsOiAxCitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNh
bGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHVuZGVmaW5lZAorCiAtLSBSdW5u
aW5nIHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5leHBlY3ROdWxsCiBFeHBlY3RlZCB0byBQQVNT
CiBQQVNTOiBleHBlY3ROdWxsKG51bGwpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMu
aHRtbAppbmRleCA5MWU4NTgwYzdjYjYyNzM0NTgyNTQwMjQ5NzIwMDllOTljZGE4MzRkLi5lMzg2
NGEwM2M0ZTA5NDFjYThjMDJmMmYwYTc4NjI2Mzk4OGIwMTIxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1l
eHBlY3QtZnVuY3Rpb25zLmh0bWwKQEAgLTQ4LDYgKzQ4LDIwIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIGFkZFRlc3RDYXNlKGV4cGVjdFRoYXRUZXN0Q2FzZSk7CiAgICAgYWRkSW52ZXJzZVRlc3RD
YXNlKCJleHBlY3RGYWxzZSIsIGV4cGVjdFRoYXRUZXN0Q2FzZSk7CiAKKyAgICBsZXQgZXhwZWN0
RW1wdHlUZXN0Q2FzZSA9IHsKKyAgICAgICAgZnVuY3Rpb25OYW1lOiAiZXhwZWN0RW1wdHkiLAor
ICAgICAgICBwYXNzaW5nSW5wdXRzOiBbbnVsbCwgIiIsIHt9LCBbXSwgbmV3IE1hcCwgbmV3IFNl
dF0sCisgICAgICAgIGZhaWxpbmdJbnB1dHM6IFsidGVzdCIsIHt0ZXN0OiAxfSwgWyJ0ZXN0Il0s
IG5ldyBNYXAoW1sidGVzdCIsIDFdXSksIG5ldyBTZXQoWyJ0ZXN0Il0pLCB0cnVlLCBmYWxzZSwg
MSwgdW5kZWZpbmVkXSwKKyAgICB9OworICAgIGFkZFRlc3RDYXNlKGV4cGVjdEVtcHR5VGVzdENh
c2UpOworCisgICAgbGV0IGV4cGVjdE5vdEVtcHR5VGVzdENhc2UgPSB7CisgICAgICAgIGZ1bmN0
aW9uTmFtZTogImV4cGVjdE5vdEVtcHR5IiwKKyAgICAgICAgcGFzc2luZ0lucHV0czogWyJ0ZXN0
Iiwge3Rlc3Q6IDF9LCBbInRlc3QiXSwgbmV3IE1hcChbWyJ0ZXN0IiwgMV1dKSwgbmV3IFNldChb
InRlc3QiXSldLAorICAgICAgICBmYWlsaW5nSW5wdXRzOiBbbnVsbCwgIiIsIHt9LCBbXSwgbmV3
IE1hcCwgbmV3IFNldCwgdHJ1ZSwgZmFsc2UsIDEsIHVuZGVmaW5lZF0sCisgICAgfTsKKyAgICBh
ZGRUZXN0Q2FzZShleHBlY3ROb3RFbXB0eVRlc3RDYXNlKTsKKwogICAgIGxldCBleHBlY3ROdWxs
VGVzdENhc2UgPSB7CiAgICAgICAgIGZ1bmN0aW9uTmFtZTogImV4cGVjdE51bGwiLAogICAgICAg
ICBwYXNzaW5nSW5wdXRzOiBbbnVsbF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386496</attachid>
            <date>2019-12-29 12:48:10 -0800</date>
            <delta_ts>2020-01-06 13:01:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20191229134809.patch</filename>
            <type>text/plain</type>
            <size>324078</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDI1YzcwYmRiY2IyZTc5NWE2YTU3ZGYzNzhlZjMw
YmM1YTRiYzEzNTMuLjhiMTQ3OTFiMmVmOGI1NjcyYzY0OGYyZmJlYTBmZmExYzlkZTc2ODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTI5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAxOS0xMi0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBmaXggaGFuZGxpbmcg
b2Ygc2Vzc2lvbiB0aW1lb3V0cyBmb3IgdmFsdWVzIGhpZ2hlciB0aGFuIE1BWF9JTlQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyNTUyYzdkNzkyNjY0ZTlkMTY1YTgwNDFhM2FkNzZhODdmYjI4NTQxLi5hOTIzYzZm
ZGU4MjBjYjBhYjRiZGFhMzhkY2Q1ZTIzODBlYWIxMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTA1IEBACisyMDE5LTEyLTI5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4
aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0eXBl
cy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhlIGxpZmVjeWNsZSBvZiBgQW5p
bWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNvbW1hbmRzIGZvciBnZXR0aW5n
IHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUgdGFyZ2V0IERPTSBub2RlLgor
CisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbAor
ICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlv
bi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
dHJhbnNpdGlvbi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVj
eWNsZS13ZWItYW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRp
b24vcmVxdWVzdEVmZmVjdFRhcmdldC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5p
bWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2Fu
aW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKKworICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmlt
YXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpXZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpXZWJBbmltYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRp
b246OldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246On5XZWJB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdE
aWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENo
YW5nZSk6CisgICAgICAgICogYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NBbmltYXRpb246OmNyZWF0ZSk6CisgICAgICAgICogYW5pbWF0aW9uL0NTU1Ry
YW5zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVHJhbnNpdGlvbjo6Y3JlYXRlKToK
KworICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5ZnJhbWVFZmZlY3Q6OnBhcnNlZEtleWZyYW1lcyBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmJsZW5kaW5nS2V5ZnJhbWVzIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6aGFzQmxlbmRpbmdLZXlmcmFt
ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFj
Y2VsZXJhdGVkKToKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBhY2Nlc3MgdGhlIGxpc3Qgb2Yg
a2V5ZnJhbWVzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRX
ZWJBbmltYXRpb25FZmZlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24pOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRpbWluZ0ltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVh
dGVXZWJBbmltYXRpb25JbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdEltcGwpOiBEZWxldGVkLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OmVuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zdHJ1bWVudGluZ0FnZW50czo6c2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KTog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQpOgorCisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cHJvdG9jb2xWYWx1ZUZvclNlY29uZHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OnByb3RvY29sVmFsdWVGb3JQbGF5YmFja0RpcmVjdGlvbik6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6cHJvdG9jb2xWYWx1ZUZvckZpbGxNb2RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpidWlsZE9iamVjdEZvcktleWZyYW1lcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVp
bGRPYmplY3RGb3JFZmZlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmVuYWJsZSk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpc2FibGUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXF1
ZXN0RWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6cmVzb2x2ZUFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0
ZVdlYkFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpmcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YXNzZXJ0QW5pbWF0aW9uKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YmluZEFu
aW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OnVuYmluZEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNldCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5v
ZGVUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpxdWVy
eVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9k
ZVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpz
ZXROb2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0
ZXJIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQp
OgorICAgICAgICBBZGQgYW4gb3ZlcmxvYWQgZm9yIGBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kYCB0
aGF0IGV4cG9zZXMgYW4gYEVycm9yU3RyaW5nYC4KKwogMjAxOS0xMi0yMyAgRGFuaWVsIEJhdGVz
ICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIxMjY5Myk6IGdl
dENsaWVudFJlY3RzKCksIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGZvciByYW5nZSB0aGF0IHNw
YW5zIG11bHRpLWxpbmVzIGRpZmZlcnMgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGV4dCBpcyBzZWxl
Y3RlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggYTE4MTZiZmQyMTg5NDU1OGFkMjI4NThi
ZTNmNTdjZTIxZGVkNjg1MC4uY2VlOWJmMjcxNzM0ZmM4MjY1M2E1OTdlNDM5YTA4ZjQ0MTM1OWRk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzI4IEBACisyMDE5LTEyLTI5
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0
MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9BbmltYXRpb25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZ2V0IGRvbWFpbnMp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYWN0aXZhdGVFeHRyYURv
bWFpbik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXpl
VGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBhbmlt
YXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBl
LmdldCBzdXBwb3J0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUu
ZW5hYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmRpc2FibGUp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRl
ZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2Vk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLnRhcmdldENoYW5nZWQp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJv
eWVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVNYWlu
UmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5p
bWF0aW9uT2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5
cGUuYW5pbWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2
ZXIucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlv
bk9ic2VydmVyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5B
bmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKTogQWRkZWQuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24pOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLm9iamVjdElzUmVxdWlyZWRUeXBl
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmFuaW1hdGlvbkNv
bGxlY3Rpb25Gb3JUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90
eXBlLml0ZW1BZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlw
ZS5pdGVtUmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlw
ZS5pdGVtc0NsZWFyZWQpOgorICAgICAgICBTaW1pbGFyIHRvIGBXSS5SZXNvdXJjZUNvbGxlY3Rp
b25gLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiBgV0kuQ29sbGVjdGlvbmAgdGhhdCBtYWludGFpbnMg
aXQncworICAgICAgICBvd24gc3ViLWBXSS5BbmltYXRpb25Db2xsZWN0aW9uYHMgZm9yIGVhY2gg
dHlwZSBvZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvQW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbik6CisgICAg
ICAgIChXSS5BbmltYXRpb24uZnJvbVBheWxvYWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRp
c3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxh
eU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxh
eU5hbWVGb3JGaWxsTW9kZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNw
bGF5TmFtZU51bWJlcnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYW5p
bWF0aW9uSWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYmFja3RyYWNl
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgc3RhcnREZWxheSk6CisgICAgICAg
IChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBlbmREZWxheSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25Db3VudCk6CisgICAgICAgIChXSS5BbmltYXRp
b24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25TdGFydCk6CisgICAgICAgIChXSS5BbmltYXRpb24u
cHJvdG90eXBlLmdldCBpdGVyYXRpb25EdXJhdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24u
cHJvdG90eXBlLmdldCB0aW1pbmdGdW5jdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJv
dG90eXBlLmdldCBwbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJv
dG90eXBlLmdldCBmaWxsTW9kZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdl
dCBrZXlmcmFtZXMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZGlzcGxh
eU5hbWUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5yZXF1ZXN0RWZmZWN0VGFy
Z2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uLnByb3RvdHlwZS5fdXBkYXRlRWZmZWN0KToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdJLlJlbW90ZU9iamVj
dC5yZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanM6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcy4KKyAg
ICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NU
YWJDb250ZW50Vmlldy50YWJJbmZvKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcuaXNUYWJBbGxvd2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLnNob3dSZXByZXNlbnRlZE9iamVjdCk6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmNsb3NlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAg
ICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KTog
QWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFu
ZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSk6IEFkZGVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3M6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNU
YWJDb250ZW50Vmlldy5jc3MuCisgICAgICAgIFJlbmFtZSB0aGUgQ2FudmFzIFRhYiB0byBHcmFw
aGljcyBUYWIgYW5kIGRpc3BsYXkgZm91ciBzZWN0aW9uczoKKyAgICAgICAgIC0gQ2FudmFzZXMK
KyAgICAgICAgIC0gV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIEFuaW1hdGlvbnMKKyAg
ICAgICAgIC0gQ1NTIFRyYW5zaXRpb25zCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgT25seSBhcHBlYXIg
aWYgYSBgV0kuQ2FudmFzYCBvciBgV0kuUmVjb3JkaW5nYCBpcyBzZWxlY3RlZC4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBzdXBwbGVtZW50
YWxSZXByZXNlbnRlZE9iamVjdHMpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQp
OgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9w
Wm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lSGFuZGxlRHJvcCk6CisgICAgICAgIChX
SS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRp
bmdDaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90
b3R5cGUuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmll
d1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJl
c2VudGVkT2JqZWN0c0RpZENoYW5nZSk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAg
KC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24pOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1jaGlsZCkpOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmly
c3Qtb2YtdHlwZSkgPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
cik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNj
aGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAo
QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAgIEFkZCBzdGlja3kgaGVh
ZGVycyBmb3IgZWFjaCBvZiB0aGUgc2VjdGlvbnMgZGVzY3JpYmVkIGFib3ZlLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6
IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxl
UmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZGV0
YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VM
ZWF2ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
LWNvbGxlY3Rpb24pOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25D
b250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldyk6
CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5nZXQgcHJldmlld0hlaWdodCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1
dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
c2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5
cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
cmVmcmVzaFN1YnRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fcmVmcmVzaFByZXZpZXcuYWRkVGl0bGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlldyk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUVmZmVjdENoYW5nZWQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVUYXJnZXRDaGFuZ2VkKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcG9wdWxhdGVBbmlt
YXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3M6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24pOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24uc2VsZWN0
ZWQpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIpOgorICAgICAg
ICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzKToKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6Cisg
ICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3Vi
dGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0
bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZvcmUpOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyk6CisgICAgICAgICgu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnKToKKyAgICAgICAgKGJvZHlb
ZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2Zyk6CisgICAg
ICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QpOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBs
aW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcg
PiAuYWN0aXZlIHBhdGgpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxpbmUpOgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHNwYW4pOgorICAgICAgICAoQG1lZGlhIChw
cmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnRpdGxlKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1z
Y2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+
IC5zdWJ0aXRsZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJr
KSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3KToKKyAgICAgICAgVmlzdWFsaXpl
IHRoZSBzdGFydC9lbmQgZGVsYXkgYW5kIGtleWZyYW1lcyBvZiB0aGUgZ2l2ZW4gYW5pbWF0aW9u
IGFzIGEgc2VyaWVzIG9mIGJlemllcgorICAgICAgICBjdXJ2ZXMgc2VwYXJhdGVkIGJ5IG1hcmtl
cnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRl
YmFyUGFuZWwuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQ
YW5lbCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlw
ZS5pbnNwZWN0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLmdldCBhbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGVi
YXJQYW5lbC5wcm90b3R5cGUuc2V0IGFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmxheW91dCk6CisgICAgICAg
IChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaElkZW50
aXR5U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5fcmVmcmVzaEVmZmVjdFNlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVB
bmltYXRpb25FZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRl
YmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2VkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVEZXRh
aWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzczogQWRkZWQuCisgICAgICAg
ICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFp
bHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5oZWFkZXIgPiAuc3VidGl0bGUpOgorICAg
ICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5k
ZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uKToKKyAg
ICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAu
ZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93
LnN0eWxlcyk6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+
IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxz
LXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3IpOgorICAgICAgICAoLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5p
bWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uKToKKyAgICAgICAgU2hvdyBjb2xsZWN0
ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVjdGVkIGFuaW1hdGlvbiwgaXRzIGVmZmVjdCwg
YW5kIGl0cyB0YXJnZXQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Nh
bnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyKToKKyAgICAgICAgKFdJ
LkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNDb2xsZWN0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJ
LkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZh
c01hbmFnZXIucHJvdG90eXBlLmNhbnZhc1JlbW92ZWQpOgorICAgICAgICAoV0kuQ2FudmFzTWFu
YWdlci5wcm90b3R5cGUuX3NhdmVSZWNvcmRpbmdzKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52
YXNNYW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdJ
LkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNlcyk6IERlbGV0ZWQuCisgICAgICAg
IChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlQ2FudmFzKTogRGVsZXRlZC4KKyAg
ICAgICAgUmF0aGVyIHRoYW4gaGF2ZSB0aGUgYFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3YCBtYWlu
YWluIHRoZSBgV0kuQ2FudmFzQ29sbGVjdGlvbmAgYW5kIGhhdmUgdG8KKyAgICAgICAgbGlzdGVu
IGZvciBldmVudHMgZnJvbSB0aGUgYFdJLkNhbnZhc01hbmFnZXJgLCBqdXN0IGhhdmUgdGhlIGBX
SS5DYW52YXNNYW5hZ2VyYCBob2xkIG9uIHRvCisgICAgICAgIGl0IGluc3RlYWQgYW5kIHByb3Zp
ZGUgYSBnZXR0ZXIgZm9yIGl0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3QWRkZWQpOgor
ICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZp
ZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90
eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcu
cHJvdG90eXBlLl9hZGRTYXZlZFJlY29yZGluZyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oaWRkZW4pOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IF9pdGVtTWFyZ2luKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9yZWZy
ZXNoUHJldmlld3MpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuX3VwZGF0ZU5hdmlnYXRpb25JdGVtcyk6IERlbGV0ZWQuCisgICAgICAg
IChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2hvd0dyaWRCdXR0b25D
bGlja2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcu
cHJvdG90eXBlLl91cGRhdGVTaG93SW1hZ2VHcmlkKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzOgorICAgICAgICAo
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyk6CisgICAgICAgIChAbWVkaWEg
KHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRl
bnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcpOgorICAgICAgICAoV0ku
Q2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKTog
QWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVT
aG91bGRBcHBlYXJGb3JEcmFnRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZUhhbmRsZURyb3ApOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJ
LkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52
YXNDb250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNvbnRl
eHRNZW51KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6
IERlbGV0ZWQuCisgICAgICAgIE1vdmUgdGhlICJMb2cgQ2FudmFzIENvbnRleHQiIHRvIGJlIHRo
ZSBmaXJzdCBpdGVtIGluIHRoZSBjYW52YXMgZWxlbWVudCBidXR0b24gY29udGV4dCBtZW51Lgor
ICAgICAgICBEcml2ZS1ieTogYWRkIGEgYFdJLkRyb3Bab25lVmlld2AgZm9yIHdoZW4gcmVjb3Jk
aW5nIEpTT04gZmlsZXMgYXJlIGRyYWdnZWQgb24gdG9wLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3M6CisgICAgICAgIERyaXZlLWJ5OiBkcm9w
IGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3RvcnMgc2luY2UgdGhlIENhbnZhcyBUYWIgZG9l
c24ndCBleGlzdCBhbnltb3JlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db2xs
ZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcp
OgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgc2VsZWN0
ZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLnNldCBzZWxlY3RlZEl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuYWRkQ29udGVudFZpZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNv
bGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUucmVtb3ZlQ29udGVudFZpZXdGb3JJdGVtKToK
KyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2hvd0NvbnRlbnRQ
bGFjZWhvbGRlcik6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fc2VsZWN0SXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJv
dG90eXBlLl9oYW5kbGVDbGljayk6IEFkZGVkLgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5zZXRTZWxlY3RlZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRlcjpub3QoLm1lc3NhZ2UtdGV4dC12
aWV3KSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJj
ZS5pbWFnZSBpbWcpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9u
IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIpOiBEZWxldGVkLgorICAgICAgICBXaGVuIHNlbGVj
dGlvbiBpcyBlbmFibGVkLCBjbGlja2luZyBvdXRzaWRlIG9mIGFueSBvZiB0aGUgY29udGVudCB2
aWV3cyBzaG91bGQgZGlzbWlzcyB0aGUKKyAgICAgICAgY3VycmVudCBzZWxlY3Rpb24uIENsaWVu
dHMgc2hvdWxkIGFsc28gYmUgYWJsZSB0byBnZXQgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVt
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dy5qczoKKyAgICAgICAgKFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93LnByb3RvdHlwZS5zZXQg
dmFsdWUpOgorICAgICAgICBFbnN1cmUgdGhhdCBgMGAgaXMgY29uc2lkZXJlZCBhcyBhIHZhbGlk
IHZhbHVlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAg
IChXSS5sb2FkZWQpOgorICAgICAgICAoV0kuY29udGVudExvYWRlZCk6CisgICAgICAgIChXSS50
YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Db250ZW50Vmlldy5j
cmVhdGVGcm9tUmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAgICAoV0kuQ29udGVudFZpZXcuaXNW
aWV3YWJsZSk6CisgICAgICAgIEFsbG93IGBXSS5BbmltYXRpb25gIHRvIGJlIHZpZXdhYmxlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzczoKKyAgICAgICAgKC5uYXZp
Z2F0aW9uLWl0ZW0taGVscCk6IEFkZGVkLgorICAgICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxw
ID4gLm5hdmlnYXRpb24tYmFyKTogQWRkZWQuCisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhl
bHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6IEFkZGVkLgorICAgICAgICAoLm1lc3NhZ2Ut
dGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IERlbGV0ZWQuCisgICAgICAgICgubWVz
c2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhcik6IERl
bGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxw
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtKTogRGVsZXRlZC4KKyAgICAgICAgQWxsb3cgYFdJLmNy
ZWF0ZU5hdmlnYXRpb25JdGVtSGVscGAgdG8gYmUgdXNlZCBpbmRlcGVuZGVudGx5IG9mIGBXSS5j
cmVhdGVNZXNzYWdlVGV4dFZpZXdgLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9ET01NYW5hZ2VyLmpzOgorICAgICAgICAoV0kuRE9NTWFuYWdlci5wcm90b3R5cGUubm9k
ZUZvcklkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFu
YWdlci5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9u
VHJhY2tpbmdVcGRhdGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRl
c3RDYXNlUmVzdWx0LmpzOgorICAgICAgICAoV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdC5hc3luYyBm
cm9tUGF5bG9hZCk6CisgICAgICAgIEFkZCBhIGZhbGxiYWNrIHNvIGNhbGxlcnMgZG9uJ3QgbmVl
ZCB0by4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9u
Q29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmll
dyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250
ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24g
PiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LnJl
c291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyKTogQWRkZWQuCisg
ICAgICAgIERyaXZlLWJ5OiBtb3ZlIHRoZXNlIHN0eWxlcyB0byB0aGUgcmlnaHQgZmlsZSBhbmQg
bWFrZSB0aGVtIG1vcmUgc3BlY2lmaWMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9DYW52YXMuanM6CisgICAgICAgIChXSS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlw
ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzOgorICAgICAg
ICAoV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlwZSk6IEFkZGVkLgorICAg
ICAgICBEcml2ZS1ieTogZml4IGxvY2FsaXplZCBzdHJpbmdzLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3M6CisgICAgICAgIERyaXZlLWJ5
OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3RvcnMgc2luY2UgdGhlIFJlY29yZGlu
ZyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9N
YWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Nh
bnZhcy5zdmcuCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0Lmh0bWw6CisgICAgICAgICog
VXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanM6CisgICAgICAgIChXSS5sb2FkZWQpOgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzOgorICAgICAgICAoVGVzdEhh
cm5lc3MucHJvdG90eXBlLmV4cGVjdEVtcHR5KTogQWRkZWQuCisgICAgICAgIChUZXN0SGFybmVz
cy5wcm90b3R5cGUuZXhwZWN0Tm90RW1wdHkpOiBBZGRlZC4KKyAgICAgICAgKFRlc3RIYXJuZXNz
LnByb3RvdHlwZS5fZXhwZWN0YXRpb25NZXNzYWdlRm9ybWF0KToKKyAgICAgICAgKFRlc3RIYXJu
ZXNzLnByb3RvdHlwZS5fZXhwZWN0ZWRWYWx1ZUZvcm1hdCk6CisgICAgICAgIEFkZCB1dGlsaXR5
IGZ1bmN0aW9uIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBlbXB0eToK
KyAgICAgICAgIC0gQXJyYXkgYGxlbmd0aCA9PT0gMGAKKyAgICAgICAgIC0gU3RyaW5nIGBsZW5n
dGggPT09IDBgCisgICAgICAgICAtIFNldCBgc2l6ZSA9PT0gMGAKKyAgICAgICAgIC0gTWFwIGBz
aXplID09PSAwYAorICAgICAgICAgLSBPYmplY3QgYGlzRW1wdHlPYmplY3RgCisgICAgICAgIEFu
eSBvdGhlciB0eXBlIHdpbGwgYXV0b21hdGljYWxseSBmYWlsLCBhcyBub24tb2JqZWN0cyBjYW4n
dCBiZSAiZW1wdHkiIChlLmcuIGA0MmApLgorCiAyMDE5LTEyLTIxICBCcmlhbiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBJbnNwZWN0ZWRUYXJn
ZXRUeXBlcyBkaWFnbm9zdGljIGV2ZW50IGFuZCByZWxhdGVkIGhvb2tzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgpp
bmRleCBiZWFmOGRlMjhhYzc1M2UzN2VmMmJlODljMDFmY2IwYmQ1M2RhZmJiLi4yMmVlODgyNDc5
OTljZDU4MjVhNWVhMzE2NzdlZjZiNDc0YzY4MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KQEAgLTE0LDYg
KzE0LDUxIEBACiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImVu
dW0iOiBbInJlYWR5IiwgImRlbGF5ZWQiLCAiYWN0aXZlIiwgImNhbmNlbGVkIiwgImRvbmUiXQog
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiUGxheWJhY2tEaXJlY3Rp
b24iLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjog
WyJub3JtYWwiLCAicmV2ZXJzZSIsICJhbHRlcm5hdGUiLCAiYWx0ZXJuYXRlLXJldmVyc2UiXQor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiRmlsbE1vZGUiLAorICAg
ICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub25lIiwg
ImZvcndhcmRzIiwgImJhY2t3YXJkcyIsICJib3RoIiwgImF1dG8iXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAiaWQiOiAiQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJ0eXBl
IjogIm9iamVjdCIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJjc3NBbmltYXRpb25OYW1lIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNw
b25kaW5nIGBhbmltYXRpb24tbmFtZWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3Zp
ZGVkIGlmIGB0cmFuc2l0aW9uUHJvcGVydHlgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY3NzVHJhbnNpdGlvblByb3BlcnR5IiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3Jy
ZXNwb25kaW5nIGB0cmFuc2l0aW9uLXByb3BlcnR5YCBDU1MgcHJvcGVydHkuIFNob3VsZCBub3Qg
YmUgcHJvdmlkZWQgaWYgYGFuaW1hdGlvbk5hbWVgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlv
bmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFja3RyYWNlIiwgInR5
cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNvbnNvbGUuQ2FsbEZyYW1lIiB9LCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQmFja3RyYWNlIHRoYXQgd2FzIGNhcHR1
cmVkIHdoZW4gdGhpcyBgV2ViQW5pbWF0aW9uYCB3YXMgY3JlYXRlZC4iIH0KKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkVmZmVjdCIsCisg
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBb
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydERlbGF5IiwgInR5cGUiOiAibnVtYmVy
IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kRGVs
YXkiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJpdGVyYXRpb25Db3VudCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgaXRlcmF0aW9ucyBpbiB0aGUgYW5p
bWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvblN0YXJ0Iiwg
InR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkluZGV4
IG9mIHdoaWNoIGl0ZXJhdGlvbiB0byBzdGFydCBhdC4iIH0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpdGVyYXRpb25EdXJhdGlvbiIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUb3RhbCB0aW1lIG9mIGVhY2ggaXRlcmF0aW9uLCBtZWFz
dXJlZCBpbiBtaWxsaXNlY29uZHMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGlt
aW5nRnVuY3Rpb24iLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiQ1NTIHRpbWluZyBmdW5jdGlvbiBvZiB0aGUgb3ZlcmFsbCBhbmltYXRpb24uIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGxheWJhY2tEaXJlY3Rpb24iLCAiJHJlZiI6
ICJQbGF5YmFja0RpcmVjdGlvbiIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZpbGxNb2RlIiwgIiRyZWYiOiAiRmlsbE1vZGUiLCAib3B0aW9uYWwiOiB0
cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJrZXlmcmFtZXMiLCAidHlwZSI6ICJh
cnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiS2V5ZnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUg
fQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQi
OiAiS2V5ZnJhbWUiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAg
ICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2Zmc2V0IiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkRlY2ltYWwgcGVyY2VudGFnZSBbMCwxXSBy
ZXByZXNlbnRpbmcgd2hlcmUgdGhpcyBrZXlmcmFtZSBpcyBpbiB0aGUgZW50aXJlIGR1cmF0aW9u
IG9mIHRoZSBhbmltYXRpb24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZWFzaW5n
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNT
UyB0aW1pbmcgZnVuY3Rpb24gZm9yIGhvdyB0aGUgYHN0eWxlYCBpcyBhcHBsaWVkLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNTUyBzdHlsZSBkZWNsYXJhdGlvbiBvZiB0aGUg
Q1NTIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIGFuaW1hdGVkLiIgfQorICAgICAgICAgICAgXQor
ICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiVHJhY2tpbmdVcGRhdGUi
LAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKQEAgLTI3LDYgKzcyLDM1IEBACiAgICAg
ICAgIH0KICAgICBdLAogICAgICJjb21tYW5kcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAiZW5hYmxlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIENh
bnZhcyBkb21haW4gZXZlbnRzLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAiZGlzYWJsZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMg
Q2FudmFzIGRvbWFpbiBldmVudHMuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJyZXF1ZXN0RWZmZWN0VGFyZ2V0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJHZXRzIHRoZSBgRE9NLk5vZGVJZGAgZm9yIHRoZSB0YXJnZXQgb2YgdGhlIGVmZmVjdCBv
ZiB0aGUgYW5pbWF0aW9uIHdpdGggdGhlIGdpdmVuIGBBbmltYXRpb25JZGAuIiwKKyAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9u
SWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYi
OiAiRE9NLk5vZGVJZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJSZXNvbHZlcyBKYXZhU2NyaXB0IGBXZWJBbmltYXRpb25gIG9iamVjdCBmb3Ig
Z2l2ZW4gYEFuaW1hdGlvbklkYC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklk
IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3ltYm9saWMgZ3JvdXAg
bmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0cy4iIH0KKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm9iamVjdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInN0
YXJ0VHJhY2tpbmciLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRyYWNraW5n
IGFuaW1hdGlvbnMuIFRoaXMgd2lsbCBwcm9kdWNlIGEgYHRyYWNraW5nU3RhcnRgIGV2ZW50LiIK
QEAgLTM3LDYgKzExMSwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25DcmVhdGVkIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1hdGlv
bmAgaXMgY3JlYXRlZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJhbmltYXRpb24iLCAiJHJlZiI6ICJBbmltYXRpb24iIH0KKyAgICAg
ICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZWZm
ZWN0Q2hhbmdlZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVu
ZXZlciB0aGUgZWZmZWN0IG9mIGFueSBhbmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIs
CisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6ICJFZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBvbWl0dGVkIHdoZW4gdGhlIGVmZmVjdCBpcyByZW1vdmVk
IHdpdGhvdXQgYSByZXBsYWNlbWVudC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidGFyZ2V0Q2hhbmdlZCIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgdGFyZ2V0IG9mIGFueSBl
ZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFuZ2VkIGluIGFueSB3YXkuIiwKKyAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9u
SWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25EZXN0cm95ZWQiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgYSBgV2ViQW5pbWF0
aW9uYCBpcyBkZXN0cm95ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIg
fQorICAgICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFt
ZSI6ICJ0cmFja2luZ1N0YXJ0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRj
aGVkIGFmdGVyIGBzdGFydFRyYWNraW5nYCBjb21tYW5kLiIsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9DU1NBbmltYXRpb24uY3BwCmluZGV4IDdjNzJmNjI0YzMzMGFmOTZiYTcwYjdhZTRlOTJi
NTAxY2ExMDEwN2UuLmZkM2ViOWRiZGU5YmMxYWIwYjk3ZjBhMDcxZTAwZTgwZmI4MTMxMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zOSw2ICs0MCw5IEBA
IFJlZjxDU1NBbmltYXRpb24+IENTU0FuaW1hdGlvbjo6Y3JlYXRlKEVsZW1lbnQmIG93bmluZ0Vs
ZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYKIHsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgQ1NTQW5pbWF0aW9uKG93bmluZ0VsZW1lbnQsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxl
KSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7CisKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0
KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0NTU1RyYW5zaXRpb24uY3BwCmluZGV4IGRmZjVmYjFmNzlhODljNTY2MGE0OWMxYjM2NDNkZDA3
ZDgyNDMyNzEuLmFhYWU1ZTJkMGM2MTcyMGNkMTA4ZGQ2ZGNlNTk1MTljYTBhYzNlMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUVmZmVj
dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTQwLDYgKzQxLDkg
QEAgUmVmPENTU1RyYW5zaXRpb24+IENTU1RyYW5zaXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25p
bmdFbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHAKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgQ1NTVHJhbnNpdGlvbihvd25pbmdFbGVtZW50LCBwcm9wZXJ0eSwgZ2VuZXJhdGlvblRpbWUs
IGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxlLCByZXZlcnNpbmdBZGp1c3RlZFN0YXJ0U3R5bGUs
IHJldmVyc2luZ1Nob3J0ZW5pbmdGYWN0b3IpKTsKICAgICByZXN1bHQtPmluaXRpYWxpemUob2xk
U3R5bGUsIG5ld1N0eWxlKTsKICAgICByZXN1bHQtPnNldFRpbWluZ1Byb3BlcnRpZXMoZGVsYXks
IGR1cmF0aW9uKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
QW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCBmOTk0MzA3ZDY2
MGE5NmEwOWZiMDc0MmNmZWZjM2MyODFlNDEyYjAxLi4zYzJlNzA4NTEyNDYyM2M5YTUxZDc1OTU5
N2I4MjViOTM2MTNmMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVm
ZmVjdC5jcHAKQEAgLTExMDUsNyArMTEwNSw3IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFs
aWRhdGUoKQogCiB2b2lkIEtleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0
ZWQoKQogewotICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBoYXNCbGVuZGluZ0tleWZyYW1l
cygpOworICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSAhIW1fYmxlbmRpbmdLZXlmcmFtZXMu
c2l6ZSgpOwogICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0eUlkIDogbV9ibGVuZGluZ0tleWZyYW1l
cy5wcm9wZXJ0aWVzKCkpIHsKICAgICAgICAgaWYgKCFDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YW5p
bWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxlcmF0ZWQoY3NzUHJvcGVydHlJZCkpIHsKICAgICAgICAg
ICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5kZXggMDQ5MzM3ZGRhMDA1ODhiMjZlZTdkMmI5OWRlMDY3
ODQ0NjYxZWVjNS4uZDg5ZTEzNTJjYzgyNWUzYzkxMjIwMjY4ZTVmNmQ1NTU0OWUyNzc0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKQEAgLTk4LDYgKzk4LDgg
QEAgcHVibGljOgogICAgICAgICBDb21wb3NpdGVPcGVyYXRpb25PckF1dG8gY29tcG9zaXRlIHsg
Q29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvOjpBdXRvIH07CiAgICAgfTsKIAorICAgIGNvbnN0IFZl
Y3RvcjxQYXJzZWRLZXlmcmFtZT4mIHBhcnNlZEtleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1f
cGFyc2VkS2V5ZnJhbWVzOyB9CisKICAgICBFbGVtZW50KiB0YXJnZXQoKSBjb25zdCB7IHJldHVy
biBtX3RhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0VGFyZ2V0KFJlZlB0cjxFbGVtZW50PiYm
KTsKIApAQCAtMTM0LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbG9yRmlsdGVyRnVu
Y3Rpb25MaXN0c01hdGNoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb2xvckZpbHRlckZ1
bmN0aW9uTGlzdHNNYXRjaDsgfQogCiAgICAgdm9pZCBjb21wdXRlRGVjbGFyYXRpdmVBbmltYXRp
b25CbGVuZGluZ0tleWZyYW1lcyhjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJl
bmRlclN0eWxlJiBuZXdTdHlsZSk7Ci0gICAgYm9vbCBoYXNCbGVuZGluZ0tleWZyYW1lcygpIGNv
bnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyB9CisgICAgY29uc3QgS2V5
ZnJhbWVMaXN0JiBibGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdL
ZXlmcmFtZXM7IH0KICAgICBjb25zdCBIYXNoU2V0PENTU1Byb3BlcnR5SUQ+JiBhbmltYXRlZFBy
b3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMo
KTsgfQogCiAgICAgYm9vbCBjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24oTGF5b3V0
UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApp
bmRleCA1MTVkMzY5MDdmOTEwMzU4MTAzMDYwNzA2ZDg4NjVhZDljZTljNmE3Li4zZWEzODY0YjY5
ZTgyZDQ1ZjdiN2IwZWRkYTJiMjkyNTI3YjQ1NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcApAQCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgIlN0eWxlZEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTUxLDExICs1MywzMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJBbmltYXRpb24pOwog
CitIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBXZWJBbmltYXRpb246Omluc3RhbmNlcyhjb25zdCBM
b2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxXZWJBbmlt
YXRpb24qPj4gaW5zdGFuY2VzOworICAgIHJldHVybiBpbnN0YW5jZXM7Cit9CisKK0xvY2smIFdl
YkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0
cm95ZWQ8TG9jaz4gbXV0ZXg7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVN
dXRleDsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplTXV0ZXgsIFtdIHsKKyAgICAgICAg
bXV0ZXguY29uc3RydWN0KCk7CisgICAgfSk7CisgICAgcmV0dXJuIG11dGV4LmdldCgpOworfQor
CiBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0KQogewogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRS
ZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQpKTsKICAgICByZXN1bHQtPnNldEVmZmVjdChl
ZmZlY3QpOwogICAgIHJlc3VsdC0+c2V0VGltZWxpbmUoJmRvY3VtZW50LnRpbWVsaW5lKCkpOwor
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVz
dWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTY1LDYgKzg2LDkgQEAg
UmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBBbmltYXRpb25FZmZlY3QqIGVmZmUKICAgICByZXN1bHQtPnNldEVmZmVjdChlZmZlY3QpOwog
ICAgIGlmICh0aW1lbGluZSkKICAgICAgICAgcmVzdWx0LT5zZXRUaW1lbGluZSh0aW1lbGluZSk7
CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihy
ZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNzUsNiArOTksOSBA
QCBXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAg
bV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwor
CisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIGluc3RhbmNlcyhs
b2NrKS5hZGQodGhpcyk7CiB9CiAKIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigpCkBAIC04
Myw2ICsxMTAsMTAgQEAgV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKIAogICAgIGlmICht
X3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5lLT5mb3JnZXRBbmltYXRpb24odGhpcyk7CisK
KyAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgQVNTRVJUKGluc3Rh
bmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAgaW5zdGFuY2VzKGxvY2spLnJlbW92ZSh0
aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OmNvbnRleHREZXN0cm95ZWQoKQpAQCAtMTE0
LDYgKzE0NSw4IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp1bnN1c3BlbmRFZmZlY3RJbnZhbGlkYXRp
b24oKQogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSgpCiB7CiAgICAg
dGltaW5nRGlkQ2hhbmdlKERpZFNlZWs6Ok5vLCBTeW5jaHJvbm91c2x5Tm90aWZ5OjpZZXMpOwor
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3RUaW1pbmcoKnRoaXMpOwogfQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0KFJlZlB0
cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0KQpAQCAtMTg4LDcgKzIyMSw3IEBAIHZvaWQg
V2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiYm
IG5ld0VmZmVjdCwgYm9vbCBkCiAgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNB
ZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoKnRoaXMpOworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KCp0aGlz
KTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVsaW5lKFJlZlB0cjxBbmltYXRpb25U
aW1lbGluZT4mJiB0aW1lbGluZSkKQEAgLTI0NywxNCArMjgwLDE1IEBAIHZvaWQgV2ViQW5pbWF0
aW9uOjpzZXRUaW1lbGluZUludGVybmFsKFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4mJiB0aW1l
bGluZSkKIAogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5nZShFbGVtZW50
KiBwcmV2aW91c1RhcmdldCwgRWxlbWVudCogbmV3VGFyZ2V0KQogewotICAgIGlmICghbV90aW1l
bGluZSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3RpbWVsaW5lKSB7CisgICAgICAgIGlm
IChwcmV2aW91c1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc1Jl
bW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKIAotICAgIGlmIChwcmV2
aW91c1RhcmdldCkKLSAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVtb3ZlZEZyb21F
bGVtZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOworICAgICAgICBpZiAobmV3VGFyZ2V0KQor
ICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMs
ICpuZXdUYXJnZXQpOworICAgIH0KIAotICAgIGlmIChuZXdUYXJnZXQpCi0gICAgICAgIG1fdGlt
ZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRh
cmdldCgqdGhpcyk7CiB9CiAKIE9wdGlvbmFsPGRvdWJsZT4gV2ViQW5pbWF0aW9uOjpzdGFydFRp
bWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCmluZGV4IGRh
NGQ4ZWMzYmMyZTU3MGI0OGE1MWRiYzE0YTM0NGU2YzQ5YmEwNzAuLmM5OTYxM2IyNjYxZDc2NWYw
ZWUzYjg2ZDYxNGY5Y2QyYjdkYzIzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5p
bWF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2lu
Y2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CkBAIC01NCw2
ICs1NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkFuaW1hdGlvbj4gY3JlYXRlKERv
Y3VtZW50JiwgQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKICAgICB+V2Vi
QW5pbWF0aW9uKCk7CiAKKyAgICBzdGF0aWMgSGFzaFNldDxXZWJBbmltYXRpb24qPiYgaW5zdGFu
Y2VzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBzdGF0aWMgTG9jayYgaW5zdGFuY2VzTXV0ZXgo
KTsKKwogICAgIHZpcnR1YWwgYm9vbCBpc0RlY2xhcmF0aXZlQW5pbWF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NBbmltYXRpb24oKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU1RyYW5zaXRpb24oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0ZjE4YjU4YzZjZDAxZTBiNjlhODk1
M2FkMDlhNzM5YzM1MjA0OTZhLi5kMTMwOTg5MWRjNmIyM2IyYjI3ZTVjMjVjMGU5NjQ0NTJhNzM5
OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcApAQCAtNzIzLDYgKzcyMyw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKICAgICAgICAgY2FudmFzQWdlbnQt
PmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKIAorICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisg
ICAgICAgIGFuaW1hdGlvbkFnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CisKICAgICBpZiAo
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0
b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0TG9hZChmcmFtZS5kb2N1
bWVudCgpKTsKIApAQCAtMTEzMywxNSArMTEzNiwzNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
CiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsQXBwbHlLZXlmcmFtZUVmZmVjdCh0YXJnZXQs
IGVmZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3ZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uKQogewotICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQotICAgICAgICBhbmltYXRpb25B
Z2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7CisgICAgaWYgKGF1
dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZFNldFdlYkFuaW1h
dGlvbkVmZmVjdChhbmltYXRpb24pOworICAgIGVsc2UgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkp
CisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0
aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1h
dGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRpbWluZyhhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAg
ICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQor
eworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5k
aWRDcmVhdGVXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKLSAg
ICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5n
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQor
ICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5pbWF0aW9u
KTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQogICAgICAgICBhbmltYXRpb25B
Z2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4
IGRiZjgyMjA1ZGI1YmNjYmUxNjllZDBlOTQ3ZDFhZDgzZGQ4NTBmZDYuLmEyOTgxYWQ5ODJkZTY4
NzNkNGU5NjM3NDQ5Y2I3ZjMyZjhjMjVjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMwNSw3ICszMDUsMTAgQEAg
cHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVj
dChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWluZyk7Ci0gICAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsK
KyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5p
bWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFy
Z2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkFuaW1hdGlv
bihXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlv
bihXZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQo
UGFnZSYpOwpAQCAtNTA1LDcgKzUwOCwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdGF0
aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICBz
dGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmltYXRp
b25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmlt
YXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVz
dHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYp
OwogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJik7CkBAIC0xNDY2LDExICsxNDcyLDMyIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYgdGFyZ2V0LCBL
CiAgICAgICAgIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50
cywgdGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoYXV0byogaW5z
dHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlv
bi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworICAgICAgICBk
aWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRp
b24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5z
dHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlv
bi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQor
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JF
VFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RU
YXJnZXRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQorCitpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJB
bmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMo
dm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQor
ICAgICAgICBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBh
bmltYXRpb24pOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCmluZGV4IDFmOWEw
ZDdjNTMyYTNmOTA4NTZjMTg0YTFmZmMzYjFjZjM1ZWZjODcuLmQ3YTJmNzE5NThkOTQzY2NjYWM0
MzRlYWM5M2UzM2RhZTI3Y2M0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgdm9pZCBJbnN0cnVtZW50
aW5nQWdlbnRzOjpyZXNldCgpCiAgICAgbV9wYWdlRE9NRGVidWdnZXJBZ2VudCA9IG51bGxwdHI7
CiAgICAgbV9pbnNwZWN0b3JDYW52YXNBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9wZXJzaXN0ZW50
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOworICAgIG1fZW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKICAgICBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCBmNmZlYTdkYTIxMzYwZGQwOGNjM2Q5NjZiMTRlMmFh
YzQ2NTQ0OTE1Li5mNTljM2RiZGNhZjc4Y2Y5YzZkOGRiYjQzMmRjY2YyMmYxNWQ1MDdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTE1
Niw2ICsxNTYsOSBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHBlcnNp
c3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVyc2lzdGVu
dEluc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRQZXJzaXN0ZW50SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fcGVy
c2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KIAorICAgIEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KiBlbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7
IHJldHVybiBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQorICAgIHZvaWQgc2V0
RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBh
Z2VudCkgeyBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CisKICAg
ICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQog
ICAgIHZvaWQgc2V0VHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCogYWdlbnQpIHsgbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50ID0g
YWdlbnQ7IH0KIApAQCAtMTkwLDYgKzE5Myw3IEBAIHByaXZhdGU6CiAgICAgUGFnZURPTURlYnVn
Z2VyQWdlbnQqIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVj
dG9yQ2FudmFzQWdlbnQqIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgeyBudWxscHRyIH07CiAgICAg
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50IHsgbnVsbHB0ciB9OworICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX2VuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCogbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50IHsgbnVsbHB0ciB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBbmltYXRpb25BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAppbmRleCBkZTlhMmM1OWJkYWJjMjkwODk2Yzk2Mzlj
ZWFiYjRlMmM0NzNiODI5Li4wYzc0NGYyNDc3YWIyMTRlMDUxMDIzOWI5NDRkNTRmYzZhYzIyMWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFu
aW1hdGlvbkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcApAQCAtMjksMjkgKzI5LDE4NyBAQAogI2luY2x1ZGUg
IkFuaW1hdGlvbkVmZmVjdC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVjdFBoYXNlLmgiCiAj
aW5jbHVkZSAiQ1NTQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1Ry
YW5zaXRpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkRlY2xhcmF0aXZl
QW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSAiRmlsbE1vZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1
ZGUgIkpTV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIKKyNpbmNs
dWRlICJLZXlmcmFtZUxpc3QuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxheWJh
Y2tEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGlt
aW5nRnVuY3Rpb24uaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb24uaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JFbnZpcm9ubWVudC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0b3B3YXRjaC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAorc3RhdGlj
IE9wdGlvbmFsPGRvdWJsZT4gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoY29uc3QgU2Vjb25kcyYg
c2Vjb25kcykKK3sKKyAgICBpZiAoc2Vjb25kcyA9PSBTZWNvbmRzOjppbmZpbml0eSgpIHx8IHNl
Y29uZHMgPT0gU2Vjb25kczo6bmFuKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgcmV0dXJuIHNlY29uZHMubWlsbGlzZWNvbmRzKCk7Cit9CisKK3N0YXRpYyBPcHRpb25hbDxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uPiBwcm90b2Nv
bFZhbHVlRm9yUGxheWJhY2tEaXJlY3Rpb24oUGxheWJhY2tEaXJlY3Rpb24gcGxheWJhY2tEaXJl
Y3Rpb24pCit7CisgICAgc3dpdGNoIChwbGF5YmFja0RpcmVjdGlvbikgeworICAgIGNhc2UgUGxh
eWJhY2tEaXJlY3Rpb246Ok5vcm1hbDoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbDsKKyAgICBjYXNlIFBsYXli
YWNrRGlyZWN0aW9uOjpSZXZlcnNlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZTsKKyAgICBjYXNlIFBsYXli
YWNrRGlyZWN0aW9uOjpBbHRlcm5hdGU6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGU7CisgICAgY2FzZSBQ
bGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgcmV0dXJuIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZVJl
dmVyc2U7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKK30KKworc3RhdGljIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFu
aW1hdGlvbjo6RmlsbE1vZGU+IHByb3RvY29sVmFsdWVGb3JGaWxsTW9kZShGaWxsTW9kZSBmaWxs
TW9kZSkKK3sKKyAgICBzd2l0Y2ggKGZpbGxNb2RlKSB7CisgICAgY2FzZSBGaWxsTW9kZTo6Tm9u
ZToKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1v
ZGU6Ok5vbmU7CisgICAgY2FzZSBGaWxsTW9kZTo6Rm9yd2FyZHM6CisgICAgICAgIHJldHVybiBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpGb3J3YXJkczsKKyAgICBj
YXNlIEZpbGxNb2RlOjpCYWNrd2FyZHM6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCYWNrd2FyZHM7CisgICAgY2FzZSBGaWxsTW9kZTo6
Qm90aDoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6Rmls
bE1vZGU6OkJvdGg7CisgICAgY2FzZSBGaWxsTW9kZTo6QXV0bzoKKyAgICAgICAgcmV0dXJuIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkF1dG87CisgICAgfQorCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwor
c3RhdGljIFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6
S2V5ZnJhbWU+PiBidWlsZE9iamVjdEZvcktleWZyYW1lcyhLZXlmcmFtZUVmZmVjdCYga2V5ZnJh
bWVFZmZlY3QpCit7CisgICAgYXV0byBrZXlmcmFtZXNQYXlsb2FkID0gSlNPTjo6QXJyYXlPZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lPjo6Y3JlYXRlKCk7CisKKyAg
ICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGtleWZyYW1lRWZmZWN0LmFuaW1hdGlvbigp
KSkgeworICAgICAgICBBU1NFUlQoa2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCkpOworICAgICAgICBh
dXRvKiByZW5kZXJlciA9IGtleWZyYW1lRWZmZWN0LnRhcmdldCgpLT5yZW5kZXJlcigpOworCisg
ICAgICAgIC8vIFN5bnRoZXNpemUgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBmb3IgZWFjaCBrZXlm
cmFtZSBzbyB0aGUgZnJvbnRlbmQgY2FuIGRpc3BsYXkgdGhlbS4KKyAgICAgICAgQ29tcHV0ZWRT
dHlsZUV4dHJhY3RvciBjb21wdXRlZFN0eWxlRXh0cmFjdG9yKGtleWZyYW1lRWZmZWN0LnRhcmdl
dCgpKTsKKworICAgICAgICBhdXRvJiBibGVuZGluZ0tleWZyYW1lcyA9IGtleWZyYW1lRWZmZWN0
LmJsZW5kaW5nS2V5ZnJhbWVzKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxl
bmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8mIGJsZW5kaW5n
S2V5ZnJhbWUgPSBibGVuZGluZ0tleWZyYW1lc1tpXTsKKworICAgICAgICAgICAgQVNTRVJUKGJs
ZW5kaW5nS2V5ZnJhbWUuc3R5bGUoKSk7CisgICAgICAgICAgICBhdXRvJiBzdHlsZSA9ICpibGVu
ZGluZ0tleWZyYW1lLnN0eWxlKCk7CisKKyAgICAgICAgICAgIGF1dG8ga2V5ZnJhbWVQYXlsb2Fk
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZTo6Y3JlYXRlKCkKKyAg
ICAgICAgICAgICAgICAuc2V0T2Zmc2V0KGJsZW5kaW5nS2V5ZnJhbWUua2V5KCkpCisgICAgICAg
ICAgICAgICAgLnJlbGVhc2UoKTsKKworICAgICAgICAgICAgaWYgKGF1dG8qIHRpbWluZ0Z1bmN0
aW9uID0gYmxlbmRpbmdLZXlmcmFtZS50aW1pbmdGdW5jdGlvbigpKQorICAgICAgICAgICAgICAg
IGtleWZyYW1lUGF5bG9hZC0+c2V0RWFzaW5nKHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOwor
CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0eWxlUGF5bG9hZEJ1aWxkZXI7CisgICAgICAg
ICAgICBhdXRvJiBjc3NQcm9wZXJ0eUlkcyA9IGJsZW5kaW5nS2V5ZnJhbWUucHJvcGVydGllcygp
OworICAgICAgICAgICAgc2l6ZV90IGNvdW50ID0gY3NzUHJvcGVydHlJZHMuc2l6ZSgpOworICAg
ICAgICAgICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBjc3NQcm9wZXJ0eUlkcykgeworICAg
ICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgaWYgKGNzc1Byb3BlcnR5SWQg
PT0gQ1NTUHJvcGVydHlDdXN0b20pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoZ2V0UHJvcGVydHlOYW1l
U3RyaW5nKGNzc1Byb3BlcnR5SWQpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWls
ZGVyLmFwcGVuZCgiOiAiKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byB2YWx1ZSA9IGNvbXB1
dGVkU3R5bGVFeHRyYWN0b3IudmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoc3R5bGUsIGNzc1Byb3Bl
cnR5SWQsIHJlbmRlcmVyKSkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRl
ci5hcHBlbmQodmFsdWUtPmNzc1RleHQoKSk7CisgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2Fk
QnVpbGRlci5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPiAwKQorICAg
ICAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgnICcpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKCFzdHlsZVBheWxvYWRCdWlsZGVyLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldFN0eWxlKHN0eWxlUGF5bG9hZEJ1
aWxkZXIudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGtleWZyYW1lc1BheWxvYWQtPmFkZEl0
ZW0oV1RGTW92ZShrZXlmcmFtZVBheWxvYWQpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7Cisg
ICAgICAgIGZvciAoY29uc3QgYXV0byYgcGFyc2VkS2V5ZnJhbWUgOiBrZXlmcmFtZUVmZmVjdC5w
YXJzZWRLZXlmcmFtZXMoKSkgeworICAgICAgICAgICAgYXV0byBrZXlmcmFtZVBheWxvYWQgPSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lOjpjcmVhdGUoKQorICAgICAg
ICAgICAgICAgIC5zZXRPZmZzZXQocGFyc2VkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQpCisgICAg
ICAgICAgICAgICAgLnJlbGVhc2UoKTsKKworICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFt
ZS5lYXNpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0
RWFzaW5nKHBhcnNlZEtleWZyYW1lLmVhc2luZyk7CisKKyAgICAgICAgICAgIGlmICghcGFyc2Vk
S2V5ZnJhbWUuc3R5bGUtPmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxv
YWQtPnNldFN0eWxlKHBhcnNlZEtleWZyYW1lLnN0eWxlLT5hc1RleHQoKSk7CisKKyAgICAgICAg
ICAgIGtleWZyYW1lc1BheWxvYWQtPmFkZEl0ZW0oV1RGTW92ZShrZXlmcmFtZVBheWxvYWQpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBrZXlmcmFtZXNQYXlsb2FkOworfQorCitz
dGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RWZmZWN0PiBidWlsZE9i
amVjdEZvckVmZmVjdChBbmltYXRpb25FZmZlY3QmIGVmZmVjdCkKK3sKKyAgICBhdXRvIGVmZmVj
dFBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdDo6Y3JlYXRl
KCkKKyAgICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlmIChhdXRvIHN0YXJ0RGVsYXkgPSBwcm90
b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QuZGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBheWxv
YWQtPnNldFN0YXJ0RGVsYXkoc3RhcnREZWxheS52YWx1ZSgpKTsKKworICAgIGlmIChhdXRvIGVu
ZERlbGF5ID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LmVuZERlbGF5KCkpKQorICAg
ICAgICBlZmZlY3RQYXlsb2FkLT5zZXRFbmREZWxheShlbmREZWxheS52YWx1ZSgpKTsKKworICAg
IGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvbkNvdW50KGVmZmVjdC5pdGVyYXRpb25zKCkpOwor
ICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvblN0YXJ0KGVmZmVjdC5pdGVyYXRpb25TdGFy
dCgpKTsKKworICAgIGlmIChhdXRvIGl0ZXJhdGlvbkR1cmF0aW9uID0gcHJvdG9jb2xWYWx1ZUZv
clNlY29uZHMoZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9uKCkpKQorICAgICAgICBlZmZlY3RQYXls
b2FkLT5zZXRJdGVyYXRpb25EdXJhdGlvbihpdGVyYXRpb25EdXJhdGlvbi52YWx1ZSgpKTsKKwor
ICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IGVmZmVjdC50aW1pbmdGdW5jdGlvbigpKQor
ICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbi0+
Y3NzVGV4dCgpKTsKKworICAgIGlmIChhdXRvIHBsYXliYWNrRGlyZWN0aW9uID0gcHJvdG9jb2xW
YWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKGVmZmVjdC5kaXJlY3Rpb24oKSkpCisgICAgICAgIGVm
ZmVjdFBheWxvYWQtPnNldFBsYXliYWNrRGlyZWN0aW9uKHBsYXliYWNrRGlyZWN0aW9uLnZhbHVl
KCkpOworCisgICAgaWYgKGF1dG8gZmlsbE1vZGUgPSBwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUo
ZWZmZWN0LmZpbGwoKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKGZpbGxN
b2RlLnZhbHVlKCkpOworCisgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKQorICAg
ICAgICBlZmZlY3RQYXlsb2FkLT5zZXRLZXlmcmFtZXMoYnVpbGRPYmplY3RGb3JLZXlmcmFtZXMo
ZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpKTsKKworICAgIHJldHVybiBlZmZlY3RQ
YXlsb2FkOworfQorCiBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICA6IEluc3BlY3RvckFnZW50QmFz
ZSgiQW5pbWF0aW9uIl9zLCBjb250ZXh0KQogICAgICwgbV9mcm9udGVuZERpc3BhdGNoZXIobWFr
ZVVuaXF1ZTxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0Y2hlcj4oY29udGV4dC5m
cm9udGVuZFJvdXRlcikpCiAgICAgLCBtX2JhY2tlbmREaXNwYXRjaGVyKEluc3BlY3Rvcjo6QW5p
bWF0aW9uQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJhY2tlbmREaXNwYXRjaGVy
LCB0aGlzKSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNvbnRleHQuaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQorICAgICwgbV9pbnNwZWN0ZWRQYWdlKGNvbnRleHQuaW5zcGVjdGVkUGFn
ZSkKKyAgICAsIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIoKnRoaXMsICZJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNjcs
MTEgKzIyNSwxMDMgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBFcnJvclN0cmluZyBp
Z25vcmVkOwogICAgIHN0b3BUcmFja2luZyhpZ25vcmVkKTsKKyAgICBkaXNhYmxlKGlnbm9yZWQp
OwogCiAgICAgQVNTRVJUKG1faW5zdHJ1bWVudGluZ0FnZW50cy5wZXJzaXN0ZW50SW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0
UGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIpOwogfQogCit2b2lkIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQor
eworICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlv
bkFnZW50KCkgPT0gdGhpcykgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZG9t
YWluIGFscmVhZHkgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQodGhp
cyk7CisKKyAgICBjb25zdCBhdXRvIGV4aXN0c0luQ3VycmVudFBhZ2UgPSBbJl0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKKyAgICAgICAgaWYgKCFp
czxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjg0NzU+
IFdlYiBJbnNwZWN0b3I6IENvcnJlY3RseSBkaXNwbGF5IGlmcmFtZSdzIFdlYlNvY2tldHMKKyAg
ICAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpID09ICZtX2luc3BlY3Rl
ZFBhZ2U7CisgICAgfTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdlYkFuaW1h
dGlvbjo6aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIGZvciAoYXV0byogYW5pbWF0aW9uIDog
V2ViQW5pbWF0aW9uOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAgIGlmIChleGlzdHNJ
bkN1cnJlbnRQYWdlKGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAg
ICAgICAgICAgICBiaW5kQW5pbWF0aW9uKCphbmltYXRpb24sIGZhbHNlKTsKKyAgICAgICAgfQor
ICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZShFcnJvclN0
cmluZyYpCit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudChudWxscHRyKTsKKworICAgIHJlc2V0KCk7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3RFZmZlY3RUYXJnZXQoRXJyb3JTdHJpbmcmIGVycm9y
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkKK3sKKyAgICBh
dXRvKiBhbmltYXRpb24gPSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJpbmcsIGFuaW1hdGlvbklk
KTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZG9t
QWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKTsKKyAgICBp
ZiAoIWRvbUFnZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRPTSBkb21haW4gbXVzdCBi
ZSBlbmFibGVkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogZWZmZWN0
ID0gYW5pbWF0aW9uLT5lZmZlY3QoKTsKKyAgICBpZiAoIWlzPEtleWZyYW1lRWZmZWN0PihlZmZl
Y3QpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0
aW9uSWQgZG9lcyBub3QgaGF2ZSBhbiBlZmZlY3QiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBhdXRvJiBrZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0PEtleWZyYW1lRWZmZWN0Pigq
ZWZmZWN0KTsKKworICAgIGF1dG8qIHRhcmdldCA9IGtleWZyYW1lRWZmZWN0LnRhcmdldCgpOwor
ICAgIGlmICghdGFyZ2V0KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3Ig
Z2l2ZW4gYW5pbWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCJfczsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgICpub2RlSWQgPSBkb21BZ2VudC0+cHVzaE5vZGVQYXRoVG9Gcm9u
dGVuZChlcnJvclN0cmluZywgdGFyZ2V0KTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6cmVzb2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgYW5pbWF0aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpCit7CisgICAg
YXV0byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25J
ZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHN0
YXRlID0gYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV4ZWNTdGF0ZSgpOwor
ICAgIGF1dG8gaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbmplY3Rl
ZFNjcmlwdEZvcihzdGF0ZSk7CisgICAgQVNTRVJUKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVl
KCkpOworCisgICAgSlNDOjpKU1ZhbHVlIHZhbHVlOworICAgIHsKKyAgICAgICAgSlNDOjpKU0xv
Y2tIb2xkZXIgbG9jayhzdGF0ZSk7CisKKyAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShzdGF0ZSk7CisgICAgICAgIHZhbHVlID0g
dG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBhbmltYXRpb24pOworICAgIH0KKworICAgIGlmICgh
dmFsdWUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGVycm9yU3Ry
aW5nID0gIkludGVybmFsIGVycm9yOiB1bmtub3duIEFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0
aW9uSWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgb2JqZWN0R3Jv
dXBOYW1lID0gb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiBTdHJpbmcoKTsKKyAgICByZXN1
bHQgPSBpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KHZhbHVlLCBvYmplY3RHcm91cE5hbWUpOwor
fQorCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdGFydFRyYWNraW5nKEVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZykKIHsKICAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNr
aW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CkBAIC0xNzAsMTYgKzQyMCwx
NTEgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZl
Y3QoRWxlbWVudCYgdGFyZ2V0LCBLZXlmcmFtZUUKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+
dHJhY2tpbmdVcGRhdGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNl
ZFRpbWUoKS5zZWNvbmRzKCksIFdURk1vdmUoZXZlbnQpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYg
YW5pbWF0aW9uKQordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5pbWF0
aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxEZWNsYXJh
dGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVjbGFyYXRp
dmVBbmltYXRpb24oZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpOwor
CisgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFuaW1hdGlvbik7CisgICAg
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWlu
ZyhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBt
YXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAg
ICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYg
KGFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8q
IGVmZmVjdCA9IGFuaW1hdGlvbi5lZmZlY3QoKSkKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KCplZmZl
Y3QpKTsKKyAgICBlbHNlCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5lZmZlY3RDaGFu
Z2VkKGFuaW1hdGlvbklkLCBudWxscHRyKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmlt
YXRpb24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQg
PSBmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dGFyZ2V0
Q2hhbmdlZChhbmltYXRpb25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBp
ZiAoIWZpbmRBbmltYXRpb25JZChhbmltYXRpb24pLmlzRW1wdHkoKSkgeworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJpbmRBbmlt
YXRpb24oYW5pbWF0aW9uLCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAg
ICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKQogICAgICAgICBzdG9w
VHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlv
bj4oYW5pbWF0aW9uKSk7CisKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkg
aWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1h
dGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKCFhbmltYXRpb25J
ZC5pc0VtcHR5KCkpCisgICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisK
K3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lJiBmcmFt
ZSkKK3sKKyAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAgICAgICByZXNldCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gYW5pbWF0aW9uSWRz
VG9SZW1vdmU7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGFuaW1hdGlvbl0gOiBtX2Fu
aW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
ID0gYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgICAgIGlm
IChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYgZG93bmNhc3Q8RG9jdW1l
bnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KS5mcmFtZSgpID09ICZmcmFtZSkKKyAgICAgICAg
ICAgICAgICBhbmltYXRpb25JZHNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0aW9uSWQpOworICAgICAg
ICB9CisgICAgfQorICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uSWQgOiBhbmltYXRpb25J
ZHNUb1JlbW92ZSkKKyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30KKwor
U3RyaW5nIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQoV2ViQW5pbWF0
aW9uJiBhbmltYXRpb24pCit7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGV4aXN0aW5n
QW5pbWF0aW9uXSA6IG1fYW5pbWF0aW9uSWRNYXApIHsKKyAgICAgICAgaWYgKGV4aXN0aW5nQW5p
bWF0aW9uID09ICZhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uSWQ7Cisg
ICAgfQorICAgIHJldHVybiBudWxsU3RyaW5nKCk7Cit9CisKK1dlYkFuaW1hdGlvbiogSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmFzc2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAgYXV0byogYW5pbWF0aW9uID0g
bV9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQor
ICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIGFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0
aW9uSWQiX3M7CisgICAgcmV0dXJuIGFuaW1hdGlvbjsKK30KKwordm9pZCBJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6YmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbiwgYm9vbCBj
YXB0dXJlQmFja3RyYWNlKQoreworICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBtYWtlU3RyaW5nKCJh
bmltYXRpb246IiArIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKTsKKyAg
ICBtX2FuaW1hdGlvbklkTWFwLnNldChhbmltYXRpb25JZCwgJmFuaW1hdGlvbik7CisKKyAgICBh
dXRvIGFuaW1hdGlvblBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkFu
aW1hdGlvbjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldEFuaW1hdGlvbklkKGFuaW1hdGlvbklkKQor
ICAgICAgICAucmVsZWFzZSgpOworCisgICAgaWYgKGlzPENTU0FuaW1hdGlvbj4oYW5pbWF0aW9u
KSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0Q3NzQW5pbWF0aW9uTmFtZShkb3duY2Fz
dDxDU1NBbmltYXRpb24+KGFuaW1hdGlvbikuYW5pbWF0aW9uTmFtZSgpKTsKKyAgICBlbHNlIGlm
IChpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24pKQorICAgICAgICBhbmltYXRpb25QYXlsb2Fk
LT5zZXRDc3NUcmFuc2l0aW9uUHJvcGVydHkoZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0
aW9uKS50cmFuc2l0aW9uUHJvcGVydHkoKSk7CisKKyAgICBpZiAoYXV0byogZWZmZWN0ID0gYW5p
bWF0aW9uLmVmZmVjdCgpKQorICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRFZmZlY3QoYnVp
bGRPYmplY3RGb3JFZmZlY3QoKmVmZmVjdCkpOworCisgICAgaWYgKGNhcHR1cmVCYWNrdHJhY2Up
IHsKKyAgICAgICAgYXV0byBzdGFja1RyYWNlID0gSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRDYWxs
U3RhY2soSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCBJbnNwZWN0b3I6OlNjcmlwdENhbGxT
dGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CisgICAgICAgIGFuaW1hdGlvblBheWxv
YWQtPnNldEJhY2t0cmFjZShzdGFja1RyYWNlLT5idWlsZEluc3BlY3RvckFycmF5KCkpOworICAg
IH0KKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25DcmVhdGVkKFdURk1vdmUo
YW5pbWF0aW9uUGF5bG9hZCkpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp1
bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCkKK3sKKyAgICBtX2FuaW1h
dGlvbklkTWFwLnJlbW92ZShhbmltYXRpb25JZCk7CisKKyAgICAvLyBUaGlzIGNhbiBiZSBjYWxs
ZWQgaW4gcmVzcG9uc2UgdG8gR0MuIER1ZSB0byB0aGUgc2luZ2xlLXByb2Nlc3MgbW9kZWwgdXNl
ZCBpbiBXZWJLaXQxLCB0aGUKKyAgICAvLyBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQgZnJvbSBh
IHRpbWVyIHRvIHByZXZlbnQgdGhlIGZyb250ZW5kIGZyb20gbWFraW5nIEpTIGFsbG9jYXRpb25z
CisgICAgLy8gd2hpbGUgdGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KKyAgICBtX3JlbW92ZWRBbmlt
YXRpb25JZHMuYXBwZW5kKGFuaW1hdGlvbklkKTsKKworICAgIGlmICghbV9hbmltYXRpb25EZXN0
cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojph
bmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoIW1fcmVtb3ZlZEFuaW1h
dGlvbklkcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgaWRlbnRp
ZmllciA6IG1fcmVtb3ZlZEFuaW1hdGlvbklkcykKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXItPmFuaW1hdGlvbkRlc3Ryb3llZChpZGVudGlmaWVyKTsKKworICAgIG1fcmVtb3ZlZEFuaW1h
dGlvbklkcy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNl
dCgpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisgICAgbV9yZW1vdmVkQW5p
bWF0aW9uSWRzLmNsZWFyKCk7CisKKyAgICBpZiAobV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5p
c0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLnN0b3AoKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RvcFRyYWNraW5nRGVjbGFyYXRpdmVB
bmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mIGFuaW1hdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
aAppbmRleCA3YTI0YmJjYmIxYjMzMWQxOTBkYTYwYzAwZDIxYmQ5MzU0OGZhYjAwLi5kMjY2ZDdl
ZjIxZTQyZDg0MWRmNmMwZDM4MDczZGRlYzI5Y2FkOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCkBA
IC0yNywxNiArMjcsMjEgQEAKIAogI2luY2x1ZGUgIkNvbXB1dGVkRWZmZWN0VGltaW5nLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBbmlt
YXRpb25FZmZlY3Q7CiBjbGFzcyBEZWNsYXJhdGl2ZUFuaW1hdGlvbjsKIGNsYXNzIEVsZW1lbnQ7
CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgS2V5ZnJhbWVFZmZlY3Q7CitjbGFz
cyBQYWdlOwogY2xhc3MgV2ViQW5pbWF0aW9uOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmlu
ZzsKQEAgLTUzLDIwICs1OCw0MiBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAg
ICAgLy8gQW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFibGUo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RFZmZlY3RUYXJnZXQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBy
ZXNvbHZlQW5pbWF0aW9uKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwg
Y29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1
bnRpbWU6OlJlbW90ZU9iamVjdD4mKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0VHJhY2tpbmco
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmlu
ZyYpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9p
ZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21w
dXRlZEVmZmVjdFRpbWluZyk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3Qo
V2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5p
bWF0aW9uJik7CisgICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2Vi
QW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQo
V2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0
aW9uJik7CiAgICAgdm9pZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsK
KyAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKEZyYW1lJik7CiAKIHByaXZhdGU6CisgICAgU3RyaW5n
IGZpbmRBbmltYXRpb25JZChXZWJBbmltYXRpb24mKTsKKyAgICBXZWJBbmltYXRpb24qIGFzc2Vy
dEFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOworICAg
IHZvaWQgYmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mLCBib29sIGNhcHR1cmVCYWNrdHJhY2Up
OworICAgIHZvaWQgdW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOwor
ICAgIHZvaWQgYW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpOworICAgIHZvaWQgcmVzZXQo
KTsKKwogICAgIHZvaWQgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFyYXRp
dmVBbmltYXRpb24mKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkFuaW1hdGlv
bkZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPElu
c3BlY3Rvcjo6QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7
CiAKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXI7CisgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOworCisgICAgSGFzaE1hcDxTdHJp
bmcsIFdlYkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7CisgICAgVmVjdG9yPFN0cmluZz4g
bV9yZW1vdmVkQW5pbWF0aW9uSWRzOworICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVzdHJveWVkVGlt
ZXI7CisKICAgICBzdHJ1Y3QgVHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0aW9uRGF0YSB7CiAgICAg
ICAgIFN0cmluZyB0cmFja2luZ0FuaW1hdGlvbklkOwogICAgICAgICBDb21wdXRlZEVmZmVjdFRp
bWluZyBsYXN0Q29tcHV0ZWRUaW1pbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGFlY2M3OWJjMGNhNTZmYjY1
ZmUwMzMwZjA4ZTRlZTY4OGJmODFlODkuLjBmNDZhMzAzM2FlZjQwMDdmNmViODM3YTYxMDVmMDVh
MGM1OTA2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NjYsNyArNTY2LDcgQEAgaW50IEluc3BlY3RvckRP
TUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQg
ZG9jdW1lbnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQobm9kZVRvUHVzaCk7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJv
bnRlbmQoZXJyb3JTdHJpbmcsIG5vZGVUb1B1c2gpOwogfQogCiBOb2RlKiBJbnNwZWN0b3JET01B
Z2VudDo6bm9kZUZvcklkKGludCBpZCkKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5v
ZGVJZCwgY29ucwogICAgIH0KIAogICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcXVlcnlSZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpCi0gICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKGVsZW1lbnQpOworICAgICAgICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChlcnJvclN0cmluZywgZWxlbWVudCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlk
LCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mIHJl
c3VsdCkKQEAgLTYzOSwxMyArNjM5LDI0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5
U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjCiB9CiAK
IGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKiBub2Rl
VG9QdXNoKQoreworICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgcmV0dXJuIHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQoaWdub3JlZCwgbm9kZVRvUHVzaCk7Cit9CisKK2ludCBJbnNwZWN0b3JE
T01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyBlcnJvclN0cmluZywg
Tm9kZSogbm9kZVRvUHVzaCkKIHsKICAgICBBU1NFUlQobm9kZVRvUHVzaCk7ICAvLyBJbnZhbGlk
IGlucHV0CiAKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3VtZW50KSB7Cisg
ICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3NpbmcgZG9jdW1lbnQiX3M7CiAgICAgICAgIHJldHVy
biAwOwotICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1lbnQp
KQorICAgIH0KKworICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9j
dW1lbnQpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRvY3VtZW50IG11c3QgaGF2ZSBiZWVu
IHJlcXVlc3RlZCJfczsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgLy8gUmV0dXJu
IGlkIGluIGNhc2UgdGhlIG5vZGUgaXMga25vd24uCiAgICAgaW50IHJlc3VsdCA9IG1fZG9jdW1l
bnROb2RlVG9JZE1hcC5nZXQobm9kZVRvUHVzaCk7CkBAIC03OTAsNyArODAxLDcgQEAgdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBp
bnQgbm9kZUlkLCBjb25zdAogICAgIGlmICghbV9kb21FZGl0b3ItPnJlbW92ZUNoaWxkKCpwYXJl
bnQsICpvbGROb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgICpuZXdJ
ZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3RWxlbWVudC5wdHIoKSk7CisgICAgKm5ld0lk
ID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3RWxlbWVudC5wdHIoKSk7
CiAgICAgaWYgKG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkKICAgICAgICAg
cHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKCpuZXdJZCk7CiB9CkBAIC04MzAsNyArODQxLDcgQEAg
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlu
dCBuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7CisgICAgaW50IG5ld0lk
ID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3Tm9kZSk7CiAKICAgICBi
b29sIGNoaWxkcmVuUmVxdWVzdGVkID0gbV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhub2Rl
SWQpOwogICAgIGlmIChjaGlsZHJlblJlcXVlc3RlZCkKQEAgLTE0MjIsNyArMTQzMyw3IEBAIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGlu
dCBub2RlSWQsIGludCB0YXJnZXRFCiAgICAgaWYgKCFtX2RvbUVkaXRvci0+aW5zZXJ0QmVmb3Jl
KCp0YXJnZXRFbGVtZW50LCAqbm9kZSwgYW5jaG9yTm9kZSwgZXJyb3JTdHJpbmcpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2Rl
KTsKKyAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywg
bm9kZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuZG8oRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nKQpAQCAtMTQ5OCwxMSArMTUwOSwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpnZXRBdHRyaWJ1dGVzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgUmVm
UAogICAgIHJlc3VsdCA9IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhlbGVtZW50KTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBv
YmplY3RJZCwgaW50KiBub2RlSWQpCiB7CiAgICAgTm9kZSogbm9kZSA9IG5vZGVGb3JPYmplY3RJ
ZChvYmplY3RJZCk7CiAgICAgaWYgKG5vZGUpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9u
dGVuZChlcnJvclN0cmluZywgbm9kZSk7CiAgICAgZWxzZQogICAgICAgICAqbm9kZUlkID0gMDsK
IH0KQEAgLTI2NDYsNyArMjY1Nyw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9y
T2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpCiB7CiAgICAgaWYgKE5vZGUqIG5vZGUgPSBub2Rl
Rm9yUGF0aChwYXRoKSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
bm9kZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3Ry
aW5nLCBub2RlKTsKICAgICBlbHNlCiAgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgbm9k
ZSBmb3IgZ2l2ZW4gcGF0aCJfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA1MTYzOWFiZWI4NGY0ZDk1ZGVkM2Y0
ZmI2NDA5YWQ4ZjYyYTI4OTRlLi43ZGYwZTgzZWI1M2Q3NWM0MWM1NTRmMTQwMTIzNWJhMjE3MTk0
MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5oCkBAIC0xODAsNiArMTgwLDggQEAgcHVibGljOgogCiAgICAgaW50IHB1c2hO
b2RlVG9Gcm9udGVuZChOb2RlKik7CiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0
cmluZyYsIGludCBkb2N1bWVudE5vZGVJZCwgTm9kZSopOworICAgIGludCBwdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKE5vZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0
cmluZywgTm9kZSopOwogICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsKICAgICBpbnQg
Ym91bmROb2RlSWQoY29uc3QgTm9kZSopOwogCkBAIC0yMTcsNyArMjE5LDYgQEAgcHJpdmF0ZToK
ICAgICBOb2RlKiBhc3NlcnRFZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsK
ICAgICBFbGVtZW50KiBhc3NlcnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkKTsKIAotICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKICAgICB2b2lk
IHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChpbnQgbm9kZUlkLCBpbnQgZGVwdGggPSAxKTsKIAog
ICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9yTm9k
ZShOb2RlKiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMKaW5kZXggN2E3NDdhNjk0OTMzNDdmYzE4ZjBkMWNmMDU1N2Y1YzllZjkwNmE1Ny4u
ODZlOTk0ZjFiNmQ5MjNjZTA3YTgwZjQ1OWViYTE1ZTgzODEyNWZlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xMjAsMTcgKzEyMCwyMiBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJBbGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSBlcnJvciBvYmplY3RzIl0gPSAi
QWxsIGl0ZQogbG9jYWxpemVkU3RyaW5nc1siQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11
c3QgYmUgbm9uLWVtcHR5IHN0cmluZ3MiXSA9ICJBbGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIg
bXVzdCBiZSBub24tZW1wdHkgc3RyaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwgaXRlbXMg
aW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSB2YWxpZCBET00gbm9kZXMiXSA9ICJBbGwgaXRlbXMg
aW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSB2YWxpZCBET00gbm9kZXMiOwogbG9jYWxpemVkU3Ry
aW5nc1siQWxsb3cgTWVkaWEgQ2FwdHVyZSBvbiBJbnNlY3VyZSBTaXRlcyJdID0gIkFsbG93IE1l
ZGlhIENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiOworbG9jYWxpemVkU3RyaW5nc1siQWx0ZXJu
YXRlIl0gPSAiQWx0ZXJuYXRlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFsdGVybmF0ZSBSZXZlcnNl
Il0gPSAiQWx0ZXJuYXRlIFJldmVyc2UiOwogbG9jYWxpemVkU3RyaW5nc1siQW4gZXJyb3Igb2Nj
dXJyZWQgdHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291cmNlLiJdID0gIkFuIGVycm9yIG9jY3VycmVk
IHRyeWluZyB0byBsb2FkIHRoZSByZXNvdXJjZS4iOwogbG9jYWxpemVkU3RyaW5nc1siQW4gZXJy
b3Igb2NjdXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRhYmxlLiJdID0g
IkFuIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byByZWFkIHRoZSBcdTIwMUMlc1x1MjAxRCB0YWJs
ZS4iOwogbG9jYWxpemVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciAlcyBvY2N1cnJlZC4i
XSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Ig
b2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuZ2xlIl0gPSAiQW5nbGUiOworbG9jYWxp
emVkU3RyaW5nc1siQW5pbWF0aW9uIl0gPSAiQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3Nb
IkFuaW1hdGlvbiAlZCJdID0gIkFuaW1hdGlvbiAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmlt
YXRpb24gRnJhbWUgJWQgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgQ2FuY2VsZWQi
OwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIl0gPSAiQW5pbWF0
aW9uIEZyYW1lICVkIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAl
ZCBSZXF1ZXN0ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVzdGVkIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBD
YW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgRmlyZWQiXSA9ICJB
bmltYXRpb24gRnJhbWUgRmlyZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1l
IFJlcXVlc3RlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0ZWQiOworbG9jYWxpemVkU3Ry
aW5nc1siQW5pbWF0aW9uIFRhcmdldCJdID0gIkFuaW1hdGlvbiBUYXJnZXQiOwogbG9jYWxpemVk
U3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdCAlZCJdID0gIkFub255bW91cyBTY3JpcHQgJWQiOwog
bG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdHMiXSA9ICJBbm9ueW1vdXMgU2NyaXB0
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQiXSA9ICJBbm9u
eW1vdXMgU3R5bGUgU2hlZXQgJWQiOwpAQCAtMTY5LDE2ICsxNzQsMTkgQEAgbG9jYWxpemVkU3Ry
aW5nc1siQXZlcmFnZTogJXMiXSA9ICJBdmVyYWdlOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJC
TVAiXSA9ICJCTVAiOwogbG9jYWxpemVkU3RyaW5nc1siQmFjayAoJXMpIl0gPSAiQmFjayAoJXMp
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJhY2t0cmFjZSJdID0gIkJhY2t0cmFjZSI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJCYWNrd2FyZHMiXSA9ICJCYWNrd2FyZHMiOwogbG9jYWxpemVkU3RyaW5nc1si
QmFzaWMiXSA9ICJCYXNpYyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCZWFjb24iXSA9ICJCZWFjb24i
OwogbG9jYWxpemVkU3RyaW5nc1siQmVhY29ucyJdID0gIkJlYWNvbnMiOwogbG9jYWxpemVkU3Ry
aW5nc1siQmluYXJ5IEZyYW1lIl0gPSAiQmluYXJ5IEZyYW1lIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkJpbmRpbmciXSA9ICJCaW5kaW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIkJpdG1hcCBSZW5kZXJl
ciJdID0gIkJpdG1hcCBSZW5kZXJlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbGFja2JveCJdID0g
IkJsYWNrYm94IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJsYWNrYm94IFNjcmlwdCJdID0gIkJsYWNr
Ym94IFNjcmlwdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbGFja2JveCBzY3JpcHQgdG8gaWdub3Jl
IGl0IHdoZW4gZGVidWdnaW5nIl0gPSAiQmxhY2tib3ggc2NyaXB0IHRvIGlnbm9yZSBpdCB3aGVu
IGRlYnVnZ2luZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCbG9jayBWYXJpYWJsZXMiXSA9ICJCbG9j
ayBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQm9keToiXSA9ICJCb2R5OiI7Citsb2Nh
bGl6ZWRTdHJpbmdzWyJCb3RoIl0gPSAiQm90aCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb3VuZGFy
eSJdID0gIkJvdW5kYXJ5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJveCBNb2RlbCJdID0gIkJveCBN
b2RlbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCcmVhayBvbiJdID0gIkJyZWFrIG9uIjsKQEAgLTIw
MSw5ICsyMDksMTEgQEAgbG9jYWxpemVkU3RyaW5nc1siQ1BVIl0gPSAiQ1BVIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkNQVSBVc2FnZSJdID0gIkNQVSBVc2FnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJD
U1AgSGFzaCJdID0gIkNTUCBIYXNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRpb24i
XSA9ICJDU1MgQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRpb25zIl0g
PSAiQ1NTIEFuaW1hdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENhbnZhcyJdID0gIkNT
UyBDYW52YXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENoYW5nZXM6Il0gPSAiQ1NTIENoYW5n
ZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0aW9uIl0gPSAiQ1NTIFRyYW5zaXRp
b24iOworbG9jYWxpemVkU3RyaW5nc1siQ1NTIFRyYW5zaXRpb25zIl0gPSAiQ1NTIFRyYW5zaXRp
b25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIwMUQiXSA9ICJD
U1MgY2FudmFzIFx1MjAxQyVzXHUyMDFEIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhY2hlZCJdID0g
IkNhY2hlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWxsIEZyYW1lcyBUcnVuY2F0ZWQiXSA9ICJD
YWxsIEZyYW1lcyBUcnVuY2F0ZWQiOwpAQCAtMzc3LDYgKzM4Nyw3IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIkRldmljZSAlZCJdID0gIkRldmljZSAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZXZpY2Ug
U2V0dGluZ3MiXSA9ICJEZXZpY2UgU2V0dGluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siRGlhZ25v
c2VzIGNvbW1vbiBhY2Nlc3NpYmlsaXR5IHByb2JsZW1zIGFmZmVjdGluZyBzY3JlZW4gcmVhZGVy
cyBhbmQgb3RoZXIgYXNzaXN0aXZlIHRlY2hub2xvZ3kuIl0gPSAiRGlhZ25vc2VzIGNvbW1vbiBh
Y2Nlc3NpYmlsaXR5IHByb2JsZW1zIGFmZmVjdGluZyBzY3JlZW4gcmVhZGVycyBhbmQgb3RoZXIg
YXNzaXN0aXZlIHRlY2hub2xvZ3kuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpbWVuc2lvbnMiXSA9
ICJEaW1lbnNpb25zIjsKK2xvY2FsaXplZFN0cmluZ3NbIkRpcmVjdGlvbiJdID0gIkRpcmVjdGlv
biI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIEJyZWFrcG9pbnQiXSA9ICJEaXNhYmxlIEJy
ZWFrcG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50cyJdID0gIkRp
c2FibGUgQnJlYWtwb2ludHMiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBEZXNjZW5kYW50
IEJyZWFrcG9pbnRzIl0gPSAiRGlzYWJsZSBEZXNjZW5kYW50IEJyZWFrcG9pbnRzIjsKQEAgLTQx
OSw2ICs0MzAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJEdXJhdGlvbjogU2hvcnQiXSA9ICJEdXJh
dGlvbjogU2hvcnQiOwogbG9jYWxpemVkU3RyaW5nc1siRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBm
b3IgdGhlIHBhcmVudCBlbGVtZW50Il0gPSAiRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhl
IHBhcmVudCBlbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkR5bmFtaWNhbGx5IGNhbGN1bGF0
ZWQgZm9yIHRoZSBzZWxlY3RlZCBlbGVtZW50Il0gPSAiRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBm
b3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRHluYW1pY2FsbHkg
Y2FsY3VsYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQgYW5kIGRpZCBub3QgbWF0Y2giXSA9
ICJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0ZWQgZWxlbWVudCBhbmQgZGlk
IG5vdCBtYXRjaCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFYXNpbmciXSA9ICJFYXNpbmciOwogLyog
TGFiZWwgZm9yIGEgZ3VpZGUgd2l0aGluIHRoZSBjb2xvciBwaWNrZXIgKi8KIGxvY2FsaXplZFN0
cmluZ3NbIkVkZ2Ugb2Ygc1JHQiBjb2xvciBzcGFjZSJdID0gIkVkZ2Ugb2Ygc1JHQiBjb2xvciBz
cGFjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0Il0gPSAiRWRpdCI7CkBAIC00MzAsNiArNDQy
LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRWRpdCBcdTIwMUNzcHJpbmdcdTIwMUQgZnVuY3Rpb24i
XSA9ICJFZGl0IFx1MjAxQ3NwcmluZ1x1MjAxRAogbG9jYWxpemVkU3RyaW5nc1siRWRpdCBjb25m
aWd1cmF0aW9uIl0gPSAiRWRpdCBjb25maWd1cmF0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVk
aXQgY3VzdG9tIGdyYWRpZW50Il0gPSAiRWRpdCBjdXN0b20gZ3JhZGllbnQiOwogbG9jYWxpemVk
U3RyaW5nc1siRWRpdGluZyBhdWRpdHMiXSA9ICJFZGl0aW5nIGF1ZGl0cyI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJFZmZlY3QiXSA9ICJFZmZlY3QiOwogbG9jYWxpemVkU3RyaW5nc1siRWxlbWVudCJd
ID0gIkVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRWxlbWVudCBTZWxlY3Rpb246Il0gPSAi
RWxlbWVudCBTZWxlY3Rpb246IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQgY2xpcHMgY29t
cG9zaXRpbmcgZGVzY2VuZGFudHMiXSA9ICJFbGVtZW50IGNsaXBzIGNvbXBvc2l0aW5nIGRlc2Nl
bmRhbnRzIjsKQEAgLTQ3OCw2ICs0OTEsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgc291
cmNlIG1hcHMiXSA9ICJFbmFibGUgc291cmNlIG1hcHMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5h
YmxlZCJdID0gIkVuYWJsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RlZCJdID0gIkVuY29k
ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RpbmciXSA9ICJFbmNvZGluZyI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJFbmQgRGVsYXkiXSA9ICJFbmQgRGVsYXkiOworbG9jYWxpemVkU3RyaW5nc1si
RW5kIERlbGF5ICVzIl0gPSAiRW5kIERlbGF5ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuZXJn
eSBJbXBhY3QiXSA9ICJFbmVyZ3kgSW1wYWN0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuc3VyZSBh
cmlhLWhpZGRlbj1cdTAwMjIlc1x1MDAyMiBpcyBub3QgdXNlZC4iXSA9ICJFbnN1cmUgYXJpYS1o
aWRkZW49XHUwMDIyJXNcdTAwMjIgaXMgbm90IHVzZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVu
c3VyZSB0aGF0IFx1MDAyMiVzXHUwMDIyIGlzIHNwZWxsZWQgY29ycmVjdGx5LiJdID0gIkVuc3Vy
ZSB0aGF0IFx1MDAyMiVzXHUwMDIyIGlzIHNwZWxsZWQgY29ycmVjdGx5LiI7CkBAIC01MzcsNiAr
NTUyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRmV0Y2giXSA9ICJGZXRjaCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJGZXRjaGVzIl0gPSAiRmV0Y2hlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWxlIG9y
IFJlc291cmNlIl0gPSAiRmlsZSBvciBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWxl
bmFtZSJdID0gIkZpbGVuYW1lIjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGwiXSA9ICJGaWxsIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkZpbHRlciJdID0gIkZpbHRlciI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJGaWx0ZXIgRnVsbCBVUkwiXSA9ICJGaWx0ZXIgRnVsbCBVUkwiOwogbG9jYWxpemVkU3RyaW5n
c1siRmlsdGVyOiJdID0gIkZpbHRlcjoiOwpAQCAtNTY1LDYgKzU4MSw3IEBAIGxvY2FsaXplZFN0
cmluZ3NbIkZvcm1hdDogUkdCQSJdID0gIkZvcm1hdDogUkdCQSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJGb3JtYXQ6IFNob3J0IEhleCJdID0gIkZvcm1hdDogU2hvcnQgSGV4IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkZvcm1hdDogU2hvcnQgSGV4IHdpdGggQWxwaGEiXSA9ICJGb3JtYXQ6IFNob3J0IEhl
eCB3aXRoIEFscGhhIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZvcndhcmQgKCVzKSJdID0gIkZvcndh
cmQgKCVzKSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJGb3J3YXJkcyJdID0gIkZvcndhcmRzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkZyYWdtZW50Il0gPSAiRnJhZ21lbnQiOwogbG9jYWxpemVkU3RyaW5n
c1siRnJhZ21lbnQgU2hhZGVyIl0gPSAiRnJhZ21lbnQgU2hhZGVyIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkZyYW1lICVkIl0gPSAiRnJhbWUgJWQiOwpAQCAtNTg1LDYgKzYwMiw3IEBAIGxvY2FsaXpl
ZFN0cmluZ3NbIkdsb2JhbCBDb2RlIl0gPSAiR2xvYmFsIENvZGUiOwogbG9jYWxpemVkU3RyaW5n
c1siR2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQiXSA9ICJHbG9iYWwgTGV4aWNhbCBFbnZpcm9u
bWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgVmFyaWFibGVzIl0gPSAiR2xvYmFsIFZh
cmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcmFtbWFyIl0gPSAiR3JhbW1hciI7Citsb2Nh
bGl6ZWRTdHJpbmdzWyJHcmFwaGljcyJdID0gIkdyYXBoaWNzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ikdyb3VwIl0gPSAiR3JvdXAiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAgQnkgUmVzb3VyY2Ui
XSA9ICJHcm91cCBCeSBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBNZWRpYSBS
ZXF1ZXN0cyJdID0gIkdyb3VwIE1lZGlhIFJlcXVlc3RzIjsKQEAgLTYzMiw2ICs2NTAsNyBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXMiXSA9ICJJbWFnZXMiOwogbG9jYWxpemVkU3RyaW5nc1si
SW1hZ2VzOiJdID0gIkltYWdlczoiOwogbG9jYWxpemVkU3RyaW5nc1siSW1tZWRpYXRlIFBhdXNl
IFJlcXVlc3RlZCJdID0gIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siSW1wb3J0Il0gPSAiSW1wb3J0IjsKK2xvY2FsaXplZFN0cmluZ3NbIkltcG9ydCBSZWNv
cmRpbmciXSA9ICJJbXBvcnQgUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVk
Il0gPSAiSW1wb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgLSAlcyJdID0gIklt
cG9ydGVkIC0gJXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgXHUyMDE0ICVzIl0gPSAi
SW1wb3J0ZWQgXHUyMDE0ICVzIjsKQEAgLTY2MCw2ICs2NzksNyBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyJJbnZva2UgZ2V0dGVyIl0gPSAiSW52b2tlIGdldHRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJ
dCBpcyBldmFsdWF0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGdsb2JhbCBvYmplY3QgaXMgY3Jl
YXRlZCwgYmVmb3JlIGFueSBvdGhlciBjb250ZW50IGhhcyBsb2FkZWQuIl0gPSAiSXQgaXMgZXZh
bHVhdGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBnbG9iYWwgb2JqZWN0IGlzIGNyZWF0ZWQsIGJl
Zm9yZSBhbnkgb3RoZXIgY29udGVudCBoYXMgbG9hZGVkLiI7CiAvKiBUb29sdGlwIGZvciBhIHRp
bWVzdGFtcCBtYXJrZXIgdGhhdCByZXByZXNlbnRzIHdoZW4gYSBDU1MgYW5pbWF0aW9uL3RyYW5z
aXRpb24gaXRlcmF0ZXMgKi8KIGxvY2FsaXplZFN0cmluZ3NbIkl0ZXJhdGlvbiJdID0gIkl0ZXJh
dGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJJdGVyYXRpb25zIl0gPSAiSXRlcmF0aW9ucyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJKUDIiXSA9ICJKUDIiOwogbG9jYWxpemVkU3RyaW5nc1siSlBFRyJd
ID0gIkpQRUciOwogbG9jYWxpemVkU3RyaW5nc1siSmF2YVNjcmlwdCJdID0gIkphdmFTY3JpcHQi
OwpAQCAtNjY5LDYgKzY4OSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkphdmFTY3JpcHQgQ29udGV4
dCJdID0gIkphdmFTY3JpcHQgQ29udGV4dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJKdW1wIHRvIERl
ZmluaXRpb24iXSA9ICJKdW1wIHRvIERlZmluaXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siS2V5
Il0gPSAiS2V5IjsKIGxvY2FsaXplZFN0cmluZ3NbIktleSBQYXRoIl0gPSAiS2V5IFBhdGgiOwor
bG9jYWxpemVkU3RyaW5nc1siS2V5ZnJhbWVzIl0gPSAiS2V5ZnJhbWVzIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkxhYmVsIl0gPSAiTGFiZWwiOwogbG9jYWxpemVkU3RyaW5nc1siTGF0ZW5jeSJdID0g
IkxhdGVuY3kiOwogbG9jYWxpemVkU3RyaW5nc1siTGF5ZXIgQ291bnQ6ICVkIl0gPSAiTGF5ZXIg
Q291bnQ6ICVkIjsKQEAgLTY5Niw2ICs3MTcsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBT
dG9yYWdlIl0gPSAiTG9jYWwgU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBWYXJp
YWJsZXMiXSA9ICJMb2NhbCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYXRlZCBh
dCAlcyJdID0gIkxvY2F0ZWQgYXQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYXRpb24iXSA9
ICJMb2NhdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQW5pbWF0aW9uIl0gPSAiTG9nIEFu
aW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQ2FudmFzIENvbnRleHQiXSA9ICJMb2cg
Q2FudmFzIENvbnRleHQiOwogLyogTG9nIChwcmludCkgRE9NIGVsZW1lbnQgdG8gQ29uc29sZSAq
LwogbG9jYWxpemVkU3RyaW5nc1siTG9nIEVsZW1lbnQiXSA9ICJMb2cgRWxlbWVudCI7CkBAIC03
NjgsNiArNzkwLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm8gRW5hYmxlZCBBdWRpdHMiXSA9ICJO
byBFbmFibGVkIEF1ZGl0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFbnRyaWVzIl0gPSAiTm8g
RW50cmllcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFdmVudCBMaXN0ZW5lcnMiXSA9ICJObyBF
dmVudCBMaXN0ZW5lcnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRmlsdGVyIFJlc3VsdHMiXSA9
ICJObyBGaWx0ZXIgUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBLZXlmcmFtZXMiXSA9
ICJObyBLZXlmcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gTGF5ZXIgQXZhaWxhYmxlIl0g
PSAiTm8gTGF5ZXIgQXZhaWxhYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIE92ZXJyaWRlcyJd
ID0gIk5vIE92ZXJyaWRlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBQYXJhbWV0ZXJzIl0gPSAi
Tm8gUGFyYW1ldGVycyI7CkBAIC03NzksNiArODAyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm8g
UmVzcG9uc2UgSGVhZGVycyJdID0gIk5vIFJlc3BvbnNlIEhlYWRlcnMiOwogbG9jYWxpemVkU3Ry
aW5nc1siTm8gUmVzdWx0Il0gPSAiTm8gUmVzdWx0IjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFJl
c3VsdHMgRm91bmQiXSA9ICJObyBSZXN1bHRzIEZvdW5kIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5v
IFNlYXJjaCBSZXN1bHRzIl0gPSAiTm8gU2VhcmNoIFJlc3VsdHMiOworbG9jYWxpemVkU3RyaW5n
c1siTm8gU3R5bGVzIl0gPSAiTm8gU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFdhdGNo
IEV4cHJlc3Npb25zIl0gPSAiTm8gV2F0Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5n
c1siTm8gYXVkaXQgc2VsZWN0ZWQiXSA9ICJObyBhdWRpdCBzZWxlY3RlZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iXSA9ICJObyBjZXJ0
aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iOwpAQCAtNzk4LDYgKzgyMiw3IEBAIGxvY2Fs
aXplZFN0cmluZ3NbIk5vZGUiXSA9ICJOb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vZGUgUmVt
b3ZlZCJdID0gIk5vZGUgUmVtb3ZlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb2RlcyJdID0gIk5v
ZGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vbmUiXSA9ICJOb25lIjsKK2xvY2FsaXplZFN0cmlu
Z3NbIk5vcm1hbCJdID0gIk5vcm1hbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb3QgZm91bmQiXSA9
ICJOb3QgZm91bmQiOwogbG9jYWxpemVkU3RyaW5nc1siT2JqZWN0IEdyYXBoIl0gPSAiT2JqZWN0
IEdyYXBoIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVjdCBTdG9yZSJdID0gIk9iamVjdCBTdG9y
ZSI7CkBAIC05MTEsNyArOTM2LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVkaXJlY3RzIl0gPSAi
UmVkaXJlY3RzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZmVyZW5jZSBJc3N1ZSJdID0gIlJlZmVy
ZW5jZSBJc3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZsZWN0aW9uIl0gPSAiUmVmbGVjdGlv
biI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIl0gPSAiUmVmcmVzaCI7Ci1sb2NhbGl6ZWRT
dHJpbmdzWyJSZWZyZXNoIGFsbCJdID0gIlJlZnJlc2ggYWxsIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiXSA9ICJSZWZyZXNoIHdhdGNoIGV4cHJlc3Npb25z
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiJd
ID0gIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJSZWd1bGFyIEV4cHJlc3Npb24iXSA9ICJSZWd1bGFyIEV4cHJlc3Npb24iOwpAQCAtOTc5LDYg
KzEwMDMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gTmV0d29yayBUYWIiXSA9ICJS
ZXZlYWwgaW4gTmV0d29yayBUYWIiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE9yaWdp
bmFsIFJlc291cmNlIl0gPSAiUmV2ZWFsIGluIE9yaWdpbmFsIFJlc291cmNlIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJldmVhbCBpbiBTb3VyY2VzIFRhYiJdID0gIlJldmVhbCBpbiBTb3VyY2VzIFRh
YiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gU3R5bGUgU2hlZXQiXSA9ICJSZXZlYWwg
aW4gU3R5bGUgU2hlZXQiOworbG9jYWxpemVkU3RyaW5nc1siUmV2ZXJzZSJdID0gIlJldmVyc2Ui
OwogbG9jYWxpemVkU3RyaW5nc1siUm9sZSJdID0gIlJvbGUiOwogbG9jYWxpemVkU3RyaW5nc1si
UnVuICVkIl0gPSAiUnVuICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJ1biBjb25zb2xlIGNvbW1h
bmRzIGFzIGlmIGluc2lkZSBhIHVzZXIgZ2VzdHVyZSJdID0gIlJ1biBjb25zb2xlIGNvbW1hbmRz
IGFzIGlmIGluc2lkZSBhIHVzZXIgZ2VzdHVyZSI7CkBAIC0xMDIxLDYgKzEwNDYsNyBAQCBsb2Nh
bGl6ZWRTdHJpbmdzWyJTZWN1cml0eSBPcmlnaW4iXSA9ICJTZWN1cml0eSBPcmlnaW4iOwogbG9j
YWxpemVkU3RyaW5nc1siU2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90Il0gPSAiU2VsZWN0IGJhc2Vs
aW5lIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBjb21wYXJpc29uIHNuYXBz
aG90Il0gPSAiU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiOwogbG9jYWxpemVkU3RyaW5nc1si
U2VsZWN0ZWQiXSA9ICJTZWxlY3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBBbmlt
YXRpb24iXSA9ICJTZWxlY3RlZCBBbmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0
ZWQgQ2FudmFzIENvbnRleHQiXSA9ICJTZWxlY3RlZCBDYW52YXMgQ29udGV4dCI7CiAvKiBTZWxl
Y3RlZCBET00gZWxlbWVudCAqLwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgRWxlbWVudCJd
ID0gIlNlbGVjdGVkIEVsZW1lbnQiOwpAQCAtMTEwNCw2ICsxMTMwLDggQEAgbG9jYWxpemVkU3Ry
aW5nc1siU3BlbGxpbmciXSA9ICJTcGVsbGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdGFnaW5n
OiJdID0gIlN0YWdpbmc6IjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YWxsZWQiXSA9ICJTdGFsbGVk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0Il0gPSAiU3RhcnQiOworbG9jYWxpemVkU3RyaW5n
c1siU3RhcnQgRGVsYXkiXSA9ICJTdGFydCBEZWxheSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTdGFy
dCBEZWxheSAlcyJdID0gIlN0YXJ0IERlbGF5ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0
IFRpbWUiXSA9ICJTdGFydCBUaW1lIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YXJ0IGVsZW1lbnQg
c2VsZWN0aW9uICglcykiXSA9ICJTdGFydCBlbGVtZW50IHNlbGVjdGlvbiAoJXMpIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlN0YXJ0IHJlY29yZGluZyAoJXMpXG5DcmVhdGUgbmV3IHJlY29yZGluZyAo
JXMpIl0gPSAiU3RhcnQgcmVjb3JkaW5nICglcylcbkNyZWF0ZSBuZXcgcmVjb3JkaW5nICglcyki
OwpAQCAtMTE3Niw2ICsxMjA0LDggQEAgbG9jYWxpemVkU3RyaW5nc1siVGhlc2UgdGVzdHMgc2Vy
dmUgYXMgYSBkZW1vbnN0cmF0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFuZAogbG9jYWxpemVk
U3RyaW5nc1siVGhpcyBSZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlk
ZSJdID0gIlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUi
OwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2Ui
XSA9ICJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEi
XSA9ICJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEi
OworbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiJdID0g
IlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iOworbG9jYWxpemVkU3RyaW5nc1siVGhp
cyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4iXSA9ICJUaGlzIGFuaW1hdGlvbiBoYXMgbm8g
a2V5ZnJhbWVzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0
ZWQiXSA9ICJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1si
VGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIl0g
PSAiVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJyb3JzIGFy
ZSBzaG93bi4gVGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRpb24gZXJy
b3JzIHdpbGwgYXBwZWFyIGluIHRoZSBzYW1lIHdheS4iXSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUg
b2YgaG93IGVycm9ycyBhcmUgc2hvd24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBi
dXQgZXhlY3V0aW9uIGVycm9ycyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIjsKQEAgLTEy
ODgsMTIgKzEzMTgsMTcgQEAgbG9jYWxpemVkU3RyaW5nc1siVmlldyBTaGFkZXIiXSA9ICJWaWV3
IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3cG9ydCJdID0gIlZpZXdwb3J0IjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlZpc2libGUiXSA9ICJWaXNpYmxlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IldhaXRpbmciXSA9ICJXYWl0aW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFu
aW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVh
dGVkIGJ5IENTUy4iOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBj
cmVhdGVkIGJ5IEphdmFTY3JpcHQuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVk
IGJ5IEphdmFTY3JpcHQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGNhbnZhcyBj
b250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIl0gPSAiV2FpdGluZyBmb3IgY2FudmFz
IGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iOwogbG9jYWxpemVkU3RyaW5nc1si
V2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2Il0gPSAiV2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2IjsK
K2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NT
LiJdID0gIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJXYXJuaW5nOiAiXSA9ICJXYXJuaW5nOiAiOwogbG9jYWxpemVkU3RyaW5nc1si
V2FybmluZ3MiXSA9ICJXYXJuaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRjaCBFeHByZXNz
aW9ucyJdID0gIldhdGNoIEV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhdGVyZmFs
bCJdID0gIldhdGVyZmFsbCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIl0gPSAi
V2ViIEFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9ucyJdID0gIldl
YiBBbmltYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNwZWN0b3IiXSA9ICJXZWIg
SW5zcGVjdG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBQYWdlIl0gPSAiV2ViIFBhZ2UiOwog
bG9jYWxpemVkU3RyaW5nc1siV2ViS2l0IFRocmVhZHMiXSA9ICJXZWJLaXQgVGhyZWFkcyI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4u
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5k
ZXggZmYyMjgwMTViODk4NGE1MmUyMGYyMjE1ODUxZTI3NGU3OWJkMTA3NS4uZmM0MzhmNGMwNWY4
ODdkZmY2NWYzYTkwMDRhYjU2ODkwZjdiNGMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTIzLDYgKzEyMyw3IEBAIFdJLmxv
YWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3Jr
ZXJNYW5hZ2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRE9NRGVi
dWdnZXJNYW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNhbnZhc01h
bmFnZXIsCisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0aW9uTWFu
YWdlciwKICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAgLTE0Nyw3ICsx
NDgsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250
ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAg
ICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50Vmlldy5UeXBlLAotICAgICAgICBXSS5DYW52YXNU
YWJDb250ZW50Vmlldy5UeXBlLAorICAgICAgICBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5
cGUsCiAgICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuQ29u
c29sZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgXSk7CkBAIC0xNzMsNiArMTc0LDEzIEBAIFdJ
LmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIFdJLl9zZWxlY3RlZFRhYkluZGV4U2V0
dGluZy52YWx1ZSA9IHNvdXJjZXNJbmRleDsKICAgICB9CiAKKyAgICAvLyBDYW52YXMgVGFiIHdh
cyByZW5hbWVkIHRvIEdyYXBoaWNzIFRhYi4KKyAgICBsZXQgY2FudmFzSW5kZXggPSBXSS5fb3Bl
blRhYnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoImNhbnZhcyIpOworICAgIGlmIChjYW52YXNJbmRl
eCA+PSAwKSB7CisgICAgICAgIFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuc3BsaWNlKGNhbnZh
c0luZGV4LCAxLCBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUpOworICAgICAgICBXSS5f
b3BlblRhYnNTZXR0aW5nLnNhdmUoKTsKKyAgICB9CisKICAgICAvLyBTdGF0ZS4KICAgICBXSS5w
cmludFN0eWxlc0VuYWJsZWQgPSBmYWxzZTsKICAgICBXSS5zZXRab29tRmFjdG9yKFdJLnNldHRp
bmdzLnpvb21GYWN0b3IudmFsdWUpOwpAQCAtNDY1LDcgKzQ3Myw3IEBAIFdJLmNvbnRlbnRMb2Fk
ZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50VmlldywKICAgICAg
ICAgV0kuVGltZWxpbmVUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuU3RvcmFnZVRhYkNvbnRl
bnRWaWV3LAotICAgICAgICBXSS5DYW52YXNUYWJDb250ZW50VmlldywKKyAgICAgICAgV0kuR3Jh
cGhpY3NUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcsCiAg
ICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkNvbnNvbGVUYWJDb250
ZW50VmlldywKQEAgLTEyMjMsMTEgKzEyMzEsOCBAQCBXSS50YWJDb250ZW50Vmlld0NsYXNzRm9y
UmVwcmVzZW50ZWRPYmplY3QgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkKICAgICAgICAg
fHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8
IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAg
ICAgICAgIHJldHVybiBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3OwogCi0gICAgaWYgKHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgcmV0dXJu
IFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3OwotCi0gICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuUmVjb3JkaW5nKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVu
dFZpZXc7CisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzIHx8
IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSB8fCByZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyB8fCByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29u
dGVudFZpZXc7CiAKICAgICByZXR1cm4gbnVsbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0
aW9uTWFuYWdlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmI0MTJjZWE1ZmUyM2E2NmZkMjdlY2Q5NGRhZDcz
ZmRiMDFmMzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcwpAQCAtMCwwICsxLDE1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKy8vIEZJWE1FOiBBbmltYXRpb25NYW5hZ2VyIGxhY2tzIGFkdmFuY2Vk
IG11bHRpLXRhcmdldCBzdXBwb3J0LiAoQW5pbWF0aW9ucyBwZXItdGFyZ2V0KQorCitXSS5Bbmlt
YXRpb25NYW5hZ2VyID0gY2xhc3MgQW5pbWF0aW9uTWFuYWdlcgoreworICAgIGNvbnN0cnVjdG9y
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uQ29sbGVjdGlvbiA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uOworICAgICAg
ICB0aGlzLl9hbmltYXRpb25JZE1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgV0kuRnJhbWUuYWRk
RXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMu
X2hhbmRsZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CisgICAgfQorCisgICAgLy8gQWdl
bnQKKworICAgIGdldCBkb21haW5zKCkgeyByZXR1cm4gWyJBbmltYXRpb24iXTsgfQorCisgICAg
YWN0aXZhdGVFeHRyYURvbWFpbihkb21haW4pCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2Vy
dChkb21haW4gPT09ICJBbmltYXRpb24iKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2Yg
V0kudGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpOwor
ICAgIH0KKworICAgIC8vIFRhcmdldAorCisgICAgaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpCisg
ICAgeworICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZW5hYmxlIGRp
ZCBub3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlv
bi5lbmFibGUiKSkKKyAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5lbmFibGUoKTsK
KyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25Db2xsZWN0aW9uKCkg
eyByZXR1cm4gdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbjsgfQorCisgICAgZ2V0IHN1cHBvcnRl
ZCgpCisgICAgeworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlv
bi5lbmFibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNr
ZW5kLmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5lbmFibGUiKTsKKyAgICB9CisKKyAgICBlbmFibGUo
KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2VuYWJsZWQpOworCisgICAg
ICAgIHRoaXMuX2VuYWJsZWQgPSB0cnVlOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBX
SS50YXJnZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFyZ2V0KHRhcmdldCk7Cisg
ICAgfQorCisgICAgZGlzYWJsZSgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll9lbmFibGVkKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgewor
ICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZGlzYWJs
ZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgi
QW5pbWF0aW9uLmRpc2FibGUiKSkKKyAgICAgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdl
bnQuZGlzYWJsZSgpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVj
dGlvbi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisg
ICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBBbmltYXRpb25P
YnNlcnZlcgorCisgICAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25QYXlsb2FkKQorICAgIHsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2FuaW1hdGlvbklkTWFwLmhhcyhhbmltYXRp
b25QYXlsb2FkLmFuaW1hdGlvbklkKSwgYEFuaW1hdGlvbiBhbHJlYWR5IGV4aXN0cyB3aXRoIGlk
ICR7YW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZH0uYCk7CisKKyAgICAgICAgbGV0IGFuaW1h
dGlvbiA9IFdJLkFuaW1hdGlvbi5mcm9tUGF5bG9hZChhbmltYXRpb25QYXlsb2FkKTsKKyAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5hZGQoYW5pbWF0aW9uKTsKKyAgICAgICAgdGhp
cy5fYW5pbWF0aW9uSWRNYXAuc2V0KGFuaW1hdGlvbi5hbmltYXRpb25JZCwgYW5pbWF0aW9uKTsK
KyAgICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAgewor
ICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlv
bklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFh
bmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLmVmZmVj
dENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklk
LCBlZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9u
SWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9u
KTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgYW5pbWF0aW9uLnRhcmdldENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICBhbmltYXRp
b25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0g
dGhpcy5fYW5pbWF0aW9uSWRNYXAudGFrZShhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24ucmVtb3ZlKGFuaW1h
dGlvbik7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZU1haW5SZXNvdXJj
ZURpZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LnRh
cmdldCBpbnN0YW5jZW9mIFdJLkZyYW1lKTsKKyAgICAgICAgaWYgKCFldmVudC50YXJnZXQuaXNN
YWluRnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBXSS5BbmltYXRpb24u
cmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsKKworICAgICAgICB0aGlzLl9hbmltYXRp
b25Db2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLmNsZWFy
KCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCmluZGV4IDEzNWMx
NjYxM2FlODAwOWMxNmUyNzIyZjcyNTg1Yzk3ZTY5ZGQxMTQuLmRiYjhlNmZlNDk3MzFkNTIzMWUy
ODNmNjlmYTI5MGYzN2I2YmJmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpA
QCAtMzIsNiArMzIsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMuX2VuYWJs
ZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbiA9IG5ldyBXSS5DYW52
YXNDb2xsZWN0aW9uOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwID0gbmV3IE1h
cDsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwog
ICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MgPSBuZXcgU2V0OwpAQCAtNzYsMTMgKzc3LDkg
QEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IGNhbnZhc0NvbGxlY3Rpb24oKSB7IHJldHVy
biB0aGlzLl9jYW52YXNDb2xsZWN0aW9uOyB9CiAgICAgZ2V0IHNhdmVkUmVjb3JkaW5ncygpIHsg
cmV0dXJuIHRoaXMuX3NhdmVkUmVjb3JkaW5nczsgfQogCi0gICAgZ2V0IGNhbnZhc2VzKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAu
dmFsdWVzKCkpOwotICAgIH0KLQogICAgIGdldCBzaGFkZXJQcm9ncmFtcygpCiAgICAgewogICAg
ICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC52
YWx1ZXMoKSk7CkBAIC0xMzMsNiArMTMwLDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENh
bnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICB0YXJnZXQuQ2Fu
dmFzQWdlbnQuZGlzYWJsZSgpOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fY2FudmFzQ29s
bGVjdGlvbi5jbGVhcigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFy
KCk7CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAg
ICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncy5jbGVhcigpOwpAQCAtMTYxLDkgKzE1OSw4IEBA
IFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmhhcyhj
YW52YXNQYXlsb2FkLmNhbnZhc0lkKSwgYENhbnZhcyBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7
Y2FudmFzUGF5bG9hZC5jYW52YXNJZH0uYCk7CiAKICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLkNh
bnZhcy5mcm9tUGF5bG9hZChjYW52YXNQYXlsb2FkKTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29s
bGVjdGlvbi5hZGQoY2FudmFzKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5z
ZXQoY2FudmFzLmlkZW50aWZpZXIsIGNhbnZhcyk7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwge2NhbnZh
c30pOwogICAgIH0KIAogICAgIGNhbnZhc1JlbW92ZWQoY2FudmFzSWRlbnRpZmllcikKQEAgLTE3
Myw3ICsxNzAsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIHRoaXMuX3Nh
dmVSZWNvcmRpbmdzKGNhbnZhcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5y
ZW1vdmUoY2FudmFzKTsKKworICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbikKKyAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVu
dGlmaWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOworCisgICAgICAgIGNhbnZhcy5z
aGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5jbGVhcigpOwogICAgIH0KIAogICAgIGNhbnZhc01lbW9y
eUNoYW5nZWQoY2FudmFzSWRlbnRpZmllciwgbWVtb3J5Q29zdCkKQEAgLTI3NSwyMSArMjc5LDE0
IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICBf
c2F2ZVJlY29yZGluZ3MoY2FudmFzKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBv
ZiBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9zaGFk
ZXJQcm9ncmFtSWRlbnRpZmllck1hcC5kZWxldGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKLQotICAg
ICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIoKTsKLQogICAgICAgICBm
b3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pIHsKICAgICAg
ICAgICAgIHJlY29yZGluZy5zb3VyY2UgPSBudWxsOwogICAgICAgICAgICAgcmVjb3JkaW5nLmNy
ZWF0ZURpc3BsYXlOYW1lKHJlY29yZGluZy5kaXNwbGF5TmFtZSk7CiAgICAgICAgICAgICB0aGlz
Ll9zYXZlZFJlY29yZGluZ3MuYWRkKHJlY29yZGluZyk7CiAgICAgICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVk
LCB7cmVjb3JkaW5nfSk7CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHtjYW52YXN9
KTsKICAgICB9CiAKICAgICBfbWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQpAQCAtMzAxLDE1
ICsyOTgsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgV0kuQ2FudmFzLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1i
ZXJzKCk7CiAKICAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0lkZW50aWZp
ZXJNYXAudmFsdWVzKCkpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsK
KyAgICAgICAgICAgIHRoaXMuX3NhdmVSZWNvcmRpbmdzKGNhbnZhcyk7CiAKLSAgICAgICAgdGhp
cy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzQ29sbGVjdGlvbi5jbGVhcigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFw
LmNsZWFyKCk7CisgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFy
KCk7CiAgICAgfQogfTsKIAogV0kuQ2FudmFzTWFuYWdlci5FdmVudCA9IHsKLSAgICBDYW52YXNB
ZGRlZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtYWRkZWQiLAotICAgIENhbnZhc1JlbW92
ZWQ6ICJjYW52YXMtbWFuYWdlci1jYW52YXMtd2FzLXJlbW92ZWQiLAogICAgIFJlY29yZGluZ1Nh
dmVkOiAiY2FudmFzLW1hbmFnZXItcmVjb3JkaW5nLXNhdmVkIiwKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2Vy
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9N
TWFuYWdlci5qcwppbmRleCAxYThkZjY4YmJhZGQ4ZGU4YmZmYjM4MDc5NTI2OTI4N2EzYTMzMjQy
Li43MTg1NTU4YWQzZTBkOTc5YmIwMDFkYjhlMTEwM2RiODJhYTllMDUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2Vy
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0RPTU1hbmFnZXIuanMKQEAgLTMyMyw3ICszMjMsNyBAQCBXSS5ET01NYW5hZ2VyID0gY2xhc3Mg
RE9NTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgbm9kZUZvcklkKG5vZGVJZCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdOworICAgICAgICBy
ZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXSB8fCBudWxsOwogICAgIH0KIAogICAgIF9k
b2N1bWVudFVwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4
IDc2MzNkZTFiYWUwZjQxM2ZlMTJjZDFjMzYzMzg0YWVmM2ZkODQ2NTkuLjcyOTY5NmYwNDFjMTYy
ZmY5N2NmYjA5MjQ5N2JiZDE1YWJmOWZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1h
bmFnZXIuanMKQEAgLTc4MSw3ICs3ODEsNyBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBU
aW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdl
ci5ub2RlRm9ySWQoZXZlbnQubm9kZUlkKSB8fCBudWxsOworICAgICAgICAgICAgbGV0IGRvbU5v
ZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChldmVudC5ub2RlSWQpOwogICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQoZG9tTm9kZSk7CiAKICAgICAgICAgICAgIHJlY29yZCA9IG5ldyBXSS5N
ZWRpYVRpbWVsaW5lUmVjb3JkKGV2ZW50VHlwZSwgZG9tTm9kZSwgZGV0YWlscyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3Zn
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmQ2NTdkOTMyNmFhYTBjZTY0ZjZkN2Vm
MDMxZGY4MTZhZjJjZmU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMu
c3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJl
Y3QgeD0iMS41IiB5PSIyLjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ry
b2tlPSJjdXJyZW50Q29sb3IiLz4KLSAgICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcg
MyAxMSAzIDEyIDEzIDEyIDEzIDExIDExIDgiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODdjYWYzYTE0OWY2OTQ1YjYxODZkODRiNjE1ODc2OWNhZjBhNjRhMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFw
aGljcy5zdmcKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1
dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuIC0tPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJy
b290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJlY3QgeD0iMS41
IiB5PSIyLjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJy
ZW50Q29sb3IiLz4KKyAgICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAxMSAzIDEy
IDEzIDEyIDEzIDExIDExIDgiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IGUzM2QxMjJiY2M3NDQwOWFjYWQ3YmYzMTBkM2Mw
YmE1MTZiNzYzNTEuLmUzZjgzMTg3NDMyNDVhMTU4ZDE5ZjRjMjQ2MmYzOTE4YzAzOTJmZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTMw
LDYgKzMwLDkgQEAKIAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iRXh0ZXJuYWwv
Q29kZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+CiAKKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MiPgorICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3Nz
Ij4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkRldGFp
bHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZp
ZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwuY3Nz
Ij4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0VGVzdENhc2VD
b250ZW50Vmlldy5jc3MiPgpAQCAtNTYsNyArNTksNiBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzU2lk
ZWJhclBhbmVsLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9D
YW52YXNUYWJDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvQ2hhbmdlc0RldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoYXJ0RGV0YWlsc1NlY3Rpb25Sb3cuY3NzIj4KICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoZWNrYm94TmF2aWdhdGlvbkl0
ZW0uY3NzIj4KQEAgLTExMyw2ICsxMTUsOCBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvR29Ub0xpbmVEaWFsb2cuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IlZpZXdzL0dyYWRpZW50RWRpdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFkaWVudFNsaWRlci5jc3MiPgorICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcyI+
CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFw
QWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguY3NzIj4KICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldy5jc3MiPgog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcFNuYXBzaG90SW5zdGFu
Y2VzQ29udGVudFZpZXcuY3NzIj4KQEAgLTM0OSw2ICszNTMsNyBAQAogICAgIDxzY3JpcHQgc3Jj
PSJQcm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Db25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9J
bnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNv
ZGUuanMiPjwvc2NyaXB0PgpAQCAtMzYxLDYgKzM2Niw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxT
Y3JpcHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24u
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlv
bi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hl
RnJhbWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGljYXRpb25D
YWNoZU1hbmlmZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JhY2tG
b3J3YXJkRW50cnkuanMiPjwvc2NyaXB0PgpAQCAtMzgwLDcgKzM4Nyw2IEBACiAgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Db2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
Q29sbGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0PgpAQCAtNTY2LDkgKzU3Miw5IEBACiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3NjcmlwdD4KIAog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db25zb2xlVGFiQ29udGVudFZpZXcuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVu
dC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NjcmlwdFRyZWVFbGVtZW50
LmpzIj48L3NjcmlwdD4KQEAgLTU5NCw2ICs2MDAsOSBAQAogCiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvblRvb2xiYXJJdGVtLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJh
clBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25D
YWNoZURldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LmpzIj48
L3NjcmlwdD4KQEAgLTY5Miw2ICs3MDEsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Hb1Rv
TGluZURpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50
RWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGllbnRTbGlk
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxs
b2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlUGF0aENvbXBvbmVu
dC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1Rp
bWVsaW5lT3ZlcnZpZXdHcmFwaC5qcyI+PC9zY3JpcHQ+CkBAIC04NTYsNiArODY2LDcgQEAKICAg
ICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyLmpzIj48
L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BbmltYXRpb25NYW5hZ2Vy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2Vy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9C
YXNpY0Jsb2NrQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEyYzM5NzZhZjcwYWUxOGU5MmY0NzZiOTI3ODUzZmE2ZDAyZTVkYjYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9u
LmpzCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uID0gY2xhc3Mg
QW5pbWF0aW9uIGV4dGVuZHMgV0kuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoYW5pbWF0aW9u
SWQsIHtjc3NBbmltYXRpb25OYW1lLCBjc3NUcmFuc2l0aW9uUHJvcGVydHksIGVmZmVjdCwgYmFj
a3RyYWNlfSA9IHt9KQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICBjb25zb2xl
LmFzc2VydChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghY3NzQW5pbWF0
aW9uTmFtZSAmJiAhY3NzVHJhbnNpdGlvblByb3BlcnR5KSB8fCAhIWNzc0FuaW1hdGlvbk5hbWUg
IT09ICEhY3NzVHJhbnNpdGlvblByb3BlcnR5KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25J
ZCA9IGFuaW1hdGlvbklkOworCisgICAgICAgIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUgPSBjc3NB
bmltYXRpb25OYW1lIHx8IG51bGw7CisgICAgICAgIHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0
eSA9IGNzc1RyYW5zaXRpb25Qcm9wZXJ0eSB8fCBudWxsOworICAgICAgICB0aGlzLl91cGRhdGVF
ZmZlY3QoZWZmZWN0KTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlID0gYmFja3RyYWNlIHx8IFtd
OworCisgICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRQcm9taXNlID0gbnVsbDsKKyAg
ICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBmcm9tUGF5bG9hZChwYXlsb2FkKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb24ocGF5bG9hZC5hbmltYXRpb25J
ZCwgeworICAgICAgICAgICAgY3NzQW5pbWF0aW9uTmFtZTogcGF5bG9hZC5jc3NBbmltYXRpb25O
YW1lLAorICAgICAgICAgICAgY3NzVHJhbnNpdGlvblByb3BlcnR5OiBwYXlsb2FkLmNzc1RyYW5z
aXRpb25Qcm9wZXJ0eSwKKyAgICAgICAgICAgIGVmZmVjdDogcGF5bG9hZC5lZmZlY3QsCisgICAg
ICAgICAgICBiYWNrdHJhY2U6IEFycmF5LmlzQXJyYXkocGF5bG9hZC5iYWNrdHJhY2UpID8gcGF5
bG9hZC5iYWNrdHJhY2UubWFwKChpdGVtKSA9PiBXSS5DYWxsRnJhbWUuZnJvbVBheWxvYWQoV0ku
bWFpblRhcmdldCwgaXRlbSkpIDogW10sCisgICAgICAgIH0pOworICAgIH0KKworICAgIHN0YXRp
YyBkaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUoYW5pbWF0aW9uVHlwZSwgcGx1cmFsKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChhbmltYXRpb25UeXBlKSB7CisgICAgICAgIGNhc2UgV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJ
LlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb24i
KTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb246CisgICAgICAg
ICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25zIikgOiBXSS5V
SVN0cmluZygiQ1NTIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBl
LkNTU1RyYW5zaXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmco
IkNTUyBUcmFuc2l0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9uIik7CisgICAg
ICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gYW5pbWF0aW9u
IHR5cGUiLCBhbmltYXRpb25UeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisg
ICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24ocGxheWJhY2tEaXJlY3Rp
b24pCisgICAgeworICAgICAgICBzd2l0Y2ggKHBsYXliYWNrRGlyZWN0aW9uKSB7CisgICAgICAg
IGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLk5vcm1hbDoKKyAgICAgICAgICAg
IHJldHVybiBXSS5VSVN0cmluZygiTm9ybWFsIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9u
LlBsYXliYWNrRGlyZWN0aW9uLlJldmVyc2U6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIlJldmVyc2UiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rp
b24uQWx0ZXJuYXRlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBbHRlcm5hdGUi
KTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uQWx0ZXJuYXRl
UmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQWx0ZXJuYXRlIFJldmVy
c2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93
biBwbGF5YmFjayBkaXJlY3Rpb24iLCBwbGF5YmFja0RpcmVjdGlvbik7CisgICAgICAgIHJldHVy
biBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckZpbGxNb2RlKGZpbGxN
b2RlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWxsTW9kZSkgeworICAgICAgICBjYXNlIFdJ
LkFuaW1hdGlvbi5GaWxsTW9kZS5Ob25lOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5n
KCJOb25lIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkZvcndhcmRzOgor
ICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJGb3J3YXJkcyIpOworICAgICAgICBjYXNl
IFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5CYWNrd2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkJhY2t3YXJkcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9k
ZS5Cb3RoOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCb3RoIik7CisgICAgICAg
IGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkF1dG86CisgICAgICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkF1dG8iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZh
bHNlLCAiVW5rbm93biBmaWxsIG1vZGUiLCBmaWxsTW9kZSk7CisgICAgICAgIHJldHVybiBudWxs
OworICAgIH0KKworICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpCisg
ICAgeworICAgICAgICBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9
IDE7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uSWQoKSB7IHJl
dHVybiB0aGlzLl9hbmltYXRpb25JZDsgfQorICAgIGdldCBiYWNrdHJhY2UoKSB7IHJldHVybiB0
aGlzLl9iYWNrdHJhY2U7IH0KKworICAgIGdldCBhbmltYXRpb25UeXBlKCkKKyAgICB7CisgICAg
ICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0dXJuIFdJLkFu
aW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1RyYW5zaXRp
b25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFu
c2l0aW9uOworICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOwor
ICAgIH0KKworICAgIGdldCBzdGFydERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAic3Rh
cnREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnN0YXJ0RGVsYXkgOiBOYU47
CisgICAgfQorCisgICAgZ2V0IGVuZERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiZW5k
RGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5lbmREZWxheSA6IE5hTjsKKyAg
ICB9CisKKyAgICBnZXQgaXRlcmF0aW9uQ291bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJp
dGVyYXRpb25Db3VudCIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkNv
dW50IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25TdGFydCgpCisgICAgeworICAg
ICAgICByZXR1cm4gIml0ZXJhdGlvblN0YXJ0IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZl
Y3QuaXRlcmF0aW9uU3RhcnQgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvbkR1cmF0
aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uRHVyYXRpb24iIGluIHRoaXMu
X2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25EdXJhdGlvbiA6IE5hTjsKKyAgICB9CisK
KyAgICBnZXQgdGltaW5nRnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJ0aW1pbmdG
dW5jdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uIDog
bnVsbDsKKyAgICB9CisKKyAgICBnZXQgcGxheWJhY2tEaXJlY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuICJwbGF5YmFja0RpcmVjdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZm
ZWN0LnBsYXliYWNrRGlyZWN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQgZmlsbE1vZGUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuICJmaWxsTW9kZSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhp
cy5fZWZmZWN0LmZpbGxNb2RlIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQga2V5ZnJhbWVzKCkK
KyAgICB7CisgICAgICAgIHJldHVybiAia2V5ZnJhbWVzIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlz
Ll9lZmZlY3Qua2V5ZnJhbWVzIDogW107CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1Ry
YW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NUcmFuc2l0aW9u
UHJvcGVydHk7CisKKyAgICAgICAgaWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcikK
KyAgICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gV0kuQW5pbWF0aW9u
Ll9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIrKzsKKyAgICAgICAgcmV0dXJuIFdJLlVJU3Ry
aW5nKCJBbmltYXRpb24gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIp
OworICAgIH0KKworICAgIHJlcXVlc3RFZmZlY3RUYXJnZXQoKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0UHJvbWlzZSkgeworICAgICAgICAgICAgdGhpcy5f
cmVxdWVzdEVmZmVjdFRhcmdldFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5lbnN1cmVEb2N1bWVudCgpOwor
CisgICAgICAgICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwor
ICAgICAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5yZXF1ZXN0RWZmZWN0VGFyZ2V0
KHRoaXMuX2FuaW1hdGlvbklkLCAoZXJyb3IsIG5vZGVJZCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5v
ZGVJZCkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRQcm9taXNlOworICAgIH0K
KworICAgIC8vIEFuaW1hdGlvbk1hbmFnZXIKKworICAgIGVmZmVjdENoYW5nZWQoZWZmZWN0KQor
ICAgIHsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7CisgICAgfQorCisgICAg
dGFyZ2V0Q2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0
UHJvbWlzZSA9IG51bGw7CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpOworICAgIH0KKworICAgIC8vIFByaXZh
dGUKKworICAgIF91cGRhdGVFZmZlY3QoZWZmZWN0KQorICAgIHsKKyAgICAgICAgdGhpcy5fZWZm
ZWN0ID0gZWZmZWN0IHx8IHt9OworCisgICAgICAgIGlmICh0aGlzLl9lZmZlY3QudGltaW5nRnVu
Y3Rpb24pCisgICAgICAgICAgICB0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24gPSBXSS5DdWJp
Y0Jlemllci5mcm9tU3RyaW5nKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbik7CisKKyAgICAg
ICAgaWYgKHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGtl
eWZyYW1lIG9mIHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAo
a2V5ZnJhbWUuZWFzaW5nKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZS5lYXNpbmcgPSBX
SS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKGtleWZyYW1lLmVhc2luZyk7CisKKyAgICAgICAgICAg
ICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpCisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lLnN0
eWxlID0ga2V5ZnJhbWUuc3R5bGUucmVwbGFjZUFsbCgvO1xzKy9nLCAiO1xuIik7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCk7CisgICAgfQorfTsKKworV0kuQW5p
bWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOworCitXSS5BbmltYXRpb24u
VHlwZSA9IHsKKyAgICBXZWJBbmltYXRpb246ICJ3ZWItYW5pbWF0aW9uIiwKKyAgICBDU1NBbmlt
YXRpb246ICJjc3MtYW5pbWF0aW9uIiwKKyAgICBDU1NUcmFuc2l0aW9uOiAiY3NzLXRyYW5zaXRp
b24iLAorfTsKKworV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uID0geworICAgIE5vcm1h
bDogIm5vcm1hbCIsCisgICAgUmV2ZXJzZTogInJldmVyc2UiLAorICAgIEFsdGVybmF0ZTogImFs
dGVybmF0ZSIsCisgICAgQWx0ZXJuYXRlUmV2ZXJzZTogImFsdGVybmF0ZS1yZXZlcnNlIiwKK307
CisKK1dJLkFuaW1hdGlvbi5GaWxsTW9kZSA9IHsKKyAgICBOb25lOiAibm9uZSIsCisgICAgRm9y
d2FyZHM6ICJmb3J3YXJkcyIsCisgICAgQmFja3dhcmRzOiAiYmFja3dhcmRzIiwKKyAgICBCb3Ro
OiAiYm90aCIsCisgICAgQXV0bzogImF1dG8iLAorfTsKKworV0kuQW5pbWF0aW9uLkV2ZW50ID0g
eworICAgIEVmZmVjdENoYW5nZWQ6ICJhbmltYXRpb24tZWZmZWN0LWNoYW5nZWQiLAorICAgIFRh
cmdldENoYW5nZWQ6ICJhbmltYXRpb24tdGFyZ2V0LWNoYW5nZWQiLAorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xs
ZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0Fu
aW1hdGlvbkNvbGxlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI3NmFiNDBkNjk5ZDVkZWIyZTYwODFm
ODQ1NWIyMmU0MTM2NzlmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzCkBAIC0wLDAgKzEs
MTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlvbiA9IGNsYXNzIEFuaW1h
dGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBXSS5Db2xsZWN0aW9uCit7CisgICAgY29uc3RydWN0b3Io
YW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFhbmltYXRpb25U
eXBlIHx8IE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFuaW1hdGlv
blR5cGUpKTsKKworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvblR5
cGUgPSBhbmltYXRpb25UeXBlIHx8IG51bGw7CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRp
b25UeXBlKQorICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAg
PSBudWxsOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvblR5cGUo
KSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25UeXBlOyB9CisKKyAgICBnZXQgZGlzcGxheU5hbWUo
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAg
IGNvbnN0IHBsdXJhbCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLmRp
c3BsYXlOYW1lRm9yVHlwZSh0aGlzLl9hbmltYXRpb25UeXBlLCBwbHVyYWwpOworICAgICAgICB9
CisKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpOworICAgIH0K
KworICAgIG9iamVjdElzUmVxdWlyZWRUeXBlKG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICgh
KG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgcmV0dXJuICF0aGlzLl9hbmltYXRpb25UeXBlIHx8IG9iamVjdC5hbmlt
YXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlOworICAgIH0KKworICAgIGFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlKGFuaW1hdGlvblR5cGUpCisgICAgeworICAgICAgICBjb25zb2xl
LmFzc2VydChPYmplY3QudmFsdWVzKFdJLkFuaW1hdGlvbi5UeXBlKS5pbmNsdWRlcyhhbmltYXRp
b25UeXBlKSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlvblR5cGUp
OworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXRo
aXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKQorICAgICAgICAgICAgdGhpcy5fYW5p
bWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAgPSBuZXcgTWFwOworCisgICAgICAgIGxldCBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBl
TWFwLmdldChhbmltYXRpb25UeXBlKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb25Db2xsZWN0aW9u
Rm9yVHlwZSkgeworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSBuZXcg
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbihhbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIHRoaXMu
X2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnNldChhbmltYXRpb25UeXBlLCBhbmltYXRp
b25Db2xsZWN0aW9uRm9yVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaXRl
bUFkZGVkKGl0ZW0pCisgICAgeworICAgICAgICBzdXBlci5pdGVtQWRkZWQoaXRlbSk7CisKKyAg
ICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0
aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGl0
ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlw
ZS5hZGQoaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpdGVtUmVtb3ZlZChpdGVtKQor
ICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBs
ZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0
aW9uRm9yVHlwZS5yZW1vdmUoaXRlbSk7CisgICAgICAgIH0KKworICAgICAgICBzdXBlci5pdGVt
UmVtb3ZlZChpdGVtKTsKKyAgICB9CisKKyAgICBpdGVtc0NsZWFyZWQoaXRlbXMpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApIHsKKyAgICAg
ICAgICAgIGZvciAobGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlIG9mIHRoaXMuX2FuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgICAgIGFuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAgICBzdXBl
ci5pdGVtc0NsZWFyZWQoaXRlbXMpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNl
UmVzdWx0LmpzCmluZGV4IGM5Y2MzOTYyZTgwZmI2NmZlMTVkYTEzNTRlYTI5MjZiZjg0MWNkY2Uu
LjMxZDYyN2Q4MTFiZDYzMzJkYzQ4MDg1Zjk3ZGY1MDY0ZDIwMTI3ZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVz
dWx0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9B
dWRpdFRlc3RDYXNlUmVzdWx0LmpzCkBAIC0xNDYsNyArMTQ2LDcgQEAgV0kuQXVkaXRUZXN0Q2Fz
ZVJlc3VsdCA9IGNsYXNzIEF1ZGl0VGVzdENhc2VSZXN1bHQgZXh0ZW5kcyBXSS5BdWRpdFRlc3RS
ZXN1bHRCYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUucXVlcnlTZWxl
Y3Rvcihkb21Ob2RlU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNo
IHsgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kb21NYW5hZ2VyLm5v
ZGVGb3JJZChub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFz
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5q
cwppbmRleCA2MmJhMjY0MTA1YWFlZGY0YmE1ZTJiZTM3NTVhMmI1ZDM4YmNmYWQzLi44ZTJiNTJl
MmMxZjExYTM2ZDY1ZGZjYTRlYzk1MGY2MDk4NTk2OTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKQEAgLTk3LDcgKzk3
LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEOgogICAgICAgICAgICAgcmV0dXJu
IFdJLlVJU3RyaW5nKCIyRCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5C
aXRtYXBSZW5kZXJlcjoKLSAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygi
Qml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJpdG1h
cCBSZW5kZXJlciIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoK
ICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wiKTsKICAgICAg
ICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgpAQCAtMTA2LDkgKzEwNiwxMCBA
QCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAg
IHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViIEdQVSIpOwogICAgICAgICBjYXNlIFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJNZXRhbDoKICAgICAgICAgICAgIHJldHVybiBXSS51bmxv
Y2FsaXplZFN0cmluZygiV2ViTWV0YWwiKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
IGNvbnNvbGUuZXJyb3IoIkludmFsaWQgY2FudmFzIGNvbnRleHQgdHlwZSIsIGNvbnRleHRUeXBl
KTsKICAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBj
YW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOworICAgICAgICByZXR1cm4gbnVsbDsK
ICAgICB9CiAKICAgICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29y
ZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNv
cmRpbmcuanMKaW5kZXggMWY4ZGQ3ZWY0NWQ2Mjk3NzhjZDgyODdiZmI4ZDMxYjJhMTA4OWYzMC4u
YjZkZTk1MzU0MjJjOWM2M2FlMWFkMTRlOWRjNDdmZWFjNzY4MDRjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpz
CkBAIC0xNDgsNiArMTQ4LDIzIEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29yZGluZyBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gbmV3IFdJLlJlY29yZGluZyhwYXlsb2FkLnZl
cnNpb24sIHR5cGUsIHBheWxvYWQuaW5pdGlhbFN0YXRlLCBmcmFtZXMsIHBheWxvYWQuZGF0YSk7
CiAgICAgfQogCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlwZShyZWNvcmRp
bmdUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyZWNvcmRpbmdUeXBlKSB7CisgICAgICAg
IGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQ6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlT
dHJpbmcoIjJEIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzQml0bWFwUmVu
ZGVyZXI6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIp
OworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMOgorICAgICAgICAgICAg
cmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIpOworICAgICAgICBjYXNlIFJlY29y
ZGluZy5UeXBlLkNhbnZhc1dlYkdMMjoKKyAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXpl
ZFN0cmluZygiV2ViR0wyIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChm
YWxzZSwgIlVua25vd24gcmVjb3JkaW5nIHR5cGUiLCByZWNvcmRpbmdUeXBlKTsKKyAgICAgICAg
cmV0dXJuIG51bGw7CisgICAgfQorCiAgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yU3dpenpsZVR5
cGUoc3dpenpsZVR5cGUpCiAgICAgewogICAgICAgICBzd2l0Y2ggKHN3aXp6bGVUeXBlKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9B
bmltYXRpb25PYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCmluZGV4IGIxMTk1ZWQwY2EwY2IwY2E4MDY2
OGUwZTk4ZGM2NzlkY2FkOTE3YTMuLjdlNTZlOGJiMzljYmEwYzYyODBlYTljZWRkNDViZTU1NDVm
MGYxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCkBAIC0yNyw2ICsyNywy
NiBAQCBXSS5BbmltYXRpb25PYnNlcnZlciA9IGNsYXNzIEFuaW1hdGlvbk9ic2VydmVyIGV4dGVu
ZHMgSW5zcGVjdG9yQmFja2VuZC5EaXNwYXRjaAogewogICAgIC8vIEV2ZW50cyBkZWZpbmVkIGJ5
IHRoZSAiQW5pbWF0aW9uIiBkb21haW4uCiAKKyAgICBhbmltYXRpb25DcmVhdGVkKGFuaW1hdGlv
bikKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ3JlYXRlZChh
bmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVj
dCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZWZmZWN0Q2hhbmdlZChhbmlt
YXRpb25JZCwgZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklk
KQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci50YXJnZXRDaGFuZ2VkKGFuaW1h
dGlvbklkKTsKKyAgICB9CisKKyAgICBhbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpCisg
ICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkRlc3Ryb3llZChhbmlt
YXRpb25JZCk7CisgICAgfQorCiAgICAgdHJhY2tpbmdTdGFydCh0aW1lc3RhbXApCiAgICAgewog
ICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuYW5pbWF0aW9uVHJhY2tpbmdTdGFydGVkKHRpbWVz
dGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Q
cm90b2NvbC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKaW5kZXggZGQwMGFmNThjMTI1MzA1ODZlMWMy
ODMwMzJiNzJmZDYyOWZhMzJkOS4uMmNiYTU2NGQ0YTdiNmEzOGMxODllNTczM2QzY2YzYzYwZmM1
MTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwpAQCAtMTg4LDYgKzE4OCwyNSBAQCBXSS5S
ZW1vdGVPYmplY3QgPSBjbGFzcyBSZW1vdGVPYmplY3QKICAgICAgICAgdGFyZ2V0LkNhbnZhc0Fn
ZW50LnJlc29sdmVDb250ZXh0KGNhbnZhcy5pZGVudGlmaWVyLCBvYmplY3RHcm91cCwgd3JhcENh
bGxiYWNrKTsKICAgICB9CiAKKyAgICBzdGF0aWMgcmVzb2x2ZUFuaW1hdGlvbihhbmltYXRpb24s
IG9iamVjdEdyb3VwLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5
cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIik7CisKKyAgICAgICAgZnVuY3Rpb24gd3JhcENh
bGxiYWNrKGVycm9yLCBvYmplY3QpIHsKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhb2JqZWN0
KQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKFdJLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChvYmplY3Qs
IFdJLm1haW5UYXJnZXQpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCB0YXJnZXQgPSBXSS5h
c3N1bWluZ01haW5UYXJnZXQoKTsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMu
MSk6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAg
ICBjb25zb2xlLmFzc2VydCh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLnJlc29sdmVBbmlt
YXRpb24iKSk7CisKKyAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRp
b24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCwgd3JhcENhbGxiYWNrKTsKKyAg
ICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0YXJnZXQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmluZGV4IDFkNDQ1YTA0Y2RlYmVlY2Zh
N2IwY2IwOGVkNmZiYmQ0YmY0NjFlODQuLjBiYTU2MGI5NmMwMjMwNmViNjFiMzJiZGY0ZWFjODk5
MjNkYmYwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0
Lmh0bWwKQEAgLTEwOCw2ICsxMDgsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9Xb3Jr
ZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFr
cG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVj
dGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db25zb2xlTWVzc2Fn
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0cnVtZW50LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUuanMiPjwvc2NyaXB0
PgpAQCAtMTIxLDYgKzEyMiw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9TY3JpcHQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3JpcHQuanMiPjwvc2Ny
aXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NQVUluc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ1BVVGltZWxpbmUuanMiPjwvc2NyaXB0PgpAQCAtMTM3LDcgKzE0MCw2
IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0PgpAQCAtMjM4
LDYgKzI0MCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVhcFNuYXBzaG90UHJveHku
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm94aWVzL0hlYXBTbmFwc2hvdFdvcmtl
clByb3h5LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Bbmlt
YXRpb25NYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMv
QXVkaXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMv
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJD
b250cm9sbGVycy9CcmVha3BvaW50TG9nTWVzc2FnZUxleGVyLmpzIj48L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcwppbmRleCAz
YzQzYWU3OGJlMTcyNzcwNzI5YjcwMzJhYmU1NDQ0M2M5NDZhOGJiLi4wMDY0NDdhOTY3ZTljMjM3
ZjYwYzEwMDA4YmI0NjM0NTcyYjdjNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCkBAIC03MCw2ICs3MCw3IEBAIFdJLmxvYWRlZCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3JrZXJNYW5h
Z2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRE9NRGVidWdnZXJN
YW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNhbnZhc01hbmFnZXIs
CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0aW9uTWFuYWdlciwK
ICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAgLTkxLDYgKzkyLDcgQEAg
V0kubG9hZGVkID0gZnVuY3Rpb24oKQogV0kuY29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKIHsK
ICAgICAvLyBUaGluZ3MgdGhhdCB3b3VsZCBub3JtYWxseSBnZXQgY2FsbGVkIGJ5IHRoZSBVSSwg
dGhhdCB3ZSBzdGlsbCB3YW50IHRvIGRvIGluIHRlc3RzLgorICAgIFdJLmFuaW1hdGlvbk1hbmFn
ZXIuZW5hYmxlKCk7CiAgICAgV0kuYXBwbGljYXRpb25DYWNoZU1hbmFnZXIuZW5hYmxlKCk7CiAg
ICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5kYXRhYmFzZU1hbmFnZXIuZW5h
YmxlKCk7CkBAIC0xODEsNiArMTgzLDcgQEAgV0kudXBkYXRlVmlzaWJpbGl0eVN0YXRlID0gKCkg
PT4ge307CiAgICAgICAgICAgICBnZXQoKSB7IHJldHVybiBXSS5tYWluVGFyZ2V0Ll9hZ2VudHNb
ZG9tYWluTmFtZV07IH0sCiAgICAgICAgIH0pOwogICAgIH0KKyAgICBtYWtlQWdlbnRHZXR0ZXIo
IkFuaW1hdGlvbiIpOwogICAgIG1ha2VBZ2VudEdldHRlcigiQXVkaXQiKTsKICAgICBtYWtlQWdl
bnRHZXR0ZXIoIkFwcGxpY2F0aW9uQ2FjaGUiKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIoIkNQVVBy
b2ZpbGVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0L1Rlc3RIYXJuZXNzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC9UZXN0SGFybmVzcy5qcwppbmRleCBkNDQ3Yjg5NTBiOTM5MjFkMGE4NjAxMzA2OGE4
YjM0ODJiNTMxOGRjLi5kMmU5OWFmMWI2ZTg1MTA3ZGZkNjZkNDFhMzEzYTY0ZWFlNzAwZjI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RI
YXJuZXNzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3Qv
VGVzdEhhcm5lc3MuanMKQEAgLTEzMSw2ICsxMzEsNDYgQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBU
ZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhh
cm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlLCAhYWN0dWFsLCBtZXNzYWdlLCBhY3R1YWwpOwog
ICAgIH0KIAorICAgIGV4cGVjdEVtcHR5KGFjdHVhbCwgbWVzc2FnZSkKKyAgICB7CisgICAgICAg
IGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgdHlwZW9mIGFjdHVhbCA9PT0gInN0cmluZyIp
IHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUu
RW1wdHksICFhY3R1YWwubGVuZ3RoLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdHVhbCBpbnN0YW5jZW9mIFNldCB8fCBh
Y3R1YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFy
bmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksICFhY3R1YWwuc2l6ZSwgbWVzc2FnZSwgYWN0dWFs
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2Yg
YWN0dWFsID09PSAib2JqZWN0IikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgaXNFbXB0eU9iamVjdChhY3R1YWwpLCBtZXNzYWdl
LCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhp
cy5mYWlsKCJleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVj
dDpcbiAgICBBY3R1YWw6ICIgKyB0aGlzLl9leHBlY3RhdGlvblZhbHVlQXNTdHJpbmcoYWN0dWFs
KSk7CisgICAgfQorCisgICAgZXhwZWN0Tm90RW1wdHkoYWN0dWFsLCBtZXNzYWdlKQorICAgIHsK
KyAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCB0eXBlb2YgYWN0dWFsID09PSAi
c3RyaW5nIikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0
aW9uVHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwubGVuZ3RoLCBtZXNzYWdlLCBhY3R1YWwpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdHVhbCBpbnN0YW5j
ZW9mIFNldCB8fCBhY3R1YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIHRoaXMuX2V4
cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHksICEhYWN0dWFsLnNpemUs
IG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0gIm9iamVjdCIpIHsKKyAgICAgICAgICAgIHRoaXMu
X2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHksICFpc0VtcHR5T2Jq
ZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICB0aGlzLmZhaWwoImV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUg
Y2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAgIEFjdHVhbDogIiArIHRoaXMuX2V4cGVjdGF0
aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAgICB9CisKICAgICBleHBlY3ROdWxsKGFjdHVh
bCwgbWVzc2FnZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBl
Y3RhdGlvblR5cGUuTnVsbCwgYWN0dWFsID09PSBudWxsLCBtZXNzYWdlLCBhY3R1YWwsIG51bGwp
OwpAQCAtMzgxLDYgKzQyMSwxMCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4gImV4cGVjdFRoYXQoJXMpIjsKICAg
ICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2U6CiAgICAgICAgICAg
ICByZXR1cm4gImV4cGVjdEZhbHNlKCVzKSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhw
ZWN0YXRpb25UeXBlLkVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJleHBlY3RFbXB0eSglcyki
OworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eToKKyAg
ICAgICAgICAgIHJldHVybiAiZXhwZWN0Tm90RW1wdHkoJXMpIjsKICAgICAgICAgY2FzZSBUZXN0
SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTnVsbDoKICAgICAgICAgICAgIHJldHVybiAiZXhwZWN0
TnVsbCglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RO
dWxsOgpAQCAtNDE2LDYgKzQ2MCwxMCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNz
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4gInRydXRoeSI7CiAgICAgICAg
IGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlOgogICAgICAgICAgICAgcmV0
dXJuICJmYWxzZXkiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5F
bXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZW1wdHkiOworICAgICAgICBjYXNlIFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eToKKyAgICAgICAgICAgIHJldHVybiAibm90IGVt
cHR5IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90TnVsbDoK
ICAgICAgICAgICAgIHJldHVybiAibm90IG51bGwiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNz
LkV4cGVjdGF0aW9uVHlwZS5Ob3RFcXVhbDoKQEAgLTQ0MCw2ICs0ODgsOCBAQCBUZXN0SGFybmVz
cyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiBUZXN0SGFybmVzcy5FeHBl
Y3RhdGlvblR5cGUgPSB7CiAgICAgVHJ1ZTogU3ltYm9sKCJleHBlY3QtdHJ1ZSIpLAogICAgIEZh
bHNlOiBTeW1ib2woImV4cGVjdC1mYWxzZSIpLAorICAgIEVtcHR5OiBTeW1ib2woImV4cGVjdC1l
bXB0eSIpLAorICAgIE5vdEVtcHR5OiBTeW1ib2woImV4cGVjdC1ub3QtZW1wdHkiKSwKICAgICBO
dWxsOiBTeW1ib2woImV4cGVjdC1udWxsIiksCiAgICAgTm90TnVsbDogU3ltYm9sKCJleHBlY3Qt
bm90LW51bGwiKSwKICAgICBFcXVhbDogU3ltYm9sKCJleHBlY3QtZXF1YWwiKSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNv
bGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI0NWM2YTc3NTRlN2EyNzNiOTZjYzkwOWQ2MTBhNDI2Y2ViYzA1YmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25D
b2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisu
Y29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgcGFkZGluZzogNHB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzOTBiNzcxNGNmZTIwM2Y0NjYwODIz
ZTQyOTVhYWU1MjViZmM2MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMK
QEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29u
dGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db2xsZWN0aW9uQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9i
amVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbik7CisKKyAgICAgICAgbGV0IGNvbnRlbnRQ
bGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworCisgICAgICAgIGxl
dCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBjb250ZW50UGxhY2Vob2xkZXIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQu
Y2xhc3NOYW1lID0gImRlc2NyaXB0aW9uIjsKKworICAgICAgICBzd2l0Y2ggKHJlcHJlc2VudGVk
T2JqZWN0LmFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5X
ZWJBbmltYXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQg
PSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEphdmFTY3Jp
cHQuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5U
eXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29u
dGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NT
LiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlw
ZS5DU1NUcmFuc2l0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250
ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NT
LiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY29uc29sZS5hc3Nl
cnQoZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50KTsKKworICAgICAgICBzdXBlcihyZXBy
ZXNlbnRlZE9iamVjdCwgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcsIGNvbnRlbnRQbGFjZWhvbGRl
cik7CisKKyAgICAgICAgdGhpcy5zZWxlY3Rpb25FbmFibGVkID0gdHJ1ZTsKKworICAgICAgICB0
aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW9uLWNvbGxlY3Rpb24iKTsKKyAgICB9
CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAg
ICB7CisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAgICAg
ICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykKKyAg
ICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGNvbnRlbnRWaWV3QWRkZWQo
Y29udGVudFZpZXcpCisgICAgeworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50ZXIp
OworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVh
dmUiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOworICAgIH0KKworICAgIGNv
bnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAgIGNvbnRlbnRWaWV3
LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2hhbmRsZUNv
bnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3Zl
RXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VM
ZWF2ZSk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0kuZG9tTWFu
YWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7
CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VF
bnRlcihldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcuZnJv
bUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgaWYgKCEoY29udGVudFZpZXcgaW5zdGFu
Y2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgbGV0IGFuaW1hdGlvbiA9IGNvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0OworICAg
ICAgICBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldCgpLnRoZW4oKG5vZGUpID0+IHsKKyAg
ICAgICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5vd25lckRvY3VtZW50KQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIG5vZGUuaGlnaGxpZ2h0KCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUoZXZlbnQpCisgICAgewor
ICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTg4OTBmNWNj
ZDY0YWNiZjYyZDlhYjkxMGNiZWI4NzhjZGY2MjgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcu
Y3NzCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJn
aW46IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWNv
bnRlbnQpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisK
Ky5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkIHsKKyAgICBvdXRsaW5lOiBhdXRvIC13
ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAg
ICBoZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgcGFkZGluZzogMCA2
cHg7CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IGhlYWRlciA+IC50aXRsZXMgeworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisKKy5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgY29s
b3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0t
dGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
aGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5KTo6YmVmb3JlIHsKKyAgICBj
b250ZW50OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNwOyAqLzsKK30K
KworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewor
ICAgIGJvcmRlcjogbm9uZTsKKyAgICBvcGFjaXR5OiAwOworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgb3BhY2l0eTog
MTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyB7CisgICAgZGlzcGxh
eTogZmxleDsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczog
Y2VudGVyOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYlKTsKK30KKworLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyB7CisgICAgd2lkdGg6IDEwMCU7
Cit9CisKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHN2ZyB7CisgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QgeworICAgIGZpbGw6IHRyYW5zcGFyZW50Owor
fQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmRlbGF5IGxp
bmUgeworICAgIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG9yKTsKKyAgICBzdHJva2Utd2lkdGg6
IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0
aXZlIHBhdGggeworICAgIGZpbGw6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7CisgICAgZmls
bC1vcGFjaXR5OiAwLjU7CisgICAgc3Ryb2tlOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOwor
ICAgIHN0cm9rZS13aWR0aDogMTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlIHsKKyAgICBmaWxsOiB2YXIoLS10ZXh0LWNvbG9y
KTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3Rp
dmUgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICBzdHJva2Utd2lk
dGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzcGFuIHsK
KyAgICBwYWRkaW5nOiA0cHg7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5
KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgICAg
IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgICAgICBjb2xvcjog
dmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwg
MCUsIDIwJSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xN2JmMjE5M2FiY2NhNjRiZGYzNzlhNjc4MzFmNTE0NTAwNGEzZTUwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5B
bmltYXRpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKKyAg
ICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQW5pbWF0aW9uKTsKKworICAgICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVjdCk7CisKKyAg
ICAgICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IG51bGw7CisgICAgICAgIHRoaXMu
X2NhY2hlZFdpZHRoID0gTmFOOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJhbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBnZXQg
cHJldmlld0hlaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gNDA7CisgICAgfQorCisgICAg
Ly8gUHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAg
ICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQK
KworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91
dCgpOworCisgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICBsZXQgdGl0
bGVzQ29udGFpbmVyID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRpdGxlc0NvbnRhaW5lci5jbGFzc05hbWUgPSAidGl0
bGVzIjsKKworICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gdGl0bGVzQ29udGFpbmVyLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgIHRpdGxlRWxl
bWVudC5jbGFzc05hbWUgPSAidGl0bGUiOworICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRl
bnQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc3BsYXlOYW1lOworCisgICAgICAgIHRoaXMu
X3N1YnRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuY2xh
c3NOYW1lID0gInN1YnRpdGxlIjsKKworICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IG5ldyBX
SS5OYXZpZ2F0aW9uQmFyOworCisgICAgICAgIGxldCBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZp
Z2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiYW5pbWF0aW9uLXRhcmdl
dCIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24gVGFyZ2V0IiksICJJbWFnZXMvTWFya3VwLnN2ZyIs
IDE2LCAxNik7CisgICAgICAgIGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZp
c2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5M
b3c7CisgICAgICAgIFdJLmFkZE1vdXNlRG93bkNvbnRleHRNZW51SGFuZGxlcnMoYW5pbWF0aW9u
VGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZWxlbWVudCwgdGhpcy5fcG9wdWxhdGVBbmltYXRp
b25UYXJnZXRCdXR0b25Db250ZXh0TWVudS5iaW5kKHRoaXMpKTsKKyAgICAgICAgbmF2aWdhdGlv
bkJhci5hZGROYXZpZ2F0aW9uSXRlbShhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRl
bSk7CisKKyAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmQobmF2aWdhdGlvbkJhci5lbGVtZW50
KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRpb25CYXIpOworCisgICAgICAgIHRo
aXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNs
YXNzTmFtZSA9ICJwcmV2aWV3IjsKKyAgICB9CisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAg
ICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7Cisg
ICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgc2l6ZURpZENoYW5n
ZSgpCisgICAgeworICAgICAgICBzdXBlci5zaXplRGlkQ2hhbmdlKCk7CisKKyAgICAgICAgdGhp
cy5fY2FjaGVkV2lkdGggPSB0aGlzLmVsZW1lbnQucmVhbE9mZnNldFdpZHRoOworICAgIH0KKwor
ICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAg
ICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5F
dmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlv
bi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlzKTsK
KyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5n
ZWQsIHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVj
dENoYW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQsIHRoaXMpOworCisgICAgICAgIHN1
cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3JlZnJlc2hT
dWJ0aXRsZSgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RF
ZmZlY3RUYXJnZXQoKS50aGVuKChkb21Ob2RlKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9hbmlt
YXRpb25UYXJnZXRET01Ob2RlID0gZG9tTm9kZTsKKworICAgICAgICAgICAgdGhpcy5fc3VidGl0
bGVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICBpZiAoZG9tTm9kZSkKKyAg
ICAgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoV0kubGlua2lm
eU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVm
cmVzaFByZXZpZXcoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5yZW1v
dmVDaGlsZHJlbigpOworCisgICAgICAgIGxldCBrZXlmcmFtZXMgPSB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmtleWZyYW1lczsKKyAgICAgICAgaWYgKCFrZXlmcmFtZXMubGVuZ3RoKSB7CisgICAg
ICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRl
bnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4iKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBzdGFydERlbGF5ID0g
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5zdGFydERlbGF5IHx8IDA7CisgICAgICAgIGxldCBpdGVy
YXRpb25EdXJhdGlvbiA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaXRlcmF0aW9uRHVyYXRpb24g
fHwgMDsKKyAgICAgICAgbGV0IGVuZERlbGF5ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5lbmRE
ZWxheSB8fCAwOworICAgICAgICBsZXQgdG90YWxEdXJhdGlvbiA9IHN0YXJ0RGVsYXkgKyBpdGVy
YXRpb25EdXJhdGlvbiArIGVuZERlbGF5OworICAgICAgICBpZiAodG90YWxEdXJhdGlvbiA9PT0g
MCkgeworICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICBzcGFu
LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlv
bi4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHBy
ZXZpZXdIZWlnaHQgPSBXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcmV2aWV3SGVpZ2h0OworCisg
ICAgICAgIGNvbnN0IG1hcmtlckhlYWRSYWRpdXMgPSA0OworICAgICAgICBjb25zdCBtYXJrZXJI
ZWFkUGFkZGluZyA9IDI7CisKKyAgICAgICAgLy8gU3F1ZWV6ZSB0aGUgZW50aXJlIHByZXZpZXcg
c28gdGhhdCBtYXJrZXJzIGFyZW4ndCBjdXQgb2ZmLgorICAgICAgICBjb25zdCBzcXVlZXplWFN0
YXJ0ID0gKGl0ZXJhdGlvbkR1cmF0aW9uICYmIHN0YXJ0RGVsYXkpID8gMCA6IG1hcmtlckhlYWRS
YWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVhFbmQgPSAo
aXRlcmF0aW9uRHVyYXRpb24gJiYgZW5kRGVsYXkpID8gMCA6IG1hcmtlckhlYWRSYWRpdXMgKyBt
YXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVlTdGFydCA9IDg7CisKKyAg
ICAgICAgLy8gTW92ZSB0aGUgZWFzaW5nIGxpbmUgZG93biB0byBjdXQgb2ZmIHRoZSBib3R0b20g
Ym9yZGVyLgorICAgICAgICBjb25zdCBhZGp1c3RFYXNpbmdZID0gMC41OworCisgICAgICAgIGxl
dCBzZWNvbmRzUGVyUGl4ZWwgPSB0aGlzLl9jYWNoZWRXaWR0aCAvIHRvdGFsRHVyYXRpb247CisK
KyAgICAgICAgc3RhcnREZWxheSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisgICAgICAgIGl0ZXJhdGlv
bkR1cmF0aW9uID0gKGl0ZXJhdGlvbkR1cmF0aW9uICogc2Vjb25kc1BlclBpeGVsKSAtIHNxdWVl
emVYU3RhcnQgLSBzcXVlZXplWEVuZDsKKyAgICAgICAgZW5kRGVsYXkgKj0gc2Vjb25kc1BlclBp
eGVsOworCisgICAgICAgIGxldCBzdmcgPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFwcGVuZENo
aWxkKGNyZWF0ZVNWR0VsZW1lbnQoInN2ZyIpKTsKKyAgICAgICAgc3ZnLnNldEF0dHJpYnV0ZSgi
dmlld0JveCIsIGAwIDAgJHt0aGlzLl9jYWNoZWRXaWR0aH0gJHtwcmV2aWV3SGVpZ2h0fWApOwor
CisgICAgICAgIGZ1bmN0aW9uIGFkZFRpdGxlKHBhcmVudCwgdGl0bGUpIHsKKyAgICAgICAgICAg
IGxldCB0aXRsZUVsZW1lbnQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgi
dGl0bGUiKSk7CisgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aXRsZTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydERlbGF5KSB7CisgICAgICAgICAgICBsZXQg
c3RhcnREZWxheUNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJn
IikpOworICAgICAgICAgICAgc3RhcnREZWxheUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxh
eSIsICJzdGFydCIpOworCisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUxpbmUgPSBzdGFydERl
bGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAg
ICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgKHByZXZpZXdIZWlnaHQg
KyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAgICAgc3RhcnREZWxheUxpbmUuc2V0QXR0
cmlidXRlKCJ4MiIsIHN0YXJ0RGVsYXkpOworICAgICAgICAgICAgc3RhcnREZWxheUxpbmUuc2V0
QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsKKwor
ICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlFbGVtZW50ID0gc3RhcnREZWxheUNvbnRhaW5lci5h
cHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgc3RhcnRE
ZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkpOworICAgICAgICAg
ICAgc3RhcnREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2aWV3SGVpZ2h0
KTsKKworICAgICAgICAgICAgYWRkVGl0bGUoc3RhcnREZWxheUVsZW1lbnQsIFdJLlVJU3RyaW5n
KCJTdGFydCBEZWxheSAlcyIpLmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMucmVw
cmVzZW50ZWRPYmplY3Quc3RhcnREZWxheSAvIDEwMDApKSk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoZW5kRGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBlbmREZWxheUNvbnRhaW5lciA9IHN2
Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgZW5kRGVs
YXlDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3RhcnRE
ZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgc3F1ZWV6ZVhTdGFydH0sIDApYCk7CisgICAgICAg
ICAgICBlbmREZWxheUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxheSIsICJlbmQiKTsKKwor
ICAgICAgICAgICAgbGV0IGVuZERlbGF5TGluZSA9IGVuZERlbGF5Q29udGFpbmVyLmFwcGVuZENo
aWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICBlbmREZWxheUxpbmUu
c2V0QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsK
KyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngyIiwgZW5kRGVsYXkpOwor
ICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJldmlld0hlaWdo
dCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBlbmREZWxheUVsZW1l
bnQgPSBlbmREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0
IikpOworICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBz
dGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheSk7CisgICAgICAgICAgICBl
bmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2aWV3SGVpZ2h0KTsKKwor
ICAgICAgICAgICAgYWRkVGl0bGUoZW5kRGVsYXlFbGVtZW50LCBXSS5VSVN0cmluZygiRW5kIERl
bGF5ICVzIikuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5lbmREZWxheSAvIDEwMDApKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXRlcmF0
aW9uRHVyYXRpb24pIHsKKyAgICAgICAgICAgIGxldCB0aW1pbmdGdW5jdGlvbiA9IHRoaXMucmVw
cmVzZW50ZWRPYmplY3QudGltaW5nRnVuY3Rpb247CisKKyAgICAgICAgICAgIGxldCBhY3RpdmVE
dXJhdGlvbkNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikp
OworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25Db250YWluZXIuY2xhc3NMaXN0LmFkZCgiYWN0
aXZlIik7CisgICAgICAgICAgICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUo
InRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydERlbGF5ICsgc3F1ZWV6ZVhTdGFydH0sICR7
c3F1ZWV6ZVlTdGFydH0pYCk7CisKKyAgICAgICAgICAgIGNvbnN0IHN0YXJ0WSA9IDA7CisgICAg
ICAgICAgICBjb25zdCBlbmRZID0gcHJldmlld0hlaWdodCAtIHNxdWVlemVZU3RhcnQ7CisgICAg
ICAgICAgICBjb25zdCBoZWlnaHQgPSBlbmRZIC0gc3RhcnRZOworCisgICAgICAgICAgICBmb3Ig
KGxldCBba2V5ZnJhbWVBLCBrZXlmcmFtZUJdIG9mIGtleWZyYW1lcy5hZGphY2VuY2llcygpKSB7
CisgICAgICAgICAgICAgICAgbGV0IHN0YXJ0WCA9IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJh
bWVBLm9mZnNldDsKKyAgICAgICAgICAgICAgICBsZXQgZW5kWCA9IGl0ZXJhdGlvbkR1cmF0aW9u
ICoga2V5ZnJhbWVCLm9mZnNldDsKKyAgICAgICAgICAgICAgICBsZXQgd2lkdGggPSBlbmRYIC0g
c3RhcnRYOworCisgICAgICAgICAgICAgICAgbGV0IGVhc2luZyA9IGtleWZyYW1lQS5lYXNpbmcg
fHwgdGltaW5nRnVuY3Rpb247CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5nQ29udGFpbmVy
ID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgi
ZyIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZWFz
aW5nIik7CisgICAgICAgICAgICAgICAgZWFzaW5nQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJh
bnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0WH0sICR7c3RhcnRZfSlgKTsKKworICAgICAgICAg
ICAgICAgIGxldCB4MSA9IGVhc2luZy5pblBvaW50LnggKiB3aWR0aDsKKyAgICAgICAgICAgICAg
ICBsZXQgeTEgPSAoKDEgLSBlYXNpbmcuaW5Qb2ludC55KSAqIGhlaWdodCkgKyBhZGp1c3RFYXNp
bmdZOworICAgICAgICAgICAgICAgIGxldCB4MiA9IGVhc2luZy5vdXRQb2ludC54ICogd2lkdGg7
CisgICAgICAgICAgICAgICAgbGV0IHkyID0gKCgxIC0gZWFzaW5nLm91dFBvaW50LnkpICogaGVp
Z2h0KSArIGFkanVzdEVhc2luZ1k7CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5nUGF0aCA9
IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJwYXRoIikpOwor
ICAgICAgICAgICAgICAgIGVhc2luZ1BhdGguc2V0QXR0cmlidXRlKCJkIiwgYE0gMCAke2hlaWdo
dCArIGFkanVzdEVhc2luZ1l9IEMgJHt4MX0gJHt5MX0gJHt4Mn0gJHt5Mn0gJHt3aWR0aH0gJHth
ZGp1c3RFYXNpbmdZfSBWICR7aGVpZ2h0ICsgYWRqdXN0RWFzaW5nWX0gWmApOworCisgICAgICAg
ICAgICAgICAgbGV0IHRpdGxlUmVjdCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVh
dGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRy
aWJ1dGUoIndpZHRoIiwgd2lkdGgpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRy
aWJ1dGUoImhlaWdodCIsIGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBhZGRUaXRsZSh0aXRs
ZVJlY3QsIGVhc2luZy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
Zm9yIChsZXQga2V5ZnJhbWUgb2Yga2V5ZnJhbWVzKSB7CisgICAgICAgICAgICAgICAgbGV0IHgg
PSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lLm9mZnNldDsKKworICAgICAgICAgICAgICAg
IGxldCBrZXlmcmFtZUNvbnRhaW5lciA9IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmFwcGVuZENo
aWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVDb250
YWluZXIuY2xhc3NMaXN0LmFkZCgia2V5ZnJhbWUiKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFt
ZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHt4fSwgJHtz
dGFydFl9KWApOworCisgICAgICAgICAgICAgICAgbGV0IGtleWZyYW1lTWFya2VySGVhZCA9IGtl
eWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImNpcmNsZSIpKTsK
KyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtlckhlYWQuc2V0QXR0cmlidXRlKCJyIiwgbWFy
a2VySGVhZFJhZGl1cyk7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVNYXJrZXJMaW5l
ID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIp
KTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtlckxpbmUuc2V0QXR0cmlidXRlKCJ5MSIs
IGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGVSZWN0ID0ga2V5ZnJhbWVDb250
YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAg
ICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ4IiwgLTEgKiAobWFya2VySGVhZFJhZGl1cyAr
IG1hcmtlckhlYWRQYWRkaW5nKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJp
YnV0ZSgieSIsIC0xICogc3F1ZWV6ZVlTdGFydCk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0
LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAobWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRk
aW5nKSAqIDIpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdo
dCIsIGhlaWdodCArIHNxdWVlemVZU3RhcnQpOworCisgICAgICAgICAgICAgICAgYWRkVGl0bGUo
dGl0bGVSZWN0LCBrZXlmcmFtZS5zdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBfaGFuZGxlRWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgX2hhbmRsZVRhcmdldENoYW5nZWQo
ZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisK
KyAgICBfcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudShjb250ZXh0TWVu
dSkKKyAgICB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxv
ZyBBbmltYXRpb24iKSwgKCkgPT4geworICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29s
dmVBbmltYXRpb24odGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1hbmFnZXIuQ29u
c29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgaWYg
KCFyZW1vdGVPYmplY3QpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgICAgIGNvbnN0IHRleHQgPSBXSS5VSVN0cmluZygiU2VsZWN0ZWQgQW5pbWF0aW9uIik7Cisg
ICAgICAgICAgICAgICAgY29uc3QgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyA9IHRydWU7CisgICAg
ICAgICAgICAgICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4
ZWN1dGlvbldpdGhSZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVjaWFsVXNlckxvZ0Ns
YXNzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVGFyZ2V0
RE9NTm9kZSkKKyAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2Rl
KGNvbnRleHRNZW51LCB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKTsKKyAgICB9Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMDRjYTMyNWI4YjE2NjZiYzU5Y2RmMDYwOTk0Y2VmZTIzODY0NjMzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
Ky5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWls
cy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmhlYWRlciA+IC5zdWJ0aXRsZSB7CisgICAg
Y29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQorCisuc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmlt
YXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24geworICAgIGJhY2tncm91bmQtY29sb3I6
IGhzbCgwLCAwJSwgOTclKTsKK30KKworLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRp
b24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0
YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIHsKKyAgICBkaXNwbGF5OiB0YWJsZS1yb3c7Cit9CisK
Ky5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWls
cy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxl
cyAuQ29kZU1pcnJvciB7CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHBhZGRpbmc6IDRweCAwOwor
ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworfQorCitAbWVkaWEgKHByZWZlcnMt
Y29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmlt
YXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAu
ZGV0YWlscy1zZWN0aW9uIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAx
OCUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBh
bmVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcwZDg1OWU3OWUwODQ5Y2Y3YmNjNzA1MThkOTljZGI2MzM3OTQx
YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0wLDAgKzEsMjUxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIEFu
aW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5EZXRhaWxzU2lkZWJhclBhbmVs
Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIoImFuaW1hdGlvbiIs
IFdJLlVJU3RyaW5nKCJBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0g
bnVsbDsKKworICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcCA9IG5ldyBNYXA7Cisg
ICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBpbnNwZWN0KG9iamVjdHMpCisgICAgeworICAg
ICAgICBpZiAoIShvYmplY3RzIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICAgICAgb2JqZWN0
cyA9IFtvYmplY3RzXTsKKworICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG9iamVjdHMuZmluZCgo
b2JqZWN0KSA9PiBvYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOworCisgICAgICAgIHJl
dHVybiAhIXRoaXMuYW5pbWF0aW9uOworICAgIH0KKworICAgIGdldCBhbmltYXRpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbjsKKyAgICB9CisKKyAgICBzZXQgYW5p
bWF0aW9uKGFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIGlmIChhbmltYXRpb24gPT09IHRoaXMu
X2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fYW5p
bWF0aW9uKSB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5l
cihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9u
VGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFu
ZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICB0
aGlzLl9hbmltYXRpb24gPSBhbmltYXRpb24gfHwgbnVsbDsKKworICAgICAgICBpZiAodGhpcy5f
YW5pbWF0aW9uKSB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5l
cihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9u
RWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZl
bnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxl
QW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlz
Lm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFs
TGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAg
ICB0aGlzLl9uYW1lUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3Ry
aW5nKCJOYW1lIikpOworICAgICAgICB0aGlzLl90eXBlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJUeXBlIikpOworICAgICAgICB0aGlzLl90YXJnZXRS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlRhcmdldCIp
KTsKKyAgICAgICAgbGV0IGlkZW50aXR5U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigi
YW5pbWF0aW9uLWlkZW50aXR5IiwgV0kuVUlTdHJpbmcoIklkZW50aXR5IiksIFtuZXcgV0kuRGV0
YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fbmFtZVJvdywgdGhpcy5fdHlwZVJvdywgdGhpcy5fdGFy
Z2V0Um93XSldKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxk
KGlkZW50aXR5U2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl9pdGVyYXRpb25Db3Vu
dFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiSXRlcmF0
aW9ucyIpKTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cgPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IikpOworICAgICAgICB0aGlzLl9p
dGVyYXRpb25EdXJhdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5V
SVN0cmluZygiRHVyYXRpb24iKSk7CisgICAgICAgIGxldCBpdGVyYXRpb25zR3JvdXAgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5faXRlcmF0aW9uQ291bnRSb3csIHRoaXMuX2l0
ZXJhdGlvblN0YXJ0Um93LCB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvd10pOworCisgICAgICAg
IHRoaXMuX3N0YXJ0RGVsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0ku
VUlTdHJpbmcoIlN0YXJ0IERlbGF5IikpOworICAgICAgICB0aGlzLl9lbmREZWxheVJvdyA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRW5kIERlbGF5IikpOwor
ICAgICAgICB0aGlzLl90aW1pbmdGdW5jdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNp
bXBsZVJvdyhXSS5VSVN0cmluZygiRWFzaW5nIikpOworICAgICAgICBsZXQgdGltaW5nR3JvdXAg
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fc3RhcnREZWxheVJvdywgdGhpcy5f
ZW5kRGVsYXlSb3csIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5f
cGxheWJhY2tEaXJlY3Rpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0ku
VUlTdHJpbmcoIkRpcmVjdGlvbiIpKTsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkZpbGwiKSk7CisgICAgICAg
IGxldCBmaWxsRGlyZWN0aW9uR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhp
cy5fcGxheWJhY2tEaXJlY3Rpb25Sb3csIHRoaXMuX2ZpbGxNb2RlUm93XSk7CisKKyAgICAgICAg
bGV0IGVmZmVjdFNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1lZmZl
Y3QiLCBXSS5VSVN0cmluZygiRWZmZWN0IiksIFtpdGVyYXRpb25zR3JvdXAsIHRpbWluZ0dyb3Vw
LCBmaWxsRGlyZWN0aW9uR3JvdXBdKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50
LmFwcGVuZENoaWxkKGVmZmVjdFNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fa2V5
ZnJhbWVzR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cDsKKyAgICAgICAgbGV0IGtl
eWZyYW1lc1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1rZXlmcmFt
ZXMiLCBXSS5VSVN0cmluZygiS2V5ZnJhbWVzIiksIFt0aGlzLl9rZXlmcmFtZXNHcm91cF0pOwor
ICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoa2V5ZnJhbWVzU2Vj
dGlvbi5lbGVtZW50KTsKKworICAgICAgICBjb25zdCBzZWxlY3RhYmxlID0gZmFsc2U7CisgICAg
ICAgIGxldCBiYWNrdHJhY2VUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZShzZWxlY3Rh
YmxlKTsKKyAgICAgICAgYmFja3RyYWNlVHJlZU91dGxpbmUuZGlzY2xvc3VyZUJ1dHRvbnMgPSBm
YWxzZTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlVHJlZUNvbnRyb2xsZXIgPSBuZXcgV0kuQ2Fs
bEZyYW1lVHJlZUNvbnRyb2xsZXIoYmFja3RyYWNlVHJlZU91dGxpbmUpOworCisgICAgICAgIGxl
dCBiYWNrdHJhY2VSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgIGJhY2t0
cmFjZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGJhY2t0cmFjZVRyZWVPdXRsaW5lLmVsZW1lbnQp
OworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
KCJhbmltYXRpb24tYmFja3RyYWNlIiwgV0kuVUlTdHJpbmcoIkJhY2t0cmFjZSIpLCBbbmV3IFdJ
LkRldGFpbHNTZWN0aW9uR3JvdXAoW2JhY2t0cmFjZVJvd10pXSk7CisgICAgICAgIHRoaXMuX2Jh
Y2t0cmFjZVNlY3Rpb24uZWxlbWVudC5oaWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLmNvbnRl
bnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50
KTsKKyAgICB9CisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7
CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgdGhpcy5fcmVmcmVzaElkZW50aXR5U2VjdGlvbigpOworICAgICAgICB0aGlzLl9y
ZWZyZXNoRWZmZWN0U2VjdGlvbigpOworICAgICAgICB0aGlzLl9yZWZyZXNoQmFja3RyYWNlU2Vj
dGlvbigpOworCisgICAgICAgIGZvciAobGV0IGNvZGVNaXJyb3Igb2YgdGhpcy5fY29kZU1pcnJv
clNlY3Rpb25NYXAudmFsdWVzKCkpCisgICAgICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsK
KyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfcmVmcmVzaElkZW50aXR5U2VjdGlvbigp
CisgICAgeworICAgICAgICB0aGlzLl9uYW1lUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmRp
c3BsYXlOYW1lOworICAgICAgICB0aGlzLl90eXBlUm93LnZhbHVlID0gV0kuQW5pbWF0aW9uLmRp
c3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSh0aGlzLl9hbmltYXRpb24uYW5pbWF0aW9uVHlwZSk7
CisKKyAgICAgICAgdGhpcy5fdGFyZ2V0Um93LnZhbHVlID0gbnVsbDsKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoKS50aGVuKChkb21Ob2RlKSA9PiB7CisgICAg
ICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBkb21Ob2RlID8gV0kubGlua2lmeU5vZGVS
ZWZlcmVuY2UoZG9tTm9kZSkgOiBudWxsOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVm
cmVzaEVmZmVjdFNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gMDsK
KyAgICAgICAgY29uc3QgcmVhZE9ubHkgPSB0cnVlOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlv
bkNvdW50Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkg
PyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uQ291bnQudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7
CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2Fu
aW1hdGlvbi5pdGVyYXRpb25TdGFydCkgPyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQu
dG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9u
Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbikgPyBO
dW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbiAv
IDEwMDApIDogbnVsbDsKKworICAgICAgICB0aGlzLl9zdGFydERlbGF5Um93LnZhbHVlID0gdGhp
cy5fYW5pbWF0aW9uLnN0YXJ0RGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2Fu
aW1hdGlvbi5zdGFydERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl9lbmREZWxh
eVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5lbmREZWxheSA/IE51bWJlci5zZWNvbmRzVG9T
dHJpbmcodGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0
aGlzLl90aW1pbmdGdW5jdGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5j
dGlvbiA/IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbi50b1N0cmluZygpIDogbnVsbDsK
KworICAgICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1h
dGlvbi5wbGF5YmFja0RpcmVjdGlvbiA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclBsYXli
YWNrRGlyZWN0aW9uKHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbikgOiBudWxsOwor
ICAgICAgICB0aGlzLl9maWxsTW9kZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5maWxsTW9k
ZSA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckZpbGxNb2RlKHRoaXMuX2FuaW1hdGlvbi5m
aWxsTW9kZSkgOiBudWxsOworCisgICAgICAgIGZvciAobGV0IHNlY3Rpb24gb2YgdGhpcy5fY29k
ZU1pcnJvclNlY3Rpb25NYXAua2V5cygpKQorICAgICAgICAgICAgc2VjdGlvbi5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwg
dGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOwor
ICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5jbGVhcigpOworCisgICAgICAgIGxl
dCBrZXlmcmFtZVNlY3Rpb25zID0gW107CisgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIHRo
aXMuX2FuaW1hdGlvbi5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGxldCByb3dzID0gW107CisK
KyAgICAgICAgICAgIGxldCBrZXlmcmFtZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24o
ImFuaW1hdGlvbi1rZXlmcmFtZS1vZmZzZXQtIiArIGtleWZyYW1lLm9mZnNldCwgTnVtYmVyLnBl
cmNlbnRhZ2VTdHJpbmcoa2V5ZnJhbWUub2Zmc2V0LCBwcmVjaXNpb24pKTsKKyAgICAgICAgICAg
IGtleWZyYW1lU2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50
LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBz
ZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9ucy5wdXNo
KGtleWZyYW1lU2VjdGlvbik7CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcpIHsK
KyAgICAgICAgICAgICAgICBsZXQgc3VidGl0bGUgPSBrZXlmcmFtZVNlY3Rpb24uaGVhZGVyRWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAg
ICAgICAgICAgIHN1YnRpdGxlLmNsYXNzTmFtZSA9ICJzdWJ0aXRsZSI7CisgICAgICAgICAgICAg
ICAgc3VidGl0bGUudGV4dENvbnRlbnQgPSBgICR7ZW1EYXNofSAke2tleWZyYW1lLmVhc2luZy50
b1N0cmluZygpfWA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZS5z
dHlsZSkgeworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yID0g
V0kuQ29kZU1pcnJvckVkaXRvci5jcmVhdGUoY29kZU1pcnJvckVsZW1lbnQsIHsKKyAgICAgICAg
ICAgICAgICAgICAgbW9kZTogImNzcyIsCisgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5OiAi
bm9jdXJzb3IiLAorICAgICAgICAgICAgICAgICAgICBsaW5lV3JhcHBpbmc6IHRydWUsCisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgY29kZU1pcnJvci5zZXRWYWx1ZShrZXlm
cmFtZS5zdHlsZSk7CisKKyAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IG51bGw7CisgICAg
ICAgICAgICAgICAgZnVuY3Rpb24gb3B0aW9uc0ZvclR5cGUodHlwZSkgeworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZFRva2Vuczog
L1xidGFnXGIvLAorICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobWFya2VyLCB2YWx1
ZU9iamVjdCwgdmFsdWVTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
c3dhdGNoID0gbmV3IFdJLklubGluZVN3YXRjaCh0eXBlLCB2YWx1ZU9iamVjdCwgcmVhZE9ubHkp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0VW5pcXVlQm9va21h
cmsobWFya2VyLnJhbmdlLnN0YXJ0UG9zaXRpb24oKS50b0NvZGVNaXJyb3IoKSwgc3dhdGNoLmVs
ZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yQ29s
b3JUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5l
U3dhdGNoLlR5cGUuQ29sb3IpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yR3Jh
ZGllbnRUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5s
aW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWly
cm9yQ3ViaWNCZXppZXJUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5
cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKSk7CisgICAgICAgICAgICAgICAgY3JlYXRl
Q29kZU1pcnJvclNwcmluZ1RleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9y
VHlwZShXSS5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpKTsKKworICAgICAgICAgICAgICAgIGxl
dCByb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgICAgICAgICAgcm93LmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgic3R5bGVzIik7CisgICAgICAgICAgICAgICAgcm93LmVsZW1l
bnQuYXBwZW5kQ2hpbGQoY29kZU1pcnJvckVsZW1lbnQpOworICAgICAgICAgICAgICAgIHJvd3Mu
cHVzaChyb3cpOworCisgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAu
c2V0KGtleWZyYW1lU2VjdGlvbiwgY29kZU1pcnJvcik7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmICghcm93cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBsZXQgZW1wdHlSb3cg
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5vIFN0eWxlcyIpKTsKKyAg
ICAgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7CisgICAgICAgICAgICAg
ICAgcm93cy5wdXNoKGVtcHR5Um93KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAga2V5
ZnJhbWVTZWN0aW9uLmdyb3VwcyA9IFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChyb3dzKV07
CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFrZXlmcmFtZVNlY3Rpb25zLmxlbmd0aCkgeworICAg
ICAgICAgICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93KFdJLlVJU3Ry
aW5nKCJObyBLZXlmcmFtZXMiKSk7CisgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlNZXNz
YWdlKCk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goZW1wdHlSb3cpOworICAg
ICAgICB9CisgICAgICAgIHRoaXMuX2tleWZyYW1lc0dyb3VwLnJvd3MgPSBrZXlmcmFtZVNlY3Rp
b25zOworICAgIH0KKworICAgIF9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigpCisgICAgeworICAg
ICAgICBsZXQgY2FsbEZyYW1lcyA9IHRoaXMuX2FuaW1hdGlvbi5iYWNrdHJhY2U7CisgICAgICAg
IHRoaXMuX2JhY2t0cmFjZVRyZWVDb250cm9sbGVyLmNhbGxGcmFtZXMgPSBjYWxsRnJhbWVzOwor
ICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlkZGVuID0gIWNhbGxGcmFt
ZXMubGVuZ3RoOworICAgIH0KKworICAgIF9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKGV2
ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAgICB9
CisKKyAgICBfaGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24oKTsKKyAgICB9CisKKyAgICBfaGFuZGxl
RGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAg
ICBsZXQgY29kZU1pcnJvciA9IHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmdldChldmVudC50
YXJnZXQpOworICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29u
dGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzQ29udGVudFZpZXcuY3NzCmluZGV4IDRlNWE5MGUxZjAzMTdmMGM0ZWJmNGY3OTk3MDI3
NmM3ZmJkMjdmNTguLmNjMTY2YmQzZTYwZDM4MWE3NWExYTE3OTQzYWJlMjM2NzA3YThiNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKQEAgLTIzLDExICsyMywxMSBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZpZXcuY2FudmFz
Om5vdCgudGFiKSB7CisuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgYmFja2dyb3VuZC1jb2xv
cjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikg
PiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBkaXNw
bGF5OiBmbGV4OwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgIGFsaWduLWl0ZW1z
OiBjZW50ZXI7CkBAIC0zNiwxNyArMzYsMTcgQEAKICAgICBwYWRkaW5nOiAxNXB4OwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgewog
ICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQt
dmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAg
IG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+
IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRj
aGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApAQCAtNTYsNyAr
NTYsNyBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAg
LmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZh
cyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRl
bnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzQ29udGVudFZpZXcuanMKaW5kZXggOWI0ZmQ2ZjZlZDdlMWNiNzYzOTc1MTExMDExNTMyNDY1
NGQ1OGYwMS4uOTkzZGE1MTNmMmRkNTYzM2ZkNzk0ODNlYTRjYTlmZmJhOTZlZmNlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29u
dGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzQ29udGVudFZpZXcuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuQ2FudmFzQ29udGVu
dFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAK
ICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdl
cy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25O
YXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNp
YmlsaXR5UHJpb3JpdHkuTG93OwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlj
a2VkLCB0aGlzLnJlZnJlc2hQcmV2aWV3LCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7
CiAKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5B
Y3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hv
dyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3Jp
ZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJ
LkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9u
Q2xpY2tlZCwgdGhpcyk7CkBAIC03Nyw2ICs3NywyOSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9
IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAg
fSk7CiAgICAgfQogCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAg
ICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIC8vIERyb3Bab25lVmll
dyBkZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpv
bmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBl
cy5pbmNsdWRlcygiRmlsZXMiKTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJv
cFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5z
ZmVyLmZpbGVzOworICAgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3Vs
dCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKICAg
ICAvLyBQcm90ZWN0ZWQKIAogICAgIGluaXRpYWxMYXlvdXQoKQpAQCAtMTYwLDYgKzE4MywxMyBA
QCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKIAogICAgICAgICBpZiAoaXNDYXJkKQogICAgICAgICAgICAgdGhpcy5f
cmVmcmVzaFBpeGVsU2l6ZSgpOworCisgICAgICAgIGlmICghaXNDYXJkKSB7CisgICAgICAgICAg
ICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAgICAg
ICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0kuVUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmciKTsK
KyAgICAgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50Owor
ICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBsYXlvdXQoKQpAQCAtMTkxLDEzICsyMjEsNiBAQCBXSS5DYW52YXNDb250ZW50
VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAg
ICAgICAgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkKCk7CiAgICAgfQogCi0gICAgc2hvd24oKQotICAg
IHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3
KCk7Ci0gICAgfQotCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNo
ZWQoKTsKQEAgLTIyMyw2ICsyNDYsOCBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENh
bnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAKICAg
ICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRp
bmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkLCB0aGlzKTsKKworICAgICAg
ICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQpAQCAtMjkx
LDExICszMTYsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIF9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRC
dXR0b25Db250ZXh0TWVudShjb250ZXh0TWVudSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9j
YW52YXNOb2RlKQotICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5v
ZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUpOwotCi0gICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZFNlcGFyYXRvcigpOwotCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0ku
VUlTdHJpbmcoIkxvZyBDYW52YXMgQ29udGV4dCIpLCAoKSA9PiB7CiAgICAgICAgICAgICBXSS5S
ZW1vdGVPYmplY3QucmVzb2x2ZUNhbnZhc0NvbnRleHQodGhpcy5yZXByZXNlbnRlZE9iamVjdCwg
V0kuUnVudGltZU1hbmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7
CiAgICAgICAgICAgICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCkBAIC0zMDYsNiArMzI2LDExIEBA
IFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJvbGxl
ci5hcHBlbmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJlbW90ZU9iamVjdCwg
YWRkU3BlY2lhbFVzZXJMb2dDbGFzcyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisK
KyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAgaWYgKHRo
aXMuX2NhbnZhc05vZGUpCisgICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9y
RE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7CiAgICAgfQogCiAgICAgX3No
b3dHcmlkQnV0dG9uQ2xpY2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcuY3NzCmluZGV4IDEwZjM3YzA0NmIwYzJhMTI4MmM1ZWM5OWRjNmNiOTkwYjIyMzZjNWYu
LjFjNmQ2NDMxZjliN2Q2MzZlOGYzZThjZTE1YzZiYjJhNjViMTM2YzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCkBAIC0yNiwyOSArMjYsMjkgQEAKIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl
cjsKICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBo
c2woMCwgMCUsIDkwJSk7Ci0KLSAgICAtLWl0ZW0tbWFyZ2luOiAxMHB4OworICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHggMDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZmxleC1ncm93OiAwOwotICAg
IG1hcmdpbjogdmFyKC0taXRlbS1tYXJnaW4pOworICAgIGZsZXgtc2hyaW5rOiAwOwogICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBtYXJnaW46IDRweDsKICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo
LS1ib3JkZXItY29sb3IpOwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMsCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMsCisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZp
ZXcgPiBpbWcgewogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZl
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMu
cmVjb3JkaW5nLWFjdGl2ZSB7CiAgICAgYm9yZGVyLWNvbG9yOiByZWQ7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVh
ZGVyLCBmb290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAgIGRpc3BsYXk6IGZs
ZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICBmbGV4LXNocmluazogMDsKQEAgLTU5
LDEzNiArNTksMTM2IEBACiAgICAgY3Vyc29yOiBkZWZhdWx0OwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIHsK
ICAgICBmb250LXNpemU6IDEzcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgeworLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmct
YWN0aXZlID4gaGVhZGVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4g
LnRpdGxlcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyID4gLnNpemUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnNpemUgewog
ICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7Cisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3Jh
eS1kYXJrKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAg
IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgLnN1YnRpdGxl
OjpiZWZvcmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9yZSB7CiAgICAgY29udGVudDogIlwwMEEw
XDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUg
PiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50
aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB3aGl0ZTsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhl
YWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRp
dGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXNlbGVjdGVkLXNlY29uZGFyeS10
ZXh0LWNvbG9yKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+
IC5pdGVtIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KCk7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLm5hdmln
YXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGFsaWduLWl0ZW1zOiBp
bml0aWFsOwogICAgIGJvcmRlcjogbm9uZTsKICAgICBvcGFjaXR5OiAwOwogICAgIHRyYW5zaXRp
b246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3JkaW5n
LWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJlY29y
ZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBvcGFjaXR5OiAx
OwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3Jk
aW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3Rh
cnQtc3RvcC5kaXNhYmxlZCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7CiAgICAgZmlsdGVy
OiBncmF5c2NhbGUoKTsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkg
PiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3Qo
LmRpc2FibGVkKTpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3ZlciB7
CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDk1JSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRp
c2FibGVkKTphY3RpdmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHsK
ICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoODAlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVz
cy12aWV3LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3MtdmlldywKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7
CiAgICAgaGVpZ2h0OiAyODBweDsKICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDIw
MG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIs
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3OmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAorLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2
aWV3OmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CiAgICAg
ZGlzcGxheTogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIGJv
cmRlci1yYWRpdXM6IDRweDsKICAgICBib3gtc2hhZG93OiAxcHggMnB4IDZweCByZ2JhKDAsIDAs
IDAsIDAuNTgpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3IHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IC5t
ZXNzYWdlLXRleHQtdmlldyB7CiAgICAgcG9zaXRpb246IHN0YXRpYzsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3Rl
ciB7CiAgICAgYm9yZGVyLXRvcDogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1z
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAg
IGFsaWduLWl0ZW1zOiBjZW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IDpt
YXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVs
YXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CiAg
ICAgd2lkdGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0
ZWQtaXRlbXMgPiBpbWcgKyBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcg
KyBpbWcgewogICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXct
cmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVt
cyA+IC52aWV3LXNoYWRlciB7CiAgICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMv
RG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVy
ID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CiAgICAgY29udGVudDog
dXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxleGlibGUtc3BhY2Ug
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CiAgICAgZmxleDogMTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9y
eS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAtd2Via2l0LXBhZGRpbmctc3RhcnQ6
IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgewogICAgIGhlaWdodDogMzQw
cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUt
b3V0bGluZSB7CiAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVl
LW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUt
b3V0bGluZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKICAgICBjb250ZW50OiB1cmwoLi4v
SW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCkBAIC0yMDksNDMgKzIwOSwzOSBAQAogfQogCiBA
bWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKLSAgICB9
Ci0KLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cywKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IC5wcmV2aWV3ID4gaW1nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAK
LSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0gICAgLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7
CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCisgICAgLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3Omhv
dmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci10
ZXJ0aWFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CisgICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsK
ICAgICAgICAgLS1yZWNvcmRpbmctY29sb3I6IGhzbCgwLCAxMDAlLCAzOSUpOwogICAgICAgICBi
b3JkZXItY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFj
dGl2ZSA+IGhlYWRlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+
IC50aXRsZXMgPiAudGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICAg
ICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+
IC5zdWJ0aXRsZSwKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4g
LnN1YnRpdGxlLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAgICAgY29sb3I6IHZhcigt
LXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAudmlldy1yZWNvcmRpbmcg
eworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBmb290ZXIgLnZpZXctcmVjb3JkaW5nIHsKICAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsK
ICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7
CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAg
ICAgIGNvbG9yOiB1bnNldDsKICAgICAgICAgb3BhY2l0eTogMC41CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZp
ZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKaW5kZXggNjM5YjM2ZDg1OWJiN2NmM2Mz
NDQ0NWFhMGViNzQ5NTQzM2M0MTA5OC4uMGQxNjVkZDI2OGQ0MzcwMjhhNDNkMTQ5ZTA3Y2ZhODM4
YjRkZTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCkBA
IC0yOSw3ICsyOSw4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgewogICAgICAgICBj
b25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxl
Y3Rpb24pOwogCi0gICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5jcmVhdGVNZXNz
YWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKyAgICAgICAg
bGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkID8g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgOiBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXco
V0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKwogICAgICAgICBsZXQgZGVzY3Jp
cHRpb25FbGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpKTsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LmNsYXNzTmFt
ZSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVu
dCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBieSBz
Y3JpcHQgb3IgQ1NTLiIpOwpAQCAtNjIsMjEgKzYzLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250
ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xs
ZWMKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlY29yZGluZ0F1dG9DYXB0dXJlQ2hlY2tib3hM
YWJlbChmcmFtZUNvdW50KTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQtcmVj
b3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwg
MTUpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sdGlwID0g
V0kuVUlTdHJpbmcoIkltcG9ydCIpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0
aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdl
QW5kVGV4dDsKLQotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBu
ZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2gtYWxsIiwgV0kuVUlTdHJpbmcoIlJl
ZnJlc2ggYWxsIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwotICAgICAgICB0
aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwotICAgICAg
ICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoUHJldmlld3Ms
IHRoaXMpOwotCi0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBu
ZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJp
bmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJl
bmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7
Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0g
ISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOwotICAgICAgICB0aGlzLl9zaG93R3Jp
ZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fc2hv
d0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmln
YXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhp
cyk7Ci0KICAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0
b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0
b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xp
Y2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcg
PSBudWxsOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZSA9IG51bGw7
CkBAIC05MCwxNyArNzcsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKIAogICAgIGdldCBu
YXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFt0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9u
SXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtXTsKLSAgICAgICAgaWYgKFdJLkNhbnZhc01hbmFnZXIuc3VwcG9y
dHNSZWNvcmRpbmdBdXRvQ2FwdHVyZSgpKQotICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnVu
c2hpZnQodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRp
dmlkZXJOYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsK
KyAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0pCisg
ICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVy
ZU5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKICAgICB9
CiAKLSAgICBoaWRkZW4oKQorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKICAgICB7
Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLQotICAgICAg
ICBzdXBlci5oaWRkZW4oKTsKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZp
ZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRl
bnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNr
ZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAtMTE1LDIzICsx
MDMsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMucmVtb3Zl
U3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7CiAgICAgICAgICAgICB0
aGlzLmFkZFN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcpOwogICAgICAg
ICB9Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7CiAgICAgfQogCiAg
ICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQogICAgIHsKICAgICAgICAgY29udGVu
dFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5fY29u
dGVudFZpZXdNb3VzZUVudGVyKTsKICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVF
dmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUxlYXZlKTsK
LQotICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICB9CiAKICAgICBh
dHRhY2hlZCgpCiAgICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwogCi0gICAgICAgIFdJ
LnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50
LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZVNob3dJbWFnZUdyaWQsIHRoaXMpOwogICAgICAgICBXSS5z
ZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQuYWRkRXZlbnRMaXN0ZW5l
cihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1
dG9DYXB0dXJlRW5hYmxlZENoYW5nZWQsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52
YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0
aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJl
RnJhbWVDb3VudENoYW5nZWQsIHRoaXMpOwogCkBAIC0xNDEsNDkgKzEyNCwyNyBAQCBXSS5DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91
dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJ
LmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQogICAgICAgICAgICAgdGhpcy5fYWRkU2F2
ZWRSZWNvcmRpbmcocmVjb3JkaW5nKTsKKworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRo
aXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5yZWZyZXNoUHJldmlldygp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQogICAgIHsKKyAgICAgICAgV0ku
ZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCiAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBX
SS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQucmVtb3ZlRXZl
bnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFz
UmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVs
bCwgdGhpcyk7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRM
aXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwog
ICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAotICAgIGdldCBfaXRlbU1hcmdpbigpCi0gICAgewot
ICAgICAgICByZXR1cm4gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVt
ZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCItLWl0ZW0tbWFyZ2luIikpOwotICAgIH0KLQotICAgIF9y
ZWZyZXNoUHJldmlld3MoKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgY2FudmFzQ29udGVudFZp
ZXcgb2YgdGhpcy5zdWJ2aWV3cykKLSAgICAgICAgICAgIGNhbnZhc0NvbnRlbnRWaWV3LnJlZnJl
c2hQcmV2aWV3KCk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpCi0gICAg
ewotICAgICAgICBsZXQgaGFzSXRlbXMgPSAhIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZTsK
LSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBoYXNJ
dGVtczsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVk
ID0gaGFzSXRlbXM7Ci0gICAgfQotCi0gICAgX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZChldmVudCkK
LSAgICB7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWUgPSAhdGhpcy5f
c2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7Ci0gICAgfQotCi0gICAgX3Vw
ZGF0ZVNob3dJbWFnZUdyaWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25O
YXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFs
dWU7Ci0gICAgfQotCiAgICAgX2NvbnRlbnRWaWV3TW91c2VFbnRlcihldmVudCkKICAgICB7CiAg
ICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0
KTsKQEAgLTMwMSw4ICsyNjIsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xh
c3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAg
ICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5lbGVtZW50KTsKICAgICAgICAgfQogCi0g
ICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVF
bGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRp
bmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICBsZXQgcmVjb3Jk
aW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0s
IHJlY29yZGluZy5kaXNwbGF5TmFtZSwgV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVjb3Jk
aW5nVHlwZShyZWNvcmRpbmcudHlwZSksIHJlY29yZGluZyk7CiAgICAgICAgIHJlY29yZGluZ1Ry
ZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRp
bmdzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwppbmRleCBjMmJiZGMwMmU5ZTg5NmI0MmIxYjYz
ZDMzNGJjZmYyMmQ4Mjc0YTE5Li5jNzExZmFmNDYyYjc2ZTVlOTA4Mjc0N2YxN2Y5MmVhODZiMWZi
MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCkBAIC0yMzcsMTAgKzIzNyw4IEBA
IFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRz
IFdJLk5hdmlnYXRpb25TaWRlYmFyUGFuCiAKICAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3Qo
cmVwcmVzZW50ZWRPYmplY3QpCiAgICAgewotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgICAgIHJldHVybiBzdXBlci5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVz
ZW50ZWRPYmplY3QpOworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXMKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuUmVjb3JkaW5nOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZp
ZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
VGFiQ29udGVudFZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWRhYjVl
Zjk5NzlkNjJiODExNTk4OWE5MTY0MDQxM2M3MmE4Y2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDU1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0gICAgY29udGVudDogdXJs
KC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5j
YW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMtMmQgLmljb24gewot
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKLX0KLQotLmNvbnRlbnQt
dmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXM6bWF0Y2hlcygu
d2ViZ2wsIC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24gewotICAgIGNvbnRlbnQ6
IHVybCguLi9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2Fu
dmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7Ci0gICAgY29u
dGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50
YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXItcHJvZ3JhbSA+IC5pY29u
IHsKLSAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBuZykg
MXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKLX0KLQotQG1lZGlhIChw
cmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcudGFiLmNhbnZh
cyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKLSAgICAg
ICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LnRhYi5j
YW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwKLSAgICAuY29udGVu
dC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5p
Y29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1RhYkNvbnRlbnRWaWV3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTFkYmU0
ODAxZTU1N2JjN2MyMGU1MmVjNzdjODA5OTlkNTZhOGQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjk4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5DYW52YXNUYWJDb250ZW50VmlldyA9IGNsYXNzIENh
bnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYWJDb250ZW50Vmll
dwotewotICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoIXJlcHJlc2VudGVkT2JqZWN0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQ2FudmFzKTsKLQotICAgICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVy
YWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnRhYkluZm8o
KSk7Ci0KLSAgICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yID0g
V0kuQ2FudmFzU2lkZWJhclBhbmVsOwotICAgICAgICBjb25zdCBkZXRhaWxzU2lkZWJhclBhbmVs
Q29uc3RydWN0b3JzID0gW1dJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCwgV0ku
UmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5DYW52YXNEZXRhaWxzU2lkZWJh
clBhbmVsXTsKLSAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKLSAgICAg
ICAgc3VwZXIoImNhbnZhcyIsIFsiY2FudmFzIl0sIHRhYkJhckl0ZW0sIG5hdmlnYXRpb25TaWRl
YmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycywgZGlz
YWJsZUJhY2tGb3J3YXJkKTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uID0gbmV3
IFdJLkNhbnZhc0NvbGxlY3Rpb247Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUg
PSBuZXcgV0kuVHJlZU91dGxpbmU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFs
bG93c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRs
aW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hh
bmdlLCB0aGlzLl9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7Ci0K
LSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVs
ZW1lbnQoImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIpLCBudWxsLCB0
aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUu
YXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5f
c2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJlZUVsZW1lbnQoV0ku
VUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSwgV0kuUmVjb3JkaW5nQ29sbGVjdGlvbik7Ci0g
ICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7Ci0g
ICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRS
ZWNvcmRpbmdzVHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0ID0g
bmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3Bh
Y2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNvcmRT
aG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu
X3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRT
aW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRT
aG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRo
aXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVG
cmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKLSAgICAgICAg
dGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdGFiSW5m
bygpCi0gICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgaW1hZ2U6ICJJbWFnZXMv
Q2FudmFzLnN2ZyIsCi0gICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJpbmcoIkNhbnZhcyIpLAot
ICAgICAgICB9OwotICAgIH0KLQotICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52YXMiKTsKLSAgICB9
Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmplY3Qo
cmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2FudmFzVHJl
ZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICB9Ci0KLSAg
ICBnZXQgdHlwZSgpCi0gICAgewotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZp
ZXcuVHlwZTsKLSAgICB9Ci0KLSAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGdldCBtYW5hZ2VzTmF2
aWdhdGlvblNpZGViYXJQYW5lbCgpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0KLSAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCi0gICAg
ewotICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMK
LSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29s
bGVjdGlvbgotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5S
ZWNvcmRpbmcKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
U2hhZGVyUHJvZ3JhbTsKLSAgICB9Ci0KLSAgICBzaG93bigpCi0gICAgewotICAgICAgICBzdXBl
ci5zaG93bigpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gZmFs
c2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSBm
YWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRW
aWV3KQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFz
Q29sbGVjdGlvbik7Ci0gICAgfQotCi0gICAgaGlkZGVuKCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2lu
Z2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgc3VwZXIuaGlkZGVu
KCk7Ci0gICAgfQotCi0gICAgY2xvc2VkKCkKLSAgICB7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuZGlzYWJsZSgpOwotCi0gICAgICAgIHN1cGVyLmNsb3NlZCgpOwotICAgIH0KLQotICAgIHJl
c3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IGlt
cGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgot
ICAgIH0KLQotICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAgICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBj
b21wbGV0ZS4KLSAgICB9Ci0KLSAgICBhc3luYyBoYW5kbGVGaWxlRHJvcChmaWxlcykKLSAgICB7
Ci0gICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQp
ID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7Ci0gICAgfQotCi0gICAg
Ly8gUHJvdGVjdGVkCi0KLSAgICBhdHRhY2hlZCgpCi0gICAgewotICAgICAgICBzdXBlci5hdHRh
Y2hlZCgpOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5D
YW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwg
dGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQs
IHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2
ZWRPclN0b3BwZWQsIHRoaXMpOwotICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihX
SS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2
ZWRPclN0b3BwZWQsIHRoaXMpOwotCi0gICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzZXM7Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZh
c0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgIGlmICghY2FudmFzZXMuaW5jbHVkZXMoY2FudmFz
KSkKLSAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKLSAgICAgICAg
fQotCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBjYW52YXNlcykgewotICAgICAgICAgICAg
aWYgKCF0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQotICAgICAgICAgICAgICAg
IHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fc2F2
ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgZm9yIChs
ZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQotICAgICAg
ICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHByZXNzU2hvd1JlY29yZGlu
ZzogdHJ1ZX0pOwotICAgIH0KLQotICAgIGRldGFjaGVkKCkKLSAgICB7Ci0gICAgICAgIFdJLkNh
bnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0KLSAg
ICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBf
YWRkQ2FudmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1l
bnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZhcykpOwotICAgICAg
ICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52YXMpOwotCi0gICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7Ci0gICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWUsCi0gICAg
ICAgIH07Ci0KLSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdD
b2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0
aW9ucyk7Ci0gICAgfQotCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCi0gICAgewotICAgICAg
ICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1l
bnQoY2FudmFzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQsICJNaXNzaW5n
IHRyZWUgZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7Ci0KLSAgICAgICAgY29uc3Qgc3Vw
cHJlc3NOb3RpZmljYXRpb24gPSB0cnVlOwotICAgICAgICB0cmVlRWxlbWVudC5kZXNlbGVjdChz
dXBwcmVzc05vdGlmaWNhdGlvbik7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQu
cmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rp
b24ucmVtb3ZlKGNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRo
aXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAoY3VycmVu
dENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCi0gICAgICAgICAg
ICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAg
ICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0Nv
bnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhjdXJyZW50Q29udGVu
dFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQotICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nl
ci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRWaWV3KCk7Ci0KLSAgICAg
ICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFu
ZWw7Ci0gICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGluc3RhbmNlb2YgV0kuQ2Fu
dmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudmlzaWJsZSkKLSAgICAg
ICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVzZW50ZWRPYmplY3RzKCk7
Ci0KLSAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsKLSAgICB9Ci0KLSAg
ICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQotICAgIHsKLSAgICAgICAg
aWYgKCFyZWNvcmRpbmcuc291cmNlKSB7Ci0gICAgICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51
bGw7Ci0gICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJh
bFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0
bGUsIHJlY29yZGluZyk7Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxl
bWVudC5oaWRkZW4gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1Ry
ZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcpCi0gICAgICAgICAg
ICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOwotICAgIH0KLQotICAgIF9o
YW5kbGVDYW52YXNBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FkZENhbnZhcyhl
dmVudC5kYXRhLmNhbnZhcyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZl
bnQpCi0gICAgewotICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQuZGF0YS5jYW52YXMp
OwotICAgIH0KLQotICAgIF9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShldmVu
dCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVl
T3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAoIXNlbGVjdGVkRWxlbWVu
dCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3Qg
PSBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAgIGlmICghdGhpcy5j
YW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7Ci0gICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwg
cmVwcmVzZW50ZWRPYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAg
ICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOwotICAg
IH0KLQotICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKLSAgICB7Ci0g
ICAgICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50
LmRhdGE7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGxldCBvcHRpb25zID0ge307Ci0KLSAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0
ZWQgcmVjb3JkaW5ncy4KLSAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVk
KQotICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVk
QnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5z
b21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5SZWNvcmRpbmcpOwotCi0gICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9w
dGlvbnMpOwotICAgIH0KLQotICAgIF9oYW5kbGVTcGFjZShldmVudCkKLSAgICB7Ci0gICAgICAg
IGlmIChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9u
U2lkZWJhclBhbmVsLmNhbnZhczsKLSAgICAgICAgaWYgKCFjYW52YXMpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCi0gICAgICAgICAg
ICBjYW52YXMuc3RvcFJlY29yZGluZygpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGxl
dCBzaW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAgICBjYW52YXMuc3Rh
cnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKLSAgICB9Ci19OwotCi1XSS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBl
ID0gImNhbnZhcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRleCBm
ZTMzZTdhY2Q5ZjE2MWIyY2MwY2U3MWNkNTI0YTQ5MWFkZDMzYzJiLi41Y2U4ZGIwZjMwOGRkOTg5
ODRiMzFiYjk0Y2M1Zjc5YzM5NWMyZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50
Vmlldy5jc3MKQEAgLTMzLDE0ICszMywxNyBAQAogICAgIGZsZXgtZ3JvdzogMTsKIH0KIAotLmNv
bnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcgewotICAgIG91dGxpbmU6
IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ci19Ci0KLS5jb250ZW50LXZpZXcuY29s
bGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsKLSAgICBvdXRsaW5lLWNvbG9yOiB2
YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCi19Ci0KIC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+
IC5jb250ZW50LXZpZXdbaGlkZGVuXSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KKworLmNvbnRl
bnQtdmlldy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2FnZS10ZXh0LXZpZXcp
IHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAg
anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICB3
aWR0aDogMTAwJTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAxM3B4
OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25D
b250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRleCAwNTQ3NDE2ODFjODE4YmU1YmNhYTVkNmZm
MTlkNTM3MjliN2IzODY2Li5kNGU2MWUwODI1NTBjYTVkMzg2MDIyZGVmMGVmYjM5NTVlOGNiNTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0yOCw3ICsyOCw3IEBA
IFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgY29uc3RydWN0b3IoY29sbGVjdGlvbiwgY29udGVu
dFZpZXdDb25zdHJ1Y3RvciwgY29udGVudFBsYWNlaG9sZGVyKQogICAgIHsKICAgICAgICAgY29u
c29sZS5hc3NlcnQoY29sbGVjdGlvbiBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pOwotICAgICAg
ICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlld0NvbnN0cnVjdG9yIGluc3RhbmNlb2YgV0kuQ29u
dGVudFZpZXcpOworICAgICAgICBjb25zb2xlLmFzc2VydCghY29udGVudFZpZXdDb25zdHJ1Y3Rv
ciB8fCBjb250ZW50Vmlld0NvbnN0cnVjdG9yLnByb3RvdHlwZSBpbnN0YW5jZW9mIFdJLkNvbnRl
bnRWaWV3KTsKIAogICAgICAgICBzdXBlcihjb2xsZWN0aW9uKTsKIApAQCAtMzgsNyArMzgsNiBA
QCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJF
bGVtZW50ID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvciA9IGNv
bnRlbnRWaWV3Q29uc3RydWN0b3I7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwID0gbmV3
IE1hcDsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAgPSBuZXcgV2Vha01hcDsKICAgICAg
ICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2VsZWN0aW9uRW5h
YmxlZCA9IGZhbHNlOwogICAgIH0KQEAgLTgzLDE5ICs4MiwyNSBAQCBXSS5Db2xsZWN0aW9uQ29u
dGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50
VmlldwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKICAgICB9CiAKLSAgICBz
ZXRTZWxlY3RlZEl0ZW0oaXRlbSkKKyAgICBnZXQgc2VsZWN0ZWRJdGVtKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07CisgICAgfQorCisgICAgc2V0IHNlbGVjdGVk
SXRlbShpdGVtKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fc2VsZWN0aW9u
RW5hYmxlZCwgIkF0dGVtcHRlZCB0byBzZXQgc2VsZWN0ZWQgaXRlbSB3aGVuIHNlbGVjdGlvbiBp
cyBkaXNhYmxlZC4iKTsKICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBjb250ZW50VmlldyA9IHRoaXMuX2NvbnRl
bnRWaWV3TWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcs
ICJNaXNzaW5nIGNvbnRldCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOwotICAgICAgICBpZiAoIWNv
bnRlbnRWaWV3KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRoaXMuX3NlbGVjdEl0
ZW0oaXRlbSk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCgpOworCisgICAgICAgIGlmIChpdGVtKSB7CisgICAgICAgICAgICBsZXQgY29udGVudFZp
ZXcgPSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7CisgICAgICAgICAgICBjb25zb2xl
LmFzc2VydChjb250ZW50VmlldywgIk1pc3NpbmcgY29udGV0IHZpZXcgZm9yIGl0ZW0uIiwgaXRl
bSk7CisgICAgICAgICAgICBpZiAoY29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgY29udGVu
dFZpZXcuZWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7CisgICAgICAgIH0KICAgICB9
CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTEyMCwyMCArMTI1LDkgQEAgV0kuQ29sbGVjdGlvbkNv
bnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKIAogICAgICAgICBsZXQgY29udGVudFZpZXcgPSBuZXcgdGhpcy5fY29udGVudFZpZXdD
b25zdHJ1Y3RvcihpdGVtLCB0aGlzLmNvbnRlbnRWaWV3Q29uc3RydWN0b3JPcHRpb25zKTsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmll
dyk7Ci0KLSAgICAgICAgbGV0IGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7Ci0gICAgICAgICAg
ICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKLSAg
ICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVtKTsKLSAgICAgICAg
fTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3Qg
PT09IGl0ZW0pOwogCiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwLnNldChpdGVtLCBjb250
ZW50Vmlldyk7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLnNldChpdGVtLCBoYW5kbGVD
bGljayk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBoYW5kbGVDbGljayk7CiAKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGNvbnRlbnRWaWV3
KTsKICAgICAgICAgdGhpcy5jb250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3KTsKQEAgLTE2OSwx
NCArMTYzLDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBjb250ZW50Vmlldy5y
ZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCi0gICAgICAgIGxldCBoYW5k
bGVDbGljayA9IHRoaXMuX2hhbmRsZUNsaWNrTWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoaGFuZGxlQ2xpY2spOwotCi0gICAgICAgIGlmIChoYW5kbGVDbGljaykgewotICAg
ICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIs
IGhhbmRsZUNsaWNrKTsKLSAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLmRlbGV0ZShp
dGVtKTsKLSAgICAgICAgfQotCiAgICAgICAgIGlmICghdGhpcy5zdWJ2aWV3cy5sZW5ndGgpCiAg
ICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKICAgICB9CkBAIC0yMDAs
NiArMTg2LDggQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgICAgICB0aGlzLl9j
b250ZW50UGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5fY29udGVudFBsYWNlaG9sZGVyOwogICAg
ICAgICB9CiAKKyAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudC5jbGFzc0xp
c3QuYWRkKCJwbGFjZWhvbGRlciIpOworCiAgICAgICAgIGlmICghdGhpcy5fY29udGVudFBsYWNl
aG9sZGVyRWxlbWVudC5wYXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQpOwogICAgIH0KQEAgLTIxMiwx
MCArMjAwLDExIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBpbml0aWFsTGF5b3V0KCkK
ICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlz
Ll9jb250ZW50Vmlld0NvbnN0cnVjdG9yKSB7CisgICAgICAgIGlmICh0aGlzLl9jb250ZW50Vmll
d0NvbnN0cnVjdG9yKQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgaWYgKCF0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0
b3IpCiAgICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGF0dGFjaGVkKCkKQEAgLTI5Miw2
ICsyODEsMzAgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHNlbGVjdGVkQ29u
dGVudFZpZXcuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwogICAgICAgICB9CiAK
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LkV2ZW50LlNlbGVjdGVkSXRlbUNoYW5nZWQpOwogICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNl
bnRlZE9iamVjdHNEaWRDaGFuZ2UpOwogICAgIH0KKworICAgIF9oYW5kbGVDbGljayhldmVudCkK
KyAgICB7CisgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBbaXRlbSwgY29udGVudFZp
ZXddIG9mIHRoaXMuX2NvbnRlbnRWaWV3TWFwKSB7CisgICAgICAgICAgICBpZiAoY29udGVudFZp
ZXcuZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7CisgICAgICAgICAgICAgICAgaWYg
KHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVj
dEl0ZW0oaXRlbSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBX
SS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRlbSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVu
YWJsZWQpCisgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOworICAgIH0KK307CisK
K1dJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVudCA9IHsKKyAgICBTZWxlY3RlZEl0ZW1DaGFu
Z2VkOiAiY29sbGVjdGlvbi1jb250ZW50LXZpZXctc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkIiwKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbnRlbnRWaWV3LmpzCmluZGV4IGRmOTEyZGQ1NmZhMDdkZjk0OGYwZDdmN2FmMGQ3YzZkMWI3
OWEyZjYuLjI5NmMyYTU0MjNhMGY2OTFlYWM3ZDJkMGU5MzYwMGY1MTU0ZjBkZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRl
bnRWaWV3LmpzCkBAIC02MCw5ICs2MCw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzQ29udGVu
dFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAotICAgICAgICBpZiAo
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KHJlcHJlc2VudGVk
T2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7Ci0KICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAgICAgICAgICAgIHJldHVybiBuZXcgV0ku
U2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50
cyk7CiAKQEAgLTE4Miw2ICsxNzksOSBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5BdWRpdFRlc3RHcm91cCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5BdWRpdFRl
c3RHcm91cENvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAK
KyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb25Db250ZW50VmlldyhyZXByZXNlbnRl
ZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOworCiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNv
bGxlY3Rpb25Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwog
CkBAIC0yNzMsOCArMjczLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBl
eHRlbmRzIFdJLlZpZXcKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFz
Q29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlRp
bWVsaW5lUmVjb3JkaW5nKQpAQCAtMzE4LDEwICszMTYsMTQgQEAgV0kuQ29udGVudFZpZXcgPSBj
bGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZSB8fCByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwCiAgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Bbmlt
YXRpb24pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICBpZiAodHlwZW9mIHJlcHJlc2VudGVkT2JqZWN0ID09PSAic3RyaW5nIiB8fCBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykKICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3RbV0kuQ29udGVudFZpZXcuaXNWaWV3
YWJsZVN5bWJvbF0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIApAQCAtNTEyLDQgKzUxNCw1IEBAIFdJLkNvbnRlbnRWaWV3LkV2ZW50ID0g
ewogICAgIE5hdmlnYXRpb25JdGVtc0RpZENoYW5nZTogImNvbnRlbnQtdmlldy1uYXZpZ2F0aW9u
LWl0ZW1zLWRpZC1jaGFuZ2UiCiB9OwogCitXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9s
ID0gU3ltYm9sKCJpcy12aWV3YWJsZSIpOwogV0kuQ29udGVudFZpZXcuQ29udGVudFZpZXdGb3JS
ZXByZXNlbnRlZE9iamVjdFN5bWJvbCA9IFN5bWJvbCgiY29udGVudC12aWV3LWZvci1yZXByZXNl
bnRlZC1vYmplY3QiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKaW5k
ZXggZTVhNWZlYzFlYWJiNWMwOTcyY2ZhMDUzZDUzNGMzNjAwOWUxYjc2Zi4uN2VkMGM4MmViM2I3
MWVlYjZiYmIxZjk3ZTk3OTBmNmJiYmM1NTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rp
b25TaW1wbGVSb3cuanMKQEAgLTk2LDcgKzk2LDcgQEAgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVS
b3cgPSBjbGFzcyBEZXRhaWxzU2VjdGlvblNpbXBsZVJvdyBleHRlbmRzIFdJLkRldGFpbHNTZWMK
ICAgICB7CiAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgIiI7CiAKLSAgICAgICAgaWYg
KHRoaXMuX3ZhbHVlKSB7CisgICAgICAgIGlmICh0aGlzLl92YWx1ZSB8fCB0aGlzLl92YWx1ZSA9
PT0gMCkgewogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV0kuRGV0
YWlsc1NlY3Rpb25TaW1wbGVSb3cuRW1wdHlTdHlsZUNsYXNzTmFtZSk7CiAKICAgICAgICAgICAg
IC8vIElmIHRoZSB2YWx1ZSBoYXMgc3BhY2UgY2hhcmFjdGVycyB0aGF0IGNhdXNlIHdvcmQgd3Jh
cHBpbmcgdGhlbiB3ZSBkb24ndCBuZWVkIHRoZSBkYXRhIGNsYXNzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBmMDViMGI0NTRk
MWUxZTAyN2Y5M2E2YjlmNzMzMTA0ZjRhOWE1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5jc3MKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuZ3Jh
cGhpY3Mtb3ZlcnZpZXcgeworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQt
Y29sb3ItY29udGVudCk7CisgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgIHBhZGRpbmctYm90
dG9tOiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIGJhY2tncm91bmQtY29sb3I6
IGhzbCgwLCAwJSwgOTAlKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+
IHNlY3Rpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBpbmhlcml0OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlv
bjpub3QoOmZpcnN0LWNoaWxkKSB7CisgICAgbWFyZ2luLXRvcDogMjBweDsKK30KKworLmNvbnRl
bnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsKKyAgICBkaXNw
bGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgcG9zaXRpb246IHN0aWNr
eTsKKyAgICB0b3A6IDA7CisgICAgei1pbmRleDogMTsKKyAgICBtaW4taGVpZ2h0OiB2YXIoLS1u
YXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogOHB4Owor
ICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTsKKyAgICBib3JkZXItYm90dG9t
OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFw
aGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKSA+IC5oZWFkZXIgewor
ICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiBoMSB7Cisg
ICAgbWFyZ2luOiAwOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2Vj
dGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIGZsZXgtZ3JvdzogMTsKKyAg
ICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOworICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cit9
CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBy
aWdodDogMDsKKyAgICBib3R0b206IDA7CisgICAgbGVmdDogMDsKK30KKworQG1lZGlhIChwcmVm
ZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3Zl
cnZpZXcgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE0JSk7CisgICAg
fQorCisgICAgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVh
ZGVyIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAyMSUpOworICAgIH0K
K30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJjM2IwNzVhYjljNDM2OTlmNjFjN2U3ZDE5OTY1MjBjZWFlNWY1MTAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFw
aGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBHcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKCkK
KyAgICB7CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlz
dC5hZGQoImdyYXBoaWNzLW92ZXJ2aWV3Iik7CisKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9u
TmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNv
cmRpbmciLCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAx
NSk7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2x0aXAgPSBX
SS5VSVN0cmluZygiSW1wb3J0Iik7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VB
bmRUZXh0OworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVu
dExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hh
bmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAg
dGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRp
b25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRG
dWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9u
SXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNr
ZWQsIHRoaXMuX2hhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0
aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9u
TmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5j
eSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMv
TmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9zaG93
R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0lt
YWdlR3JpZC52YWx1ZTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQs
IHRoaXMuX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhp
cy5fY2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisKKyAgICAgICAgdGhp
cy5fb3ZlcnZpZXdWaWV3cyA9IFtdOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0
IHN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0cygpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fb3ZlcnZpZXdWaWV3cy5mbGF0TWFwKChzdWJ2aWV3KSA9PiBzdWJ2aWV3LnN1cHBsZW1l
bnRhbFJlcHJlc2VudGVkT2JqZWN0cyk7CisgICAgfQorCisgICAgZ2V0IG5hdmlnYXRpb25JdGVt
cygpCisgICAgeworICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW107CisgICAgICAgIGlm
ICghV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIG5hdmlnYXRp
b25JdGVtcy5wdXNoQWxsKHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcubmF2aWdhdGlv
bkl0ZW1zKTsKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKG5ldyBXSS5EaXZpZGVy
TmF2aWdhdGlvbkl0ZW0pOworICAgICAgICB9CisgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNo
KHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5hdmlnYXRp
b25JdGVtLCB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3Nob3dHcmlk
QnV0dG9uTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOwor
ICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAg
ICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlk
LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVT
aG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9oYW5kbGVT
aG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQoKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisg
ICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAg
ICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNl
dHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFu
Z2VkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIGlu
aXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisg
ICAgICAgIGlmIChXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAgICAgICAgICAg
bGV0IGNyZWF0ZVNlY3Rpb24gPSAoaWRlbnRpZmllciwgdGl0bGUsIG92ZXJ2aWV3VmlldykgPT4g
eworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG92ZXJ2aWV3VmlldyBpbnN0YW5jZW9m
IFdJLkNvbnRlbnRWaWV3KTsKKworICAgICAgICAgICAgICAgIGxldCBzZWN0aW9uRWxlbWVudCA9
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9u
IikpOworICAgICAgICAgICAgICAgIHNlY3Rpb25FbGVtZW50LmNsYXNzTmFtZSA9IGlkZW50aWZp
ZXI7CisKKyAgICAgICAgICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9IHNlY3Rpb25FbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAg
ICAgICBoZWFkZXJFbGVtZW50LmNsYXNzTmFtZSA9ICJoZWFkZXIiOworCisgICAgICAgICAgICAg
ICAgbGV0IHRpdGxlRWxlbWVudCA9IGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaDEiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRD
b250ZW50ID0gdGl0bGU7CisKKyAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0g
b3ZlcnZpZXdWaWV3Lm5hdmlnYXRpb25JdGVtczsKKyAgICAgICAgICAgICAgICBpZiAobmF2aWdh
dGlvbkl0ZW1zLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkJh
ciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5hdiIpLCBu
YXZpZ2F0aW9uSXRlbXMpOworICAgICAgICAgICAgICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVu
ZENoaWxkKG5hdmlnYXRpb25CYXIuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMu
YWRkU3VidmlldyhuYXZpZ2F0aW9uQmFyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBsZXQgY29udGVudEVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAgY29udGVudEVs
ZW1lbnQuY2xhc3NOYW1lID0gImNvbnRlbnQiOworCisgICAgICAgICAgICAgICAgY29udGVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQob3ZlcnZpZXdWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgICAg
IHRoaXMuYWRkU3VidmlldyhvdmVydmlld1ZpZXcpOworCisgICAgICAgICAgICAgICAgb3ZlcnZp
ZXdWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50LlNl
bGVjdGVkSXRlbUNoYW5nZWQsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNo
YW5nZWQsIHRoaXMpOworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExpc3Rl
bmVyKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0Rp
ZENoYW5nZSwgdGhpcy5faGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRP
YmplY3RzRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9vdmVydmlld1Zp
ZXdzLnB1c2gob3ZlcnZpZXdWaWV3KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGNy
ZWF0ZVNlY3Rpb24oImNhbnZhcyIsIFdJLlVJU3RyaW5nKCJDYW52YXNlcyIpLCB0aGlzLl9jYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3KTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxl
Y3Rpb24gPSBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAg
ICAgICBjcmVhdGVTZWN0aW9uKCJ3ZWItYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIldlYiBBbmlt
YXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9u
Q29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5X
ZWJBbmltYXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3MtYW5pbWF0aW9u
IiwgV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0
aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZShXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb24pKSk7CisgICAgICAgICAgICBjcmVh
dGVTZWN0aW9uKCJjc3MtdHJhbnNpdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMi
KSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0
aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5z
aXRpb24pKSk7CisKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
KTsKKworICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlz
KTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmluZygiSW1wb3J0IFJlY29y
ZGluZyIpOworICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVu
dDsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgfQorCisgICAg
Ly8gRHJvcFpvbmVWaWV3IGRlbGVnYXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFwcGVhckZvckRy
YWdFdmVudChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gZXZlbnQuZGF0
YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAgIGRyb3Bab25l
SGFuZGxlRHJvcChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZmlsZXMgPSBl
dmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09IDEp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5iZWVwKCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09O
KGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkp
OworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xp
Y2tlZCgpCisgICAgeworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3Zl
cnZpZXdWaWV3cykKKyAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5oYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpOworICAgIH0KKworICAgIF9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZl
bnQpCisgICAgeworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRo
aXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOworICAgIH0KKworICAg
IF9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAgdGhp
cy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdz
LnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgfQorCisgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5h
dmlnYXRpb25JdGVtQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAgIFdJLkZpbGVVdGlsaXRp
ZXMuaW1wb3J0SlNPTigocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJl
c3VsdCksIHttdWx0aXBsZTogdHJ1ZX0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1Zp
ZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVudC50
YXJnZXQuc2VsZWN0ZWRJdGVtKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAo
bGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAgICBp
ZiAob3ZlcnZpZXdWaWV3ICE9PSBldmVudC50YXJnZXQgJiYgb3ZlcnZpZXdWaWV3LnNlbGVjdGlv
bkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51
bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVu
dGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKGV2bmV0KQorICAgIHsKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVu
dGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2xp
Y2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmVsZW1l
bnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3
IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld1ZpZXcu
c2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJ
dGVtID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFi
Q29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNWFmZDgxNjBmMTYwZjYwMzQyYmFiZGZhM2Uw
ZGZiMDM1OWU3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24t
YmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4u
L0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFw
aGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7Cisg
ICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOworfQorCisuY29udGVudC12
aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNoZXMo
LndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29uIHsKKyAgICBjb250ZW50
OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdy
YXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKK30KKworLmNvbnRlbnQtdmll
dy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFtID4g
Lmljb24geworICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wu
cG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOworfQorCitAbWVk
aWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy50YWIu
Z3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmdyYXBoaWNzLW92ZXJ2aWV3IC5pY29u
IHsKKyAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKKyAgICB9CisKKyAgICAuY29udGVudC12
aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAor
ICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5y
ZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7CisgICAgfQorfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3Jh
cGhpY3NUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhkY2YyYjEw
OWE4Mjc1ZDM3MTA3MjVlYWZjODkwYWNkYTYwYzMxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZp
ZXcuanMKQEAgLTAsMCArMSwzMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5HcmFwaGljc1RhYkNvbnRl
bnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRC
cm93c2VyVGFiQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAg
ICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkdy
YXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbygpKTsKKworICAgICAgICBjb25zdCBuYXZpZ2F0
aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBXSS5DYW52YXNTaWRlYmFyUGFuZWw7CisgICAg
ICAgIGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMgPSBbCisgICAgICAgICAg
ICBXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5S
ZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5DYW52YXNE
ZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGVi
YXJQYW5lbCwKKyAgICAgICAgXTsKKyAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0g
dHJ1ZTsKKyAgICAgICAgc3VwZXIoImdyYXBoaWNzIiwgWyJncmFwaGljcyJdLCB0YWJCYXJJdGVt
LCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxD
b25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2FyZCk7CisKKyAgICAgICAgdGhpcy5fY2FudmFz
ZXNUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZTsKKyAgICAgICAgdGhpcy5fY2FudmFz
ZXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0aGlz
Ll9jYW52YXNlc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZl
bnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVt
ZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudCgiY2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlT
dHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHtbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJv
bF06IHRydWV9KTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hcHBlbmRDaGls
ZCh0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50KTsKKworICAgICAgICB0aGlzLl9zYXZlZENhbnZh
c1JlY29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0
cmluZygiU2F2ZWQgUmVjb3JkaW5ncyIpKTsKKyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNv
cmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNU
cmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxl
bWVudCk7CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRT
aG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxl
U3BhY2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmltcGxpY2l0
bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQu
ZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRj
dXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVy
LlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2Uu
YmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1w
bGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5n
bGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmVuYWJsZSgpOworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVuYWJsZSgpOworICAg
IH0KKworICAgIHN0YXRpYyB0YWJJbmZvKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAg
ICAgICAgICBpbWFnZTogIkltYWdlcy9HcmFwaGljcy5zdmciLAorICAgICAgICAgICAgdGl0bGU6
IFdJLlVJU3RyaW5nKCJHcmFwaGljcyIpLAorICAgICAgICB9OworICAgIH0KKworICAgIHN0YXRp
YyBpc1RhYkFsbG93ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQu
aGFzRG9tYWluKCJDYW52YXMiKQorICAgICAgICAgICAgfHwgSW5zcGVjdG9yQmFja2VuZC5oYXNE
b21haW4oIkFuaW1hdGlvbiIpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgdHJlZUVs
ZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXBy
ZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZTsKKyAgICB9CisKKyAgICBnZXQg
c3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCisgICAg
eworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzaG93UmVwcmVzZW50ZWRPYmpl
Y3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSkKKyAgICB7CisgICAgICAgIGlmIChyZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIHRoaXMu
Y29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuc2hvd1Jl
cHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpOworICAgIH0KKworICAg
IGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAg
ICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rp
b24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFz
CisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGlu
Z0NvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuUmVjb3JkaW5nCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLlNoYWRlclByb2dyYW1Db2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0KKyAgICAgICAgICAgIHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbgorICAgICAgICAgICAg
fHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb247CisgICAgfQorCisg
ICAgY2xvc2VkKCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZGlzYWJsZSgp
OworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKKworICAgICAgICBzdXBlci5j
bG9zZWQoKTsKKyAgICB9CisKKyAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkKKyAg
ICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9CisKKyAgICBzYXZlU3RhdGVUb0Nvb2tpZShj
b29raWUpCisgICAgeworICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAgYXN5bmMgaGFu
ZGxlRmlsZURyb3AoZmlsZXMpCisgICAgeworICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVz
LnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09O
KHJlc3VsdCkpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQor
ICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50
Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsK
KyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9w
cGVkLCB0aGlzKTsKKyAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFz
LkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9w
cGVkLCB0aGlzKTsKKworICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB0aGlzLl9jYW52YXNlc1Ry
ZWVFbGVtZW50LmNoaWxkcmVuKSB7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gY2hpbGQucmVw
cmVzZW50ZWRPYmplY3Q7CisgICAgICAgICAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgV0kuQ2Fu
dmFzICYmICFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCisg
ICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0KKwor
ICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRy
ZWVFbGVtZW50KGNhbnZhcykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGNhbnZh
cyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFz
TWFuYWdlci5zYXZlZFJlY29yZGluZ3MpIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFz
ZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVjb3JkaW5nKSkKKyAgICAgICAgICAgICAg
ICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0
cnVlfSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxl
ZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2Fi
bGVkID0gZmFsc2U7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhp
cy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICB0aGlzLl9yZWNvcmRT
aW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5DYW52YXMu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhp
cy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNv
cmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOwor
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRk
ZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9o
YW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwor
ICAgIH0KKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fb3ZlcnZp
ZXdDb250ZW50VmlldyA9IG5ldyBXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXc7CisgICAg
ICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29u
dGVudFZpZXcpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9hZGRDYW52YXMoY2Fu
dmFzKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBlbmRDaGls
ZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7CisKKyAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKKyAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKKyAgICAg
ICAgfTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0Nv
bGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRp
b25zKTsKKyAgICB9CisKKyAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAgICAg
IGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVt
ZW50KGNhbnZhcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlzc2lu
ZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOworCisgICAgICAgIGNvbnN0IHN1
cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxlY3Qo
c3VwcHJlc3NOb3RpZmljYXRpb24pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50
LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKKworICAgICAgICBsZXQgY3VycmVudENvbnRlbnRW
aWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CisgICAgICAgIGlm
IChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAg
ICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24pOworICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFu
Y2VvZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlv
bi5oYXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKKyAgICAgICAgICAg
IHRoaXMuY29udGVudEJyb3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250
ZW50VmlldygpOworCisgICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5u
YXZpZ2F0aW9uU2lkZWJhclBhbmVsOworICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5l
bCBpbnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBh
bmVsLnZpc2libGUpCisgICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJl
cHJlc2VudGVkT2JqZWN0cygpOworCisgICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFu
ZWxzKCk7CisgICAgfQorCisgICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7
fSkKKyAgICB7CisgICAgICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgeworICAgICAgICAgICAg
Y29uc3Qgc3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVt
ZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcu
ZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICAgICAgdGhpcy5fc2F2
ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7CisgICAgICAgICAg
ICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNv
cmRpbmdUcmVlRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9wdGlvbnMuc3Vw
cHJlc3NTaG93UmVjb3JkaW5nKQorICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmpl
Y3QocmVjb3JkaW5nKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisK
KyAgICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Jl
bW92ZUNhbnZhcyhldmVudC5kYXRhLml0ZW0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmll
d1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0
IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVl
RWxlbWVudDsKKyAgICAgICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgc3dpdGNoIChzZWxlY3RlZEVsZW1lbnQpIHsKKyAgICAgICAgY2FzZSB0
aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50OgorICAgICAgICBjYXNlIHRoaXMuX3NhdmVkQ2FudmFz
UmVjb3JkaW5nc1RyZWVFbGVtZW50OgorICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5z
aG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxl
Y3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGlmICghdGhpcy5jYW5TaG93
UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7CisgICAgICAgICAgICBjb25z
b2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVz
ZW50ZWRPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
dGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0KKwor
ICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKKyAgICB7CisgICAgICAg
IGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7
CisgICAgICAgIGlmICghcmVjb3JkaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGxldCBvcHRpb25zID0ge307CisKKyAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVj
b3JkaW5ncy4KKyAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQorICAg
ICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2Vy
IHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChy
ZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNv
cmRpbmcpOworCisgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMp
OworICAgIH0KKworICAgIF9oYW5kbGVTcGFjZShldmVudCkKKyAgICB7CisgICAgICAgIGlmIChX
SS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLmNhbnZhczsKKyAgICAgICAgaWYgKCFjYW52YXMpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCisgICAgICAgICAgICBjYW52
YXMuc3RvcFJlY29yZGluZygpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxldCBzaW5n
bGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7CisgICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNv
cmRpbmcoc2luZ2xlRnJhbWUpOworICAgICAgICB9CisKKyAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICB9Cit9OworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAi
Z3JhcGhpY3MiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTWFpbi5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9NYWluLmNzcwppbmRleCA5ZjEwNWYxZTk2ZTgzMWNlNTQ1MTA0OTM4NGU3YWQ4ZDYxODM0
NWE0Li44ZmUxMzFjMmYwZTM2MTc2ZWZhMGZjYWJkMDJjMjc1ODY0YzZmYWU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwpAQCAt
MjA5LDEyICsyMDksMTIgQEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2
aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICBtYXJnaW4tYm90dG9t
OiAxNXB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIHsK
Ky5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgbGluZS1o
ZWlnaHQ6IDIycHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhl
bHAgLm5hdmlnYXRpb24tYmFyIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9u
LWJhciB7CiAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgaGVpZ2h0OiAyMHB4OwogICAg
IHBhZGRpbmc6IDAgNHB4OwpAQCAtMjIyLDkgKzIyMiw5IEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMo
LnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7
CiAgICAgdmVydGljYWwtYWxpZ246IC0zcHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2
aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0geworLm5hdmlnYXRpb24t
aXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAgIGhlaWdodDogMTAwJTsK
LSAgICBwYWRkaW5nOiAwIDRweDsKKyAgICBwYWRkaW5nOiAwIDRweCAhaW1wb3J0YW50OwogICAg
IGZvbnQtc2l6ZTogMTFweDsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm9yZGVyOiBz
b2xpZCAxcHggdmFyKC0tYm9yZGVyLWNvbG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRW
aWV3LmNzcwppbmRleCA4ZDYwZjIzZjBiMmJlYzcwZDhiZTgzZDAyMTdhNzBhYzc0ZmQyMzU4Li4x
MWYxZGQ4MmU1NTM3NzAxOTBiMmZmN2ViOGI2MDhlZWM3ZTI5YzI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmll
dy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVj
b3JkaW5nQ29udGVudFZpZXcuY3NzCkBAIC0yMywxOCArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNv
cmRpbmcgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgewogICAgIGRpc3BsYXk6IGZsZXg7CiAg
ICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwYWRkaW5nOiAxMHB4OwogICAgIGJhY2tn
cm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRh
YikucmVjb3JkaW5nID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVy
IHsKICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFi
KS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisuY29udGVudC12aWV3
LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBm
bGV4OwogICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICBwYWRkaW5nOiA0cHggMDsKQEAgLTQzLDMx
ICs0MywzMSBAQAogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldzpu
b3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsKKy5j
b250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsK
ICAgICBtYXJnaW46IDRweCA4cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29y
ZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7CisuY29u
dGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRl
ci12YWx1ZSB7CiAgICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7CiAgICAgZm9udC1m
YW1pbHk6IDExcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhl
YWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworLmNvbnRlbnQt
dmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9
cmFuZ2VdIHsKICAgICBmbGV4OiAxOwogICAgIHdpZHRoOiAxMDAlOwogfQogCi0uY29udGVudC12
aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlu
cHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CisuY29udGVu
dC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlw
ZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6IDJw
eDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGJvcmRl
ci1yYWRpdXM6IDFweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4g
aGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVy
LWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAg
ICAgbWFyZ2luLXRvcDogLTZweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3Jk
aW5nID4gLnByZXZpZXctY29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gLnBy
ZXZpZXctY29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXg6IDE7CiAgICAg
anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CkBAIC03NywyNyArNzcsMjcgQEAKICAgICBoZWlnaHQ6
IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJl
Y29yZGluZyA6bWF0Y2hlcyhpbWcsIGNhbnZhcykgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcg
Om1hdGNoZXMoaW1nLCBjYW52YXMpIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgbWF4
LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXc6
bm90KC50YWIpLnJlY29yZGluZyBjYW52YXMucGF0aCB7CisuY29udGVudC12aWV3LnJlY29yZGlu
ZyBjYW52YXMucGF0aCB7CiAgICAgei1pbmRleDogMTA7CiB9CiAKIEBtZWRpYSAocHJlZmVycy1j
b2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRp
bmcgeworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nIHsKICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogdW5zZXQ7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3Jk
aW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgeworICAgIC5jb250ZW50LXZpZXcucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgewogICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB1bnNldDsKICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3It
c2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRp
bmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKKyAg
ICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4g
aW5wdXRbdHlwZT1yYW5nZV0gewogICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
c291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRl
eCAzYTlhOWFlZmYyOWM1ZWZjZDc3OWJiNGQyOTA0MGFhZDg5ZGJmMWQ0Li4yZjk0YmM3NDA5ZjRk
NTU0NjY1Y2RlODljOWYwZjk5Y2FkZWY5NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5j
c3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0yMyw2ICsyMywxNCBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy5jb250ZW50LXZpZXcucmVzb3VyY2Ut
Y29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWcgeworICAgIG91dGxpbmU6IDAuNXB4IHNv
bGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcucmVzb3VyY2UtY29s
bGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIgeworICAgIG91dGxpbmUtY29sb3I6
IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSkKK30KKwogLnJlc291cmNlLWNvbGxlY3Rpb24taW1h
Z2UtdHlwZS1zY29wZS1iYXIuZGVmYXVsdC1pdGVtLXNlbGVjdGVkIHsKICAgICAtLXNjb3BlLWJh
ci10ZXh0LWNvbG9yLW92ZXJyaWRlOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICAtLXNjb3BlLWJh
ci1iYWNrZ3JvdW5kLWNvbG9yLW92ZXJyaWRlOiB0cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggYzk0ZWNhNzc3MjE0ZTMx
ZGM1ZDgxZTYxMDkwNjA2M2Y3N2M3NGZjYy4uZmMxYzZhMmNkNGFhN2RhMTk1MGMwYTNkM2ZmMDYz
NDMyZjk3ZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVu
dFZpZXcuanMKQEAgLTM1LDYgKzM1LDggQEAgV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZp
ZXcgPSBjbGFzcyBSZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFcKIAogICAg
ICAgICBzdXBlcihjb2xsZWN0aW9uLCBjb250ZW50Vmlld0NvbnN0cnVjdG9yKTsKIAorICAgICAg
ICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgicmVzb3VyY2UtY29sbGVjdGlvbiIpOworCiAg
ICAgICAgIGlmIChjb2xsZWN0aW9uLnJlc291cmNlVHlwZSA9PT0gV0kuUmVzb3VyY2UuVHlwZS5J
bWFnZSkgewogICAgICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9
IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0
cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3Bh
cmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEz
KTsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZl
bnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9o
YW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBmYTM1Y2E1MjJhZjk1
MDIxYTAzN2ZjMWIxODQ2NDRiOWNkYjRmNGYuLmI4YTVjYWJmYWI0ZDUxM2NiZGExMzU3OTY5ZjFm
NDEwYmYzN2I1MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxOS0xMi0yOSAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGlu
c3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVj
eWNsZS1jc3MtYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmlt
YXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNp
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdEVmZmVjdFRhcmdldC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RFZmZlY3RUYXJnZXQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29s
dmVBbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9y
ZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6IEFk
ZGVkLgorICAgICAgICAoY3JlYXRlQW5pbWF0aW9uKToKKyAgICAgICAgKGRlc3Ryb3lBbmltYXRp
b25zKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVz
LmFzeW5jIGF3YWl0QW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFu
aW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBhd2FpdEFuaW1hdGlvbkRlc3Ryb3llZCk6
CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3lu
YyBjcmVhdGVBbmltYXRpb24pOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZl
Y3ljbGVVdGlsaXRpZXMuYXN5bmMgZGVzdHJveUFuaW1hdGlvbnMpOgorCisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanM6CisgICAg
ICAgIChkZXN0cm95Q2FudmFzZXMpOgorICAgICAgICAoYXdhaXRDYW52YXNBZGRlZCk6CisgICAg
ICAgIChJbnNwZWN0b3JUZXN0LkNyZWF0ZUNvbnRleHRVdGlsaXRpZXMuaW5pdGlhbGl6ZVRlc3RT
dWl0ZSk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDb250ZW50LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVxdWVzdE5vZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250
ZXh0LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1i
aXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250
ZXh0LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRl
eHQtd2ViZ3B1Lmh0bWw6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVG
cmFtZUNvdW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVj
b3JkaW5nLXV0aWxpdGllcy5qczoKKyAgICAgICAgKHdpbmRvdy5nZXRDYW52YXMpOgorCisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJl
ZFZlcnRleEZyYWdtZW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJj
ZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzOgorICAg
ICAgICAoZGVsZXRlQ29udGV4dCk6CisgICAgICAgICh3aGVuUHJvZ3JhbUFkZGVkKToKKyAgICAg
ICAgKHdpbmRvdy5pbml0aWFsaXplVGVzdFN1aXRlKToKKyAgICAgICAgKHdpbmRvdy5hZGRQYXJl
bnRDYW52YXNSZW1vdmVkVGVzdENhc2UpOgorCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVz
dHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQ6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTkt
MTItMjMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyMTI2OTMpOiBnZXRDbGllbnRSZWN0cygpLCBnZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KSBmb3IgcmFuZ2UgdGhhdCBzcGFucyBtdWx0aS1saW5lcyBkaWZmZXJzIGRlcGVuZGluZyBvbiB3
aGV0aGVyIHRleHQgaXMgc2VsZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIy
ZjMzY2JkN2Y5MzNkM2I0OWJiZmY1ZDM3OGRlNTdiODIzMTJiZTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmVmZmVjdENoYW5n
ZWQgZXZlbnQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uZWZmZWN0Q2hh
bmdlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk5ld0Vm
ZmVjdAorUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0NoYW5naW5nIGVm
ZmVjdC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LgorUEFTUzog
QW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTnVsbEVmZmVjdAorUEFTUzogQW5pbWF0aW9u
IHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0NoYW5naW5nIGVmZmVjdC4uLgorCitQQVNTOiBBbmlt
YXRpb24gc2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qg
c2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDVkODViMWUxZjIxNjg4MWZm
YmQ2ZjYxYjM3NDdjNzBkYmYxNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQu
Ym9keS5hbmltYXRlKFt7b3BhY2l0eTogMH1dKTsKKworICAgIHJ1blRlc3QoKTsKK30KKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3lu
Y1N1aXRlKCJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCIpOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTmV3RWZmZWN0IiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0
aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsK
KyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5h
Z2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5p
bWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsK
KyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1p
c3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9u
VHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3Vs
ZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRLZXlmcmFtZXMg
PSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RO
b3RFbXB0eShvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIp
OworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgZWZmZWN0Li4uXG4i
KTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmlt
YXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCksCisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlv
bi5lZmZlY3QgPSBuZXcgS2V5ZnJhbWVFZmZlY3Qod2luZG93LmFuaW1hdGlvbi5lZmZlY3QudGFy
Z2V0LCBbe29wYWNpdHk6IDF9XSwge30pYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAg
ICAgbGV0IG5ld0tleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG5ld0tleWZyYW1lcywgIkFuaW1hdGlvbiBzaG91
bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIGVm
ZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVmZmVjdENoYW5n
ZWQuTnVsbEVmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZh
bGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAg
IGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20o
V0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9
IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAg
ICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5p
bWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwg
IkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBs
ZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBo
YXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5n
aW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVj
dENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
YHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbnVsbGApLAorICAgICAgICAgICAgXSk7CisKKyAg
ICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFbXB0eShuZXdLZXlmcmFtZXMsICJBbmltYXRpb24g
c2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3ROb3RTaGFsbG93RXF1YWwobmV3S2V5ZnJhbWVzLCBvbGRLZXlmcmFtZXMsICJBbmlt
YXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0sCisgICAgfSk7
CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0
aW9uLmVmZmVjdENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNs
ZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTYzMTE2OTg4ZDU2Yjhi
YWQ0N2YxM2ViZWZjYmNiMWI0ZmJjNTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzNSBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRl
ZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKworPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
QW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNob3VsZCBub3Qg
YmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4KK1BBU1M6IEFuaW1h
dGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgQW5pbWF0aW9uLgorc3RhcnREZWxheTogMTAwCitpdGVy
YXRpb25Db3VudDogMgoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVuY3Rpb246ICJs
aW5lYXIiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2RlOiAiYm90aCIK
K2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLAorICAgICJzdHlsZSI6ICJjb2xv
cjogcmdiKDI1NSwgMCwgMCk7XG5vcGFjaXR5OiAwOyIKKyAgfSwKKyAgeworICAgICJvZmZzZXQi
OiAwLjUsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMCwgMTI4LCAwKTtcbm9wYWNpdHk6IDAu
NTsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMSwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJn
YigwLCAwLCAyNTUpO1xub3BhY2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWluZyBhbmltYXRp
b25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1vdmVkIGFuaW1h
dGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MGY1ZTAyOTM3YmIxZWIyNTdmZTY3MzRmOWU4Y2IxZDYyZmU2YTUwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1h
dGlvbi5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOldlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJs
ZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK0BrZXlmcmFtZXMgZmFkZS1pbiB7CisgICAgZnJvbSB7CisgICAgICAgIGNvbG9yOiBy
ZWQ7CisgICAgICAgIG9wYWNpdHk6IDA7CisgICAgfQorICAgIDUwJSB7CisgICAgICAgIGNvbG9y
OiBncmVlbjsKKyAgICAgICAgb3BhY2l0eTogMC41OworICAgIH0KKyAgICB0byB7CisgICAgICAg
IGNvbG9yOiBibHVlOworICAgICAgICBvcGFjaXR5OiAxOworICAgIH0KK30KK2RpdiN0YXJnZXQu
YWN0aXZlIHsKKyAgICBhbmltYXRpb24tbmFtZTogZmFkZS1pbjsKKyAgICBhbmltYXRpb24tZHVy
YXRpb246IDQwMG1zOworICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemll
cigwLjEsIDAuMiwgMC4zLCAwLjQpOworICAgIGFuaW1hdGlvbi1kZWxheTogMTAwbXM7CisgICAg
YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBh
bHRlcm5hdGU7CisgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisKKyAgICBzdWl0ZS5h
ZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5Y2xlLkNTU0FuaW1h
dGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBXZWIgSW5zcGVjdG9yIGlz
IG5vdGlmaWVkIHdoZW5ldmVyIENTUyBhbmltYXRpb25zIGFyZSBjcmVhdGVkL2Rlc3Ryb3llZC4i
LAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uc2l6ZSwgMCwg
IlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7CisKKyAgICAgICAgICAgIGxl
dCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkNyZWF0
ZWQoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uKSwKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAg
ICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5B
bmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0
aW9uLmFuaW1hdGlvbklkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlv
bkxpZmVjeWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucygpLAorICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxw
PlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5h
bmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2OTI3Y2YxNmJjNjMxNzViOGIxZjBmOGUyYTA0YTAwN2VjNmVmYWQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVj
eWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGVzdHMg
Zm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlv
bkRlc3Ryb3llZCBldmVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24u
TGlmZWN5Y2xlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NU
cmFuc2l0aW9uCitQQVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorUEFT
UzogQW5pbWF0aW9uIGNyZWF0ZWQuCitQQVNTOiBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgQ1NT
IFRyYW5zaXRpb24uCitzdGFydERlbGF5OiAxMDAKK2l0ZXJhdGlvbkNvdW50OiAxCitpdGVyYXRp
b25EdXJhdGlvbjogNDAwCit0aW1pbmdGdW5jdGlvbjogImN1YmljLWJlemllcigwLjEsIDAuMiwg
MC4zLCAwLjQpIgorcGxheWJhY2tEaXJlY3Rpb246ICJub3JtYWwiCitmaWxsTW9kZTogImJhY2t3
YXJkcyIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLAorICAgICJzdHlsZSI6
ICJvcGFjaXR5OiAwOyIKKyAgfSwKKyAgeworICAgICJvZmZzZXQiOiAxLAorICAgICJzdHlsZSI6
ICJvcGFjaXR5OiAxOyIKKyAgfQorXQorCitEZXN0cm95aW5nIGFuaW1hdGlvbnMuLi4KKworUEFT
UzogQW5pbWF0aW9uIGRlc3Ryb3llZC4KK1BBU1M6IFJlbW92ZWQgYW5pbWF0aW9uIGhhcyBleHBl
Y3RlZCBJRC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9s
aWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmlt
YXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAxYzBjZDc2
MWI5M2MwMzY2NDg1MWE4M2ZmOWI5ZTE2NzFlNmVkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwK
QEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorZGl2
I3RhcmdldCB7CisgICAgY29sb3I6IHJlZDsKKyAgICBvcGFjaXR5OiAwOworCit9CitkaXYjdGFy
Z2V0LmFjdGl2ZSB7CisgICAgY29sb3I6IGJsdWU7CisgICAgb3BhY2l0eTogMTsKKworICAgIHRy
YW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7CisgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNDAw
bXM7CisgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAu
MiwgMC4zLCAwLjQpOworICAgIHRyYW5zaXRpb24tZGVsYXk6IDEwMG1zOworfQorPC9zdHlsZT4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTVHJh
bnNpdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBXZWIgSW5zcGVjdG9y
IGlzIG5vdGlmaWVkIHdoZW5ldmVyIENTUyB0cmFuc2l0aW9ucyBhcmUgY3JlYXRlZC9kZXN0cm95
ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLnNpemUs
IDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIpOworCisgICAgICAgICAg
ICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25D
cmVhdGVkKFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb24pLAorICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAg
ICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkRlc3Ryb3llZChh
bmltYXRpb24uYW5pbWF0aW9uSWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5p
bWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmRlc3Ryb3lBbmltYXRpb25zKCksCisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBd
KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlz
aCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0
aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuPC9wPgorICAgIDxkaXYgaWQ9InRhcmdldCI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjlhYTZiOGRhNTlmZmQ2ZjdiZjBkMWYwNWI4NTVlNTk3YTEwOGJh
ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xp
ZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitUZXN0
cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0
aW9uRGVzdHJveWVkIGV2ZW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlv
bi5MaWZlY3ljbGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5Y2xlLldl
YkFuaW1hdGlvbgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4KK0Ny
ZWF0aW5nIGFuaW1hdGlvbi4uLgorCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4KKyAgMDogYW5p
bWF0ZSAtIFtuYXRpdmUgY29kZV0KKyAgMTogY3JlYXRlQW5pbWF0aW9uIC0gaW5zcGVjdG9yL2Fu
aW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qczo3OjM1CisgIDI6IEdsb2Jh
bCBDb2RlIC0gW3Byb2dyYW0gY29kZV0KKyAgMzogZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24g
LSBbbmF0aXZlIGNvZGVdCisgIDQ6IChhbm9ueW1vdXMgZnVuY3Rpb24pIC0gW25hdGl2ZSBjb2Rl
XQorICA1OiBfd3JhcENhbGwgLSBbbmF0aXZlIGNvZGVdCitQQVNTOiBBbmltYXRpb24gdHlwZSBz
aG91bGQgYmUgV2ViIEFuaW1hdGlvbi4KK3N0YXJ0RGVsYXk6IDEwMAorZW5kRGVsYXk6IDIwMAor
aXRlcmF0aW9uQ291bnQ6IDEwCitpdGVyYXRpb25TdGFydDogNQoraXRlcmF0aW9uRHVyYXRpb246
IDMwMAordGltaW5nRnVuY3Rpb246ICJlYXNlLWluLW91dCIKK3BsYXliYWNrRGlyZWN0aW9uOiAi
YWx0ZXJuYXRlIgorZmlsbE1vZGU6ICJib3RoIgora2V5ZnJhbWVzOgorWworICB7CisgICAgIm9m
ZnNldCI6IDAuMjUsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywg
MC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZWQ7XG5vcGFjaXR5OiAwOyIKKyAgfSwKKyAg
eworICAgICJvZmZzZXQiOiAwLjc1LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuNiwg
MC43LCAwLjgsIDAuOSkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogYmx1ZTtcbm9wYWNpdHk6IDE7
IgorICB9CitdCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMjcwYTRi
MjdkMWRjMGJhYTY3Njc0YWI3MDdjMDk4YmNhOGJhZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLmh0bWwK
QEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNs
ZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9u
LkxpZmVjeWNsZS5XZWJBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
YXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciB3ZWIgYW5pbWF0aW9ucyBhcmUg
Y3JlYXRlZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25D
b2xsZWN0aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIp
OworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5Bbmlt
YXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3JlYXRlQW5pbWF0aW9uKFdJLkFuaW1hdGlvbi5UeXBl
LldlYkFuaW1hdGlvbiwgeworICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAiYm9keSIsCisgICAg
ICAgICAgICAgICAga2V5ZnJhbWVzOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG9mZnNldDogMC4yNSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVh
c2luZzogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbG9yOiAicmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6
IDAsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9mZnNldDogMC43NSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVhc2luZzogImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbG9yOiAiYmx1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBvcGFj
aXR5OiAxLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgICAgICAgICBkZWxheTogMTAwLAor
ICAgICAgICAgICAgICAgICAgICBlbmREZWxheTogMjAwLAorICAgICAgICAgICAgICAgICAgICBk
dXJhdGlvbjogMzAwLAorICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJlYXNlLWluLW91dCIs
CisgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogImFsdGVybmF0ZSIsCisgICAgICAgICAg
ICAgICAgICAgIGZpbGw6ICJib3RoIiwKKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uczog
MTAsCisgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvblN0YXJ0OiA1LAorICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRl
LnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0
aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1h
dGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJk
NDhkYTgxNTIxOTk3M2Q2MTI2MDgzNjA4NmVlMjExZTJhMWFmMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24ucmVzb2x2ZUFu
aW1hdGlvbiBjb21tYW5kLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLnJl
c29sdmVBbmltYXRpb24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24ucmVzb2x2ZUFu
aW1hdGlvbi5WYWxpZElkZW50aWZpZXIKK1BBU1M6IFBheWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAi
b2JqZWN0Ii4KK1BBU1M6IFBheWxvYWQgc2hvdWxkIGhhdmUgY2xhc3NOYW1lICJBbmltYXRpb24i
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uSW52
YWxpZElkZW50aWZpZXIKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0Vycm9y
OiBNaXNzaW5nIGFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYTIzZTM5NzRjMzRjMTk3Y2RkNTk4NjEwZjczNzcxMDY3ZTMwMTM5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0
aW9uLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAg
ICB3aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQuYm9keS5hbmltYXRlKFtdKTsKKworICAgIHJ1
blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiIpOwor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlc29s
dmVBbmltYXRpb24uVmFsaWRJZGVudGlmaWVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91
bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZp
ZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25z
ID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEs
ICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBs
ZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9u
KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUu
V2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisK
KyAgICAgICAgICAgIGNvbnN0IG9iamVjdEdyb3VwID0gInRlc3QiOworICAgICAgICAgICAgbGV0
IHtvYmplY3R9ID0gYXdhaXQgQW5pbWF0aW9uQWdlbnQucmVzb2x2ZUFuaW1hdGlvbihhbmltYXRp
b24uYW5pbWF0aW9uSWQsIG9iamVjdEdyb3VwKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwob2JqZWN0LnR5cGUsICJvYmplY3QiLCBgUGF5bG9hZCBzaG91bGQgaGF2ZSB0
eXBlICJvYmplY3QiLmApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChv
YmplY3QuY2xhc3NOYW1lLCAiQW5pbWF0aW9uIiwgYFBheWxvYWQgc2hvdWxkIGhhdmUgY2xhc3NO
YW1lICJBbmltYXRpb24iLmApOworICAgICAgICB9LAorICAgIH0pOworCisgICAgLy8gLS0tLS0t
CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24ucmVz
b2x2ZUFuaW1hdGlvbi5JbnZhbGlkSWRlbnRpZmllciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
SW52YWxpZCBhbmltYXRpb24gaWRlbnRpZmllcnMgc2hvdWxkIGNhdXNlIGFuIGVycm9yLiIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gIkRP
RVNfTk9UX0VYSVNUIjsKKyAgICAgICAgICAgIGNvbnN0IG9iamVjdEdyb3VwID0gInRlc3QiOwor
CisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyAo
KSA9PiB7CisgICAgICAgICAgICAgICAgYXdhaXQgQW5pbWF0aW9uQWdlbnQucmVzb2x2ZUFuaW1h
dGlvbihpZGVudGlmaWVyLCBvYmplY3RHcm91cCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+CisgICAgPHA+VGVzdHMgZm9y
IHRoZSBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiBjb21tYW5kLjwvcD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb3Vy
Y2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5YzIxMmZm
MzYxNThkOGJiNGNjZTE2YTk1ZGEwNTM1MmQwYjAxZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVz
LmpzCkBAIC0wLDAgKzEsMTMwIEBACit3aW5kb3cuYW5pbWF0aW9ucyA9IFtdOworCitmdW5jdGlv
biBjcmVhdGVBbmltYXRpb24oc2VsZWN0b3IsIGtleWZyYW1lcyA9IFtdLCBvcHRpb25zID0ge30p
IHsKKyAgICBsZXQgYW5pbWF0aW9uID0gbnVsbDsKKworICAgIGxldCB0YXJnZXQgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKKyAgICBpZiAodGFyZ2V0KQorICAgICAgICBhbmlt
YXRpb24gPSB0YXJnZXQuYW5pbWF0ZShrZXlmcmFtZXMsIG9wdGlvbnMpOworICAgIGVsc2UKKyAg
ICAgICAgYW5pbWF0aW9uID0gbmV3IEFuaW1hdGlvbihuZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCwg
a2V5ZnJhbWVzLCBvcHRpb25zKSk7CisKKyAgICB3aW5kb3cuYW5pbWF0aW9ucy5wdXNoKGFuaW1h
dGlvbik7Cit9CisKK2Z1bmN0aW9uIGRlc3Ryb3lBbmltYXRpb25zKCkgeworICAgIGZvciAobGV0
IGFuaW1hdGlvbiBvZiB3aW5kb3cuYW5pbWF0aW9ucykgeworICAgICAgICBpZiAoIWFuaW1hdGlv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhbmltYXRpb24uY2FuY2VsKCk7CisK
KyAgICAgICAgaWYgKGFuaW1hdGlvbi5lZmZlY3QpIHsKKyAgICAgICAgICAgIGlmIChhbmltYXRp
b24uZWZmZWN0LnRhcmdldCkgeworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5lZmZlY3QudGFy
Z2V0LnJlbW92ZSgpOworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0ID0g
bnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVjdCA9IG51
bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cuYW5pbWF0aW9ucyA9IFtdOworCisg
ICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBhbmltYXRpb24gYW5kIGl0J3MgdGFyZ2V0
IGFyZSBib3RoIGRlc3Ryb3llZCwgYXMgb3RoZXJ3aXNlIHRoZQorICAgIC8vIGZyb250ZW5kIHdp
bGwgbm90IHJlY2VpdmUgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisgICAg
c2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisgICAg
fSk7Cit9CisKK1Rlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4geworICAgIGZ1bmN0
aW9uIGpzb25LZXlmcmFtZUZpbHRlcihrZXksIHZhbHVlKSB7CisgICAgICAgIGlmIChrZXkgPT09
ICJlYXNpbmciICYmIHZhbHVlIGluc3RhbmNlb2YgV0kuQ3ViaWNCZXppZXIpCisgICAgICAgICAg
ICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0K
KworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzID0ge307CisK
KyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1h
dGlvbkNyZWF0ZWQgPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25UeXBlKSB7CisgICAgICAgIGxl
dCBhbmltYXRpb25Db2xsZWN0aW9uSXRlbUFkZGVkRXZlbnQgPSBhd2FpdCBXSS5hbmltYXRpb25N
YW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50
Lkl0ZW1BZGRlZCk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBbmltYXRpb24gY3Jl
YXRlZC4iKTsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uQ29sbGVjdGlvbkl0
ZW1BZGRlZEV2ZW50LmRhdGEuaXRlbTsKKworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFu
aW1hdGlvbi5iYWNrdHJhY2UubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxldCBjYWxsRnJh
bWUgPSBhbmltYXRpb24uYmFja3RyYWNlW2ldOworICAgICAgICAgICAgbGV0IHRyYWNlVGV4dCA9
IGAgICR7aX06IGA7CisgICAgICAgICAgICB0cmFjZVRleHQgKz0gY2FsbEZyYW1lLmZ1bmN0aW9u
TmFtZSB8fCAiKGFub255bW91cyBmdW5jdGlvbikiOworCisgICAgICAgICAgICBpZiAoY2FsbEZy
YW1lLm5hdGl2ZUNvZGUpCisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9ICIgLSBbbmF0aXZl
IGNvZGVdIjsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNhbGxGcmFtZS5wcm9ncmFtQ29kZSkKKyAg
ICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAtIFtwcm9ncmFtIGNvZGVdIjsKKyAgICAgICAg
ICAgIGVsc2UgaWYgKGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb24pIHsKKyAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAg
ICAgICAgICAgIHRyYWNlVGV4dCArPSAiIC0gIiArIHNhbml0aXplVVJMKGxvY2F0aW9uLnNvdXJj
ZUNvZGUudXJsKSArIGA6JHtsb2NhdGlvbi5saW5lTnVtYmVyfToke2xvY2F0aW9uLmNvbHVtbk51
bWJlcn1gOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyh0
cmFjZVRleHQpOworICAgICAgICB9CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSwgYW5pbWF0aW9uVHlwZSwgYEFuaW1hdGlvbiB0eXBl
IHNob3VsZCBiZSAke1dJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUoYW5p
bWF0aW9uVHlwZSl9LmApOworCisgICAgICAgIGlmIChhbmltYXRpb24uc3RhcnREZWxheSkKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJzdGFydERlbGF5OiAiICsgSlNPTi5zdHJpbmdp
ZnkoYW5pbWF0aW9uLnN0YXJ0RGVsYXkpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5lbmREZWxh
eSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJlbmREZWxheTogIiArIEpTT04uc3Ry
aW5naWZ5KGFuaW1hdGlvbi5lbmREZWxheSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJh
dGlvbkNvdW50KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvbkNvdW50
OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KSk7CisgICAgICAg
IGlmIChhbmltYXRpb24uaXRlcmF0aW9uU3RhcnQpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiaXRlcmF0aW9uU3RhcnQ6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0
aW9uU3RhcnQpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbikKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25EdXJhdGlvbjogIiArIEpTT04u
c3RyaW5naWZ5KGFuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbikpOworICAgICAgICBpZiAoYW5p
bWF0aW9uLnRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coInRp
bWluZ0Z1bmN0aW9uOiAiICsgSlNPTi5zdHJpbmdpZnkoU3RyaW5nKGFuaW1hdGlvbi50aW1pbmdG
dW5jdGlvbikpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbikKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJwbGF5YmFja0RpcmVjdGlvbjogIiArIEpTT04u
c3RyaW5naWZ5KGFuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbikpOworICAgICAgICBpZiAoYW5p
bWF0aW9uLmZpbGxNb2RlKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coImZpbGxNb2Rl
OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLmZpbGxNb2RlKSk7CisgICAgICAgIGlmIChh
bmltYXRpb24ua2V5ZnJhbWVzLmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coImtleWZyYW1lczoiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuanNvbihhbmltYXRp
b24ua2V5ZnJhbWVzLCBqc29uS2V5ZnJhbWVGaWx0ZXIpOworICAgICAgICB9CisKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5uZXdsaW5lKCk7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgorICAg
IH07CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2Fp
dEFuaW1hdGlvbkRlc3Ryb3llZCA9IGFzeW5jIGZ1bmN0aW9uKGFuaW1hdGlvbklkZW50aWZpZXIp
IHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtUmVtb3ZlZEV2ZW50ID0gYXdh
aXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0ku
Q29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCkKKworICAgICAgICBJbnNwZWN0b3JUZXN0LnBh
c3MoIkFuaW1hdGlvbiBkZXN0cm95ZWQuIik7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFu
aW1hdGlvbkNvbGxlY3Rpb25JdGVtUmVtb3ZlZEV2ZW50LmRhdGEuaXRlbTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChhbmltYXRpb24uYW5pbWF0aW9uSWQsIGFuaW1hdGlvbklk
ZW50aWZpZXIsICJSZW1vdmVkIGFuaW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuIik7CisgICAgfTsK
KworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmNyZWF0ZUFu
aW1hdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKGFuaW1hdGlvblR5cGUsIHtzZWxlY3Rvciwga2V5ZnJh
bWVzLCBvcHRpb25zfSA9IHt9KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGlu
ZyBhbmltYXRpb24uLi5cbiIpOworCisgICAgICAgIGxldCBzdHJpbmdpZmllZFNlbGVjdG9yID0g
SlNPTi5zdHJpbmdpZnkoc2VsZWN0b3IgfHwgbnVsbCk7CisgICAgICAgIGxldCBzdHJpbmdpZmll
ZEtleWZyYW1lcyA9IEpTT04uc3RyaW5naWZ5KGtleWZyYW1lcyB8fCBbXSk7CisgICAgICAgIGxl
dCBzdHJpbmdpZmllZE9wdGlvbnMgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zIHx8IHt9KTsKKwor
ICAgICAgICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlv
bkNyZWF0ZWQoYW5pbWF0aW9uVHlwZSksCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGBjcmVhdGVBbmltYXRpb24oJHtzdHJpbmdpZmllZFNlbGVjdG9yfSwgJHtzdHJp
bmdpZmllZEtleWZyYW1lc30sICR7c3RyaW5naWZpZWRPcHRpb25zfSlgKQorICAgICAgICBdKTsK
KworICAgICAgICByZXR1cm4gYW5pbWF0aW9uOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0
LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucyA9IGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGVzdHJveWluZyBhbmltYXRp
b25zLi4uXG4iKTsKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShg
ZGVzdHJveUFuaW1hdGlvbnMoKWApOworICAgIH07Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk4OGRlMjJkMzQ4Y2VhOWFjOWFmZjNmYWQxZjE0MjUxMDc2Y2Q3ZDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5n
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9u
LnRhcmdldENoYW5nZWQgZXZlbnQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRp
b24udGFyZ2V0Q2hhbmdlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi50YXJnZXRD
aGFuZ2VkLk5ld1RhcmdldAorUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0Lgor
Q2hhbmdpbmcgdGFyZ2V0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdl
dC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkLk51bGxUYXJnZXQKK1BBU1M6
IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4KK0NoYW5naW5nIHRhcmdldC4uLgorCitQ
QVNTOiBBbmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGEgdGFyZ2V0LgorUEFTUzogQW5pbWF0aW9u
IGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4NmY3M2RhYzA0
YjFhYjM5NWJmZDBiODEzZjBmYjRmNDcwYzgzNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbApAQCAtMCwwICsxLDg1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkgeworICAgIHdpbmRvdy5hbmltYXRpb24gPSBk
b2N1bWVudC5ib2R5LmFuaW1hdGUoW10pOworCisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIkFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OZXdUYXJnZXQiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBn
aXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAg
ICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIu
YW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChh
bmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRp
b24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAg
ICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2lu
ZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBl
ID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJl
IGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IG9sZFRhcmdldCA9IGF3YWl0
IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQob2xkVGFyZ2V0IGluc3RhbmNlb2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlv
biBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNoYW5naW5nIHRhcmdldC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFs
bChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2
ZW50LlRhcmdldENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0LnRhcmdldCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IG5l
d1RhcmdldCA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KCk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobmV3VGFyZ2V0IGluc3RhbmNlb2YgV0kuRE9N
Tm9kZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbChuZXdUYXJnZXQsIG9sZFRhcmdldCwgIkFuaW1h
dGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJn
ZXRDaGFuZ2VkLk51bGxUYXJnZXQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1
cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAor
ICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJh
eS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJl
IHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmlt
YXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAg
ICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmlt
YXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAg
ICAgICAgbGV0IG9sZFRhcmdldCA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0
KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQob2xkVGFyZ2V0IGluc3Rh
bmNlb2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5naW5nIHRhcmdldC4uLlxuIik7Cisg
ICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9u
LmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpLAorICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZm
ZWN0LnRhcmdldCA9IG51bGxgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQg
bmV3VGFyZ2V0ID0gYXdhaXQgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0TnVsbChuZXdUYXJnZXQsICJBbmltYXRpb24gc2hv
dWxkIG5vdCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdE5vdEVxdWFsKG5ld1RhcmdldCwgb2xkVGFyZ2V0LCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91
bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2Vk
IGV2ZW50LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sCmluZGV4IGQ0ZTExMWZkOWQ4NTM3
MTVlNDQ2MzMzNmI0YmQwNzgyNzhjYWY2MWUuLjJkNjI3NGI3ZjU1NDdkZWI4MjgzM2I5ZmFhNWMy
M2JmMDBjZmIwNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29u
dGV4dC1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9j
b250ZXh0LWF0dHJpYnV0ZXMuaHRtbApAQCAtMjAsOSArMjAsOSBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhh
dCBjcmVhdGVkIGNhbnZhc2VzIGhhdmUgdGhlIGNvcnJlY3QgdHlwZSBhbmQgYXR0cmlidXRlcyBz
ZW50IHRvIHRoZSBmcm9udGVuZC4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCkKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCkKICAgICAgICAgICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgICAgICAg
ICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiQWRkZWQgY2FudmFzLiIpOwogCiAgICAgICAgICAgICAgICAgICAgIGxl
dCBjb250ZXh0RGlzcGxheU5hbWUgPSBXSS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlw
ZShjb250ZXh0VHlwZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbAppbmRleCBiYzE4MWY2MmYyZDRmNDNlYjRhMWFi
ZjFkOWY4MzZmY2UzZDJiYjVmLi5iMTQwZjExOGQwODg2Y2I3NTgwMmZhMTU0MGNhNWY4NTc2YWM2
YTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250
ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRl
LWNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTM0LDE0ICszNCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGF0dGFjaGVkIEdQVUNhbnZhc0Nv
bnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURl
dmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQg
PSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRk
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQp
ID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQu
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAg
ICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAg
ICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQXR0YWNoZWRDYW52YXMoImdwdSIp
YCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxk
IG5vdCBiZSBjcmVhdGVkIGZvciBhdHRhY2hlZCBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29u
bmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTUyLDE0ICs1MiwxNCBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGRldGFj
aGVkIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQg
b2YgdGhlIFdlYkdQVURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAg
ICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNh
bnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChldmVudC50YXJnZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
UFUpOworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50
LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7
CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV0YWNo
ZWRDYW52YXMoImdwdSIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVy
KTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3Rv
ciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBkZXRhY2hlZCBHUFVDYW52YXNDb250
ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTcw
LDE0ICs3MCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVu
c3VyZSB0aGF0IENTUyBHUFVDYW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFz
LCBpbnN0ZWFkIG9mIHRoZSBXZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsK
ICAgICAgICAgICAgIGxldCBjcmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVu
ZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR1BVKTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChldmVudC5kYXRhLml0ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHUFUpOwogICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNy
ZWF0ZUNTU0NhbnZhcygiZ3B1IiwgImNzcy1jYW52YXMiKWApCiAKLSAgICAgICAgICAgIFdJLmNh
bnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNh
bnZhc0FkZGVkLCBsaXN0ZW5lcik7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgbGlzdGVuZXIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNl
KGNyZWF0ZWQsICJJbnNwZWN0b3IgY2FudmFzIHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgQ1NT
IEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAg
ICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbApp
bmRleCBlOGZjYmZlMDA3M2MxOWIzODVjNDZiOTdkNDE1ZmY4OTdiYWYxZTIxLi45MzdjMWYzNGJi
YTk2YjU3MDExYTMzMTllOGE1NzgyYzE4NDMyY2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLmV4dGVuc2lvbnMuZW5hYmxlIiwKICAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGVuYWJsaW5nIGFuIGV4dGVuc2lvbiBub3RpZmllcyB0
aGUgZnJvbnRlbmQuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAg
ICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52
YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdM
KTsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52
YXNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgV2ViR0wgY2Fu
dmFzLiIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL21lbW9yeS5odG1sCmluZGV4IDJhNDllMDNhMTg4OGVlODU1ZWJiYjNhZjE4ODQzYmNlM2Uy
YmRiMWMuLjRiZmQ3YTZjZWFiNTNmYzVkOWI4ZTcxM2I4NTNkMjc1ZTAxNzNlNzEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbApAQCAtMjgsNyArMjgsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgLy8gcGVyZm9ybWVkIG9uIHRoYXQgY2FudmFzIHRo
YXQgcmVxdWlyZXMgdGhlIGltYWdlIGJ1ZmZlci4gIEEgYmxhbmsgY2FudmFzIHRoYXQgd2FzCiAg
ICAgICAgICAgICAvLyBqdXN0IGNyZWF0ZWQgd2lsbCBub3QgaGF2ZSBhIGJ1ZmZlciwgc28gaXRz
IG1lbW9yeSBjb3N0IHdpbGwgYmUgMC9OYU4uCiAKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAgICAg
IGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgp
IHsKICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgMkQgY2FudmFzLiIpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgbmFtZTogIkNhbnZhcy5tZW1vcnkuY2FudmFzTWVtb3J5Q2hhbmdlZCIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBtZW1vcnkgY29zdCBpcyB1cGRhdGVkIHdoZW4gdGhl
IGJhY2tlbmQgdmFsdWUgY2hhbmdlcy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5m
aWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAg
ICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgi
TWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKaW5kZXggNGQzY2ZlOWI4ZTZlOTc0
MGQ0ZWNhNjc3OTRhNDVhNGY5ZWVjNjhkMS4uYmUwOGEyMDQxMzAyYzM3NzYxNGNjMzNlMTM5NGEw
OTAxNzUyZTJiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5o
dG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJD
YW52YXMuQWN0aW9uUGFyYW1ldGVyTmFOIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IE5hTiBpcyBjb252ZXJ0ZWQgaW50byB0aGUgcHJvcGVyIHZhbHVlIGZvciBzZXJpYWxpemF0
aW9uLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBj
YW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQg
YmUgYXQgbGVhc3Qgb25lIGNhbnZhcyBjb250ZXh0LiIpOwogCiAgICAgICAgICAgICBjYW52YXMu
YXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTU4LDcgKzU4
LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5NdWx0aXBsZVJl
Y29yZGluZyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBtdWx0aXBsZSByZWNv
cmRpbmdzIGFyZSBhYmxlIHRvIGJlIHN0YXJ0ZWQvc3RvcHBlZCBhdCB0aGUgc2FtZSB0aW1lLiIs
CiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFz
ZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOworICAgICAgICAgICAgbGV0IGNhbnZhc2Vz
ID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAyLCAiVGhlcmUg
c2hvdWxkIGJlIHR3byBjYW52YXMgY29udGV4dHMuIik7CiAKICAgICAgICAgICAgIGNhbnZhc2Vz
WzFdLmF3YWl0RXZlbnQoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQpCkBAIC0xMTIs
NyArMTEyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5Ob0Fj
dGlvbnMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYSBjYW52YXMgaXMgc3Rp
bGwgYWJsZSB0byBiZSByZWNvcmRlZCBhZnRlciBzdG9wcGluZyBhIHJlY29yZGluZyB3aXRoIG5v
IGFjdGlvbnMuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
IGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9u
KVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNo
b3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFzIGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGxl
dCBldmVudENvdW50ID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCmluZGV4IDIzY2QwNDg2ODUwZDBhZTFiNzY3OTg3NWIw
YWYyN2EwNTFjMGY0Y2QuLmY3NGQxNWUxMDZlYTNiMDVjYTkxYjgwMWY4MWM4YTAyZjExNTA0YzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5v
ZGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50
Tm9kZXMuaHRtbApAQCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBu
YW1lOiAiQ2FudmFzLnJlcXVlc3RDbGllbnROb2Rlcy5Jbml0aWFsIiwKICAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGF0IGNyZWF0aW5nIGEgQ1NTIGNhbnZhcyBjbGllbnQgbm9kZSBpcyB0
cmFja2VkIGNvcnJlY3RseS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAg
ICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAi
VGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMuIik7CiAKICAgICAgICAgICAgIGNh
bnZhcy5yZXF1ZXN0Q2xpZW50Tm9kZXMoKGNsaWVudE5vZGVzKSA9PiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKaW5kZXggNTM1
MDk1NzYyYjM5MGYyY2UzZmI1YTk2OTZhZGU2MTEzNDMzYzJmZC4uZTljYmExZDAxMDdjM2E2N2Nl
ZjE3MmU4YWI1YTlhNGE0YWE5Y2EwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50MkQudmFsaWRD
YW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBk
YXRhIGZvciB0aGUgY2FudmFzIG9uIHRoZSBwYWdlIHdpdGggdGhlIGdpdmVuIHR5cGUuIiwKICAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRU
eXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0
IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5m
aW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJp
dG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggY2Q1MDgzYzI1MjUyNzRkNzlmYjhmNGJk
NzliOTc5MzhmZTMwYzYzMC4uZjUyNjZlZmRlZmQ3ZWM3NDc0ZTk2ZWJhYWZkMGJiNTczYjI1ZjJi
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC1iaXRtYXByZW5kZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMjIsNyArMjIsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50Qml0bWFw
UmVuZGVyZXIudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBi
YXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgQml0bWFwUmVuZGVyZXIgY2FudmFzIG9uIHRoZSBw
YWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
KyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCmluZGV4IGFlYjgxZWYyN2QzYzk4MDU4NDk3
OTk2YTE3OWJkNjRhNWJmZTliZWYuLjcwYzIxZmU0MzM5NjkxNTk2MDkxMjI4NDU2NmFmMmY3M2Q1
OGI5NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RDb250ZW50LXdlYmdsLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q29udGVudFdlYkdMLnZhbGlkQ2FudmFzSWQi
LAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3Ig
dGhlIFdlYkdMIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCmluZGV4IDZiMDNkNWVjN2U1
OWQwMjY2ODdjNmI3ZjBkYjI4MDZlMTYzYWVjY2YuLmY3YjU1ZjRhM2RmYzA4NDNhZWY3ODgwYjlm
Nzk3NDBjZTE1YTA4NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbApAQCAtMjEsNyArMjEsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wyLnZh
bGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29k
ZWQgZGF0YSBmb3IgdGhlIFdlYkdMMiBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIp
OwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1p
c3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAppbmRleCBlNWM2MTQ3ZTM0N2JjMzY5
ZTJjMDVjYzg0MTY2ZDgwNmE3MWMwNjE2Li5kY2M0YmNjZWU3NWY0YTY5Mzg0NWJiZGVlNzEyM2Fm
ZmUyYTc5MDUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3ROb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9k
ZS5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6
ICJDYW52YXMucmVxdWVzdE5vZGUudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiR2V0IHRoZSBub2RlIGlkIGZvciBlYWNoIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlczsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5
LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKICAgICAgICAgICAgIGxl
dCBleHBlY3RlZExlbmd0aCA9IGNhbnZhc2VzLmxlbmd0aDsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGV4cGVjdGVkTGVuZ3RoID09PSAzLCAiVGhlIHBhZ2UgaGFzIDMgY2FudmFz
ZXMuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2
ZUNvbnRleHQtMmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtMmQuaHRtbAppbmRleCBjNDFjYzZiYzc0YTMyNDE5MjBiM2Q2YjVjM2Q5YjNjNmJmZGE5
NWQxLi5mZTE0MTE3OWI3Y2FkYTNiYjU4NWE4ODg4NGRlNmJiNjM0ZTc0MzhiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCkBA
IC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJl
c29sdmVDb250ZXh0MkQudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJT
aG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZp
ZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAg
ICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggODYyNTI5MjY1YzRkZDZi
MjliMjk2Nzg4NDQxY2VmOWU2NzdiOWIxMC4uMjk3ZDQ0MWUxNGZhNGIxYmQzOTZkYzA1NGY4NWI4
ZDkzZjlhZTVjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
bHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMTcsNyArMTcs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4
dEJpdG1hcFJlbmRlcmVyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
U2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlm
aWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
KyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCmluZGV4IDk1YWRmMTJjMDkzYWRmMzBjNDdk
MjkyOTkyMzQzZGNmMDFjY2U4N2UuLjJhNzBmYTRhMGZiMTdmZmExOTQ0NDc1MTljYjM5ZTU4MGI5
MzVlNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29s
dmVDb250ZXh0LXdlYmdsLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHRXZWJHTC52YWxpZElkZW50aWZpZXJg
LAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9y
IHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCmluZGV4IDExNTFmOTE3YTdh
MjNlNmZlMzMyYjQzYTlhMzQwNmE5Y2ZlOTBhNTQuLmQ4ZTA4MzFlNmJjM2EyOTY1ZThkNDJjZmQ1
ODdlMmRmYTE0ZDJjNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMMi52YWxp
ZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxp
ZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFy
cmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlz
c2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKaW5k
ZXggZGMwMGVmMTIzN2E2N2I4OTA1ZjM4MGRjZWNmNmE3OWNlYjYzMjY3Ni4uZTkyNWIyNzE2NDhm
NDQ0YzIzYzlkMmE4NWNiODUyMDYyNGNiNjI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sCkBAIC0yMiwxNCAr
MjIsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNv
bnRleHRXZWJHUFUudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91
bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIu
IiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgIlRoZXJlIHNob3VsZCBiZSBu
byBjYW52YXNlcy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSwgIlRoZXJlIHNob3VsZCBiZSBubyBjYW52
YXNlcy4iKTsKIAotICAgICAgICAgICAgbGV0IFtjYW52YXNBZGRlZEV2ZW50XSA9IGF3YWl0IFBy
b21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCksCisgICAgICAgICAgICBsZXQgW2Nh
bnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpLAogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZURldmljZSgpYCksCiAgICAgICAgICAgICBdKTsK
IAotICAgICAgICAgICAgbGV0IHtjYW52YXN9ID0gY2FudmFzQWRkZWRFdmVudC5kYXRhOworICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IGNhbnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRh
Lml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5
cGUsIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUsICJBZGRlZCBjYW52YXMgc2hvdWxkIGJl
IGEgV2ViR1BVIGRldmljZS4iKTsKIAogICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAi
dGVzdCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNl
cy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKaW5kZXggM2E0NjA0NTUy
NTEwMTgyYmJlMmVmMzU1NzIzYTQxZTA0Mjg5ZDYyZi4uMTU5MTU4MDI1OTAyM2I5ZTIzOGU3MWJi
NWM4NTVhYTdjODY0ODFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwpA
QCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiBkZXN0cm95Q2FudmFzZXMoKSB7CiAgICAgd2luZG93
LmNvbnRleHRzID0gW107CiAKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZh
cyBlbGVtZW50IGlzIGRlc3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRv
ZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50
cy4KKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4K
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9
CiAKQEAgLTQzLDkgKzQzLDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7
CiAgICAgbGV0IHN1aXRlID0gbnVsbDsKIAogICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzQWRkZWQo
Y29udGV4dFR5cGUpIHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVu
dChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKQorICAgICAgICByZXR1cm4gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtQWRkZWQpCiAgICAgICAgIC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9
IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIGxldCBjb250ZXh0RGlzcGxheU5hbWUgPSBX
SS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlwZShjb250ZXh0VHlwZSk7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5jb250ZXh0VHlwZSwgY29udGV4
dFR5cGUsIGBDYW52YXMgY29udGV4dCBzaG91bGQgYmUgJHtjb250ZXh0RGlzcGxheU5hbWV9LmAp
OwogCkBAIC03Myw5ICs3Myw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4g
ewogICAgIH0KIAogICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlm
aWVyKSB7Ci0gICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkKQorICAgICAgICByZXR1cm4gV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtUmVtb3ZlZCkKICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZl
bnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjYW52
YXMuaWRlbnRpZmllciwgY2FudmFzSWRlbnRpZmllciwgIlJlbW92ZWQgY2FudmFzIGhhcyBleHBl
Y3RlZCBJRC4iKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtODksNyArODksNyBAQCBUZXN0UGFn
ZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgICAgIG5hbWU6IGAke3N1aXRl
Lm5hbWV9Lk5vQ2FudmFzZXNgLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0
IHRoZSBDYW52YXNNYW5hZ2VyIGhhcyBubyBjYW52YXNlcyBpbml0aWFsbHkuIiwKICAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgMCwgIkNhbnZh
c01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
c2l6ZSwgMCwgIkNhbnZhc01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CiAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11
dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNv
cmRpbmctdXRpbGl0aWVzLmpzCmluZGV4IDYwMTQ2ZmYzODQ4N2ZkMTkzZTIzZDMzNzQ3ZGYzMTA0
NmNjNjgxZjMuLjc3YTBlYTM0M2I2NWY0MjRiYWM2ZGUzNzVlMzNiZjJjYWJkY2NiZDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11
dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
cmVjb3JkaW5nLXV0aWxpdGllcy5qcwpAQCAtODYsNyArODYsNyBAQCBUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9CiAKICAgICB3aW5kb3cuZ2V0Q2FudmFzID0gZnVu
Y3Rpb24odHlwZSkgewotICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IHR5cGUpOwor
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlw
ZSk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwg
YFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMgd2l0aCB0eXBlICIke3R5cGV9Ii5gKTsK
ICAgICAgICAgaWYgKGNhbnZhc2VzLmxlbmd0aCAhPT0gMSkKICAgICAgICAgICAgIHJldHVybiBu
dWxsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
c2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcwppbmRleCA1
Mjc1YzQ0MWFhZmM3M2I5MTA3OTQ1YjNjZDczZjljYTY3ZTFlNjVlLi5mNDNlNmYyNzdjZGM3ZDA1
OGQwOTk0MWE3NjY3NzYzNGUwNWU2Y2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0
aWxpdGllcy13ZWJnbC5qcwpAQCAtMzksNyArMzksNyBAQCBmdW5jdGlvbiBkZWxldGVQcm9ncmFt
KCkgewogZnVuY3Rpb24gZGVsZXRlQ29udGV4dCgpIHsKICAgICBjb250ZXh0ID0gbnVsbDsKICAg
ICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlzIGRlc3Ryb3ll
ZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBkb2VzIG5vdCBy
ZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1lb3V0KCgpID0+
IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKQEAgLTQ3LDggKzQ3LDkgQEAg
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgbGV0IHN1aXRlID0gbnVs
bDsKIAogICAgIGZ1bmN0aW9uIHdoZW5Qcm9ncmFtQWRkZWQoY2FsbGJhY2spIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09
IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5n
dGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBj
YW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5l
cihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAg
ICBsZXQgcHJvZ3JhbSA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIkFkZGVk
IFNoYWRlclByb2dyYW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
cHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3Vs
ZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTU3LDggKzU4LDkgQEAgVGVzdFBhZ2UucmVn
aXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gd2hlblByb2dy
YW1SZW1vdmVkKGNhbGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUg
b25lIGNhbnZhcy4iKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0g
QXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQg
b25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBjYW52YXNlc1swXS5zaGFkZXJQcm9ncmFt
Q29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQu
ZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0g
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3Rh
bmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52
YXMuIik7CkBAIC03NCw3ICs3Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkg
PT4gewogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRlclByb2dyYW1B
ZGRlZCBpcyBzZW50IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQgaXMg
ZW5hYmxlZC4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAg
ICAgICAgICAvLyBUaGlzIGNhbid0IHVzZSBgYXdhaXRFdmVudGAgc2luY2UgdGhlIHByb21pc2Ug
cmVzb2x1dGlvbiBoYXBwZW5zIG9uIHRoZSBuZXh0IHRpY2suCi0gICAgICAgICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICB3
aGVuUHJvZ3JhbUFkZGVkKChwcm9ncmFtKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwpAQCAtMTEzLDcgKzExNSw3IEBAIFRl
c3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNl
OwogCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQp
ID0+IHsKICAgICAgICAgICAgICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdw
dS5qcwppbmRleCBmZTQ4ZDhmZDg1MTE0NjU4OThmZDNiMDQ1MGRlODk1MTM3NDQ5YmU0Li5iOGRl
MzRjZmE4Nzg2ODVmOTY1YTlmOTBiYjRiZjhhYWIzNTczNjBlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJncHUuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCkBAIC02NCw3ICs2NCw3IEBAIGFzeW5jIGZ1
bmN0aW9uIGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvZGUgPSByZW5kZXJQaXBlbGluZVNvdXJjZSkg
ewogZnVuY3Rpb24gZGVsZXRlRGV2aWNlKCkgewogICAgIGRldmljZSA9IG51bGw7CiAgICAgLy8g
Rm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBkZXZpY2UgaXMgZGVzdHJveWVkLCBvdGhlcndpc2Ug
dGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFz
LmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50
Lmh0bWwKaW5kZXggZDk4ZjBmZWE0ZTkyYzE1Mjk3ODExMmMyZDA3MGNkNzRlOTU5ZDRlMi4uNTVl
NTUyNDczMDgzYWEyZDFiYWViMGU4ODdlZTA1ZmMyOGYwYTBlNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9D
YXB0dXJlRnJhbWVDb3VudC5odG1sCkBAIC03Nyw4ICs3Nyw4IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJlY29yZGluZ1N0b3BwZWQoY2FudmFzLCBldmVu
dC5kYXRhLnJlY29yZGluZyk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2Vy
LkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2Fu
dmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFz
ID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCghY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKIAogICAgICAgICAgICAgICAgICAgICBjYW52
YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwgaGFu
ZGxlUmVjb3JkaW5nU3RhcnRlZFdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUu
aHRtbAppbmRleCBkNDBmYWI3ODM4MTMwY2M5NGIwM2JmOTFkOTZmMjI3MDkwNGViMDEzLi5kNWZi
ODc3MmMwYjM3NWM0MGQ1ZDdhMGU0MjAyYTU0ZmY1ZDUyZDBhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJl
bW92ZS13ZWJncHUuaHRtbApAQCAtMTQsOSArMTQsMTEgQEAgd2luZG93LmJlZm9yZVRlc3QgPSBh
c3luYyBmdW5jdGlvbigpIHsKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFVg
KTsKIAotICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAg
IGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJU
aGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworCisgICAgbGV0IGNhbnZhcyA9IGNh
bnZhc2VzWzBdOwogICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3Vs
ZCBiZSBhIGNhbnZhcy4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52
YXMuIik7CiAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7
CiAKICAgICBhc3luYyBmdW5jdGlvbiBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgewpA
QCAtMTE4LDcgKzEyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOwogCi0g
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVu
ZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNo
YXJlZFZlcnRleEZyYWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAppbmRleCAzNGQwMmFi
MTdlOTA1YTRiNzhhMDI2NTUwNDlhZTI4ZGIzMzEwODcxLi44Y2Y5YTQ3NTYyMjQyMWM4MzY4OWM5
YWQzN2QyMTkwYTAxY2U5ZTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVy
dGV4RnJhZ21lbnQuaHRtbApAQCAtNTcsMTAgKzU3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGluZyByZW5kZXIgcGlwZWxpbmUuLi4iKTsK
ICAgICAgICAgbGV0IGV2YWx1dGVQcm9taXNlID0gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZShgY3JlYXRlUmVuZGVyUGlwZWxpbmUoKWApOwogCi0gICAgICAgIGlmICghV0kuY2FudmFzTWFu
YWdlci5jYW52YXNlcy5sZW5ndGgpCi0gICAgICAgICAgICBhd2FpdCBXSS5jYW52YXNNYW5hZ2Vy
LmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCk7CisgICAgICAg
IGlmICghV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpemUpCisgICAgICAgICAg
ICBhd2FpdCBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5D
b2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCk7CiAKLSAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9t
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdQVSwgIkNhbnZhcyBzaG91bGQgYmUgV2ViR1BVLiIpOwogCiAgICAgICAgIGxldCBpdGVt
QWRkZWRFdmVudCA9IGF3YWl0IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hd2FpdEV2
ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVz
cy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCA2NmJkYmFiOWVlZTMxNjc5MGY4
ZjI2NzQ2ZjkzZTIxZWQ0YzNkZjFlLi5kYmY2MzUxZTlhMDkyNDYwYWJlZTlkMzRkOTIwNmIwZjcz
MzZiM2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0
LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0
ZWQudHh0CkBAIC01NCw2ICs1NCw3NCBAQCBGQUlMOiBleHBlY3RGYWxzZShbXSkKICAgICBFeHBl
Y3RlZDogZmFsc2V5CiAgICAgQWN0dWFsOiBbXQogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogSW5z
cGVjdG9yVGVzdC5leHBlY3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFTUworUEFTUzogZXhwZWN0RW1w
dHkobnVsbCkKK1BBU1M6IGV4cGVjdEVtcHR5KCIiKQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitQ
QVNTOiBleHBlY3RFbXB0eShbXSkKK1BBU1M6IGV4cGVjdEVtcHR5KHt9KQorUEFTUzogZXhwZWN0
RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisg
ICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5
KHsidGVzdCI6MX0pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7InRlc3QiOjF9
CitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0
dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0eQor
ICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0
eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVk
IHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdHJ1ZQorRkFJTDogZXhwZWN0RW1wdHkg
c2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiBmYWxz
ZQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmpl
Y3Q6CisgICAgQWN0dWFsOiAxCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxl
ZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHVuZGVmaW5lZAorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFT
UworUEFTUzogZXhwZWN0Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoeyJ0
ZXN0IjoxfSkKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KCJ0ZXN0IikKK1BBU1M6IGV4cGVjdE5vdEVt
cHR5KHt9KQorUEFTUzogZXhwZWN0Tm90RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlM
OiBleHBlY3ROb3RFbXB0eShudWxsKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1
YWw6IG51bGwKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KCIiKQorICAgIEV4cGVjdGVkOiBub3QgZW1w
dHkKKyAgICBBY3R1YWw6ICIiCitGQUlMOiBleHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3Rl
ZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0Tm90RW1wdHkoW10pCisg
ICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogW10KK0ZBSUw6IGV4cGVjdE5vdEVt
cHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBl
eHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7
fQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1v
YmplY3Q6CisgICAgQWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90
IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBl
eHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAg
ICBBY3R1YWw6IDEKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdp
dGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdW5kZWZpbmVkCisKIC0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdE51bGwKIEV4cGVjdGVkIHRvIFBBU1MKIFBBU1M6
IGV4cGVjdE51bGwobnVsbCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCmlu
ZGV4IDkxZTg1ODBjN2NiNjI3MzQ1ODI1NDAyNDk3MjAwOWU5OWNkYTgzNGQuLmUzODY0YTAzYzRl
MDk0MWNhOGMwMmYyZjBhNzg2MjYzOTg4YjAxMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1m
dW5jdGlvbnMuaHRtbApAQCAtNDgsNiArNDgsMjAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgYWRk
VGVzdENhc2UoZXhwZWN0VGhhdFRlc3RDYXNlKTsKICAgICBhZGRJbnZlcnNlVGVzdENhc2UoImV4
cGVjdEZhbHNlIiwgZXhwZWN0VGhhdFRlc3RDYXNlKTsKIAorICAgIGxldCBleHBlY3RFbXB0eVRl
c3RDYXNlID0geworICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3RFbXB0eSIsCisgICAgICAg
IHBhc3NpbmdJbnB1dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBuZXcgU2V0XSwKKyAg
ICAgICAgZmFpbGluZ0lucHV0czogWyJ0ZXN0Iiwge3Rlc3Q6IDF9LCBbInRlc3QiXSwgbmV3IE1h
cChbWyJ0ZXN0IiwgMV1dKSwgbmV3IFNldChbInRlc3QiXSksIHRydWUsIGZhbHNlLCAxLCB1bmRl
ZmluZWRdLAorICAgIH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0RW1wdHlUZXN0Q2FzZSk7CisK
KyAgICBsZXQgZXhwZWN0Tm90RW1wdHlUZXN0Q2FzZSA9IHsKKyAgICAgICAgZnVuY3Rpb25OYW1l
OiAiZXhwZWN0Tm90RW1wdHkiLAorICAgICAgICBwYXNzaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVz
dDogMX0sIFsidGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJd
KV0sCisgICAgICAgIGZhaWxpbmdJbnB1dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBu
ZXcgU2V0LCB0cnVlLCBmYWxzZSwgMSwgdW5kZWZpbmVkXSwKKyAgICB9OworICAgIGFkZFRlc3RD
YXNlKGV4cGVjdE5vdEVtcHR5VGVzdENhc2UpOworCiAgICAgbGV0IGV4cGVjdE51bGxUZXN0Q2Fz
ZSA9IHsKICAgICAgICAgZnVuY3Rpb25OYW1lOiAiZXhwZWN0TnVsbCIsCiAgICAgICAgIHBhc3Np
bmdJbnB1dHM6IFtudWxsXSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBlZWI2MTgxNWRiOGRhZTEwODI4ODU1ZjNjMzg2N2QyZmEyODQ5ODZj
Li45MjE3NmU0OTlkMGE4NmViMDU2ZjZkNGRmYzUxODdhNGZhY2UxMzVhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjIsNiArMTYyLDEw
IEBAIGludGVyc2VjdGlvbi1vYnNlcnZlciBbIFNraXAgXQogIyB0ZXN0UnVubmVyLnF1ZXVlTG9h
ZCgpIGRvZXMgbm90IHN1cHBvcnQgbG9hZGluZyBkYXRhIFVSTHMgaW4gTWFjIFdLMQogaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbmF2aWdhdGUtc2VsZi10by1kYXRh
LXVybC5odG1sIFsgU2tpcCBdCiAKKyMgQ1NTIGFuaW1hdGlvbnMvdHJhbnNpdGlvbnMgYXJlIG5v
dCBiYWNrZWQgYnkgV2ViIEFuaW1hdGlvbnMKK2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LWNzcy1hbmltYXRpb24uaHRtbCBbIFNraXAgXQoraW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3lj
bGUtY3NzLXRyYW5zaXRpb24uaHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAjIEVuZCBmZWF0dXJlcyBub3Qgc3VwcG9ydGVkIGluIFdlYktpdDEKICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386879</attachid>
            <date>2020-01-06 13:01:54 -0800</date>
            <delta_ts>2020-01-27 15:10:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20200106140152.patch</filename>
            <type>text/plain</type>
            <size>323569</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQxMjAxNWYzZjIyMzRiOGI5M2EyOTc3YmViMzA5
NjFkODYxNTNkMGQuLjlhZmMyM2VjMTBiN2U1OWZiMzA4M2VmMzlhMDE1MmY5M2Y2NzgyMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTA2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5q
c29uOgorICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5n
IHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAg
ICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQg
dGhlIHRhcmdldCBET00gbm9kZS4KKwogMjAyMC0wMS0wNiAgQWxleGV5IFNodmF5a2EgIDxzaHZh
aWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgUHJveHkncyBbW093blByb3BlcnR5S2V5c11d
IGlzIGluY29ycmVjdCBpbiBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZmZjMWMxODA5YTBhYjA3ODhjZmNjZDU1MmI3OTA2NGJmZGE5MmZiNy4uMjQyMjRhOTc5
ZWVmYzY3MGZhZWNlNjg5ODI0YTJmZmFhMDc5OGQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
NSBAQAorMjAyMC0wMS0wNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlz
dGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHlwZXMv
Y29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50aW5nIHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1h
dGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAgICAgICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0
aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBhbmQgdGhlIHRhcmdldCBET00gbm9kZS4KKwor
ICAgICAgICBUZXN0czogaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKKyAg
ICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24u
aHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRy
YW5zaXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3lj
bGUtd2ViLWFuaW1hdGlvbi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9u
L3JlcXVlc3RFZmZlY3RUYXJnZXQuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1h
dGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmlt
YXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sCisKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0
aW9uLmg6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJBbmltYXRpb246Omluc3RhbmNlcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQW5pbWF0aW9uOjppbnN0YW5jZXNNdXRleCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9u
OjpXZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjp+V2ViQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjplZmZlY3RUYXJnZXREaWRDaGFu
Z2UpOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NUcmFu
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYW5zaXRpb246OmNyZWF0ZSk6CisK
KyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OktleWZyYW1lRWZmZWN0OjpwYXJzZWRLZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpibGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6Omhhc0JsZW5kaW5nS2V5ZnJhbWVz
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVTaG91bGRSdW5BY2Nl
bGVyYXRlZCk6CisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gYWNjZXNzIHRoZSBsaXN0IG9mIGtl
eWZyYW1lcy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2Vi
QW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdCk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25F
ZmZlY3RUaW1pbmdJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViQW5pbWF0aW9uSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3RJbXBsKTogRGVsZXRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdl
bnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjplbmFibGVkSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3RydW1lbnRpbmdBZ2VudHM6OnNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCk6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KToKKworICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnByb3RvY29sVmFsdWVGb3JTZWNvbmRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpw
cm90b2NvbFZhbHVlRm9yUGxheWJhY2tEaXJlY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OnByb3RvY29sVmFsdWVGb3JGaWxsTW9kZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
YnVpbGRPYmplY3RGb3JLZXlmcmFtZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjplbmFibGUpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVxdWVz
dEVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OnJlc29sdmVBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUaW1pbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDcmVhdGVX
ZWJBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZpbmRBbmltYXRpb25JZCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFzc2VydEFuaW1hdGlvbik6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmJpbmRBbmlt
YXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50
Ojp1bmJpbmRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjphbmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzZXQpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3QpOiBEZWxldGVkLgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2Rl
VG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlT
ZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0
Tm9kZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVy
SFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6bW92ZVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpyZXF1ZXN0Tm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKToK
KyAgICAgICAgQWRkIGFuIG92ZXJsb2FkIGZvciBgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZGAgdGhh
dCBleHBvc2VzIGFuIGBFcnJvclN0cmluZ2AuCisKIDIwMjAtMDEtMDYgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI0NzYyNik6IElu
dHJvZHVjZWQgbWVtb3J5IHJlZ3Jlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBi
MmUyNDI1NTk1OTE0NGJkMmRiMTY4NzdiZDBiZTEzYThkNjJmYzAuLjkzNzJmN2FhYWQyZjAyY2Nm
MTAxNTA0OTdkYTg4YmJkOTM3NDYyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyOCBAQAorMjAyMC0wMS0wNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2lu
ZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qczogQWRkZWQuCisgICAg
ICAgIChXSS5BbmltYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIu
cHJvdG90eXBlLmdldCBkb21haW5zKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJv
dG90eXBlLmFjdGl2YXRlRXh0cmFEb21haW4pOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuaW5pdGlhbGl6ZVRhcmdldCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5h
Z2VyLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uQ29sbGVjdGlvbik6CisgICAgICAgIChXSS5Bbmlt
YXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgc3VwcG9ydGVkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmVuYWJsZSk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5h
Z2VyLnByb3RvdHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJv
dG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5w
cm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnBy
b3RvdHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJv
dG90eXBlLmFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2Vy
LnByb3RvdHlwZS5faGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzOgorICAgICAgICAoV0kuQW5p
bWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQpOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKTogQWRkZWQu
CisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUudGFyZ2V0Q2hhbmdlZCk6
IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmFuaW1hdGlv
bkRlc3Ryb3llZCk6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQW5p
bWF0aW9uQ29sbGVjdGlvbi5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0
aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmdldCBhbmlt
YXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmdl
dCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlw
ZS5vYmplY3RJc1JlcXVpcmVkVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9u
LnByb3RvdHlwZS5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtQWRkZWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbVJlbW92ZWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbXNDbGVhcmVkKToKKyAgICAgICAgU2ltaWxhciB0
byBgV0kuUmVzb3VyY2VDb2xsZWN0aW9uYCwgY3JlYXRlIGEgc3ViY2xhc3Mgb2YgYFdJLkNvbGxl
Y3Rpb25gIHRoYXQgbWFpbnRhaW5zIGl0J3MKKyAgICAgICAgb3duIHN1Yi1gV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbmBzIGZvciBlYWNoIHR5cGUgb2YgYFdJLkFuaW1hdGlvbi5UeXBlYC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qczogQWRkZWQuCisgICAgICAg
IChXSS5BbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmZyb21QYXlsb2FkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24pOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1vZGUpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvbklkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5w
cm90b3R5cGUuZ2V0IGJhY2t0cmFjZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBl
LmdldCBhbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0
IHN0YXJ0RGVsYXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZW5kRGVs
YXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0aW9uQ291bnQp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0aW9uU3RhcnQpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0aW9uRHVyYXRpb24pOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgdGltaW5nRnVuY3Rpb24pOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgcGxheWJhY2tEaXJlY3Rpb24pOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZmlsbE1vZGUpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uLnByb3RvdHlwZS5nZXQga2V5ZnJhbWVzKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90
b3R5cGUucmVxdWVzdEVmZmVjdFRhcmdldCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90
eXBlLmVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS50YXJn
ZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuX3VwZGF0ZUVmZmVj
dCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanM6Cisg
ICAgICAgIChXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlvbik6IEFkZGVkLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
VGFiQ29udGVudFZpZXcuanMuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3KToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbyk6CisgICAgICAgIChX
SS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmlzVGFiQWxsb3dlZCk6CisgICAgICAgIChXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgdHlwZSk6CisgICAgICAgIChXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93UmVwcmVzZW50ZWRPYmplY3QpOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmNhblNob3dS
ZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5jbG9zZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90
b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90
b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90
b3R5cGUuaW5pdGlhbExheW91dCk6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250
ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxlY3Rpb25EaWRD
aGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFi
Q29udGVudFZpZXcuY3NzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzLgorICAgICAgICBSZW5hbWUg
dGhlIENhbnZhcyBUYWIgdG8gR3JhcGhpY3MgVGFiIGFuZCBkaXNwbGF5IGZvdXIgc2VjdGlvbnM6
CisgICAgICAgICAtIENhbnZhc2VzCisgICAgICAgICAtIFdlYiBBbmltYXRpb25zCisgICAgICAg
ICAtIENTUyBBbmltYXRpb25zCisgICAgICAgICAtIENTUyBUcmFuc2l0aW9ucworCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChX
SS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmNhblNob3dSZXByZXNlbnRlZE9iamVjdCk6
CisgICAgICAgIE9ubHkgYXBwZWFyIGlmIGEgYFdJLkNhbnZhc2Agb3IgYFdJLlJlY29yZGluZ2Ag
aXMgc2VsZWN0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5nZXQgc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzKToKKyAgICAgICAgKFdJ
LkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVt
cyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmF0
dGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250
ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQpOgorICAg
ICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZUhh
bmRsZURyb3ApOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2Vk
KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hh
bmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9u
SXRlbUNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmll
d1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOgorICAgICAgICAo
V0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2spOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3
LmNzczogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3KToK
KyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmly
c3QtY2hpbGQpKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBz
ZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2
aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRlcik6CisgICAgICAgICgu
Y29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiBoMSk6
CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5o
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGlj
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAgICAgICAgKEBt
ZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAuY29udGVudC12aWV3LmdyYXBoaWNz
LW92ZXJ2aWV3KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0
KSAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIpOgor
ICAgICAgICBBZGQgc3RpY2t5IGhlYWRlcnMgZm9yIGVhY2ggb2YgdGhlIHNlY3Rpb25zIGRlc2Ny
aWJlZCBhYm92ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdBZGRl
ZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29u
dGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik6
CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9o
YW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICgu
Y29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcu
Z2V0IHByZXZpZXdIZWlnaHQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJv
dG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLnNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25D
b250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hTdWJ0aXRsZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQcmV2aWV3LmFkZFRpdGxlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXcp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVFZmZl
Y3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
aGFuZGxlVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5w
cm90b3R5cGUuX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzOiBBZGRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uKToKKyAgICAgICAgKC5jb250ZW50
LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVy
ID4gLnRpdGxlcyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+
IC50aXRsZXMgPiAudGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5KTo6YmVmb3Jl
KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uOmhvdmVyID4gaGVhZGVy
ID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHN2Zyk6CisgICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcgPiBzdmcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyByZWN0KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnBy
ZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRoKToKKyAgICAgICAgKC5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGNpcmNsZSk6CisgICAg
ICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBs
aW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzcGFu
KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6CisgICAgICAgIChA
bWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlv
biA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAoQG1lZGlhIChwcmVm
ZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyk6CisgICAgICAgIFZpc3VhbGl6ZSB0aGUgc3RhcnQvZW5kIGRlbGF5IGFuZCBrZXlmcmFtZXMg
b2YgdGhlIGdpdmVuIGFuaW1hdGlvbiBhcyBhIHNlcmllcyBvZiBiZXppZXIKKyAgICAgICAgY3Vy
dmVzIHNlcGFyYXRlZCBieSBtYXJrZXJzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFu
aW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNldCBhbmltYXRpb24pOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5pdGlh
bExheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9u
RGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWZyZXNo
QmFja3RyYWNlU2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChX
SS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9u
VGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LnByb3RvdHlwZS5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5l
bC5jc3M6IEFkZGVkLgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRp
b24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuaGVh
ZGVyID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5p
bWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMg
LmRldGFpbHMtc2VjdGlvbik6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFu
aW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVz
IC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMpOgorICAgICAgICAoLnNpZGViYXIgPiAucGFu
ZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0
aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIC5Db2RlTWlycm9yKToK
KyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQg
PiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbik6
CisgICAgICAgIFNob3cgY29sbGVjdGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3RlZCBh
bmltYXRpb24sIGl0cyBlZmZlY3QsIGFuZCBpdHMgdGFyZ2V0LgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuQ2FudmFz
TWFuYWdlcik6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5nZXQgY2FudmFz
Q29sbGVjdGlvbik6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUu
ZGlzYWJsZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5jYW52YXNBZGRl
ZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5jYW52YXNSZW1vdmVkKToK
KyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9zYXZlUmVjb3JkaW5ncyk6IEFk
ZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX21haW5SZXNvdXJjZURp
ZENoYW5nZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5nZXQgY2FudmFz
ZXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3JlbW92
ZUNhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgIFJhdGhlciB0aGFuIGhhdmUgdGhlIGBXSS5DYW52
YXNUYWJDb250ZW50Vmlld2AgbWFpbmFpbiB0aGUgYFdJLkNhbnZhc0NvbGxlY3Rpb25gIGFuZCBo
YXZlIHRvCisgICAgICAgIGxpc3RlbiBmb3IgZXZlbnRzIGZyb20gdGhlIGBXSS5DYW52YXNNYW5h
Z2VyYCwganVzdCBoYXZlIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAgaG9sZCBvbiB0bworICAgICAg
ICBpdCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEgZ2V0dGVyIGZvciBpdC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qczoKKyAgICAgICAg
KFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZp
ZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChX
SS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWRkU2F2ZWRSZWNvcmRpbmcpOgorICAg
ICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaGlkZGVuKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdl
dCBfaXRlbU1hcmdpbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXdzKTogRGVsZXRlZC4KKyAgICAgICAgKFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVOYXZpZ2F0aW9uSXRl
bXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90
b3R5cGUuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hvd0ltYWdlR3JpZCk6IERl
bGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRl
bnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVS
ZWZyZXNoQnV0dG9uQ2xpY2tlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZp
ZXcucHJvdG90eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KTogQWRkZWQuCisg
ICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVIYW5kbGVEcm9w
KTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlh
bExheW91dCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNo
ZWQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLl9wb3B1bGF0ZUNh
bnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50
Vmlldy5wcm90b3R5cGUuc2hvd24pOiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRoZSAiTG9nIENh
bnZhcyBDb250ZXh0IiB0byBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgY2FudmFzIGVsZW1lbnQg
YnV0dG9uIGNvbnRleHQgbWVudS4KKyAgICAgICAgRHJpdmUtYnk6IGFkZCBhIGBXSS5Ecm9wWm9u
ZVZpZXdgIGZvciB3aGVuIHJlY29yZGluZyBKU09OIGZpbGVzIGFyZSBkcmFnZ2VkIG9uIHRvcC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzOgor
ICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBhbGwgc2VsZWN0b3JzIHNp
bmNlIHRoZSBDYW52YXMgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmll
dy5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVkLgorICAgICAgICAoV0kuQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0ZWRJdGVtKTogQWRkZWQuCisgICAg
ICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmFkZENvbnRlbnRWaWV3Rm9y
SXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnJlbW92
ZUNvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLnNob3dDb250ZW50UGxhY2Vob2xkZXIpOgorICAgICAgICAoV0kuQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkNvbGxl
Y3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEl0ZW0pOgorICAgICAgICAoV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2spOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0U2VsZWN0ZWRJdGVtKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50
Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAucGxhY2Vob2xk
ZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogRGVsZXRlZC4KKyAgICAgICAgKC5j
b250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgY2xpY2tpbmcgb3V0c2lkZSBv
ZiBhbnkgb2YgdGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRpc21pc3MgdGhlCisgICAgICAgIGN1
cnJlbnQgc2VsZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNvIGJlIGFibGUgdG8gZ2V0IHRoZSBj
dXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
RGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAgIChXSS5EZXRhaWxzU2VjdGlvblNp
bXBsZVJvdy5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgRW5zdXJlIHRoYXQgYDBgIGlz
IGNvbnNpZGVyZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKyAgICAgICAgKFdJLmNvbnRlbnRM
b2FkZWQpOgorICAgICAgICAoV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJlcHJlc2VudGVkT2Jq
ZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuQ29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAg
ICAgKFdJLkNvbnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICBBbGxvdyBgV0kuQW5pbWF0
aW9uYCB0byBiZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTWFp
bi5jc3M6CisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBBZGRlZC4KKyAgICAgICAg
KC5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhcik6IEFkZGVkLgorICAgICAg
ICAoLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0pOiBBZGRl
ZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBE
ZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVs
cCAubmF2aWdhdGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3
IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6IERlbGV0ZWQu
CisgICAgICAgIEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9uSXRlbUhlbHBgIHRvIGJlIHVzZWQg
aW5kZXBlbmRlbnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3YC4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRP
TU1hbmFnZXIucHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXSS5UaW1lbGluZU1hbmFn
ZXIucHJvdG90eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRlZCk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qczoKKyAgICAgICAgKFdJLkF1ZGl0
VGVzdENhc2VSZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgorICAgICAgICBBZGQgYSBmYWxsYmFj
ayBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuUmVzb3Vy
Y2VDb2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
UmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZyk6IEFkZGVkLgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdl
IGltZzpob3Zlcik6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogbW92ZSB0aGVzZSBzdHlsZXMg
dG8gdGhlIHJpZ2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3JlIHNwZWNpZmljLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAgICAoV0kuQ2FudmFzLmRp
c3BsYXlOYW1lRm9yQ29udGV4dFR5cGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxz
L1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5kaXNwbGF5TmFtZUZvclJlY29y
ZGluZ1R5cGUpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBsb2NhbGl6ZWQgc3RyaW5n
cy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcu
Y3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBhbGwgc2VsZWN0
b3JzIHNpbmNlIHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0dyYXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAgICAgICAqIExvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
VGVzdC5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzOgorICAgICAg
ICAoV0kubG9hZGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVz
cy5qczoKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5leHBlY3RFbXB0eSk6IEFkZGVk
LgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdE5vdEVtcHR5KTogQWRkZWQu
CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGF0aW9uTWVzc2FnZUZvcm1h
dCk6CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGVkVmFsdWVGb3JtYXQp
OgorICAgICAgICBBZGQgdXRpbGl0eSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgd2hldGhlciB0aGUg
Z2l2ZW4gdmFsdWUgaXMgZW1wdHk6CisgICAgICAgICAtIEFycmF5IGBsZW5ndGggPT09IDBgCisg
ICAgICAgICAtIFN0cmluZyBgbGVuZ3RoID09PSAwYAorICAgICAgICAgLSBTZXQgYHNpemUgPT09
IDBgCisgICAgICAgICAtIE1hcCBgc2l6ZSA9PT0gMGAKKyAgICAgICAgIC0gT2JqZWN0IGBpc0Vt
cHR5T2JqZWN0YAorICAgICAgICBBbnkgb3RoZXIgdHlwZSB3aWxsIGF1dG9tYXRpY2FsbHkgZmFp
bCwgYXMgbm9uLW9iamVjdHMgY2FuJ3QgYmUgImVtcHR5IiAoZS5nLiBgNDJgKS4KKwogMjAyMC0w
MS0wNiAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OKHIyMTg4MzkpOiBXZWIgSW5zcGVjdG9yOiBDb2xvciBwaWNrZXI6IHByZXNzaW5n
IEVzYyBzaG91bGQgaGlkZSBjb2xvciBwaWNrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCmluZGV4IGJlYWY4ZGUy
OGFjNzUzZTM3ZWYyYmU4OWMwMWZjYjBiZDUzZGFmYmIuLjIyZWU4ODI0Nzk5OWNkNTgyNWE1ZWEz
MTY3N2VmNmI0NzRjNjgxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgpAQCAtMTQsNiArMTQsNTEgQEAKICAg
ICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAiZW51bSI6IFsicmVhZHki
LCAiZGVsYXllZCIsICJhY3RpdmUiLCAiY2FuY2VsZWQiLCAiZG9uZSJdCiAgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJQbGF5YmFja0RpcmVjdGlvbiIsCisgICAgICAg
ICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImVudW0iOiBbIm5vcm1hbCIsICJy
ZXZlcnNlIiwgImFsdGVybmF0ZSIsICJhbHRlcm5hdGUtcmV2ZXJzZSJdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJGaWxsTW9kZSIsCisgICAgICAgICAgICAidHlw
ZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImVudW0iOiBbIm5vbmUiLCAiZm9yd2FyZHMiLCAi
YmFja3dhcmRzIiwgImJvdGgiLCAiYXV0byJdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJpZCI6ICJBbmltYXRpb24iLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwK
KyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNzc0FuaW1hdGlvbk5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYGFuaW1h
dGlvbi1uYW1lYCBDU1MgcHJvcGVydHkuIFNob3VsZCBub3QgYmUgcHJvdmlkZWQgaWYgYHRyYW5z
aXRpb25Qcm9wZXJ0eWAgaXMgYWxzbyBwcm92aWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJjc3NUcmFuc2l0aW9uUHJvcGVydHkiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYHRy
YW5zaXRpb24tcHJvcGVydHlgIENTUyBwcm9wZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBp
ZiBgYW5pbWF0aW9uTmFtZWAgaXMgYWxzbyBwcm92aWRlZC4iIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6ICJFZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVlIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJiYWNrdHJhY2UiLCAidHlwZSI6ICJhcnJheSIs
ICJpdGVtcyI6IHsgIiRyZWYiOiAiQ29uc29sZS5DYWxsRnJhbWUiIH0sICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJCYWNrdHJhY2UgdGhhdCB3YXMgY2FwdHVyZWQgd2hlbiB0aGlz
IGBXZWJBbmltYXRpb25gIHdhcyBjcmVhdGVkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiRWZmZWN0IiwKKyAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInN0YXJ0RGVsYXkiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwi
OiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmREZWxheSIsICJ0eXBlIjog
Im51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Iml0ZXJhdGlvbkNvdW50IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIk51bWJlciBvZiBpdGVyYXRpb25zIGluIHRoZSBhbmltYXRpb24uIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uU3RhcnQiLCAidHlwZSI6ICJudW1i
ZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSW5kZXggb2Ygd2hpY2ggaXRl
cmF0aW9uIHRvIHN0YXJ0IGF0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJh
dGlvbkR1cmF0aW9uIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRvdGFsIHRpbWUgb2YgZWFjaCBpdGVyYXRpb24sIG1lYXN1cmVkIGluIG1pbGxp
c2Vjb25kcy4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1pbmdGdW5jdGlvbiIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1Mg
dGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBvdmVyYWxsIGFuaW1hdGlvbi4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwbGF5YmFja0RpcmVjdGlvbiIsICIkcmVmIjogIlBsYXliYWNrRGly
ZWN0aW9uIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZmlsbE1vZGUiLCAiJHJlZiI6ICJGaWxsTW9kZSIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImtleWZyYW1lcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJLZXlmcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJLZXlmcmFtZSIs
CisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJudW1iZXIi
LCAiZGVzY3JpcHRpb24iOiAiRGVjaW1hbCBwZXJjZW50YWdlIFswLDFdIHJlcHJlc2VudGluZyB3
aGVyZSB0aGlzIGtleWZyYW1lIGlzIGluIHRoZSBlbnRpcmUgZHVyYXRpb24gb2YgdGhlIGFuaW1h
dGlvbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlYXNpbmciLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ1NTIHRpbWluZyBmdW5j
dGlvbiBmb3IgaG93IHRoZSBgc3R5bGVgIGlzIGFwcGxpZWQuIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic3R5bGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiQ1NTIHN0eWxlIGRlY2xhcmF0aW9uIG9mIHRoZSBDU1MgcHJvcGVydGll
cyB0aGF0IHdpbGwgYmUgYW5pbWF0ZWQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAg
ICAgICAgIHsKICAgICAgICAgICAgICJpZCI6ICJUcmFja2luZ1VwZGF0ZSIsCiAgICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLApAQCAtMjcsNiArNzIsMzUgQEAKICAgICAgICAgfQogICAgIF0s
CiAgICAgImNvbW1hbmRzIjogWworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJlbmFi
bGUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgQ2FudmFzIGRvbWFpbiBl
dmVudHMuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkaXNh
YmxlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNhYmxlcyBDYW52YXMgZG9tYWlu
IGV2ZW50cy4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJl
cXVlc3RFZmZlY3RUYXJnZXQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkdldHMgdGhl
IGBET00uTm9kZUlkYCBmb3IgdGhlIHRhcmdldCBvZiB0aGUgZWZmZWN0IG9mIHRoZSBhbmltYXRp
b24gd2l0aCB0aGUgZ2l2ZW4gYEFuaW1hdGlvbklkYC4iLAorICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjog
IkFuaW1hdGlvbklkIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBb
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlk
IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogInJlc29sdmVBbmltYXRpb24iLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJl
c29sdmVzIEphdmFTY3JpcHQgYFdlYkFuaW1hdGlvbmAgb2JqZWN0IGZvciBnaXZlbiBgQW5pbWF0
aW9uSWRgLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RHcm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTeW1ib2xpYyBncm91cCBuYW1lIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gcmVsZWFzZSBtdWx0aXBsZSBvYmplY3RzLiIgfQorICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2Jq
ZWN0IiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3QiIH0KKyAgICAgICAgICAgIF0KKyAg
ICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAic3RhcnRUcmFja2luZyIs
CiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU3RhcnQgdHJhY2tpbmcgYW5pbWF0aW9ucy4g
VGhpcyB3aWxsIHByb2R1Y2UgYSBgdHJhY2tpbmdTdGFydGAgZXZlbnQuIgpAQCAtMzcsNiArMTEx
LDM1IEBACiAgICAgICAgIH0KICAgICBdLAogICAgICJldmVudHMiOiBbCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogImFuaW1hdGlvbkNyZWF0ZWQiLAorICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgYSBgV2ViQW5pbWF0aW9uYCBpcyBjcmVhdGVk
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImFuaW1hdGlvbiIsICIkcmVmIjogIkFuaW1hdGlvbiIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJlZmZlY3RDaGFuZ2VkIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBlZmZl
Y3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFuZ2VkIGluIGFueSB3YXkuIiwKKyAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQi
LCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVm
ZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJUaGlzIGlzIG9taXR0ZWQgd2hlbiB0aGUgZWZmZWN0IGlzIHJlbW92ZWQgd2l0aG91dCBhIHJl
cGxhY2VtZW50LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJ0YXJnZXRDaGFuZ2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSB0YXJnZXQgb2YgYW55IGVmZmVjdCBvZiBhbnkg
YW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55IHdheS4iLAorICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjog
IkFuaW1hdGlvbklkIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogImFuaW1hdGlvbkRlc3Ryb3llZCIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciBhIGBXZWJBbmltYXRpb25gIGlzIGRlc3Ry
b3llZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInRyYWNraW5n
U3RhcnQiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgYWZ0ZXIgYHN0
YXJ0VHJhY2tpbmdgIGNvbW1hbmQuIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9DU1NBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1h
dGlvbi5jcHAKaW5kZXggN2M3MmY2MjRjMzMwYWY5NmJhNzBiN2FlNGU5MmI1MDFjYTEwMTA3ZS4u
ZmQzZWI5ZGJkZTliYzFhYjBiOTdmMGEwNzFlMDBlODBmYjgxMzEyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTM5LDYgKzQwLDkgQEAgUmVmPENTU0FuaW1h
dGlvbj4gQ1NTQW5pbWF0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3duaW5nRWxlbWVudCwgY29uc3Qg
QW5pbWF0aW9uJgogewogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDU1NBbmltYXRp
b24ob3duaW5nRWxlbWVudCwgYmFja2luZ0FuaW1hdGlvbiwgbmV3U3R5bGUpKTsKICAgICByZXN1
bHQtPmluaXRpYWxpemUob2xkU3R5bGUsIG5ld1N0eWxlKTsKKworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
Q1NTVHJhbnNpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlv
bi5jcHAKaW5kZXggZGZmNWZiMWY3OWE4OWM1NjYwYTQ5YzFiMzY0M2RkMDdkODI0MzI3MS4uYWFh
ZTVlMmQwYzYxNzIwY2QxMDhkZDZkY2U1OTUxOWNhMGFjM2UwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNDAsNiArNDEsOSBAQCBSZWY8Q1NTVHJh
bnNpdGlvbj4gQ1NTVHJhbnNpdGlvbjo6Y3JlYXRlKEVsZW1lbnQmIG93bmluZ0VsZW1lbnQsIENT
U1Byb3BlcnR5SUQgcAogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDU1NUcmFuc2l0
aW9uKG93bmluZ0VsZW1lbnQsIHByb3BlcnR5LCBnZW5lcmF0aW9uVGltZSwgYmFja2luZ0FuaW1h
dGlvbiwgbmV3U3R5bGUsIHJldmVyc2luZ0FkanVzdGVkU3RhcnRTdHlsZSwgcmV2ZXJzaW5nU2hv
cnRlbmluZ0ZhY3RvcikpOwogICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5
bGUpOwogICAgIHJlc3VsdC0+c2V0VGltaW5nUHJvcGVydGllcyhkZWxheSwgZHVyYXRpb24pOwor
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVz
dWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IDk1ODNhY2FlOGFlYmU3ODRlYWQyM2U2
Zjk3MTk5ZTdlM2UzZjA2ZTEuLjU4ODVmYmZmYTllYTk1Y2FkYzA4MmUwMGE0ZjllZWRhZDJkNzFi
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAt
MTEwMCw3ICsxMTAwLDcgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6aW52YWxpZGF0ZSgpCiAKIHZv
aWQgS2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVTaG91bGRSdW5BY2NlbGVyYXRlZCgpCiB7Ci0gICAg
bV9zaG91bGRSdW5BY2NlbGVyYXRlZCA9IGhhc0JsZW5kaW5nS2V5ZnJhbWVzKCk7CisgICAgbV9z
aG91bGRSdW5BY2NlbGVyYXRlZCA9ICEhbV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7CiAgICAg
Zm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMo
KSkgewogICAgICAgICBpZiAoIUNTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25PZlByb3Bl
cnR5SXNBY2NlbGVyYXRlZChjc3NQcm9wZXJ0eUlkKSkgewogICAgICAgICAgICAgbV9zaG91bGRS
dW5BY2NlbGVyYXRlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuaAppbmRleCA4NTYwOTgxMjYwM2JmNzMwMDU4NTUzZmZjYTMwMDExN2JmN2JmZDlkLi5k
NTllMjg5NWUwYzM5N2UzYzk0OTQ2MzI4Yzk4ODBjYzg5MjZlZWM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0byBjb21wb3NpdGUgeyBDb21wb3NpdGVPcGVy
YXRpb25PckF1dG86OkF1dG8gfTsKICAgICB9OwogCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZEtl
eWZyYW1lPiYgcGFyc2VkS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZWRLZXlmcmFt
ZXM7IH0KKwogICAgIEVsZW1lbnQqIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0Lmdl
dCgpOyB9CiAgICAgdm9pZCBzZXRUYXJnZXQoUmVmUHRyPEVsZW1lbnQ+JiYpOwogCkBAIC0xMzUs
NyArMTM3LDcgQEAgcHVibGljOgogICAgIGJvb2wgY29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0
Y2goKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01h
dGNoOyB9CiAKICAgICB2b2lkIGNvbXB1dGVEZWNsYXJhdGl2ZUFuaW1hdGlvbkJsZW5kaW5nS2V5
ZnJhbWVzKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5l
d1N0eWxlKTsKLSAgICBib29sIGhhc0JsZW5kaW5nS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4g
bV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7IH0KKyAgICBjb25zdCBLZXlmcmFtZUxpc3QmIGJs
ZW5kaW5nS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lczsgfQog
ICAgIGNvbnN0IEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4mIGFuaW1hdGVkUHJvcGVydGllcygpIGNv
bnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpOyB9CiAKICAgICBi
b29sIGNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFuaW1hdGlvbihMYXlvdXRSZWN0JikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDUxNWQzNjkw
N2Y5MTAzNTgxMDMwNjA3MDZkODg2NWFkOWNlOWM2YTcuLjNlYTM4NjRiNjllODJkNDVmN2I3YjBl
ZGRhMmIyOTI1MjdiNDU1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uY3BwCkBAIC00NCw2ICs0NCw4IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIldlYkFuaW1hdGlvblV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNTEsMTEgKzUzLDMwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYkFuaW1hdGlvbik7CiAKK0hhc2hTZXQ8V2Vi
QW5pbWF0aW9uKj4mIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFdlYkFuaW1hdGlvbio+PiBpbnN0
YW5jZXM7CisgICAgcmV0dXJuIGluc3RhbmNlczsKK30KKworTG9jayYgV2ViQW5pbWF0aW9uOjpp
bnN0YW5jZXNNdXRleCgpCit7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxMb2NrPiBt
dXRleDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU11dGV4OworICAgIHN0
ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVNdXRleCwgW10geworICAgICAgICBtdXRleC5jb25zdHJ1
Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gbXV0ZXguZ2V0KCk7Cit9CisKIFJlZjxXZWJBbmlt
YXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgQW5pbWF0aW9u
RWZmZWN0KiBlZmZlY3QpCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdlYkFu
aW1hdGlvbihkb2N1bWVudCkpOwogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAgICAg
cmVzdWx0LT5zZXRUaW1lbGluZSgmZG9jdW1lbnQudGltZWxpbmUoKSk7CisKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOwor
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNjUsNiArODYsOSBAQCBSZWY8V2ViQW5pbWF0
aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVm
ZmVjdCogZWZmZQogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAgICAgaWYgKHRpbWVs
aW5lKQogICAgICAgICByZXN1bHQtPnNldFRpbWVsaW5lKHRpbWVsaW5lKTsKKworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7
CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC03NSw2ICs5OSw5IEBAIFdlYkFuaW1hdGlv
bjo6V2ViQW5pbWF0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBtX3JlYWR5UHJvbWlz
ZS0+cmVzb2x2ZSgqdGhpcyk7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CisKKyAgICBMb2NrSG9s
ZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgaW5zdGFuY2VzKGxvY2spLmFkZCh0aGlz
KTsKIH0KIAogV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKQEAgLTgzLDYgKzExMCwxMCBA
QCBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24oKQogCiAgICAgaWYgKG1fdGltZWxpbmUpCiAg
ICAgICAgIG1fdGltZWxpbmUtPmZvcmdldEFuaW1hdGlvbih0aGlzKTsKKworICAgIExvY2tIb2xk
ZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICBBU1NFUlQoaW5zdGFuY2VzKGxvY2spLmNv
bnRhaW5zKHRoaXMpKTsKKyAgICBpbnN0YW5jZXMobG9jaykucmVtb3ZlKHRoaXMpOwogfQogCiB2
b2lkIFdlYkFuaW1hdGlvbjo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0xMTQsNiArMTQ1LDggQEAg
dm9pZCBXZWJBbmltYXRpb246OnVuc3VzcGVuZEVmZmVjdEludmFsaWRhdGlvbigpCiB2b2lkIFdl
YkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlkQ2hhbmdlKCkKIHsKICAgICB0aW1pbmdEaWRDaGFu
Z2UoRGlkU2Vlazo6Tm8sIFN5bmNocm9ub3VzbHlOb3RpZnk6Olllcyk7CisKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZygqdGhp
cyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRFZmZlY3QoUmVmUHRyPEFuaW1hdGlvbkVm
ZmVjdD4mJiBuZXdFZmZlY3QpCkBAIC0xODgsNyArMjIxLDcgQEAgdm9pZCBXZWJBbmltYXRpb246
OnNldEVmZmVjdEludGVybmFsKFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0LCBi
b29sIGQKICAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50
KCp0aGlzLCAqbmV3VGFyZ2V0KTsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdCgqdGhpcyk7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoKnRoaXMpOwogfQogCiB2b2lk
IFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmUoUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5lPiYmIHRp
bWVsaW5lKQpAQCAtMjQ3LDE0ICsyODAsMTUgQEAgdm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVs
aW5lSW50ZXJuYWwoUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5lPiYmIHRpbWVsaW5lKQogCiB2b2lk
IFdlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKEVsZW1lbnQqIHByZXZpb3VzVGFy
Z2V0LCBFbGVtZW50KiBuZXdUYXJnZXQpCiB7Ci0gICAgaWYgKCFtX3RpbWVsaW5lKQotICAgICAg
ICByZXR1cm47CisgICAgaWYgKG1fdGltZWxpbmUpIHsKKyAgICAgICAgaWYgKHByZXZpb3VzVGFy
Z2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVtb3ZlZEZyb21FbGVt
ZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOwogCi0gICAgaWYgKHByZXZpb3VzVGFyZ2V0KQot
ICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMs
ICpwcmV2aW91c1RhcmdldCk7CisgICAgICAgIGlmIChuZXdUYXJnZXQpCisgICAgICAgICAgICBt
X3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7
CisgICAgfQogCi0gICAgaWYgKG5ld1RhcmdldCkKLSAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0
aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOworICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KCp0aGlzKTsK
IH0KIAogT3B0aW9uYWw8ZG91YmxlPiBXZWJBbmltYXRpb246OnN0YXJ0VGltZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggZGE0ZDhlYzNiYzJlNTcw
YjQ4YTUxZGJjMTRhMzQ0ZTZjNDliYTA3MC4uYzk5NjEzYjI2NjFkNzY1ZjBlZTNiODZkNjE0Zjlj
ZDJiN2RjMjNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSURMVHlw
ZXMuaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KQEAgLTU0LDYgKzU1LDkgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8V2ViQW5pbWF0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBBbmlt
YXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1lbGluZSopOwogICAgIH5XZWJBbmltYXRpb24oKTsK
IAorICAgIHN0YXRpYyBIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBpbnN0YW5jZXMoY29uc3QgTG9j
a0hvbGRlciYpOworICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNNdXRleCgpOworCiAgICAgdmly
dHVhbCBib29sIGlzRGVjbGFyYXRpdmVBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU0FuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzQ1NTVHJhbnNpdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCmluZGV4IDRmMThiNThjNmNkMDFlMGI2OWE4OTUzYWQwOWE3MzljMzUy
MDQ5NmEuLmQxMzA5ODkxZGM2YjIzYjJiMjdlNWMyNWMwZTk2NDQ1MmE3Mzk4ZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCkBAIC03MjMsNiArNzIzLDkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENvbW1pdExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnQKICAgICBpZiAo
SW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JDYW52YXNBZ2VudCgpKQogICAgICAgICBjYW52YXNBZ2VudC0+ZnJhbWVOYXZpZ2F0
ZWQoZnJhbWUpOwogCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0
aW9uQWdlbnQtPmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKKwogICAgIGlmIChJbnNwZWN0b3JET01B
Z2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCkp
CiAgICAgICAgIGRvbUFnZW50LT5kaWRDb21taXRMb2FkKGZyYW1lLmRvY3VtZW50KCkpOwogCkBA
IC0xMTMzLDE1ICsxMTM2LDM3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
QXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYKICAgICAgICAgYW5p
bWF0aW9uQWdlbnQtPndpbGxBcHBseUtleWZyYW1lRWZmZWN0KHRhcmdldCwgZWZmZWN0LCBjb21w
dXRlZFRpbWluZyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRp
bmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7Ci0gICAg
aWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCi0gICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBpZiAoYXV0byogYW5pbWF0aW9u
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KGFu
aW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5p
bWF0aW9uQWdlbnQtPmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworfQorCit2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
VGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJB
bmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAg
ICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFu
aW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChhdXRvKiBh
bmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1h
dGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUYXJnZXQoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1
dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENyZWF0ZVdlYkFu
aW1hdGlvbihhbmltYXRpb24pOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewotICAgIGlmIChhdXRvKiBh
bmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCgpKQorICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1h
dGlvbkFnZW50LT53aWxsRGVzdHJveVdlYkFuaW1hdGlvbihhbmltYXRpb24pOworICAgIGVsc2Ug
aWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsRGVz
dHJveVdlYkFuaW1hdGlvbihhbmltYXRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZGJmODIyMDVkYjVi
Y2NiZTE2OWVkMGU5NDdkMWFkODNkZDg1MGZkNi4uYTI5ODFhZDk4MmRlNjg3M2Q0ZTk2Mzc0NDlj
YjdmMzJmOGMyNWMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMzA1LDcgKzMwNSwxMCBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBL
ZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICBzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZv
aWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2
b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAg
ICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0
aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlv
biYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlv
biYpOwogCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlJik7CkBAIC01
MDUsNyArNTA4LDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxB
cHBseUtleWZyYW1lRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRWxlbWVudCYsIEtl
eWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFu
aW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRhcmdldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAg
IHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIFdlYkFuaW1hdGlvbiYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0
aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0
aWMgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKQEAg
LTE0NjYsMTEgKzE0NzIsMzIgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0YXJnZXQsIEsKICAgICAgICAgd2ls
bEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0YXJnZXQsIGVm
ZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5p
bWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwo
Kmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7CisgICAgICAgIGRpZFNldFdlYkFuaW1h
dGlvbkVmZmVjdEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpCisgICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWlu
Z0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFy
Z2V0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZS
T05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkpCisgICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoKmlu
c3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAg
IGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNv
bnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgIGRpZENy
ZWF0ZVdlYkFuaW1hdGlvbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7CiB9
CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJB
bmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKaW5kZXggMWY5YTBkN2M1MzJhM2Y5MDg1
NmMxODRhMWZmYzNiMWNmMzVlZmM4Ny4uZDdhMmY3MTk1OGQ5NDNjY2NhYzQzNGVhYzkzZTMzZGFl
MjdjYzQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5n
QWdlbnRzLmNwcApAQCAtNzAsNiArNzAsNyBAQCB2b2lkIEluc3RydW1lbnRpbmdBZ2VudHM6OnJl
c2V0KCkKICAgICBtX3BhZ2VET01EZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3Bl
Y3RvckNhbnZhc0FnZW50ID0gbnVsbHB0cjsKICAgICBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCA9IG51bGxwdHI7CisgICAgbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQgPSBudWxscHRyOwogICAgIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51
bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oCmluZGV4IGY2ZmVhN2RhMjEzNjBkZDA4Y2MzZDk2NmIxNGUyYWFjNDY1NDQ5MTUuLmY1
OWMzZGJkY2FmNzhjZjljNmQ4ZGJiNDMyZGNjZjIyZjE1ZDUwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApAQCAtMTU2LDYgKzE1Niw5IEBA
IHB1YmxpYzoKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogcGVyc2lzdGVudEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ7IH0KICAgICB2b2lkIHNldFBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV9wZXJzaXN0ZW50SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQogCisgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQqIGVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CisgICAgdm9pZCBzZXRFbmFibGVkSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KKwogICAgIEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KiB0cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRU
cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBh
Z2VudCkgeyBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQogCkBA
IC0xOTAsNiArMTkzLDcgQEAgcHJpdmF0ZToKICAgICBQYWdlRE9NRGVidWdnZXJBZ2VudCogbV9w
YWdlRE9NRGVidWdnZXJBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JDYW52YXNBZ2Vu
dCogbV9pbnNwZWN0b3JDYW52YXNBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCogbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRy
IH07CisgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fZW5hYmxlZEluc3BlY3RvckFuaW1h
dGlvbkFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3Ry
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQuY3BwCmluZGV4IGRlOWEyYzU5YmRhYmMyOTA4OTZjOTYzOWNlYWJiNGUyYzQ3M2I4
MjkuLjBjNzQ0ZjI0NzdhYjIxNGUwNTEwMjM5Yjk0NGQ1NGZjNmFjMjIxZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQuY3BwCkBAIC0yOSwyOSArMjksMTg3IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZm
ZWN0LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0UGhhc2UuaCIKICNpbmNsdWRlICJDU1NB
bmltYXRpb24uaCIKKyNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKKyNp
bmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVHJhbnNpdGlvbi5oIgor
I2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiRGVjbGFyYXRpdmVBbmltYXRpb24uaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJGaWxs
TW9kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQu
aCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAiSlNXZWJBbmlt
YXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUVmZmVjdC5oIgorI2luY2x1ZGUgIktleWZyYW1l
TGlzdC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQbGF5YmFja0RpcmVjdGlvbi5o
IgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5o
IgogI2luY2x1ZGUgIldlYkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lk
ZW50aWZpZXJzRmFjdG9yeS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckVu
dmlyb25tZW50Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFj
dG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCitzdGF0aWMgT3B0aW9uYWw8ZG91
YmxlPiBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhjb25zdCBTZWNvbmRzJiBzZWNvbmRzKQorewor
ICAgIGlmIChzZWNvbmRzID09IFNlY29uZHM6OmluZmluaXR5KCkgfHwgc2Vjb25kcyA9PSBTZWNv
bmRzOjpuYW4oKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gc2Vj
b25kcy5taWxsaXNlY29uZHMoKTsKK30KKworc3RhdGljIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb24+IHByb3RvY29sVmFsdWVGb3JQbGF5
YmFja0RpcmVjdGlvbihQbGF5YmFja0RpcmVjdGlvbiBwbGF5YmFja0RpcmVjdGlvbikKK3sKKyAg
ICBzd2l0Y2ggKHBsYXliYWNrRGlyZWN0aW9uKSB7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlv
bjo6Tm9ybWFsOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246
OlJldmVyc2U6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OlBsYXliYWNrRGlyZWN0aW9uOjpSZXZlcnNlOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246
OkFsdGVybmF0ZToKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlv
bjo6UGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZTsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0
aW9uOjpBbHRlcm5hdGVSZXZlcnNlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZTsKKyAgICB9
CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
fQorCitzdGF0aWMgT3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxs
TW9kZT4gcHJvdG9jb2xWYWx1ZUZvckZpbGxNb2RlKEZpbGxNb2RlIGZpbGxNb2RlKQoreworICAg
IHN3aXRjaCAoZmlsbE1vZGUpIHsKKyAgICBjYXNlIEZpbGxNb2RlOjpOb25lOgorICAgICAgICBy
ZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Tm9uZTsKKyAg
ICBjYXNlIEZpbGxNb2RlOjpGb3J3YXJkczoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkZvcndhcmRzOworICAgIGNhc2UgRmlsbE1vZGU6
OkJhY2t3YXJkczoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlv
bjo6RmlsbE1vZGU6OkJhY2t3YXJkczsKKyAgICBjYXNlIEZpbGxNb2RlOjpCb3RoOgorICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Qm90aDsK
KyAgICBjYXNlIEZpbGxNb2RlOjpBdXRvOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6QXV0bzsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCitzdGF0aWMgUmVmPEpT
T046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZT4+IGJ1
aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKEtleWZyYW1lRWZmZWN0JiBrZXlmcmFtZUVmZmVjdCkKK3sK
KyAgICBhdXRvIGtleWZyYW1lc1BheWxvYWQgPSBKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU+OjpjcmVhdGUoKTsKKworICAgIGlmIChpczxEZWNs
YXJhdGl2ZUFuaW1hdGlvbj4oa2V5ZnJhbWVFZmZlY3QuYW5pbWF0aW9uKCkpKSB7CisgICAgICAg
IEFTU0VSVChrZXlmcmFtZUVmZmVjdC50YXJnZXQoKSk7CisgICAgICAgIGF1dG8qIHJlbmRlcmVy
ID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCktPnJlbmRlcmVyKCk7CisKKyAgICAgICAgLy8gU3lu
dGhlc2l6ZSBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGZvciBlYWNoIGtleWZyYW1lIHNvIHRoZSBm
cm9udGVuZCBjYW4gZGlzcGxheSB0aGVtLgorICAgICAgICBDb21wdXRlZFN0eWxlRXh0cmFjdG9y
IGNvbXB1dGVkU3R5bGVFeHRyYWN0b3Ioa2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCkpOworCisgICAg
ICAgIGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWVzID0ga2V5ZnJhbWVFZmZlY3QuYmxlbmRpbmdLZXlm
cmFtZXMoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibGVuZGluZ0tleWZyYW1l
cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYXV0byYgYmxlbmRpbmdLZXlmcmFtZSA9IGJs
ZW5kaW5nS2V5ZnJhbWVzW2ldOworCisgICAgICAgICAgICBBU1NFUlQoYmxlbmRpbmdLZXlmcmFt
ZS5zdHlsZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gKmJsZW5kaW5nS2V5ZnJhbWUu
c3R5bGUoKTsKKworICAgICAgICAgICAgYXV0byBrZXlmcmFtZVBheWxvYWQgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lOjpjcmVhdGUoKQorICAgICAgICAgICAgICAg
IC5zZXRPZmZzZXQoYmxlbmRpbmdLZXlmcmFtZS5rZXkoKSkKKyAgICAgICAgICAgICAgICAucmVs
ZWFzZSgpOworCisgICAgICAgICAgICBpZiAoYXV0byogdGltaW5nRnVuY3Rpb24gPSBibGVuZGlu
Z0tleWZyYW1lLnRpbWluZ0Z1bmN0aW9uKCkpCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXls
b2FkLT5zZXRFYXNpbmcodGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAgICAgICAg
IFN0cmluZ0J1aWxkZXIgc3R5bGVQYXlsb2FkQnVpbGRlcjsKKyAgICAgICAgICAgIGF1dG8mIGNz
c1Byb3BlcnR5SWRzID0gYmxlbmRpbmdLZXlmcmFtZS5wcm9wZXJ0aWVzKCk7CisgICAgICAgICAg
ICBzaXplX3QgY291bnQgPSBjc3NQcm9wZXJ0eUlkcy5zaXplKCk7CisgICAgICAgICAgICBmb3Ig
KGF1dG8gY3NzUHJvcGVydHlJZCA6IGNzc1Byb3BlcnR5SWRzKSB7CisgICAgICAgICAgICAgICAg
LS1jb3VudDsKKyAgICAgICAgICAgICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0
eUN1c3RvbSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAg
ICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZChnZXRQcm9wZXJ0eU5hbWVTdHJpbmcoY3NzUHJv
cGVydHlJZCkpOworICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCI6
ICIpOworICAgICAgICAgICAgICAgIGlmIChhdXRvIHZhbHVlID0gY29tcHV0ZWRTdHlsZUV4dHJh
Y3Rvci52YWx1ZUZvclByb3BlcnR5SW5TdHlsZShzdHlsZSwgY3NzUHJvcGVydHlJZCwgcmVuZGVy
ZXIpKQorICAgICAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCh2YWx1
ZS0+Y3NzVGV4dCgpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVu
ZCgnOycpOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IDApCisgICAgICAgICAgICAgICAg
ICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoIXN0eWxlUGF5bG9hZEJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0U3R5bGUoc3R5bGVQYXlsb2FkQnVpbGRlci50b1N0cmlu
ZygpKTsKKworICAgICAgICAgICAga2V5ZnJhbWVzUGF5bG9hZC0+YWRkSXRlbShXVEZNb3ZlKGtl
eWZyYW1lUGF5bG9hZCkpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBwYXJzZWRLZXlmcmFtZSA6IGtleWZyYW1lRWZmZWN0LnBhcnNlZEtleWZyYW1l
cygpKSB7CisgICAgICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgLnNl
dE9mZnNldChwYXJzZWRLZXlmcmFtZS5jb21wdXRlZE9mZnNldCkKKyAgICAgICAgICAgICAgICAu
cmVsZWFzZSgpOworCisgICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZyYW1lLmVhc2luZy5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRFYXNpbmcocGFyc2Vk
S2V5ZnJhbWUuZWFzaW5nKTsKKworICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5zdHls
ZS0+aXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0U3R5bGUo
cGFyc2VkS2V5ZnJhbWUuc3R5bGUtPmFzVGV4dCgpKTsKKworICAgICAgICAgICAga2V5ZnJhbWVz
UGF5bG9hZC0+YWRkSXRlbShXVEZNb3ZlKGtleWZyYW1lUGF5bG9hZCkpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGtleWZyYW1lc1BheWxvYWQ7Cit9CisKK3N0YXRpYyBSZWY8SW5z
cGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q+IGJ1aWxkT2JqZWN0Rm9yRWZmZWN0
KEFuaW1hdGlvbkVmZmVjdCYgZWZmZWN0KQoreworICAgIGF1dG8gZWZmZWN0UGF5bG9hZCA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RWZmZWN0OjpjcmVhdGUoKQorICAgICAgICAu
cmVsZWFzZSgpOworCisgICAgaWYgKGF1dG8gc3RhcnREZWxheSA9IHByb3RvY29sVmFsdWVGb3JT
ZWNvbmRzKGVmZmVjdC5kZWxheSgpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0U3RhcnRE
ZWxheShzdGFydERlbGF5LnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8gZW5kRGVsYXkgPSBwcm90
b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QuZW5kRGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBh
eWxvYWQtPnNldEVuZERlbGF5KGVuZERlbGF5LnZhbHVlKCkpOworCisgICAgZWZmZWN0UGF5bG9h
ZC0+c2V0SXRlcmF0aW9uQ291bnQoZWZmZWN0Lml0ZXJhdGlvbnMoKSk7CisgICAgZWZmZWN0UGF5
bG9hZC0+c2V0SXRlcmF0aW9uU3RhcnQoZWZmZWN0Lml0ZXJhdGlvblN0YXJ0KCkpOworCisgICAg
aWYgKGF1dG8gaXRlcmF0aW9uRHVyYXRpb24gPSBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZl
Y3QuaXRlcmF0aW9uRHVyYXRpb24oKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJh
dGlvbkR1cmF0aW9uKGl0ZXJhdGlvbkR1cmF0aW9uLnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8q
IHRpbWluZ0Z1bmN0aW9uID0gZWZmZWN0LnRpbWluZ0Z1bmN0aW9uKCkpCisgICAgICAgIGVmZmVj
dFBheWxvYWQtPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOwor
CisgICAgaWYgKGF1dG8gcGxheWJhY2tEaXJlY3Rpb24gPSBwcm90b2NvbFZhbHVlRm9yUGxheWJh
Y2tEaXJlY3Rpb24oZWZmZWN0LmRpcmVjdGlvbigpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+
c2V0UGxheWJhY2tEaXJlY3Rpb24ocGxheWJhY2tEaXJlY3Rpb24udmFsdWUoKSk7CisKKyAgICBp
ZiAoYXV0byBmaWxsTW9kZSA9IHByb3RvY29sVmFsdWVGb3JGaWxsTW9kZShlZmZlY3QuZmlsbCgp
KSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0RmlsbE1vZGUoZmlsbE1vZGUudmFsdWUoKSk7
CisKKyAgICBpZiAoaXM8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpCisgICAgICAgIGVmZmVjdFBh
eWxvYWQtPnNldEtleWZyYW1lcyhidWlsZE9iamVjdEZvcktleWZyYW1lcyhkb3duY2FzdDxLZXlm
cmFtZUVmZmVjdD4oZWZmZWN0KSkpOworCisgICAgcmV0dXJuIGVmZmVjdFBheWxvYWQ7Cit9CisK
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudChQYWdlQWdl
bnRDb250ZXh0JiBjb250ZXh0KQogICAgIDogSW5zcGVjdG9yQWdlbnRCYXNlKCJBbmltYXRpb24i
X3MsIGNvbnRleHQpCiAgICAgLCBtX2Zyb250ZW5kRGlzcGF0Y2hlcihtYWtlVW5pcXVlPEluc3Bl
Y3Rvcjo6QW5pbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVyPihjb250ZXh0LmZyb250ZW5kUm91dGVy
KSkKICAgICAsIG1fYmFja2VuZERpc3BhdGNoZXIoSW5zcGVjdG9yOjpBbmltYXRpb25CYWNrZW5k
RGlzcGF0Y2hlcjo6Y3JlYXRlKGNvbnRleHQuYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpKQorICAg
ICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoY29udGV4dC5pbmplY3RlZFNjcmlwdE1hbmFnZXIp
CisgICAgLCBtX2luc3BlY3RlZFBhZ2UoY29udGV4dC5pbnNwZWN0ZWRQYWdlKQorICAgICwgbV9h
bmltYXRpb25EZXN0cm95ZWRUaW1lcigqdGhpcywgJkluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojph
bmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKQogewogfQogCkBAIC02NywxMSArMjI1LDEwMyBA
QCB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CiAgICAg
c3RvcFRyYWNraW5nKGlnbm9yZWQpOworICAgIGRpc2FibGUoaWdub3JlZCk7CiAKICAgICBBU1NF
UlQobV9pbnN0cnVtZW50aW5nQWdlbnRzLnBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCgpID09IHRoaXMpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQZXJzaXN0ZW50SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0cik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCit7CisgICAgaWYgKG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0
aGlzKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBkb21haW4gYWxyZWFkeSBl
bmFibGVkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pbnN0cnVtZW50aW5n
QWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCh0aGlzKTsKKworICAgIGNv
bnN0IGF1dG8gZXhpc3RzSW5DdXJyZW50UGFnZSA9IFsmXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgeworICAgICAgICBpZiAoIWlzPERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2ODQ3NT4gV2ViIEluc3BlY3Rv
cjogQ29ycmVjdGx5IGRpc3BsYXkgaWZyYW1lJ3MgV2ViU29ja2V0cworICAgICAgICBhdXRvKiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAg
ICAgICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCkgPT0gJm1faW5zcGVjdGVkUGFnZTsKKyAgICB9
OworCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViQW5pbWF0aW9uOjppbnN0YW5j
ZXNNdXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRvKiBhbmltYXRpb24gOiBXZWJBbmltYXRpb246
Omluc3RhbmNlcyhsb2NrKSkgeworICAgICAgICAgICAgaWYgKGV4aXN0c0luQ3VycmVudFBhZ2Uo
YW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICAgICAgICAgIGJp
bmRBbmltYXRpb24oKmFuaW1hdGlvbiwgZmFsc2UpOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKK3sKKyAg
ICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KG51bGxwdHIpOworCisgICAgcmVzZXQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6cmVxdWVzdEVmZmVjdFRhcmdldChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgYW5pbWF0aW9uSWQsIGludCogbm9kZUlkKQoreworICAgIGF1dG8qIGFuaW1hdGlv
biA9IGFzc2VydEFuaW1hdGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9uSWQpOworICAgIGlmICgh
YW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkb21BZ2VudCA9IG1faW5z
dHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpOworICAgIGlmICghZG9tQWdlbnQp
IHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiRE9NIGRvbWFpbiBtdXN0IGJlIGVuYWJsZWQiX3M7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24t
PmVmZmVjdCgpOworICAgIGlmICghaXM8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpIHsKKyAgICAg
ICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCBkb2VzIG5v
dCBoYXZlIGFuIGVmZmVjdCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8m
IGtleWZyYW1lRWZmZWN0ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KCplZmZlY3QpOworCisg
ICAgYXV0byogdGFyZ2V0ID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCk7CisgICAgaWYgKCF0YXJn
ZXQpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRp
b25JZCBkb2VzIG5vdCBoYXZlIGEgdGFyZ2V0Il9zOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgKm5vZGVJZCA9IGRvbUFnZW50LT5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3Ry
aW5nLCB0YXJnZXQpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZl
QW5pbWF0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRp
b25JZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkKK3sKKyAgICBhdXRvKiBhbmltYXRp
b24gPSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJpbmcsIGFuaW1hdGlvbklkKTsKKyAgICBpZiAo
IWFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogc3RhdGUgPSBhbmltYXRp
b24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXhlY1N0YXRlKCk7CisgICAgYXV0byBpbmpl
Y3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluamVjdGVkU2NyaXB0Rm9yKHN0
YXRlKTsKKyAgICBBU1NFUlQoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSk7CisKKyAgICBK
U0M6OkpTVmFsdWUgdmFsdWU7CisgICAgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2Nr
KHN0YXRlKTsKKworICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFs
T2JqZWN0Rm9yUHJvdG90eXBlKHN0YXRlKTsKKyAgICAgICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBn
bG9iYWxPYmplY3QsIGFuaW1hdGlvbik7CisgICAgfQorCisgICAgaWYgKCF2YWx1ZSkgeworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiSW50ZXJu
YWwgZXJyb3I6IHVua25vd24gQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCJfczsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFN0cmluZyBvYmplY3RHcm91cE5hbWUgPSBvYmpl
Y3RHcm91cCA/ICpvYmplY3RHcm91cCA6IFN0cmluZygpOworICAgIHJlc3VsdCA9IGluamVjdGVk
U2NyaXB0LndyYXBPYmplY3QodmFsdWUsIG9iamVjdEdyb3VwTmFtZSk7Cit9CisKIHZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nKQogewogICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCgpID09IHRoaXMpIHsKQEAgLTE3MCwxNiArNDIwLDE1MSBAQCB2b2lkIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0
YXJnZXQsIEtleWZyYW1lRQogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1VwZGF0
ZShtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29u
ZHMoKSwgV1RGTW92ZShldmVudCkpOwogfQogCi12b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit2
b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9u
PihhbmltYXRpb24pKQogICAgICAgICBzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihk
b3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSk7CisKKyAgICBkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKKyAgICBkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUYXJnZXQoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlv
biYgYW5pbWF0aW9uKQoreworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBp
ZiBBbmltYXRpb24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0
aW9uSWQgPSBmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogZWZmZWN0ID0gYW5p
bWF0aW9uLmVmZmVjdCgpKQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZWZmZWN0Q2hh
bmdlZChhbmltYXRpb25JZCwgYnVpbGRPYmplY3RGb3JFZmZlY3QoKmVmZmVjdCkpOworICAgIGVs
c2UKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9u
SWQsIG51bGxwdHIpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7Cisg
ICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFj
a2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRp
b25JZChhbmltYXRpb24pOworICAgIGlmIChhbmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50YXJnZXRDaGFuZ2VkKGFuaW1h
dGlvbklkKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2Vi
QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmICghZmluZEFuaW1h
dGlvbklkKGFuaW1hdGlvbikuaXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYmluZEFuaW1hdGlvbihhbmltYXRp
b24sIHRydWUpOwogfQogCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJv
eVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8RGVj
bGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0RlY2xh
cmF0aXZlQW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24p
KTsKKworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRpb24g
aXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBmaW5k
QW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoIWFuaW1hdGlvbklkLmlzRW1wdHkoKSkK
KyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30KKwordm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmIGZyYW1lKQoreworICAgIGlm
IChmcmFtZS5pc01haW5GcmFtZSgpKSB7CisgICAgICAgIHJlc2V0KCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiBhbmltYXRpb25JZHNUb1JlbW92ZTsKKyAg
ICBmb3IgKGF1dG8mIFthbmltYXRpb25JZCwgYW5pbWF0aW9uXSA6IG1fYW5pbWF0aW9uSWRNYXAp
IHsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBhbmltYXRpb24t
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICAgICAgaWYgKGlzPERvY3VtZW50
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpLmZyYW1lKCkgPT0gJmZyYW1lKQorICAgICAgICAgICAgICAgIGFuaW1h
dGlvbklkc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb25JZCk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb25JZCA6IGFuaW1hdGlvbklkc1RvUmVtb3ZlKQor
ICAgICAgICB1bmJpbmRBbmltYXRpb24oYW5pbWF0aW9uSWQpOworfQorCitTdHJpbmcgSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmZpbmRBbmltYXRpb25JZChXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKK3sKKyAgICBmb3IgKGF1dG8mIFthbmltYXRpb25JZCwgZXhpc3RpbmdBbmltYXRpb25dIDog
bV9hbmltYXRpb25JZE1hcCkgeworICAgICAgICBpZiAoZXhpc3RpbmdBbmltYXRpb24gPT0gJmFu
aW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybiBhbmltYXRpb25JZDsKKyAgICB9CisgICAgcmV0
dXJuIG51bGxTdHJpbmcoKTsKK30KKworV2ViQW5pbWF0aW9uKiBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6YXNzZXJ0QW5pbWF0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiBhbmltYXRpb25JZCkKK3sKKyAgICBhdXRvKiBhbmltYXRpb24gPSBtX2FuaW1hdGlvbklk
TWFwLmdldChhbmltYXRpb25JZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIGVycm9y
U3RyaW5nID0gIk1pc3NpbmcgYW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCJfczsKKyAg
ICByZXR1cm4gYW5pbWF0aW9uOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpi
aW5kQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uLCBib29sIGNhcHR1cmVCYWNrdHJh
Y2UpCit7CisgICAgYXV0byBhbmltYXRpb25JZCA9IG1ha2VTdHJpbmcoImFuaW1hdGlvbjoiICsg
SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpOworICAgIG1fYW5pbWF0aW9u
SWRNYXAuc2V0KGFuaW1hdGlvbklkLCAmYW5pbWF0aW9uKTsKKworICAgIGF1dG8gYW5pbWF0aW9u
UGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6QW5pbWF0aW9uOjpjcmVh
dGUoKQorICAgICAgICAuc2V0QW5pbWF0aW9uSWQoYW5pbWF0aW9uSWQpCisgICAgICAgIC5yZWxl
YXNlKCk7CisKKyAgICBpZiAoaXM8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24pKQorICAgICAgICBh
bmltYXRpb25QYXlsb2FkLT5zZXRDc3NBbmltYXRpb25OYW1lKGRvd25jYXN0PENTU0FuaW1hdGlv
bj4oYW5pbWF0aW9uKS5hbmltYXRpb25OYW1lKCkpOworICAgIGVsc2UgaWYgKGlzPENTU1RyYW5z
aXRpb24+KGFuaW1hdGlvbikpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldENzc1RyYW5z
aXRpb25Qcm9wZXJ0eShkb3duY2FzdDxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24pLnRyYW5zaXRp
b25Qcm9wZXJ0eSgpKTsKKworICAgIGlmIChhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24uZWZmZWN0
KCkpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldEVmZmVjdChidWlsZE9iamVjdEZvckVm
ZmVjdCgqZWZmZWN0KSk7CisKKyAgICBpZiAoY2FwdHVyZUJhY2t0cmFjZSkgeworICAgICAgICBh
dXRvIHN0YWNrVHJhY2UgPSBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0V4ZWNT
dGF0ZTo6Y3VycmVudFN0YXRlKCksIEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxs
U3RhY2tTaXplVG9DYXB0dXJlKTsKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0QmFja3Ry
YWNlKHN0YWNrVHJhY2UtPmJ1aWxkSW5zcGVjdG9yQXJyYXkoKSk7CisgICAgfQorCisgICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPmFuaW1hdGlvbkNyZWF0ZWQoV1RGTW92ZShhbmltYXRpb25QYXls
b2FkKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnVuYmluZEFuaW1hdGlv
bihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAucmVt
b3ZlKGFuaW1hdGlvbklkKTsKKworICAgIC8vIFRoaXMgY2FuIGJlIGNhbGxlZCBpbiByZXNwb25z
ZSB0byBHQy4gRHVlIHRvIHRoZSBzaW5nbGUtcHJvY2VzcyBtb2RlbCB1c2VkIGluIFdlYktpdDEs
IHRoZQorICAgIC8vIGV2ZW50IG11c3QgYmUgZGlzcGF0Y2hlZCBmcm9tIGEgdGltZXIgdG8gcHJl
dmVudCB0aGUgZnJvbnRlbmQgZnJvbSBtYWtpbmcgSlMgYWxsb2NhdGlvbnMKKyAgICAvLyB3aGls
ZSB0aGUgR0MgaXMgc3RpbGwgYWN0aXZlLgorICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5hcHBl
bmQoYW5pbWF0aW9uSWQpOworCisgICAgaWYgKCFtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuc3RhcnRPbmVTaG90
KDBfcyk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ry
b3llZFRpbWVyRmlyZWQoKQoreworICAgIGlmICghbV9yZW1vdmVkQW5pbWF0aW9uSWRzLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBpZGVudGlmaWVyIDogbV9yZW1v
dmVkQW5pbWF0aW9uSWRzKQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0aW9u
RGVzdHJveWVkKGlkZW50aWZpZXIpOworCisgICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmNsZWFy
KCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc2V0KCkKK3sKKyAgICBt
X2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7CisKKyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuY2xl
YXIoKTsKKworICAgIGlmIChtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCisg
ICAgICAgIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuc3RvcCgpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNs
YXJhdGl2ZUFuaW1hdGlvbiYgYW5pbWF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCmluZGV4IDdhMjRi
YmNiYjFiMzMxZDE5MGRhNjBjMDBkMjFiZDkzNTQ4ZmFiMDAuLmQyNjZkN2VmMjFlNDJkODQxZGY2
YzBkMzgwNzNkZGVjMjljYWQ5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKQEAgLTI3LDE2ICsyNywy
MSBAQAogCiAjaW5jbHVkZSAiQ29tcHV0ZWRFZmZlY3RUaW1pbmcuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JXZWJBZ2VudEJhc2UuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFuaW1hdGlvbkVmZmVjdDsK
IGNsYXNzIERlY2xhcmF0aXZlQW5pbWF0aW9uOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50
OworY2xhc3MgRnJhbWU7CiBjbGFzcyBLZXlmcmFtZUVmZmVjdDsKK2NsYXNzIFBhZ2U7CiBjbGFz
cyBXZWJBbmltYXRpb247CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwpAQCAtNTMsMjAg
KzU4LDQyIEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBBbmltYXRp
b25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgcmVxdWVzdEVmZmVjdFRhcmdldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uSWQsIGludCogbm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc29sdmVBbmltYXRp
b24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcq
IG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3Rl
T2JqZWN0PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYp
IG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHdpbGxBcHBseUtl
eWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGlt
aW5nKTsKLSAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24m
KTsKKyAgICB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAg
ICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsK
KyAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24m
KTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICB2
b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZnJh
bWVOYXZpZ2F0ZWQoRnJhbWUmKTsKIAogcHJpdmF0ZToKKyAgICBTdHJpbmcgZmluZEFuaW1hdGlv
bklkKFdlYkFuaW1hdGlvbiYpOworICAgIFdlYkFuaW1hdGlvbiogYXNzZXJ0QW5pbWF0aW9uKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBiaW5kQW5p
bWF0aW9uKFdlYkFuaW1hdGlvbiYsIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSk7CisgICAgdm9pZCB1
bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBhbmlt
YXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCk7CisgICAgdm9pZCByZXNldCgpOworCiAgICAgdm9p
ZCBzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNsYXJhdGl2ZUFuaW1hdGlvbiYp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6QW5pbWF0aW9uRnJvbnRlbmREaXNw
YXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpBbmlt
YXRpb25CYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAorICAgIEluc3Bl
Y3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAg
ICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CisKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQW5pbWF0
aW9uKj4gbV9hbmltYXRpb25JZE1hcDsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRBbmlt
YXRpb25JZHM7CisgICAgVGltZXIgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lcjsKKwogICAgIHN0
cnVjdCBUcmFja2VkRGVjbGFyYXRpdmVBbmltYXRpb25EYXRhIHsKICAgICAgICAgU3RyaW5nIHRy
YWNraW5nQW5pbWF0aW9uSWQ7CiAgICAgICAgIENvbXB1dGVkRWZmZWN0VGltaW5nIGxhc3RDb21w
dXRlZFRpbWluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYWVjYzc5YmMwY2E1NmZiNjVmZTAzMzBmMDhlNGVl
Njg4YmY4MWU4OS4uMGY0NmEzMDMzYWVmNDAwN2Y2ZWI4MzdhNjEwNWYwNWEwYzU5MDY3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01B
Z2VudC5jcHAKQEAgLTU2Niw3ICs1NjYsNyBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hO
b2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBkb2N1bWVudAogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChub2RlVG9QdXNoKTsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0
cmluZywgbm9kZVRvUHVzaCk7CiB9CiAKIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9y
SWQoaW50IGlkKQpAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1
ZXJ5U2VsZWN0b3IoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zCiAg
ICAgfQogCiAgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSBxdWVyeVJlc3VsdC5yZWxlYXNlUmV0dXJu
VmFsdWUoKSkKLSAgICAgICAgKmVsZW1lbnRJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZWxl
bWVudCk7CisgICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9y
U3RyaW5nLCBlbGVtZW50KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxl
Y3RvckFsbChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3JzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYgcmVzdWx0KQpAQCAtNjM5
LDEzICs2MzksMjQgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGMKIH0KIAogaW50IEluc3BlY3Rv
ckRPTUFnZW50OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGVUb1B1c2gpCit7Cisg
ICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChpZ25vcmVkLCBub2RlVG9QdXNoKTsKK30KKworaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNo
Tm9kZVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nIGVycm9yU3RyaW5nLCBOb2RlKiBub2RlVG9Q
dXNoKQogewogICAgIEFTU0VSVChub2RlVG9QdXNoKTsgIC8vIEludmFsaWQgaW5wdXQKIAotICAg
IGlmICghbV9kb2N1bWVudCkKKyAgICBpZiAoIW1fZG9jdW1lbnQpIHsKKyAgICAgICAgZXJyb3JT
dHJpbmcgPSAiTWlzc2luZyBkb2N1bWVudCJfczsKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYg
KCFtX2RvY3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpCisgICAgfQorCisg
ICAgaWYgKCFtX2RvY3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpIHsKKyAg
ICAgICAgZXJyb3JTdHJpbmcgPSAiRG9jdW1lbnQgbXVzdCBoYXZlIGJlZW4gcmVxdWVzdGVkIl9z
OwogICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICAvLyBSZXR1cm4gaWQgaW4gY2FzZSB0
aGUgbm9kZSBpcyBrbm93bi4KICAgICBpbnQgcmVzdWx0ID0gbV9kb2N1bWVudE5vZGVUb0lkTWFw
LmdldChub2RlVG9QdXNoKTsKQEAgLTc5MCw3ICs4MDEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpzZXROb2RlTmFtZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNv
bnN0CiAgICAgaWYgKCFtX2RvbUVkaXRvci0+cmVtb3ZlQ2hpbGQoKnBhcmVudCwgKm9sZE5vZGUs
IGVycm9yU3RyaW5nKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgKm5ld0lkID0gcHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChuZXdFbGVtZW50LnB0cigpKTsKKyAgICAqbmV3SWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBuZXdFbGVtZW50LnB0cigpKTsKICAgICBpZiAobV9j
aGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhub2RlSWQpKQogICAgICAgICBwdXNoQ2hpbGROb2Rl
c1RvRnJvbnRlbmQoKm5ld0lkKTsKIH0KQEAgLTgzMCw3ICs4NDEsNyBAQCB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9k
ZUlkLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG5ld0lkID0gcHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChuZXdOb2RlKTsKKyAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBuZXdOb2RlKTsKIAogICAgIGJvb2wgY2hpbGRyZW5S
ZXF1ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCk7CiAgICAgaWYg
KGNoaWxkcmVuUmVxdWVzdGVkKQpAQCAtMTQyMiw3ICsxNDMzLDcgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6bW92ZVRvKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgaW50
IHRhcmdldEUKICAgICBpZiAoIW1fZG9tRWRpdG9yLT5pbnNlcnRCZWZvcmUoKnRhcmdldEVsZW1l
bnQsICpub2RlLCBhbmNob3JOb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAot
ICAgICpuZXdOb2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICpuZXdO
b2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5kbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCkBA
IC0xNDk4LDExICsxNTA5LDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldEF0dHJpYnV0
ZXMoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBSZWZQCiAgICAgcmVzdWx0
ID0gYnVpbGRBcnJheUZvckVsZW1lbnRBdHRyaWJ1dGVzKGVsZW1lbnQpOwogfQogCi12b2lkIElu
c3BlY3RvckRPTUFnZW50OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
b2JqZWN0SWQsIGludCogbm9kZUlkKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5v
ZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQq
IG5vZGVJZCkKIHsKICAgICBOb2RlKiBub2RlID0gbm9kZUZvck9iamVjdElkKG9iamVjdElkKTsK
ICAgICBpZiAobm9kZSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
bm9kZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3Ry
aW5nLCBub2RlKTsKICAgICBlbHNlCiAgICAgICAgICpub2RlSWQgPSAwOwogfQpAQCAtMjY0Niw3
ICsyNjU3LDcgQEAgTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JPYmplY3RJZChjb25z
dCBTdHJpbmcmIG9iamVjdElkKQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBh
dGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwYXRo
LCBpbnQqIG5vZGVJZCkKIHsKICAgICBpZiAoTm9kZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBhdGgp
KQotICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAg
ICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwog
ICAgIGVsc2UKICAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBub2RlIGZvciBnaXZlbiBw
YXRoIl9zOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5oCmluZGV4IDUxNjM5YWJlYjg0ZjRkOTVkZWQzZjRmYjY0MDlhZDhmNjJh
Mjg5NGUuLjdkZjBlODNlYjUzZDc1YzQxYzU1NGYxNDAxMjM1YmEyMTcxOTQxNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgK
QEAgLTE4MCw2ICsxODAsOCBAQCBwdWJsaWM6CiAKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5k
KE5vZGUqKTsKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgaW50IGRv
Y3VtZW50Tm9kZUlkLCBOb2RlKik7CisgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9k
ZSopOworICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nLCBOb2RlKik7
CiAgICAgTm9kZSogbm9kZUZvcklkKGludCBub2RlSWQpOwogICAgIGludCBib3VuZE5vZGVJZChj
b25zdCBOb2RlKik7CiAKQEAgLTIxNyw3ICsyMTksNiBAQCBwcml2YXRlOgogICAgIE5vZGUqIGFz
c2VydEVkaXRhYmxlTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogICAgIEVsZW1lbnQq
IGFzc2VydEVkaXRhYmxlRWxlbWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogCi0gICAg
aW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSopOwogICAgIHZvaWQgcHVzaENoaWxkTm9k
ZXNUb0Zyb250ZW5kKGludCBub2RlSWQsIGludCBkZXB0aCA9IDEpOwogCiAgICAgUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gYnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqLCBpbnQg
ZGVwdGgsIE5vZGVUb0lkTWFwKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRl
eCA3YTc0N2E2OTQ5MzM0N2ZjMThmMGQxY2YwNTU3ZjVjOWVmOTA2YTU3Li44NmU5OTRmMWI2ZDky
M2NlMDdhODBmNDU5ZWJhMTVlODM4MTI1ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKQEAgLTEyMCwxNyArMTIwLDIyIEBAIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBp
biBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIGVycm9yIG9iamVjdHMiXSA9ICJBbGwgaXRlCiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBbGwgaXRlbXMgaW4gXHUwMDIyJXNcdTAwMjIgbXVzdCBiZSBub24tZW1w
dHkgc3RyaW5ncyJdID0gIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIG5vbi1l
bXB0eSBzdHJpbmdzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1
MDAyMiBtdXN0IGJlIHZhbGlkIERPTSBub2RlcyJdID0gIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1
MDAyMiBtdXN0IGJlIHZhbGlkIERPTSBub2RlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGxvdyBN
ZWRpYSBDYXB0dXJlIG9uIEluc2VjdXJlIFNpdGVzIl0gPSAiQWxsb3cgTWVkaWEgQ2FwdHVyZSBv
biBJbnNlY3VyZSBTaXRlcyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbHRlcm5hdGUiXSA9ICJBbHRl
cm5hdGUiOworbG9jYWxpemVkU3RyaW5nc1siQWx0ZXJuYXRlIFJldmVyc2UiXSA9ICJBbHRlcm5h
dGUgUmV2ZXJzZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcg
dG8gbG9hZCB0aGUgcmVzb3VyY2UuIl0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGxv
YWQgdGhlIHJlc291cmNlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0
cnlpbmcgdG8gcmVhZCB0aGUgXHUyMDFDJXNcdTIwMUQgdGFibGUuIl0gPSAiQW4gZXJyb3Igb2Nj
dXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRhYmxlLiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiJdID0gIkFuIHVuZXhw
ZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0
ZWQgZXJyb3Igb2NjdXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iOwog
bG9jYWxpemVkU3RyaW5nc1siQW5nbGUiXSA9ICJBbmdsZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJB
bmltYXRpb24iXSA9ICJBbmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uICVk
Il0gPSAiQW5pbWF0aW9uICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAl
ZCBDYW5jZWxlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQgRmlyZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQg
RmlyZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCJd
ID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5p
bWF0aW9uIEZyYW1lIENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIENhbmNlbGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFt
ZSBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIl0g
PSAiQW5pbWF0aW9uIEZyYW1lIFJlcXVlc3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRp
b24gVGFyZ2V0Il0gPSAiQW5pbWF0aW9uIFRhcmdldCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9u
eW1vdXMgU2NyaXB0ICVkIl0gPSAiQW5vbnltb3VzIFNjcmlwdCAlZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbm9ueW1vdXMgU2NyaXB0cyJdID0gIkFub255bW91cyBTY3JpcHRzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkFub255bW91cyBTdHlsZSBTaGVldCAlZCJdID0gIkFub255bW91cyBTdHlsZSBT
aGVldCAlZCI7CkBAIC0xNjksMTYgKzE3NCwxOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBdmVyYWdl
OiAlcyJdID0gIkF2ZXJhZ2U6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJNUCJdID0gIkJNUCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJCYWNrICglcykiXSA9ICJCYWNrICglcykiOwogbG9jYWxpemVk
U3RyaW5nc1siQmFja3RyYWNlIl0gPSAiQmFja3RyYWNlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkJh
Y2t3YXJkcyJdID0gIkJhY2t3YXJkcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCYXNpYyJdID0gIkJh
c2ljIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJlYWNvbiJdID0gIkJlYWNvbiI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJCZWFjb25zIl0gPSAiQmVhY29ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCaW5hcnkg
RnJhbWUiXSA9ICJCaW5hcnkgRnJhbWUiOwogbG9jYWxpemVkU3RyaW5nc1siQmluZGluZyJdID0g
IkJpbmRpbmciOworbG9jYWxpemVkU3RyaW5nc1siQml0bWFwIFJlbmRlcmVyIl0gPSAiQml0bWFw
IFJlbmRlcmVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJsYWNrYm94Il0gPSAiQmxhY2tib3giOwog
bG9jYWxpemVkU3RyaW5nc1siQmxhY2tib3ggU2NyaXB0Il0gPSAiQmxhY2tib3ggU2NyaXB0IjsK
IGxvY2FsaXplZFN0cmluZ3NbIkJsYWNrYm94IHNjcmlwdCB0byBpZ25vcmUgaXQgd2hlbiBkZWJ1
Z2dpbmciXSA9ICJCbGFja2JveCBzY3JpcHQgdG8gaWdub3JlIGl0IHdoZW4gZGVidWdnaW5nIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkJsb2NrIFZhcmlhYmxlcyJdID0gIkJsb2NrIFZhcmlhYmxlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb2R5OiJdID0gIkJvZHk6IjsKK2xvY2FsaXplZFN0cmluZ3Nb
IkJvdGgiXSA9ICJCb3RoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJvdW5kYXJ5Il0gPSAiQm91bmRh
cnkiOwogbG9jYWxpemVkU3RyaW5nc1siQm94IE1vZGVsIl0gPSAiQm94IE1vZGVsIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkJyZWFrIG9uIl0gPSAiQnJlYWsgb24iOwpAQCAtMjAxLDkgKzIwOSwxMSBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJDUFUiXSA9ICJDUFUiOwogbG9jYWxpemVkU3RyaW5nc1siQ1BV
IFVzYWdlIl0gPSAiQ1BVIFVzYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUCBIYXNoIl0gPSAi
Q1NQIEhhc2giOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbiJdID0gIkNTUyBBbmlt
YXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbnMiXSA9ICJDU1MgQW5pbWF0
aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQ2FudmFzIl0gPSAiQ1NTIENhbnZhcyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJDU1MgQ2hhbmdlczoiXSA9ICJDU1MgQ2hhbmdlczoiOwogbG9jYWxp
emVkU3RyaW5nc1siQ1NTIFRyYW5zaXRpb24iXSA9ICJDU1MgVHJhbnNpdGlvbiI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJDU1MgVHJhbnNpdGlvbnMiXSA9ICJDU1MgVHJhbnNpdGlvbnMiOwogbG9jYWxp
emVkU3RyaW5nc1siQ1NTIGNhbnZhcyBcdTIwMUMlc1x1MjAxRCJdID0gIkNTUyBjYW52YXMgXHUy
MDFDJXNcdTIwMUQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FjaGVkIl0gPSAiQ2FjaGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkNhbGwgRnJhbWVzIFRydW5jYXRlZCJdID0gIkNhbGwgRnJhbWVzIFRy
dW5jYXRlZCI7CkBAIC0zNzcsNiArMzg3LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRGV2aWNlICVk
Il0gPSAiRGV2aWNlICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRldmljZSBTZXR0aW5ncyJdID0g
IkRldmljZSBTZXR0aW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaWFnbm9zZXMgY29tbW9uIGFj
Y2Vzc2liaWxpdHkgcHJvYmxlbXMgYWZmZWN0aW5nIHNjcmVlbiByZWFkZXJzIGFuZCBvdGhlciBh
c3Npc3RpdmUgdGVjaG5vbG9neS4iXSA9ICJEaWFnbm9zZXMgY29tbW9uIGFjY2Vzc2liaWxpdHkg
cHJvYmxlbXMgYWZmZWN0aW5nIHNjcmVlbiByZWFkZXJzIGFuZCBvdGhlciBhc3Npc3RpdmUgdGVj
aG5vbG9neS4iOwogbG9jYWxpemVkU3RyaW5nc1siRGltZW5zaW9ucyJdID0gIkRpbWVuc2lvbnMi
OworbG9jYWxpemVkU3RyaW5nc1siRGlyZWN0aW9uIl0gPSAiRGlyZWN0aW9uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkRpc2FibGUgQnJlYWtwb2ludCJdID0gIkRpc2FibGUgQnJlYWtwb2ludCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIEJyZWFrcG9pbnRzIl0gPSAiRGlzYWJsZSBCcmVha3Bv
aW50cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIERlc2NlbmRhbnQgQnJlYWtwb2ludHMi
XSA9ICJEaXNhYmxlIERlc2NlbmRhbnQgQnJlYWtwb2ludHMiOwpAQCAtNDE5LDYgKzQzMCw3IEBA
IGxvY2FsaXplZFN0cmluZ3NbIkR1cmF0aW9uOiBTaG9ydCJdID0gIkR1cmF0aW9uOiBTaG9ydCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgcGFyZW50
IGVsZW1lbnQiXSA9ICJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgcGFyZW50IGVsZW1l
bnQiOwogbG9jYWxpemVkU3RyaW5nc1siRHluYW1pY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhlIHNl
bGVjdGVkIGVsZW1lbnQiXSA9ICJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZvciB0aGUgc2VsZWN0
ZWQgZWxlbWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEeW5hbWljYWxseSBjYWxjdWxhdGVkIGZv
ciB0aGUgc2VsZWN0ZWQgZWxlbWVudCBhbmQgZGlkIG5vdCBtYXRjaCJdID0gIkR5bmFtaWNhbGx5
IGNhbGN1bGF0ZWQgZm9yIHRoZSBzZWxlY3RlZCBlbGVtZW50IGFuZCBkaWQgbm90IG1hdGNoIjsK
K2xvY2FsaXplZFN0cmluZ3NbIkVhc2luZyJdID0gIkVhc2luZyI7CiAvKiBMYWJlbCBmb3IgYSBn
dWlkZSB3aXRoaW4gdGhlIGNvbG9yIHBpY2tlciAqLwogbG9jYWxpemVkU3RyaW5nc1siRWRnZSBv
ZiBzUkdCIGNvbG9yIHNwYWNlIl0gPSAiRWRnZSBvZiBzUkdCIGNvbG9yIHNwYWNlIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkVkaXQiXSA9ICJFZGl0IjsKQEAgLTQzMCw2ICs0NDIsNyBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJFZGl0IFx1MjAxQ3NwcmluZ1x1MjAxRCBmdW5jdGlvbiJdID0gIkVkaXQgXHUy
MDFDc3ByaW5nXHUyMDFECiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0IGNvbmZpZ3VyYXRpb24iXSA9
ICJFZGl0IGNvbmZpZ3VyYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCBjdXN0b20gZ3Jh
ZGllbnQiXSA9ICJFZGl0IGN1c3RvbSBncmFkaWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0
aW5nIGF1ZGl0cyJdID0gIkVkaXRpbmcgYXVkaXRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkVmZmVj
dCJdID0gIkVmZmVjdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50Il0gPSAiRWxlbWVudCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50IFNlbGVjdGlvbjoiXSA9ICJFbGVtZW50IFNlbGVj
dGlvbjoiOwogbG9jYWxpemVkU3RyaW5nc1siRWxlbWVudCBjbGlwcyBjb21wb3NpdGluZyBkZXNj
ZW5kYW50cyJdID0gIkVsZW1lbnQgY2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiOwpAQCAt
NDc4LDYgKzQ5MSw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBzb3VyY2UgbWFwcyJdID0g
IkVuYWJsZSBzb3VyY2UgbWFwcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGVkIl0gPSAiRW5h
YmxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmNvZGVkIl0gPSAiRW5jb2RlZCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJFbmNvZGluZyJdID0gIkVuY29kaW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIkVu
ZCBEZWxheSJdID0gIkVuZCBEZWxheSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbmQgRGVsYXkgJXMi
XSA9ICJFbmQgRGVsYXkgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5lcmd5IEltcGFjdCJdID0g
IkVuZXJneSBJbXBhY3QiOwogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIGFyaWEtaGlkZGVuPVx1
MDAyMiVzXHUwMDIyIGlzIG5vdCB1c2VkLiJdID0gIkVuc3VyZSBhcmlhLWhpZGRlbj1cdTAwMjIl
c1x1MDAyMiBpcyBub3QgdXNlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siRW5zdXJlIHRoYXQgXHUw
MDIyJXNcdTAwMjIgaXMgc3BlbGxlZCBjb3JyZWN0bHkuIl0gPSAiRW5zdXJlIHRoYXQgXHUwMDIy
JXNcdTAwMjIgaXMgc3BlbGxlZCBjb3JyZWN0bHkuIjsKQEAgLTUzNyw2ICs1NTIsNyBAQCBsb2Nh
bGl6ZWRTdHJpbmdzWyJGZXRjaCJdID0gIkZldGNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZldGNo
ZXMiXSA9ICJGZXRjaGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGUgb3IgUmVzb3VyY2UiXSA9
ICJGaWxlIG9yIFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGVuYW1lIl0gPSAiRmls
ZW5hbWUiOworbG9jYWxpemVkU3RyaW5nc1siRmlsbCJdID0gIkZpbGwiOwogbG9jYWxpemVkU3Ry
aW5nc1siRmlsdGVyIl0gPSAiRmlsdGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbHRlciBGdWxs
IFVSTCJdID0gIkZpbHRlciBGdWxsIFVSTCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWx0ZXI6Il0g
PSAiRmlsdGVyOiI7CkBAIC01NjUsNiArNTgxLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRm9ybWF0
OiBSR0JBIl0gPSAiRm9ybWF0OiBSR0JBIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZvcm1hdDogU2hv
cnQgSGV4Il0gPSAiRm9ybWF0OiBTaG9ydCBIZXgiOwogbG9jYWxpemVkU3RyaW5nc1siRm9ybWF0
OiBTaG9ydCBIZXggd2l0aCBBbHBoYSJdID0gIkZvcm1hdDogU2hvcnQgSGV4IHdpdGggQWxwaGEi
OwogbG9jYWxpemVkU3RyaW5nc1siRm9yd2FyZCAoJXMpIl0gPSAiRm9yd2FyZCAoJXMpIjsKK2xv
Y2FsaXplZFN0cmluZ3NbIkZvcndhcmRzIl0gPSAiRm9yd2FyZHMiOwogbG9jYWxpemVkU3RyaW5n
c1siRnJhZ21lbnQiXSA9ICJGcmFnbWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGcmFnbWVudCBT
aGFkZXIiXSA9ICJGcmFnbWVudCBTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siRnJhbWUgJWQi
XSA9ICJGcmFtZSAlZCI7CkBAIC01ODUsNiArNjAyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siR2xv
YmFsIENvZGUiXSA9ICJHbG9iYWwgQ29kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgTGV4
aWNhbCBFbnZpcm9ubWVudCJdID0gIkdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50IjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkdsb2JhbCBWYXJpYWJsZXMiXSA9ICJHbG9iYWwgVmFyaWFibGVzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkdyYW1tYXIiXSA9ICJHcmFtbWFyIjsKK2xvY2FsaXplZFN0cmluZ3Nb
IkdyYXBoaWNzIl0gPSAiR3JhcGhpY3MiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAiXSA9ICJH
cm91cCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBCeSBSZXNvdXJjZSJdID0gIkdyb3VwIEJ5
IFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIE1lZGlhIFJlcXVlc3RzIl0gPSAi
R3JvdXAgTWVkaWEgUmVxdWVzdHMiOwpAQCAtNjMyLDYgKzY1MCw3IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIkltYWdlcyJdID0gIkltYWdlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXM6Il0gPSAi
SW1hZ2VzOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIl0g
PSAiSW1tZWRpYXRlIFBhdXNlIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQi
XSA9ICJJbXBvcnQiOworbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0IFJlY29yZGluZyJdID0gIklt
cG9ydCBSZWNvcmRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQiXSA9ICJJbXBvcnRl
ZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCAtICVzIl0gPSAiSW1wb3J0ZWQgLSAlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCBcdTIwMTQgJXMiXSA9ICJJbXBvcnRlZCBcdTIw
MTQgJXMiOwpAQCAtNjYwLDYgKzY3OSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkludm9rZSBnZXR0
ZXIiXSA9ICJJbnZva2UgZ2V0dGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkl0IGlzIGV2YWx1YXRl
ZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgZ2xvYmFsIG9iamVjdCBpcyBjcmVhdGVkLCBiZWZvcmUg
YW55IG90aGVyIGNvbnRlbnQgaGFzIGxvYWRlZC4iXSA9ICJJdCBpcyBldmFsdWF0ZWQgaW1tZWRp
YXRlbHkgYWZ0ZXIgdGhlIGdsb2JhbCBvYmplY3QgaXMgY3JlYXRlZCwgYmVmb3JlIGFueSBvdGhl
ciBjb250ZW50IGhhcyBsb2FkZWQuIjsKIC8qIFRvb2x0aXAgZm9yIGEgdGltZXN0YW1wIG1hcmtl
ciB0aGF0IHJlcHJlc2VudHMgd2hlbiBhIENTUyBhbmltYXRpb24vdHJhbnNpdGlvbiBpdGVyYXRl
cyAqLwogbG9jYWxpemVkU3RyaW5nc1siSXRlcmF0aW9uIl0gPSAiSXRlcmF0aW9uIjsKK2xvY2Fs
aXplZFN0cmluZ3NbIkl0ZXJhdGlvbnMiXSA9ICJJdGVyYXRpb25zIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkpQMiJdID0gIkpQMiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJKUEVHIl0gPSAiSlBFRyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJKYXZhU2NyaXB0Il0gPSAiSmF2YVNjcmlwdCI7CkBAIC02NjksNiAr
Njg5LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siSmF2YVNjcmlwdCBDb250ZXh0Il0gPSAiSmF2YVNj
cmlwdCBDb250ZXh0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkp1bXAgdG8gRGVmaW5pdGlvbiJdID0g
Ikp1bXAgdG8gRGVmaW5pdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJLZXkiXSA9ICJLZXkiOwog
bG9jYWxpemVkU3RyaW5nc1siS2V5IFBhdGgiXSA9ICJLZXkgUGF0aCI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJLZXlmcmFtZXMiXSA9ICJLZXlmcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTGFiZWwi
XSA9ICJMYWJlbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMYXRlbmN5Il0gPSAiTGF0ZW5jeSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJMYXllciBDb3VudDogJWQiXSA9ICJMYXllciBDb3VudDogJWQiOwpA
QCAtNjk2LDYgKzcxNyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFN0b3JhZ2UiXSA9ICJM
b2NhbCBTdG9yYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFZhcmlhYmxlcyJdID0gIkxv
Y2FsIFZhcmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGVkIGF0ICVzIl0gPSAiTG9j
YXRlZCBhdCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGlvbiJdID0gIkxvY2F0aW9uIjsK
K2xvY2FsaXplZFN0cmluZ3NbIkxvZyBBbmltYXRpb24iXSA9ICJMb2cgQW5pbWF0aW9uIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkxvZyBDYW52YXMgQ29udGV4dCJdID0gIkxvZyBDYW52YXMgQ29udGV4
dCI7CiAvKiBMb2cgKHByaW50KSBET00gZWxlbWVudCB0byBDb25zb2xlICovCiBsb2NhbGl6ZWRT
dHJpbmdzWyJMb2cgRWxlbWVudCJdID0gIkxvZyBFbGVtZW50IjsKQEAgLTc2OCw2ICs3OTAsNyBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFbmFibGVkIEF1ZGl0cyJdID0gIk5vIEVuYWJsZWQgQXVk
aXRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIEVudHJpZXMiXSA9ICJObyBFbnRyaWVzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIk5vIEV2ZW50IExpc3RlbmVycyJdID0gIk5vIEV2ZW50IExpc3RlbmVy
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBGaWx0ZXIgUmVzdWx0cyJdID0gIk5vIEZpbHRlciBS
ZXN1bHRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIk5vIEtleWZyYW1lcyJdID0gIk5vIEtleWZyYW1l
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBMYXllciBBdmFpbGFibGUiXSA9ICJObyBMYXllciBB
dmFpbGFibGUiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gT3ZlcnJpZGVzIl0gPSAiTm8gT3ZlcnJp
ZGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFBhcmFtZXRlcnMiXSA9ICJObyBQYXJhbWV0ZXJz
IjsKQEAgLTc3OSw2ICs4MDIsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXNwb25zZSBIZWFk
ZXJzIl0gPSAiTm8gUmVzcG9uc2UgSGVhZGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXN1
bHQiXSA9ICJObyBSZXN1bHQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzdWx0cyBGb3VuZCJd
ID0gIk5vIFJlc3VsdHMgRm91bmQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gU2VhcmNoIFJlc3Vs
dHMiXSA9ICJObyBTZWFyY2ggUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBTdHlsZXMi
XSA9ICJObyBTdHlsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gV2F0Y2ggRXhwcmVzc2lvbnMi
XSA9ICJObyBXYXRjaCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBhdWRpdCBz
ZWxlY3RlZCJdID0gIk5vIGF1ZGl0IHNlbGVjdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIGNl
cnRpZmljYXRlIHNlY3VyaXR5IGluZm9ybWF0aW9uLiJdID0gIk5vIGNlcnRpZmljYXRlIHNlY3Vy
aXR5IGluZm9ybWF0aW9uLiI7CkBAIC03OTgsNiArODIyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1si
Tm9kZSJdID0gIk5vZGUiOwogbG9jYWxpemVkU3RyaW5nc1siTm9kZSBSZW1vdmVkIl0gPSAiTm9k
ZSBSZW1vdmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vZGVzIl0gPSAiTm9kZXMiOwogbG9jYWxp
emVkU3RyaW5nc1siTm9uZSJdID0gIk5vbmUiOworbG9jYWxpemVkU3RyaW5nc1siTm9ybWFsIl0g
PSAiTm9ybWFsIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vdCBmb3VuZCJdID0gIk5vdCBmb3VuZCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJPYmplY3QgR3JhcGgiXSA9ICJPYmplY3QgR3JhcGgiOwogbG9j
YWxpemVkU3RyaW5nc1siT2JqZWN0IFN0b3JlIl0gPSAiT2JqZWN0IFN0b3JlIjsKQEAgLTkxMSw3
ICs5MzYsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZWRpcmVjdHMiXSA9ICJSZWRpcmVjdHMiOwog
bG9jYWxpemVkU3RyaW5nc1siUmVmZXJlbmNlIElzc3VlIl0gPSAiUmVmZXJlbmNlIElzc3VlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlJlZmxlY3Rpb24iXSA9ICJSZWZsZWN0aW9uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlZnJlc2giXSA9ICJSZWZyZXNoIjsKLWxvY2FsaXplZFN0cmluZ3NbIlJlZnJl
c2ggYWxsIl0gPSAiUmVmcmVzaCBhbGwiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCB3YXRj
aCBleHByZXNzaW9ucyJdID0gIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiOwogbG9jYWxpemVk
U3RyaW5nc1siUmVnaW9uIGFubm91bmNlZCBpbiBpdHMgZW50aXJldHkuIl0gPSAiUmVnaW9uIGFu
bm91bmNlZCBpbiBpdHMgZW50aXJldHkuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ3VsYXIgRXhw
cmVzc2lvbiJdID0gIlJlZ3VsYXIgRXhwcmVzc2lvbiI7CkBAIC05NzksNiArMTAwMyw3IEBAIGxv
Y2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBOZXR3b3JrIFRhYiJdID0gIlJldmVhbCBpbiBOZXR3
b3JrIFRhYiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gT3JpZ2luYWwgUmVzb3VyY2Ui
XSA9ICJSZXZlYWwgaW4gT3JpZ2luYWwgUmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2
ZWFsIGluIFNvdXJjZXMgVGFiIl0gPSAiUmV2ZWFsIGluIFNvdXJjZXMgVGFiIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJldmVhbCBpbiBTdHlsZSBTaGVldCJdID0gIlJldmVhbCBpbiBTdHlsZSBTaGVl
dCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlcnNlIl0gPSAiUmV2ZXJzZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJSb2xlIl0gPSAiUm9sZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSdW4gJWQiXSA9ICJS
dW4gJWQiOwogbG9jYWxpemVkU3RyaW5nc1siUnVuIGNvbnNvbGUgY29tbWFuZHMgYXMgaWYgaW5z
aWRlIGEgdXNlciBnZXN0dXJlIl0gPSAiUnVuIGNvbnNvbGUgY29tbWFuZHMgYXMgaWYgaW5zaWRl
IGEgdXNlciBnZXN0dXJlIjsKQEAgLTEwMjEsNiArMTA0Niw3IEBAIGxvY2FsaXplZFN0cmluZ3Nb
IlNlY3VyaXR5IE9yaWdpbiJdID0gIlNlY3VyaXR5IE9yaWdpbiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiXSA9ICJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3Qi
OwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiXSA9ICJTZWxl
Y3QgY29tcGFyaXNvbiBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCJdID0g
IlNlbGVjdGVkIjsKK2xvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIEFuaW1hdGlvbiJdID0gIlNl
bGVjdGVkIEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBDYW52YXMgQ29u
dGV4dCJdID0gIlNlbGVjdGVkIENhbnZhcyBDb250ZXh0IjsKIC8qIFNlbGVjdGVkIERPTSBlbGVt
ZW50ICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBFbGVtZW50Il0gPSAiU2VsZWN0ZWQg
RWxlbWVudCI7CkBAIC0xMTA0LDYgKzExMzAsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTcGVsbGlu
ZyJdID0gIlNwZWxsaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0YWdpbmc6Il0gPSAiU3RhZ2lu
ZzoiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhbGxlZCJdID0gIlN0YWxsZWQiOwogbG9jYWxpemVk
U3RyaW5nc1siU3RhcnQiXSA9ICJTdGFydCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTdGFydCBEZWxh
eSJdID0gIlN0YXJ0IERlbGF5IjsKK2xvY2FsaXplZFN0cmluZ3NbIlN0YXJ0IERlbGF5ICVzIl0g
PSAiU3RhcnQgRGVsYXkgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgVGltZSJdID0gIlN0
YXJ0IFRpbWUiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgZWxlbWVudCBzZWxlY3Rpb24gKCVz
KSJdID0gIlN0YXJ0IGVsZW1lbnQgc2VsZWN0aW9uICglcykiOwogbG9jYWxpemVkU3RyaW5nc1si
U3RhcnQgcmVjb3JkaW5nICglcylcbkNyZWF0ZSBuZXcgcmVjb3JkaW5nICglcykiXSA9ICJTdGFy
dCByZWNvcmRpbmcgKCVzKVxuQ3JlYXRlIG5ldyByZWNvcmRpbmcgKCVzKSI7CkBAIC0xMTc2LDYg
KzEyMDQsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJUaGVzZSB0ZXN0cyBzZXJ2ZSBhcyBhIGRlbW9u
c3RyYXRpb24gb2YgdGhlIGZ1bmN0aW9uYWxpdHkgYW5kCiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlz
IFJlc291cmNlIGNhbWUgZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIl0gPSAiVGhpcyBS
ZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSJdID0gIlRoaXMgYWN0
aW9uIGNhdXNlcyBubyB2aXN1YWwgY2hhbmdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYWN0
aW9uIG1vdmVzIHRoZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSJdID0gIlRoaXMgYWN0
aW9uIG1vdmVzIHRoZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJUaGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIl0gPSAiVGhpcyBhbmltYXRp
b24gaGFzIG5vIGR1cmF0aW9uLiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFuaW1hdGlvbiBo
YXMgbm8ga2V5ZnJhbWVzLiJdID0gIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYXVkaXQgaXMgbm90IHN1cHBvcnRlZCJdID0gIlRoaXMg
YXVkaXQgaXMgbm90IHN1cHBvcnRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFuIGV4
YW1wbGUgb2YgaG93IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4iXSA9ICJUaGlzIGlzIGFu
IGV4YW1wbGUgb2YgaG93IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4iOwogbG9jYWxpemVk
U3RyaW5nc1siVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBlcnJvcnMgYXJlIHNob3duLiBUaGUg
ZXJyb3Igd2FzIHRocm93biBtYW51YWxseSwgYnV0IGV4ZWN1dGlvbiBlcnJvcnMgd2lsbCBhcHBl
YXIgaW4gdGhlIHNhbWUgd2F5LiJdID0gIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJyb3Jz
IGFyZSBzaG93bi4gVGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRpb24g
ZXJyb3JzIHdpbGwgYXBwZWFyIGluIHRoZSBzYW1lIHdheS4iOwpAQCAtMTI4OCwxMiArMTMxOCwx
NyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3IFNoYWRlciJdID0gIlZpZXcgU2hhZGVyIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlZpZXdwb3J0Il0gPSAiVmlld3BvcnQiOwogbG9jYWxpemVkU3RyaW5n
c1siVmlzaWJsZSJdID0gIlZpc2libGUiOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyJdID0g
IldhaXRpbmciOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVh
dGVkIGJ5IENTUy4iXSA9ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7
Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdC4iXSA9ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlw
dC4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0
ZWQgYnkgc2NyaXB0IG9yIENTUy4iXSA9ICJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3Jl
YXRlZCBieSBzY3JpcHQgb3IgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBm
cmFtZXNcdTIwMjYiXSA9ICJXYWl0aW5nIGZvciBmcmFtZXNcdTIwMjYiOworbG9jYWxpemVkU3Ry
aW5nc1siV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2FpdGlu
ZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldh
cm5pbmc6ICJdID0gIldhcm5pbmc6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXJuaW5ncyJdID0g
Ildhcm5pbmdzIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhdGNoIEV4cHJlc3Npb25zIl0gPSAiV2F0
Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siV2F0ZXJmYWxsIl0gPSAiV2F0ZXJm
YWxsIjsKK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24iXSA9ICJXZWIgQW5pbWF0aW9u
IjsKK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb25zIl0gPSAiV2ViIEFuaW1hdGlvbnMi
OwogbG9jYWxpemVkU3RyaW5nc1siV2ViIEluc3BlY3RvciJdID0gIldlYiBJbnNwZWN0b3IiOwog
bG9jYWxpemVkU3RyaW5nc1siV2ViIFBhZ2UiXSA9ICJXZWIgUGFnZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJXZWJLaXQgVGhyZWFkcyJdID0gIldlYktpdCBUaHJlYWRzIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCBmZjIyODAxNWI4
OTg0YTUyZTIwZjIyMTU4NTFlMjc0ZTc5YmQxMDc1Li43MGU1YjljODZhZjQ3ZTAwZDc5YmUzNzA4
YzhiM2ZjZjYzYzgwOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQmFzZS9NYWluLmpzCkBAIC0xMjMsNiArMTIzLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rp
b24oKQogICAgICAgICBXSS53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIsCiAg
ICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIs
CiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAgICAg
ICAgV0kuYW5pbWF0aW9uTWFuYWdlciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAgIF07
CiAKICAgICAvLyBSZWdpc3RlciBmb3IgZXZlbnRzLgpAQCAtMTQ3LDEzICsxNDgsMTMgQEAgV0ku
bG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVudFZpZXcuVHlw
ZSwKICAgICAgICAgV0kuVGltZWxpbmVUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5T
dG9yYWdlVGFiQ29udGVudFZpZXcuVHlwZSwKLSAgICAgICAgV0kuQ2FudmFzVGFiQ29udGVudFZp
ZXcuVHlwZSwKKyAgICAgICAgV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAg
ICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLkNvbnNvbGVUYWJDb250
ZW50Vmlldy5UeXBlLAogICAgIF0pOwogICAgIFdJLl9zZWxlY3RlZFRhYkluZGV4U2V0dGluZyA9
IG5ldyBXSS5TZXR0aW5nKCJzZWxlY3RlZC10YWItaW5kZXgiLCAwKTsKIAotICAgIC8vIFJlcGxh
Y2UgdGhlIERlYnVnZ2VyL1Jlc291cmNlcyBUYWIgd2l0aCB0aGUgU291cmNlcyBUYWIuCisgICAg
Ly8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8yMDU4MjY+IFdlYiBJbnNwZWN0b3I6IHJl
bW92ZSBsZWdhY3kgY29kZSBmb3IgcmVwbGFjaW5nIHRoZSBSZXNvdXJjZXMgVGFiIGFuZCBEZWJ1
Z2dlciBUYWIgd2l0aCB0aGUgU291cmNlcyBUYWIKICAgICBsZXQgZGVidWdnZXJJbmRleCA9IFdJ
Ll9vcGVuVGFic1NldHRpbmcudmFsdWUuaW5kZXhPZigiZGVidWdnZXIiKTsKICAgICBsZXQgcmVz
b3VyY2VzSW5kZXggPSBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoInJlc291cmNl
cyIpOwogICAgIGlmIChkZWJ1Z2dlckluZGV4ID49IDAgfHwgcmVzb3VyY2VzSW5kZXggPj0gMCkg
ewpAQCAtMTczLDYgKzE3NCwxMyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRpbmcudmFsdWUgPSBzb3VyY2VzSW5kZXg7CiAgICAg
fQogCisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8yMDU4Mjc+IFdlYiBJbnNw
ZWN0b3I6IHJlbW92ZSBsZWdhY3kgY29kZSBmb3IgcmVwbGFjaW5nIHRoZSBDYW52YXMgVGFiIHdp
dGggdGhlIEdyYXBoaWNzIFRhYgorICAgIGxldCBjYW52YXNJbmRleCA9IFdJLl9vcGVuVGFic1Nl
dHRpbmcudmFsdWUuaW5kZXhPZigiY2FudmFzIik7CisgICAgaWYgKGNhbnZhc0luZGV4ID49IDAp
IHsKKyAgICAgICAgV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5zcGxpY2UoY2FudmFzSW5kZXgs
IDEsIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSk7CisgICAgICAgIFdJLl9vcGVuVGFi
c1NldHRpbmcuc2F2ZSgpOworICAgIH0KKwogICAgIC8vIFN0YXRlLgogICAgIFdJLnByaW50U3R5
bGVzRW5hYmxlZCA9IGZhbHNlOwogICAgIFdJLnNldFpvb21GYWN0b3IoV0kuc2V0dGluZ3Muem9v
bUZhY3Rvci52YWx1ZSk7CkBAIC00NjUsNyArNDczLDcgQEAgV0kuY29udGVudExvYWRlZCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5U
aW1lbGluZVRhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcs
Ci0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LAorICAgICAgICBXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5MYXllcnNUYWJDb250ZW50VmlldywKICAgICAgICAg
V0kuQXVkaXRUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuQ29uc29sZVRhYkNvbnRlbnRWaWV3
LApAQCAtMTIyMywxMSArMTIzMSw4IEBAIFdJLnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JSZXByZXNl
bnRlZE9iamVjdCA9IGZ1bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAg
cmV0dXJuIFdJLkF1ZGl0VGFiQ29udGVudFZpZXc7CiAKLSAgICBpZiAocmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICByZXR1cm4gV0kuQ2Fu
dmFzVGFiQ29udGVudFZpZXc7Ci0KLSAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5SZWNvcmRpbmcpCi0gICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50VmlldzsK
KyAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMgfHwgcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gV0kuR3JhcGhpY3NUYWJDb250ZW50Vmll
dzsKIAogICAgIHJldHVybiBudWxsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5h
Z2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZmYjQxMmNlYTVmZTIzYTY2ZmQyN2VjZDk0ZGFkNzNmZGIwMWYz
MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzCkBAIC0wLDAgKzEsMTUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworLy8gRklYTUU6IEFuaW1hdGlvbk1hbmFnZXIgbGFja3MgYWR2YW5jZWQgbXVsdGkt
dGFyZ2V0IHN1cHBvcnQuIChBbmltYXRpb25zIHBlci10YXJnZXQpCisKK1dJLkFuaW1hdGlvbk1h
bmFnZXIgPSBjbGFzcyBBbmltYXRpb25NYW5hZ2VyCit7CisgICAgY29uc3RydWN0b3IoKQorICAg
IHsKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9hbmltYXRp
b25Db2xsZWN0aW9uID0gbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAgIHRoaXMu
X2FuaW1hdGlvbklkTWFwID0gbmV3IE1hcDsKKworICAgICAgICBXSS5GcmFtZS5hZGRFdmVudExp
c3RlbmVyKFdJLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5faGFuZGxl
TWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBBZ2VudAorCisg
ICAgZ2V0IGRvbWFpbnMoKSB7IHJldHVybiBbIkFuaW1hdGlvbiJdOyB9CisKKyAgICBhY3RpdmF0
ZUV4dHJhRG9tYWluKGRvbWFpbikKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbWFp
biA9PT0gIkFuaW1hdGlvbiIpOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJn
ZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFyZ2V0KHRhcmdldCk7CisgICAgfQor
CisgICAgLy8gVGFyZ2V0CisKKyAgICBpbml0aWFsaXplVGFyZ2V0KHRhcmdldCkKKyAgICB7Cisg
ICAgICAgIGlmICghdGhpcy5fZW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5vdCBl
eGlzdCB5ZXQuCisgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmVuYWJs
ZSIpKQorICAgICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LmVuYWJsZSgpOworICAgIH0K
KworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvbkNvbGxlY3Rpb24oKSB7IHJldHVy
biB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uOyB9CisKKyAgICBnZXQgc3VwcG9ydGVkKCkKKyAg
ICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmVuYWJs
ZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFz
Q29tbWFuZCgiQW5pbWF0aW9uLmVuYWJsZSIpOworICAgIH0KKworICAgIGVuYWJsZSgpCisgICAg
eworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZW5hYmxlZCk7CisKKyAgICAgICAgdGhp
cy5fZW5hYmxlZCA9IHRydWU7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdl
dHMpCisgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUYXJnZXQodGFyZ2V0KTsKKyAgICB9CisK
KyAgICBkaXNhYmxlKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuYWJs
ZWQpOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKSB7CisgICAgICAg
ICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5kaXNhYmxlIGRpZCBu
b3QgZXhpc3QgeWV0LgorICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRp
b24uZGlzYWJsZSIpKQorICAgICAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5kaXNh
YmxlKCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmNs
ZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7CisKKyAgICAgICAg
dGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgIH0KKworICAgIC8vIEFuaW1hdGlvbk9ic2VydmVy
CisKKyAgICBhbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblBheWxvYWQpCisgICAgeworICAgICAg
ICBjb25zb2xlLmFzc2VydCghdGhpcy5fYW5pbWF0aW9uSWRNYXAuaGFzKGFuaW1hdGlvblBheWxv
YWQuYW5pbWF0aW9uSWQpLCBgQW5pbWF0aW9uIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHthbmlt
YXRpb25QYXlsb2FkLmFuaW1hdGlvbklkfS5gKTsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0g
V0kuQW5pbWF0aW9uLmZyb21QYXlsb2FkKGFuaW1hdGlvblBheWxvYWQpOworICAgICAgICB0aGlz
Ll9hbmltYXRpb25Db2xsZWN0aW9uLmFkZChhbmltYXRpb24pOworICAgICAgICB0aGlzLl9hbmlt
YXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBhbmltYXRpb24pOworICAgIH0K
KworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAg
IGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOwor
ICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhbmltYXRpb24uZWZmZWN0Q2hhbmdl
ZChlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVj
dCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC5n
ZXQoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAg
ICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhbmlt
YXRpb24udGFyZ2V0Q2hhbmdlZChlZmZlY3QpOworICAgIH0KKworICAgIGFuaW1hdGlvbkRlc3Ry
b3llZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9h
bmltYXRpb25JZE1hcC50YWtlKGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
YW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5yZW1vdmUoYW5pbWF0aW9uKTsK
KyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlTWFpblJlc291cmNlRGlkQ2hh
bmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZXZlbnQudGFyZ2V0IGlu
c3RhbmNlb2YgV0kuRnJhbWUpOworICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5pc01haW5GcmFt
ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFdJLkFuaW1hdGlvbi5yZXNldFVu
aXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxl
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKyAg
ICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKaW5kZXggMTM1YzE2NjEzYWU4
MDA5YzE2ZTI3MjJmNzI1ODVjOTdlNjlkZDExNC4uZGJiOGU2ZmU0OTczMWQ1MjMxZTI4M2Y2OWZh
MjkwZjM3YjZiYmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCkBAIC0zMiw2
ICszMiw3IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZh
bHNlOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uID0gbmV3IFdJLkNhbnZhc0NvbGxl
Y3Rpb247CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogICAg
ICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcCA9IG5ldyBNYXA7CiAgICAgICAg
IHRoaXMuX3NhdmVkUmVjb3JkaW5ncyA9IG5ldyBTZXQ7CkBAIC03NiwxMyArNzcsOSBAQCBXSS5D
YW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAg
ICAgLy8gUHVibGljCiAKKyAgICBnZXQgY2FudmFzQ29sbGVjdGlvbigpIHsgcmV0dXJuIHRoaXMu
X2NhbnZhc0NvbGxlY3Rpb247IH0KICAgICBnZXQgc2F2ZWRSZWNvcmRpbmdzKCkgeyByZXR1cm4g
dGhpcy5fc2F2ZWRSZWNvcmRpbmdzOyB9CiAKLSAgICBnZXQgY2FudmFzZXMoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC52YWx1ZXMo
KSk7Ci0gICAgfQotCiAgICAgZ2V0IHNoYWRlclByb2dyYW1zKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBBcnJheS5mcm9tKHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLnZhbHVlcygp
KTsKQEAgLTEzMyw2ICsxMzAsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFu
YWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHRhcmdldC5DYW52YXNBZ2Vu
dC5kaXNhYmxlKCk7CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9u
LmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAg
ICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICAgICAg
dGhpcy5fc2F2ZWRSZWNvcmRpbmdzLmNsZWFyKCk7CkBAIC0xNjEsOSArMTU5LDggQEAgV0kuQ2Fu
dmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuaGFzKGNhbnZhc1Bh
eWxvYWQuY2FudmFzSWQpLCBgQ2FudmFzIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHtjYW52YXNQ
YXlsb2FkLmNhbnZhc0lkfS5gKTsKIAogICAgICAgICBsZXQgY2FudmFzID0gV0kuQ2FudmFzLmZy
b21QYXlsb2FkKGNhbnZhc1BheWxvYWQpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9u
LmFkZChjYW52YXMpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnNldChjYW52
YXMuaWRlbnRpZmllciwgY2FudmFzKTsKLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB7Y2FudmFzfSk7CiAg
ICAgfQogCiAgICAgY2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKQpAQCAtMTczLDcgKzE3
MCwxNCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJ
Lk9iamVjdAogICAgICAgICBpZiAoIWNhbnZhcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgdGhpcy5fc2F2ZVJlY29y
ZGluZ3MoY2FudmFzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLnJlbW92ZShj
YW52YXMpOworCisgICAgICAgIGZvciAobGV0IHByb2dyYW0gb2YgY2FudmFzLnNoYWRlclByb2dy
YW1Db2xsZWN0aW9uKQorICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJN
YXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmllcik7CisKKyAgICAgICAgY2FudmFzLnNoYWRlclBy
b2dyYW1Db2xsZWN0aW9uLmNsZWFyKCk7CiAgICAgfQogCiAgICAgY2FudmFzTWVtb3J5Q2hhbmdl
ZChjYW52YXNJZGVudGlmaWVyLCBtZW1vcnlDb3N0KQpAQCAtMjc1LDIxICsyNzksMTQgQEAgV0ku
Q2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAog
ICAgIC8vIFByaXZhdGUKIAotICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQorICAgIF9zYXZlUmVj
b3JkaW5ncyhjYW52YXMpCiAgICAgewotICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZh
cy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dy
YW1JZGVudGlmaWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOwotCi0gICAgICAgIGNh
bnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5jbGVhcigpOwotCiAgICAgICAgIGZvciAobGV0
IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikgewogICAgICAgICAgICAg
cmVjb3JkaW5nLnNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICByZWNvcmRpbmcuY3JlYXRlRGlz
cGxheU5hbWUocmVjb3JkaW5nLmRpc3BsYXlOYW1lKTsKICAgICAgICAgICAgIHRoaXMuX3NhdmVk
UmVjb3JkaW5ncy5hZGQocmVjb3JkaW5nKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHtyZWNv
cmRpbmd9KTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwge2NhbnZhc30pOwogICAg
IH0KIAogICAgIF9tYWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCkBAIC0zMDEsMTUgKzI5OCwx
NCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICBXSS5DYW52YXMucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsK
IAogICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC52
YWx1ZXMoKSkKLSAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAg
ICAgICAgdGhpcy5fc2F2ZVJlY29yZGluZ3MoY2FudmFzKTsKIAotICAgICAgICB0aGlzLl9zaGFk
ZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xs
ZWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIo
KTsKKyAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAg
ICB9CiB9OwogCiBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50ID0gewotICAgIENhbnZhc0FkZGVkOiAi
Y2FudmFzLW1hbmFnZXItY2FudmFzLXdhcy1hZGRlZCIsCi0gICAgQ2FudmFzUmVtb3ZlZDogImNh
bnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtcmVtb3ZlZCIsCiAgICAgUmVjb3JkaW5nU2F2ZWQ6ICJj
YW52YXMtbWFuYWdlci1yZWNvcmRpbmctc2F2ZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2Vy
LmpzCmluZGV4IDFhOGRmNjhiYmFkZDhkZThiZmZiMzgwNzk1MjY5Mjg3YTNhMzMyNDIuLjcxODU1
NThhZDNlMGQ5NzliYjAwMWRiOGUxMTAzZGI4MmFhOWUwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFu
YWdlci5qcwpAQCAtMzIzLDcgKzMyMyw3IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBub2RlRm9ySWQobm9kZUlkKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CisgICAgICAgIHJldHVybiB0
aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdIHx8IG51bGw7CiAgICAgfQogCiAgICAgX2RvY3VtZW50
VXBkYXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKaW5kZXggNzYzM2Rl
MWJhZTBmNDEzZmUxMmNkMWMzNjMzODRhZWYzZmQ4NDY1OS4uNzI5Njk2ZjA0MWMxNjJmZjk3Y2Zi
MDkyNDk3YmJkMTVhYmY5ZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5q
cwpAQCAtNzgxLDcgKzc4MSw3IEBAIFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5l
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVG
b3JJZChldmVudC5ub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJ
LmRvbU1hbmFnZXIubm9kZUZvcklkKGV2ZW50Lm5vZGVJZCk7CiAgICAgICAgICAgICBjb25zb2xl
LmFzc2VydChkb21Ob2RlKTsKIAogICAgICAgICAgICAgcmVjb3JkID0gbmV3IFdJLk1lZGlhVGlt
ZWxpbmVSZWNvcmQoZXZlbnRUeXBlLCBkb21Ob2RlLCBkZXRhaWxzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiZDY1N2Q5MzI2YWFhMGNlNjRmNmQ3ZWYwMzFkZjgx
NmFmMmNmZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKKysr
IC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9
InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cmVjdCB4PSIx
LjUiIHk9IjIuNSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1
cnJlbnRDb2xvciIvPgotICAgIDxwb2x5Z29uIHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMg
MTIgMTMgMTIgMTMgMTEgMTEgOCIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
N2NhZjNhMTQ5ZjY5NDViNjE4NmQ4NGI2MTU4NzY5Y2FmMGE2NGExCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2
ZwpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Cis8IS0tIENvcHlyaWdodCDCqSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
LS0+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZl
cnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCB4PSIxLjUiIHk9IjIu
NSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xv
ciIvPgorICAgIDxwb2x5Z29uIHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMgMTIgMTMgMTIg
MTMgMTEgMTEgOCIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9NYWluLmh0bWwKaW5kZXggZTMzZDEyMmJjYzc0NDA5YWNhZDdiZjMxMGQzYzBiYTUxNmI3
NjM1MS4uZTNmODMxODc0MzI0NWExNThkMTlmNGMyNDYyZjM5MThjMDM5MmZkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMzAsNiArMzAs
OSBAQAogCiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJFeHRlcm5hbC9Db2RlTWly
cm9yL2NvZGVtaXJyb3IuY3NzIj4KIAorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MiPgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGVi
YXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXBw
bGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5jc3MiPgogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXVkaXRUZXN0Q2FzZUNvbnRlbnRW
aWV3LmNzcyI+CkBAIC01Niw3ICs1OSw2IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJWaWV3cy9DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNTaWRlYmFyUGFu
ZWwuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1Rh
YkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9DaGFuZ2VzRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQ2hhcnREZXRhaWxzU2VjdGlvblJvdy5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hlY2tib3hOYXZpZ2F0aW9uSXRlbS5jc3Mi
PgpAQCAtMTEzLDYgKzExNSw4IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9Hb1RvTGluZURpYWxvZy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvR3JhZGllbnRFZGl0b3IuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL0dyYWRpZW50U2xpZGVyLmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4KKyAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcu
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVWaWV3LmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250
ZW50Vmlldy5jc3MiPgpAQCAtMzQ5LDYgKzM1Myw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3Rv
Y29sL1dvcmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbnNv
bGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luc3RydW1l
bnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNlQ29kZS5qcyI+
PC9zY3JpcHQ+CkBAIC0zNjEsNiArMzY2LDggQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1Nj
cmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Mb2NhbFNjcmlwdC5q
cyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbi5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hlTWFu
aWZlc3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQmFja0ZvcndhcmRF
bnRyeS5qcyI+PC9zY3JpcHQ+CkBAIC0zODAsNyArMzg3LDYgQEAKICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0NhbnZhcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxl
Y3Rpb25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0
aW9uRW50cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Nv
bGxlY3Rpb25UeXBlcy5qcyI+PC9zY3JpcHQ+CkBAIC01NjYsOSArNTcyLDkgQEAKICAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvU3R5bGVEZXRhaWxzUGFuZWwuanMiPjwvc2NyaXB0PgogCiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0F1ZGl0VGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL0NvbnNvbGVUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0VsZW1lbnRzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU2NyaXB0VHJlZUVsZW1lbnQuanMiPjwv
c2NyaXB0PgpAQCAtNTk0LDYgKzYwMCw5IEBACiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0
aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0FjdGl2YXRlQnV0dG9uVG9vbGJhckl0ZW0uanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRGV0
YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0Fw
cGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0
PgpAQCAtNjkyLDYgKzcwMSw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dvVG9MaW5lRGlh
bG9nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGllbnRFZGl0b3Iu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFkaWVudFNsaWRlci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9u
c1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGVQYXRoQ29tcG9uZW50LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVP
dmVydmlld0dyYXBoLmpzIj48L3NjcmlwdD4KQEAgLTg1Niw2ICs4NjYsNyBAQAogICAgIDxzY3Jp
cHQgc3JjPSJDb250cm9sbGVycy9Bbm5vdGF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yRWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0
PgogCisgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Jhc2ljQmxv
Y2tBbm5vdGF0b3IuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJjMzk3
NmFmNzBhZTE4ZTkyZjQ3NmI5Mjc4NTNmYTZkMDJlNWRiNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMKQEAg
LTAsMCArMSwyNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb24gPSBjbGFzcyBBbmltYXRp
b24gZXh0ZW5kcyBXSS5PYmplY3QKK3sKKyAgICBjb25zdHJ1Y3RvcihhbmltYXRpb25JZCwge2Nz
c0FuaW1hdGlvbk5hbWUsIGNzc1RyYW5zaXRpb25Qcm9wZXJ0eSwgZWZmZWN0LCBiYWNrdHJhY2V9
ID0ge30pCisgICAgeworICAgICAgICBzdXBlcigpOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKCFjc3NBbmltYXRpb25OYW1l
ICYmICFjc3NUcmFuc2l0aW9uUHJvcGVydHkpIHx8ICEhY3NzQW5pbWF0aW9uTmFtZSAhPT0gISFj
c3NUcmFuc2l0aW9uUHJvcGVydHkpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkID0gYW5p
bWF0aW9uSWQ7CisKKyAgICAgICAgdGhpcy5fY3NzQW5pbWF0aW9uTmFtZSA9IGNzc0FuaW1hdGlv
bk5hbWUgfHwgbnVsbDsKKyAgICAgICAgdGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5ID0gY3Nz
VHJhbnNpdGlvblByb3BlcnR5IHx8IG51bGw7CisgICAgICAgIHRoaXMuX3VwZGF0ZUVmZmVjdChl
ZmZlY3QpOworICAgICAgICB0aGlzLl9iYWNrdHJhY2UgPSBiYWNrdHJhY2UgfHwgW107CisKKyAg
ICAgICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldFByb21pc2UgPSBudWxsOworICAgIH0KKwor
ICAgIC8vIFN0YXRpYworCisgICAgc3RhdGljIGZyb21QYXlsb2FkKHBheWxvYWQpCisgICAgewor
ICAgICAgICByZXR1cm4gbmV3IFdJLkFuaW1hdGlvbihwYXlsb2FkLmFuaW1hdGlvbklkLCB7Cisg
ICAgICAgICAgICBjc3NBbmltYXRpb25OYW1lOiBwYXlsb2FkLmNzc0FuaW1hdGlvbk5hbWUsCisg
ICAgICAgICAgICBjc3NUcmFuc2l0aW9uUHJvcGVydHk6IHBheWxvYWQuY3NzVHJhbnNpdGlvblBy
b3BlcnR5LAorICAgICAgICAgICAgZWZmZWN0OiBwYXlsb2FkLmVmZmVjdCwKKyAgICAgICAgICAg
IGJhY2t0cmFjZTogQXJyYXkuaXNBcnJheShwYXlsb2FkLmJhY2t0cmFjZSkgPyBwYXlsb2FkLmJh
Y2t0cmFjZS5tYXAoKGl0ZW0pID0+IFdJLkNhbGxGcmFtZS5mcm9tUGF5bG9hZChXSS5tYWluVGFy
Z2V0LCBpdGVtKSkgOiBbXSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGRpc3Bs
YXlOYW1lRm9yQW5pbWF0aW9uVHlwZShhbmltYXRpb25UeXBlLCBwbHVyYWwpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKGFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24u
VHlwZS5XZWJBbmltYXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJp
bmcoIldlYiBBbmltYXRpb25zIikgOiBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbiIpOworICAg
ICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIHJl
dHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NTIEFuaW1hdGlvbnMiKSA6IFdJLlVJU3RyaW5n
KCJDU1MgQW5pbWF0aW9uIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJh
bnNpdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NTIFRy
YW5zaXRpb25zIikgOiBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb24iKTsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBhbmltYXRpb24gdHlwZSIs
IGFuaW1hdGlvblR5cGUpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0
aWMgZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlvbikKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAocGxheWJhY2tEaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBX
SS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uTm9ybWFsOgorICAgICAgICAgICAgcmV0dXJu
IFdJLlVJU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJh
Y2tEaXJlY3Rpb24uUmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUmV2
ZXJzZSIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRl
cm5hdGU6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFsdGVybmF0ZSIpOworICAg
ICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRlcm5hdGVSZXZlcnNl
OgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBbHRlcm5hdGUgUmV2ZXJzZSIpOwor
ICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIHBsYXli
YWNrIGRpcmVjdGlvbiIsIHBsYXliYWNrRGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIG51bGw7
CisgICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yRmlsbE1vZGUoZmlsbE1vZGUpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKGZpbGxNb2RlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0
aW9uLkZpbGxNb2RlLk5vbmU6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIk5vbmUi
KTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuRm9yd2FyZHM6CisgICAgICAg
ICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkZvcndhcmRzIik7CisgICAgICAgIGNhc2UgV0kuQW5p
bWF0aW9uLkZpbGxNb2RlLkJhY2t3YXJkczoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmlu
ZygiQmFja3dhcmRzIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJvdGg6
CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJvdGgiKTsKKyAgICAgICAgY2FzZSBX
SS5BbmltYXRpb24uRmlsbE1vZGUuQXV0bzoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmlu
ZygiQXV0byIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJV
bmtub3duIGZpbGwgbW9kZSIsIGZpbGxNb2RlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAg
fQorCisgICAgc3RhdGljIHJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCkKKyAgICB7Cisg
ICAgICAgIFdJLkFuaW1hdGlvbi5fbmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gMTsKKyAg
ICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25JZCgpIHsgcmV0dXJuIHRo
aXMuX2FuaW1hdGlvbklkOyB9CisgICAgZ2V0IGJhY2t0cmFjZSgpIHsgcmV0dXJuIHRoaXMuX2Jh
Y2t0cmFjZTsgfQorCisgICAgZ2V0IGFuaW1hdGlvblR5cGUoKQorICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUpCisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9u
LlR5cGUuQ1NTQW5pbWF0aW9uOworICAgICAgICBpZiAodGhpcy5fY3NzVHJhbnNpdGlvblByb3Bl
cnR5KQorICAgICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb247
CisgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb247CisgICAgfQor
CisgICAgZ2V0IHN0YXJ0RGVsYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJzdGFydERlbGF5
IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3Quc3RhcnREZWxheSA6IE5hTjsKKyAgICB9
CisKKyAgICBnZXQgZW5kRGVsYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJlbmREZWxheSIg
aW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LmVuZERlbGF5IDogTmFOOworICAgIH0KKwor
ICAgIGdldCBpdGVyYXRpb25Db3VudCgpCisgICAgeworICAgICAgICByZXR1cm4gIml0ZXJhdGlv
bkNvdW50IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRlcmF0aW9uQ291bnQgOiBO
YU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvblN0YXJ0KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAiaXRlcmF0aW9uU3RhcnQiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVy
YXRpb25TdGFydCA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9uRHVyYXRpb24oKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRpb25EdXJhdGlvbiIgaW4gdGhpcy5fZWZmZWN0
ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9uIDogTmFOOworICAgIH0KKworICAgIGdl
dCB0aW1pbmdGdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gInRpbWluZ0Z1bmN0aW9u
IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24gOiBudWxsOwor
ICAgIH0KKworICAgIGdldCBwbGF5YmFja0RpcmVjdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4gInBsYXliYWNrRGlyZWN0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QucGxh
eWJhY2tEaXJlY3Rpb24gOiBudWxsOworICAgIH0KKworICAgIGdldCBmaWxsTW9kZSgpCisgICAg
eworICAgICAgICByZXR1cm4gImZpbGxNb2RlIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZl
Y3QuZmlsbE1vZGUgOiBudWxsOworICAgIH0KKworICAgIGdldCBrZXlmcmFtZXMoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuICJrZXlmcmFtZXMiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVj
dC5rZXlmcmFtZXMgOiBbXTsKKyAgICB9CisKKyAgICBnZXQgZGlzcGxheU5hbWUoKQorICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fY3NzQW5pbWF0aW9uTmFtZTsKKworICAgICAgICBpZiAodGhpcy5fY3NzVHJhbnNpdGlv
blByb3BlcnR5KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0
eTsKKworICAgICAgICBpZiAoIXRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKQorICAgICAg
ICAgICAgdGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSBXSS5BbmltYXRpb24uX25leHRV
bmlxdWVEaXNwbGF5TmFtZU51bWJlcisrOworICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFu
aW1hdGlvbiAlZCIpLmZvcm1hdCh0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcik7CisgICAg
fQorCisgICAgcmVxdWVzdEVmZmVjdFRhcmdldCgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMu
X3JlcXVlc3RFZmZlY3RUYXJnZXRQcm9taXNlKSB7CisgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0
RWZmZWN0VGFyZ2V0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmVuc3VyZURvY3VtZW50KCk7CisKKyAgICAg
ICAgICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisgICAgICAg
ICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJlcXVlc3RFZmZlY3RUYXJnZXQodGhpcy5f
YW5pbWF0aW9uSWQsIChlcnJvciwgbm9kZUlkKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgICAgIHJlc29sdmUoV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKSk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldFByb21pc2U7CisgICAgfQorCisgICAg
Ly8gQW5pbWF0aW9uTWFuYWdlcgorCisgICAgZWZmZWN0Q2hhbmdlZChlZmZlY3QpCisgICAgewor
ICAgICAgICB0aGlzLl91cGRhdGVFZmZlY3QoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRD
aGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRQcm9taXNl
ID0gbnVsbDsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Bbmlt
YXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisg
ICAgX3VwZGF0ZUVmZmVjdChlZmZlY3QpCisgICAgeworICAgICAgICB0aGlzLl9lZmZlY3QgPSBl
ZmZlY3QgfHwge307CisKKyAgICAgICAgaWYgKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbikK
KyAgICAgICAgICAgIHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbiA9IFdJLkN1YmljQmV6aWVy
LmZyb21TdHJpbmcodGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uKTsKKworICAgICAgICBpZiAo
dGhpcy5fZWZmZWN0LmtleWZyYW1lcykgeworICAgICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUg
b2YgdGhpcy5fZWZmZWN0LmtleWZyYW1lcykgeworICAgICAgICAgICAgICAgIGlmIChrZXlmcmFt
ZS5lYXNpbmcpCisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lLmVhc2luZyA9IFdJLkN1Ymlj
QmV6aWVyLmZyb21TdHJpbmcoa2V5ZnJhbWUuZWFzaW5nKTsKKworICAgICAgICAgICAgICAgIGlm
IChrZXlmcmFtZS5zdHlsZSkKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWUuc3R5bGUgPSBr
ZXlmcmFtZS5zdHlsZS5yZXBsYWNlQWxsKC87XHMrL2csICI7XG4iKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkFu
aW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKTsKKyAgICB9Cit9OworCitXSS5BbmltYXRpb24u
X25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IDE7CisKK1dJLkFuaW1hdGlvbi5UeXBlID0g
eworICAgIFdlYkFuaW1hdGlvbjogIndlYi1hbmltYXRpb24iLAorICAgIENTU0FuaW1hdGlvbjog
ImNzcy1hbmltYXRpb24iLAorICAgIENTU1RyYW5zaXRpb246ICJjc3MtdHJhbnNpdGlvbiIsCit9
OworCitXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24gPSB7CisgICAgTm9ybWFsOiAibm9y
bWFsIiwKKyAgICBSZXZlcnNlOiAicmV2ZXJzZSIsCisgICAgQWx0ZXJuYXRlOiAiYWx0ZXJuYXRl
IiwKKyAgICBBbHRlcm5hdGVSZXZlcnNlOiAiYWx0ZXJuYXRlLXJldmVyc2UiLAorfTsKKworV0ku
QW5pbWF0aW9uLkZpbGxNb2RlID0geworICAgIE5vbmU6ICJub25lIiwKKyAgICBGb3J3YXJkczog
ImZvcndhcmRzIiwKKyAgICBCYWNrd2FyZHM6ICJiYWNrd2FyZHMiLAorICAgIEJvdGg6ICJib3Ro
IiwKKyAgICBBdXRvOiAiYXV0byIsCit9OworCitXSS5BbmltYXRpb24uRXZlbnQgPSB7CisgICAg
RWZmZWN0Q2hhbmdlZDogImFuaW1hdGlvbi1lZmZlY3QtY2hhbmdlZCIsCisgICAgVGFyZ2V0Q2hh
bmdlZDogImFuaW1hdGlvbi10YXJnZXQtY2hhbmdlZCIsCit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24u
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9u
Q29sbGVjdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mjc2YWI0MGQ2OTlkNWRlYjJlNjA4MWY4NDU1YjIy
ZTQxMzY3OWZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMKQEAgLTAsMCArMSwxMTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0aW9uID0gY2xhc3MgQW5pbWF0aW9uQ29s
bGVjdGlvbiBleHRlbmRzIFdJLkNvbGxlY3Rpb24KK3sKKyAgICBjb25zdHJ1Y3RvcihhbmltYXRp
b25UeXBlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWFuaW1hdGlvblR5cGUgfHwg
T2JqZWN0LnZhbHVlcyhXSS5BbmltYXRpb24uVHlwZSkuaW5jbHVkZXMoYW5pbWF0aW9uVHlwZSkp
OworCisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uVHlwZSA9IGFu
aW1hdGlvblR5cGUgfHwgbnVsbDsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUp
CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9IG51bGw7
CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uVHlwZSgpIHsgcmV0
dXJuIHRoaXMuX2FuaW1hdGlvblR5cGU7IH0KKworICAgIGdldCBkaXNwbGF5TmFtZSgpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgY29uc3Qg
cGx1cmFsID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uZGlzcGxheU5h
bWVGb3JUeXBlKHRoaXMuX2FuaW1hdGlvblR5cGUsIHBsdXJhbCk7CisgICAgICAgIH0KKworICAg
ICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25zIik7CisgICAgfQorCisgICAg
b2JqZWN0SXNSZXF1aXJlZFR5cGUob2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCEob2JqZWN0
IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICByZXR1cm4gIXRoaXMuX2FuaW1hdGlvblR5cGUgfHwgb2JqZWN0LmFuaW1hdGlvblR5
cGUgPT09IHRoaXMuX2FuaW1hdGlvblR5cGU7CisgICAgfQorCisgICAgYW5pbWF0aW9uQ29sbGVj
dGlvbkZvclR5cGUoYW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFuaW1hdGlvblR5cGUp
KTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQoYW5pbWF0aW9uVHlwZSA9PT0gdGhpcy5fYW5pbWF0aW9uVHlwZSk7CisgICAg
ICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdGhpcy5fYW5p
bWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApCisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25D
b2xsZWN0aW9uRm9yVHlwZU1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbkNv
bGxlY3Rpb25Gb3JUeXBlID0gdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAuZ2V0
KGFuaW1hdGlvblR5cGUpOworICAgICAgICBpZiAoIWFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBl
KSB7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IG5ldyBXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uKGFuaW1hdGlvblR5cGUpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0
aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAuc2V0KGFuaW1hdGlvblR5cGUsIGFuaW1hdGlvbkNvbGxl
Y3Rpb25Gb3JUeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYW5pbWF0aW9uQ29sbGVj
dGlvbkZvclR5cGU7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpdGVtQWRkZWQo
aXRlbSkKKyAgICB7CisgICAgICAgIHN1cGVyLml0ZW1BZGRlZChpdGVtKTsKKworICAgICAgICBp
ZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRlbS5hbmlt
YXRpb25UeXBlKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmFkZChp
dGVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGl0ZW1SZW1vdmVkKGl0ZW0pCisgICAgewor
ICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGxldCBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUo
aXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlLnJlbW92ZShpdGVtKTsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVyLml0ZW1SZW1vdmVk
KGl0ZW0pOworICAgIH0KKworICAgIGl0ZW1zQ2xlYXJlZChpdGVtcykKKyAgICB7CisgICAgICAg
IGlmICh0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCkgeworICAgICAgICAgICAg
Zm9yIChsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgb2YgdGhpcy5fYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGVNYXAudmFsdWVzKCkpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUuY2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVyLml0ZW1z
Q2xlYXJlZChpdGVtcyk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQu
anMKaW5kZXggYzljYzM5NjJlODBmYjY2ZmUxNWRhMTM1NGVhMjkyNmJmODQxY2RjZS4uMzFkNjI3
ZDgxMWJkNjMzMmRjNDgwODVmOTdkZjUwNjRkMjAxMjdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVz
dENhc2VSZXN1bHQuanMKQEAgLTE0Niw3ICsxNDYsNyBAQCBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0
ID0gY2xhc3MgQXVkaXRUZXN0Q2FzZVJlc3VsdCBleHRlbmRzIFdJLkF1ZGl0VGVzdFJlc3VsdEJh
cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGVJZCA9IGF3YWl0IGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGRv
bU5vZGVTdHJpbmcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggeyB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklk
KG5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gV0ku
ZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0p
KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4
IDYyYmEyNjQxMDVhYWVkZjRiYTVlMmJlMzc1NWEyYjVkMzhiY2ZhZDMuLjhlMmI1MmUyYzFmMTFh
MzZkNjVkZmNhNGVjOTUwZjYwOTg1OTY5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwpAQCAtOTcsNyArOTcsNyBAQCBX
SS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FzZSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQ6CiAgICAgICAgICAgICByZXR1cm4gV0kuVUlT
dHJpbmcoIjJEIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJl
bmRlcmVyOgotICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJCaXRtYXAg
UmVuZGVyZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQml0bWFwIFJlbmRl
cmVyIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgogICAgICAg
ICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIpOwogICAgICAgICBjYXNl
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CkBAIC0xMDYsOSArMTA2LDEwIEBAIFdJLkNh
bnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJu
IFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWIgR1BVIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYk1ldGFsOgogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVk
U3RyaW5nKCJXZWJNZXRhbCIpOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY29uc29s
ZS5lcnJvcigiSW52YWxpZCBjYW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOwogICAg
ICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGNhbnZhcyBj
b250ZXh0IHR5cGUiLCBjb250ZXh0VHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOwogICAgIH0K
IAogICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5q
cwppbmRleCAxZjhkZDdlZjQ1ZDYyOTc3OGNkODI4N2JmYjhkMzFiMmExMDg5ZjMwLi5iNmRlOTUz
NTQyMmM5YzYzYWUxYWQxNGU5ZGM0N2ZlYWM3NjgwNGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKQEAgLTE0
OCw2ICsxNDgsMjMgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgIHJldHVybiBuZXcgV0kuUmVjb3JkaW5nKHBheWxvYWQudmVyc2lvbiwg
dHlwZSwgcGF5bG9hZC5pbml0aWFsU3RhdGUsIGZyYW1lcywgcGF5bG9hZC5kYXRhKTsKICAgICB9
CiAKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBlKHJlY29yZGluZ1R5cGUp
CisgICAgeworICAgICAgICBzd2l0Y2ggKHJlY29yZGluZ1R5cGUpIHsKKyAgICAgICAgY2FzZSBS
ZWNvcmRpbmcuVHlwZS5DYW52YXMyRDoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygi
MkQiKTsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNCaXRtYXBSZW5kZXJlcjoK
KyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQml0bWFwIFJlbmRlcmVyIik7CisgICAg
ICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0w6CisgICAgICAgICAgICByZXR1cm4g
V0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5
cGUuQ2FudmFzV2ViR0wyOgorICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5n
KCJXZWJHTDIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAi
VW5rbm93biByZWNvcmRpbmcgdHlwZSIsIHJlY29yZGluZ1R5cGUpOworICAgICAgICByZXR1cm4g
bnVsbDsKKyAgICB9CisKICAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JTd2l6emxlVHlwZShzd2l6
emxlVHlwZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3dpenpsZVR5cGUpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlv
bk9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKaW5kZXggYjExOTVlZDBjYTBjYjBjYTgwNjY4ZTBlOThk
YzY3OWRjYWQ5MTdhMy4uN2U1NmU4YmIzOWNiYTBjNjI4MGVhOWNlZGQ0NWJlNTU0NWYwZjE2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
QW5pbWF0aW9uT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKQEAgLTI3LDYgKzI3LDI2IEBAIFdJ
LkFuaW1hdGlvbk9ic2VydmVyID0gY2xhc3MgQW5pbWF0aW9uT2JzZXJ2ZXIgZXh0ZW5kcyBJbnNw
ZWN0b3JCYWNrZW5kLkRpc3BhdGNoCiB7CiAgICAgLy8gRXZlbnRzIGRlZmluZWQgYnkgdGhlICJB
bmltYXRpb24iIGRvbWFpbi4KIAorICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uKQorICAg
IHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25DcmVhdGVkKGFuaW1hdGlv
bik7CisgICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQorICAg
IHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklk
LCBlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpCisgICAg
eworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLnRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQp
OworICAgIH0KKworICAgIGFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCkKKyAgICB7Cisg
ICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklk
KTsKKyAgICB9CisKICAgICB0cmFja2luZ1N0YXJ0KHRpbWVzdGFtcCkKICAgICB7CiAgICAgICAg
IFdJLnRpbWVsaW5lTWFuYWdlci5hbmltYXRpb25UcmFja2luZ1N0YXJ0ZWQodGltZXN0YW1wKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL1JlbW90ZU9iamVjdC5qcwppbmRleCBkZDAwYWY1OGMxMjUzMDU4NmUxYzI4MzAzMmI3
MmZkNjI5ZmEzMmQ5Li4yY2JhNTY0ZDRhN2I2YTM4YzE4OWU1NzMzZDNjZjNjNjBmYzUxNjQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9S
ZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCkBAIC0xODgsNiArMTg4LDI1IEBAIFdJLlJlbW90ZU9i
amVjdCA9IGNsYXNzIFJlbW90ZU9iamVjdAogICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQucmVz
b2x2ZUNvbnRleHQoY2FudmFzLmlkZW50aWZpZXIsIG9iamVjdEdyb3VwLCB3cmFwQ2FsbGJhY2sp
OwogICAgIH0KIAorICAgIHN0YXRpYyByZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbiwgb2JqZWN0
R3JvdXAsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGNh
bGxiYWNrID09PSAiZnVuY3Rpb24iKTsKKworICAgICAgICBmdW5jdGlvbiB3cmFwQ2FsbGJhY2so
ZXJyb3IsIG9iamVjdCkgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFvYmplY3QpCisgICAg
ICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgY2FsbGJhY2soV0kuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVjdCwgV0kubWFp
blRhcmdldCkpOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5n
TWFpblRhcmdldCgpOworCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5p
bWF0aW9uLnJlc29sdmVBbmltYXRpb24gZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiIp
KTsKKworICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQucmVzb2x2ZUFuaW1hdGlvbihhbmlt
YXRpb24uYW5pbWF0aW9uSWQsIG9iamVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOworICAgIH0KKwog
ICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IHRhcmdldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggMWQ0NDVhMDRjZGViZWVjZmE3YjBjYjA4
ZWQ2ZmJiZDRiZjQ2MWU4NC4uMGJhNTYwYjk2YzAyMzA2ZWI2MWIzMmJkZjRlYWM4OTkyM2RiZjBj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5o
dG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApA
QCAtMTA4LDYgKzEwOCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1dvcmtlck9ic2Vy
dmVyLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludEFj
dGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luc3RydW1lbnQuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNlQ29kZS5qcyI+PC9zY3JpcHQ+CkBAIC0x
MjEsNiArMTIyLDggQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Mb2NhbFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAK
KyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQ1BVSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9DUFVUaW1lbGluZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMzcsNyArMTQwLDYgQEAKICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+PC9zY3JpcHQ+CkBAIC0yMzgsNiArMjQw
LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJveGllcy9IZWFwU25hcHNob3RQcm94eS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVhcFNuYXBzaG90V29ya2VyUHJveHku
anMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1h
bmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BdWRpdE1h
bmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL0JyZWFrcG9pbnRMb2dNZXNzYWdlTGV4ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCmluZGV4IDNjNDNhZTc4
YmUxNzI3NzA3MjliNzAzMmFiZTU0NDQzYzk0NmE4YmIuLjAwNjQ0N2E5NjdlOWMyMzdmNjBjMTAw
MDhiYjQ2MzQ1NzJiN2M0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Rlc3QvVGVzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0L1Rlc3QuanMKQEAgLTcwLDYgKzcwLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rp
b24oKQogICAgICAgICBXSS53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIsCiAg
ICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIs
CiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAgICAg
ICAgV0kuYW5pbWF0aW9uTWFuYWdlciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAgIF07
CiAKICAgICAvLyBSZWdpc3RlciBmb3IgZXZlbnRzLgpAQCAtOTEsNiArOTIsNyBAQCBXSS5sb2Fk
ZWQgPSBmdW5jdGlvbigpCiBXSS5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogewogICAgIC8v
IFRoaW5ncyB0aGF0IHdvdWxkIG5vcm1hbGx5IGdldCBjYWxsZWQgYnkgdGhlIFVJLCB0aGF0IHdl
IHN0aWxsIHdhbnQgdG8gZG8gaW4gdGVzdHMuCisgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lbmFi
bGUoKTsKICAgICBXSS5hcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5j
YW52YXNNYW5hZ2VyLmVuYWJsZSgpOwogICAgIFdJLmRhdGFiYXNlTWFuYWdlci5lbmFibGUoKTsK
QEAgLTE4MSw2ICsxODMsNyBAQCBXSS51cGRhdGVWaXNpYmlsaXR5U3RhdGUgPSAoKSA9PiB7fTsK
ICAgICAgICAgICAgIGdldCgpIHsgcmV0dXJuIFdJLm1haW5UYXJnZXQuX2FnZW50c1tkb21haW5O
YW1lXTsgfSwKICAgICAgICAgfSk7CiAgICAgfQorICAgIG1ha2VBZ2VudEdldHRlcigiQW5pbWF0
aW9uIik7CiAgICAgbWFrZUFnZW50R2V0dGVyKCJBdWRpdCIpOwogICAgIG1ha2VBZ2VudEdldHRl
cigiQXBwbGljYXRpb25DYWNoZSIpOwogICAgIG1ha2VBZ2VudEdldHRlcigiQ1BVUHJvZmlsZXIi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3Qv
VGVzdEhhcm5lc3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0
L1Rlc3RIYXJuZXNzLmpzCmluZGV4IGQ0NDdiODk1MGI5MzkyMWQwYTg2MDEzMDY4YThiMzQ4MmI1
MzE4ZGMuLmQyZTk5YWYxYjZlODUxMDdkZmQ2NmQ0MWEzMTNhNjRlYWU3MDBmMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3Mu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFy
bmVzcy5qcwpAQCAtMTMxLDYgKzEzMSw0NiBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJu
ZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5F
eHBlY3RhdGlvblR5cGUuRmFsc2UsICFhY3R1YWwsIG1lc3NhZ2UsIGFjdHVhbCk7CiAgICAgfQog
CisgICAgZXhwZWN0RW1wdHkoYWN0dWFsLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgaWYgKEFy
cmF5LmlzQXJyYXkoYWN0dWFsKSB8fCB0eXBlb2YgYWN0dWFsID09PSAic3RyaW5nIikgeworICAg
ICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwg
IWFjdHVhbC5sZW5ndGgsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0IHx8IGFjdHVhbCBp
bnN0YW5jZW9mIE1hcCkgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4
cGVjdGF0aW9uVHlwZS5FbXB0eSwgIWFjdHVhbC5zaXplLCBtZXNzYWdlLCBhY3R1YWwpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVvZiBhY3R1YWwg
PT09ICJvYmplY3QiKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhw
ZWN0YXRpb25UeXBlLkVtcHR5LCBpc0VtcHR5T2JqZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVh
bCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmZhaWwo
ImV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAg
IEFjdHVhbDogIiArIHRoaXMuX2V4cGVjdGF0aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAg
ICB9CisKKyAgICBleHBlY3ROb3RFbXB0eShhY3R1YWwsIG1lc3NhZ2UpCisgICAgeworICAgICAg
ICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IHR5cGVvZiBhY3R1YWwgPT09ICJzdHJpbmci
KSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBl
Lk5vdEVtcHR5LCAhIWFjdHVhbC5sZW5ndGgsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0
IHx8IGFjdHVhbCBpbnN0YW5jZW9mIE1hcCkgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRl
c3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwuc2l6ZSwgbWVzc2Fn
ZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
ICh0eXBlb2YgYWN0dWFsID09PSAib2JqZWN0IikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0
KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgIWlzRW1wdHlPYmplY3QoYWN0
dWFsKSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIHRoaXMuZmFpbCgiZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
d2l0aCBhIG5vbi1vYmplY3Q6XG4gICAgQWN0dWFsOiAiICsgdGhpcy5fZXhwZWN0YXRpb25WYWx1
ZUFzU3RyaW5nKGFjdHVhbCkpOworICAgIH0KKwogICAgIGV4cGVjdE51bGwoYWN0dWFsLCBtZXNz
YWdlKQogICAgIHsKICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZS5OdWxsLCBhY3R1YWwgPT09IG51bGwsIG1lc3NhZ2UsIGFjdHVhbCwgbnVsbCk7CkBAIC0z
ODEsNiArNDIxLDEwIEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiAiZXhwZWN0VGhhdCglcykiOwogICAgICAgICBj
YXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZToKICAgICAgICAgICAgIHJldHVy
biAiZXhwZWN0RmFsc2UoJXMpIjsKKyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlv
blR5cGUuRW1wdHk6CisgICAgICAgICAgICByZXR1cm4gImV4cGVjdEVtcHR5KCVzKSI7CisgICAg
ICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5OgorICAgICAgICAg
ICAgcmV0dXJuICJleHBlY3ROb3RFbXB0eSglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNz
LkV4cGVjdGF0aW9uVHlwZS5OdWxsOgogICAgICAgICAgICAgcmV0dXJuICJleHBlY3ROdWxsKCVz
KSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdE51bGw6CkBA
IC00MTYsNiArNDYwLDEwIEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiAidHJ1dGh5IjsKICAgICAgICAgY2FzZSBU
ZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2U6CiAgICAgICAgICAgICByZXR1cm4gImZh
bHNleSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5Ogor
ICAgICAgICAgICAgcmV0dXJuICJlbXB0eSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhw
ZWN0YXRpb25UeXBlLk5vdEVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJub3QgZW1wdHkiOwog
ICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3ROdWxsOgogICAgICAg
ICAgICAgcmV0dXJuICJub3QgbnVsbCI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0
YXRpb25UeXBlLk5vdEVxdWFsOgpAQCAtNDQwLDYgKzQ4OCw4IEBAIFRlc3RIYXJuZXNzID0gY2xh
c3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZSA9IHsKICAgICBUcnVlOiBTeW1ib2woImV4cGVjdC10cnVlIiksCiAgICAgRmFsc2U6IFN5
bWJvbCgiZXhwZWN0LWZhbHNlIiksCisgICAgRW1wdHk6IFN5bWJvbCgiZXhwZWN0LWVtcHR5Iiks
CisgICAgTm90RW1wdHk6IFN5bWJvbCgiZXhwZWN0LW5vdC1lbXB0eSIpLAogICAgIE51bGw6IFN5
bWJvbCgiZXhwZWN0LW51bGwiKSwKICAgICBOb3ROdWxsOiBTeW1ib2woImV4cGVjdC1ub3QtbnVs
bCIpLAogICAgIEVxdWFsOiBTeW1ib2woImV4cGVjdC1lcXVhbCIpLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ1YzZh
Nzc1NGU3YTI3M2I5NmNjOTA5ZDYxMGE0MjZjZWJjMDViZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rp
b25Db250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50
LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICBwYWRkaW5nOiA0cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9u
Q29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM5MGI3NzE0Y2ZlMjAzZjQ2NjA4MjNlNDI5NWFh
ZTUyNWJmYzYxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMCww
ICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmll
dyA9IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxl
Y3Rpb25Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQor
ICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5BbmltYXRpb25Db2xsZWN0aW9uKTsKKworICAgICAgICBsZXQgY29udGVudFBsYWNlaG9s
ZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKyAgICAgICAgbGV0IGRlc2Ny
aXB0aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5jbGFzc05h
bWUgPSAiZGVzY3JpcHRpb24iOworCisgICAgICAgIHN3aXRjaCAocmVwcmVzZW50ZWRPYmplY3Qu
YW5pbWF0aW9uVHlwZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1h
dGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJ
U3RyaW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iKTsK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NT
QW5pbWF0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0g
V0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7Cisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1Ry
YW5zaXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBX
SS5VSVN0cmluZygiV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChkZXNj
cmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQpOworCisgICAgICAgIHN1cGVyKHJlcHJlc2VudGVk
T2JqZWN0LCBXSS5BbmltYXRpb25Db250ZW50VmlldywgY29udGVudFBsYWNlaG9sZGVyKTsKKwor
ICAgICAgICB0aGlzLnNlbGVjdGlvbkVuYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJhbmltYXRpb24tY29sbGVjdGlvbiIpOworICAgIH0KKworICAg
IC8vIFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAg
ICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBp
ZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KQorICAgICAgICAg
ICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgY29udGVudFZpZXdBZGRlZChjb250ZW50
VmlldykKKyAgICB7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigibW91c2VlbnRlciIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAg
ICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRo
aXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk7CisgICAgfQorCisgICAgY29udGVudFZp
ZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQorICAgIHsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5faGFuZGxlQ29udGVudFZp
ZXdNb3VzZUVudGVyKTsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKTsK
KyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhp
ZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9
CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKGV2
ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gV0kuVmlldy5mcm9tRWxlbWVu
dChldmVudC50YXJnZXQpOworICAgICAgICBpZiAoIShjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJ
LkFuaW1hdGlvbkNvbnRlbnRWaWV3KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBs
ZXQgYW5pbWF0aW9uID0gY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGFu
aW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KCkudGhlbigobm9kZSkgPT4geworICAgICAgICAg
ICAgaWYgKCFub2RlIHx8ICFub2RlLm93bmVyRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgbm9kZS5oaWdobGlnaHQoKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZShldmVudCkKKyAgICB7CisgICAgICAg
IFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICB9Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9u
Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ODg5MGY1Y2NkNjRhY2Jm
NjJkOWFiOTEwY2JlYjg3OGNkZjYyODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MKQEAg
LTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29udGVudC12aWV3LmFuaW1hdGlvbiB7Cisg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiAxMDAlOworICAgIG1hcmdpbjogNHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItY29udGVudCk7
CisgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRl
bnQtdmlldy5hbmltYXRpb24uc2VsZWN0ZWQgeworICAgIG91dGxpbmU6IGF1dG8gLXdlYmtpdC1m
b2N1cy1yaW5nLWNvbG9yOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciB7
CisgICAgZGlzcGxheTogZmxleDsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIGhlaWdo
dDogdmFyKC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0KTsKKyAgICBwYWRkaW5nOiAwIDZweDsKKyAg
ICBmb250LXNpemU6IDEzcHg7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVy
ID4gLnRpdGxlcyB7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKyAgICBjb2xvcjogdmFy
KC0tdGV4dC1jb2xvci1ncmF5LWRhcmspOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNv
bG9yLWdyYXktbWVkaXVtKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIg
PiAudGl0bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZvcmUgeworICAgIGNvbnRlbnQ6
ICJcMDBBMFwyMDE0XDAwQTAiOyAvKiAmbmJzcDsmbWRhc2g7Jm5ic3A7ICovOworfQorCisuY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgYm9y
ZGVyOiBub25lOworICAgIG9wYWNpdHk6IDA7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9u
OmhvdmVyID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBvcGFjaXR5OiAxOworfQor
CisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3IHsKKyAgICBkaXNwbGF5OiBmbGV4
OworICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NiUpOworfQorCisuY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHsKKyAgICB3aWR0aDogMTAwJTsKK30KKwor
Ym9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHsK
KyAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gLnByZXZpZXcgPiBzdmcgcmVjdCB7CisgICAgZmlsbDogdHJhbnNwYXJlbnQ7Cit9CisKKy5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSB7Cisg
ICAgc3Ryb2tlOiB2YXIoLS1ib3JkZXItY29sb3IpOworICAgIHN0cm9rZS13aWR0aDogMjsKK30K
KworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgcGF0
aCB7CisgICAgZmlsbDogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKKyAgICBmaWxsLW9wYWNp
dHk6IDAuNTsKKyAgICBzdHJva2U6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7CisgICAgc3Ry
b2tlLXdpZHRoOiAxOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnID4gLmFjdGl2ZSBjaXJjbGUgeworICAgIGZpbGw6IHZhcigtLXRleHQtY29sb3IpOworfQor
CisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBsaW5l
IHsKKyAgICBzdHJva2U6IHZhcigtLXRleHQtY29sb3IpOworICAgIHN0cm9rZS13aWR0aDogMjsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHNwYW4geworICAgIHBh
ZGRpbmc6IDRweDsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworfQor
CitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKyAgICAgICAgY29sb3I6
IHZhcigtLXRleHQtY29sb3IpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgICAgIGNvbG9yOiB2YXIoLS10
ZXh0LWNvbG9yLXNlY29uZGFyeSk7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMjAl
KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE3YmYyMTkzYWJjY2E2NGJkZjM3OWE2NzgzMWY1MTQ1MDA0YTNlNTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25D
b250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDMwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlv
bkNvbnRlbnRWaWV3ID0gY2xhc3MgQW5pbWF0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Bbmlt
YXRpb24pOworCisgICAgICAgIHN1cGVyKHJlcHJlc2VudGVkT2JqZWN0KTsKKworICAgICAgICB0
aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fY2FjaGVk
V2lkdGggPSBOYU47CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImFuaW1h
dGlvbiIpOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisgICAgc3RhdGljIGdldCBwcmV2aWV3
SGVpZ2h0KCkKKyAgICB7CisgICAgICAgIHJldHVybiA0MDsKKyAgICB9CisKKyAgICAvLyBQdWJs
aWMKKworICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAg
aW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisK
KyAgICAgICAgbGV0IGhlYWRlckVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaGVhZGVyIikpOworCisgICAgICAgIGxldCB0aXRsZXNDb250
YWluZXIgPSBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpKTsKKyAgICAgICAgdGl0bGVzQ29udGFpbmVyLmNsYXNzTmFtZSA9ICJ0aXRsZXMiOwor
CisgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSB0aXRsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgdGl0bGVFbGVtZW50LmNs
YXNzTmFtZSA9ICJ0aXRsZSI7CisgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3QuZGlzcGxheU5hbWU7CisKKyAgICAgICAgdGhpcy5fc3VidGl0
bGVFbGVtZW50ID0gdGl0bGVzQ29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKSk7CisgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5jbGFzc05hbWUg
PSAic3VidGl0bGUiOworCisgICAgICAgIGxldCBuYXZpZ2F0aW9uQmFyID0gbmV3IFdJLk5hdmln
YXRpb25CYXI7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25J
dGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJhbmltYXRpb24tdGFyZ2V0IiwgV0ku
VUlTdHJpbmcoIkFuaW1hdGlvbiBUYXJnZXQiKSwgIkltYWdlcy9NYXJrdXAuc3ZnIiwgMTYsIDE2
KTsKKyAgICAgICAgYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0
eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKKyAg
ICAgICAgV0kuYWRkTW91c2VEb3duQ29udGV4dE1lbnVIYW5kbGVycyhhbmltYXRpb25UYXJnZXRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5lbGVtZW50LCB0aGlzLl9wb3B1bGF0ZUFuaW1hdGlvblRhcmdl
dEJ1dHRvbkNvbnRleHRNZW51LmJpbmQodGhpcykpOworICAgICAgICBuYXZpZ2F0aW9uQmFyLmFk
ZE5hdmlnYXRpb25JdGVtKGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKKwor
ICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQpOworICAg
ICAgICB0aGlzLmFkZFN1YnZpZXcobmF2aWdhdGlvbkJhcik7CisKKyAgICAgICAgdGhpcy5fcHJl
dmlld0NvbnRhaW5lciA9IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIuY2xhc3NOYW1l
ID0gInByZXZpZXciOworICAgIH0KKworICAgIGxheW91dCgpCisgICAgeworICAgICAgICBzdXBl
ci5sYXlvdXQoKTsKKworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICAgICAg
dGhpcy5fcmVmcmVzaFByZXZpZXcoKTsKKyAgICB9CisKKyAgICBzaXplRGlkQ2hhbmdlKCkKKyAg
ICB7CisgICAgICAgIHN1cGVyLnNpemVEaWRDaGFuZ2UoKTsKKworICAgICAgICB0aGlzLl9jYWNo
ZWRXaWR0aCA9IHRoaXMuZWxlbWVudC5yZWFsT2Zmc2V0V2lkdGg7CisgICAgfQorCisgICAgYXR0
YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVm
ZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50
LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAgIH0K
KworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhp
cy5faGFuZGxlVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRP
YmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdl
ZCwgdGhpcy5faGFuZGxlRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0
YWNoZWQoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfcmVmcmVzaFN1YnRpdGxl
KCkKKyAgICB7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdEVmZmVjdFRh
cmdldCgpLnRoZW4oKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvblRh
cmdldERPTU5vZGUgPSBkb21Ob2RlOworCisgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1l
bnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIGlmIChkb21Ob2RlKQorICAgICAgICAg
ICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChXSS5saW5raWZ5Tm9kZVJl
ZmVyZW5jZShkb21Ob2RlKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoUHJl
dmlldygpCisgICAgeworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLnJlbW92ZUNoaWxk
cmVuKCk7CisKKyAgICAgICAgbGV0IGtleWZyYW1lcyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
a2V5ZnJhbWVzOworICAgICAgICBpZiAoIWtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
IGxldCBzcGFuID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IFdJ
LlVJU3RyaW5nKCJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiIpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHN0YXJ0RGVsYXkgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbkR1
cmF0aW9uID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5pdGVyYXRpb25EdXJhdGlvbiB8fCAwOwor
ICAgICAgICBsZXQgZW5kRGVsYXkgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVuZERlbGF5IHx8
IDA7CisgICAgICAgIGxldCB0b3RhbER1cmF0aW9uID0gc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1
cmF0aW9uICsgZW5kRGVsYXk7CisgICAgICAgIGlmICh0b3RhbER1cmF0aW9uID09PSAwKSB7Cisg
ICAgICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENv
bnRlbnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgcHJldmlld0hl
aWdodCA9IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByZXZpZXdIZWlnaHQ7CisKKyAgICAgICAg
Y29uc3QgbWFya2VySGVhZFJhZGl1cyA9IDQ7CisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRQYWRk
aW5nID0gMjsKKworICAgICAgICAvLyBTcXVlZXplIHRoZSBlbnRpcmUgcHJldmlldyBzbyB0aGF0
IG1hcmtlcnMgYXJlbid0IGN1dCBvZmYuCisgICAgICAgIGNvbnN0IHNxdWVlemVYU3RhcnQgPSAo
aXRlcmF0aW9uRHVyYXRpb24gJiYgc3RhcnREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyAr
IG1hcmtlckhlYWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWEVuZCA9IChpdGVyYXRp
b25EdXJhdGlvbiAmJiBlbmREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhl
YWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWVN0YXJ0ID0gODsKKworICAgICAgICAv
LyBNb3ZlIHRoZSBlYXNpbmcgbGluZSBkb3duIHRvIGN1dCBvZmYgdGhlIGJvdHRvbSBib3JkZXIu
CisgICAgICAgIGNvbnN0IGFkanVzdEVhc2luZ1kgPSAwLjU7CisKKyAgICAgICAgbGV0IHNlY29u
ZHNQZXJQaXhlbCA9IHRoaXMuX2NhY2hlZFdpZHRoIC8gdG90YWxEdXJhdGlvbjsKKworICAgICAg
ICBzdGFydERlbGF5ICo9IHNlY29uZHNQZXJQaXhlbDsKKyAgICAgICAgaXRlcmF0aW9uRHVyYXRp
b24gPSAoaXRlcmF0aW9uRHVyYXRpb24gKiBzZWNvbmRzUGVyUGl4ZWwpIC0gc3F1ZWV6ZVhTdGFy
dCAtIHNxdWVlemVYRW5kOworICAgICAgICBlbmREZWxheSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisK
KyAgICAgICAgbGV0IHN2ZyA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3Jl
YXRlU1ZHRWxlbWVudCgic3ZnIikpOworICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCJ2aWV3Qm94
IiwgYDAgMCAke3RoaXMuX2NhY2hlZFdpZHRofSAke3ByZXZpZXdIZWlnaHR9YCk7CisKKyAgICAg
ICAgZnVuY3Rpb24gYWRkVGl0bGUocGFyZW50LCB0aXRsZSkgeworICAgICAgICAgICAgbGV0IHRp
dGxlRWxlbWVudCA9IHBhcmVudC5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJ0aXRsZSIp
KTsKKyAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHN0YXJ0RGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBzdGFydERl
bGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7Cisg
ICAgICAgICAgICBzdGFydERlbGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImRlbGF5IiwgInN0
YXJ0Iik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5TGluZSA9IHN0YXJ0RGVsYXlDb250
YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAg
IHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hlaWdodCArIHNxdWVl
emVZU3RhcnQpIC8gMik7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUo
IngyIiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1
dGUoInkyIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisgICAgICAg
ICAgICBsZXQgc3RhcnREZWxheUVsZW1lbnQgPSBzdGFydERlbGF5Q29udGFpbmVyLmFwcGVuZENo
aWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICBzdGFydERlbGF5RWxl
bWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBzdGFy
dERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQpOworCisg
ICAgICAgICAgICBhZGRUaXRsZShzdGFydERlbGF5RWxlbWVudCwgV0kuVUlTdHJpbmcoIlN0YXJ0
IERlbGF5ICVzIikuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5zdGFydERlbGF5IC8gMTAwMCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChl
bmREZWxheSkgeworICAgICAgICAgICAgbGV0IGVuZERlbGF5Q29udGFpbmVyID0gc3ZnLmFwcGVu
ZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICBlbmREZWxheUNvbnRh
aW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydERlbGF5ICsg
aXRlcmF0aW9uRHVyYXRpb24gKyBzcXVlZXplWFN0YXJ0fSwgMClgKTsKKyAgICAgICAgICAgIGVu
ZERlbGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImRlbGF5IiwgImVuZCIpOworCisgICAgICAg
ICAgICBsZXQgZW5kRGVsYXlMaW5lID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3Jl
YXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRy
aWJ1dGUoInkxIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAg
ICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieDIiLCBlbmREZWxheSk7CisgICAgICAg
ICAgICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1
ZWV6ZVlTdGFydCkgLyAyKTsKKworICAgICAgICAgICAgbGV0IGVuZERlbGF5RWxlbWVudCA9IGVu
ZERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7Cisg
ICAgICAgICAgICBlbmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVs
YXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIGVuZERlbGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5
RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQpOworCisgICAgICAg
ICAgICBhZGRUaXRsZShlbmREZWxheUVsZW1lbnQsIFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkgJXMi
KS5mb3JtYXQoTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVu
ZERlbGF5IC8gMTAwMCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpdGVyYXRpb25EdXJh
dGlvbikgeworICAgICAgICAgICAgbGV0IHRpbWluZ0Z1bmN0aW9uID0gdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC50aW1pbmdGdW5jdGlvbjsKKworICAgICAgICAgICAgbGV0IGFjdGl2ZUR1cmF0aW9u
Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAg
ICAgICAgICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTsK
KyAgICAgICAgICAgIGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNm
b3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0RGVsYXkgKyBzcXVlZXplWFN0YXJ0fSwgJHtzcXVlZXpl
WVN0YXJ0fSlgKTsKKworICAgICAgICAgICAgY29uc3Qgc3RhcnRZID0gMDsKKyAgICAgICAgICAg
IGNvbnN0IGVuZFkgPSBwcmV2aWV3SGVpZ2h0IC0gc3F1ZWV6ZVlTdGFydDsKKyAgICAgICAgICAg
IGNvbnN0IGhlaWdodCA9IGVuZFkgLSBzdGFydFk7CisKKyAgICAgICAgICAgIGZvciAobGV0IFtr
ZXlmcmFtZUEsIGtleWZyYW1lQl0gb2Yga2V5ZnJhbWVzLmFkamFjZW5jaWVzKCkpIHsKKyAgICAg
ICAgICAgICAgICBsZXQgc3RhcnRYID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZUEub2Zm
c2V0OworICAgICAgICAgICAgICAgIGxldCBlbmRYID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlm
cmFtZUIub2Zmc2V0OworICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGVuZFggLSBzdGFydFg7
CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5nID0ga2V5ZnJhbWVBLmVhc2luZyB8fCB0aW1p
bmdGdW5jdGlvbjsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmdDb250YWluZXIgPSBhY3Rp
dmVEdXJhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOwor
ICAgICAgICAgICAgICAgIGVhc2luZ0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJlYXNpbmciKTsK
KyAgICAgICAgICAgICAgICBlYXNpbmdDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0i
LCBgdHJhbnNsYXRlKCR7c3RhcnRYfSwgJHtzdGFydFl9KWApOworCisgICAgICAgICAgICAgICAg
bGV0IHgxID0gZWFzaW5nLmluUG9pbnQueCAqIHdpZHRoOworICAgICAgICAgICAgICAgIGxldCB5
MSA9ICgoMSAtIGVhc2luZy5pblBvaW50LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7Cisg
ICAgICAgICAgICAgICAgbGV0IHgyID0gZWFzaW5nLm91dFBvaW50LnggKiB3aWR0aDsKKyAgICAg
ICAgICAgICAgICBsZXQgeTIgPSAoKDEgLSBlYXNpbmcub3V0UG9pbnQueSkgKiBoZWlnaHQpICsg
YWRqdXN0RWFzaW5nWTsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmdQYXRoID0gZWFzaW5n
Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgiKSk7CisgICAgICAg
ICAgICAgICAgZWFzaW5nUGF0aC5zZXRBdHRyaWJ1dGUoImQiLCBgTSAwICR7aGVpZ2h0ICsgYWRq
dXN0RWFzaW5nWX0gQyAke3gxfSAke3kxfSAke3gyfSAke3kyfSAke3dpZHRofSAke2FkanVzdEVh
c2luZ1l9IFYgJHtoZWlnaHQgKyBhZGp1c3RFYXNpbmdZfSBaYCk7CisKKyAgICAgICAgICAgICAg
ICBsZXQgdGl0bGVSZWN0ID0gZWFzaW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0Vs
ZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgi
d2lkdGgiLCB3aWR0aCk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgi
aGVpZ2h0IiwgaGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwg
ZWFzaW5nLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGxl
dCBrZXlmcmFtZSBvZiBrZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBsZXQgeCA9IGl0ZXJh
dGlvbkR1cmF0aW9uICoga2V5ZnJhbWUub2Zmc2V0OworCisgICAgICAgICAgICAgICAgbGV0IGtl
eWZyYW1lQ29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQoY3Jl
YXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUNvbnRhaW5lci5j
bGFzc0xpc3QuYWRkKCJrZXlmcmFtZSIpOworICAgICAgICAgICAgICAgIGtleWZyYW1lQ29udGFp
bmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3h9LCAke3N0YXJ0WX0p
YCk7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVNYXJrZXJIZWFkID0ga2V5ZnJhbWVD
b250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiY2lyY2xlIikpOworICAgICAg
ICAgICAgICAgIGtleWZyYW1lTWFya2VySGVhZC5zZXRBdHRyaWJ1dGUoInIiLCBtYXJrZXJIZWFk
UmFkaXVzKTsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1hcmtlckxpbmUgPSBrZXlm
cmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAg
ICAgICAgICAgICAgIGtleWZyYW1lTWFya2VyTGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgaGVpZ2h0
KTsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZVJlY3QgPSBrZXlmcmFtZUNvbnRhaW5lci5h
cHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgICAgIHRp
dGxlUmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAtMSAqIChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2Vy
SGVhZFBhZGRpbmcpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ5
IiwgLTEgKiBzcXVlZXplWVN0YXJ0KTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0
cmlidXRlKCJ3aWR0aCIsIChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmcpICog
Mik7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgaGVp
Z2h0ICsgc3F1ZWV6ZVlTdGFydCk7CisKKyAgICAgICAgICAgICAgICBhZGRUaXRsZSh0aXRsZVJl
Y3QsIGtleWZyYW1lLnN0eWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
ICAgIF9oYW5kbGVFZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVm
cmVzaFByZXZpZXcoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlVGFyZ2V0Q2hhbmdlZChldmVudCkK
KyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAgIH0KKworICAgIF9w
b3B1bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51KGNvbnRleHRNZW51KQorICAg
IHsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiTG9nIEFuaW1h
dGlvbiIpLCAoKSA9PiB7CisgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1h
dGlvbih0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50aW1lTWFuYWdlci5Db25zb2xlT2Jq
ZWN0R3JvdXAsIChyZW1vdGVPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIXJlbW90
ZU9iamVjdCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAg
Y29uc3QgdGV4dCA9IFdJLlVJU3RyaW5nKCJTZWxlY3RlZCBBbmltYXRpb24iKTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICBXSS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9u
V2l0aFJlc3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZFNlcGFyYXRvcigpOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2Rl
KQorICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4
dE1lbnUsIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUpOworICAgIH0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEw
NGNhMzI1YjhiMTY2NmJjNTljZGYwNjA5OTRjZWZlMjM4NjQ2MzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLmNzcwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnNpZGVi
YXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rp
b24uYW5pbWF0aW9uLWtleWZyYW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjog
dmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRl
dGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1r
ZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDAlLCA5NyUpOworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5j
b250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNl
Y3Rpb24gLnJvdy5zdHlsZXMgeworICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKK30KKworLnNpZGVi
YXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rp
b24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIC5Db2Rl
TWlycm9yIHsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgcGFkZGluZzogNHB4IDA7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1z
Y2hlbWU6IGRhcmspIHsKKyAgICAuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+
IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxz
LXNlY3Rpb24geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE4JSk7Cisg
ICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzBkODU5ZTc5ZTA4NDljZjdiY2M3MDUxOGQ5OWNkYjYzMzc5NDFhZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTAsMCArMSwyNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQW5pbWF0aW9u
RGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTaWRlYmFyUGFuZWwKK3sKKyAg
ICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigiYW5pbWF0aW9uIiwgV0kuVUlT
dHJpbmcoIkFuaW1hdGlvbiIpKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBudWxsOwor
CisgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwID0gbmV3IE1hcDsKKyAgICB9CisK
KyAgICAvLyBQdWJsaWMKKworICAgIGluc3BlY3Qob2JqZWN0cykKKyAgICB7CisgICAgICAgIGlm
ICghKG9iamVjdHMgaW5zdGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICBvYmplY3RzID0gW29i
amVjdHNdOworCisgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gb2JqZWN0cy5maW5kKChvYmplY3Qp
ID0+IG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbik7CisKKyAgICAgICAgcmV0dXJuICEh
dGhpcy5hbmltYXRpb247CisgICAgfQorCisgICAgZ2V0IGFuaW1hdGlvbigpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uOworICAgIH0KKworICAgIHNldCBhbmltYXRpb24o
YW5pbWF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGFuaW1hdGlvbiA9PT0gdGhpcy5fYW5pbWF0
aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24p
IHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFu
aW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25UYXJnZXRD
aGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExp
c3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmlt
YXRpb25FZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2Fu
aW1hdGlvbiA9IGFuaW1hdGlvbiB8fCBudWxsOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRp
b24pIHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkFu
aW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25FZmZlY3RD
aGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3Rl
bmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRp
b25UYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMubmVlZHNM
YXlvdXQoKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQo
KQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIHRoaXMu
X25hbWVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIk5h
bWUiKSk7CisgICAgICAgIHRoaXMuX3R5cGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3coV0kuVUlTdHJpbmcoIlR5cGUiKSk7CisgICAgICAgIHRoaXMuX3RhcmdldFJvdyA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiVGFyZ2V0IikpOworICAg
ICAgICBsZXQgaWRlbnRpdHlTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRp
b24taWRlbnRpdHkiLCBXSS5VSVN0cmluZygiSWRlbnRpdHkiKSwgW25ldyBXSS5EZXRhaWxzU2Vj
dGlvbkdyb3VwKFt0aGlzLl9uYW1lUm93LCB0aGlzLl90eXBlUm93LCB0aGlzLl90YXJnZXRSb3dd
KV0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoaWRlbnRp
dHlTZWN0aW9uLmVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkNvdW50Um93ID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJJdGVyYXRpb25zIikp
OworICAgICAgICB0aGlzLl9pdGVyYXRpb25TdGFydFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
blNpbXBsZVJvdyhXSS5VSVN0cmluZygiU3RhcnQiKSk7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlv
bkR1cmF0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5n
KCJEdXJhdGlvbiIpKTsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbnNHcm91cCA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9pdGVyYXRpb25Db3VudFJvdywgdGhpcy5faXRlcmF0aW9u
U3RhcnRSb3csIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5f
c3RhcnREZWxheVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmlu
ZygiU3RhcnQgRGVsYXkiKSk7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkiKSk7CisgICAgICAg
IHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93
KFdJLlVJU3RyaW5nKCJFYXNpbmciKSk7CisgICAgICAgIGxldCB0aW1pbmdHcm91cCA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9zdGFydERlbGF5Um93LCB0aGlzLl9lbmREZWxh
eVJvdywgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3ddKTsKKworICAgICAgICB0aGlzLl9wbGF5YmFj
a0RpcmVjdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmlu
ZygiRGlyZWN0aW9uIikpOworICAgICAgICB0aGlzLl9maWxsTW9kZVJvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRmlsbCIpKTsKKyAgICAgICAgbGV0IGZp
bGxEaXJlY3Rpb25Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9wbGF5
YmFja0RpcmVjdGlvblJvdywgdGhpcy5fZmlsbE1vZGVSb3ddKTsKKworICAgICAgICBsZXQgZWZm
ZWN0U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWVmZmVjdCIsIFdJ
LlVJU3RyaW5nKCJFZmZlY3QiKSwgW2l0ZXJhdGlvbnNHcm91cCwgdGltaW5nR3JvdXAsIGZpbGxE
aXJlY3Rpb25Hcm91cF0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5k
Q2hpbGQoZWZmZWN0U2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl9rZXlmcmFtZXNH
cm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwOworICAgICAgICBsZXQga2V5ZnJhbWVz
U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWtleWZyYW1lcyIsIFdJ
LlVJU3RyaW5nKCJLZXlmcmFtZXMiKSwgW3RoaXMuX2tleWZyYW1lc0dyb3VwXSk7CisgICAgICAg
IHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChrZXlmcmFtZXNTZWN0aW9uLmVs
ZW1lbnQpOworCisgICAgICAgIGNvbnN0IHNlbGVjdGFibGUgPSBmYWxzZTsKKyAgICAgICAgbGV0
IGJhY2t0cmFjZVRyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lKHNlbGVjdGFibGUpOwor
ICAgICAgICBiYWNrdHJhY2VUcmVlT3V0bGluZS5kaXNjbG9zdXJlQnV0dG9ucyA9IGZhbHNlOwor
ICAgICAgICB0aGlzLl9iYWNrdHJhY2VUcmVlQ29udHJvbGxlciA9IG5ldyBXSS5DYWxsRnJhbWVU
cmVlQ29udHJvbGxlcihiYWNrdHJhY2VUcmVlT3V0bGluZSk7CisKKyAgICAgICAgbGV0IGJhY2t0
cmFjZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKKyAgICAgICAgYmFja3RyYWNlUm93
LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja3RyYWNlVHJlZU91dGxpbmUuZWxlbWVudCk7CisgICAg
ICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1h
dGlvbi1iYWNrdHJhY2UiLCBXSS5VSVN0cmluZygiQmFja3RyYWNlIiksIFtuZXcgV0kuRGV0YWls
c1NlY3Rpb25Hcm91cChbYmFja3RyYWNlUm93XSldKTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNl
U2VjdGlvbi5lbGVtZW50LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcu
ZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQpOworICAg
IH0KKworICAgIGxheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5sYXlvdXQoKTsKKworICAg
ICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hF
ZmZlY3RTZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKCk7
CisKKyAgICAgICAgZm9yIChsZXQgY29kZU1pcnJvciBvZiB0aGlzLl9jb2RlTWlycm9yU2VjdGlv
bk1hcC52YWx1ZXMoKSkKKyAgICAgICAgICAgIGNvZGVNaXJyb3IucmVmcmVzaCgpOworICAgIH0K
KworICAgIC8vIFByaXZhdGUKKworICAgIF9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX25hbWVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZGlzcGxheU5h
bWU7CisgICAgICAgIHRoaXMuX3R5cGVSb3cudmFsdWUgPSBXSS5BbmltYXRpb24uZGlzcGxheU5h
bWVGb3JBbmltYXRpb25UeXBlKHRoaXMuX2FuaW1hdGlvbi5hbmltYXRpb25UeXBlKTsKKworICAg
ICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBudWxsOworICAgICAgICB0aGlzLl9hbmltYXRp
b24ucmVxdWVzdEVmZmVjdFRhcmdldCgpLnRoZW4oKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAg
IHRoaXMuX3RhcmdldFJvdy52YWx1ZSA9IGRvbU5vZGUgPyBXSS5saW5raWZ5Tm9kZVJlZmVyZW5j
ZShkb21Ob2RlKSA6IG51bGw7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoRWZm
ZWN0U2VjdGlvbigpCisgICAgeworICAgICAgICBjb25zdCBwcmVjaXNpb24gPSAwOworICAgICAg
ICBjb25zdCByZWFkT25seSA9IHRydWU7CisKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uQ291bnRS
b3cudmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KSA/IHRoaXMu
X2FuaW1hdGlvbi5pdGVyYXRpb25Db3VudC50b0xvY2FsZVN0cmluZygpIDogbnVsbDsKKyAgICAg
ICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cudmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9u
Lml0ZXJhdGlvblN0YXJ0KSA/IHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25TdGFydC50b0xvY2Fs
ZVN0cmluZygpIDogbnVsbDsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uRHVyYXRpb25Sb3cudmFs
dWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uKSA/IE51bWJlci5z
ZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uIC8gMTAwMCkg
OiBudWxsOworCisgICAgICAgIHRoaXMuX3N0YXJ0RGVsYXlSb3cudmFsdWUgPSB0aGlzLl9hbmlt
YXRpb24uc3RhcnREZWxheSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0aW9u
LnN0YXJ0RGVsYXkgLyAxMDAwKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93LnZh
bHVlID0gdGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0
aGlzLl9hbmltYXRpb24uZW5kRGVsYXkgLyAxMDAwKSA6IG51bGw7CisgICAgICAgIHRoaXMuX3Rp
bWluZ0Z1bmN0aW9uUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uID8g
dGhpcy5fYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uLnRvU3RyaW5nKCkgOiBudWxsOworCisgICAg
ICAgIHRoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnBs
YXliYWNrRGlyZWN0aW9uID8gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJl
Y3Rpb24odGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uKSA6IG51bGw7CisgICAgICAg
IHRoaXMuX2ZpbGxNb2RlUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmZpbGxNb2RlID8gV0ku
QW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1vZGUodGhpcy5fYW5pbWF0aW9uLmZpbGxNb2Rl
KSA6IG51bGw7CisKKyAgICAgICAgZm9yIChsZXQgc2VjdGlvbiBvZiB0aGlzLl9jb2RlTWlycm9y
U2VjdGlvbk1hcC5rZXlzKCkpCisgICAgICAgICAgICBzZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV0kuRGV0YWlsc1NlY3Rpb24uRXZlbnQuQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzLl9o
YW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAg
IHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmNsZWFyKCk7CisKKyAgICAgICAgbGV0IGtleWZy
YW1lU2VjdGlvbnMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2YgdGhpcy5fYW5p
bWF0aW9uLmtleWZyYW1lcykgeworICAgICAgICAgICAgbGV0IHJvd3MgPSBbXTsKKworICAgICAg
ICAgICAgbGV0IGtleWZyYW1lU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0
aW9uLWtleWZyYW1lLW9mZnNldC0iICsga2V5ZnJhbWUub2Zmc2V0LCBOdW1iZXIucGVyY2VudGFn
ZVN0cmluZyhrZXlmcmFtZS5vZmZzZXQsIHByZWNpc2lvbikpOworICAgICAgICAgICAga2V5ZnJh
bWVTZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGV0YWlsc1NlY3Rpb24uRXZlbnQuQ29sbGFw
c2VkU3RhdGVDaGFuZ2VkLCB0aGlzLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRl
Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goa2V5ZnJh
bWVTZWN0aW9uKTsKKworICAgICAgICAgICAgaWYgKGtleWZyYW1lLmVhc2luZykgeworICAgICAg
ICAgICAgICAgIGxldCBzdWJ0aXRsZSA9IGtleWZyYW1lU2VjdGlvbi5oZWFkZXJFbGVtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICAg
ICAgc3VidGl0bGUuY2xhc3NOYW1lID0gInN1YnRpdGxlIjsKKyAgICAgICAgICAgICAgICBzdWJ0
aXRsZS50ZXh0Q29udGVudCA9IGAgJHtlbURhc2h9ICR7a2V5ZnJhbWUuZWFzaW5nLnRvU3RyaW5n
KCl9YDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGtleWZyYW1lLnN0eWxlKSB7
CisgICAgICAgICAgICAgICAgbGV0IGNvZGVNaXJyb3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSBXSS5Db2Rl
TWlycm9yRWRpdG9yLmNyZWF0ZShjb2RlTWlycm9yRWxlbWVudCwgeworICAgICAgICAgICAgICAg
ICAgICBtb2RlOiAiY3NzIiwKKyAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk6ICJub2N1cnNv
ciIsCisgICAgICAgICAgICAgICAgICAgIGxpbmVXcmFwcGluZzogdHJ1ZSwKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBjb2RlTWlycm9yLnNldFZhbHVlKGtleWZyYW1lLnN0
eWxlKTsKKworICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBvcHRpb25zRm9yVHlwZSh0eXBlKSB7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB7CisgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkVG9rZW5zOiAvXGJ0YWdc
Yi8sCisgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhtYXJrZXIsIHZhbHVlT2JqZWN0
LCB2YWx1ZVN0cmluZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzd2F0Y2gg
PSBuZXcgV0kuSW5saW5lU3dhdGNoKHR5cGUsIHZhbHVlT2JqZWN0LCByZWFkT25seSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29kZU1pcnJvci5zZXRVbmlxdWVCb29rbWFyayhtYXJr
ZXIucmFuZ2Uuc3RhcnRQb3NpdGlvbigpLnRvQ29kZU1pcnJvcigpLCBzd2F0Y2guZWxlbWVudCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JDb2xvclRleHRN
YXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0Y2gu
VHlwZS5Db2xvcikpOworICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JHcmFkaWVudFRl
eHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0
Y2guVHlwZS5HcmFkaWVudCkpOworICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JDdWJp
Y0JlemllclRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5J
bmxpbmVTd2F0Y2guVHlwZS5CZXppZXIpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWly
cm9yU3ByaW5nVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJ
LklubGluZVN3YXRjaC5UeXBlLlNwcmluZykpOworCisgICAgICAgICAgICAgICAgbGV0IHJvdyA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKKyAgICAgICAgICAgICAgICByb3cuZWxlbWVudC5j
bGFzc0xpc3QuYWRkKCJzdHlsZXMiKTsKKyAgICAgICAgICAgICAgICByb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChjb2RlTWlycm9yRWxlbWVudCk7CisgICAgICAgICAgICAgICAgcm93cy5wdXNoKHJv
dyk7CisKKyAgICAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5zZXQoa2V5
ZnJhbWVTZWN0aW9uLCBjb2RlTWlycm9yKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKCFyb3dzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGxldCBlbXB0eVJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdyhXSS5VSVN0cmluZygiTm8gU3R5bGVzIikpOworICAgICAgICAg
ICAgICAgIGVtcHR5Um93LnNob3dFbXB0eU1lc3NhZ2UoKTsKKyAgICAgICAgICAgICAgICByb3dz
LnB1c2goZW1wdHlSb3cpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBrZXlmcmFtZVNl
Y3Rpb24uZ3JvdXBzID0gW25ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKHJvd3MpXTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoIWtleWZyYW1lU2VjdGlvbnMubGVuZ3RoKSB7CisgICAgICAgICAg
ICBsZXQgZW1wdHlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5v
IEtleWZyYW1lcyIpKTsKKyAgICAgICAgICAgIGVtcHR5Um93LnNob3dFbXB0eU1lc3NhZ2UoKTsK
KyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbnMucHVzaChlbXB0eVJvdyk7CisgICAgICAgIH0K
KyAgICAgICAgdGhpcy5fa2V5ZnJhbWVzR3JvdXAucm93cyA9IGtleWZyYW1lU2VjdGlvbnM7Cisg
ICAgfQorCisgICAgX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGxl
dCBjYWxsRnJhbWVzID0gdGhpcy5fYW5pbWF0aW9uLmJhY2t0cmFjZTsKKyAgICAgICAgdGhpcy5f
YmFja3RyYWNlVHJlZUNvbnRyb2xsZXIuY2FsbEZyYW1lcyA9IGNhbGxGcmFtZXM7CisgICAgICAg
IHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxlbWVudC5oaWRkZW4gPSAhY2FsbEZyYW1lcy5sZW5n
dGg7CisgICAgfQorCisgICAgX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQoZXZlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoRWZmZWN0U2VjdGlvbigpOworICAgIH0KKworICAg
IF9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fcmVmcmVzaElkZW50aXR5U2VjdGlvbigpOworICAgIH0KKworICAgIF9oYW5kbGVEZXRhaWxz
U2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBj
b2RlTWlycm9yID0gdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAuZ2V0KGV2ZW50LnRhcmdldCk7
CisgICAgICAgIGNvZGVNaXJyb3IucmVmcmVzaCgpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmll
dy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXND
b250ZW50Vmlldy5jc3MKaW5kZXggNGU1YTkwZTFmMDMxN2YwYzRlYmY0Zjc5OTcwMjc2YzdmYmQy
N2Y1OC4uY2MxNjZiZDNlNjBkMzgxYTc1YTFhMTc5NDNhYmUyMzY3MDdhOGI0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVu
dFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc0NvbnRlbnRWaWV3LmNzcwpAQCAtMjMsMTEgKzIzLDExIEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50
YWIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2wo
MCwgMCUsIDkwJSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IC5wcmV2
aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgewogICAgIGRpc3BsYXk6IGZs
ZXg7CiAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgYWxpZ24taXRlbXM6IGNlbnRl
cjsKQEAgLTM2LDE3ICszNiwxNyBAQAogICAgIHBhZGRpbmc6IDE1cHg7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZGlz
cGxheTogZmxleDsKICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhczpub3QoLnRhYikgPiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNh
bnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgbWF4LWhl
aWdodDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gOm1hdGNo
ZXMoaGVhZGVyLCBmb290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVh
ZGVyLCBmb290ZXIpIHsKICAgICBkaXNwbGF5OiBub25lOwogfQogCkBAIC01Niw3ICs1Niw3IEBA
CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnRhYikgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzIHsKICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250
ZW50Vmlldy5qcwppbmRleCA5YjRmZDZmNmVkN2UxY2I3NjM5NzUxMTEwMTE1MzI0NjU0ZDU4ZjAx
Li45OTNkYTUxM2YyZGQ1NjMzZmQ3OTQ4M2VhNGNhOWZmYmE5NmVmY2U5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmll
dy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNDb250ZW50Vmlldy5qcwpAQCAtNDUsNyArNDUsNyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9
IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAg
ICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdh
dGlvbkl0ZW0oInJlZnJlc2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9h
ZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRp
b25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQ
cmlvcml0eS5Mb3c7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5h
ZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRo
aXMucmVmcmVzaFByZXZpZXcsIHRoaXMpOworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVu
dC5DbGlja2VkLCB0aGlzLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKIAogICAg
ICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRl
QnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5z
cGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJ
bWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlz
Ll9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlja2Vk
LCB0aGlzKTsKQEAgLTc3LDYgKzc3LDI5IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3Mg
Q2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB9KTsKICAg
ICB9CiAKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICB0
aGlzLnJlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVn
YXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudChkcm9wWm9uZSwgZXZl
bnQpCisgICAgeworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1
ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAgIGRyb3Bab25lSGFuZGxlRHJvcChkcm9wWm9uZSwg
ZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmls
ZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5iZWVwKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBX
SS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKwogICAgIC8vIFBy
b3RlY3RlZAogCiAgICAgaW5pdGlhbExheW91dCgpCkBAIC0xNjAsNiArMTgzLDEzIEBAIFdJLkNh
bnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldwogCiAgICAgICAgIGlmIChpc0NhcmQpCiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNo
UGl4ZWxTaXplKCk7CisKKyAgICAgICAgaWYgKCFpc0NhcmQpIHsKKyAgICAgICAgICAgIGxldCBk
cm9wWm9uZVZpZXcgPSBuZXcgV0kuRHJvcFpvbmVWaWV3KHRoaXMpOworICAgICAgICAgICAgZHJv
cFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmluZygiSW1wb3J0IFJlY29yZGluZyIpOworICAgICAg
ICAgICAgZHJvcFpvbmVWaWV3LnRhcmdldEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgICAg
ICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpvbmVWaWV3KTsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIGxheW91dCgpCkBAIC0xOTEsMTMgKzIyMSw2IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0g
Y2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0
aGlzLl91cGRhdGVJbWFnZUdyaWQoKTsKICAgICB9CiAKLSAgICBzaG93bigpCi0gICAgewotICAg
ICAgICBzdXBlci5zaG93bigpOwotCi0gICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKLSAg
ICB9Ci0KICAgICBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwpA
QCAtMjIzLDYgKzI0Niw4IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB9KTsKIAogICAgICAgICBX
SS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVu
dC5DaGFuZ2VkLCB0aGlzLl91cGRhdGVJbWFnZUdyaWQsIHRoaXMpOworCisgICAgICAgIHRoaXMu
cmVmcmVzaFByZXZpZXcoKTsKICAgICB9CiAKICAgICBkZXRhY2hlZCgpCkBAIC0yOTEsMTEgKzMx
Niw2IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgX3BvcHVsYXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNv
bnRleHRNZW51KGNvbnRleHRNZW51KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2NhbnZhc05v
ZGUpCi0gICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250
ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7Ci0KLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
U2VwYXJhdG9yKCk7Ci0KICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmlu
ZygiTG9nIENhbnZhcyBDb250ZXh0IiksICgpID0+IHsKICAgICAgICAgICAgIFdJLlJlbW90ZU9i
amVjdC5yZXNvbHZlQ2FudmFzQ29udGV4dCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50
aW1lTWFuYWdlci5Db25zb2xlT2JqZWN0R3JvdXAsIChyZW1vdGVPYmplY3QpID0+IHsKICAgICAg
ICAgICAgICAgICBpZiAoIXJlbW90ZU9iamVjdCkKQEAgLTMwNiw2ICszMjYsMTEgQEAgV0kuQ2Fu
dmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAgICAgICAgICAgICAgICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVu
ZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhSZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVj
aWFsVXNlckxvZ0NsYXNzKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKKworICAgICAg
ICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fY2Fu
dmFzTm9kZSkKKyAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2Rl
KGNvbnRleHRNZW51LCB0aGlzLl9jYW52YXNOb2RlKTsKICAgICB9CiAKICAgICBfc2hvd0dyaWRC
dXR0b25DbGlja2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5j
c3MKaW5kZXggMTBmMzdjMDQ2YjBjMmExMjgyYzVlYzk5ZGM2Y2I5OTBiMjIzNmM1Zi4uMWM2ZDY0
MzFmOWI3ZDYzNmU4ZjNlOGNlMTVjNmJiMmE2NWIxMzZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKQEAgLTI2LDI5ICsyNiwyOSBAQAogLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgewogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAg
IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAw
JSwgOTAlKTsKLQotICAgIC0taXRlbS1tYXJnaW46IDEwcHg7CisgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIHBhZGRpbmc6IDRweCAwOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICBmbGV4LWdyb3c6IDA7Ci0gICAgbWFyZ2lu
OiB2YXIoLS1pdGVtLW1hcmdpbik7CisgICAgZmxleC1zaHJpbms6IDA7CiAgICAgd2lkdGg6IDQw
MHB4OworICAgIG1hcmdpbjogNHB4OwogICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRl
ci1jb2xvcik7CiAgICAgY3Vyc29yOiBwb2ludGVyOwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcywKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGlt
ZyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlIHsKICAgICBib3JkZXItY29sb3I6IHJlZDsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZv
b3RlcikgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAgZGlzcGxheTogZmxleDsKICAg
ICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgIGZsZXgtc2hyaW5rOiAwOwpAQCAtNTksMTM2ICs1
OSwxMzYgQEAKICAgICBjdXJzb3I6IGRlZmF1bHQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgewogICAgIGZv
bnQtc2l6ZTogMTNweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUg
PiBoZWFkZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVz
LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgPiAuc2l6ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuc2l6ZSB7CiAgICAgd2hp
dGUtc3BhY2U6IG5vd3JhcDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAu
dGl0bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LWRhcmsp
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgY29sb3I6
IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9y
ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gaGVhZGVyIC5zdWJ0aXRsZTo6YmVmb3JlIHsKICAgICBjb250ZW50OiAiXDAwQTBcMjAxNFww
MEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNwOyAqLzsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRl
ciA+IC50aXRsZXMgPiAudGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSB7CiAgICAgY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4g
LnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4g
LnN1YnRpdGxlIHsKICAgICBjb2xvcjogdmFyKC0tc2VsZWN0ZWQtc2Vjb25kYXJ5LXRleHQtY29s
b3IpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0g
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAg
IGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cyA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgYWxpZ24taXRlbXM6IGluaXRpYWw7
CiAgICAgYm9yZGVyOiBub25lOwogICAgIG9wYWNpdHk6IDA7CiAgICAgdHJhbnNpdGlvbjogb3Bh
Y2l0eSAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5yZWNvcmRpbmctYWN0aXZl
KSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3JkaW5nLWFj
dGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIG9wYWNpdHk6IDE7CiAgICAg
dHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0
aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9w
LmRpc2FibGVkIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wLmRpc2FibGVkIHsKICAgICBmaWx0ZXI6IGdyYXlz
Y2FsZSgpOwogICAgIG9wYWNpdHk6IDAuNTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRl
ciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJs
ZWQpOmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmhvdmVyIHsKICAgICBm
aWx0ZXI6IGJyaWdodG5lc3MoOTUlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQp
OmFjdGl2ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIg
PiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTphY3RpdmUgewogICAgIGZp
bHRlcjogYnJpZ2h0bmVzcyg4MCUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXcs
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3LAorLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBo
ZWlnaHQ6IDI4MHB4OwogICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXMgZWFz
ZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6
aG92ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92
ZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYlKTsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFj
dGl2ZSA+IC5wcmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5
OiBub25lOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgYm9yZGVyLXJh
ZGl1czogNHB4OwogICAgIGJveC1zaGFkb3c6IDFweCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC41
OCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgPiAubWVzc2FnZS10ZXh0LXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2Ut
dGV4dC12aWV3IHsKICAgICBwb3NpdGlvbjogc3RhdGljOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIHsKICAg
ICBib3JkZXItdG9wOiBub25lOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3Rl
ciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgYWxpZ24t
aXRlbXM6IGNlbnRlcjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gOm1hdGNoZXMo
LnZpZXctc2hhZGVyLCAudmlldy1yZWNvcmRpbmcpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0
ZW1zID4gOm1hdGNoZXMoLnZpZXctc2hhZGVyLCAudmlldy1yZWNvcmRpbmcpIHsKICAgICB3aWR0
aDogMTZweDsKICAgICBoZWlnaHQ6IDE2cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVt
cyA+IGltZyArIGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IGltZyArIGltZyB7
CiAgICAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVk
LWl0ZW1zID4gLnZpZXctc2hhZGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZp
ZXctc2hhZGVyIHsKICAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVu
dEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290
ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctcmVjb3JkaW5nIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmll
dy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctcmVjb3JkaW5nIHsKICAgICBjb250ZW50OiB1cmwoLi4v
SW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVy
ID4gLmZsZXhpYmxlLXNwYWNlIHsKICAgICBmbGV4OiAxOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3Qg
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogNHB4Owog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5z
YXZlZC1yZWNvcmRpbmdzIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CiAgICAgaGVpZ2h0OiAzNDBweDsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2
ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5l
IHsKICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGlu
ZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5l
ID4gLml0ZW0ucmVjb3JkaW5nID4gLmljb24gewogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMv
UmVjb3JkaW5nLnN2Zyk7CiB9CiAKQEAgLTIwOSw0MyArMjA5LDM5IEBACiB9CiAKIEBtZWRpYSAo
cHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwotICAgIH0KLQotICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLAotICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnBy
ZXZpZXcgPiBpbWcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1zZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKLSAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKKyAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKKyAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92ZXIgewog
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXRlcnRpYXJ5
KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgICAg
ICAtLXJlY29yZGluZy1jb2xvcjogaHNsKDAsIDEwMCUsIDM5JSk7CiAgICAgICAgIGJvcmRlci1j
b2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
aGVhZGVyIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgewogICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB2YXIoLS1yZWNvcmRpbmctY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxl
cyA+IC50aXRsZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgICAgICBjb2xv
cjogdmFyKC0tdGV4dC1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRp
dGxlLAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0
bGUsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1j
b2xvci1zZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC52aWV3LXJlY29yZGluZyB7CisgICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciAudmlldy1yZWNvcmRpbmcgewogICAgICAgICBmaWx0ZXI6IGludmVydCgpOwogICAgIH0K
IAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
LnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKICAgICAgICAgY29s
b3I6IHVuc2V0OwogICAgICAgICBvcGFjaXR5OiAwLjUKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwppbmRleCA2MzliMzZkODU5YmI3Y2YzYzM0NDQ1YWEw
ZWI3NDk1NDMzYzQxMDk4Li4wZDE2NWRkMjY4ZDQzNzAyOGE0M2QxNDllMDdjZmE4MzhiNGRlN2Fi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAgLTI5LDcg
KzI5LDggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbik7
CiAKLSAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmNyZWF0ZU1lc3NhZ2VUZXh0
VmlldyhXSS5VSVN0cmluZygiTm8gQ2FudmFzIENvbnRleHRzIikpOworICAgICAgICBsZXQgY29u
dGVudFBsYWNlaG9sZGVyID0gV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQgPyBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSA6IFdJLmNyZWF0ZU1lc3NhZ2VUZXh0VmlldyhXSS5VSVN0
cmluZygiTm8gQ2FudmFzIENvbnRleHRzIikpOworCiAgICAgICAgIGxldCBkZXNjcmlwdGlvbkVs
ZW1lbnQgPSBjb250ZW50UGxhY2Vob2xkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOwogICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gImRl
c2NyaXB0aW9uIjsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0ku
VUlTdHJpbmcoIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBv
ciBDU1MuIik7CkBAIC02MiwyMSArNjMsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAg
ICAgICAgICAgdGhpcy5fdXBkYXRlUmVjb3JkaW5nQXV0b0NhcHR1cmVDaGVja2JveExhYmVsKGZy
YW1lQ291bnQpOwogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNvcmRpbmci
LCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7Ci0g
ICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2x0aXAgPSBXSS5VSVN0
cmluZygiSW1wb3J0Iik7Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmJ1dHRvblN0eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0
OwotCi0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaC1hbGwiLCBXSS5VSVN0cmluZygiUmVmcmVzaCBh
bGwiKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7Ci0gICAgICAgIHRoaXMuX3Jl
ZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu
X3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3JlZnJlc2hQcmV2aWV3cywgdGhpcyk7
Ci0KLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5B
Y3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hv
dyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3Jp
ZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKLSAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNl
dHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKLQog
ICAgICAgICBpbXBvcnROYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQu
Q2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0
aGlzKTsKIAogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50VmlldyA9IG51bGw7
CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lID0gbnVsbDsKQEAgLTkw
LDE3ICs3NywxOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFz
T3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogCiAgICAgZ2V0IG5hdmlnYXRp
b25JdGVtcygpCiAgICAgewotICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX2lt
cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtLCB0
aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW1dOwotICAgICAgICBpZiAoV0kuQ2FudmFzTWFuYWdlci5zdXBwb3J0c1JlY29y
ZGluZ0F1dG9DYXB0dXJlKCkpCi0gICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMudW5zaGlmdCh0
aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5h
dmlnYXRpb25JdGVtKTsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFtdOworICAgICAg
ICBpZiAodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSkKKyAgICAgICAg
ICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdh
dGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOwogICAgIH0KIAotICAg
IGhpZGRlbigpCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQogICAgIHsKLSAgICAg
ICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOwotCi0gICAgICAgIHN1cGVy
LmhpZGRlbigpOworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsK
KyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcp
CisgICAgICAgICAgICAgICAgc3Vidmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0xMTUsMjMgKzEwMywxOCBA
QCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250
ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJ2aWV3
KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3KTsKICAgICAgICAgICAgIHRoaXMuYWRk
U3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7CiAgICAgICAgIH0KLQot
ICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICB9CiAKICAgICBjb250
ZW50Vmlld1JlbW92ZWQoY29udGVudFZpZXcpCiAgICAgewogICAgICAgICBjb250ZW50Vmlldy5l
bGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9jb250ZW50Vmll
d01vdXNlRW50ZXIpOwogICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlz
dGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9jb250ZW50Vmlld01vdXNlTGVhdmUpOwotCi0gICAg
ICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpOwogICAgIH0KIAogICAgIGF0dGFjaGVk
KCkKICAgICB7CiAgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CiAKLSAgICAgICAgV0kuc2V0dGlu
Z3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdl
ZCwgdGhpcy5fdXBkYXRlU2hvd0ltYWdlR3JpZCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdz
LmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC5hZGRFdmVudExpc3RlbmVyKFdJLlNl
dHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1
cmVFbmFibGVkQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29y
ZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZl
bnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNv
dW50Q2hhbmdlZCwgdGhpcyk7CiAKQEAgLTE0MSw0OSArMTI0LDI3IEBAIFdJLkNhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5y
ZW1vdmVDaGlsZHJlbigpOwogICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFz
TWFuYWdlci5zYXZlZFJlY29yZGluZ3MpCiAgICAgICAgICAgICB0aGlzLl9hZGRTYXZlZFJlY29y
ZGluZyhyZWNvcmRpbmcpOworCisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2
aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250
ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LnJlZnJlc2hQcmV2aWV3KCk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBkZXRhY2hlZCgpCiAgICAgeworICAgICAgICBXSS5kb21NYW5h
Z2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5y
ZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCiAgICAgICAgIFdJLnNldHRp
bmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5yZW1vdmVFdmVudExpc3Rl
bmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRp
bmdBdXRvQ2FwdHVyZUVuYWJsZWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlz
KTsKLSAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVy
KG51bGwsIG51bGwsIHRoaXMpOwogCiAgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CiAgICAgfQog
CiAgICAgLy8gUHJpdmF0ZQogCi0gICAgZ2V0IF9pdGVtTWFyZ2luKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpLmdl
dFByb3BlcnR5VmFsdWUoIi0taXRlbS1tYXJnaW4iKSk7Ci0gICAgfQotCi0gICAgX3JlZnJlc2hQ
cmV2aWV3cygpCi0gICAgewotICAgICAgICBmb3IgKGxldCBjYW52YXNDb250ZW50VmlldyBvZiB0
aGlzLnN1YnZpZXdzKQotICAgICAgICAgICAgY2FudmFzQ29udGVudFZpZXcucmVmcmVzaFByZXZp
ZXcoKTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCkKLSAgICB7Ci0gICAg
ICAgIGxldCBoYXNJdGVtcyA9ICEhdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplOwotICAgICAg
ICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGhhc0l0ZW1zOwot
ICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBoYXNJ
dGVtczsKLSAgICB9Ci0KLSAgICBfc2hvd0dyaWRCdXR0b25DbGlja2VkKGV2ZW50KQotICAgIHsK
LSAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZSA9ICF0aGlzLl9zaG93R3Jp
ZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZDsKLSAgICB9Ci0KLSAgICBfdXBkYXRlU2hv
d0ltYWdlR3JpZCgpCi0gICAgewotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKLSAg
ICB9Ci0KICAgICBfY29udGVudFZpZXdNb3VzZUVudGVyKGV2ZW50KQogICAgIHsKICAgICAgICAg
bGV0IGNvbnRlbnRWaWV3ID0gV0kuVmlldy5mcm9tRWxlbWVudChldmVudC50YXJnZXQpOwpAQCAt
MzAxLDggKzI2Miw3IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlz
Ll9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Nh
dmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lLmVsZW1lbnQpOwogICAgICAgICB9CiAKLSAgICAgICAg
Y29uc3Qgc3VidGl0bGUgPSBudWxsOwotICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQg
PSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNw
bGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7CisgICAgICAgIGxldCByZWNvcmRpbmdUcmVl
RWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3Jk
aW5nLmRpc3BsYXlOYW1lLCBXSS5SZWNvcmRpbmcuZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBl
KHJlY29yZGluZy50eXBlKSwgcmVjb3JkaW5nKTsKICAgICAgICAgcmVjb3JkaW5nVHJlZUVsZW1l
bnQuc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVl
T3V0bGluZS5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lk
ZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzU2lkZWJhclBhbmVsLmpzCmluZGV4IGNiNWI5MGQ0MmQxZDYwYmM1ODViZDNhYjExNWRk
MGMyM2VhYjI0MWUuLjYwM2Y1YWVhNDdlYjJiMzA2OGY0YjU2OWE4OWM4ZGZiOWM5M2U3NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKQEAgLTIzNywxMCArMjM3LDggQEAgV0kuQ2Fu
dmFzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2
aWdhdGlvblNpZGViYXJQYW4KIAogICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNl
bnRlZE9iamVjdCkKICAgICB7Ci0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICAgICAgcmV0dXJuIHN1cGVyLmNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9i
amVjdCk7CisgICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNh
bnZhcworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNv
cmRpbmc7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250
ZW50Vmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ZGFiNWVmOTk3OWQ2
MmI4MTE1OTg5YTkxNjQwNDEzYzcyYThjZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIg
PiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL0NhbnZhc092ZXJ2aWV3LnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7Ci0gICAgY29u
dGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRh
Yi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhczptYXRjaGVzKC53ZWJnbCwg
LndlYmdsMiwgLndlYmdwdSwgLndlYm1ldGFsKSAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4u
L0ltYWdlcy9DYW52YXMzRC5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5h
dmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKLSAgICBjb250ZW50OiB1
cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52
YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFtID4gLmljb24gewotICAg
IGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJs
KC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOwotfQotCi1AbWVkaWEgKHByZWZlcnMt
Y29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZp
Z2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24gewotICAgICAgICBmaWx0
ZXI6IGludmVydCg2MCUpOwotICAgIH0KLQotICAgIC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAotICAgIC5jb250ZW50LXZpZXcu
dGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24gewot
ICAgICAgICBmaWx0ZXI6IGludmVydCgpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29u
dGVudFZpZXcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlMWRiZTQ4MDFlNTU3
YmM3YzIwZTUyZWM3N2M4MDk5OWQ1NmE4ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyOTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLVdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFi
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3Ci17Ci0g
ICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydCghcmVwcmVzZW50ZWRPYmplY3QgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXMpOwotCi0gICAgICAgIGxldCB0YWJCYXJJdGVtID0gV0kuR2VuZXJhbFRhYkJh
ckl0ZW0uZnJvbVRhYkluZm8oV0kuQ2FudmFzVGFiQ29udGVudFZpZXcudGFiSW5mbygpKTsKLQot
ICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBXSS5DYW52
YXNTaWRlYmFyUGFuZWw7Ci0gICAgICAgIGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1
Y3RvcnMgPSBbV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5SZWNvcmRp
bmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwsIFdJLkNhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWxd
OwotICAgICAgICBjb25zdCBkaXNhYmxlQmFja0ZvcndhcmQgPSB0cnVlOwotICAgICAgICBzdXBl
cigiY2FudmFzIiwgWyJjYW52YXMiXSwgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5l
bENvbnN0cnVjdG9yLCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCBkaXNhYmxlQmFj
a0ZvcndhcmQpOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24gPSBuZXcgV0kuQ2Fu
dmFzQ29sbGVjdGlvbjsKLQotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZSA9IG5ldyBX
SS5UcmVlT3V0bGluZTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYWxsb3dzUmVw
ZWF0U2VsZWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYWRk
RXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRo
aXMuX2NhbnZhc1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKLQotICAgICAg
ICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudCgi
Y2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlTdHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHRoaXMuX2Nh
bnZhc0NvbGxlY3Rpb24pOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5hcHBlbmRD
aGlsZCh0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9zYXZlZFJl
Y29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmlu
ZygiU2F2ZWQgUmVjb3JkaW5ncyIpLCBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uKTsKLSAgICAgICAg
dGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKLSAgICAgICAg
dGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZFJlY29yZGlu
Z3NUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0ku
S2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhp
cy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3Jk
U2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZy
YW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0
Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFu
ZGxlU3BhY2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hv
cnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9y
ZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLmVuYWJsZSgpOwotICAgIH0KLQotICAgIHN0YXRpYyB0YWJJbmZvKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBpbWFnZTogIkltYWdlcy9DYW52YXMu
c3ZnIiwKLSAgICAgICAgICAgIHRpdGxlOiBXSS5VSVN0cmluZygiQ2FudmFzIiksCi0gICAgICAg
IH07Ci0gICAgfQotCi0gICAgc3RhdGljIGlzVGFiQWxsb3dlZCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkNhbnZhcyIpOwotICAgIH0KLQotICAg
IC8vIFB1YmxpYwotCi0gICAgdHJlZUVsZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNl
bnRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jYW52YXNUcmVlT3V0bGlu
ZS5maW5kVHJlZUVsZW1lbnQocmVwcmVzZW50ZWRPYmplY3QpOwotICAgIH0KLQotICAgIGdldCB0
eXBlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBl
OwotICAgIH0KLQotICAgIGdldCBzdXBwb3J0c1NwbGl0Q29udGVudEJyb3dzZXIoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgZ2V0IG1hbmFnZXNOYXZpZ2F0aW9u
U2lkZWJhclBhbmVsKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAg
IGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcwotICAgICAg
ICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9u
Ci0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGlu
ZwotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQ
cm9ncmFtOwotICAgIH0KLQotICAgIHNob3duKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnNob3du
KCk7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKLSAg
ICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOwot
Ci0gICAgICAgIGlmICghdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXcpCi0g
ICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdCh0aGlzLl9jYW52YXNDb2xsZWN0
aW9uKTsKLSAgICB9Ci0KLSAgICBoaWRkZW4oKQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVjb3Jk
U2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFt
ZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICBzdXBlci5oaWRkZW4oKTsKLSAg
ICB9Ci0KLSAgICBjbG9zZWQoKQotICAgIHsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5kaXNh
YmxlKCk7Ci0KLSAgICAgICAgc3VwZXIuY2xvc2VkKCk7Ci0gICAgfQotCi0gICAgcmVzdG9yZVN0
YXRlRnJvbUNvb2tpZShjb29raWUpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50
IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCi0gICAgfQot
Ci0gICAgc2F2ZVN0YXRlVG9Db29raWUoY29va2llKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRl
LgotICAgIH0KLQotICAgIGFzeW5jIGhhbmRsZUZpbGVEcm9wKGZpbGVzKQotICAgIHsKLSAgICAg
ICAgYXdhaXQgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0ku
Y2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKLSAgICB9Ci0KLSAgICAvLyBQcm90
ZWN0ZWQKLQotICAgIGF0dGFjaGVkKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7
Ci0KLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsK
LSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7
Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3Rv
cHBlZCwgdGhpcyk7Ci0gICAgICAgIFdJLkNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
cy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3Rv
cHBlZCwgdGhpcyk7Ci0KLSAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlczsKLQotICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgdGhpcy5fY2FudmFzQ29sbGVj
dGlvbikgewotICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5pbmNsdWRlcyhjYW52YXMpKQotICAg
ICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZm9yIChsZXQgY2FudmFzIG9mIGNhbnZhc2VzKSB7Ci0gICAgICAgICAgICBpZiAoIXRo
aXMuX2NhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCi0gICAgICAgICAgICAgICAgdGhpcy5f
YWRkQ2FudmFzKGNhbnZhcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9zYXZlZFJlY29y
ZGluZ3NUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICBmb3IgKGxldCByZWNv
cmRpbmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3MpCi0gICAgICAgICAgICB0
aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVl
fSk7Ci0gICAgfQotCi0gICAgZGV0YWNoZWQoKQotICAgIHsKLSAgICAgICAgV0kuQ2FudmFzLnJl
bW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01h
bmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKLQotICAgICAgICBz
dXBlci5kZXRhY2hlZCgpOwotICAgIH0KLQotICAgIC8vIFByaXZhdGUKLQotICAgIF9hZGRDYW52
YXMoY2FudmFzKQotICAgIHsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5hcHBl
bmRDaGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7Ci0gICAgICAgIHRoaXMu
X2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNhbnZhcyk7Ci0KLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKLSAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKLSAgICAgICAgfTsK
LQotICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rp
b24pCi0gICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsK
LSAgICB9Ci0KLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIGxldCB0
cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52
YXMpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCwgIk1pc3NpbmcgdHJlZSBl
bGVtZW50IGZvciBjYW52YXMuIiwgY2FudmFzKTsKLQotICAgICAgICBjb25zdCBzdXBwcmVzc05v
dGlmaWNhdGlvbiA9IHRydWU7Ci0gICAgICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KHN1cHByZXNz
Tm90aWZpY2F0aW9uKTsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5yZW1vdmVD
aGlsZCh0cmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5yZW1v
dmUoY2FudmFzKTsKLQotICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jb250
ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7Ci0gICAgICAgIGlmIChjdXJyZW50Q29udGVu
dFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKLSAgICAgICAgICAgIFdJLnNo
b3dSZXByZXNlbnRlZE9iamVjdCh0aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgZWxz
ZSBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29udGVudFZp
ZXcgJiYgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24uaGFzKGN1cnJlbnRDb250ZW50Vmlldy5y
ZXByZXNlbnRlZE9iamVjdCkpCi0gICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnVwZGF0
ZUhpZXJhcmNoaWNhbFBhdGhGb3JDdXJyZW50Q29udGVudFZpZXcoKTsKLQotICAgICAgICBsZXQg
bmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbDsKLSAg
ICAgICAgaWYgKG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5DYW52YXNTaWRl
YmFyUGFuZWwgJiYgbmF2aWdhdGlvblNpZGViYXJQYW5lbC52aXNpYmxlKQotICAgICAgICAgICAg
bmF2aWdhdGlvblNpZGViYXJQYW5lbC51cGRhdGVSZXByZXNlbnRlZE9iamVjdHMoKTsKLQotICAg
ICAgICB0aGlzLnNob3dEZXRhaWxzU2lkZWJhclBhbmVscygpOwotICAgIH0KLQotICAgIF9hZGRS
ZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zID0ge30pCi0gICAgewotICAgICAgICBpZiAoIXJl
Y29yZGluZy5zb3VyY2UpIHsKLSAgICAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAg
ICAgICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVs
ZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVj
b3JkaW5nKTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50Lmhp
ZGRlbiA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1l
bnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKCFvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZykKLSAgICAgICAgICAgIHRoaXMu
c2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlY29yZGluZyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNh
bnZhc0FkZGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGV2ZW50LmRh
dGEuY2FudmFzKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVudCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhldmVudC5kYXRhLmNhbnZhcyk7Ci0gICAg
fQotCi0gICAgX2NhbnZhc1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQotICAg
IHsKLSAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5l
LnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCByZXByZXNlbnRlZE9iamVjdCA9IHNlbGVj
dGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAgaWYgKCF0aGlzLmNhblNob3dS
ZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkpIHsKLSAgICAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGZhbHNlLCAiVW5leHBlY3RlZCByZXByZXNlbnRlZE9iamVjdC4iLCByZXByZXNl
bnRlZE9iamVjdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB0
aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgfQotCi0g
ICAgX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAg
bGV0IHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlciwgaW1wb3J0ZWR9ID0gZXZlbnQuZGF0YTsK
LSAgICAgICAgaWYgKCFyZWNvcmRpbmcpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
bGV0IG9wdGlvbnMgPSB7fTsKLQotICAgICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRlZCByZWNv
cmRpbmdzLgotICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSB8fCAhaW1wb3J0ZWQpCi0gICAg
ICAgICAgICBvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZyA9ICFpbml0aWF0ZWRCeVVzZXIg
fHwgdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50UmVwcmVzZW50ZWRPYmplY3RzLnNvbWUoKHJl
cHJlc2VudGVkT2JqZWN0KSA9PiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29y
ZGluZyk7Ci0KLSAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7
Ci0gICAgfQotCi0gICAgX2hhbmRsZVNwYWNlKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKFdJ
LmlzRXZlbnRUYXJnZXRBbkVkaXRhYmxlRmllbGQoZXZlbnQpKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBjYW52YXMgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFy
UGFuZWwuY2FudmFzOwotICAgICAgICBpZiAoIWNhbnZhcykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAoY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKLSAgICAgICAgICAgIGNhbnZh
cy5zdG9wUmVjb3JkaW5nKCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbGV0IHNpbmds
ZUZyYW1lID0gISFldmVudC5zaGlmdEtleTsKLSAgICAgICAgICAgIGNhbnZhcy5zdGFydFJlY29y
ZGluZyhzaW5nbGVGcmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOwotICAgIH0KLX07Ci0KLVdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiY2Fu
dmFzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCmluZGV4IGZlMzNlN2Fj
ZDlmMTYxYjJjYzBjZTcxY2Q1MjRhNDkxYWRkMzNjMmIuLjVjZThkYjBmMzA4ZGQ5ODk4NGIzMWJi
OTRjYzVmNzljMzk1YzJkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNz
cwpAQCAtMzMsMTQgKzMzLDE3IEBACiAgICAgZmxleC1ncm93OiAxOwogfQogCi0uY29udGVudC12
aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZyB7Ci0gICAgb3V0bGluZTogMC41cHgg
c29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKLX0KLQotLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9u
IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIgewotICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWds
eXBoLWNvbG9yLWFjdGl2ZSkKLX0KLQogLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLmNvbnRl
bnQtdmlld1toaWRkZW5dIHsKICAgICBkaXNwbGF5OiBub25lOwogfQorCisuY29udGVudC12aWV3
LmNvbGxlY3Rpb24gPiAucGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykgeworICAg
IGRpc3BsYXk6IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICBqdXN0aWZ5
LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIHdpZHRoOiAx
MDAlOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6IDEzcHg7CisgICAg
Y29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmpzCmluZGV4IDA1NDc0MTY4MWM4MThiZTViY2FhNWQ2ZmYxOWQ1Mzcy
OWI3YjM4NjYuLmQ0ZTYxZTA4MjU1MGNhNWQzODYwMjJkZWYwZWZiMzk1NWU4Y2I1NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rp
b25Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTI4LDcgKzI4LDcgQEAgV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKICAgICBjb25zdHJ1Y3Rvcihjb2xsZWN0aW9uLCBjb250ZW50Vmlld0Nv
bnN0cnVjdG9yLCBjb250ZW50UGxhY2Vob2xkZXIpCiAgICAgewogICAgICAgICBjb25zb2xlLmFz
c2VydChjb2xsZWN0aW9uIGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbik7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbnRlbnRWaWV3Q29uc3RydWN0b3IgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmll
dyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjb250ZW50Vmlld0NvbnN0cnVjdG9yIHx8IGNv
bnRlbnRWaWV3Q29uc3RydWN0b3IucHJvdG90eXBlIGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcp
OwogCiAgICAgICAgIHN1cGVyKGNvbGxlY3Rpb24pOwogCkBAIC0zOCw3ICszOCw2IEBAIFdJLkNv
bGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQg
PSBudWxsOwogICAgICAgICB0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yID0gY29udGVudFZp
ZXdDb25zdHJ1Y3RvcjsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdNYXAgPSBuZXcgTWFwOwot
ICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcCA9IG5ldyBXZWFrTWFwOwogICAgICAgICB0aGlz
Ll9zZWxlY3RlZEl0ZW0gPSBudWxsOwogICAgICAgICB0aGlzLl9zZWxlY3Rpb25FbmFibGVkID0g
ZmFsc2U7CiAgICAgfQpAQCAtODMsMTkgKzgyLDI1IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50Vmll
dyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAg
ICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOwogICAgIH0KIAotICAgIHNldFNlbGVj
dGVkSXRlbShpdGVtKQorICAgIGdldCBzZWxlY3RlZEl0ZW0oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsKKyAgICB9CisKKyAgICBzZXQgc2VsZWN0ZWRJdGVtKGl0
ZW0pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zZWxlY3Rpb25FbmFibGVk
LCAiQXR0ZW1wdGVkIHRvIHNldCBzZWxlY3RlZCBpdGVtIHdoZW4gc2VsZWN0aW9uIGlzIGRpc2Fi
bGVkLiIpOwogICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gdGhpcy5fY29udGVudFZpZXdN
YXAuZ2V0KGl0ZW0pOwotICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldywgIk1pc3Np
bmcgY29udGV0IHZpZXcgZm9yIGl0ZW0uIiwgaXRlbSk7Ci0gICAgICAgIGlmICghY29udGVudFZp
ZXcpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVt
KTsKLSAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7
CisKKyAgICAgICAgaWYgKGl0ZW0pIHsKKyAgICAgICAgICAgIGxldCBjb250ZW50VmlldyA9IHRo
aXMuX2NvbnRlbnRWaWV3TWFwLmdldChpdGVtKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGNvbnRlbnRWaWV3LCAiTWlzc2luZyBjb250ZXQgdmlldyBmb3IgaXRlbS4iLCBpdGVtKTsKKyAg
ICAgICAgICAgIGlmIChjb250ZW50VmlldykKKyAgICAgICAgICAgICAgICBjb250ZW50Vmlldy5l
bGVtZW50LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IC8vIFByb3RlY3RlZApAQCAtMTIwLDIwICsxMjUsOSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZp
ZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmlldwog
CiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IG5ldyB0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVj
dG9yKGl0ZW0sIHRoaXMuY29udGVudFZpZXdDb25zdHJ1Y3Rvck9wdGlvbnMpOwogICAgICAgICBj
b25zb2xlLmFzc2VydChjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKLQot
ICAgICAgICBsZXQgaGFuZGxlQ2xpY2sgPSAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGlmIChl
dmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQotICAgICAgICAg
ICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOwotICAgICAgICB9OworICAg
ICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCA9PT0gaXRl
bSk7CiAKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdNYXAuc2V0KGl0ZW0sIGNvbnRlbnRWaWV3
KTsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAuc2V0KGl0ZW0sIGhhbmRsZUNsaWNrKTsK
LSAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGhh
bmRsZUNsaWNrKTsKIAogICAgICAgICB0aGlzLmFkZFN1YnZpZXcoY29udGVudFZpZXcpOwogICAg
ICAgICB0aGlzLmNvbnRlbnRWaWV3QWRkZWQoY29udGVudFZpZXcpOwpAQCAtMTY5LDE0ICsxNjMs
NiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIGNvbnRlbnRWaWV3LnJlbW92ZUV2
ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKLSAgICAgICAgbGV0IGhhbmRsZUNsaWNr
ID0gdGhpcy5faGFuZGxlQ2xpY2tNYXAuZ2V0KGl0ZW0pOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChoYW5kbGVDbGljayk7Ci0KLSAgICAgICAgaWYgKGhhbmRsZUNsaWNrKSB7Ci0gICAgICAgICAg
ICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwgaGFuZGxl
Q2xpY2spOwotICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAuZGVsZXRlKGl0ZW0pOwot
ICAgICAgICB9Ci0KICAgICAgICAgaWYgKCF0aGlzLnN1YnZpZXdzLmxlbmd0aCkKICAgICAgICAg
ICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigpOwogICAgIH0KQEAgLTIwMCw2ICsxODYs
OCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRQ
bGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXI7CiAgICAgICAgIH0K
IAorICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQo
InBsYWNlaG9sZGVyIik7CisKICAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJF
bGVtZW50LnBhcmVudE5vZGUpCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCk7CiAgICAgfQpAQCAtMjEyLDEwICsyMDAs
MTEgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIGluaXRpYWxMYXlvdXQoKQogICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRl
bnRWaWV3Q29uc3RydWN0b3IpIHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbnRlbnRWaWV3Q29uc3Ry
dWN0b3IpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKTsKKworICAgICAgICBpZiAoIXRoaXMucmVw
cmVzZW50ZWRPYmplY3Quc2l6ZSB8fCAhdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikKICAg
ICAgICAgICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9CiAgICAgfQogCiAgICAgYXR0YWNoZWQoKQpAQCAtMjkyLDYgKzI4MSwz
MCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgc2VsZWN0ZWRDb250ZW50Vmll
dy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik7CiAgICAgICAgIH0KIAorICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcu
RXZlbnQuU2VsZWN0ZWRJdGVtQ2hhbmdlZCk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2Jq
ZWN0c0RpZENoYW5nZSk7CiAgICAgfQorCisgICAgX2hhbmRsZUNsaWNrKGV2ZW50KQorICAgIHsK
KyAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IFtpdGVtLCBjb250ZW50Vmlld10gb2Yg
dGhpcy5fY29udGVudFZpZXdNYXApIHsKKyAgICAgICAgICAgIGlmIChjb250ZW50Vmlldy5lbGVt
ZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5f
c2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShp
dGVtKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIFdJLnNob3dS
ZXByZXNlbnRlZE9iamVjdChpdGVtKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkK
KyAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7CisgICAgfQorfTsKKworV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50ID0geworICAgIFNlbGVjdGVkSXRlbUNoYW5nZWQ6ICJj
b2xsZWN0aW9uLWNvbnRlbnQtdmlldy1zZWxlY3RlZC1pdGVtLWNoYW5nZWQiLAogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRW
aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVu
dFZpZXcuanMKaW5kZXggZGY5MTJkZDU2ZmEwN2RmOTQ4ZjBkN2Y3YWYwZDdjNmQxYjc5YTJmNi4u
Mjk2YzJhNTQyM2EwZjY5MWVhYzdkMmQwZTkzNjAwZjUxNTRmMGRlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcu
anMKQEAgLTYwLDkgKzYwLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBl
eHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQ2FudmFzKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXNDb250ZW50Vmlldyhy
ZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCi0gICAgICAgIGlmIChyZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICBy
ZXR1cm4gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3Qs
IGV4dHJhQXJndW1lbnRzKTsKLQogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5TaGFkZXJQ
cm9ncmFtQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIApA
QCAtMTgyLDYgKzE3OSw5IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkF1ZGl0VGVzdEdyb3VwIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRU
ZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkF1ZGl0VGVzdEdyb3Vw
Q29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAorICAgICAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pCisgICAgICAg
ICAgICByZXR1cm4gbmV3IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0
LCBleHRyYUFyZ3VtZW50cyk7CisKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ29sbGVjdGlv
bkNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKQEAgLTI3
Myw4ICsyNzMsNiBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuVmlldwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0
aW9uKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuVGltZWxpbmVS
ZWNvcmRpbmcpCkBAIC0zMTgsMTAgKzMxNiwxNCBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQXVkaXRUZXN0R3JvdXAKICAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIGlmICh0eXBlb2YgcmVwcmVzZW50ZWRPYmplY3QgPT09ICJzdHJpbmciIHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdFtXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3lt
Ym9sXSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkBAIC01MTIsNCArNTE0LDUgQEAgV0kuQ29udGVudFZpZXcuRXZlbnQgPSB7CiAgICAg
TmF2aWdhdGlvbkl0ZW1zRGlkQ2hhbmdlOiAiY29udGVudC12aWV3LW5hdmlnYXRpb24taXRlbXMt
ZGlkLWNoYW5nZSIKIH07CiAKK1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVTeW1ib2wgPSBTeW1i
b2woImlzLXZpZXdhYmxlIik7CiBXSS5Db250ZW50Vmlldy5Db250ZW50Vmlld0ZvclJlcHJlc2Vu
dGVkT2JqZWN0U3ltYm9sID0gU3ltYm9sKCJjb250ZW50LXZpZXctZm9yLXJlcHJlc2VudGVkLW9i
amVjdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcwppbmRleCBlNWE1
ZmVjMWVhYmI1YzA5NzJjZmEwNTNkNTM0YzM2MDA5ZTFiNzZmLi43ZWQwYzgyZWIzYjcxZWViNmJi
YjFmOTdlOTc5MGY2YmJiYzU1NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdy5qcwpAQCAtOTYsNyArOTYsNyBAQCBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyA9IGNs
YXNzIERldGFpbHNTZWN0aW9uU2ltcGxlUm93IGV4dGVuZHMgV0kuRGV0YWlsc1NlYwogICAgIHsK
ICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSB8fCAiIjsKIAotICAgICAgICBpZiAodGhpcy5f
dmFsdWUpIHsKKyAgICAgICAgaWYgKHRoaXMuX3ZhbHVlIHx8IHRoaXMuX3ZhbHVlID09PSAwKSB7
CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXSS5EZXRhaWxzU2Vj
dGlvblNpbXBsZVJvdy5FbXB0eVN0eWxlQ2xhc3NOYW1lKTsKIAogICAgICAgICAgICAgLy8gSWYg
dGhlIHZhbHVlIGhhcyBzcGFjZSBjaGFyYWN0ZXJzIHRoYXQgY2F1c2Ugd29yZCB3cmFwcGluZyB0
aGVuIHdlIGRvbid0IG5lZWQgdGhlIGRhdGEgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGYwNWIwYjQ1NGQxZTFlMDI3
ZjkzYTZiOWY3MzMxMDRmNGE5YTViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNz
cwpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1v
dmVydmlldyB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1j
b250ZW50KTsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgcGFkZGluZy1ib3R0b206IHZh
cigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDAlLCA5MCUpOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlv
biB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVy
aXQ7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6
Zmlyc3QtY2hpbGQpIHsKKyAgICBtYXJnaW4tdG9wOiAyMHB4OworfQorCisuY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgeworICAgIGRpc3BsYXk6IGZs
ZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBwb3NpdGlvbjogc3RpY2t5OworICAg
IHRvcDogMDsKKyAgICB6LWluZGV4OiAxOworICAgIG1pbi1oZWlnaHQ6IHZhcigtLW5hdmlnYXRp
b24tYmFyLWhlaWdodCk7CisgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA4cHg7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NyUpOworICAgIGJvcmRlci1ib3R0b206IDFweCBz
b2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92
ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRlciB7CisgICAgYm9y
ZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxIHsKKyAgICBtYXJn
aW46IDA7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4g
LmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgZmxleC1ncm93OiAxOworICAgIGp1c3Rp
ZnktY29udGVudDogZmxleC1lbmQ7CisgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKK30KKworLmNv
bnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIHJpZ2h0OiAw
OworICAgIGJvdHRvbTogMDsKKyAgICBsZWZ0OiAwOworfQorCitAbWVkaWEgKHByZWZlcnMtY29s
b3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyB7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTQlKTsKKyAgICB9CisKKyAg
ICAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgewor
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDIxJSk7CisgICAgfQorfQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFw
aGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmMzYjA3NWFiOWM0MzY5OWY2MWM3ZTdkMTk5NjUyMGNlYWU1ZjUxMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDIwNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkdy
YXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIEdyYXBoaWNzT3ZlcnZpZXdDb250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsK
KyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
Z3JhcGhpY3Mtb3ZlcnZpZXciKTsKKworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0
aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LXJlY29yZGluZyIs
IFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1KTsKKyAg
ICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbHRpcCA9IFdJLlVJU3Ry
aW5nKCJJbXBvcnQiKTsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0u
YnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7
CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1w
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9y
ZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0o
InJlZnJlc2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3Zn
IiwgMTMsIDEzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhp
cy5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0
aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQi
KSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0
aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlk
LnZhbHVlOworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5f
aGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXco
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKworICAgICAgICB0aGlzLl9vdmVy
dmlld1ZpZXdzID0gW107CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgc3VwcGxl
bWVudGFsUmVwcmVzZW50ZWRPYmplY3RzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9v
dmVydmlld1ZpZXdzLmZsYXRNYXAoKHN1YnZpZXcpID0+IHN1YnZpZXcuc3VwcGxlbWVudGFsUmVw
cmVzZW50ZWRPYmplY3RzKTsKKyAgICB9CisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAg
ICB7CisgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgaWYgKCFXSS5h
bmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1z
LnB1c2hBbGwodGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMp
OworICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2gobmV3IFdJLkRpdmlkZXJOYXZpZ2F0
aW9uSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5f
aW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0s
IHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwgdGhpcy5fc2hvd0dyaWRCdXR0b25O
YXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7CisgICAgfQor
CisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBl
ci5hdHRhY2hlZCgpOworCisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZl
bnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFn
ZUdyaWRTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2hhbmRsZVNob3dJbWFn
ZUdyaWRTZXR0aW5nQ2hhbmdlZCgpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7Cisg
ICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKworICAgICAgICBX
SS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5F
dmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRo
aXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgaW5pdGlhbExh
eW91dCgpCisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAg
aWYgKFdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBsZXQgY3Jl
YXRlU2VjdGlvbiA9IChpZGVudGlmaWVyLCB0aXRsZSwgb3ZlcnZpZXdWaWV3KSA9PiB7CisgICAg
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQob3ZlcnZpZXdWaWV3IGluc3RhbmNlb2YgV0kuQ29u
dGVudFZpZXcpOworCisgICAgICAgICAgICAgICAgbGV0IHNlY3Rpb25FbGVtZW50ID0gdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKSk7Cisg
ICAgICAgICAgICAgICAgc2VjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gaWRlbnRpZmllcjsKKwor
ICAgICAgICAgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGhl
YWRlckVsZW1lbnQuY2xhc3NOYW1lID0gImhlYWRlciI7CisKKyAgICAgICAgICAgICAgICBsZXQg
dGl0bGVFbGVtZW50ID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJoMSIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQg
PSB0aXRsZTsKKworICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBvdmVydmll
d1ZpZXcubmF2aWdhdGlvbkl0ZW1zOworICAgICAgICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSXRl
bXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uQmFyID0gbmV3
IFdJLk5hdmlnYXRpb25CYXIoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibmF2IiksIG5hdmlnYXRp
b25JdGVtcyk7CisgICAgICAgICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQo
bmF2aWdhdGlvbkJhci5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJ2
aWV3KG5hdmlnYXRpb25CYXIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGxldCBjb250ZW50RWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5j
bGFzc05hbWUgPSAiY29udGVudCI7CisKKyAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5h
cHBlbmRDaGlsZChvdmVydmlld1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5h
ZGRTdWJ2aWV3KG92ZXJ2aWV3Vmlldyk7CisKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcu
YWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0ZWRJ
dGVtQ2hhbmdlZCwgdGhpcy5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZCwg
dGhpcyk7CisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV0ku
Q29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdl
LCB0aGlzLl9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNE
aWRDaGFuZ2UsIHRoaXMpOworICAgICAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmlld3MucHVz
aChvdmVydmlld1ZpZXcpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgY3JlYXRlU2Vj
dGlvbigiY2FudmFzIiwgV0kuVUlTdHJpbmcoIkNhbnZhc2VzIiksIHRoaXMuX2NhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbiA9
IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbjsKKyAgICAgICAgICAgIGNy
ZWF0ZVNlY3Rpb24oIndlYi1hbmltYXRpb24iLCBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbnMi
KSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0
aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1h
dGlvbikpKTsKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oImNzcy1hbmltYXRpb24iLCBXSS5V
SVN0cmluZygiQ1NTIEFuaW1hdGlvbnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJ
LkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbikpKTsKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rp
b24oImNzcy10cmFuc2l0aW9uIiwgV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9ucyIpLCBuZXcg
V0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5p
bWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbikp
KTsKKworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
dGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOworCisg
ICAgICAgIGxldCBkcm9wWm9uZVZpZXcgPSBuZXcgV0kuRHJvcFpvbmVWaWV3KHRoaXMpOworICAg
ICAgICBkcm9wWm9uZVZpZXcudGV4dCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQgUmVjb3JkaW5nIik7
CisgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50OworICAg
ICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpvbmVWaWV3KTsKKyAgICB9CisKKyAgICAvLyBEcm9w
Wm9uZVZpZXcgZGVsZWdhdGUKKworICAgIGRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50
KGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBldmVudC5kYXRhVHJhbnNm
ZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIik7CisgICAgfQorCisgICAgZHJvcFpvbmVIYW5kbGVE
cm9wKGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIGxldCBmaWxlcyA9IGV2ZW50LmRh
dGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCAhPT0gMSkgeworICAg
ICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMs
IChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7CisgICAg
fQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkK
KyAgICB7CisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1Zp
ZXdzKQorICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2Vk
KCk7CisgICAgfQorCisgICAgX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZChldmVudCkKKyAg
ICB7CisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWUgPSAhdGhpcy5fc2hv
d0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7CisgICAgfQorCisgICAgX2hhbmRs
ZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl9zaG93
R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0lt
YWdlR3JpZC52YWx1ZTsKKyAgICB9CisKKyAgICBfaGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW1DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5pbXBv
cnRKU09OKChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSwg
e211bHRpcGxlOiB0cnVlfSk7CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVj
dGVkSXRlbUNoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5z
ZWxlY3RlZEl0ZW0pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgb3Zl
cnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChvdmVy
dmlld1ZpZXcgIT09IGV2ZW50LnRhcmdldCAmJiBvdmVydmlld1ZpZXcuc2VsZWN0aW9uRW5hYmxl
ZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJdGVtID0gbnVsbDsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXBy
ZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UoZXZuZXQpCisgICAgeworICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXBy
ZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOworICAgIH0KKworICAgIF9oYW5kbGVDbGljayhldmVu
dCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMuZWxlbWVudCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhp
cy5fb3ZlcnZpZXdWaWV3cykgeworICAgICAgICAgICAgaWYgKG92ZXJ2aWV3Vmlldy5zZWxlY3Rp
b25FbmFibGVkKQorICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5zZWxlY3RlZEl0ZW0gPSBu
dWxsOworICAgICAgICB9CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI1YWZkODE2MGYxNjBmNjAzNDJiYWJkZmEzZTBkZmIwMzU5
ZTc0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAu
aXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2Vz
L0NhbnZhc092ZXJ2aWV3LnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMuY2FudmFzLTJkIC5pY29uIHsKKyAgICBjb250
ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczJELnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFi
LmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXM6bWF0Y2hlcygud2ViZ2ws
IC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24geworICAgIGNvbnRlbnQ6IHVybCgu
Li9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3Mg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKKyAgICBjb250ZW50
OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5n
cmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuc2hhZGVyLXByb2dyYW0gPiAuaWNvbiB7
CisgICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4
LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7Cit9CisKK0BtZWRpYSAocHJl
ZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGlj
cyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuZ3JhcGhpY3Mtb3ZlcnZpZXcgLmljb24geworICAg
ICAgICBmaWx0ZXI6IGludmVydCg2MCUpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcudGFi
LmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMgLmljb24sCisgICAgLmNv
bnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGlu
ZyA+IC5pY29uIHsKKyAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKKyAgICB9Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGRjZjJiMTA5YTgyNzVk
MzcxMDcyNWVhZmM4OTBhY2RhNjBjMzE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcwpA
QCAtMCwwICsxLDMxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcg
PSBjbGFzcyBHcmFwaGljc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJU
YWJDb250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIGxldCB0
YWJCYXJJdGVtID0gV0kuR2VuZXJhbFRhYkJhckl0ZW0uZnJvbVRhYkluZm8oV0kuR3JhcGhpY3NU
YWJDb250ZW50Vmlldy50YWJJbmZvKCkpOworCisgICAgICAgIGNvbnN0IG5hdmlnYXRpb25TaWRl
YmFyUGFuZWxDb25zdHJ1Y3RvciA9IFdJLkNhbnZhc1NpZGViYXJQYW5lbDsKKyAgICAgICAgY29u
c3QgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyA9IFsKKyAgICAgICAgICAgIFdJLlJl
Y29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLlJlY29yZGlu
Z1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLkNhbnZhc0RldGFpbHNT
aWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LAorICAgICAgICBdOworICAgICAgICBjb25zdCBkaXNhYmxlQmFja0ZvcndhcmQgPSB0cnVlOwor
ICAgICAgICBzdXBlcigiZ3JhcGhpY3MiLCBbImdyYXBoaWNzIl0sIHRhYkJhckl0ZW0sIG5hdmln
YXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVj
dG9ycywgZGlzYWJsZUJhY2tGb3J3YXJkKTsKKworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmFsbG93c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7CisgICAgICAgIHRoaXMuX2NhbnZh
c2VzVHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxl
Y3Rpb25EaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxlY3Rpb25E
aWRDaGFuZ2UsIHRoaXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQgPSBu
ZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KCJjYW52YXMtb3ZlcnZpZXciLCBXSS5VSVN0cmluZygi
T3ZlcnZpZXciKSwgbnVsbCwge1tXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9sXTogdHJ1
ZX0pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHRoaXMu
X2NhbnZhc2VzVHJlZUVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3Jk
aW5nc1RyZWVFbGVtZW50ID0gbmV3IFdJLkZvbGRlclRyZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJT
YXZlZCBSZWNvcmRpbmdzIikpOworICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NU
cmVlRWxlbWVudC5oaWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50KTsK
KworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0
KG51bGwsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5i
aW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuaW1wbGljaXRseVByZXZl
bnRzRGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxl
ZCA9IHRydWU7CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dCA9IG5l
dyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQs
IFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRo
aXMpKTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5pbXBsaWNpdGx5
UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1l
U2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZW5h
YmxlKCk7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZW5hYmxlKCk7CisgICAgfQorCisg
ICAgc3RhdGljIHRhYkluZm8oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
IGltYWdlOiAiSW1hZ2VzL0dyYXBoaWNzLnN2ZyIsCisgICAgICAgICAgICB0aXRsZTogV0kuVUlT
dHJpbmcoIkdyYXBoaWNzIiksCisgICAgICAgIH07CisgICAgfQorCisgICAgc3RhdGljIGlzVGFi
QWxsb3dlZCgpCisgICAgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNEb21h
aW4oIkNhbnZhcyIpCisgICAgICAgICAgICB8fCBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigi
QW5pbWF0aW9uIik7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICB0cmVlRWxlbWVudEZv
clJlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2VudGVk
T2JqZWN0KTsKKyAgICB9CisKKyAgICBnZXQgdHlwZSgpCisgICAgeworICAgICAgICByZXR1cm4g
V0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlOworICAgIH0KKworICAgIGdldCBzdXBwb3J0
c1NwbGl0Q29udGVudEJyb3dzZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgZ2V0IG1hbmFnZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHNob3dSZXByZXNlbnRlZE9iamVjdChyZXBy
ZXNlbnRlZE9iamVjdCwgY29va2llKQorICAgIHsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikgeworICAgICAgICAgICAgdGhpcy5jb250ZW50
QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdXBlci5zaG93UmVwcmVzZW50
ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSk7CisgICAgfQorCisgICAgY2FuU2hv
d1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbgorICAg
ICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKKyAgICAg
ICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29sbGVj
dGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNv
cmRpbmcKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbQorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBjbG9z
ZWQoKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5kaXNhYmxlKCk7CisgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuZGlzYWJsZSgpOworCisgICAgICAgIHN1cGVyLmNsb3NlZCgp
OworICAgIH0KKworICAgIHJlc3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQorICAgIHsKKyAg
ICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2
MDY+IGlzIGNvbXBsZXRlLgorICAgIH0KKworICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tpZSkK
KyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9CisKKyAgICBhc3luYyBoYW5kbGVGaWxl
RHJvcChmaWxlcykKKyAgICB7CisgICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpT
T04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0
KSk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBhdHRhY2hlZCgpCisgICAgewor
ICAgICAgICBzdXBlci5hdHRhY2hlZCgpOworCisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZl
bnQuSXRlbVJlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOworICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVu
dC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRo
aXMpOworICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQu
UmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRo
aXMpOworCisgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1l
bnQuY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBjaGlsZC5yZXByZXNlbnRl
ZE9iamVjdDsKKyAgICAgICAgICAgIGlmIChjYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMgJiYg
IVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5oYXMoY2FudmFzKSkKKyAgICAgICAg
ICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZvciAobGV0IGNhbnZhcyBvZiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pIHsK
KyAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1l
bnQoY2FudmFzKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRDYW52YXMoY2FudmFzKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2Vy
LnNhdmVkUmVjb3JkaW5ncykgeworICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZWNvcmRpbmcpKQorICAgICAgICAgICAgICAgIHRoaXMu
X2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIHtzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWV9KTsK
KyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gZmFs
c2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSBm
YWxzZTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0aGlzLl9yZWNv
cmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZy
YW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIFdJLkNhbnZhcy5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5k
bGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1Nh
dmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhp
cyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIHRoaXMuX2hhbmRsZUNh
bnZhc1JlbW92ZWQsIHRoaXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQor
CisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICB0aGlzLl9vdmVydmlld0NvbnRl
bnRWaWV3ID0gbmV3IFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldzsKKyAgICAgICAgdGhp
cy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmll
dyk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2FkZENhbnZhcyhjYW52YXMpCisg
ICAgeworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyBX
SS5DYW52YXNUcmVlRWxlbWVudChjYW52YXMpKTsKKworICAgICAgICBjb25zdCBvcHRpb25zID0g
eworICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlLAorICAgICAgICB9Owor
CisgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlv
bikKKyAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOwor
ICAgIH0KKworICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQorICAgIHsKKyAgICAgICAgbGV0IHRy
ZWVFbGVtZW50ID0gdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoY2Fu
dmFzKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQsICJNaXNzaW5nIHRyZWUg
ZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7CisKKyAgICAgICAgY29uc3Qgc3VwcHJlc3NO
b3RpZmljYXRpb24gPSB0cnVlOworICAgICAgICB0cmVlRWxlbWVudC5kZXNlbGVjdChzdXBwcmVz
c05vdGlmaWNhdGlvbik7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQucmVtb3Zl
Q2hpbGQodHJlZUVsZW1lbnQpOworCisgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0
aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKKyAgICAgICAgaWYgKGN1cnJl
bnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAg
ICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVj
dGlvbik7CisgICAgICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJ
LlJlY29yZGluZ0NvbnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhj
dXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQorICAgICAgICAgICAgdGhpcy5j
b250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRWaWV3
KCk7CisKKyAgICAgICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRp
b25TaWRlYmFyUGFuZWw7CisgICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGluc3Rh
bmNlb2YgV0kuQ2FudmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudmlz
aWJsZSkKKyAgICAgICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVzZW50
ZWRPYmplY3RzKCk7CisKKyAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsK
KyAgICB9CisKKyAgICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQorICAg
IHsKKyAgICAgICAgaWYgKCFyZWNvcmRpbmcuc291cmNlKSB7CisgICAgICAgICAgICBjb25zdCBz
dWJ0aXRsZSA9IG51bGw7CisgICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBu
ZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5
TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7CisgICAgICAgICAgICB0aGlzLl9zYXZlZENhbnZh
c1JlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMu
X3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1Ry
ZWVFbGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1No
b3dSZWNvcmRpbmcpCisgICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNv
cmRpbmcpOworICAgIH0KKworICAgIF9oYW5kbGVDYW52YXNBZGRlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX2FkZENhbnZhcyhldmVudC5kYXRhLml0ZW0pOworICAgIH0KKworICAgIF9o
YW5kbGVDYW52YXNSZW1vdmVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVtb3ZlQ2Fu
dmFzKGV2ZW50LmRhdGEuaXRlbSk7CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3VHJlZU91
dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgc2VsZWN0
ZWRFbGVtZW50ID0gdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50
OworICAgICAgICBpZiAoIXNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBzd2l0Y2ggKHNlbGVjdGVkRWxlbWVudCkgeworICAgICAgICBjYXNlIHRoaXMuX2Nh
bnZhc2VzVHJlZUVsZW1lbnQ6CisgICAgICAgIGNhc2UgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRp
bmdzVHJlZUVsZW1lbnQ6CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250
ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGxldCByZXByZXNlbnRlZE9iamVjdCA9IHNlbGVjdGVkRWxl
bWVudC5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgaWYgKCF0aGlzLmNhblNob3dSZXByZXNl
bnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGZhbHNlLCAiVW5leHBlY3RlZCByZXByZXNlbnRlZE9iamVjdC4iLCByZXByZXNlbnRlZE9i
amVjdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnNo
b3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisgICAgX2hh
bmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHty
ZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlciwgaW1wb3J0ZWR9ID0gZXZlbnQuZGF0YTsKKyAgICAg
ICAgaWYgKCFyZWNvcmRpbmcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IG9w
dGlvbnMgPSB7fTsKKworICAgICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRlZCByZWNvcmRpbmdz
LgorICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSB8fCAhaW1wb3J0ZWQpCisgICAgICAgICAg
ICBvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZyA9ICFpbml0aWF0ZWRCeVVzZXIgfHwgdGhp
cy5jb250ZW50QnJvd3Nlci5jdXJyZW50UmVwcmVzZW50ZWRPYmplY3RzLnNvbWUoKHJlcHJlc2Vu
dGVkT2JqZWN0KSA9PiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyk7
CisKKyAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7CisgICAg
fQorCisgICAgX2hhbmRsZVNwYWNlKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKFdJLmlzRXZl
bnRUYXJnZXRBbkVkaXRhYmxlRmllbGQoZXZlbnQpKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGxldCBjYW52YXMgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwu
Y2FudmFzOworICAgICAgICBpZiAoIWNhbnZhcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBpZiAoY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKKyAgICAgICAgICAgIGNhbnZhcy5zdG9w
UmVjb3JkaW5nKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGV0IHNpbmdsZUZyYW1l
ID0gISFldmVudC5zaGlmdEtleTsKKyAgICAgICAgICAgIGNhbnZhcy5zdGFydFJlY29yZGluZyhz
aW5nbGVGcmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OworICAgIH0KK307CisKK1dJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSA9ICJncmFwaGlj
cyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9NYWluLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01h
aW4uY3NzCmluZGV4IDlmMTA1ZjFlOTZlODMxY2U1NDUxMDQ5Mzg0ZTdhZDhkNjE4MzQ1YTQuLjhm
ZTEzMWMyZjBlMzYxNzZlZmEwZmNhYmQwMmMyNzU4NjRjNmZhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCkBAIC0yMDksMTIg
KzIwOSwxMiBAQCBib2R5LmRvY2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZpZ2F0aW9u
LXNpZGViYXIuY29sbGFwc2VkID4gLnJlc2l6ZXIgewogICAgIG1hcmdpbi1ib3R0b206IDE1cHg7
CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgeworLm5hdmln
YXRpb24taXRlbS1oZWxwIHsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBsaW5lLWhlaWdodDog
MjJweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2
aWdhdGlvbi1iYXIgeworLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyIHsK
ICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgcGFkZGlu
ZzogMCA0cHg7CkBAIC0yMjIsOSArMjIyLDkgQEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQs
IC5sZWZ0KSAjbmF2aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICB2
ZXJ0aWNhbC1hbGlnbjogLTNweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9u
LWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CisubmF2aWdhdGlvbi1pdGVtLWhl
bHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CiAgICAgaGVpZ2h0OiAxMDAlOwotICAgIHBh
ZGRpbmc6IDAgNHB4OworICAgIHBhZGRpbmc6IDAgNHB4ICFpbXBvcnRhbnQ7CiAgICAgZm9udC1z
aXplOiAxMXB4OwogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICBib3JkZXI6IHNvbGlkIDFw
eCB2YXIoLS1ib3JkZXItY29sb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3Nz
CmluZGV4IDhkNjBmMjNmMGIyYmVjNzBkOGJlODNkMDIxN2E3MGFjNzRmZDIzNTguLjExZjFkZDgy
ZTU1Mzc3MDE5MGIyZmY3ZWI4YjYwOGVlYzdlMjljMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdD
b250ZW50Vmlldy5jc3MKQEAgLTIzLDE4ICsyMywxOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyB7
CisuY29udGVudC12aWV3LnJlY29yZGluZyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4
LWRpcmVjdGlvbjogY29sdW1uOwogICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgYmFja2dyb3VuZC1j
b2xvcjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNv
cmRpbmcgPiBoZWFkZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgewogICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29y
ZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcucmVjb3Jk
aW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgewogICAgIGRpc3BsYXk6IGZsZXg7CiAg
ICAgZmxleC13cmFwOiB3cmFwOwogICAgIHBhZGRpbmc6IDRweCAwOwpAQCAtNDMsMzEgKzQzLDMx
IEBACiAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFi
KS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+ICogeworLmNvbnRlbnQt
dmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+ICogewogICAgIG1h
cmdpbjogNHB4IDhweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4g
aGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAuc2xpZGVyLXZhbHVlIHsKKy5jb250ZW50LXZp
ZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAuc2xpZGVyLXZhbHVl
IHsKICAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKICAgICBmb250LWZhbWlseTog
MTFweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4g
LnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CisuY29udGVudC12aWV3LnJl
Y29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0g
ewogICAgIGZsZXg6IDE7CiAgICAgd2lkdGg6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90
KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlw
ZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKKy5jb250ZW50LXZpZXcu
cmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdl
XTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgewogICAgIGhlaWdodDogMnB4OwogICAg
IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcik7CiAgICAgYm9yZGVyLXJhZGl1
czogMXB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIg
PiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10
aHVtYiB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFp
bmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICBtYXJn
aW4tdG9wOiAtNnB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiAu
cHJldmlldy1jb250YWluZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiAucHJldmlldy1j
b250YWluZXIgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleDogMTsKICAgICBqdXN0aWZ5
LWNvbnRlbnQ6IGNlbnRlcjsKQEAgLTc3LDI3ICs3NywyNyBAQAogICAgIGhlaWdodDogLXdlYmtp
dC1maWxsLWF2YWlsYWJsZTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5n
IDptYXRjaGVzKGltZywgY2FudmFzKSB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA6bWF0Y2hl
cyhpbWcsIGNhbnZhcykgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBtYXgtd2lkdGg6
IDEwMCU7CiAgICAgbWF4LWhlaWdodDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRh
YikucmVjb3JkaW5nIGNhbnZhcy5wYXRoIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nIGNhbnZh
cy5wYXRoIHsKICAgICB6LWluZGV4OiAxMDsKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNj
aGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyB7Cisg
ICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1
bnNldDsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBo
ZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcg
PiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHVuc2V0OwogICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvci1zZWNvbmRh
cnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhl
YWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworICAgIC5jb250
ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0
eXBlPXJhbmdlXSB7CiAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VD
b2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCmluZGV4IDNhOWE5
YWVmZjI5YzVlZmNkNzc5YmI0ZDI5MDQwYWFkODlkYmYxZDQuLjJmOTRiYzc0MDlmNGQ1NTQ2NjVj
ZGU4OWM5ZjBmOTljYWRlZjk3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxl
Y3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTIzLDYgKzIzLDE0IEBACiAgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0
aW9uID4gLnJlc291cmNlLmltYWdlIGltZyB7CisgICAgb3V0bGluZTogMC41cHggc29saWQgdmFy
KC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9u
ID4gLnJlc291cmNlLmltYWdlIGltZzpob3ZlciB7CisgICAgb3V0bGluZS1jb2xvcjogdmFyKC0t
Z2x5cGgtY29sb3ItYWN0aXZlKQorfQorCiAucmVzb3VyY2UtY29sbGVjdGlvbi1pbWFnZS10eXBl
LXNjb3BlLWJhci5kZWZhdWx0LWl0ZW0tc2VsZWN0ZWQgewogICAgIC0tc2NvcGUtYmFyLXRleHQt
Y29sb3Itb3ZlcnJpZGU6IHZhcigtLXRleHQtY29sb3IpOwogICAgIC0tc2NvcGUtYmFyLWJhY2tn
cm91bmQtY29sb3Itb3ZlcnJpZGU6IHRyYW5zcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRleCBjOTRlY2E3NzcyMTRlMzFkYzVkODFl
NjEwOTA2MDYzZjc3Yzc0ZmNjLi5mYzFjNmEyY2Q0YWE3ZGExOTUwYzBhM2QzZmYwNjM0MzJmOTdk
NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5q
cwpAQCAtMzUsNiArMzUsOCBAQCBXSS5SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNs
YXNzIFJlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgVwogCiAgICAgICAgIHN1
cGVyKGNvbGxlY3Rpb24sIGNvbnRlbnRWaWV3Q29uc3RydWN0b3IpOwogCisgICAgICAgIHRoaXMu
ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJyZXNvdXJjZS1jb2xsZWN0aW9uIik7CisKICAgICAgICAg
aWYgKGNvbGxlY3Rpb24ucmVzb3VyY2VUeXBlID09PSBXSS5SZXNvdXJjZS5UeXBlLkltYWdlKSB7
CiAgICAgICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJ
LkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJT
aG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBn
cmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOwogICAg
ICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3Rl
bmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZVNo
b3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTJlYTlhYzg5YjhkNjY3ODY2ZjJi
ODZjZmM0MTFkMjJiMzA5MTljNS4uNzRiMDg1NWEzY2UyOWRhYjZjMzA5ZjJkMjllZjBjODA2MzYz
YjI4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTAxLTA2ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVu
dGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNz
cy1hbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9s
aWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3lj
bGUtd2ViLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdEVmZmVjdFRhcmdldC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1h
dGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVB
bmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0
aW9uL3RhcmdldENoYW5nZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1h
dGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qczogQWRkZWQuCisg
ICAgICAgIChjcmVhdGVBbmltYXRpb24pOgorICAgICAgICAoZGVzdHJveUFuaW1hdGlvbnMpOgor
ICAgICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMg
YXdhaXRBbmltYXRpb25DcmVhdGVkKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9u
TGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGF3YWl0QW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAg
ICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGNyZWF0
ZUFuaW1hdGlvbik6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0
aWxpdGllcy5hc3luYyBkZXN0cm95QW5pbWF0aW9ucyk6CisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qczoKKyAgICAgICAgKGRl
c3Ryb3lDYW52YXNlcyk6CisgICAgICAgIChhd2FpdENhbnZhc0FkZGVkKToKKyAgICAgICAgKElu
c3BlY3RvclRlc3QuQ3JlYXRlQ29udGV4dFV0aWxpdGllcy5pbml0aWFsaXplVGVzdFN1aXRlKToK
KworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RDbGllbnROb2Rlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVz
dENvbnRlbnQtMmQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250
ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q29udGVudC13ZWJnbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVz
dENvbnRlbnQtd2ViZ2wyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
Tm9kZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJl
bmRlcmVyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13
ZWJnbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z2wyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJn
cHUuaHRtbDoKKworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291
bnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmct
dXRpbGl0aWVzLmpzOgorICAgICAgICAod2luZG93LmdldENhbnZhcyk6CisKKyAgICAgICAgKiBp
bnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4
RnJhZ21lbnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFk
ZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanM6CisgICAgICAgIChk
ZWxldGVDb250ZXh0KToKKyAgICAgICAgKHdoZW5Qcm9ncmFtQWRkZWQpOgorICAgICAgICAod2lu
ZG93LmluaXRpYWxpemVUZXN0U3VpdGUpOgorICAgICAgICAod2luZG93LmFkZFBhcmVudENhbnZh
c1JlbW92ZWRUZXN0Q2FzZSk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0
LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci91bml0
LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKwogMjAy
MC0wMS0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jl
c3Npb24gcjI1NDAyOTogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L0V2ZW50VGFyZ2V0LWRpc3BhdGNoRXZlbnQuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMmYzM2NiZDdmOTMzZDNiNDliYmZmNWQzNzhkZTU3YjgyMzEyYmU5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZl
Y3RDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFu
aW1hdGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTog
QW5pbWF0aW9uLmVmZmVjdENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24u
ZWZmZWN0Q2hhbmdlZC5OZXdFZmZlY3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBl
ZmZlY3QuCitDaGFuZ2luZyBlZmZlY3QuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZl
IGFuIGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZl
Y3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBlZmZl
Y3QuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuCitQQVNT
OiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDQ1ZDg1YjFlMWYyMTY4ODFmZmJkNmY2MWIzNzQ3YzcwZGJmMTc0NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCkBA
IC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFu
aW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbe29wYWNpdHk6IDB9XSk7CisKKyAgICBy
dW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQiKTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZlY3RD
aGFuZ2VkLk5ld0VmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBh
IHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZy
b20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hv
dWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlv
biA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAg
ICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
YW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlv
biwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAg
ICBsZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3Vs
ZCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNo
YW5naW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LkVm
ZmVjdENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbmV3IEtleWZyYW1lRWZmZWN0KHdpbmRvdy5h
bmltYXRpb24uZWZmZWN0LnRhcmdldCwgW3tvcGFjaXR5OiAxfV0sIHt9KWApLAorICAgICAgICAg
ICAgXSk7CisKKyAgICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJh
bWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eShuZXdLZXlmcmFt
ZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIpOworCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxsb3dFcXVhbChuZXdLZXlmcmFtZXMsIG9sZEtleWZy
YW1lcywgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAg
fSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFu
aW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjog
IlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRl
bnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1h
dGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlv
bik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9
PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAg
ICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmlt
YXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24u
VHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4i
KTsKKworICAgICAgICAgICAgbGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1lcywg
IkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJDaGFuZ2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQg
UHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFu
aW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG51bGxgKSwKKyAg
ICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3S2V5ZnJhbWVzID0gYW5pbWF0aW9u
LmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkobmV3S2V5
ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywg
b2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOwor
ICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5U
ZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlm
ZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2E2MzExNjk4OGQ1NmI4YmFkNDdmMTNlYmVmY2JjYjFiNGZiYzU0OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmlt
YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0
aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZl
bnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uCitQQVNT
OiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorUEFTUzogQW5pbWF0aW9uIGNy
ZWF0ZWQuCitQQVNTOiBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgQ1NTIEFuaW1hdGlvbi4KK3N0
YXJ0RGVsYXk6IDEwMAoraXRlcmF0aW9uQ291bnQ6IDIKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0MDAK
K3RpbWluZ0Z1bmN0aW9uOiAibGluZWFyIgorcGxheWJhY2tEaXJlY3Rpb246ICJhbHRlcm5hdGUi
CitmaWxsTW9kZTogImJvdGgiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwK
KyAgICAic3R5bGUiOiAiY29sb3I6IHJnYigyNTUsIDAsIDApO1xub3BhY2l0eTogMDsiCisgIH0s
CisgIHsKKyAgICAib2Zmc2V0IjogMC41LAorICAgICJzdHlsZSI6ICJjb2xvcjogcmdiKDAsIDEy
OCwgMCk7XG5vcGFjaXR5OiAwLjU7IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDEsCisgICAg
InN0eWxlIjogImNvbG9yOiByZ2IoMCwgMCwgMjU1KTtcbm9wYWNpdHk6IDE7IgorICB9CitdCisK
K0Rlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLgorCitQQVNTOiBBbmltYXRpb24gZGVzdHJveWVkLgor
UEFTUzogUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBmNWUwMjkzN2JiMWViMjU3ZmU2NzM0ZjllOGNiMWQ2MmZl
NmE1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpXZWJBbmltYXRpb25z
Q1NTSW50ZWdyYXRpb25FbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAa2V5ZnJhbWVzIGZhZGUtaW4geworICAgIGZyb20g
eworICAgICAgICBjb2xvcjogcmVkOworICAgICAgICBvcGFjaXR5OiAwOworICAgIH0KKyAgICA1
MCUgeworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIG9wYWNpdHk6IDAuNTsKKyAgICB9
CisgICAgdG8geworICAgICAgICBjb2xvcjogYmx1ZTsKKyAgICAgICAgb3BhY2l0eTogMTsKKyAg
ICB9Cit9CitkaXYjdGFyZ2V0LmFjdGl2ZSB7CisgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW47
CisgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtczsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1
bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICBhbmltYXRpb24t
ZGVsYXk6IDEwMG1zOworICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7CisgICAgYW5p
bWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJv
dGg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNs
ZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9u
LkxpZmVjeWNsZS5DU1NBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
YXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgYW5pbWF0aW9ucyBhcmUg
Y3JlYXRlZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25D
b2xsZWN0aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIp
OworCisgICAgICAgICAgICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMu
YXdhaXRBbmltYXRpb25DcmVhdGVkKFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbiksCisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCksCisgICAgICAg
ICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0
aW9uRGVzdHJveWVkKGFuaW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMo
KSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIilgKSwK
KyAgICAgICAgICAgIF0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVh
dGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+CisgICAgPGRp
diBpZD0idGFyZ2V0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10
cmFuc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjkyN2NmMTZiYzYzMTc1YjhiMWYw
ZjhlMmEwNGEwMDdlYzZlZmFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzEgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5k
IEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1h
dGlvbi5MaWZlY3ljbGUuQ1NTVHJhbnNpdGlvbgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBh
bnkgYW5pbWF0aW9ucy4KK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorUEFTUzogQW5pbWF0aW9u
IHR5cGUgc2hvdWxkIGJlIENTUyBUcmFuc2l0aW9uLgorc3RhcnREZWxheTogMTAwCitpdGVyYXRp
b25Db3VudDogMQoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVuY3Rpb246ICJjdWJp
Yy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIKK3BsYXliYWNrRGlyZWN0aW9uOiAibm9ybWFs
IgorZmlsbE1vZGU6ICJiYWNrd2FyZHMiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0
IjogMCwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0
IjogMSwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWluZyBh
bmltYXRpb25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1vdmVk
IGFuaW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUwMWMwY2Q3NjFiOTNjMDM2NjQ4NTFhODNmZjliOWUxNjcxZTZlZDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtdHJhbnNpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOldlYkFuaW1hdGlvbnNDU1NJbnRlZ3Jh
dGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KK2RpdiN0YXJnZXQgeworICAgIGNvbG9yOiByZWQ7CisgICAgb3BhY2l0
eTogMDsKKworfQorZGl2I3RhcmdldC5hY3RpdmUgeworICAgIGNvbG9yOiBibHVlOworICAgIG9w
YWNpdHk6IDE7CisKKyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OworICAgIHRyYW5z
aXRpb24tZHVyYXRpb246IDQwMG1zOworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBj
dWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICB0cmFuc2l0aW9uLWRlbGF5OiAx
MDBtczsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0
IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5
Y2xlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRp
b24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNr
IHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgdHJhbnNpdGlvbnMg
YXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0
aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9u
cy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwo
WworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0
aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9u
KSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIilgKSwKKyAg
ICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRB
bmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uLmFuaW1hdGlvbklkKSwKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0
aW9ucygpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUi
KWApLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlv
bkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAg
ICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13
ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWE2YjhkYTU5ZmZkNmY3YmYw
ZDFmMDViODU1ZTU5N2ExMDhiYWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzOSBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBh
bmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKworPT0gUnVubmluZyB0
ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5p
bWF0aW9uLkxpZmVjeWNsZS5XZWJBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNob3VsZCBub3QgYmUg
YW55IGFuaW1hdGlvbnMuCitDcmVhdGluZyBhbmltYXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9u
IGNyZWF0ZWQuCisgIDA6IGFuaW1hdGUgLSBbbmF0aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1h
dGlvbiAtIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMu
anM6NzozNQorICAyOiBHbG9iYWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRl
V2l0aFNjb3BlRXh0ZW5zaW9uIC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0
aW9uKSAtIFtuYXRpdmUgY29kZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFT
UzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitzdGFydERlbGF5OiAx
MDAKK2VuZERlbGF5OiAyMDAKK2l0ZXJhdGlvbkNvdW50OiAxMAoraXRlcmF0aW9uU3RhcnQ6IDUK
K2l0ZXJhdGlvbkR1cmF0aW9uOiAzMDAKK3RpbWluZ0Z1bmN0aW9uOiAiZWFzZS1pbi1vdXQiCitw
bGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2RlOiAiYm90aCIKK2tleWZyYW1l
czoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLjI1LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6
aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogcmVkO1xub3Bh
Y2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMC43NSwKKyAgICAiZWFzaW5nIjog
ImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6
IGJsdWU7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMDI3MGE0YjI3ZDFkYzBiYWE2NzY3NGFiNzA3YzA5OGJjYThiYWYxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUt
d2ViLWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUo
IkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuV2ViQW5pbWF0aW9uIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIg
d2ViIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlv
bk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBi
ZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGF3YWl0
IEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmNyZWF0ZUFuaW1hdGlv
bihXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sIHsKKyAgICAgICAgICAgICAgICBzZWxl
Y3RvcjogImJvZHkiLAorICAgICAgICAgICAgICAgIGtleWZyYW1lczogWworICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuMjUsCisgICAgICAg
ICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40
KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInJlZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICBvcGFjaXR5OiAwLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuNzUsCisgICAg
ICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC42LCAwLjcsIDAuOCwg
MC45KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogImJsdWUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAg
ICAgICAgZGVsYXk6IDEwMCwKKyAgICAgICAgICAgICAgICAgICAgZW5kRGVsYXk6IDIwMCwKKyAg
ICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMCwKKyAgICAgICAgICAgICAgICAgICAgZWFz
aW5nOiAiZWFzZS1pbi1vdXQiLAorICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246ICJhbHRl
cm5hdGUiLAorICAgICAgICAgICAgICAgICAgICBmaWxsOiAiYm90aCIsCisgICAgICAgICAgICAg
ICAgICAgIGl0ZXJhdGlvbnM6IDEwLAorICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25TdGFy
dDogNSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0
aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0
cm95ZWQgZXZlbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiZDQ4ZGE4MTUyMTk5NzNkNjEyNjA4MzYwODZlZTIxMWUyYTFhZjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29s
dmVBbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIGZvciB0aGUg
QW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
QW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uVmFsaWRJZGVudGlmaWVyCitQQVNTOiBQYXlsb2Fk
IHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuCitQQVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIGNs
YXNzTmFtZSAiQW5pbWF0aW9uIi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5y
ZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlmaWVyCitQQVNTOiBTaG91bGQgcHJvZHVjZSBh
biBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBhbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlv
bklkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2
ZUFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZl
QW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEyM2UzOTc0YzM0YzE5N2NkZDU5ODYxMGY3Mzc3
MTA2N2UzMDEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmlt
YXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5p
bWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnJl
c29sdmVBbmltYXRpb24iKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmllciIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVu
IGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAg
ICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmlt
YXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1h
dGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4i
KTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAg
ICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFu
aW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09
IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3
ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0
IjsKKyAgICAgICAgICAgIGxldCB7b2JqZWN0fSA9IGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlc29s
dmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC50eXBlLCAib2JqZWN0IiwgYFBh
eWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAib2JqZWN0Ii5gKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwob2JqZWN0LmNsYXNzTmFtZSwgIkFuaW1hdGlvbiIsIGBQYXlsb2Fk
IHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi5gKTsKKyAgICAgICAgfSwKKyAgICB9
KTsKKworICAgIC8vIC0tLS0tLQorCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uSW52YWxpZElkZW50aWZpZXIiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5pbWF0aW9uIGlkZW50aWZpZXJzIHNob3VsZCBj
YXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgY29u
c3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElTVCI7CisgICAgICAgICAgICBjb25zdCBvYmpl
Y3RHcm91cCA9ICJ0ZXN0IjsKKworICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGF3YWl0IEFuaW1hdGlv
bkFnZW50LnJlc29sdmVBbmltYXRpb24oaWRlbnRpZmllciwgb2JqZWN0R3JvdXApOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNB
bmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCki
PgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFu
ZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kOWMyMTJmZjM2MTU4ZDhiYjRjY2UxNmE5NWRhMDUzNTJkMGIwMWRlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMv
bGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDEzMCBAQAord2luZG93LmFuaW1hdGlv
bnMgPSBbXTsKKworZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKHNlbGVjdG9yLCBrZXlmcmFtZXMg
PSBbXSwgb3B0aW9ucyA9IHt9KSB7CisgICAgbGV0IGFuaW1hdGlvbiA9IG51bGw7CisKKyAgICBs
ZXQgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgaWYgKHRh
cmdldCkKKyAgICAgICAgYW5pbWF0aW9uID0gdGFyZ2V0LmFuaW1hdGUoa2V5ZnJhbWVzLCBvcHRp
b25zKTsKKyAgICBlbHNlCisgICAgICAgIGFuaW1hdGlvbiA9IG5ldyBBbmltYXRpb24obmV3IEtl
eWZyYW1lRWZmZWN0KG51bGwsIGtleWZyYW1lcywgb3B0aW9ucykpOworCisgICAgd2luZG93LmFu
aW1hdGlvbnMucHVzaChhbmltYXRpb24pOworfQorCitmdW5jdGlvbiBkZXN0cm95QW5pbWF0aW9u
cygpIHsKKyAgICBmb3IgKGxldCBhbmltYXRpb24gb2Ygd2luZG93LmFuaW1hdGlvbnMpIHsKKyAg
ICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5p
bWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIGlmIChhbmltYXRpb24uZWZmZWN0KSB7CisgICAg
ICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBh
bmltYXRpb24uZWZmZWN0LnRhcmdldC5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICBhbmltYXRp
b24uZWZmZWN0LnRhcmdldCA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFu
aW1hdGlvbi5lZmZlY3QgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFu
aW1hdGlvbnMgPSBbXTsKKworICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgYW5pbWF0
aW9uIGFuZCBpdCdzIHRhcmdldCBhcmUgYm90aCBkZXN0cm95ZWQsIGFzIG90aGVyd2lzZSB0aGUK
KyAgICAvLyBmcm9udGVuZCB3aWxsIG5vdCByZWNlaXZlIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0
cm95ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBHQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOworICAgIH0pOworfQorCitUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KCgpID0+IHsKKyAgICBmdW5jdGlvbiBqc29uS2V5ZnJhbWVGaWx0ZXIoa2V5LCB2YWx1ZSkgewor
ICAgICAgICBpZiAoa2V5ID09PSAiZWFzaW5nIiAmJiB2YWx1ZSBpbnN0YW5jZW9mIFdJLkN1Ymlj
QmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7CisgICAgICAgIHJl
dHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNs
ZVV0aWxpdGllcyA9IHt9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVV
dGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9u
VHlwZSkgeworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50ID0g
YXdhaXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLmF3YWl0RXZlbnQo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOworCisgICAgICAgIEluc3BlY3RvclRlc3Qu
cGFzcygiQW5pbWF0aW9uIGNyZWF0ZWQuIik7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFu
aW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CisKKyAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBhbmltYXRpb24uYmFja3RyYWNlLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgICAgICBsZXQgY2FsbEZyYW1lID0gYW5pbWF0aW9uLmJhY2t0cmFjZVtpXTsKKyAgICAgICAg
ICAgIGxldCB0cmFjZVRleHQgPSBgICAke2l9OiBgOworICAgICAgICAgICAgdHJhY2VUZXh0ICs9
IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIihhbm9ueW1vdXMgZnVuY3Rpb24pIjsKKworICAg
ICAgICAgICAgaWYgKGNhbGxGcmFtZS5uYXRpdmVDb2RlKQorICAgICAgICAgICAgICAgIHRyYWNl
VGV4dCArPSAiIC0gW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJh
bWUucHJvZ3JhbUNvZGUpCisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9ICIgLSBbcHJvZ3Jh
bSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0
aW9uKSB7CisgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNv
ZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAtICIgKyBzYW5pdGl6
ZVVSTChsb2NhdGlvbi5zb3VyY2VDb2RlLnVybCkgKyBgOiR7bG9jYXRpb24ubGluZU51bWJlcn06
JHtsb2NhdGlvbi5jb2x1bW5OdW1iZXJ9YDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2codHJhY2VUZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUsIGFuaW1hdGlvblR5
cGUsIGBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgJHtXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUpfS5gKTsKKworICAgICAgICBpZiAoYW5pbWF0
aW9uLnN0YXJ0RGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygic3RhcnREZWxh
eTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5zdGFydERlbGF5KSk7CisgICAgICAgIGlm
IChhbmltYXRpb24uZW5kRGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZW5k
RGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZW5kRGVsYXkpKTsKKyAgICAgICAg
aWYgKGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJpdGVyYXRpb25Db3VudDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5pdGVyYXRp
b25Db3VudCkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KQorICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvblN0YXJ0OiAiICsgSlNPTi5zdHJpbmdp
ZnkoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uaXRl
cmF0aW9uRHVyYXRpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiaXRlcmF0aW9u
RHVyYXRpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24p
KTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJ0aW1pbmdGdW5jdGlvbjogIiArIEpTT04uc3RyaW5naWZ5KFN0cmlu
ZyhhbmltYXRpb24udGltaW5nRnVuY3Rpb24pKSk7CisgICAgICAgIGlmIChhbmltYXRpb24ucGxh
eWJhY2tEaXJlY3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygicGxheWJhY2tE
aXJlY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24p
KTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5maWxsTW9kZSkKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJmaWxsTW9kZTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5maWxsTW9k
ZSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJrZXlmcmFtZXM6Iik7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0Lmpzb24oYW5pbWF0aW9uLmtleWZyYW1lcywganNvbktleWZyYW1lRmlsdGVyKTsKKyAg
ICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOworCisgICAgICAgIHJl
dHVybiBhbmltYXRpb24KKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZl
Y3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQgPSBhc3luYyBmdW5jdGlvbihh
bmltYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uSXRl
bVJlbW92ZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVj
dGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQpCisKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBbmltYXRpb24gZGVzdHJveWVkLiIpOworCisgICAgICAg
IGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVudC5kYXRh
Lml0ZW07CisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1h
dGlvbklkLCBhbmltYXRpb25JZGVudGlmaWVyLCAiUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVj
dGVkIElELiIpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNs
ZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24gPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25UeXBl
LCB7c2VsZWN0b3IsIGtleWZyYW1lcywgb3B0aW9uc30gPSB7fSkgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiQ3JlYXRpbmcgYW5pbWF0aW9uLi4uXG4iKTsKKworICAgICAgICBsZXQgc3Ry
aW5naWZpZWRTZWxlY3RvciA9IEpTT04uc3RyaW5naWZ5KHNlbGVjdG9yIHx8IG51bGwpOworICAg
ICAgICBsZXQgc3RyaW5naWZpZWRLZXlmcmFtZXMgPSBKU09OLnN0cmluZ2lmeShrZXlmcmFtZXMg
fHwgW10pOworICAgICAgICBsZXQgc3RyaW5naWZpZWRPcHRpb25zID0gSlNPTi5zdHJpbmdpZnko
b3B0aW9ucyB8fCB7fSk7CisKKyAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGls
aXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblR5cGUpLAorICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQW5pbWF0aW9uKCR7c3RyaW5naWZp
ZWRTZWxlY3Rvcn0sICR7c3RyaW5naWZpZWRLZXlmcmFtZXN9LCAke3N0cmluZ2lmaWVkT3B0aW9u
c30pYCkKKyAgICAgICAgXSk7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdGlvbjsKKyAgICB9Owor
CisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFu
aW1hdGlvbnMgPSBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkRlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLlxuIik7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoYGRlc3Ryb3lBbmltYXRpb25zKClgKTsKKyAgICB9OworfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFu
Z2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODhkZTIyZDM0OGNlYTlhYzlhZmYzZmFkMWYx
NDI1MTA3NmNkN2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0
cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcg
dGVzdCBzdWl0ZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OZXdUYXJnZXQKK1BBU1M6IEFuaW1hdGlvbiBzaG91
bGQgaGF2ZSBhIHRhcmdldC4KK0NoYW5naW5nIHRhcmdldC4uLgorCitQQVNTOiBBbmltYXRpb24g
c2hvdWxkIGhhdmUgYSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZl
IGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdl
ZC5OdWxsVGFyZ2V0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitDaGFu
Z2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhIHRhcmdl
dC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hODZmNzNkYWMwNGIxYWIzOTViZmQwYjgxM2YwZmI0ZjQ3MGM4MzY1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2Vk
Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3
aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQuYm9keS5hbmltYXRlKFtdKTsKKworICAgIHJ1blRl
c3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZCIpOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnRhcmdldENoYW5n
ZWQuTmV3VGFyZ2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFs
aWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAg
YXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShX
SS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQg
b25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0g
YW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAg
ICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmlt
YXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAi
QW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxl
dCBvbGRUYXJnZXQgPSBhd2FpdCBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldCgpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG9sZFRhcmdldCBpbnN0YW5jZW9mIFdJ
LkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIpOworICAgICAgICAg
ICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2
ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJn
ZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKWApLAorICAgICAgICAgICAgXSk7CisK
KyAgICAgICAgICAgIGxldCBuZXdUYXJnZXQgPSBhd2FpdCBhbmltYXRpb24ucmVxdWVzdEVmZmVj
dFRhcmdldCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG5ld1Rhcmdl
dCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQu
Iik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFyZ2V0
LCBvbGRUYXJnZXQsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0IiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0
aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxl
dCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNv
bGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5s
ZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlm
ICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9u
LmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmlt
YXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRUYXJnZXQgPSBhd2FpdCBhbmltYXRpb24u
cmVxdWVzdEVmZmVjdFRhcmdldCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KG9sZFRhcmdldCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhh
dmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2lu
ZyB0YXJnZXQuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAg
ICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRD
aGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3
aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBudWxsYCksCisgICAgICAgICAgICBdKTsK
KworICAgICAgICAgICAgbGV0IG5ld1RhcmdldCA9IGF3YWl0IGFuaW1hdGlvbi5yZXF1ZXN0RWZm
ZWN0VGFyZ2V0KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE51bGwobmV3VGFy
Z2V0LCAiQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbChuZXdUYXJnZXQsIG9sZFRhcmdldCwgIkFu
aW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9
KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmlt
YXRpb24udGFyZ2V0Q2hhbmdlZCBldmVudC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbApp
bmRleCBkNGUxMTFmZDlkODUzNzE1ZTQ0NjMzMzZiNGJkMDc4Mjc4Y2FmNjFlLi4yZDYyNzRiN2Y1
NTQ3ZGViODI4MzNiOWZhYTVjMjNiZjAwY2ZiMDc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTIwLDkgKzIwLDkg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgY3JlYXRlZCBjYW52YXNlcyBoYXZlIHRoZSBjb3JyZWN0IHR5
cGUgYW5kIGF0dHJpYnV0ZXMgc2VudCB0byB0aGUgZnJvbnRlbmQuIiwKICAgICAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5h
d2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpCisgICAgICAgICAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29s
bGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpCiAgICAgICAgICAgICAgICAgLnRoZW4oKGV2ZW50KSA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkFkZGVkIGNhbnZhcy4iKTsKIAogICAg
ICAgICAgICAgICAgICAgICBsZXQgY29udGV4dERpc3BsYXlOYW1lID0gV0kuQ2FudmFzLmRpc3Bs
YXlOYW1lRm9yQ29udGV4dFR5cGUoY29udGV4dFR5cGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwKaW5kZXggYmMx
ODFmNjJmMmQ0ZjQzZWI0YTFhYmYxZDlmODM2ZmNlM2QyYmI1Zi4uYjE0MGYxMThkMDg4NmNiNzU4
MDJmYTE1NDBjYTVmODU3NmFjNmEwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sCkBAIC0zNCwxNCArMzQsMTQg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgZGVzY3JpcHRpb246ICJFbnN1cmUgdGhhdCBh
dHRhY2hlZCBHUFVDYW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFzLCBpbnN0
ZWFkIG9mIHRoZSBXZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAg
ICAgICAgIGxldCBjcmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBX
SS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5D
YW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoZXZlbnQudGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR1BVKTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChl
dmVudC5kYXRhLml0ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
UFUpOwogICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUF0
dGFjaGVkQ2FudmFzKCJncHUiKWApCiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCBsaXN0
ZW5lcik7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgbGlzdGVuZXIp
OwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGNyZWF0ZWQsICJJbnNw
ZWN0b3IgY2FudmFzIHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgYXR0YWNoZWQgR1BVQ2FudmFz
Q29udGV4dCB3aXRob3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7CiAgICAgICAgIH0sCkBA
IC01MiwxNCArNTIsMTQgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgZGVzY3JpcHRpb246
ICJFbnN1cmUgdGhhdCBkZXRhY2hlZCBHUFVDYW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFz
IGEgY2FudmFzLCBpbnN0ZWFkIG9mIHRoZSBXZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMg
dGVzdCgpIHsKICAgICAgICAgICAgIGxldCBjcmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBs
ZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rp
b24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChldmVudC5kYXRhLml0ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHUFUpOwogICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYGNyZWF0ZURldGFjaGVkQ2FudmFzKCJncHUiKWApCiAKLSAgICAgICAgICAgIFdJLmNh
bnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNh
bnZhc0FkZGVkLCBsaXN0ZW5lcik7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgbGlzdGVuZXIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNl
KGNyZWF0ZWQsICJJbnNwZWN0b3IgY2FudmFzIHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgZGV0
YWNoZWQgR1BVQ2FudmFzQ29udGV4dCB3aXRob3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7
CiAgICAgICAgIH0sCkBAIC03MCwxNCArNzAsMTQgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgZGVzY3JpcHRpb246ICJFbnN1cmUgdGhhdCBDU1MgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3Qg
dHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAg
ICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVu
ZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihX
SS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0g
dHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVDU1NDYW52YXMoImdwdSIsICJjc3MtY2FudmFzIilgKQog
Ci0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29s
bGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90
IGJlIGNyZWF0ZWQgZm9yIENTUyBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdl
YkdQVURldmljZS4iKTsKICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9leHRlbnNpb25zLmh0bWwKaW5kZXggZThmY2JmZTAwNzNjMTliMzg1YzQ2Yjk3ZDQxNWZmODk3
YmFmMWUyMS4uOTM3YzFmMzRiYmE5NmI1NzAxMWEzMzE5ZThhNTc4MmMxODQzMmNhZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWwKQEAgLTIwLDcgKzIw
LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5leHRlbnNpb25z
LmVuYWJsZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBlbmFibGluZyBhbiBl
eHRlbnNpb24gbm90aWZpZXMgdGhlIGZyb250ZW5kLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5m
cm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+
IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKICAg
ICAgICAgICAgIGlmICghY2FudmFzZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0
KCJNaXNzaW5nIFdlYkdMIGNhbnZhcy4iKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbAppbmRleCAyYTQ5ZTAzYTE4ODhlZTg1
NWViYmIzYWYxODg0M2JjZTNlMmJkYjFjLi40YmZkN2E2Y2VhYjUzZmM1ZDliOGU3MTNiODUzZDI3
NWUwMTczZTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9y
eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKQEAg
LTI4LDcgKzI4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIC8vIHBlcmZvcm1l
ZCBvbiB0aGF0IGNhbnZhcyB0aGF0IHJlcXVpcmVzIHRoZSBpbWFnZSBidWZmZXIuICBBIGJsYW5r
IGNhbnZhcyB0aGF0IHdhcwogICAgICAgICAgICAgLy8ganVzdCBjcmVhdGVkIHdpbGwgbm90IGhh
dmUgYSBidWZmZXIsIHNvIGl0cyBtZW1vcnkgY29zdCB3aWxsIGJlIDAvTmFOLgogCi0gICAgICAg
ICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRlcigoY2Fu
dmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52
YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0
VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlm
ICghY2FudmFzZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIDJE
IGNhbnZhcy4iKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC00NSw3ICs0NSw3IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMubWVtb3J5LmNhbnZhc01lbW9y
eUNoYW5nZWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgbWVtb3J5IGNvc3Qg
aXMgdXBkYXRlZCB3aGVuIHRoZSBiYWNrZW5kIHZhbHVlIGNoYW5nZXMuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAgICAgIGxldCBjYW52
YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0
ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgpIHsKICAgICAg
ICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgMkQgY2FudmFzLiIpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3Jk
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCmlu
ZGV4IDRkM2NmZTliOGU2ZTk3NDBkNGVjYTY3Nzk0YTQ1YTRmOWVlYzY4ZDEuLmJlMDhhMjA0MTMw
MmMzNzc2MTRjYzMzZTEzOTRhMDkwMTc1MmUyYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZWNvcmRpbmcuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICBuYW1lOiAiQ2FudmFzLkFjdGlvblBhcmFtZXRlck5hTiIsCiAgICAgICAgIGRl
c2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBOYU4gaXMgY29udmVydGVkIGludG8gdGhlIHByb3BlciB2
YWx1ZSBmb3Igc2VyaWFsaXphdGlvbi4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07
CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2Fu
dmFzLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMgY29udGV4dC4iKTsKIAog
ICAgICAgICAgICAgY2FudmFzLmF3YWl0RXZlbnQoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0
b3BwZWQpCkBAIC01OCw3ICs1OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6
ICJDYW52YXMuTXVsdGlwbGVSZWNvcmRpbmciLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNr
IHRoYXQgbXVsdGlwbGUgcmVjb3JkaW5ncyBhcmUgYWJsZSB0byBiZSBzdGFydGVkL3N0b3BwZWQg
YXQgdGhlIHNhbWUgdGltZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlczsKKyAgICAg
ICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxl
bmd0aCA9PT0gMiwgIlRoZXJlIHNob3VsZCBiZSB0d28gY2FudmFzIGNvbnRleHRzLiIpOwogCiAg
ICAgICAgICAgICBjYW52YXNlc1sxXS5hd2FpdEV2ZW50KFdJLkNhbnZhcy5FdmVudC5SZWNvcmRp
bmdTdG9wcGVkKQpAQCAtMTEyLDcgKzExMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
IG5hbWU6ICJDYW52YXMuTm9BY3Rpb25zIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IGEgY2FudmFzIGlzIHN0aWxsIGFibGUgdG8gYmUgcmVjb3JkZWQgYWZ0ZXIgc3RvcHBpbmcg
YSByZWNvcmRpbmcgd2l0aCBubyBhY3Rpb25zLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
c1swXTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChjYW52YXMsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGNhbnZhcyBjb250ZXh0LiIp
OwogCiAgICAgICAgICAgICBsZXQgZXZlbnRDb3VudCA9IDA7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbAppbmRleCAyM2NkMDQ4
Njg1MGQwYWUxYjc2Nzk4NzViMGFmMjdhMDUxYzBmNGNkLi5mNzRkMTVlMTA2ZWEzYjA1Y2E5MWI4
MDFmODFjOGEwMmYxMTUwNGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwKQEAgLTE2LDcgKzE2LDcgQEAgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q2xpZW50Tm9kZXMuSW5pdGlh
bCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBjcmVhdGluZyBhIENTUyBjYW52
YXMgY2xpZW50IG5vZGUgaXMgdHJhY2tlZCBjb3JyZWN0bHkuIiwKICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc2VzWzBdOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFzLiIp
OwogCiAgICAgICAgICAgICBjYW52YXMucmVxdWVzdENsaWVudE5vZGVzKChjbGllbnROb2Rlcykg
PT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29u
dGVudC0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC0yZC5odG1sCmluZGV4IDUzNTA5NTc2MmIzOTBmMmNlM2ZiNWE5Njk2YWRlNjExMzQzM2MyZmQu
LmU5Y2JhMWQwMTA3YzNhNjdjZWYxNzJlOGFiNWE5YTRhNGFhOWNhMGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKQEAgLTE4
LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1
ZXN0Q29udGVudDJELnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0
aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3IgdGhlIGNhbnZhcyBvbiB0aGUgcGFnZSB3aXRoIHRo
ZSBnaXZlbiB0eXBlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAg
ICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJE
KTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZh
cykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sCmluZGV4IGNkNTA4
M2MyNTI1Mjc0ZDc5ZmI4ZjRiZDc5Yjk3OTM4ZmUzMGM2MzAuLmY1MjY2ZWZkZWZkN2VjNzQ3NGU5
NmViYWFmZDBiYjU3M2IyNWYyYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwKQEAg
LTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5y
ZXF1ZXN0Q29udGVudEJpdG1hcFJlbmRlcmVyLnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNj
cmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3IgdGhlIEJpdG1hcFJlbmRl
cmVyIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlu
ZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5CaXRtYXBSZW5kZXJlcik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOwog
ICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3Np
bmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbAppbmRleCBh
ZWI4MWVmMjdkM2M5ODA1ODQ5Nzk5NmExNzliZDY0YTViZmU5YmVmLi43MGMyMWZlNDMzOTY5MTU5
NjA5MTIyODQ1NjZhZjJmNzNkNThiOTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCkBAIC0xOCw3ICsxOCw3IEBA
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRX
ZWJHTC52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2
NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBXZWJHTCBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdMKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0
KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRt
bAppbmRleCA2YjAzZDVlYzdlNTlkMDI2Njg3YzZiN2YwZGIyODA2ZTE2M2FlY2NmLi5mN2I1NWY0
YTNkZmMwODQzYWVmNzg4MGI5Zjc5NzQwY2UxNWEwODYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKQEAgLTIx
LDcgKzIxLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1
ZXN0Q29udGVudFdlYkdMMi52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJH
ZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBXZWJHTDIgY2FudmFzIG9uIHRoZSBw
YWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisgICAgICAg
ICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuV2ViR0wyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAg
ICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2Rl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKaW5k
ZXggZTVjNjE0N2UzNDdiYzM2OWUyYzA1Y2M4NDE2NmQ4MDZhNzFjMDYxNi4uZGNjNGJjY2VlNzVm
NGE2OTM4NDViYmRlZTcxMjNhZmZlMmE3OTA1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3ROb2RlLnZhbGlkQ2FudmFzSWQiLAog
ICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgbm9kZSBpZCBmb3IgZWFjaCBjYW52YXMgb24g
dGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
IGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7CisgICAgICAgICAgICBs
ZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bik7CiAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRMZW5ndGggPSBjYW52YXNlcy5sZW5ndGg7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChleHBlY3RlZExlbmd0aCA9PT0gMywgIlRo
ZSBwYWdlIGhhcyAzIGNhbnZhc2VzLiIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKaW5kZXggYzQxY2M2YmM3NGEzMjQxOTIw
YjNkNmI1YzNkOWIzYzZiZmRhOTVkMS4uZmUxNDExNzliN2NhZGEzYmI1ODVhODg4ODRkZTZiYjYz
NGU3NDM4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZl
Q29udGV4dC0yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2
ZUNvbnRleHQtMmQuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dDJELnZhbGlkSWRlbnRpZmllcmAsCiAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdp
dmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5k
KChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LkNhbnZhczJEKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4
dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBp
ZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sCmlu
ZGV4IDg2MjUyOTI2NWM0ZGQ2YjI5YjI5Njc4ODQ0MWNlZjllNjc3YjliMTAuLjI5N2Q0NDFlMTRm
YTRiMWJkMzk2ZGMwNTRmODViOGQ5M2Y5YWU1YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVy
Lmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBD
YW52YXMucmVzb2x2ZUNvbnRleHRCaXRtYXBSZW5kZXJlci52YWxpZElkZW50aWZpZXJgLAogICAg
ICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBn
aXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlu
ZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5CaXRtYXBSZW5kZXJlcik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOwog
ICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3Np
bmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbAppbmRleCA5
NWFkZjEyYzA5M2FkZjMwYzQ3ZDI5Mjk5MjM0M2RjZjAxY2NlODdlLi4yYTcwZmE0YTBmYjE3ZmZh
MTk0NDQ3NTE5Y2IzOWU1ODBiOTM1ZTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCkBAIC0xNyw3ICsxNyw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0V2Vi
R0wudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJu
IGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdMKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0
KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRt
bAppbmRleCAxMTUxZjkxN2E3YTIzZTZmZTMzMmI0M2E5YTM0MDZhOWNmZTkwYTU0Li5kOGUwODMx
ZTZiYzNhMjk2NWU4ZDQyY2ZkNTg3ZTJkZmExNGQyYzc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKQEAgLTIw
LDcgKzIwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2
ZUNvbnRleHRXZWJHTDIudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJT
aG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZp
ZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKyAgICAgICAg
ICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVj
dGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHTDIpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAg
ICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRl
eHQtd2ViZ3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250
ZXh0LXdlYmdwdS5odG1sCmluZGV4IGRjMDBlZjEyMzdhNjdiODkwNWYzODBkY2VjZjZhNzljZWI2
MzI2NzYuLmU5MjViMjcxNjQ4ZjQ0NGMyM2M5ZDJhODVjYjg1MjA2MjRjYjYyNTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJn
cHUuaHRtbApAQCAtMjIsMTQgKzIyLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1l
OiBgQ2FudmFzLnJlc29sdmVDb250ZXh0V2ViR1BVLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVu
IGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydCghV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGgs
ICJUaGVyZSBzaG91bGQgYmUgbm8gY2FudmFzZXMuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydCghV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpemUsICJUaGVy
ZSBzaG91bGQgYmUgbm8gY2FudmFzZXMuIik7CiAKLSAgICAgICAgICAgIGxldCBbY2FudmFzQWRk
ZWRFdmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgV0kuY2FudmFz
TWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpLAor
ICAgICAgICAgICAgbGV0IFtjYW52YXNDb2xsZWN0aW9uSXRlbUFkZGVkRXZlbnRdID0gYXdhaXQg
UHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKSwKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVEZXZpY2UoKWAp
LAogICAgICAgICAgICAgXSk7CiAKLSAgICAgICAgICAgIGxldCB7Y2FudmFzfSA9IGNhbnZhc0Fk
ZGVkRXZlbnQuZGF0YTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBjYW52YXNDb2xsZWN0aW9u
SXRlbUFkZGVkRXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoY2FudmFzLmNvbnRleHRUeXBlLCBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQWRk
ZWQgY2FudmFzIHNob3VsZCBiZSBhIFdlYkdQVSBkZXZpY2UuIik7CiAKICAgICAgICAgICAgIGNv
bnN0IG9iamVjdEdyb3VwID0gInRlc3QiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVz
LmpzCmluZGV4IDNhNDYwNDU1MjUxMDE4MmJiZTJlZjM1NTcyM2E0MWUwNDI4OWQ2MmYuLjE1OTE1
ODAyNTkwMjNiOWUyMzhlNzFiYjVjODU1YWE3Yzg2NDgxYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5q
cworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29u
dGV4dC11dGlsaXRpZXMuanMKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gZGVzdHJveUNhbnZh
c2VzKCkgewogICAgIHdpbmRvdy5jb250ZXh0cyA9IFtdOwogCiAgICAgLy8gRm9yY2UgR0MgdG8g
bWFrZSBzdXJlIHRoZSBjYW52YXMgZWxlbWVudCBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUg
ZnJvbnRlbmQKLSAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQu
Q2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBDYW52YXMuY2Fu
dmFzUmVtb3ZlZCBldmVudHMuCiAgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxlci5j
b2xsZWN0KCk7IH0sIDApOwogfQogCkBAIC00Myw5ICs0Myw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVy
SW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIGxldCBzdWl0ZSA9IG51bGw7CiAKICAgICBmdW5jdGlv
biBhd2FpdENhbnZhc0FkZGVkKGNvbnRleHRUeXBlKSB7Ci0gICAgICAgIHJldHVybiBXSS5jYW52
YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCkK
KyAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2
ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKQogICAgICAgICAudGhlbigoZXZlbnQp
ID0+IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBsZXQgY29u
dGV4dERpc3BsYXlOYW1lID0gV0kuQ2FudmFzLmRpc3BsYXlOYW1lRm9yQ29udGV4dFR5cGUoY29u
dGV4dFR5cGUpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjYW52YXMu
Y29udGV4dFR5cGUsIGNvbnRleHRUeXBlLCBgQ2FudmFzIGNvbnRleHQgc2hvdWxkIGJlICR7Y29u
dGV4dERpc3BsYXlOYW1lfS5gKTsKIApAQCAtNzMsOSArNzMsOSBAQCBUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhd2FpdENhbnZhc1Jl
bW92ZWQoY2FudmFzSWRlbnRpZmllcikgewotICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdl
ci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCkKKyAgICAg
ICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQpCiAgICAgICAgIC50aGVuKChldmVudCkgPT4g
ewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAg
ICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwoY2FudmFzLmlkZW50aWZpZXIsIGNhbnZhc0lkZW50aWZpZXIsICJSZW1v
dmVkIGNhbnZhcyBoYXMgZXhwZWN0ZWQgSUQuIik7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTg5
LDcgKzg5LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAg
ICAgICBuYW1lOiBgJHtzdWl0ZS5uYW1lfS5Ob0NhbnZhc2VzYCwKICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQ2hlY2sgdGhhdCB0aGUgQ2FudmFzTWFuYWdlciBoYXMgbm8gY2FudmFzZXMgaW5p
dGlhbGx5LiIsCiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
cy5sZW5ndGgsIDAsICJDYW52YXNNYW5hZ2VyIHNob3VsZCBoYXZlIG5vIGNhbnZhc2VzLiIpOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLnNpemUsIDAsICJDYW52YXNNYW5hZ2VyIHNob3VsZCBoYXZlIG5v
IGNhbnZhc2VzLiIpOwogICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
c291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcwppbmRleCA2MDE0NmZmMzg0ODdm
ZDE5M2UyM2QzMzc0N2RmMzEwNDZjYzY4MWYzLi43N2EwZWEzNDNiNjVmNDI0YmFjNmRlMzc1ZTMz
YmYyY2FiZGNjYmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
c291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMKQEAgLTg2LDcgKzg2LDcg
QEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgd2lu
ZG93LmdldENhbnZhcyA9IGZ1bmN0aW9uKHR5cGUpIHsKLSAgICAgICAgbGV0IGNhbnZhc2VzID0g
V0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRl
eHRUeXBlID09PSB0eXBlKTsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMu
Y29udGV4dFR5cGUgPT09IHR5cGUpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52
YXNlcy5sZW5ndGggPT09IDEsIGBUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzIHdpdGgg
dHlwZSAiJHt0eXBlfSIuYCk7CiAgICAgICAgIGlmIChjYW52YXNlcy5sZW5ndGggIT09IDEpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRp
ZXMtd2ViZ2wuanMKaW5kZXggNTI3NWM0NDFhYWZjNzNiOTEwNzk0NWIzY2Q3M2Y5Y2E2N2UxZTY1
ZS4uZjQzZTZmMjc3Y2RjN2QwNThkMDk5NDFhNzY2Nzc2MzRlMDVlNmNjMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGls
aXRpZXMtd2ViZ2wuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJj
ZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMKQEAgLTM5LDcgKzM5LDcgQEAgZnVu
Y3Rpb24gZGVsZXRlUHJvZ3JhbSgpIHsKIGZ1bmN0aW9uIGRlbGV0ZUNvbnRleHQoKSB7CiAgICAg
Y29udGV4dCA9IG51bGw7CiAgICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBjYW52YXMg
ZWxlbWVudCBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBkb2Vz
IG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMu
CisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3ZlZCBldmVudHMuCiAg
ICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwogfQog
CkBAIC00Nyw4ICs0Nyw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewog
ICAgIGxldCBzdWl0ZSA9IG51bGw7CiAKICAgICBmdW5jdGlvbiB3aGVuUHJvZ3JhbUFkZGVkKGNh
bGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4i
KTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNh
bnZhcy4iKTsKKyAgICAgICAgY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2lu
Z2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVu
dCkgPT4gewogICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNo
YWRlclByb2dyYW0sICJBZGRlZCBTaGFkZXJQcm9ncmFtLiIpOwogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAi
U2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMuIik7CkBAIC01Nyw4ICs1
OCw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIH0KIAogICAg
IGZ1bmN0aW9uIHdoZW5Qcm9ncmFtUmVtb3ZlZChjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRo
ZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlz
dGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAg
ICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09
PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKKyAgICAgICAgY2FudmFz
ZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0ku
Q29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICBs
ZXQgcHJvZ3JhbSA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIlJlbW92ZWQg
U2hhZGVyUHJvZ3JhbS4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChw
cm9ncmFtLmNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxk
IGhhdmUgYSBwYXJlbnQgQ2FudmFzLiIpOwpAQCAtNzQsNyArNzYsNyBAQCBUZXN0UGFnZS5yZWdp
c3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sg
dGhhdCBTaGFkZXJQcm9ncmFtQWRkZWQgaXMgc2VudCBmb3IgYSBwcm9ncmFtIGNyZWF0ZWQgYmVm
b3JlIENhbnZhc0FnZW50IGlzIGVuYWJsZWQuIiwKICAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYW4ndCB1c2UgYGF3YWl0RXZlbnRg
IHNpbmNlIHRoZSBwcm9taXNlIHJlc29sdXRpb24gaGFwcGVucyBvbiB0aGUgbmV4dCB0aWNrLgot
ICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVu
dExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgd2hlblByb2dyYW1BZGRlZCgocHJvZ3JhbSkgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKQEAg
LTExMyw3ICsxMTUsNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAg
ICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICAgICAgbGV0IGNh
bnZhc1JlbW92ZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
c2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1v
dmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92
ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJn
cHUuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9n
cmFtLXV0aWxpdGllcy13ZWJncHUuanMKaW5kZXggZmU0OGQ4ZmQ4NTExNDY1ODk4ZmQzYjA0NTBk
ZTg5NTEzNzQ0OWJlNC4uYjhkZTM0Y2ZhODc4Njg1Zjk2NWE5ZjkwYmI0YmY4YWFiMzU3MzYwZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVy
UHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcwpAQCAtNjQs
NyArNjQsNyBAQCBhc3luYyBmdW5jdGlvbiBjcmVhdGVSZW5kZXJQaXBlbGluZShjb2RlID0gcmVu
ZGVyUGlwZWxpbmVTb3VyY2UpIHsKIGZ1bmN0aW9uIGRlbGV0ZURldmljZSgpIHsKICAgICBkZXZp
Y2UgPSBudWxsOwogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgZGV2aWNlIGlzIGRl
c3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2VpdmUg
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBkb2Vz
IG5vdCByZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1lb3V0
KCgpID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFt
ZUNvdW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1
dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sCmluZGV4IGQ5OGYwZmVhNGU5MmMxNTI5NzgxMTJjMmQw
NzBjZDc0ZTk1OWQ0ZTIuLjU1ZTU1MjQ3MzA4M2FhMmQxYmFlYjBlODg3ZWUwNWZjMjhmMGEwZTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0
b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbApAQCAtNzcsOCArNzcsOCBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgICAgICBoYW5kbGVSZWNvcmRpbmdT
dG9wcGVkKGNhbnZhcywgZXZlbnQuZGF0YS5yZWNvcmRpbmcpOwogICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVu
ZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGNhbnZhcyA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCiAKICAgICAg
ICAgICAgICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJl
Y29yZGluZ1N0YXJ0ZWQsIGhhbmRsZVJlY29yZGluZ1N0YXJ0ZWRXcmFwcGVyKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3Zl
LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFt
LWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKaW5kZXggZDQwZmFiNzgzODEzMGNjOTRiMDNiZjkxZDk2
ZjIyNzA5MDRlYjAxMy4uZDVmYjg3NzJjMGIzNzVjNDBkNWQ3YTBlNDIwMmE1NGZmNWQ1MmQwYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFk
ZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9z
aGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwKQEAgLTE0LDkgKzE0LDExIEBAIHdp
bmRvdy5iZWZvcmVUZXN0ID0gYXN5bmMgZnVuY3Rpb24oKSB7CiBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZShgQ2FudmFzLlNo
YWRlclByb2dyYW0uV2ViR1BVYCk7CiAKLSAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNlc1swXTsKKyAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFz
ZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKKwor
ICAgIGxldCBjYW52YXMgPSBjYW52YXNlc1swXTsKICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChj
YW52YXMsICJUaGVyZSBzaG91bGQgYmUgYSBjYW52YXMuIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91
bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwogICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkNhbnZhcyBz
aG91bGQgYmUgV2ViR1BVLiIpOwogCiAgICAgYXN5bmMgZnVuY3Rpb24gYXdhaXRQcm9ncmFtQWRk
ZWQocHJvZ3JhbVR5cGUpIHsKQEAgLTExOCw3ICsxMjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgbGV0IGNhbnZhc1Jl
bW92ZWQgPSBmYWxzZTsKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJl
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNp
bmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChl
dmVudCkgPT4gewogICAgICAgICAgICAgICAgIGNhbnZhc1JlbW92ZWQgPSB0cnVlOwogICAgICAg
ICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50
Lmh0bWwKaW5kZXggMzRkMDJhYjE3ZTkwNWE0Yjc4YTAyNjU1MDQ5YWUyOGRiMzMxMDg3MS4uOGNm
OWE0NzU2MjI0MjFjODM2ODljOWFkMzdkMjE5MGEwMWNlOWUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZy
YWdtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFk
ZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWwKQEAgLTU3LDEwICs1NywxMCBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3JlYXRpbmcgcmVu
ZGVyIHBpcGVsaW5lLi4uIik7CiAgICAgICAgIGxldCBldmFsdXRlUHJvbWlzZSA9IEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVJlbmRlclBpcGVsaW5lKClgKTsKIAotICAgICAg
ICBpZiAoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoKQotICAgICAgICAgICAgYXdh
aXQgV0kuY2FudmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2Fu
dmFzQWRkZWQpOworICAgICAgICBpZiAoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bi5zaXplKQorICAgICAgICAgICAgYXdhaXQgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOwogCi0gICAgICAg
IGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICBsZXQg
Y2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBd
OwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUsICJDYW52YXMgc2hvdWxkIGJlIFdlYkdQVS4iKTsK
IAogICAgICAgICBsZXQgaXRlbUFkZGVkRXZlbnQgPSBhd2FpdCBjYW52YXMuc2hhZGVyUHJvZ3Jh
bUNvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3Mt
ZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXgg
NjZiZGJhYjllZWUzMTY3OTBmOGYyNjc0NmY5M2UyMWVkNGMzZGYxZS4uZGJmNjM1MWU5YTA5MjQ2
MGFiZWU5ZDM0ZDkyMDZiMGY3MzM2YjNhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBl
Y3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtNTQsNiArNTQsNzQgQEAgRkFJTDogZXhwZWN0
RmFsc2UoW10pCiAgICAgRXhwZWN0ZWQ6IGZhbHNleQogICAgIEFjdHVhbDogW10KIAorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkKK0V4cGVjdGVkIHRvIFBB
U1MKK1BBU1M6IGV4cGVjdEVtcHR5KG51bGwpCitQQVNTOiBleHBlY3RFbXB0eSgiIikKK1BBU1M6
IGV4cGVjdEVtcHR5KHt9KQorUEFTUzogZXhwZWN0RW1wdHkoW10pCitQQVNTOiBleHBlY3RFbXB0
eSh7fSkKK1BBU1M6IGV4cGVjdEVtcHR5KHt9KQorRXhwZWN0ZWQgdG8gRkFJTAorRkFJTDogZXhw
ZWN0RW1wdHkoInRlc3QiKQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAgIEFjdHVhbDogInRlc3Qi
CitGQUlMOiBleHBlY3RFbXB0eSh7InRlc3QiOjF9KQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAg
IEFjdHVhbDogeyJ0ZXN0IjoxfQorRkFJTDogZXhwZWN0RW1wdHkoInRlc3QiKQorICAgIEV4cGVj
dGVkOiBlbXB0eQorICAgIEFjdHVhbDogInRlc3QiCitGQUlMOiBleHBlY3RFbXB0eSh7fSkKKyAg
ICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3RFbXB0eSh7fSkK
KyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3RFbXB0eSBz
aG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHRydWUK
K0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0
OgorICAgIEFjdHVhbDogZmFsc2UKK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2Fs
bGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogMQorRkFJTDogZXhwZWN0RW1wdHkg
c2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB1bmRl
ZmluZWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1w
dHkKK0V4cGVjdGVkIHRvIFBBU1MKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KCJ0ZXN0IikKK1BBU1M6
IGV4cGVjdE5vdEVtcHR5KHsidGVzdCI6MX0pCitQQVNTOiBleHBlY3ROb3RFbXB0eSgidGVzdCIp
CitQQVNTOiBleHBlY3ROb3RFbXB0eSh7fSkKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KHt9KQorRXhw
ZWN0ZWQgdG8gRkFJTAorRkFJTDogZXhwZWN0Tm90RW1wdHkobnVsbCkKKyAgICBFeHBlY3RlZDog
bm90IGVtcHR5CisgICAgQWN0dWFsOiBudWxsCitGQUlMOiBleHBlY3ROb3RFbXB0eSgiIikKKyAg
ICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiAiIgorRkFJTDogZXhwZWN0Tm90RW1w
dHkoe30pCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4
cGVjdE5vdEVtcHR5KFtdKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IFtd
CitGQUlMOiBleHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAg
QWN0dWFsOiB7fQorRkFJTDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IG5vdCBl
bXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUg
Y2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdHJ1ZQorRkFJTDogZXhwZWN0
Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0
dWFsOiBmYWxzZQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0
aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiAxCitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91
bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHVuZGVmaW5l
ZAorCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5leHBlY3ROdWxsCiBFeHBl
Y3RlZCB0byBQQVNTCiBQQVNTOiBleHBlY3ROdWxsKG51bGwpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVj
dC1mdW5jdGlvbnMuaHRtbAppbmRleCA5MWU4NTgwYzdjYjYyNzM0NTgyNTQwMjQ5NzIwMDllOTlj
ZGE4MzRkLi5lMzg2NGEwM2M0ZTA5NDFjYThjMDJmMmYwYTc4NjI2Mzk4OGIwMTIxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0
LWZ1bmN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rl
c3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKQEAgLTQ4LDYgKzQ4LDIwIEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIGFkZFRlc3RDYXNlKGV4cGVjdFRoYXRUZXN0Q2FzZSk7CiAgICAgYWRk
SW52ZXJzZVRlc3RDYXNlKCJleHBlY3RGYWxzZSIsIGV4cGVjdFRoYXRUZXN0Q2FzZSk7CiAKKyAg
ICBsZXQgZXhwZWN0RW1wdHlUZXN0Q2FzZSA9IHsKKyAgICAgICAgZnVuY3Rpb25OYW1lOiAiZXhw
ZWN0RW1wdHkiLAorICAgICAgICBwYXNzaW5nSW5wdXRzOiBbbnVsbCwgIiIsIHt9LCBbXSwgbmV3
IE1hcCwgbmV3IFNldF0sCisgICAgICAgIGZhaWxpbmdJbnB1dHM6IFsidGVzdCIsIHt0ZXN0OiAx
fSwgWyJ0ZXN0Il0sIG5ldyBNYXAoW1sidGVzdCIsIDFdXSksIG5ldyBTZXQoWyJ0ZXN0Il0pLCB0
cnVlLCBmYWxzZSwgMSwgdW5kZWZpbmVkXSwKKyAgICB9OworICAgIGFkZFRlc3RDYXNlKGV4cGVj
dEVtcHR5VGVzdENhc2UpOworCisgICAgbGV0IGV4cGVjdE5vdEVtcHR5VGVzdENhc2UgPSB7Cisg
ICAgICAgIGZ1bmN0aW9uTmFtZTogImV4cGVjdE5vdEVtcHR5IiwKKyAgICAgICAgcGFzc2luZ0lu
cHV0czogWyJ0ZXN0Iiwge3Rlc3Q6IDF9LCBbInRlc3QiXSwgbmV3IE1hcChbWyJ0ZXN0IiwgMV1d
KSwgbmV3IFNldChbInRlc3QiXSldLAorICAgICAgICBmYWlsaW5nSW5wdXRzOiBbbnVsbCwgIiIs
IHt9LCBbXSwgbmV3IE1hcCwgbmV3IFNldCwgdHJ1ZSwgZmFsc2UsIDEsIHVuZGVmaW5lZF0sCisg
ICAgfTsKKyAgICBhZGRUZXN0Q2FzZShleHBlY3ROb3RFbXB0eVRlc3RDYXNlKTsKKwogICAgIGxl
dCBleHBlY3ROdWxsVGVzdENhc2UgPSB7CiAgICAgICAgIGZ1bmN0aW9uTmFtZTogImV4cGVjdE51
bGwiLAogICAgICAgICBwYXNzaW5nSW5wdXRzOiBbbnVsbF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388923</attachid>
            <date>2020-01-27 15:10:14 -0800</date>
            <delta_ts>2020-01-28 10:22:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20200127151013.patch</filename>
            <type>text/plain</type>
            <size>324777</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGYzNjQ1YzMyOGQ1OTFjMDJiMGM3NWI1MjhkOWIz
MjQ4ZGNhNGNjNTguLmQ2ZGUxMjllNzBiYzVlNzQ0NjY5NDI4MzIxZmZjN2ZiZWFkNTQ1ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2Fs
ZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJbnZhbGlkIHJhbmdlcyBpbiBjaGFyYWN0ZXIgY2xh
c3NlcyBzaG91bGQgYmUgYmFubmVkIGluIHVuaWNvZGUgcGF0dGVybnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0
Mjc1NDczOGQ1ODU1YzZhMTgyZDFiMWM0MTg2ZmQ0MTkwOTg2ODU1Li4xNWMyN2MyNDRjZmRhOWIw
MWE3N2ZkZjRmMzE2ZjEyZmYzYWE5MTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA1IEBACisy
MDIwLTAxLTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdl
YiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgQWRkIHR5cGVzL2NvbW1hbmRzL2V2
ZW50cyBmb3IgaW5zdHJ1bWVudGluZyB0aGUgbGlmZWN5Y2xlIG9mIGBBbmltYXRpb25gIG9iamVj
dHMsIGFzIHdlbGwgYXMKKyAgICAgICAgY29tbWFuZHMgZm9yIGdldHRpbmcgdGhlIEphdmFTY3Jp
cHQgd3JhcHBlciBvYmplY3QgYW5kIHRoZSB0YXJnZXQgRE9NIG5vZGUuCisKKyAgICAgICAgVGVz
dHM6IGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCisgICAgICAgICAgICAg
ICBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKKyAgICAg
ICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0
bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmlt
YXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZm
ZWN0VGFyZ2V0Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2
ZUFuaW1hdGlvbi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3Rhcmdl
dENoYW5nZWQuaHRtbAorCisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAg
ICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
QW5pbWF0aW9uOjppbnN0YW5jZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1h
dGlvbjo6aW5zdGFuY2VzTXV0ZXgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1h
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnNldEVmZmVjdEludGVybmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKToKKyAgICAg
ICAgKiBhbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Fu
aW1hdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NUcmFuc2l0aW9uOjpjcmVhdGUpOgorCisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVm
ZmVjdDo6cGFyc2VkS2V5ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpL
ZXlmcmFtZUVmZmVjdDo6YmxlbmRpbmdLZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpoYXNCbGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0ZWQpOgor
ICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGFjY2VzcyB0aGUgbGlzdCBvZiBrZXlmcmFtZXMuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVm
ZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBE
ZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRM
b2FkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5n
SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlv
bkltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCk6IERl
bGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6ZW5hYmxlZEluc3BlY3RvckFuaW1h
dGlvbkFnZW50IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5n
QWdlbnRzOjpzZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQpOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2Nv
bFZhbHVlRm9yU2Vjb25kcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJvdG9jb2xWYWx1
ZUZvclBsYXliYWNrRGlyZWN0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwcm90b2Nv
bFZhbHVlRm9yRmlsbE1vZGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0
Rm9yS2V5ZnJhbWVzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvckVm
ZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3RFZmZlY3RUYXJn
ZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpy
ZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0VGltaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2ls
bERlc3Ryb3lXZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpiaW5kQW5pbWF0aW9uKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5p
bWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc2V0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
KTogRGVsZXRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgIEFk
ZCBhbiBvdmVybG9hZCBmb3IgYHB1c2hOb2RlUGF0aFRvRnJvbnRlbmRgIHRoYXQgZXhwb3NlcyBh
biBgRXJyb3JTdHJpbmdgLgorCiAyMDIwLTAxLTI2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIERPTUNhY2hlRW5naW5lOjplcnJvclRvRXhjZXB0aW9uIGJh
Y2sgb3V0IG9mIGhlYWRlciBhbmQgaW50byAuY3BwIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CmluZGV4IDA0YjE2NWNjYWQ3YzcwMmFmYmNmOGM2MTBkOGQ4NzVjNGJlYzExMDkuLmRmYTJlOWQ1
NjkwYWViMjM5ZDc0YzVhNzQ1NjRkNDFhOGJlMTJlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMyOCBAQAorMjAyMC0wMS0yNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBm
b3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFu
YWdlci5wcm90b3R5cGUuZ2V0IGRvbWFpbnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuYWN0aXZhdGVFeHRyYURvbWFpbik6CisgICAgICAgIChXSS5BbmltYXRpb25N
YW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bk1hbmFnZXIucHJvdG90eXBlLmdldCBhbmltYXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBzdXBwb3J0ZWQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZW5hYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bk1hbmFnZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5h
Z2VyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdl
ci5wcm90b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1h
bmFnZXIucHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanM6CisgICAgICAgIChX
SS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgor
ICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS50YXJnZXRDaGFu
Z2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5p
bWF0aW9uRGVzdHJveWVkKTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9BbmltYXRpb25Db2xsZWN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNv
bGxlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0
IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5
cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJv
dG90eXBlLm9iamVjdElzUmVxdWlyZWRUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxl
Y3Rpb24ucHJvdG90eXBlLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0ZW1BZGRlZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtc0NsZWFyZWQpOgorICAgICAgICBTaW1p
bGFyIHRvIGBXSS5SZXNvdXJjZUNvbGxlY3Rpb25gLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiBgV0ku
Q29sbGVjdGlvbmAgdGhhdCBtYWludGFpbnMgaXQncworICAgICAgICBvd24gc3ViLWBXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uYHMgZm9yIGVhY2ggdHlwZSBvZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZnJvbVBheWxvYWQp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JGaWxsTW9kZSk6CisgICAgICAgIChX
SS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uSWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uLnByb3RvdHlwZS5nZXQgYmFja3RyYWNlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90
b3R5cGUuZ2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlw
ZS5nZXQgc3RhcnREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBl
bmREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25D
b3VudCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25TdGFy
dCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25EdXJhdGlv
bik6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCB0aW1pbmdGdW5jdGlvbik6
CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBwbGF5YmFja0RpcmVjdGlvbik6
CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBmaWxsTW9kZSk6CisgICAgICAg
IChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBrZXlmcmFtZXMpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uLnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
LnByb3RvdHlwZS5yZXF1ZXN0RWZmZWN0VGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5w
cm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBl
LnRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5fdXBkYXRl
RWZmZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5q
czoKKyAgICAgICAgKFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanM6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNUYWJDb250ZW50Vmlldy5qcy4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy50YWJJbmZvKToKKyAgICAg
ICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuaXNUYWJBbGxvd2VkKToKKyAgICAgICAgKFdJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFdJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dSZXByZXNlbnRlZE9iamVjdCk6
IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2Fu
U2hvd1JlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcucHJvdG90eXBlLmNsb3NlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlv
bkRpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5jc3M6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MuCisgICAgICAgIFJl
bmFtZSB0aGUgQ2FudmFzIFRhYiB0byBHcmFwaGljcyBUYWIgYW5kIGRpc3BsYXkgZm91ciBzZWN0
aW9uczoKKyAgICAgICAgIC0gQ2FudmFzZXMKKyAgICAgICAgIC0gV2ViIEFuaW1hdGlvbnMKKyAg
ICAgICAgIC0gQ1NTIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIFRyYW5zaXRpb25zCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qczoKKyAgICAg
ICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2Jq
ZWN0KToKKyAgICAgICAgT25seSBhcHBlYXIgaWYgYSBgV0kuQ2FudmFzYCBvciBgV0kuUmVjb3Jk
aW5nYCBpcyBzZWxlY3RlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLmdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMpOgorICAgICAg
ICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlv
bkl0ZW1zKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6
CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Ba
b25lSGFuZGxlRHJvcCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcu
cHJvdG90eXBlLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFw
aGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNs
aWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92
ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk6CisgICAg
ICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGlj
ayk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVu
dFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24p
OgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90
KDpmaXJzdC1jaGlsZCkpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmll
dyA+IHNlY3Rpb24gPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVhZGVyKToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+
IGgxKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9u
ID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29udGVudC12aWV3Lmdy
YXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAg
ICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3Jh
cGhpY3Mtb3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTog
bGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRl
cik6CisgICAgICAgIEFkZCBzdGlja3kgaGVhZGVycyBmb3IgZWFjaCBvZiB0aGUgc2VjdGlvbnMg
ZGVzY3JpYmVkIGFib3ZlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25D
b250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmll
d0FkZGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVu
dGVyKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5
cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24pOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAg
IChXSS5BbmltYXRpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50
Vmlldy5nZXQgcHJldmlld0hlaWdodCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmll
dy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXSS5B
bmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFN1YnRpdGxlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXcuYWRkVGl0bGUp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJl
dmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRs
ZUVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLl9oYW5kbGVUYXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudSk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3M6
IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24pOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5hbmltYXRpb24uc2VsZWN0ZWQpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiBoZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgPiAudGl0bGVzKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlv
biA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpi
ZWZvcmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2
aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2
aWV3ID4gc3ZnKToKKyAgICAgICAgKGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHN2Zyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3ID4gc3ZnIHJlY3QpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGgpOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlKToK
KyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0
aXZlIGxpbmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHNwYW4pOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlKToKKyAgICAg
ICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6CisgICAgICAgIChAbWVkaWEg
KHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5w
cmV2aWV3KToKKyAgICAgICAgVmlzdWFsaXplIHRoZSBzdGFydC9lbmQgZGVsYXkgYW5kIGtleWZy
YW1lcyBvZiB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGFzIGEgc2VyaWVzIG9mIGJlemllcgorICAgICAg
ICBjdXJ2ZXMgc2VwYXJhdGVkIGJ5IG1hcmtlcnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanM6IEFkZGVkLgorICAgICAgICAo
V0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbnNwZWN0KToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmdldCBhbmltYXRpb24pOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuc2V0IGFuaW1hdGlv
bik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5p
bml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5fcmVmcmVzaElkZW50aXR5U2VjdGlvbik6CisgICAgICAgIChXSS5Bbmlt
YXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaEVmZmVjdFNlY3Rpb24p
OgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3Jl
ZnJlc2hCYWNrdHJhY2VTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRl
YmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmlt
YXRpb25UYXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFy
UGFuZWwucHJvdG90eXBlLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdl
ZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJh
clBhbmVsLmNzczogQWRkZWQuCisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFu
aW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVz
IC5oZWFkZXIgPiAuc3VidGl0bGUpOgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWls
cy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZy
YW1lcyAuZGV0YWlscy1zZWN0aW9uKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFp
bHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlm
cmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyk6CisgICAgICAgICguc2lkZWJhciA+
IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5h
bmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJy
b3IpOgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29u
dGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0
aW9uKToKKyAgICAgICAgU2hvdyBjb2xsZWN0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVj
dGVkIGFuaW1hdGlvbiwgaXRzIGVmZmVjdCwgYW5kIGl0cyB0YXJnZXQuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5D
YW52YXNNYW5hZ2VyKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBj
YW52YXNDb2xsZWN0aW9uKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZh
c0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc1JlbW92
ZWQpOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3NhdmVSZWNvcmRpbmdz
KTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291
cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBj
YW52YXNlcyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5f
cmVtb3ZlQ2FudmFzKTogRGVsZXRlZC4KKyAgICAgICAgUmF0aGVyIHRoYW4gaGF2ZSB0aGUgYFdJ
LkNhbnZhc1RhYkNvbnRlbnRWaWV3YCBtYWluYWluIHRoZSBgV0kuQ2FudmFzQ29sbGVjdGlvbmAg
YW5kIGhhdmUgdG8KKyAgICAgICAgbGlzdGVuIGZvciBldmVudHMgZnJvbSB0aGUgYFdJLkNhbnZh
c01hbmFnZXJgLCBqdXN0IGhhdmUgdGhlIGBXSS5DYW52YXNNYW5hZ2VyYCBob2xkIG9uIHRvCisg
ICAgICAgIGl0IGluc3RlYWQgYW5kIHByb3ZpZGUgYSBnZXR0ZXIgZm9yIGl0LgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAg
ICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hC
dXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmNvbnRlbnRWaWV3QWRkZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9hZGRTYXZlZFJlY29yZGluZyk6
CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oaWRkZW4p
OiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuZ2V0IF9pdGVtTWFyZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlld3MpOiBEZWxldGVkLgorICAgICAg
ICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZU5hdmlnYXRp
b25JdGVtcyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5fc2hvd0dyaWRCdXR0b25DbGlja2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVTaG93SW1hZ2VHcmlk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcp
OgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFz
Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmhh
bmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250
ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQpOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZUhhbmRs
ZURyb3ApOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5p
bml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5h
dHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVs
YXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNvbnRleHRNZW51KToKKyAgICAgICAgKFdJLkNhbnZhc0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6IERlbGV0ZWQuCisgICAgICAgIE1vdmUgdGhlICJM
b2cgQ2FudmFzIENvbnRleHQiIHRvIGJlIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBjYW52YXMgZWxl
bWVudCBidXR0b24gY29udGV4dCBtZW51LgorICAgICAgICBEcml2ZS1ieTogYWRkIGEgYFdJLkRy
b3Bab25lVmlld2AgZm9yIHdoZW4gcmVjb3JkaW5nIEpTT04gZmlsZXMgYXJlIGRyYWdnZWQgb24g
dG9wLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5j
c3M6CisgICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3Rv
cnMgc2luY2UgdGhlIENhbnZhcyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAg
IChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5nZXQgc2VsZWN0ZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNldCBzZWxlY3RlZEl0ZW0pOiBBZGRlZC4K
KyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuYWRkQ29udGVudFZp
ZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
cmVtb3ZlQ29udGVudFZpZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcik6CisgICAgICAgIChXSS5Db2xs
ZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0ku
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2VsZWN0SXRlbSk6CisgICAgICAgIChX
SS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6IEFkZGVkLgor
ICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXRTZWxlY3RlZEl0
ZW0pOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFj
ZWhvbGRlcjpub3QoLm1lc3NhZ2UtdGV4dC12aWV3KSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcpOiBEZWxldGVkLgorICAgICAg
ICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIpOiBE
ZWxldGVkLgorICAgICAgICBXaGVuIHNlbGVjdGlvbiBpcyBlbmFibGVkLCBjbGlja2luZyBvdXRz
aWRlIG9mIGFueSBvZiB0aGUgY29udGVudCB2aWV3cyBzaG91bGQgZGlzbWlzcyB0aGUKKyAgICAg
ICAgY3VycmVudCBzZWxlY3Rpb24uIENsaWVudHMgc2hvdWxkIGFsc28gYmUgYWJsZSB0byBnZXQg
dGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qczoKKyAgICAgICAgKFdJLkRldGFpbHNTZWN0
aW9uU2ltcGxlUm93LnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICBFbnN1cmUgdGhhdCBg
MGAgaXMgY29uc2lkZXJlZCBhcyBhIHZhbGlkIHZhbHVlLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5sb2FkZWQpOgorICAgICAgICAoV0kuY29u
dGVudExvYWRlZCk6CisgICAgICAgIChXSS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVzZW50
ZWRPYmplY3QpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanM6
CisgICAgICAgIChXSS5Db250ZW50Vmlldy5jcmVhdGVGcm9tUmVwcmVzZW50ZWRPYmplY3QpOgor
ICAgICAgICAoV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZSk6CisgICAgICAgIEFsbG93IGBXSS5B
bmltYXRpb25gIHRvIGJlIHZpZXdhYmxlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9NYWluLmNzczoKKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IEFkZGVkLgorICAg
ICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyKTogQWRkZWQuCisg
ICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6
IEFkZGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVs
cCk6IERlbGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRl
bS1oZWxwIC5uYXZpZ2F0aW9uLWJhcik6IERlbGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0
LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtKTogRGVs
ZXRlZC4KKyAgICAgICAgQWxsb3cgYFdJLmNyZWF0ZU5hdmlnYXRpb25JdGVtSGVscGAgdG8gYmUg
dXNlZCBpbmRlcGVuZGVudGx5IG9mIGBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXdgLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzOgorICAgICAgICAo
V0kuRE9NTWFuYWdlci5wcm90b3R5cGUubm9kZUZvcklkKToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5l
TWFuYWdlci5wcm90b3R5cGUuYW5pbWF0aW9uVHJhY2tpbmdVcGRhdGVkKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzOgorICAgICAgICAoV0ku
QXVkaXRUZXN0Q2FzZVJlc3VsdC5hc3luYyBmcm9tUGF5bG9hZCk6CisgICAgICAgIEFkZCBhIGZh
bGxiYWNrIHNvIGNhbGxlcnMgZG9uJ3QgbmVlZCB0by4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5S
ZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVu
dC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogQWRkZWQu
CisgICAgICAgICguY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2Uu
aW1hZ2UgaW1nOmhvdmVyKTogQWRkZWQuCisgICAgICAgIERyaXZlLWJ5OiBtb3ZlIHRoZXNlIHN0
eWxlcyB0byB0aGUgcmlnaHQgZmlsZSBhbmQgbWFrZSB0aGVtIG1vcmUgc3BlY2lmaWMuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanM6CisgICAgICAgIChXSS5DYW52
YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlwZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvUmVjb3JkaW5nLmpzOgorICAgICAgICAoV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9y
UmVjb3JkaW5nVHlwZSk6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogZml4IGxvY2FsaXplZCBz
dHJpbmdzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50
Vmlldy5jc3M6CisgICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBz
ZWxlY3RvcnMgc2luY2UgdGhlIFJlY29yZGluZyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcuCisgICAgICAgICogTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9UZXN0Lmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanM6Cisg
ICAgICAgIChXSS5sb2FkZWQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3RI
YXJuZXNzLmpzOgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdEVtcHR5KTog
QWRkZWQuCisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuZXhwZWN0Tm90RW1wdHkpOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0YXRpb25NZXNzYWdl
Rm9ybWF0KToKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0ZWRWYWx1ZUZv
cm1hdCk6CisgICAgICAgIEFkZCB1dGlsaXR5IGZ1bmN0aW9uIGZvciBjaGVja2luZyB3aGV0aGVy
IHRoZSBnaXZlbiB2YWx1ZSBpcyBlbXB0eToKKyAgICAgICAgIC0gQXJyYXkgYGxlbmd0aCA9PT0g
MGAKKyAgICAgICAgIC0gU3RyaW5nIGBsZW5ndGggPT09IDBgCisgICAgICAgICAtIFNldCBgc2l6
ZSA9PT0gMGAKKyAgICAgICAgIC0gTWFwIGBzaXplID09PSAwYAorICAgICAgICAgLSBPYmplY3Qg
YGlzRW1wdHlPYmplY3RgCisgICAgICAgIEFueSBvdGhlciB0eXBlIHdpbGwgYXV0b21hdGljYWxs
eSBmYWlsLCBhcyBub24tb2JqZWN0cyBjYW4ndCBiZSAiZW1wdHkiIChlLmcuIGA0MmApLgorCiAy
MDIwLTAxLTIxICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggdHZPUyB2YWx1ZXMgaW4gU1VQUE9SVEVEX1BMQVRGT1JNUwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KaW5kZXgg
YmVhZjhkZTI4YWM3NTNlMzdlZjJiZTg5YzAxZmNiMGJkNTNkYWZiYi4uMjJlZTg4MjQ3OTk5Y2Q1
ODI1YTVlYTMxNjc3ZWY2YjQ3NGM2ODE0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCkBAIC0xNCw2ICsxNCw1
MSBAQAogICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICJlbnVtIjog
WyJyZWFkeSIsICJkZWxheWVkIiwgImFjdGl2ZSIsICJjYW5jZWxlZCIsICJkb25lIl0KICAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIlBsYXliYWNrRGlyZWN0aW9uIiwK
KyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9y
bWFsIiwgInJldmVyc2UiLCAiYWx0ZXJuYXRlIiwgImFsdGVybmF0ZS1yZXZlcnNlIl0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkZpbGxNb2RlIiwKKyAgICAgICAg
ICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9uZSIsICJmb3J3
YXJkcyIsICJiYWNrd2FyZHMiLCAiYm90aCIsICJhdXRvIl0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImlkIjogIkFuaW1hdGlvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJv
YmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY3NzQW5pbWF0aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9uZGlu
ZyBgYW5pbWF0aW9uLW5hbWVgIENTUyBwcm9wZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBp
ZiBgdHJhbnNpdGlvblByb3BlcnR5YCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNzc1RyYW5zaXRpb25Qcm9wZXJ0eSIsICJ0eXBlIjogInN0cmluZyIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9u
ZGluZyBgdHJhbnNpdGlvbi1wcm9wZXJ0eWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHBy
b3ZpZGVkIGlmIGBhbmltYXRpb25OYW1lYCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJvcHRpb25hbCI6
IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJhY2t0cmFjZSIsICJ0eXBlIjog
ImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDb25zb2xlLkNhbGxGcmFtZSIgfSwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkJhY2t0cmFjZSB0aGF0IHdhcyBjYXB0dXJlZCB3
aGVuIHRoaXMgYFdlYkFuaW1hdGlvbmAgd2FzIGNyZWF0ZWQuIiB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJFZmZlY3QiLAorICAgICAg
ICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnREZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJv
cHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZERlbGF5Iiwg
InR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaXRlcmF0aW9uQ291bnQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gdGhlIGFuaW1hdGlv
bi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25TdGFydCIsICJ0eXBl
IjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJbmRleCBvZiB3
aGljaCBpdGVyYXRpb24gdG8gc3RhcnQgYXQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaXRlcmF0aW9uRHVyYXRpb24iLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiVG90YWwgdGltZSBvZiBlYWNoIGl0ZXJhdGlvbiwgbWVhc3VyZWQg
aW4gbWlsbGlzZWNvbmRzLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWluZ0Z1
bmN0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNTUyB0aW1pbmcgZnVuY3Rpb24gb2YgdGhlIG92ZXJhbGwgYW5pbWF0aW9uLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInBsYXliYWNrRGlyZWN0aW9uIiwgIiRyZWYiOiAiUGxh
eWJhY2tEaXJlY3Rpb24iLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJmaWxsTW9kZSIsICIkcmVmIjogIkZpbGxNb2RlIiwgIm9wdGlvbmFsIjogdHJ1ZSB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAia2V5ZnJhbWVzIiwgInR5cGUiOiAiYXJyYXki
LCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWZyYW1lIiB9LCAib3B0aW9uYWwiOiB0cnVlIH0KKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIktl
eWZyYW1lIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjog
Im51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWNpbWFsIHBlcmNlbnRhZ2UgWzAsMV0gcmVwcmVz
ZW50aW5nIHdoZXJlIHRoaXMga2V5ZnJhbWUgaXMgaW4gdGhlIGVudGlyZSBkdXJhdGlvbiBvZiB0
aGUgYW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVhc2luZyIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1MgdGlt
aW5nIGZ1bmN0aW9uIGZvciBob3cgdGhlIGBzdHlsZWAgaXMgYXBwbGllZC4iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzdHlsZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1Mgc3R5bGUgZGVjbGFyYXRpb24gb2YgdGhlIENTUyBw
cm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSBhbmltYXRlZC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlkIjogIlRyYWNraW5nVXBkYXRlIiwKICAg
ICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCkBAIC0yNyw2ICs3MiwzNSBAQAogICAgICAgICB9
CiAgICAgXSwKICAgICAiY29tbWFuZHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1l
IjogImVuYWJsZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBDYW52YXMg
ZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1l
IjogImRpc2FibGUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIENhbnZh
cyBkb21haW4gZXZlbnRzLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAicmVxdWVzdEVmZmVjdFRhcmdldCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
R2V0cyB0aGUgYERPTS5Ob2RlSWRgIGZvciB0aGUgdGFyZ2V0IG9mIHRoZSBlZmZlY3Qgb2YgdGhl
IGFuaW1hdGlvbiB3aXRoIHRoZSBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwg
IiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0
dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRP
TS5Ob2RlSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAicmVzb2x2ZUFuaW1hdGlvbiIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiUmVzb2x2ZXMgSmF2YVNjcmlwdCBgV2ViQW5pbWF0aW9uYCBvYmplY3QgZm9yIGdpdmVu
IGBBbmltYXRpb25JZGAuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUg
dGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9CisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJvYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJzdGFydFRy
YWNraW5nIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdGFydCB0cmFja2luZyBhbmlt
YXRpb25zLiBUaGlzIHdpbGwgcHJvZHVjZSBhIGB0cmFja2luZ1N0YXJ0YCBldmVudC4iCkBAIC0z
Nyw2ICsxMTEsMzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uQ3JlYXRlZCIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciBhIGBXZWJBbmltYXRpb25gIGlz
IGNyZWF0ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYW5pbWF0aW9uIiwgIiRyZWYiOiAiQW5pbWF0aW9uIiB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVmZmVjdENo
YW5nZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIg
dGhlIGVmZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55IHdheS4iLAorICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmlt
YXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRoaXMgaXMgb21pdHRlZCB3aGVuIHRoZSBlZmZlY3QgaXMgcmVtb3ZlZCB3aXRo
b3V0IGEgcmVwbGFjZW1lbnQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogInRhcmdldENoYW5nZWQiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIHRhcmdldCBvZiBhbnkgZWZmZWN0
IG9mIGFueSBhbmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIsCisgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwg
IiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uRGVzdHJveWVkIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1hdGlvbmAg
aXMgZGVzdHJveWVkLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAi
dHJhY2tpbmdTdGFydCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCBh
ZnRlciBgc3RhcnRUcmFja2luZ2AgY29tbWFuZC4iLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
Q1NTQW5pbWF0aW9uLmNwcAppbmRleCA3YzcyZjYyNGMzMzBhZjk2YmE3MGI3YWU0ZTkyYjUwMWNh
MTAxMDdlLi5mZDNlYjlkYmRlOWJjMWFiMGI5N2YwYTA3MWUwMGU4MGZiODEzMTJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
Ikluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzksNiArNDAsOSBAQCBSZWY8
Q1NTQW5pbWF0aW9uPiBDU1NBbmltYXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25pbmdFbGVtZW50
LCBjb25zdCBBbmltYXRpb24mCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENT
U0FuaW1hdGlvbihvd25pbmdFbGVtZW50LCBiYWNraW5nQW5pbWF0aW9uLCBuZXdTdHlsZSkpOwog
ICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOworCisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsK
KwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NU
cmFuc2l0aW9uLmNwcAppbmRleCBkZmY1ZmIxZjc5YTg5YzU2NjBhNDljMWIzNjQzZGQwN2Q4MjQz
MjcxLi5hYWFlNWUyZDBjNjE3MjBjZDEwOGRkNmRjZTU5NTE5Y2EwYWMzZTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC00MCw2ICs0MSw5IEBAIFJl
ZjxDU1NUcmFuc2l0aW9uPiBDU1NUcmFuc2l0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3duaW5nRWxl
bWVudCwgQ1NTUHJvcGVydHlJRCBwCiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENT
U1RyYW5zaXRpb24ob3duaW5nRWxlbWVudCwgcHJvcGVydHksIGdlbmVyYXRpb25UaW1lLCBiYWNr
aW5nQW5pbWF0aW9uLCBuZXdTdHlsZSwgcmV2ZXJzaW5nQWRqdXN0ZWRTdGFydFN0eWxlLCByZXZl
cnNpbmdTaG9ydGVuaW5nRmFjdG9yKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxl
LCBuZXdTdHlsZSk7CiAgICAgcmVzdWx0LT5zZXRUaW1pbmdQcm9wZXJ0aWVzKGRlbGF5LCBkdXJh
dGlvbik7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggMmI0ZDg2ZDhjYzI1OWVj
MWRkNTRhMjk1OTY2ZWYzOTljZjlmOTE5ZC4uM2FmNWQzN2NlNGU4YzdlOWQ1MmRiODA5YjM3MWNk
YzM0OWRmOGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
Y3BwCkBAIC0xMTAyLDcgKzExMDIsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjppbnZhbGlkYXRl
KCkKIAogdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKCkK
IHsKLSAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gaGFzQmxlbmRpbmdLZXlmcmFtZXMoKTsK
KyAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gISFtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUo
KTsKICAgICBmb3IgKGF1dG8gY3NzUHJvcGVydHlJZCA6IG1fYmxlbmRpbmdLZXlmcmFtZXMucHJv
cGVydGllcygpKSB7CiAgICAgICAgIGlmICghQ1NTUHJvcGVydHlBbmltYXRpb246OmFuaW1hdGlv
bk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKGNzc1Byb3BlcnR5SWQpKSB7CiAgICAgICAgICAgICBt
X3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5oCmluZGV4IDg1NjA5ODEyNjAzYmY3MzAwNTg1NTNmZmNhMzAwMTE3YmY3
YmZkOWQuLmQ1OWUyODk1ZTBjMzk3ZTNjOTQ5NDYzMjhjOTg4MGNjODkyNmVlYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC05OCw2ICs5OCw4IEBAIHB1
YmxpYzoKICAgICAgICAgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvIGNvbXBvc2l0ZSB7IENvbXBv
c2l0ZU9wZXJhdGlvbk9yQXV0bzo6QXV0byB9OwogICAgIH07CiAKKyAgICBjb25zdCBWZWN0b3I8
UGFyc2VkS2V5ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX3BhcnNl
ZEtleWZyYW1lczsgfQorCiAgICAgRWxlbWVudCogdGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90
YXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFRhcmdldChSZWZQdHI8RWxlbWVudD4mJik7CiAK
QEAgLTEzNSw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb2xvckZpbHRlckZ1bmN0aW9u
TGlzdHNNYXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29sb3JGaWx0ZXJGdW5jdGlv
bkxpc3RzTWF0Y2g7IH0KIAogICAgIHZvaWQgY29tcHV0ZURlY2xhcmF0aXZlQW5pbWF0aW9uQmxl
bmRpbmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSYgbmV3U3R5bGUpOwotICAgIGJvb2wgaGFzQmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7
IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgfQorICAgIGNvbnN0IEtleWZyYW1l
TGlzdCYgYmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJh
bWVzOyB9CiAgICAgY29uc3QgSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgYW5pbWF0ZWRQcm9wZXJ0
aWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCk7IH0K
IAogICAgIGJvb2wgY29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uKExheW91dFJlY3Qm
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXgg
M2I4NzkwYWEzZDllZDI2NWQxNzZkZmM3YTFiNWY0NDg2NTI3M2I3Ny4uNTRlZTlkZjE3MTRlZGIz
MjYzZjc2OGU5MWRjNDYwODk2NGRlNTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTUzLDExICs1NSwzMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChXZWJBbmltYXRpb24pOwogCitIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBXZWJB
bmltYXRpb246Omluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaFNldDxXZWJBbmltYXRpb24qPj4gaW5zdGFuY2VzOworICAgIHJldHVy
biBpbnN0YW5jZXM7Cit9CisKK0xvY2smIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKQor
eworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CisgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVNdXRleDsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0
aWFsaXplTXV0ZXgsIFtdIHsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CisgICAgfSk7Cisg
ICAgcmV0dXJuIG11dGV4LmdldCgpOworfQorCiBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRp
b246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0KQog
ewogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQp
KTsKICAgICByZXN1bHQtPnNldEVmZmVjdChlZmZlY3QpOwogICAgIHJlc3VsdC0+c2V0VGltZWxp
bmUoJmRvY3VtZW50LnRpbWVsaW5lKCkpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKQEAgLTY3LDYgKzg4LDkgQEAgUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9u
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmUKICAgICBy
ZXN1bHQtPnNldEVmZmVjdChlZmZlY3QpOwogICAgIGlmICh0aW1lbGluZSkKICAgICAgICAgcmVz
dWx0LT5zZXRUaW1lbGluZSh0aW1lbGluZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIApAQCAtNzcsNiArMTAxLDkgQEAgV2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24o
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlz
KTsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKKworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5j
ZXNNdXRleCgpKTsKKyAgICBpbnN0YW5jZXMobG9jaykuYWRkKHRoaXMpOwogfQogCiBXZWJBbmlt
YXRpb246On5XZWJBbmltYXRpb24oKQpAQCAtODUsNiArMTEyLDEwIEBAIFdlYkFuaW1hdGlvbjo6
fldlYkFuaW1hdGlvbigpCiAKICAgICBpZiAobV90aW1lbGluZSkKICAgICAgICAgbV90aW1lbGlu
ZS0+Zm9yZ2V0QW5pbWF0aW9uKHRoaXMpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNl
c011dGV4KCkpOworICAgIEFTU0VSVChpbnN0YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOwor
ICAgIGluc3RhbmNlcyhsb2NrKS5yZW1vdmUodGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9u
Ojpjb250ZXh0RGVzdHJveWVkKCkKQEAgLTExNiw2ICsxNDcsOCBAQCB2b2lkIFdlYkFuaW1hdGlv
bjo6dW5zdXNwZW5kRWZmZWN0SW52YWxpZGF0aW9uKCkKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZl
Y3RUaW1pbmdEaWRDaGFuZ2UoKQogewogICAgIHRpbWluZ0RpZENoYW5nZShEaWRTZWVrOjpObywg
U3luY2hyb25vdXNseU5vdGlmeTo6WWVzKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKCp0aGlzKTsKIH0KIAogdm9pZCBX
ZWJBbmltYXRpb246OnNldEVmZmVjdChSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVj
dCkKQEAgLTE5MCw3ICsyMjMsNyBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJu
YWwoUmVmUHRyPEFuaW1hdGlvbkVmZmVjdD4mJiBuZXdFZmZlY3QsIGJvb2wgZAogICAgICAgICAg
ICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJn
ZXQpOwogICAgIH0KIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0KCp0aGlzKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdCgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpz
ZXRUaW1lbGluZShSZWZQdHI8QW5pbWF0aW9uVGltZWxpbmU+JiYgdGltZWxpbmUpCkBAIC0yNDks
MTQgKzI4MiwxNSBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmVJbnRlcm5hbChSZWZQ
dHI8QW5pbWF0aW9uVGltZWxpbmU+JiYgdGltZWxpbmUpCiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpl
ZmZlY3RUYXJnZXREaWRDaGFuZ2UoRWxlbWVudCogcHJldmlvdXNUYXJnZXQsIEVsZW1lbnQqIG5l
d1RhcmdldCkKIHsKLSAgICBpZiAoIW1fdGltZWxpbmUpCi0gICAgICAgIHJldHVybjsKKyAgICBp
ZiAobV90aW1lbGluZSkgeworICAgICAgICBpZiAocHJldmlvdXNUYXJnZXQpCisgICAgICAgICAg
ICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMsICpwcmV2
aW91c1RhcmdldCk7CiAKLSAgICBpZiAocHJldmlvdXNUYXJnZXQpCi0gICAgICAgIG1fdGltZWxp
bmUtPmFuaW1hdGlvbldhc1JlbW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0
KTsKKyAgICAgICAgaWYgKG5ld1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1h
dGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKKyAgICB9CiAKLSAgICBp
ZiAobmV3VGFyZ2V0KQotICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxl
bWVudCgqdGhpcywgKm5ld1RhcmdldCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoKnRoaXMpOwogfQogCiBPcHRpb25hbDxk
b3VibGU+IFdlYkFuaW1hdGlvbjo6c3RhcnRUaW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uaAppbmRleCBkYTRkOGVjM2JjMmU1NzBiNDhhNTFkYmMxNGEzNDRl
NmM0OWJhMDcwLi5jOTk2MTNiMjY2MWQ3NjVmMGVlM2I4NmQ2MTRmOWNkMmI3ZGMyM2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUg
IldlYkFuaW1hdGlvblV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL01hcmthYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgpAQCAtNTQsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxXZWJBbmltYXRpb24+IGNyZWF0ZShEb2N1bWVudCYsIEFuaW1hdGlvbkVmZmVjdCosIEFu
aW1hdGlvblRpbWVsaW5lKik7CiAgICAgfldlYkFuaW1hdGlvbigpOwogCisgICAgc3RhdGljIEhh
c2hTZXQ8V2ViQW5pbWF0aW9uKj4mIGluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAg
c3RhdGljIExvY2smIGluc3RhbmNlc011dGV4KCk7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNEZWNs
YXJhdGl2ZUFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzQ1NTQW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNDU1NUcmFuc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
aW5kZXggNGYxOGI1OGM2Y2QwMWUwYjY5YTg5NTNhZDA5YTczOWMzNTIwNDk2YS4uZDEzMDk4OTFk
YzZiMjNiMmIyN2U1YzI1YzBlOTY0NDUyYTczOThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTcyMyw2ICs3
MjMsOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudAogICAgIGlmIChJbnNwZWN0b3JDYW52YXNB
Z2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0Fn
ZW50KCkpCiAgICAgICAgIGNhbnZhc0FnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAKKyAg
ICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZnJhbWVO
YXZpZ2F0ZWQoZnJhbWUpOworCiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdl
bnQtPmRpZENvbW1pdExvYWQoZnJhbWUuZG9jdW1lbnQoKSk7CiAKQEAgLTExMzMsMTUgKzExMzYs
MzcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZm
ZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJgogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2ls
bEFwcGx5S2V5ZnJhbWVFZmZlY3QodGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0
V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0
aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoKSkKLSAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdChhbmltYXRpb24pOworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFu
aW1hdGlvbkFnZW50LT5kaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBl
bHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tp
bmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlk
U2V0V2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFn
ZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVj
dFRhcmdldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAg
ICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChh
bmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
KQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKGFuaW1hdGlv
bik7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFu
aW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCiB7Ci0gICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisg
ICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxE
ZXN0cm95V2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0
aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoKSkKICAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9u
KGFuaW1hdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBlNzgxODM2NDBhMjk5YWU0MTA3Mjg1ZWY0YzI4
YWM4MWQ5NDBhMWQwLi5iMjQ2ZWFhNTU5YTc1MjY1Yzg5MGRmYTQ3ZDAxZDMxMWMxODZhNDAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0zMDUsNyArMzA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgc3RhdGlj
IHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0Jiwg
Q29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmlt
YXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0
aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGlj
IHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0
aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UmKTsKQEAgLTUwNSw3ICs1MDgsMTAgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZl
Y3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBD
b21wdXRlZEVmZmVjdFRpbWluZyk7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAg
c3RhdGljIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0VGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7
CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlk
Q3JlYXRlV2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9u
Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJl
ZURpZENoYW5nZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYpOwpAQCAtMTQ2NiwxMSArMTQ3Miwz
MiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZy
YW1lRWZmZWN0KEVsZW1lbnQmIHRhcmdldCwgSwogICAgICAgICB3aWxsQXBwbHlLZXlmcmFtZUVm
ZmVjdEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRp
bWluZyk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoraW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7CiAgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
LSAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0Fn
ZW50cywgYW5pbWF0aW9uKTsKKyAgICAgICAgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgq
aW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
KyAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9u
JiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAg
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50
cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24u
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViQW5pbWF0aW9u
SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKIH0KIAogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmlt
YXRpb24mIGFuaW1hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmNwcAppbmRleCAxZjlhMGQ3YzUzMmEzZjkwODU2YzE4NGExZmZjM2IxY2Yz
NWVmYzg3Li5kN2EyZjcxOTU4ZDk0M2NjY2FjNDM0ZWFjOTNlMzNkYWUyN2NjNDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC03
MCw2ICs3MCw3IEBAIHZvaWQgSW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1fcGFn
ZURPTURlYnVnZ2VyQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQg
PSBudWxscHRyOwogICAgIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVs
bHB0cjsKKyAgICBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiAg
ICAgbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggZjZm
ZWE3ZGEyMTM2MGRkMDhjYzNkOTY2YjE0ZTJhYWM0NjU0NDkxNS4uZjU5YzNkYmRjYWY3OGNmOWM2
ZDhkYmI0MzJkY2NmMjJmMTVkNTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zdHJ1bWVudGluZ0FnZW50cy5oCkBAIC0xNTYsNiArMTU2LDkgQEAgcHVibGljOgogICAgIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KiBwZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQo
KSBjb25zdCB7IHJldHVybiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQog
ICAgIHZvaWQgc2V0UGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCA9IGFnZW50OyB9CiAKKyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogZW5hYmxlZEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ7IH0KKyAgICB2b2lkIHNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV9lbmFibGVkSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQgPSBhZ2VudDsgfQorCiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHRy
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNraW5n
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KICAgICB2b2lkIHNldFRyYWNraW5nSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fdHJhY2tp
bmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAKQEAgLTE5MCw2ICsxOTMsNyBA
QCBwcml2YXRlOgogICAgIFBhZ2VET01EZWJ1Z2dlckFnZW50KiBtX3BhZ2VET01EZWJ1Z2dlckFn
ZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckNhbnZhc0FnZW50KiBtX2luc3BlY3RvckNh
bnZhc0FnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3Bl
cnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKKyAgICBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCogbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxs
cHRyIH07CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fdHJhY2tpbmdJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKaW5k
ZXggZGU5YTJjNTliZGFiYzI5MDg5NmM5NjM5Y2VhYmI0ZTJjNDczYjgyOS4uMGM3NDRmMjQ3N2Fi
MjE0ZTA1MTAyMzliOTQ0ZDU0ZmM2YWMyMjFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKQEAg
LTI5LDI5ICsyOSwxODcgQEAKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3QuaCIKICNpbmNsdWRl
ICJBbmltYXRpb25FZmZlY3RQaGFzZS5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbi5oIgorI2lu
Y2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NUcmFuc2l0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFs
dWUuaCIKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkZpbGxNb2RlLmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIklu
c3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJKU1dlYkFuaW1hdGlvbi5oIgogI2luY2x1
ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiS2V5ZnJhbWVMaXN0LmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXliYWNrRGlyZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVu
ZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRpbWluZ0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
QW5pbWF0aW9uLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBJbnNwZWN0b3I7CiAKK3N0YXRpYyBPcHRpb25hbDxkb3VibGU+IHByb3RvY29sVmFs
dWVGb3JTZWNvbmRzKGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCit7CisgICAgaWYgKHNlY29uZHMg
PT0gU2Vjb25kczo6aW5maW5pdHkoKSB8fCBzZWNvbmRzID09IFNlY29uZHM6Om5hbigpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBzZWNvbmRzLm1pbGxpc2Vjb25k
cygpOworfQorCitzdGF0aWMgT3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpQbGF5YmFja0RpcmVjdGlvbj4gcHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKFBs
YXliYWNrRGlyZWN0aW9uIHBsYXliYWNrRGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAocGxheWJh
Y2tEaXJlY3Rpb24pIHsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWw6CisgICAg
ICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0
aW9uOjpOb3JtYWw7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZToKKyAgICAg
ICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rp
b246OlJldmVyc2U7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOgorICAg
ICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVj
dGlvbjo6QWx0ZXJuYXRlOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZVJl
dmVyc2U6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBs
YXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3N0YXRpYyBPcHRp
b25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlPiBwcm90b2NvbFZh
bHVlRm9yRmlsbE1vZGUoRmlsbE1vZGUgZmlsbE1vZGUpCit7CisgICAgc3dpdGNoIChmaWxsTW9k
ZSkgeworICAgIGNhc2UgRmlsbE1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6
OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpOb25lOworICAgIGNhc2UgRmlsbE1vZGU6
OkZvcndhcmRzOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpGaWxsTW9kZTo6Rm9yd2FyZHM7CisgICAgY2FzZSBGaWxsTW9kZTo6QmFja3dhcmRzOgorICAg
ICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6QmFj
a3dhcmRzOworICAgIGNhc2UgRmlsbE1vZGU6OkJvdGg6CisgICAgICAgIHJldHVybiBJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCb3RoOworICAgIGNhc2UgRmlsbE1v
ZGU6OkF1dG86CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OkZpbGxNb2RlOjpBdXRvOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3N0YXRpYyBSZWY8SlNPTjo6QXJyYXlPZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lPj4gYnVpbGRPYmplY3RGb3JLZXlm
cmFtZXMoS2V5ZnJhbWVFZmZlY3QmIGtleWZyYW1lRWZmZWN0KQoreworICAgIGF1dG8ga2V5ZnJh
bWVzUGF5bG9hZCA9IEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpLZXlmcmFtZT46OmNyZWF0ZSgpOworCisgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9u
PihrZXlmcmFtZUVmZmVjdC5hbmltYXRpb24oKSkpIHsKKyAgICAgICAgQVNTRVJUKGtleWZyYW1l
RWZmZWN0LnRhcmdldCgpKTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBrZXlmcmFtZUVmZmVj
dC50YXJnZXQoKS0+cmVuZGVyZXIoKTsKKworICAgICAgICAvLyBTeW50aGVzaXplIENTUyBzdHls
ZSBkZWNsYXJhdGlvbnMgZm9yIGVhY2gga2V5ZnJhbWUgc28gdGhlIGZyb250ZW5kIGNhbiBkaXNw
bGF5IHRoZW0uCisgICAgICAgIENvbXB1dGVkU3R5bGVFeHRyYWN0b3IgY29tcHV0ZWRTdHlsZUV4
dHJhY3RvcihrZXlmcmFtZUVmZmVjdC50YXJnZXQoKSk7CisKKyAgICAgICAgYXV0byYgYmxlbmRp
bmdLZXlmcmFtZXMgPSBrZXlmcmFtZUVmZmVjdC5ibGVuZGluZ0tleWZyYW1lcygpOworICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgKytpKSB7
CisgICAgICAgICAgICBhdXRvJiBibGVuZGluZ0tleWZyYW1lID0gYmxlbmRpbmdLZXlmcmFtZXNb
aV07CisKKyAgICAgICAgICAgIEFTU0VSVChibGVuZGluZ0tleWZyYW1lLnN0eWxlKCkpOworICAg
ICAgICAgICAgYXV0byYgc3R5bGUgPSAqYmxlbmRpbmdLZXlmcmFtZS5zdHlsZSgpOworCisgICAg
ICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1h
dGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgLnNldE9mZnNldChibGVu
ZGluZ0tleWZyYW1lLmtleSgpKQorICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAg
ICAgICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IGJsZW5kaW5nS2V5ZnJhbWUudGltaW5n
RnVuY3Rpb24oKSkKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyh0
aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBz
dHlsZVBheWxvYWRCdWlsZGVyOworICAgICAgICAgICAgYXV0byYgY3NzUHJvcGVydHlJZHMgPSBi
bGVuZGluZ0tleWZyYW1lLnByb3BlcnRpZXMoKTsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9
IGNzc1Byb3BlcnR5SWRzLnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0
eUlkIDogY3NzUHJvcGVydHlJZHMpIHsKKyAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAg
ICAgICAgICAgIGlmIChjc3NQcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q3VzdG9tKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1
aWxkZXIuYXBwZW5kKGdldFByb3BlcnR5TmFtZVN0cmluZyhjc3NQcm9wZXJ0eUlkKSk7CisgICAg
ICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoIjogIik7CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gdmFsdWUgPSBjb21wdXRlZFN0eWxlRXh0cmFjdG9yLnZhbHVlRm9yUHJv
cGVydHlJblN0eWxlKHN0eWxlLCBjc3NQcm9wZXJ0eUlkLCByZW5kZXJlcikpCisgICAgICAgICAg
ICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKHZhbHVlLT5jc3NUZXh0KCkpOwor
ICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAg
ICAgICAgICAgaWYgKGNvdW50ID4gMCkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2Fk
QnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3R5
bGVQYXlsb2FkQnVpbGRlci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXls
b2FkLT5zZXRTdHlsZShzdHlsZVBheWxvYWRCdWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgICAg
ICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhcnNl
ZEtleWZyYW1lIDoga2V5ZnJhbWVFZmZlY3QucGFyc2VkS2V5ZnJhbWVzKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8ga2V5ZnJhbWVQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpLZXlmcmFtZTo6Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAuc2V0T2Zmc2V0KHBhcnNlZEtl
eWZyYW1lLmNvbXB1dGVkT2Zmc2V0KQorICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAg
ICAgICAgICAgIGlmICghcGFyc2VkS2V5ZnJhbWUuZWFzaW5nLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyhwYXJzZWRLZXlmcmFtZS5lYXNpbmcp
OworCisgICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZyYW1lLnN0eWxlLT5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRTdHlsZShwYXJzZWRLZXlmcmFtZS5z
dHlsZS0+YXNUZXh0KCkpOworCisgICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVt
KFdURk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1
cm4ga2V5ZnJhbWVzUGF5bG9hZDsKK30KKworc3RhdGljIFJlZjxJbnNwZWN0b3I6OlByb3RvY29s
OjpBbmltYXRpb246OkVmZmVjdD4gYnVpbGRPYmplY3RGb3JFZmZlY3QoQW5pbWF0aW9uRWZmZWN0
JiBlZmZlY3QpCit7CisgICAgYXV0byBlZmZlY3RQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QW5pbWF0aW9uOjpFZmZlY3Q6OmNyZWF0ZSgpCisgICAgICAgIC5yZWxlYXNlKCk7CisKKyAg
ICBpZiAoYXV0byBzdGFydERlbGF5ID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LmRl
bGF5KCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRTdGFydERlbGF5KHN0YXJ0RGVsYXku
dmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byBlbmREZWxheSA9IHByb3RvY29sVmFsdWVGb3JTZWNv
bmRzKGVmZmVjdC5lbmREZWxheSgpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0RW5kRGVs
YXkoZW5kRGVsYXkudmFsdWUoKSk7CisKKyAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRpb25D
b3VudChlZmZlY3QuaXRlcmF0aW9ucygpKTsKKyAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRp
b25TdGFydChlZmZlY3QuaXRlcmF0aW9uU3RhcnQoKSk7CisKKyAgICBpZiAoYXV0byBpdGVyYXRp
b25EdXJhdGlvbiA9IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGVmZmVjdC5pdGVyYXRpb25EdXJh
dGlvbigpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9uRHVyYXRpb24oaXRl
cmF0aW9uRHVyYXRpb24udmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byogdGltaW5nRnVuY3Rpb24g
PSBlZmZlY3QudGltaW5nRnVuY3Rpb24oKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0VGlt
aW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICBpZiAoYXV0byBw
bGF5YmFja0RpcmVjdGlvbiA9IHByb3RvY29sVmFsdWVGb3JQbGF5YmFja0RpcmVjdGlvbihlZmZl
Y3QuZGlyZWN0aW9uKCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVj
dGlvbihwbGF5YmFja0RpcmVjdGlvbi52YWx1ZSgpKTsKKworICAgIGlmIChhdXRvIGZpbGxNb2Rl
ID0gcHJvdG9jb2xWYWx1ZUZvckZpbGxNb2RlKGVmZmVjdC5maWxsKCkpKQorICAgICAgICBlZmZl
Y3RQYXlsb2FkLT5zZXRGaWxsTW9kZShmaWxsTW9kZS52YWx1ZSgpKTsKKworICAgIGlmIChpczxL
ZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0S2V5ZnJh
bWVzKGJ1aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PihlZmZl
Y3QpKSk7CisKKyAgICByZXR1cm4gZWZmZWN0UGF5bG9hZDsKK30KKwogSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRl
eHQpCiAgICAgOiBJbnNwZWN0b3JBZ2VudEJhc2UoIkFuaW1hdGlvbiJfcywgY29udGV4dCkKICAg
ICAsIG1fZnJvbnRlbmREaXNwYXRjaGVyKG1ha2VVbmlxdWU8SW5zcGVjdG9yOjpBbmltYXRpb25G
cm9udGVuZERpc3BhdGNoZXI+KGNvbnRleHQuZnJvbnRlbmRSb3V0ZXIpKQogICAgICwgbV9iYWNr
ZW5kRGlzcGF0Y2hlcihJbnNwZWN0b3I6OkFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVyOjpjcmVh
dGUoY29udGV4dC5iYWNrZW5kRGlzcGF0Y2hlciwgdGhpcykpCisgICAgLCBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlcihjb250ZXh0LmluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICAsIG1faW5zcGVj
dGVkUGFnZShjb250ZXh0Lmluc3BlY3RlZFBhZ2UpCisgICAgLCBtX2FuaW1hdGlvbkRlc3Ryb3ll
ZFRpbWVyKCp0aGlzLCAmSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3ll
ZFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTY3LDExICsyMjUsMTAzIEBAIHZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RS
ZWFzb24pCiB7CiAgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKICAgICBzdG9wVHJhY2tpbmcoaWdu
b3JlZCk7CisgICAgZGlzYWJsZShpZ25vcmVkKTsKIAogICAgIEFTU0VSVChtX2luc3RydW1lbnRp
bmdBZ2VudHMucGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcyk7CiAg
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldFBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudChudWxscHRyKTsKIH0KIAordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKK3sKKyAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpID09IHRoaXMpIHsKKyAgICAgICAg
ZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGRvbWFpbiBhbHJlYWR5IGVuYWJsZWQiX3M7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0RW5hYmxl
ZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KHRoaXMpOworCisgICAgY29uc3QgYXV0byBleGlzdHNJ
bkN1cnJlbnRQYWdlID0gWyZdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KSB7CisgICAgICAgIGlmICghaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEZJWE1FOiA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY4NDc1PiBXZWIgSW5zcGVjdG9yOiBDb3JyZWN0bHkgZGlz
cGxheSBpZnJhbWUncyBXZWJTb2NrZXRzCisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgICAgICByZXR1cm4gZG9j
dW1lbnQtPnBhZ2UoKSA9PSAmbV9pbnNwZWN0ZWRQYWdlOworICAgIH07CisKKyAgICB7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhXZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KCkpOworICAg
ICAgICBmb3IgKGF1dG8qIGFuaW1hdGlvbiA6IFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKGxvY2sp
KSB7CisgICAgICAgICAgICBpZiAoZXhpc3RzSW5DdXJyZW50UGFnZShhbmltYXRpb24tPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAgYmluZEFuaW1hdGlvbigqYW5p
bWF0aW9uLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQoreworICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0cik7CisKKyAg
ICByZXNldCgpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXF1ZXN0RWZm
ZWN0VGFyZ2V0KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRp
b25JZCwgaW50KiBub2RlSWQpCit7CisgICAgYXV0byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0
aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25JZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvbUFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRz
Lmluc3BlY3RvckRPTUFnZW50KCk7CisgICAgaWYgKCFkb21BZ2VudCkgeworICAgICAgICBlcnJv
clN0cmluZyA9ICJET00gZG9tYWluIG11c3QgYmUgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8qIGVmZmVjdCA9IGFuaW1hdGlvbi0+ZWZmZWN0KCk7CisgICAg
aWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkgeworICAgICAgICBlcnJvclN0cmluZyA9
ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIGRvZXMgbm90IGhhdmUgYW4gZWZmZWN0
Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYga2V5ZnJhbWVFZmZlY3Qg
PSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oKmVmZmVjdCk7CisKKyAgICBhdXRvKiB0YXJnZXQg
PSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKTsKKyAgICBpZiAoIXRhcmdldCkgeworICAgICAgICBl
cnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIGRvZXMgbm90IGhh
dmUgYSB0YXJnZXQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAqbm9kZUlkID0g
ZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIHRhcmdldCk7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc29sdmVBbmltYXRpb24oRXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJp
bmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVt
b3RlT2JqZWN0PiYgcmVzdWx0KQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9IGFzc2VydEFuaW1h
dGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvKiBzdGF0ZSA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5leGVjU3RhdGUoKTsKKyAgICBhdXRvIGluamVjdGVkU2NyaXB0ID0gbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIuaW5qZWN0ZWRTY3JpcHRGb3Ioc3RhdGUpOworICAgIEFTU0VS
VCghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKTsKKworICAgIEpTQzo6SlNWYWx1ZSB2YWx1
ZTsKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soc3RhdGUpOworCisgICAg
ICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5
cGUoc3RhdGUpOworICAgICAgICB2YWx1ZSA9IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgYW5p
bWF0aW9uKTsKKyAgICB9CisKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBlcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogdW5rbm93
biBBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIl9zOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgU3RyaW5nIG9iamVjdEdyb3VwTmFtZSA9IG9iamVjdEdyb3VwID8gKm9iamVj
dEdyb3VwIDogU3RyaW5nKCk7CisgICAgcmVzdWx0ID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVj
dCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsKK30KKwogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6c3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7CiAgICAgaWYg
KG1faW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkg
PT0gdGhpcykgewpAQCAtMTcwLDE2ICs0MjAsMTUxIEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmIHRhcmdldCwgS2V5ZnJhbWVF
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRyYWNraW5nVXBkYXRlKG1fZW52aXJvbm1lbnQu
ZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpLCBXVEZNb3ZlKGV2
ZW50KSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3ZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKIHsKICAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAg
ICAgICAgIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0
aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKTsKKworICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRpbWluZyhhbmltYXRpb24pOworICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRh
cmdldChhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7
CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0
cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmlt
YXRpb25JZChhbmltYXRpb24pOworICAgIGlmIChhbmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24uZWZmZWN0KCkp
CisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklk
LCBidWlsZE9iamVjdEZvckVmZmVjdCgqZWZmZWN0KSk7CisgICAgZWxzZQorICAgICAgICBtX2Zy
b250ZW5kRGlzcGF0Y2hlci0+ZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgbnVsbHB0cik7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1h
dGlvbklkYCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5h
YmxlZC4KKyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7
CisgICAgaWYgKGFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9mcm9udGVuZERpc3BhdGNoZXItPnRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpOworfQorCit2
b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKCFmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9u
KS5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBiaW5kQW5pbWF0aW9uKGFuaW1hdGlvbiwgdHJ1ZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdl
YkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlv
bj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24o
ZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpOworCisgICAgLy8gVGhl
IGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQg
bm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmlt
YXRpb24pOworICAgIGlmICghYW5pbWF0aW9uSWQuaXNFbXB0eSgpKQorICAgICAgICB1bmJpbmRB
bmltYXRpb24oYW5pbWF0aW9uSWQpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjpmcmFtZU5hdmlnYXRlZChGcmFtZSYgZnJhbWUpCit7CisgICAgaWYgKGZyYW1lLmlzTWFpbkZy
YW1lKCkpIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFZlY3RvcjxTdHJpbmc+IGFuaW1hdGlvbklkc1RvUmVtb3ZlOworICAgIGZvciAoYXV0byYgW2Fu
aW1hdGlvbklkLCBhbmltYXRpb25dIDogbV9hbmltYXRpb25JZE1hcCkgeworICAgICAgICBpZiAo
YXV0byogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSB7CisgICAgICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpICYmIGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCku
ZnJhbWUoKSA9PSAmZnJhbWUpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uSWRzVG9SZW1vdmUu
YXBwZW5kKGFuaW1hdGlvbklkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGNvbnN0IGF1
dG8mIGFuaW1hdGlvbklkIDogYW5pbWF0aW9uSWRzVG9SZW1vdmUpCisgICAgICAgIHVuYmluZEFu
aW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6ZmluZEFuaW1hdGlvbklkKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGZvciAo
YXV0byYgW2FuaW1hdGlvbklkLCBleGlzdGluZ0FuaW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFw
KSB7CisgICAgICAgIGlmIChleGlzdGluZ0FuaW1hdGlvbiA9PSAmYW5pbWF0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIGFuaW1hdGlvbklkOworICAgIH0KKyAgICByZXR1cm4gbnVsbFN0cmluZygp
OworfQorCitXZWJBbmltYXRpb24qIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmlt
YXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklk
KQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9IG1fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlv
bklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2lu
ZyBhbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIl9zOworICAgIHJldHVybiBhbmltYXRp
b247Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24oV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24sIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSkKK3sKKyAgICBhdXRv
IGFuaW1hdGlvbklkID0gbWFrZVN0cmluZygiYW5pbWF0aW9uOiIgKyBJZGVudGlmaWVyc0ZhY3Rv
cnk6OmNyZWF0ZUlkZW50aWZpZXIoKSk7CisgICAgbV9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0
aW9uSWQsICZhbmltYXRpb24pOworCisgICAgYXV0byBhbmltYXRpb25QYXlsb2FkID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpBbmltYXRpb246OmNyZWF0ZSgpCisgICAgICAgIC5z
ZXRBbmltYXRpb25JZChhbmltYXRpb25JZCkKKyAgICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlm
IChpczxDU1NBbmltYXRpb24+KGFuaW1hdGlvbikpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQt
PnNldENzc0FuaW1hdGlvbk5hbWUoZG93bmNhc3Q8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24pLmFu
aW1hdGlvbk5hbWUoKSk7CisgICAgZWxzZSBpZiAoaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9u
KSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0Q3NzVHJhbnNpdGlvblByb3BlcnR5KGRv
d25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbikudHJhbnNpdGlvblByb3BlcnR5KCkpOwor
CisgICAgaWYgKGF1dG8qIGVmZmVjdCA9IGFuaW1hdGlvbi5lZmZlY3QoKSkKKyAgICAgICAgYW5p
bWF0aW9uUGF5bG9hZC0+c2V0RWZmZWN0KGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KCplZmZlY3QpKTsK
KworICAgIGlmIChjYXB0dXJlQmFja3RyYWNlKSB7CisgICAgICAgIGF1dG8gc3RhY2tUcmFjZSA9
IEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTRXhlY1N0YXRlOjpjdXJyZW50U3Rh
dGUoKSwgSW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1
cmUpOworICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRCYWNrdHJhY2Uoc3RhY2tUcmFjZS0+
YnVpbGRJbnNwZWN0b3JBcnJheSgpKTsKKyAgICB9CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ci0+YW5pbWF0aW9uQ3JlYXRlZChXVEZNb3ZlKGFuaW1hdGlvblBheWxvYWQpKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYg
YW5pbWF0aW9uSWQpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5yZW1vdmUoYW5pbWF0aW9uSWQp
OworCisgICAgLy8gVGhpcyBjYW4gYmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIEdDLiBEdWUgdG8g
dGhlIHNpbmdsZS1wcm9jZXNzIG1vZGVsIHVzZWQgaW4gV2ViS2l0MSwgdGhlCisgICAgLy8gZXZl
bnQgbXVzdCBiZSBkaXNwYXRjaGVkIGZyb20gYSB0aW1lciB0byBwcmV2ZW50IHRoZSBmcm9udGVu
ZCBmcm9tIG1ha2luZyBKUyBhbGxvY2F0aW9ucworICAgIC8vIHdoaWxlIHRoZSBHQyBpcyBzdGls
bCBhY3RpdmUuCisgICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmFwcGVuZChhbmltYXRpb25JZCk7
CisKKyAgICBpZiAoIW1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgp
Cit7CisgICAgaWYgKCFtX3JlbW92ZWRBbmltYXRpb25JZHMuc2l6ZSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBmb3IgKGF1dG8mIGlkZW50aWZpZXIgOiBtX3JlbW92ZWRBbmltYXRpb25JZHMp
CisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25EZXN0cm95ZWQoaWRlbnRp
Zmllcik7CisKKyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuY2xlYXIoKTsKK30KKwordm9pZCBJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzZXQoKQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAu
Y2xlYXIoKTsKKworICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5jbGVhcigpOworCisgICAgaWYg
KG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRp
b25EZXN0cm95ZWRUaW1lci5zdG9wKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OnN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZlQW5pbWF0aW9u
JiBhbmltYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKaW5kZXggN2EyNGJiY2JiMWIzMzFkMTkwZGE2
MGMwMGQyMWJkOTM1NDhmYWIwMC4uZDI2NmQ3ZWYyMWU0MmQ4NDFkZjZjMGQzODA3M2RkZWMyOWNh
ZDkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBbmltYXRpb25BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaApAQCAtMjcsMTYgKzI3LDIxIEBACiAKICNpbmNsdWRl
ICJDb21wdXRlZEVmZmVjdFRpbWluZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50QmFz
ZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVj
dG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3Bl
Y3RvclByb3RvY29sT2JqZWN0cy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQW5pbWF0aW9uRWZmZWN0OwogY2xhc3MgRGVjbGFyYXRp
dmVBbmltYXRpb247CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZlbnQ7CitjbGFzcyBGcmFtZTsK
IGNsYXNzIEtleWZyYW1lRWZmZWN0OworY2xhc3MgUGFnZTsKIGNsYXNzIFdlYkFuaW1hdGlvbjsK
IAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CkBAIC01MywyMCArNTgsNDIgQEAgcHVibGlj
OgogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIEFuaW1hdGlvbkJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0RWZm
ZWN0VGFyZ2V0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBu
b2RlSWQpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzb2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxl
bWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHZvaWQg
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlk
U2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlk
Q3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lX
ZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBmcmFtZU5hdmlnYXRlZChGcmFt
ZSYpOwogCiBwcml2YXRlOgorICAgIFN0cmluZyBmaW5kQW5pbWF0aW9uSWQoV2ViQW5pbWF0aW9u
Jik7CisgICAgV2ViQW5pbWF0aW9uKiBhc3NlcnRBbmltYXRpb24oRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbklkKTsKKyAgICB2b2lkIGJpbmRBbmltYXRpb24oV2ViQW5pbWF0
aW9uJiwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKTsKKyAgICB2b2lkIHVuYmluZEFuaW1hdGlvbihj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKTsKKyAgICB2b2lkIGFuaW1hdGlvbkRlc3Ryb3llZFRp
bWVyRmlyZWQoKTsKKyAgICB2b2lkIHJlc2V0KCk7CisKICAgICB2b2lkIHN0b3BUcmFja2luZ0Rl
Y2xhcmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZlQW5pbWF0aW9uJik7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SW5zcGVjdG9yOjpBbmltYXRpb25Gcm9udGVuZERpc3BhdGNoZXI+IG1fZnJvbnRl
bmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OkFuaW1hdGlvbkJhY2tlbmREaXNw
YXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogCisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNj
cmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOworICAgIFBhZ2UmIG1faW5zcGVj
dGVkUGFnZTsKKworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJBbmltYXRpb24qPiBtX2FuaW1hdGlv
bklkTWFwOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZEFuaW1hdGlvbklkczsKKyAgICBU
aW1lciBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyOworCiAgICAgc3RydWN0IFRyYWNrZWREZWNs
YXJhdGl2ZUFuaW1hdGlvbkRhdGEgewogICAgICAgICBTdHJpbmcgdHJhY2tpbmdBbmltYXRpb25J
ZDsKICAgICAgICAgQ29tcHV0ZWRFZmZlY3RUaW1pbmcgbGFzdENvbXB1dGVkVGltaW5nOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50
LmNwcAppbmRleCBhZWNjNzliYzBjYTU2ZmI2NWZlMDMzMGYwOGU0ZWU2ODhiZjgxZTg5Li4wZjQ2
YTMwMzNhZWY0MDA3ZjZlYjgzN2E2MTA1ZjA1YTBjNTkwNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTY2
LDcgKzU2Niw3IEBAIGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zyb250ZW5kKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IGRvY3VtZW50CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIAotICAgIHJldHVybiBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGVUb1B1c2gpOwor
ICAgIHJldHVybiBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlVG9QdXNo
KTsKIH0KIAogTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JJZChpbnQgaWQpCkBAIC02
MTMsNyArNjEzLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvcihFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnMKICAgICB9CiAKICAgICBpZiAo
YXV0byogZWxlbWVudCA9IHF1ZXJ5UmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKQotICAgICAg
ICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlbGVtZW50KTsKKyAgICAgICAg
KmVsZW1lbnRJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIGVsZW1lbnQp
OwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yQWxsKEVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIFJl
ZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1bHQpCkBAIC02MzksMTMgKzYzOSwyNCBAQCB2
b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgaW50IG5vZGVJZCwgYwogfQogCiBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQoTm9kZSogbm9kZVRvUHVzaCkKK3sKKyAgICBFcnJvclN0cmluZyBp
Z25vcmVkOworICAgIHJldHVybiBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGlnbm9yZWQsIG5vZGVU
b1B1c2gpOworfQorCitpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRl
bmQoRXJyb3JTdHJpbmcgZXJyb3JTdHJpbmcsIE5vZGUqIG5vZGVUb1B1c2gpCiB7CiAgICAgQVNT
RVJUKG5vZGVUb1B1c2gpOyAgLy8gSW52YWxpZCBpbnB1dAogCi0gICAgaWYgKCFtX2RvY3VtZW50
KQorICAgIGlmICghbV9kb2N1bWVudCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5n
IGRvY3VtZW50Il9zOwogICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoIW1fZG9jdW1lbnROb2Rl
VG9JZE1hcC5jb250YWlucyhtX2RvY3VtZW50KSkKKyAgICB9CisKKyAgICBpZiAoIW1fZG9jdW1l
bnROb2RlVG9JZE1hcC5jb250YWlucyhtX2RvY3VtZW50KSkgeworICAgICAgICBlcnJvclN0cmlu
ZyA9ICJEb2N1bWVudCBtdXN0IGhhdmUgYmVlbiByZXF1ZXN0ZWQiX3M7CiAgICAgICAgIHJldHVy
biAwOworICAgIH0KIAogICAgIC8vIFJldHVybiBpZCBpbiBjYXNlIHRoZSBub2RlIGlzIGtub3du
LgogICAgIGludCByZXN1bHQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KG5vZGVUb1B1c2gp
OwpAQCAtNzkwLDcgKzgwMSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1l
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICBpZiAoIW1f
ZG9tRWRpdG9yLT5yZW1vdmVDaGlsZCgqcGFyZW50LCAqb2xkTm9kZSwgZXJyb3JTdHJpbmcpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICAqbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5l
d0VsZW1lbnQucHRyKCkpOworICAgICpuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJy
b3JTdHJpbmcsIG5ld0VsZW1lbnQucHRyKCkpOwogICAgIGlmIChtX2NoaWxkcmVuUmVxdWVzdGVk
LmNvbnRhaW5zKG5vZGVJZCkpCiAgICAgICAgIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZCgqbmV3
SWQpOwogfQpAQCAtODMwLDcgKzg0MSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91
dGVySFRNTChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKG5ld05vZGUpOworICAgIGludCBuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJy
b3JTdHJpbmcsIG5ld05vZGUpOwogCiAgICAgYm9vbCBjaGlsZHJlblJlcXVlc3RlZCA9IG1fY2hp
bGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKTsKICAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0
ZWQpCkBAIC0xNDIyLDcgKzE0MzMsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8o
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBpbnQgdGFyZ2V0RQogICAgIGlm
ICghbV9kb21FZGl0b3ItPmluc2VydEJlZm9yZSgqdGFyZ2V0RWxlbWVudCwgKm5vZGUsIGFuY2hv
ck5vZGUsIGVycm9yU3RyaW5nKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgKm5ld05vZGVJZCA9
IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAgKm5ld05vZGVJZCA9IHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogfQogCiB2b2lkIEluc3BlY3RvckRP
TUFnZW50Ojp1bmRvKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKQEAgLTE0OTgsMTEgKzE1MDks
MTEgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFJlZlAKICAgICByZXN1bHQgPSBidWlsZEFycmF5Rm9y
RWxlbWVudEF0dHJpYnV0ZXMoZWxlbWVudCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBu
b2RlSWQpCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKQogewogICAg
IE5vZGUqIG5vZGUgPSBub2RlRm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChub2RlKQot
ICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAgICAg
Km5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogICAg
IGVsc2UKICAgICAgICAgKm5vZGVJZCA9IDA7CiB9CkBAIC0yNjQ2LDcgKzI2NTcsNyBAQCBOb2Rl
KiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0
SWQpCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhdGgsIGludCogbm9kZUlkKQog
ewogICAgIGlmIChOb2RlKiBub2RlID0gbm9kZUZvclBhdGgocGF0aCkpCi0gICAgICAgICpub2Rl
SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7CiAgICAgZWxzZQogICAgICAg
ICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIG5vZGUgZm9yIGdpdmVuIHBhdGgiX3M7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgK
aW5kZXggNTE2MzlhYmViODRmNGQ5NWRlZDNmNGZiNjQwOWFkOGY2MmEyODk0ZS4uN2RmMGU4M2Vi
NTNkNzVjNDFjNTU0ZjE0MDEyMzViYTIxNzE5NDE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTgwLDYgKzE4MCw4
IEBAIHB1YmxpYzoKIAogICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoTm9kZSopOwogICAgIGlu
dCBwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmLCBpbnQgZG9jdW1lbnROb2RlSWQsIE5v
ZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKik7CisgICAgaW50IHB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcsIE5vZGUqKTsKICAgICBOb2RlKiBub2Rl
Rm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJvdW5kTm9kZUlkKGNvbnN0IE5vZGUqKTsKIApA
QCAtMjE3LDcgKzIxOSw2IEBAIHByaXZhdGU6CiAgICAgTm9kZSogYXNzZXJ0RWRpdGFibGVOb2Rl
KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCk7CiAgICAgRWxlbWVudCogYXNzZXJ0RWRpdGFibGVF
bGVtZW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCk7CiAKLSAgICBpbnQgcHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChOb2RlKik7CiAgICAgdm9pZCBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQoaW50
IG5vZGVJZCwgaW50IGRlcHRoID0gMSk7CiAKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6
RE9NOjpOb2RlPiBidWlsZE9iamVjdEZvck5vZGUoTm9kZSosIGludCBkZXB0aCwgTm9kZVRvSWRN
YXAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDAzOGUwNjU5Mzk3YzBi
ZjNkZmE5MjU3M2I3ZTZiOTI1MjJlZjAwZGUuLjc4MzczNjE3YWU5OTM3ZDFiMjZmY2U2MGNjMzdm
N2ZiYTNmMzJhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRp
b25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtMTI1LDEy
ICsxMjUsMTUgQEAgbG9jYWxpemVkU3RyaW5nc1siQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRv
IHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRhYmxlLiJdID0KIGxvY2FsaXplZFN0cmluZ3NbIkFu
IHVuZXhwZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciAl
cyBvY2N1cnJlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1
cnJlZC4iXSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbmdsZSJdID0gIkFuZ2xlIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiJdID0g
IkFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gJWQiXSA9ICJBbmltYXRp
b24gJWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIl0g
PSAiQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1h
dGlvbiBGcmFtZSAlZCBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVzdGVkIl0gPSAiQW5pbWF0aW9u
IEZyYW1lICVkIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUg
Q2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgQ2FuY2VsZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siQW5pbWF0aW9uIEZyYW1lIEZpcmVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIEZpcmVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0ZWQiXSA9ICJBbmltYXRpb24g
RnJhbWUgUmVxdWVzdGVkIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBUYXJnZXQiXSA9
ICJBbmltYXRpb24gVGFyZ2V0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFub255bW91cyBTY3JpcHQg
JWQiXSA9ICJBbm9ueW1vdXMgU2NyaXB0ICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFub255bW91
cyBTY3JpcHRzIl0gPSAiQW5vbnltb3VzIFNjcmlwdHMiOwogbG9jYWxpemVkU3RyaW5nc1siQW5v
bnltb3VzIFN0eWxlIFNoZWV0ICVkIl0gPSAiQW5vbnltb3VzIFN0eWxlIFNoZWV0ICVkIjsKQEAg
LTIwMiw5ICsyMDUsMTEgQEAgbG9jYWxpemVkU3RyaW5nc1siQ1BVIl0gPSAiQ1BVIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkNQVSBVc2FnZSJdID0gIkNQVSBVc2FnZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDU1AgSGFzaCJdID0gIkNTUCBIYXNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRp
b24iXSA9ICJDU1MgQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRpb25z
Il0gPSAiQ1NTIEFuaW1hdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENhbnZhcyJdID0g
IkNTUyBDYW52YXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENoYW5nZXM6Il0gPSAiQ1NTIENo
YW5nZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0aW9uIl0gPSAiQ1NTIFRyYW5z
aXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQ1NTIFRyYW5zaXRpb25zIl0gPSAiQ1NTIFRyYW5z
aXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIwMUQiXSA9
ICJDU1MgY2FudmFzIFx1MjAxQyVzXHUyMDFEIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhY2hlZCJd
ID0gIkNhY2hlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWxsIEZyYW1lcyBUcnVuY2F0ZWQiXSA9
ICJDYWxsIEZyYW1lcyBUcnVuY2F0ZWQiOwpAQCAtMjE5LDYgKzIyNCw4IEBAIGxvY2FsaXplZFN0
cmluZ3NbIkNhbmNlbGVkIl0gPSAiQ2FuY2VsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFz
Il0gPSAiQ2FudmFzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZhcyAlZCJdID0gIkNhbnZhcyAl
ZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgJXMiXSA9ICJDYW52YXMgJXMiOworLyogQml0
bWFwIFJlbmRlcmVyIGlzIGEgdHlwZSBvZiByZW5kZXJpbmcgY29udGV4dCBhc3NvY2lhdGVkIHdp
dGggYSA8Y2FudmFzPiBlbGVtZW50ICovCitsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgQ29udGV4
dCBUeXBlIEJpdG1hcCBSZW5kZXJlciJdID0gIkJpdG1hcCBSZW5kZXJlciI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJDYW52YXMgRWxlbWVudCJdID0gIkNhbnZhcyBFbGVtZW50IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNhbnZhc2VzIl0gPSAiQ2FudmFzZXMiOwogLyogQ2FwdHVyZSBzY3JlZW5zaG90IG9m
IHRoZSBzZWxlY3RlZCBET00gbm9kZSAqLwpAQCAtNTg4LDYgKzU5NSw3IEBAIGxvY2FsaXplZFN0
cmluZ3NbIkdsb2JhbCBDb2RlIl0gPSAiR2xvYmFsIENvZGUiOwogbG9jYWxpemVkU3RyaW5nc1si
R2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQiXSA9ICJHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVu
dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgVmFyaWFibGVzIl0gPSAiR2xvYmFsIFZhcmlh
YmxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcmFtbWFyIl0gPSAiR3JhbW1hciI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJHcmFwaGljcyJdID0gIkdyYXBoaWNzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdy
b3VwIl0gPSAiR3JvdXAiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAgQnkgUmVzb3VyY2UiXSA9
ICJHcm91cCBCeSBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBNZWRpYSBSZXF1
ZXN0cyJdID0gIkdyb3VwIE1lZGlhIFJlcXVlc3RzIjsKQEAgLTYzNSw2ICs2NDMsNyBAQCBsb2Nh
bGl6ZWRTdHJpbmdzWyJJbWFnZXMiXSA9ICJJbWFnZXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1h
Z2VzOiJdID0gIkltYWdlczoiOwogbG9jYWxpemVkU3RyaW5nc1siSW1tZWRpYXRlIFBhdXNlIFJl
cXVlc3RlZCJdID0gIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siSW1wb3J0Il0gPSAiSW1wb3J0IjsKK2xvY2FsaXplZFN0cmluZ3NbIkltcG9ydCBSZWNvcmRp
bmciXSA9ICJJbXBvcnQgUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIl0g
PSAiSW1wb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgLSAlcyJdID0gIkltcG9y
dGVkIC0gJXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgXHUyMDE0ICVzIl0gPSAiSW1w
b3J0ZWQgXHUyMDE0ICVzIjsKQEAgLTY5OSw2ICs3MDgsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJM
b2NhbCBTdG9yYWdlIl0gPSAiTG9jYWwgU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2Nh
bCBWYXJpYWJsZXMiXSA9ICJMb2NhbCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9j
YXRlZCBhdCAlcyJdID0gIkxvY2F0ZWQgYXQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYXRp
b24iXSA9ICJMb2NhdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQW5pbWF0aW9uIl0gPSAi
TG9nIEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgQ2FudmFzIENvbnRleHQiXSA9
ICJMb2cgQ2FudmFzIENvbnRleHQiOwogLyogTG9nIChwcmludCkgRE9NIGVsZW1lbnQgdG8gQ29u
c29sZSAqLwogbG9jYWxpemVkU3RyaW5nc1siTG9nIEVsZW1lbnQiXSA9ICJMb2cgRWxlbWVudCI7
CkBAIC03NzIsNiArNzgyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm8gRW5hYmxlZCBBdWRpdHMi
XSA9ICJObyBFbmFibGVkIEF1ZGl0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFbnRyaWVzIl0g
PSAiTm8gRW50cmllcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFdmVudCBMaXN0ZW5lcnMiXSA9
ICJObyBFdmVudCBMaXN0ZW5lcnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRmlsdGVyIFJlc3Vs
dHMiXSA9ICJObyBGaWx0ZXIgUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBLZXlmcmFt
ZXMiXSA9ICJObyBLZXlmcmFtZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gTGF5ZXIgQXZhaWxh
YmxlIl0gPSAiTm8gTGF5ZXIgQXZhaWxhYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIE92ZXJy
aWRlcyJdID0gIk5vIE92ZXJyaWRlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBQYXJhbWV0ZXJz
Il0gPSAiTm8gUGFyYW1ldGVycyI7CkBAIC03ODMsNiArNzk0LDcgQEAgbG9jYWxpemVkU3RyaW5n
c1siTm8gUmVzcG9uc2UgSGVhZGVycyJdID0gIk5vIFJlc3BvbnNlIEhlYWRlcnMiOwogbG9jYWxp
emVkU3RyaW5nc1siTm8gUmVzdWx0Il0gPSAiTm8gUmVzdWx0IjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vIFJlc3VsdHMgRm91bmQiXSA9ICJObyBSZXN1bHRzIEZvdW5kIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIk5vIFNlYXJjaCBSZXN1bHRzIl0gPSAiTm8gU2VhcmNoIFJlc3VsdHMiOworbG9jYWxpemVk
U3RyaW5nc1siTm8gU3R5bGVzIl0gPSAiTm8gU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5v
IFdhdGNoIEV4cHJlc3Npb25zIl0gPSAiTm8gV2F0Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxpemVk
U3RyaW5nc1siTm8gYXVkaXQgc2VsZWN0ZWQiXSA9ICJObyBhdWRpdCBzZWxlY3RlZCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iXSA9ICJO
byBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iOwpAQCAtOTA3LDYgKzkxOSw4IEBA
IGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyJdID0gIlJlY29yZGluZyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJSZWNvcmRpbmcgJWQiXSA9ICJSZWNvcmRpbmcgJWQiOwogbG9jYWxpemVkU3RyaW5n
c1siUmVjb3JkaW5nIEVycm9yOiAlcyJdID0gIlJlY29yZGluZyBFcnJvcjogJXMiOwogbG9jYWxp
emVkU3RyaW5nc1siUmVjb3JkaW5nIFRpbWVsaW5lIERhdGEiXSA9ICJSZWNvcmRpbmcgVGltZWxp
bmUgRGF0YSI7CisvKiBBIHR5cGUgb2YgY2FudmFzIHJlY29yZGluZyBpbiB0aGUgR3JhcGhpY3Mg
VGFiICovCitsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgVHlwZSBDYW52YXMgQml0bWFwIFJl
bmRlcmVyIl0gPSAiQml0bWFwIFJlbmRlcmVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGlu
ZyBXYXJuaW5nOiAlcyJdID0gIlJlY29yZGluZyBXYXJuaW5nOiAlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZWNvcmRpbmcgc3RvcCByZXF1ZXN0ZWQgXHUyMDE0ICVzIl0gPSAiUmVjb3JkaW5nIHN0
b3AgcmVxdWVzdGVkIFx1MjAxNCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmdzIl0g
PSAiUmVjb3JkaW5ncyI7CkBAIC05MTUsNyArOTI5LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVk
aXJlY3RzIl0gPSAiUmVkaXJlY3RzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZmVyZW5jZSBJc3N1
ZSJdID0gIlJlZmVyZW5jZSBJc3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZsZWN0aW9uIl0g
PSAiUmVmbGVjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIl0gPSAiUmVmcmVzaCI7
Ci1sb2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIGFsbCJdID0gIlJlZnJlc2ggYWxsIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiXSA9ICJSZWZyZXNoIHdhdGNo
IGV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRz
IGVudGlyZXR5LiJdID0gIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZWd1bGFyIEV4cHJlc3Npb24iXSA9ICJSZWd1bGFyIEV4cHJlc3Npb24i
OwpAQCAtMTAyNSw2ICsxMDM4LDggQEAgbG9jYWxpemVkU3RyaW5nc1siU2VjdXJpdHkgT3JpZ2lu
Il0gPSAiU2VjdXJpdHkgT3JpZ2luIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBiYXNlbGlu
ZSBzbmFwc2hvdCJdID0gIlNlbGVjdCBiYXNlbGluZSBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJTZWxlY3QgY29tcGFyaXNvbiBzbmFwc2hvdCJdID0gIlNlbGVjdCBjb21wYXJpc29uIHNu
YXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIl0gPSAiU2VsZWN0ZWQiOworLyog
QXBwZWFycyBhcyBhIGxhYmVsIHdoZW4gYSBnaXZlbiB3ZWIgYW5pbWF0aW9uIGlzIGxvZ2dlZCB0
byB0aGUgQ29uc29sZSAqLworbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgQW5pbWF0aW9uIl0g
PSAiU2VsZWN0ZWQgQW5pbWF0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIENhbnZh
cyBDb250ZXh0Il0gPSAiU2VsZWN0ZWQgQ2FudmFzIENvbnRleHQiOwogLyogU2VsZWN0ZWQgRE9N
IGVsZW1lbnQgKi8KIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIEVsZW1lbnQiXSA9ICJTZWxl
Y3RlZCBFbGVtZW50IjsKQEAgLTExODAsNiArMTE5NSw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlRo
ZXNlIHRlc3RzIHNlcnZlIGFzIGEgZGVtb25zdHJhdGlvbiBvZiB0aGUgZnVuY3Rpb25hbGl0eSBh
bmQKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVz
b3VyY2UgT3ZlcnJpZGUiXSA9ICJUaGlzIFJlc291cmNlIGNhbWUgZnJvbSBhIExvY2FsIFJlc291
cmNlIE92ZXJyaWRlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYWN0aW9uIGNhdXNlcyBubyB2
aXN1YWwgY2hhbmdlIl0gPSAiVGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiOwog
bG9jYWxpemVkU3RyaW5nc1siVGhpcyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUg
dmlzaWJsZSBhcmVhIl0gPSAiVGhpcyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUg
dmlzaWJsZSBhcmVhIjsKK2xvY2FsaXplZFN0cmluZ3NbIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBk
dXJhdGlvbi4iXSA9ICJUaGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIl0gPSAiVGhpcyBhbmlt
YXRpb24gaGFzIG5vIGtleWZyYW1lcy4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhdWRpdCBp
cyBub3Qgc3VwcG9ydGVkIl0gPSAiVGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVkIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBkYXRh
IGlzIHNob3duLiJdID0gIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBk
YXRhIGlzIHNob3duLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFuIGV4YW1wbGUgb2Yg
aG93IGVycm9ycyBhcmUgc2hvd24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBidXQg
ZXhlY3V0aW9uIGVycm9ycyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIl0gPSAiVGhpcyBp
cyBhbiBleGFtcGxlIG9mIGhvdyBlcnJvcnMgYXJlIHNob3duLiBUaGUgZXJyb3Igd2FzIHRocm93
biBtYW51YWxseSwgYnV0IGV4ZWN1dGlvbiBlcnJvcnMgd2lsbCBhcHBlYXIgaW4gdGhlIHNhbWUg
d2F5LiI7CkBAIC0xMjkyLDEyICsxMzA5LDY1IEBAIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgU2hh
ZGVyIl0gPSAiVmlldyBTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siVmlld3BvcnQiXSA9ICJW
aWV3cG9ydCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaXNpYmxlIl0gPSAiVmlzaWJsZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJXYWl0aW5nIl0gPSAiV2FpdGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJX
YWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGFu
aW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9y
IGFuaW1hdGlvbnMgY3JlYXRlZCBieSBKYXZhU2NyaXB0LiJdID0gIldhaXRpbmcgZm9yIGFuaW1h
dGlvbnMgY3JlYXRlZCBieSBKYXZhU2NyaXB0LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5n
IGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiJdID0gIldhaXRp
bmcgZm9yIGNhbnZhcyBjb250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGZyYW1lc1x1MjAyNiJdID0gIldhaXRpbmcgZm9yIGZy
YW1lc1x1MjAyNiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBj
cmVhdGVkIGJ5IENTUy4iXSA9ICJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENT
Uy4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FybmluZzogIl0gPSAiV2FybmluZzogIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIldhcm5pbmdzIl0gPSAiV2FybmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1si
V2F0Y2ggRXhwcmVzc2lvbnMiXSA9ICJXYXRjaCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJXYXRlcmZhbGwiXSA9ICJXYXRlcmZhbGwiOworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFu
aW1hdGlvbiJdID0gIldlYiBBbmltYXRpb24iOworLyogU2VjdGlvbiB0aXRsZSBmb3IgdGhlIEph
dmFTY3JpcHQgYmFja3RyYWNlIG9mIHRoZSBjcmVhdGlvbiBvZiBhIHdlYiBhbmltYXRpb24gKi8K
K2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gQmFja3RyYWNlIFRpdGxlIl0gPSAiQmFj
a3RyYWNlIjsKKy8qIExhYmVsIGZvciB0aGUgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbiBv
ZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRWFz
aW5nIExhYmVsIl0gPSAiRWFzaW5nIjsKKy8qIFNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBlZmZlY3Qgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdz
WyJXZWIgQW5pbWF0aW9uIEVmZmVjdCBUaXRsZSJdID0gIkVmZmVjdCI7CisvKiBMYWJlbCBmb3Ig
dGhlIGVuZCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1hdGlvbiAgKi8KK2xvY2FsaXplZFN0cmlu
Z3NbIldlYiBBbmltYXRpb24gRW5kIERlbGF5IExhYmVsIl0gPSAiRW5kIERlbGF5IjsKKy8qIFRv
b2x0aXAgZm9yIHNlY3Rpb24gb2YgZ3JhcGggcmVwcmVzZW50aW5nIGRlbGF5IGFmdGVyIGEgd2Vi
IGFuaW1hdGlvbiBmaW5pc2hlcyBhcHBseWluZyBzdHlsZXMgKi8KK2xvY2FsaXplZFN0cmluZ3Nb
IldlYiBBbmltYXRpb24gRW5kIERlbGF5IFRvb2x0aXAiXSA9ICJFbmQgRGVsYXkgJXMiOworLyog
SW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGVpdGhlciBkb2VzIG5vdCBhcHBseSBh
bnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgb3IgdGhhdCBpdCBh
cHBsaWVzIHRvIGJvdGgsIGRlcGVuZGluZyBvbiBpdCdzIGNvbmZpZ3VyYXRpb24gKi8KK2xvY2Fs
aXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEF1dG8iXSA9ICJBdXRvIjsKKy8q
IEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGJl
Zm9yZSBpdCBiZWdpbnMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBN
b2RlIEJhY2t3YXJkcyJdID0gIkJhY2t3YXJkcyI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdl
YiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRl
ciBpdCBlbmRzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBC
b3RoIl0gPSAiQm90aCI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxz
byBhcHBsaWVzIHN0eWxlcyBhZnRlciBpdCBlbmRzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIg
QW5pbWF0aW9uIEZpbGwgTW9kZSBGb3J3YXJkcyJdID0gIkZvcndhcmRzIjsKKy8qIExhYmVsIGZv
ciB0aGUgZmlsbCBtb2RlIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1si
V2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgTGFiZWwiXSA9ICJGaWxsIjsKKy8qIEluZGljYXRlcyB0
aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBp
dCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmlt
YXRpb24gRmlsbCBNb2RlIE5vbmUiXSA9ICJOb25lIjsKKy8qIFNlY3Rpb24gdGl0bGUgZm9yIGlu
Zm9ybWF0aW9uIGFib3V0IGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2Vi
IEFuaW1hdGlvbiBJZGVudGl0eSBUaXRsZSJdID0gIklkZW50aXR5IjsKKy8qIExhYmVsIGZvciB0
aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRT
dHJpbmdzWyJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBDb3VudCBMYWJlbCJdID0gIkl0ZXJhdGlv
bnMiOworLyogTGFiZWwgZm9yIHRoZSB0aW1lIGR1cmF0aW9uIG9mIGVhY2ggaXRlcmF0aW9uIG9m
IGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBJdGVy
YXRpb24gRHVyYXRpb24gTGFiZWwiXSA9ICJEdXJhdGlvbiI7CisvKiBMYWJlbCBmb3IgdGhlIG51
bWJlciBkZXNjcmliaW5nIHdoaWNoIGl0ZXJhdGlvbiBhIHdlYiBhbmltYXRpb24gc2hvdWxkIHN0
YXJ0IGF0ICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBTdGFy
dCBMYWJlbCJdID0gIlN0YXJ0IjsKKy8qIFNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFi
b3V0IHRoZSBrZXlmcmFtZXMgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdz
WyJXZWIgQW5pbWF0aW9uIEtleWZyYW1lcyBUaXRsZSJdID0gIktleWZyYW1lcyI7CisvKiBJbmRp
Y2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBh
bHRlcm5hdGVzIGJldHdlZW4gbm9ybWFsIGFuZCByZXZlcnNlZCBvbiBlYWNoIGl0ZXJhdGlvbiAq
LworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gQWx0
ZXJuYXRlIl0gPSAiQWx0ZXJuYXRlIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBk
aXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiByZXZlcnNl
ZCBhbmQgbm9ybWFsIG9uIGVhY2ggaXRlcmF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIg
QW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBBbHRlcm5hdGUgUmV2ZXJzZSJdID0gIkFsdGVy
bmF0ZSBSZXZlcnNlIjsKKy8qIExhYmVsIGZvciB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIGEg
d2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFj
ayBEaXJlY3Rpb24gTGFiZWwiXSA9ICJEaXJlY3Rpb24iOworLyogSW5kaWNhdGVzIHRoYXQgdGhl
IHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgbm9ybWFsIChlLmcu
IGZvcndhcmRzKSAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBE
aXJlY3Rpb24gTm9ybWFsIl0gPSAiTm9ybWFsIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoZSBwbGF5
YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlzIHJldmVyc2VkIChlLmcuIGJh
Y2t3YXJkcykgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGly
ZWN0aW9uIFJldmVyc2UiXSA9ICJSZXZlcnNlIjsKKy8qIExhYmVsIGZvciB0aGUgc3RhcnQgZGVs
YXkgdGltZSBvZiBhIHdlYiBhbmltYXRpb24gICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5p
bWF0aW9uIFN0YXJ0IERlbGF5IExhYmVsIl0gPSAiU3RhcnQgRGVsYXkiOworLyogVG9vbHRpcCBm
b3Igc2VjdGlvbiBvZiBncmFwaCByZXByZXNlbnRpbmcgZGVsYXkgYmVmb3JlIGEgd2ViIGFuaW1h
dGlvbiBiZWdpbnMgYXBwbHlpbmcgc3R5bGVzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5p
bWF0aW9uIFN0YXJ0IERlbGF5IFRvb2x0aXAiXSA9ICJTdGFydCBEZWxheSAlcyI7CisvKiBMYWJl
bCBmb3IgdGhlIGN1cnJlbnQgRE9NIG5vZGUgdGFyZ2V0IG9mIGEgd2ViIGFuaW1hdGlvbiAqLwor
bG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBUYXJnZXQgTGFiZWwiXSA9ICJUYXJnZXQi
OworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbnMiXSA9ICJXZWIgQW5pbWF0aW9ucyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgSW5zcGVjdG9yIl0gPSAiV2ViIEluc3BlY3RvciI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJXZWIgSW5zcGVjdG9yIFJlZmVyZW5jZSJdID0gIldlYiBJbnNwZWN0
b3IgUmVmZXJlbmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBQYWdlIl0gPSAiV2ViIFBhZ2Ui
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
CmluZGV4IDgyNzFlMTNjNmI3ZDdmMzMxY2IyYWU5ZWRjODMyYTE0YWMyZjJlMzIuLmVhY2UxMjY3
Y2EwNjEwMGY2YzcwYWYzNTRkMjA0N2U4ZDA0ZmRlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTEyMyw2ICsxMjMsNyBAQCBX
SS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLndvcmtlck1hbmFnZXIgPSBuZXcgV0ku
V29ya2VyTWFuYWdlciwKICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRP
TURlYnVnZ2VyTWFuYWdlciwKICAgICAgICAgV0kuY2FudmFzTWFuYWdlciA9IG5ldyBXSS5DYW52
YXNNYW5hZ2VyLAorICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyID0gbmV3IFdJLkFuaW1hdGlv
bk1hbmFnZXIsCiAgICAgXTsKIAogICAgIC8vIFJlZ2lzdGVyIGZvciBldmVudHMuCkBAIC0xNDcs
MTMgKzE0OCwxMyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNU
YWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LlR5
cGUsCiAgICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50Vmlldy5UeXBlLAotICAgICAgICBXSS5D
YW52YXNUYWJDb250ZW50Vmlldy5UeXBlLAorICAgICAgICBXSS5HcmFwaGljc1RhYkNvbnRlbnRW
aWV3LlR5cGUsCiAgICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAg
V0kuQ29uc29sZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgXSk7CiAgICAgV0kuX3NlbGVjdGVk
VGFiSW5kZXhTZXR0aW5nID0gbmV3IFdJLlNldHRpbmcoInNlbGVjdGVkLXRhYi1pbmRleCIsIDAp
OwogCi0gICAgLy8gUmVwbGFjZSB0aGUgRGVidWdnZXIvUmVzb3VyY2VzIFRhYiB3aXRoIHRoZSBT
b3VyY2VzIFRhYi4KKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwNTgyNj4g
V2ViIEluc3BlY3RvcjogcmVtb3ZlIGxlZ2FjeSBjb2RlIGZvciByZXBsYWNpbmcgdGhlIFJlc291
cmNlcyBUYWIgYW5kIERlYnVnZ2VyIFRhYiB3aXRoIHRoZSBTb3VyY2VzIFRhYgogICAgIGxldCBk
ZWJ1Z2dlckluZGV4ID0gV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5pbmRleE9mKCJkZWJ1Z2dl
ciIpOwogICAgIGxldCByZXNvdXJjZXNJbmRleCA9IFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUu
aW5kZXhPZigicmVzb3VyY2VzIik7CiAgICAgaWYgKGRlYnVnZ2VySW5kZXggPj0gMCB8fCByZXNv
dXJjZXNJbmRleCA+PSAwKSB7CkBAIC0xNzMsNiArMTc0LDEzIEBAIFdJLmxvYWRlZCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIFdJLl9zZWxlY3RlZFRhYkluZGV4U2V0dGluZy52YWx1ZSA9IHNv
dXJjZXNJbmRleDsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzIwNTgyNz4gV2ViIEluc3BlY3RvcjogcmVtb3ZlIGxlZ2FjeSBjb2RlIGZvciByZXBsYWNpbmcg
dGhlIENhbnZhcyBUYWIgd2l0aCB0aGUgR3JhcGhpY3MgVGFiCisgICAgbGV0IGNhbnZhc0luZGV4
ID0gV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5pbmRleE9mKCJjYW52YXMiKTsKKyAgICBpZiAo
Y2FudmFzSW5kZXggPj0gMCkgeworICAgICAgICBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLnNw
bGljZShjYW52YXNJbmRleCwgMSwgV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlKTsKKyAg
ICAgICAgV0kuX29wZW5UYWJzU2V0dGluZy5zYXZlKCk7CisgICAgfQorCiAgICAgLy8gU3RhdGUu
CiAgICAgV0kucHJpbnRTdHlsZXNFbmFibGVkID0gZmFsc2U7CiAgICAgV0kuc2V0Wm9vbUZhY3Rv
cihXSS5zZXR0aW5ncy56b29tRmFjdG9yLnZhbHVlKTsKQEAgLTQ2NSw3ICs0NzMsNyBAQCBXSS5j
b250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVudFZp
ZXcsCiAgICAgICAgIFdJLlRpbWVsaW5lVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLlN0b3Jh
Z2VUYWJDb250ZW50VmlldywKLSAgICAgICAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcsCisgICAg
ICAgIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkxheWVyc1RhYkNvbnRl
bnRWaWV3LAogICAgICAgICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5Db25z
b2xlVGFiQ29udGVudFZpZXcsCkBAIC0xMjIzLDExICsxMjMxLDggQEAgV0kudGFiQ29udGVudFZp
ZXdDbGFzc0ZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3Qp
CiAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2Fz
ZVJlc3VsdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3Vw
UmVzdWx0KQogICAgICAgICByZXR1cm4gV0kuQXVkaXRUYWJDb250ZW50VmlldzsKIAotICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAg
ICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50VmlldzsKLQotICAgIGlmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZykKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZh
c1RhYkNvbnRlbnRWaWV3OworICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkNhbnZhcyB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0g
fHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcgfHwgcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pCisgICAgICAgIHJldHVybiBXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3OwogCiAgICAgcmV0dXJuIG51bGw7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9u
TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZiNDEyY2VhNWZlMjNhNjZmZDI3
ZWNkOTRkYWQ3M2ZkYjAxZjMyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMKQEAgLTAs
MCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBGSVhNRTogQW5pbWF0aW9uTWFuYWdlciBsYWNr
cyBhZHZhbmNlZCBtdWx0aS10YXJnZXQgc3VwcG9ydC4gKEFuaW1hdGlvbnMgcGVyLXRhcmdldCkK
KworV0kuQW5pbWF0aW9uTWFuYWdlciA9IGNsYXNzIEFuaW1hdGlvbk1hbmFnZXIKK3sKKyAgICBj
b25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAg
ICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24gPSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlv
bjsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAgPSBuZXcgTWFwOworCisgICAgICAgIFdJ
LkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV0kuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hh
bmdlLCB0aGlzLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMpOworICAgIH0KKwor
ICAgIC8vIEFnZW50CisKKyAgICBnZXQgZG9tYWlucygpIHsgcmV0dXJuIFsiQW5pbWF0aW9uIl07
IH0KKworICAgIGFjdGl2YXRlRXh0cmFEb21haW4oZG9tYWluKQorICAgIHsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoZG9tYWluID09PSAiQW5pbWF0aW9uIik7CisKKyAgICAgICAgZm9yIChsZXQg
dGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUYXJnZXQo
dGFyZ2V0KTsKKyAgICB9CisKKyAgICAvLyBUYXJnZXQKKworICAgIGluaXRpYWxpemVUYXJnZXQo
dGFyZ2V0KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9u
LmVuYWJsZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5k
KCJBbmltYXRpb24uZW5hYmxlIikpCisgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQu
ZW5hYmxlKCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uQ29s
bGVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb247IH0KKworICAgIGdl
dCBzdXBwb3J0ZWQoKQorICAgIHsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEp
OiBBbmltYXRpb24uZW5hYmxlIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICByZXR1cm4gSW5z
cGVjdG9yQmFja2VuZC5oYXNDb21tYW5kKCJBbmltYXRpb24uZW5hYmxlIik7CisgICAgfQorCisg
ICAgZW5hYmxlKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9lbmFibGVk
KTsKKworICAgICAgICB0aGlzLl9lbmFibGVkID0gdHJ1ZTsKKworICAgICAgICBmb3IgKGxldCB0
YXJnZXQgb2YgV0kudGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0
YXJnZXQpOworICAgIH0KKworICAgIGRpc2FibGUoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fZW5hYmxlZCk7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRh
cmdldHMpIHsKKyAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0
aW9uLmRpc2FibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgICAgICBpZiAodGFyZ2V0Lmhh
c0NvbW1hbmQoIkFuaW1hdGlvbi5kaXNhYmxlIikpCisgICAgICAgICAgICAgICAgdGFyZ2V0LkFu
aW1hdGlvbkFnZW50LmRpc2FibGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FuaW1h
dGlvbkNvbGxlY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuY2xl
YXIoKTsKKworICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgLy8g
QW5pbWF0aW9uT2JzZXJ2ZXIKKworICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uUGF5bG9h
ZCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9hbmltYXRpb25JZE1hcC5o
YXMoYW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZCksIGBBbmltYXRpb24gYWxyZWFkeSBleGlz
dHMgd2l0aCBpZCAke2FuaW1hdGlvblBheWxvYWQuYW5pbWF0aW9uSWR9LmApOworCisgICAgICAg
IGxldCBhbmltYXRpb24gPSBXSS5BbmltYXRpb24uZnJvbVBheWxvYWQoYW5pbWF0aW9uUGF5bG9h
ZCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uYWRkKGFuaW1hdGlvbik7Cisg
ICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLnNldChhbmltYXRpb24uYW5pbWF0aW9uSWQsIGFu
aW1hdGlvbik7CisgICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0
KQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLmdl
dChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAg
ICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1h
dGlvbi5lZmZlY3RDaGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZChh
bmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMu
X2FuaW1hdGlvbklkTWFwLmdldChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisg
ICAgYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgbGV0IGFu
aW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLnRha2UoYW5pbWF0aW9uSWQpOworICAgICAg
ICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLnJl
bW92ZShhbmltYXRpb24pOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVN
YWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2Vy
dChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBXSS5GcmFtZSk7CisgICAgICAgIGlmICghZXZlbnQu
dGFyZ2V0LmlzTWFpbkZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgV0ku
QW5pbWF0aW9uLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCk7CisKKyAgICAgICAgdGhp
cy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25J
ZE1hcC5jbGVhcigpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpp
bmRleCAxMzVjMTY2MTNhZTgwMDljMTZlMjcyMmY3MjU4NWM5N2U2OWRkMTE0Li5kYmI4ZTZmZTQ5
NzMxZDUyMzFlMjgzZjY5ZmEyOTBmMzdiNmJiZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01h
bmFnZXIuanMKQEAgLTMyLDYgKzMyLDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZh
c01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0
aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24gPSBu
ZXcgV0kuQ2FudmFzQ29sbGVjdGlvbjsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1h
cCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwID0g
bmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzID0gbmV3IFNldDsKQEAgLTc2
LDEzICs3Nyw5IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVu
ZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdldCBjYW52YXNDb2xsZWN0aW9u
KCkgeyByZXR1cm4gdGhpcy5fY2FudmFzQ29sbGVjdGlvbjsgfQogICAgIGdldCBzYXZlZFJlY29y
ZGluZ3MoKSB7IHJldHVybiB0aGlzLl9zYXZlZFJlY29yZGluZ3M7IH0KIAotICAgIGdldCBjYW52
YXNlcygpCi0gICAgewotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9jYW52YXNJZGVu
dGlmaWVyTWFwLnZhbHVlcygpKTsKLSAgICB9Ci0KICAgICBnZXQgc2hhZGVyUHJvZ3JhbXMoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50
aWZpZXJNYXAudmFsdWVzKCkpOwpAQCAtMTMzLDYgKzEzMCw3IEBAIFdJLkNhbnZhc01hbmFnZXIg
PSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAg
dGFyZ2V0LkNhbnZhc0FnZW50LmRpc2FibGUoKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMu
X2NhbnZhc0NvbGxlY3Rpb24uY2xlYXIoKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmll
ck1hcC5jbGVhcigpOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5j
bGVhcigpOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MuY2xlYXIoKTsKQEAgLTE2MSw5
ICsxNTksOCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fY2FudmFzSWRlbnRpZmll
ck1hcC5oYXMoY2FudmFzUGF5bG9hZC5jYW52YXNJZCksIGBDYW52YXMgYWxyZWFkeSBleGlzdHMg
d2l0aCBpZCAke2NhbnZhc1BheWxvYWQuY2FudmFzSWR9LmApOwogCiAgICAgICAgIGxldCBjYW52
YXMgPSBXSS5DYW52YXMuZnJvbVBheWxvYWQoY2FudmFzUGF5bG9hZCk7CisgICAgICAgIHRoaXMu
X2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNhbnZhcyk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50
aWZpZXJNYXAuc2V0KGNhbnZhcy5pZGVudGlmaWVyLCBjYW52YXMpOwotCi0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRk
ZWQsIHtjYW52YXN9KTsKICAgICB9CiAKICAgICBjYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZp
ZXIpCkBAIC0xNzMsNyArMTcwLDE0IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNN
YW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICghY2FudmFzKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAg
ICB0aGlzLl9zYXZlUmVjb3JkaW5ncyhjYW52YXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc0Nv
bGxlY3Rpb24ucmVtb3ZlKGNhbnZhcyk7CisKKyAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBj
YW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9zaGFkZXJQ
cm9ncmFtSWRlbnRpZmllck1hcC5kZWxldGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKKworICAgICAg
ICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIoKTsKICAgICB9CiAKICAgICBj
YW52YXNNZW1vcnlDaGFuZ2VkKGNhbnZhc0lkZW50aWZpZXIsIG1lbW9yeUNvc3QpCkBAIC0yNzUs
MjEgKzI3OSwxNCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52
YXMpCisgICAgX3NhdmVSZWNvcmRpbmdzKGNhbnZhcykKICAgICB7Ci0gICAgICAgIGZvciAobGV0
IHByb2dyYW0gb2YgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uKQotICAgICAgICAgICAg
dGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmll
cik7Ci0KLSAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmNsZWFyKCk7Ci0K
ICAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9u
KSB7CiAgICAgICAgICAgICByZWNvcmRpbmcuc291cmNlID0gbnVsbDsKICAgICAgICAgICAgIHJl
Y29yZGluZy5jcmVhdGVEaXNwbGF5TmFtZShyZWNvcmRpbmcuZGlzcGxheU5hbWUpOwogICAgICAg
ICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzLmFkZChyZWNvcmRpbmcpOwogICAgICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNv
cmRpbmdTYXZlZCwge3JlY29yZGluZ30pOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVk
LCB7Y2FudmFzfSk7CiAgICAgfQogCiAgICAgX21haW5SZXNvdXJjZURpZENoYW5nZShldmVudCkK
QEAgLTMwMSwxNSArMjk4LDE0IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIFdJLkNhbnZhcy5yZXNldFVuaXF1ZURpc3Bs
YXlOYW1lTnVtYmVycygpOwogCiAgICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiB0aGlzLl9jYW52
YXNJZGVudGlmaWVyTWFwLnZhbHVlcygpKQotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFz
KGNhbnZhcyk7CisgICAgICAgICAgICB0aGlzLl9zYXZlUmVjb3JkaW5ncyhjYW52YXMpOwogCi0g
ICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CisgICAgICAg
IHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uY2xlYXIoKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRl
bnRpZmllck1hcC5jbGVhcigpOworICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmll
ck1hcC5jbGVhcigpOwogICAgIH0KIH07CiAKIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQgPSB7Ci0g
ICAgQ2FudmFzQWRkZWQ6ICJjYW52YXMtbWFuYWdlci1jYW52YXMtd2FzLWFkZGVkIiwKLSAgICBD
YW52YXNSZW1vdmVkOiAiY2FudmFzLW1hbmFnZXItY2FudmFzLXdhcy1yZW1vdmVkIiwKICAgICBS
ZWNvcmRpbmdTYXZlZDogImNhbnZhcy1tYW5hZ2VyLXJlY29yZGluZy1zYXZlZCIsCiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
RE9NTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0RPTU1hbmFnZXIuanMKaW5kZXggMWE4ZGY2OGJiYWRkOGRlOGJmZmIzODA3OTUyNjky
ODdhM2EzMzI0Mi4uNzE4NTU1OGFkM2UwZDk3OWJiMDAxZGI4ZTExMDNkYjgyYWE5ZTA1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
RE9NTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9ET01NYW5hZ2VyLmpzCkBAIC0zMjMsNyArMzIzLDcgQEAgV0kuRE9NTWFuYWdl
ciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIG5vZGVGb3JJZChu
b2RlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF0gfHwgbnVsbDsKICAgICB9
CiAKICAgICBfZG9jdW1lbnRVcGRhdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdl
ci5qcwppbmRleCA3NjMzZGUxYmFlMGY0MTNmZTEyY2QxYzM2MzM4NGFlZjNmZDg0NjU5Li43Mjk2
OTZmMDQxYzE2MmZmOTdjZmIwOTI0OTdiYmQxNWFiZjlmZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
VGltZWxpbmVNYW5hZ2VyLmpzCkBAIC03ODEsNyArNzgxLDcgQEAgV0kuVGltZWxpbmVNYW5hZ2Vy
ID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJ
LmRvbU1hbmFnZXIubm9kZUZvcklkKGV2ZW50Lm5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAg
IGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoZXZlbnQubm9kZUlkKTsKICAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbU5vZGUpOwogCiAgICAgICAgICAgICByZWNvcmQg
PSBuZXcgV0kuTWVkaWFUaW1lbGluZVJlY29yZChldmVudFR5cGUsIGRvbU5vZGUsIGRldGFpbHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0NhbnZhcy5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
Q2FudmFzLnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJkNjU3ZDkzMjZhYWEw
Y2U2NGY2ZDdlZjAzMWRmODE2YWYyY2ZlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvQ2FudmFzLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYi
PgotICAgIDxyZWN0IHg9IjEuNSIgeT0iMi41IiB3aWR0aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9
Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Ci0gICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4
IDkgMTEgNiA3IDMgMTEgMyAxMiAxMyAxMiAxMyAxMSAxMSA4Ii8+Ci08L3N2Zz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5z
dmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Mu
c3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3Y2FmM2ExNDlmNjk0NWI2MTg2ZDg0YjYxNTg3NjljYWYwYTY0YTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvR3JhcGhpY3Muc3ZnCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgorICAgIDxy
ZWN0IHg9IjEuNSIgeT0iMi41IiB3aWR0aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0
cm9rZT0iY3VycmVudENvbG9yIi8+CisgICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3
IDMgMTEgMyAxMiAxMyAxMiAxMyAxMSAxMSA4Ii8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBlMzNkMTIyYmNjNzQ0MDlhY2Fk
N2JmMzEwZDNjMGJhNTE2Yjc2MzUxLi5lM2Y4MzE4NzQzMjQ1YTE1OGQxOWY0YzI0NjJmMzkxOGMw
MzkyZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sCkBAIC0zMCw2ICszMCw5IEBACiAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IkV4dGVybmFsL0NvZGVNaXJyb3IvY29kZW1pcnJvci5jc3MiPgogCisgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3Nz
Ij4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbnRl
bnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Bbmlt
YXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5jc3MiPgogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRp
dFRlc3RDYXNlQ29udGVudFZpZXcuY3NzIj4KQEAgLTU2LDcgKzU5LDYgQEAKICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWwuY3Nz
Ij4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0NhbnZhc1NpZGViYXJQYW5lbC5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0NoYW5nZXNEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGFydERldGFpbHNTZWN0aW9uUm93
LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGVja2JveE5h
dmlnYXRpb25JdGVtLmNzcyI+CkBAIC0xMTMsNiArMTE1LDggQEAKICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dvVG9MaW5lRGlhbG9nLmNzcyI+CiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFkaWVudEVkaXRvci5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhZGllbnRTbGlkZXIuY3NzIj4KKyAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVPdmVydmlld0dyYXBoLmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZp
ZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBTbmFw
c2hvdEluc3RhbmNlc0NvbnRlbnRWaWV3LmNzcyI+CkBAIC0zNDksNiArMzUzLDcgQEAKICAgICA8
c2NyaXB0IHNyYz0iUHJvdG9jb2wvV29ya2VyT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogCiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50QWN0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Tb3VyY2VDb2RlLmpzIj48L3NjcmlwdD4KQEAgLTM2MSw2ICszNjYsOCBAQAogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvU2NyaXB0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0xvY2FsU2NyaXB0LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
QW5pbWF0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlv
bkNvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGlj
YXRpb25DYWNoZUZyYW1lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Fw
cGxpY2F0aW9uQ2FjaGVNYW5pZmVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9CYWNrRm9yd2FyZEVudHJ5LmpzIj48L3NjcmlwdD4KQEAgLTM4MCw3ICszODcsNiBAQAog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5vZGUuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FudmFzLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVByZXZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvblR5cGVzLmpzIj48L3NjcmlwdD4KQEAgLTU2Niw5ICs1
NzIsOSBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TdHlsZURldGFpbHNQYW5lbC5qcyI+PC9z
Y3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ29uc29sZVRhYkNvbnRlbnRWaWV3
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvRWxlbWVudHNUYWJDb250ZW50
Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYXBoaWNzVGFiQ29u
dGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9MYXllcnNUYWJD
b250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Jlc291cmNl
VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TY3JpcHRU
cmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBAIC01OTQsNiArNjAwLDkgQEAKIAogICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0aXZhdGVCdXR0b25Ub29sYmFySXRlbS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlvbkNvbnRl
bnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0Fw
cGxpY2F0aW9uQ2FjaGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxl
bWVudC5qcyI+PC9zY3JpcHQ+CkBAIC02OTIsNiArNzAxLDcgQEAKICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvR29Ub0xpbmVEaWFsb2cuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9HcmFkaWVudEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dy
YWRpZW50U2xpZGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZVBh
dGhDb21wb25lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxs
b2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMiPjwvc2NyaXB0PgpAQCAtODU2LDYgKzg2
Niw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Fubm90YXRvci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NvZGVNaXJyb3JFZGl0aW5nQ29udHJv
bGxlci5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5pbWF0
aW9uTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0F1
ZGl0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvQmFzaWNCbG9ja0Fubm90YXRvci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzY1ZGU1MjVmNDA2YWQzOGNkNDVmZWRjZDcxYjcxNGYzYTUxMzYzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0FuaW1hdGlvbi5qcwpAQCAtMCwwICsxLDI3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlv
biA9IGNsYXNzIEFuaW1hdGlvbiBleHRlbmRzIFdJLk9iamVjdAoreworICAgIGNvbnN0cnVjdG9y
KGFuaW1hdGlvbklkLCB7Y3NzQW5pbWF0aW9uTmFtZSwgY3NzVHJhbnNpdGlvblByb3BlcnR5LCBl
ZmZlY3QsIGJhY2t0cmFjZX0gPSB7fSkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydCgo
IWNzc0FuaW1hdGlvbk5hbWUgJiYgIWNzc1RyYW5zaXRpb25Qcm9wZXJ0eSkgfHwgISFjc3NBbmlt
YXRpb25OYW1lICE9PSAhIWNzc1RyYW5zaXRpb25Qcm9wZXJ0eSk7CisKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uSWQgPSBhbmltYXRpb25JZDsKKworICAgICAgICB0aGlzLl9jc3NBbmltYXRpb25O
YW1lID0gY3NzQW5pbWF0aW9uTmFtZSB8fCBudWxsOworICAgICAgICB0aGlzLl9jc3NUcmFuc2l0
aW9uUHJvcGVydHkgPSBjc3NUcmFuc2l0aW9uUHJvcGVydHkgfHwgbnVsbDsKKyAgICAgICAgdGhp
cy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZSA9IGJhY2t0
cmFjZSB8fCBbXTsKKworICAgICAgICB0aGlzLl9lZmZlY3RUYXJnZXQgPSB1bmRlZmluZWQ7Cisg
ICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MgPSBudWxsOworICAgIH0K
KworICAgIC8vIFN0YXRpYworCisgICAgc3RhdGljIGZyb21QYXlsb2FkKHBheWxvYWQpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFdJLkFuaW1hdGlvbihwYXlsb2FkLmFuaW1hdGlvbklkLCB7
CisgICAgICAgICAgICBjc3NBbmltYXRpb25OYW1lOiBwYXlsb2FkLmNzc0FuaW1hdGlvbk5hbWUs
CisgICAgICAgICAgICBjc3NUcmFuc2l0aW9uUHJvcGVydHk6IHBheWxvYWQuY3NzVHJhbnNpdGlv
blByb3BlcnR5LAorICAgICAgICAgICAgZWZmZWN0OiBwYXlsb2FkLmVmZmVjdCwKKyAgICAgICAg
ICAgIGJhY2t0cmFjZTogQXJyYXkuaXNBcnJheShwYXlsb2FkLmJhY2t0cmFjZSkgPyBwYXlsb2Fk
LmJhY2t0cmFjZS5tYXAoKGl0ZW0pID0+IFdJLkNhbGxGcmFtZS5mcm9tUGF5bG9hZChXSS5tYWlu
VGFyZ2V0LCBpdGVtKSkgOiBbXSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGRp
c3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZShhbmltYXRpb25UeXBlLCBwbHVyYWwpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKGFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRp
b24uVHlwZS5XZWJBbmltYXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlT
dHJpbmcoIldlYiBBbmltYXRpb25zIikgOiBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbiIpOwor
ICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAg
IHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NTIEFuaW1hdGlvbnMiKSA6IFdJLlVJU3Ry
aW5nKCJDU1MgQW5pbWF0aW9uIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NT
VHJhbnNpdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NT
IFRyYW5zaXRpb25zIikgOiBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb24iKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBhbmltYXRpb24gdHlw
ZSIsIGFuaW1hdGlvblR5cGUpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBz
dGF0aWMgZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlvbikK
KyAgICB7CisgICAgICAgIHN3aXRjaCAocGxheWJhY2tEaXJlY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uTm9ybWFsOgorICAgICAgICAgICAgcmV0
dXJuIFdJLlVJU3RyaW5nKCJOb3JtYWwiLCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rp
b24gTm9ybWFsIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhp
cyB3ZWIgYW5pbWF0aW9uIGlzIG5vcm1hbCAoZS5nLiBmb3J3YXJkcykiKTsKKyAgICAgICAgY2Fz
ZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uUmV2ZXJzZToKKyAgICAgICAgICAgIHJl
dHVybiBXSS5VSVN0cmluZygiUmV2ZXJzZSIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVj
dGlvbiBSZXZlcnNlIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2Yg
dGhpcyB3ZWIgYW5pbWF0aW9uIGlzIHJldmVyc2VkIChlLmcuIGJhY2t3YXJkcykiKTsKKyAgICAg
ICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uQWx0ZXJuYXRlOgorICAgICAg
ICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBbHRlcm5hdGUiLCAiV2ViIEFuaW1hdGlvbiBQbGF5
YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBk
aXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiBub3JtYWwg
YW5kIHJldmVyc2VkIG9uIGVhY2ggaXRlcmF0aW9uIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0
aW9uLlBsYXliYWNrRGlyZWN0aW9uLkFsdGVybmF0ZVJldmVyc2U6CisgICAgICAgICAgICByZXR1
cm4gV0kuVUlTdHJpbmcoIkFsdGVybmF0ZSBSZXZlcnNlIiwgIldlYiBBbmltYXRpb24gUGxheWJh
Y2sgRGlyZWN0aW9uIEFsdGVybmF0ZSBSZXZlcnNlIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5
YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiBy
ZXZlcnNlZCBhbmQgbm9ybWFsIG9uIGVhY2ggaXRlcmF0aW9uIik7CisgICAgICAgIH0KKworICAg
ICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gcGxheWJhY2sgZGlyZWN0aW9uIiwg
cGxheWJhY2tEaXJlY3Rpb24pOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBz
dGF0aWMgZGlzcGxheU5hbWVGb3JGaWxsTW9kZShmaWxsTW9kZSkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAoZmlsbE1vZGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuTm9u
ZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiTm9uZSIsICJXZWIgQW5pbWF0aW9u
IEZpbGwgTW9kZSBOb25lIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBkb2Vz
IG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMi
KTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuRm9yd2FyZHM6CisgICAgICAg
ICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkZvcndhcmRzIiwgIldlYiBBbmltYXRpb24gRmlsbCBN
b2RlIEZvcndhcmRzIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFw
cGxpZXMgc3R5bGVzIGFmdGVyIGl0IGVuZHMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24u
RmlsbE1vZGUuQmFja3dhcmRzOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCYWNr
d2FyZHMiLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQmFja3dhcmRzIiwgIkluZGljYXRlcyB0
aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBiZWdp
bnMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuQm90aDoKKyAgICAgICAg
ICAgIHJldHVybiBXSS5VSVN0cmluZygiQm90aCIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBC
b3RoIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5
bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMiKTsKKyAgICAgICAgY2FzZSBX
SS5BbmltYXRpb24uRmlsbE1vZGUuQXV0bzoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmlu
ZygiQXV0byIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBBdXRvIiwgIkluZGljYXRlcyB0aGF0
IHRoaXMgd2ViIGFuaW1hdGlvbiBlaXRoZXIgZG9lcyBub3QgYXBwbHkgYW55IHN0eWxlcyBiZWZv
cmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzIG9yIHRoYXQgaXQgYXBwbGllcyB0byBib3Ro
LCBkZXBlbmRpbmcgb24gaXQncyBjb25maWd1cmF0aW9uIik7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gZmlsbCBtb2RlIiwgZmlsbE1vZGUpOwor
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNw
bGF5TmFtZU51bWJlcnMoKQorICAgIHsKKyAgICAgICAgV0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVl
RGlzcGxheU5hbWVOdW1iZXIgPSAxOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0
IGFuaW1hdGlvbklkKCkgeyByZXR1cm4gdGhpcy5fYW5pbWF0aW9uSWQ7IH0KKyAgICBnZXQgYmFj
a3RyYWNlKCkgeyByZXR1cm4gdGhpcy5fYmFja3RyYWNlOyB9CisKKyAgICBnZXQgYW5pbWF0aW9u
VHlwZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fY3NzQW5pbWF0aW9uTmFtZSkKKyAgICAg
ICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb247CisgICAgICAgIGlm
ICh0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkpCisgICAgICAgICAgICByZXR1cm4gV0kuQW5p
bWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjsKKyAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5U
eXBlLldlYkFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBnZXQgc3RhcnREZWxheSgpCisgICAgewor
ICAgICAgICByZXR1cm4gInN0YXJ0RGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVj
dC5zdGFydERlbGF5IDogTmFOOworICAgIH0KKworICAgIGdldCBlbmREZWxheSgpCisgICAgewor
ICAgICAgICByZXR1cm4gImVuZERlbGF5IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3Qu
ZW5kRGVsYXkgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvbkNvdW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uQ291bnQiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMu
X2VmZmVjdC5pdGVyYXRpb25Db3VudCA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9u
U3RhcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRpb25TdGFydCIgaW4gdGhpcy5f
ZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvblN0YXJ0IDogTmFOOworICAgIH0KKworICAg
IGdldCBpdGVyYXRpb25EdXJhdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gIml0ZXJhdGlv
bkR1cmF0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRlcmF0aW9uRHVyYXRp
b24gOiBOYU47CisgICAgfQorCisgICAgZ2V0IHRpbWluZ0Z1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiAidGltaW5nRnVuY3Rpb24iIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVj
dC50aW1pbmdGdW5jdGlvbiA6IG51bGw7CisgICAgfQorCisgICAgZ2V0IHBsYXliYWNrRGlyZWN0
aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAicGxheWJhY2tEaXJlY3Rpb24iIGluIHRoaXMu
X2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5wbGF5YmFja0RpcmVjdGlvbiA6IG51bGw7CisgICAgfQor
CisgICAgZ2V0IGZpbGxNb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiZmlsbE1vZGUiIGlu
IHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5maWxsTW9kZSA6IG51bGw7CisgICAgfQorCisg
ICAgZ2V0IGtleWZyYW1lcygpCisgICAgeworICAgICAgICByZXR1cm4gImtleWZyYW1lcyIgaW4g
dGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LmtleWZyYW1lcyA6IFtdOworICAgIH0KKworICAg
IGdldCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fY3NzQW5pbWF0aW9u
TmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NBbmltYXRpb25OYW1lOworCisgICAg
ICAgIGlmICh0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5OworCisgICAgICAgIGlmICghdGhpcy5fdW5pcXVl
RGlzcGxheU5hbWVOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51
bWJlciA9IFdJLkFuaW1hdGlvbi5fbmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKys7CisgICAg
ICAgIHJldHVybiBXSS5VSVN0cmluZygiQW5pbWF0aW9uICVkIikuZm9ybWF0KHRoaXMuX3VuaXF1
ZURpc3BsYXlOYW1lTnVtYmVyKTsKKyAgICB9CisKKyAgICByZXF1ZXN0RWZmZWN0VGFyZ2V0KGNh
bGxiYWNrKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2VmZmVjdFRhcmdldCAhPT0gdW5kZWZp
bmVkKSB7CisgICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9lZmZlY3RUYXJnZXQpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3RFZmZl
Y3RUYXJnZXRDYWxsYmFja3MpIHsKKyAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJn
ZXRDYWxsYmFja3MucHVzaChjYWxsYmFjayk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzID0gW2NhbGxi
YWNrXTsKKworICAgICAgICBXSS5kb21NYW5hZ2VyLmVuc3VyZURvY3VtZW50KCk7CisKKyAgICAg
ICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworICAgICAgICB0YXJnZXQu
QW5pbWF0aW9uQWdlbnQucmVxdWVzdEVmZmVjdFRhcmdldCh0aGlzLl9hbmltYXRpb25JZCwgKGVy
cm9yLCBub2RlSWQpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2VmZmVjdFRhcmdldCA9ICFlcnJv
ciA/IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkgOiBudWxsOworCisgICAgICAgICAg
ICBmb3IgKGxldCByZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2sgb2YgdGhpcy5fcmVxdWVzdEVm
ZmVjdFRhcmdldENhbGxiYWNrcykKKyAgICAgICAgICAgICAgICByZXF1ZXN0RWZmZWN0VGFyZ2V0
Q2FsbGJhY2sodGhpcy5fZWZmZWN0VGFyZ2V0KTsKKworICAgICAgICAgICAgdGhpcy5fcmVxdWVz
dEVmZmVjdFRhcmdldENhbGxiYWNrcyA9IG51bGw7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IC8vIEFuaW1hdGlvbk1hbmFnZXIKKworICAgIGVmZmVjdENoYW5nZWQoZWZmZWN0KQorICAgIHsK
KyAgICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0
Q2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl9lZmZlY3RUYXJnZXQgPSB1bmRlZmluZWQ7
CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQW5pbWF0aW9uLkV2
ZW50LlRhcmdldENoYW5nZWQpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF91cGRh
dGVFZmZlY3QoZWZmZWN0KQorICAgIHsKKyAgICAgICAgdGhpcy5fZWZmZWN0ID0gZWZmZWN0IHx8
IHt9OworCisgICAgICAgIGlmICh0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24pCisgICAgICAg
ICAgICB0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24gPSBXSS5DdWJpY0Jlemllci5mcm9tU3Ry
aW5nKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbik7CisKKyAgICAgICAgaWYgKHRoaXMuX2Vm
ZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIHRoaXMu
X2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuZWFzaW5n
KQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZS5lYXNpbmcgPSBXSS5DdWJpY0Jlemllci5m
cm9tU3RyaW5nKGtleWZyYW1lLmVhc2luZyk7CisKKyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJh
bWUuc3R5bGUpCisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lLnN0eWxlID0ga2V5ZnJhbWUu
c3R5bGUucmVwbGFjZUFsbCgvO1xzKy9nLCAiO1xuIik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24u
RXZlbnQuRWZmZWN0Q2hhbmdlZCk7CisgICAgfQorfTsKKworV0kuQW5pbWF0aW9uLl9uZXh0VW5p
cXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOworCitXSS5BbmltYXRpb24uVHlwZSA9IHsKKyAgICBX
ZWJBbmltYXRpb246ICJ3ZWItYW5pbWF0aW9uIiwKKyAgICBDU1NBbmltYXRpb246ICJjc3MtYW5p
bWF0aW9uIiwKKyAgICBDU1NUcmFuc2l0aW9uOiAiY3NzLXRyYW5zaXRpb24iLAorfTsKKworV0ku
QW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uID0geworICAgIE5vcm1hbDogIm5vcm1hbCIsCisg
ICAgUmV2ZXJzZTogInJldmVyc2UiLAorICAgIEFsdGVybmF0ZTogImFsdGVybmF0ZSIsCisgICAg
QWx0ZXJuYXRlUmV2ZXJzZTogImFsdGVybmF0ZS1yZXZlcnNlIiwKK307CisKK1dJLkFuaW1hdGlv
bi5GaWxsTW9kZSA9IHsKKyAgICBOb25lOiAibm9uZSIsCisgICAgRm9yd2FyZHM6ICJmb3J3YXJk
cyIsCisgICAgQmFja3dhcmRzOiAiYmFja3dhcmRzIiwKKyAgICBCb3RoOiAiYm90aCIsCisgICAg
QXV0bzogImF1dG8iLAorfTsKKworV0kuQW5pbWF0aW9uLkV2ZW50ID0geworICAgIEVmZmVjdENo
YW5nZWQ6ICJhbmltYXRpb24tZWZmZWN0LWNoYW5nZWQiLAorICAgIFRhcmdldENoYW5nZWQ6ICJh
bmltYXRpb24tdGFyZ2V0LWNoYW5nZWQiLAorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rp
b24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWEyOGE3YjE0OGRlZWJlOGVhNTc2ZmRiMWRhYjBiNWIwYmM0OTFk
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlvbiA9IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb24g
ZXh0ZW5kcyBXSS5Db2xsZWN0aW9uCit7CisgICAgY29uc3RydWN0b3IoYW5pbWF0aW9uVHlwZSkK
KyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFhbmltYXRpb25UeXBlIHx8IE9iamVjdC52
YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAg
ICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvblR5cGUgPSBhbmltYXRpb25U
eXBlIHx8IG51bGw7CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKQorICAgICAg
ICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAgPSBudWxsOworICAgIH0K
KworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvblR5cGUoKSB7IHJldHVybiB0aGlz
Ll9hbmltYXRpb25UeXBlOyB9CisKKyAgICBnZXQgZGlzcGxheU5hbWUoKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGNvbnN0IHBsdXJhbCA9
IHRydWU7CisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yVHlw
ZSh0aGlzLl9hbmltYXRpb25UeXBlLCBwbHVyYWwpOworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpOworICAgIH0KKworICAgIG9iamVjdElz
UmVxdWlyZWRUeXBlKG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICghKG9iamVjdCBpbnN0YW5j
ZW9mIFdJLkFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
cmV0dXJuICF0aGlzLl9hbmltYXRpb25UeXBlIHx8IG9iamVjdC5hbmltYXRpb25UeXBlID09PSB0
aGlzLl9hbmltYXRpb25UeXBlOworICAgIH0KKworICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlKGFuaW1hdGlvblR5cGUpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3Qu
dmFsdWVzKFdJLkFuaW1hdGlvbi5UeXBlKS5pbmNsdWRlcyhhbmltYXRpb25UeXBlKSk7CisKKyAg
ICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlvblR5cGUpOworICAgICAgICAgICAg
cmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbkNv
bGxlY3Rpb25Gb3JUeXBlTWFwKQorICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bkZvclR5cGVNYXAgPSBuZXcgTWFwOworCisgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9u
Rm9yVHlwZSA9IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLmdldChhbmltYXRp
b25UeXBlKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSkgeworICAg
ICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSBuZXcgV0kuQW5pbWF0aW9uQ29s
bGVjdGlvbihhbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxl
Y3Rpb25Gb3JUeXBlTWFwLnNldChhbmltYXRpb25UeXBlLCBhbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaXRlbUFkZGVkKGl0ZW0pCisg
ICAgeworICAgICAgICBzdXBlci5pdGVtQWRkZWQoaXRlbSk7CisKKyAgICAgICAgaWYgKCF0aGlz
Ll9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZv
clR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlw
ZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZS5hZGQoaXRlbSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpdGVtUmVtb3ZlZChpdGVtKQorICAgIHsKKyAgICAgICAg
aWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGl0ZW0uYW5p
bWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZS5yZW1v
dmUoaXRlbSk7CisgICAgICAgIH0KKworICAgICAgICBzdXBlci5pdGVtUmVtb3ZlZChpdGVtKTsK
KyAgICB9CisKKyAgICBpdGVtc0NsZWFyZWQoaXRlbXMpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApIHsKKyAgICAgICAgICAgIGZvciAobGV0
IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlIG9mIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlLmNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAgICBzdXBlci5pdGVtc0NsZWFyZWQo
aXRlbXMpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCmluZGV4
IGM5Y2MzOTYyZTgwZmI2NmZlMTVkYTEzNTRlYTI5MjZiZjg0MWNkY2UuLjMxZDYyN2Q4MTFiZDYz
MzJkYzQ4MDg1Zjk3ZGY1MDY0ZDIwMTI3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVz
dWx0LmpzCkBAIC0xNDYsNyArMTQ2LDcgQEAgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCA9IGNsYXNz
IEF1ZGl0VGVzdENhc2VSZXN1bHQgZXh0ZW5kcyBXSS5BdWRpdFRlc3RSZXN1bHRCYXMKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3Rvcihkb21Ob2RlU3Ry
aW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHsgfQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQp
IHx8IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRvbU1hbmFn
ZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwppbmRleCA2MmJhMjY0
MTA1YWFlZGY0YmE1ZTJiZTM3NTVhMmI1ZDM4YmNmYWQzLi5mZjcxYWY2ZDQzZDI3NmMxMWY3NDM2
MjNiODMyZjk0YjYxZWZlMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKQEAgLTk3LDcgKzk3LDcgQEAgV0kuQ2FudmFz
ID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNhc2UgV0kuQ2FudmFz
LkNvbnRleHRUeXBlLkNhbnZhczJEOgogICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCIy
RCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcjoK
LSAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiQml0bWFwIFJlbmRlcmVy
Iik7CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIsICJD
YW52YXMgQ29udGV4dCBUeXBlIEJpdG1hcCBSZW5kZXJlciIsICJCaXRtYXAgUmVuZGVyZXIgaXMg
YSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCBhIDxjYW52YXM+IGVs
ZW1lbnQiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0w6CiAgICAg
ICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMIik7CiAgICAgICAgIGNh
c2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMjoKQEAgLTEwNiw5ICsxMDYsMTAgQEAgV0ku
Q2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1
cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYiBHUFUiKTsKICAgICAgICAgY2FzZSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViTWV0YWw6CiAgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6
ZWRTdHJpbmcoIldlYk1ldGFsIik7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBjb25z
b2xlLmVycm9yKCJJbnZhbGlkIGNhbnZhcyBjb250ZXh0IHR5cGUiLCBjb250ZXh0VHlwZSk7CiAg
ICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gY2FudmFz
IGNvbnRleHQgdHlwZSIsIGNvbnRleHRUeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAg
fQogCiAgICAgc3RhdGljIHJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5n
LmpzCmluZGV4IDFmOGRkN2VmNDVkNjI5Nzc4Y2Q4Mjg3YmZiOGQzMWIyYTEwODlmMzAuLjUxM2Vm
NzZhZjU2MTQyOTFlMjg2NGFhZWE1OGU3NDdjNjhhODRmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwpAQCAt
MTQ4LDYgKzE0OCwyMyBAQCBXSS5SZWNvcmRpbmcgPSBjbGFzcyBSZWNvcmRpbmcgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgcmV0dXJuIG5ldyBXSS5SZWNvcmRpbmcocGF5bG9hZC52ZXJzaW9u
LCB0eXBlLCBwYXlsb2FkLmluaXRpYWxTdGF0ZSwgZnJhbWVzLCBwYXlsb2FkLmRhdGEpOwogICAg
IH0KIAorICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclJlY29yZGluZ1R5cGUocmVjb3JkaW5nVHlw
ZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocmVjb3JkaW5nVHlwZSkgeworICAgICAgICBjYXNl
IFJlY29yZGluZy5UeXBlLkNhbnZhczJEOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5n
KCIyRCIpOworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc0JpdG1hcFJlbmRlcmVy
OgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiLCAiUmVj
b3JkaW5nIFR5cGUgQ2FudmFzIEJpdG1hcCBSZW5kZXJlciIsICJBIHR5cGUgb2YgY2FudmFzIHJl
Y29yZGluZyBpbiB0aGUgR3JhcGhpY3MgVGFiIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5
cGUuQ2FudmFzV2ViR0w6CisgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmco
IldlYkdMIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0wyOgorICAg
ICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTDIiKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biByZWNvcmRpbmcgdHlw
ZSIsIHJlY29yZGluZ1R5cGUpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKICAgICBz
dGF0aWMgZGlzcGxheU5hbWVGb3JTd2l6emxlVHlwZShzd2l6emxlVHlwZSkKICAgICB7CiAgICAg
ICAgIHN3aXRjaCAoc3dpenpsZVR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIu
anMKaW5kZXggYjExOTVlZDBjYTBjYjBjYTgwNjY4ZTBlOThkYzY3OWRjYWQ5MTdhMy4uN2U1NmU4
YmIzOWNiYTBjNjI4MGVhOWNlZGQ0NWJlNTU0NWYwZjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0
aW9uT2JzZXJ2ZXIuanMKQEAgLTI3LDYgKzI3LDI2IEBAIFdJLkFuaW1hdGlvbk9ic2VydmVyID0g
Y2xhc3MgQW5pbWF0aW9uT2JzZXJ2ZXIgZXh0ZW5kcyBJbnNwZWN0b3JCYWNrZW5kLkRpc3BhdGNo
CiB7CiAgICAgLy8gRXZlbnRzIGRlZmluZWQgYnkgdGhlICJBbmltYXRpb24iIGRvbWFpbi4KIAor
ICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0
aW9uTWFuYWdlci5hbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvbik7CisgICAgfQorCisgICAgZWZm
ZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0
aW9uTWFuYWdlci5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpOworICAgIH0KKwor
ICAgIHRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRp
b25NYW5hZ2VyLnRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpOworICAgIH0KKworICAgIGFuaW1h
dGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1h
bmFnZXIuYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKTsKKyAgICB9CisKICAgICB0cmFj
a2luZ1N0YXJ0KHRpbWVzdGFtcCkKICAgICB7CiAgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdlci5h
bmltYXRpb25UcmFja2luZ1N0YXJ0ZWQodGltZXN0YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5q
cwppbmRleCBkZDAwYWY1OGMxMjUzMDU4NmUxYzI4MzAzMmI3MmZkNjI5ZmEzMmQ5Li4yY2JhNTY0
ZDRhN2I2YTM4YzE4OWU1NzMzZDNjZjNjNjBmYzUxNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0
LmpzCkBAIC0xODgsNiArMTg4LDI1IEBAIFdJLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9i
amVjdAogICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQucmVzb2x2ZUNvbnRleHQoY2FudmFzLmlk
ZW50aWZpZXIsIG9iamVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOwogICAgIH0KIAorICAgIHN0YXRp
YyByZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbiwgb2JqZWN0R3JvdXAsIGNhbGxiYWNrKQorICAg
IHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGNhbGxiYWNrID09PSAiZnVuY3Rpb24i
KTsKKworICAgICAgICBmdW5jdGlvbiB3cmFwQ2FsbGJhY2soZXJyb3IsIG9iamVjdCkgeworICAg
ICAgICAgICAgaWYgKGVycm9yIHx8ICFvYmplY3QpCisgICAgICAgICAgICAgICAgY2FsbGJhY2so
bnVsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbGJhY2soV0kuUmVt
b3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVjdCwgV0kubWFpblRhcmdldCkpOworICAgICAgICB9
CisKKyAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworCisgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRp
b24gZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRhcmdldC5oYXND
b21tYW5kKCJBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiIpKTsKKworICAgICAgICB0YXJnZXQu
QW5pbWF0aW9uQWdlbnQucmVzb2x2ZUFuaW1hdGlvbihhbmltYXRpb24uYW5pbWF0aW9uSWQsIG9i
amVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAg
Z2V0IHRhcmdldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0
Lmh0bWwKaW5kZXggMWQ0NDVhMDRjZGViZWVjZmE3YjBjYjA4ZWQ2ZmJiZDRiZjQ2MWU4NC4uMGJh
NTYwYjk2YzAyMzA2ZWI2MWIzMmJkZjRlYWM4OTkyM2RiZjBjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAtMTA4LDYgKzEwOCw3IEBACiAg
ICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1dvcmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0luc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvU291cmNlQ29kZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMjEsNiArMTIyLDggQEAKICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9Mb2NhbFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0FuaW1hdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Bbmlt
YXRpb25Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Jy
ZWFrcG9pbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVSW5zdHJ1
bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DUFVUaW1lbGluZS5q
cyI+PC9zY3JpcHQ+CkBAIC0xMzcsNyArMTQwLDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0NhbnZhcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xs
ZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25F
bnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50
cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rp
b25UeXBlcy5qcyI+PC9zY3JpcHQ+CkBAIC0yMzgsNiArMjQwLDcgQEAKICAgICA8c2NyaXB0IHNy
Yz0iUHJveGllcy9IZWFwU25hcHNob3RQcm94eS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlByb3hpZXMvSGVhcFNuYXBzaG90V29ya2VyUHJveHkuanMiPjwvc2NyaXB0PgogCisgICAg
PHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0JyZWFrcG9pbnRMb2dNZXNz
YWdlTGV4ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVGVzdC9UZXN0LmpzCmluZGV4IDNjNDNhZTc4YmUxNzI3NzA3MjliNzAzMmFiZTU0
NDQzYzk0NmE4YmIuLjAwNjQ0N2E5NjdlOWMyMzdmNjBjMTAwMDhiYjQ2MzQ1NzJiN2M0NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMK
QEAgLTcwLDYgKzcwLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS53b3Jr
ZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIsCiAgICAgICAgIFdJLmRvbURlYnVnZ2Vy
TWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIsCiAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdl
ciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAgIF07CiAKICAgICAvLyBSZWdpc3RlciBm
b3IgZXZlbnRzLgpAQCAtOTEsNiArOTIsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiBXSS5j
b250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogewogICAgIC8vIFRoaW5ncyB0aGF0IHdvdWxkIG5v
cm1hbGx5IGdldCBjYWxsZWQgYnkgdGhlIFVJLCB0aGF0IHdlIHN0aWxsIHdhbnQgdG8gZG8gaW4g
dGVzdHMuCisgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5hcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgp
OwogICAgIFdJLmRhdGFiYXNlTWFuYWdlci5lbmFibGUoKTsKQEAgLTE4MSw2ICsxODMsNyBAQCBX
SS51cGRhdGVWaXNpYmlsaXR5U3RhdGUgPSAoKSA9PiB7fTsKICAgICAgICAgICAgIGdldCgpIHsg
cmV0dXJuIFdJLm1haW5UYXJnZXQuX2FnZW50c1tkb21haW5OYW1lXTsgfSwKICAgICAgICAgfSk7
CiAgICAgfQorICAgIG1ha2VBZ2VudEdldHRlcigiQW5pbWF0aW9uIik7CiAgICAgbWFrZUFnZW50
R2V0dGVyKCJBdWRpdCIpOwogICAgIG1ha2VBZ2VudEdldHRlcigiQXBwbGljYXRpb25DYWNoZSIp
OwogICAgIG1ha2VBZ2VudEdldHRlcigiQ1BVUHJvZmlsZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzCmluZGV4
IGQ0NDdiODk1MGI5MzkyMWQwYTg2MDEzMDY4YThiMzQ4MmI1MzE4ZGMuLmQyZTk5YWYxYjZlODUx
MDdkZmQ2NmQ0MWEzMTNhNjRlYWU3MDBmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcwpAQCAtMTMxLDYgKzEz
MSw0NiBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2Us
ICFhY3R1YWwsIG1lc3NhZ2UsIGFjdHVhbCk7CiAgICAgfQogCisgICAgZXhwZWN0RW1wdHkoYWN0
dWFsLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8
fCB0eXBlb2YgYWN0dWFsID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0
KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgIWFjdHVhbC5sZW5ndGgsIG1lc3Nh
Z2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0IHx8IGFjdHVhbCBpbnN0YW5jZW9mIE1hcCkgeworICAg
ICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwg
IWFjdHVhbC5zaXplLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICJvYmplY3QiKSB7CisgICAg
ICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5LCBp
c0VtcHR5T2JqZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmZhaWwoImV4cGVjdEVtcHR5IHNob3VsZCBu
b3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAgIEFjdHVhbDogIiArIHRoaXMuX2V4
cGVjdGF0aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAgICB9CisKKyAgICBleHBlY3ROb3RF
bXB0eShhY3R1YWwsIG1lc3NhZ2UpCisgICAgeworICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShh
Y3R1YWwpIHx8IHR5cGVvZiBhY3R1YWwgPT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICB0aGlz
Ll9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5LCAhIWFjdHVhbC5s
ZW5ndGgsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0IHx8IGFjdHVhbCBpbnN0YW5jZW9m
IE1hcCkgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwuc2l6ZSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAi
b2JqZWN0IikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0
aW9uVHlwZS5Ob3RFbXB0eSwgIWlzRW1wdHlPYmplY3QoYWN0dWFsKSwgbWVzc2FnZSwgYWN0dWFs
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZmFpbCgi
ZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6XG4g
ICAgQWN0dWFsOiAiICsgdGhpcy5fZXhwZWN0YXRpb25WYWx1ZUFzU3RyaW5nKGFjdHVhbCkpOwor
ICAgIH0KKwogICAgIGV4cGVjdE51bGwoYWN0dWFsLCBtZXNzYWdlKQogICAgIHsKICAgICAgICAg
dGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5OdWxsLCBhY3R1YWwgPT09
IG51bGwsIG1lc3NhZ2UsIGFjdHVhbCwgbnVsbCk7CkBAIC0zODEsNiArNDIxLDEwIEBAIFRlc3RI
YXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAg
IHJldHVybiAiZXhwZWN0VGhhdCglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVj
dGF0aW9uVHlwZS5GYWxzZToKICAgICAgICAgICAgIHJldHVybiAiZXhwZWN0RmFsc2UoJXMpIjsK
KyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHk6CisgICAgICAg
ICAgICByZXR1cm4gImV4cGVjdEVtcHR5KCVzKSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3Mu
RXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJleHBlY3ROb3RF
bXB0eSglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5OdWxs
OgogICAgICAgICAgICAgcmV0dXJuICJleHBlY3ROdWxsKCVzKSI7CiAgICAgICAgIGNhc2UgVGVz
dEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdE51bGw6CkBAIC00MTYsNiArNDYwLDEwIEBAIFRl
c3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
ICAgIHJldHVybiAidHJ1dGh5IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlv
blR5cGUuRmFsc2U6CiAgICAgICAgICAgICByZXR1cm4gImZhbHNleSI7CisgICAgICAgIGNhc2Ug
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJl
bXB0eSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5
OgorICAgICAgICAgICAgcmV0dXJuICJub3QgZW1wdHkiOwogICAgICAgICBjYXNlIFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3ROdWxsOgogICAgICAgICAgICAgcmV0dXJuICJub3QgbnVs
bCI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVxdWFsOgpA
QCAtNDQwLDYgKzQ4OCw4IEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5k
cyBXSS5PYmplY3QKIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZSA9IHsKICAgICBUcnVlOiBT
eW1ib2woImV4cGVjdC10cnVlIiksCiAgICAgRmFsc2U6IFN5bWJvbCgiZXhwZWN0LWZhbHNlIiks
CisgICAgRW1wdHk6IFN5bWJvbCgiZXhwZWN0LWVtcHR5IiksCisgICAgTm90RW1wdHk6IFN5bWJv
bCgiZXhwZWN0LW5vdC1lbXB0eSIpLAogICAgIE51bGw6IFN5bWJvbCgiZXhwZWN0LW51bGwiKSwK
ICAgICBOb3ROdWxsOiBTeW1ib2woImV4cGVjdC1ub3QtbnVsbCIpLAogICAgIEVxdWFsOiBTeW1i
b2woImV4cGVjdC1lcXVhbCIpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rp
b25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRhMzhmMTYyYmU1MGU3NDdjYTU3ZmVjMmI3
MzkxNTUwZjVkNGFiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAg
LTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxl
Y3Rpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHg7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWVjMWQyY2ZjMWVkOTEwYzk1OWIxOThlM2I4OGVmZTc0YTRhZDkyOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1dJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNv
bGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldworewor
ICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db2xsZWN0
aW9uKTsKKworICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisKKyAgICAgICAgbGV0IGRlc2NyaXB0aW9uRWxlbWVudCA9IGNvbnRl
bnRQbGFjZWhvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7
CisgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5jbGFzc05hbWUgPSAiZGVzY3JpcHRpb24iOwor
CisgICAgICAgIHN3aXRjaCAocmVwcmVzZW50ZWRPYmplY3QuYW5pbWF0aW9uVHlwZSkgeworICAg
ICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbjoKKyAgICAgICAgICAgIGRl
c2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBh
bmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iKTsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOgorICAgICAgICAg
ICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcg
Zm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb246CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBm
b3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENv
bnRlbnQpOworCisgICAgICAgIHN1cGVyKHJlcHJlc2VudGVkT2JqZWN0LCBXSS5BbmltYXRpb25D
b250ZW50VmlldywgY29udGVudFBsYWNlaG9sZGVyKTsKKworICAgICAgICB0aGlzLnNlbGVjdGlv
bkVuYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJh
bmltYXRpb24tY29sbGVjdGlvbiIpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaGFu
ZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgc3Vidmll
dyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9m
IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxl
UmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFByb3Rl
Y3RlZAorCisgICAgY29udGVudFZpZXdBZGRlZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAg
IGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMu
X2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3
TW91c2VMZWF2ZSk7CisgICAgfQorCisgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3
KQorICAgIHsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVy
KCJtb3VzZWVudGVyIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKTsKKyAgICAg
ICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwg
dGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKTsKKyAgICB9CisKKyAgICBkZXRhY2hl
ZCgpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7
CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisK
KyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IGNvbnRlbnRWaWV3ID0gV0kuVmlldy5mcm9tRWxlbWVudChldmVudC50YXJnZXQpOworICAg
ICAgICBpZiAoIShjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gY29udGVu
dFZpZXcucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0
VGFyZ2V0KChub2RlKSA9PiB7CisgICAgICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUub3duZXJE
b2N1bWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBub2RlLmhpZ2hs
aWdodCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3Vz
ZUxlYXZlKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhp
Z2hsaWdodCgpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2M1OTkwNGVmNzNmMzI4NDg2NDE3ODdiYjhiNmMwYmY5MzdhYTUyMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
Ky5jb250ZW50LXZpZXcuYW5pbWF0aW9uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAg
d2lkdGg6IDEwMCU7CisgICAgbWFyZ2luOiA0cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFy
KC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50KTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo
LS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbi5zZWxlY3RlZCB7
CisgICAgb3V0bGluZTogYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7Cit9CisKKy5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGFs
aWduLWl0ZW1zOiBjZW50ZXI7CisgICAgaGVpZ2h0OiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWln
aHQpOworICAgIHBhZGRpbmc6IDAgNnB4OworICAgIGZvbnQtc2l6ZTogMTNweDsKK30KKworLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzIHsKKyAgICB3aGl0ZS1zcGFj
ZTogbm93cmFwOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRs
ZXMgPiAudGl0bGUgeworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktZGFyayk7Cit9
CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRs
ZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQorCisuY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGU6bm90KDpl
bXB0eSk6OmJlZm9yZSB7CisgICAgY29udGVudDogIlwwMEEwXDIwMTRcMDBBMCI7IC8qICZuYnNw
OyZtZGFzaDsmbmJzcDsgKi87Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVy
ID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBib3JkZXI6IG5vbmU7CisgICAgb3BhY2l0eTogMDsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlv
bi1iYXIgeworICAgIG9wYWNpdHk6IDE7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAganVzdGlmeS1jb250ZW50OiBjZW50
ZXI7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2wo
MCwgMCUsIDk2JSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBz
dmcgeworICAgIHdpZHRoOiAxMDAlOworfQorCitib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgeworICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyByZWN0IHsKKyAg
ICBmaWxsOiB0cmFuc3BhcmVudDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lIHsKKyAgICBzdHJva2U6IHZhcigtLWJvcmRlci1jb2xv
cik7CisgICAgc3Ryb2tlLXdpZHRoOiAyOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRoIHsKKyAgICBmaWxsOiB2YXIoLS1nbHlwaC1j
b2xvci1hY3RpdmUpOworICAgIGZpbGwtb3BhY2l0eTogMC41OworICAgIHN0cm9rZTogdmFyKC0t
Z2x5cGgtY29sb3ItYWN0aXZlKTsKKyAgICBzdHJva2Utd2lkdGg6IDE7Cit9CisKKy5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGNpcmNsZSB7CisgICAg
ZmlsbDogdmFyKC0tdGV4dC1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxpbmUgeworICAgIHN0cm9rZTogdmFyKC0tdGV4dC1j
b2xvcik7CisgICAgc3Ryb2tlLXdpZHRoOiAyOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlv
biA+IC5wcmV2aWV3ID4gc3BhbiB7CisgICAgcGFkZGluZzogNHB4OworICAgIGNvbG9yOiB2YXIo
LS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hl
bWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRs
ZXMgPiAudGl0bGUgeworICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgfQor
CisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRp
dGxlIHsKKyAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKKyAgICB9
CisKKyAgICAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3IHsKKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAyMCUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRW
aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDlkNjA2N2NmODY0ZDc0ODczMzM0ZGM5ODNm
Y2EwZmFlNjczYjZiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMzAy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRp
b25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3Io
cmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbik7CisKKyAgICAgICAgc3VwZXIocmVw
cmVzZW50ZWRPYmplY3QpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUg
PSBudWxsOworICAgICAgICB0aGlzLl9jYWNoZWRXaWR0aCA9IE5hTjsKKworICAgICAgICB0aGlz
LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW9uIik7CisgICAgfQorCisgICAgLy8gU3Rh
dGljCisKKyAgICBzdGF0aWMgZ2V0IHByZXZpZXdIZWlnaHQoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIDQwOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRv
bkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAg
fQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAg
ICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoZWFkZXIi
KSk7CisKKyAgICAgICAgbGV0IHRpdGxlc0NvbnRhaW5lciA9IGhlYWRlckVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aXRsZXNDb250
YWluZXIuY2xhc3NOYW1lID0gInRpdGxlcyI7CisKKyAgICAgICAgbGV0IHRpdGxlRWxlbWVudCA9
IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
IikpOworICAgICAgICB0aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpdGxlIjsKKyAgICAgICAg
dGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNwbGF5
TmFtZTsKKworICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQgPSB0aXRsZXNDb250YWluZXIu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgdGhp
cy5fc3VidGl0bGVFbGVtZW50LmNsYXNzTmFtZSA9ICJzdWJ0aXRsZSI7CisKKyAgICAgICAgbGV0
IG5hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdhdGlvbkJhcjsKKworICAgICAgICBsZXQgYW5p
bWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0oImFuaW1hdGlvbi10YXJnZXQiLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIFRhcmdldCIp
LCAiSW1hZ2VzL01hcmt1cC5zdmciLCAxNiwgMTYpOworICAgICAgICBhbmltYXRpb25UYXJnZXRC
dXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRl
bS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICBXSS5hZGRNb3VzZURvd25Db250ZXh0
TWVudUhhbmRsZXJzKGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVsZW1lbnQs
IHRoaXMuX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUuYmluZCh0aGlz
KSk7CisgICAgICAgIG5hdmlnYXRpb25CYXIuYWRkTmF2aWdhdGlvbkl0ZW0oYW5pbWF0aW9uVGFy
Z2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0pOworCisgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5k
KG5hdmlnYXRpb25CYXIuZWxlbWVudCk7CisgICAgICAgIHRoaXMuYWRkU3VidmlldyhuYXZpZ2F0
aW9uQmFyKTsKKworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyID0gdGhpcy5lbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgdGhp
cy5fcHJldmlld0NvbnRhaW5lci5jbGFzc05hbWUgPSAicHJldmlldyI7CisgICAgfQorCisgICAg
bGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmxheW91dCgpOworCisgICAgICAgIHRoaXMu
X3JlZnJlc2hTdWJ0aXRsZSgpOworICAgICAgICB0aGlzLl9yZWZyZXNoUHJldmlldygpOworICAg
IH0KKworICAgIHNpemVEaWRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgc3VwZXIuc2l6ZURpZENo
YW5nZSgpOworCisgICAgICAgIHRoaXMuX2NhY2hlZFdpZHRoID0gdGhpcy5lbGVtZW50LnJlYWxP
ZmZzZXRXaWR0aDsKKyAgICB9CisKKyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBl
ci5hdHRhY2hlZCgpOworCisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRM
aXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlRWZm
ZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZl
bnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxl
VGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1h
dGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2Vk
LCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIC8vIFBy
aXZhdGUKKworICAgIF9yZWZyZXNoU3VidGl0bGUoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5yZXF1ZXN0RWZmZWN0VGFyZ2V0KChkb21Ob2RlKSA9PiB7CisgICAgICAg
ICAgICB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlID0gZG9tTm9kZTsKKworICAgICAgICAg
ICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICBp
ZiAoZG9tTm9kZSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuYXBwZW5k
Q2hpbGQoV0kubGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBfcmVmcmVzaFByZXZpZXcoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmll
d0NvbnRhaW5lci5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAgIGxldCBrZXlmcmFtZXMgPSB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmtleWZyYW1lczsKKyAgICAgICAgaWYgKCFrZXlmcmFtZXMu
bGVuZ3RoKSB7CisgICAgICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAg
IHNwYW4udGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtl
eWZyYW1lcy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxl
dCBzdGFydERlbGF5ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zdGFydERlbGF5IHx8IDA7Cisg
ICAgICAgIGxldCBpdGVyYXRpb25EdXJhdGlvbiA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaXRl
cmF0aW9uRHVyYXRpb24gfHwgMDsKKyAgICAgICAgbGV0IGVuZERlbGF5ID0gdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5lbmREZWxheSB8fCAwOworICAgICAgICBsZXQgdG90YWxEdXJhdGlvbiA9IHN0
YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIGVuZERlbGF5OworICAgICAgICBpZiAodG90
YWxEdXJhdGlvbiA9PT0gMCkgeworICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3
Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7Cisg
ICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9u
IGhhcyBubyBkdXJhdGlvbi4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGNvbnN0IHByZXZpZXdIZWlnaHQgPSBXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcmV2
aWV3SGVpZ2h0OworCisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRSYWRpdXMgPSA0OworICAgICAg
ICBjb25zdCBtYXJrZXJIZWFkUGFkZGluZyA9IDI7CisKKyAgICAgICAgLy8gU3F1ZWV6ZSB0aGUg
ZW50aXJlIHByZXZpZXcgc28gdGhhdCBtYXJrZXJzIGFyZW4ndCBjdXQgb2ZmLgorICAgICAgICBj
b25zdCBzcXVlZXplWFN0YXJ0ID0gKGl0ZXJhdGlvbkR1cmF0aW9uICYmIHN0YXJ0RGVsYXkpID8g
MCA6IG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qg
c3F1ZWV6ZVhFbmQgPSAoaXRlcmF0aW9uRHVyYXRpb24gJiYgZW5kRGVsYXkpID8gMCA6IG1hcmtl
ckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVlT
dGFydCA9IG1hcmtlckhlYWRSYWRpdXMgKyAobWFya2VySGVhZFBhZGRpbmcgKiAyKTsKKworICAg
ICAgICAvLyBNb3ZlIHRoZSBlYXNpbmcgbGluZSBkb3duIHRvIGN1dCBvZmYgdGhlIGJvdHRvbSBi
b3JkZXIuCisgICAgICAgIGNvbnN0IGFkanVzdEVhc2luZ1kgPSAwLjU7CisKKyAgICAgICAgbGV0
IHNlY29uZHNQZXJQaXhlbCA9IHRoaXMuX2NhY2hlZFdpZHRoIC8gdG90YWxEdXJhdGlvbjsKKwor
ICAgICAgICBzdGFydERlbGF5ICo9IHNlY29uZHNQZXJQaXhlbDsKKyAgICAgICAgaXRlcmF0aW9u
RHVyYXRpb24gPSAoaXRlcmF0aW9uRHVyYXRpb24gKiBzZWNvbmRzUGVyUGl4ZWwpIC0gc3F1ZWV6
ZVhTdGFydCAtIHNxdWVlemVYRW5kOworICAgICAgICBlbmREZWxheSAqPSBzZWNvbmRzUGVyUGl4
ZWw7CisKKyAgICAgICAgbGV0IHN2ZyA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hp
bGQoY3JlYXRlU1ZHRWxlbWVudCgic3ZnIikpOworICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCJ2
aWV3Qm94IiwgYDAgMCAke3RoaXMuX2NhY2hlZFdpZHRofSAke3ByZXZpZXdIZWlnaHR9YCk7CisK
KyAgICAgICAgZnVuY3Rpb24gYWRkVGl0bGUocGFyZW50LCB0aXRsZSkgeworICAgICAgICAgICAg
bGV0IHRpdGxlRWxlbWVudCA9IHBhcmVudC5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJ0
aXRsZSIpKTsKKyAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXJ0RGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBz
dGFydERlbGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImci
KSk7CisgICAgICAgICAgICBzdGFydERlbGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImRlbGF5
IiwgInN0YXJ0Iik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5TGluZSA9IHN0YXJ0RGVs
YXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAg
ICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hlaWdodCAr
IHNxdWVlemVZU3RhcnQpIC8gMik7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRy
aWJ1dGUoIngyIiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRB
dHRyaWJ1dGUoInkyIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisg
ICAgICAgICAgICBsZXQgc3RhcnREZWxheUVsZW1lbnQgPSBzdGFydERlbGF5Q29udGFpbmVyLmFw
cGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICBzdGFydERl
bGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgc3RhcnREZWxheSk7CisgICAgICAgICAg
ICBzdGFydERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQp
OworCisgICAgICAgICAgICBjb25zdCBzdGFydERlbGF5VGl0bGVGb3JtYXQgPSBXSS5VSVN0cmlu
ZygiU3RhcnQgRGVsYXkgJXMiLCAiV2ViIEFuaW1hdGlvbiBTdGFydCBEZWxheSBUb29sdGlwIiwg
IlRvb2x0aXAgZm9yIHNlY3Rpb24gb2YgZ3JhcGggcmVwcmVzZW50aW5nIGRlbGF5IGJlZm9yZSBh
IHdlYiBhbmltYXRpb24gYmVnaW5zIGFwcGx5aW5nIHN0eWxlcyIpOworICAgICAgICAgICAgYWRk
VGl0bGUoc3RhcnREZWxheUVsZW1lbnQsIHN0YXJ0RGVsYXlUaXRsZUZvcm1hdC5mb3JtYXQoTnVt
YmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgLyAx
MDAwKSkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVuZERlbGF5KSB7CisgICAgICAgICAg
ICBsZXQgZW5kRGVsYXlDb250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgiZyIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5Q29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJh
bnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIHNx
dWVlemVYU3RhcnR9LCAwKWApOworICAgICAgICAgICAgZW5kRGVsYXlDb250YWluZXIuY2xhc3NM
aXN0LmFkZCgiZGVsYXkiLCAiZW5kIik7CisKKyAgICAgICAgICAgIGxldCBlbmREZWxheUxpbmUg
PSBlbmREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikp
OworICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hl
aWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisgICAgICAgICAgICBlbmREZWxheUxpbmUuc2V0
QXR0cmlidXRlKCJ4MiIsIGVuZERlbGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRB
dHRyaWJ1dGUoInkyIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisg
ICAgICAgICAgICBsZXQgZW5kRGVsYXlFbGVtZW50ID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5k
Q2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxl
bWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9u
ICsgZW5kRGVsYXkpOworICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgi
aGVpZ2h0IiwgcHJldmlld0hlaWdodCk7CisKKyAgICAgICAgICAgIGNvbnN0IGVuZERlbGF5VGl0
bGVGb3JtYXQgPSBXSS5VSVN0cmluZygiRW5kIERlbGF5ICVzIiwgIldlYiBBbmltYXRpb24gRW5k
IERlbGF5IFRvb2x0aXAiLCAiVG9vbHRpcCBmb3Igc2VjdGlvbiBvZiBncmFwaCByZXByZXNlbnRp
bmcgZGVsYXkgYWZ0ZXIgYSB3ZWIgYW5pbWF0aW9uIGZpbmlzaGVzIGFwcGx5aW5nIHN0eWxlcyIp
OworICAgICAgICAgICAgYWRkVGl0bGUoZW5kRGVsYXlFbGVtZW50LCBlbmREZWxheVRpdGxlRm9y
bWF0LmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
ZW5kRGVsYXkgLyAxMDAwKSkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGl0ZXJhdGlvbkR1
cmF0aW9uKSB7CisgICAgICAgICAgICBsZXQgdGltaW5nRnVuY3Rpb24gPSB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LnRpbWluZ0Z1bmN0aW9uOworCisgICAgICAgICAgICBsZXQgYWN0aXZlRHVyYXRp
b25Db250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAg
ICAgICAgICAgIGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIp
OworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25Db250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFu
c2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3RhcnREZWxheSArIHNxdWVlemVYU3RhcnR9LCAke3NxdWVl
emVZU3RhcnR9KWApOworCisgICAgICAgICAgICBjb25zdCBzdGFydFkgPSAwOworICAgICAgICAg
ICAgY29uc3QgZW5kWSA9IHByZXZpZXdIZWlnaHQgLSBzcXVlZXplWVN0YXJ0OworICAgICAgICAg
ICAgY29uc3QgaGVpZ2h0ID0gZW5kWSAtIHN0YXJ0WTsKKworICAgICAgICAgICAgZm9yIChsZXQg
W2tleWZyYW1lQSwga2V5ZnJhbWVCXSBvZiBrZXlmcmFtZXMuYWRqYWNlbmNpZXMoKSkgeworICAg
ICAgICAgICAgICAgIGxldCBzdGFydFggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lQS5v
ZmZzZXQ7CisgICAgICAgICAgICAgICAgbGV0IGVuZFggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtl
eWZyYW1lQi5vZmZzZXQ7CisgICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gZW5kWCAtIHN0YXJ0
WDsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmcgPSBrZXlmcmFtZUEuZWFzaW5nIHx8IHRp
bWluZ0Z1bmN0aW9uOworCisgICAgICAgICAgICAgICAgbGV0IGVhc2luZ0NvbnRhaW5lciA9IGFj
dGl2ZUR1cmF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7
CisgICAgICAgICAgICAgICAgZWFzaW5nQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImVhc2luZyIp
OworICAgICAgICAgICAgICAgIGVhc2luZ0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9y
bSIsIGB0cmFuc2xhdGUoJHtzdGFydFh9LCAke3N0YXJ0WX0pYCk7CisKKyAgICAgICAgICAgICAg
ICBsZXQgeDEgPSBlYXNpbmcuaW5Qb2ludC54ICogd2lkdGg7CisgICAgICAgICAgICAgICAgbGV0
IHkxID0gKCgxIC0gZWFzaW5nLmluUG9pbnQueSkgKiBoZWlnaHQpICsgYWRqdXN0RWFzaW5nWTsK
KyAgICAgICAgICAgICAgICBsZXQgeDIgPSBlYXNpbmcub3V0UG9pbnQueCAqIHdpZHRoOworICAg
ICAgICAgICAgICAgIGxldCB5MiA9ICgoMSAtIGVhc2luZy5vdXRQb2ludC55KSAqIGhlaWdodCkg
KyBhZGp1c3RFYXNpbmdZOworCisgICAgICAgICAgICAgICAgbGV0IGVhc2luZ1BhdGggPSBlYXNp
bmdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpKTsKKyAgICAg
ICAgICAgICAgICBlYXNpbmdQYXRoLnNldEF0dHJpYnV0ZSgiZCIsIGBNIDAgJHtoZWlnaHQgKyBh
ZGp1c3RFYXNpbmdZfSBDICR7eDF9ICR7eTF9ICR7eDJ9ICR7eTJ9ICR7d2lkdGh9ICR7YWRqdXN0
RWFzaW5nWX0gViAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IFpgKTsKKworICAgICAgICAgICAg
ICAgIGxldCB0aXRsZVJlY3QgPSBlYXNpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRl
KCJ3aWR0aCIsIHdpZHRoKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCBoZWlnaHQpOworCisgICAgICAgICAgICAgICAgYWRkVGl0bGUodGl0bGVSZWN0
LCBlYXNpbmcudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAo
bGV0IGtleWZyYW1lIG9mIGtleWZyYW1lcykgeworICAgICAgICAgICAgICAgIGxldCB4ID0gaXRl
cmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZS5vZmZzZXQ7CisKKyAgICAgICAgICAgICAgICBsZXQg
a2V5ZnJhbWVDb250YWluZXIgPSBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChj
cmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgICAgIGtleWZyYW1lQ29udGFpbmVy
LmNsYXNzTGlzdC5hZGQoImtleWZyYW1lIik7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVDb250
YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7eH0sICR7c3RhcnRZ
fSlgKTsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1hcmtlckhlYWQgPSBrZXlmcmFt
ZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJjaXJjbGUiKSk7CisgICAg
ICAgICAgICAgICAga2V5ZnJhbWVNYXJrZXJIZWFkLnNldEF0dHJpYnV0ZSgiciIsIG1hcmtlckhl
YWRSYWRpdXMpOworCisgICAgICAgICAgICAgICAgbGV0IGtleWZyYW1lTWFya2VyTGluZSA9IGtl
eWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7Cisg
ICAgICAgICAgICAgICAga2V5ZnJhbWVNYXJrZXJMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCBoZWln
aHQpOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9IGtleWZyYW1lQ29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICAgICAg
dGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgieCIsIC0xICogKG1hcmtlckhlYWRSYWRpdXMgKyBtYXJr
ZXJIZWFkUGFkZGluZykpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUo
InkiLCAtMSAqIHNxdWVlemVZU3RhcnQpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRB
dHRyaWJ1dGUoIndpZHRoIiwgKG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZykg
KiAyKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBo
ZWlnaHQgKyBzcXVlZXplWVN0YXJ0KTsKKworICAgICAgICAgICAgICAgIGFkZFRpdGxlKHRpdGxl
UmVjdCwga2V5ZnJhbWUuc3R5bGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgX2hhbmRsZUVmZmVjdENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9y
ZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIF9oYW5kbGVUYXJnZXRDaGFuZ2VkKGV2ZW50
KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAgfQorCisgICAg
X3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUoY29udGV4dE1lbnUpCisg
ICAgeworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQW5p
bWF0aW9uIiksICgpID0+IHsKKyAgICAgICAgICAgIFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5p
bWF0aW9uKHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVP
YmplY3RHcm91cCwgKHJlbW90ZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIGlmICghcmVt
b3RlT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAg
ICBjb25zdCB0ZXh0ID0gV0kuVUlTdHJpbmcoIlNlbGVjdGVkIEFuaW1hdGlvbiIsICJBcHBlYXJz
IGFzIGEgbGFiZWwgd2hlbiBhIGdpdmVuIHdlYiBhbmltYXRpb24gaXMgbG9nZ2VkIHRvIHRoZSBD
b25zb2xlIik7CisgICAgICAgICAgICAgICAgY29uc3QgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyA9
IHRydWU7CisgICAgICAgICAgICAgICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVu
ZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhSZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVj
aWFsVXNlckxvZ0NsYXNzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAg
ICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fYW5p
bWF0aW9uVGFyZ2V0RE9NTm9kZSkKKyAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRl
bXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKTsK
KyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNWRiNDZlNDhmMDRjMzk1YTYxYTRiNzRlZWQwMzUzYzIyZmU3MjM0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRl
bnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmhlYWRlciA+IC5zdWJ0
aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQorCisu
c2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMt
c2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24geworICAgIGJhY2tn
cm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTsKK30KKworLnNpZGViYXIgPiAucGFuZWwuZGV0
YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtl
eWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIHsKKyAgICBkaXNwbGF5OiB0YWJs
ZS1yb3c7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRl
bnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlv
biAucm93LnN0eWxlcyAuQ29kZU1pcnJvciB7CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHBhZGRp
bmc6IDRweCAwOworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworfQorCitAbWVk
aWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLnNpZGViYXIgPiAucGFuZWwu
ZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9u
LWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
aHNsKDAsIDAlLCAxOCUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OTFhNWM4MjMzMDJkMTQ3YTA4ODlkMzY2
NGIxNjI1OTU5YjJjYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0w
LDAgKzEsMjU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5l
bCA9IGNsYXNzIEFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5EZXRhaWxz
U2lkZWJhclBhbmVsCit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIo
ImFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uID0gbnVsbDsKKworICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcCA9
IG5ldyBNYXA7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBpbnNwZWN0KG9iamVjdHMp
CisgICAgeworICAgICAgICBpZiAoIShvYmplY3RzIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAg
ICAgICAgb2JqZWN0cyA9IFtvYmplY3RzXTsKKworICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG9i
amVjdHMuZmluZCgob2JqZWN0KSA9PiBvYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOwor
CisgICAgICAgIHJldHVybiAhIXRoaXMuYW5pbWF0aW9uOworICAgIH0KKworICAgIGdldCBhbmlt
YXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbjsKKyAgICB9CisK
KyAgICBzZXQgYW5pbWF0aW9uKGFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIGlmIChhbmltYXRp
b24gPT09IHRoaXMuX2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBp
ZiAodGhpcy5fYW5pbWF0aW9uKSB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFu
ZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmlt
YXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdl
ZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBhbmltYXRpb24gfHwgbnVsbDsKKworICAgICAg
ICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRk
RXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFu
ZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmlt
YXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwg
dGhpcy5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKwor
ICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisK
KyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQo
KTsKKworICAgICAgICB0aGlzLl9uYW1lUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxl
Um93KFdJLlVJU3RyaW5nKCJOYW1lIikpOworICAgICAgICB0aGlzLl90eXBlUm93ID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJUeXBlIikpOworICAgICAgICB0
aGlzLl90YXJnZXRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJp
bmcoIlRhcmdldCIsICJXZWIgQW5pbWF0aW9uIFRhcmdldCBMYWJlbCIsICJMYWJlbCBmb3IgdGhl
IGN1cnJlbnQgRE9NIG5vZGUgdGFyZ2V0IG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsKKworICAgICAg
ICBjb25zdCBpZGVudGl0eVNlY3Rpb25UaXRsZSA9IFdJLlVJU3RyaW5nKCJJZGVudGl0eSIsICJX
ZWIgQW5pbWF0aW9uIElkZW50aXR5IFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0
aW9uIGFib3V0IGEgd2ViIGFuaW1hdGlvbiIpOworICAgICAgICBsZXQgaWRlbnRpdHlTZWN0aW9u
ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24taWRlbnRpdHkiLCBpZGVudGl0eVNl
Y3Rpb25UaXRsZSwgW25ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9uYW1lUm93LCB0
aGlzLl90eXBlUm93LCB0aGlzLl90YXJnZXRSb3ddKV0pOworICAgICAgICB0aGlzLmNvbnRlbnRW
aWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoaWRlbnRpdHlTZWN0aW9uLmVsZW1lbnQpOworCisgICAg
ICAgIHRoaXMuX2l0ZXJhdGlvbkNvdW50Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxl
Um93KFdJLlVJU3RyaW5nKCJJdGVyYXRpb25zIiwgIldlYiBBbmltYXRpb24gSXRlcmF0aW9uIENv
dW50IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgb2YgYSB3ZWIg
YW5pbWF0aW9uIikpOworICAgICAgICB0aGlzLl9pdGVyYXRpb25TdGFydFJvdyA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiU3RhcnQiLCAiV2ViIEFuaW1hdGlv
biBJdGVyYXRpb24gU3RhcnQgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBudW1iZXIgZGVzY3JpYmlu
ZyB3aGljaCBpdGVyYXRpb24gYSB3ZWIgYW5pbWF0aW9uIHNob3VsZCBzdGFydCBhdCIpKTsKKyAg
ICAgICAgdGhpcy5faXRlcmF0aW9uRHVyYXRpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25T
aW1wbGVSb3coV0kuVUlTdHJpbmcoIkR1cmF0aW9uIiwgIldlYiBBbmltYXRpb24gSXRlcmF0aW9u
IER1cmF0aW9uIExhYmVsIiwgIkxhYmVsIGZvciB0aGUgdGltZSBkdXJhdGlvbiBvZiBlYWNoIGl0
ZXJhdGlvbiBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIGxldCBpdGVyYXRpb25zR3Jv
dXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5faXRlcmF0aW9uQ291bnRSb3cs
IHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LCB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvd10pOwor
CisgICAgICAgIHRoaXMuX3N0YXJ0RGVsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IERlbGF5IiwgIldlYiBBbmltYXRpb24gU3RhcnQgRGVs
YXkgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBzdGFydCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1h
dGlvbiAiKSk7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkiLCAiV2ViIEFuaW1hdGlvbiBFbmQg
RGVsYXkgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBlbmQgZGVsYXkgdGltZSBvZiBhIHdlYiBhbmlt
YXRpb24gIikpOworICAgICAgICB0aGlzLl90aW1pbmdGdW5jdGlvblJvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRWFzaW5nIiwgIldlYiBBbmltYXRpb24g
RWFzaW5nIExhYmVsIiwgIkxhYmVsIGZvciB0aGUgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlv
biBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIGxldCB0aW1pbmdHcm91cCA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9zdGFydERlbGF5Um93LCB0aGlzLl9lbmREZWxh
eVJvdywgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3ddKTsKKworICAgICAgICB0aGlzLl9wbGF5YmFj
a0RpcmVjdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmlu
ZygiRGlyZWN0aW9uIiwgIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIExhYmVsIiwg
IkxhYmVsIGZvciB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsK
KyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVS
b3coV0kuVUlTdHJpbmcoIkZpbGwiLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgTGFiZWwiLCAi
TGFiZWwgZm9yIHRoZSBmaWxsIG1vZGUgb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICBs
ZXQgZmlsbERpcmVjdGlvbkdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMu
X3BsYXliYWNrRGlyZWN0aW9uUm93LCB0aGlzLl9maWxsTW9kZVJvd10pOworCisgICAgICAgIGNv
bnN0IGVmZmVjdFNlY3Rpb25UaXRsZSA9IFdJLlVJU3RyaW5nKCJFZmZlY3QiLCAiV2ViIEFuaW1h
dGlvbiBFZmZlY3QgVGl0bGUiLCAiU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQg
dGhlIGVmZmVjdCBvZiBhIHdlYiBhbmltYXRpb24iKTsKKyAgICAgICAgbGV0IGVmZmVjdFNlY3Rp
b24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1lZmZlY3QiLCBlZmZlY3RTZWN0
aW9uVGl0bGUsIFtpdGVyYXRpb25zR3JvdXAsIHRpbWluZ0dyb3VwLCBmaWxsRGlyZWN0aW9uR3Jv
dXBdKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGVmZmVj
dFNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fa2V5ZnJhbWVzR3JvdXAgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25Hcm91cDsKKworICAgICAgICBjb25zdCBrZXlmcmFtZXNTZWN0aW9u
VGl0bGUgPSBXSS5VSVN0cmluZygiS2V5ZnJhbWVzIiwgIldlYiBBbmltYXRpb24gS2V5ZnJhbWVz
IFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBrZXlmcmFt
ZXMgb2YgYSB3ZWIgYW5pbWF0aW9uIik7CisgICAgICAgIGxldCBrZXlmcmFtZXNTZWN0aW9uID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24ta2V5ZnJhbWVzIiwga2V5ZnJhbWVzU2Vj
dGlvblRpdGxlLCBbdGhpcy5fa2V5ZnJhbWVzR3JvdXBdKTsKKyAgICAgICAgdGhpcy5jb250ZW50
Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGtleWZyYW1lc1NlY3Rpb24uZWxlbWVudCk7CisKKyAg
ICAgICAgY29uc3Qgc2VsZWN0YWJsZSA9IGZhbHNlOworICAgICAgICBsZXQgYmFja3RyYWNlVHJl
ZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmUoc2VsZWN0YWJsZSk7CisgICAgICAgIGJhY2t0
cmFjZVRyZWVPdXRsaW5lLmRpc2Nsb3N1cmVCdXR0b25zID0gZmFsc2U7CisgICAgICAgIHRoaXMu
X2JhY2t0cmFjZVRyZWVDb250cm9sbGVyID0gbmV3IFdJLkNhbGxGcmFtZVRyZWVDb250cm9sbGVy
KGJhY2t0cmFjZVRyZWVPdXRsaW5lKTsKKworICAgICAgICBsZXQgYmFja3RyYWNlUm93ID0gbmV3
IFdJLkRldGFpbHNTZWN0aW9uUm93OworICAgICAgICBiYWNrdHJhY2VSb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChiYWNrdHJhY2VUcmVlT3V0bGluZS5lbGVtZW50KTsKKworICAgICAgICBjb25zdCBi
YWNrdHJhY2VTZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygiQmFja3RyYWNlIiwgIldlYiBBbmlt
YXRpb24gQmFja3RyYWNlIFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUgZm9yIHRoZSBKYXZhU2NyaXB0
IGJhY2t0cmFjZSBvZiB0aGUgY3JlYXRpb24gb2YgYSB3ZWIgYW5pbWF0aW9uIik7CisgICAgICAg
IHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlv
bi1iYWNrdHJhY2UiLCBiYWNrdHJhY2VTZWN0aW9uVGl0bGUsIFtuZXcgV0kuRGV0YWlsc1NlY3Rp
b25Hcm91cChbYmFja3RyYWNlUm93XSldKTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlv
bi5lbGVtZW50LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQpOworICAgIH0KKwor
ICAgIGxheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5sYXlvdXQoKTsKKworICAgICAgICBp
ZiAoIXRoaXMuX2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz
Ll9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hFZmZlY3RT
ZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKCk7CisKKyAg
ICAgICAgZm9yIChsZXQgY29kZU1pcnJvciBvZiB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC52
YWx1ZXMoKSkKKyAgICAgICAgICAgIGNvZGVNaXJyb3IucmVmcmVzaCgpOworICAgIH0KKworICAg
IC8vIFByaXZhdGUKKworICAgIF9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX25hbWVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZGlzcGxheU5hbWU7Cisg
ICAgICAgIHRoaXMuX3R5cGVSb3cudmFsdWUgPSBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JB
bmltYXRpb25UeXBlKHRoaXMuX2FuaW1hdGlvbi5hbmltYXRpb25UeXBlKTsKKworICAgICAgICB0
aGlzLl90YXJnZXRSb3cudmFsdWUgPSBudWxsOworICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVx
dWVzdEVmZmVjdFRhcmdldCgoZG9tTm9kZSkgPT4geworICAgICAgICAgICAgdGhpcy5fdGFyZ2V0
Um93LnZhbHVlID0gZG9tTm9kZSA/IFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKGRvbU5vZGUpIDog
bnVsbDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCkK
KyAgICB7CisgICAgICAgIGZvciAobGV0IHNlY3Rpb24gb2YgdGhpcy5fY29kZU1pcnJvclNlY3Rp
b25NYXAua2V5cygpKQorICAgICAgICAgICAgc2VjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxl
RGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlz
Ll9jb2RlTWlycm9yU2VjdGlvbk1hcC5jbGVhcigpOworCisgICAgICAgIGNvbnN0IHByZWNpc2lv
biA9IDA7CisgICAgICAgIGNvbnN0IHJlYWRPbmx5ID0gdHJ1ZTsKKworICAgICAgICB0aGlzLl9p
dGVyYXRpb25Db3VudFJvdy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9u
Q291bnQpID8gdGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50LnRvTG9jYWxlU3RyaW5nKCkg
OiBudWxsOworICAgICAgICB0aGlzLl9pdGVyYXRpb25TdGFydFJvdy52YWx1ZSA9ICFpc05hTih0
aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQpID8gdGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlv
blN0YXJ0LnRvTG9jYWxlU3RyaW5nKCkgOiBudWxsOworICAgICAgICB0aGlzLl9pdGVyYXRpb25E
dXJhdGlvblJvdy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRp
b24pID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uRHVy
YXRpb24gLyAxMDAwKSA6IG51bGw7CisKKyAgICAgICAgdGhpcy5fc3RhcnREZWxheVJvdy52YWx1
ZSA9IHRoaXMuX2FuaW1hdGlvbi5zdGFydERlbGF5ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0
aGlzLl9hbmltYXRpb24uc3RhcnREZWxheSAvIDEwMDApIDogbnVsbDsKKyAgICAgICAgdGhpcy5f
ZW5kRGVsYXlSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZW5kRGVsYXkgPyBOdW1iZXIuc2Vj
b25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5lbmREZWxheSAvIDEwMDApIDogbnVsbDsKKyAg
ICAgICAgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24udGlt
aW5nRnVuY3Rpb24gPyB0aGlzLl9hbmltYXRpb24udGltaW5nRnVuY3Rpb24udG9TdHJpbmcoKSA6
IG51bGw7CisKKyAgICAgICAgdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25Sb3cudmFsdWUgPSB0aGlz
Ll9hbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24gPyBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVG
b3JQbGF5YmFja0RpcmVjdGlvbih0aGlzLl9hbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pIDog
bnVsbDsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24u
ZmlsbE1vZGUgPyBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JGaWxsTW9kZSh0aGlzLl9hbmlt
YXRpb24uZmlsbE1vZGUpIDogbnVsbDsKKworICAgICAgICBsZXQga2V5ZnJhbWVTZWN0aW9ucyA9
IFtdOworICAgICAgICBmb3IgKGxldCBrZXlmcmFtZSBvZiB0aGlzLl9hbmltYXRpb24ua2V5ZnJh
bWVzKSB7CisgICAgICAgICAgICBsZXQgcm93cyA9IFtdOworCisgICAgICAgICAgICBsZXQga2V5
ZnJhbWVTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24ta2V5ZnJhbWUt
b2Zmc2V0LSIgKyBrZXlmcmFtZS5vZmZzZXQsIE51bWJlci5wZXJjZW50YWdlU3RyaW5nKGtleWZy
YW1lLm9mZnNldCwgcHJlY2lzaW9uKSk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb24uYWRk
RXZlbnRMaXN0ZW5lcihXSS5EZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5n
ZWQsIHRoaXMuX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbnMucHVzaChrZXlmcmFtZVNlY3Rpb24pOwor
CisgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuZWFzaW5nKSB7CisgICAgICAgICAgICAgICAgbGV0
IHN1YnRpdGxlID0ga2V5ZnJhbWVTZWN0aW9uLmhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZS5j
bGFzc05hbWUgPSAic3VidGl0bGUiOworICAgICAgICAgICAgICAgIHN1YnRpdGxlLnRleHRDb250
ZW50ID0gYCAke2VtRGFzaH0gJHtrZXlmcmFtZS5lYXNpbmcudG9TdHJpbmcoKX1gOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpIHsKKyAgICAgICAgICAg
ICAgICBsZXQgY29kZU1pcnJvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgICAgICAgICBsZXQgY29kZU1pcnJvciA9IFdJLkNvZGVNaXJyb3JFZGl0b3Iu
Y3JlYXRlKGNvZGVNaXJyb3JFbGVtZW50LCB7CisgICAgICAgICAgICAgICAgICAgIG1vZGU6ICJj
c3MiLAorICAgICAgICAgICAgICAgICAgICByZWFkT25seTogIm5vY3Vyc29yIiwKKyAgICAgICAg
ICAgICAgICAgICAgbGluZVdyYXBwaW5nOiB0cnVlLAorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0VmFsdWUoa2V5ZnJhbWUuc3R5bGUpOworCisgICAg
ICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBudWxsOworICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IG9wdGlvbnNGb3JUeXBlKHR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRUb2tlbnM6IC9cYnRhZ1xiLywKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKG1hcmtlciwgdmFsdWVPYmplY3QsIHZhbHVlU3RyaW5n
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBXSS5Jbmxp
bmVTd2F0Y2godHlwZSwgdmFsdWVPYmplY3QsIHJlYWRPbmx5KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2RlTWlycm9yLnNldFVuaXF1ZUJvb2ttYXJrKG1hcmtlci5yYW5nZS5zdGFy
dFBvc2l0aW9uKCkudG9Db2RlTWlycm9yKCksIHN3YXRjaC5lbGVtZW50KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckNvbG9yVGV4dE1hcmtlcnMoY29kZU1p
cnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkNvbG9yKSk7
CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckdyYWRpZW50VGV4dE1hcmtlcnMoY29k
ZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkdyYWRp
ZW50KSk7CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVyVGV4dE1h
cmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5U
eXBlLkJlemllcikpOworICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0
TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNo
LlR5cGUuU3ByaW5nKSk7CisKKyAgICAgICAgICAgICAgICBsZXQgcm93ID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uUm93OworICAgICAgICAgICAgICAgIHJvdy5lbGVtZW50LmNsYXNzTGlzdC5hZGQo
InN0eWxlcyIpOworICAgICAgICAgICAgICAgIHJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGNvZGVN
aXJyb3JFbGVtZW50KTsKKyAgICAgICAgICAgICAgICByb3dzLnB1c2gocm93KTsKKworICAgICAg
ICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLnNldChrZXlmcmFtZVNlY3Rpb24s
IGNvZGVNaXJyb3IpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXJvd3MubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uUm93KFdJLlVJU3RyaW5nKCJObyBTdHlsZXMiKSk7CisgICAgICAgICAgICAgICAgZW1wdHlS
b3cuc2hvd0VtcHR5TWVzc2FnZSgpOworICAgICAgICAgICAgICAgIHJvd3MucHVzaChlbXB0eVJv
dyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbi5ncm91cHMg
PSBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAocm93cyldOworICAgICAgICB9CisgICAgICAg
IGlmICgha2V5ZnJhbWVTZWN0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxldCBlbXB0eVJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdyhXSS5VSVN0cmluZygiTm8gS2V5ZnJhbWVzIikp
OworICAgICAgICAgICAgZW1wdHlSb3cuc2hvd0VtcHR5TWVzc2FnZSgpOworICAgICAgICAgICAg
a2V5ZnJhbWVTZWN0aW9ucy5wdXNoKGVtcHR5Um93KTsKKyAgICAgICAgfQorICAgICAgICB0aGlz
Ll9rZXlmcmFtZXNHcm91cC5yb3dzID0ga2V5ZnJhbWVTZWN0aW9uczsKKyAgICB9CisKKyAgICBf
cmVmcmVzaEJhY2t0cmFjZVNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgbGV0IGNhbGxGcmFtZXMg
PSB0aGlzLl9hbmltYXRpb24uYmFja3RyYWNlOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VUcmVl
Q29udHJvbGxlci5jYWxsRnJhbWVzID0gY2FsbEZyYW1lczsKKyAgICAgICAgdGhpcy5fYmFja3Ry
YWNlU2VjdGlvbi5lbGVtZW50LmhpZGRlbiA9ICFjYWxsRnJhbWVzLmxlbmd0aDsKKyAgICB9CisK
KyAgICBfaGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAg
IHRoaXMuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7CisgICAgfQorCisgICAgX2hhbmRsZUFuaW1h
dGlvblRhcmdldENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoSWRl
bnRpdHlTZWN0aW9uKCk7CisgICAgfQorCisgICAgX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFw
c2VkU3RhdGVDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSB0
aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5nZXQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgY29k
ZU1pcnJvci5yZWZyZXNoKCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNz
cwppbmRleCA0ZTVhOTBlMWYwMzE3ZjBjNGViZjRmNzk5NzAyNzZjN2ZiZDI3ZjU4Li5jYzE2NmJk
M2U2MGQzODFhNzVhMWExNzk0M2FiZTIzNjcwN2E4YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVu
dFZpZXcuY3NzCkBAIC0yMywxMSArMjMsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRl
bnQtdmlldy5jYW52YXMgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgeworLmNvbnRl
bnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBqdXN0
aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICBhbGlnbi1pdGVtczogY2VudGVyOwpAQCAtMzYsMTcg
KzM2LDE3IEBACiAgICAgcGFkZGluZzogMTVweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6
bm90KC50YWIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICBkaXNwbGF5OiBmbGV4Owog
ICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5v
dCgudGFiKSA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZp
ZXcgPiBpbWcgewogICAgIG1heC13aWR0aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAxMDAlOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiA6bWF0Y2hlcyhoZWFkZXIsIGZv
b3RlcikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3Rlcikg
ewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKQEAgLTU2LDcgKzU2LDcgQEAKIH0KIAogQG1lZGlh
IChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuY2FudmFz
Om5vdCgudGFiKSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB1bnNldDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCmlu
ZGV4IDliNGZkNmY2ZWQ3ZTFjYjc2Mzk3NTExMTAxMTUzMjQ2NTRkNThmMDEuLjk5M2RhNTEzZjJk
ZDU2MzNmZDc5NDgzZWE0Y2E5ZmZiYTk2ZWZjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3
LmpzCkBAIC00NSw3ICs0NSw3IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFz
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIHRoaXMuX3JlZnJl
c2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVm
cmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAx
MywgMTMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJp
bGl0eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsK
LSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5yZWZyZXNoUHJl
dmlldywgdGhpcyk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5h
ZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRo
aXMuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0
aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQi
KSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0
aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bS5FdmVudC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwpAQCAt
NzcsNiArNzcsMjkgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIGhh
bmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVmcmVzaFBy
ZXZpZXcoKTsKKyAgICB9CisKKyAgICAvLyBEcm9wWm9uZVZpZXcgZGVsZWdhdGUKKworICAgIGRy
b3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KGRyb3Bab25lLCBldmVudCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIik7
CisgICAgfQorCisgICAgZHJvcFpvbmVIYW5kbGVEcm9wKGRyb3Bab25lLCBldmVudCkKKyAgICB7
CisgICAgICAgIGxldCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAg
aWYgKGZpbGVzLmxlbmd0aCAhPT0gMSkgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmJlZXAoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFdJ
LkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFn
ZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAg
ICBpbml0aWFsTGF5b3V0KCkKQEAgLTE2MCw2ICsxODMsMTMgQEAgV0kuQ2FudmFzQ29udGVudFZp
ZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAg
ICAgICAgaWYgKGlzQ2FyZCkKICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hQaXhlbFNpemUoKTsK
KworICAgICAgICBpZiAoIWlzQ2FyZCkgeworICAgICAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9
IG5ldyBXSS5Ecm9wWm9uZVZpZXcodGhpcyk7CisgICAgICAgICAgICBkcm9wWm9uZVZpZXcudGV4
dCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQgUmVjb3JkaW5nIik7CisgICAgICAgICAgICBkcm9wWm9u
ZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKKyAgICAgICAgICAgIHRoaXMuYWRk
U3Vidmlldyhkcm9wWm9uZVZpZXcpOworICAgICAgICB9CiAgICAgfQogCiAgICAgbGF5b3V0KCkK
QEAgLTE5MSwxMyArMjIxLDYgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXND
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX3VwZGF0ZUlt
YWdlR3JpZCgpOwogICAgIH0KIAotICAgIHNob3duKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnNo
b3duKCk7Ci0KLSAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOwotICAgIH0KLQogICAgIGF0
dGFjaGVkKCkKICAgICB7CiAgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CkBAIC0yMjMsNiArMjQ2
LDggQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIH0pOwogCiAgICAgICAgIFdJLnNldHRpbmdzLnNo
b3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRo
aXMuX3VwZGF0ZUltYWdlR3JpZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmll
dygpOwogICAgIH0KIAogICAgIGRldGFjaGVkKCkKQEAgLTI5MSwxMSArMzE2LDYgQEAgV0kuQ2Fu
dmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAKICAgICBfcG9wdWxhdGVDYW52YXNFbGVtZW50QnV0dG9uQ29udGV4dE1lbnUoY29u
dGV4dE1lbnUpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fY2FudmFzTm9kZSkKLSAgICAgICAg
ICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlz
Ll9jYW52YXNOb2RlKTsKLQotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsK
LQogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQ2FudmFz
IENvbnRleHQiKSwgKCkgPT4gewogICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVD
YW52YXNDb250ZXh0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNv
bnNvbGVPYmplY3RHcm91cCwgKHJlbW90ZU9iamVjdCkgPT4gewogICAgICAgICAgICAgICAgIGlm
ICghcmVtb3RlT2JqZWN0KQpAQCAtMzA2LDYgKzMyNiwxMSBAQCBXSS5DYW52YXNDb250ZW50Vmll
dyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAg
ICAgICAgICAgICBXSS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhl
Y3V0aW9uV2l0aFJlc3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xh
c3MpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZFNlcGFyYXRvcigpOworCisgICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKQorICAg
ICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUs
IHRoaXMuX2NhbnZhc05vZGUpOwogICAgIH0KIAogICAgIF9zaG93R3JpZEJ1dHRvbkNsaWNrZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwppbmRleCAxMGYz
N2MwNDZiMGMyYTEyODJjNWVjOTlkYzZjYjk5MGIyMjM2YzVmLi4xYzZkNjQzMWY5YjdkNjM2ZThm
M2U4Y2UxNWM2YmIyYTY1YjEzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LmNzcwpAQCAtMjYsMjkgKzI2LDI5IEBACiAuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyB7CiAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgYWxpZ24taXRlbXM6
IGZsZXgtc3RhcnQ7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwotCi0g
ICAgLS1pdGVtLW1hcmdpbjogMTBweDsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgcGFk
ZGluZzogNHB4IDA7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50
LXZpZXcuY2FudmFzIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgewogICAgIGZsZXgtZ3JvdzogMDsKLSAgICBtYXJnaW46IHZhcigtLWl0ZW0t
bWFyZ2luKTsKKyAgICBmbGV4LXNocmluazogMDsKICAgICB3aWR0aDogNDAwcHg7CisgICAgbWFy
Z2luOiA0cHg7CiAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAg
ICBjdXJzb3I6IHBvaW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzLAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiB3aGl0ZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgewog
ICAgIGJvcmRlci1jb2xvcjogcmVkOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNo
ZXMoaGVhZGVyLCBmb290ZXIpIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0
aW9uOiByb3c7CiAgICAgZmxleC1zaHJpbms6IDA7CkBAIC01OSwxMzYgKzU5LDEzNiBAQAogICAg
IGN1cnNvcjogZGVmYXVsdDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciB7CiAgICAgZm9udC1zaXplOiAxM3B4
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5zaXpl
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBoZWFkZXIgPiAudGl0bGVzLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5zaXplIHsKICAgICB3aGl0ZS1zcGFjZTogbm93
cmFwOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0
bGUgewogICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktZGFyayk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4g
LnRpdGxlcyA+IC5zdWJ0aXRsZSwKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+
IC5zdWJ0aXRsZSwKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICBjb2xvcjogdmFyKC0tdGV4dC1j
b2xvci1ncmF5LW1lZGl1bSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIC5zdWJ0aXRsZTo6YmVmb3JlIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgLnN1
YnRpdGxlOjpiZWZvcmUgewogICAgIGNvbnRlbnQ6ICJcMDBBMFwyMDE0XDAwQTAiOyAvKiAmbmJz
cDsmbWRhc2g7Jm5ic3A7ICovOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAg
ICBjb2xvcjogd2hpdGU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1
YnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewog
ICAgIGNvbG9yOiB2YXIoLS1zZWxlY3RlZC1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CiAgICAgZmlsdGVyOiBicmln
aHRuZXNzKDApIGludmVydCgpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4g
Lm5hdmlnYXRpb24tYmFyIHsKICAgICBhbGlnbi1pdGVtczogaW5pdGlhbDsKICAgICBib3JkZXI6
IG5vbmU7CiAgICAgb3BhY2l0eTogMDsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVh
c2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4g
Lm5hdmlnYXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRl
ciA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgb3BhY2l0eTogMTsKICAgICB0cmFuc2l0aW9uOiBv
cGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVy
ID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJsZWQgewor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3Qo
LnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVj
b3JkLXN0YXJ0LXN0b3AuZGlzYWJsZWQgewogICAgIGZpbHRlcjogZ3JheXNjYWxlKCk7CiAgICAg
b3BhY2l0eTogMC41OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6aG92ZXIgewor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3Qo
LnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVj
b3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6aG92ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0
bmVzcyg5NSUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24t
YmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5y
ZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29y
ZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRu
ZXNzKDgwJSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3MtdmlldywKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXcsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgewogICAgIGhlaWdodDogMjgwcHg7
CiAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlLWluLW91dDsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CiAgICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NiUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByZXZp
ZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gLnByZXZpZXcgewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnBy
ZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAg
ICAgYm94LXNoYWRvdzogMXB4IDJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjU4KTsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmll
dyA+IC5tZXNzYWdlLXRleHQtdmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiAubWVzc2FnZS10ZXh0LXZpZXcgewog
ICAgIHBvc2l0aW9uOiBzdGF0aWM7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgewogICAgIGJvcmRlci10b3A6
IG5vbmU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVs
YXRlZC1pdGVtcyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBhbGlnbi1pdGVtczogY2VudGVy
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiA6bWF0Y2hlcygudmlldy1zaGFkZXIs
IC52aWV3LXJlY29yZGluZykgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiA6bWF0Y2hl
cygudmlldy1zaGFkZXIsIC52aWV3LXJlY29yZGluZykgewogICAgIHdpZHRoOiAxNnB4OwogICAg
IGhlaWdodDogMTZweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gaW1nICsgaW1n
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gaW1nICsgaW1nIHsKICAgICAtd2Via2l0
LW1hcmdpbi1zdGFydDogNHB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmll
dy1zaGFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1zaGFkZXIgewog
ICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwg
dXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJl
bGF0ZWQtaXRlbXMgPiAudmlldy1yZWNvcmRpbmcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRl
bXMgPiAudmlldy1yZWNvcmRpbmcgewogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3Jk
aW5nLnN2Zyk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gZm9vdGVyID4gLmZsZXhpYmxlLXNwYWNlIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxleGlibGUt
c3BhY2UgewogICAgIGZsZXg6IDE7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1v
cnktY29zdCB7CiAgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGlu
Z3MgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cy5zYXZlZC1yZWNvcmRpbmdzIHsKICAgICBoZWlnaHQ6IDM0MHB4OwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdz
IC50cmVlLW91dGxpbmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgewogICAgIG92ZXJm
bG93LXk6IHNjcm9sbDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lID4gLml0ZW0ucmVj
b3JkaW5nID4gLmljb24geworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNv
cmRpbmcgPiAuaWNvbiB7CiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3Zn
KTsKIH0KIApAQCAtMjA5LDQzICsyMDksMzkgQEAKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9y
LXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKLSAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMsCi0gICAgLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7
CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cywKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1i
YWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5w
cm9ncmVzcy12aWV3OmhvdmVyLAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92ZXIgeworICAgIC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+
IC5wcm9ncmVzcy12aWV3OmhvdmVyLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CiAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItdGVydGlhcnkpOwogICAgIH0KIAot
ICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CiAgICAgICAgIC0tcmVjb3JkaW5n
LWNvbG9yOiBoc2woMCwgMTAwJSwgMzklKTsKICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1y
ZWNvcmRpbmctY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgeworICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigt
LXJlY29yZGluZy1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsK
KyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0
LWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCi0gICAgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
Lm1lbW9yeS1jb3N0IHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKKyAgICAuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVy
IC5tZW1vcnktY29zdCB7CiAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFy
eSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBmb290ZXIgLnZpZXctcmVjb3JkaW5nIHsKKyAgICAuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC52aWV3LXJl
Y29yZGluZyB7CiAgICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7CiAgICAgfQogCi0gICAgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFj
dGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgIC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+
IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewogICAgICAgICBjb2xvcjogdW5zZXQ7CiAg
ICAgICAgIG9wYWNpdHk6IDAuNQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LmpzCmluZGV4IDYzOWIzNmQ4NTliYjdjZjNjMzQ0NDVhYTBlYjc0OTU0MzNjNDEw
OTguLjBkMTY1ZGQyNjhkNDM3MDI4YTQzZDE0OWUwN2NmYTgzOGI0ZGU3YWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwpAQCAtMjksNyArMjksOCBAQCBXSS5D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyBleHRlbmRzIFdJLkNvbGxlYwogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKTsKIAotICAgICAgICBs
ZXQgY29udGVudFBsYWNlaG9sZGVyID0gV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3KFdJLlVJU3Ry
aW5nKCJObyBDYW52YXMgQ29udGV4dHMiKSk7CisgICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xk
ZXIgPSBXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCA/IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpIDogV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJObyBDYW52
YXMgQ29udGV4dHMiKSk7CisKICAgICAgICAgbGV0IGRlc2NyaXB0aW9uRWxlbWVudCA9IGNvbnRl
bnRQbGFjZWhvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7
CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5jbGFzc05hbWUgPSAiZGVzY3JpcHRpb24iOwog
ICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2Fp
dGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iKTsKQEAg
LTYyLDIxICs2Myw3IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlz
Ll91cGRhdGVSZWNvcmRpbmdBdXRvQ2FwdHVyZUNoZWNrYm94TGFiZWwoZnJhbWVDb3VudCk7CiAg
ICAgICAgIH0KIAotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5l
dyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LXJlY29yZGluZyIsIFdJLlVJU3RyaW5n
KCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1KTsKLSAgICAgICAgdGhpcy5f
aW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbHRpcCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQi
KTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUg
PSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7Ci0KLSAgICAgICAg
dGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRp
b25JdGVtKCJyZWZyZXNoLWFsbCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIGFsbCIpLCAiSW1hZ2Vz
L1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5h
dmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRv
bk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
RXZlbnQuQ2xpY2tlZCwgdGhpcy5fcmVmcmVzaFByZXZpZXdzLCB0aGlzKTsKLQotICAgICAgICB0
aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9u
TmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5j
eSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMv
TmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOwotICAgICAgICB0aGlzLl9zaG93
R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0lt
YWdlR3JpZC52YWx1ZTsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5lbmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlj
a2VkLCB0aGlzLl9zaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwotCiAgICAgICAgIGltcG9y
dE5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
RXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlj
a2VkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRk
RXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlz
Ll9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwogCiAgICAg
ICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3ID0gbnVsbDsKICAgICAgICAgdGhp
cy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUgPSBudWxsOwpAQCAtOTAsMTcgKzc3LDE4IEBA
IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAKICAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKICAg
ICB7Ci0gICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbdGhpcy5faW1wb3J0QnV0dG9uTmF2
aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3JlZnJlc2hC
dXR0b25OYXZpZ2F0aW9uSXRlbSwgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbV07
Ci0gICAgICAgIGlmIChXSS5DYW52YXNNYW5hZ2VyLnN1cHBvcnRzUmVjb3JkaW5nQXV0b0NhcHR1
cmUoKSkKLSAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy51bnNoaWZ0KHRoaXMuX3JlY29yZGlu
Z0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0p
OworICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW107CisgICAgICAgIGlmICh0aGlzLl9y
ZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtKQorICAgICAgICAgICAgbmF2aWdhdGlv
bkl0ZW1zLnB1c2godGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSk7CiAg
ICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7CiAgICAgfQogCi0gICAgaGlkZGVuKCkKKyAg
ICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCiAgICAgewotICAgICAgICBXSS5kb21NYW5h
Z2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Ci0KLSAgICAgICAgc3VwZXIuaGlkZGVuKCk7Cisg
ICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAgICAgICAgICAg
aWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAg
ICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTExNSwyMyArMTAzLDE4IEBAIFdJLkNhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLnJlbW92ZVN1YnZpZXcodGhpcy5fc2F2ZWRS
ZWNvcmRpbmdzQ29udGVudFZpZXcpOwogICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMu
X3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3KTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMu
X3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpOwogICAgIH0KIAogICAgIGNvbnRlbnRWaWV3UmVtb3Zl
ZChjb250ZW50VmlldykKICAgICB7CiAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3Zl
RXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2NvbnRlbnRWaWV3TW91c2VFbnRlcik7
CiAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vs
ZWF2ZSIsIHRoaXMuX2NvbnRlbnRWaWV3TW91c2VMZWF2ZSk7Ci0KLSAgICAgICAgdGhpcy5fdXBk
YXRlTmF2aWdhdGlvbkl0ZW1zKCk7CiAgICAgfQogCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAg
ICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKIAotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VH
cmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl91cGRh
dGVTaG93SW1hZ2VHcmlkLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3Jk
aW5nQXV0b0NhcHR1cmVFbmFibGVkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5D
aGFuZ2VkLCB0aGlzLl9oYW5kbGVDYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWRDaGFu
Z2VkLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1
cmVGcmFtZUNvdW50LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0
aGlzLl9oYW5kbGVDYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnRDaGFuZ2VkLCB0
aGlzKTsKIApAQCAtMTQxLDQ5ICsxMjQsMjcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAg
ICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lLnJlbW92ZUNoaWxkcmVu
KCk7CiAgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVk
UmVjb3JkaW5ncykKICAgICAgICAgICAgIHRoaXMuX2FkZFNhdmVkUmVjb3JkaW5nKHJlY29yZGlu
Zyk7CisKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAg
ICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAg
ICAgICAgICAgICAgIHN1YnZpZXcucmVmcmVzaFByZXZpZXcoKTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIGRldGFjaGVkKCkKICAgICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5v
ZGVIaWdobGlnaHQoKTsKKwogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlz
dGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVj
b3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVs
bCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJl
RW5hYmxlZC5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBX
SS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwg
dGhpcyk7CiAKICAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKICAgICB9CiAKICAgICAvLyBQcml2
YXRlCiAKLSAgICBnZXQgX2l0ZW1NYXJnaW4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHBhcnNl
SW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1
ZSgiLS1pdGVtLW1hcmdpbiIpKTsKLSAgICB9Ci0KLSAgICBfcmVmcmVzaFByZXZpZXdzKCkKLSAg
ICB7Ci0gICAgICAgIGZvciAobGV0IGNhbnZhc0NvbnRlbnRWaWV3IG9mIHRoaXMuc3Vidmlld3Mp
Ci0gICAgICAgICAgICBjYW52YXNDb250ZW50Vmlldy5yZWZyZXNoUHJldmlldygpOwotICAgIH0K
LQotICAgIF91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKQotICAgIHsKLSAgICAgICAgbGV0IGhhc0l0
ZW1zID0gISF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemU7Ci0gICAgICAgIHRoaXMuX3JlZnJl
c2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gaGFzSXRlbXM7Ci0gICAgICAgIHRoaXMu
X3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGhhc0l0ZW1zOwotICAgIH0K
LQotICAgIF9zaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZlbnQpCi0gICAgewotICAgICAgICBXSS5z
ZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uYWN0aXZhdGVkOwotICAgIH0KLQotICAgIF91cGRhdGVTaG93SW1hZ2VHcmlkKCkK
LSAgICB7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZh
dGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOwotICAgIH0KLQogICAgIF9j
b250ZW50Vmlld01vdXNlRW50ZXIoZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgY29udGVudFZp
ZXcgPSBXSS5WaWV3LmZyb21FbGVtZW50KGV2ZW50LnRhcmdldCk7CkBAIC0zMDEsOCArMjYyLDcg
QEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3Jk
aW5nc0NvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRSZWNvcmRpbmdz
VHJlZU91dGxpbmUuZWxlbWVudCk7CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBzdWJ0aXRs
ZSA9IG51bGw7Ci0gICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5l
cmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0
aXRsZSwgcmVjb3JkaW5nKTsKKyAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3
IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5h
bWUsIFdJLlJlY29yZGluZy5kaXNwbGF5TmFtZUZvclJlY29yZGluZ1R5cGUocmVjb3JkaW5nLnR5
cGUpLCByZWNvcmRpbmcpOwogICAgICAgICByZWNvcmRpbmdUcmVlRWxlbWVudC5zZWxlY3RhYmxl
ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lLmFwcGVu
ZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFy
UGFuZWwuanMKaW5kZXggY2I1YjkwZDQyZDFkNjBiYzU4NWJkM2FiMTE1ZGQwYzIzZWFiMjQxZS4u
NjAzZjVhZWE0N2ViMmIzMDY4ZjRiNTY5YTg5YzhkZmI5YzkzZTc1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1NpZGViYXJQYW5lbC5qcwpAQCAtMjM3LDEwICsyMzcsOCBAQCBXSS5DYW52YXNTaWRlYmFyUGFu
ZWwgPSBjbGFzcyBDYW52YXNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJh
clBhbgogCiAgICAgY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQog
ICAgIHsKLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFz
Q29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICByZXR1cm4g
c3VwZXIuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAg
ICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCisgICAgICAg
ICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZzsKICAgICB9
CiAKICAgICAvLyBQcm90ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODlkYWI1ZWY5OTc5ZDYyYjgxMTU5ODlhOTE2
NDA0MTNjNzJhOGNkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJD
b250ZW50Vmlldy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52
YXMtb3ZlcnZpZXcgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzT3Zl
cnZpZXcuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtIC5jYW52YXMuY2FudmFzLTJkIC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4v
SW1hZ2VzL0NhbnZhczJELnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2
aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNoZXMoLndlYmdsLCAud2ViZ2wyLCAud2Vi
Z3B1LCAud2VibWV0YWwpIC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZh
czNELnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIg
PiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMv
UmVjb3JkaW5nLnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlv
bi1iYXIgPiAuaXRlbSAuc2hhZGVyLXByb2dyYW0gPiAuaWNvbiB7Ci0gICAgY29udGVudDogaW1h
Z2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0Rv
Y3VtZW50R0xAMngucG5nKSAyeCk7Ci19Ci0KLUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6
IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0gICAgICAgIGZpbHRlcjogaW52ZXJ0KDYw
JSk7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtIC5jYW52YXMgLmljb24sCi0gICAgLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7Ci0gICAgICAgIGZpbHRl
cjogaW52ZXJ0KCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUxZGJlNDgwMWU1NTdiYzdjMjBlNTJlYzc3
YzgwOTk5ZDU2YThkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJD
b250ZW50Vmlldy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNUYWJDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcKLXsKLSAgICBjb25zdHJ1Y3Rv
cihyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFyZXBy
ZXNlbnRlZE9iamVjdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcyk7
Ci0KLSAgICAgICAgbGV0IHRhYkJhckl0ZW0gPSBXSS5HZW5lcmFsVGFiQmFySXRlbS5mcm9tVGFi
SW5mbyhXSS5DYW52YXNUYWJDb250ZW50Vmlldy50YWJJbmZvKCkpOwotCi0gICAgICAgIGNvbnN0
IG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciA9IFdJLkNhbnZhc1NpZGViYXJQYW5l
bDsKLSAgICAgICAgY29uc3QgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyA9IFtXSS5S
ZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwsIFdJLlJlY29yZGluZ1RyYWNlRGV0YWls
c1NpZGViYXJQYW5lbCwgV0kuQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbF07Ci0gICAgICAgIGNv
bnN0IGRpc2FibGVCYWNrRm9yd2FyZCA9IHRydWU7Ci0gICAgICAgIHN1cGVyKCJjYW52YXMiLCBb
ImNhbnZhcyJdLCB0YWJCYXJJdGVtLCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3Is
IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2FyZCk7Ci0K
LSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbiA9IG5ldyBXSS5DYW52YXNDb2xsZWN0aW9u
OwotCi0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5l
OwotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24g
PSB0cnVlOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVy
KFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fY2FudmFzVHJl
ZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX292ZXJ2
aWV3VHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KCJjYW52YXMtb3ZlcnZp
ZXciLCBXSS5VSVN0cmluZygiT3ZlcnZpZXciKSwgbnVsbCwgdGhpcy5fY2FudmFzQ29sbGVjdGlv
bik7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHRoaXMuX292
ZXJ2aWV3VHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVF
bGVtZW50ID0gbmV3IFdJLkZvbGRlclRyZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJTYXZlZCBSZWNv
cmRpbmdzIiksIFdJLlJlY29yZGluZ0NvbGxlY3Rpb24pOwotICAgICAgICB0aGlzLl9zYXZlZFJl
Y29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSB0cnVlOwotICAgICAgICB0aGlzLl9vdmVydmll
d1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50
KTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0
Y3V0KG51bGwsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFj
ZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuaW1wbGljaXRseVBy
ZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNh
YmxlZCA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dCA9
IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hp
ZnQsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5k
KHRoaXMpKTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5pbXBsaWNp
dGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZy
YW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
ZW5hYmxlKCk7Ci0gICAgfQotCi0gICAgc3RhdGljIHRhYkluZm8oKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHsKLSAgICAgICAgICAgIGltYWdlOiAiSW1hZ2VzL0NhbnZhcy5zdmciLAotICAgICAg
ICAgICAgdGl0bGU6IFdJLlVJU3RyaW5nKCJDYW52YXMiKSwKLSAgICAgICAgfTsKLSAgICB9Ci0K
LSAgICBzdGF0aWMgaXNUYWJBbGxvd2VkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0
b3JCYWNrZW5kLmhhc0RvbWFpbigiQ2FudmFzIik7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0K
LSAgICB0cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxl
bWVudChyZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgfQotCi0gICAgZ2V0IHR5cGUoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGU7Ci0gICAgfQotCi0g
ICAgZ2V0IHN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3NlcigpCi0gICAgewotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBnZXQgbWFuYWdlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgY2FuU2hvd1JlcHJl
c2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCi0gICAgICAgICAgICB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24KLSAgICAgICAgICAg
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nCi0gICAgICAgICAg
ICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW07Ci0gICAg
fQotCi0gICAgc2hvd24oKQotICAgIHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAgICAg
ICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9y
ZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgaWYg
KCF0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldykKLSAgICAgICAgICAgIHRo
aXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwotICAgIH0K
LQotICAgIGhpZGRlbigpCi0gICAgewotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNh
YmxlZCA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlz
YWJsZWQgPSB0cnVlOwotCi0gICAgICAgIHN1cGVyLmhpZGRlbigpOwotICAgIH0KLQotICAgIGNs
b3NlZCgpCi0gICAgewotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKLQotICAg
ICAgICBzdXBlci5jbG9zZWQoKTsKLSAgICB9Ci0KLSAgICByZXN0b3JlU3RhdGVGcm9tQ29va2ll
KGNvb2tpZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KLSAgICB9Ci0KLSAgICBzYXZlU3Rh
dGVUb0Nvb2tpZShjb29raWUpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9u
Y2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCi0gICAgfQotCi0g
ICAgYXN5bmMgaGFuZGxlRmlsZURyb3AoZmlsZXMpCi0gICAgewotICAgICAgICBhd2FpdCBXSS5G
aWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2Vy
LnByb2Nlc3NKU09OKHJlc3VsdCkpOwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0gICAg
YXR0YWNoZWQoKQotICAgIHsKLSAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKLQotICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5D
YW52YXNBZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOwotICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52
YXNSZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKLSAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVj
b3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsK
LSAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29y
ZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsK
LQotICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOwotCi0g
ICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiB0aGlzLl9jYW52YXNDb2xsZWN0aW9uKSB7Ci0gICAg
ICAgICAgICBpZiAoIWNhbnZhc2VzLmluY2x1ZGVzKGNhbnZhcykpCi0gICAgICAgICAgICAgICAg
dGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxl
dCBjYW52YXMgb2YgY2FudmFzZXMpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzQ29s
bGVjdGlvbi5oYXMoY2FudmFzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9hZGRDYW52YXMoY2Fu
dmFzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVt
ZW50LnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5j
YW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlY29y
ZGluZyhyZWNvcmRpbmcsIHtzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWV9KTsKLSAgICB9Ci0K
LSAgICBkZXRhY2hlZCgpCi0gICAgewotICAgICAgICBXSS5DYW52YXMucmVtb3ZlRXZlbnRMaXN0
ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotCi0gICAgICAgIHN1cGVyLmRldGFjaGVk
KCk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2FkZENhbnZhcyhjYW52YXMpCi0g
ICAgewotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyBX
SS5DYW52YXNUcmVlRWxlbWVudChjYW52YXMpKTsKLSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVj
dGlvbi5hZGQoY2FudmFzKTsKLQotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAg
ICAgc3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlLAotICAgICAgICB9OwotCi0gICAgICAgIGZv
ciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikKLSAgICAgICAg
ICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOwotICAgIH0KLQotICAg
IF9yZW1vdmVDYW52YXMoY2FudmFzKQotICAgIHsKLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0g
dGhpcy5fY2FudmFzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcyk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlzc2luZyB0cmVlIGVsZW1lbnQgZm9yIGNh
bnZhcy4iLCBjYW52YXMpOwotCi0gICAgICAgIGNvbnN0IHN1cHByZXNzTm90aWZpY2F0aW9uID0g
dHJ1ZTsKLSAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxlY3Qoc3VwcHJlc3NOb3RpZmljYXRpb24p
OwotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVt
ZW50KTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLnJlbW92ZShjYW52YXMpOwot
Ci0gICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmNvbnRlbnRCcm93c2VyLmN1
cnJlbnRDb250ZW50VmlldzsKLSAgICAgICAgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5j
ZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQotICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVk
T2JqZWN0KHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwotICAgICAgICBlbHNlIGlmIChjdXJyZW50
Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAmJiBjYW52YXMu
cmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2Jq
ZWN0KSkKLSAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIudXBkYXRlSGllcmFyY2hpY2Fs
UGF0aEZvckN1cnJlbnRDb250ZW50VmlldygpOwotCi0gICAgICAgIGxldCBuYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsOwotICAgICAgICBpZiAobmF2
aWdhdGlvblNpZGViYXJQYW5lbCBpbnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQYW5lbCAmJiBu
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLnZpc2libGUpCi0gICAgICAgICAgICBuYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsLnVwZGF0ZVJlcHJlc2VudGVkT2JqZWN0cygpOwotCi0gICAgICAgIHRoaXMuc2hv
d0RldGFpbHNTaWRlYmFyUGFuZWxzKCk7Ci0gICAgfQotCi0gICAgX2FkZFJlY29yZGluZyhyZWNv
cmRpbmcsIG9wdGlvbnMgPSB7fSkKLSAgICB7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nLnNvdXJj
ZSkgewotICAgICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOwotICAgICAgICAgICAgbGV0
IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29y
ZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOwotICAg
ICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7
Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGls
ZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIW9wdGlv
bnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nKQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50
ZWRPYmplY3QocmVjb3JkaW5nKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZl
bnQpCi0gICAgewotICAgICAgICB0aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5jYW52YXMpOwot
ICAgIH0KLQotICAgIF9oYW5kbGVDYW52YXNSZW1vdmVkKGV2ZW50KQotICAgIHsKLSAgICAgICAg
dGhpcy5fcmVtb3ZlQ2FudmFzKGV2ZW50LmRhdGEuY2FudmFzKTsKLSAgICB9Ci0KLSAgICBfY2Fu
dmFzVHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCi0gICAgewotICAgICAgICBs
ZXQgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVl
RWxlbWVudDsKLSAgICAgICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgbGV0IHJlcHJlc2VudGVkT2JqZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJl
cHJlc2VudGVkT2JqZWN0OwotICAgICAgICBpZiAoIXRoaXMuY2FuU2hvd1JlcHJlc2VudGVkT2Jq
ZWN0KHJlcHJlc2VudGVkT2JqZWN0KSkgewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFs
c2UsICJVbmV4cGVjdGVkIHJlcHJlc2VudGVkT2JqZWN0LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuc2hvd1JlcHJl
c2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlUmVj
b3JkaW5nU2F2ZWRPclN0b3BwZWQoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQge3JlY29yZGlu
ZywgaW5pdGlhdGVkQnlVc2VyLCBpbXBvcnRlZH0gPSBldmVudC5kYXRhOwotICAgICAgICBpZiAo
IXJlY29yZGluZykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgb3B0aW9ucyA9
IHt9OwotCi0gICAgICAgIC8vIEFsd2F5cyBzaG93IGltcG9ydGVkIHJlY29yZGluZ3MuCi0gICAg
ICAgIGlmIChyZWNvcmRpbmcuc291cmNlIHx8ICFpbXBvcnRlZCkKLSAgICAgICAgICAgIG9wdGlv
bnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRl
bnRCcm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmpl
Y3QpID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsKLQotICAg
ICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKLSAgICB9Ci0KLSAg
ICBfaGFuZGxlU3BhY2UoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoV0kuaXNFdmVudFRhcmdl
dEFuRWRpdGFibGVGaWVsZChldmVudCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
aWYgKCF0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgbGV0IGNhbnZhcyA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbC5jYW52YXM7
Ci0gICAgICAgIGlmICghY2FudmFzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlm
IChjYW52YXMucmVjb3JkaW5nQWN0aXZlKQotICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRp
bmcoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2
ZW50LnNoaWZ0S2V5OwotICAgICAgICAgICAgY2FudmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZy
YW1lKTsKLSAgICAgICAgfQotCi0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAg
fQotfTsKLQotV0kuQ2FudmFzVGFiQ29udGVudFZpZXcuVHlwZSA9ICJjYW52YXMiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKaW5kZXggZmUzM2U3YWNkOWYxNjFiMmNjMGNl
NzFjZDUyNGE0OTFhZGQzM2MyYi4uNWNlOGRiMGYzMDhkZDk4OTg0YjMxYmI5NGNjNWY3OWMzOTVj
MmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0zMywxNCAr
MzMsMTcgQEAKICAgICBmbGV4LWdyb3c6IDE7CiB9CiAKLS5jb250ZW50LXZpZXcuY29sbGVjdGlv
biAucmVzb3VyY2UuaW1hZ2UgaW1nIHsKLSAgICBvdXRsaW5lOiAwLjVweCBzb2xpZCB2YXIoLS1i
b3JkZXItY29sb3IpOwotfQotCi0uY29udGVudC12aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmlt
YWdlIGltZzpob3ZlciB7Ci0gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0
aXZlKQotfQotCiAuY29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAuY29udGVudC12aWV3W2hpZGRl
bl0gewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CisKKy5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+
IC5wbGFjZWhvbGRlcjpub3QoLm1lc3NhZ2UtdGV4dC12aWV3KSB7CisgICAgZGlzcGxheTogZmxl
eDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIGp1c3RpZnktY29udGVudDogY2Vu
dGVyOworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgd2lkdGg6IDEwMCU7CisgICAgdGV4
dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogMTNweDsKKyAgICBjb2xvcjogdmFyKC0t
dGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZp
ZXcuanMKaW5kZXggMDU0NzQxNjgxYzgxOGJlNWJjYWE1ZDZmZjE5ZDUzNzI5YjdiMzg2Ni4uNTA1
YTRhN2JkZTQ1NTIzYjMwZGE0ZjZiY2E3N2I0ZDhjY2QxMDZjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxl
Y3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMjgsNyArMjgsNyBAQCBXSS5Db2xsZWN0aW9uQ29udGVu
dFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmll
dwogICAgIGNvbnN0cnVjdG9yKGNvbGxlY3Rpb24sIGNvbnRlbnRWaWV3Q29uc3RydWN0b3IsIGNv
bnRlbnRQbGFjZWhvbGRlcikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbGxlY3Rp
b24gaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29u
dGVudFZpZXdDb25zdHJ1Y3RvciBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoIWNvbnRlbnRWaWV3Q29uc3RydWN0b3IgfHwgY29udGVudFZpZXdDb25z
dHJ1Y3Rvci5wcm90b3R5cGUgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7CiAKICAgICAgICAg
c3VwZXIoY29sbGVjdGlvbik7CiAKQEAgLTM4LDcgKzM4LDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKICAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCA9IG51bGw7CiAgICAg
ICAgIHRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IgPSBjb250ZW50Vmlld0NvbnN0cnVjdG9y
OwogICAgICAgICB0aGlzLl9jb250ZW50Vmlld01hcCA9IG5ldyBNYXA7Ci0gICAgICAgIHRoaXMu
X2hhbmRsZUNsaWNrTWFwID0gbmV3IFdlYWtNYXA7CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRl
bSA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTsKICAgICB9
CkBAIC04MywxOSArODIsMjUgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29s
bGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHRo
aXMuX3NlbGVjdEl0ZW0obnVsbCk7CiAgICAgfQogCi0gICAgc2V0U2VsZWN0ZWRJdGVtKGl0ZW0p
CisgICAgZ2V0IHNlbGVjdGVkSXRlbSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2Vs
ZWN0ZWRJdGVtOworICAgIH0KKworICAgIHNldCBzZWxlY3RlZEl0ZW0oaXRlbSkKICAgICB7CiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQsICJBdHRlbXB0ZWQg
dG8gc2V0IHNlbGVjdGVkIGl0ZW0gd2hlbiBzZWxlY3Rpb24gaXMgZGlzYWJsZWQuIik7CiAgICAg
ICAgIGlmICghdGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBsZXQgY29udGVudFZpZXcgPSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LCAiTWlzc2luZyBjb250ZXQgdmll
dyBmb3IgaXRlbS4iLCBpdGVtKTsKLSAgICAgICAgaWYgKCFjb250ZW50VmlldykKLSAgICAgICAg
ICAgIHJldHVybjsKLQogICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAgICBj
b250ZW50Vmlldy5lbGVtZW50LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTsKKworICAgICAgICBp
ZiAoaXRlbSkgeworICAgICAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gdGhpcy5fY29udGVudFZp
ZXdNYXAuZ2V0KGl0ZW0pOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcs
ICJNaXNzaW5nIGNvbnRlbnQgdmlldyBmb3IgaXRlbS4iLCBpdGVtKTsKKyAgICAgICAgICAgIGlm
IChjb250ZW50VmlldykKKyAgICAgICAgICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnNjcm9s
bEludG9WaWV3SWZOZWVkZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3Rl
ZApAQCAtMTIwLDIwICsxMjUsOSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBD
b2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIGxl
dCBjb250ZW50VmlldyA9IG5ldyB0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKGl0ZW0sIHRo
aXMuY29udGVudFZpZXdDb25zdHJ1Y3Rvck9wdGlvbnMpOwogICAgICAgICBjb25zb2xlLmFzc2Vy
dChjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKLQotICAgICAgICBsZXQg
aGFuZGxlQ2xpY2sgPSAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGlmIChldmVudC5idXR0b24g
IT09IDAgfHwgZXZlbnQuY3RybEtleSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQotICAgICAgICAgICAgICAgIHRoaXMu
X3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV0ku
c2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOwotICAgICAgICB9OworICAgICAgICBjb25zb2xl
LmFzc2VydChjb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCA9PT0gaXRlbSk7CiAKICAgICAg
ICAgdGhpcy5fY29udGVudFZpZXdNYXAuc2V0KGl0ZW0sIGNvbnRlbnRWaWV3KTsKLSAgICAgICAg
dGhpcy5faGFuZGxlQ2xpY2tNYXAuc2V0KGl0ZW0sIGhhbmRsZUNsaWNrKTsKLSAgICAgICAgY29u
dGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGhhbmRsZUNsaWNrKTsK
IAogICAgICAgICB0aGlzLmFkZFN1YnZpZXcoY29udGVudFZpZXcpOwogICAgICAgICB0aGlzLmNv
bnRlbnRWaWV3QWRkZWQoY29udGVudFZpZXcpOwpAQCAtMTY5LDE0ICsxNjMsNiBAQCBXSS5Db2xs
ZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogCiAgICAgICAgIGNvbnRlbnRWaWV3LnJlbW92ZUV2ZW50TGlzdGVuZXIo
bnVsbCwgbnVsbCwgdGhpcyk7CiAKLSAgICAgICAgbGV0IGhhbmRsZUNsaWNrID0gdGhpcy5faGFu
ZGxlQ2xpY2tNYXAuZ2V0KGl0ZW0pOwotICAgICAgICBjb25zb2xlLmFzc2VydChoYW5kbGVDbGlj
ayk7Ci0KLSAgICAgICAgaWYgKGhhbmRsZUNsaWNrKSB7Ci0gICAgICAgICAgICBjb250ZW50Vmll
dy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwgaGFuZGxlQ2xpY2spOwotICAg
ICAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAuZGVsZXRlKGl0ZW0pOwotICAgICAgICB9Ci0K
ICAgICAgICAgaWYgKCF0aGlzLnN1YnZpZXdzLmxlbmd0aCkKICAgICAgICAgICAgIHRoaXMuc2hv
d0NvbnRlbnRQbGFjZWhvbGRlcigpOwogICAgIH0KQEAgLTIwMCw2ICsxODYsOCBAQCBXSS5Db2xs
ZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVs
ZW1lbnQgPSB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXI7CiAgICAgICAgIH0KIAorICAgICAgICB0
aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoInBsYWNlaG9sZGVy
Iik7CisKICAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50LnBhcmVu
dE5vZGUpCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY29udGVu
dFBsYWNlaG9sZGVyRWxlbWVudCk7CiAgICAgfQpAQCAtMjEyLDEwICsyMDAsMTEgQEAgV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKIAogICAgIGluaXRpYWxMYXlvdXQoKQogICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRlbnRWaWV3Q29uc3Ry
dWN0b3IpIHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpCisgICAg
ICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5k
bGVDbGljay5iaW5kKHRoaXMpKTsKKworICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmpl
Y3Quc2l6ZSB8fCAhdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikKICAgICAgICAgICAgIHRo
aXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9CiAgICAgfQogCiAgICAgYXR0YWNoZWQoKQpAQCAtMjkyLDYgKzI4MSwzMCBAQCBXSS5Db2xs
ZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogICAgICAgICAgICAgc2VsZWN0ZWRDb250ZW50Vmlldy5lbGVtZW50LmNs
YXNzTGlzdC5hZGQoInNlbGVjdGVkIik7CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0
ZWRJdGVtQ2hhbmdlZCk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJ
LkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5n
ZSk7CiAgICAgfQorCisgICAgX2hhbmRsZUNsaWNrKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYg
KGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGZvciAobGV0IFtpdGVtLCBjb250ZW50Vmlld10gb2YgdGhpcy5fY29udGVu
dFZpZXdNYXApIHsKKyAgICAgICAgICAgIGlmIChjb250ZW50Vmlldy5lbGVtZW50LmNvbnRhaW5z
KGV2ZW50LnRhcmdldCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5h
YmxlZCkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVtKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9i
amVjdChpdGVtKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAg
IHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7CisgICAgfQorfTsKKworV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LkV2ZW50ID0geworICAgIFNlbGVjdGVkSXRlbUNoYW5nZWQ6ICJjb2xsZWN0aW9uLWNv
bnRlbnQtdmlldy1zZWxlY3RlZC1pdGVtLWNoYW5nZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKaW5k
ZXggZGY5MTJkZDU2ZmEwN2RmOTQ4ZjBkN2Y3YWYwZDdjNmQxYjc5YTJmNi4uMjk2YzJhNTQyM2Ew
ZjY5MWVhYzdkMmQwZTkzNjAwZjUxNTRmMGRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKQEAgLTYwLDkg
KzYwLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZp
ZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKQog
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXNDb250ZW50VmlldyhyZXByZXNlbnRlZE9i
amVjdCwgZXh0cmFBcmd1bWVudHMpOwogCi0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gbmV3IFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1l
bnRzKTsKLQogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFk
ZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5TaGFkZXJQcm9ncmFtQ29udGVu
dFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIApAQCAtMTgyLDYgKzE3
OSw5IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3
CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdy
b3VwIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1
bHQpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkF1ZGl0VGVzdEdyb3VwQ29udGVudFZpZXco
cmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAorICAgICAgICBpZiAocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4g
bmV3IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3Vt
ZW50cyk7CisKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ29s
bGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3
KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKQEAgLTI3Myw4ICsyNzMsNiBA
QCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAo
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
aWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuVGltZWxpbmVSZWNvcmRpbmcpCkBA
IC0zMTgsMTAgKzMxNiwxNCBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5BdWRpdFRlc3RDYXNlIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRU
ZXN0R3JvdXAKICAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
QXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1
ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmICh0eXBl
b2YgcmVwcmVzZW50ZWRPYmplY3QgPT09ICJzdHJpbmciIHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChy
ZXByZXNlbnRlZE9iamVjdFtXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9sXSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01
MTIsNCArNTE0LDUgQEAgV0kuQ29udGVudFZpZXcuRXZlbnQgPSB7CiAgICAgTmF2aWdhdGlvbkl0
ZW1zRGlkQ2hhbmdlOiAiY29udGVudC12aWV3LW5hdmlnYXRpb24taXRlbXMtZGlkLWNoYW5nZSIK
IH07CiAKK1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVTeW1ib2wgPSBTeW1ib2woImlzLXZpZXdh
YmxlIik7CiBXSS5Db250ZW50Vmlldy5Db250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0U3lt
Ym9sID0gU3ltYm9sKCJjb250ZW50LXZpZXctZm9yLXJlcHJlc2VudGVkLW9iamVjdCIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWls
c1NlY3Rpb25TaW1wbGVSb3cuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcwppbmRleCBlNWE1ZmVjMWVhYmI1YzA5
NzJjZmEwNTNkNTM0YzM2MDA5ZTFiNzZmLi43ZWQwYzgyZWIzYjcxZWViNmJiYjFmOTdlOTc5MGY2
YmJiYzU1NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcwpAQCAt
OTYsNyArOTYsNyBAQCBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyA9IGNsYXNzIERldGFpbHNT
ZWN0aW9uU2ltcGxlUm93IGV4dGVuZHMgV0kuRGV0YWlsc1NlYwogICAgIHsKICAgICAgICAgdGhp
cy5fdmFsdWUgPSB2YWx1ZSB8fCAiIjsKIAotICAgICAgICBpZiAodGhpcy5fdmFsdWUpIHsKKyAg
ICAgICAgaWYgKHRoaXMuX3ZhbHVlIHx8IHRoaXMuX3ZhbHVlID09PSAwKSB7CiAgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dy5FbXB0eVN0eWxlQ2xhc3NOYW1lKTsKIAogICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGhh
cyBzcGFjZSBjaGFyYWN0ZXJzIHRoYXQgY2F1c2Ugd29yZCB3cmFwcGluZyB0aGVuIHdlIGRvbid0
IG5lZWQgdGhlIGRhdGEgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDY2M2U2ZjBmMTcyZmNlMDkyNjdmOGVjMTZhZWE4
ZGQ3ZWJhNTQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsx
LDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50KTsKKyAg
ICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgcGFkZGluZy1ib3R0b206IHZhcigtLW5hdmlnYXRp
b24tYmFyLWhlaWdodCk7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwor
fQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiB7CisgICAgcG9z
aXRpb246IHJlbGF0aXZlOworICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7Cit9CisKKy5j
b250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQp
IHsKKyAgICBtYXJnaW4tdG9wOiAyMHB4OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92
ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxp
Z24taXRlbXM6IGNlbnRlcjsKKyAgICBwb3NpdGlvbjogc3RpY2t5OworICAgIHRvcDogMDsKKyAg
ICB6LWluZGV4OiAxOworICAgIG1pbi1oZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdo
dCk7CisgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA4cHg7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogaHNsKDAsIDAlLCA5NyUpOworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1i
b3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2Vj
dGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRlciB7CisgICAgYm9yZGVyLXRvcDogMXB4
IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxIHsKKyAgICBtYXJnaW46IDA7Cit9CisK
Ky5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IC5u
YXZpZ2F0aW9uLWJhciB7CisgICAgZmxleC1ncm93OiAxOworICAgIGp1c3RpZnktY29udGVudDog
ZmxleC1lbmQ7CisgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKK30KKworLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIHJpZ2h0OiAwOworICAgIGJvdHRv
bTogMDsKKyAgICBsZWZ0OiAwOworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBk
YXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyB7CisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTQlKTsKKyAgICB9CisKKyAgICAuY29udGVudC12
aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgeworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDIxJSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBjMGFlMDExNzVk
OTdhZGViMjRkYzMwYzBiMzUwNzdjYWJhMjhlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5qcwpAQCAtMCwwICsxLDIwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkdyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50VmlldyA9IGNsYXNzIEdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3Vw
ZXIoKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZ3JhcGhpY3Mtb3Zl
cnZpZXciKTsKKworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5l
dyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LXJlY29yZGluZyIsIFdJLlVJU3RyaW5n
KCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1KTsKKyAgICAgICAgdGhpcy5f
aW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbHRpcCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQi
KTsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUg
PSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7CisgICAgICAgIHRo
aXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2
aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9u
TmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2giLCBX
SS5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsK
KyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlUmVm
cmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9u
TmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hv
dy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJp
bmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNr
ZXJzLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOworICAg
ICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlU2hvd0dy
aWRCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3ID0gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcoV0kuY2FudmFzTWFu
YWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKworICAgICAgICB0aGlzLl9vdmVydmlld1ZpZXdzID0g
W107CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgc3VwcGxlbWVudGFsUmVwcmVz
ZW50ZWRPYmplY3RzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9vdmVydmlld1ZpZXdz
LmZsYXRNYXAoKHN1YnZpZXcpID0+IHN1YnZpZXcuc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmpl
Y3RzKTsKKyAgICB9CisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAgICB7CisgICAgICAg
IGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgaWYgKCFXSS5hbmltYXRpb25NYW5h
Z2VyLnN1cHBvcnRlZCkgeworICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2hBbGwodGhp
cy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMpOworICAgICAgICAg
ICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2gobmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7Cisg
ICAgICAgIH0KKyAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5faW1wb3J0QnV0dG9u
TmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3JlZnJl
c2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7CisgICAgfQorCisgICAgLy8gUHJv
dGVjdGVkCisKKyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgp
OworCisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihX
SS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5n
Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5n
Q2hhbmdlZCgpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIFdJLmRv
bU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKworICAgICAgICBXSS5zZXR0aW5ncy5z
aG93SW1hZ2VHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2Vk
LCB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRoaXMpOworCisgICAg
ICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgaW5pdGlhbExheW91dCgpCisgICAg
eworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgaWYgKFdJLmFuaW1h
dGlvbk1hbmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBsZXQgY3JlYXRlU2VjdGlvbiA9
IChpZGVudGlmaWVyLCB0aXRsZSwgb3ZlcnZpZXdWaWV3KSA9PiB7CisgICAgICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQob3ZlcnZpZXdWaWV3IGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcpOwor
CisgICAgICAgICAgICAgICAgbGV0IHNlY3Rpb25FbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKSk7CisgICAgICAgICAgICAg
ICAgc2VjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gaWRlbnRpZmllcjsKKworICAgICAgICAgICAg
ICAgIGxldCBoZWFkZXJFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQu
Y2xhc3NOYW1lID0gImhlYWRlciI7CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGVFbGVtZW50
ID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMSIp
KTsKKyAgICAgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aXRsZTsKKwor
ICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBvdmVydmlld1ZpZXcubmF2aWdh
dGlvbkl0ZW1zOworICAgICAgICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSXRlbXMubGVuZ3RoKSB7
CisgICAgICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uQmFyID0gbmV3IFdJLk5hdmlnYXRp
b25CYXIoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibmF2IiksIG5hdmlnYXRpb25JdGVtcyk7Cisg
ICAgICAgICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQobmF2aWdhdGlvbkJh
ci5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRp
b25CYXIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxldCBjb250ZW50
RWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5jbGFzc05hbWUgPSAi
Y29udGVudCI7CisKKyAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZChv
dmVydmlld1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG92
ZXJ2aWV3Vmlldyk7CisKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuYWRkRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0ZWRJdGVtQ2hhbmdlZCwg
dGhpcy5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZCwgdGhpcyk7CisgICAg
ICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29udGVudFZpZXcu
RXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlLCB0aGlzLl9oYW5k
bGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UsIHRo
aXMpOworICAgICAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmlld3MucHVzaChvdmVydmlld1Zp
ZXcpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigiY2FudmFz
IiwgV0kuVUlTdHJpbmcoIkNhbnZhc2VzIiksIHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbiA9IFdJLmFuaW1hdGlv
bk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbjsKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24o
IndlYi1hbmltYXRpb24iLCBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbnMiKSwgbmV3IFdJLkFu
aW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbikpKTsKKyAg
ICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oImNzcy1hbmltYXRpb24iLCBXSS5VSVN0cmluZygiQ1NT
IEFuaW1hdGlvbnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldyhhbmlt
YXRpb25Db2xsZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5U
eXBlLkNTU0FuaW1hdGlvbikpKTsKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oImNzcy10cmFu
c2l0aW9uIiwgV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9ucyIpLCBuZXcgV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0aW9uQ29sbGVj
dGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbikpKTsKKworICAgICAg
ICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxl
Q2xpY2suYmluZCh0aGlzKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGhpcy5hZGRT
dWJ2aWV3KHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOworCisgICAgICAgIGxldCBk
cm9wWm9uZVZpZXcgPSBuZXcgV0kuRHJvcFpvbmVWaWV3KHRoaXMpOworICAgICAgICBkcm9wWm9u
ZVZpZXcudGV4dCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQgUmVjb3JkaW5nIik7CisgICAgICAgIGRy
b3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50OworICAgICAgICB0aGlzLmFk
ZFN1YnZpZXcoZHJvcFpvbmVWaWV3KTsKKyAgICB9CisKKyAgICAvLyBEcm9wWm9uZVZpZXcgZGVs
ZWdhdGUKKworICAgIGRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KGRyb3Bab25lLCBl
dmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5j
bHVkZXMoIkZpbGVzIik7CisgICAgfQorCisgICAgZHJvcFpvbmVIYW5kbGVEcm9wKGRyb3Bab25l
LCBldmVudCkKKyAgICB7CisgICAgICAgIGxldCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci5m
aWxlczsKKyAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCAhPT0gMSkgeworICAgICAgICAgICAgSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+
IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQorCisgICAgLy8g
UHJpdmF0ZQorCisgICAgX2hhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAg
ICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKQorICAgICAg
ICAgICAgb3ZlcnZpZXdWaWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCk7CisgICAgfQor
CisgICAgX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAg
IFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWUgPSAhdGhpcy5fc2hvd0dyaWRCdXR0b25O
YXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7CisgICAgfQorCisgICAgX2hhbmRsZVNob3dJbWFnZUdy
aWRTZXR0aW5nQ2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5h
dmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1
ZTsKKyAgICB9CisKKyAgICBfaGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2Vk
KGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5pbXBvcnRKU09OKChyZXN1
bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSwge211bHRpcGxlOiB0
cnVlfSk7CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNoYW5n
ZWQoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5zZWxlY3RlZEl0ZW0p
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9m
IHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld1ZpZXcgIT09
IGV2ZW50LnRhcmdldCAmJiBvdmVydmlld1ZpZXcuc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAg
ICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJdGVtID0gbnVsbDsKKyAgICAgICAgfQorICAg
IH0KKworICAgIF9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVj
dHNEaWRDaGFuZ2UoZXZuZXQpCisgICAgeworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVj
dHNEaWRDaGFuZ2UpOworICAgIH0KKworICAgIF9oYW5kbGVDbGljayhldmVudCkKKyAgICB7Cisg
ICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMuZWxlbWVudCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdW
aWV3cykgeworICAgICAgICAgICAgaWYgKG92ZXJ2aWV3Vmlldy5zZWxlY3Rpb25FbmFibGVkKQor
ICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5zZWxlY3RlZEl0ZW0gPSBudWxsOworICAgICAg
ICB9CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjQwNzVjMDM3NTA3YTJlYzc3YTM1MWZkZDM4OGE1OGY0YTJhODgxYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dy
YXBoaWNzVGFiQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisu
Y29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFz
LW92ZXJ2aWV3IC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhc092ZXJ2
aWV3LnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtIC5jYW52YXMuY2FudmFzLTJkIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4v
SW1hZ2VzL0NhbnZhczJELnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXM6bWF0Y2hlcygud2ViZ2wsIC53ZWJnbDIsIC53
ZWJncHUsIC53ZWJtZXRhbCkgLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2Fu
dmFzM0Quc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24t
YmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL1JlY29yZGluZy5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2
aWdhdGlvbi1iYXIgPiAuaXRlbSAuc2hhZGVyLXByb2dyYW0gPiAuaWNvbiB7CisgICAgY29udGVu
dDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1h
Z2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1z
Y2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlv
bi1iYXIgPiAuaXRlbSAuZ3JhcGhpY3Mtb3ZlcnZpZXcgLmljb24geworICAgICAgICBmaWx0ZXI6
IGludmVydCg2MCUpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMgLmljb24sCisgICAgLmNvbnRlbnQtdmlldy50
YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsK
KyAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NU
YWJDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTZkODU3MjI2Nzk4MzBlNGE2NTc3MTk3ZDlh
OTI4NTM4MjcwM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDMx
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1dJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBHcmFw
aGljc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYWJDb250ZW50Vmll
dworeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIGxldCB0YWJCYXJJdGVtID0g
V0kuR2VuZXJhbFRhYkJhckl0ZW0uZnJvbVRhYkluZm8oV0kuR3JhcGhpY3NUYWJDb250ZW50Vmll
dy50YWJJbmZvKCkpOworCisgICAgICAgIGNvbnN0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25z
dHJ1Y3RvciA9IFdJLkNhbnZhc1NpZGViYXJQYW5lbDsKKyAgICAgICAgY29uc3QgZGV0YWlsc1Np
ZGViYXJQYW5lbENvbnN0cnVjdG9ycyA9IFsKKyAgICAgICAgICAgIFdJLlJlY29yZGluZ1N0YXRl
RGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLlJlY29yZGluZ1RyYWNlRGV0YWls
c1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLkNhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWws
CisgICAgICAgICAgICBXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICBd
OworICAgICAgICBjb25zdCBkaXNhYmxlQmFja0ZvcndhcmQgPSB0cnVlOworICAgICAgICBzdXBl
cigiZ3JhcGhpY3MiLCBbImdyYXBoaWNzIl0sIHRhYkJhckl0ZW0sIG5hdmlnYXRpb25TaWRlYmFy
UGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycywgZGlzYWJs
ZUJhY2tGb3J3YXJkKTsKKworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lID0gbmV3
IFdJLlRyZWVPdXRsaW5lOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFsbG93
c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxp
bmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFu
Z2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRo
aXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJh
bFRyZWVFbGVtZW50KCJjYW52YXMtb3ZlcnZpZXciLCBXSS5VSVN0cmluZygiT3ZlcnZpZXciKSwg
bnVsbCwge1tXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9sXTogdHJ1ZX0pOworICAgICAg
ICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHRoaXMuX2NhbnZhc2VzVHJl
ZUVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVt
ZW50ID0gbmV3IFdJLkZvbGRlclRyZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJTYXZlZCBSZWNvcmRp
bmdzIikpOworICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5o
aWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50KTsKKworICAgICAgICB0
aGlzLl9yZWNvcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdJLktl
eWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsK
KyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9
IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisK
KyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2Fy
ZFNob3J0Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQsIFdJLktleWJvYXJk
U2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZh
dWx0ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlz
YWJsZWQgPSB0cnVlOworCisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7CisgICAg
ICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZW5hYmxlKCk7CisgICAgfQorCisgICAgc3RhdGljIHRh
YkluZm8oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGltYWdlOiAiSW1h
Z2VzL0dyYXBoaWNzLnN2ZyIsCisgICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJpbmcoIkdyYXBo
aWNzIiksCisgICAgICAgIH07CisgICAgfQorCisgICAgc3RhdGljIGlzVGFiQWxsb3dlZCgpCisg
ICAgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkNhbnZhcyIp
CisgICAgICAgICAgICB8fCBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQW5pbWF0aW9uIik7
CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICB0cmVlRWxlbWVudEZvclJlcHJlc2VudGVk
T2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nh
bnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0KTsKKyAg
ICB9CisKKyAgICBnZXQgdHlwZSgpCisgICAgeworICAgICAgICByZXR1cm4gV0kuR3JhcGhpY3NU
YWJDb250ZW50Vmlldy5UeXBlOworICAgIH0KKworICAgIGdldCBzdXBwb3J0c1NwbGl0Q29udGVu
dEJyb3dzZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgZ2V0
IG1hbmFnZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIHNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVj
dCwgY29va2llKQorICAgIHsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQ29sbGVjdGlvbikgeworICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93
Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBzdXBlci5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVw
cmVzZW50ZWRPYmplY3QsIGNvb2tpZSk7CisgICAgfQorCisgICAgY2FuU2hvd1JlcHJlc2VudGVk
T2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKKyAgICAgICAgICAgIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29sbGVjdGlvbgorICAgICAg
ICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcKKyAgICAg
ICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbUNv
bGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
U2hhZGVyUHJvZ3JhbQorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5BbmltYXRpb25Db2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBjbG9zZWQoKQorICAgIHsK
KyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5kaXNhYmxlKCk7CisgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuZGlzYWJsZSgpOworCisgICAgICAgIHN1cGVyLmNsb3NlZCgpOworICAgIH0KKwor
ICAgIHJlc3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQorICAgIHsKKyAgICAgICAgLy8gRklY
TUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBs
ZXRlLgorICAgIH0KKworICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKKyAgICB7CisgICAg
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2
PiBpcyBjb21wbGV0ZS4KKyAgICB9CisKKyAgICBhc3luYyBoYW5kbGVGaWxlRHJvcChmaWxlcykK
KyAgICB7CisgICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChy
ZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQor
CisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBl
ci5hdHRhY2hlZCgpOworCisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCB0aGlzLl9o
YW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92
ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdT
YXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAg
ICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3Rv
cHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworCisgICAg
ICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuY2hpbGRyZW4p
IHsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBjaGlsZC5yZXByZXNlbnRlZE9iamVjdDsKKyAg
ICAgICAgICAgIGlmIChjYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMgJiYgIVdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5oYXMoY2FudmFzKSkKKyAgICAgICAgICAgICAgICB0aGlz
Ll9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IGNh
bnZhcyBvZiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pIHsKKyAgICAgICAgICAg
IGlmICghdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoY2FudmFzKSkK
KyAgICAgICAgICAgICAgICB0aGlzLl9hZGRDYW52YXMoY2FudmFzKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVjb3Jk
aW5ncykgeworICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRU
cmVlRWxlbWVudChyZWNvcmRpbmcpKQorICAgICAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGlu
ZyhyZWNvcmRpbmcsIHtzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWV9KTsKKyAgICAgICAgfQor
CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7CisgICAgICAg
IHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICB9
CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5k
aXNhYmxlZCA9IHRydWU7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQu
ZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIFdJLkNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVy
KFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdT
YXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9o
YW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7CisgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQs
IHRoaXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgaW5pdGlh
bExheW91dCgpCisgICAgeworICAgICAgICB0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3ID0gbmV3
IFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldzsKKyAgICAgICAgdGhpcy5jb250ZW50QnJv
d3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgfQor
CisgICAgLy8gUHJpdmF0ZQorCisgICAgX2FkZENhbnZhcyhjYW52YXMpCisgICAgeworICAgICAg
ICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyBXSS5DYW52YXNUcmVl
RWxlbWVudChjYW52YXMpKTsKKworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAg
ICAgc3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlLAorICAgICAgICB9OworCisgICAgICAgIGZv
ciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikKKyAgICAgICAg
ICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOworICAgIH0KKworICAg
IF9yZW1vdmVDYW52YXMoY2FudmFzKQorICAgIHsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0g
dGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoY2FudmFzKTsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQsICJNaXNzaW5nIHRyZWUgZWxlbWVudCBmb3Ig
Y2FudmFzLiIsIGNhbnZhcyk7CisKKyAgICAgICAgY29uc3Qgc3VwcHJlc3NOb3RpZmljYXRpb24g
PSB0cnVlOworICAgICAgICB0cmVlRWxlbWVudC5kZXNlbGVjdChzdXBwcmVzc05vdGlmaWNhdGlv
bik7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJlZUVs
ZW1lbnQpOworCisgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmNvbnRlbnRC
cm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKKyAgICAgICAgaWYgKGN1cnJlbnRDb250ZW50Vmll
dyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgV0kuc2hvd1Jl
cHJlc2VudGVkT2JqZWN0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAg
ICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0Nv
bnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhjdXJyZW50Q29udGVu
dFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQorICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nl
ci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRWaWV3KCk7CisKKyAgICAg
ICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFu
ZWw7CisgICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGluc3RhbmNlb2YgV0kuQ2Fu
dmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudmlzaWJsZSkKKyAgICAg
ICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVzZW50ZWRPYmplY3RzKCk7
CisKKyAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsKKyAgICB9CisKKyAg
ICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQorICAgIHsKKyAgICAgICAg
aWYgKCFyZWNvcmRpbmcuc291cmNlKSB7CisgICAgICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51
bGw7CisgICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJh
bFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0
bGUsIHJlY29yZGluZyk7CisgICAgICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NU
cmVlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFz
UmVjb3JkaW5nc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcp
CisgICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOworICAg
IH0KKworICAgIF9oYW5kbGVDYW52YXNBZGRlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMu
X2FkZENhbnZhcyhldmVudC5kYXRhLml0ZW0pOworICAgIH0KKworICAgIF9oYW5kbGVDYW52YXNS
ZW1vdmVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGV2ZW50LmRh
dGEuaXRlbSk7CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxlY3Rp
b25EaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50ID0g
dGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OworICAgICAgICBp
ZiAoIXNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzd2l0
Y2ggKHNlbGVjdGVkRWxlbWVudCkgeworICAgICAgICBjYXNlIHRoaXMuX2NhbnZhc2VzVHJlZUVs
ZW1lbnQ6CisgICAgICAgIGNhc2UgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1l
bnQ6CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlz
Ll9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGxldCByZXByZXNlbnRlZE9iamVjdCA9IHNlbGVjdGVkRWxlbWVudC5yZXByZXNl
bnRlZE9iamVjdDsKKyAgICAgICAgaWYgKCF0aGlzLmNhblNob3dSZXByZXNlbnRlZE9iamVjdChy
ZXByZXNlbnRlZE9iamVjdCkpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAi
VW5leHBlY3RlZCByZXByZXNlbnRlZE9iamVjdC4iLCByZXByZXNlbnRlZE9iamVjdCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRl
ZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisgICAgX2hhbmRsZVJlY29yZGlu
Z1NhdmVkT3JTdG9wcGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHtyZWNvcmRpbmcsIGlu
aXRpYXRlZEJ5VXNlciwgaW1wb3J0ZWR9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgaWYgKCFyZWNv
cmRpbmcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IG9wdGlvbnMgPSB7fTsK
KworICAgICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRlZCByZWNvcmRpbmdzLgorICAgICAgICBp
ZiAocmVjb3JkaW5nLnNvdXJjZSB8fCAhaW1wb3J0ZWQpCisgICAgICAgICAgICBvcHRpb25zLnN1
cHByZXNzU2hvd1JlY29yZGluZyA9ICFpbml0aWF0ZWRCeVVzZXIgfHwgdGhpcy5jb250ZW50QnJv
d3Nlci5jdXJyZW50UmVwcmVzZW50ZWRPYmplY3RzLnNvbWUoKHJlcHJlc2VudGVkT2JqZWN0KSA9
PiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyk7CisKKyAgICAgICAg
dGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7CisgICAgfQorCisgICAgX2hh
bmRsZVNwYWNlKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKFdJLmlzRXZlbnRUYXJnZXRBbkVk
aXRhYmxlRmllbGQoZXZlbnQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICgh
dGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGxldCBjYW52YXMgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwuY2FudmFzOworICAg
ICAgICBpZiAoIWNhbnZhcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoY2Fu
dmFzLnJlY29yZGluZ0FjdGl2ZSkKKyAgICAgICAgICAgIGNhbnZhcy5zdG9wUmVjb3JkaW5nKCk7
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGV0IHNpbmdsZUZyYW1lID0gISFldmVudC5z
aGlmdEtleTsKKyAgICAgICAgICAgIGNhbnZhcy5zdGFydFJlY29yZGluZyhzaW5nbGVGcmFtZSk7
CisgICAgICAgIH0KKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0KK307
CisKK1dJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSA9ICJncmFwaGljcyI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCmluZGV4
IGNlMzFhZjQ2MzM3ODYxMzRiMWNjNzI3NmEzNGQ2YTQ0NzE4YTJhZTIuLjEwY2Q2NGE0NTU5MDk5
NWNkYTQ5MDI5MjFlMWJmOTgxNTAzYWY5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCkBAIC0yMDksMTIgKzIwOSwxMiBAQCBi
b2R5LmRvY2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZpZ2F0aW9uLXNpZGViYXIuY29s
bGFwc2VkID4gLnJlc2l6ZXIgewogICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiB9CiAKLS5tZXNz
YWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgeworLm5hdmlnYXRpb24taXRlbS1o
ZWxwIHsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBsaW5lLWhlaWdodDogMjJweDsKIH0KIAot
Lm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIg
eworLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBkaXNwbGF5
OiBpbmxpbmUtZmxleDsKICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgcGFkZGluZzogMCA0cHg7CkBA
IC0yMjIsOSArMjIyLDkgQEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2
aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICB2ZXJ0aWNhbC1hbGln
bjogLTNweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbSB7CiAgICAgaGVpZ2h0OiAxMDAlOwotICAgIHBhZGRpbmc6IDAgNHB4
OworICAgIHBhZGRpbmc6IDAgNHB4ICFpbXBvcnRhbnQ7CiAgICAgZm9udC1zaXplOiAxMXB4Owog
ICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1ib3Jk
ZXItY29sb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCmluZGV4IDhkNjBm
MjNmMGIyYmVjNzBkOGJlODNkMDIxN2E3MGFjNzRmZDIzNTguLjExZjFkZDgyZTU1Mzc3MDE5MGIy
ZmY3ZWI4YjYwOGVlYzdlMjljMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5j
c3MKQEAgLTIzLDE4ICsyMywxOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyB7CisuY29udGVudC12
aWV3LnJlY29yZGluZyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LWRpcmVjdGlvbjog
Y29sdW1uOwogICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDAlLCA5MCUpOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFk
ZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgewogICAgIG1hcmdpbi1ib3R0
b206IDEwcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRl
ciA+IC5zbGlkZXItY29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVy
ID4gLnNsaWRlci1jb250YWluZXIgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC13cmFw
OiB3cmFwOwogICAgIHBhZGRpbmc6IDRweCAwOwpAQCAtNDMsMzEgKzQzLDMxIEBACiAgICAgYm9y
ZGVyLXJhZGl1czogNHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcg
PiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+ICogeworLmNvbnRlbnQtdmlldy5yZWNvcmRp
bmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+ICogewogICAgIG1hcmdpbjogNHB4IDhw
eDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNs
aWRlci1jb250YWluZXIgPiAuc2xpZGVyLXZhbHVlIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5n
ID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAuc2xpZGVyLXZhbHVlIHsKICAgICBmb250
LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKICAgICBmb250LWZhbWlseTogMTFweDsKIH0KIAot
LmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250
YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhl
YWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0gewogICAgIGZsZXg6
IDE7CiAgICAgd2lkdGg6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29y
ZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13
ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4g
aGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1z
bGlkZXItcnVubmFibGUtdHJhY2sgewogICAgIGhlaWdodDogMnB4OwogICAgIGJhY2tncm91bmQt
Y29sb3I6IHZhcigtLWJvcmRlci1jb2xvcik7CiAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogfQog
Ci0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNv
bnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7CisuY29u
dGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRb
dHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICBtYXJnaW4tdG9wOiAtNnB4
OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiAucHJldmlldy1jb250
YWluZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiAucHJldmlldy1jb250YWluZXIgewog
ICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleDogMTsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNl
bnRlcjsKQEAgLTc3LDI3ICs3NywyNyBAQAogICAgIGhlaWdodDogLXdlYmtpdC1maWxsLWF2YWls
YWJsZTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nIDptYXRjaGVzKGlt
ZywgY2FudmFzKSB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA6bWF0Y2hlcyhpbWcsIGNhbnZh
cykgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAg
bWF4LWhlaWdodDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5n
IGNhbnZhcy5wYXRoIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nIGNhbnZhcy5wYXRoIHsKICAg
ICB6LWluZGV4OiAxMDsKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykg
ewotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyB7CisgICAgLmNvbnRlbnQt
dmlldy5yZWNvcmRpbmcgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAgICB9
CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xp
ZGVyLWNvbnRhaW5lciB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAu
c2xpZGVyLWNvbnRhaW5lciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAg
ICAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvci1zZWNvbmRhcnkpOwogICAgIH0K
IAotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlk
ZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworICAgIC5jb250ZW50LXZpZXcucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7
CiAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCmluZGV4IDNhOWE5YWVmZjI5YzVlZmNk
Nzc5YmI0ZDI5MDQwYWFkODlkYmYxZDQuLjJmOTRiYzc0MDlmNGQ1NTQ2NjVjZGU4OWM5ZjBmOTlj
YWRlZjk3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50
Vmlldy5jc3MKQEAgLTIzLDYgKzIzLDE0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAorLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291
cmNlLmltYWdlIGltZyB7CisgICAgb3V0bGluZTogMC41cHggc29saWQgdmFyKC0tYm9yZGVyLWNv
bG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNl
LmltYWdlIGltZzpob3ZlciB7CisgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ2x5cGgtY29sb3It
YWN0aXZlKQorfQorCiAucmVzb3VyY2UtY29sbGVjdGlvbi1pbWFnZS10eXBlLXNjb3BlLWJhci5k
ZWZhdWx0LWl0ZW0tc2VsZWN0ZWQgewogICAgIC0tc2NvcGUtYmFyLXRleHQtY29sb3Itb3ZlcnJp
ZGU6IHZhcigtLXRleHQtY29sb3IpOwogICAgIC0tc2NvcGUtYmFyLWJhY2tncm91bmQtY29sb3It
b3ZlcnJpZGU6IHRyYW5zcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rp
b25Db250ZW50Vmlldy5qcwppbmRleCBjOTRlY2E3NzcyMTRlMzFkYzVkODFlNjEwOTA2MDYzZjc3
Yzc0ZmNjLi5mYzFjNmEyY2Q0YWE3ZGExOTUwYzBhM2QzZmYwNjM0MzJmOTdkNmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNv
bGxlY3Rpb25Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMzUsNiAr
MzUsOCBAQCBXSS5SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIFJlc291cmNl
Q29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgVwogCiAgICAgICAgIHN1cGVyKGNvbGxlY3Rp
b24sIGNvbnRlbnRWaWV3Q29uc3RydWN0b3IpOwogCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJyZXNvdXJjZS1jb2xsZWN0aW9uIik7CisKICAgICAgICAgaWYgKGNvbGxlY3Rp
b24ucmVzb3VyY2VUeXBlID09PSBXSS5SZXNvdXJjZS5UeXBlLkltYWdlKSB7CiAgICAgICAgICAg
ICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0
dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFy
ZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFn
ZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOwogICAgICAgICAgICAgdGhp
cy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZVNob3dHcmlkQnV0dG9u
Q2xpY2tlZCwgdGhpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzQ1NGIwM2QxZDA4YmYzZWNiOWM1ODAwMDBkNDUzN2U0
ZTRhYzk4Zi4uYjE5YmVlYWUyNTMxMzFkZjFiNmIyNzViYjRhMTc1ZTVmODk3MTQzZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDcxIEBACisyMDIwLTAxLTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBz
aG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4
MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5p
bWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9u
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdl
Yi1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5p
bWF0aW9uL3JlcXVlc3RFZmZlY3RUYXJnZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5n
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jl
c291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZUFu
aW1hdGlvbik6CisgICAgICAgIChkZXN0cm95QW5pbWF0aW9ucyk6CisgICAgICAgIChJbnNwZWN0
b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBhd2FpdEFuaW1hdGlvbkNy
ZWF0ZWQpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRp
ZXMuYXN5bmMgYXdhaXRBbmltYXRpb25EZXN0cm95ZWQpOgorICAgICAgICAoSW5zcGVjdG9yVGVz
dC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgY3JlYXRlQW5pbWF0aW9uKToKKyAg
ICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGRl
c3Ryb3lBbmltYXRpb25zKToKKworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNv
bnRleHQtd2ViZ3B1Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
Y3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzOgorICAgICAgICAoZGVzdHJveUNhbnZhc2VzKToK
KyAgICAgICAgKGF3YWl0Q2FudmFzQWRkZWQpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5DcmVh
dGVDb250ZXh0VXRpbGl0aWVzLmluaXRpYWxpemVUZXN0U3VpdGUpOgorCisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL21l
bW9yeS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVz
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVy
ZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmds
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sOgorCisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanM6Cisg
ICAgICAgICh3aW5kb3cuZ2V0Q2FudmFzKToKKworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
c2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0
aWVzLXdlYmdwdS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFk
ZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qczoKKyAgICAgICAgKGRlbGV0ZUNvbnRleHQpOgor
ICAgICAgICAod2hlblByb2dyYW1BZGRlZCk6CisgICAgICAgICh3aW5kb3cuaW5pdGlhbGl6ZVRl
c3RTdWl0ZSk6CisgICAgICAgICh3aW5kb3cuYWRkUGFyZW50Q2FudmFzUmVtb3ZlZFRlc3RDYXNl
KToKKworICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3Qt
ZnVuY3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJu
ZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTAxLTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFRocm90dGxpbmcgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lIHNob3VsZCBiZSBjb250cm9sbGVkIGJ5IFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZl
Y3RDaGFuZ2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24v
ZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJmMzNjYmQ3ZjkzM2QzYjQ5
YmJmZjVkMzc4ZGU1N2I4MjMxMmJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
OCBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCBldmVudC4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTmV3RWZmZWN0CitQQVNTOiBBbmlt
YXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LgorQ2hhbmdpbmcgZWZmZWN0Li4uCisKK1BBU1M6
IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0
IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24u
ZWZmZWN0Q2hhbmdlZC5OdWxsRWZmZWN0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4g
ZWZmZWN0LgorQ2hhbmdpbmcgZWZmZWN0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgbm90
IGhhdmUgYW4gZWZmZWN0LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFu
Z2VkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVj
dENoYW5nZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hh
bmdlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NWQ4NWIxZTFmMjE2ODgxZmZiZDZmNjFiMzc0N2M3MGRi
ZjE3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2VmZmVjdENoYW5nZWQuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBs
b2FkKCkgeworICAgIHdpbmRvdy5hbmltYXRpb24gPSBkb2N1bWVudC5ib2R5LmFuaW1hdGUoW3tv
cGFjaXR5OiAwfV0pOworCisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlv
bi5lZmZlY3RDaGFuZ2VkIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5OZXdFZmZlY3QiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRp
b24gaWRlbnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0
IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29s
bGVjdGlvbik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxl
bmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAg
ICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYg
KCFhbmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24u
YDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5Bbmlt
YXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1h
dGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlm
cmFtZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZy
YW1lcywgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAg
YXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50
KFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG5ldyBL
ZXlmcmFtZUVmZmVjdCh3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQsIFt7b3BhY2l0eTog
MX1dLCB7fSlgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3S2V5ZnJh
bWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0Tm90RW1wdHkobmV3S2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVj
dC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwo
bmV3S2V5ZnJhbWVzLCBvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZl
IGNoYW5nZWQuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5OdWxsRWZmZWN0IiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0
aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsK
KyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5h
Z2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5p
bWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsK
KyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1p
c3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9u
VHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3Vs
ZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRLZXlmcmFtZXMg
PSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RO
b3RFbXB0eShvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIp
OworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgZWZmZWN0Li4uXG4i
KTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmlt
YXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCksCisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlv
bi5lZmZlY3QgPSBudWxsYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IG5l
d0tleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVtcHR5KG5ld0tleWZyYW1lcywgIkFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUg
YW4gZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxs
b3dFcXVhbChuZXdLZXlmcmFtZXMsIG9sZEtleWZyYW1lcywgIkFuaW1hdGlvbiBlZmZlY3Qgc2hv
dWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1
blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9ImxvYWQoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uZWZmZWN0Q2hhbmdl
ZCBldmVudC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNjMxMTY5ODhkNTZiOGJhZDQ3ZjEzZWJlZmNiY2Ix
YjRmYmM1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBA
CitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24u
YW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFu
aW1hdGlvbi5MaWZlY3ljbGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5
Y2xlLkNTU0FuaW1hdGlvbgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9u
cy4KK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxk
IGJlIENTUyBBbmltYXRpb24uCitzdGFydERlbGF5OiAxMDAKK2l0ZXJhdGlvbkNvdW50OiAyCitp
dGVyYXRpb25EdXJhdGlvbjogNDAwCit0aW1pbmdGdW5jdGlvbjogImxpbmVhciIKK3BsYXliYWNr
RGlyZWN0aW9uOiAiYWx0ZXJuYXRlIgorZmlsbE1vZGU6ICJib3RoIgora2V5ZnJhbWVzOgorWwor
ICB7CisgICAgIm9mZnNldCI6IDAsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMjU1LCAwLCAw
KTtcbm9wYWNpdHk6IDA7IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDAuNSwKKyAgICAic3R5
bGUiOiAiY29sb3I6IHJnYigwLCAxMjgsIDApO1xub3BhY2l0eTogMC41OyIKKyAgfSwKKyAgewor
ICAgICJvZmZzZXQiOiAxLAorICAgICJzdHlsZSI6ICJjb2xvcjogcmdiKDAsIDAsIDI1NSk7XG5v
cGFjaXR5OiAxOyIKKyAgfQorXQorCitEZXN0cm95aW5nIGFuaW1hdGlvbnMuLi4KKworUEFTUzog
QW5pbWF0aW9uIGRlc3Ryb3llZC4KK1BBU1M6IFJlbW92ZWQgYW5pbWF0aW9uIGhhcyBleHBlY3Rl
ZCBJRC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZl
Y3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZjVlMDI5MzdiYjFl
YjI1N2ZlNjczNGY5ZThjYjFkNjJmZTZhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKQEAgLTAs
MCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBl
cmltZW50YWw6V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorQGtleWZyYW1l
cyBmYWRlLWluIHsKKyAgICBmcm9tIHsKKyAgICAgICAgY29sb3I6IHJlZDsKKyAgICAgICAgb3Bh
Y2l0eTogMDsKKyAgICB9CisgICAgNTAlIHsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgICAg
ICBvcGFjaXR5OiAwLjU7CisgICAgfQorICAgIHRvIHsKKyAgICAgICAgY29sb3I6IGJsdWU7Cisg
ICAgICAgIG9wYWNpdHk6IDE7CisgICAgfQorfQorZGl2I3RhcmdldC5hY3RpdmUgeworICAgIGFu
aW1hdGlvbi1uYW1lOiBmYWRlLWluOworICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7Cisg
ICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMs
IDAuNCk7CisgICAgYW5pbWF0aW9uLWRlbGF5OiAxMDBtczsKKyAgICBhbmltYXRpb24taXRlcmF0
aW9uLWNvdW50OiAyOworICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICBh
bmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2
ZXIgQ1NTIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5j
IHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1h
dGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5v
dCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmltYXRpb25dID0g
YXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0
aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5BbmltYXRpb24u
VHlwZS5DU1NBbmltYXRpb24pLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QuYWRk
KCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3YWl0IFByb21p
c2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNs
ZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb24uYW5pbWF0aW9uSWQp
LAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0
aWVzLmRlc3Ryb3lBbmltYXRpb25zKCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlz
dC5yZW1vdmUoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgfSwKKyAgICB9
KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBB
bmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3ll
ZCBldmVudHMuPC9wPgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNs
ZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODY5MjdjZjE2YmM2MzE3NWI4YjFmMGY4ZTJhMDRhMDA3ZWM2ZWZhZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlv
bi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50
cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5MaWZlY3ljbGUKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24KK1BBU1M6
IFRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmltYXRpb24gY3Jl
YXRlZC4KK1BBU1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgVHJhbnNpdGlvbi4KK3N0
YXJ0RGVsYXk6IDEwMAoraXRlcmF0aW9uQ291bnQ6IDEKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0MDAK
K3RpbWluZ0Z1bmN0aW9uOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiCitwbGF5
YmFja0RpcmVjdGlvbjogIm5vcm1hbCIKK2ZpbGxNb2RlOiAiYmFja3dhcmRzIgora2V5ZnJhbWVz
OgorWworICB7CisgICAgIm9mZnNldCI6IDAsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDA7Igor
ICB9LAorICB7CisgICAgIm9mZnNldCI6IDEsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDE7Igor
ICB9CitdCisKK0Rlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLgorCitQQVNTOiBBbmltYXRpb24gZGVz
dHJveWVkLgorUEFTUzogUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJh
bnNpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUt
Y3NzLXRyYW5zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDFjMGNkNzYxYjkzYzAzNjY0ODUxYTgz
ZmY5YjllMTY3MWU2ZWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbApAQCAtMCwwICsxLDU0IEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpX
ZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5
Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitkaXYjdGFyZ2V0IHsKKyAgICBj
b2xvcjogcmVkOworICAgIG9wYWNpdHk6IDA7CisKK30KK2RpdiN0YXJnZXQuYWN0aXZlIHsKKyAg
ICBjb2xvcjogYmx1ZTsKKyAgICBvcGFjaXR5OiAxOworCisgICAgdHJhbnNpdGlvbi1wcm9wZXJ0
eTogb3BhY2l0eTsKKyAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtczsKKyAgICB0cmFuc2l0
aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCk7Cisg
ICAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNsZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NUcmFuc2l0aW9uIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hl
bmV2ZXIgQ1NTIHRyYW5zaXRpb25zIGFyZSBjcmVhdGVkL2Rlc3Ryb3llZC4iLAorICAgICAgICBh
c3luYyB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5h
bmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uc2l6ZSwgMCwgIlRoZXJlIHNob3Vs
ZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7CisKKyAgICAgICAgICAgIGxldCBbYW5pbWF0aW9u
XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFu
aW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkNyZWF0ZWQoV0kuQW5pbWF0
aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbiksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlz
dC5hZGQoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQg
UHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlm
ZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbi5hbmltYXRp
b25JZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVV
dGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMoKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xh
c3NMaXN0LnJlbW92ZSgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9LAor
ICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3Ig
dGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVz
dHJveWVkIGV2ZW50cy48L3A+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlm
ZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWFhNmI4ZGE1OWZmZDZmN2JmMGQxZjA1Yjg1NWU1OTdhMTA4YmFlMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmlt
YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzkgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0
aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZl
bnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuV2ViQW5pbWF0aW9uCitQQVNT
OiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorQ3JlYXRpbmcgYW5pbWF0aW9u
Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorICAwOiBhbmltYXRlIC0gW25hdGl2ZSBj
b2RlXQorICAxOiBjcmVhdGVBbmltYXRpb24gLSBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNl
cy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzOjc6MzUKKyAgMjogR2xvYmFsIENvZGUgLSBbcHJvZ3Jh
bSBjb2RlXQorICAzOiBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiAtIFtuYXRpdmUgY29kZV0K
KyAgNDogKGFub255bW91cyBmdW5jdGlvbikgLSBbbmF0aXZlIGNvZGVdCisgIDU6IF93cmFwQ2Fs
bCAtIFtuYXRpdmUgY29kZV0KK1BBU1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBXZWIgQW5p
bWF0aW9uLgorc3RhcnREZWxheTogMTAwCitlbmREZWxheTogMjAwCitpdGVyYXRpb25Db3VudDog
MTAKK2l0ZXJhdGlvblN0YXJ0OiA1CitpdGVyYXRpb25EdXJhdGlvbjogMzAwCit0aW1pbmdGdW5j
dGlvbjogImVhc2UtaW4tb3V0IgorcGxheWJhY2tEaXJlY3Rpb246ICJhbHRlcm5hdGUiCitmaWxs
TW9kZTogImJvdGgiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMC4yNSwKKyAg
ICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5
bGUiOiAiY29sb3I6IHJlZDtcbm9wYWNpdHk6IDA7IgorICB9LAorICB7CisgICAgIm9mZnNldCI6
IDAuNzUsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC42LCAwLjcsIDAuOCwgMC45KSIs
CisgICAgInN0eWxlIjogImNvbG9yOiBibHVlO1xub3BhY2l0eTogMTsiCisgIH0KK10KKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWIt
YW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNs
ZS13ZWItYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyNzBhNGIyN2QxZGMwYmFhNjc2NzRh
YjcwN2MwOThiY2E4YmFmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDU0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisKKyAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5Y2xlLldlYkFu
aW1hdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBXZWIgSW5zcGVjdG9y
IGlzIG5vdGlmaWVkIHdoZW5ldmVyIHdlYiBhbmltYXRpb25zIGFyZSBjcmVhdGVkL2Rlc3Ryb3ll
ZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uc2l6ZSwg
MCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7CisKKyAgICAgICAgICAg
IGxldCBhbmltYXRpb24gPSBhd2FpdCBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0
aWxpdGllcy5jcmVhdGVBbmltYXRpb24oV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCB7
CisgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICJib2R5IiwKKyAgICAgICAgICAgICAgICBrZXlm
cmFtZXM6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
b2Zmc2V0OiAwLjI1LAorICAgICAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAiY3ViaWMtYmV6
aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6
ICJyZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCwKKyAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgb2Zmc2V0OiAwLjc1LAorICAgICAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAiY3ViaWMt
YmV6aWVyKDAuNiwgMC43LCAwLjgsIDAuOSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29s
b3I6ICJibHVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCisgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICBvcHRp
b25zOiB7CisgICAgICAgICAgICAgICAgICAgIGRlbGF5OiAxMDAsCisgICAgICAgICAgICAgICAg
ICAgIGVuZERlbGF5OiAyMDAsCisgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAsCisg
ICAgICAgICAgICAgICAgICAgIGVhc2luZzogImVhc2UtaW4tb3V0IiwKKyAgICAgICAgICAgICAg
ICAgICAgZGlyZWN0aW9uOiAiYWx0ZXJuYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgZmlsbDog
ImJvdGgiLAorICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiAxMCwKKyAgICAgICAgICAg
ICAgICAgICAgaXRlcmF0aW9uU3RhcnQ6IDUsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBB
bmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmlt
YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNv
bHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmQ0OGRhODE1MjE5OTczZDYx
MjYwODM2MDg2ZWUyMTFlMmExYWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGNvbW1hbmQu
CisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbgor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRl
bnRpZmllcgorUEFTUzogUGF5bG9hZCBzaG91bGQgaGF2ZSB0eXBlICJvYmplY3QiLgorUEFTUzog
UGF5bG9hZCBzaG91bGQgaGF2ZSBjbGFzc05hbWUgIkFuaW1hdGlvbiIuCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbi5JbnZhbGlkSWRlbnRpZmllcgor
UEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6IE1pc3NpbmcgYW5pbWF0
aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMjNlMzk3
NGMzNGMxOTdjZGQ1OTg2MTBmNzM3NzEwNjdlMzAxMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbApAQCAtMCww
ICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkgeworICAgIHdpbmRvdy5hbmltYXRp
b24gPSBkb2N1bWVudC5ib2R5LmFuaW1hdGUoW10pOworCisgICAgcnVuVGVzdCgpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFz
eW5jU3VpdGUoIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIik7CisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbi5WYWxp
ZElkZW50aWZpZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxp
ZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAgICAgICBh
c3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJ
LmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBv
bmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBh
bmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAgICAgICAg
ICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1h
dGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJB
bmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgY29u
c3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CisgICAgICAgICAgICBsZXQge29iamVjdH0gPSBhd2Fp
dCBBbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbi5hbmltYXRpb25JZCwg
b2JqZWN0R3JvdXApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChvYmpl
Y3QudHlwZSwgIm9iamVjdCIsIGBQYXlsb2FkIHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuYCk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC5jbGFzc05hbWUs
ICJBbmltYXRpb24iLCBgUGF5bG9hZCBzaG91bGQgaGF2ZSBjbGFzc05hbWUgIkFuaW1hdGlvbiIu
YCk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICAvLyAtLS0tLS0KKworICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLklu
dmFsaWRJZGVudGlmaWVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJJbnZhbGlkIGFuaW1hdGlv
biBpZGVudGlmaWVycyBzaG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKKyAgICAgICAgYXN5bmMgdGVz
dCgpIHsKKyAgICAgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSAiRE9FU19OT1RfRVhJU1QiOwor
ICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CisKKyAgICAgICAgICAgIGF3
YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgICAgICBhd2FpdCBBbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0aW9uKGlkZW50aWZpZXIs
IG9iamVjdEdyb3VwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5y
ZXNvbHZlQW5pbWF0aW9uIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0
aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xp
ZmVjeWNsZS11dGlsaXRpZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDljMjEyZmYzNjE1OGQ4YmI0Y2NlMTZh
OTVkYTA1MzUyZDBiMDFkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMKQEAgLTAsMCArMSwx
MzAgQEAKK3dpbmRvdy5hbmltYXRpb25zID0gW107CisKK2Z1bmN0aW9uIGNyZWF0ZUFuaW1hdGlv
bihzZWxlY3Rvciwga2V5ZnJhbWVzID0gW10sIG9wdGlvbnMgPSB7fSkgeworICAgIGxldCBhbmlt
YXRpb24gPSBudWxsOworCisgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
c2VsZWN0b3IpOworICAgIGlmICh0YXJnZXQpCisgICAgICAgIGFuaW1hdGlvbiA9IHRhcmdldC5h
bmltYXRlKGtleWZyYW1lcywgb3B0aW9ucyk7CisgICAgZWxzZQorICAgICAgICBhbmltYXRpb24g
PSBuZXcgQW5pbWF0aW9uKG5ldyBLZXlmcmFtZUVmZmVjdChudWxsLCBrZXlmcmFtZXMsIG9wdGlv
bnMpKTsKKworICAgIHdpbmRvdy5hbmltYXRpb25zLnB1c2goYW5pbWF0aW9uKTsKK30KKworZnVu
Y3Rpb24gZGVzdHJveUFuaW1hdGlvbnMoKSB7CisgICAgZm9yIChsZXQgYW5pbWF0aW9uIG9mIHdp
bmRvdy5hbmltYXRpb25zKSB7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGFuaW1hdGlvbi5jYW5jZWwoKTsKKworICAgICAgICBpZiAoYW5p
bWF0aW9uLmVmZmVjdCkgeworICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0
KSB7CisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQucmVtb3ZlKCk7Cisg
ICAgICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBudWxsOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0ID0gbnVsbDsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIHdpbmRvdy5hbmltYXRpb25zID0gW107CisKKyAgICAvLyBGb3JjZSBHQyB0
byBtYWtlIHN1cmUgdGhlIGFuaW1hdGlvbiBhbmQgaXQncyB0YXJnZXQgYXJlIGJvdGggZGVzdHJv
eWVkLCBhcyBvdGhlcndpc2UgdGhlCisgICAgLy8gZnJvbnRlbmQgd2lsbCBub3QgcmVjZWl2ZSBB
bmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy4KKyAgICBzZXRUaW1lb3V0KCgpID0+
IHsKKyAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICB9KTsKK30KKworVGVzdFBh
Z2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgZnVuY3Rpb24ganNvbktleWZyYW1l
RmlsdGVyKGtleSwgdmFsdWUpIHsKKyAgICAgICAgaWYgKGtleSA9PT0gImVhc2luZyIgJiYgdmFs
dWUgaW5zdGFuY2VvZiBXSS5DdWJpY0JlemllcikKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS50
b1N0cmluZygpOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgSW5zcGVjdG9y
VGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMgPSB7fTsKKworICAgIEluc3BlY3RvclRl
c3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZCA9IGFz
eW5jIGZ1bmN0aW9uKGFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxl
Y3Rpb25JdGVtQWRkZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9u
Q29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKKwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIkFuaW1hdGlvbiBjcmVhdGVkLiIpOworCisgICAg
ICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbUFkZGVkRXZlbnQuZGF0
YS5pdGVtOworCisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYW5pbWF0aW9uLmJhY2t0cmFj
ZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IGNhbGxGcmFtZSA9IGFuaW1hdGlvbi5i
YWNrdHJhY2VbaV07CisgICAgICAgICAgICBsZXQgdHJhY2VUZXh0ID0gYCAgJHtpfTogYDsKKyAg
ICAgICAgICAgIHRyYWNlVGV4dCArPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICIoYW5vbnlt
b3VzIGZ1bmN0aW9uKSI7CisKKyAgICAgICAgICAgIGlmIChjYWxsRnJhbWUubmF0aXZlQ29kZSkK
KyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAtIFtuYXRpdmUgY29kZV0iOworICAgICAg
ICAgICAgZWxzZSBpZiAoY2FsbEZyYW1lLnByb2dyYW1Db2RlKQorICAgICAgICAgICAgICAgIHRy
YWNlVGV4dCArPSAiIC0gW3Byb2dyYW0gY29kZV0iOworICAgICAgICAgICAgZWxzZSBpZiAoY2Fs
bEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbikgeworICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
biA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247CisgICAgICAgICAgICAgICAgdHJhY2VU
ZXh0ICs9ICIgLSAiICsgc2FuaXRpemVVUkwobG9jYXRpb24uc291cmNlQ29kZS51cmwpICsgYDok
e2xvY2F0aW9uLmxpbmVOdW1iZXJ9OiR7bG9jYXRpb24uY29sdW1uTnVtYmVyfWA7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHRyYWNlVGV4dCk7CisgICAg
ICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGFuaW1hdGlvbi5hbmlt
YXRpb25UeXBlLCBhbmltYXRpb25UeXBlLCBgQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlICR7V0ku
QW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZShhbmltYXRpb25UeXBlKX0uYCk7
CisKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5zdGFydERlbGF5KQorICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coInN0YXJ0RGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uc3Rh
cnREZWxheSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmVuZERlbGF5KQorICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coImVuZERlbGF5OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9u
LmVuZERlbGF5KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uaXRlcmF0aW9uQ291bnQpCisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiaXRlcmF0aW9uQ291bnQ6ICIgKyBKU09OLnN0cmlu
Z2lmeShhbmltYXRpb24uaXRlcmF0aW9uQ291bnQpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5p
dGVyYXRpb25TdGFydCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25T
dGFydDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkpOworICAg
ICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uKQorICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIml0ZXJhdGlvbkR1cmF0aW9uOiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0
aW9uLml0ZXJhdGlvbkR1cmF0aW9uKSk7CisgICAgICAgIGlmIChhbmltYXRpb24udGltaW5nRnVu
Y3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygidGltaW5nRnVuY3Rpb246ICIg
KyBKU09OLnN0cmluZ2lmeShTdHJpbmcoYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uKSkpOworICAg
ICAgICBpZiAoYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uKQorICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coInBsYXliYWNrRGlyZWN0aW9uOiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0
aW9uLnBsYXliYWNrRGlyZWN0aW9uKSk7CisgICAgICAgIGlmIChhbmltYXRpb24uZmlsbE1vZGUp
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZmlsbE1vZGU6ICIgKyBKU09OLnN0cmlu
Z2lmeShhbmltYXRpb24uZmlsbE1vZGUpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5rZXlmcmFt
ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygia2V5ZnJhbWVzOiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5qc29uKGFuaW1hdGlvbi5rZXlmcmFtZXMsIGpz
b25LZXlmcmFtZUZpbHRlcik7CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0Lm5l
d2xpbmUoKTsKKworICAgICAgICByZXR1cm4gYW5pbWF0aW9uCisgICAgfTsKKworICAgIEluc3Bl
Y3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVzdHJv
eWVkID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uSWRlbnRpZmllcikgeworICAgICAgICBsZXQg
YW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1SZW1vdmVkRXZlbnQgPSBhd2FpdCBXSS5hbmltYXRpb25N
YW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50
Lkl0ZW1SZW1vdmVkKQorCisgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiQW5pbWF0aW9uIGRl
c3Ryb3llZC4iKTsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uQ29sbGVjdGlv
bkl0ZW1SZW1vdmVkRXZlbnQuZGF0YS5pdGVtOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKGFuaW1hdGlvbi5hbmltYXRpb25JZCwgYW5pbWF0aW9uSWRlbnRpZmllciwgIlJlbW92
ZWQgYW5pbWF0aW9uIGhhcyBleHBlY3RlZCBJRC4iKTsKKyAgICB9OworCisgICAgSW5zcGVjdG9y
VGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3JlYXRlQW5pbWF0aW9uID0gYXN5bmMg
ZnVuY3Rpb24oYW5pbWF0aW9uVHlwZSwge3NlbGVjdG9yLCBrZXlmcmFtZXMsIG9wdGlvbnN9ID0g
e30pIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNyZWF0aW5nIGFuaW1hdGlvbi4uLlxu
Iik7CisKKyAgICAgICAgbGV0IHN0cmluZ2lmaWVkU2VsZWN0b3IgPSBKU09OLnN0cmluZ2lmeShz
ZWxlY3RvciB8fCBudWxsKTsKKyAgICAgICAgbGV0IHN0cmluZ2lmaWVkS2V5ZnJhbWVzID0gSlNP
Ti5zdHJpbmdpZnkoa2V5ZnJhbWVzIHx8IFtdKTsKKyAgICAgICAgbGV0IHN0cmluZ2lmaWVkT3B0
aW9ucyA9IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMgfHwge30pOworCisgICAgICAgIGxldCBbYW5p
bWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
QW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChhbmltYXRp
b25UeXBlKSwKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0
ZUFuaW1hdGlvbigke3N0cmluZ2lmaWVkU2VsZWN0b3J9LCAke3N0cmluZ2lmaWVkS2V5ZnJhbWVz
fSwgJHtzdHJpbmdpZmllZE9wdGlvbnN9KWApCisgICAgICAgIF0pOworCisgICAgICAgIHJldHVy
biBhbmltYXRpb247CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5
Y2xlVXRpbGl0aWVzLmRlc3Ryb3lBbmltYXRpb25zID0gYXN5bmMgZnVuY3Rpb24oKSB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZXN0cm95aW5nIGFuaW1hdGlvbnMuLi5cbiIpOworICAg
ICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkZXN0cm95QW5pbWF0aW9u
cygpYCk7CisgICAgfTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg4ZGUy
MmQzNDhjZWE5YWM5YWZmM2ZhZDFmMTQyNTEwNzZjZDdkNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxOCBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZCBl
dmVudC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi50YXJnZXRDaGFuZ2Vk
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0
CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQu
Li4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LgorUEFTUzogQW5pbWF0
aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
QW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTnVsbFRhcmdldAorUEFTUzogQW5pbWF0aW9uIHNob3Vs
ZCBoYXZlIGEgdGFyZ2V0LgorQ2hhbmdpbmcgdGFyZ2V0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBz
aG91bGQgbm90IGhhdmUgYSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBo
YXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRp
b24vdGFyZ2V0Q2hhbmdlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90
YXJnZXRDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU3MDVmNmM4YTMxNGViZmUyYWQ2NDkzYWI3
M2UzMmQxMDJlYTY4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
bmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5p
bWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnRh
cmdldENoYW5nZWQiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IkFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkLk5ld1RhcmdldCIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBp
ZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5p
bWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0
aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3Ro
ID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAg
ICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFu
aW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlv
bi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9u
LiIpOworCisgICAgICAgICAgICBsZXQgW29sZFRhcmdldF0gPSBhd2FpdCBwcm9taXNpZnkoKGNh
bGxiYWNrKSA9PiB7IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKTsgfSk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQob2xkVGFyZ2V0IGluc3RhbmNl
b2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5naW5nIHRhcmdldC4uLlxuIik7CisgICAg
ICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3
YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpLAorICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0
LnRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpYCksCisgICAgICAgICAgICBd
KTsKKworICAgICAgICAgICAgbGV0IFtuZXdUYXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxs
YmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG5ld1RhcmdldCBpbnN0YW5jZW9m
IFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFyZ2V0LCBvbGRUYXJnZXQs
ICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0sCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRp
b24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91
bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZp
ZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25z
ID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEs
ICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBs
ZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9u
KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUu
V2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisK
KyAgICAgICAgICAgIGxldCBbb2xkVGFyZ2V0XSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2sp
ID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChvbGRUYXJnZXQgaW5zdGFuY2VvZiBXSS5E
T01Ob2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgdGFyZ2V0Li4uXG4iKTsKKyAgICAgICAgICAg
IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uYXdhaXRFdmVu
dChXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCksCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0
ID0gbnVsbGApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGxldCBbbmV3VGFyZ2V0
XSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2spID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZl
Y3RUYXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
TnVsbChuZXdUYXJnZXQsICJBbmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGEgdGFyZ2V0LiIpOwor
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVxdWFsKG5ld1RhcmdldCwgb2xk
VGFyZ2V0LCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAg
ICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBm
b3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LjwvcD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRy
aWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmli
dXRlcy5odG1sCmluZGV4IGQ0ZTExMWZkOWQ4NTM3MTVlNDQ2MzMzNmI0YmQwNzgyNzhjYWY2MWUu
LjJkNjI3NGI3ZjU1NDdkZWI4MjgzM2I5ZmFhNWMyM2JmMDBjZmIwNzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbApAQCAt
MjAsOSArMjAsOSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmFtZSwKICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBjcmVhdGVkIGNhbnZhc2VzIGhhdmUgdGhl
IGNvcnJlY3QgdHlwZSBhbmQgYXR0cmlidXRlcyBzZW50IHRvIHRoZSBmcm9udGVuZC4iLAogICAg
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCkK
KyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRF
dmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCkKICAgICAgICAgICAgICAgICAudGhl
bigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRh
dGEuY2FudmFzOworICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5p
dGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQWRkZWQgY2FudmFz
LiIpOwogCiAgICAgICAgICAgICAgICAgICAgIGxldCBjb250ZXh0RGlzcGxheU5hbWUgPSBXSS5D
YW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlwZShjb250ZXh0VHlwZSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRt
bAppbmRleCBiYzE4MWY2MmYyZDRmNDNlYjRhMWFiZjFkOWY4MzZmY2UzZDJiYjVmLi5iMTQwZjEx
OGQwODg2Y2I3NTgwMmZhMTU0MGNhNWY4NTc2YWM2YTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTM0
LDE0ICszNCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVu
c3VyZSB0aGF0IGF0dGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBj
YW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0
KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBs
aXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZShgY3JlYXRlQXR0YWNoZWRDYW52YXMoImdwdSIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFz
TWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFz
QWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVk
LCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3Jl
YXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBhdHRhY2hl
ZCBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAg
ICAgICAgfSwKQEAgLTUyLDE0ICs1MiwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBk
ZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGRldGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0
IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURldmljZS4iLAogICAg
ICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAgICAgbGV0IGxpc3Rl
bmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9
IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV0YWNoZWRDYW52YXMoImdwdSIpYCkKIAotICAgICAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVh
dGVkIGZvciBkZXRhY2hlZCBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdlYkdQ
VURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTcwLDE0ICs3MCwxNCBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IENTUyBHUFVDYW52YXNDb250
ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFzLCBpbnN0ZWFkIG9mIHRoZSBXZWJHUFVEZXZp
Y2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAgIGxldCBjcmVhdGVkID0g
ZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9
PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0LmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKKyAgICAgICAgICAg
IGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVu
dExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRhLml0ZW0uY29udGV4
dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOwogICAgICAgICAgICAgICAg
IGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGF3YWl0IElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUNTU0NhbnZhcygiZ3B1IiwgImNzcy1j
YW52YXMiKWApCiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCBsaXN0ZW5lcik7CisgICAg
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgbGlzdGVuZXIpOwogCiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGNyZWF0ZWQsICJJbnNwZWN0b3IgY2FudmFz
IHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgQ1NTIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBj
b25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbAppbmRleCBlOGZjYmZlMDA3M2MxOWIzODVjNDZi
OTdkNDE1ZmY4OTdiYWYxZTIxLi45MzdjMWYzNGJiYTk2YjU3MDExYTMzMTllOGE1NzgyYzE4NDMy
Y2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbApA
QCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFz
LmV4dGVuc2lvbnMuZW5hYmxlIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGVu
YWJsaW5nIGFuIGV4dGVuc2lvbiBub3RpZmllcyB0aGUgZnJvbnRlbmQuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9
PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAgICAgICAgIGxldCBjYW52YXNl
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIo
KGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgpIHsKICAgICAgICAgICAg
ICAgICByZWplY3QoIk1pc3NpbmcgV2ViR0wgY2FudmFzLiIpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sCmluZGV4IDJhNDll
MDNhMTg4OGVlODU1ZWJiYjNhZjE4ODQzYmNlM2UyYmRiMWMuLjRiZmQ3YTZjZWFiNTNmYzVkOWI4
ZTcxM2I4NTNkMjc1ZTAxNzNlNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvbWVtb3J5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1v
cnkuaHRtbApAQCAtMjgsNyArMjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
Ly8gcGVyZm9ybWVkIG9uIHRoYXQgY2FudmFzIHRoYXQgcmVxdWlyZXMgdGhlIGltYWdlIGJ1ZmZl
ci4gIEEgYmxhbmsgY2FudmFzIHRoYXQgd2FzCiAgICAgICAgICAgICAvLyBqdXN0IGNyZWF0ZWQg
d2lsbCBub3QgaGF2ZSBhIGJ1ZmZlciwgc28gaXRzIG1lbW9yeSBjb3N0IHdpbGwgYmUgMC9OYU4u
CiAKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMu
ZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20o
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2Fu
dmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAg
ICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICByZWplY3Qo
Ik1pc3NpbmcgMkQgY2FudmFzLiIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ1LDcg
KzQ1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5tZW1vcnku
Y2FudmFzTWVtb3J5Q2hhbmdlZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBt
ZW1vcnkgY29zdCBpcyB1cGRhdGVkIHdoZW4gdGhlIGJhY2tlbmQgdmFsdWUgY2hhbmdlcy4iLAog
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2Vz
ID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAg
ICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0
aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZWNvcmRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3Jk
aW5nLmh0bWwKaW5kZXggNGQzY2ZlOWI4ZTZlOTc0MGQ0ZWNhNjc3OTRhNDVhNGY5ZWVjNjhkMS4u
YmUwOGEyMDQxMzAyYzM3NzYxNGNjMzNlMTM5NGEwOTAxNzUyZTJiOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMuQWN0aW9uUGFyYW1ldGVyTmFOIiwK
ICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IE5hTiBpcyBjb252ZXJ0ZWQgaW50byB0
aGUgcHJvcGVyIHZhbHVlIGZvciBzZXJpYWxpemF0aW9uLiIsCiAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGNhbnZhcyBjb250
ZXh0LiIpOwogCiAgICAgICAgICAgICBjYW52YXMuYXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQu
UmVjb3JkaW5nU3RvcHBlZCkKQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgbmFtZTogIkNhbnZhcy5NdWx0aXBsZVJlY29yZGluZyIsCiAgICAgICAgIGRlc2NyaXB0
aW9uOiAiQ2hlY2sgdGhhdCBtdWx0aXBsZSByZWNvcmRpbmdzIGFyZSBhYmxlIHRvIGJlIHN0YXJ0
ZWQvc3RvcHBlZCBhdCB0aGUgc2FtZSB0aW1lLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c2VzOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
Y2FudmFzZXMubGVuZ3RoID09PSAyLCAiVGhlcmUgc2hvdWxkIGJlIHR3byBjYW52YXMgY29udGV4
dHMuIik7CiAKICAgICAgICAgICAgIGNhbnZhc2VzWzFdLmF3YWl0RXZlbnQoV0kuQ2FudmFzLkV2
ZW50LlJlY29yZGluZ1N0b3BwZWQpCkBAIC0xMTIsNyArMTEyLDcgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5Ob0FjdGlvbnMiLAogICAgICAgICBkZXNjcmlwdGlv
bjogIkNoZWNrIHRoYXQgYSBjYW52YXMgaXMgc3RpbGwgYWJsZSB0byBiZSByZWNvcmRlZCBhZnRl
ciBzdG9wcGluZyBhIHJlY29yZGluZyB3aXRoIG5vIGFjdGlvbnMuIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFz
IGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGxldCBldmVudENvdW50ID0gMDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCmlu
ZGV4IDIzY2QwNDg2ODUwZDBhZTFiNzY3OTg3NWIwYWYyN2EwNTFjMGY0Y2QuLmY3NGQxNWUxMDZl
YTNiMDVjYTkxYjgwMWY4MWM4YTAyZjExNTA0YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbApAQCAtMTYsNyArMTYsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDbGllbnRO
b2Rlcy5Jbml0aWFsIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGNyZWF0aW5n
IGEgQ1NTIGNhbnZhcyBjbGllbnQgbm9kZSBpcyB0cmFja2VkIGNvcnJlY3RseS4iLAogICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXku
ZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9u
ZSBjYW52YXMuIik7CiAKICAgICAgICAgICAgIGNhbnZhcy5yZXF1ZXN0Q2xpZW50Tm9kZXMoKGNs
aWVudE5vZGVzKSA9PiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDb250ZW50LTJkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RDb250ZW50LTJkLmh0bWwKaW5kZXggNTM1MDk1NzYyYjM5MGYyY2UzZmI1YTk2OTZhZGU2
MTEzNDMzYzJmZC4uZTljYmExZDAxMDdjM2E2N2NlZjE3MmU4YWI1YTlhNGE0YWE5Y2EwYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQu
aHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAi
Q2FudmFzLnJlcXVlc3RDb250ZW50MkQudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0
aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgY2FudmFzIG9uIHRoZSBw
YWdlIHdpdGggdGhlIGdpdmVuIHR5cGUuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZp
bmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAg
IGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5g
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwK
aW5kZXggY2Q1MDgzYzI1MjUyNzRkNzlmYjhmNGJkNzliOTc5MzhmZTMwYzYzMC4uZjUyNjZlZmRl
ZmQ3ZWM3NDc0ZTk2ZWJhYWZkMGJiNTczYjI1ZjJiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVy
ZXIuaHRtbApAQCAtMjIsNyArMjIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1l
OiAiQ2FudmFzLnJlcXVlc3RDb250ZW50Qml0bWFwUmVuZGVyZXIudmFsaWRDYW52YXNJZCIsCiAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUg
Qml0bWFwUmVuZGVyZXIgY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBS
ZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJl
amVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5o
dG1sCmluZGV4IGFlYjgxZWYyN2QzYzk4MDU4NDk3OTk2YTE3OWJkNjRhNWJmZTliZWYuLjcwYzIx
ZmU0MzM5NjkxNTk2MDkxMjI4NDU2NmFmMmY3M2Q1OGI5NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwKQEAgLTE4
LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1
ZXN0Q29udGVudFdlYkdMLnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkdl
dCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3IgdGhlIFdlYkdMIGNhbnZhcyBvbiB0aGUgcGFn
ZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNh
bnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMu
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAg
ICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAg
ICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQt
d2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50
LXdlYmdsMi5odG1sCmluZGV4IDZiMDNkNWVjN2U1OWQwMjY2ODdjNmI3ZjBkYjI4MDZlMTYzYWVj
Y2YuLmY3YjU1ZjRhM2RmYzA4NDNhZWY3ODgwYjlmNzk3NDBjZTE1YTA4NjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIu
aHRtbApAQCAtMjEsNyArMjEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAi
Q2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wyLnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNj
cmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3IgdGhlIFdlYkdMMiBjYW52
YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZh
cykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wy
KTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09
IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMp
IHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdE5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5v
ZGUuaHRtbAppbmRleCBlNWM2MTQ3ZTM0N2JjMzY5ZTJjMDVjYzg0MTY2ZDgwNmE3MWMwNjE2Li5k
Y2M0YmNjZWU3NWY0YTY5Mzg0NWJiZGVlNzEyM2FmZmUyYTc5MDUzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdE5vZGUudmFsaWRD
YW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBub2RlIGlkIGZvciBlYWNo
IGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlczsKKyAg
ICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uKTsKICAgICAgICAgICAgIGxldCBleHBlY3RlZExlbmd0aCA9IGNhbnZhc2Vz
Lmxlbmd0aDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV4cGVjdGVkTGVuZ3Ro
ID09PSAzLCAiVGhlIHBhZ2UgaGFzIDMgY2FudmFzZXMuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbAppbmRleCBjNDFjYzZi
Yzc0YTMyNDE5MjBiM2Q2YjVjM2Q5YjNjNmJmZGE5NWQxLi5mZTE0MTE3OWI3Y2FkYTNiYjU4NWE4
ODg4NGRlNmJiNjM0ZTc0MzhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0MkQudmFsaWRJZGVudGlm
aWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0
IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZy
b20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAg
ICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5n
IENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRl
cmVyLmh0bWwKaW5kZXggODYyNTI5MjY1YzRkZDZiMjliMjk2Nzg4NDQxY2VmOWU2NzdiOWIxMC4u
Mjk3ZDQ0MWUxNGZhNGIxYmQzOTZkYzA1NGY4NWI4ZDkzZjlhZTVjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0
bWFwcmVuZGVyZXIuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dEJpdG1hcFJlbmRlcmVyLnZhbGlkSWRlbnRp
ZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVj
dCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBS
ZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJl
amVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5o
dG1sCmluZGV4IDk1YWRmMTJjMDkzYWRmMzBjNDdkMjkyOTkyMzQzZGNmMDFjY2U4N2UuLjJhNzBm
YTRhMGZiMTdmZmExOTQ0NDc1MTljYjM5ZTU4MGI5MzVlNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwKQEAgLTE3
LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2
ZUNvbnRleHRXZWJHTC52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNo
b3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmll
ci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNh
bnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMu
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAg
ICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAg
ICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQt
d2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0
LXdlYmdsMi5odG1sCmluZGV4IDExNTFmOTE3YTdhMjNlNmZlMzMyYjQzYTlhMzQwNmE5Y2ZlOTBh
NTQuLmQ4ZTA4MzFlNmJjM2EyOTY1ZThkNDJjZmQ1ODdlMmRmYTE0ZDJjNzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIu
aHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENh
bnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMMi52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNj
cmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52
YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIp
OworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5j
YW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykg
ewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKaW5kZXggZGMwMGVmMTIzN2E2N2I4OTA1ZjM4MGRj
ZWNmNmE3OWNlYjYzMjY3Ni4uZTkyNWIyNzE2NDhmNDQ0YzIzYzlkMmE4NWNiODUyMDYyNGNiNjI1
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4
dC13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LXdlYmdwdS5odG1sCkBAIC0yMiwxNCArMjIsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHRXZWJHUFUudmFsaWRJZGVudGlmaWVy
YCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZv
ciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c2VzLmxlbmd0aCwgIlRoZXJlIHNob3VsZCBiZSBubyBjYW52YXNlcy4iKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
c2l6ZSwgIlRoZXJlIHNob3VsZCBiZSBubyBjYW52YXNlcy4iKTsKIAotICAgICAgICAgICAgbGV0
IFtjYW52YXNBZGRlZEV2ZW50XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52
YXNBZGRlZCksCisgICAgICAgICAgICBsZXQgW2NhbnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVu
dF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRk
ZWQpLAogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0
ZURldmljZSgpYCksCiAgICAgICAgICAgICBdKTsKIAotICAgICAgICAgICAgbGV0IHtjYW52YXN9
ID0gY2FudmFzQWRkZWRFdmVudC5kYXRhOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGNhbnZh
c0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUsIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHUFUsICJBZGRlZCBjYW52YXMgc2hvdWxkIGJlIGEgV2ViR1BVIGRldmljZS4iKTsKIAogICAg
ICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMu
anMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4
dC11dGlsaXRpZXMuanMKaW5kZXggM2E0NjA0NTUyNTEwMTgyYmJlMmVmMzU1NzIzYTQxZTA0Mjg5
ZDYyZi4uMTU5MTU4MDI1OTAyM2I5ZTIzOGU3MWJiNWM4NTVhYTdjODY0ODFjNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQt
dXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2Vz
L2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwpAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiBk
ZXN0cm95Q2FudmFzZXMoKSB7CiAgICAgd2luZG93LmNvbnRleHRzID0gW107CiAKICAgICAvLyBG
b3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlzIGRlc3Ryb3llZCwgb3Ro
ZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFu
YWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBkb2VzIG5vdCByZWNlaXZl
IENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0ND
b250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKQEAgLTQzLDkgKzQzLDkgQEAgVGVzdFBh
Z2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgbGV0IHN1aXRlID0gbnVsbDsKIAog
ICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzQWRkZWQoY29udGV4dFR5cGUpIHsKLSAgICAgICAgcmV0
dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNh
bnZhc0FkZGVkKQorICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpCiAgICAgICAgIC50
aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2Fu
dmFzOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAg
ICAgIGxldCBjb250ZXh0RGlzcGxheU5hbWUgPSBXSS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250
ZXh0VHlwZShjb250ZXh0VHlwZSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKGNhbnZhcy5jb250ZXh0VHlwZSwgY29udGV4dFR5cGUsIGBDYW52YXMgY29udGV4dCBzaG91
bGQgYmUgJHtjb250ZXh0RGlzcGxheU5hbWV9LmApOwogCkBAIC03Myw5ICs3Myw5IEBAIFRlc3RQ
YWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIH0KIAogICAgIGZ1bmN0aW9uIGF3
YWl0Q2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKSB7Ci0gICAgICAgIHJldHVybiBXSS5j
YW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1v
dmVkKQorICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3
YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCkKICAgICAgICAgLnRoZW4o
KGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7
CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjYW52YXMuaWRlbnRpZmllciwgY2FudmFzSWRlbnRp
ZmllciwgIlJlbW92ZWQgY2FudmFzIGhhcyBleHBlY3RlZCBJRC4iKTsKICAgICAgICAgfSk7CiAg
ICAgfQpAQCAtODksNyArODksNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+
IHsKICAgICAgICAgICAgIG5hbWU6IGAke3N1aXRlLm5hbWV9Lk5vQ2FudmFzZXNgLAogICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBDYW52YXNNYW5hZ2VyIGhhcyBubyBj
YW52YXNlcyBpbml0aWFsbHkuIiwKICAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmxlbmd0aCwgMCwgIkNhbnZhc01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2Fu
dmFzZXMuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSwgMCwgIkNhbnZhc01hbmFnZXIgc2hv
dWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CiAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzCmluZGV4IDYw
MTQ2ZmYzODQ4N2ZkMTkzZTIzZDMzNzQ3ZGYzMTA0NmNjNjgxZjMuLjc3YTBlYTM0M2I2NWY0MjRi
YWM2ZGUzNzVlMzNiZjJjYWJkY2NiZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcwpAQCAt
ODYsNyArODYsNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9
CiAKICAgICB3aW5kb3cuZ2V0Q2FudmFzID0gZnVuY3Rpb24odHlwZSkgewotICAgICAgICBsZXQg
Y2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBj
YW52YXMuY29udGV4dFR5cGUgPT09IHR5cGUpOworICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJh
eS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlwZSk7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgYFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBj
YW52YXMgd2l0aCB0eXBlICIke3R5cGV9Ii5gKTsKICAgICAgICAgaWYgKGNhbnZhc2VzLmxlbmd0
aCAhPT0gMSkKICAgICAgICAgICAgIHJldHVybiBudWxsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2Vi
Z2wuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9n
cmFtLXV0aWxpdGllcy13ZWJnbC5qcwppbmRleCA1Mjc1YzQ0MWFhZmM3M2I5MTA3OTQ1YjNjZDcz
ZjljYTY3ZTFlNjVlLi5mNDNlNmYyNzdjZGM3ZDA1OGQwOTk0MWE3NjY3NzYzNGUwNWU2Y2MxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQ
cm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcwpAQCAtMzksNyAr
MzksNyBAQCBmdW5jdGlvbiBkZWxldGVQcm9ncmFtKCkgewogZnVuY3Rpb24gZGVsZXRlQ29udGV4
dCgpIHsKICAgICBjb250ZXh0ID0gbnVsbDsKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUg
dGhlIGNhbnZhcyBlbGVtZW50IGlzIGRlc3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAot
ICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1v
dmVkIGV2ZW50cy4KKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVk
IGV2ZW50cy4KICAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsg
fSwgMCk7CiB9CiAKQEAgLTQ3LDggKzQ3LDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXpl
cigoKSA9PiB7CiAgICAgbGV0IHN1aXRlID0gbnVsbDsKIAogICAgIGZ1bmN0aW9uIHdoZW5Qcm9n
cmFtQWRkZWQoY2FsbGJhY2spIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBv
bmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJy
YXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25s
eSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBjYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvZ3JhbSA9IGV2ZW50LmRhdGEu
aXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtIGluc3Rh
bmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIkFkZGVkIFNoYWRlclByb2dyYW0uIik7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBX
SS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsK
QEAgLTU3LDggKzU4LDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAg
ICAgfQogCiAgICAgZnVuY3Rpb24gd2hlblByb2dyYW1SZW1vdmVkKGNhbGxiYWNrKSB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3Ro
ID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKLSAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQp
ID0+IHsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNl
cy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworICAg
ICAgICBjYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRM
aXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAg
ICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFt
LCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJv
Z3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMuIik7CkBAIC03NCw3ICs3Niw3IEBAIFRl
c3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGF0IFNoYWRlclByb2dyYW1BZGRlZCBpcyBzZW50IGZvciBhIHByb2dyYW0g
Y3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQgaXMgZW5hYmxlZC4iLAogICAgICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgICAvLyBUaGlzIGNhbid0IHVzZSBg
YXdhaXRFdmVudGAgc2luY2UgdGhlIHByb21pc2UgcmVzb2x1dGlvbiBoYXBwZW5zIG9uIHRoZSBu
ZXh0IHRpY2suCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZl
bnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2lu
Z2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVu
dCkgPT4gewogICAgICAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbUFkZGVkKChwcm9ncmFtKSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAg
ICAgIH0pOwpAQCAtMTEzLDcgKzExNSw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIo
KCkgPT4gewogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAg
ICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICAgICAg
Y2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdwdS5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2Vz
L3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcwppbmRleCBmZTQ4ZDhmZDg1MTE0NjU4
OThmZDNiMDQ1MGRlODk1MTM3NDQ5YmU0Li5iOGRlMzRjZmE4Nzg2ODVmOTY1YTlmOTBiYjRiZjhh
YWIzNTczNjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291
cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1
LmpzCkBAIC02NCw3ICs2NCw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVJlbmRlclBpcGVsaW5l
KGNvZGUgPSByZW5kZXJQaXBlbGluZVNvdXJjZSkgewogZnVuY3Rpb24gZGVsZXRlRGV2aWNlKCkg
ewogICAgIGRldmljZSA9IG51bGw7CiAgICAgLy8gRm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBk
ZXZpY2UgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBu
b3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgor
ICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAg
IHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRv
Q2FwdHVyZUZyYW1lQ291bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0
UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwKaW5kZXggZDk4ZjBmZWE0ZTkyYzE1
Mjk3ODExMmMyZDA3MGNkNzRlOTU5ZDRlMi4uNTVlNTUyNDczMDgzYWEyZDFiYWViMGU4ODdlZTA1
ZmMyOGYwYTBlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRS
ZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sCkBAIC03
Nyw4ICs3Nyw4IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgICAgIGhhbmRs
ZVJlY29yZGluZ1N0b3BwZWQoY2FudmFzLCBldmVudC5kYXRhLnJlY29yZGluZyk7CiAgICAgICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJl
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQp
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7Cisg
ICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghY2FudmFzLnJlY29yZGluZ0FjdGl2
ZSkKIAogICAgICAgICAgICAgICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52
YXMuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwgaGFuZGxlUmVjb3JkaW5nU3RhcnRlZFdyYXBwZXIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFt
LWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3No
YWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbAppbmRleCBkNDBmYWI3ODM4MTMwY2M5
NGIwM2JmOTFkOTZmMjI3MDkwNGViMDEzLi5kNWZiODc3MmMwYjM3NWM0MGQ1ZDdhMGU0MjAyYTU0
ZmY1ZDUyZDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRl
clByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbApAQCAtMTQsOSAr
MTQsMTEgQEAgd2luZG93LmJlZm9yZVRlc3QgPSBhc3luYyBmdW5jdGlvbigpIHsKIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRl
KGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFVgKTsKIAotICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20o
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2Fu
dmFzLiIpOworCisgICAgbGV0IGNhbnZhcyA9IGNhbnZhc2VzWzBdOwogICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhIGNhbnZhcy4iKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwg
IlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CiAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BV
LCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CiAKICAgICBhc3luYyBmdW5jdGlvbiBhd2Fp
dFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgewpAQCAtMTE4LDcgKzEyMCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBs
ZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVt
b3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVt
UmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRy
dWU7CiAgICAgICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVy
dGV4RnJhZ21lbnQuaHRtbAppbmRleCAzNGQwMmFiMTdlOTA1YTRiNzhhMDI2NTUwNDlhZTI4ZGIz
MzEwODcxLi44Y2Y5YTQ3NTYyMjQyMWM4MzY4OWM5YWQzN2QyMTkwYTAxY2U5ZTM5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hh
cmVkVmVydGV4RnJhZ21lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbApAQCAtNTcsMTAg
KzU3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJD
cmVhdGluZyByZW5kZXIgcGlwZWxpbmUuLi4iKTsKICAgICAgICAgbGV0IGV2YWx1dGVQcm9taXNl
ID0gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlUmVuZGVyUGlwZWxpbmUoKWAp
OwogCi0gICAgICAgIGlmICghV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGgpCi0gICAg
ICAgICAgICBhd2FpdCBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdl
ci5FdmVudC5DYW52YXNBZGRlZCk7CisgICAgICAgIGlmICghV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uLnNpemUpCisgICAgICAgICAgICBhd2FpdCBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCk7
CiAKLSAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07Cisg
ICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbilbMF07CiAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0
VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkNhbnZhcyBzaG91bGQgYmUg
V2ViR1BVLiIpOwogCiAgICAgICAgIGxldCBpdGVtQWRkZWRFdmVudCA9IGF3YWl0IGNhbnZhcy5z
aGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRl
bUFkZGVkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rl
c3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVk
LnR4dAppbmRleCA2NmJkYmFiOWVlZTMxNjc5MGY4ZjI2NzQ2ZjkzZTIxZWQ0YzNkZjFlLi5kYmY2
MzUxZTlhMDkyNDYwYWJlZTlkMzRkOTIwNmIwZjczMzZiM2E1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1o
YXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC01NCw2ICs1NCw3NCBAQCBG
QUlMOiBleHBlY3RGYWxzZShbXSkKICAgICBFeHBlY3RlZDogZmFsc2V5CiAgICAgQWN0dWFsOiBb
XQogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5leHBlY3RFbXB0eQorRXhw
ZWN0ZWQgdG8gUEFTUworUEFTUzogZXhwZWN0RW1wdHkobnVsbCkKK1BBU1M6IGV4cGVjdEVtcHR5
KCIiKQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitQQVNTOiBleHBlY3RFbXB0eShbXSkKK1BBU1M6
IGV4cGVjdEVtcHR5KHt9KQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlM
CitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0
dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5KHsidGVzdCI6MX0pCisgICAgRXhwZWN0ZWQ6
IGVtcHR5CisgICAgQWN0dWFsOiB7InRlc3QiOjF9CitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIp
CisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVt
cHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVj
dEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4
cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFj
dHVhbDogdHJ1ZQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBh
IG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiBmYWxzZQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxk
IG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiAxCitGQUlMOiBl
eHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBB
Y3R1YWw6IHVuZGVmaW5lZAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5l
eHBlY3ROb3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFTUworUEFTUzogZXhwZWN0Tm90RW1wdHkoInRl
c3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoeyJ0ZXN0IjoxfSkKK1BBU1M6IGV4cGVjdE5vdEVt
cHR5KCJ0ZXN0IikKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KHt9KQorUEFTUzogZXhwZWN0Tm90RW1w
dHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlMOiBleHBlY3ROb3RFbXB0eShudWxsKQorICAg
IEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IG51bGwKK0ZBSUw6IGV4cGVjdE5vdEVt
cHR5KCIiKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6ICIiCitGQUlMOiBl
eHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7
fQorRkFJTDogZXhwZWN0Tm90RW1wdHkoW10pCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAg
IEFjdHVhbDogW10KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3Qg
ZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBl
Y3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hv
dWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB0cnVlCitG
QUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVj
dDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJl
IGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IDEKK0ZBSUw6IGV4cGVjdE5v
dEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVh
bDogdW5kZWZpbmVkCisKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVj
dE51bGwKIEV4cGVjdGVkIHRvIFBBU1MKIFBBU1M6IGV4cGVjdE51bGwobnVsbCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3Qt
ZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhh
cm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCmluZGV4IDkxZTg1ODBjN2NiNjI3MzQ1ODI1NDAy
NDk3MjAwOWU5OWNkYTgzNGQuLmUzODY0YTAzYzRlMDk0MWNhOGMwMmYyZjBhNzg2MjYzOTg4YjAx
MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFy
bmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbApAQCAtNDgsNiArNDgs
MjAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgYWRkVGVzdENhc2UoZXhwZWN0VGhhdFRlc3RDYXNl
KTsKICAgICBhZGRJbnZlcnNlVGVzdENhc2UoImV4cGVjdEZhbHNlIiwgZXhwZWN0VGhhdFRlc3RD
YXNlKTsKIAorICAgIGxldCBleHBlY3RFbXB0eVRlc3RDYXNlID0geworICAgICAgICBmdW5jdGlv
bk5hbWU6ICJleHBlY3RFbXB0eSIsCisgICAgICAgIHBhc3NpbmdJbnB1dHM6IFtudWxsLCAiIiwg
e30sIFtdLCBuZXcgTWFwLCBuZXcgU2V0XSwKKyAgICAgICAgZmFpbGluZ0lucHV0czogWyJ0ZXN0
Iiwge3Rlc3Q6IDF9LCBbInRlc3QiXSwgbmV3IE1hcChbWyJ0ZXN0IiwgMV1dKSwgbmV3IFNldChb
InRlc3QiXSksIHRydWUsIGZhbHNlLCAxLCB1bmRlZmluZWRdLAorICAgIH07CisgICAgYWRkVGVz
dENhc2UoZXhwZWN0RW1wdHlUZXN0Q2FzZSk7CisKKyAgICBsZXQgZXhwZWN0Tm90RW1wdHlUZXN0
Q2FzZSA9IHsKKyAgICAgICAgZnVuY3Rpb25OYW1lOiAiZXhwZWN0Tm90RW1wdHkiLAorICAgICAg
ICBwYXNzaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVzdDogMX0sIFsidGVzdCJdLCBuZXcgTWFwKFtb
InRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJdKV0sCisgICAgICAgIGZhaWxpbmdJbnB1dHM6
IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBuZXcgU2V0LCB0cnVlLCBmYWxzZSwgMSwgdW5k
ZWZpbmVkXSwKKyAgICB9OworICAgIGFkZFRlc3RDYXNlKGV4cGVjdE5vdEVtcHR5VGVzdENhc2Up
OworCiAgICAgbGV0IGV4cGVjdE51bGxUZXN0Q2FzZSA9IHsKICAgICAgICAgZnVuY3Rpb25OYW1l
OiAiZXhwZWN0TnVsbCIsCiAgICAgICAgIHBhc3NpbmdJbnB1dHM6IFtudWxsXSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389028</attachid>
            <date>2020-01-28 10:22:36 -0800</date>
            <delta_ts>2020-01-28 11:59:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20200128102235.patch</filename>
            <type>text/plain</type>
            <size>325829</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk2OTYxZjQ5MzMwM2E0NTM4NzA3ODdjMzNjYmFk
MjdhZGQ5NzQxZmYuLjU3OGM0NTEzMWVjOWE0ODE0ZTllNjc1NTA2NjczOGYwOWYwNzMyNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggT3BlblNvdXJjZSBpcGhvbmVvcyBhcm02NGUgYnVp
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA4NGYwMTMyZjVlMTNmNGQ1NjRjN2I5Mzk1MGIxMThkZDEwMGUyMmNl
Li41NGM3NDk4NTY0ZWNhZWNkYzgyZDQzN2QzZjg2NDYxODEyYTBmMGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTA1IEBACisyMDIwLTAxLTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBz
aG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4
MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgQWRk
IHR5cGVzL2NvbW1hbmRzL2V2ZW50cyBmb3IgaW5zdHJ1bWVudGluZyB0aGUgbGlmZWN5Y2xlIG9m
IGBBbmltYXRpb25gIG9iamVjdHMsIGFzIHdlbGwgYXMKKyAgICAgICAgY29tbWFuZHMgZm9yIGdl
dHRpbmcgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3QgYW5kIHRoZSB0YXJnZXQgRE9NIG5v
ZGUuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5o
dG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5p
bWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LWNzcy10cmFuc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2Fu
aW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rv
ci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0
b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbAorCisgICAgICAgICogYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjppbnN0YW5jZXMpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6
fldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmVmZmVjdFRp
bWluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnNldEVmZmVj
dEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24v
Q1NTVHJhbnNpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUcmFuc2l0aW9uOjpjcmVh
dGUpOgorCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6cGFyc2VkS2V5ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YmxlbmRpbmdLZXlmcmFtZXMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpoYXNCbGVuZGluZ0tl
eWZyYW1lcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZm
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxk
UnVuQWNjZWxlcmF0ZWQpOgorICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGFjY2VzcyB0aGUgbGlz
dCBvZiBrZXlmcmFtZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3QpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5p
bWF0aW9uRWZmZWN0VGltaW5nSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBs
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0SW1wbCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVu
dGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6ZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCk6CisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6cHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpidWlsZE9iamVjdEZvckVmZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxl
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlz
YWJsZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OnJlcXVlc3RFZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpyZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlk
Q3JlYXRlV2ViQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRp
b24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpi
aW5kQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6dW5iaW5kQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc2V0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpw
dXNoTm9kZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6
OnF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdl
bnQ6OnNldE5vZGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpz
ZXRPdXRlckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9u
dGVuZCk6CisgICAgICAgIEFkZCBhbiBvdmVybG9hZCBmb3IgYHB1c2hOb2RlUGF0aFRvRnJvbnRl
bmRgIHRoYXQgZXhwb3NlcyBhbiBgRXJyb3JTdHJpbmdgLgorCiAyMDIwLTAxLTI3ICBOb2FtIFJv
c2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICAtd2Via2l0LWltYWdlLXNldCBz
aG91bGQgc3VwcG9ydCByZXNvbHV0aW9uIHVuaXRzIG90aGVyIHRoYW4gJ3gnCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZwppbmRleCA4NzJhODcxMjBhOGY3N2EwZWQxYTdjZDQyNjgyOGY0MzU2ZGVjM2Fl
Li4wMDdjOGZiNDc1ZTgxMzQzZDc1ZjYwZWY1MDRkNGY1NzZkMmU3OTUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMjggQEAKKzIwMjAtMDEtMjcgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBpbnN0cnVt
ZW50YXRpb24gZm9yIHNob3dpbmcgZXhpc3RpbmcgV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQzNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjgzMjgwODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5q
czogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBkb21haW5zKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmFjdGl2YXRlRXh0cmFEb21haW4pOgorICAgICAgICAoV0ku
QW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuaW5pdGlhbGl6ZVRhcmdldCk6CisgICAgICAgIChX
SS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uQ29sbGVjdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgc3VwcG9ydGVkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmVuYWJsZSk6CisgICAgICAgIChX
SS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25NYW5hZ2VyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5faGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQp
OiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS5lZmZlY3RD
aGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUu
dGFyZ2V0Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJv
dG90eXBlLmFuaW1hdGlvbkRlc3Ryb3llZCk6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qczogQWRkZWQuCisgICAgICAgIChXSS5B
bmltYXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJv
dG90eXBlLmdldCBhbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rp
b24ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xs
ZWN0aW9uLnByb3RvdHlwZS5vYmplY3RJc1JlcXVpcmVkVHlwZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtQWRkZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbVJlbW92ZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbXNDbGVhcmVkKToKKyAg
ICAgICAgU2ltaWxhciB0byBgV0kuUmVzb3VyY2VDb2xsZWN0aW9uYCwgY3JlYXRlIGEgc3ViY2xh
c3Mgb2YgYFdJLkNvbGxlY3Rpb25gIHRoYXQgbWFpbnRhaW5zIGl0J3MKKyAgICAgICAgb3duIHN1
Yi1gV0kuQW5pbWF0aW9uQ29sbGVjdGlvbmBzIGZvciBlYWNoIHR5cGUgb2YgYFdJLkFuaW1hdGlv
bi5UeXBlYC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qczog
QWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmZy
b21QYXlsb2FkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlv
blR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJl
Y3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1vZGUpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvbklkKToKKyAgICAgICAg
KFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGJhY2t0cmFjZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb24ucHJvdG90eXBlLmdldCBhbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bi5wcm90b3R5cGUuZ2V0IHN0YXJ0RGVsYXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS5nZXQgZW5kRGVsYXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQg
aXRlcmF0aW9uQ291bnQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRl
cmF0aW9uU3RhcnQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0
aW9uRHVyYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgdGltaW5n
RnVuY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgcGxheWJhY2tE
aXJlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZmlsbE1vZGUp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQga2V5ZnJhbWVzKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5wcm90b3R5cGUucmVxdWVzdEVmZmVjdFRhcmdldCk6CisgICAgICAgIChXSS5B
bmltYXRpb24ucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
LnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuX3VwZGF0ZUVmZmVjdCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1v
dGVPYmplY3QuanM6CisgICAgICAgIChXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlvbik6
IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMuCisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5m
byk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmlzVGFiQWxsb3dlZCk6Cisg
ICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgdHlwZSk6Cisg
ICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93UmVwcmVzZW50
ZWRPYmplY3QpOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLmNhblNob3dSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jbG9zZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6IEFkZGVkLgorICAgICAgICAoV0ku
R3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxp
bmVTZWxlY3Rpb25EaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzLgor
ICAgICAgICBSZW5hbWUgdGhlIENhbnZhcyBUYWIgdG8gR3JhcGhpY3MgVGFiIGFuZCBkaXNwbGF5
IGZvdXIgc2VjdGlvbnM6CisgICAgICAgICAtIENhbnZhc2VzCisgICAgICAgICAtIFdlYiBBbmlt
YXRpb25zCisgICAgICAgICAtIENTUyBBbmltYXRpb25zCisgICAgICAgICAtIENTUyBUcmFuc2l0
aW9ucworCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwu
anM6CisgICAgICAgIChXSS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmNhblNob3dSZXBy
ZXNlbnRlZE9iamVjdCk6CisgICAgICAgIE9ubHkgYXBwZWFyIGlmIGEgYFdJLkNhbnZhc2Agb3Ig
YFdJLlJlY29yZGluZ2AgaXMgc2VsZWN0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3Rz
KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0
IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250
ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkdyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JE
cmFnRXZlbnQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5kcm9wWm9uZUhhbmRsZURyb3ApOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAg
ICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0dy
aWRCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVJbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hh
bmdlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
Ll9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFu
Z2UpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5f
aGFuZGxlQ2xpY2spOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmdyYXBo
aWNzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcg
PiBzZWN0aW9uKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBz
ZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAgICguY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRl
cik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+
IC5oZWFkZXIgPiBoMSk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAuY29udGVu
dC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xv
ci1zY2hlbWU6IGxpZ2h0KSAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlv
biA+IC5oZWFkZXIpOgorICAgICAgICBBZGQgc3RpY2t5IGhlYWRlcnMgZm9yIGVhY2ggb2YgdGhl
IHNlY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25D
b2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2Vk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
Y29udGVudFZpZXdBZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRW
aWV3TW91c2VFbnRlcik6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZp
ZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczogQWRk
ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uKToKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanM6IEFkZGVk
LgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcuZ2V0IHByZXZpZXdIZWlnaHQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNpemVEaWRDaGFuZ2UpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAg
IChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hTdWJ0aXRsZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQcmV2aWV3
LmFkZFRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
cmVmcmVzaFByZXZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLl9oYW5kbGVFZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5faGFuZGxlVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29u
dGV4dE1lbnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVu
dFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkKToKKyAgICAgICAgKC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3Qo
OmVtcHR5KTo6YmVmb3JlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVh
ZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
OmhvdmVyID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gLnByZXZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHN2Zyk6CisgICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiAucHJldmlldyA+IHN2ZyByZWN0KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSk6CisgICAgICAgICguY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRoKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZl
IGNpcmNsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnID4gLmFjdGl2ZSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcgPiBzcGFuKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6
IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRs
ZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAg
ICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiAucHJldmlldyk6CisgICAgICAgIFZpc3VhbGl6ZSB0aGUgc3RhcnQvZW5kIGRlbGF5
IGFuZCBrZXlmcmFtZXMgb2YgdGhlIGdpdmVuIGFuaW1hdGlvbiBhcyBhIHNlcmllcyBvZiBiZXpp
ZXIKKyAgICAgICAgY3VydmVzIHNlcGFyYXRlZCBieSBtYXJrZXJzLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6CisgICAgICAg
IChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9u
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNl
dCBhbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24pOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hFZmZl
Y3RTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLl9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdl
ZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5f
aGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRT
dGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5jc3M6IEFkZGVkLgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwu
ZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9u
LWtleWZyYW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBh
bmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1h
dGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbik6CisgICAgICAgICguc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmlt
YXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMpOgorICAgICAgICAo
LnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxz
LXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVz
IC5Db2RlTWlycm9yKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0
aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRl
dGFpbHMtc2VjdGlvbik6CisgICAgICAgIFNob3cgY29sbGVjdGVkIGluZm9ybWF0aW9uIGFib3V0
IHRoZSBzZWxlY3RlZCBhbmltYXRpb24sIGl0cyBlZmZlY3QsIGFuZCBpdHMgdGFyZ2V0LgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAg
ICAgICAoV0kuQ2FudmFzTWFuYWdlcik6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5nZXQgY2FudmFzQ29sbGVjdGlvbik6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFu
YWdlci5wcm90b3R5cGUuZGlzYWJsZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5jYW52YXNBZGRlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5j
YW52YXNSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9zYXZl
UmVjb3JkaW5ncyk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUu
X21haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5nZXQgY2FudmFzZXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5w
cm90b3R5cGUuX3JlbW92ZUNhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgIFJhdGhlciB0aGFuIGhh
dmUgdGhlIGBXSS5DYW52YXNUYWJDb250ZW50Vmlld2AgbWFpbmFpbiB0aGUgYFdJLkNhbnZhc0Nv
bGxlY3Rpb25gIGFuZCBoYXZlIHRvCisgICAgICAgIGxpc3RlbiBmb3IgZXZlbnRzIGZyb20gdGhl
IGBXSS5DYW52YXNNYW5hZ2VyYCwganVzdCBoYXZlIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAgaG9s
ZCBvbiB0bworICAgICAgICBpdCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEgZ2V0dGVyIGZvciBpdC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5qczoKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAo
V0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVt
cyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5k
bGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAg
IChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAg
ICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6Cisg
ICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWRkU2F2ZWRS
ZWNvcmRpbmcpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuaGlkZGVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLmdldCBfaXRlbU1hcmdpbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXdzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRh
dGVOYXZpZ2F0aW9uSXRlbXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdD
b250ZW50Vmlldy5wcm90b3R5cGUuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hv
d0ltYWdlR3JpZCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVt
ZTogZGFyaykgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOiBEZWxldGVkLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAg
KFdJLkNhbnZhc0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6IEFkZGVkLgorICAgICAgICAoV0ku
Q2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2
ZW50KTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJv
cFpvbmVIYW5kbGVEcm9wKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5w
cm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5w
cm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90
eXBlLl9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgIChX
SS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOiBEZWxldGVkLgorICAgICAgICBN
b3ZlIHRoZSAiTG9nIENhbnZhcyBDb250ZXh0IiB0byBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUg
Y2FudmFzIGVsZW1lbnQgYnV0dG9uIGNvbnRleHQgbWVudS4KKyAgICAgICAgRHJpdmUtYnk6IGFk
ZCBhIGBXSS5Ecm9wWm9uZVZpZXdgIGZvciB3aGVuIHJlY29yZGluZyBKU09OIGZpbGVzIGFyZSBk
cmFnZ2VkIG9uIHRvcC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29u
dGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBh
bGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBDYW52YXMgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3Lmpz
OgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNvbGxl
Y3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVkLgorICAg
ICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0ZWRJdGVt
KTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmFk
ZENvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLnJlbW92ZUNvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dDb250ZW50UGxhY2Vob2xkZXIpOgorICAgICAg
ICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAg
ICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEl0ZW0pOgor
ICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2sp
OiBBZGRlZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0
U2VsZWN0ZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bGxlY3Rpb25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rp
b24gPiAucGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4KKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogRGVsZXRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1n
OmhvdmVyKTogRGVsZXRlZC4KKyAgICAgICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgY2xp
Y2tpbmcgb3V0c2lkZSBvZiBhbnkgb2YgdGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRpc21pc3Mg
dGhlCisgICAgICAgIGN1cnJlbnQgc2VsZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNvIGJlIGFi
bGUgdG8gZ2V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAgIChXSS5E
ZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgRW5z
dXJlIHRoYXQgYDBgIGlzIGNvbnNpZGVyZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKyAgICAg
ICAgKFdJLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAoV0kudGFiQ29udGVudFZpZXdDbGFzc0Zv
clJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRl
bnRWaWV3LmpzOgorICAgICAgICAoV0kuQ29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJlc2VudGVk
T2JqZWN0KToKKyAgICAgICAgKFdJLkNvbnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICBB
bGxvdyBgV0kuQW5pbWF0aW9uYCB0byBiZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvTWFpbi5jc3M6CisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBB
ZGRlZC4KKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhcik6
IEFkZGVkLgorICAgICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0pOiBBZGRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlv
bi1pdGVtLWhlbHApOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZp
Z2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAgICAoLm1l
c3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAu
aXRlbSk6IERlbGV0ZWQuCisgICAgICAgIEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9uSXRlbUhl
bHBgIHRvIGJlIHVzZWQgaW5kZXBlbmRlbnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3
YC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qczoK
KyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChX
SS5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRlZCk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qczoKKyAg
ICAgICAgKFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgorICAgICAg
ICBBZGQgYSBmYWxsYmFjayBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAg
ICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGlt
Zyk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4g
LnJlc291cmNlLmltYWdlIGltZzpob3Zlcik6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogbW92
ZSB0aGVzZSBzdHlsZXMgdG8gdGhlIHJpZ2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3JlIHNwZWNp
ZmljLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAg
ICAoV0kuQ2FudmFzLmRpc3BsYXlOYW1lRm9yQ29udGV4dFR5cGUpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5kaXNw
bGF5TmFtZUZvclJlY29yZGluZ1R5cGUpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBs
b2NhbGl6ZWQgc3RyaW5ncy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3Jk
aW5nQ29udGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAg
ZnJvbSBhbGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3QgZXhpc3Qg
YW55bW9yZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAgICAgICAq
IExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0LmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
VGVzdC9UZXN0SGFybmVzcy5qczoKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5leHBl
Y3RFbXB0eSk6IEFkZGVkLgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdE5v
dEVtcHR5KTogQWRkZWQuCisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGF0
aW9uTWVzc2FnZUZvcm1hdCk6CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVj
dGVkVmFsdWVGb3JtYXQpOgorICAgICAgICBBZGQgdXRpbGl0eSBmdW5jdGlvbiBmb3IgY2hlY2tp
bmcgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgZW1wdHk6CisgICAgICAgICAtIEFycmF5IGBs
ZW5ndGggPT09IDBgCisgICAgICAgICAtIFN0cmluZyBgbGVuZ3RoID09PSAwYAorICAgICAgICAg
LSBTZXQgYHNpemUgPT09IDBgCisgICAgICAgICAtIE1hcCBgc2l6ZSA9PT0gMGAKKyAgICAgICAg
IC0gT2JqZWN0IGBpc0VtcHR5T2JqZWN0YAorICAgICAgICBBbnkgb3RoZXIgdHlwZSB3aWxsIGF1
dG9tYXRpY2FsbHkgZmFpbCwgYXMgbm9uLW9iamVjdHMgY2FuJ3QgYmUgImVtcHR5IiAoZS5nLiBg
NDJgKS4KKwogMjAyMC0wMS0yNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogZG9uJ3QgdXNlIGA6bWF0Y2hlcyg6YmVmb3JlLCA6YWZ0
ZXIpYCBhZnRlciByMjU1MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgppbmRleCBiZWFmOGRlMjhhYzc1M2UzN2Vm
MmJlODljMDFmY2IwYmQ1M2RhZmJiLi4yMmVlODgyNDc5OTljZDU4MjVhNWVhMzE2NzdlZjZiNDc0
YzY4MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0FuaW1hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KQEAgLTE0LDYgKzE0LDUxIEBACiAgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImVudW0iOiBbInJlYWR5IiwgImRlbGF5ZWQi
LCAiYWN0aXZlIiwgImNhbmNlbGVkIiwgImRvbmUiXQogICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiUGxheWJhY2tEaXJlY3Rpb24iLAorICAgICAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub3JtYWwiLCAicmV2ZXJzZSIsICJh
bHRlcm5hdGUiLCAiYWx0ZXJuYXRlLXJldmVyc2UiXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiRmlsbE1vZGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5n
IiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub25lIiwgImZvcndhcmRzIiwgImJhY2t3YXJkcyIs
ICJib3RoIiwgImF1dG8iXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQi
OiAiQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklk
IiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJj
c3NBbmltYXRpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGBhbmltYXRpb24tbmFtZWAg
Q1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGB0cmFuc2l0aW9uUHJvcGVy
dHlgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY3Nz
VHJhbnNpdGlvblByb3BlcnR5IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGB0cmFuc2l0aW9uLXBy
b3BlcnR5YCBDU1MgcHJvcGVydHkuIFNob3VsZCBub3QgYmUgcHJvdmlkZWQgaWYgYGFuaW1hdGlv
bk5hbWVgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYmFja3RyYWNlIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICIkcmVmIjogIkNvbnNvbGUuQ2FsbEZyYW1lIiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiQmFja3RyYWNlIHRoYXQgd2FzIGNhcHR1cmVkIHdoZW4gdGhpcyBgV2ViQW5pbWF0
aW9uYCB3YXMgY3JlYXRlZC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImlkIjogIkVmZmVjdCIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdGFydERlbGF5IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kRGVsYXkiLCAidHlwZSI6ICJudW1iZXIiLCAi
b3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25D
b3VudCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJOdW1iZXIgb2YgaXRlcmF0aW9ucyBpbiB0aGUgYW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIml0ZXJhdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkluZGV4IG9mIHdoaWNoIGl0ZXJhdGlvbiB0byBz
dGFydCBhdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25EdXJhdGlv
biIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJU
b3RhbCB0aW1lIG9mIGVhY2ggaXRlcmF0aW9uLCBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMuIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltaW5nRnVuY3Rpb24iLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ1NTIHRpbWluZyBmdW5j
dGlvbiBvZiB0aGUgb3ZlcmFsbCBhbmltYXRpb24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicGxheWJhY2tEaXJlY3Rpb24iLCAiJHJlZiI6ICJQbGF5YmFja0RpcmVjdGlvbiIsICJv
cHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZpbGxNb2RlIiwg
IiRyZWYiOiAiRmlsbE1vZGUiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJrZXlmcmFtZXMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYi
OiAiS2V5ZnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiS2V5ZnJhbWUiLAorICAgICAgICAg
ICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0
aW9uIjogIkRlY2ltYWwgcGVyY2VudGFnZSBbMCwxXSByZXByZXNlbnRpbmcgd2hlcmUgdGhpcyBr
ZXlmcmFtZSBpcyBpbiB0aGUgZW50aXJlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24uIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZWFzaW5nIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNTUyB0aW1pbmcgZnVuY3Rpb24gZm9yIGhv
dyB0aGUgYHN0eWxlYCBpcyBhcHBsaWVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InN0eWxlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNTUyBzdHlsZSBkZWNsYXJhdGlvbiBvZiB0aGUgQ1NTIHByb3BlcnRpZXMgdGhhdCB3aWxs
IGJlIGFuaW1hdGVkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAg
ICAgICAgICAgICAiaWQiOiAiVHJhY2tpbmdVcGRhdGUiLAogICAgICAgICAgICAgInR5cGUiOiAi
b2JqZWN0IiwKQEAgLTI3LDYgKzcyLDM1IEBACiAgICAgICAgIH0KICAgICBdLAogICAgICJjb21t
YW5kcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZW5hYmxlIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIENhbnZhcyBkb21haW4gZXZlbnRzLiIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZGlzYWJsZSIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgQ2FudmFzIGRvbWFpbiBldmVudHMuIgor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXF1ZXN0RWZmZWN0
VGFyZ2V0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBgRE9NLk5vZGVJ
ZGAgZm9yIHRoZSB0YXJnZXQgb2YgdGhlIGVmZmVjdCBvZiB0aGUgYW5pbWF0aW9uIHdpdGggdGhl
IGdpdmVuIGBBbmltYXRpb25JZGAuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25J
ZCIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIgfQorICAgICAg
ICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXNv
bHZlQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXNvbHZlcyBKYXZh
U2NyaXB0IGBXZWJBbmltYXRpb25gIG9iamVjdCBmb3IgZ2l2ZW4gYEFuaW1hdGlvbklkYC4iLAor
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJh
bmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiU3ltYm9saWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRv
IHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0cy4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdCIsICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAg
ICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInN0YXJ0VHJhY2tpbmciLAogICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRyYWNraW5nIGFuaW1hdGlvbnMuIFRoaXMgd2lsbCBw
cm9kdWNlIGEgYHRyYWNraW5nU3RhcnRgIGV2ZW50LiIKQEAgLTM3LDYgKzExMSwzNSBAQAogICAg
ICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWworICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJhbmltYXRpb25DcmVhdGVkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJE
aXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1hdGlvbmAgaXMgY3JlYXRlZC4iLAorICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRp
b24iLCAiJHJlZiI6ICJBbmltYXRpb24iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZWZmZWN0Q2hhbmdlZCIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgZWZmZWN0IG9mIGFueSBh
bmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAi
QW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJl
ZiI6ICJFZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBv
bWl0dGVkIHdoZW4gdGhlIGVmZmVjdCBpcyByZW1vdmVkIHdpdGhvdXQgYSByZXBsYWNlbWVudC4i
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAidGFyZ2V0Q2hhbmdlZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0
Y2hlZCB3aGVuZXZlciB0aGUgdGFyZ2V0IG9mIGFueSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBp
cyBjaGFuZ2VkIGluIGFueSB3YXkuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25J
ZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJhbmltYXRpb25EZXN0cm95ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkRpc3BhdGNoZWQgd2hlbmV2ZXIgYSBgV2ViQW5pbWF0aW9uYCBpcyBkZXN0cm95ZWQuIiwKKyAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5p
bWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJ0cmFja2luZ1N0YXJ0IiwKICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIGFmdGVyIGBzdGFydFRyYWNraW5n
YCBjb21tYW5kLiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5p
bWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCmlu
ZGV4IDdjNzJmNjI0YzMzMGFmOTZiYTcwYjdhZTRlOTJiNTAxY2ExMDEwN2UuLmZkM2ViOWRiZGU5
YmMxYWIwYjk3ZjBhMDcxZTAwZTgwZmI4MTMxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DU1NBbmltYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbmltYXRp
b24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogCkBAIC0zOSw2ICs0MCw5IEBAIFJlZjxDU1NBbmltYXRpb24+IENTU0Fu
aW1hdGlvbjo6Y3JlYXRlKEVsZW1lbnQmIG93bmluZ0VsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYK
IHsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ1NTQW5pbWF0aW9uKG93bmluZ0Vs
ZW1lbnQsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxlKSk7CiAgICAgcmVzdWx0LT5pbml0aWFs
aXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCmluZGV4
IGRmZjVmYjFmNzlhODljNTY2MGE0OWMxYjM2NDNkZDA3ZDgyNDMyNzEuLmFhYWU1ZTJkMGM2MTcy
MGNkMTA4ZGQ2ZGNlNTk1MTljYTBhYzNlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
Q1NTVHJhbnNpdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlv
bi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUVmZmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKQEAgLTQwLDYgKzQxLDkgQEAgUmVmPENTU1RyYW5zaXRpb24+IENT
U1RyYW5zaXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25pbmdFbGVtZW50LCBDU1NQcm9wZXJ0eUlE
IHAKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ1NTVHJhbnNpdGlvbihvd25pbmdF
bGVtZW50LCBwcm9wZXJ0eSwgZ2VuZXJhdGlvblRpbWUsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0
eWxlLCByZXZlcnNpbmdBZGp1c3RlZFN0YXJ0U3R5bGUsIHJldmVyc2luZ1Nob3J0ZW5pbmdGYWN0
b3IpKTsKICAgICByZXN1bHQtPmluaXRpYWxpemUob2xkU3R5bGUsIG5ld1N0eWxlKTsKICAgICBy
ZXN1bHQtPnNldFRpbWluZ1Byb3BlcnRpZXMoZGVsYXksIGR1cmF0aW9uKTsKKworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7
CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcAppbmRleCAyYjRkODZkOGNjMjU5ZWMxZGQ1NGEyOTU5NjZlZjM5OWNm
OWY5MTlkLi4zYWY1ZDM3Y2U0ZThjN2U5ZDUyZGI4MDliMzcxY2RjMzQ5ZGY4ZGY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTExMDIsNyArMTEw
Miw3IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQogCiB2b2lkIEtleWZyYW1l
RWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0ZWQoKQogewotICAgIG1fc2hvdWxkUnVu
QWNjZWxlcmF0ZWQgPSBoYXNCbGVuZGluZ0tleWZyYW1lcygpOworICAgIG1fc2hvdWxkUnVuQWNj
ZWxlcmF0ZWQgPSAhIW1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOwogICAgIGZvciAoYXV0byBj
c3NQcm9wZXJ0eUlkIDogbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCkpIHsKICAgICAg
ICAgaWYgKCFDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxl
cmF0ZWQoY3NzUHJvcGVydHlJZCkpIHsKICAgICAgICAgICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0
ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5k
ZXggODU2MDk4MTI2MDNiZjczMDA1ODU1M2ZmY2EzMDAxMTdiZjdiZmQ5ZC4uZDU5ZTI4OTVlMGMz
OTdlM2M5NDk0NjMyOGM5ODgwY2M4OTI2ZWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0LmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgICAgICBDb21w
b3NpdGVPcGVyYXRpb25PckF1dG8gY29tcG9zaXRlIHsgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRv
OjpBdXRvIH07CiAgICAgfTsKIAorICAgIGNvbnN0IFZlY3RvcjxQYXJzZWRLZXlmcmFtZT4mIHBh
cnNlZEtleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VkS2V5ZnJhbWVzOyB9CisKICAg
ICBFbGVtZW50KiB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQogICAg
IHZvaWQgc2V0VGFyZ2V0KFJlZlB0cjxFbGVtZW50PiYmKTsKIApAQCAtMTM1LDcgKzEzNyw3IEBA
IHB1YmxpYzoKICAgICBib29sIGNvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9jb2xvckZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogCiAg
ICAgdm9pZCBjb21wdXRlRGVjbGFyYXRpdmVBbmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7Ci0g
ICAgYm9vbCBoYXNCbGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdL
ZXlmcmFtZXMuc2l6ZSgpOyB9CisgICAgY29uc3QgS2V5ZnJhbWVMaXN0JiBibGVuZGluZ0tleWZy
YW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXM7IH0KICAgICBjb25zdCBI
YXNoU2V0PENTU1Byb3BlcnR5SUQ+JiBhbmltYXRlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVy
biBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKTsgfQogCiAgICAgYm9vbCBjb21wdXRl
RXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24oTGF5b3V0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCAzYjg3OTBhYTNkOWVkMjY1ZDE3
NmRmYzdhMWI1ZjQ0ODY1MjczYjc3Li41NGVlOWRmMTcxNGVkYjMyNjNmNzY4ZTkxZGM0NjA4OTY0
ZGU1MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAt
NDUsNiArNDUsOCBAQAogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJB
bmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTMsMTEgKzU1LDMwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYkFuaW1h
dGlvbik7CiAKK0hhc2hTZXQ8V2ViQW5pbWF0aW9uKj4mIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2Vz
KGNvbnN0IExvY2tIb2xkZXImKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0
PFdlYkFuaW1hdGlvbio+PiBpbnN0YW5jZXM7CisgICAgcmV0dXJuIGluc3RhbmNlczsKK30KKwor
TG9jayYgV2ViQW5pbWF0aW9uOjppbnN0YW5jZXNNdXRleCgpCit7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5p
dGlhbGl6ZU11dGV4OworICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVNdXRleCwgW10gewor
ICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gbXV0ZXguZ2V0
KCk7Cit9CisKIFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QpCiB7CiAgICAgYXV0byByZXN1bHQg
PSBhZG9wdFJlZigqbmV3IFdlYkFuaW1hdGlvbihkb2N1bWVudCkpOwogICAgIHJlc3VsdC0+c2V0
RWZmZWN0KGVmZmVjdCk7CiAgICAgcmVzdWx0LT5zZXRUaW1lbGluZSgmZG9jdW1lbnQudGltZWxp
bmUoKSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNjcsNiAr
ODgsOSBAQCBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZQogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVm
ZmVjdCk7CiAgICAgaWYgKHRpbWVsaW5lKQogICAgICAgICByZXN1bHQtPnNldFRpbWVsaW5lKHRp
bWVsaW5lKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5p
bWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC03Nyw2
ICsxMDEsOSBAQCBXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOwogICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIGlu
c3RhbmNlcyhsb2NrKS5hZGQodGhpcyk7CiB9CiAKIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlv
bigpCkBAIC04NSw2ICsxMTIsMTAgQEAgV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKIAog
ICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5lLT5mb3JnZXRBbmltYXRpb24o
dGhpcyk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgQVNT
RVJUKGluc3RhbmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAgaW5zdGFuY2VzKGxvY2sp
LnJlbW92ZSh0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OmNvbnRleHREZXN0cm95ZWQo
KQpAQCAtMTE2LDYgKzE0Nyw4IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp1bnN1c3BlbmRFZmZlY3RJ
bnZhbGlkYXRpb24oKQogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSgp
CiB7CiAgICAgdGltaW5nRGlkQ2hhbmdlKERpZFNlZWs6Ok5vLCBTeW5jaHJvbm91c2x5Tm90aWZ5
OjpZZXMpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUaW1pbmcoKnRoaXMpOwogfQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZm
ZWN0KFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0KQpAQCAtMTkwLDcgKzIyMyw3
IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9u
RWZmZWN0PiYmIG5ld0VmZmVjdCwgYm9vbCBkCiAgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmlt
YXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7CiAgICAgfQogCi0gICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoKnRo
aXMpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZm
ZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVsaW5lKFJlZlB0cjxB
bmltYXRpb25UaW1lbGluZT4mJiB0aW1lbGluZSkKQEAgLTI0OSwxNCArMjgyLDE1IEBAIHZvaWQg
V2ViQW5pbWF0aW9uOjpzZXRUaW1lbGluZUludGVybmFsKFJlZlB0cjxBbmltYXRpb25UaW1lbGlu
ZT4mJiB0aW1lbGluZSkKIAogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5n
ZShFbGVtZW50KiBwcmV2aW91c1RhcmdldCwgRWxlbWVudCogbmV3VGFyZ2V0KQogewotICAgIGlm
ICghbV90aW1lbGluZSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3RpbWVsaW5lKSB7Cisg
ICAgICAgIGlmIChwcmV2aW91c1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1h
dGlvbldhc1JlbW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKIAotICAg
IGlmIChwcmV2aW91c1RhcmdldCkKLSAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVt
b3ZlZEZyb21FbGVtZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOworICAgICAgICBpZiAobmV3
VGFyZ2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1l
bnQoKnRoaXMsICpuZXdUYXJnZXQpOworICAgIH0KIAotICAgIGlmIChuZXdUYXJnZXQpCi0gICAg
ICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFy
Z2V0KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRhcmdldCgqdGhpcyk7CiB9CiAKIE9wdGlvbmFsPGRvdWJsZT4gV2ViQW5pbWF0aW9u
OjpzdGFydFRpbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5o
CmluZGV4IGRhNGQ4ZWMzYmMyZTU3MGI0OGE1MWRiYzE0YTM0NGU2YzQ5YmEwNzAuLmM5OTYxM2Iy
NjYxZDc2NWYwZWUzYjg2ZDYxNGY5Y2QyYjdkYzIzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25P
ci5oIgogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0
aWVzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFya2FibGUu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+
CkBAIC01NCw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkFuaW1hdGlvbj4g
Y3JlYXRlKERvY3VtZW50JiwgQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsK
ICAgICB+V2ViQW5pbWF0aW9uKCk7CiAKKyAgICBzdGF0aWMgSGFzaFNldDxXZWJBbmltYXRpb24q
PiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBzdGF0aWMgTG9jayYgaW5zdGFu
Y2VzTXV0ZXgoKTsKKwogICAgIHZpcnR1YWwgYm9vbCBpc0RlY2xhcmF0aXZlQW5pbWF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NBbmltYXRpb24o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU1RyYW5zaXRp
b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkMGM0MzBlMmJiODgw
YTZlMzU4M2E5OThkNmRjZmMxNDNiZDZlYmRlLi4zZGM3YjQ5NGQ2NjU2YTkxYzdkZDljNjhlMWM5
ZWFmNzg5NjY2ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNzIwLDYgKzcyMCw5IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKICAgICAgICAgY2Fu
dmFzQWdlbnQtPmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKIAorICAgIGlmIChhdXRvKiBhbmltYXRp
b25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CisK
ICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0TG9hZChm
cmFtZS5kb2N1bWVudCgpKTsKIApAQCAtMTEzMCwxNSArMTEzMywzNyBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmCiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsQXBwbHlLZXlmcmFtZUVmZmVj
dCh0YXJnZXQsIGVmZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
K3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlv
biYgYW5pbWF0aW9uKQogewotICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQotICAgICAgICBh
bmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7Cisg
ICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZFNl
dFdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworICAgIGVsc2UgaWYgKGF1dG8qIGFuaW1h
dGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlv
bkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRTZXRXZWJBbmltYXRpb25FZmZl
Y3QoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1
dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2Vu
dC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3Zv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlv
bkFnZW50LT5kaWRDcmVhdGVXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICBpZiAoYXV0byogYW5pbWF0
aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24o
YW5pbWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQogICAgICAgICBh
bmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oCmluZGV4IGU3ODE4MzY0MGEyOTlhZTQxMDcyODVlZjRjMjhhYzgxZDk0MGExZDAuLjBmOGQ2
NWEwYTc1NWFhOTJiYWEyMjI5YjZlNDc0MjBhM2JiODYyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMwNSw3ICsz
MDUsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlm
cmFtZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWlu
Zyk7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1h
dGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmlt
YXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1p
bmcoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdl
YkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdl
YkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0
ZUNoYW5nZWQoUGFnZSYpOwpAQCAtNTA1LDcgKzUwOCwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5n
KTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRX
ZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24m
KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
LCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb25J
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9p
ZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFu
aW1hdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJik7CkBAIC0xNDY2LDE1ICsxNDcyLDQwIEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYg
dGFyZ2V0LCBLCiAgICAgICAgIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgdGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAo
YXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0
KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICBkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOwor
ICAgICAgICBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRz
LCBhbmltYXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAo
YXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0
KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRp
b24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5z
dHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlv
bi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUYXJnZXRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQor
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpKQorICAgICAgICBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCBhbmltYXRpb24pOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQog
eworICAgIFdURkxvZ0Fsd2F5cygiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJv
eVdlYkFuaW1hdGlvbiIpOworICAgIFdURkxvZ0Fsd2F5cygiXG4iKTsKKyAgICBXVEZSZXBvcnRC
YWNrdHJhY2UoKTsKKyAgICBXVEZMb2dBbHdheXMoIlxuXG5cbiIpOwogICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpCiAgICAgICAgIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbCgqaW5z
dHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAppbmRleCAxZjlhMGQ3YzUzMmEzZjkwODU2YzE4
NGExZmZjM2IxY2YzNWVmYzg3Li5kN2EyZjcxOTU4ZDk0M2NjY2FjNDM0ZWFjOTNlMzNkYWUyN2Nj
NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2Vu
dHMuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHZvaWQgSW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQo
KQogICAgIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9y
Q2FudmFzQWdlbnQgPSBudWxscHRyOwogICAgIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlv
bkFnZW50ID0gbnVsbHB0cjsKKyAgICBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9
IG51bGxwdHI7CiAgICAgbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0
cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRz
LmgKaW5kZXggZjZmZWE3ZGEyMTM2MGRkMDhjYzNkOTY2YjE0ZTJhYWM0NjU0NDkxNS4uZjU5YzNk
YmRjYWY3OGNmOWM2ZDhkYmI0MzJkY2NmMjJmMTVkNTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCkBAIC0xNTYsNiArMTU2LDkgQEAgcHVi
bGljOgogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBwZXJzaXN0ZW50SW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDsgfQogICAgIHZvaWQgc2V0UGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX3BlcnNpc3RlbnRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAKKyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCog
ZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KKyAgICB2b2lkIHNldEVuYWJsZWRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV9lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQorCiAgICAgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQqIHRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVy
biBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KICAgICB2b2lkIHNldFRyYWNr
aW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50
KSB7IG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAKQEAgLTE5
MCw2ICsxOTMsNyBAQCBwcml2YXRlOgogICAgIFBhZ2VET01EZWJ1Z2dlckFnZW50KiBtX3BhZ2VE
T01EZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckNhbnZhc0FnZW50KiBt
X2luc3BlY3RvckNhbnZhc0FnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50KiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsK
KyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fdHJhY2tp
bmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25B
Z2VudC5jcHAKaW5kZXggZGU5YTJjNTliZGFiYzI5MDg5NmM5NjM5Y2VhYmI0ZTJjNDczYjgyOS4u
MjE0M2IzZGJlZjBiMTI4ZjBkN2YzN2RlYzBkNjUxNmJhOWE4ZmRkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25B
Z2VudC5jcHAKQEAgLTI5LDI5ICsyOSwxOTggQEAKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3Qu
aCIKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3RQaGFzZS5oIgogI2luY2x1ZGUgIkNTU0FuaW1h
dGlvbi5oIgorI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1
ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NUcmFuc2l0aW9uLmgiCisjaW5j
bHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkZpbGxNb2Rl
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgog
I2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJKU1dlYkFuaW1hdGlv
bi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiS2V5ZnJhbWVMaXN0
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXliYWNrRGlyZWN0aW9uLmgiCisj
aW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRpbWluZ0Z1bmN0aW9uLmgiCiAj
aW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRp
ZmllcnNGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRW52aXJv
bm1lbnQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
ICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKK3N0YXRpYyBPcHRpb25hbDxkb3VibGU+
IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCit7CisgICAg
aWYgKHNlY29uZHMgPT0gU2Vjb25kczo6aW5maW5pdHkoKSB8fCBzZWNvbmRzID09IFNlY29uZHM6
Om5hbigpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBzZWNvbmRz
Lm1pbGxpc2Vjb25kcygpOworfQorCitzdGF0aWMgT3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbj4gcHJvdG9jb2xWYWx1ZUZvclBsYXliYWNr
RGlyZWN0aW9uKFBsYXliYWNrRGlyZWN0aW9uIHBsYXliYWNrRGlyZWN0aW9uKQoreworICAgIHN3
aXRjaCAocGxheWJhY2tEaXJlY3Rpb24pIHsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpO
b3JtYWw6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBs
YXliYWNrRGlyZWN0aW9uOjpOb3JtYWw7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6UmV2
ZXJzZToKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxh
eWJhY2tEaXJlY3Rpb246OlJldmVyc2U7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0
ZXJuYXRlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQ
bGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246
OkFsdGVybmF0ZVJldmVyc2U6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpB
bmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlOworICAgIH0KKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisK
K3N0YXRpYyBPcHRpb25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2Rl
PiBwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUoRmlsbE1vZGUgZmlsbE1vZGUpCit7CisgICAgc3dp
dGNoIChmaWxsTW9kZSkgeworICAgIGNhc2UgRmlsbE1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVy
biBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpOb25lOworICAgIGNh
c2UgRmlsbE1vZGU6OkZvcndhcmRzOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Rm9yd2FyZHM7CisgICAgY2FzZSBGaWxsTW9kZTo6QmFj
a3dhcmRzOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpG
aWxsTW9kZTo6QmFja3dhcmRzOworICAgIGNhc2UgRmlsbE1vZGU6OkJvdGg6CisgICAgICAgIHJl
dHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCb3RoOworICAg
IGNhc2UgRmlsbE1vZGU6OkF1dG86CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29s
OjpBbmltYXRpb246OkZpbGxNb2RlOjpBdXRvOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3N0YXRpYyBSZWY8SlNPTjo6
QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lPj4gYnVpbGRP
YmplY3RGb3JLZXlmcmFtZXMoS2V5ZnJhbWVFZmZlY3QmIGtleWZyYW1lRWZmZWN0KQoreworICAg
IGF1dG8ga2V5ZnJhbWVzUGF5bG9hZCA9IEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6QW5pbWF0aW9uOjpLZXlmcmFtZT46OmNyZWF0ZSgpOworCisgICAgY29uc3QgYXV0byYgYmxl
bmRpbmdLZXlmcmFtZXMgPSBrZXlmcmFtZUVmZmVjdC5ibGVuZGluZ0tleWZyYW1lcygpOworICAg
IGNvbnN0IGF1dG8mIHBhcnNlZEtleWZyYW1lcyA9IGtleWZyYW1lRWZmZWN0LnBhcnNlZEtleWZy
YW1lcygpOworCisgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihrZXlmcmFtZUVmZmVj
dC5hbmltYXRpb24oKSkpIHsKKyAgICAgICAgQVNTRVJUKGtleWZyYW1lRWZmZWN0LnRhcmdldCgp
KTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKS0+cmVu
ZGVyZXIoKTsKKworICAgICAgICAvLyBTeW50aGVzaXplIENTUyBzdHlsZSBkZWNsYXJhdGlvbnMg
Zm9yIGVhY2gga2V5ZnJhbWUgc28gdGhlIGZyb250ZW5kIGNhbiBkaXNwbGF5IHRoZW0uCisgICAg
ICAgIENvbXB1dGVkU3R5bGVFeHRyYWN0b3IgY29tcHV0ZWRTdHlsZUV4dHJhY3RvcihrZXlmcmFt
ZUVmZmVjdC50YXJnZXQoKSk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibGVu
ZGluZ0tleWZyYW1lcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYXV0byYgYmxlbmRpbmdL
ZXlmcmFtZSA9IGJsZW5kaW5nS2V5ZnJhbWVzW2ldOworCisgICAgICAgICAgICBBU1NFUlQoYmxl
bmRpbmdLZXlmcmFtZS5zdHlsZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gKmJsZW5k
aW5nS2V5ZnJhbWUuc3R5bGUoKTsKKworICAgICAgICAgICAgYXV0byBrZXlmcmFtZVBheWxvYWQg
PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lOjpjcmVhdGUoKQorICAg
ICAgICAgICAgICAgIC5zZXRPZmZzZXQoYmxlbmRpbmdLZXlmcmFtZS5rZXkoKSkKKyAgICAgICAg
ICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAgICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+
IHRpbWluZ0Z1bmN0aW9uOworICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZXMuaXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gcGFyc2VkS2V5ZnJhbWVzW2ld
LnRpbWluZ0Z1bmN0aW9uOworICAgICAgICAgICAgaWYgKCF0aW1pbmdGdW5jdGlvbikKKyAgICAg
ICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IGJsZW5kaW5nS2V5ZnJhbWUudGltaW5nRnVuY3Rp
b24oKTsKKyAgICAgICAgICAgIGlmICghdGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICAgICAg
dGltaW5nRnVuY3Rpb24gPSBkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oKmtleWZyYW1l
RWZmZWN0LmFuaW1hdGlvbigpKS5iYWNraW5nQW5pbWF0aW9uKCkudGltaW5nRnVuY3Rpb24oKTsK
KyAgICAgICAgICAgIGlmICh0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgICAgICBrZXlmcmFt
ZVBheWxvYWQtPnNldEVhc2luZyh0aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKworICAgICAg
ICAgICAgU3RyaW5nQnVpbGRlciBzdHlsZVBheWxvYWRCdWlsZGVyOworICAgICAgICAgICAgYXV0
byYgY3NzUHJvcGVydHlJZHMgPSBibGVuZGluZ0tleWZyYW1lLnByb3BlcnRpZXMoKTsKKyAgICAg
ICAgICAgIHNpemVfdCBjb3VudCA9IGNzc1Byb3BlcnR5SWRzLnNpemUoKTsKKyAgICAgICAgICAg
IGZvciAoYXV0byBjc3NQcm9wZXJ0eUlkIDogY3NzUHJvcGVydHlJZHMpIHsKKyAgICAgICAgICAg
ICAgICAtLWNvdW50OworICAgICAgICAgICAgICAgIGlmIChjc3NQcm9wZXJ0eUlkID09IENTU1By
b3BlcnR5Q3VzdG9tKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAg
ICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKGdldFByb3BlcnR5TmFtZVN0cmluZyhj
c3NQcm9wZXJ0eUlkKSk7CisgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBl
bmQoIjogIik7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gdmFsdWUgPSBjb21wdXRlZFN0eWxl
RXh0cmFjdG9yLnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKHN0eWxlLCBjc3NQcm9wZXJ0eUlkLCBy
ZW5kZXJlcikpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5k
KHZhbHVlLT5jc3NUZXh0KCkpOworICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIu
YXBwZW5kKCc7Jyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID4gMCkKKyAgICAgICAgICAg
ICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmICghc3R5bGVQYXlsb2FkQnVpbGRlci5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRTdHlsZShzdHlsZVBheWxvYWRCdWlsZGVyLnRv
U3RyaW5nKCkpOworCisgICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1v
dmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIHBhcnNlZEtleWZyYW1lIDogcGFyc2VkS2V5ZnJhbWVzKSB7CisgICAg
ICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1h
dGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgLnNldE9mZnNldChwYXJz
ZWRLZXlmcmFtZS5jb21wdXRlZE9mZnNldCkKKyAgICAgICAgICAgICAgICAucmVsZWFzZSgpOwor
CisgICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZyYW1lLmVhc2luZy5pc0VtcHR5KCkpCisgICAg
ICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRFYXNpbmcocGFyc2VkS2V5ZnJhbWUuZWFz
aW5nKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvbnN0IGF1dG8mIHRpbWluZ0Z1bmN0aW9uID0g
cGFyc2VkS2V5ZnJhbWUudGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQ
YXlsb2FkLT5zZXRFYXNpbmcodGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAgICAg
ICAgIGlmICghcGFyc2VkS2V5ZnJhbWUuc3R5bGUtPmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICBrZXlmcmFtZVBheWxvYWQtPnNldFN0eWxlKHBhcnNlZEtleWZyYW1lLnN0eWxlLT5hc1RleHQo
KSk7CisKKyAgICAgICAgICAgIGtleWZyYW1lc1BheWxvYWQtPmFkZEl0ZW0oV1RGTW92ZShrZXlm
cmFtZVBheWxvYWQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBrZXlmcmFtZXNQ
YXlsb2FkOworfQorCitzdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6
RWZmZWN0PiBidWlsZE9iamVjdEZvckVmZmVjdChBbmltYXRpb25FZmZlY3QmIGVmZmVjdCkKK3sK
KyAgICBhdXRvIGVmZmVjdFBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OkVmZmVjdDo6Y3JlYXRlKCkKKyAgICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlmIChhdXRvIHN0
YXJ0RGVsYXkgPSBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QuZGVsYXkoKSkpCisgICAg
ICAgIGVmZmVjdFBheWxvYWQtPnNldFN0YXJ0RGVsYXkoc3RhcnREZWxheS52YWx1ZSgpKTsKKwor
ICAgIGlmIChhdXRvIGVuZERlbGF5ID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LmVu
ZERlbGF5KCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRFbmREZWxheShlbmREZWxheS52
YWx1ZSgpKTsKKworICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvbkNvdW50KGVmZmVjdC5p
dGVyYXRpb25zKCkpOworICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvblN0YXJ0KGVmZmVj
dC5pdGVyYXRpb25TdGFydCgpKTsKKworICAgIGlmIChhdXRvIGl0ZXJhdGlvbkR1cmF0aW9uID0g
cHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9uKCkpKQorICAg
ICAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRpb25EdXJhdGlvbihpdGVyYXRpb25EdXJhdGlv
bi52YWx1ZSgpKTsKKworICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IGVmZmVjdC50aW1p
bmdGdW5jdGlvbigpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRUaW1pbmdGdW5jdGlvbih0
aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKworICAgIGlmIChhdXRvIHBsYXliYWNrRGlyZWN0
aW9uID0gcHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKGVmZmVjdC5kaXJlY3Rpb24o
KSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldFBsYXliYWNrRGlyZWN0aW9uKHBsYXliYWNr
RGlyZWN0aW9uLnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8gZmlsbE1vZGUgPSBwcm90b2NvbFZh
bHVlRm9yRmlsbE1vZGUoZWZmZWN0LmZpbGwoKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNl
dEZpbGxNb2RlKGZpbGxNb2RlLnZhbHVlKCkpOworCisgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0
PihlZmZlY3QpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRLZXlmcmFtZXMoYnVpbGRPYmpl
Y3RGb3JLZXlmcmFtZXMoZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpKTsKKworICAg
IHJldHVybiBlZmZlY3RQYXlsb2FkOworfQorCiBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICA6IElu
c3BlY3RvckFnZW50QmFzZSgiQW5pbWF0aW9uIl9zLCBjb250ZXh0KQogICAgICwgbV9mcm9udGVu
ZERpc3BhdGNoZXIobWFrZVVuaXF1ZTxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0
Y2hlcj4oY29udGV4dC5mcm9udGVuZFJvdXRlcikpCiAgICAgLCBtX2JhY2tlbmREaXNwYXRjaGVy
KEluc3BlY3Rvcjo6QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJh
Y2tlbmREaXNwYXRjaGVyLCB0aGlzKSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNv
bnRleHQuaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICwgbV9pbnNwZWN0ZWRQYWdlKGNvbnRl
eHQuaW5zcGVjdGVkUGFnZSkKKyAgICAsIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIoKnRoaXMs
ICZJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCkK
IHsKIH0KIApAQCAtNjcsMTEgKzIzNiwxMDMgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAg
ICBFcnJvclN0cmluZyBpZ25vcmVkOwogICAgIHN0b3BUcmFja2luZyhpZ25vcmVkKTsKKyAgICBk
aXNhYmxlKGlnbm9yZWQpOwogCiAgICAgQVNTRVJUKG1faW5zdHJ1bWVudGluZ0FnZW50cy5wZXJz
aXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKTsKICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMuc2V0UGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIp
OwogfQogCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nKQoreworICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcykgeworICAgICAgICBlcnJvclN0cmluZyA9
ICJBbmltYXRpb24gZG9tYWluIGFscmVhZHkgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQodGhpcyk7CisKKyAgICBjb25zdCBhdXRvIGV4aXN0c0luQ3VycmVudFBhZ2Ug
PSBbJl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsK
KyAgICAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtp
dC5vcmcvYi8xNjg0NzU+IFdlYiBJbnNwZWN0b3I6IENvcnJlY3RseSBkaXNwbGF5IGlmcmFtZSdz
IFdlYlNvY2tldHMKKyAgICAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgp
ID09ICZtX2luc3BlY3RlZFBhZ2U7CisgICAgfTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrKFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIGZvciAoYXV0
byogYW5pbWF0aW9uIDogV2ViQW5pbWF0aW9uOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAg
ICAgIGlmIChleGlzdHNJbkN1cnJlbnRQYWdlKGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKSkKKyAgICAgICAgICAgICAgICBiaW5kQW5pbWF0aW9uKCphbmltYXRpb24sIGZhbHNl
KTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
ZGlzYWJsZShFcnJvclN0cmluZyYpCit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVu
YWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChudWxscHRyKTsKKworICAgIHJlc2V0KCk7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3RFZmZlY3RUYXJnZXQoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5v
ZGVJZCkKK3sKKyAgICBhdXRvKiBhbmltYXRpb24gPSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJp
bmcsIGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byogZG9tQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9N
QWdlbnQoKTsKKyAgICBpZiAoIWRvbUFnZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRP
TSBkb21haW4gbXVzdCBiZSBlbmFibGVkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byogZWZmZWN0ID0gYW5pbWF0aW9uLT5lZmZlY3QoKTsKKyAgICBpZiAoIWlzPEtleWZy
YW1lRWZmZWN0PihlZmZlY3QpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBm
b3IgZ2l2ZW4gYW5pbWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhbiBlZmZlY3QiX3M7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBrZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0PEtl
eWZyYW1lRWZmZWN0PigqZWZmZWN0KTsKKworICAgIGF1dG8qIHRhcmdldCA9IGtleWZyYW1lRWZm
ZWN0LnRhcmdldCgpOworICAgIGlmICghdGFyZ2V0KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0g
IkFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCJf
czsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgICpub2RlSWQgPSBkb21BZ2VudC0+cHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgdGFyZ2V0KTsKK30KKwordm9pZCBJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzb2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3Jv
dXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiBy
ZXN1bHQpCit7CisgICAgYXV0byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3Ry
aW5nLCBhbmltYXRpb25JZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8qIHN0YXRlID0gYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmV4ZWNTdGF0ZSgpOworICAgIGF1dG8gaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5pbmplY3RlZFNjcmlwdEZvcihzdGF0ZSk7CisgICAgQVNTRVJUKCFpbmplY3RlZFNj
cmlwdC5oYXNOb1ZhbHVlKCkpOworCisgICAgSlNDOjpKU1ZhbHVlIHZhbHVlOworICAgIHsKKyAg
ICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhzdGF0ZSk7CisKKyAgICAgICAgYXV0byogZ2xv
YmFsT2JqZWN0ID0gZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShzdGF0ZSk7Cisg
ICAgICAgIHZhbHVlID0gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBhbmltYXRpb24pOworICAg
IH0KKworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIGVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiB1bmtub3duIEFuaW1hdGlvbiBm
b3IgZ2l2ZW4gYW5pbWF0aW9uSWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBT
dHJpbmcgb2JqZWN0R3JvdXBOYW1lID0gb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiBTdHJp
bmcoKTsKKyAgICByZXN1bHQgPSBpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KHZhbHVlLCBvYmpl
Y3RHcm91cE5hbWUpOworfQorCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdGFydFRy
YWNraW5nKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKICAgICBpZiAobV9pbnN0cnVtZW50
aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CkBA
IC0xNzAsMTYgKzQzMSwxNTEgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbEFw
cGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYgdGFyZ2V0LCBLZXlmcmFtZUUKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdVcGRhdGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9w
d2F0Y2goKS0+ZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCksIFdURk1vdmUoZXZlbnQpKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAg
IGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRy
YWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+
KGFuaW1hdGlvbikpOworCisgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFu
aW1hdGlvbik7CisgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlv
bik7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUg
YGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBu
b3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1h
dGlvbik7CisgICAgaWYgKGFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8qIGVmZmVjdCA9IGFuaW1hdGlvbi5lZmZlY3QoKSkKKyAgICAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGJ1aWxkT2JqZWN0
Rm9yRWZmZWN0KCplZmZlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRj
aGVyLT5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBudWxscHRyKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdl
YkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBi
ZSBlbXB0eSBpZiBBbmltYXRpb24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1
dG8gYW5pbWF0aW9uSWQgPSBmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5p
bWF0aW9uSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlci0+dGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKK3sKKyAgICBpZiAoIWZpbmRBbmltYXRpb25JZChhbmltYXRpb24pLmlzRW1wdHkoKSkg
eworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGJpbmRBbmltYXRpb24oYW5pbWF0aW9uLCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBh
bmltYXRpb24pCiB7CiAgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24p
KQogICAgICAgICBzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNs
YXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSk7CisKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklk
YCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4K
KyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAg
aWYgKCFhbmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmlt
YXRpb25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdh
dGVkKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAg
ICAgICByZXNldCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFN0cmlu
Zz4gYW5pbWF0aW9uSWRzVG9SZW1vdmU7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGFu
aW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0ID0gYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsK
KyAgICAgICAgICAgIGlmIChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYg
ZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KS5mcmFtZSgpID09ICZm
cmFtZSkKKyAgICAgICAgICAgICAgICBhbmltYXRpb25JZHNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0
aW9uSWQpOworICAgICAgICB9CisgICAgfQorICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9u
SWQgOiBhbmltYXRpb25JZHNUb1JlbW92ZSkKKyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1h
dGlvbklkKTsKK30KKworU3RyaW5nIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0
aW9uSWQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0
aW9uSWQsIGV4aXN0aW5nQW5pbWF0aW9uXSA6IG1fYW5pbWF0aW9uSWRNYXApIHsKKyAgICAgICAg
aWYgKGV4aXN0aW5nQW5pbWF0aW9uID09ICZhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4g
YW5pbWF0aW9uSWQ7CisgICAgfQorICAgIHJldHVybiBudWxsU3RyaW5nKCk7Cit9CisKK1dlYkFu
aW1hdGlvbiogSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFzc2VydEFuaW1hdGlvbihFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAgYXV0
byogYW5pbWF0aW9uID0gbV9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgIGlm
ICghYW5pbWF0aW9uKQorICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIGFuaW1hdGlvbiBm
b3IgZ2l2ZW4gYW5pbWF0aW9uSWQiX3M7CisgICAgcmV0dXJuIGFuaW1hdGlvbjsKK30KKwordm9p
ZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFu
aW1hdGlvbiwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKQoreworICAgIGF1dG8gYW5pbWF0aW9uSWQg
PSBtYWtlU3RyaW5nKCJhbmltYXRpb246IiArIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRl
bnRpZmllcigpKTsKKyAgICBtX2FuaW1hdGlvbklkTWFwLnNldChhbmltYXRpb25JZCwgJmFuaW1h
dGlvbik7CisKKyAgICBhdXRvIGFuaW1hdGlvblBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBbmltYXRpb246OkFuaW1hdGlvbjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldEFuaW1hdGlvbklk
KGFuaW1hdGlvbklkKQorICAgICAgICAucmVsZWFzZSgpOworCisgICAgaWYgKGlzPENTU0FuaW1h
dGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0Q3NzQW5pbWF0
aW9uTmFtZShkb3duY2FzdDxDU1NBbmltYXRpb24+KGFuaW1hdGlvbikuYW5pbWF0aW9uTmFtZSgp
KTsKKyAgICBlbHNlIGlmIChpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24pKQorICAgICAgICBh
bmltYXRpb25QYXlsb2FkLT5zZXRDc3NUcmFuc2l0aW9uUHJvcGVydHkoZG93bmNhc3Q8Q1NTVHJh
bnNpdGlvbj4oYW5pbWF0aW9uKS50cmFuc2l0aW9uUHJvcGVydHkoKSk7CisKKyAgICBpZiAoYXV0
byogZWZmZWN0ID0gYW5pbWF0aW9uLmVmZmVjdCgpKQorICAgICAgICBhbmltYXRpb25QYXlsb2Fk
LT5zZXRFZmZlY3QoYnVpbGRPYmplY3RGb3JFZmZlY3QoKmVmZmVjdCkpOworCisgICAgaWYgKGNh
cHR1cmVCYWNrdHJhY2UpIHsKKyAgICAgICAgYXV0byBzdGFja1RyYWNlID0gSW5zcGVjdG9yOjpj
cmVhdGVTY3JpcHRDYWxsU3RhY2soSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCBJbnNwZWN0
b3I6OlNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CisgICAgICAg
IGFuaW1hdGlvblBheWxvYWQtPnNldEJhY2t0cmFjZShzdGFja1RyYWNlLT5idWlsZEluc3BlY3Rv
ckFycmF5KCkpOworICAgIH0KKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25D
cmVhdGVkKFdURk1vdmUoYW5pbWF0aW9uUGF5bG9hZCkpOworfQorCit2b2lkIEluc3BlY3RvckFu
aW1hdGlvbkFnZW50Ojp1bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCkK
K3sKKyAgICBtX2FuaW1hdGlvbklkTWFwLnJlbW92ZShhbmltYXRpb25JZCk7CisKKyAgICAvLyBU
aGlzIGNhbiBiZSBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gR0MuIER1ZSB0byB0aGUgc2luZ2xlLXBy
b2Nlc3MgbW9kZWwgdXNlZCBpbiBXZWJLaXQxLCB0aGUKKyAgICAvLyBldmVudCBtdXN0IGJlIGRp
c3BhdGNoZWQgZnJvbSBhIHRpbWVyIHRvIHByZXZlbnQgdGhlIGZyb250ZW5kIGZyb20gbWFraW5n
IEpTIGFsbG9jYXRpb25zCisgICAgLy8gd2hpbGUgdGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KKyAg
ICBtX3JlbW92ZWRBbmltYXRpb25JZHMuYXBwZW5kKGFuaW1hdGlvbklkKTsKKworICAgIGlmICgh
bV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlv
bkRlc3Ryb3llZFRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworfQorCit2b2lkIEluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjphbmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAo
IW1fcmVtb3ZlZEFuaW1hdGlvbklkcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZv
ciAoYXV0byYgaWRlbnRpZmllciA6IG1fcmVtb3ZlZEFuaW1hdGlvbklkcykKKyAgICAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPmFuaW1hdGlvbkRlc3Ryb3llZChpZGVudGlmaWVyKTsKKworICAg
IG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1h
dGlvbkFnZW50OjpyZXNldCgpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisg
ICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmNsZWFyKCk7CisKKyAgICBpZiAobV9hbmltYXRpb25E
ZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRp
bWVyLnN0b3AoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RvcFRyYWNr
aW5nRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mIGFuaW1hdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQuaAppbmRleCA3YTI0YmJjYmIxYjMzMWQxOTBkYTYwYzAwZDIxYmQ5MzU0
OGZhYjAwLi5kMjY2ZDdlZjIxZTQyZDg0MWRmNmMwZDM4MDczZGRlYzI5Y2FkOTM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmlt
YXRpb25BZ2VudC5oCkBAIC0yNywxNiArMjcsMjEgQEAKIAogI2luY2x1ZGUgIkNvbXB1dGVkRWZm
ZWN0VGltaW5nLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCisjaW5jbHVk
ZSAiVGltZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERp
c3BhdGNoZXJzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBBbmltYXRpb25FZmZlY3Q7CiBjbGFzcyBEZWNsYXJhdGl2ZUFuaW1hdGlvbjsK
IGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgS2V5ZnJh
bWVFZmZlY3Q7CitjbGFzcyBQYWdlOwogY2xhc3MgV2ViQW5pbWF0aW9uOwogCiB0eXBlZGVmIFN0
cmluZyBFcnJvclN0cmluZzsKQEAgLTUzLDIwICs1OCw0MiBAQCBwdWJsaWM6CiAgICAgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24p
IG92ZXJyaWRlOwogCiAgICAgLy8gQW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisg
ICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RFZmZlY3RUYXJnZXQoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCByZXNvbHZlQW5pbWF0aW9uKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBhbmltYXRpb25JZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mKSBvdmVycmlkZTsKICAgICB2b2lk
IHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BUcmFj
a2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uCiAgICAgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJh
bWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWluZyk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRTZXRXZWJBbmltYXRp
b25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25F
ZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDcmVhdGVXZWJBbmlt
YXRpb24oV2ViQW5pbWF0aW9uJik7CiAgICAgdm9pZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihX
ZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKEZyYW1lJik7CiAKIHByaXZh
dGU6CisgICAgU3RyaW5nIGZpbmRBbmltYXRpb25JZChXZWJBbmltYXRpb24mKTsKKyAgICBXZWJB
bmltYXRpb24qIGFzc2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uSWQpOworICAgIHZvaWQgYmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mLCBib29sIGNh
cHR1cmVCYWNrdHJhY2UpOworICAgIHZvaWQgdW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYg
YW5pbWF0aW9uSWQpOworICAgIHZvaWQgYW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpOwor
ICAgIHZvaWQgcmVzZXQoKTsKKwogICAgIHZvaWQgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmlt
YXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNw
ZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7
CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI+IG1fYmFj
a2VuZERpc3BhdGNoZXI7CiAKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CisgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOworCisg
ICAgSGFzaE1hcDxTdHJpbmcsIFdlYkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7CisgICAg
VmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkQW5pbWF0aW9uSWRzOworICAgIFRpbWVyIG1fYW5pbWF0
aW9uRGVzdHJveWVkVGltZXI7CisKICAgICBzdHJ1Y3QgVHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0
aW9uRGF0YSB7CiAgICAgICAgIFN0cmluZyB0cmFja2luZ0FuaW1hdGlvbklkOwogICAgICAgICBD
b21wdXRlZEVmZmVjdFRpbWluZyBsYXN0Q29tcHV0ZWRUaW1pbmc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGFl
Y2M3OWJjMGNhNTZmYjY1ZmUwMzMwZjA4ZTRlZTY4OGJmODFlODkuLjBmNDZhMzAzM2FlZjQwMDdm
NmViODM3YTYxMDVmMDVhMGM1OTA2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NjYsNyArNTY2LDcgQEAg
aW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBpbnQgZG9jdW1lbnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAg
cmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZVRvUHVzaCk7CisgICAgcmV0dXJuIHB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGVUb1B1c2gpOwogfQogCiBOb2Rl
KiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvcklkKGludCBpZCkKQEAgLTYxMyw3ICs2MTMsNyBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgaW50IG5vZGVJZCwgY29ucwogICAgIH0KIAogICAgIGlmIChhdXRvKiBlbGVtZW50
ID0gcXVlcnlSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpCi0gICAgICAgICplbGVtZW50SWQg
PSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVsZW1lbnQpOworICAgICAgICAqZWxlbWVudElkID0g
cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgZWxlbWVudCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFy
cmF5T2Y8aW50Pj4mIHJlc3VsdCkKQEAgLTYzOSwxMyArNjM5LDI0IEBAIHZvaWQgSW5zcGVjdG9y
RE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQg
bm9kZUlkLCBjCiB9CiAKIGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9u
dGVuZChOb2RlKiBub2RlVG9QdXNoKQoreworICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAg
cmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoaWdub3JlZCwgbm9kZVRvUHVzaCk7Cit9CisK
K2ludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmlu
ZyBlcnJvclN0cmluZywgTm9kZSogbm9kZVRvUHVzaCkKIHsKICAgICBBU1NFUlQobm9kZVRvUHVz
aCk7ICAvLyBJbnZhbGlkIGlucHV0CiAKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgaWYgKCFt
X2RvY3VtZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3NpbmcgZG9jdW1lbnQiX3M7
CiAgICAgICAgIHJldHVybiAwOwotICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRh
aW5zKG1fZG9jdW1lbnQpKQorICAgIH0KKworICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFw
LmNvbnRhaW5zKG1fZG9jdW1lbnQpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRvY3VtZW50
IG11c3QgaGF2ZSBiZWVuIHJlcXVlc3RlZCJfczsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQog
CiAgICAgLy8gUmV0dXJuIGlkIGluIGNhc2UgdGhlIG5vZGUgaXMga25vd24uCiAgICAgaW50IHJl
c3VsdCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZVRvUHVzaCk7CkBAIC03OTAsNyAr
ODAxLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdAogICAgIGlmICghbV9kb21FZGl0b3ItPnJl
bW92ZUNoaWxkKCpwYXJlbnQsICpvbGROb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVy
bjsKIAotICAgICpuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3RWxlbWVudC5wdHIo
KSk7CisgICAgKm5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3
RWxlbWVudC5wdHIoKSk7CiAgICAgaWYgKG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9k
ZUlkKSkKICAgICAgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKCpuZXdJZCk7CiB9CkBAIC04
MzAsNyArODQxLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGludCBuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7
CisgICAgaW50IG5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3
Tm9kZSk7CiAKICAgICBib29sIGNoaWxkcmVuUmVxdWVzdGVkID0gbV9jaGlsZHJlblJlcXVlc3Rl
ZC5jb250YWlucyhub2RlSWQpOwogICAgIGlmIChjaGlsZHJlblJlcXVlc3RlZCkKQEAgLTE0MjIs
NyArMTQzMyw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyhFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGludCB0YXJnZXRFCiAgICAgaWYgKCFtX2RvbUVkaXRv
ci0+aW5zZXJ0QmVmb3JlKCp0YXJnZXRFbGVtZW50LCAqbm9kZSwgYW5jaG9yTm9kZSwgZXJyb3JT
dHJpbmcpKQogICAgICAgICByZXR1cm47CiAKLSAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChub2RlKTsKKyAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChlcnJvclN0cmluZywgbm9kZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuZG8o
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQpAQCAtMTQ5OCwxMSArMTUwOSwxMSBAQCB2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpnZXRBdHRyaWJ1dGVzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
aW50IG5vZGVJZCwgUmVmUAogICAgIHJlc3VsdCA9IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmli
dXRlcyhlbGVtZW50KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKK3ZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpCiB7CiAgICAgTm9kZSogbm9kZSA9
IG5vZGVGb3JPYmplY3RJZChvYmplY3RJZCk7CiAgICAgaWYgKG5vZGUpCi0gICAgICAgICpub2Rl
SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7CiAgICAgZWxzZQogICAgICAg
ICAqbm9kZUlkID0gMDsKIH0KQEAgLTI2NDYsNyArMjY1Nyw3IEBAIE5vZGUqIEluc3BlY3RvckRP
TUFnZW50Ojpub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpCiB7CiAgICAgaWYgKE5v
ZGUqIG5vZGUgPSBub2RlRm9yUGF0aChwYXRoKSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zy
b250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKICAgICBlbHNlCiAgICAgICAgIGVycm9yU3RyaW5n
ID0gIk1pc3Npbmcgbm9kZSBmb3IgZ2l2ZW4gcGF0aCJfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA1MTYzOWFi
ZWI4NGY0ZDk1ZGVkM2Y0ZmI2NDA5YWQ4ZjYyYTI4OTRlLi43ZGYwZTgzZWI1M2Q3NWM0MWM1NTRm
MTQwMTIzNWJhMjE3MTk0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xODAsNiArMTgwLDggQEAgcHVibGljOgog
CiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChOb2RlKik7CiAgICAgaW50IHB1c2hOb2RlVG9G
cm9udGVuZChFcnJvclN0cmluZyYsIGludCBkb2N1bWVudE5vZGVJZCwgTm9kZSopOworICAgIGlu
dCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChFcnJvclN0cmluZywgTm9kZSopOwogICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9k
ZUlkKTsKICAgICBpbnQgYm91bmROb2RlSWQoY29uc3QgTm9kZSopOwogCkBAIC0yMTcsNyArMjE5
LDYgQEAgcHJpdmF0ZToKICAgICBOb2RlKiBhc3NlcnRFZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcm
LCBpbnQgbm9kZUlkKTsKICAgICBFbGVtZW50KiBhc3NlcnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JT
dHJpbmcmLCBpbnQgbm9kZUlkKTsKIAotICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5v
ZGUqKTsKICAgICB2b2lkIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChpbnQgbm9kZUlkLCBpbnQg
ZGVwdGggPSAxKTsKIAogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1
aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNTlmM2ZhMzkxNWZmYjY5NmRkMWU1NDkyNGZi
ZmU0NWI2YmU1NGIxMy4uODM5MWJmZmQ0OTQzMDRkZTM1Nzc1ZmQxNzcyMzFjZWU0NWFkNmY1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xMjUsMTIgKzEyNSwxNSBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gcmVhZCB0aGUgXHUy
MDFDJXNcdTIwMUQgdGFibGUuIl0gPQogbG9jYWxpemVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBl
cnJvciAlcyBvY2N1cnJlZC4iXSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiJdID0gIkFu
IHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuZ2xlIl0g
PSAiQW5nbGUiOworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIl0gPSAiQW5pbWF0aW9uIjsK
K2xvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiAlZCJdID0gIkFuaW1hdGlvbiAlZCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24g
RnJhbWUgJWQgQ2FuY2VsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVk
IEZpcmVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkFuaW1hdGlvbiBGcmFtZSAlZCBSZXF1ZXN0ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgUmVx
dWVzdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxlZCJdID0g
IkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24g
RnJhbWUgRmlyZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgRmlyZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siQW5pbWF0aW9uIEZyYW1lIFJlcXVlc3RlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0
ZWQiOworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIFRhcmdldCJdID0gIkFuaW1hdGlvbiBU
YXJnZXQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdCAlZCJdID0gIkFub255
bW91cyBTY3JpcHQgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdHMiXSA9
ICJBbm9ueW1vdXMgU2NyaXB0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU3R5bGUg
U2hlZXQgJWQiXSA9ICJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQiOwpAQCAtMjAxLDkgKzIwNCwx
MSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDUFUiXSA9ICJDUFUiOwogbG9jYWxpemVkU3RyaW5nc1si
Q1BVIFVzYWdlIl0gPSAiQ1BVIFVzYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUCBIYXNoIl0g
PSAiQ1NQIEhhc2giOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbiJdID0gIkNTUyBB
bmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbnMiXSA9ICJDU1MgQW5p
bWF0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQ2FudmFzIl0gPSAiQ1NTIENhbnZhcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQ2hhbmdlczoiXSA9ICJDU1MgQ2hhbmdlczoiOwogbG9j
YWxpemVkU3RyaW5nc1siQ1NTIFRyYW5zaXRpb24iXSA9ICJDU1MgVHJhbnNpdGlvbiI7Citsb2Nh
bGl6ZWRTdHJpbmdzWyJDU1MgVHJhbnNpdGlvbnMiXSA9ICJDU1MgVHJhbnNpdGlvbnMiOwogbG9j
YWxpemVkU3RyaW5nc1siQ1NTIGNhbnZhcyBcdTIwMUMlc1x1MjAxRCJdID0gIkNTUyBjYW52YXMg
XHUyMDFDJXNcdTIwMUQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FjaGVkIl0gPSAiQ2FjaGVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkNhbGwgRnJhbWVzIFRydW5jYXRlZCJdID0gIkNhbGwgRnJhbWVz
IFRydW5jYXRlZCI7CkBAIC0yMTgsNiArMjIzLDggQEAgbG9jYWxpemVkU3RyaW5nc1siQ2FuY2Vs
ZWQiXSA9ICJDYW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMiXSA9ICJDYW52YXMi
OwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzICVkIl0gPSAiQ2FudmFzICVkIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkNhbnZhcyAlcyJdID0gIkNhbnZhcyAlcyI7CisvKiBCaXRtYXAgUmVuZGVyZXIg
aXMgYSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCBhIDxjYW52YXM+
IGVsZW1lbnQgKi8KK2xvY2FsaXplZFN0cmluZ3NbIkNhbnZhcyBDb250ZXh0IFR5cGUgQml0bWFw
IFJlbmRlcmVyIl0gPSAiQml0bWFwIFJlbmRlcmVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZh
cyBFbGVtZW50Il0gPSAiQ2FudmFzIEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFz
ZXMiXSA9ICJDYW52YXNlcyI7CiAvKiBDYXB0dXJlIHNjcmVlbnNob3Qgb2YgdGhlIHNlbGVjdGVk
IERPTSBub2RlICovCkBAIC01ODcsNiArNTk0LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siR2xvYmFs
IENvZGUiXSA9ICJHbG9iYWwgQ29kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgTGV4aWNh
bCBFbnZpcm9ubWVudCJdID0gIkdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkdsb2JhbCBWYXJpYWJsZXMiXSA9ICJHbG9iYWwgVmFyaWFibGVzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkdyYW1tYXIiXSA9ICJHcmFtbWFyIjsKK2xvY2FsaXplZFN0cmluZ3NbIkdy
YXBoaWNzIl0gPSAiR3JhcGhpY3MiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAiXSA9ICJHcm91
cCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBCeSBSZXNvdXJjZSJdID0gIkdyb3VwIEJ5IFJl
c291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIE1lZGlhIFJlcXVlc3RzIl0gPSAiR3Jv
dXAgTWVkaWEgUmVxdWVzdHMiOwpAQCAtNjM0LDYgKzY0Miw3IEBAIGxvY2FsaXplZFN0cmluZ3Nb
IkltYWdlcyJdID0gIkltYWdlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXM6Il0gPSAiSW1h
Z2VzOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIl0gPSAi
SW1tZWRpYXRlIFBhdXNlIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQiXSA9
ICJJbXBvcnQiOworbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0IFJlY29yZGluZyJdID0gIkltcG9y
dCBSZWNvcmRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQiXSA9ICJJbXBvcnRlZCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCAtICVzIl0gPSAiSW1wb3J0ZWQgLSAlcyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCBcdTIwMTQgJXMiXSA9ICJJbXBvcnRlZCBcdTIwMTQg
JXMiOwpAQCAtNjk4LDYgKzcwNyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFN0b3JhZ2Ui
XSA9ICJMb2NhbCBTdG9yYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFZhcmlhYmxlcyJd
ID0gIkxvY2FsIFZhcmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGVkIGF0ICVzIl0g
PSAiTG9jYXRlZCBhdCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGlvbiJdID0gIkxvY2F0
aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkxvZyBBbmltYXRpb24iXSA9ICJMb2cgQW5pbWF0aW9u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvZyBDYW52YXMgQ29udGV4dCJdID0gIkxvZyBDYW52YXMg
Q29udGV4dCI7CiAvKiBMb2cgKHByaW50KSBET00gZWxlbWVudCB0byBDb25zb2xlICovCiBsb2Nh
bGl6ZWRTdHJpbmdzWyJMb2cgRWxlbWVudCJdID0gIkxvZyBFbGVtZW50IjsKQEAgLTc3MSw2ICs3
ODEsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFbmFibGVkIEF1ZGl0cyJdID0gIk5vIEVuYWJs
ZWQgQXVkaXRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIEVudHJpZXMiXSA9ICJObyBFbnRyaWVz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIEV2ZW50IExpc3RlbmVycyJdID0gIk5vIEV2ZW50IExp
c3RlbmVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBGaWx0ZXIgUmVzdWx0cyJdID0gIk5vIEZp
bHRlciBSZXN1bHRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIk5vIEtleWZyYW1lcyJdID0gIk5vIEtl
eWZyYW1lcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBMYXllciBBdmFpbGFibGUiXSA9ICJObyBM
YXllciBBdmFpbGFibGUiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gT3ZlcnJpZGVzIl0gPSAiTm8g
T3ZlcnJpZGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFBhcmFtZXRlcnMiXSA9ICJObyBQYXJh
bWV0ZXJzIjsKQEAgLTc4Miw2ICs3OTMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXNwb25z
ZSBIZWFkZXJzIl0gPSAiTm8gUmVzcG9uc2UgSGVhZGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJO
byBSZXN1bHQiXSA9ICJObyBSZXN1bHQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzdWx0cyBG
b3VuZCJdID0gIk5vIFJlc3VsdHMgRm91bmQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gU2VhcmNo
IFJlc3VsdHMiXSA9ICJObyBTZWFyY2ggUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBT
dHlsZXMiXSA9ICJObyBTdHlsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gV2F0Y2ggRXhwcmVz
c2lvbnMiXSA9ICJObyBXYXRjaCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBh
dWRpdCBzZWxlY3RlZCJdID0gIk5vIGF1ZGl0IHNlbGVjdGVkIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vIGNlcnRpZmljYXRlIHNlY3VyaXR5IGluZm9ybWF0aW9uLiJdID0gIk5vIGNlcnRpZmljYXRl
IHNlY3VyaXR5IGluZm9ybWF0aW9uLiI7CkBAIC05MDYsNiArOTE4LDggQEAgbG9jYWxpemVkU3Ry
aW5nc1siUmVjb3JkaW5nIl0gPSAiUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29y
ZGluZyAlZCJdID0gIlJlY29yZGluZyAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcg
RXJyb3I6ICVzIl0gPSAiUmVjb3JkaW5nIEVycm9yOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJS
ZWNvcmRpbmcgVGltZWxpbmUgRGF0YSJdID0gIlJlY29yZGluZyBUaW1lbGluZSBEYXRhIjsKKy8q
IEEgdHlwZSBvZiBjYW52YXMgcmVjb3JkaW5nIGluIHRoZSBHcmFwaGljcyBUYWIgKi8KK2xvY2Fs
aXplZFN0cmluZ3NbIlJlY29yZGluZyBUeXBlIENhbnZhcyBCaXRtYXAgUmVuZGVyZXIiXSA9ICJC
aXRtYXAgUmVuZGVyZXIiOwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIFdhcm5pbmc6ICVz
Il0gPSAiUmVjb3JkaW5nIFdhcm5pbmc6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGlu
ZyBzdG9wIHJlcXVlc3RlZCBcdTIwMTQgJXMiXSA9ICJSZWNvcmRpbmcgc3RvcCByZXF1ZXN0ZWQg
XHUyMDE0ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZ3MiXSA9ICJSZWNvcmRpbmdz
IjsKQEAgLTkxNCw3ICs5MjgsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZWRpcmVjdHMiXSA9ICJS
ZWRpcmVjdHMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmZXJlbmNlIElzc3VlIl0gPSAiUmVmZXJl
bmNlIElzc3VlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZmxlY3Rpb24iXSA9ICJSZWZsZWN0aW9u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZnJlc2giXSA9ICJSZWZyZXNoIjsKLWxvY2FsaXplZFN0
cmluZ3NbIlJlZnJlc2ggYWxsIl0gPSAiUmVmcmVzaCBhbGwiOwogbG9jYWxpemVkU3RyaW5nc1si
UmVmcmVzaCB3YXRjaCBleHByZXNzaW9ucyJdID0gIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMi
OwogbG9jYWxpemVkU3RyaW5nc1siUmVnaW9uIGFubm91bmNlZCBpbiBpdHMgZW50aXJldHkuIl0g
PSAiUmVnaW9uIGFubm91bmNlZCBpbiBpdHMgZW50aXJldHkuIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlZ3VsYXIgRXhwcmVzc2lvbiJdID0gIlJlZ3VsYXIgRXhwcmVzc2lvbiI7CkBAIC0xMDI0LDYg
KzEwMzcsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTZWN1cml0eSBPcmlnaW4iXSA9ICJTZWN1cml0
eSBPcmlnaW4iOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90Il0g
PSAiU2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBj
b21wYXJpc29uIHNuYXBzaG90Il0gPSAiU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiOwogbG9j
YWxpemVkU3RyaW5nc1siU2VsZWN0ZWQiXSA9ICJTZWxlY3RlZCI7CisvKiBBcHBlYXJzIGFzIGEg
bGFiZWwgd2hlbiBhIGdpdmVuIHdlYiBhbmltYXRpb24gaXMgbG9nZ2VkIHRvIHRoZSBDb25zb2xl
ICovCitsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBBbmltYXRpb24iXSA9ICJTZWxlY3RlZCBB
bmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgQ2FudmFzIENvbnRleHQiXSA9
ICJTZWxlY3RlZCBDYW52YXMgQ29udGV4dCI7CiAvKiBTZWxlY3RlZCBET00gZWxlbWVudCAqLwog
bG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgRWxlbWVudCJdID0gIlNlbGVjdGVkIEVsZW1lbnQi
OwpAQCAtMTE3OSw2ICsxMTk0LDggQEAgbG9jYWxpemVkU3RyaW5nc1siVGhlc2UgdGVzdHMgc2Vy
dmUgYXMgYSBkZW1vbnN0cmF0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFuZAogbG9jYWxpemVk
U3RyaW5nc1siVGhpcyBSZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlk
ZSJdID0gIlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUi
OwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2Ui
XSA9ICJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEi
XSA9ICJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEi
OworbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiJdID0g
IlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iOworbG9jYWxpemVkU3RyaW5nc1siVGhp
cyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4iXSA9ICJUaGlzIGFuaW1hdGlvbiBoYXMgbm8g
a2V5ZnJhbWVzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0
ZWQiXSA9ICJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1si
VGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIl0g
PSAiVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJyb3JzIGFy
ZSBzaG93bi4gVGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRpb24gZXJy
b3JzIHdpbGwgYXBwZWFyIGluIHRoZSBzYW1lIHdheS4iXSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUg
b2YgaG93IGVycm9ycyBhcmUgc2hvd24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBi
dXQgZXhlY3V0aW9uIGVycm9ycyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIjsKQEAgLTEy
OTEsMTIgKzEzMDgsNjUgQEAgbG9jYWxpemVkU3RyaW5nc1siVmlldyBTaGFkZXIiXSA9ICJWaWV3
IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3cG9ydCJdID0gIlZpZXdwb3J0IjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlZpc2libGUiXSA9ICJWaXNpYmxlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IldhaXRpbmciXSA9ICJXYWl0aW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFu
aW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVh
dGVkIGJ5IENTUy4iOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBj
cmVhdGVkIGJ5IEphdmFTY3JpcHQuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVk
IGJ5IEphdmFTY3JpcHQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGNhbnZhcyBj
b250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIl0gPSAiV2FpdGluZyBmb3IgY2FudmFz
IGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iOwogbG9jYWxpemVkU3RyaW5nc1si
V2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2Il0gPSAiV2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2IjsK
K2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NT
LiJdID0gIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJXYXJuaW5nOiAiXSA9ICJXYXJuaW5nOiAiOwogbG9jYWxpemVkU3RyaW5nc1si
V2FybmluZ3MiXSA9ICJXYXJuaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRjaCBFeHByZXNz
aW9ucyJdID0gIldhdGNoIEV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhdGVyZmFs
bCJdID0gIldhdGVyZmFsbCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIl0gPSAi
V2ViIEFuaW1hdGlvbiI7CisvKiBTZWN0aW9uIHRpdGxlIGZvciB0aGUgSmF2YVNjcmlwdCBiYWNr
dHJhY2Ugb2YgdGhlIGNyZWF0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3Ry
aW5nc1siV2ViIEFuaW1hdGlvbiBCYWNrdHJhY2UgVGl0bGUiXSA9ICJCYWNrdHJhY2UiOworLyog
TGFiZWwgZm9yIHRoZSBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9uIG9mIGEgd2ViIGFuaW1h
dGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBFYXNpbmcgTGFiZWwiXSA9
ICJFYXNpbmciOworLyogU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVm
ZmVjdCBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRp
b24gRWZmZWN0IFRpdGxlIl0gPSAiRWZmZWN0IjsKKy8qIExhYmVsIGZvciB0aGUgZW5kIGRlbGF5
IHRpbWUgb2YgYSB3ZWIgYW5pbWF0aW9uICAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1h
dGlvbiBFbmQgRGVsYXkgTGFiZWwiXSA9ICJFbmQgRGVsYXkiOworLyogVG9vbHRpcCBmb3Igc2Vj
dGlvbiBvZiBncmFwaCByZXByZXNlbnRpbmcgZGVsYXkgYWZ0ZXIgYSB3ZWIgYW5pbWF0aW9uIGZp
bmlzaGVzIGFwcGx5aW5nIHN0eWxlcyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlv
biBFbmQgRGVsYXkgVG9vbHRpcCJdID0gIkVuZCBEZWxheSAlcyI7CisvKiBJbmRpY2F0ZXMgdGhh
dCB0aGlzIHdlYiBhbmltYXRpb24gZWl0aGVyIGRvZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVm
b3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyBvciB0aGF0IGl0IGFwcGxpZXMgdG8gYm90
aCwgZGVwZW5kaW5nIG9uIGl0J3MgY29uZmlndXJhdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1si
V2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQXV0byJdID0gIkF1dG8iOworLyogSW5kaWNhdGVzIHRo
YXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lu
cyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQmFja3dhcmRz
Il0gPSAiQmFja3dhcmRzIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBh
bHNvIGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgKi8K
K2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEJvdGgiXSA9ICJCb3Ro
IjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5
bGVzIGFmdGVyIGl0IGVuZHMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmls
bCBNb2RlIEZvcndhcmRzIl0gPSAiRm9yd2FyZHMiOworLyogTGFiZWwgZm9yIHRoZSBmaWxsIG1v
ZGUgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9u
IEZpbGwgTW9kZSBMYWJlbCJdID0gIkZpbGwiOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIg
YW5pbWF0aW9uIGRvZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQg
YWZ0ZXIgaXQgZW5kcyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1v
ZGUgTm9uZSJdID0gIk5vbmUiOworLyogU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJv
dXQgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIElk
ZW50aXR5IFRpdGxlIl0gPSAiSWRlbnRpdHkiOworLyogTGFiZWwgZm9yIHRoZSBudW1iZXIgb2Yg
aXRlcmF0aW9ucyBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBB
bmltYXRpb24gSXRlcmF0aW9uIENvdW50IExhYmVsIl0gPSAiSXRlcmF0aW9ucyI7CisvKiBMYWJl
bCBmb3IgdGhlIHRpbWUgZHVyYXRpb24gb2YgZWFjaCBpdGVyYXRpb24gb2YgYSB3ZWIgYW5pbWF0
aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBEdXJhdGlv
biBMYWJlbCJdID0gIkR1cmF0aW9uIjsKKy8qIExhYmVsIGZvciB0aGUgbnVtYmVyIGRlc2NyaWJp
bmcgd2hpY2ggaXRlcmF0aW9uIGEgd2ViIGFuaW1hdGlvbiBzaG91bGQgc3RhcnQgYXQgKi8KK2xv
Y2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gSXRlcmF0aW9uIFN0YXJ0IExhYmVsIl0gPSAi
U3RhcnQiOworLyogU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGtleWZy
YW1lcyBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRp
b24gS2V5ZnJhbWVzIFRpdGxlIl0gPSAiS2V5ZnJhbWVzIjsKKy8qIEluZGljYXRlcyB0aGF0IHRo
ZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0
d2VlbiBub3JtYWwgYW5kIHJldmVyc2VkIG9uIGVhY2ggaXRlcmF0aW9uICovCitsb2NhbGl6ZWRT
dHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBBbHRlcm5hdGUiXSA9ICJB
bHRlcm5hdGUiOworLyogSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0
aGlzIHdlYiBhbmltYXRpb24gYWx0ZXJuYXRlcyBiZXR3ZWVuIHJldmVyc2VkIGFuZCBub3JtYWwg
b24gZWFjaCBpdGVyYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxh
eWJhY2sgRGlyZWN0aW9uIEFsdGVybmF0ZSBSZXZlcnNlIl0gPSAiQWx0ZXJuYXRlIFJldmVyc2Ui
OworLyogTGFiZWwgZm9yIHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgYSB3ZWIgYW5pbWF0aW9u
ICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBM
YWJlbCJdID0gIkRpcmVjdGlvbiI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGly
ZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBpcyBub3JtYWwgKGUuZy4gZm9yd2FyZHMpICov
Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBOb3Jt
YWwiXSA9ICJOb3JtYWwiOworLyogSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlv
biBvZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgcmV2ZXJzZWQgKGUuZy4gYmFja3dhcmRzKSAqLwor
bG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gUmV2ZXJz
ZSJdID0gIlJldmVyc2UiOworLyogTGFiZWwgZm9yIHRoZSBzdGFydCBkZWxheSB0aW1lIG9mIGEg
d2ViIGFuaW1hdGlvbiAgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gU3RhcnQg
RGVsYXkgTGFiZWwiXSA9ICJTdGFydCBEZWxheSI7CisvKiBUb29sdGlwIGZvciBzZWN0aW9uIG9m
IGdyYXBoIHJlcHJlc2VudGluZyBkZWxheSBiZWZvcmUgYSB3ZWIgYW5pbWF0aW9uIGJlZ2lucyBh
cHBseWluZyBzdHlsZXMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gU3RhcnQg
RGVsYXkgVG9vbHRpcCJdID0gIlN0YXJ0IERlbGF5ICVzIjsKKy8qIExhYmVsIGZvciB0aGUgY3Vy
cmVudCBET00gbm9kZSB0YXJnZXQgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJp
bmdzWyJXZWIgQW5pbWF0aW9uIFRhcmdldCBMYWJlbCJdID0gIlRhcmdldCI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJXZWIgQW5pbWF0aW9ucyJdID0gIldlYiBBbmltYXRpb25zIjsKIGxvY2FsaXplZFN0
cmluZ3NbIldlYiBJbnNwZWN0b3IiXSA9ICJXZWIgSW5zcGVjdG9yIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIldlYiBJbnNwZWN0b3IgUmVmZXJlbmNlIl0gPSAiV2ViIEluc3BlY3RvciBSZWZlcmVuY2Ui
OwogbG9jYWxpemVkU3RyaW5nc1siV2ViIFBhZ2UiXSA9ICJXZWIgUGFnZSI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggODI3MWUx
M2M2YjdkN2YzMzFjYjJhZTllZGM4MzJhMTRhYzJmMmUzMi4uZWFjZTEyNjdjYTA2MTAwZjZjNzBh
ZjM1NGQyMDQ3ZThkMDRmZGU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTIzLDYgKzEyMyw3IEBAIFdJLmxvYWRlZCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3JrZXJNYW5hZ2Vy
LAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRE9NRGVidWdnZXJNYW5h
Z2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNhbnZhc01hbmFnZXIsCisg
ICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0aW9uTWFuYWdlciwKICAg
ICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAgLTE0NywxMyArMTQ4LDEzIEBA
IFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3
LlR5cGUsCiAgICAgICAgIFdJLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAg
V0kuU3RvcmFnZVRhYkNvbnRlbnRWaWV3LlR5cGUsCi0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRl
bnRWaWV3LlR5cGUsCisgICAgICAgIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSwKICAg
ICAgICAgV0kuQXVkaXRUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5Db25zb2xlVGFi
Q29udGVudFZpZXcuVHlwZSwKICAgICBdKTsKICAgICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRp
bmcgPSBuZXcgV0kuU2V0dGluZygic2VsZWN0ZWQtdGFiLWluZGV4IiwgMCk7CiAKLSAgICAvLyBS
ZXBsYWNlIHRoZSBEZWJ1Z2dlci9SZXNvdXJjZXMgVGFiIHdpdGggdGhlIFNvdXJjZXMgVGFiLgor
ICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjA1ODI2PiBXZWIgSW5zcGVjdG9y
OiByZW1vdmUgbGVnYWN5IGNvZGUgZm9yIHJlcGxhY2luZyB0aGUgUmVzb3VyY2VzIFRhYiBhbmQg
RGVidWdnZXIgVGFiIHdpdGggdGhlIFNvdXJjZXMgVGFiCiAgICAgbGV0IGRlYnVnZ2VySW5kZXgg
PSBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoImRlYnVnZ2VyIik7CiAgICAgbGV0
IHJlc291cmNlc0luZGV4ID0gV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5pbmRleE9mKCJyZXNv
dXJjZXMiKTsKICAgICBpZiAoZGVidWdnZXJJbmRleCA+PSAwIHx8IHJlc291cmNlc0luZGV4ID49
IDApIHsKQEAgLTE3Myw2ICsxNzQsMTMgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgV0kuX3NlbGVjdGVkVGFiSW5kZXhTZXR0aW5nLnZhbHVlID0gc291cmNlc0luZGV4Owog
ICAgIH0KIAorICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjA1ODI3PiBXZWIg
SW5zcGVjdG9yOiByZW1vdmUgbGVnYWN5IGNvZGUgZm9yIHJlcGxhY2luZyB0aGUgQ2FudmFzIFRh
YiB3aXRoIHRoZSBHcmFwaGljcyBUYWIKKyAgICBsZXQgY2FudmFzSW5kZXggPSBXSS5fb3BlblRh
YnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoImNhbnZhcyIpOworICAgIGlmIChjYW52YXNJbmRleCA+
PSAwKSB7CisgICAgICAgIFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuc3BsaWNlKGNhbnZhc0lu
ZGV4LCAxLCBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUpOworICAgICAgICBXSS5fb3Bl
blRhYnNTZXR0aW5nLnNhdmUoKTsKKyAgICB9CisKICAgICAvLyBTdGF0ZS4KICAgICBXSS5wcmlu
dFN0eWxlc0VuYWJsZWQgPSBmYWxzZTsKICAgICBXSS5zZXRab29tRmFjdG9yKFdJLnNldHRpbmdz
Lnpvb21GYWN0b3IudmFsdWUpOwpAQCAtNDY1LDcgKzQ3Myw3IEBAIFdJLmNvbnRlbnRMb2FkZWQg
PSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50VmlldywKICAgICAgICAg
V0kuVGltZWxpbmVUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuU3RvcmFnZVRhYkNvbnRlbnRW
aWV3LAotICAgICAgICBXSS5DYW52YXNUYWJDb250ZW50VmlldywKKyAgICAgICAgV0kuR3JhcGhp
Y3NUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcsCiAgICAg
ICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkNvbnNvbGVUYWJDb250ZW50
VmlldywKQEAgLTEyMjMsMTEgKzEyMzEsOCBAQCBXSS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVw
cmVzZW50ZWRPYmplY3QgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkKICAgICAgICAgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAg
ICAgIHJldHVybiBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3OwogCi0gICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgcmV0dXJuIFdJ
LkNhbnZhc1RhYkNvbnRlbnRWaWV3OwotCi0gICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuUmVjb3JkaW5nKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZp
ZXc7CisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVu
dFZpZXc7CiAKICAgICByZXR1cm4gbnVsbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9u
TWFuYWdlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmI0MTJjZWE1ZmUyM2E2NmZkMjdlY2Q5NGRhZDczZmRi
MDFmMzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcwpAQCAtMCwwICsxLDE1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKy8vIEZJWE1FOiBBbmltYXRpb25NYW5hZ2VyIGxhY2tzIGFkdmFuY2VkIG11
bHRpLXRhcmdldCBzdXBwb3J0LiAoQW5pbWF0aW9ucyBwZXItdGFyZ2V0KQorCitXSS5BbmltYXRp
b25NYW5hZ2VyID0gY2xhc3MgQW5pbWF0aW9uTWFuYWdlcgoreworICAgIGNvbnN0cnVjdG9yKCkK
KyAgICB7CisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYW5p
bWF0aW9uQ29sbGVjdGlvbiA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uOworICAgICAgICB0
aGlzLl9hbmltYXRpb25JZE1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgV0kuRnJhbWUuYWRkRXZl
bnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX2hh
bmRsZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CisgICAgfQorCisgICAgLy8gQWdlbnQK
KworICAgIGdldCBkb21haW5zKCkgeyByZXR1cm4gWyJBbmltYXRpb24iXTsgfQorCisgICAgYWN0
aXZhdGVFeHRyYURvbWFpbihkb21haW4pCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChk
b21haW4gPT09ICJBbmltYXRpb24iKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0ku
dGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpOworICAg
IH0KKworICAgIC8vIFRhcmdldAorCisgICAgaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpCisgICAg
eworICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZW5hYmxlIGRpZCBu
b3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5l
bmFibGUiKSkKKyAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5lbmFibGUoKTsKKyAg
ICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25Db2xsZWN0aW9uKCkgeyBy
ZXR1cm4gdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbjsgfQorCisgICAgZ2V0IHN1cHBvcnRlZCgp
CisgICAgeworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5l
bmFibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5k
Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5lbmFibGUiKTsKKyAgICB9CisKKyAgICBlbmFibGUoKQor
ICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2VuYWJsZWQpOworCisgICAgICAg
IHRoaXMuX2VuYWJsZWQgPSB0cnVlOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50
YXJnZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFyZ2V0KHRhcmdldCk7CisgICAg
fQorCisgICAgZGlzYWJsZSgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9l
bmFibGVkKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgeworICAg
ICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZGlzYWJsZSBk
aWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiQW5p
bWF0aW9uLmRpc2FibGUiKSkKKyAgICAgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQu
ZGlzYWJsZSgpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisgICAg
ICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBBbmltYXRpb25PYnNl
cnZlcgorCisgICAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25QYXlsb2FkKQorICAgIHsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2FuaW1hdGlvbklkTWFwLmhhcyhhbmltYXRpb25Q
YXlsb2FkLmFuaW1hdGlvbklkKSwgYEFuaW1hdGlvbiBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7
YW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZH0uYCk7CisKKyAgICAgICAgbGV0IGFuaW1hdGlv
biA9IFdJLkFuaW1hdGlvbi5mcm9tUGF5bG9hZChhbmltYXRpb25QYXlsb2FkKTsKKyAgICAgICAg
dGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5hZGQoYW5pbWF0aW9uKTsKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uSWRNYXAuc2V0KGFuaW1hdGlvbi5hbmltYXRpb25JZCwgYW5pbWF0aW9uKTsKKyAg
ICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAg
ICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklk
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmlt
YXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLmVmZmVjdENo
YW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkLCBl
ZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRN
YXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsK
KyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
YW5pbWF0aW9uLnRhcmdldENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICBhbmltYXRpb25E
ZXN0cm95ZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhp
cy5fYW5pbWF0aW9uSWRNYXAudGFrZShhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24ucmVtb3ZlKGFuaW1hdGlv
bik7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZU1haW5SZXNvdXJjZURp
ZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LnRhcmdl
dCBpbnN0YW5jZW9mIFdJLkZyYW1lKTsKKyAgICAgICAgaWYgKCFldmVudC50YXJnZXQuaXNNYWlu
RnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBXSS5BbmltYXRpb24ucmVz
ZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25D
b2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7
CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCmluZGV4IDEzNWMxNjYx
M2FlODAwOWMxNmUyNzIyZjcyNTg1Yzk3ZTY5ZGQxMTQuLmRiYjhlNmZlNDk3MzFkNTIzMWUyODNm
NjlmYTI5MGYzN2I2YmJmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpAQCAt
MzIsNiArMzIsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMuX2VuYWJsZWQg
PSBmYWxzZTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbiA9IG5ldyBXSS5DYW52YXND
b2xsZWN0aW9uOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwID0gbmV3IE1hcDsK
ICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogICAg
ICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MgPSBuZXcgU2V0OwpAQCAtNzYsMTMgKzc3LDkgQEAg
V0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
IAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IGNhbnZhc0NvbGxlY3Rpb24oKSB7IHJldHVybiB0
aGlzLl9jYW52YXNDb2xsZWN0aW9uOyB9CiAgICAgZ2V0IHNhdmVkUmVjb3JkaW5ncygpIHsgcmV0
dXJuIHRoaXMuX3NhdmVkUmVjb3JkaW5nczsgfQogCi0gICAgZ2V0IGNhbnZhc2VzKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudmFs
dWVzKCkpOwotICAgIH0KLQogICAgIGdldCBzaGFkZXJQcm9ncmFtcygpCiAgICAgewogICAgICAg
ICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC52YWx1
ZXMoKSk7CkBAIC0xMzMsNiArMTMwLDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZh
c01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICB0YXJnZXQuQ2FudmFz
QWdlbnQuZGlzYWJsZSgpOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVj
dGlvbi5jbGVhcigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7
CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAg
ICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncy5jbGVhcigpOwpAQCAtMTYxLDkgKzE1OSw4IEBAIFdJ
LkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmhhcyhjYW52
YXNQYXlsb2FkLmNhbnZhc0lkKSwgYENhbnZhcyBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7Y2Fu
dmFzUGF5bG9hZC5jYW52YXNJZH0uYCk7CiAKICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLkNhbnZh
cy5mcm9tUGF5bG9hZChjYW52YXNQYXlsb2FkKTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVj
dGlvbi5hZGQoY2FudmFzKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5zZXQo
Y2FudmFzLmlkZW50aWZpZXIsIGNhbnZhcyk7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwge2NhbnZhc30p
OwogICAgIH0KIAogICAgIGNhbnZhc1JlbW92ZWQoY2FudmFzSWRlbnRpZmllcikKQEAgLTE3Myw3
ICsxNzAsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIHRoaXMuX3NhdmVS
ZWNvcmRpbmdzKGNhbnZhcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5yZW1v
dmUoY2FudmFzKTsKKworICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFkZXJQ
cm9ncmFtQ29sbGVjdGlvbikKKyAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlm
aWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOworCisgICAgICAgIGNhbnZhcy5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbi5jbGVhcigpOwogICAgIH0KIAogICAgIGNhbnZhc01lbW9yeUNo
YW5nZWQoY2FudmFzSWRlbnRpZmllciwgbWVtb3J5Q29zdCkKQEAgLTI3NSwyMSArMjc5LDE0IEBA
IFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICBfc2F2
ZVJlY29yZGluZ3MoY2FudmFzKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBj
YW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9zaGFkZXJQ
cm9ncmFtSWRlbnRpZmllck1hcC5kZWxldGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKLQotICAgICAg
ICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIoKTsKLQogICAgICAgICBmb3Ig
KGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pIHsKICAgICAgICAg
ICAgIHJlY29yZGluZy5zb3VyY2UgPSBudWxsOwogICAgICAgICAgICAgcmVjb3JkaW5nLmNyZWF0
ZURpc3BsYXlOYW1lKHJlY29yZGluZy5kaXNwbGF5TmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9z
YXZlZFJlY29yZGluZ3MuYWRkKHJlY29yZGluZyk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB7
cmVjb3JkaW5nfSk7CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHtjYW52YXN9KTsK
ICAgICB9CiAKICAgICBfbWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQpAQCAtMzAxLDE1ICsy
OTgsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgV0kuQ2FudmFzLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJz
KCk7CiAKICAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJN
YXAudmFsdWVzKCkpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAg
ICAgICAgICAgIHRoaXMuX3NhdmVSZWNvcmRpbmdzKGNhbnZhcyk7CiAKLSAgICAgICAgdGhpcy5f
c2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fY2FudmFz
Q29sbGVjdGlvbi5jbGVhcigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNs
ZWFyKCk7CisgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7
CiAgICAgfQogfTsKIAogV0kuQ2FudmFzTWFuYWdlci5FdmVudCA9IHsKLSAgICBDYW52YXNBZGRl
ZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtYWRkZWQiLAotICAgIENhbnZhc1JlbW92ZWQ6
ICJjYW52YXMtbWFuYWdlci1jYW52YXMtd2FzLXJlbW92ZWQiLAogICAgIFJlY29yZGluZ1NhdmVk
OiAiY2FudmFzLW1hbmFnZXItcmVjb3JkaW5nLXNhdmVkIiwKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFu
YWdlci5qcwppbmRleCAxYThkZjY4YmJhZGQ4ZGU4YmZmYjM4MDc5NTI2OTI4N2EzYTMzMjQyLi43
MTg1NTU4YWQzZTBkOTc5YmIwMDFkYjhlMTEwM2RiODJhYTllMDUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RP
TU1hbmFnZXIuanMKQEAgLTMyMyw3ICszMjMsNyBAQCBXSS5ET01NYW5hZ2VyID0gY2xhc3MgRE9N
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgbm9kZUZvcklkKG5vZGVJZCkKICAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdOworICAgICAgICByZXR1
cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXSB8fCBudWxsOwogICAgIH0KIAogICAgIF9kb2N1
bWVudFVwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDc2
MzNkZTFiYWUwZjQxM2ZlMTJjZDFjMzYzMzg0YWVmM2ZkODQ2NTkuLjcyOTY5NmYwNDFjMTYyZmY5
N2NmYjA5MjQ5N2JiZDE1YWJmOWZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFn
ZXIuanMKQEAgLTc4MSw3ICs3ODEsNyBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1l
bGluZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5u
b2RlRm9ySWQoZXZlbnQubm9kZUlkKSB8fCBudWxsOworICAgICAgICAgICAgbGV0IGRvbU5vZGUg
PSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChldmVudC5ub2RlSWQpOwogICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQoZG9tTm9kZSk7CiAKICAgICAgICAgICAgIHJlY29yZCA9IG5ldyBXSS5NZWRp
YVRpbWVsaW5lUmVjb3JkKGV2ZW50VHlwZSwgZG9tTm9kZSwgZGV0YWlscyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmQ2NTdkOTMyNmFhYTBjZTY0ZjZkN2VmMDMx
ZGY4MTZhZjJjZmU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3Zn
CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
IGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJlY3Qg
eD0iMS41IiB5PSIyLjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tl
PSJjdXJyZW50Q29sb3IiLz4KLSAgICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAx
MSAzIDEyIDEzIDEyIDEzIDExIDExIDgiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODdjYWYzYTE0OWY2OTQ1YjYxODZkODRiNjE1ODc2OWNhZjBhNjRhMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGlj
cy5zdmcKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYt
OCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIC0tPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290
IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJlY3QgeD0iMS41IiB5
PSIyLjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50
Q29sb3IiLz4KKyAgICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAxMSAzIDEyIDEz
IDEyIDEzIDExIDExIDgiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IGRkMWQ0YzYxYjM0OTNlMTk2N2UzYjc3YWE4NDU4YWFl
YWE4NzM0ZTYuLjViODU2NTIyMTY0NGJlMWE1ZjJlNmZiMTM3NDdmNjRjOGViYjRiYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTMwLDYg
KzMwLDkgQEAKIAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iRXh0ZXJuYWwvQ29k
ZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+CiAKKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzIj4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkRldGFpbHNT
aWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwuY3NzIj4K
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0VGVzdENhc2VDb250
ZW50Vmlldy5jc3MiPgpAQCAtNTYsNyArNTksNiBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5j
c3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzU2lkZWJh
clBhbmVsLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52
YXNUYWJDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvQ2hhbmdlc0RldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoYXJ0RGV0YWlsc1NlY3Rpb25Sb3cuY3NzIj4KICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoZWNrYm94TmF2aWdhdGlvbkl0ZW0u
Y3NzIj4KQEAgLTExMyw2ICsxMTUsOCBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvR29Ub0xpbmVEaWFsb2cuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL0dyYWRpZW50RWRpdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9HcmFkaWVudFNsaWRlci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcyI+Cisg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRW
aWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwQWxs
b2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldy5jc3MiPgogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcFNuYXBzaG90SW5zdGFuY2Vz
Q29udGVudFZpZXcuY3NzIj4KQEAgLTM0OSw2ICszNTMsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQ
cm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
b25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0
cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUu
anMiPjwvc2NyaXB0PgpAQCAtMzYxLDYgKzM2Niw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3Jp
cHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hlRnJh
bWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNo
ZU1hbmlmZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JhY2tGb3J3
YXJkRW50cnkuanMiPjwvc2NyaXB0PgpAQCAtMzgwLDcgKzM4Nyw2IEBACiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
b2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29s
bGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0PgpAQCAtNTY2LDkgKzU3Miw5IEBACiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL1N0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3NjcmlwdD4KIAogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db25zb2xlVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NjcmlwdFRyZWVFbGVtZW50Lmpz
Ij48L3NjcmlwdD4KQEAgLTU5NCw2ICs2MDAsOSBAQAogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdz
L0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvblRvb2xiYXJJdGVtLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBh
bmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNo
ZURldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LmpzIj48L3Nj
cmlwdD4KQEAgLTY5Miw2ICs3MDEsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Hb1RvTGlu
ZURpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50RWRp
dG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGllbnRTbGlkZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2Nh
dGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlUGF0aENvbXBvbmVudC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVs
aW5lT3ZlcnZpZXdHcmFwaC5qcyI+PC9zY3JpcHQ+CkBAIC04NTYsNiArODY2LDcgQEAKICAgICA8
c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyLmpzIj48L3Nj
cmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9CYXNp
Y0Jsb2NrQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIz
NjVkZTUyNWY0MDZhZDM4Y2Q0NWZlZGNkNzFiNzE0ZjNhNTEzNjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpz
CkBAIC0wLDAgKzEsMjc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uID0gY2xhc3MgQW5p
bWF0aW9uIGV4dGVuZHMgV0kuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoYW5pbWF0aW9uSWQs
IHtjc3NBbmltYXRpb25OYW1lLCBjc3NUcmFuc2l0aW9uUHJvcGVydHksIGVmZmVjdCwgYmFja3Ry
YWNlfSA9IHt9KQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICBjb25zb2xlLmFz
c2VydChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghY3NzQW5pbWF0aW9u
TmFtZSAmJiAhY3NzVHJhbnNpdGlvblByb3BlcnR5KSB8fCAhIWNzc0FuaW1hdGlvbk5hbWUgIT09
ICEhY3NzVHJhbnNpdGlvblByb3BlcnR5KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25JZCA9
IGFuaW1hdGlvbklkOworCisgICAgICAgIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUgPSBjc3NBbmlt
YXRpb25OYW1lIHx8IG51bGw7CisgICAgICAgIHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSA9
IGNzc1RyYW5zaXRpb25Qcm9wZXJ0eSB8fCBudWxsOworICAgICAgICB0aGlzLl91cGRhdGVFZmZl
Y3QoZWZmZWN0KTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlID0gYmFja3RyYWNlIHx8IFtdOwor
CisgICAgICAgIHRoaXMuX2VmZmVjdFRhcmdldCA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5f
cmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcyA9IG51bGw7CisgICAgfQorCisgICAgLy8gU3Rh
dGljCisKKyAgICBzdGF0aWMgZnJvbVBheWxvYWQocGF5bG9hZCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBuZXcgV0kuQW5pbWF0aW9uKHBheWxvYWQuYW5pbWF0aW9uSWQsIHsKKyAgICAgICAgICAg
IGNzc0FuaW1hdGlvbk5hbWU6IHBheWxvYWQuY3NzQW5pbWF0aW9uTmFtZSwKKyAgICAgICAgICAg
IGNzc1RyYW5zaXRpb25Qcm9wZXJ0eTogcGF5bG9hZC5jc3NUcmFuc2l0aW9uUHJvcGVydHksCisg
ICAgICAgICAgICBlZmZlY3Q6IHBheWxvYWQuZWZmZWN0LAorICAgICAgICAgICAgYmFja3RyYWNl
OiBBcnJheS5pc0FycmF5KHBheWxvYWQuYmFja3RyYWNlKSA/IHBheWxvYWQuYmFja3RyYWNlLm1h
cCgoaXRlbSkgPT4gV0kuQ2FsbEZyYW1lLmZyb21QYXlsb2FkKFdJLm1haW5UYXJnZXQsIGl0ZW0p
KSA6IFtdLAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JB
bmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUsIHBsdXJhbCkKKyAgICB7CisgICAgICAgIHN3aXRj
aCAoYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFu
aW1hdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiV2ViIEFu
aW1hdGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9uIik7CisgICAgICAgIGNhc2Ug
V0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBsdXJh
bCA/IFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNTUyBBbmlt
YXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uOgor
ICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMi
KSA6IFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGFuaW1hdGlvbiB0eXBlIiwgYW5pbWF0aW9u
VHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5
TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKHBsYXliYWNrRGlyZWN0aW9uKQorICAgIHsKKyAgICAg
ICAgc3dpdGNoIChwbGF5YmFja0RpcmVjdGlvbikgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlv
bi5QbGF5YmFja0RpcmVjdGlvbi5Ob3JtYWw6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIk5vcm1hbCIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBOb3JtYWwiLCAi
SW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRp
b24gaXMgbm9ybWFsIChlLmcuIGZvcndhcmRzKSIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlv
bi5QbGF5YmFja0RpcmVjdGlvbi5SZXZlcnNlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3Ry
aW5nKCJSZXZlcnNlIiwgIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIFJldmVyc2Ui
LCAiSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmlt
YXRpb24gaXMgcmV2ZXJzZWQgKGUuZy4gYmFja3dhcmRzKSIpOworICAgICAgICBjYXNlIFdJLkFu
aW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRlcm5hdGU6CisgICAgICAgICAgICByZXR1cm4g
V0kuVUlTdHJpbmcoIkFsdGVybmF0ZSIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlv
biBBbHRlcm5hdGUiLCAiSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0
aGlzIHdlYiBhbmltYXRpb24gYWx0ZXJuYXRlcyBiZXR3ZWVuIG5vcm1hbCBhbmQgcmV2ZXJzZWQg
b24gZWFjaCBpdGVyYXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tE
aXJlY3Rpb24uQWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmlu
ZygiQWx0ZXJuYXRlIFJldmVyc2UiLCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24g
QWx0ZXJuYXRlIFJldmVyc2UiLCAiSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlv
biBvZiB0aGlzIHdlYiBhbmltYXRpb24gYWx0ZXJuYXRlcyBiZXR3ZWVuIHJldmVyc2VkIGFuZCBu
b3JtYWwgb24gZWFjaCBpdGVyYXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGZhbHNlLCAiVW5rbm93biBwbGF5YmFjayBkaXJlY3Rpb24iLCBwbGF5YmFja0RpcmVj
dGlvbik7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5
TmFtZUZvckZpbGxNb2RlKGZpbGxNb2RlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWxsTW9k
ZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Ob25lOgorICAgICAgICAg
ICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJOb25lIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIE5v
bmUiLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGRvZXMgbm90IGFwcGx5IGFu
eSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyIpOworICAgICAgICBj
YXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Gb3J3YXJkczoKKyAgICAgICAgICAgIHJldHVybiBX
SS5VSVN0cmluZygiRm9yd2FyZHMiLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgRm9yd2FyZHMi
LCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMg
YWZ0ZXIgaXQgZW5kcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5CYWNr
d2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJhY2t3YXJkcyIsICJXZWIg
QW5pbWF0aW9uIEZpbGwgTW9kZSBCYWNrd2FyZHMiLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIg
YW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyIpOworICAgICAg
ICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Cb3RoOgorICAgICAgICAgICAgcmV0dXJuIFdJ
LlVJU3RyaW5nKCJCb3RoIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEJvdGgiLCAiSW5kaWNh
dGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0
IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5G
aWxsTW9kZS5BdXRvOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBdXRvIiwgIldl
YiBBbmltYXRpb24gRmlsbCBNb2RlIEF1dG8iLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5p
bWF0aW9uIGVpdGhlciBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMg
YW5kIGFmdGVyIGl0IGVuZHMgb3IgdGhhdCBpdCBhcHBsaWVzIHRvIGJvdGgsIGRlcGVuZGluZyBv
biBpdCdzIGNvbmZpZ3VyYXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGZhbHNlLCAiVW5rbm93biBmaWxsIG1vZGUiLCBmaWxsTW9kZSk7CisgICAgICAgIHJldHVy
biBudWxsOworICAgIH0KKworICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVy
cygpCisgICAgeworICAgICAgICBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51
bWJlciA9IDE7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uSWQo
KSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25JZDsgfQorICAgIGdldCBiYWNrdHJhY2UoKSB7IHJl
dHVybiB0aGlzLl9iYWNrdHJhY2U7IH0KKworICAgIGdldCBhbmltYXRpb25UeXBlKCkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0dXJu
IFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1Ry
YW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5D
U1NUcmFuc2l0aW9uOworICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0
aW9uOworICAgIH0KKworICAgIGdldCBzdGFydERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVy
biAic3RhcnREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnN0YXJ0RGVsYXkg
OiBOYU47CisgICAgfQorCisgICAgZ2V0IGVuZERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVy
biAiZW5kRGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5lbmREZWxheSA6IE5h
TjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9uQ291bnQoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICJpdGVyYXRpb25Db3VudCIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJh
dGlvbkNvdW50IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25TdGFydCgpCisgICAg
eworICAgICAgICByZXR1cm4gIml0ZXJhdGlvblN0YXJ0IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlz
Ll9lZmZlY3QuaXRlcmF0aW9uU3RhcnQgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlv
bkR1cmF0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uRHVyYXRpb24iIGlu
IHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25EdXJhdGlvbiA6IE5hTjsKKyAg
ICB9CisKKyAgICBnZXQgdGltaW5nRnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJ0
aW1pbmdGdW5jdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0
aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQgcGxheWJhY2tEaXJlY3Rpb24oKQorICAgIHsK
KyAgICAgICAgcmV0dXJuICJwbGF5YmFja0RpcmVjdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhp
cy5fZWZmZWN0LnBsYXliYWNrRGlyZWN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQgZmls
bE1vZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJmaWxsTW9kZSIgaW4gdGhpcy5fZWZmZWN0
ID8gdGhpcy5fZWZmZWN0LmZpbGxNb2RlIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQga2V5ZnJh
bWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAia2V5ZnJhbWVzIiBpbiB0aGlzLl9lZmZlY3Qg
PyB0aGlzLl9lZmZlY3Qua2V5ZnJhbWVzIDogW107CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlO
YW1lKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWU7CisKKyAgICAgICAgaWYgKHRoaXMu
X2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NUcmFu
c2l0aW9uUHJvcGVydHk7CisKKyAgICAgICAgaWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51
bWJlcikKKyAgICAgICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gV0kuQW5p
bWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIrKzsKKyAgICAgICAgcmV0dXJuIFdJ
LlVJU3RyaW5nKCJBbmltYXRpb24gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU5hbWVO
dW1iZXIpOworICAgIH0KKworICAgIHJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2spCisgICAg
eworICAgICAgICBpZiAodGhpcy5fZWZmZWN0VGFyZ2V0ICE9PSB1bmRlZmluZWQpIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKHRoaXMuX2VmZmVjdFRhcmdldCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxi
YWNrcykgeworICAgICAgICAgICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcy5w
dXNoKGNhbGxiYWNrKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MgPSBbY2FsbGJhY2tdOworCisgICAg
ICAgIFdJLmRvbU1hbmFnZXIuZW5zdXJlRG9jdW1lbnQoKTsKKworICAgICAgICBsZXQgdGFyZ2V0
ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2Vu
dC5yZXF1ZXN0RWZmZWN0VGFyZ2V0KHRoaXMuX2FuaW1hdGlvbklkLCAoZXJyb3IsIG5vZGVJZCkg
PT4geworICAgICAgICAgICAgdGhpcy5fZWZmZWN0VGFyZ2V0ID0gIWVycm9yID8gV0kuZG9tTWFu
YWdlci5ub2RlRm9ySWQobm9kZUlkKSA6IG51bGw7CisKKyAgICAgICAgICAgIGZvciAobGV0IHJl
cXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFjayBvZiB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2Fs
bGJhY2tzKQorICAgICAgICAgICAgICAgIHJlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFjayh0aGlz
Ll9lZmZlY3RUYXJnZXQpOworCisgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0
Q2FsbGJhY2tzID0gbnVsbDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9u
TWFuYWdlcgorCisgICAgZWZmZWN0Q2hhbmdlZChlZmZlY3QpCisgICAgeworICAgICAgICB0aGlz
Ll91cGRhdGVFZmZlY3QoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX2VmZmVjdFRhcmdldCA9IHVuZGVmaW5lZDsKKworICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hh
bmdlZCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3VwZGF0ZUVmZmVjdChlZmZl
Y3QpCisgICAgeworICAgICAgICB0aGlzLl9lZmZlY3QgPSBlZmZlY3QgfHwge307CisKKyAgICAg
ICAgaWYgKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgIHRoaXMuX2Vm
ZmVjdC50aW1pbmdGdW5jdGlvbiA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcodGhpcy5fZWZm
ZWN0LnRpbWluZ0Z1bmN0aW9uKTsKKworICAgICAgICBpZiAodGhpcy5fZWZmZWN0LmtleWZyYW1l
cykgeworICAgICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2YgdGhpcy5fZWZmZWN0LmtleWZy
YW1lcykgeworICAgICAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcpCisgICAgICAgICAg
ICAgICAgICAgIGtleWZyYW1lLmVhc2luZyA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcoa2V5
ZnJhbWUuZWFzaW5nKTsKKworICAgICAgICAgICAgICAgIGlmIChrZXlmcmFtZS5zdHlsZSkKKyAg
ICAgICAgICAgICAgICAgICAga2V5ZnJhbWUuc3R5bGUgPSBrZXlmcmFtZS5zdHlsZS5yZXBsYWNl
QWxsKC87XHMrL2csICI7XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RD
aGFuZ2VkKTsKKyAgICB9Cit9OworCitXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFt
ZU51bWJlciA9IDE7CisKK1dJLkFuaW1hdGlvbi5UeXBlID0geworICAgIFdlYkFuaW1hdGlvbjog
IndlYi1hbmltYXRpb24iLAorICAgIENTU0FuaW1hdGlvbjogImNzcy1hbmltYXRpb24iLAorICAg
IENTU1RyYW5zaXRpb246ICJjc3MtdHJhbnNpdGlvbiIsCit9OworCitXSS5BbmltYXRpb24uUGxh
eWJhY2tEaXJlY3Rpb24gPSB7CisgICAgTm9ybWFsOiAibm9ybWFsIiwKKyAgICBSZXZlcnNlOiAi
cmV2ZXJzZSIsCisgICAgQWx0ZXJuYXRlOiAiYWx0ZXJuYXRlIiwKKyAgICBBbHRlcm5hdGVSZXZl
cnNlOiAiYWx0ZXJuYXRlLXJldmVyc2UiLAorfTsKKworV0kuQW5pbWF0aW9uLkZpbGxNb2RlID0g
eworICAgIE5vbmU6ICJub25lIiwKKyAgICBGb3J3YXJkczogImZvcndhcmRzIiwKKyAgICBCYWNr
d2FyZHM6ICJiYWNrd2FyZHMiLAorICAgIEJvdGg6ICJib3RoIiwKKyAgICBBdXRvOiAiYXV0byIs
Cit9OworCitXSS5BbmltYXRpb24uRXZlbnQgPSB7CisgICAgRWZmZWN0Q2hhbmdlZDogImFuaW1h
dGlvbi1lZmZlY3QtY2hhbmdlZCIsCisgICAgVGFyZ2V0Q2hhbmdlZDogImFuaW1hdGlvbi10YXJn
ZXQtY2hhbmdlZCIsCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45YTI4YTdiMTQ4ZGVlYmU4ZWE1NzZmZGIxZGFiMGI1YjBiYzQ5MWRkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1h
dGlvbkNvbGxlY3Rpb24uanMKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uID0gY2xhc3MgQW5pbWF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIFdJLkNv
bGxlY3Rpb24KK3sKKyAgICBjb25zdHJ1Y3RvcihhbmltYXRpb25UeXBlKQorICAgIHsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoIWFuaW1hdGlvblR5cGUgfHwgT2JqZWN0LnZhbHVlcyhXSS5Bbmlt
YXRpb24uVHlwZSkuaW5jbHVkZXMoYW5pbWF0aW9uVHlwZSkpOworCisgICAgICAgIHN1cGVyKCk7
CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uVHlwZSA9IGFuaW1hdGlvblR5cGUgfHwgbnVsbDsK
KworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpCisgICAgICAgICAgICB0aGlzLl9h
bmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9IG51bGw7CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICBnZXQgYW5pbWF0aW9uVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblR5
cGU7IH0KKworICAgIGdldCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
YW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgY29uc3QgcGx1cmFsID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JUeXBlKHRoaXMuX2FuaW1h
dGlvblR5cGUsIHBsdXJhbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIldlYiBBbmltYXRpb25zIik7CisgICAgfQorCisgICAgb2JqZWN0SXNSZXF1aXJlZFR5cGUo
b2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0
aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gIXRoaXMu
X2FuaW1hdGlvblR5cGUgfHwgb2JqZWN0LmFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlv
blR5cGU7CisgICAgfQorCisgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoYW5pbWF0aW9u
VHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoV0kuQW5p
bWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAgICAgICBpZiAodGhp
cy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9u
VHlwZSA9PT0gdGhpcy5fYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5
cGVNYXApCisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9
IG5ldyBNYXA7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhp
cy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAuZ2V0KGFuaW1hdGlvblR5cGUpOworICAg
ICAgICBpZiAoIWFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKSB7CisgICAgICAgICAgICBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uKGFuaW1h
dGlvblR5cGUpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVN
YXAuc2V0KGFuaW1hdGlvblR5cGUsIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGU7CisgICAgfQor
CisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpdGVtQWRkZWQoaXRlbSkKKyAgICB7CisgICAgICAg
IHN1cGVyLml0ZW1BZGRlZChpdGVtKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5
cGUpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMu
YW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAg
ICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmFkZChpdGVtKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGl0ZW1SZW1vdmVkKGl0ZW0pCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Fu
aW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlw
ZSA9IHRoaXMuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsK
KyAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLnJlbW92ZShpdGVtKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHN1cGVyLml0ZW1SZW1vdmVkKGl0ZW0pOworICAgIH0KKworICAg
IGl0ZW1zQ2xlYXJlZChpdGVtcykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25D
b2xsZWN0aW9uRm9yVHlwZU1hcCkgeworICAgICAgICAgICAgZm9yIChsZXQgYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUgb2YgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAudmFs
dWVzKCkpCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUuY2xlYXIo
KTsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVyLml0ZW1zQ2xlYXJlZChpdGVtcyk7CisgICAg
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKaW5kZXggYzljYzM5NjJlODBm
YjY2ZmUxNWRhMTM1NGVhMjkyNmJmODQxY2RjZS4uMzFkNjI3ZDgxMWJkNjMzMmRjNDgwODVmOTdk
ZjUwNjRkMjAxMjdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKQEAgLTE0
Niw3ICsxNDYsNyBAQCBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0ID0gY2xhc3MgQXVkaXRUZXN0Q2Fz
ZVJlc3VsdCBleHRlbmRzIFdJLkF1ZGl0VGVzdFJlc3VsdEJhcwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJZCA9
IGF3YWl0IGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGRvbU5vZGVTdHJpbmcpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggeyB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkgfHwgbnVsbDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQo
bm9kZUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IDYyYmEyNjQxMDVhYWVkZjRiYTVl
MmJlMzc1NWEyYjVkMzhiY2ZhZDMuLmZmNzFhZjZkNDNkMjc2YzExZjc0MzYyM2I4MzJmOTRiNjFl
ZmUyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DYW52YXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NhbnZhcy5qcwpAQCAtOTcsNyArOTcsNyBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52
YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
Q2FudmFzMkQ6CiAgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CiAgICAgICAg
IGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyOgotICAgICAgICAgICAg
cmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiKTsKKyAgICAgICAg
ICAgIHJldHVybiBXSS5VSVN0cmluZygiQml0bWFwIFJlbmRlcmVyIiwgIkNhbnZhcyBDb250ZXh0
IFR5cGUgQml0bWFwIFJlbmRlcmVyIiwgIkJpdG1hcCBSZW5kZXJlciBpcyBhIHR5cGUgb2YgcmVu
ZGVyaW5nIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgPGNhbnZhcz4gZWxlbWVudCIpOwogICAg
ICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKICAgICAgICAgICAgIHJldHVy
biBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuV2ViR0wyOgpAQCAtMTA2LDkgKzEwNiwxMCBAQCBXSS5DYW52YXMgPSBjbGFz
cyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2Fs
aXplZFN0cmluZygiV2ViIEdQVSIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJNZXRhbDoKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2Vi
TWV0YWwiKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIklu
dmFsaWQgY2FudmFzIGNvbnRleHQgdHlwZSIsIGNvbnRleHRUeXBlKTsKICAgICAgICAgfQorCisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBjYW52YXMgY29udGV4dCB0eXBl
IiwgY29udGV4dFR5cGUpOworICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKICAgICBzdGF0
aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKaW5kZXggMWY4
ZGQ3ZWY0NWQ2Mjk3NzhjZDgyODdiZmI4ZDMxYjJhMTA4OWYzMC4uNTEzZWY3NmFmNTYxNDI5MWUy
ODY0YWFlYTU4ZTc0N2M2OGE4NGZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCkBAIC0xNDgsNiArMTQ4LDIz
IEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICByZXR1cm4gbmV3IFdJLlJlY29yZGluZyhwYXlsb2FkLnZlcnNpb24sIHR5cGUsIHBheWxv
YWQuaW5pdGlhbFN0YXRlLCBmcmFtZXMsIHBheWxvYWQuZGF0YSk7CiAgICAgfQogCisgICAgc3Rh
dGljIGRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlwZShyZWNvcmRpbmdUeXBlKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChyZWNvcmRpbmdUeXBlKSB7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5
cGUuQ2FudmFzMkQ6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CisgICAg
ICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzQml0bWFwUmVuZGVyZXI6CisgICAgICAgICAg
ICByZXR1cm4gV0kuVUlTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIsICJSZWNvcmRpbmcgVHlwZSBD
YW52YXMgQml0bWFwIFJlbmRlcmVyIiwgIkEgdHlwZSBvZiBjYW52YXMgcmVjb3JkaW5nIGluIHRo
ZSBHcmFwaGljcyBUYWIiKTsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNXZWJH
TDoKKyAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wiKTsKKyAg
ICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNXZWJHTDI6CisgICAgICAgICAgICByZXR1
cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMMiIpOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIHJlY29yZGluZyB0eXBlIiwgcmVjb3JkaW5n
VHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKwogICAgIHN0YXRpYyBkaXNwbGF5
TmFtZUZvclN3aXp6bGVUeXBlKHN3aXp6bGVUeXBlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChz
d2l6emxlVHlwZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcwppbmRleCBiMTE5
NWVkMGNhMGNiMGNhODA2NjhlMGU5OGRjNjc5ZGNhZDkxN2EzLi43ZTU2ZThiYjM5Y2JhMGM2Mjgw
ZWE5Y2VkZDQ1YmU1NTQ1ZjBmMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5q
cwpAQCAtMjcsNiArMjcsMjYgQEAgV0kuQW5pbWF0aW9uT2JzZXJ2ZXIgPSBjbGFzcyBBbmltYXRp
b25PYnNlcnZlciBleHRlbmRzIEluc3BlY3RvckJhY2tlbmQuRGlzcGF0Y2gKIHsKICAgICAvLyBF
dmVudHMgZGVmaW5lZCBieSB0aGUgIkFuaW1hdGlvbiIgZG9tYWluLgogCisgICAgYW5pbWF0aW9u
Q3JlYXRlZChhbmltYXRpb24pCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFu
aW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFu
aW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVm
ZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hh
bmdlZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIudGFy
Z2V0Q2hhbmdlZChhbmltYXRpb25JZCk7CisgICAgfQorCisgICAgYW5pbWF0aW9uRGVzdHJveWVk
KGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRp
b25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpOworICAgIH0KKwogICAgIHRyYWNraW5nU3RhcnQodGlt
ZXN0YW1wKQogICAgIHsKICAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLmFuaW1hdGlvblRyYWNr
aW5nU3RhcnRlZCh0aW1lc3RhbXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCmluZGV4IGRkMDBh
ZjU4YzEyNTMwNTg2ZTFjMjgzMDMyYjcyZmQ2MjlmYTMyZDkuLjJjYmE1NjRkNGE3YjZhMzhjMTg5
ZTU3MzNkM2NmM2M2MGZjNTE2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKQEAgLTE4OCw2
ICsxODgsMjUgQEAgV0kuUmVtb3RlT2JqZWN0ID0gY2xhc3MgUmVtb3RlT2JqZWN0CiAgICAgICAg
IHRhcmdldC5DYW52YXNBZ2VudC5yZXNvbHZlQ29udGV4dChjYW52YXMuaWRlbnRpZmllciwgb2Jq
ZWN0R3JvdXAsIHdyYXBDYWxsYmFjayk7CiAgICAgfQogCisgICAgc3RhdGljIHJlc29sdmVBbmlt
YXRpb24oYW5pbWF0aW9uLCBvYmplY3RHcm91cCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBj
b25zb2xlLmFzc2VydCh0eXBlb2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpOworCisgICAgICAg
IGZ1bmN0aW9uIHdyYXBDYWxsYmFjayhlcnJvciwgb2JqZWN0KSB7CisgICAgICAgICAgICBpZiAo
ZXJyb3IgfHwgIW9iamVjdCkKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhXSS5SZW1vdGVPYmplY3QuZnJv
bVBheWxvYWQob2JqZWN0LCBXSS5tYWluVGFyZ2V0KSk7CisgICAgICAgIH0KKworICAgICAgICBs
ZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisKKyAgICAgICAgLy8gQ09NUEFU
SUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiBkaWQgbm90IGV4
aXN0IHlldC4KKyAgICAgICAgY29uc29sZS5hc3NlcnQodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1h
dGlvbi5yZXNvbHZlQW5pbWF0aW9uIikpOworCisgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2Vu
dC5yZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbi5hbmltYXRpb25JZCwgb2JqZWN0R3JvdXAsIHdy
YXBDYWxsYmFjayk7CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdGFyZ2V0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRt
bCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCAx
ZDQ0NWEwNGNkZWJlZWNmYTdiMGNiMDhlZDZmYmJkNGJmNDYxZTg0Li4wYmE1NjBiOTZjMDIzMDZl
YjYxYjMyYmRmNGVhYzg5OTIzZGJmMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVGVzdC5odG1sCkBAIC0xMDgsNiArMTA4LDcgQEAKICAgICA8c2NyaXB0IHNy
Yz0iUHJvdG9jb2wvV29ya2VyT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9CcmVha3BvaW50QWN0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ29uc29sZU1lc3NhZ2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
SW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VD
b2RlLmpzIj48L3NjcmlwdD4KQEAgLTEyMSw2ICsxMjIsOCBAQAogICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvU2NyaXB0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2Fs
U2NyaXB0LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9u
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rp
b24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DUFVJbnN0cnVtZW50LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NQVVRpbWVsaW5lLmpzIj48L3NjcmlwdD4K
QEAgLTEzNyw3ICsxNDAsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRl
eHRUcmVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250
ZXh0VHJlZU5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FudmFz
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVByZXZpZXcuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvblR5cGVzLmpzIj48
L3NjcmlwdD4KQEAgLTIzOCw2ICsyNDAsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm94aWVzL0hl
YXBTbmFwc2hvdFByb3h5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJveGllcy9I
ZWFwU25hcHNob3RXb3JrZXJQcm94eS5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNvbnRyb2xsZXJzL0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQnJlYWtwb2ludExvZ01lc3NhZ2VMZXhlci5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0L1Rlc3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0
L1Rlc3QuanMKaW5kZXggM2M0M2FlNzhiZTE3Mjc3MDcyOWI3MDMyYWJlNTQ0NDNjOTQ2YThiYi4u
MDA2NDQ3YTk2N2U5YzIzN2Y2MGMxMDAwOGJiNDYzNDU3MmI3YzQ2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcwpAQCAtNzAsNiArNzAs
NyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLndvcmtlck1hbmFnZXIgPSBu
ZXcgV0kuV29ya2VyTWFuYWdlciwKICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3
IFdJLkRPTURlYnVnZ2VyTWFuYWdlciwKICAgICAgICAgV0kuY2FudmFzTWFuYWdlciA9IG5ldyBX
SS5DYW52YXNNYW5hZ2VyLAorICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyID0gbmV3IFdJLkFu
aW1hdGlvbk1hbmFnZXIsCiAgICAgXTsKIAogICAgIC8vIFJlZ2lzdGVyIGZvciBldmVudHMuCkBA
IC05MSw2ICs5Miw3IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKIFdJLmNvbnRlbnRMb2FkZWQg
PSBmdW5jdGlvbigpCiB7CiAgICAgLy8gVGhpbmdzIHRoYXQgd291bGQgbm9ybWFsbHkgZ2V0IGNh
bGxlZCBieSB0aGUgVUksIHRoYXQgd2Ugc3RpbGwgd2FudCB0byBkbyBpbiB0ZXN0cy4KKyAgICBX
SS5hbmltYXRpb25NYW5hZ2VyLmVuYWJsZSgpOwogICAgIFdJLmFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmVuYWJsZSgpOwogICAgIFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuZGF0
YWJhc2VNYW5hZ2VyLmVuYWJsZSgpOwpAQCAtMTgxLDYgKzE4Myw3IEBAIFdJLnVwZGF0ZVZpc2li
aWxpdHlTdGF0ZSA9ICgpID0+IHt9OwogICAgICAgICAgICAgZ2V0KCkgeyByZXR1cm4gV0kubWFp
blRhcmdldC5fYWdlbnRzW2RvbWFpbk5hbWVdOyB9LAogICAgICAgICB9KTsKICAgICB9CisgICAg
bWFrZUFnZW50R2V0dGVyKCJBbmltYXRpb24iKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIoIkF1ZGl0
Iik7CiAgICAgbWFrZUFnZW50R2V0dGVyKCJBcHBsaWNhdGlvbkNhY2hlIik7CiAgICAgbWFrZUFn
ZW50R2V0dGVyKCJDUFVQcm9maWxlciIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMKaW5kZXggZDQ0N2I4OTUwYjkz
OTIxZDBhODYwMTMwNjhhOGIzNDgyYjUzMThkYy4uZDJlOTlhZjFiNmU4NTEwN2RmZDY2ZDQxYTMx
M2E2NGVhZTcwMGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzCkBAIC0xMzEsNiArMTMxLDQ2IEBAIFRlc3RI
YXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhp
cy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZSwgIWFjdHVhbCwgbWVz
c2FnZSwgYWN0dWFsKTsKICAgICB9CiAKKyAgICBleHBlY3RFbXB0eShhY3R1YWwsIG1lc3NhZ2Up
CisgICAgeworICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IHR5cGVvZiBhY3R1
YWwgPT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3Mu
RXhwZWN0YXRpb25UeXBlLkVtcHR5LCAhYWN0dWFsLmxlbmd0aCwgbWVzc2FnZSwgYWN0dWFsKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhY3R1YWwgaW5z
dGFuY2VvZiBTZXQgfHwgYWN0dWFsIGluc3RhbmNlb2YgTWFwKSB7CisgICAgICAgICAgICB0aGlz
Ll9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5LCAhYWN0dWFsLnNpemUs
IG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0gIm9iamVjdCIpIHsKKyAgICAgICAgICAgIHRoaXMu
X2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksIGlzRW1wdHlPYmplY3Qo
YWN0dWFsKSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHRoaXMuZmFpbCgiZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
d2l0aCBhIG5vbi1vYmplY3Q6XG4gICAgQWN0dWFsOiAiICsgdGhpcy5fZXhwZWN0YXRpb25WYWx1
ZUFzU3RyaW5nKGFjdHVhbCkpOworICAgIH0KKworICAgIGV4cGVjdE5vdEVtcHR5KGFjdHVhbCwg
bWVzc2FnZSkKKyAgICB7CisgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgdHlw
ZW9mIGFjdHVhbCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0
SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHksICEhYWN0dWFsLmxlbmd0aCwgbWVzc2Fn
ZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChhY3R1YWwgaW5zdGFuY2VvZiBTZXQgfHwgYWN0dWFsIGluc3RhbmNlb2YgTWFwKSB7CisgICAg
ICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5
LCAhIWFjdHVhbC5zaXplLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICJvYmplY3QiKSB7Cisg
ICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVt
cHR5LCAhaXNFbXB0eU9iamVjdChhY3R1YWwpLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5mYWlsKCJleHBlY3ROb3RFbXB0
eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDpcbiAgICBBY3R1YWw6ICIg
KyB0aGlzLl9leHBlY3RhdGlvblZhbHVlQXNTdHJpbmcoYWN0dWFsKSk7CisgICAgfQorCiAgICAg
ZXhwZWN0TnVsbChhY3R1YWwsIG1lc3NhZ2UpCiAgICAgewogICAgICAgICB0aGlzLl9leHBlY3Qo
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk51bGwsIGFjdHVhbCA9PT0gbnVsbCwgbWVzc2Fn
ZSwgYWN0dWFsLCBudWxsKTsKQEAgLTM4MSw2ICs0MjEsMTAgQEAgVGVzdEhhcm5lc3MgPSBjbGFz
cyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuICJleHBl
Y3RUaGF0KCVzKSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZh
bHNlOgogICAgICAgICAgICAgcmV0dXJuICJleHBlY3RGYWxzZSglcykiOworICAgICAgICBjYXNl
IFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eToKKyAgICAgICAgICAgIHJldHVybiAi
ZXhwZWN0RW1wdHkoJXMpIjsKKyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5
cGUuTm90RW1wdHk6CisgICAgICAgICAgICByZXR1cm4gImV4cGVjdE5vdEVtcHR5KCVzKSI7CiAg
ICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk51bGw6CiAgICAgICAgICAg
ICByZXR1cm4gImV4cGVjdE51bGwoJXMpIjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBl
Y3RhdGlvblR5cGUuTm90TnVsbDoKQEAgLTQxNiw2ICs0NjAsMTAgQEAgVGVzdEhhcm5lc3MgPSBj
bGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuICJ0
cnV0aHkiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZToK
ICAgICAgICAgICAgIHJldHVybiAiZmFsc2V5IjsKKyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5F
eHBlY3RhdGlvblR5cGUuRW1wdHk6CisgICAgICAgICAgICByZXR1cm4gImVtcHR5IjsKKyAgICAg
ICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHk6CisgICAgICAgICAg
ICByZXR1cm4gIm5vdCBlbXB0eSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRp
b25UeXBlLk5vdE51bGw6CiAgICAgICAgICAgICByZXR1cm4gIm5vdCBudWxsIjsKICAgICAgICAg
Y2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RXF1YWw6CkBAIC00NDAsNiArNDg4
LDggQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAog
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlID0gewogICAgIFRydWU6IFN5bWJvbCgiZXhwZWN0
LXRydWUiKSwKICAgICBGYWxzZTogU3ltYm9sKCJleHBlY3QtZmFsc2UiKSwKKyAgICBFbXB0eTog
U3ltYm9sKCJleHBlY3QtZW1wdHkiKSwKKyAgICBOb3RFbXB0eTogU3ltYm9sKCJleHBlY3Qtbm90
LWVtcHR5IiksCiAgICAgTnVsbDogU3ltYm9sKCJleHBlY3QtbnVsbCIpLAogICAgIE5vdE51bGw6
IFN5bWJvbCgiZXhwZWN0LW5vdC1udWxsIiksCiAgICAgRXF1YWw6IFN5bWJvbCgiZXhwZWN0LWVx
dWFsIiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NGEzOGYxNjJiZTUwZTc0N2NhNTdmZWMyYjczOTE1NTBmNWQ0YWIx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDI5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24tY29sbGVjdGlvbiB7CisgICAg
cG9zaXRpb246IHJlbGF0aXZlOworICAgIHBhZGRpbmc6IDRweDsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rp
b25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWMxZDJj
ZmMxZWQ5MTBjOTU5YjE5OGUzYjg4ZWZlNzRhNGFkOTI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0
aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0
b3IocmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24pOworCisgICAg
ICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKworICAgICAgICBsZXQgZGVzY3JpcHRpb25FbGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVy
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgZGVz
Y3JpcHRpb25FbGVtZW50LmNsYXNzTmFtZSA9ICJkZXNjcmlwdGlvbiI7CisKKyAgICAgICAgc3dp
dGNoIChyZXByZXNlbnRlZE9iamVjdC5hbmltYXRpb25UeXBlKSB7CisgICAgICAgIGNhc2UgV0ku
QW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVt
ZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3Jl
YXRlZCBieSBKYXZhU2NyaXB0LiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlv
bkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9u
cyBjcmVhdGVkIGJ5IENTUy4iKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2Ug
V0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
RWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciB0cmFuc2l0aW9u
cyBjcmVhdGVkIGJ5IENTUy4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCk7CisKKyAg
ICAgICAgc3VwZXIocmVwcmVzZW50ZWRPYmplY3QsIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LCBj
b250ZW50UGxhY2Vob2xkZXIpOworCisgICAgICAgIHRoaXMuc2VsZWN0aW9uRW5hYmxlZCA9IHRy
dWU7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImFuaW1hdGlvbi1jb2xs
ZWN0aW9uIik7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vi
dmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5oYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBj
b250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3KQorICAgIHsKKyAgICAgICAgY29udGVudFZpZXcu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5faGFuZGxlQ29udGVu
dFZpZXdNb3VzZUVudGVyKTsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKTsK
KyAgICB9CisKKyAgICBjb250ZW50Vmlld1JlbW92ZWQoY29udGVudFZpZXcpCisgICAgeworICAg
ICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIi
LCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50ZXIpOworICAgICAgICBjb250ZW50Vmll
dy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9oYW5kbGVD
b250ZW50Vmlld01vdXNlTGVhdmUpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7Cisg
ICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKworICAgICAgICBz
dXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVD
b250ZW50Vmlld01vdXNlRW50ZXIoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgY29udGVudFZp
ZXcgPSBXSS5WaWV3LmZyb21FbGVtZW50KGV2ZW50LnRhcmdldCk7CisgICAgICAgIGlmICghKGNv
bnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBjb250ZW50Vmlldy5yZXByZXNl
bnRlZE9iamVjdDsKKyAgICAgICAgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoKG5vZGUp
ID0+IHsKKyAgICAgICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5vd25lckRvY3VtZW50KQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG5vZGUuaGlnaGxpZ2h0KCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUoZXZlbnQp
CisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Cisg
ICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YzU5OTA0ZWY3M2YzMjg0ODY0MTc4N2JiOGI2YzBiZjkzN2FhNTIyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29u
dGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmll
dy5hbmltYXRpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogMTAwJTsK
KyAgICBtYXJnaW46IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5k
LWNvbG9yLWNvbnRlbnQpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xv
cik7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkIHsKKyAgICBvdXRsaW5l
OiBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKK30KKworLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNl
bnRlcjsKKyAgICBoZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgcGFk
ZGluZzogMCA2cHg7CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgeworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9
CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7
CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKK30KKworLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICBjb2xv
cjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5KTo6YmVmb3Jl
IHsKKyAgICBjb250ZW50OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNw
OyAqLzsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlv
bi1iYXIgeworICAgIGJvcmRlcjogbm9uZTsKKyAgICBvcGFjaXR5OiAwOworfQorCisuY29udGVu
dC12aWV3LmFuaW1hdGlvbjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAg
b3BhY2l0eTogMTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyB7Cisg
ICAgZGlzcGxheTogZmxleDsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGln
bi1pdGVtczogY2VudGVyOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYlKTsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyB7CisgICAgd2lk
dGg6IDEwMCU7Cit9CisKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyA+IHN2ZyB7CisgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOworfQorCisuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QgeworICAgIGZpbGw6IHRyYW5z
cGFyZW50OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4g
LmRlbGF5IGxpbmUgeworICAgIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG9yKTsKKyAgICBzdHJv
a2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBz
dmcgPiAuYWN0aXZlIHBhdGggeworICAgIGZpbGw6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7
CisgICAgZmlsbC1vcGFjaXR5OiAwLjU7CisgICAgc3Ryb2tlOiB2YXIoLS1nbHlwaC1jb2xvci1h
Y3RpdmUpOworICAgIHN0cm9rZS13aWR0aDogMTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlIHsKKyAgICBmaWxsOiB2YXIoLS10
ZXh0LWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2
ZyA+IC5hY3RpdmUgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICBz
dHJva2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcg
PiBzcGFuIHsKKyAgICBwYWRkaW5nOiA0cHg7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3It
c2Vjb25kYXJ5KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewor
ICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7
CisgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICB9CisKKyAgICAuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgICAg
ICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworICAgIH0KKworICAgIC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBoc2woMCwgMCUsIDIwJSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmll
dy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40OWQ2MDY3Y2Y4NjRkNzQ4NzMzMzRkYzk4M2ZjYTBmYWU2NzNiNmI2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitXSS5BbmltYXRpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9i
amVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsKKworICAgICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVj
dCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IG51bGw7CisgICAg
ICAgIHRoaXMuX2NhY2hlZFdpZHRoID0gTmFOOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJhbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0
YXRpYyBnZXQgcHJldmlld0hlaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gNDA7CisgICAg
fQorCisgICAgLy8gUHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisg
ICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAgICAvLyBQ
cm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5p
dGlhbExheW91dCgpOworCisgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gdGhpcy5lbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAg
ICBsZXQgdGl0bGVzQ29udGFpbmVyID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRpdGxlc0NvbnRhaW5lci5jbGFzc05h
bWUgPSAidGl0bGVzIjsKKworICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gdGl0bGVzQ29udGFp
bmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAg
IHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAidGl0bGUiOworICAgICAgICB0aXRsZUVsZW1lbnQu
dGV4dENvbnRlbnQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc3BsYXlOYW1lOworCisgICAg
ICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aGlzLl9zdWJ0aXRsZUVs
ZW1lbnQuY2xhc3NOYW1lID0gInN1YnRpdGxlIjsKKworICAgICAgICBsZXQgbmF2aWdhdGlvbkJh
ciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyOworCisgICAgICAgIGxldCBhbmltYXRpb25UYXJnZXRC
dXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiYW5pbWF0
aW9uLXRhcmdldCIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24gVGFyZ2V0IiksICJJbWFnZXMvTWFy
a3VwLnN2ZyIsIDE2LCAxNik7CisgICAgICAgIGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRp
b25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQ
cmlvcml0eS5Mb3c7CisgICAgICAgIFdJLmFkZE1vdXNlRG93bkNvbnRleHRNZW51SGFuZGxlcnMo
YW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZWxlbWVudCwgdGhpcy5fcG9wdWxh
dGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudS5iaW5kKHRoaXMpKTsKKyAgICAgICAg
bmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbShhbmltYXRpb25UYXJnZXRCdXR0b25OYXZp
Z2F0aW9uSXRlbSk7CisKKyAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmQobmF2aWdhdGlvbkJh
ci5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRpb25CYXIpOworCisg
ICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29u
dGFpbmVyLmNsYXNzTmFtZSA9ICJwcmV2aWV3IjsKKyAgICB9CisKKyAgICBsYXlvdXQoKQorICAg
IHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRp
dGxlKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgc2l6
ZURpZENoYW5nZSgpCisgICAgeworICAgICAgICBzdXBlci5zaXplRGlkQ2hhbmdlKCk7CisKKyAg
ICAgICAgdGhpcy5fY2FjaGVkV2lkdGggPSB0aGlzLmVsZW1lbnQucmVhbE9mZnNldFdpZHRoOwor
ICAgIH0KKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7
CisKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFu
aW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0
aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJ
LkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2Vk
LCB0aGlzKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRh
cmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2
ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQsIHRoaXMpOworCisg
ICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAg
X3JlZnJlc2hTdWJ0aXRsZSgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LnJlcXVlc3RFZmZlY3RUYXJnZXQoKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2Fu
aW1hdGlvblRhcmdldERPTU5vZGUgPSBkb21Ob2RlOworCisgICAgICAgICAgICB0aGlzLl9zdWJ0
aXRsZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIGlmIChkb21Ob2RlKQor
ICAgICAgICAgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChXSS5saW5r
aWZ5Tm9kZVJlZmVyZW5jZShkb21Ob2RlKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9y
ZWZyZXNoUHJldmlldygpCisgICAgeworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLnJl
bW92ZUNoaWxkcmVuKCk7CisKKyAgICAgICAgbGV0IGtleWZyYW1lcyA9IHRoaXMucmVwcmVzZW50
ZWRPYmplY3Qua2V5ZnJhbWVzOworICAgICAgICBpZiAoIWtleWZyYW1lcy5sZW5ndGgpIHsKKyAg
ICAgICAgICAgIGxldCBzcGFuID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29u
dGVudCA9IFdJLlVJU3RyaW5nKCJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHN0YXJ0RGVsYXkg
PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IGl0
ZXJhdGlvbkR1cmF0aW9uID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5pdGVyYXRpb25EdXJhdGlv
biB8fCAwOworICAgICAgICBsZXQgZW5kRGVsYXkgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVu
ZERlbGF5IHx8IDA7CisgICAgICAgIGxldCB0b3RhbER1cmF0aW9uID0gc3RhcnREZWxheSArIGl0
ZXJhdGlvbkR1cmF0aW9uICsgZW5kRGVsYXk7CisgICAgICAgIGlmICh0b3RhbER1cmF0aW9uID09
PSAwKSB7CisgICAgICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNw
YW4udGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0
aW9uLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qg
cHJldmlld0hlaWdodCA9IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByZXZpZXdIZWlnaHQ7CisK
KyAgICAgICAgY29uc3QgbWFya2VySGVhZFJhZGl1cyA9IDQ7CisgICAgICAgIGNvbnN0IG1hcmtl
ckhlYWRQYWRkaW5nID0gMjsKKworICAgICAgICAvLyBTcXVlZXplIHRoZSBlbnRpcmUgcHJldmll
dyBzbyB0aGF0IG1hcmtlcnMgYXJlbid0IGN1dCBvZmYuCisgICAgICAgIGNvbnN0IHNxdWVlemVY
U3RhcnQgPSAoaXRlcmF0aW9uRHVyYXRpb24gJiYgc3RhcnREZWxheSkgPyAwIDogbWFya2VySGVh
ZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWEVuZCA9
IChpdGVyYXRpb25EdXJhdGlvbiAmJiBlbmREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyAr
IG1hcmtlckhlYWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWVN0YXJ0ID0gbWFya2Vy
SGVhZFJhZGl1cyArIChtYXJrZXJIZWFkUGFkZGluZyAqIDIpOworCisgICAgICAgIC8vIE1vdmUg
dGhlIGVhc2luZyBsaW5lIGRvd24gdG8gY3V0IG9mZiB0aGUgYm90dG9tIGJvcmRlci4KKyAgICAg
ICAgY29uc3QgYWRqdXN0RWFzaW5nWSA9IDAuNTsKKworICAgICAgICBsZXQgc2Vjb25kc1BlclBp
eGVsID0gdGhpcy5fY2FjaGVkV2lkdGggLyB0b3RhbER1cmF0aW9uOworCisgICAgICAgIHN0YXJ0
RGVsYXkgKj0gc2Vjb25kc1BlclBpeGVsOworICAgICAgICBpdGVyYXRpb25EdXJhdGlvbiA9IChp
dGVyYXRpb25EdXJhdGlvbiAqIHNlY29uZHNQZXJQaXhlbCkgLSBzcXVlZXplWFN0YXJ0IC0gc3F1
ZWV6ZVhFbmQ7CisgICAgICAgIGVuZERlbGF5ICo9IHNlY29uZHNQZXJQaXhlbDsKKworICAgICAg
ICBsZXQgc3ZnID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdF
bGVtZW50KCJzdmciKSk7CisgICAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCBgMCAw
ICR7dGhpcy5fY2FjaGVkV2lkdGh9ICR7cHJldmlld0hlaWdodH1gKTsKKworICAgICAgICBmdW5j
dGlvbiBhZGRUaXRsZShwYXJlbnQsIHRpdGxlKSB7CisgICAgICAgICAgICBsZXQgdGl0bGVFbGVt
ZW50ID0gcGFyZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInRpdGxlIikpOworICAg
ICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoc3RhcnREZWxheSkgeworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlDb250
YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAg
ICAgIHN0YXJ0RGVsYXlDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZGVsYXkiLCAic3RhcnQiKTsK
KworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlMaW5lID0gc3RhcnREZWxheUNvbnRhaW5lci5h
cHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAgICAgc3RhcnRE
ZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFy
dCkgLyAyKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieDIiLCBz
dGFydERlbGF5KTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIi
LCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAgICAgICAgICAgIGxl
dCBzdGFydERlbGF5RWxlbWVudCA9IHN0YXJ0RGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3Jl
YXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlFbGVtZW50LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCBzdGFydERlbGF5KTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlF
bGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgcHJldmlld0hlaWdodCk7CisKKyAgICAgICAg
ICAgIGNvbnN0IHN0YXJ0RGVsYXlUaXRsZUZvcm1hdCA9IFdJLlVJU3RyaW5nKCJTdGFydCBEZWxh
eSAlcyIsICJXZWIgQW5pbWF0aW9uIFN0YXJ0IERlbGF5IFRvb2x0aXAiLCAiVG9vbHRpcCBmb3Ig
c2VjdGlvbiBvZiBncmFwaCByZXByZXNlbnRpbmcgZGVsYXkgYmVmb3JlIGEgd2ViIGFuaW1hdGlv
biBiZWdpbnMgYXBwbHlpbmcgc3R5bGVzIik7CisgICAgICAgICAgICBhZGRUaXRsZShzdGFydERl
bGF5RWxlbWVudCwgc3RhcnREZWxheVRpdGxlRm9ybWF0LmZvcm1hdChOdW1iZXIuc2Vjb25kc1Rv
U3RyaW5nKHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3RhcnREZWxheSAvIDEwMDApKSk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoZW5kRGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBlbmREZWxh
eUNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAg
ICAgICAgICAgZW5kRGVsYXlDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJh
bnNsYXRlKCR7c3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgc3F1ZWV6ZVhTdGFydH0s
IDApYCk7CisgICAgICAgICAgICBlbmREZWxheUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxh
eSIsICJlbmQiKTsKKworICAgICAgICAgICAgbGV0IGVuZERlbGF5TGluZSA9IGVuZERlbGF5Q29u
dGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAg
ICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6
ZVlTdGFydCkgLyAyKTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngy
IiwgZW5kRGVsYXkpOworICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIi
LCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAgICAgICAgICAgIGxl
dCBlbmREZWxheUVsZW1lbnQgPSBlbmREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVT
VkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJp
YnV0ZSgid2lkdGgiLCBzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheSk7
CisgICAgICAgICAgICBlbmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2
aWV3SGVpZ2h0KTsKKworICAgICAgICAgICAgY29uc3QgZW5kRGVsYXlUaXRsZUZvcm1hdCA9IFdJ
LlVJU3RyaW5nKCJFbmQgRGVsYXkgJXMiLCAiV2ViIEFuaW1hdGlvbiBFbmQgRGVsYXkgVG9vbHRp
cCIsICJUb29sdGlwIGZvciBzZWN0aW9uIG9mIGdyYXBoIHJlcHJlc2VudGluZyBkZWxheSBhZnRl
ciBhIHdlYiBhbmltYXRpb24gZmluaXNoZXMgYXBwbHlpbmcgc3R5bGVzIik7CisgICAgICAgICAg
ICBhZGRUaXRsZShlbmREZWxheUVsZW1lbnQsIGVuZERlbGF5VGl0bGVGb3JtYXQuZm9ybWF0KE51
bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXByZXNlbnRlZE9iamVjdC5lbmREZWxheSAvIDEw
MDApKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXRlcmF0aW9uRHVyYXRpb24pIHsKKyAg
ICAgICAgICAgIGxldCB0aW1pbmdGdW5jdGlvbiA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QudGlt
aW5nRnVuY3Rpb247CisKKyAgICAgICAgICAgIGxldCBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lciA9
IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgYWN0
aXZlRHVyYXRpb25Db250YWluZXIuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7CisgICAgICAgICAg
ICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFu
c2xhdGUoJHtzdGFydERlbGF5ICsgc3F1ZWV6ZVhTdGFydH0sICR7c3F1ZWV6ZVlTdGFydH0pYCk7
CisKKyAgICAgICAgICAgIGNvbnN0IHN0YXJ0WSA9IDA7CisgICAgICAgICAgICBjb25zdCBlbmRZ
ID0gcHJldmlld0hlaWdodCAtIHNxdWVlemVZU3RhcnQ7CisgICAgICAgICAgICBjb25zdCBoZWln
aHQgPSBlbmRZIC0gc3RhcnRZOworCisgICAgICAgICAgICBmb3IgKGxldCBba2V5ZnJhbWVBLCBr
ZXlmcmFtZUJdIG9mIGtleWZyYW1lcy5hZGphY2VuY2llcygpKSB7CisgICAgICAgICAgICAgICAg
bGV0IHN0YXJ0WCA9IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWVBLm9mZnNldDsKKyAgICAg
ICAgICAgICAgICBsZXQgZW5kWCA9IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWVCLm9mZnNl
dDsKKyAgICAgICAgICAgICAgICBsZXQgd2lkdGggPSBlbmRYIC0gc3RhcnRYOworCisgICAgICAg
ICAgICAgICAgbGV0IGVhc2luZyA9IGtleWZyYW1lQS5lYXNpbmcgfHwgdGltaW5nRnVuY3Rpb247
CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5nQ29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25D
b250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAg
ICAgICBlYXNpbmdDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZWFzaW5nIik7CisgICAgICAgICAg
ICAgICAgZWFzaW5nQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0
ZSgke3N0YXJ0WH0sICR7c3RhcnRZfSlgKTsKKworICAgICAgICAgICAgICAgIGxldCB4MSA9IGVh
c2luZy5pblBvaW50LnggKiB3aWR0aDsKKyAgICAgICAgICAgICAgICBsZXQgeTEgPSAoKDEgLSBl
YXNpbmcuaW5Qb2ludC55KSAqIGhlaWdodCkgKyBhZGp1c3RFYXNpbmdZOworICAgICAgICAgICAg
ICAgIGxldCB4MiA9IGVhc2luZy5vdXRQb2ludC54ICogd2lkdGg7CisgICAgICAgICAgICAgICAg
bGV0IHkyID0gKCgxIC0gZWFzaW5nLm91dFBvaW50LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2lu
Z1k7CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5nUGF0aCA9IGVhc2luZ0NvbnRhaW5lci5h
cHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJwYXRoIikpOworICAgICAgICAgICAgICAgIGVh
c2luZ1BhdGguc2V0QXR0cmlidXRlKCJkIiwgYE0gMCAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9
IEMgJHt4MX0gJHt5MX0gJHt4Mn0gJHt5Mn0gJHt3aWR0aH0gJHthZGp1c3RFYXNpbmdZfSBWICR7
aGVpZ2h0ICsgYWRqdXN0RWFzaW5nWX0gWmApOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxl
UmVjdCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0
IikpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgd2lk
dGgpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhl
aWdodCk7CisKKyAgICAgICAgICAgICAgICBhZGRUaXRsZSh0aXRsZVJlY3QsIGVhc2luZy50b1N0
cmluZygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUg
b2Yga2V5ZnJhbWVzKSB7CisgICAgICAgICAgICAgICAgbGV0IHggPSBpdGVyYXRpb25EdXJhdGlv
biAqIGtleWZyYW1lLm9mZnNldDsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZUNvbnRh
aW5lciA9IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1l
bnQoImciKSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVDb250YWluZXIuY2xhc3NMaXN0LmFk
ZCgia2V5ZnJhbWUiKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUNvbnRhaW5lci5zZXRBdHRy
aWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHt4fSwgJHtzdGFydFl9KWApOworCisgICAg
ICAgICAgICAgICAgbGV0IGtleWZyYW1lTWFya2VySGVhZCA9IGtleWZyYW1lQ29udGFpbmVyLmFw
cGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImNpcmNsZSIpKTsKKyAgICAgICAgICAgICAgICBr
ZXlmcmFtZU1hcmtlckhlYWQuc2V0QXR0cmlidXRlKCJyIiwgbWFya2VySGVhZFJhZGl1cyk7CisK
KyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVNYXJrZXJMaW5lID0ga2V5ZnJhbWVDb250YWlu
ZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAgICAg
ICBrZXlmcmFtZU1hcmtlckxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIGhlaWdodCk7CisKKyAgICAg
ICAgICAgICAgICBsZXQgdGl0bGVSZWN0ID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQo
Y3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0
QXR0cmlidXRlKCJ4IiwgLTEgKiAobWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5n
KSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgieSIsIC0xICogc3F1
ZWV6ZVlTdGFydCk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lk
dGgiLCAobWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nKSAqIDIpOworICAgICAg
ICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhlaWdodCArIHNxdWVl
emVZU3RhcnQpOworCisgICAgICAgICAgICAgICAgYWRkVGl0bGUodGl0bGVSZWN0LCBrZXlmcmFt
ZS5zdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxl
RWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3
KCk7CisgICAgfQorCisgICAgX2hhbmRsZVRhcmdldENoYW5nZWQoZXZlbnQpCisgICAgeworICAg
ICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAgICBfcG9wdWxhdGVBbmlt
YXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudShjb250ZXh0TWVudSkKKyAgICB7CisgICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvZyBBbmltYXRpb24iKSwgKCkg
PT4geworICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVBbmltYXRpb24odGhpcy5y
ZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1hbmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAo
cmVtb3RlT2JqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGNvbnN0IHRleHQg
PSBXSS5VSVN0cmluZygiU2VsZWN0ZWQgQW5pbWF0aW9uIiwgIkFwcGVhcnMgYXMgYSBsYWJlbCB3
aGVuIGEgZ2l2ZW4gd2ViIGFuaW1hdGlvbiBpcyBsb2dnZWQgdG8gdGhlIENvbnNvbGUiKTsKKyAg
ICAgICAgICAgICAgICBjb25zdCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICBXSS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhl
Y3V0aW9uV2l0aFJlc3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xh
c3MpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZFNlcGFyYXRvcigpOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25UYXJnZXRE
T01Ob2RlKQorICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUo
Y29udGV4dE1lbnUsIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUpOworICAgIH0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA1ZGI0NmU0OGYwNGMzOTVhNjFhNGI3NGVlZDAzNTNjMjJmZTcyMzQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
LnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxz
LXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlIHsKKyAgICBj
b2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5zaWRlYmFyID4gLnBh
bmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1h
dGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
aHNsKDAsIDAlLCA5NyUpOworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlv
biA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRh
aWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgeworICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKK30KKwor
LnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxz
LXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVz
IC5Db2RlTWlycm9yIHsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgcGFkZGluZzogNHB4IDA7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CisKK0BtZWRpYSAocHJlZmVycy1j
b2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1h
dGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5k
ZXRhaWxzLXNlY3Rpb24geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE4
JSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFu
ZWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDY5MWE1YzgyMzMwMmQxNDdhMDg4OWQzNjY0YjE2MjU5NTliMmNj
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTAsMCArMSwyNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQW5p
bWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTaWRlYmFyUGFuZWwK
K3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigiYW5pbWF0aW9uIiwg
V0kuVUlTdHJpbmcoIkFuaW1hdGlvbiIpKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBu
dWxsOworCisgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwID0gbmV3IE1hcDsKKyAg
ICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGluc3BlY3Qob2JqZWN0cykKKyAgICB7CisgICAg
ICAgIGlmICghKG9iamVjdHMgaW5zdGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICBvYmplY3Rz
ID0gW29iamVjdHNdOworCisgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gb2JqZWN0cy5maW5kKChv
YmplY3QpID0+IG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbik7CisKKyAgICAgICAgcmV0
dXJuICEhdGhpcy5hbmltYXRpb247CisgICAgfQorCisgICAgZ2V0IGFuaW1hdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uOworICAgIH0KKworICAgIHNldCBhbmlt
YXRpb24oYW5pbWF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGFuaW1hdGlvbiA9PT0gdGhpcy5f
YW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9hbmlt
YXRpb24pIHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExpc3RlbmVy
KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25U
YXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5k
bGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRo
aXMuX2FuaW1hdGlvbiA9IGFuaW1hdGlvbiB8fCBudWxsOworCisgICAgICAgIGlmICh0aGlzLl9h
bmltYXRpb24pIHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVy
KFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25F
ZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVu
dExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVB
bmltYXRpb25UYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
bmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxM
YXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAg
IHRoaXMuX25hbWVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJp
bmcoIk5hbWUiKSk7CisgICAgICAgIHRoaXMuX3R5cGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rp
b25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlR5cGUiKSk7CisgICAgICAgIHRoaXMuX3RhcmdldFJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiVGFyZ2V0Iiwg
IldlYiBBbmltYXRpb24gVGFyZ2V0IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgY3VycmVudCBET00g
bm9kZSB0YXJnZXQgb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworCisgICAgICAgIGNvbnN0IGlkZW50
aXR5U2VjdGlvblRpdGxlID0gV0kuVUlTdHJpbmcoIklkZW50aXR5IiwgIldlYiBBbmltYXRpb24g
SWRlbnRpdHkgVGl0bGUiLCAiU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgYSB3
ZWIgYW5pbWF0aW9uIik7CisgICAgICAgIGxldCBpZGVudGl0eVNlY3Rpb24gPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1pZGVudGl0eSIsIGlkZW50aXR5U2VjdGlvblRpdGxlLCBb
bmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX25hbWVSb3csIHRoaXMuX3R5cGVSb3cs
IHRoaXMuX3RhcmdldFJvd10pXSk7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5h
cHBlbmRDaGlsZChpZGVudGl0eVNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5faXRl
cmF0aW9uQ291bnRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJp
bmcoIkl0ZXJhdGlvbnMiLCAiV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gQ291bnQgTGFiZWwiLCAi
TGFiZWwgZm9yIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBvZiBhIHdlYiBhbmltYXRpb24iKSk7
CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
U2ltcGxlUm93KFdJLlVJU3RyaW5nKCJTdGFydCIsICJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBT
dGFydCBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIG51bWJlciBkZXNjcmliaW5nIHdoaWNoIGl0ZXJh
dGlvbiBhIHdlYiBhbmltYXRpb24gc2hvdWxkIHN0YXJ0IGF0IikpOworICAgICAgICB0aGlzLl9p
dGVyYXRpb25EdXJhdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5V
SVN0cmluZygiRHVyYXRpb24iLCAiV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gRHVyYXRpb24gTGFi
ZWwiLCAiTGFiZWwgZm9yIHRoZSB0aW1lIGR1cmF0aW9uIG9mIGVhY2ggaXRlcmF0aW9uIG9mIGEg
d2ViIGFuaW1hdGlvbiIpKTsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbnNHcm91cCA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9pdGVyYXRpb25Db3VudFJvdywgdGhpcy5faXRlcmF0
aW9uU3RhcnRSb3csIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93XSk7CisKKyAgICAgICAgdGhp
cy5fc3RhcnREZWxheVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0
cmluZygiU3RhcnQgRGVsYXkiLCAiV2ViIEFuaW1hdGlvbiBTdGFydCBEZWxheSBMYWJlbCIsICJM
YWJlbCBmb3IgdGhlIHN0YXJ0IGRlbGF5IHRpbWUgb2YgYSB3ZWIgYW5pbWF0aW9uICIpKTsKKyAg
ICAgICAgdGhpcy5fZW5kRGVsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3co
V0kuVUlTdHJpbmcoIkVuZCBEZWxheSIsICJXZWIgQW5pbWF0aW9uIEVuZCBEZWxheSBMYWJlbCIs
ICJMYWJlbCBmb3IgdGhlIGVuZCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1hdGlvbiAiKSk7Cisg
ICAgICAgIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2lt
cGxlUm93KFdJLlVJU3RyaW5nKCJFYXNpbmciLCAiV2ViIEFuaW1hdGlvbiBFYXNpbmcgTGFiZWwi
LCAiTGFiZWwgZm9yIHRoZSBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9uIG9mIGEgd2ViIGFu
aW1hdGlvbiIpKTsKKyAgICAgICAgbGV0IHRpbWluZ0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uR3JvdXAoW3RoaXMuX3N0YXJ0RGVsYXlSb3csIHRoaXMuX2VuZERlbGF5Um93LCB0aGlzLl90
aW1pbmdGdW5jdGlvblJvd10pOworCisgICAgICAgIHRoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93
ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJEaXJlY3Rpb24i
LCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gTGFiZWwiLCAiTGFiZWwgZm9yIHRo
ZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICB0aGlz
Ll9maWxsTW9kZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmlu
ZygiRmlsbCIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBMYWJlbCIsICJMYWJlbCBmb3IgdGhl
IGZpbGwgbW9kZSBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIGxldCBmaWxsRGlyZWN0
aW9uR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fcGxheWJhY2tEaXJl
Y3Rpb25Sb3csIHRoaXMuX2ZpbGxNb2RlUm93XSk7CisKKyAgICAgICAgY29uc3QgZWZmZWN0U2Vj
dGlvblRpdGxlID0gV0kuVUlTdHJpbmcoIkVmZmVjdCIsICJXZWIgQW5pbWF0aW9uIEVmZmVjdCBU
aXRsZSIsICJTZWN0aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZWZmZWN0IG9m
IGEgd2ViIGFuaW1hdGlvbiIpOworICAgICAgICBsZXQgZWZmZWN0U2VjdGlvbiA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWVmZmVjdCIsIGVmZmVjdFNlY3Rpb25UaXRsZSwgW2l0
ZXJhdGlvbnNHcm91cCwgdGltaW5nR3JvdXAsIGZpbGxEaXJlY3Rpb25Hcm91cF0pOworICAgICAg
ICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZWZmZWN0U2VjdGlvbi5lbGVt
ZW50KTsKKworICAgICAgICB0aGlzLl9rZXlmcmFtZXNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbkdyb3VwOworCisgICAgICAgIGNvbnN0IGtleWZyYW1lc1NlY3Rpb25UaXRsZSA9IFdJLlVJ
U3RyaW5nKCJLZXlmcmFtZXMiLCAiV2ViIEFuaW1hdGlvbiBLZXlmcmFtZXMgVGl0bGUiLCAiU2Vj
dGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGtleWZyYW1lcyBvZiBhIHdlYiBh
bmltYXRpb24iKTsKKyAgICAgICAgbGV0IGtleWZyYW1lc1NlY3Rpb24gPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb24oImFuaW1hdGlvbi1rZXlmcmFtZXMiLCBrZXlmcmFtZXNTZWN0aW9uVGl0bGUsIFt0
aGlzLl9rZXlmcmFtZXNHcm91cF0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQu
YXBwZW5kQ2hpbGQoa2V5ZnJhbWVzU2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICBjb25zdCBz
ZWxlY3RhYmxlID0gZmFsc2U7CisgICAgICAgIGxldCBiYWNrdHJhY2VUcmVlT3V0bGluZSA9IG5l
dyBXSS5UcmVlT3V0bGluZShzZWxlY3RhYmxlKTsKKyAgICAgICAgYmFja3RyYWNlVHJlZU91dGxp
bmUuZGlzY2xvc3VyZUJ1dHRvbnMgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlVHJl
ZUNvbnRyb2xsZXIgPSBuZXcgV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIoYmFja3RyYWNlVHJl
ZU91dGxpbmUpOworCisgICAgICAgIGxldCBiYWNrdHJhY2VSb3cgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Sb3c7CisgICAgICAgIGJhY2t0cmFjZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGJhY2t0
cmFjZVRyZWVPdXRsaW5lLmVsZW1lbnQpOworCisgICAgICAgIGNvbnN0IGJhY2t0cmFjZVNlY3Rp
b25UaXRsZSA9IFdJLlVJU3RyaW5nKCJCYWNrdHJhY2UiLCAiV2ViIEFuaW1hdGlvbiBCYWNrdHJh
Y2UgVGl0bGUiLCAiU2VjdGlvbiB0aXRsZSBmb3IgdGhlIEphdmFTY3JpcHQgYmFja3RyYWNlIG9m
IHRoZSBjcmVhdGlvbiBvZiBhIHdlYiBhbmltYXRpb24iKTsKKyAgICAgICAgdGhpcy5fYmFja3Ry
YWNlU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWJhY2t0cmFjZSIs
IGJhY2t0cmFjZVNlY3Rpb25UaXRsZSwgW25ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtiYWNr
dHJhY2VSb3ddKV0pOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlk
ZGVuID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxlbWVudCk7CisgICAgfQorCisgICAgbGF5b3V0KCkK
KyAgICB7CisgICAgICAgIHN1cGVyLmxheW91dCgpOworCisgICAgICAgIGlmICghdGhpcy5fYW5p
bWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hJZGVu
dGl0eVNlY3Rpb24oKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAg
ICAgICAgdGhpcy5fcmVmcmVzaEJhY2t0cmFjZVNlY3Rpb24oKTsKKworICAgICAgICBmb3IgKGxl
dCBjb2RlTWlycm9yIG9mIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLnZhbHVlcygpKQorICAg
ICAgICAgICAgY29kZU1pcnJvci5yZWZyZXNoKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQor
CisgICAgX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fbmFt
ZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5kaXNwbGF5TmFtZTsKKyAgICAgICAgdGhpcy5f
dHlwZVJvdy52YWx1ZSA9IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUo
dGhpcy5fYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUpOworCisgICAgICAgIHRoaXMuX3RhcmdldFJv
dy52YWx1ZSA9IG51bGw7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFy
Z2V0KChkb21Ob2RlKSA9PiB7CisgICAgICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBk
b21Ob2RlID8gV0kubGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkgOiBudWxsOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBfcmVmcmVzaEVmZmVjdFNlY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgZm9yIChsZXQgc2VjdGlvbiBvZiB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5rZXlzKCkp
CisgICAgICAgICAgICBzZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuRGV0YWlsc1NlY3Rp
b24uRXZlbnQuQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzLl9oYW5kbGVEZXRhaWxzU2VjdGlv
bkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JT
ZWN0aW9uTWFwLmNsZWFyKCk7CisKKyAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gMDsKKyAgICAg
ICAgY29uc3QgcmVhZE9ubHkgPSB0cnVlOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkNvdW50
Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkgPyB0aGlz
Ll9hbmltYXRpb24uaXRlcmF0aW9uQ291bnQudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAg
ICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlv
bi5pdGVyYXRpb25TdGFydCkgPyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQudG9Mb2Nh
bGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93LnZh
bHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbikgPyBOdW1iZXIu
c2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbiAvIDEwMDAp
IDogbnVsbDsKKworICAgICAgICB0aGlzLl9zdGFydERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5p
bWF0aW9uLnN0YXJ0RGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlv
bi5zdGFydERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl9lbmREZWxheVJvdy52
YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5lbmREZWxheSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmco
dGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl90
aW1pbmdGdW5jdGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbiA/
IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbi50b1N0cmluZygpIDogbnVsbDsKKworICAg
ICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5w
bGF5YmFja0RpcmVjdGlvbiA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclBsYXliYWNrRGly
ZWN0aW9uKHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbikgOiBudWxsOworICAgICAg
ICB0aGlzLl9maWxsTW9kZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5maWxsTW9kZSA/IFdJ
LkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckZpbGxNb2RlKHRoaXMuX2FuaW1hdGlvbi5maWxsTW9k
ZSkgOiBudWxsOworCisgICAgICAgIGxldCBrZXlmcmFtZVNlY3Rpb25zID0gW107CisgICAgICAg
IGZvciAobGV0IGtleWZyYW1lIG9mIHRoaXMuX2FuaW1hdGlvbi5rZXlmcmFtZXMpIHsKKyAgICAg
ICAgICAgIGxldCByb3dzID0gW107CisKKyAgICAgICAgICAgIGxldCBrZXlmcmFtZVNlY3Rpb24g
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1rZXlmcmFtZS1vZmZzZXQtIiArIGtl
eWZyYW1lLm9mZnNldCwgTnVtYmVyLnBlcmNlbnRhZ2VTdHJpbmcoa2V5ZnJhbWUub2Zmc2V0LCBw
cmVjaXNpb24pKTsKKyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbi5hZGRFdmVudExpc3RlbmVy
KFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFu
ZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICAg
ICAga2V5ZnJhbWVTZWN0aW9ucy5wdXNoKGtleWZyYW1lU2VjdGlvbik7CisKKyAgICAgICAgICAg
IGlmIChrZXlmcmFtZS5lYXNpbmcpIHsKKyAgICAgICAgICAgICAgICBsZXQgc3VidGl0bGUgPSBr
ZXlmcmFtZVNlY3Rpb24uaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgICAgIHN1YnRpdGxlLmNsYXNzTmFtZSA9ICJz
dWJ0aXRsZSI7CisgICAgICAgICAgICAgICAgc3VidGl0bGUudGV4dENvbnRlbnQgPSBgICR7ZW1E
YXNofSAke2tleWZyYW1lLmVhc2luZy50b1N0cmluZygpfWA7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChrZXlmcmFtZS5zdHlsZSkgeworICAgICAgICAgICAgICAgIGxldCBjb2Rl
TWlycm9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAg
ICAgICAgIGxldCBjb2RlTWlycm9yID0gV0kuQ29kZU1pcnJvckVkaXRvci5jcmVhdGUoY29kZU1p
cnJvckVsZW1lbnQsIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kZTogImNzcyIsCisgICAgICAg
ICAgICAgICAgICAgIHJlYWRPbmx5OiAibm9jdXJzb3IiLAorICAgICAgICAgICAgICAgICAgICBs
aW5lV3JhcHBpbmc6IHRydWUsCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
Y29kZU1pcnJvci5zZXRWYWx1ZShrZXlmcmFtZS5zdHlsZSk7CisKKyAgICAgICAgICAgICAgICBj
b25zdCByYW5nZSA9IG51bGw7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gb3B0aW9uc0ZvclR5
cGUodHlwZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAg
ICAgICAgICAgYWxsb3dlZFRva2VuczogL1xidGFnXGIvLAorICAgICAgICAgICAgICAgICAgICAg
ICAgY2FsbGJhY2sobWFya2VyLCB2YWx1ZU9iamVjdCwgdmFsdWVTdHJpbmcpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgc3dhdGNoID0gbmV3IFdJLklubGluZVN3YXRjaCh0eXBl
LCB2YWx1ZU9iamVjdCwgcmVhZE9ubHkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
ZGVNaXJyb3Iuc2V0VW5pcXVlQm9va21hcmsobWFya2VyLnJhbmdlLnN0YXJ0UG9zaXRpb24oKS50
b0NvZGVNaXJyb3IoKSwgc3dhdGNoLmVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBjcmVhdGVDb2RlTWlycm9yQ29sb3JUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwg
b3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuQ29sb3IpKTsKKyAgICAgICAgICAg
ICAgICBjcmVhdGVDb2RlTWlycm9yR3JhZGllbnRUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5n
ZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpKTsKKyAgICAg
ICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yQ3ViaWNCZXppZXJUZXh0TWFya2Vycyhjb2RlTWly
cm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKSk7
CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvclNwcmluZ1RleHRNYXJrZXJzKGNvZGVN
aXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcp
KTsKKworICAgICAgICAgICAgICAgIGxldCByb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7
CisgICAgICAgICAgICAgICAgcm93LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic3R5bGVzIik7Cisg
ICAgICAgICAgICAgICAgcm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoY29kZU1pcnJvckVsZW1lbnQp
OworICAgICAgICAgICAgICAgIHJvd3MucHVzaChyb3cpOworCisgICAgICAgICAgICAgICAgdGhp
cy5fY29kZU1pcnJvclNlY3Rpb25NYXAuc2V0KGtleWZyYW1lU2VjdGlvbiwgY29kZU1pcnJvcik7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghcm93cy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgICAgICBsZXQgZW1wdHlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlT
dHJpbmcoIk5vIFN0eWxlcyIpKTsKKyAgICAgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlN
ZXNzYWdlKCk7CisgICAgICAgICAgICAgICAgcm93cy5wdXNoKGVtcHR5Um93KTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9uLmdyb3VwcyA9IFtuZXcgV0kuRGV0
YWlsc1NlY3Rpb25Hcm91cChyb3dzKV07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFrZXlmcmFt
ZVNlY3Rpb25zLmxlbmd0aCkgeworICAgICAgICAgICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uUm93KFdJLlVJU3RyaW5nKCJObyBLZXlmcmFtZXMiKSk7CisgICAgICAgICAg
ICBlbXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rp
b25zLnB1c2goZW1wdHlSb3cpOworICAgICAgICB9CisgICAgICAgIHRoaXMuX2tleWZyYW1lc0dy
b3VwLnJvd3MgPSBrZXlmcmFtZVNlY3Rpb25zOworICAgIH0KKworICAgIF9yZWZyZXNoQmFja3Ry
YWNlU2VjdGlvbigpCisgICAgeworICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHRoaXMuX2FuaW1h
dGlvbi5iYWNrdHJhY2U7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVRyZWVDb250cm9sbGVyLmNh
bGxGcmFtZXMgPSBjYWxsRnJhbWVzOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVs
ZW1lbnQuaGlkZGVuID0gIWNhbGxGcmFtZXMubGVuZ3RoOworICAgIH0KKworICAgIF9oYW5kbGVB
bmltYXRpb25FZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVz
aEVmZmVjdFNlY3Rpb24oKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hh
bmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24o
KTsKKyAgICB9CisKKyAgICBfaGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5n
ZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgY29kZU1pcnJvciA9IHRoaXMuX2NvZGVNaXJy
b3JTZWN0aW9uTWFwLmdldChldmVudC50YXJnZXQpOworICAgICAgICBjb2RlTWlycm9yLnJlZnJl
c2goKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCmluZGV4IDRlNWE5
MGUxZjAzMTdmMGM0ZWJmNGY3OTk3MDI3NmM3ZmJkMjdmNTguLmNjMTY2YmQzZTYwZDM4MWE3NWEx
YTE3OTQzYWJlMjM2NzA3YThiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKQEAg
LTIzLDExICsyMywxMSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisuY29udGVudC12aWV3LmNhbnZh
cyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnRhYikgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZh
cyA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGp1c3RpZnktY29udGVudDog
Y2VudGVyOwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CkBAIC0zNiwxNyArMzYsMTcgQEAKICAg
ICBwYWRkaW5nOiAxNXB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgewor
LmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJl
Y3Rpb246IGNvbHVtbjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gLnBy
ZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAg
ICAgbWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29u
dGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAgZGlzcGxh
eTogbm9uZTsKIH0KIApAQCAtNTYsNyArNTYsNyBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29s
b3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsK
KyAgICAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVu
c2V0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKaW5kZXggOWI0ZmQ2ZjZl
ZDdlMWNiNzYzOTc1MTExMDExNTMyNDY1NGQ1OGYwMS4uOTkzZGE1MTNmMmRkNTYzM2ZkNzk0ODNl
YTRjYTlmZmJhOTZlZmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKQEAgLTQ1LDcg
KzQ1LDcgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmln
YXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlT
dHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CiAgICAg
ICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkg
PSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OwotICAgICAgICB0aGlz
Ll9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLnJlZnJlc2hQcmV2aWV3LCB0aGlzKTsK
KyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5oYW5kbGVSZWZy
ZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25O
YXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93
LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmlu
ZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tl
cnMuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9u
SXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNr
ZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CkBAIC03Nyw2ICs3NywyOSBA
QCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgaGFuZGxlUmVmcmVzaEJ1
dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOworICAg
IH0KKworICAgIC8vIERyb3Bab25lVmlldyBkZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVTaG91bGRB
cHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMiKTsKKyAgICB9CisKKyAg
ICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0
IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzOworICAgICAgICBpZiAoZmlsZXMubGVu
Z3RoICE9PSAxKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGll
cy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNP
TihyZXN1bHQpKTsKKyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGluaXRpYWxMYXlv
dXQoKQpAQCAtMTYwLDYgKzE4MywxMyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENh
bnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBpZiAoaXND
YXJkKQogICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFBpeGVsU2l6ZSgpOworCisgICAgICAgIGlm
ICghaXNDYXJkKSB7CisgICAgICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Ba
b25lVmlldyh0aGlzKTsKKyAgICAgICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0kuVUlTdHJp
bmcoIkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRF
bGVtZW50ID0gdGhpcy5lbGVtZW50OworICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Ba
b25lVmlldyk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBsYXlvdXQoKQpAQCAtMTkxLDEzICsy
MjEsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkKCk7CiAg
ICAgfQogCi0gICAgc2hvd24oKQotICAgIHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAg
ICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCiAgICAgYXR0YWNoZWQoKQogICAg
IHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKQEAgLTIyMyw2ICsyNDYsOCBAQCBXSS5DYW52
YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKICAgICAgICAgfSk7CiAKICAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5h
ZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRlSW1h
Z2VHcmlkLCB0aGlzKTsKKworICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7CiAgICAgfQog
CiAgICAgZGV0YWNoZWQoKQpAQCAtMjkxLDExICszMTYsNiBAQCBXSS5DYW52YXNDb250ZW50Vmll
dyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAg
IF9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudShjb250ZXh0TWVudSkKICAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKQotICAgICAgICAgICAgV0kuYXBwZW5k
Q29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUp
OwotCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwotCiAgICAgICAgIGNv
bnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvZyBDYW52YXMgQ29udGV4dCIpLCAo
KSA9PiB7CiAgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUNhbnZhc0NvbnRleHQo
dGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1hbmFnZXIuQ29uc29sZU9iamVjdEdy
b3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFyZW1vdGVPYmpl
Y3QpCkBAIC0zMDYsNiArMzI2LDExIEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2Fu
dmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIFdJ
LmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBlbmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVz
dWx0KHRleHQsIHJlbW90ZU9iamVjdCwgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJh
dG9yKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2NhbnZhc05vZGUpCisgICAgICAgICAgICBXSS5h
cHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fY2FudmFz
Tm9kZSk7CiAgICAgfQogCiAgICAgX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCmluZGV4IDEwZjM3YzA0NmIwYzJhMTI4
MmM1ZWM5OWRjNmNiOTkwYjIyMzZjNWYuLjFjNmQ2NDMxZjliN2Q2MzZlOGYzZThjZTE1YzZiYjJh
NjViMTM2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3Nz
CkBAIC0yNiwyOSArMjYsMjkgQEAKIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKICAg
ICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsK
LSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7Ci0KLSAgICAtLWl0ZW0tbWFy
Z2luOiAxMHB4OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHggMDsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMg
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyB7
CiAgICAgZmxleC1ncm93OiAwOwotICAgIG1hcmdpbjogdmFyKC0taXRlbS1tYXJnaW4pOworICAg
IGZsZXgtc2hyaW5rOiAwOwogICAgIHdpZHRoOiA0MDBweDsKKyAgICBtYXJnaW46IDRweDsKICAg
ICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGN1cnNvcjogcG9p
bnRlcjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIGJhY2tncm91bmQtY29sb3I6
IHdoaXRlOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CiAgICAgYm9yZGVyLWNv
bG9yOiByZWQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZv
b3RlcikgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAg
ICBmbGV4LXNocmluazogMDsKQEAgLTU5LDEzNiArNTksMTM2IEBACiAgICAgY3Vyc29yOiBkZWZh
dWx0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gaGVhZGVyIHsKICAgICBmb250LXNpemU6IDEzcHg7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1h
Y3RpdmUgPiBoZWFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50
LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnNpemUgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50
aXRsZXMsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyID4gLnNpemUgewogICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVy
ID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29s
b3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1
YnRpdGxlLAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciAubWVtb3J5LWNvc3QgewogICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVk
aXVtKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBoZWFkZXIgLnN1YnRpdGxlOjpiZWZvcmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9y
ZSB7CiAgICAgY29udGVudDogIlwwMEEwXDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJz
cDsgKi87CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3Jk
aW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB3aGl0
ZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgY29sb3I6IHZh
cigtLXNlbGVjdGVkLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52
ZXJ0KCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgewogICAgIGFsaWduLWl0ZW1zOiBpbml0aWFsOwogICAgIGJvcmRlcjogbm9uZTsKICAgICBv
cGFjaXR5OiAwOwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm1h
dGNoZXMoOmhvdmVyLCAucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
czptYXRjaGVzKDpob3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyIHsKICAgICBvcGFjaXR5OiAxOwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMg
ZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50
LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlv
bi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFj
dGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3Rv
cC5kaXNhYmxlZCB7CiAgICAgZmlsdGVyOiBncmF5c2NhbGUoKTsKICAgICBvcGFjaXR5OiAwLjU7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
Om5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRl
bS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3ZlciB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFj
dGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3Rv
cDpub3QoLmRpc2FibGVkKTpob3ZlciB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDk1JSk7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5v
dCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5y
ZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTphY3RpdmUgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3Rp
dmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6
bm90KC5kaXNhYmxlZCk6YWN0aXZlIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoODAlKTsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAu
cHJvZ3Jlc3MtdmlldywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgPiAucHJldmlldyB7CiAgICAgaGVpZ2h0OiAyODBweDsKICAgICB0cmFuc2l0
aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZl
ID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5w
cm9ncmVzcy12aWV3OmhvdmVyLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBoc2woMCwgMCUsIDk2JSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1h
Y3RpdmUgPiAucHJldmlldyB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4g
LnByZXZpZXcgPiBpbWcgewogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICBib3gtc2hhZG93
OiAxcHggMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuNTgpOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2Ut
dGV4dC12aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiAucHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmlldyB7CiAgICAgcG9zaXRpb246
IHN0YXRpYzsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciB7CiAgICAgYm9yZGVyLXRvcDogbm9uZTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290
ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsK
ICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4g
LnZpZXctcmVsYXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3Jk
aW5nKSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRl
ciwgLnZpZXctcmVjb3JkaW5nKSB7CiAgICAgd2lkdGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcgKyBpbWcgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52
aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcgKyBpbWcgewogICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0
OiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7Cisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CiAgICAgY29udGVudDog
aW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2Vz
L0RvY3VtZW50R0xAMngucG5nKSAyeCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+
IC52aWV3LXJlY29yZGluZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJl
Y29yZGluZyB7CiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgPiAuZmxleGlibGUtc3BhY2UgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
PiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CiAgICAg
ZmxleDogMTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAg
ICAtd2Via2l0LXBhZGRpbmctc3RhcnQ6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29y
ZGluZ3MgewogICAgIGhlaWdodDogMzQwcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGlu
ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
LnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CiAgICAgb3ZlcmZsb3cteTogc2Nyb2xs
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNv
biB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
LnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29u
IHsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCkBAIC0y
MDksNDMgKzIwOSwzOSBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJr
KSB7Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgewotICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB1bnNldDsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcywKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKyAgICAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLAorICAgIC5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmll
dyA+IGltZyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29s
b3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6
aG92ZXIsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMgPiAucHJldmlldzpob3ZlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZp
ZXc6aG92ZXIsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
dmFyKC0tYmFja2dyb3VuZC1jb2xvci10ZXJ0aWFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKICAgICAgICAgLS1yZWNvcmRpbmctY29sb3I6IGhzbCgw
LCAxMDAlLCAzOSUpOwogICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xv
cik7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CisgICAgLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZl
ID4gaGVhZGVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNv
bG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIC5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAu
dGl0bGVzID4gLnRpdGxlIHsKICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpOwogICAg
IH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKLSAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3Qg
eworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0
IHsKICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAK
LSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciAudmlldy1yZWNvcmRpbmcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLnZpZXctcmVjb3JkaW5nIHsKICAg
ICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVy
ID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRp
dGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgICAgIGNvbG9yOiB1bnNldDsKICAgICAgICAgb3BhY2l0
eTogMC41CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMK
aW5kZXggNjM5YjM2ZDg1OWJiN2NmM2MzNDQ0NWFhMGViNzQ5NTQzM2M0MTA5OC4uMGQxNjVkZDI2
OGQ0MzcwMjhhNDNkMTQ5ZTA3Y2ZhODM4YjRkZTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3LmpzCkBAIC0yOSw3ICsyOSw4IEBAIFdJLkNhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29sbGVjCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pOwogCi0gICAgICAgIGxldCBjb250ZW50UGxh
Y2Vob2xkZXIgPSBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZh
cyBDb250ZXh0cyIpKTsKKyAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmFuaW1h
dGlvbk1hbmFnZXIuc3VwcG9ydGVkID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgOiBX
SS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIp
KTsKKwogICAgICAgICBsZXQgZGVzY3JpcHRpb25FbGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVy
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKICAgICAgICAgZGVz
Y3JpcHRpb25FbGVtZW50LmNsYXNzTmFtZSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgIGRlc2Ny
aXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBjYW52
YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiIpOwpAQCAtNjIsMjEgKzYzLDcg
QEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlY29y
ZGluZ0F1dG9DYXB0dXJlQ2hlY2tib3hMYWJlbChmcmFtZUNvdW50KTsKICAgICAgICAgfQogCi0g
ICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAi
SW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlTdHJpbmcoIkltcG9ydCIpOwotICAgICAgICB0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKLQotICAgICAgICB0aGlzLl9yZWZyZXNo
QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJl
c2gtYWxsIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2ggYWxsIiksICJJbWFnZXMvUmVsb2FkRnVsbC5z
dmciLCAxMywgMTMpOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
ZW5hYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2Vk
LCB0aGlzLl9yZWZyZXNoUHJldmlld3MsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX3Nob3dHcmlk
QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRl
bSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0ku
VUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRl
bUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVl
OwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBm
YWxzZTsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVu
dExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3No
b3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7Ci0KICAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0
ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2Vk
LCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwot
ICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVy
KFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9y
dEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2F2
ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcgPSBudWxsOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29y
ZGluZ3NUcmVlT3V0bGluZSA9IG51bGw7CkBAIC05MCwxNyArNzcsMTggQEAgV0kuQ2FudmFzT3Zl
cnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db2xsZWMKIAogICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAg
bGV0IG5hdmlnYXRpb25JdGVtcyA9IFt0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwg
bmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRp
b25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKLSAgICAgICAgaWYg
KFdJLkNhbnZhc01hbmFnZXIuc3VwcG9ydHNSZWNvcmRpbmdBdXRvQ2FwdHVyZSgpKQotICAgICAg
ICAgICAgbmF2aWdhdGlvbkl0ZW1zLnVuc2hpZnQodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVO
YXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIGxl
dCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZ0F1dG9D
YXB0dXJlTmF2aWdhdGlvbkl0ZW0pCisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0
aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJu
IG5hdmlnYXRpb25JdGVtczsKICAgICB9CiAKLSAgICBoaWRkZW4oKQorICAgIGhhbmRsZVJlZnJl
c2hCdXR0b25DbGlja2VkKCkKICAgICB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5v
ZGVIaWdobGlnaHQoKTsKLQotICAgICAgICBzdXBlci5oaWRkZW4oKTsKKyAgICAgICAgZm9yIChs
ZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcu
aGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8v
IFByb3RlY3RlZApAQCAtMTE1LDIzICsxMDMsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMK
ICAgICAgICAgICAgIHRoaXMucmVtb3ZlU3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250
ZW50Vmlldyk7CiAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRp
bmdzQ29udGVudFZpZXcpOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdh
dGlvbkl0ZW1zKCk7CiAgICAgfQogCiAgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3
KQogICAgIHsKICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVy
KCJtb3VzZWVudGVyIiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUVudGVyKTsKICAgICAgICAgY29u
dGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5f
Y29udGVudFZpZXdNb3VzZUxlYXZlKTsKLQotICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9u
SXRlbXMoKTsKICAgICB9CiAKICAgICBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICBzdXBlci5h
dHRhY2hlZCgpOwogCi0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRM
aXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZVNob3dJbWFnZUdy
aWQsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVy
ZUVuYWJsZWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMu
X2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZENoYW5nZWQsIHRoaXMpOwog
ICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQu
YWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNh
bnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudENoYW5nZWQsIHRoaXMpOwogCkBAIC0x
NDEsNDkgKzEyNCwyNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhp
cy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAg
Zm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQog
ICAgICAgICAgICAgdGhpcy5fYWRkU2F2ZWRSZWNvcmRpbmcocmVjb3JkaW5nKTsKKworICAgICAg
ICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChz
dWJ2aWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAg
c3Vidmlldy5yZWZyZXNoUHJldmlldygpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZGV0YWNo
ZWQoKQogICAgIHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgp
OworCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBu
dWxsLCB0aGlzKTsKIAogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2Fw
dHVyZUZyYW1lQ291bnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAg
ICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkLnJlbW92
ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNo
b3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAg
ICAgICBzdXBlci5kZXRhY2hlZCgpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAotICAgIGdl
dCBfaXRlbU1hcmdpbigpCi0gICAgewotICAgICAgICByZXR1cm4gcGFyc2VJbnQod2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCItLWl0ZW0tbWFy
Z2luIikpOwotICAgIH0KLQotICAgIF9yZWZyZXNoUHJldmlld3MoKQotICAgIHsKLSAgICAgICAg
Zm9yIChsZXQgY2FudmFzQ29udGVudFZpZXcgb2YgdGhpcy5zdWJ2aWV3cykKLSAgICAgICAgICAg
IGNhbnZhc0NvbnRlbnRWaWV3LnJlZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCi0gICAgX3VwZGF0
ZU5hdmlnYXRpb25JdGVtcygpCi0gICAgewotICAgICAgICBsZXQgaGFzSXRlbXMgPSAhIXRoaXMu
cmVwcmVzZW50ZWRPYmplY3Quc2l6ZTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmln
YXRpb25JdGVtLmVuYWJsZWQgPSBoYXNJdGVtczsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0
b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gaGFzSXRlbXM7Ci0gICAgfQotCi0gICAgX3Nob3dH
cmlkQnV0dG9uQ2xpY2tlZChldmVudCkKLSAgICB7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJ
bWFnZUdyaWQudmFsdWUgPSAhdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3Rp
dmF0ZWQ7Ci0gICAgfQotCi0gICAgX3VwZGF0ZVNob3dJbWFnZUdyaWQoKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNl
dHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7Ci0gICAgfQotCiAgICAgX2NvbnRlbnRWaWV3TW91
c2VFbnRlcihldmVudCkKICAgICB7CiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcu
ZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKQEAgLTMwMSw4ICsyNjIsNyBAQCBXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZp
ZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5l
bGVtZW50KTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAg
ICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVu
dChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRp
bmcpOworICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRy
ZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgV0kuUmVjb3Jk
aW5nLmRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlwZShyZWNvcmRpbmcudHlwZSksIHJlY29yZGlu
Zyk7CiAgICAgICAgIHJlY29yZGluZ1RyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAg
ICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQocmVjb3Jk
aW5nVHJlZUVsZW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwppbmRl
eCBjYjViOTBkNDJkMWQ2MGJjNTg1YmQzYWIxMTVkZDBjMjNlYWIyNDFlLi42MDNmNWFlYTQ3ZWIy
YjMwNjhmNGI1NjlhODljOGRmYjljOTNlNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVs
LmpzCkBAIC0yMzcsMTAgKzIzNyw4IEBAIFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENh
bnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmFyUGFuCiAKICAgICBj
YW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgewotICAgICAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVybiBzdXBlci5jYW5TaG93
UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgICAgICByZXR1cm4gcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKKyAgICAgICAgICAgIHx8IHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nOwogICAgIH0KIAogICAgIC8vIFBy
b3RlY3RlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4OWRhYjVlZjk5NzlkNjJiODExNTk4OWE5MTY0MDQxM2M3MmE4Y2Rj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNz
cworKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0uY29udGVudC12
aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAu
aWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwot
fQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNh
bnZhcy5jYW52YXMtMmQgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFz
MkQuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+
IC5pdGVtIC5jYW52YXM6bWF0Y2hlcygud2ViZ2wsIC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRh
bCkgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKLX0K
LQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNv
cmRpbmcgPiAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3Zn
KTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5zaGFkZXItcHJvZ3JhbSA+IC5pY29uIHsKLSAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4u
L0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5w
bmcpIDJ4KTsKLX0KLQotQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAg
IC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFz
LW92ZXJ2aWV3IC5pY29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKLSAgICB9Ci0K
LSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNh
bnZhcyAuaWNvbiwKLSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsK
LSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2ZTFkYmU0ODAxZTU1N2JjN2MyMGU1MmVjNzdjODA5OTlkNTZhOGQ1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMjk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5DYW52YXNU
YWJDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29u
dGVudEJyb3dzZXJUYWJDb250ZW50VmlldwotewotICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVk
T2JqZWN0KQotICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXJlcHJlc2VudGVkT2JqZWN0
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKLQotICAgICAgICBs
ZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkNhbnZh
c1RhYkNvbnRlbnRWaWV3LnRhYkluZm8oKSk7Ci0KLSAgICAgICAgY29uc3QgbmF2aWdhdGlvblNp
ZGViYXJQYW5lbENvbnN0cnVjdG9yID0gV0kuQ2FudmFzU2lkZWJhclBhbmVsOwotICAgICAgICBj
b25zdCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzID0gW1dJLlJlY29yZGluZ1N0YXRl
RGV0YWlsc1NpZGViYXJQYW5lbCwgV0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVs
LCBXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsXTsKLSAgICAgICAgY29uc3QgZGlzYWJsZUJh
Y2tGb3J3YXJkID0gdHJ1ZTsKLSAgICAgICAgc3VwZXIoImNhbnZhcyIsIFsiY2FudmFzIl0sIHRh
YkJhckl0ZW0sIG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGVi
YXJQYW5lbENvbnN0cnVjdG9ycywgZGlzYWJsZUJhY2tGb3J3YXJkKTsKLQotICAgICAgICB0aGlz
Ll9jYW52YXNDb2xsZWN0aW9uID0gbmV3IFdJLkNhbnZhc0NvbGxlY3Rpb247Ci0KLSAgICAgICAg
dGhpcy5fY2FudmFzVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmU7Ci0gICAgICAgIHRo
aXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFsbG93c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7Ci0gICAg
ICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxp
bmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9jYW52YXNUcmVlT3V0bGluZVNlbGVj
dGlvbkRpZENoYW5nZSwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVu
dCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3Ry
aW5nKCJPdmVydmlldyIpLCBudWxsLCB0aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAg
dGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdUcmVlRWxl
bWVudCk7Ci0KLSAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcg
V0kuRm9sZGVyVHJlZUVsZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSwgV0ku
UmVjb3JkaW5nQ29sbGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVF
bGVtZW50LmhpZGRlbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQpOwotCi0gICAgICAg
IHRoaXMuX3JlY29yZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0ku
S2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0
ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsK
LQotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJv
YXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9h
cmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAg
ICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0Rl
ZmF1bHQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5k
aXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKLSAg
ICB9Ci0KLSAgICBzdGF0aWMgdGFiSW5mbygpCi0gICAgewotICAgICAgICByZXR1cm4gewotICAg
ICAgICAgICAgaW1hZ2U6ICJJbWFnZXMvQ2FudmFzLnN2ZyIsCi0gICAgICAgICAgICB0aXRsZTog
V0kuVUlTdHJpbmcoIkNhbnZhcyIpLAotICAgICAgICB9OwotICAgIH0KLQotICAgIHN0YXRpYyBp
c1RhYkFsbG93ZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFz
RG9tYWluKCJDYW52YXMiKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIHRyZWVFbGVt
ZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2Vu
dGVkT2JqZWN0KTsKLSAgICB9Ci0KLSAgICBnZXQgdHlwZSgpCi0gICAgewotICAgICAgICByZXR1
cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXcuVHlwZTsKLSAgICB9Ci0KLSAgICBnZXQgc3VwcG9y
dHNTcGxpdENvbnRlbnRCcm93c2VyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLQotICAgIGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3Qo
cmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbgotICAgICAgICAgICAgfHwgcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcKLSAgICAgICAgICAgIHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbTsKLSAgICB9Ci0KLSAgICBzaG93
bigpCi0gICAgewotICAgICAgICBzdXBlci5zaG93bigpOwotCi0gICAgICAgIHRoaXMuX3JlY29y
ZFNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZy
YW1lU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMuY29udGVu
dEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3KQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVz
ZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgfQotCi0gICAgaGlkZGVu
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsK
LSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7
Ci0KLSAgICAgICAgc3VwZXIuaGlkZGVuKCk7Ci0gICAgfQotCi0gICAgY2xvc2VkKCkKLSAgICB7
Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZGlzYWJsZSgpOwotCi0gICAgICAgIHN1cGVyLmNs
b3NlZCgpOwotICAgIH0KLQotICAgIHJlc3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQotICAg
IHsKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcv
Yi8xNzc2MDY+IGlzIGNvbXBsZXRlLgotICAgIH0KLQotICAgIHNhdmVTdGF0ZVRvQ29va2llKGNv
b2tpZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KLSAgICB9Ci0KLSAgICBhc3luYyBoYW5k
bGVGaWxlRHJvcChmaWxlcykKLSAgICB7Ci0gICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMu
cmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04o
cmVzdWx0KSk7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICBhdHRhY2hlZCgpCi0g
ICAgewotICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB0
aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHRo
aXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwg
dGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotICAgICAgICBXSS5D
YW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwg
dGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotCi0gICAgICAgIGxl
dCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7Ci0KLSAgICAgICAgZm9yIChs
ZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgIGlmICgh
Y2FudmFzZXMuaW5jbHVkZXMoY2FudmFzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVD
YW52YXMoY2FudmFzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBj
YW52YXNlcykgewotICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmhhcyhj
YW52YXMpKQotICAgICAgICAgICAgICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQucmVtb3ZlQ2hp
bGRyZW4oKTsKLSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIu
c2F2ZWRSZWNvcmRpbmdzKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGlu
Zywge3N1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZX0pOwotICAgIH0KLQotICAgIGRldGFjaGVk
KCkKLSAgICB7Ci0gICAgICAgIFdJLkNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51
bGwsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIo
bnVsbCwgbnVsbCwgdGhpcyk7Ci0KLSAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKLSAgICB9Ci0K
LSAgICAvLyBQcml2YXRlCi0KLSAgICBfYWRkQ2FudmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAg
IHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVF
bGVtZW50KGNhbnZhcykpOwotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52
YXMpOwotCi0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBzdXBwcmVzc1No
b3dSZWNvcmRpbmc6IHRydWUsCi0gICAgICAgIH07Ci0KLSAgICAgICAgZm9yIChsZXQgcmVjb3Jk
aW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fYWRk
UmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7Ci0gICAgfQotCi0gICAgX3JlbW92ZUNhbnZh
cyhjYW52YXMpCi0gICAgewotICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNU
cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoY2FudmFzKTsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQodHJlZUVsZW1lbnQsICJNaXNzaW5nIHRyZWUgZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZh
cyk7Ci0KLSAgICAgICAgY29uc3Qgc3VwcHJlc3NOb3RpZmljYXRpb24gPSB0cnVlOwotICAgICAg
ICB0cmVlRWxlbWVudC5kZXNlbGVjdChzdXBwcmVzc05vdGlmaWNhdGlvbik7Ci0gICAgICAgIHRo
aXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOwotCi0gICAg
ICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlKGNhbnZhcyk7Ci0KLSAgICAgICAgbGV0
IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRW
aWV3OwotICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFz
Q29udGVudFZpZXcpCi0gICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5f
Y2FudmFzQ29sbGVjdGlvbik7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBp
bnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xs
ZWN0aW9uLmhhcyhjdXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQotICAgICAg
ICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVu
dENvbnRlbnRWaWV3KCk7Ci0KLSAgICAgICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0
aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWw7Ci0gICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJh
clBhbmVsIGluc3RhbmNlb2YgV0kuQ2FudmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRl
YmFyUGFuZWwudmlzaWJsZSkKLSAgICAgICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBk
YXRlUmVwcmVzZW50ZWRPYmplY3RzKCk7Ci0KLSAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGVi
YXJQYW5lbHMoKTsKLSAgICB9Ci0KLSAgICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9u
cyA9IHt9KQotICAgIHsKLSAgICAgICAgaWYgKCFyZWNvcmRpbmcuc291cmNlKSB7Ci0gICAgICAg
ICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJl
ZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29y
ZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7Ci0gICAgICAgICAgICB0aGlz
Ll9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTsKLSAgICAgICAgICAg
IHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1Ry
ZWVFbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1No
b3dSZWNvcmRpbmcpCi0gICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNv
cmRpbmcpOwotICAgIH0KLQotICAgIF9oYW5kbGVDYW52YXNBZGRlZChldmVudCkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX2FkZENhbnZhcyhldmVudC5kYXRhLmNhbnZhcyk7Ci0gICAgfQotCi0gICAg
X2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9yZW1vdmVD
YW52YXMoZXZlbnQuZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAgIF9jYW52YXNUcmVlT3V0bGlu
ZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZEVs
ZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAg
ICAgICBpZiAoIXNlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmpl
Y3Q7Ci0gICAgICAgIGlmICghdGhpcy5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50
ZWRPYmplY3QpKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0
ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRPYmplY3QpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3Qo
cmVwcmVzZW50ZWRPYmplY3QpOwotICAgIH0KLQotICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9y
U3RvcHBlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRC
eVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBvcHRpb25zID0ge307Ci0KLSAgICAg
ICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5ncy4KLSAgICAgICAgaWYgKHJlY29y
ZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQotICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1No
b3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3Vy
cmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpOwotCi0gICAgICAgIHRoaXMuX2Fk
ZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOwotICAgIH0KLQotICAgIF9oYW5kbGVTcGFj
ZShldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZp
ZWxkKGV2ZW50KSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoIXRoaXMubmF2
aWdhdGlvblNpZGViYXJQYW5lbCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQg
Y2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNhbnZhczsKLSAgICAgICAgaWYg
KCFjYW52YXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGNhbnZhcy5yZWNv
cmRpbmdBY3RpdmUpCi0gICAgICAgICAgICBjYW52YXMuc3RvcFJlY29yZGluZygpOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIGxldCBzaW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7
Ci0gICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICB9Ci19OwotCi1XSS5D
YW52YXNUYWJDb250ZW50Vmlldy5UeXBlID0gImNhbnZhcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcu
Y3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmNzcwppbmRleCBmZTMzZTdhY2Q5ZjE2MWIyY2MwY2U3MWNkNTI0YTQ5MWFk
ZDMzYzJiLi41Y2U4ZGIwZjMwOGRkOTg5ODRiMzFiYjk0Y2M1Zjc5YzM5NWMyZDYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9u
Q29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTMzLDE0ICszMywxNyBAQAogICAg
IGZsZXgtZ3JvdzogMTsKIH0KIAotLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5p
bWFnZSBpbWcgewotICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7
Ci19Ci0KLS5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVy
IHsKLSAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCi19Ci0KIC5j
b250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5jb250ZW50LXZpZXdbaGlkZGVuXSB7CiAgICAgZGlz
cGxheTogbm9uZTsKIH0KKworLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVy
Om5vdCgubWVzc2FnZS10ZXh0LXZpZXcpIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgt
ZGlyZWN0aW9uOiBjb2x1bW47CisgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxp
Z24taXRlbXM6IGNlbnRlcjsKKyAgICB3aWR0aDogMTAwJTsKKyAgICB0ZXh0LWFsaWduOiBjZW50
ZXI7CisgICAgZm9udC1zaXplOiAxM3B4OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdy
YXktbWVkaXVtKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRleCAw
NTQ3NDE2ODFjODE4YmU1YmNhYTVkNmZmMTlkNTM3MjliN2IzODY2Li41MDVhNGE3YmRlNDU1MjNi
MzBkYTRmNmJjYTc3YjRkOGNjZDEwNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmpzCkBAIC0yOCw3ICsyOCw3IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgY29uc3Ry
dWN0b3IoY29sbGVjdGlvbiwgY29udGVudFZpZXdDb25zdHJ1Y3RvciwgY29udGVudFBsYWNlaG9s
ZGVyKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29sbGVjdGlvbiBpbnN0YW5jZW9m
IFdJLkNvbGxlY3Rpb24pOwotICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlld0NvbnN0
cnVjdG9yIGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcpOworICAgICAgICBjb25zb2xlLmFzc2Vy
dCghY29udGVudFZpZXdDb25zdHJ1Y3RvciB8fCBjb250ZW50Vmlld0NvbnN0cnVjdG9yLnByb3Rv
dHlwZSBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKIAogICAgICAgICBzdXBlcihjb2xsZWN0
aW9uKTsKIApAQCAtMzgsNyArMzgsNiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFz
cyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0
aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50ID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29u
dGVudFZpZXdDb25zdHJ1Y3RvciA9IGNvbnRlbnRWaWV3Q29uc3RydWN0b3I7CiAgICAgICAgIHRo
aXMuX2NvbnRlbnRWaWV3TWFwID0gbmV3IE1hcDsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tN
YXAgPSBuZXcgV2Vha01hcDsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gbnVsbDsKICAg
ICAgICAgdGhpcy5fc2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOwogICAgIH0KQEAgLTgzLDE5ICs4
MiwyNSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRl
bShudWxsKTsKICAgICB9CiAKLSAgICBzZXRTZWxlY3RlZEl0ZW0oaXRlbSkKKyAgICBnZXQgc2Vs
ZWN0ZWRJdGVtKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07Cisg
ICAgfQorCisgICAgc2V0IHNlbGVjdGVkSXRlbShpdGVtKQogICAgIHsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCwgIkF0dGVtcHRlZCB0byBzZXQgc2VsZWN0
ZWQgaXRlbSB3aGVuIHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4iKTsKICAgICAgICAgaWYgKCF0aGlz
Ll9zZWxlY3Rpb25FbmFibGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBj
b250ZW50VmlldyA9IHRoaXMuX2NvbnRlbnRWaWV3TWFwLmdldChpdGVtKTsKLSAgICAgICAgY29u
c29sZS5hc3NlcnQoY29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRldCB2aWV3IGZvciBpdGVtLiIs
IGl0ZW0pOwotICAgICAgICBpZiAoIWNvbnRlbnRWaWV3KQotICAgICAgICAgICAgcmV0dXJuOwot
CiAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVs
ZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworCisgICAgICAgIGlmIChpdGVtKSB7Cisg
ICAgICAgICAgICBsZXQgY29udGVudFZpZXcgPSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRl
bSk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldywgIk1pc3NpbmcgY29u
dGVudCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOworICAgICAgICAgICAgaWYgKGNvbnRlbnRWaWV3
KQorICAgICAgICAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0xMjAsMjAg
KzEyNSw5IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250
ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgbGV0IGNvbnRlbnRWaWV3
ID0gbmV3IHRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IoaXRlbSwgdGhpcy5jb250ZW50Vmll
d0NvbnN0cnVjdG9yT3B0aW9ucyk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3
IGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcpOwotCi0gICAgICAgIGxldCBoYW5kbGVDbGljayA9
IChldmVudCkgPT4gewotICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVu
dC5jdHJsS2V5KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKHRo
aXMuX3NlbGVjdGlvbkVuYWJsZWQpCi0gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShp
dGVtKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50
ZWRPYmplY3QoaXRlbSk7Ci0gICAgICAgIH07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRl
bnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0ID09PSBpdGVtKTsKIAogICAgICAgICB0aGlzLl9jb250
ZW50Vmlld01hcC5zZXQoaXRlbSwgY29udGVudFZpZXcpOwotICAgICAgICB0aGlzLl9oYW5kbGVD
bGlja01hcC5zZXQoaXRlbSwgaGFuZGxlQ2xpY2spOwotICAgICAgICBjb250ZW50Vmlldy5lbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgaGFuZGxlQ2xpY2spOwogCiAgICAgICAgIHRo
aXMuYWRkU3Vidmlldyhjb250ZW50Vmlldyk7CiAgICAgICAgIHRoaXMuY29udGVudFZpZXdBZGRl
ZChjb250ZW50Vmlldyk7CkBAIC0xNjksMTQgKzE2Myw2IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50
VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3
CiAKICAgICAgICAgY29udGVudFZpZXcucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0
aGlzKTsKIAotICAgICAgICBsZXQgaGFuZGxlQ2xpY2sgPSB0aGlzLl9oYW5kbGVDbGlja01hcC5n
ZXQoaXRlbSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhhbmRsZUNsaWNrKTsKLQotICAgICAg
ICBpZiAoaGFuZGxlQ2xpY2spIHsKLSAgICAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBoYW5kbGVDbGljayk7Ci0gICAgICAgICAgICB0aGlz
Ll9oYW5kbGVDbGlja01hcC5kZWxldGUoaXRlbSk7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAo
IXRoaXMuc3Vidmlld3MubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNl
aG9sZGVyKCk7CiAgICAgfQpAQCAtMjAwLDYgKzE4Niw4IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50
VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3
CiAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCA9IHRoaXMu
X2NvbnRlbnRQbGFjZWhvbGRlcjsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2NvbnRlbnRQ
bGFjZWhvbGRlckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgicGxhY2Vob2xkZXIiKTsKKwogICAgICAg
ICBpZiAoIXRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAg
ICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJF
bGVtZW50KTsKICAgICB9CkBAIC0yMTIsMTAgKzIwMCwxMSBAQCBXSS5Db2xsZWN0aW9uQ29udGVu
dFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmll
dwogCiAgICAgaW5pdGlhbExheW91dCgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMucmVwcmVz
ZW50ZWRPYmplY3Quc2l6ZSB8fCAhdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikgeworICAg
ICAgICBpZiAodGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikKKyAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQo
dGhpcykpOworCisgICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0
aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKQogICAgICAgICAgICAgdGhpcy5zaG93Q29udGVu
dFBsYWNlaG9sZGVyKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAK
ICAgICBhdHRhY2hlZCgpCkBAIC0yOTIsNiArMjgxLDMwIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50
VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3
CiAgICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRWaWV3LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
c2VsZWN0ZWQiKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2Vk
KTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcu
RXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKICAgICB9CisK
KyAgICBfaGFuZGxlQ2xpY2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQuYnV0dG9u
ICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
Zm9yIChsZXQgW2l0ZW0sIGNvbnRlbnRWaWV3XSBvZiB0aGlzLl9jb250ZW50Vmlld01hcCkgewor
ICAgICAgICAgICAgaWYgKGNvbnRlbnRWaWV3LmVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0
KSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQorICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgdGhpcy5fc2VsZWN0
SXRlbShudWxsKTsKKyAgICB9Cit9OworCitXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQg
PSB7CisgICAgU2VsZWN0ZWRJdGVtQ2hhbmdlZDogImNvbGxlY3Rpb24tY29udGVudC12aWV3LXNl
bGVjdGVkLWl0ZW0tY2hhbmdlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcwppbmRleCBkZjkxMmRkNTZm
YTA3ZGY5NDhmMGQ3ZjdhZjBkN2M2ZDFiNzlhMmY2Li4yOTZjMmE1NDIzYTBmNjkxZWFjN2QyZDBl
OTM2MDBmNTE1NGYwZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcwpAQCAtNjAsOSArNjAsNiBAQCBXSS5D
b250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBp
ZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICBy
ZXR1cm4gbmV3IFdJLkNhbnZhc0NvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFy
Z3VtZW50cyk7CiAKLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
Q2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzT3ZlcnZp
ZXdDb250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwotCiAgICAg
ICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAg
ICAgICAgICAgICByZXR1cm4gbmV3IFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyhyZXByZXNl
bnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCkBAIC0xODIsNiArMTc5LDkgQEAgV0kuQ29u
dGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYg
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXAgfHwgcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAg
ICAgIHJldHVybiBuZXcgV0kuQXVkaXRUZXN0R3JvdXBDb250ZW50VmlldyhyZXByZXNlbnRlZE9i
amVjdCwgZXh0cmFBcmd1bWVudHMpOwogCisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKKwogICAg
ICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAg
ICAgICAgICAgcmV0dXJuIG5ldyBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcocmVwcmVzZW50ZWRP
YmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIApAQCAtMjczLDggKzI3Myw2IEBAIFdJLkNvbnRlbnRW
aWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2Fu
dmFzKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVy
UHJvZ3JhbSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5UaW1lbGluZVJlY29yZGluZykKQEAgLTMxOCwxMCArMzE2
LDE0IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3
CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENh
c2UgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cAogICAg
ICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNl
UmVzdWx0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBS
ZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24p
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHR5cGVvZiByZXByZXNlbnRl
ZE9iamVjdCA9PT0gInN0cmluZyIgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBTdHJp
bmcpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2Jq
ZWN0W1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVTeW1ib2xdKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTUxMiw0ICs1MTQsNSBA
QCBXSS5Db250ZW50Vmlldy5FdmVudCA9IHsKICAgICBOYXZpZ2F0aW9uSXRlbXNEaWRDaGFuZ2U6
ICJjb250ZW50LXZpZXctbmF2aWdhdGlvbi1pdGVtcy1kaWQtY2hhbmdlIgogfTsKIAorV0kuQ29u
dGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbCA9IFN5bWJvbCgiaXMtdmlld2FibGUiKTsKIFdJLkNv
bnRlbnRWaWV3LkNvbnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3RTeW1ib2wgPSBTeW1ib2wo
ImNvbnRlbnQtdmlldy1mb3ItcmVwcmVzZW50ZWQtb2JqZWN0Iik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFp
bHNTZWN0aW9uU2ltcGxlUm93LmpzCmluZGV4IGU1YTVmZWMxZWFiYjVjMDk3MmNmYTA1M2Q1MzRj
MzYwMDllMWI3NmYuLjdlZDBjODJlYjNiNzFlZWI2YmJiMWY5N2U5NzkwZjZiYmJjNTU2MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFp
bHNTZWN0aW9uU2ltcGxlUm93LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzCkBAIC05Niw3ICs5Niw3IEBA
IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93ID0gY2xhc3MgRGV0YWlsc1NlY3Rpb25TaW1wbGVS
b3cgZXh0ZW5kcyBXSS5EZXRhaWxzU2VjCiAgICAgewogICAgICAgICB0aGlzLl92YWx1ZSA9IHZh
bHVlIHx8ICIiOwogCi0gICAgICAgIGlmICh0aGlzLl92YWx1ZSkgeworICAgICAgICBpZiAodGhp
cy5fdmFsdWUgfHwgdGhpcy5fdmFsdWUgPT09IDApIHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5jbGFzc0xpc3QucmVtb3ZlKFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93LkVtcHR5U3R5bGVD
bGFzc05hbWUpOwogCiAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaGFzIHNwYWNlIGNoYXJh
Y3RlcnMgdGhhdCBjYXVzZSB3b3JkIHdyYXBwaW5nIHRoZW4gd2UgZG9uJ3QgbmVlZCB0aGUgZGF0
YSBjbGFzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3Nz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNkNjYzZTZmMGYxNzJmY2UwOTI2N2Y4ZWMxNmFlYThkZDdlYmE1NDEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsODUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3IHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWNvbnRlbnQpOworICAgIG92ZXJmbG93LXk6
IHNjcm9sbDsKKyAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0
KTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7Cit9CisKKy5jb250ZW50
LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKK30KKworLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1jaGlsZCkgeworICAgIG1hcmdp
bi10b3A6IDIwcHg7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uID4gLmhlYWRlciB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBhbGlnbi1pdGVtczogY2Vu
dGVyOworICAgIHBvc2l0aW9uOiBzdGlja3k7CisgICAgdG9wOiAwOworICAgIHotaW5kZXg6IDE7
CisgICAgbWluLWhlaWdodDogdmFyKC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0KTsKKyAgICAtd2Vi
a2l0LXBhZGRpbmctc3RhcnQ6IDhweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUs
IDk3JSk7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7
Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmly
c3Qtb2YtdHlwZSkgPiAuaGVhZGVyIHsKKyAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0t
Ym9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNl
Y3Rpb24gPiAuaGVhZGVyID4gaDEgeworICAgIG1hcmdpbjogMDsKK30KKworLmNvbnRlbnQtdmll
dy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyID4gLm5hdmlnYXRpb24tYmFy
IHsKKyAgICBmbGV4LWdyb3c6IDE7CisgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKKyAg
ICBib3JkZXItYm90dG9tOiBub25lOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgeworICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICB0b3A6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgYm90dG9tOiAwOworICAgIGxl
ZnQ6IDA7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAu
Y29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogaHNsKDAsIDAlLCAxNCUpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGhzbCgwLCAwJSwgMjElKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGMwYWUwMTE3NWQ5N2FkZWIyNGRjMzBj
MGIzNTA3N2NhYmEyOGU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzCkBAIC0w
LDAgKzEsMjA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3
ID0gY2xhc3MgR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigpOworCisgICAg
ICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJncmFwaGljcy1vdmVydmlldyIpOworCisg
ICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAi
SW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlTdHJpbmcoIkltcG9ydCIpOworICAgICAgICB0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNs
aWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJS
ZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlz
Ll9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xp
Y2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5V
SVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFu
c3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMs
IDEzKTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0
ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgICAgIHRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZp
Z2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNr
ZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBu
ZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyhXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24pOworCisgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmlld3MgPSBbXTsKKyAgICB9CisK
KyAgICAvLyBQdWJsaWMKKworICAgIGdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJ2aWV3Vmlld3MuZmxhdE1hcCgoc3Vi
dmlldykgPT4gc3Vidmlldy5zdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMpOworICAgIH0K
KworICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQorICAgIHsKKyAgICAgICAgbGV0IG5hdmlnYXRp
b25JdGVtcyA9IFtdOworICAgICAgICBpZiAoIVdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVk
KSB7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaEFsbCh0aGlzLl9jYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVtcyk7CisgICAgICAgICAgICBuYXZpZ2F0aW9u
SXRlbXMucHVzaChuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgfQorICAg
ICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmln
YXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAg
cmV0dXJuIG5hdmlnYXRpb25JdGVtczsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAg
IGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAg
V0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZl
bnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKCk7Cisg
ICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRl
RE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRs
ZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0
YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1
cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBpZiAoV0kuYW5pbWF0aW9uTWFuYWdlci5z
dXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGxldCBjcmVhdGVTZWN0aW9uID0gKGlkZW50aWZpZXIs
IHRpdGxlLCBvdmVydmlld1ZpZXcpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChvdmVydmlld1ZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7CisKKyAgICAgICAgICAg
ICAgICBsZXQgc2VjdGlvbkVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBzZWN0aW9uRWxl
bWVudC5jbGFzc05hbWUgPSBpZGVudGlmaWVyOworCisgICAgICAgICAgICAgICAgbGV0IGhlYWRl
ckVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAgaGVhZGVyRWxlbWVudC5jbGFzc05hbWUgPSAi
aGVhZGVyIjsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSBoZWFkZXJFbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIikpOworICAgICAgICAg
ICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOworCisgICAgICAgICAgICAg
ICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IG92ZXJ2aWV3Vmlldy5uYXZpZ2F0aW9uSXRlbXM7Cisg
ICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25JdGVtcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdhdGlvbkJhcihkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJuYXYiKSwgbmF2aWdhdGlvbkl0ZW1zKTsKKyAgICAgICAgICAgICAg
ICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQpOwor
ICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcobmF2aWdhdGlvbkJhcik7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IGNvbnRlbnRFbGVtZW50ID0gc2Vj
dGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwor
ICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LmNsYXNzTmFtZSA9ICJjb250ZW50IjsKKwor
ICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKG92ZXJ2aWV3Vmlldy5l
bGVtZW50KTsKKyAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcob3ZlcnZpZXdWaWV3KTsK
KworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxl
Y3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzLl9oYW5kbGVP
dmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgICAgICBv
dmVydmlld1ZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVt
ZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmll
d1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSwgdGhpcyk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fb3ZlcnZpZXdWaWV3cy5wdXNoKG92ZXJ2aWV3Vmlldyk7CisgICAgICAg
ICAgICB9OworCisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjYW52YXMiLCBXSS5VSVN0cmlu
ZygiQ2FudmFzZXMiKSwgdGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk7CisKKyAgICAg
ICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uID0gV0kuYW5pbWF0aW9uTWFuYWdlci5hbmlt
YXRpb25Db2xsZWN0aW9uOworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigid2ViLWFuaW1hdGlv
biIsIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpLCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVj
dGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0aW9uQ29sbGVjdGlvbkZv
clR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uKSkpOworICAgICAgICAgICAgY3Jl
YXRlU2VjdGlvbigiY3NzLWFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9ucyIp
LCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rp
b24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0
aW9uKSkpOworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigiY3NzLXRyYW5zaXRpb24iLCBXSS5V
SVN0cmluZygiQ1NTIFRyYW5zaXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29u
dGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShX
SS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uKSkpOworCisgICAgICAgICAgICB0aGlzLmVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRo
aXMpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5f
Y2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk7CisKKyAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9
IG5ldyBXSS5Ecm9wWm9uZVZpZXcodGhpcyk7CisgICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0g
V0kuVUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRh
cmdldEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyhkcm9w
Wm9uZVZpZXcpOworICAgIH0KKworICAgIC8vIERyb3Bab25lVmlldyBkZWxlZ2F0ZQorCisgICAg
ZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMi
KTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpvbmUsIGV2ZW50KQorICAg
IHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzOworICAgICAg
ICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
V0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFu
YWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAg
ICBfaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQg
b3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpCisgICAgICAgICAgICBvdmVydmll
d1ZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICB9CisKKyAgICBfaGFuZGxl
U2hvd0dyaWRCdXR0b25DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuc2V0dGluZ3Mu
c2hvd0ltYWdlR3JpZC52YWx1ZSA9ICF0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmFjdGl2YXRlZDsKKyAgICB9CisKKyAgICBfaGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFu
Z2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
YWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOworICAgIH0KKwor
ICAgIF9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisgICAg
eworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmltcG9ydEpTT04oKHJlc3VsdCkgPT4gV0kuY2Fu
dmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpLCB7bXVsdGlwbGU6IHRydWV9KTsKKyAgICB9
CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZChldmVudCkKKyAg
ICB7CisgICAgICAgIGlmICghZXZlbnQudGFyZ2V0LnNlbGVjdGVkSXRlbSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZp
ZXdWaWV3cykgeworICAgICAgICAgICAgaWYgKG92ZXJ2aWV3VmlldyAhPT0gZXZlbnQudGFyZ2V0
ICYmIG92ZXJ2aWV3Vmlldy5zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgIG92ZXJ2
aWV3Vmlldy5zZWxlY3RlZEl0ZW0gPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgX2hh
bmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZShl
dm5ldCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNv
bnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk7
CisgICAgfQorCisgICAgX2hhbmRsZUNsaWNrKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKGV2
ZW50LnRhcmdldCAhPT0gdGhpcy5lbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAg
ICAgICAgICBpZiAob3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAg
ICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
R3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDA3
NWMwMzc1MDdhMmVjNzdhMzUxZmRkMzg4YTU4ZjRhMmE4ODFhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250
ZW50Vmlldy5jc3MKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcu
dGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmlj
b24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKK30K
KworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNh
bnZhcy5jYW52YXMtMmQgLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFz
MkQuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gLmNhbnZhczptYXRjaGVzKC53ZWJnbCwgLndlYmdsMiwgLndlYmdwdSwgLndlYm1l
dGFsKSAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMzRC5zdmcpOwor
fQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
cmVjb3JkaW5nID4gLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5n
LnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+
IC5pdGVtIC5zaGFkZXItcHJvZ3JhbSA+IC5pY29uIHsKKyAgICBjb250ZW50OiBpbWFnZS1zZXQo
dXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRH
TEAyeC5wbmcpIDJ4KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykg
eworICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5ncmFwaGljcy1vdmVydmlldyAuaWNvbiB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KDYwJSk7
CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24geworICAgICAgICBmaWx0
ZXI6IGludmVydCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJlNmQ4NTcyMjY3OTgzMGU0YTY1NzcxOTdkOWE5Mjg1MzgyNzAzZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMzE1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworV0kuR3JhcGhpY3NUYWJDb250ZW50VmlldyA9IGNsYXNzIEdyYXBoaWNzVGFiQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3Cit7CisgICAgY29u
c3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgbGV0IHRhYkJhckl0ZW0gPSBXSS5HZW5lcmFsVGFi
QmFySXRlbS5mcm9tVGFiSW5mbyhXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnRhYkluZm8oKSk7
CisKKyAgICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yID0gV0ku
Q2FudmFzU2lkZWJhclBhbmVsOworICAgICAgICBjb25zdCBkZXRhaWxzU2lkZWJhclBhbmVsQ29u
c3RydWN0b3JzID0gWworICAgICAgICAgICAgV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJh
clBhbmVsLAorICAgICAgICAgICAgV0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVs
LAorICAgICAgICAgICAgV0kuQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAg
IFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgIF07CisgICAgICAgIGNv
bnN0IGRpc2FibGVCYWNrRm9yd2FyZCA9IHRydWU7CisgICAgICAgIHN1cGVyKCJncmFwaGljcyIs
IFsiZ3JhcGhpY3MiXSwgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVj
dG9yLCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCBkaXNhYmxlQmFja0ZvcndhcmQp
OworCisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxp
bmU7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuYWxsb3dzUmVwZWF0U2VsZWN0
aW9uID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hZGRFdmVudExp
c3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5faGFu
ZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CisKKyAgICAg
ICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQo
ImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIpLCBudWxsLCB7W1dJLkNv
bnRlbnRWaWV3LmlzVmlld2FibGVTeW1ib2xdOiB0cnVlfSk7CisgICAgICAgIHRoaXMuX2NhbnZh
c2VzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudCk7CisK
KyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0ku
Rm9sZGVyVHJlZUVsZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSk7CisgICAg
ICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7
CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2
ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3JlY29yZFNo
b3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1
dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOworICAgICAgICB0aGlz
Ll9yZWNvcmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CisgICAg
ICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlz
Ll9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0ku
S2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXku
U3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yZWNv
cmRTaW5nbGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsK
KyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7
CisKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKKyAgICAgICAgV0kuYW5pbWF0
aW9uTWFuYWdlci5lbmFibGUoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdGFiSW5mbygpCisgICAg
eworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgaW1hZ2U6ICJJbWFnZXMvR3JhcGhpY3Mu
c3ZnIiwKKyAgICAgICAgICAgIHRpdGxlOiBXSS5VSVN0cmluZygiR3JhcGhpY3MiKSwKKyAgICAg
ICAgfTsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNUYWJBbGxvd2VkKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQ2FudmFzIikKKyAgICAgICAgICAg
IHx8IEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJBbmltYXRpb24iKTsKKyAgICB9CisKKyAg
ICAvLyBQdWJsaWMKKworICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVz
ZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY2FudmFzZXNUcmVlT3V0
bGluZS5maW5kVHJlZUVsZW1lbnQocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0KKworICAgIGdl
dCB0eXBlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3
LlR5cGU7CisgICAgfQorCisgICAgZ2V0IHN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3NlcigpCisg
ICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBnZXQgbWFuYWdlc05hdmln
YXRpb25TaWRlYmFyUGFuZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpCisg
ICAgeworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0
aW9uKSB7CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0
aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHN1cGVyLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVj
dCwgY29va2llKTsKKyAgICB9CisKKyAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVz
ZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZworICAgICAgICAgICAgfHwgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtQ29sbGVjdGlvbgorICAg
ICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFt
CisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlv
bkNvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQW5pbWF0aW9uOworICAgIH0KKworICAgIGNsb3NlZCgpCisgICAgeworICAgICAgICBXSS5h
bmltYXRpb25NYW5hZ2VyLmRpc2FibGUoKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5kaXNh
YmxlKCk7CisKKyAgICAgICAgc3VwZXIuY2xvc2VkKCk7CisgICAgfQorCisgICAgcmVzdG9yZVN0
YXRlRnJvbUNvb2tpZShjb29raWUpCisgICAgeworICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50
IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQor
CisgICAgc2F2ZVN0YXRlVG9Db29raWUoY29va2llKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRl
LgorICAgIH0KKworICAgIGFzeW5jIGhhbmRsZUZpbGVEcm9wKGZpbGVzKQorICAgIHsKKyAgICAg
ICAgYXdhaXQgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0ku
Y2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBQcm90
ZWN0ZWQKKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7
CisKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0Fk
ZGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgdGhpcy5faGFu
ZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9o
YW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLkNhbnZhcy5h
ZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9o
YW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisKKyAgICAgICAgZm9yIChsZXQg
Y2hpbGQgb2YgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5jaGlsZHJlbikgeworICAgICAgICAg
ICAgbGV0IGNhbnZhcyA9IGNoaWxkLnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICAgICAgaWYg
KGNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcyAmJiAhV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uLmhhcyhjYW52YXMpKQorICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZh
cyhjYW52YXMpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikgeworICAgICAgICAgICAgaWYgKCF0aGlzLl9j
YW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMpKQorICAgICAgICAgICAg
ICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChs
ZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKSB7CisgICAg
ICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJl
Y29yZGluZykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywg
e3N1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZX0pOworICAgICAgICB9CisKKyAgICAgICAgdGhp
cy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3Jk
U2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOworICAgIH0KKworICAgIGRldGFj
aGVkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1
ZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRy
dWU7CisKKyAgICAgICAgV0kuQ2FudmFzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2
ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVk
LCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGlu
Z1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRk
ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7CisKKyAg
ICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcgPSBuZXcgV0kuR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3OworICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250
ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICB9CisKKyAgICAvLyBQcml2
YXRlCisKKyAgICBfYWRkQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAgICAgIHRoaXMuX2NhbnZh
c2VzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZh
cykpOworCisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBzdXBwcmVzc1No
b3dSZWNvcmRpbmc6IHRydWUsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3Jk
aW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKQorICAgICAgICAgICAgdGhpcy5fYWRk
UmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7CisgICAgfQorCisgICAgX3JlbW92ZUNhbnZh
cyhjYW52YXMpCisgICAgeworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNl
c1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMpOworICAgICAgICBjb25zb2xlLmFz
c2VydCh0cmVlRWxlbWVudCwgIk1pc3NpbmcgdHJlZSBlbGVtZW50IGZvciBjYW52YXMuIiwgY2Fu
dmFzKTsKKworICAgICAgICBjb25zdCBzdXBwcmVzc05vdGlmaWNhdGlvbiA9IHRydWU7CisgICAg
ICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KHN1cHByZXNzTm90aWZpY2F0aW9uKTsKKyAgICAgICAg
dGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7CisKKyAg
ICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVu
dENvbnRlbnRWaWV3OworICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2Yg
V0kuQ2FudmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmpl
Y3QoV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAgICAgICAgZWxzZSBpZiAo
Y3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcgJiYg
Y2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24uaGFzKGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNl
bnRlZE9iamVjdCkpCisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnVwZGF0ZUhpZXJh
cmNoaWNhbFBhdGhGb3JDdXJyZW50Q29udGVudFZpZXcoKTsKKworICAgICAgICBsZXQgbmF2aWdh
dGlvblNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbDsKKyAgICAgICAg
aWYgKG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5DYW52YXNTaWRlYmFyUGFu
ZWwgJiYgbmF2aWdhdGlvblNpZGViYXJQYW5lbC52aXNpYmxlKQorICAgICAgICAgICAgbmF2aWdh
dGlvblNpZGViYXJQYW5lbC51cGRhdGVSZXByZXNlbnRlZE9iamVjdHMoKTsKKworICAgICAgICB0
aGlzLnNob3dEZXRhaWxzU2lkZWJhclBhbmVscygpOworICAgIH0KKworICAgIF9hZGRSZWNvcmRp
bmcocmVjb3JkaW5nLCBvcHRpb25zID0ge30pCisgICAgeworICAgICAgICBpZiAoIXJlY29yZGlu
Zy5zb3VyY2UpIHsKKyAgICAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAg
ICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQo
WyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5n
KTsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50Lmhp
ZGRlbiA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJl
ZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKCFvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZykKKyAgICAgICAgICAg
IHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlY29yZGluZyk7CisgICAgfQorCisgICAgX2hh
bmRsZUNhbnZhc0FkZGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGV2
ZW50LmRhdGEuaXRlbSk7CisgICAgfQorCisgICAgX2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZlbnQp
CisgICAgeworICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAg
ICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShl
dmVudCkKKyAgICB7CisgICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNl
c1RyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CisgICAgICAgIGlmICghc2VsZWN0ZWRF
bGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHN3aXRjaCAoc2VsZWN0ZWRF
bGVtZW50KSB7CisgICAgICAgIGNhc2UgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudDoKKyAgICAg
ICAgY2FzZSB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudDoKKyAgICAgICAg
ICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29u
dGVudFZpZXcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0
IHJlcHJlc2VudGVkT2JqZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0Owor
ICAgICAgICBpZiAoIXRoaXMuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2Jq
ZWN0KSkgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJl
cHJlc2VudGVkT2JqZWN0LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJl
c2VudGVkT2JqZWN0KTsKKyAgICB9CisKKyAgICBfaGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3Bw
ZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2Vy
LCBpbXBvcnRlZH0gPSBldmVudC5kYXRhOworICAgICAgICBpZiAoIXJlY29yZGluZykKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OworCisgICAgICAgIC8v
IEFsd2F5cyBzaG93IGltcG9ydGVkIHJlY29yZGluZ3MuCisgICAgICAgIGlmIChyZWNvcmRpbmcu
c291cmNlIHx8ICFpbXBvcnRlZCkKKyAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVj
b3JkaW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRS
ZXByZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsKKworICAgICAgICB0aGlzLl9hZGRSZWNv
cmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICBfaGFuZGxlU3BhY2UoZXZl
bnQpCisgICAgeworICAgICAgICBpZiAoV0kuaXNFdmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChl
dmVudCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRp
b25TaWRlYmFyUGFuZWwpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGNhbnZh
cyA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbC5jYW52YXM7CisgICAgICAgIGlmICghY2Fu
dmFzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5n
QWN0aXZlKQorICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2ZW50LnNoaWZ0S2V5OworICAg
ICAgICAgICAgY2FudmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKKyAgICAgICAgfQor
CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgfQorfTsKKworV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5UeXBlID0gImdyYXBoaWNzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKaW5kZXggY2UzMWFmNDYzMzc4
NjEzNGIxY2M3Mjc2YTM0ZDZhNDQ3MThhMmFlMi4uMTBjZDY0YTQ1NTkwOTk1Y2RhNDkwMjkyMWUx
YmY5ODE1MDNhZjkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTWFpbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTWFpbi5jc3MKQEAgLTIwOSwxMiArMjA5LDEyIEBAIGJvZHkuZG9ja2VkOm1h
dGNoZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVz
aXplciB7CiAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3
IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAgewogICAgIGRp
c3BsYXk6IGJsb2NrOwogICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogfQogCi0ubWVzc2FnZS10ZXh0
LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciB7CisubmF2aWdhdGlv
bi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGRpc3BsYXk6IGlubGluZS1mbGV4
OwogICAgIGhlaWdodDogMjBweDsKICAgICBwYWRkaW5nOiAwIDRweDsKQEAgLTIyMiw5ICsyMjIs
OSBAQCBib2R5LmRvY2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZpZ2F0aW9uLXNpZGVi
YXIuY29sbGFwc2VkID4gLnJlc2l6ZXIgewogICAgIHZlcnRpY2FsLWFsaWduOiAtM3B4OwogfQog
Ci0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciA+IC5p
dGVtIHsKICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgcGFkZGluZzogMCA0cHg7CisgICAgcGFkZGlu
ZzogMCA0cHggIWltcG9ydGFudDsKICAgICBmb250LXNpemU6IDExcHg7CiAgICAgYm9yZGVyLXJh
ZGl1czogNHB4OwogICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJvcmRlci1jb2xvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNv
cmRpbmdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKaW5kZXggOGQ2MGYyM2YwYjJiZWM3MGQ4
YmU4M2QwMjE3YTcwYWM3NGZkMjM1OC4uMTFmMWRkODJlNTUzNzcwMTkwYjJmZjdlYjhiNjA4ZWVj
N2UyOWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwpAQCAtMjMsMTgg
KzIzLDE4IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNv
bnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5n
IHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAg
cGFkZGluZzogMTBweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7CiB9
CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciB7CisuY29udGVu
dC12aWV3LnJlY29yZGluZyA+IGhlYWRlciB7CiAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKIH0K
IAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1j
b250YWluZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNv
bnRhaW5lciB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAg
cGFkZGluZzogNHB4IDA7CkBAIC00MywzMSArNDMsMzEgQEAKICAgICBib3JkZXItcmFkaXVzOiA0
cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5z
bGlkZXItY29udGFpbmVyID4gKiB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+
IC5zbGlkZXItY29udGFpbmVyID4gKiB7CiAgICAgbWFyZ2luOiA0cHggOHB4OwogfQogCi0uY29u
dGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5l
ciA+IC5zbGlkZXItdmFsdWUgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAu
c2xpZGVyLWNvbnRhaW5lciA+IC5zbGlkZXItdmFsdWUgewogICAgIGZvbnQtZmFtaWx5OiBNZW5s
bywgbW9ub3NwYWNlOwogICAgIGZvbnQtZmFtaWx5OiAxMXB4OwogfQogCi0uY29udGVudC12aWV3
Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0
W3R5cGU9cmFuZ2VdIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRl
ci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CiAgICAgZmxleDogMTsKICAgICB3aWR0
aDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVy
ID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXIt
cnVubmFibGUtdHJhY2sgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xp
ZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJs
ZS10cmFjayB7CiAgICAgaGVpZ2h0OiAycHg7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0t
Ym9yZGVyLWNvbG9yKTsKICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiB9CiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5w
dXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKKy5jb250ZW50LXZpZXcucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgIG1hcmdpbi10b3A6IC02cHg7CiB9CiAKLS5jb250
ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IC5wcmV2aWV3LWNvbnRhaW5lciB7CisuY29u
dGVudC12aWV3LnJlY29yZGluZyA+IC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgZGlzcGxheTog
ZmxleDsKICAgICBmbGV4OiAxOwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwpAQCAtNzcs
MjcgKzc3LDI3IEBACiAgICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlOwogfQogCi0u
Y29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsK
Ky5jb250ZW50LXZpZXcucmVjb3JkaW5nIDptYXRjaGVzKGltZywgY2FudmFzKSB7CiAgICAgcG9z
aXRpb246IGFic29sdXRlOwogICAgIG1heC13aWR0aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAx
MDAlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgY2FudmFzLnBhdGgg
eworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgY2FudmFzLnBhdGggewogICAgIHotaW5kZXg6IDEw
OwogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRl
bnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nIHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGlu
ZyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0KIAotICAgIC5jb250
ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVy
IHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFp
bmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgICAgIGJvcmRlci1j
b2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRl
bnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIg
PiBpbnB1dFt0eXBlPXJhbmdlXSB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFk
ZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKICAgICAgICAgYmFj
a2dyb3VuZDogbm9uZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxl
Y3Rpb25Db250ZW50Vmlldy5jc3MKaW5kZXggM2E5YTlhZWZmMjljNWVmY2Q3NzliYjRkMjkwNDBh
YWQ4OWRiZjFkNC4uMmY5NGJjNzQwOWY0ZDU1NDY2NWNkZTg5YzlmMGY5OWNhZGVmOTcwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAt
MjMsNiArMjMsMTQgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
CisuY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1n
IHsKKyAgICBvdXRsaW5lOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisu
Y29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhv
dmVyIHsKKyAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCit9CisK
IC5yZXNvdXJjZS1jb2xsZWN0aW9uLWltYWdlLXR5cGUtc2NvcGUtYmFyLmRlZmF1bHQtaXRlbS1z
ZWxlY3RlZCB7CiAgICAgLS1zY29wZS1iYXItdGV4dC1jb2xvci1vdmVycmlkZTogdmFyKC0tdGV4
dC1jb2xvcik7CiAgICAgLS1zY29wZS1iYXItYmFja2dyb3VuZC1jb2xvci1vdmVycmlkZTogdHJh
bnNwYXJlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmpzCmluZGV4IGM5NGVjYTc3NzIxNGUzMWRjNWQ4MWU2MTA5MDYwNjNmNzdjNzRmY2MuLmZjMWM2
YTJjZDRhYTdkYTE5NTBjMGEzZDNmZjA2MzQzMmY5N2Q2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0zNSw2ICszNSw4IEBAIFdJLlJl
c291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcgZXh0ZW5kcyBXCiAKICAgICAgICAgc3VwZXIoY29sbGVjdGlvbiwgY29udGVudFZp
ZXdDb25zdHJ1Y3Rvcik7CiAKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInJl
c291cmNlLWNvbGxlY3Rpb24iKTsKKwogICAgICAgICBpZiAoY29sbGVjdGlvbi5yZXNvdXJjZVR5
cGUgPT09IFdJLlJlc291cmNlLlR5cGUuSW1hZ2UpIHsKICAgICAgICAgICAgIHRoaXMuX3Nob3dH
cmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9u
SXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwg
V0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9u
SXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgICAgICB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBmNmE1Yzk3ZWQzNTNlMjc2MGNhNmI4ZjA0NGYzOWVlMDQwNTRmNWU2Li5lY2Rh
ZDE3ZTlmZmEwMGEzMmExMmQxYmZhZjI1YTJmNTg4ZGM3ZTA0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEg
QEAKKzIwMjAtMDEtMjcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBpbnN0cnVtZW50YXRpb24gZm9yIHNob3dpbmcgZXhpc3Rp
bmcgV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTQzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgzMjgwODc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICAqIGluc3BlY3Rvci9hbmlt
YXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5p
bWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtdHJhbnNpdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVxdWVz
dEVmZmVjdFRhcmdldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9u
L3JlcXVlc3RFZmZlY3RUYXJnZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVj
eWNsZS11dGlsaXRpZXMuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlQW5pbWF0aW9uKToKKyAg
ICAgICAgKGRlc3Ryb3lBbmltYXRpb25zKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0
aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGF3YWl0QW5pbWF0aW9uQ3JlYXRlZCk6CisgICAg
ICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBhd2Fp
dEFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxp
ZmVjeWNsZVV0aWxpdGllcy5hc3luYyBjcmVhdGVBbmltYXRpb24pOgorICAgICAgICAoSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgZGVzdHJveUFuaW1hdGlv
bnMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4
dC11dGlsaXRpZXMuanM6CisgICAgICAgIChkZXN0cm95Q2FudmFzZXMpOgorICAgICAgICAoYXdh
aXRDYW52YXNBZGRlZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkNyZWF0ZUNvbnRleHRVdGls
aXRpZXMuaW5pdGlhbGl6ZVRlc3RTdWl0ZSk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L2NvbnRleHQtYXR0cmlidXRlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvZXh0
ZW5zaW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWw6CisKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2V0
UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qczoKKyAgICAgICAgKHdpbmRv
dy5nZXRDYW52YXMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFt
LWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRh
dGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1Lmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdsLmpzOgorICAgICAgICAoZGVsZXRlQ29udGV4dCk6CisgICAgICAgICh3aGVu
UHJvZ3JhbUFkZGVkKToKKyAgICAgICAgKHdpbmRvdy5pbml0aWFsaXplVGVzdFN1aXRlKToKKyAg
ICAgICAgKHdpbmRvdy5hZGRQYXJlbnRDYW52YXNSZW1vdmVkVGVzdENhc2UpOgorCisgICAgICAg
ICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1
bmN0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDEtMjcgIE5vYW0gUm9zZW50aGFsICA8bm9h
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIC13ZWJraXQtaW1hZ2Utc2V0IHNob3VsZCBzdXBwb3J0
IHJlc29sdXRpb24gdW5pdHMgb3RoZXIgdGhhbiAneCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIyZjMzY2JkN2Y5MzNkM2I0OWJiZmY1ZDM3OGRlNTdiODIzMTJiZTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmVm
ZmVjdENoYW5nZWQgZXZlbnQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24u
ZWZmZWN0Q2hhbmdlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFu
Z2VkLk5ld0VmZmVjdAorUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0No
YW5naW5nIGVmZmVjdC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0
LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTnVsbEVmZmVjdAorUEFTUzog
QW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK0NoYW5naW5nIGVmZmVjdC4uLgorCitQ
QVNTOiBBbmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlv
biBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDVkODViMWUx
ZjIxNjg4MWZmYmQ2ZjYxYjM3NDdjNzBkYmYxNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0g
ZG9jdW1lbnQuYm9keS5hbmltYXRlKFt7b3BhY2l0eTogMH1dKTsKKworICAgIHJ1blRlc3QoKTsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCIpOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTmV3
RWZmZWN0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2Jq
ZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmlt
YXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBi
ZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0
aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAg
dGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24u
YW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0
aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRL
ZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3ROb3RFbXB0eShvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4g
ZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgZWZm
ZWN0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAg
ICAgICBhbmltYXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdl
ZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93
LmFuaW1hdGlvbi5lZmZlY3QgPSBuZXcgS2V5ZnJhbWVFZmZlY3Qod2luZG93LmFuaW1hdGlvbi5l
ZmZlY3QudGFyZ2V0LCBbe29wYWNpdHk6IDF9XSwge30pYCksCisgICAgICAgICAgICBdKTsKKwor
ICAgICAgICAgICAgbGV0IG5ld0tleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG5ld0tleWZyYW1lcywgIkFuaW1h
dGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xkS2V5ZnJhbWVzLCAiQW5p
bWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0p
OworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLmVm
ZmVjdENoYW5nZWQuTnVsbEVmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJl
dHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIs
CisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFy
cmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhl
cmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFu
aW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgewor
ICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFu
aW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAg
ICAgICAgICBsZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9u
IHNob3VsZCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNoYW5naW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFs
bChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2
ZW50LkVmZmVjdENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbnVsbGApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVz
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFbXB0eShuZXdLZXlmcmFtZXMsICJB
bmltYXRpb24gc2hvdWxkIG5vdCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwobmV3S2V5ZnJhbWVzLCBvbGRLZXlmcmFt
ZXMsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0
aGUgQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3Nz
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGRkMmJm
MjljMjA0ZjA1ZjUyM2M2YWM4YWE1N2IzNTEzNTJjZWRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0
aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNo
b3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmltYXRpb24gY3JlYXRlZC4KK1BB
U1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgQW5pbWF0aW9uLgorc3RhcnREZWxheTog
MTAwCitpdGVyYXRpb25Db3VudDogMgoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVu
Y3Rpb246ICJsaW5lYXIiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2Rl
OiAiYm90aCIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLAorICAgICJlYXNp
bmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJj
b2xvcjogcmdiKDI1NSwgMCwgMCk7XG5vcGFjaXR5OiAwOyIKKyAgfSwKKyAgeworICAgICJvZmZz
ZXQiOiAwLjUsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40
KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMCwgMTI4LCAwKTtcbm9wYWNpdHk6IDAuNTsi
CisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemll
cigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJnYigwLCAwLCAy
NTUpO1xub3BhY2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWluZyBhbmltYXRpb25zLi4uCisK
K1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1vdmVkIGFuaW1hdGlvbiBoYXMg
ZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRp
b24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
bmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODBmMjI5
MThhMzQ5N2M1M2Q3MDcyNWUxNGI2MDUzOTY2NjBjMWE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1s
CkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0BrZXlmcmFtZXMgZmFkZS1pbiB7CisgICAgZnJv
bSB7CisgICAgICAgIGNvbG9yOiByZWQ7CisgICAgICAgIG9wYWNpdHk6IDA7CisgICAgfQorICAg
IDUwJSB7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgb3BhY2l0eTogMC41OworICAg
IH0KKyAgICB0byB7CisgICAgICAgIGNvbG9yOiBibHVlOworICAgICAgICBvcGFjaXR5OiAxOwor
ICAgIH0KK30KK2RpdiN0YXJnZXQuYWN0aXZlIHsKKyAgICBhbmltYXRpb24tbmFtZTogZmFkZS1p
bjsKKyAgICBhbmltYXRpb24tZHVyYXRpb246IDQwMG1zOworICAgIGFuaW1hdGlvbi10aW1pbmct
ZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpOworICAgIGFuaW1hdGlv
bi1kZWxheTogMTAwbXM7CisgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICBh
bmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7CisgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTog
Ym90aDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5z
cGVjdG9yVGVzdC5kZWJ1ZygpOworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRl
QXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNsZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NBbmltYXRpb24iLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmll
ZCB3aGVuZXZlciBDU1MgYW5pbWF0aW9ucyBhcmUgY3JlYXRlZC9kZXN0cm95ZWQuIiwKKyAgICAg
ICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
V0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLnNpemUsIDAsICJUaGVyZSBz
aG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIpOworCisgICAgICAgICAgICBsZXQgW2FuaW1h
dGlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKFdJLkFu
aW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbiksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNz
TGlzdC5hZGQoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9u
TGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbi5hbmlt
YXRpb25JZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3lj
bGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMoKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iiku
Y2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9
LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBm
b3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9u
RGVzdHJveWVkIGV2ZW50cy48L3A+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYWIyYmI1YTkxZDQ0OThlOTBjNTk1YmM5NTY3NDkyNDgwNjllNTZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3Nz
LXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK1Rlc3RzIGZvciB0aGUg
QW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95
ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNs
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTVHJhbnNpdGlv
bgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4KK1BBU1M6IEFuaW1h
dGlvbiBjcmVhdGVkLgorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIENTUyBUcmFuc2l0
aW9uLgorc3RhcnREZWxheTogMTAwCitpdGVyYXRpb25Db3VudDogMQoraXRlcmF0aW9uRHVyYXRp
b246IDQwMAordGltaW5nRnVuY3Rpb246ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40
KSIKK3BsYXliYWNrRGlyZWN0aW9uOiAibm9ybWFsIgorZmlsbE1vZGU6ICJiYWNrd2FyZHMiCitr
ZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwKKyAgICAiZWFzaW5nIjogImN1Ymlj
LWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMDsi
CisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemll
cigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMTsiCisgIH0K
K10KKworRGVzdHJveWluZyBhbmltYXRpb25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95
ZWQuCitQQVNTOiBSZW1vdmVkIGFuaW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
dHJhbnNpdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNDVhMzhhMjA0ZTBjNmM0ZDNhNzFiZjBlZDlk
Yzk2MGUwNDA4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK2RpdiN0YXJnZXQgeworICAgIGNvbG9yOiByZWQ7CisgICAgb3BhY2l0eTogMDsKKwor
fQorZGl2I3RhcmdldC5hY3RpdmUgeworICAgIGNvbG9yOiBibHVlOworICAgIG9wYWNpdHk6IDE7
CisKKyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OworICAgIHRyYW5zaXRpb24tZHVy
YXRpb246IDQwMG1zOworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXpp
ZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtczsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5
Y2xlLkNTU1RyYW5zaXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgV2Vi
IEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgdHJhbnNpdGlvbnMgYXJlIGNyZWF0
ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVj
dGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKwor
ICAgICAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0
QW5pbWF0aW9uQ3JlYXRlZChXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uKSwKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIilgKSwKKyAgICAgICAgICAg
IF0pOworCisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25E
ZXN0cm95ZWQoYW5pbWF0aW9uLmFuaW1hdGlvbklkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucygpLAor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKWApLAorICAg
ICAgICAgICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2Fz
ZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQg
YW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAgICA8ZGl2IGlk
PSJ0YXJnZXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWE2YjhkYTU5ZmZkNmY3YmYwZDFmMDViODU1
ZTU5N2ExMDhiYWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
OSBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0
aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRl
OiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLkxp
ZmVjeWNsZS5XZWJBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1h
dGlvbnMuCitDcmVhdGluZyBhbmltYXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQu
CisgIDA6IGFuaW1hdGUgLSBbbmF0aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1hdGlvbiAtIGlu
c3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6NzozNQor
ICAyOiBHbG9iYWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRlV2l0aFNjb3Bl
RXh0ZW5zaW9uIC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0aW9uKSAtIFtu
YXRpdmUgY29kZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFTUzogQW5pbWF0
aW9uIHR5cGUgc2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitzdGFydERlbGF5OiAxMDAKK2VuZERl
bGF5OiAyMDAKK2l0ZXJhdGlvbkNvdW50OiAxMAoraXRlcmF0aW9uU3RhcnQ6IDUKK2l0ZXJhdGlv
bkR1cmF0aW9uOiAzMDAKK3RpbWluZ0Z1bmN0aW9uOiAiZWFzZS1pbi1vdXQiCitwbGF5YmFja0Rp
cmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2RlOiAiYm90aCIKK2tleWZyYW1lczoKK1sKKyAg
eworICAgICJvZmZzZXQiOiAwLjI1LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwg
MC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogcmVkO1xub3BhY2l0eTogMDsi
CisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMC43NSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJl
emllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IGJsdWU7XG5v
cGFjaXR5OiAxOyIKKyAgfQorXQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMDI3MGE0YjI3ZDFkYzBiYWE2NzY3NGFiNzA3YzA5OGJjYThiYWYxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1h
dGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3lj
bGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlv
bi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IkFuaW1hdGlvbi5MaWZlY3ljbGUuV2ViQW5pbWF0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIgd2ViIGFuaW1h
dGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFnZXIu
YW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5p
bWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGF3YWl0IEluc3BlY3Rv
clRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmNyZWF0ZUFuaW1hdGlvbihXSS5Bbmlt
YXRpb24uVHlwZS5XZWJBbmltYXRpb24sIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RvcjogImJv
ZHkiLAorICAgICAgICAgICAgICAgIGtleWZyYW1lczogWworICAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuMjUsCisgICAgICAgICAgICAgICAg
ICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb2xvcjogInJlZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBvcGFjaXR5OiAwLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuNzUsCisgICAgICAgICAgICAg
ICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC42LCAwLjcsIDAuOCwgMC45KSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogImJsdWUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgb3BhY2l0eTogMSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAgICAgICAgZGVs
YXk6IDEwMCwKKyAgICAgICAgICAgICAgICAgICAgZW5kRGVsYXk6IDIwMCwKKyAgICAgICAgICAg
ICAgICAgICAgZHVyYXRpb246IDMwMCwKKyAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAiZWFz
ZS1pbi1vdXQiLAorICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246ICJhbHRlcm5hdGUiLAor
ICAgICAgICAgICAgICAgICAgICBmaWxsOiAiYm90aCIsCisgICAgICAgICAgICAgICAgICAgIGl0
ZXJhdGlvbnM6IDEwLAorICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25TdGFydDogNSwKKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0
aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZl
bnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiZDQ4ZGE4MTUyMTk5NzNkNjEyNjA4MzYwODZlZTIxMWUyYTFhZjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9u
LnJlc29sdmVBbmltYXRpb24gY29tbWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFu
aW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9u
LnJlc29sdmVBbmltYXRpb24uVmFsaWRJZGVudGlmaWVyCitQQVNTOiBQYXlsb2FkIHNob3VsZCBo
YXZlIHR5cGUgIm9iamVjdCIuCitQQVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAi
QW5pbWF0aW9uIi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXNvbHZlQW5p
bWF0aW9uLkludmFsaWRJZGVudGlmaWVyCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRp
b24uCitFcnJvcjogTWlzc2luZyBhbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmEyM2UzOTc0YzM0YzE5N2NkZDU5ODYxMGY3Mzc3MTA2N2UzMDEz
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVz
b2x2ZUFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxv
YWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbXSk7
CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnJlc29sdmVBbmlt
YXRpb24iKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1h
dGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmllciIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlv
biBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQg
YW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xs
ZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVu
Z3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAg
ICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAo
IWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5g
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1h
dGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0
aW9uLiIpOworCisgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKyAgICAg
ICAgICAgIGxldCB7b2JqZWN0fSA9IGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRp
b24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC50eXBlLCAib2JqZWN0IiwgYFBheWxvYWQgc2hv
dWxkIGhhdmUgdHlwZSAib2JqZWN0Ii5gKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwob2JqZWN0LmNsYXNzTmFtZSwgIkFuaW1hdGlvbiIsIGBQYXlsb2FkIHNob3VsZCBo
YXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi5gKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAg
IC8vIC0tLS0tLQorCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5p
bWF0aW9uLnJlc29sdmVBbmltYXRpb24uSW52YWxpZElkZW50aWZpZXIiLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkludmFsaWQgYW5pbWF0aW9uIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBl
cnJvci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgY29uc3QgaWRlbnRp
ZmllciA9ICJET0VTX05PVF9FWElTVCI7CisgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9
ICJ0ZXN0IjsKKworICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRp
b24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGF3YWl0IEFuaW1hdGlvbkFnZW50LnJl
c29sdmVBbmltYXRpb24oaWRlbnRpZmllciwgb2JqZWN0R3JvdXApOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2go
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxw
PlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC48L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOWMyMTJmZjM2MTU4ZDhiYjRjY2UxNmE5NWRhMDUzNTJkMGIwMWRlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xl
LXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDEzMCBAQAord2luZG93LmFuaW1hdGlvbnMgPSBbXTsK
KworZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKHNlbGVjdG9yLCBrZXlmcmFtZXMgPSBbXSwgb3B0
aW9ucyA9IHt9KSB7CisgICAgbGV0IGFuaW1hdGlvbiA9IG51bGw7CisKKyAgICBsZXQgdGFyZ2V0
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgaWYgKHRhcmdldCkKKyAg
ICAgICAgYW5pbWF0aW9uID0gdGFyZ2V0LmFuaW1hdGUoa2V5ZnJhbWVzLCBvcHRpb25zKTsKKyAg
ICBlbHNlCisgICAgICAgIGFuaW1hdGlvbiA9IG5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZm
ZWN0KG51bGwsIGtleWZyYW1lcywgb3B0aW9ucykpOworCisgICAgd2luZG93LmFuaW1hdGlvbnMu
cHVzaChhbmltYXRpb24pOworfQorCitmdW5jdGlvbiBkZXN0cm95QW5pbWF0aW9ucygpIHsKKyAg
ICBmb3IgKGxldCBhbmltYXRpb24gb2Ygd2luZG93LmFuaW1hdGlvbnMpIHsKKyAgICAgICAgaWYg
KCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLmNh
bmNlbCgpOworCisgICAgICAgIGlmIChhbmltYXRpb24uZWZmZWN0KSB7CisgICAgICAgICAgICBp
ZiAoYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24u
ZWZmZWN0LnRhcmdldC5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0
LnRhcmdldCA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFuaW1hdGlvbi5l
ZmZlY3QgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFuaW1hdGlvbnMg
PSBbXTsKKworICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgYW5pbWF0aW9uIGFuZCBp
dCdzIHRhcmdldCBhcmUgYm90aCBkZXN0cm95ZWQsIGFzIG90aGVyd2lzZSB0aGUKKyAgICAvLyBm
cm9udGVuZCB3aWxsIG5vdCByZWNlaXZlIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZl
bnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVj
dCgpOworICAgIH0pOworfQorCitUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsK
KyAgICBmdW5jdGlvbiBqc29uS2V5ZnJhbWVGaWx0ZXIoa2V5LCB2YWx1ZSkgeworICAgICAgICBp
ZiAoa2V5ID09PSAiZWFzaW5nIiAmJiB2YWx1ZSBpbnN0YW5jZW9mIFdJLkN1YmljQmV6aWVyKQor
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2YWx1
ZTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGll
cyA9IHt9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMu
YXdhaXRBbmltYXRpb25DcmVhdGVkID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uVHlwZSkgewor
ICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50ID0gYXdhaXQgV0ku
YW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQpOworCisgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiQW5p
bWF0aW9uIGNyZWF0ZWQuIik7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbkNv
bGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CisKKyAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCBhbmltYXRpb24uYmFja3RyYWNlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBs
ZXQgY2FsbEZyYW1lID0gYW5pbWF0aW9uLmJhY2t0cmFjZVtpXTsKKyAgICAgICAgICAgIGxldCB0
cmFjZVRleHQgPSBgICAke2l9OiBgOworICAgICAgICAgICAgdHJhY2VUZXh0ICs9IGNhbGxGcmFt
ZS5mdW5jdGlvbk5hbWUgfHwgIihhbm9ueW1vdXMgZnVuY3Rpb24pIjsKKworICAgICAgICAgICAg
aWYgKGNhbGxGcmFtZS5uYXRpdmVDb2RlKQorICAgICAgICAgICAgICAgIHRyYWNlVGV4dCArPSAi
IC0gW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUucHJvZ3Jh
bUNvZGUpCisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9ICIgLSBbcHJvZ3JhbSBjb2RlXSI7
CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uKSB7Cisg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlv
bjsKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAtICIgKyBzYW5pdGl6ZVVSTChsb2Nh
dGlvbi5zb3VyY2VDb2RlLnVybCkgKyBgOiR7bG9jYXRpb24ubGluZU51bWJlcn06JHtsb2NhdGlv
bi5jb2x1bW5OdW1iZXJ9YDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2codHJhY2VUZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUsIGFuaW1hdGlvblR5cGUsIGBBbmlt
YXRpb24gdHlwZSBzaG91bGQgYmUgJHtXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JBbmltYXRp
b25UeXBlKGFuaW1hdGlvblR5cGUpfS5gKTsKKworICAgICAgICBpZiAoYW5pbWF0aW9uLnN0YXJ0
RGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygic3RhcnREZWxheTogIiArIEpT
T04uc3RyaW5naWZ5KGFuaW1hdGlvbi5zdGFydERlbGF5KSk7CisgICAgICAgIGlmIChhbmltYXRp
b24uZW5kRGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZW5kRGVsYXk6ICIg
KyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZW5kRGVsYXkpKTsKKyAgICAgICAgaWYgKGFuaW1h
dGlvbi5pdGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJpdGVy
YXRpb25Db3VudDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkp
OworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KQorICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvblN0YXJ0OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0
aW9uLml0ZXJhdGlvblN0YXJ0KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uaXRlcmF0aW9uRHVy
YXRpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiaXRlcmF0aW9uRHVyYXRpb246
ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pKTsKKyAgICAg
ICAgaWYgKGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJ0aW1pbmdGdW5jdGlvbjogIiArIEpTT04uc3RyaW5naWZ5KFN0cmluZyhhbmltYXRp
b24udGltaW5nRnVuY3Rpb24pKSk7CisgICAgICAgIGlmIChhbmltYXRpb24ucGxheWJhY2tEaXJl
Y3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygicGxheWJhY2tEaXJlY3Rpb246
ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pKTsKKyAgICAg
ICAgaWYgKGFuaW1hdGlvbi5maWxsTW9kZSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJmaWxsTW9kZTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5maWxsTW9kZSkpOworICAg
ICAgICBpZiAoYW5pbWF0aW9uLmtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJrZXlmcmFtZXM6Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmpz
b24oYW5pbWF0aW9uLmtleWZyYW1lcywganNvbktleWZyYW1lRmlsdGVyKTsKKyAgICAgICAgfQor
CisgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOworCisgICAgICAgIHJldHVybiBhbmlt
YXRpb24KKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGls
aXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQgPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25J
ZGVudGlmaWVyKSB7CisgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRF
dmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5hd2Fp
dEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQpCisKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5wYXNzKCJBbmltYXRpb24gZGVzdHJveWVkLiIpOworCisgICAgICAgIGxldCBhbmlt
YXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVudC5kYXRhLml0ZW07Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBh
bmltYXRpb25JZGVudGlmaWVyLCAiUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELiIp
OworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGll
cy5jcmVhdGVBbmltYXRpb24gPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25UeXBlLCB7c2VsZWN0
b3IsIGtleWZyYW1lcywgb3B0aW9uc30gPSB7fSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiQ3JlYXRpbmcgYW5pbWF0aW9uLi4uXG4iKTsKKworICAgICAgICBsZXQgc3RyaW5naWZpZWRT
ZWxlY3RvciA9IEpTT04uc3RyaW5naWZ5KHNlbGVjdG9yIHx8IG51bGwpOworICAgICAgICBsZXQg
c3RyaW5naWZpZWRLZXlmcmFtZXMgPSBKU09OLnN0cmluZ2lmeShrZXlmcmFtZXMgfHwgW10pOwor
ICAgICAgICBsZXQgc3RyaW5naWZpZWRPcHRpb25zID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucyB8
fCB7fSk7CisKKyAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdh
aXRBbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblR5cGUpLAorICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQW5pbWF0aW9uKCR7c3RyaW5naWZpZWRTZWxlY3Rv
cn0sICR7c3RyaW5naWZpZWRLZXlmcmFtZXN9LCAke3N0cmluZ2lmaWVkT3B0aW9uc30pYCkKKyAg
ICAgICAgXSk7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdGlvbjsKKyAgICB9OworCisgICAgSW5z
cGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMg
PSBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlc3Ryb3lp
bmcgYW5pbWF0aW9ucy4uLlxuIik7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGRlc3Ryb3lBbmltYXRpb25zKClgKTsKKyAgICB9OworfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ODhkZTIyZDM0OGNlYTlhYzlhZmYzZmFkMWYxNDI1MTA3NmNk
N2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90
YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhl
IEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0
ZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRp
b24udGFyZ2V0Q2hhbmdlZC5OZXdUYXJnZXQKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBh
IHRhcmdldC4KK0NoYW5naW5nIHRhcmdldC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhh
dmUgYSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQu
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFy
Z2V0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitDaGFuZ2luZyB0YXJn
ZXQuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhIHRhcmdldC4KK1BBU1M6
IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZTcwNWY2YzhhMzE0ZWJmZTJhZDY0OTNhYjczZTMyZDEwMmVhNjhjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKQEAg
LTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5p
bWF0aW9uID0gZG9jdW1lbnQuYm9keS5hbmltYXRlKFtdKTsKKworICAgIHJ1blRlc3QoKTsKK30K
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZCIpOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTmV3VGFy
Z2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0
IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVz
dCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRp
b25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBv
bmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9u
c1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhy
b3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5p
bWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9u
IHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBbb2xkVGFy
Z2V0XSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2spID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RF
ZmZlY3RUYXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChvbGRUYXJnZXQgaW5zdGFuY2VvZiBXSS5ET01Ob2RlLCAiQW5pbWF0aW9uIHNob3Vs
ZCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hh
bmdpbmcgdGFyZ2V0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAg
ICAgICAgICAgICAgICBhbmltYXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuVGFy
Z2V0Q2hhbmdlZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZShgd2luZG93LmFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2IilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgW25ld1Rhcmdl
dF0gPSBhd2FpdCBwcm9taXNpZnkoKGNhbGxiYWNrKSA9PiB7IGFuaW1hdGlvbi5yZXF1ZXN0RWZm
ZWN0VGFyZ2V0KGNhbGxiYWNrKTsgfSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQobmV3VGFyZ2V0IGluc3RhbmNlb2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91bGQg
aGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RF
cXVhbChuZXdUYXJnZXQsIG9sZFRhcmdldCwgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUg
Y2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkLk51bGxUYXJnZXQiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRo
ZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgewor
ICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFn
ZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmlt
YXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOwor
ICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlz
c2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25U
eXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxk
IGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IFtvbGRUYXJnZXRdID0g
YXdhaXQgcHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRh
cmdldChjYWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KG9sZFRhcmdldCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUg
YSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyB0
YXJnZXQuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAg
ICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFu
Z2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5k
b3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBudWxsYCksCisgICAgICAgICAgICBdKTsKKwor
ICAgICAgICAgICAgbGV0IFtuZXdUYXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxsYmFjaykg
PT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROdWxsKG5ld1RhcmdldCwgIkFuaW1hdGlvbiBzaG91
bGQgbm90IGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0Tm90RXF1YWwobmV3VGFyZ2V0LCBvbGRUYXJnZXQsICJBbmltYXRpb24gZWZmZWN0IHNob3Vs
ZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5U
ZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnRhcmdldENoYW5nZWQg
ZXZlbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwKaW5kZXggZDRlMTExZmQ5ZDg1Mzcx
NWU0NDYzMzM2YjRiZDA3ODI3OGNhZjYxZS4uMmQ2Mjc0YjdmNTU0N2RlYjgyODMzYjlmYWE1YzIz
YmYwMGNmYjA3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250
ZXh0LWF0dHJpYnV0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2Nv
bnRleHQtYXR0cmlidXRlcy5odG1sCkBAIC0yMCw5ICsyMCw5IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0
IGNyZWF0ZWQgY2FudmFzZXMgaGF2ZSB0aGUgY29ycmVjdCB0eXBlIGFuZCBhdHRyaWJ1dGVzIHNl
bnQgdG8gdGhlIGZyb250ZW5kLiIsCiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKQorICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkKQogICAgICAgICAgICAgICAgIC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAgICAg
ICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgICAg
IGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJBZGRlZCBjYW52YXMuIik7CiAKICAgICAgICAgICAgICAgICAgICAgbGV0
IGNvbnRleHREaXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBl
KGNvbnRleHRUeXBlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
Y3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sCmluZGV4IGJjMTgxZjYyZjJkNGY0M2ViNGExYWJm
MWQ5ZjgzNmZjZTNkMmJiNWYuLmIxNDBmMTE4ZDA4ODZjYjc1ODAyZmExNTQwY2E1Zjg1NzZhYzZh
MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRl
eHQtd2ViZ3B1Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUt
Y29udGV4dC13ZWJncHUuaHRtbApAQCAtMzQsMTQgKzM0LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgYXR0YWNoZWQgR1BVQ2FudmFzQ29u
dGV4dCBhcmVuJ3QgdHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2
aWNlLiIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9
IGZhbHNlOwotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkg
PT4gewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAg
ICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZl
bnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRl
eHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAg
ICBjcmVhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVBdHRhY2hlZENhbnZhcygiZ3B1Iilg
KQogCi0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0ku
Q29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQg
bm90IGJlIGNyZWF0ZWQgZm9yIGF0dGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25u
ZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApAQCAtNTIsMTQgKzUyLDE0IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgZGV0YWNo
ZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBv
ZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAg
ICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2Fu
dmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFz
QWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQ
VSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQu
ZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsK
ICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVEZXRhY2hl
ZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIp
OworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9y
IGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGRldGFjaGVkIEdQVUNhbnZhc0NvbnRl
eHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApAQCAtNzAs
MTQgKzcwLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5z
dXJlIHRoYXQgQ1NTIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMs
IGluc3RlYWQgb2YgdGhlIFdlYkdQVURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewog
ICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5l
ciA9IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChldmVudC50YXJnZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5XZWJHUFUpOworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdQVSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3Jl
YXRlQ1NTQ2FudmFzKCJncHUiLCAiY3NzLWNhbnZhcyIpYCkKIAotICAgICAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2Fu
dmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2Uo
Y3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBDU1Mg
R1BVQ2FudmFzQ29udGV4dCB3aXRob3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7CiAgICAg
ICAgIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lv
bnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCmlu
ZGV4IGU4ZmNiZmUwMDczYzE5YjM4NWM0NmI5N2Q0MTVmZjg5N2JhZjFlMjEuLjkzN2MxZjM0YmJh
OTZiNTcwMTFhMzMxOWU4YTU3ODJjMTg0MzJjYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMuZXh0ZW5zaW9ucy5lbmFibGUiLAogICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgZW5hYmxpbmcgYW4gZXh0ZW5zaW9uIG5vdGlmaWVzIHRo
ZSBmcm9udGVuZC4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZh
cykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wp
OworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZh
c2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBXZWJHTCBjYW52
YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvbWVtb3J5Lmh0bWwKaW5kZXggMmE0OWUwM2ExODg4ZWU4NTVlYmJiM2FmMTg4NDNiY2UzZTJi
ZGIxYy4uNGJmZDdhNmNlYWI1M2ZjNWQ5YjhlNzEzYjg1M2QyNzVlMDE3M2U3MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAvLyBwZXJmb3JtZWQgb24gdGhhdCBjYW52YXMgdGhh
dCByZXF1aXJlcyB0aGUgaW1hZ2UgYnVmZmVyLiAgQSBibGFuayBjYW52YXMgdGhhdCB3YXMKICAg
ICAgICAgICAgIC8vIGp1c3QgY3JlYXRlZCB3aWxsIG5vdCBoYXZlIGEgYnVmZmVyLCBzbyBpdHMg
bWVtb3J5IGNvc3Qgd2lsbCBiZSAwL05hTi4KIAotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0g
V0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRl
eHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAg
bGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5D
b250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkg
ewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtNDUsNyArNDUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAg
ICAgICBuYW1lOiAiQ2FudmFzLm1lbW9yeS5jYW52YXNNZW1vcnlDaGFuZ2VkIiwKICAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IG1lbW9yeSBjb3N0IGlzIHVwZGF0ZWQgd2hlbiB0aGUg
YmFja2VuZCB2YWx1ZSBjaGFuZ2VzLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZp
bHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJ
LmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAg
ICAgICAgIGlmICghY2FudmFzZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KCJN
aXNzaW5nIDJEIGNhbnZhcy4iKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbAppbmRleCA0ZDNjZmU5YjhlNmU5NzQw
ZDRlY2E2Nzc5NGE0NWE0ZjllZWM2OGQxLi5iZTA4YTIwNDEzMDJjMzc3NjE0Y2MzM2UxMzk0YTA5
MDE3NTJlMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29y
ZGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0
bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNh
bnZhcy5BY3Rpb25QYXJhbWV0ZXJOYU4iLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
YXQgTmFOIGlzIGNvbnZlcnRlZCBpbnRvIHRoZSBwcm9wZXIgdmFsdWUgZm9yIHNlcmlhbGl6YXRp
b24uIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAgbGV0IGNh
bnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBi
ZSBhdCBsZWFzdCBvbmUgY2FudmFzIGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGNhbnZhcy5h
d2FpdEV2ZW50KFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkKQpAQCAtNTgsNyArNTgs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLk11bHRpcGxlUmVj
b3JkaW5nIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IG11bHRpcGxlIHJlY29y
ZGluZ3MgYXJlIGFibGUgdG8gYmUgc3RhcnRlZC9zdG9wcGVkIGF0IHRoZSBzYW1lIHRpbWUuIiwK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNl
cyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMg
PSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDIsICJUaGVyZSBz
aG91bGQgYmUgdHdvIGNhbnZhcyBjb250ZXh0cy4iKTsKIAogICAgICAgICAgICAgY2FudmFzZXNb
MV0uYXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTExMiw3
ICsxMTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLk5vQWN0
aW9ucyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhIGNhbnZhcyBpcyBzdGls
bCBhYmxlIHRvIGJlIHJlY29yZGVkIGFmdGVyIHN0b3BwaW5nIGEgcmVjb3JkaW5nIHdpdGggbm8g
YWN0aW9ucy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgICAgICBs
ZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24p
WzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hv
dWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMgY29udGV4dC4iKTsKIAogICAgICAgICAgICAgbGV0
IGV2ZW50Q291bnQgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENsaWVudE5vZGVzLmh0bWwKaW5kZXggMjNjZDA0ODY4NTBkMGFlMWI3Njc5ODc1YjBh
ZjI3YTA1MWMwZjRjZC4uZjc0ZDE1ZTEwNmVhM2IwNWNhOTFiODAxZjgxYzhhMDJmMTE1MDRjMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9k
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnRO
b2Rlcy5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5h
bWU6ICJDYW52YXMucmVxdWVzdENsaWVudE5vZGVzLkluaXRpYWwiLAogICAgICAgICBkZXNjcmlw
dGlvbjogIkNoZWNrIHRoYXQgY3JlYXRpbmcgYSBDU1MgY2FudmFzIGNsaWVudCBub2RlIGlzIHRy
YWNrZWQgY29ycmVjdGx5LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAg
ICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbilbMF07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJU
aGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGNhbnZhcy4iKTsKIAogICAgICAgICAgICAgY2Fu
dmFzLnJlcXVlc3RDbGllbnROb2RlcygoY2xpZW50Tm9kZXMpID0+IHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbAppbmRleCA1MzUw
OTU3NjJiMzkwZjJjZTNmYjVhOTY5NmFkZTYxMTM0MzNjMmZkLi5lOWNiYTFkMDEwN2MzYTY3Y2Vm
MTcyZThhYjVhOWE0YTRhYTljYTBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnQyRC52YWxpZENh
bnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRh
dGEgZm9yIHRoZSBjYW52YXMgb24gdGhlIHBhZ2Ugd2l0aCB0aGUgZ2l2ZW4gdHlwZS4iLAogICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJ
LmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5
cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQg
Y2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZp
bmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAg
ICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0
bWFwcmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbAppbmRleCBjZDUwODNjMjUyNTI3NGQ3OWZiOGY0YmQ3
OWI5NzkzOGZlMzBjNjMwLi5mNTI2NmVmZGVmZDdlYzc0NzRlOTZlYmFhZmQwYmI1NzNiMjVmMmI4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50
LWJpdG1hcHJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRCaXRtYXBS
ZW5kZXJlci52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJh
c2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBCaXRtYXBSZW5kZXJlciBjYW52YXMgb24gdGhlIHBh
Z2UuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOwor
ICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2Fu
dmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwKaW5kZXggYWViODFlZjI3ZDNjOTgwNTg0OTc5
OTZhMTc5YmQ2NGE1YmZlOWJlZi4uNzBjMjFmZTQzMzk2OTE1OTYwOTEyMjg0NTY2YWYyZjczZDU4
Yjk2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29u
dGVudC13ZWJnbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dENvbnRlbnQtd2ViZ2wuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wudmFsaWRDYW52YXNJZCIs
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0
aGUgV2ViR0wgY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
cy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBp
ZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKaW5kZXggNmIwM2Q1ZWM3ZTU5
ZDAyNjY4N2M2YjdmMGRiMjgwNmUxNjNhZWNjZi4uZjdiNTVmNGEzZGZjMDg0M2FlZjc4ODBiOWY3
OTc0MGNlMTVhMDg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRXZWJHTDIudmFs
aWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2Rl
ZCBkYXRhIGZvciB0aGUgV2ViR0wyIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFy
cmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlz
c2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sCmluZGV4IGU1YzYxNDdlMzQ3YmMzNjll
MmMwNWNjODQxNjZkODA2YTcxYzA2MTYuLmRjYzRiY2NlZTc1ZjRhNjkzODQ1YmJkZWU3MTIzYWZm
ZTJhNzkwNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVz
dE5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2Rl
Lmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTog
IkNhbnZhcy5yZXF1ZXN0Tm9kZS52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246
ICJHZXQgdGhlIG5vZGUgaWQgZm9yIGVhY2ggY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAg
IHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXku
ZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAgICAgICAgbGV0
IGV4cGVjdGVkTGVuZ3RoID0gY2FudmFzZXMubGVuZ3RoOwogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXhwZWN0ZWRMZW5ndGggPT09IDMsICJUaGUgcGFnZSBoYXMgMyBjYW52YXNl
cy4iKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZl
Q29udGV4dC0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29u
dGV4dC0yZC5odG1sCmluZGV4IGM0MWNjNmJjNzRhMzI0MTkyMGIzZDZiNWMzZDliM2M2YmZkYTk1
ZDEuLmZlMTQxMTc5YjdjYWRhM2JiNTg1YTg4ODg0ZGU2YmI2MzRlNzQzOGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKQEAg
LTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVz
b2x2ZUNvbnRleHQyRC52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNo
b3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmll
ci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNh
bnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMu
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAg
ICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAg
ICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbAppbmRleCA4NjI1MjkyNjVjNGRkNmIy
OWIyOTY3ODg0NDFjZWY5ZTY3N2I5YjEwLi4yOTdkNDQxZTE0ZmE0YjFiZDM5NmRjMDU0Zjg1Yjhk
OTNmOWFlNWMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29s
dmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0xNyw3ICsxNyw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0
Qml0bWFwUmVuZGVyZXIudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJT
aG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZp
ZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOwor
ICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2Fu
dmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwKaW5kZXggOTVhZGYxMmMwOTNhZGYzMGM0N2Qy
OTI5OTIzNDNkY2YwMWNjZTg3ZS4uMmE3MGZhNGEwZmIxN2ZmYTE5NDQ0NzUxOWNiMzllNTgwYjkz
NWU1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29u
dGV4dC13ZWJnbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2
ZUNvbnRleHQtd2ViZ2wuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMLnZhbGlkSWRlbnRpZmllcmAs
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3Ig
dGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
cy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBp
ZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKaW5kZXggMTE1MWY5MTdhN2Ey
M2U2ZmUzMzJiNDNhOWEzNDA2YTljZmU5MGE1NC4uZDhlMDgzMWU2YmMzYTI5NjVlOGQ0MmNmZDU4
N2UyZGZhMTRkMmM3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0V2ViR0wyLnZhbGlk
SWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlk
IG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3Qo
cmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFu
YWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJy
YXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykg
PT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsK
ICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNz
aW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAppbmRl
eCBkYzAwZWYxMjM3YTY3Yjg5MDVmMzgwZGNlY2Y2YTc5Y2ViNjMyNjc2Li5lOTI1YjI3MTY0OGY0
NDRjMjNjOWQyYTg1Y2I4NTIwNjI0Y2I2MjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTIyLDE0ICsy
MiwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29u
dGV4dFdlYkdQVS52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3Vs
ZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4i
LAogICAgICAgICBhc3luYyB0ZXN0KCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoLCAiVGhlcmUgc2hvdWxkIGJlIG5v
IGNhbnZhc2VzLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZh
c2VzLiIpOwogCi0gICAgICAgICAgICBsZXQgW2NhbnZhc0FkZGVkRXZlbnRdID0gYXdhaXQgUHJv
bWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChX
SS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKSwKKyAgICAgICAgICAgIGxldCBbY2Fu
dmFzQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAg
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChX
SS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCksCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV2aWNlKClgKSwKICAgICAgICAgICAgIF0pOwog
Ci0gICAgICAgICAgICBsZXQge2NhbnZhc30gPSBjYW52YXNBZGRlZEV2ZW50LmRhdGE7CisgICAg
ICAgICAgICBsZXQgY2FudmFzID0gY2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50LmRhdGEu
aXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlw
ZSwgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkFkZGVkIGNhbnZhcyBzaG91bGQgYmUg
YSBXZWJHUFUgZGV2aWNlLiIpOwogCiAgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0
ZXN0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2Vz
L2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwppbmRleCAzYTQ2MDQ1NTI1
MTAxODJiYmUyZWYzNTU3MjNhNDFlMDQyODlkNjJmLi4xNTkxNTgwMjU5MDIzYjllMjM4ZTcxYmI1
Yzg1NWFhN2M4NjQ4MWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCkBA
IC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIGRlc3Ryb3lDYW52YXNlcygpIHsKICAgICB3aW5kb3cu
Y29udGV4dHMgPSBbXTsKIAogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFz
IGVsZW1lbnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9l
cyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRz
LgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgog
ICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0K
IApAQCAtNDMsOSArNDMsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsK
ICAgICBsZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVuY3Rpb24gYXdhaXRDYW52YXNBZGRlZChj
b250ZXh0VHlwZSkgewotICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5hd2FpdEV2ZW50
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpCisgICAgICAgIHJldHVybiBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2
ZW50Lkl0ZW1BZGRlZCkKICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBs
ZXQgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0g
ZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9IFdJ
LkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY2FudmFzLmNvbnRleHRUeXBlLCBjb250ZXh0
VHlwZSwgYENhbnZhcyBjb250ZXh0IHNob3VsZCBiZSAke2NvbnRleHREaXNwbGF5TmFtZX0uYCk7
CiAKQEAgLTczLDkgKzczLDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYXdhaXRDYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZp
ZXIpIHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQpCisgICAgICAgIHJldHVybiBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1SZW1vdmVkKQogICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVu
dC5kYXRhLml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZh
cy5pZGVudGlmaWVyLCBjYW52YXNJZGVudGlmaWVyLCAiUmVtb3ZlZCBjYW52YXMgaGFzIGV4cGVj
dGVkIElELiIpOwogICAgICAgICB9KTsKICAgICB9CkBAIC04OSw3ICs4OSw3IEBAIFRlc3RQYWdl
LnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUu
bmFtZX0uTm9DYW52YXNlc2AsCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQg
dGhlIENhbnZhc01hbmFnZXIgaGFzIG5vIGNhbnZhc2VzIGluaXRpYWxseS4iLAogICAgICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoLCAwLCAiQ2FudmFz
TWFuYWdlciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5z
aXplLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsKICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0
aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29y
ZGluZy11dGlsaXRpZXMuanMKaW5kZXggNjAxNDZmZjM4NDg3ZmQxOTNlMjNkMzM3NDdkZjMxMDQ2
Y2M2ODFmMy4uNzdhMGVhMzQzYjY1ZjQyNGJhYzZkZTM3NWUzM2JmMmNhYmRjY2JkNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0
aWxpdGllcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9y
ZWNvcmRpbmctdXRpbGl0aWVzLmpzCkBAIC04Niw3ICs4Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVy
SW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIH0KIAogICAgIHdpbmRvdy5nZXRDYW52YXMgPSBmdW5j
dGlvbih0eXBlKSB7Ci0gICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlwZSk7Cisg
ICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSB0eXBl
KTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAxLCBg
VGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcyB3aXRoIHR5cGUgIiR7dHlwZX0iLmApOwog
ICAgICAgICBpZiAoY2FudmFzZXMubGVuZ3RoICE9PSAxKQogICAgICAgICAgICAgcmV0dXJuIG51
bGw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9z
aGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCmluZGV4IDUy
NzVjNDQxYWFmYzczYjkxMDc5NDViM2NkNzNmOWNhNjdlMWU2NWUuLmY0M2U2ZjI3N2NkYzdkMDU4
ZDA5OTQxYTc2Njc3NjM0ZTA1ZTZjYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdsLmpzCkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9uIGRlbGV0ZVByb2dyYW0o
KSB7CiBmdW5jdGlvbiBkZWxldGVDb250ZXh0KCkgewogICAgIGNvbnRleHQgPSBudWxsOwogICAg
IC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVk
LCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJl
Y2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4g
eyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApAQCAtNDcsOCArNDcsOSBAQCBU
ZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxs
OwogCiAgICAgZnVuY3Rpb24gd2hlblByb2dyYW1BZGRlZChjYWxsYmFjaykgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0g
MSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewor
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0
aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIGNh
bnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVy
KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAg
IGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiQWRkZWQg
U2hhZGVyUHJvZ3JhbS4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChw
cm9ncmFtLmNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxk
IGhhdmUgYSBwYXJlbnQgQ2FudmFzLiIpOwpAQCAtNTcsOCArNTgsOSBAQCBUZXN0UGFnZS5yZWdp
c3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9CiAKICAgICBmdW5jdGlvbiB3aGVuUHJvZ3Jh
bVJlbW92ZWQoY2FsbGJhY2spIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBv
bmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBv
bmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1D
b2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRl
bVJlbW92ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5k
YXRhLml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBp
bnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0sICJSZW1vdmVkIFNoYWRlclByb2dyYW0uIik7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52YXMgaW5zdGFu
Y2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFyZW50IENhbnZh
cy4iKTsKQEAgLTc0LDcgKzc2LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9
PiB7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgU2hhZGVyUHJvZ3JhbUFk
ZGVkIGlzIHNlbnQgZm9yIGEgcHJvZ3JhbSBjcmVhdGVkIGJlZm9yZSBDYW52YXNBZ2VudCBpcyBl
bmFibGVkLiIsCiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAg
ICAgICAgIC8vIFRoaXMgY2FuJ3QgdXNlIGBhd2FpdEV2ZW50YCBzaW5jZSB0aGUgcHJvbWlzZSBy
ZXNvbHV0aW9uIGhhcHBlbnMgb24gdGhlIG5leHQgdGljay4KLSAgICAgICAgICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZl
bnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHdo
ZW5Qcm9ncmFtQWRkZWQoKHByb2dyYW0pID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKICAgICAgICAgICAgICAgICAgICAgfSk7CkBAIC0xMTMsNyArMTE1LDcgQEAgVGVz
dFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7
CiAKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3Rl
bmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkg
PT4gewogICAgICAgICAgICAgICAgICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1
LmpzCmluZGV4IGZlNDhkOGZkODUxMTQ2NTg5OGZkM2IwNDUwZGU4OTUxMzc0NDliZTQuLmI4ZGUz
NGNmYTg3ODY4NWY5NjVhOWY5MGJiNGJmOGFhYjM1NzM2MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdl
YmdwdS5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFk
ZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMKQEAgLTY0LDcgKzY0LDcgQEAgYXN5bmMgZnVu
Y3Rpb24gY3JlYXRlUmVuZGVyUGlwZWxpbmUoY29kZSA9IHJlbmRlclBpcGVsaW5lU291cmNlKSB7
CiBmdW5jdGlvbiBkZWxldGVEZXZpY2UoKSB7CiAgICAgZGV2aWNlID0gbnVsbDsKICAgICAvLyBG
b3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGRldmljZSBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0
aGUgZnJvbnRlbmQKLSAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZl
bnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBDYW52YXMu
Y2FudmFzUmVtb3ZlZCBldmVudHMuCiAgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxl
ci5jb2xsZWN0KCk7IH0sIDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQu
aHRtbAppbmRleCBkOThmMGZlYTRlOTJjMTUyOTc4MTEyYzJkMDcwY2Q3NGU5NTlkNGUyLi41NWU1
NTI0NzMwODNhYTJkMWJhZWIwZTg4N2VlMDVmYzI4ZjBhMGU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0Nh
cHR1cmVGcmFtZUNvdW50Lmh0bWwKQEAgLTc3LDggKzc3LDggQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgICAgICAgICAgICAgaGFuZGxlUmVjb3JkaW5nU3RvcHBlZChjYW52YXMsIGV2ZW50
LmRhdGEucmVjb3JkaW5nKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIu
RXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBjYW52
YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBjYW52YXMg
PSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KCFjYW52YXMucmVjb3JkaW5nQWN0aXZlKQogCiAgICAgICAgICAgICAgICAgICAgIGNhbnZh
cy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdGFydGVkLCBoYW5k
bGVSZWNvcmRpbmdTdGFydGVkV3JhcHBlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5o
dG1sCmluZGV4IGQ0MGZhYjc4MzgxMzBjYzk0YjAzYmY5MWQ5NmYyMjcwOTA0ZWIwMTMuLmQ1ZmI4
NzcyYzBiMzc1YzQwZDVkN2EwZTQyMDJhNTRmZjVkNTJkMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sCkBAIC0xNCw5ICsxNCwxMSBAQCB3aW5kb3cuYmVmb3JlVGVzdCA9IGFz
eW5jIGZ1bmN0aW9uKCkgewogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoYENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVWAp
OwogCi0gICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAg
bGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24pOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRo
ZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisKKyAgICBsZXQgY2FudmFzID0gY2Fu
dmFzZXNbMF07CiAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxk
IGJlIGEgY2FudmFzLiIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZh
cy4iKTsKICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUsICJDYW52YXMgc2hvdWxkIGJlIFdlYkdQVS4iKTsK
IAogICAgIGFzeW5jIGZ1bmN0aW9uIGF3YWl0UHJvZ3JhbUFkZGVkKHByb2dyYW1UeXBlKSB7CkBA
IC0xMTgsNyArMTIwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAg
ICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5l
cihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAg
ICAgICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hh
cmVkVmVydGV4RnJhZ21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBk
YXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCmluZGV4IDM0ZDAyYWIx
N2U5MDVhNGI3OGEwMjY1NTA0OWFlMjhkYjMzMTA4NzEuLjhjZjlhNDc1NjIyNDIxYzgzNjg5Yzlh
ZDM3ZDIxOTBhMDFjZTllMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0
ZXhGcmFnbWVudC5odG1sCkBAIC01NywxMCArNTcsMTAgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNyZWF0aW5nIHJlbmRlciBwaXBlbGluZS4uLiIpOwog
ICAgICAgICBsZXQgZXZhbHV0ZVByb21pc2UgPSBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KGBjcmVhdGVSZW5kZXJQaXBlbGluZSgpYCk7CiAKLSAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmxlbmd0aCkKLSAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFnZXIu
YXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKTsKKyAgICAgICAg
aWYgKCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSkKKyAgICAgICAgICAg
IGF3YWl0IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNv
bGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKIAotICAgICAgICBsZXQgY2FudmFzID0gV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20o
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CiAKICAgICAgICAgbGV0IGl0ZW1B
ZGRlZEV2ZW50ID0gYXdhaXQgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmF3YWl0RXZl
bnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNz
LWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDY2YmRiYWI5ZWVlMzE2NzkwZjhm
MjY3NDZmOTNlMjFlZDRjM2RmMWUuLmRiZjYzNTFlOWEwOTI0NjBhYmVlOWQzNGQ5MjA2YjBmNzMz
NmIzYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3Qt
aGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3Rl
ZC50eHQKQEAgLTU0LDYgKzU0LDc0IEBAIEZBSUw6IGV4cGVjdEZhbHNlKFtdKQogICAgIEV4cGVj
dGVkOiBmYWxzZXkKICAgICBBY3R1YWw6IFtdCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVtcHR5CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3RFbXB0
eShudWxsKQorUEFTUzogZXhwZWN0RW1wdHkoIiIpCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK1BB
U1M6IGV4cGVjdEVtcHR5KFtdKQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitQQVNTOiBleHBlY3RF
bXB0eSh7fSkKK0V4cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0ZXN0IikKKyAg
ICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhwZWN0RW1wdHko
eyJ0ZXN0IjoxfSkKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6IHsidGVzdCI6MX0K
K0ZBSUw6IGV4cGVjdEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1
YWw6ICJ0ZXN0IgorRkFJTDogZXhwZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5Cisg
ICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5
CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
d2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3RFbXB0eSBz
aG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNl
CitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVj
dDoKKyAgICBBY3R1YWw6IDEKK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVk
IHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdW5kZWZpbmVkCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5CitFeHBlY3RlZCB0byBQQVNT
CitQQVNTOiBleHBlY3ROb3RFbXB0eSgidGVzdCIpCitQQVNTOiBleHBlY3ROb3RFbXB0eSh7InRl
c3QiOjF9KQorUEFTUzogZXhwZWN0Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1w
dHkoe30pCitQQVNTOiBleHBlY3ROb3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRvIEZBSUwKK0ZBSUw6
IGV4cGVjdE5vdEVtcHR5KG51bGwpCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVh
bDogbnVsbAorRkFJTDogZXhwZWN0Tm90RW1wdHkoIiIpCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0
eQorICAgIEFjdHVhbDogIiIKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVk
OiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0eShbXSkKKyAg
ICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiBbXQorRkFJTDogZXhwZWN0Tm90RW1w
dHkoe30pCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4
cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9
CitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9i
amVjdDoKKyAgICBBY3R1YWw6IHRydWUKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3Qg
YmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogZmFsc2UKK0ZBSUw6IGV4
cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAg
IEFjdHVhbDogMQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0
aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB1bmRlZmluZWQKKwogLS0gUnVubmluZyB0ZXN0
IGNhc2U6IEluc3BlY3RvclRlc3QuZXhwZWN0TnVsbAogRXhwZWN0ZWQgdG8gUEFTUwogUEFTUzog
ZXhwZWN0TnVsbChudWxsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQt
dGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKaW5k
ZXggOTFlODU4MGM3Y2I2MjczNDU4MjU0MDI0OTcyMDA5ZTk5Y2RhODM0ZC4uZTM4NjRhMDNjNGUw
OTQxY2E4YzAyZjJmMGE3ODYyNjM5ODhiMDEyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1
bmN0aW9ucy5odG1sCkBAIC00OCw2ICs0OCwyMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRU
ZXN0Q2FzZShleHBlY3RUaGF0VGVzdENhc2UpOwogICAgIGFkZEludmVyc2VUZXN0Q2FzZSgiZXhw
ZWN0RmFsc2UiLCBleHBlY3RUaGF0VGVzdENhc2UpOwogCisgICAgbGV0IGV4cGVjdEVtcHR5VGVz
dENhc2UgPSB7CisgICAgICAgIGZ1bmN0aW9uTmFtZTogImV4cGVjdEVtcHR5IiwKKyAgICAgICAg
cGFzc2luZ0lucHV0czogW251bGwsICIiLCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXRdLAorICAg
ICAgICBmYWlsaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVzdDogMX0sIFsidGVzdCJdLCBuZXcgTWFw
KFtbInRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJdKSwgdHJ1ZSwgZmFsc2UsIDEsIHVuZGVm
aW5lZF0sCisgICAgfTsKKyAgICBhZGRUZXN0Q2FzZShleHBlY3RFbXB0eVRlc3RDYXNlKTsKKwor
ICAgIGxldCBleHBlY3ROb3RFbXB0eVRlc3RDYXNlID0geworICAgICAgICBmdW5jdGlvbk5hbWU6
ICJleHBlY3ROb3RFbXB0eSIsCisgICAgICAgIHBhc3NpbmdJbnB1dHM6IFsidGVzdCIsIHt0ZXN0
OiAxfSwgWyJ0ZXN0Il0sIG5ldyBNYXAoW1sidGVzdCIsIDFdXSksIG5ldyBTZXQoWyJ0ZXN0Il0p
XSwKKyAgICAgICAgZmFpbGluZ0lucHV0czogW251bGwsICIiLCB7fSwgW10sIG5ldyBNYXAsIG5l
dyBTZXQsIHRydWUsIGZhbHNlLCAxLCB1bmRlZmluZWRdLAorICAgIH07CisgICAgYWRkVGVzdENh
c2UoZXhwZWN0Tm90RW1wdHlUZXN0Q2FzZSk7CisKICAgICBsZXQgZXhwZWN0TnVsbFRlc3RDYXNl
ID0gewogICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROdWxsIiwKICAgICAgICAgcGFzc2lu
Z0lucHV0czogW251bGxdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389047</attachid>
            <date>2020-01-28 11:59:05 -0800</date>
            <delta_ts>2020-01-28 12:26:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20200128115904.patch</filename>
            <type>text/plain</type>
            <size>326135</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk2OTYxZjQ5MzMwM2E0NTM4NzA3ODdjMzNjYmFk
MjdhZGQ5NzQxZmYuLjA3YjY2OGNhMGEyNjIzMTVkMmY4NjIxNDkyNTc4MjM1MzhkYTIwNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggT3BlblNvdXJjZSBpcGhvbmVvcyBhcm02NGUgYnVp
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA4NGYwMTMyZjVlMTNmNGQ1NjRjN2I5Mzk1MGIxMThkZDEwMGUyMmNl
Li4zOTM3NjNhYzgyNjJjMTk0M2MxMTdmZmU1OWI2OWI2MTJiMmI2ZjBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTA1IEBACisyMDIwLTAxLTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBz
aG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4
MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgQWRk
IHR5cGVzL2NvbW1hbmRzL2V2ZW50cyBmb3IgaW5zdHJ1bWVudGluZyB0aGUgbGlmZWN5Y2xlIG9m
IGBBbmltYXRpb25gIG9iamVjdHMsIGFzIHdlbGwgYXMKKyAgICAgICAgY29tbWFuZHMgZm9yIGdl
dHRpbmcgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3QgYW5kIHRoZSB0YXJnZXQgRE9NIG5v
ZGUuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5o
dG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5p
bWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LWNzcy10cmFuc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2Fu
aW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rv
ci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0
b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbAorCisgICAgICAgICogYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjppbnN0YW5jZXMpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6
fldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OmVmZmVjdFRp
bWluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnNldEVmZmVj
dEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24v
Q1NTVHJhbnNpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUcmFuc2l0aW9uOjpjcmVh
dGUpOgorCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6cGFyc2VkS2V5ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YmxlbmRpbmdLZXlmcmFtZXMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpoYXNCbGVuZGluZ0tl
eWZyYW1lcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZm
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxk
UnVuQWNjZWxlcmF0ZWQpOgorICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGFjY2VzcyB0aGUgbGlz
dCBvZiBrZXlmcmFtZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3QpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5p
bWF0aW9uRWZmZWN0VGltaW5nSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBs
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0SW1wbCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVu
dGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6ZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCk6CisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6cHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpidWlsZE9iamVjdEZvckVmZmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxl
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlz
YWJsZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OnJlcXVlc3RFZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpyZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlk
Q3JlYXRlV2ViQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRp
b24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpi
aW5kQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6dW5iaW5kQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc2V0KTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpw
dXNoTm9kZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6
OnF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdl
bnQ6OnNldE5vZGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpz
ZXRPdXRlckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9u
dGVuZCk6CisgICAgICAgIEFkZCBhbiBvdmVybG9hZCBmb3IgYHB1c2hOb2RlUGF0aFRvRnJvbnRl
bmRgIHRoYXQgZXhwb3NlcyBhbiBgRXJyb3JTdHJpbmdgLgorCiAyMDIwLTAxLTI3ICBOb2FtIFJv
c2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICAtd2Via2l0LWltYWdlLXNldCBz
aG91bGQgc3VwcG9ydCByZXNvbHV0aW9uIHVuaXRzIG90aGVyIHRoYW4gJ3gnCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZwppbmRleCA4NzJhODcxMjBhOGY3N2EwZWQxYTdjZDQyNjgyOGY0MzU2ZGVjM2Fl
Li41OGVmOTI5ODU3ZDM5NjcxNWMyYzA1N2RiZTJjZDEyMjU0OTI1OTJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMjggQEAKKzIwMjAtMDEtMjggIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBpbnN0cnVt
ZW50YXRpb24gZm9yIHNob3dpbmcgZXhpc3RpbmcgV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQzNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjgzMjgwODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5q
czogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBkb21haW5zKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmFjdGl2YXRlRXh0cmFEb21haW4pOgorICAgICAgICAoV0ku
QW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuaW5pdGlhbGl6ZVRhcmdldCk6CisgICAgICAgIChX
SS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uQ29sbGVjdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgc3VwcG9ydGVkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmVuYWJsZSk6CisgICAgICAgIChX
SS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25NYW5hZ2VyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXSS5B
bmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5faGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQp
OiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS5lZmZlY3RD
aGFuZ2VkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUu
dGFyZ2V0Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJv
dG90eXBlLmFuaW1hdGlvbkRlc3Ryb3llZCk6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qczogQWRkZWQuCisgICAgICAgIChXSS5B
bmltYXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJv
dG90eXBlLmdldCBhbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rp
b24ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xs
ZWN0aW9uLnByb3RvdHlwZS5vYmplY3RJc1JlcXVpcmVkVHlwZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtQWRkZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbVJlbW92ZWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbXNDbGVhcmVkKToKKyAg
ICAgICAgU2ltaWxhciB0byBgV0kuUmVzb3VyY2VDb2xsZWN0aW9uYCwgY3JlYXRlIGEgc3ViY2xh
c3Mgb2YgYFdJLkNvbGxlY3Rpb25gIHRoYXQgbWFpbnRhaW5zIGl0J3MKKyAgICAgICAgb3duIHN1
Yi1gV0kuQW5pbWF0aW9uQ29sbGVjdGlvbmBzIGZvciBlYWNoIHR5cGUgb2YgYFdJLkFuaW1hdGlv
bi5UeXBlYC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qczog
QWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmZy
b21QYXlsb2FkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlv
blR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJl
Y3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1vZGUpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvbklkKToKKyAgICAgICAg
KFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGJhY2t0cmFjZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb24ucHJvdG90eXBlLmdldCBhbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bi5wcm90b3R5cGUuZ2V0IHN0YXJ0RGVsYXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS5nZXQgZW5kRGVsYXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQg
aXRlcmF0aW9uQ291bnQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRl
cmF0aW9uU3RhcnQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0
aW9uRHVyYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgdGltaW5n
RnVuY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgcGxheWJhY2tE
aXJlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZmlsbE1vZGUp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQga2V5ZnJhbWVzKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5wcm90b3R5cGUucmVxdWVzdEVmZmVjdFRhcmdldCk6CisgICAgICAgIChXSS5B
bmltYXRpb24ucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
LnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuX3VwZGF0ZUVmZmVjdCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1v
dGVPYmplY3QuanM6CisgICAgICAgIChXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlvbik6
IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMuCisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5m
byk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmlzVGFiQWxsb3dlZCk6Cisg
ICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgdHlwZSk6Cisg
ICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93UmVwcmVzZW50
ZWRPYmplY3QpOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLmNhblNob3dSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIChXSS5HcmFwaGljc1Rh
YkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jbG9zZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6IEFkZGVkLgorICAgICAgICAoV0ku
R3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxp
bmVTZWxlY3Rpb25EaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzLgor
ICAgICAgICBSZW5hbWUgdGhlIENhbnZhcyBUYWIgdG8gR3JhcGhpY3MgVGFiIGFuZCBkaXNwbGF5
IGZvdXIgc2VjdGlvbnM6CisgICAgICAgICAtIENhbnZhc2VzCisgICAgICAgICAtIFdlYiBBbmlt
YXRpb25zCisgICAgICAgICAtIENTUyBBbmltYXRpb25zCisgICAgICAgICAtIENTUyBUcmFuc2l0
aW9ucworCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwu
anM6CisgICAgICAgIChXSS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmNhblNob3dSZXBy
ZXNlbnRlZE9iamVjdCk6CisgICAgICAgIE9ubHkgYXBwZWFyIGlmIGEgYFdJLkNhbnZhc2Agb3Ig
YFdJLlJlY29yZGluZ2AgaXMgc2VsZWN0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3Rz
KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0
IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250
ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkdyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JE
cmFnRXZlbnQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5kcm9wWm9uZUhhbmRsZURyb3ApOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAg
ICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0dy
aWRCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVJbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hh
bmdlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
Ll9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFu
Z2UpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5f
aGFuZGxlQ2xpY2spOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmdyYXBo
aWNzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcg
PiBzZWN0aW9uKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBz
ZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6CisgICAgICAgICguY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRl
cik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+
IC5oZWFkZXIgPiBoMSk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAuY29udGVu
dC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xv
ci1zY2hlbWU6IGxpZ2h0KSAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlv
biA+IC5oZWFkZXIpOgorICAgICAgICBBZGQgc3RpY2t5IGhlYWRlcnMgZm9yIGVhY2ggb2YgdGhl
IHNlY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25D
b2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2Vk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
Y29udGVudFZpZXdBZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRW
aWV3TW91c2VFbnRlcik6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZp
ZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczogQWRk
ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uKToKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanM6IEFkZGVk
LgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcuZ2V0IHByZXZpZXdIZWlnaHQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNpemVEaWRDaGFuZ2UpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAg
IChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hTdWJ0aXRsZSk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQcmV2aWV3
LmFkZFRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
cmVmcmVzaFByZXZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLl9oYW5kbGVFZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5faGFuZGxlVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29u
dGV4dE1lbnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVu
dFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkKToKKyAgICAgICAgKC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3Qo
OmVtcHR5KTo6YmVmb3JlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVh
ZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
OmhvdmVyID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gLnByZXZpZXcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiAucHJldmlldyA+IHN2Zyk6CisgICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiAucHJldmlldyA+IHN2ZyByZWN0KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSk6CisgICAgICAgICguY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRoKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZl
IGNpcmNsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnID4gLmFjdGl2ZSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
LnByZXZpZXcgPiBzcGFuKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6
IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRs
ZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAg
ICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiAucHJldmlldyk6CisgICAgICAgIFZpc3VhbGl6ZSB0aGUgc3RhcnQvZW5kIGRlbGF5
IGFuZCBrZXlmcmFtZXMgb2YgdGhlIGdpdmVuIGFuaW1hdGlvbiBhcyBhIHNlcmllcyBvZiBiZXpp
ZXIKKyAgICAgICAgY3VydmVzIHNlcGFyYXRlZCBieSBtYXJrZXJzLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6CisgICAgICAg
IChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9u
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNl
dCBhbmltYXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24pOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hFZmZl
Y3RTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLl9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdl
ZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5f
aGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRT
dGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5jc3M6IEFkZGVkLgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwu
ZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9u
LWtleWZyYW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBh
bmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1h
dGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbik6CisgICAgICAgICguc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmlt
YXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMpOgorICAgICAgICAo
LnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxz
LXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVz
IC5Db2RlTWlycm9yKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0
aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRl
dGFpbHMtc2VjdGlvbik6CisgICAgICAgIFNob3cgY29sbGVjdGVkIGluZm9ybWF0aW9uIGFib3V0
IHRoZSBzZWxlY3RlZCBhbmltYXRpb24sIGl0cyBlZmZlY3QsIGFuZCBpdHMgdGFyZ2V0LgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAg
ICAgICAoV0kuQ2FudmFzTWFuYWdlcik6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5nZXQgY2FudmFzQ29sbGVjdGlvbik6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFu
YWdlci5wcm90b3R5cGUuZGlzYWJsZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5jYW52YXNBZGRlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5j
YW52YXNSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9zYXZl
UmVjb3JkaW5ncyk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUu
X21haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3Rv
dHlwZS5nZXQgY2FudmFzZXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5w
cm90b3R5cGUuX3JlbW92ZUNhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgIFJhdGhlciB0aGFuIGhh
dmUgdGhlIGBXSS5DYW52YXNUYWJDb250ZW50Vmlld2AgbWFpbmFpbiB0aGUgYFdJLkNhbnZhc0Nv
bGxlY3Rpb25gIGFuZCBoYXZlIHRvCisgICAgICAgIGxpc3RlbiBmb3IgZXZlbnRzIGZyb20gdGhl
IGBXSS5DYW52YXNNYW5hZ2VyYCwganVzdCBoYXZlIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAgaG9s
ZCBvbiB0bworICAgICAgICBpdCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEgZ2V0dGVyIGZvciBpdC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5qczoKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAo
V0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVt
cyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5k
bGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAg
IChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAg
ICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6Cisg
ICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWRkU2F2ZWRS
ZWNvcmRpbmcpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5
cGUuaGlkZGVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLmdldCBfaXRlbU1hcmdpbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXdzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRh
dGVOYXZpZ2F0aW9uSXRlbXMpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdD
b250ZW50Vmlldy5wcm90b3R5cGUuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hv
d0ltYWdlR3JpZCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVt
ZTogZGFyaykgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOiBEZWxldGVkLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAg
KFdJLkNhbnZhc0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6IEFkZGVkLgorICAgICAgICAoV0ku
Q2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2
ZW50KTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJv
cFpvbmVIYW5kbGVEcm9wKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5w
cm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5w
cm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90
eXBlLl9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgIChX
SS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOiBEZWxldGVkLgorICAgICAgICBN
b3ZlIHRoZSAiTG9nIENhbnZhcyBDb250ZXh0IiB0byBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUg
Y2FudmFzIGVsZW1lbnQgYnV0dG9uIGNvbnRleHQgbWVudS4KKyAgICAgICAgRHJpdmUtYnk6IGFk
ZCBhIGBXSS5Ecm9wWm9uZVZpZXdgIGZvciB3aGVuIHJlY29yZGluZyBKU09OIGZpbGVzIGFyZSBk
cmFnZ2VkIG9uIHRvcC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29u
dGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBh
bGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBDYW52YXMgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3Lmpz
OgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNvbGxl
Y3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVkLgorICAg
ICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0ZWRJdGVt
KTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmFk
ZENvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLnJlbW92ZUNvbnRlbnRWaWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dDb250ZW50UGxhY2Vob2xkZXIpOgorICAgICAg
ICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAg
ICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEl0ZW0pOgor
ICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2sp
OiBBZGRlZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0
U2VsZWN0ZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bGxlY3Rpb25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rp
b24gPiAucGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4KKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogRGVsZXRl
ZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1n
OmhvdmVyKTogRGVsZXRlZC4KKyAgICAgICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgY2xp
Y2tpbmcgb3V0c2lkZSBvZiBhbnkgb2YgdGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRpc21pc3Mg
dGhlCisgICAgICAgIGN1cnJlbnQgc2VsZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNvIGJlIGFi
bGUgdG8gZ2V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAgIChXSS5E
ZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgRW5z
dXJlIHRoYXQgYDBgIGlzIGNvbnNpZGVyZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKyAgICAg
ICAgKFdJLmNvbnRlbnRMb2FkZWQpOgorICAgICAgICAoV0kudGFiQ29udGVudFZpZXdDbGFzc0Zv
clJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRl
bnRWaWV3LmpzOgorICAgICAgICAoV0kuQ29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJlc2VudGVk
T2JqZWN0KToKKyAgICAgICAgKFdJLkNvbnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICBB
bGxvdyBgV0kuQW5pbWF0aW9uYCB0byBiZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvTWFpbi5jc3M6CisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBB
ZGRlZC4KKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhcik6
IEFkZGVkLgorICAgICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0pOiBBZGRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlv
bi1pdGVtLWhlbHApOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZp
Z2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAgICAoLm1l
c3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAu
aXRlbSk6IERlbGV0ZWQuCisgICAgICAgIEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9uSXRlbUhl
bHBgIHRvIGJlIHVzZWQgaW5kZXBlbmRlbnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3
YC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qczoK
KyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChX
SS5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRlZCk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qczoKKyAg
ICAgICAgKFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgorICAgICAg
ICBBZGQgYSBmYWxsYmFjayBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAg
ICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGlt
Zyk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4g
LnJlc291cmNlLmltYWdlIGltZzpob3Zlcik6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogbW92
ZSB0aGVzZSBzdHlsZXMgdG8gdGhlIHJpZ2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3JlIHNwZWNp
ZmljLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAg
ICAoV0kuQ2FudmFzLmRpc3BsYXlOYW1lRm9yQ29udGV4dFR5cGUpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5kaXNw
bGF5TmFtZUZvclJlY29yZGluZ1R5cGUpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBs
b2NhbGl6ZWQgc3RyaW5ncy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3Jk
aW5nQ29udGVudFZpZXcuY3NzOgorICAgICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAg
ZnJvbSBhbGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3QgZXhpc3Qg
YW55bW9yZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAgICAgICAq
IExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0LmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
VGVzdC9UZXN0SGFybmVzcy5qczoKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5leHBl
Y3RFbXB0eSk6IEFkZGVkLgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdE5v
dEVtcHR5KTogQWRkZWQuCisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGF0
aW9uTWVzc2FnZUZvcm1hdCk6CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVj
dGVkVmFsdWVGb3JtYXQpOgorICAgICAgICBBZGQgdXRpbGl0eSBmdW5jdGlvbiBmb3IgY2hlY2tp
bmcgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgZW1wdHk6CisgICAgICAgICAtIEFycmF5IGBs
ZW5ndGggPT09IDBgCisgICAgICAgICAtIFN0cmluZyBgbGVuZ3RoID09PSAwYAorICAgICAgICAg
LSBTZXQgYHNpemUgPT09IDBgCisgICAgICAgICAtIE1hcCBgc2l6ZSA9PT0gMGAKKyAgICAgICAg
IC0gT2JqZWN0IGBpc0VtcHR5T2JqZWN0YAorICAgICAgICBBbnkgb3RoZXIgdHlwZSB3aWxsIGF1
dG9tYXRpY2FsbHkgZmFpbCwgYXMgbm9uLW9iamVjdHMgY2FuJ3QgYmUgImVtcHR5IiAoZS5nLiBg
NDJgKS4KKwogMjAyMC0wMS0yNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogZG9uJ3QgdXNlIGA6bWF0Y2hlcyg6YmVmb3JlLCA6YWZ0
ZXIpYCBhZnRlciByMjU1MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgppbmRleCBiZWFmOGRlMjhhYzc1M2UzN2Vm
MmJlODljMDFmY2IwYmQ1M2RhZmJiLi4yMmVlODgyNDc5OTljZDU4MjVhNWVhMzE2NzdlZjZiNDc0
YzY4MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0FuaW1hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KQEAgLTE0LDYgKzE0LDUxIEBACiAgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImVudW0iOiBbInJlYWR5IiwgImRlbGF5ZWQi
LCAiYWN0aXZlIiwgImNhbmNlbGVkIiwgImRvbmUiXQogICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiUGxheWJhY2tEaXJlY3Rpb24iLAorICAgICAgICAgICAgInR5cGUi
OiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub3JtYWwiLCAicmV2ZXJzZSIsICJh
bHRlcm5hdGUiLCAiYWx0ZXJuYXRlLXJldmVyc2UiXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiRmlsbE1vZGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5n
IiwKKyAgICAgICAgICAgICJlbnVtIjogWyJub25lIiwgImZvcndhcmRzIiwgImJhY2t3YXJkcyIs
ICJib3RoIiwgImF1dG8iXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQi
OiAiQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklk
IiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJj
c3NBbmltYXRpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGBhbmltYXRpb24tbmFtZWAg
Q1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGB0cmFuc2l0aW9uUHJvcGVy
dHlgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY3Nz
VHJhbnNpdGlvblByb3BlcnR5IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGB0cmFuc2l0aW9uLXBy
b3BlcnR5YCBDU1MgcHJvcGVydHkuIFNob3VsZCBub3QgYmUgcHJvdmlkZWQgaWYgYGFuaW1hdGlv
bk5hbWVgIGlzIGFsc28gcHJvdmlkZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYmFja3RyYWNlIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICIkcmVmIjogIkNvbnNvbGUuQ2FsbEZyYW1lIiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiQmFja3RyYWNlIHRoYXQgd2FzIGNhcHR1cmVkIHdoZW4gdGhpcyBgV2ViQW5pbWF0
aW9uYCB3YXMgY3JlYXRlZC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImlkIjogIkVmZmVjdCIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdGFydERlbGF5IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kRGVsYXkiLCAidHlwZSI6ICJudW1iZXIiLCAi
b3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25D
b3VudCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJOdW1iZXIgb2YgaXRlcmF0aW9ucyBpbiB0aGUgYW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIml0ZXJhdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkluZGV4IG9mIHdoaWNoIGl0ZXJhdGlvbiB0byBz
dGFydCBhdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25EdXJhdGlv
biIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJU
b3RhbCB0aW1lIG9mIGVhY2ggaXRlcmF0aW9uLCBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMuIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltaW5nRnVuY3Rpb24iLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ1NTIHRpbWluZyBmdW5j
dGlvbiBvZiB0aGUgb3ZlcmFsbCBhbmltYXRpb24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicGxheWJhY2tEaXJlY3Rpb24iLCAiJHJlZiI6ICJQbGF5YmFja0RpcmVjdGlvbiIsICJv
cHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZpbGxNb2RlIiwg
IiRyZWYiOiAiRmlsbE1vZGUiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJrZXlmcmFtZXMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYi
OiAiS2V5ZnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiS2V5ZnJhbWUiLAorICAgICAgICAg
ICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0
aW9uIjogIkRlY2ltYWwgcGVyY2VudGFnZSBbMCwxXSByZXByZXNlbnRpbmcgd2hlcmUgdGhpcyBr
ZXlmcmFtZSBpcyBpbiB0aGUgZW50aXJlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24uIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZWFzaW5nIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNTUyB0aW1pbmcgZnVuY3Rpb24gZm9yIGhv
dyB0aGUgYHN0eWxlYCBpcyBhcHBsaWVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InN0eWxlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNTUyBzdHlsZSBkZWNsYXJhdGlvbiBvZiB0aGUgQ1NTIHByb3BlcnRpZXMgdGhhdCB3aWxs
IGJlIGFuaW1hdGVkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAg
ICAgICAgICAgICAiaWQiOiAiVHJhY2tpbmdVcGRhdGUiLAogICAgICAgICAgICAgInR5cGUiOiAi
b2JqZWN0IiwKQEAgLTI3LDYgKzcyLDM1IEBACiAgICAgICAgIH0KICAgICBdLAogICAgICJjb21t
YW5kcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZW5hYmxlIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIENhbnZhcyBkb21haW4gZXZlbnRzLiIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZGlzYWJsZSIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgQ2FudmFzIGRvbWFpbiBldmVudHMuIgor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXF1ZXN0RWZmZWN0
VGFyZ2V0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBgRE9NLk5vZGVJ
ZGAgZm9yIHRoZSB0YXJnZXQgb2YgdGhlIGVmZmVjdCBvZiB0aGUgYW5pbWF0aW9uIHdpdGggdGhl
IGdpdmVuIGBBbmltYXRpb25JZGAuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25J
ZCIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIgfQorICAgICAg
ICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXNv
bHZlQW5pbWF0aW9uIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXNvbHZlcyBKYXZh
U2NyaXB0IGBXZWJBbmltYXRpb25gIG9iamVjdCBmb3IgZ2l2ZW4gYEFuaW1hdGlvbklkYC4iLAor
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJh
bmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiU3ltYm9saWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRv
IHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0cy4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdCIsICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAg
ICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInN0YXJ0VHJhY2tpbmciLAogICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRyYWNraW5nIGFuaW1hdGlvbnMuIFRoaXMgd2lsbCBw
cm9kdWNlIGEgYHRyYWNraW5nU3RhcnRgIGV2ZW50LiIKQEAgLTM3LDYgKzExMSwzNSBAQAogICAg
ICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWworICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJhbmltYXRpb25DcmVhdGVkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJE
aXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1hdGlvbmAgaXMgY3JlYXRlZC4iLAorICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRp
b24iLCAiJHJlZiI6ICJBbmltYXRpb24iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZWZmZWN0Q2hhbmdlZCIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgZWZmZWN0IG9mIGFueSBh
bmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAi
QW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJl
ZiI6ICJFZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBv
bWl0dGVkIHdoZW4gdGhlIGVmZmVjdCBpcyByZW1vdmVkIHdpdGhvdXQgYSByZXBsYWNlbWVudC4i
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAidGFyZ2V0Q2hhbmdlZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0
Y2hlZCB3aGVuZXZlciB0aGUgdGFyZ2V0IG9mIGFueSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBp
cyBjaGFuZ2VkIGluIGFueSB3YXkuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25J
ZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJhbmltYXRpb25EZXN0cm95ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkRpc3BhdGNoZWQgd2hlbmV2ZXIgYSBgV2ViQW5pbWF0aW9uYCBpcyBkZXN0cm95ZWQuIiwKKyAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5p
bWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJ0cmFja2luZ1N0YXJ0IiwKICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIGFmdGVyIGBzdGFydFRyYWNraW5n
YCBjb21tYW5kLiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5p
bWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCmlu
ZGV4IDdjNzJmNjI0YzMzMGFmOTZiYTcwYjdhZTRlOTJiNTAxY2ExMDEwN2UuLmZkM2ViOWRiZGU5
YmMxYWIwYjk3ZjBhMDcxZTAwZTgwZmI4MTMxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DU1NBbmltYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbmltYXRp
b24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogCkBAIC0zOSw2ICs0MCw5IEBAIFJlZjxDU1NBbmltYXRpb24+IENTU0Fu
aW1hdGlvbjo6Y3JlYXRlKEVsZW1lbnQmIG93bmluZ0VsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYK
IHsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ1NTQW5pbWF0aW9uKG93bmluZ0Vs
ZW1lbnQsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxlKSk7CiAgICAgcmVzdWx0LT5pbml0aWFs
aXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCmluZGV4
IGRmZjVmYjFmNzlhODljNTY2MGE0OWMxYjM2NDNkZDA3ZDgyNDMyNzEuLmFhYWU1ZTJkMGM2MTcy
MGNkMTA4ZGQ2ZGNlNTk1MTljYTBhYzNlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
Q1NTVHJhbnNpdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlv
bi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUVmZmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKQEAgLTQwLDYgKzQxLDkgQEAgUmVmPENTU1RyYW5zaXRpb24+IENT
U1RyYW5zaXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25pbmdFbGVtZW50LCBDU1NQcm9wZXJ0eUlE
IHAKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ1NTVHJhbnNpdGlvbihvd25pbmdF
bGVtZW50LCBwcm9wZXJ0eSwgZ2VuZXJhdGlvblRpbWUsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0
eWxlLCByZXZlcnNpbmdBZGp1c3RlZFN0YXJ0U3R5bGUsIHJldmVyc2luZ1Nob3J0ZW5pbmdGYWN0
b3IpKTsKICAgICByZXN1bHQtPmluaXRpYWxpemUob2xkU3R5bGUsIG5ld1N0eWxlKTsKICAgICBy
ZXN1bHQtPnNldFRpbWluZ1Byb3BlcnRpZXMoZGVsYXksIGR1cmF0aW9uKTsKKworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7
CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcAppbmRleCAyYjRkODZkOGNjMjU5ZWMxZGQ1NGEyOTU5NjZlZjM5OWNm
OWY5MTlkLi4zYWY1ZDM3Y2U0ZThjN2U5ZDUyZGI4MDliMzcxY2RjMzQ5ZGY4ZGY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTExMDIsNyArMTEw
Miw3IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQogCiB2b2lkIEtleWZyYW1l
RWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0ZWQoKQogewotICAgIG1fc2hvdWxkUnVu
QWNjZWxlcmF0ZWQgPSBoYXNCbGVuZGluZ0tleWZyYW1lcygpOworICAgIG1fc2hvdWxkUnVuQWNj
ZWxlcmF0ZWQgPSAhIW1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOwogICAgIGZvciAoYXV0byBj
c3NQcm9wZXJ0eUlkIDogbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCkpIHsKICAgICAg
ICAgaWYgKCFDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxl
cmF0ZWQoY3NzUHJvcGVydHlJZCkpIHsKICAgICAgICAgICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0
ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5k
ZXggODU2MDk4MTI2MDNiZjczMDA1ODU1M2ZmY2EzMDAxMTdiZjdiZmQ5ZC4uZDU5ZTI4OTVlMGMz
OTdlM2M5NDk0NjMyOGM5ODgwY2M4OTI2ZWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0LmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgICAgICBDb21w
b3NpdGVPcGVyYXRpb25PckF1dG8gY29tcG9zaXRlIHsgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRv
OjpBdXRvIH07CiAgICAgfTsKIAorICAgIGNvbnN0IFZlY3RvcjxQYXJzZWRLZXlmcmFtZT4mIHBh
cnNlZEtleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VkS2V5ZnJhbWVzOyB9CisKICAg
ICBFbGVtZW50KiB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQogICAg
IHZvaWQgc2V0VGFyZ2V0KFJlZlB0cjxFbGVtZW50PiYmKTsKIApAQCAtMTM1LDcgKzEzNyw3IEBA
IHB1YmxpYzoKICAgICBib29sIGNvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9jb2xvckZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogCiAg
ICAgdm9pZCBjb21wdXRlRGVjbGFyYXRpdmVBbmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7Ci0g
ICAgYm9vbCBoYXNCbGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdL
ZXlmcmFtZXMuc2l6ZSgpOyB9CisgICAgY29uc3QgS2V5ZnJhbWVMaXN0JiBibGVuZGluZ0tleWZy
YW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXM7IH0KICAgICBjb25zdCBI
YXNoU2V0PENTU1Byb3BlcnR5SUQ+JiBhbmltYXRlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVy
biBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKTsgfQogCiAgICAgYm9vbCBjb21wdXRl
RXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24oTGF5b3V0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCAzYjg3OTBhYTNkOWVkMjY1ZDE3
NmRmYzdhMWI1ZjQ0ODY1MjczYjc3Li41NGVlOWRmMTcxNGVkYjMyNjNmNzY4ZTkxZGM0NjA4OTY0
ZGU1MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAt
NDUsNiArNDUsOCBAQAogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJB
bmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTMsMTEgKzU1LDMwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYkFuaW1h
dGlvbik7CiAKK0hhc2hTZXQ8V2ViQW5pbWF0aW9uKj4mIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2Vz
KGNvbnN0IExvY2tIb2xkZXImKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0
PFdlYkFuaW1hdGlvbio+PiBpbnN0YW5jZXM7CisgICAgcmV0dXJuIGluc3RhbmNlczsKK30KKwor
TG9jayYgV2ViQW5pbWF0aW9uOjppbnN0YW5jZXNNdXRleCgpCit7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5p
dGlhbGl6ZU11dGV4OworICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVNdXRleCwgW10gewor
ICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gbXV0ZXguZ2V0
KCk7Cit9CisKIFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QpCiB7CiAgICAgYXV0byByZXN1bHQg
PSBhZG9wdFJlZigqbmV3IFdlYkFuaW1hdGlvbihkb2N1bWVudCkpOwogICAgIHJlc3VsdC0+c2V0
RWZmZWN0KGVmZmVjdCk7CiAgICAgcmVzdWx0LT5zZXRUaW1lbGluZSgmZG9jdW1lbnQudGltZWxp
bmUoKSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNjcsNiAr
ODgsOSBAQCBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZQogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVm
ZmVjdCk7CiAgICAgaWYgKHRpbWVsaW5lKQogICAgICAgICByZXN1bHQtPnNldFRpbWVsaW5lKHRp
bWVsaW5lKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5p
bWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC03Nyw2
ICsxMDEsOSBAQCBXZWJBbmltYXRpb246OldlYkFuaW1hdGlvbihEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOwogICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIGlu
c3RhbmNlcyhsb2NrKS5hZGQodGhpcyk7CiB9CiAKIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlv
bigpCkBAIC04NSw2ICsxMTIsMTAgQEAgV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKIAog
ICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5lLT5mb3JnZXRBbmltYXRpb24o
dGhpcyk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgQVNT
RVJUKGluc3RhbmNlcyhsb2NrKS5jb250YWlucyh0aGlzKSk7CisgICAgaW5zdGFuY2VzKGxvY2sp
LnJlbW92ZSh0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OmNvbnRleHREZXN0cm95ZWQo
KQpAQCAtMTE2LDYgKzE0Nyw4IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp1bnN1c3BlbmRFZmZlY3RJ
bnZhbGlkYXRpb24oKQogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSgp
CiB7CiAgICAgdGltaW5nRGlkQ2hhbmdlKERpZFNlZWs6Ok5vLCBTeW5jaHJvbm91c2x5Tm90aWZ5
OjpZZXMpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUaW1pbmcoKnRoaXMpOwogfQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZm
ZWN0KFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0KQpAQCAtMTkwLDcgKzIyMyw3
IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRFZmZlY3RJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9u
RWZmZWN0PiYmIG5ld0VmZmVjdCwgYm9vbCBkCiAgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmlt
YXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7CiAgICAgfQogCi0gICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoKnRo
aXMpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZm
ZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVsaW5lKFJlZlB0cjxB
bmltYXRpb25UaW1lbGluZT4mJiB0aW1lbGluZSkKQEAgLTI0OSwxNCArMjgyLDE1IEBAIHZvaWQg
V2ViQW5pbWF0aW9uOjpzZXRUaW1lbGluZUludGVybmFsKFJlZlB0cjxBbmltYXRpb25UaW1lbGlu
ZT4mJiB0aW1lbGluZSkKIAogdm9pZCBXZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5n
ZShFbGVtZW50KiBwcmV2aW91c1RhcmdldCwgRWxlbWVudCogbmV3VGFyZ2V0KQogewotICAgIGlm
ICghbV90aW1lbGluZSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3RpbWVsaW5lKSB7Cisg
ICAgICAgIGlmIChwcmV2aW91c1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1h
dGlvbldhc1JlbW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKIAotICAg
IGlmIChwcmV2aW91c1RhcmdldCkKLSAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVt
b3ZlZEZyb21FbGVtZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOworICAgICAgICBpZiAobmV3
VGFyZ2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1l
bnQoKnRoaXMsICpuZXdUYXJnZXQpOworICAgIH0KIAotICAgIGlmIChuZXdUYXJnZXQpCi0gICAg
ICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFy
Z2V0KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRhcmdldCgqdGhpcyk7CiB9CiAKIE9wdGlvbmFsPGRvdWJsZT4gV2ViQW5pbWF0aW9u
OjpzdGFydFRpbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5o
CmluZGV4IGRhNGQ4ZWMzYmMyZTU3MGI0OGE1MWRiYzE0YTM0NGU2YzQ5YmEwNzAuLmM5OTYxM2Iy
NjYxZDc2NWYwZWUzYjg2ZDYxNGY5Y2QyYjdkYzIzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25P
ci5oIgogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0
aWVzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFya2FibGUu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+
CkBAIC01NCw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkFuaW1hdGlvbj4g
Y3JlYXRlKERvY3VtZW50JiwgQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsK
ICAgICB+V2ViQW5pbWF0aW9uKCk7CiAKKyAgICBzdGF0aWMgSGFzaFNldDxXZWJBbmltYXRpb24q
PiYgaW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICBzdGF0aWMgTG9jayYgaW5zdGFu
Y2VzTXV0ZXgoKTsKKwogICAgIHZpcnR1YWwgYm9vbCBpc0RlY2xhcmF0aXZlQW5pbWF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NBbmltYXRpb24o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU1RyYW5zaXRp
b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkMGM0MzBlMmJiODgw
YTZlMzU4M2E5OThkNmRjZmMxNDNiZDZlYmRlLi4zZGM3YjQ5NGQ2NjU2YTkxYzdkZDljNjhlMWM5
ZWFmNzg5NjY2ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNzIwLDYgKzcyMCw5IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50CiAgICAgaWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKICAgICAgICAgY2Fu
dmFzQWdlbnQtPmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKIAorICAgIGlmIChhdXRvKiBhbmltYXRp
b25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CisK
ICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0TG9hZChm
cmFtZS5kb2N1bWVudCgpKTsKIApAQCAtMTEzMCwxNSArMTEzMywzNyBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmCiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsQXBwbHlLZXlmcmFtZUVmZmVj
dCh0YXJnZXQsIGVmZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
K3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlv
biYgYW5pbWF0aW9uKQogewotICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQotICAgICAgICBh
bmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7Cisg
ICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZFNl
dFdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworICAgIGVsc2UgaWYgKGF1dG8qIGFuaW1h
dGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlv
bkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRTZXRXZWJBbmltYXRpb25FZmZl
Y3QoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1
dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2Vu
dC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3Zv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlv
bkFnZW50LT5kaWRDcmVhdGVXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICBpZiAoYXV0byogYW5pbWF0
aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24o
YW5pbWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQogICAgICAgICBh
bmltYXRpb25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oCmluZGV4IGU3ODE4MzY0MGEyOTlhZTQxMDcyODVlZjRjMjhhYzgxZDk0MGExZDAuLmIyNDZl
YWE1NTlhNzUyNjVjODkwZGZhNDdkMDFkMzExYzE4NmE0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMwNSw3ICsz
MDUsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlm
cmFtZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWlu
Zyk7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1h
dGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmlt
YXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1p
bmcoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdl
YkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdl
YkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0
ZUNoYW5nZWQoUGFnZSYpOwpAQCAtNTA1LDcgKzUwOCwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5n
KTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRX
ZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24m
KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
LCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb25J
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9p
ZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFu
aW1hdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJik7CkBAIC0xNDY2LDExICsxNDcyLDMyIEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYg
dGFyZ2V0LCBLCiAgICAgICAgIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgdGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAo
YXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0
KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQotICAgICAgICBkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOwor
ICAgICAgICBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRz
LCBhbmltYXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlv
bikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAo
YXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0
KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRp
b24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5z
dHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlv
bi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUYXJnZXRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQor
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpKQorICAgICAgICBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCBhbmltYXRpb24pOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCmlu
ZGV4IDFmOWEwZDdjNTMyYTNmOTA4NTZjMTg0YTFmZmMzYjFjZjM1ZWZjODcuLmQ3YTJmNzE5NThk
OTQzY2NjYWM0MzRlYWM5M2UzM2RhZTI3Y2M0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgdm9pZCBJ
bnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCgpCiAgICAgbV9wYWdlRE9NRGVidWdnZXJBZ2VudCA9
IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JDYW52YXNBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9w
ZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOworICAgIG1fZW5hYmxl
ZEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKICAgICBtX3RyYWNraW5nSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCBmNmZlYTdkYTIxMzYwZGQwOGNjM2Q5
NjZiMTRlMmFhYzQ2NTQ0OTE1Li5mNTljM2RiZGNhZjc4Y2Y5YzZkOGRiYjQzMmRjY2YyMmYxNWQ1
MDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRz
LmgKQEAgLTE1Niw2ICsxNTYsOSBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQqIHBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRQZXJzaXN0
ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50
KSB7IG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KIAorICAg
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBlbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQo
KSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQorICAg
IHZvaWQgc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlv
bkFnZW50KiBhZ2VudCkgeyBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50
OyB9CisKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogdHJhY2tpbmdJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDsgfQogICAgIHZvaWQgc2V0VHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlv
bkFnZW50ID0gYWdlbnQ7IH0KIApAQCAtMTkwLDYgKzE5Myw3IEBAIHByaXZhdGU6CiAgICAgUGFn
ZURPTURlYnVnZ2VyQWdlbnQqIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQgeyBudWxscHRyIH07CiAg
ICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQqIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgeyBudWxscHRy
IH07CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fcGVyc2lzdGVudEluc3BlY3RvckFu
aW1hdGlvbkFnZW50IHsgbnVsbHB0ciB9OworICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBt
X2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCogbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50IHsgbnVs
bHB0ciB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAppbmRleCBkZTlhMmM1OWJkYWJjMjkw
ODk2Yzk2MzljZWFiYjRlMmM0NzNiODI5Li4yMTQzYjNkYmVmMGIxMjhmMGQ3ZjM3ZGVjMGQ2NTE2
YmE5YThmZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcApAQCAtMjksMjkgKzI5LDE5OCBAQAog
I2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVjdC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVjdFBo
YXNlLmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1
ZGUgIkNTU1RyYW5zaXRpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkRl
Y2xhcmF0aXZlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCisjaW5jbHVkZSAiRmlsbE1vZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5o
IgorI2luY2x1ZGUgIkpTV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3Qu
aCIKKyNpbmNsdWRlICJLZXlmcmFtZUxpc3QuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiUGxheWJhY2tEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5j
bHVkZSAiVGltaW5nRnVuY3Rpb24uaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb24uaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JbnNwZWN0b3JFbnZpcm9ubWVudC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5j
bHVkZSA8d3RmL1N0b3B3YXRjaC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsK
IAorc3RhdGljIE9wdGlvbmFsPGRvdWJsZT4gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoY29uc3Qg
U2Vjb25kcyYgc2Vjb25kcykKK3sKKyAgICBpZiAoc2Vjb25kcyA9PSBTZWNvbmRzOjppbmZpbml0
eSgpIHx8IHNlY29uZHMgPT0gU2Vjb25kczo6bmFuKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgcmV0dXJuIHNlY29uZHMubWlsbGlzZWNvbmRzKCk7Cit9CisKK3N0YXRpYyBP
cHRpb25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9u
PiBwcm90b2NvbFZhbHVlRm9yUGxheWJhY2tEaXJlY3Rpb24oUGxheWJhY2tEaXJlY3Rpb24gcGxh
eWJhY2tEaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChwbGF5YmFja0RpcmVjdGlvbikgeworICAg
IGNhc2UgUGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbDoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbDsKKyAgICBj
YXNlIFBsYXliYWNrRGlyZWN0aW9uOjpSZXZlcnNlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9y
OjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZTsKKyAgICBj
YXNlIFBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGU6CisgICAgICAgIHJldHVybiBJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGU7Cisg
ICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgcmV0
dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246OkFs
dGVybmF0ZVJldmVyc2U7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworc3RhdGljIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU+IHByb3RvY29sVmFsdWVGb3JGaWxsTW9kZShGaWxs
TW9kZSBmaWxsTW9kZSkKK3sKKyAgICBzd2l0Y2ggKGZpbGxNb2RlKSB7CisgICAgY2FzZSBGaWxs
TW9kZTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlv
bjo6RmlsbE1vZGU6Ok5vbmU7CisgICAgY2FzZSBGaWxsTW9kZTo6Rm9yd2FyZHM6CisgICAgICAg
IHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpGb3J3YXJk
czsKKyAgICBjYXNlIEZpbGxNb2RlOjpCYWNrd2FyZHM6CisgICAgICAgIHJldHVybiBJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCYWNrd2FyZHM7CisgICAgY2FzZSBG
aWxsTW9kZTo6Qm90aDoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1h
dGlvbjo6RmlsbE1vZGU6OkJvdGg7CisgICAgY2FzZSBGaWxsTW9kZTo6QXV0bzoKKyAgICAgICAg
cmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkF1dG87Cisg
ICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKK30KKworc3RhdGljIFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFu
aW1hdGlvbjo6S2V5ZnJhbWU+PiBidWlsZE9iamVjdEZvcktleWZyYW1lcyhLZXlmcmFtZUVmZmVj
dCYga2V5ZnJhbWVFZmZlY3QpCit7CisgICAgYXV0byBrZXlmcmFtZXNQYXlsb2FkID0gSlNPTjo6
QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lPjo6Y3JlYXRl
KCk7CisKKyAgICBjb25zdCBhdXRvJiBibGVuZGluZ0tleWZyYW1lcyA9IGtleWZyYW1lRWZmZWN0
LmJsZW5kaW5nS2V5ZnJhbWVzKCk7CisgICAgY29uc3QgYXV0byYgcGFyc2VkS2V5ZnJhbWVzID0g
a2V5ZnJhbWVFZmZlY3QucGFyc2VkS2V5ZnJhbWVzKCk7CisKKyAgICBpZiAoaXM8RGVjbGFyYXRp
dmVBbmltYXRpb24+KGtleWZyYW1lRWZmZWN0LmFuaW1hdGlvbigpKSkgeworICAgICAgICBBU1NF
UlQoa2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCkpOworICAgICAgICBhdXRvKiByZW5kZXJlciA9IGtl
eWZyYW1lRWZmZWN0LnRhcmdldCgpLT5yZW5kZXJlcigpOworCisgICAgICAgIC8vIFN5bnRoZXNp
emUgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBmb3IgZWFjaCBrZXlmcmFtZSBzbyB0aGUgZnJvbnRl
bmQgY2FuIGRpc3BsYXkgdGhlbS4KKyAgICAgICAgQ29tcHV0ZWRTdHlsZUV4dHJhY3RvciBjb21w
dXRlZFN0eWxlRXh0cmFjdG9yKGtleWZyYW1lRWZmZWN0LnRhcmdldCgpKTsKKworICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGJsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBibGVuZGluZ0tleWZyYW1lID0gYmxlbmRpbmdLZXlmcmFtZXNbaV07
CisKKyAgICAgICAgICAgIEFTU0VSVChibGVuZGluZ0tleWZyYW1lLnN0eWxlKCkpOworICAgICAg
ICAgICAgYXV0byYgc3R5bGUgPSAqYmxlbmRpbmdLZXlmcmFtZS5zdHlsZSgpOworCisgICAgICAg
ICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlv
bjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgLnNldE9mZnNldChibGVuZGlu
Z0tleWZyYW1lLmtleSgpKQorICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAgICAg
ICAgIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb247CisgICAgICAgICAgICBp
ZiAoIXBhcnNlZEtleWZyYW1lcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgdGltaW5nRnVu
Y3Rpb24gPSBwYXJzZWRLZXlmcmFtZXNbaV0udGltaW5nRnVuY3Rpb247CisgICAgICAgICAgICBp
ZiAoIXRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gYmxl
bmRpbmdLZXlmcmFtZS50aW1pbmdGdW5jdGlvbigpOworICAgICAgICAgICAgaWYgKCF0aW1pbmdG
dW5jdGlvbikKKyAgICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IGRvd25jYXN0PERlY2xh
cmF0aXZlQW5pbWF0aW9uPigqa2V5ZnJhbWVFZmZlY3QuYW5pbWF0aW9uKCkpLmJhY2tpbmdBbmlt
YXRpb24oKS50aW1pbmdGdW5jdGlvbigpOworICAgICAgICAgICAgaWYgKHRpbWluZ0Z1bmN0aW9u
KQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0RWFzaW5nKHRpbWluZ0Z1bmN0
aW9uLT5jc3NUZXh0KCkpOworCisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0eWxlUGF5bG9h
ZEJ1aWxkZXI7CisgICAgICAgICAgICBhdXRvJiBjc3NQcm9wZXJ0eUlkcyA9IGJsZW5kaW5nS2V5
ZnJhbWUucHJvcGVydGllcygpOworICAgICAgICAgICAgc2l6ZV90IGNvdW50ID0gY3NzUHJvcGVy
dHlJZHMuc2l6ZSgpOworICAgICAgICAgICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBjc3NQ
cm9wZXJ0eUlkcykgeworICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAg
aWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVydHlDdXN0b20pCisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBl
bmQoZ2V0UHJvcGVydHlOYW1lU3RyaW5nKGNzc1Byb3BlcnR5SWQpKTsKKyAgICAgICAgICAgICAg
ICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgiOiAiKTsKKyAgICAgICAgICAgICAgICBpZiAo
YXV0byB2YWx1ZSA9IGNvbXB1dGVkU3R5bGVFeHRyYWN0b3IudmFsdWVGb3JQcm9wZXJ0eUluU3R5
bGUoc3R5bGUsIGNzc1Byb3BlcnR5SWQsIHJlbmRlcmVyKSkKKyAgICAgICAgICAgICAgICAgICAg
c3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQodmFsdWUtPmNzc1RleHQoKSk7CisgICAgICAgICAg
ICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgICAgICBp
ZiAoY291bnQgPiAwKQorICAgICAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFw
cGVuZCgnICcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzdHlsZVBheWxvYWRC
dWlsZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldFN0
eWxlKHN0eWxlUGF5bG9hZEJ1aWxkZXIudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGtleWZy
YW1lc1BheWxvYWQtPmFkZEl0ZW0oV1RGTW92ZShrZXlmcmFtZVBheWxvYWQpKTsKKyAgICAgICAg
fQorICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcGFyc2VkS2V5ZnJhbWUg
OiBwYXJzZWRLZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGF1dG8ga2V5ZnJhbWVQYXlsb2FkID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZTo6Y3JlYXRlKCkKKyAgICAg
ICAgICAgICAgICAuc2V0T2Zmc2V0KHBhcnNlZEtleWZyYW1lLmNvbXB1dGVkT2Zmc2V0KQorICAg
ICAgICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAgICAgICAgIGlmICghcGFyc2VkS2V5ZnJh
bWUuZWFzaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNl
dEVhc2luZyhwYXJzZWRLZXlmcmFtZS5lYXNpbmcpOworICAgICAgICAgICAgZWxzZSBpZiAoY29u
c3QgYXV0byYgdGltaW5nRnVuY3Rpb24gPSBwYXJzZWRLZXlmcmFtZS50aW1pbmdGdW5jdGlvbikK
KyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyh0aW1pbmdGdW5jdGlv
bi0+Y3NzVGV4dCgpKTsKKworICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5zdHlsZS0+
aXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0U3R5bGUocGFy
c2VkS2V5ZnJhbWUuc3R5bGUtPmFzVGV4dCgpKTsKKworICAgICAgICAgICAga2V5ZnJhbWVzUGF5
bG9hZC0+YWRkSXRlbShXVEZNb3ZlKGtleWZyYW1lUGF5bG9hZCkpOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIGtleWZyYW1lc1BheWxvYWQ7Cit9CisKK3N0YXRpYyBSZWY8SW5zcGVj
dG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q+IGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KEFu
aW1hdGlvbkVmZmVjdCYgZWZmZWN0KQoreworICAgIGF1dG8gZWZmZWN0UGF5bG9hZCA9IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RWZmZWN0OjpjcmVhdGUoKQorICAgICAgICAucmVs
ZWFzZSgpOworCisgICAgaWYgKGF1dG8gc3RhcnREZWxheSA9IHByb3RvY29sVmFsdWVGb3JTZWNv
bmRzKGVmZmVjdC5kZWxheSgpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0U3RhcnREZWxh
eShzdGFydERlbGF5LnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8gZW5kRGVsYXkgPSBwcm90b2Nv
bFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QuZW5kRGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBheWxv
YWQtPnNldEVuZERlbGF5KGVuZERlbGF5LnZhbHVlKCkpOworCisgICAgZWZmZWN0UGF5bG9hZC0+
c2V0SXRlcmF0aW9uQ291bnQoZWZmZWN0Lml0ZXJhdGlvbnMoKSk7CisgICAgZWZmZWN0UGF5bG9h
ZC0+c2V0SXRlcmF0aW9uU3RhcnQoZWZmZWN0Lml0ZXJhdGlvblN0YXJ0KCkpOworCisgICAgaWYg
KGF1dG8gaXRlcmF0aW9uRHVyYXRpb24gPSBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3Qu
aXRlcmF0aW9uRHVyYXRpb24oKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlv
bkR1cmF0aW9uKGl0ZXJhdGlvbkR1cmF0aW9uLnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8qIHRp
bWluZ0Z1bmN0aW9uID0gZWZmZWN0LnRpbWluZ0Z1bmN0aW9uKCkpCisgICAgICAgIGVmZmVjdFBh
eWxvYWQtPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOworCisg
ICAgaWYgKGF1dG8gcGxheWJhY2tEaXJlY3Rpb24gPSBwcm90b2NvbFZhbHVlRm9yUGxheWJhY2tE
aXJlY3Rpb24oZWZmZWN0LmRpcmVjdGlvbigpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0
UGxheWJhY2tEaXJlY3Rpb24ocGxheWJhY2tEaXJlY3Rpb24udmFsdWUoKSk7CisKKyAgICBpZiAo
YXV0byBmaWxsTW9kZSA9IHByb3RvY29sVmFsdWVGb3JGaWxsTW9kZShlZmZlY3QuZmlsbCgpKSkK
KyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0RmlsbE1vZGUoZmlsbE1vZGUudmFsdWUoKSk7CisK
KyAgICBpZiAoaXM8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpCisgICAgICAgIGVmZmVjdFBheWxv
YWQtPnNldEtleWZyYW1lcyhidWlsZE9iamVjdEZvcktleWZyYW1lcyhkb3duY2FzdDxLZXlmcmFt
ZUVmZmVjdD4oZWZmZWN0KSkpOworCisgICAgcmV0dXJuIGVmZmVjdFBheWxvYWQ7Cit9CisKIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudChQYWdlQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogICAgIDogSW5zcGVjdG9yQWdlbnRCYXNlKCJBbmltYXRpb24iX3Ms
IGNvbnRleHQpCiAgICAgLCBtX2Zyb250ZW5kRGlzcGF0Y2hlcihtYWtlVW5pcXVlPEluc3BlY3Rv
cjo6QW5pbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVyPihjb250ZXh0LmZyb250ZW5kUm91dGVyKSkK
ICAgICAsIG1fYmFja2VuZERpc3BhdGNoZXIoSW5zcGVjdG9yOjpBbmltYXRpb25CYWNrZW5kRGlz
cGF0Y2hlcjo6Y3JlYXRlKGNvbnRleHQuYmFja2VuZERpc3BhdGNoZXIsIHRoaXMpKQorICAgICwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoY29udGV4dC5pbmplY3RlZFNjcmlwdE1hbmFnZXIpCisg
ICAgLCBtX2luc3BlY3RlZFBhZ2UoY29udGV4dC5pbnNwZWN0ZWRQYWdlKQorICAgICwgbV9hbmlt
YXRpb25EZXN0cm95ZWRUaW1lcigqdGhpcywgJkluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphbmlt
YXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKQogewogfQogCkBAIC02NywxMSArMjM2LDEwMyBAQCB2
b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CiAgICAgc3Rv
cFRyYWNraW5nKGlnbm9yZWQpOworICAgIGRpc2FibGUoaWdub3JlZCk7CiAKICAgICBBU1NFUlQo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLnBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
ID09IHRoaXMpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQZXJzaXN0ZW50SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0cik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCit7CisgICAgaWYgKG1faW5z
dHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlz
KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBkb21haW4gYWxyZWFkeSBlbmFi
bGVkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLnNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCh0aGlzKTsKKworICAgIGNvbnN0
IGF1dG8gZXhpc3RzSW5DdXJyZW50UGFnZSA9IFsmXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgeworICAgICAgICBpZiAoIWlzPERvY3VtZW50PihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2ODQ3NT4gV2ViIEluc3BlY3Rvcjog
Q29ycmVjdGx5IGRpc3BsYXkgaWZyYW1lJ3MgV2ViU29ja2V0cworICAgICAgICBhdXRvKiBkb2N1
bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICAg
ICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCkgPT0gJm1faW5zcGVjdGVkUGFnZTsKKyAgICB9Owor
CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2soV2ViQW5pbWF0aW9uOjppbnN0YW5jZXNN
dXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRvKiBhbmltYXRpb24gOiBXZWJBbmltYXRpb246Omlu
c3RhbmNlcyhsb2NrKSkgeworICAgICAgICAgICAgaWYgKGV4aXN0c0luQ3VycmVudFBhZ2UoYW5p
bWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICAgICAgICAgIGJpbmRB
bmltYXRpb24oKmFuaW1hdGlvbiwgZmFsc2UpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lk
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKK3sKKyAgICBt
X2luc3RydW1lbnRpbmdBZ2VudHMuc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51
bGxwdHIpOworCisgICAgcmVzZXQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6cmVxdWVzdEVmZmVjdFRhcmdldChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgYW5pbWF0aW9uSWQsIGludCogbm9kZUlkKQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9
IGFzc2VydEFuaW1hdGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5p
bWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkb21BZ2VudCA9IG1faW5zdHJ1
bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpOworICAgIGlmICghZG9tQWdlbnQpIHsK
KyAgICAgICAgZXJyb3JTdHJpbmcgPSAiRE9NIGRvbWFpbiBtdXN0IGJlIGVuYWJsZWQiX3M7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVm
ZmVjdCgpOworICAgIGlmICghaXM8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpIHsKKyAgICAgICAg
ZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCBkb2VzIG5vdCBo
YXZlIGFuIGVmZmVjdCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGtl
eWZyYW1lRWZmZWN0ID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KCplZmZlY3QpOworCisgICAg
YXV0byogdGFyZ2V0ID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQp
IHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25J
ZCBkb2VzIG5vdCBoYXZlIGEgdGFyZ2V0Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgKm5vZGVJZCA9IGRvbUFnZW50LT5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5n
LCB0YXJnZXQpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZlQW5p
bWF0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRpb25J
ZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkKK3sKKyAgICBhdXRvKiBhbmltYXRpb24g
PSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJpbmcsIGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFu
aW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogc3RhdGUgPSBhbmltYXRpb24t
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXhlY1N0YXRlKCk7CisgICAgYXV0byBpbmplY3Rl
ZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluamVjdGVkU2NyaXB0Rm9yKHN0YXRl
KTsKKyAgICBBU1NFUlQoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSk7CisKKyAgICBKU0M6
OkpTVmFsdWUgdmFsdWU7CisgICAgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHN0
YXRlKTsKKworICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2Jq
ZWN0Rm9yUHJvdG90eXBlKHN0YXRlKTsKKyAgICAgICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBnbG9i
YWxPYmplY3QsIGFuaW1hdGlvbik7CisgICAgfQorCisgICAgaWYgKCF2YWx1ZSkgeworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiSW50ZXJuYWwg
ZXJyb3I6IHVua25vd24gQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCJfczsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFN0cmluZyBvYmplY3RHcm91cE5hbWUgPSBvYmplY3RH
cm91cCA/ICpvYmplY3RHcm91cCA6IFN0cmluZygpOworICAgIHJlc3VsdCA9IGluamVjdGVkU2Ny
aXB0LndyYXBPYmplY3QodmFsdWUsIG9iamVjdEdyb3VwTmFtZSk7Cit9CisKIHZvaWQgSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OnN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
KQogewogICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCgpID09IHRoaXMpIHsKQEAgLTE3MCwxNiArNDMxLDE1MSBAQCB2b2lkIEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0YXJn
ZXQsIEtleWZyYW1lRQogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1VwZGF0ZSht
X2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMo
KSwgV1RGTW92ZShldmVudCkpOwogfQogCi12b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit2b2lk
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihh
bmltYXRpb24pKQogICAgICAgICBzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihkb3du
Y2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSk7CisKKyAgICBkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKKyAgICBkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUYXJnZXQoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYg
YW5pbWF0aW9uKQoreworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBB
bmltYXRpb24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9u
SWQgPSBmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogZWZmZWN0ID0gYW5pbWF0
aW9uLmVmZmVjdCgpKQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZWZmZWN0Q2hhbmdl
ZChhbmltYXRpb25JZCwgYnVpbGRPYmplY3RGb3JFZmZlY3QoKmVmZmVjdCkpOworICAgIGVsc2UK
KyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQs
IG51bGxwdHIpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAg
Ly8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2lu
ZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25J
ZChhbmltYXRpb24pOworICAgIGlmIChhbmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50YXJnZXRDaGFuZ2VkKGFuaW1hdGlv
bklkKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2ViQW5p
bWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmICghZmluZEFuaW1hdGlv
bklkKGFuaW1hdGlvbikuaXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYmluZEFuaW1hdGlvbihhbmltYXRpb24s
IHRydWUpOwogfQogCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveVdl
YkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8RGVjbGFy
YXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0RlY2xhcmF0
aXZlQW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKTsK
KworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRpb24gaXMg
dHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBmaW5kQW5p
bWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoIWFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAg
ICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30KKwordm9pZCBJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmIGZyYW1lKQoreworICAgIGlmIChm
cmFtZS5pc01haW5GcmFtZSgpKSB7CisgICAgICAgIHJlc2V0KCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiBhbmltYXRpb25JZHNUb1JlbW92ZTsKKyAgICBm
b3IgKGF1dG8mIFthbmltYXRpb25JZCwgYW5pbWF0aW9uXSA6IG1fYW5pbWF0aW9uSWRNYXApIHsK
KyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBhbmltYXRpb24tPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICAgICAgaWYgKGlzPERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpLmZyYW1lKCkgPT0gJmZyYW1lKQorICAgICAgICAgICAgICAgIGFuaW1hdGlv
bklkc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb25JZCk7CisgICAgICAgIH0KKyAgICB9CisgICAg
Zm9yIChjb25zdCBhdXRvJiBhbmltYXRpb25JZCA6IGFuaW1hdGlvbklkc1RvUmVtb3ZlKQorICAg
ICAgICB1bmJpbmRBbmltYXRpb24oYW5pbWF0aW9uSWQpOworfQorCitTdHJpbmcgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmZpbmRBbmltYXRpb25JZChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
K3sKKyAgICBmb3IgKGF1dG8mIFthbmltYXRpb25JZCwgZXhpc3RpbmdBbmltYXRpb25dIDogbV9h
bmltYXRpb25JZE1hcCkgeworICAgICAgICBpZiAoZXhpc3RpbmdBbmltYXRpb24gPT0gJmFuaW1h
dGlvbikKKyAgICAgICAgICAgIHJldHVybiBhbmltYXRpb25JZDsKKyAgICB9CisgICAgcmV0dXJu
IG51bGxTdHJpbmcoKTsKK30KKworV2ViQW5pbWF0aW9uKiBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6YXNzZXJ0QW5pbWF0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBhbmltYXRpb25JZCkKK3sKKyAgICBhdXRvKiBhbmltYXRpb24gPSBtX2FuaW1hdGlvbklkTWFw
LmdldChhbmltYXRpb25JZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIGVycm9yU3Ry
aW5nID0gIk1pc3NpbmcgYW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCJfczsKKyAgICBy
ZXR1cm4gYW5pbWF0aW9uOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpiaW5k
QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uLCBib29sIGNhcHR1cmVCYWNrdHJhY2Up
Cit7CisgICAgYXV0byBhbmltYXRpb25JZCA9IG1ha2VTdHJpbmcoImFuaW1hdGlvbjoiICsgSWRl
bnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpOworICAgIG1fYW5pbWF0aW9uSWRN
YXAuc2V0KGFuaW1hdGlvbklkLCAmYW5pbWF0aW9uKTsKKworICAgIGF1dG8gYW5pbWF0aW9uUGF5
bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6QW5pbWF0aW9uOjpjcmVhdGUo
KQorICAgICAgICAuc2V0QW5pbWF0aW9uSWQoYW5pbWF0aW9uSWQpCisgICAgICAgIC5yZWxlYXNl
KCk7CisKKyAgICBpZiAoaXM8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24pKQorICAgICAgICBhbmlt
YXRpb25QYXlsb2FkLT5zZXRDc3NBbmltYXRpb25OYW1lKGRvd25jYXN0PENTU0FuaW1hdGlvbj4o
YW5pbWF0aW9uKS5hbmltYXRpb25OYW1lKCkpOworICAgIGVsc2UgaWYgKGlzPENTU1RyYW5zaXRp
b24+KGFuaW1hdGlvbikpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldENzc1RyYW5zaXRp
b25Qcm9wZXJ0eShkb3duY2FzdDxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24pLnRyYW5zaXRpb25Q
cm9wZXJ0eSgpKTsKKworICAgIGlmIChhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24uZWZmZWN0KCkp
CisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldEVmZmVjdChidWlsZE9iamVjdEZvckVmZmVj
dCgqZWZmZWN0KSk7CisKKyAgICBpZiAoY2FwdHVyZUJhY2t0cmFjZSkgeworICAgICAgICBhdXRv
IHN0YWNrVHJhY2UgPSBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0V4ZWNTdGF0
ZTo6Y3VycmVudFN0YXRlKCksIEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3Rh
Y2tTaXplVG9DYXB0dXJlKTsKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0QmFja3RyYWNl
KHN0YWNrVHJhY2UtPmJ1aWxkSW5zcGVjdG9yQXJyYXkoKSk7CisgICAgfQorCisgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXItPmFuaW1hdGlvbkNyZWF0ZWQoV1RGTW92ZShhbmltYXRpb25QYXlsb2Fk
KSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnVuYmluZEFuaW1hdGlvbihj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAucmVtb3Zl
KGFuaW1hdGlvbklkKTsKKworICAgIC8vIFRoaXMgY2FuIGJlIGNhbGxlZCBpbiByZXNwb25zZSB0
byBHQy4gRHVlIHRvIHRoZSBzaW5nbGUtcHJvY2VzcyBtb2RlbCB1c2VkIGluIFdlYktpdDEsIHRo
ZQorICAgIC8vIGV2ZW50IG11c3QgYmUgZGlzcGF0Y2hlZCBmcm9tIGEgdGltZXIgdG8gcHJldmVu
dCB0aGUgZnJvbnRlbmQgZnJvbSBtYWtpbmcgSlMgYWxsb2NhdGlvbnMKKyAgICAvLyB3aGlsZSB0
aGUgR0MgaXMgc3RpbGwgYWN0aXZlLgorICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5hcHBlbmQo
YW5pbWF0aW9uSWQpOworCisgICAgaWYgKCFtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuc3RhcnRPbmVTaG90KDBf
cyk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3ll
ZFRpbWVyRmlyZWQoKQoreworICAgIGlmICghbV9yZW1vdmVkQW5pbWF0aW9uSWRzLnNpemUoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBpZGVudGlmaWVyIDogbV9yZW1vdmVk
QW5pbWF0aW9uSWRzKQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0aW9uRGVz
dHJveWVkKGlkZW50aWZpZXIpOworCisgICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmNsZWFyKCk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc2V0KCkKK3sKKyAgICBtX2Fu
aW1hdGlvbklkTWFwLmNsZWFyKCk7CisKKyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuY2xlYXIo
KTsKKworICAgIGlmIChtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuc3RvcCgpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNsYXJh
dGl2ZUFuaW1hdGlvbiYgYW5pbWF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCmluZGV4IDdhMjRiYmNi
YjFiMzMxZDE5MGRhNjBjMDBkMjFiZDkzNTQ4ZmFiMDAuLmQyNjZkN2VmMjFlNDJkODQxZGY2YzBk
MzgwNzNkZGVjMjljYWQ5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKQEAgLTI3LDE2ICsyNywyMSBA
QAogCiAjaW5jbHVkZSAiQ29tcHV0ZWRFZmZlY3RUaW1pbmcuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JXZWJBZ2VudEJhc2UuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFuaW1hdGlvbkVmZmVjdDsKIGNs
YXNzIERlY2xhcmF0aXZlQW5pbWF0aW9uOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50Owor
Y2xhc3MgRnJhbWU7CiBjbGFzcyBLZXlmcmFtZUVmZmVjdDsKK2NsYXNzIFBhZ2U7CiBjbGFzcyBX
ZWJBbmltYXRpb247CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwpAQCAtNTMsMjAgKzU4
LDQyIEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBBbmltYXRpb25C
YWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgcmVxdWVzdEVmZmVjdFRhcmdldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uSWQsIGludCogbm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc29sdmVBbmltYXRpb24o
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcqIG9i
amVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2Jq
ZWN0PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHdpbGxBcHBseUtleWZy
YW1lRWZmZWN0KEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5n
KTsKLSAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsK
KyAgICB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICB2
b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAg
ICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsK
KyAgICB2b2lkIGRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICB2b2lk
IHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZnJhbWVO
YXZpZ2F0ZWQoRnJhbWUmKTsKIAogcHJpdmF0ZToKKyAgICBTdHJpbmcgZmluZEFuaW1hdGlvbklk
KFdlYkFuaW1hdGlvbiYpOworICAgIFdlYkFuaW1hdGlvbiogYXNzZXJ0QW5pbWF0aW9uKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBiaW5kQW5pbWF0
aW9uKFdlYkFuaW1hdGlvbiYsIGJvb2wgY2FwdHVyZUJhY2t0cmFjZSk7CisgICAgdm9pZCB1bmJp
bmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBhbmltYXRp
b25EZXN0cm95ZWRUaW1lckZpcmVkKCk7CisgICAgdm9pZCByZXNldCgpOworCiAgICAgdm9pZCBz
dG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNsYXJhdGl2ZUFuaW1hdGlvbiYpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6QW5pbWF0aW9uRnJvbnRlbmREaXNwYXRj
aGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpBbmltYXRp
b25CYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKIAorICAgIEluc3BlY3Rv
cjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAgICBQ
YWdlJiBtX2luc3BlY3RlZFBhZ2U7CisKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQW5pbWF0aW9u
Kj4gbV9hbmltYXRpb25JZE1hcDsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRBbmltYXRp
b25JZHM7CisgICAgVGltZXIgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lcjsKKwogICAgIHN0cnVj
dCBUcmFja2VkRGVjbGFyYXRpdmVBbmltYXRpb25EYXRhIHsKICAgICAgICAgU3RyaW5nIHRyYWNr
aW5nQW5pbWF0aW9uSWQ7CiAgICAgICAgIENvbXB1dGVkRWZmZWN0VGltaW5nIGxhc3RDb21wdXRl
ZFRpbWluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYWVjYzc5YmMwY2E1NmZiNjVmZTAzMzBmMDhlNGVlNjg4
YmY4MWU4OS4uMGY0NmEzMDMzYWVmNDAwN2Y2ZWI4MzdhNjEwNWYwNWEwYzU5MDY3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKQEAgLTU2Niw3ICs1NjYsNyBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2Rl
VG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBkb2N1bWVudAogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChu
b2RlVG9QdXNoKTsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmlu
Zywgbm9kZVRvUHVzaCk7CiB9CiAKIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9ySWQo
aW50IGlkKQpAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5
U2VsZWN0b3IoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zCiAgICAg
fQogCiAgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSBxdWVyeVJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSkKLSAgICAgICAgKmVsZW1lbnRJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZWxlbWVu
dCk7CisgICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3Ry
aW5nLCBlbGVtZW50KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3Rv
ckFsbChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYg
c2VsZWN0b3JzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYgcmVzdWx0KQpAQCAtNjM5LDEz
ICs2MzksMjQgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGMKIH0KIAogaW50IEluc3BlY3RvckRP
TUFnZW50OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGVUb1B1c2gpCit7CisgICAg
RXJyb3JTdHJpbmcgaWdub3JlZDsKKyAgICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChp
Z25vcmVkLCBub2RlVG9QdXNoKTsKK30KKworaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9k
ZVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nIGVycm9yU3RyaW5nLCBOb2RlKiBub2RlVG9QdXNo
KQogewogICAgIEFTU0VSVChub2RlVG9QdXNoKTsgIC8vIEludmFsaWQgaW5wdXQKIAotICAgIGlm
ICghbV9kb2N1bWVudCkKKyAgICBpZiAoIW1fZG9jdW1lbnQpIHsKKyAgICAgICAgZXJyb3JTdHJp
bmcgPSAiTWlzc2luZyBkb2N1bWVudCJfczsKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKCFt
X2RvY3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpCisgICAgfQorCisgICAg
aWYgKCFtX2RvY3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMobV9kb2N1bWVudCkpIHsKKyAgICAg
ICAgZXJyb3JTdHJpbmcgPSAiRG9jdW1lbnQgbXVzdCBoYXZlIGJlZW4gcmVxdWVzdGVkIl9zOwog
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICAvLyBSZXR1cm4gaWQgaW4gY2FzZSB0aGUg
bm9kZSBpcyBrbm93bi4KICAgICBpbnQgcmVzdWx0ID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdl
dChub2RlVG9QdXNoKTsKQEAgLTc5MCw3ICs4MDEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpzZXROb2RlTmFtZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0
CiAgICAgaWYgKCFtX2RvbUVkaXRvci0+cmVtb3ZlQ2hpbGQoKnBhcmVudCwgKm9sZE5vZGUsIGVy
cm9yU3RyaW5nKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgKm5ld0lkID0gcHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChuZXdFbGVtZW50LnB0cigpKTsKKyAgICAqbmV3SWQgPSBwdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKGVycm9yU3RyaW5nLCBuZXdFbGVtZW50LnB0cigpKTsKICAgICBpZiAobV9jaGls
ZHJlblJlcXVlc3RlZC5jb250YWlucyhub2RlSWQpKQogICAgICAgICBwdXNoQ2hpbGROb2Rlc1Rv
RnJvbnRlbmQoKm5ld0lkKTsKIH0KQEAgLTgzMCw3ICs4NDEsNyBAQCB2b2lkIEluc3BlY3RvckRP
TUFnZW50OjpzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlk
LCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG5ld0lkID0gcHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZChuZXdOb2RlKTsKKyAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKGVycm9yU3RyaW5nLCBuZXdOb2RlKTsKIAogICAgIGJvb2wgY2hpbGRyZW5SZXF1
ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCk7CiAgICAgaWYgKGNo
aWxkcmVuUmVxdWVzdGVkKQpAQCAtMTQyMiw3ICsxNDMzLDcgQEAgdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6bW92ZVRvKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgaW50IHRh
cmdldEUKICAgICBpZiAoIW1fZG9tRWRpdG9yLT5pbnNlcnRCZWZvcmUoKnRhcmdldEVsZW1lbnQs
ICpub2RlLCBhbmNob3JOb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAg
ICpuZXdOb2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICpuZXdOb2Rl
SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6dW5kbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCkBAIC0x
NDk4LDExICsxNTA5LDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldEF0dHJpYnV0ZXMo
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBSZWZQCiAgICAgcmVzdWx0ID0g
YnVpbGRBcnJheUZvckVsZW1lbnRBdHRyaWJ1dGVzKGVsZW1lbnQpOwogfQogCi12b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0SWQsIGludCogbm9kZUlkKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUo
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5v
ZGVJZCkKIHsKICAgICBOb2RlKiBub2RlID0gbm9kZUZvck9iamVjdElkKG9iamVjdElkKTsKICAg
ICBpZiAobm9kZSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9k
ZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5n
LCBub2RlKTsKICAgICBlbHNlCiAgICAgICAgICpub2RlSWQgPSAwOwogfQpAQCAtMjY0Niw3ICsy
NjU3LDcgQEAgTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JPYmplY3RJZChjb25zdCBT
dHJpbmcmIG9iamVjdElkKQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhU
b0Zyb250ZW5kKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwYXRoLCBp
bnQqIG5vZGVJZCkKIHsKICAgICBpZiAoTm9kZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBhdGgpKQot
ICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAgICAg
Km5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogICAg
IGVsc2UKICAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBub2RlIGZvciBnaXZlbiBwYXRo
Il9zOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5oCmluZGV4IDUxNjM5YWJlYjg0ZjRkOTVkZWQzZjRmYjY0MDlhZDhmNjJhMjg5
NGUuLjdkZjBlODNlYjUzZDc1YzQxYzU1NGYxNDAxMjM1YmEyMTcxOTQxNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKQEAg
LTE4MCw2ICsxODAsOCBAQCBwdWJsaWM6CiAKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5kKE5v
ZGUqKTsKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgaW50IGRvY3Vt
ZW50Tm9kZUlkLCBOb2RlKik7CisgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSop
OworICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nLCBOb2RlKik7CiAg
ICAgTm9kZSogbm9kZUZvcklkKGludCBub2RlSWQpOwogICAgIGludCBib3VuZE5vZGVJZChjb25z
dCBOb2RlKik7CiAKQEAgLTIxNyw3ICsyMTksNiBAQCBwcml2YXRlOgogICAgIE5vZGUqIGFzc2Vy
dEVkaXRhYmxlTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogICAgIEVsZW1lbnQqIGFz
c2VydEVkaXRhYmxlRWxlbWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogCi0gICAgaW50
IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSopOwogICAgIHZvaWQgcHVzaENoaWxkTm9kZXNU
b0Zyb250ZW5kKGludCBub2RlSWQsIGludCBkZXB0aCA9IDEpOwogCiAgICAgUmVmPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gYnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqLCBpbnQgZGVw
dGgsIE5vZGVUb0lkTWFwKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA1
OWYzZmEzOTE1ZmZiNjk2ZGQxZTU0OTI0ZmJmZTQ1YjZiZTU0YjEzLi44MzkxYmZmZDQ5NDMwNGRl
MzU3NzVmZDE3NzIzMWNlZTQ1YWQ2ZjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMKQEAgLTEyNSwxMiArMTI1LDE1IEBAIGxvY2FsaXplZFN0cmluZ3NbIkFuIGVycm9yIG9jY3Vy
cmVkIHRyeWluZyB0byByZWFkIHRoZSBcdTIwMUMlc1x1MjAxRCB0YWJsZS4iXSA9CiBsb2NhbGl6
ZWRTdHJpbmdzWyJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiJdID0gIkFuIHVuZXhw
ZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0
ZWQgZXJyb3Igb2NjdXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iOwog
bG9jYWxpemVkU3RyaW5nc1siQW5nbGUiXSA9ICJBbmdsZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJB
bmltYXRpb24iXSA9ICJBbmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uICVk
Il0gPSAiQW5pbWF0aW9uICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAl
ZCBDYW5jZWxlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQgRmlyZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQg
RmlyZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCJd
ID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5p
bWF0aW9uIEZyYW1lIENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIENhbmNlbGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFt
ZSBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIl0g
PSAiQW5pbWF0aW9uIEZyYW1lIFJlcXVlc3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRp
b24gVGFyZ2V0Il0gPSAiQW5pbWF0aW9uIFRhcmdldCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9u
eW1vdXMgU2NyaXB0ICVkIl0gPSAiQW5vbnltb3VzIFNjcmlwdCAlZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbm9ueW1vdXMgU2NyaXB0cyJdID0gIkFub255bW91cyBTY3JpcHRzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkFub255bW91cyBTdHlsZSBTaGVldCAlZCJdID0gIkFub255bW91cyBTdHlsZSBT
aGVldCAlZCI7CkBAIC0yMDEsOSArMjA0LDExIEBAIGxvY2FsaXplZFN0cmluZ3NbIkNQVSJdID0g
IkNQVSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDUFUgVXNhZ2UiXSA9ICJDUFUgVXNhZ2UiOwogbG9j
YWxpemVkU3RyaW5nc1siQ1NQIEhhc2giXSA9ICJDU1AgSGFzaCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDU1MgQW5pbWF0aW9uIl0gPSAiQ1NTIEFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJD
U1MgQW5pbWF0aW9ucyJdID0gIkNTUyBBbmltYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNT
UyBDYW52YXMiXSA9ICJDU1MgQ2FudmFzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBDaGFuZ2Vz
OiJdID0gIkNTUyBDaGFuZ2VzOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgVHJhbnNpdGlvbiJd
ID0gIkNTUyBUcmFuc2l0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0aW9ucyJd
ID0gIkNTUyBUcmFuc2l0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgY2FudmFzIFx1MjAx
QyVzXHUyMDFEIl0gPSAiQ1NTIGNhbnZhcyBcdTIwMUMlc1x1MjAxRCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJDYWNoZWQiXSA9ICJDYWNoZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FsbCBGcmFtZXMg
VHJ1bmNhdGVkIl0gPSAiQ2FsbCBGcmFtZXMgVHJ1bmNhdGVkIjsKQEAgLTIxOCw2ICsyMjMsOCBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJDYW5jZWxlZCJdID0gIkNhbmNlbGVkIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNhbnZhcyJdID0gIkNhbnZhcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgJWQi
XSA9ICJDYW52YXMgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzICVzIl0gPSAiQ2FudmFz
ICVzIjsKKy8qIEJpdG1hcCBSZW5kZXJlciBpcyBhIHR5cGUgb2YgcmVuZGVyaW5nIGNvbnRleHQg
YXNzb2NpYXRlZCB3aXRoIGEgPGNhbnZhcz4gZWxlbWVudCAqLworbG9jYWxpemVkU3RyaW5nc1si
Q2FudmFzIENvbnRleHQgVHlwZSBCaXRtYXAgUmVuZGVyZXIiXSA9ICJCaXRtYXAgUmVuZGVyZXIi
OwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzIEVsZW1lbnQiXSA9ICJDYW52YXMgRWxlbWVudCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXNlcyJdID0gIkNhbnZhc2VzIjsKIC8qIENhcHR1cmUg
c2NyZWVuc2hvdCBvZiB0aGUgc2VsZWN0ZWQgRE9NIG5vZGUgKi8KQEAgLTU4Nyw2ICs1OTQsNyBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgQ29kZSJdID0gIkdsb2JhbCBDb2RlIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50Il0gPSAiR2xvYmFsIExleGlj
YWwgRW52aXJvbm1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIFZhcmlhYmxlcyJdID0g
Ikdsb2JhbCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siR3JhbW1hciJdID0gIkdyYW1t
YXIiOworbG9jYWxpemVkU3RyaW5nc1siR3JhcGhpY3MiXSA9ICJHcmFwaGljcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJHcm91cCJdID0gIkdyb3VwIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIEJ5
IFJlc291cmNlIl0gPSAiR3JvdXAgQnkgUmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1siR3Jv
dXAgTWVkaWEgUmVxdWVzdHMiXSA9ICJHcm91cCBNZWRpYSBSZXF1ZXN0cyI7CkBAIC02MzQsNiAr
NjQyLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siSW1hZ2VzIl0gPSAiSW1hZ2VzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkltYWdlczoiXSA9ICJJbWFnZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkltbWVk
aWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiXSA9ICJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkltcG9ydCJdID0gIkltcG9ydCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJJ
bXBvcnQgUmVjb3JkaW5nIl0gPSAiSW1wb3J0IFJlY29yZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJJbXBvcnRlZCJdID0gIkltcG9ydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIC0g
JXMiXSA9ICJJbXBvcnRlZCAtICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIFx1MjAx
NCAlcyJdID0gIkltcG9ydGVkIFx1MjAxNCAlcyI7CkBAIC02OTgsNiArNzA3LDcgQEAgbG9jYWxp
emVkU3RyaW5nc1siTG9jYWwgU3RvcmFnZSJdID0gIkxvY2FsIFN0b3JhZ2UiOwogbG9jYWxpemVk
U3RyaW5nc1siTG9jYWwgVmFyaWFibGVzIl0gPSAiTG9jYWwgVmFyaWFibGVzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkxvY2F0ZWQgYXQgJXMiXSA9ICJMb2NhdGVkIGF0ICVzIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkxvY2F0aW9uIl0gPSAiTG9jYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siTG9nIEFu
aW1hdGlvbiJdID0gIkxvZyBBbmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siTG9nIENhbnZh
cyBDb250ZXh0Il0gPSAiTG9nIENhbnZhcyBDb250ZXh0IjsKIC8qIExvZyAocHJpbnQpIERPTSBl
bGVtZW50IHRvIENvbnNvbGUgKi8KIGxvY2FsaXplZFN0cmluZ3NbIkxvZyBFbGVtZW50Il0gPSAi
TG9nIEVsZW1lbnQiOwpAQCAtNzcxLDYgKzc4MSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIk5vIEVu
YWJsZWQgQXVkaXRzIl0gPSAiTm8gRW5hYmxlZCBBdWRpdHMiOwogbG9jYWxpemVkU3RyaW5nc1si
Tm8gRW50cmllcyJdID0gIk5vIEVudHJpZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRXZlbnQg
TGlzdGVuZXJzIl0gPSAiTm8gRXZlbnQgTGlzdGVuZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5v
IEZpbHRlciBSZXN1bHRzIl0gPSAiTm8gRmlsdGVyIFJlc3VsdHMiOworbG9jYWxpemVkU3RyaW5n
c1siTm8gS2V5ZnJhbWVzIl0gPSAiTm8gS2V5ZnJhbWVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5v
IExheWVyIEF2YWlsYWJsZSJdID0gIk5vIExheWVyIEF2YWlsYWJsZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJObyBPdmVycmlkZXMiXSA9ICJObyBPdmVycmlkZXMiOwogbG9jYWxpemVkU3RyaW5nc1si
Tm8gUGFyYW1ldGVycyJdID0gIk5vIFBhcmFtZXRlcnMiOwpAQCAtNzgyLDYgKzc5Myw3IEBAIGxv
Y2FsaXplZFN0cmluZ3NbIk5vIFJlc3BvbnNlIEhlYWRlcnMiXSA9ICJObyBSZXNwb25zZSBIZWFk
ZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFJlc3VsdCJdID0gIk5vIFJlc3VsdCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJObyBSZXN1bHRzIEZvdW5kIl0gPSAiTm8gUmVzdWx0cyBGb3VuZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJObyBTZWFyY2ggUmVzdWx0cyJdID0gIk5vIFNlYXJjaCBSZXN1bHRz
IjsKK2xvY2FsaXplZFN0cmluZ3NbIk5vIFN0eWxlcyJdID0gIk5vIFN0eWxlcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJObyBXYXRjaCBFeHByZXNzaW9ucyJdID0gIk5vIFdhdGNoIEV4cHJlc3Npb25z
IjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIGF1ZGl0IHNlbGVjdGVkIl0gPSAiTm8gYXVkaXQgc2Vs
ZWN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gY2VydGlmaWNhdGUgc2VjdXJpdHkgaW5mb3Jt
YXRpb24uIl0gPSAiTm8gY2VydGlmaWNhdGUgc2VjdXJpdHkgaW5mb3JtYXRpb24uIjsKQEAgLTkw
Niw2ICs5MTgsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmciXSA9ICJSZWNvcmRpbmci
OwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nICVkIl0gPSAiUmVjb3JkaW5nICVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyBFcnJvcjogJXMiXSA9ICJSZWNvcmRpbmcgRXJyb3I6
ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyBUaW1lbGluZSBEYXRhIl0gPSAiUmVj
b3JkaW5nIFRpbWVsaW5lIERhdGEiOworLyogQSB0eXBlIG9mIGNhbnZhcyByZWNvcmRpbmcgaW4g
dGhlIEdyYXBoaWNzIFRhYiAqLworbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIFR5cGUgQ2Fu
dmFzIEJpdG1hcCBSZW5kZXJlciJdID0gIkJpdG1hcCBSZW5kZXJlciI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZWNvcmRpbmcgV2FybmluZzogJXMiXSA9ICJSZWNvcmRpbmcgV2FybmluZzogJXMiOwog
bG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIHN0b3AgcmVxdWVzdGVkIFx1MjAxNCAlcyJdID0g
IlJlY29yZGluZyBzdG9wIHJlcXVlc3RlZCBcdTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1si
UmVjb3JkaW5ncyJdID0gIlJlY29yZGluZ3MiOwpAQCAtOTE0LDcgKzkyOCw2IEBAIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlZGlyZWN0cyJdID0gIlJlZGlyZWN0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJS
ZWZlcmVuY2UgSXNzdWUiXSA9ICJSZWZlcmVuY2UgSXNzdWUiOwogbG9jYWxpemVkU3RyaW5nc1si
UmVmbGVjdGlvbiJdID0gIlJlZmxlY3Rpb24iOwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCJd
ID0gIlJlZnJlc2giOwotbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCBhbGwiXSA9ICJSZWZyZXNo
IGFsbCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIHdhdGNoIGV4cHJlc3Npb25zIl0gPSAi
UmVmcmVzaCB3YXRjaCBleHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWdpb24gYW5u
b3VuY2VkIGluIGl0cyBlbnRpcmV0eS4iXSA9ICJSZWdpb24gYW5ub3VuY2VkIGluIGl0cyBlbnRp
cmV0eS4iOwogbG9jYWxpemVkU3RyaW5nc1siUmVndWxhciBFeHByZXNzaW9uIl0gPSAiUmVndWxh
ciBFeHByZXNzaW9uIjsKQEAgLTEwMjQsNiArMTAzNyw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlNl
Y3VyaXR5IE9yaWdpbiJdID0gIlNlY3VyaXR5IE9yaWdpbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJT
ZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiXSA9ICJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiOwog
bG9jYWxpemVkU3RyaW5nc1siU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiXSA9ICJTZWxlY3Qg
Y29tcGFyaXNvbiBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCJdID0gIlNl
bGVjdGVkIjsKKy8qIEFwcGVhcnMgYXMgYSBsYWJlbCB3aGVuIGEgZ2l2ZW4gd2ViIGFuaW1hdGlv
biBpcyBsb2dnZWQgdG8gdGhlIENvbnNvbGUgKi8KK2xvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVk
IEFuaW1hdGlvbiJdID0gIlNlbGVjdGVkIEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJT
ZWxlY3RlZCBDYW52YXMgQ29udGV4dCJdID0gIlNlbGVjdGVkIENhbnZhcyBDb250ZXh0IjsKIC8q
IFNlbGVjdGVkIERPTSBlbGVtZW50ICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBFbGVt
ZW50Il0gPSAiU2VsZWN0ZWQgRWxlbWVudCI7CkBAIC0xMTc5LDYgKzExOTQsOCBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJUaGVzZSB0ZXN0cyBzZXJ2ZSBhcyBhIGRlbW9uc3RyYXRpb24gb2YgdGhlIGZ1
bmN0aW9uYWxpdHkgYW5kCiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIFJlc291cmNlIGNhbWUgZnJv
bSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIl0gPSAiVGhpcyBSZXNvdXJjZSBjYW1lIGZyb20g
YSBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFjdGlv
biBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSJdID0gIlRoaXMgYWN0aW9uIGNhdXNlcyBubyB2aXN1
YWwgY2hhbmdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYWN0aW9uIG1vdmVzIHRoZSBwYXRo
IG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSJdID0gIlRoaXMgYWN0aW9uIG1vdmVzIHRoZSBwYXRo
IG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFuaW1h
dGlvbiBoYXMgbm8gZHVyYXRpb24uIl0gPSAiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9u
LiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiJd
ID0gIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlRoaXMgYXVkaXQgaXMgbm90IHN1cHBvcnRlZCJdID0gIlRoaXMgYXVkaXQgaXMgbm90IHN1cHBv
cnRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGN1c3Rv
bSByZXN1bHQgZGF0YSBpcyBzaG93bi4iXSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGN1
c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBpcyBh
biBleGFtcGxlIG9mIGhvdyBlcnJvcnMgYXJlIHNob3duLiBUaGUgZXJyb3Igd2FzIHRocm93biBt
YW51YWxseSwgYnV0IGV4ZWN1dGlvbiBlcnJvcnMgd2lsbCBhcHBlYXIgaW4gdGhlIHNhbWUgd2F5
LiJdID0gIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJyb3JzIGFyZSBzaG93bi4gVGhlIGVy
cm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRpb24gZXJyb3JzIHdpbGwgYXBwZWFy
IGluIHRoZSBzYW1lIHdheS4iOwpAQCAtMTI5MSwxMiArMTMwOCw2NSBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJWaWV3IFNoYWRlciJdID0gIlZpZXcgU2hhZGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZp
ZXdwb3J0Il0gPSAiVmlld3BvcnQiOwogbG9jYWxpemVkU3RyaW5nc1siVmlzaWJsZSJdID0gIlZp
c2libGUiOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyJdID0gIldhaXRpbmciOworbG9jYWxp
emVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IENTUy4iXSA9ICJX
YWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7Citsb2NhbGl6ZWRTdHJpbmdz
WyJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iXSA9ICJXYWl0
aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iOwogbG9jYWxpemVkU3Ry
aW5nc1siV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENT
Uy4iXSA9ICJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3JpcHQgb3Ig
Q1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBmcmFtZXNcdTIwMjYiXSA9ICJX
YWl0aW5nIGZvciBmcmFtZXNcdTIwMjYiOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3Ig
dHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAiV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMg
Y3JlYXRlZCBieSBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhcm5pbmc6ICJdID0gIldhcm5p
bmc6ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXJuaW5ncyJdID0gIldhcm5pbmdzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIldhdGNoIEV4cHJlc3Npb25zIl0gPSAiV2F0Y2ggRXhwcmVzc2lvbnMiOwog
bG9jYWxpemVkU3RyaW5nc1siV2F0ZXJmYWxsIl0gPSAiV2F0ZXJmYWxsIjsKK2xvY2FsaXplZFN0
cmluZ3NbIldlYiBBbmltYXRpb24iXSA9ICJXZWIgQW5pbWF0aW9uIjsKKy8qIFNlY3Rpb24gdGl0
bGUgZm9yIHRoZSBKYXZhU2NyaXB0IGJhY2t0cmFjZSBvZiB0aGUgY3JlYXRpb24gb2YgYSB3ZWIg
YW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEJhY2t0cmFjZSBU
aXRsZSJdID0gIkJhY2t0cmFjZSI7CisvKiBMYWJlbCBmb3IgdGhlIGN1YmljLWJlemllciB0aW1p
bmcgZnVuY3Rpb24gb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIg
QW5pbWF0aW9uIEVhc2luZyBMYWJlbCJdID0gIkVhc2luZyI7CisvKiBTZWN0aW9uIHRpdGxlIGZv
ciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZWZmZWN0IG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9j
YWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBFZmZlY3QgVGl0bGUiXSA9ICJFZmZlY3QiOwor
LyogTGFiZWwgZm9yIHRoZSBlbmQgZGVsYXkgdGltZSBvZiBhIHdlYiBhbmltYXRpb24gICovCits
b2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEVuZCBEZWxheSBMYWJlbCJdID0gIkVuZCBE
ZWxheSI7CisvKiBUb29sdGlwIGZvciBzZWN0aW9uIG9mIGdyYXBoIHJlcHJlc2VudGluZyBkZWxh
eSBhZnRlciBhIHdlYiBhbmltYXRpb24gZmluaXNoZXMgYXBwbHlpbmcgc3R5bGVzICovCitsb2Nh
bGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEVuZCBEZWxheSBUb29sdGlwIl0gPSAiRW5kIERl
bGF5ICVzIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBlaXRoZXIgZG9l
cyBub3QgYXBwbHkgYW55IHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRz
IG9yIHRoYXQgaXQgYXBwbGllcyB0byBib3RoLCBkZXBlbmRpbmcgb24gaXQncyBjb25maWd1cmF0
aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBBdXRvIl0g
PSAiQXV0byI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBs
aWVzIHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5p
bWF0aW9uIEZpbGwgTW9kZSBCYWNrd2FyZHMiXSA9ICJCYWNrd2FyZHMiOworLyogSW5kaWNhdGVz
IHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJl
Z2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlv
biBGaWxsIE1vZGUgQm90aCJdID0gIkJvdGgiOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIg
YW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYWZ0ZXIgaXQgZW5kcyAqLworbG9jYWxpemVk
U3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgRm9yd2FyZHMiXSA9ICJGb3J3YXJkcyI7
CisvKiBMYWJlbCBmb3IgdGhlIGZpbGwgbW9kZSBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2Fs
aXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIExhYmVsIl0gPSAiRmlsbCI7Cisv
KiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gZG9lcyBub3QgYXBwbHkgYW55IHN0
eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzICovCitsb2NhbGl6ZWRTdHJp
bmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBOb25lIl0gPSAiTm9uZSI7CisvKiBTZWN0aW9u
IHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91dCBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb24gSWRlbnRpdHkgVGl0bGUiXSA9ICJJZGVudGl0eSI7Cisv
KiBMYWJlbCBmb3IgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIG9mIGEgd2ViIGFuaW1hdGlvbiAq
LworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gQ291bnQgTGFiZWwi
XSA9ICJJdGVyYXRpb25zIjsKKy8qIExhYmVsIGZvciB0aGUgdGltZSBkdXJhdGlvbiBvZiBlYWNo
IGl0ZXJhdGlvbiBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBB
bmltYXRpb24gSXRlcmF0aW9uIER1cmF0aW9uIExhYmVsIl0gPSAiRHVyYXRpb24iOworLyogTGFi
ZWwgZm9yIHRoZSBudW1iZXIgZGVzY3JpYmluZyB3aGljaCBpdGVyYXRpb24gYSB3ZWIgYW5pbWF0
aW9uIHNob3VsZCBzdGFydCBhdCAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBJ
dGVyYXRpb24gU3RhcnQgTGFiZWwiXSA9ICJTdGFydCI7CisvKiBTZWN0aW9uIHRpdGxlIGZvciBp
bmZvcm1hdGlvbiBhYm91dCB0aGUga2V5ZnJhbWVzIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9j
YWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBLZXlmcmFtZXMgVGl0bGUiXSA9ICJLZXlmcmFt
ZXMiOworLyogSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdl
YiBhbmltYXRpb24gYWx0ZXJuYXRlcyBiZXR3ZWVuIG5vcm1hbCBhbmQgcmV2ZXJzZWQgb24gZWFj
aCBpdGVyYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sg
RGlyZWN0aW9uIEFsdGVybmF0ZSJdID0gIkFsdGVybmF0ZSI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0
aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5hdGVzIGJl
dHdlZW4gcmV2ZXJzZWQgYW5kIG5vcm1hbCBvbiBlYWNoIGl0ZXJhdGlvbiAqLworbG9jYWxpemVk
U3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIFJldmVy
c2UiXSA9ICJBbHRlcm5hdGUgUmV2ZXJzZSI7CisvKiBMYWJlbCBmb3IgdGhlIHBsYXliYWNrIGRp
cmVjdGlvbiBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmlt
YXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIExhYmVsIl0gPSAiRGlyZWN0aW9uIjsKKy8qIEluZGlj
YXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlz
IG5vcm1hbCAoZS5nLiBmb3J3YXJkcykgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRp
b24gUGxheWJhY2sgRGlyZWN0aW9uIE5vcm1hbCJdID0gIk5vcm1hbCI7CisvKiBJbmRpY2F0ZXMg
dGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBpcyByZXZl
cnNlZCAoZS5nLiBiYWNrd2FyZHMpICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9u
IFBsYXliYWNrIERpcmVjdGlvbiBSZXZlcnNlIl0gPSAiUmV2ZXJzZSI7CisvKiBMYWJlbCBmb3Ig
dGhlIHN0YXJ0IGRlbGF5IHRpbWUgb2YgYSB3ZWIgYW5pbWF0aW9uICAqLworbG9jYWxpemVkU3Ry
aW5nc1siV2ViIEFuaW1hdGlvbiBTdGFydCBEZWxheSBMYWJlbCJdID0gIlN0YXJ0IERlbGF5IjsK
Ky8qIFRvb2x0aXAgZm9yIHNlY3Rpb24gb2YgZ3JhcGggcmVwcmVzZW50aW5nIGRlbGF5IGJlZm9y
ZSBhIHdlYiBhbmltYXRpb24gYmVnaW5zIGFwcGx5aW5nIHN0eWxlcyAqLworbG9jYWxpemVkU3Ry
aW5nc1siV2ViIEFuaW1hdGlvbiBTdGFydCBEZWxheSBUb29sdGlwIl0gPSAiU3RhcnQgRGVsYXkg
JXMiOworLyogTGFiZWwgZm9yIHRoZSBjdXJyZW50IERPTSBub2RlIHRhcmdldCBvZiBhIHdlYiBh
bmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gVGFyZ2V0IExhYmVs
Il0gPSAiVGFyZ2V0IjsKK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb25zIl0gPSAiV2Vi
IEFuaW1hdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siV2ViIEluc3BlY3RvciJdID0gIldlYiBJ
bnNwZWN0b3IiOwogbG9jYWxpemVkU3RyaW5nc1siV2ViIEluc3BlY3RvciBSZWZlcmVuY2UiXSA9
ICJXZWIgSW5zcGVjdG9yIFJlZmVyZW5jZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgUGFnZSJd
ID0gIldlYiBQYWdlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvTWFpbi5qcwppbmRleCA4MjcxZTEzYzZiN2Q3ZjMzMWNiMmFlOWVkYzgzMmExNGFjMmYy
ZTMyLi5lYWNlMTI2N2NhMDYxMDBmNmM3MGFmMzU0ZDIwNDdlOGQwNGZkZTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0xMjMs
NiArMTIzLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS53b3JrZXJNYW5h
Z2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIsCiAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdl
ciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIsCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIg
PSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlciA9IG5l
dyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAgIF07CiAKICAgICAvLyBSZWdpc3RlciBmb3IgZXZl
bnRzLgpAQCAtMTQ3LDEzICsxNDgsMTMgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAg
ICBXSS5Tb3VyY2VzVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuVGltZWxpbmVUYWJD
b250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcuVHlwZSwK
LSAgICAgICAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcuVHlwZSwKKyAgICAgICAgV0kuR3JhcGhp
Y3NUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LlR5
cGUsCiAgICAgICAgIFdJLkNvbnNvbGVUYWJDb250ZW50Vmlldy5UeXBlLAogICAgIF0pOwogICAg
IFdJLl9zZWxlY3RlZFRhYkluZGV4U2V0dGluZyA9IG5ldyBXSS5TZXR0aW5nKCJzZWxlY3RlZC10
YWItaW5kZXgiLCAwKTsKIAotICAgIC8vIFJlcGxhY2UgdGhlIERlYnVnZ2VyL1Jlc291cmNlcyBU
YWIgd2l0aCB0aGUgU291cmNlcyBUYWIuCisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5v
cmcvYi8yMDU4MjY+IFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBsZWdhY3kgY29kZSBmb3IgcmVwbGFj
aW5nIHRoZSBSZXNvdXJjZXMgVGFiIGFuZCBEZWJ1Z2dlciBUYWIgd2l0aCB0aGUgU291cmNlcyBU
YWIKICAgICBsZXQgZGVidWdnZXJJbmRleCA9IFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuaW5k
ZXhPZigiZGVidWdnZXIiKTsKICAgICBsZXQgcmVzb3VyY2VzSW5kZXggPSBXSS5fb3BlblRhYnNT
ZXR0aW5nLnZhbHVlLmluZGV4T2YoInJlc291cmNlcyIpOwogICAgIGlmIChkZWJ1Z2dlckluZGV4
ID49IDAgfHwgcmVzb3VyY2VzSW5kZXggPj0gMCkgewpAQCAtMTczLDYgKzE3NCwxMyBAQCBXSS5s
b2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRp
bmcudmFsdWUgPSBzb3VyY2VzSW5kZXg7CiAgICAgfQogCisgICAgLy8gRklYTUU6IDxodHRwczov
L3dlYmtpdC5vcmcvYi8yMDU4Mjc+IFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBsZWdhY3kgY29kZSBm
b3IgcmVwbGFjaW5nIHRoZSBDYW52YXMgVGFiIHdpdGggdGhlIEdyYXBoaWNzIFRhYgorICAgIGxl
dCBjYW52YXNJbmRleCA9IFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuaW5kZXhPZigiY2FudmFz
Iik7CisgICAgaWYgKGNhbnZhc0luZGV4ID49IDApIHsKKyAgICAgICAgV0kuX29wZW5UYWJzU2V0
dGluZy52YWx1ZS5zcGxpY2UoY2FudmFzSW5kZXgsIDEsIFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcuVHlwZSk7CisgICAgICAgIFdJLl9vcGVuVGFic1NldHRpbmcuc2F2ZSgpOworICAgIH0KKwog
ICAgIC8vIFN0YXRlLgogICAgIFdJLnByaW50U3R5bGVzRW5hYmxlZCA9IGZhbHNlOwogICAgIFdJ
LnNldFpvb21GYWN0b3IoV0kuc2V0dGluZ3Muem9vbUZhY3Rvci52YWx1ZSk7CkBAIC00NjUsNyAr
NDczLDcgQEAgV0kuY29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kuU291cmNl
c1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LAogICAg
ICAgICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcsCi0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRl
bnRWaWV3LAorICAgICAgICBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5M
YXllcnNUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuQXVkaXRUYWJDb250ZW50VmlldywKICAg
ICAgICAgV0kuQ29uc29sZVRhYkNvbnRlbnRWaWV3LApAQCAtMTIyMywxMSArMTIzMSw4IEBAIFdJ
LnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JSZXByZXNlbnRlZE9iamVjdCA9IGZ1bmN0aW9uKHJlcHJl
c2VudGVkT2JqZWN0KQogICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5B
dWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgcmV0dXJuIFdJLkF1ZGl0VGFiQ29udGVudFZp
ZXc7CiAKLSAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xs
ZWN0aW9uKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXc7Ci0KLSAgICBp
ZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpCi0gICAgICAgIHJl
dHVybiBXSS5DYW52YXNUYWJDb250ZW50VmlldzsKKyAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5DYW52YXMgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5T
aGFkZXJQcm9ncmFtIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5n
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAgICBy
ZXR1cm4gV0kuR3JhcGhpY3NUYWJDb250ZW50VmlldzsKIAogICAgIHJldHVybiBudWxsOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmYjQxMmNl
YTVmZTIzYTY2ZmQyN2VjZDk0ZGFkNzNmZGIwMWYzMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5h
Z2VyLmpzCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gRklYTUU6IEFuaW1hdGlv
bk1hbmFnZXIgbGFja3MgYWR2YW5jZWQgbXVsdGktdGFyZ2V0IHN1cHBvcnQuIChBbmltYXRpb25z
IHBlci10YXJnZXQpCisKK1dJLkFuaW1hdGlvbk1hbmFnZXIgPSBjbGFzcyBBbmltYXRpb25NYW5h
Z2VyCit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9
IGZhbHNlOworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uID0gbmV3IFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb247CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwID0gbmV3IE1hcDsK
KworICAgICAgICBXSS5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdJLkZyYW1lLkV2ZW50Lk1haW5S
ZXNvdXJjZURpZENoYW5nZSwgdGhpcy5faGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlz
KTsKKyAgICB9CisKKyAgICAvLyBBZ2VudAorCisgICAgZ2V0IGRvbWFpbnMoKSB7IHJldHVybiBb
IkFuaW1hdGlvbiJdOyB9CisKKyAgICBhY3RpdmF0ZUV4dHJhRG9tYWluKGRvbWFpbikKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbWFpbiA9PT0gIkFuaW1hdGlvbiIpOworCisgICAg
ICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0
aWFsaXplVGFyZ2V0KHRhcmdldCk7CisgICAgfQorCisgICAgLy8gVGFyZ2V0CisKKyAgICBpbml0
aWFsaXplVGFyZ2V0KHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fZW5hYmxlZCkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMu
MSk6IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGlmICh0YXJn
ZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmVuYWJsZSIpKQorICAgICAgICAgICAgdGFyZ2V0LkFu
aW1hdGlvbkFnZW50LmVuYWJsZSgpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0
IGFuaW1hdGlvbkNvbGxlY3Rpb24oKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9u
OyB9CisKKyAgICBnZXQgc3VwcG9ydGVkKCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmVuYWJsZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAg
ICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmVuYWJsZSIp
OworICAgIH0KKworICAgIGVuYWJsZSgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCgh
dGhpcy5fZW5hYmxlZCk7CisKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IHRydWU7CisKKyAgICAg
ICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLmluaXRp
YWxpemVUYXJnZXQodGFyZ2V0KTsKKyAgICB9CisKKyAgICBkaXNhYmxlKCkKKyAgICB7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VuYWJsZWQpOworCisgICAgICAgIGZvciAobGV0IHRh
cmdldCBvZiBXSS50YXJnZXRzKSB7CisgICAgICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1Mg
MTMuMSk6IEFuaW1hdGlvbi5kaXNhYmxlIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICAgICAg
aWYgKHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24uZGlzYWJsZSIpKQorICAgICAgICAgICAg
ICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5kaXNhYmxlKCk7CisgICAgICAgIH0KKworICAgICAg
ICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1h
dGlvbklkTWFwLmNsZWFyKCk7CisKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAg
IH0KKworICAgIC8vIEFuaW1hdGlvbk9ic2VydmVyCisKKyAgICBhbmltYXRpb25DcmVhdGVkKGFu
aW1hdGlvblBheWxvYWQpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fYW5p
bWF0aW9uSWRNYXAuaGFzKGFuaW1hdGlvblBheWxvYWQuYW5pbWF0aW9uSWQpLCBgQW5pbWF0aW9u
IGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHthbmltYXRpb25QYXlsb2FkLmFuaW1hdGlvbklkfS5g
KTsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gV0kuQW5pbWF0aW9uLmZyb21QYXlsb2FkKGFu
aW1hdGlvblBheWxvYWQpOworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmFkZChh
bmltYXRpb24pOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uLmFu
aW1hdGlvbklkLCBhbmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0
aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmlt
YXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydChhbmlt
YXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBhbmltYXRpb24uZWZmZWN0Q2hhbmdlZChlZmZlY3QpOworICAgIH0KKworICAgIHRh
cmdldENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAgIGxldCBhbmlt
YXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgICAgICBj
b25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBhbmltYXRpb24udGFyZ2V0Q2hhbmdlZChlZmZlY3Qp
OworICAgIH0KKworICAgIGFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCkKKyAgICB7Cisg
ICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC50YWtlKGFuaW1hdGlv
bklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFh
bmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9u
Q29sbGVjdGlvbi5yZW1vdmUoYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisK
KyAgICBfaGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgV0kuRnJhbWUpOworICAgICAg
ICBpZiAoIWV2ZW50LnRhcmdldC5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIFdJLkFuaW1hdGlvbi5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOwor
CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgdGhp
cy5fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanMKaW5kZXggMTM1YzE2NjEzYWU4MDA5YzE2ZTI3MjJmNzI1ODVjOTdlNjlkZDEx
NC4uZGJiOGU2ZmU0OTczMWQ1MjMxZTI4M2Y2OWZhMjkwZjM3YjZiYmZhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFu
YWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9DYW52YXNNYW5hZ2VyLmpzCkBAIC0zMiw2ICszMiw3IEBAIFdJLkNhbnZhc01hbmFnZXIg
PSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHN1cGVyKCk7
CiAKICAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9jYW52YXND
b2xsZWN0aW9uID0gbmV3IFdJLkNhbnZhc0NvbGxlY3Rpb247CiAgICAgICAgIHRoaXMuX2NhbnZh
c0lkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRl
bnRpZmllck1hcCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncyA9IG5l
dyBTZXQ7CkBAIC03NiwxMyArNzcsOSBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFz
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHVibGljCiAKKyAgICBnZXQgY2Fu
dmFzQ29sbGVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb247IH0KICAgICBn
ZXQgc2F2ZWRSZWNvcmRpbmdzKCkgeyByZXR1cm4gdGhpcy5fc2F2ZWRSZWNvcmRpbmdzOyB9CiAK
LSAgICBnZXQgY2FudmFzZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhp
cy5fY2FudmFzSWRlbnRpZmllck1hcC52YWx1ZXMoKSk7Ci0gICAgfQotCiAgICAgZ2V0IHNoYWRl
clByb2dyYW1zKCkKICAgICB7CiAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3NoYWRl
clByb2dyYW1JZGVudGlmaWVyTWFwLnZhbHVlcygpKTsKQEAgLTEzMyw2ICsxMzAsNyBAQCBXSS5D
YW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICAgICAgICAgIHRhcmdldC5DYW52YXNBZ2VudC5kaXNhYmxlKCk7CiAgICAgICAgIH0KIAor
ICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2Nh
bnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlk
ZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzLmNsZWFy
KCk7CkBAIC0xNjEsOSArMTU5LDggQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2Nh
bnZhc0lkZW50aWZpZXJNYXAuaGFzKGNhbnZhc1BheWxvYWQuY2FudmFzSWQpLCBgQ2FudmFzIGFs
cmVhZHkgZXhpc3RzIHdpdGggaWQgJHtjYW52YXNQYXlsb2FkLmNhbnZhc0lkfS5gKTsKIAogICAg
ICAgICBsZXQgY2FudmFzID0gV0kuQ2FudmFzLmZyb21QYXlsb2FkKGNhbnZhc1BheWxvYWQpOwor
ICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52YXMpOwogICAgICAgICB0aGlz
Ll9jYW52YXNJZGVudGlmaWVyTWFwLnNldChjYW52YXMuaWRlbnRpZmllciwgY2FudmFzKTsKLQot
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc0FkZGVkLCB7Y2FudmFzfSk7CiAgICAgfQogCiAgICAgY2FudmFzUmVtb3ZlZChj
YW52YXNJZGVudGlmaWVyKQpAQCAtMTczLDcgKzE3MCwxNCBAQCBXSS5DYW52YXNNYW5hZ2VyID0g
Y2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBpZiAoIWNhbnZh
cykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2Fu
dmFzKTsKKyAgICAgICAgdGhpcy5fc2F2ZVJlY29yZGluZ3MoY2FudmFzKTsKKworICAgICAgICB0
aGlzLl9jYW52YXNDb2xsZWN0aW9uLnJlbW92ZShjYW52YXMpOworCisgICAgICAgIGZvciAobGV0
IHByb2dyYW0gb2YgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uKQorICAgICAgICAgICAg
dGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmll
cik7CisKKyAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmNsZWFyKCk7CiAg
ICAgfQogCiAgICAgY2FudmFzTWVtb3J5Q2hhbmdlZChjYW52YXNJZGVudGlmaWVyLCBtZW1vcnlD
b3N0KQpAQCAtMjc1LDIxICsyNzksMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZh
c01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9yZW1v
dmVDYW52YXMoY2FudmFzKQorICAgIF9zYXZlUmVjb3JkaW5ncyhjYW52YXMpCiAgICAgewotICAg
ICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbikK
LSAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmRlbGV0ZShwcm9n
cmFtLmlkZW50aWZpZXIpOwotCi0gICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlv
bi5jbGVhcigpOwotCiAgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3Jk
aW5nQ29sbGVjdGlvbikgewogICAgICAgICAgICAgcmVjb3JkaW5nLnNvdXJjZSA9IG51bGw7CiAg
ICAgICAgICAgICByZWNvcmRpbmcuY3JlYXRlRGlzcGxheU5hbWUocmVjb3JkaW5nLmRpc3BsYXlO
YW1lKTsKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncy5hZGQocmVjb3JkaW5nKTsK
ICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHtyZWNvcmRpbmd9KTsKICAgICAgICAgfQotCi0gICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQu
Q2FudmFzUmVtb3ZlZCwge2NhbnZhc30pOwogICAgIH0KIAogICAgIF9tYWluUmVzb3VyY2VEaWRD
aGFuZ2UoZXZlbnQpCkBAIC0zMDEsMTUgKzI5OCwxNCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xh
c3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBXSS5DYW52YXMucmVz
ZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsKIAogICAgICAgICBmb3IgKGxldCBjYW52YXMg
b2YgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC52YWx1ZXMoKSkKLSAgICAgICAgICAgIHRoaXMu
X3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICAgICAgdGhpcy5fc2F2ZVJlY29yZGluZ3Mo
Y2FudmFzKTsKIAotICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVh
cigpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIHRo
aXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fc2hhZGVyUHJv
Z3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICB9CiB9OwogCiBXSS5DYW52YXNNYW5hZ2Vy
LkV2ZW50ID0gewotICAgIENhbnZhc0FkZGVkOiAiY2FudmFzLW1hbmFnZXItY2FudmFzLXdhcy1h
ZGRlZCIsCi0gICAgQ2FudmFzUmVtb3ZlZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtcmVt
b3ZlZCIsCiAgICAgUmVjb3JkaW5nU2F2ZWQ6ICJjYW52YXMtbWFuYWdlci1yZWNvcmRpbmctc2F2
ZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCmluZGV4IDFhOGRmNjhiYmFkZDhkZThi
ZmZiMzgwNzk1MjY5Mjg3YTNhMzMyNDIuLjcxODU1NThhZDNlMGQ5NzliYjAwMWRiOGUxMTAzZGI4
MmFhOWUwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcwpAQCAtMzIzLDcgKzMyMyw3IEBA
IFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAg
ICBub2RlRm9ySWQobm9kZUlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2lkVG9ET01O
b2RlW25vZGVJZF07CisgICAgICAgIHJldHVybiB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdIHx8
IG51bGw7CiAgICAgfQogCiAgICAgX2RvY3VtZW50VXBkYXRlZCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFn
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9U
aW1lbGluZU1hbmFnZXIuanMKaW5kZXggNzYzM2RlMWJhZTBmNDEzZmUxMmNkMWMzNjMzODRhZWYz
ZmQ4NDY1OS4uNzI5Njk2ZjA0MWMxNjJmZjk3Y2ZiMDkyNDk3YmJkMTVhYmY5ZmZiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGlt
ZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwpAQCAtNzgxLDcgKzc4MSw3IEBAIFdJLlRp
bWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgbGV0
IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChldmVudC5ub2RlSWQpIHx8IG51bGw7
CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGV2ZW50
Lm5vZGVJZCk7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChkb21Ob2RlKTsKIAogICAgICAg
ICAgICAgcmVjb3JkID0gbmV3IFdJLk1lZGlhVGltZWxpbmVSZWNvcmQoZXZlbnRUeXBlLCBkb21O
b2RlLCBkZXRhaWxzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRi
ZDY1N2Q5MzI2YWFhMGNlNjRmNmQ3ZWYwMzFkZjgxNmFmMmNmZTguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDC
qSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0Jv
eD0iMCAwIDE2IDE2Ij4KLSAgICA8cmVjdCB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEzIiBoZWln
aHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgotICAgIDxwb2x5Z29u
IHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMgMTIgMTMgMTIgMTMgMTEgMTEgOCIvPgotPC9z
dmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvR3JhcGhpY3Muc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0dyYXBoaWNzLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2NhZjNhMTQ5ZjY5NDViNjE4NmQ4NGI2MTU4
NzY5Y2FmMGE2NGExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZwpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2
IDE2Ij4KKyAgICA8cmVjdCB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjExIiBm
aWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgorICAgIDxwb2x5Z29uIHBvaW50cz0i
MTEgOCA5IDExIDYgNyAzIDExIDMgMTIgMTMgMTIgMTMgMTEgMTEgOCIvPgorPC9zdmc+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggZGQxZDRj
NjFiMzQ5M2UxOTY3ZTNiNzdhYTg0NThhYWVhYTg3MzRlNi4uNWI4NTY1MjIxNjQ0YmUxYTVmMmU2
ZmIxMzc0N2Y2NGM4ZWJiNGJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01haW4uaHRtbApAQCAtMzAsNiArMzAsOSBAQAogCiAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJFeHRlcm5hbC9Db2RlTWlycm9yL2NvZGVtaXJyb3IuY3NzIj4KIAorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9B
bmltYXRpb25Db250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZp
ZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0TmF2
aWdhdGlvblNpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvQXVkaXRUZXN0Q2FzZUNvbnRlbnRWaWV3LmNzcyI+CkBAIC01Niw3ICs1OSw2IEBA
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNEZXRhaWxzU2lk
ZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuY3NzIj4KLSAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGFuZ2VzRGV0YWlsc1NpZGViYXJQYW5l
bC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hhcnREZXRh
aWxzU2VjdGlvblJvdy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmll
d3MvQ2hlY2tib3hOYXZpZ2F0aW9uSXRlbS5jc3MiPgpAQCAtMTEzLDYgKzExNSw4IEBACiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Hb1RvTGluZURpYWxvZy5jc3MiPgog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhZGllbnRFZGl0b3IuY3Nz
Ij4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYWRpZW50U2xpZGVy
LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5j
c3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcEFsbG9jYXRp
b25zVGltZWxpbmVWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9IZWFwU25hcHNob3RJbnN0YW5jZXNDb250ZW50Vmlldy5jc3MiPgpAQCAtMzQ5LDYgKzM1
Myw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1dvcmtlck9ic2VydmVyLmpzIj48L3Nj
cmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvU291cmNlQ29kZS5qcyI+PC9zY3JpcHQ+CkBAIC0zNjEsNiArMzY2LDgg
QEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9Mb2NhbFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0FuaW1hdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3QuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJNb2RlbHMvQmFja0ZvcndhcmRFbnRyeS5qcyI+PC9zY3JpcHQ+CkBAIC0zODAs
NyArMzg3LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVO
b2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+PC9zY3JpcHQ+
CkBAIC01NjYsOSArNTcyLDkgQEAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU3R5bGVEZXRhaWxz
UGFuZWwuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0F1ZGl0VGFiQ29u
dGVudFZpZXcuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9DYW52YXNUYWJD
b250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NvbnNvbGVU
YWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0VsZW1l
bnRzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9H
cmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvU2NyaXB0VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtNTk0LDYgKzYwMCw5IEBA
CiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FjdGl2YXRlQnV0dG9uVG9vbGJh
ckl0ZW0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9B
bmltYXRpb25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdz
L0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRW
aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNo
ZUZyYW1lVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtNjkyLDYgKzcwMSw3IEBACiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL0dvVG9MaW5lRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvR3JhZGllbnRFZGl0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9HcmFkaWVudFNsaWRlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVE
YXRhR3JpZE5vZGVQYXRoQ29tcG9uZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVPdmVydmlld0dyYXBoLmpzIj48L3NjcmlwdD4K
QEAgLTg1Niw2ICs4NjYsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Bbm5vdGF0
b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9y
RWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9IkNvbnRy
b2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJD
b250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJD
b250cm9sbGVycy9BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Jhc2ljQmxvY2tBbm5vdGF0b3IuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0Fu
aW1hdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9B
bmltYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM2NWRlNTI1ZjQwNmFkMzhjZDQ1ZmVkY2Q3MWI3MTRm
M2E1MTM2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitXSS5BbmltYXRpb24gPSBjbGFzcyBBbmltYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKK3sKKyAg
ICBjb25zdHJ1Y3RvcihhbmltYXRpb25JZCwge2Nzc0FuaW1hdGlvbk5hbWUsIGNzc1RyYW5zaXRp
b25Qcm9wZXJ0eSwgZWZmZWN0LCBiYWNrdHJhY2V9ID0ge30pCisgICAgeworICAgICAgICBzdXBl
cigpOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoKCFjc3NBbmltYXRpb25OYW1lICYmICFjc3NUcmFuc2l0aW9uUHJvcGVydHkp
IHx8ICEhY3NzQW5pbWF0aW9uTmFtZSAhPT0gISFjc3NUcmFuc2l0aW9uUHJvcGVydHkpOworCisg
ICAgICAgIHRoaXMuX2FuaW1hdGlvbklkID0gYW5pbWF0aW9uSWQ7CisKKyAgICAgICAgdGhpcy5f
Y3NzQW5pbWF0aW9uTmFtZSA9IGNzc0FuaW1hdGlvbk5hbWUgfHwgbnVsbDsKKyAgICAgICAgdGhp
cy5fY3NzVHJhbnNpdGlvblByb3BlcnR5ID0gY3NzVHJhbnNpdGlvblByb3BlcnR5IHx8IG51bGw7
CisgICAgICAgIHRoaXMuX3VwZGF0ZUVmZmVjdChlZmZlY3QpOworICAgICAgICB0aGlzLl9iYWNr
dHJhY2UgPSBiYWNrdHJhY2UgfHwgW107CisKKyAgICAgICAgdGhpcy5fZWZmZWN0VGFyZ2V0ID0g
dW5kZWZpbmVkOworICAgICAgICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzID0g
bnVsbDsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBmcm9tUGF5bG9hZChw
YXlsb2FkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb24ocGF5bG9hZC5h
bmltYXRpb25JZCwgeworICAgICAgICAgICAgY3NzQW5pbWF0aW9uTmFtZTogcGF5bG9hZC5jc3NB
bmltYXRpb25OYW1lLAorICAgICAgICAgICAgY3NzVHJhbnNpdGlvblByb3BlcnR5OiBwYXlsb2Fk
LmNzc1RyYW5zaXRpb25Qcm9wZXJ0eSwKKyAgICAgICAgICAgIGVmZmVjdDogcGF5bG9hZC5lZmZl
Y3QsCisgICAgICAgICAgICBiYWNrdHJhY2U6IEFycmF5LmlzQXJyYXkocGF5bG9hZC5iYWNrdHJh
Y2UpID8gcGF5bG9hZC5iYWNrdHJhY2UubWFwKChpdGVtKSA9PiBXSS5DYWxsRnJhbWUuZnJvbVBh
eWxvYWQoV0kubWFpblRhcmdldCwgaXRlbSkpIDogW10sCisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUoYW5pbWF0aW9uVHlwZSwgcGx1
cmFsKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChhbmltYXRpb25UeXBlKSB7CisgICAgICAgIGNh
c2UgV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBs
dXJhbCA/IFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIldlYiBB
bmltYXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb246
CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25z
IikgOiBXSS5VSVN0cmluZygiQ1NTIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5UeXBlLkNTU1RyYW5zaXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0ku
VUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9u
Iik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24g
YW5pbWF0aW9uIHR5cGUiLCBhbmltYXRpb25UeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7Cisg
ICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24ocGxheWJh
Y2tEaXJlY3Rpb24pCisgICAgeworICAgICAgICBzd2l0Y2ggKHBsYXliYWNrRGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLk5vcm1hbDoKKyAg
ICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiTm9ybWFsIiwgIldlYiBBbmltYXRpb24gUGxh
eWJhY2sgRGlyZWN0aW9uIE5vcm1hbCIsICJJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGly
ZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBpcyBub3JtYWwgKGUuZy4gZm9yd2FyZHMpIik7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLlJldmVyc2U6Cisg
ICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIlJldmVyc2UiLCAiV2ViIEFuaW1hdGlvbiBQ
bGF5YmFjayBEaXJlY3Rpb24gUmV2ZXJzZSIsICJJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sg
ZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBpcyByZXZlcnNlZCAoZS5nLiBiYWNrd2Fy
ZHMpIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLkFsdGVy
bmF0ZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQWx0ZXJuYXRlIiwgIldlYiBB
bmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIEFsdGVybmF0ZSIsICJJbmRpY2F0ZXMgdGhhdCB0
aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5hdGVzIGJl
dHdlZW4gbm9ybWFsIGFuZCByZXZlcnNlZCBvbiBlYWNoIGl0ZXJhdGlvbiIpOworICAgICAgICBj
YXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRlcm5hdGVSZXZlcnNlOgorICAg
ICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBbHRlcm5hdGUgUmV2ZXJzZSIsICJXZWIgQW5p
bWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBBbHRlcm5hdGUgUmV2ZXJzZSIsICJJbmRpY2F0ZXMg
dGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5h
dGVzIGJldHdlZW4gcmV2ZXJzZWQgYW5kIG5vcm1hbCBvbiBlYWNoIGl0ZXJhdGlvbiIpOworICAg
ICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIHBsYXliYWNr
IGRpcmVjdGlvbiIsIHBsYXliYWNrRGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIG51bGw7Cisg
ICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yRmlsbE1vZGUoZmlsbE1vZGUpCisgICAg
eworICAgICAgICBzd2l0Y2ggKGZpbGxNb2RlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9u
LkZpbGxNb2RlLk5vbmU6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIk5vbmUiLCAi
V2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgTm9uZSIsICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBh
bmltYXRpb24gZG9lcyBub3QgYXBwbHkgYW55IHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBh
ZnRlciBpdCBlbmRzIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkZvcndh
cmRzOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJGb3J3YXJkcyIsICJXZWIgQW5p
bWF0aW9uIEZpbGwgTW9kZSBGb3J3YXJkcyIsICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmlt
YXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBhZnRlciBpdCBlbmRzIik7CisgICAgICAgIGNhc2Ug
V0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJhY2t3YXJkczoKKyAgICAgICAgICAgIHJldHVybiBXSS5V
SVN0cmluZygiQmFja3dhcmRzIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEJhY2t3YXJkcyIs
ICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBi
ZWZvcmUgaXQgYmVnaW5zIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJv
dGg6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJvdGgiLCAiV2ViIEFuaW1hdGlv
biBGaWxsIE1vZGUgQm90aCIsICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxz
byBhcHBsaWVzIHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzIik7Cisg
ICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkF1dG86CisgICAgICAgICAgICByZXR1
cm4gV0kuVUlTdHJpbmcoIkF1dG8iLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQXV0byIsICJJ
bmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gZWl0aGVyIGRvZXMgbm90IGFwcGx5IGFu
eSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyBvciB0aGF0IGl0IGFw
cGxpZXMgdG8gYm90aCwgZGVwZW5kaW5nIG9uIGl0J3MgY29uZmlndXJhdGlvbiIpOworICAgICAg
ICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGZpbGwgbW9kZSIs
IGZpbGxNb2RlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIHJl
c2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCkKKyAgICB7CisgICAgICAgIFdJLkFuaW1hdGlv
bi5fbmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gMTsKKyAgICB9CisKKyAgICAvLyBQdWJs
aWMKKworICAgIGdldCBhbmltYXRpb25JZCgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbklkOyB9
CisgICAgZ2V0IGJhY2t0cmFjZSgpIHsgcmV0dXJuIHRoaXMuX2JhY2t0cmFjZTsgfQorCisgICAg
Z2V0IGFuaW1hdGlvblR5cGUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlv
bk5hbWUpCisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9u
OworICAgICAgICBpZiAodGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICAgICAg
cmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb247CisgICAgICAgIHJldHVybiBX
SS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb247CisgICAgfQorCisgICAgZ2V0IHN0YXJ0RGVs
YXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJzdGFydERlbGF5IiBpbiB0aGlzLl9lZmZlY3Qg
PyB0aGlzLl9lZmZlY3Quc3RhcnREZWxheSA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgZW5kRGVs
YXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJlbmREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8g
dGhpcy5fZWZmZWN0LmVuZERlbGF5IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25D
b3VudCgpCisgICAgeworICAgICAgICByZXR1cm4gIml0ZXJhdGlvbkNvdW50IiBpbiB0aGlzLl9l
ZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRlcmF0aW9uQ291bnQgOiBOYU47CisgICAgfQorCisgICAg
Z2V0IGl0ZXJhdGlvblN0YXJ0KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uU3Rh
cnQiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25TdGFydCA6IE5hTjsK
KyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9uRHVyYXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICJpdGVyYXRpb25EdXJhdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0
ZXJhdGlvbkR1cmF0aW9uIDogTmFOOworICAgIH0KKworICAgIGdldCB0aW1pbmdGdW5jdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gInRpbWluZ0Z1bmN0aW9uIiBpbiB0aGlzLl9lZmZlY3Qg
PyB0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24gOiBudWxsOworICAgIH0KKworICAgIGdldCBw
bGF5YmFja0RpcmVjdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gInBsYXliYWNrRGlyZWN0
aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QucGxheWJhY2tEaXJlY3Rpb24gOiBu
dWxsOworICAgIH0KKworICAgIGdldCBmaWxsTW9kZSgpCisgICAgeworICAgICAgICByZXR1cm4g
ImZpbGxNb2RlIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuZmlsbE1vZGUgOiBudWxs
OworICAgIH0KKworICAgIGdldCBrZXlmcmFtZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJr
ZXlmcmFtZXMiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMgOiBbXTsK
KyAgICB9CisKKyAgICBnZXQgZGlzcGxheU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X2Nzc0FuaW1hdGlvbk5hbWUpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY3NzQW5pbWF0aW9u
TmFtZTsKKworICAgICAgICBpZiAodGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5KQorICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eTsKKworICAgICAgICBpZiAo
IXRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fdW5pcXVl
RGlzcGxheU5hbWVOdW1iZXIgPSBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51
bWJlcisrOworICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFuaW1hdGlvbiAlZCIpLmZvcm1h
dCh0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcik7CisgICAgfQorCisgICAgcmVxdWVzdEVm
ZmVjdFRhcmdldChjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9lZmZlY3RUYXJn
ZXQgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fZWZmZWN0VGFy
Z2V0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlz
Ll9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzKSB7CisgICAgICAgICAgICB0aGlzLl9yZXF1
ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzLnB1c2goY2FsbGJhY2spOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxi
YWNrcyA9IFtjYWxsYmFja107CisKKyAgICAgICAgV0kuZG9tTWFuYWdlci5lbnN1cmVEb2N1bWVu
dCgpOworCisgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKyAg
ICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJlcXVlc3RFZmZlY3RUYXJnZXQodGhpcy5fYW5p
bWF0aW9uSWQsIChlcnJvciwgbm9kZUlkKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9lZmZlY3RU
YXJnZXQgPSAhZXJyb3IgPyBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpIDogbnVsbDsK
KworICAgICAgICAgICAgZm9yIChsZXQgcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrIG9mIHRo
aXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MpCisgICAgICAgICAgICAgICAgcmVxdWVz
dEVmZmVjdFRhcmdldENhbGxiYWNrKHRoaXMuX2VmZmVjdFRhcmdldCk7CisKKyAgICAgICAgICAg
IHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MgPSBudWxsOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICAvLyBBbmltYXRpb25NYW5hZ2VyCisKKyAgICBlZmZlY3RDaGFuZ2VkKGVm
ZmVjdCkKKyAgICB7CisgICAgICAgIHRoaXMuX3VwZGF0ZUVmZmVjdChlZmZlY3QpOworICAgIH0K
KworICAgIHRhcmdldENoYW5nZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fZWZmZWN0VGFyZ2V0
ID0gdW5kZWZpbmVkOworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJ
LkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRl
CisKKyAgICBfdXBkYXRlRWZmZWN0KGVmZmVjdCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VmZmVj
dCA9IGVmZmVjdCB8fCB7fTsKKworICAgICAgICBpZiAodGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0
aW9uKQorICAgICAgICAgICAgdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uID0gV0kuQ3ViaWNC
ZXppZXIuZnJvbVN0cmluZyh0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24pOworCisgICAgICAg
IGlmICh0aGlzLl9lZmZlY3Qua2V5ZnJhbWVzKSB7CisgICAgICAgICAgICBmb3IgKGxldCBrZXlm
cmFtZSBvZiB0aGlzLl9lZmZlY3Qua2V5ZnJhbWVzKSB7CisgICAgICAgICAgICAgICAgaWYgKGtl
eWZyYW1lLmVhc2luZykKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWUuZWFzaW5nID0gV0ku
Q3ViaWNCZXppZXIuZnJvbVN0cmluZyhrZXlmcmFtZS5lYXNpbmcpOworCisgICAgICAgICAgICAg
ICAgaWYgKGtleWZyYW1lLnN0eWxlKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZS5zdHls
ZSA9IGtleWZyYW1lLnN0eWxlLnJlcGxhY2VBbGwoLztccysvZywgIjtcbiIpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQpOworICAgIH0KK307CisKK1dJLkFuaW1h
dGlvbi5fbmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gMTsKKworV0kuQW5pbWF0aW9uLlR5
cGUgPSB7CisgICAgV2ViQW5pbWF0aW9uOiAid2ViLWFuaW1hdGlvbiIsCisgICAgQ1NTQW5pbWF0
aW9uOiAiY3NzLWFuaW1hdGlvbiIsCisgICAgQ1NTVHJhbnNpdGlvbjogImNzcy10cmFuc2l0aW9u
IiwKK307CisKK1dJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbiA9IHsKKyAgICBOb3JtYWw6
ICJub3JtYWwiLAorICAgIFJldmVyc2U6ICJyZXZlcnNlIiwKKyAgICBBbHRlcm5hdGU6ICJhbHRl
cm5hdGUiLAorICAgIEFsdGVybmF0ZVJldmVyc2U6ICJhbHRlcm5hdGUtcmV2ZXJzZSIsCit9Owor
CitXSS5BbmltYXRpb24uRmlsbE1vZGUgPSB7CisgICAgTm9uZTogIm5vbmUiLAorICAgIEZvcndh
cmRzOiAiZm9yd2FyZHMiLAorICAgIEJhY2t3YXJkczogImJhY2t3YXJkcyIsCisgICAgQm90aDog
ImJvdGgiLAorICAgIEF1dG86ICJhdXRvIiwKK307CisKK1dJLkFuaW1hdGlvbi5FdmVudCA9IHsK
KyAgICBFZmZlY3RDaGFuZ2VkOiAiYW5pbWF0aW9uLWVmZmVjdC1jaGFuZ2VkIiwKKyAgICBUYXJn
ZXRDaGFuZ2VkOiAiYW5pbWF0aW9uLXRhcmdldC1jaGFuZ2VkIiwKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVj
dGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Bbmlt
YXRpb25Db2xsZWN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhMjhhN2IxNDhkZWViZThlYTU3NmZkYjFk
YWIwYjViMGJjNDkxZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcwpAQCAtMCwwICsxLDEx
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBBbmltYXRp
b25Db2xsZWN0aW9uIGV4dGVuZHMgV0kuQ29sbGVjdGlvbgoreworICAgIGNvbnN0cnVjdG9yKGFu
aW1hdGlvblR5cGUpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghYW5pbWF0aW9uVHlw
ZSB8fCBPYmplY3QudmFsdWVzKFdJLkFuaW1hdGlvbi5UeXBlKS5pbmNsdWRlcyhhbmltYXRpb25U
eXBlKSk7CisKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25UeXBl
ID0gYW5pbWF0aW9uVHlwZSB8fCBudWxsOworCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9u
VHlwZSkKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwID0g
bnVsbDsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25UeXBlKCkg
eyByZXR1cm4gdGhpcy5fYW5pbWF0aW9uVHlwZTsgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBj
b25zdCBwbHVyYWwgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5kaXNw
bGF5TmFtZUZvclR5cGUodGhpcy5fYW5pbWF0aW9uVHlwZSwgcGx1cmFsKTsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbnMiKTsKKyAgICB9CisK
KyAgICBvYmplY3RJc1JlcXVpcmVkVHlwZShvYmplY3QpCisgICAgeworICAgICAgICBpZiAoIShv
YmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIHJldHVybiAhdGhpcy5fYW5pbWF0aW9uVHlwZSB8fCBvYmplY3QuYW5pbWF0
aW9uVHlwZSA9PT0gdGhpcy5fYW5pbWF0aW9uVHlwZTsKKyAgICB9CisKKyAgICBhbmltYXRpb25D
b2xsZWN0aW9uRm9yVHlwZShhbmltYXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoT2JqZWN0LnZhbHVlcyhXSS5BbmltYXRpb24uVHlwZSkuaW5jbHVkZXMoYW5pbWF0aW9u
VHlwZSkpOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChhbmltYXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlKTsK
KyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF0aGlz
Ll9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCkKKyAgICAgICAgICAgIHRoaXMuX2FuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwID0gbmV3IE1hcDsKKworICAgICAgICBsZXQgYW5pbWF0
aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1h
cC5nZXQoYW5pbWF0aW9uVHlwZSk7CisgICAgICAgIGlmICghYW5pbWF0aW9uQ29sbGVjdGlvbkZv
clR5cGUpIHsKKyAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gbmV3IFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb24oYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICB0aGlzLl9h
bmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcC5zZXQoYW5pbWF0aW9uVHlwZSwgYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhbmltYXRpb25D
b2xsZWN0aW9uRm9yVHlwZTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGl0ZW1B
ZGRlZChpdGVtKQorICAgIHsKKyAgICAgICAgc3VwZXIuaXRlbUFkZGVkKGl0ZW0pOworCisgICAg
ICAgIGlmICghdGhpcy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhpcy5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShpdGVt
LmFuaW1hdGlvblR5cGUpOworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUu
YWRkKGl0ZW0pOworICAgICAgICB9CisgICAgfQorCisgICAgaXRlbVJlbW92ZWQoaXRlbSkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgbGV0
IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhpcy5hbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZShpdGVtLmFuaW1hdGlvblR5cGUpOworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlv
bkZvclR5cGUucmVtb3ZlKGl0ZW0pOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuaXRlbVJl
bW92ZWQoaXRlbSk7CisgICAgfQorCisgICAgaXRlbXNDbGVhcmVkKGl0ZW1zKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKSB7CisgICAgICAg
ICAgICBmb3IgKGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSBvZiB0aGlzLl9hbmltYXRp
b25Db2xsZWN0aW9uRm9yVHlwZU1hcC52YWx1ZXMoKSkKKyAgICAgICAgICAgICAgICBhbmltYXRp
b25Db2xsZWN0aW9uRm9yVHlwZS5jbGVhcigpOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIu
aXRlbXNDbGVhcmVkKGl0ZW1zKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJl
c3VsdC5qcwppbmRleCBjOWNjMzk2MmU4MGZiNjZmZTE1ZGExMzU0ZWEyOTI2YmY4NDFjZGNlLi4z
MWQ2MjdkODExYmQ2MzMyZGM0ODA4NWY5N2RmNTA2NGQyMDEyN2U4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3Vs
dC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVk
aXRUZXN0Q2FzZVJlc3VsdC5qcwpAQCAtMTQ2LDcgKzE0Niw3IEBAIFdJLkF1ZGl0VGVzdENhc2VS
ZXN1bHQgPSBjbGFzcyBBdWRpdFRlc3RDYXNlUmVzdWx0IGV4dGVuZHMgV0kuQXVkaXRUZXN0UmVz
dWx0QmFzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZUlkID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0
b3IoZG9tTm9kZVN0cmluZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2Rl
Rm9ySWQobm9kZUlkKSB8fCBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgfSkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMK
aW5kZXggNjJiYTI2NDEwNWFhZWRmNGJhNWUyYmUzNzU1YTJiNWQzOGJjZmFkMy4uZmY3MWFmNmQ0
M2QyNzZjMTFmNzQzNjIzYjgzMmY5NGI2MWVmZTJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCkBAIC05Nyw3ICs5Nyw3
IEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBj
YXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRDoKICAgICAgICAgICAgIHJldHVybiBX
SS5VSVN0cmluZygiMkQiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0
bWFwUmVuZGVyZXI6Ci0gICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIkJp
dG1hcCBSZW5kZXJlciIpOworICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCaXRtYXAg
UmVuZGVyZXIiLCAiQ2FudmFzIENvbnRleHQgVHlwZSBCaXRtYXAgUmVuZGVyZXIiLCAiQml0bWFw
IFJlbmRlcmVyIGlzIGEgdHlwZSBvZiByZW5kZXJpbmcgY29udGV4dCBhc3NvY2lhdGVkIHdpdGgg
YSA8Y2FudmFzPiBlbGVtZW50Iik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdMOgogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIp
OwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDI6CkBAIC0xMDYsOSAr
MTA2LDEwIEBAIFdJLkNhbnZhcyA9IGNsYXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWIgR1BVIik7CiAgICAgICAg
IGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYk1ldGFsOgogICAgICAgICAgICAgcmV0dXJu
IFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJNZXRhbCIpOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgY29uc29sZS5lcnJvcigiSW52YWxpZCBjYW52YXMgY29udGV4dCB0eXBlIiwgY29u
dGV4dFR5cGUpOwogICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJV
bmtub3duIGNhbnZhcyBjb250ZXh0IHR5cGUiLCBjb250ZXh0VHlwZSk7CisgICAgICAgIHJldHVy
biBudWxsOwogICAgIH0KIAogICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVy
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvUmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1JlY29yZGluZy5qcwppbmRleCAxZjhkZDdlZjQ1ZDYyOTc3OGNkODI4N2JmYjhkMzFiMmEx
MDg5ZjMwLi41MTNlZjc2YWY1NjE0MjkxZTI4NjRhYWVhNThlNzQ3YzY4YTg0ZmFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5n
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNv
cmRpbmcuanMKQEAgLTE0OCw2ICsxNDgsMjMgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3Jk
aW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiBuZXcgV0kuUmVjb3JkaW5nKHBh
eWxvYWQudmVyc2lvbiwgdHlwZSwgcGF5bG9hZC5pbml0aWFsU3RhdGUsIGZyYW1lcywgcGF5bG9h
ZC5kYXRhKTsKICAgICB9CiAKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBl
KHJlY29yZGluZ1R5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJlY29yZGluZ1R5cGUpIHsK
KyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXMyRDoKKyAgICAgICAgICAgIHJldHVy
biBXSS5VSVN0cmluZygiMkQiKTsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNC
aXRtYXBSZW5kZXJlcjoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQml0bWFwIFJl
bmRlcmVyIiwgIlJlY29yZGluZyBUeXBlIENhbnZhcyBCaXRtYXAgUmVuZGVyZXIiLCAiQSB0eXBl
IG9mIGNhbnZhcyByZWNvcmRpbmcgaW4gdGhlIEdyYXBoaWNzIFRhYiIpOworICAgICAgICBjYXNl
IFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMOgorICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9j
YWxpemVkU3RyaW5nKCJXZWJHTCIpOworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZh
c1dlYkdMMjoKKyAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wy
Iik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24g
cmVjb3JkaW5nIHR5cGUiLCByZWNvcmRpbmdUeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7Cisg
ICAgfQorCiAgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yU3dpenpsZVR5cGUoc3dpenpsZVR5cGUp
CiAgICAgewogICAgICAgICBzd2l0Y2ggKHN3aXp6bGVUeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZl
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1h
dGlvbk9ic2VydmVyLmpzCmluZGV4IGIxMTk1ZWQwY2EwY2IwY2E4MDY2OGUwZTk4ZGM2NzlkY2Fk
OTE3YTMuLjdlNTZlOGJiMzljYmEwYzYyODBlYTljZWRkNDViZTU1NDVmMGYxNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlv
bk9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCkBAIC0yNyw2ICsyNywyNiBAQCBXSS5BbmltYXRp
b25PYnNlcnZlciA9IGNsYXNzIEFuaW1hdGlvbk9ic2VydmVyIGV4dGVuZHMgSW5zcGVjdG9yQmFj
a2VuZC5EaXNwYXRjaAogewogICAgIC8vIEV2ZW50cyBkZWZpbmVkIGJ5IHRoZSAiQW5pbWF0aW9u
IiBkb21haW4uCiAKKyAgICBhbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvbikKKyAgICB7CisgICAg
ICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb24pOworICAg
IH0KKworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAg
ICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0
KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAg
ICAgV0kuYW5pbWF0aW9uTWFuYWdlci50YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkKTsKKyAgICB9
CisKKyAgICBhbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBX
SS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCk7CisgICAg
fQorCiAgICAgdHJhY2tpbmdTdGFydCh0aW1lc3RhbXApCiAgICAgewogICAgICAgICBXSS50aW1l
bGluZU1hbmFnZXIuYW5pbWF0aW9uVHJhY2tpbmdTdGFydGVkKHRpbWVzdGFtcCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVP
YmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9S
ZW1vdGVPYmplY3QuanMKaW5kZXggZGQwMGFmNThjMTI1MzA1ODZlMWMyODMwMzJiNzJmZDYyOWZh
MzJkOS4uMmNiYTU2NGQ0YTdiNmEzOGMxODllNTczM2QzY2YzYzYwZmM1MTY0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2Jq
ZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L1JlbW90ZU9iamVjdC5qcwpAQCAtMTg4LDYgKzE4OCwyNSBAQCBXSS5SZW1vdGVPYmplY3QgPSBj
bGFzcyBSZW1vdGVPYmplY3QKICAgICAgICAgdGFyZ2V0LkNhbnZhc0FnZW50LnJlc29sdmVDb250
ZXh0KGNhbnZhcy5pZGVudGlmaWVyLCBvYmplY3RHcm91cCwgd3JhcENhbGxiYWNrKTsKICAgICB9
CiAKKyAgICBzdGF0aWMgcmVzb2x2ZUFuaW1hdGlvbihhbmltYXRpb24sIG9iamVjdEdyb3VwLCBj
YWxsYmFjaykKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBjYWxsYmFjayA9
PT0gImZ1bmN0aW9uIik7CisKKyAgICAgICAgZnVuY3Rpb24gd3JhcENhbGxiYWNrKGVycm9yLCBv
YmplY3QpIHsKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhb2JqZWN0KQorICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKG51bGwpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNh
bGxiYWNrKFdJLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChvYmplY3QsIFdJLm1haW5UYXJnZXQp
KTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJn
ZXQoKTsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5y
ZXNvbHZlQW5pbWF0aW9uIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24iKSk7CisKKyAg
ICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFu
aW1hdGlvbklkLCBvYmplY3RHcm91cCwgd3JhcENhbGxiYWNrKTsKKyAgICB9CisKICAgICAvLyBQ
dWJsaWMKIAogICAgIGdldCB0YXJnZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVGVzdC5odG1sCmluZGV4IDFkNDQ1YTA0Y2RlYmVlY2ZhN2IwY2IwOGVkNmZiYmQ0
YmY0NjFlODQuLjBiYTU2MGI5NmMwMjMwNmViNjFiMzJiZGY0ZWFjODk5MjNkYmYwYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKQEAgLTEwOCw2
ICsxMDgsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+
PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUuanMiPjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEy
Miw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3JpcHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9CcmVha3BvaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0NQVUluc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
Q1BVVGltZWxpbmUuanMiPjwvc2NyaXB0PgpAQCAtMTM3LDcgKzE0MCw2IEBACiAgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Db2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
Q29sbGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0PgpAQCAtMjM4LDYgKzI0MCw3IEBACiAg
ICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVhcFNuYXBzaG90UHJveHkuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJQcm94aWVzL0hlYXBTbmFwc2hvdFdvcmtlclByb3h5LmpzIj48L3Nj
cmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9CcmVh
a3BvaW50TG9nTWVzc2FnZUxleGVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcwppbmRleCAzYzQzYWU3OGJlMTcyNzcw
NzI5YjcwMzJhYmU1NDQ0M2M5NDZhOGJiLi4wMDY0NDdhOTY3ZTljMjM3ZjYwYzEwMDA4YmI0NjM0
NTcyYjdjNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0L1Rlc3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdC9UZXN0LmpzCkBAIC03MCw2ICs3MCw3IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3JrZXJNYW5hZ2VyLAogICAgICAgICBX
SS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRE9NRGVidWdnZXJNYW5hZ2VyLAogICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNhbnZhc01hbmFnZXIsCisgICAgICAgIFdJLmFu
aW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0aW9uTWFuYWdlciwKICAgICBdOwogCiAgICAg
Ly8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAgLTkxLDYgKzkyLDcgQEAgV0kubG9hZGVkID0gZnVu
Y3Rpb24oKQogV0kuY29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkKIHsKICAgICAvLyBUaGluZ3Mg
dGhhdCB3b3VsZCBub3JtYWxseSBnZXQgY2FsbGVkIGJ5IHRoZSBVSSwgdGhhdCB3ZSBzdGlsbCB3
YW50IHRvIGRvIGluIHRlc3RzLgorICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZW5hYmxlKCk7CiAg
ICAgV0kuYXBwbGljYXRpb25DYWNoZU1hbmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuY2FudmFzTWFu
YWdlci5lbmFibGUoKTsKICAgICBXSS5kYXRhYmFzZU1hbmFnZXIuZW5hYmxlKCk7CkBAIC0xODEs
NiArMTgzLDcgQEAgV0kudXBkYXRlVmlzaWJpbGl0eVN0YXRlID0gKCkgPT4ge307CiAgICAgICAg
ICAgICBnZXQoKSB7IHJldHVybiBXSS5tYWluVGFyZ2V0Ll9hZ2VudHNbZG9tYWluTmFtZV07IH0s
CiAgICAgICAgIH0pOwogICAgIH0KKyAgICBtYWtlQWdlbnRHZXR0ZXIoIkFuaW1hdGlvbiIpOwog
ICAgIG1ha2VBZ2VudEdldHRlcigiQXVkaXQiKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIoIkFwcGxp
Y2F0aW9uQ2FjaGUiKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIoIkNQVVByb2ZpbGVyIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJu
ZXNzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFy
bmVzcy5qcwppbmRleCBkNDQ3Yjg5NTBiOTM5MjFkMGE4NjAxMzA2OGE4YjM0ODJiNTMxOGRjLi5k
MmU5OWFmMWI2ZTg1MTA3ZGZkNjZkNDFhMzEzYTY0ZWFlNzAwZjI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMK
QEAgLTEzMSw2ICsxMzEsNDYgQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFybmVzcyBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRp
b25UeXBlLkZhbHNlLCAhYWN0dWFsLCBtZXNzYWdlLCBhY3R1YWwpOwogICAgIH0KIAorICAgIGV4
cGVjdEVtcHR5KGFjdHVhbCwgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIGlmIChBcnJheS5pc0Fy
cmF5KGFjdHVhbCkgfHwgdHlwZW9mIGFjdHVhbCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAg
IHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksICFhY3R1YWwu
bGVuZ3RoLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKGFjdHVhbCBpbnN0YW5jZW9mIFNldCB8fCBhY3R1YWwgaW5zdGFuY2Vv
ZiBNYXApIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlv
blR5cGUuRW1wdHksICFhY3R1YWwuc2l6ZSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAib2Jq
ZWN0IikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZS5FbXB0eSwgaXNFbXB0eU9iamVjdChhY3R1YWwpLCBtZXNzYWdlLCBhY3R1YWwpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5mYWlsKCJleHBlY3RF
bXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDpcbiAgICBBY3R1YWw6
ICIgKyB0aGlzLl9leHBlY3RhdGlvblZhbHVlQXNTdHJpbmcoYWN0dWFsKSk7CisgICAgfQorCisg
ICAgZXhwZWN0Tm90RW1wdHkoYWN0dWFsLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgaWYgKEFy
cmF5LmlzQXJyYXkoYWN0dWFsKSB8fCB0eXBlb2YgYWN0dWFsID09PSAic3RyaW5nIikgeworICAg
ICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0
eSwgISFhY3R1YWwubGVuZ3RoLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdHVhbCBpbnN0YW5jZW9mIFNldCB8fCBhY3R1
YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVz
cy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHksICEhYWN0dWFsLnNpemUsIG1lc3NhZ2UsIGFjdHVh
bCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodHlwZW9m
IGFjdHVhbCA9PT0gIm9iamVjdCIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFy
bmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHksICFpc0VtcHR5T2JqZWN0KGFjdHVhbCksIG1l
c3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICB0aGlzLmZhaWwoImV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBu
b24tb2JqZWN0OlxuICAgIEFjdHVhbDogIiArIHRoaXMuX2V4cGVjdGF0aW9uVmFsdWVBc1N0cmlu
ZyhhY3R1YWwpKTsKKyAgICB9CisKICAgICBleHBlY3ROdWxsKGFjdHVhbCwgbWVzc2FnZSkKICAg
ICB7CiAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTnVs
bCwgYWN0dWFsID09PSBudWxsLCBtZXNzYWdlLCBhY3R1YWwsIG51bGwpOwpAQCAtMzgxLDYgKzQy
MSwxMCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgICAgICByZXR1cm4gImV4cGVjdFRoYXQoJXMpIjsKICAgICAgICAgY2FzZSBUZXN0
SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2U6CiAgICAgICAgICAgICByZXR1cm4gImV4cGVj
dEZhbHNlKCVzKSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVt
cHR5OgorICAgICAgICAgICAgcmV0dXJuICJleHBlY3RFbXB0eSglcykiOworICAgICAgICBjYXNl
IFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eToKKyAgICAgICAgICAgIHJldHVy
biAiZXhwZWN0Tm90RW1wdHkoJXMpIjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3Rh
dGlvblR5cGUuTnVsbDoKICAgICAgICAgICAgIHJldHVybiAiZXhwZWN0TnVsbCglcykiOwogICAg
ICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3ROdWxsOgpAQCAtNDE2LDYg
KzQ2MCwxMCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgICAgICByZXR1cm4gInRydXRoeSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5l
c3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlOgogICAgICAgICAgICAgcmV0dXJuICJmYWxzZXkiOwor
ICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eToKKyAgICAgICAg
ICAgIHJldHVybiAiZW1wdHkiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZS5Ob3RFbXB0eToKKyAgICAgICAgICAgIHJldHVybiAibm90IGVtcHR5IjsKICAgICAgICAg
Y2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90TnVsbDoKICAgICAgICAgICAgIHJl
dHVybiAibm90IG51bGwiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlw
ZS5Ob3RFcXVhbDoKQEAgLTQ0MCw2ICs0ODgsOCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RI
YXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUgPSB7
CiAgICAgVHJ1ZTogU3ltYm9sKCJleHBlY3QtdHJ1ZSIpLAogICAgIEZhbHNlOiBTeW1ib2woImV4
cGVjdC1mYWxzZSIpLAorICAgIEVtcHR5OiBTeW1ib2woImV4cGVjdC1lbXB0eSIpLAorICAgIE5v
dEVtcHR5OiBTeW1ib2woImV4cGVjdC1ub3QtZW1wdHkiKSwKICAgICBOdWxsOiBTeW1ib2woImV4
cGVjdC1udWxsIiksCiAgICAgTm90TnVsbDogU3ltYm9sKCJleHBlY3Qtbm90LW51bGwiKSwKICAg
ICBFcXVhbDogU3ltYm9sKCJleHBlY3QtZXF1YWwiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0YTM4ZjE2MmJlNTBl
NzQ3Y2E1N2ZlYzJiNzM5MTU1MGY1ZDRhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcuY3NzCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29udGVudC12aWV3LmFu
aW1hdGlvbi1jb2xsZWN0aW9uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgcGFkZGlu
ZzogNHB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjllYzFkMmNmYzFlZDkxMGM5NTliMTk4ZTNiODhlZmU3NGE0YWQ5
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwxMTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFz
cyBBbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWN0aW9uQ29u
dGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbik7CisKKyAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworCisgICAgICAgIGxldCBkZXNjcmlwdGlvbkVs
ZW1lbnQgPSBjb250ZW50UGxhY2Vob2xkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOworICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gImRl
c2NyaXB0aW9uIjsKKworICAgICAgICBzd2l0Y2ggKHJlcHJlc2VudGVkT2JqZWN0LmFuaW1hdGlv
blR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb246Cisg
ICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygi
V2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQuIik7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlv
bjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3Ry
aW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiIpOworICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9u
OgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJp
bmcoIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQoZGVzY3JpcHRpb25F
bGVtZW50LnRleHRDb250ZW50KTsKKworICAgICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVjdCwg
V0kuQW5pbWF0aW9uQ29udGVudFZpZXcsIGNvbnRlbnRQbGFjZWhvbGRlcik7CisKKyAgICAgICAg
dGhpcy5zZWxlY3Rpb25FbmFibGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xh
c3NMaXN0LmFkZCgiYW5pbWF0aW9uLWNvbGxlY3Rpb24iKTsKKyAgICB9CisKKyAgICAvLyBQdWJs
aWMKKworICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIGZv
ciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZp
ZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykKKyAgICAgICAgICAgICAgICBz
dWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGNvbnRlbnRWaWV3QWRkZWQoY29udGVudFZpZXcpCisg
ICAgeworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
ZW50ZXIiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50ZXIpOworICAgICAgICBjb250
ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9oYW5k
bGVDb250ZW50Vmlld01vdXNlTGVhdmUpOworICAgIH0KKworICAgIGNvbnRlbnRWaWV3UmVtb3Zl
ZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3Zl
RXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VF
bnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
bW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk7CisgICAgfQor
CisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9k
ZUhpZ2hsaWdodCgpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAg
Ly8gUHJpdmF0ZQorCisgICAgX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcihldmVudCkKKyAg
ICB7CisgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQoZXZlbnQu
dGFyZ2V0KTsKKyAgICAgICAgaWYgKCEoY29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRp
b25Db250ZW50VmlldykpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGFuaW1h
dGlvbiA9IGNvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBhbmltYXRpb24u
cmVxdWVzdEVmZmVjdFRhcmdldCgobm9kZSkgPT4geworICAgICAgICAgICAgaWYgKCFub2RlIHx8
ICFub2RlLm93bmVyRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbm9kZS5oaWdobGlnaHQoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgX2hhbmRsZUNv
bnRlbnRWaWV3TW91c2VMZWF2ZShldmVudCkKKyAgICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIu
aGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29u
dGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjNTk5MDRlZjczZjMyODQ4NjQxNzg3YmI4YjZjMGJm
OTM3YWE1MjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSwxMjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisuY29udGVudC12aWV3LmFuaW1hdGlvbiB7CisgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgIHdpZHRoOiAxMDAlOworICAgIG1hcmdpbjogNHB4OworICAgIGJhY2tncm91
bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItY29udGVudCk7CisgICAgYm9yZGVyOiAx
cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b24uc2VsZWN0ZWQgeworICAgIG91dGxpbmU6IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9y
OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciB7CisgICAgZGlzcGxheTog
ZmxleDsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIGhlaWdodDogdmFyKC0tbmF2aWdh
dGlvbi1iYXItaGVpZ2h0KTsKKyAgICBwYWRkaW5nOiAwIDZweDsKKyAgICBmb250LXNpemU6IDEz
cHg7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyB7Cisg
ICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1n
cmF5LWRhcmspOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRs
ZXMgPiAuc3VidGl0bGUgeworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVt
KTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1
YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICJcMDBBMFwyMDE0XDAw
QTAiOyAvKiAmbmJzcDsmbWRhc2g7Jm5ic3A7ICovOworfQorCisuY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgYm9yZGVyOiBub25lOworICAg
IG9wYWNpdHk6IDA7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uOmhvdmVyID4gaGVhZGVy
ID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBvcGFjaXR5OiAxOworfQorCisuY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IC5wcmV2aWV3IHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGp1c3RpZnkt
Y29udGVudDogY2VudGVyOworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogaHNsKDAsIDAlLCA5NiUpOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3ID4gc3ZnIHsKKyAgICB3aWR0aDogMTAwJTsKK30KKworYm9keVtkaXI9cnRsXSAu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHsKKyAgICB0cmFuc2Zvcm06
IHNjYWxlWCgtMSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBz
dmcgcmVjdCB7CisgICAgZmlsbDogdHJhbnNwYXJlbnQ7Cit9CisKKy5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuZGVsYXkgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIo
LS1ib3JkZXItY29sb3IpOworICAgIHN0cm9rZS13aWR0aDogMjsKK30KKworLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgcGF0aCB7CisgICAgZmlsbDog
dmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKKyAgICBmaWxsLW9wYWNpdHk6IDAuNTsKKyAgICBz
dHJva2U6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7CisgICAgc3Ryb2tlLXdpZHRoOiAxOwor
fQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBj
aXJjbGUgeworICAgIGZpbGw6IHZhcigtLXRleHQtY29sb3IpOworfQorCisuY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBsaW5lIHsKKyAgICBzdHJva2U6
IHZhcigtLXRleHQtY29sb3IpOworICAgIHN0cm9rZS13aWR0aDogMjsKK30KKworLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHNwYW4geworICAgIHBhZGRpbmc6IDRweDsKKyAg
ICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworfQorCitAbWVkaWEgKHByZWZl
cnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBo
ZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKyAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29s
b3IpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRp
dGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29u
ZGFyeSk7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyB7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMjAlKTsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ZDYwNjdjZjg2NGQ3
NDg3MzMzNGRjOTgzZmNhMGZhZTY3M2I2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcwpA
QCAtMCwwICsxLDMwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkNvbnRlbnRWaWV3ID0g
Y2xhc3MgQW5pbWF0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldworeworICAg
IGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOworCisgICAg
ICAgIHN1cGVyKHJlcHJlc2VudGVkT2JqZWN0KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25U
YXJnZXRET01Ob2RlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fY2FjaGVkV2lkdGggPSBOYU47CisK
KyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImFuaW1hdGlvbiIpOworICAgIH0K
KworICAgIC8vIFN0YXRpYworCisgICAgc3RhdGljIGdldCBwcmV2aWV3SGVpZ2h0KCkKKyAgICB7
CisgICAgICAgIHJldHVybiA0MDsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRs
ZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0
aXRsZSgpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaW5pdGlhbExheW91dCgp
CisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgbGV0IGhl
YWRlckVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaGVhZGVyIikpOworCisgICAgICAgIGxldCB0aXRsZXNDb250YWluZXIgPSBoZWFkZXJF
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAg
ICAgdGl0bGVzQ29udGFpbmVyLmNsYXNzTmFtZSA9ICJ0aXRsZXMiOworCisgICAgICAgIGxldCB0
aXRsZUVsZW1lbnQgPSB0aXRsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgdGl0bGVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aXRs
ZSI7CisgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMucmVwcmVzZW50ZWRP
YmplY3QuZGlzcGxheU5hbWU7CisKKyAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50ID0gdGl0
bGVzQ29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7
CisgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAic3VidGl0bGUiOwor
CisgICAgICAgIGxldCBuYXZpZ2F0aW9uQmFyID0gbmV3IFdJLk5hdmlnYXRpb25CYXI7CisKKyAg
ICAgICAgbGV0IGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtKCJhbmltYXRpb24tdGFyZ2V0IiwgV0kuVUlTdHJpbmcoIkFuaW1h
dGlvbiBUYXJnZXQiKSwgIkltYWdlcy9NYXJrdXAuc3ZnIiwgMTYsIDE2KTsKKyAgICAgICAgYW5p
bWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0ku
TmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKKyAgICAgICAgV0kuYWRkTW91
c2VEb3duQ29udGV4dE1lbnVIYW5kbGVycyhhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9u
SXRlbS5lbGVtZW50LCB0aGlzLl9wb3B1bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRN
ZW51LmJpbmQodGhpcykpOworICAgICAgICBuYXZpZ2F0aW9uQmFyLmFkZE5hdmlnYXRpb25JdGVt
KGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKKworICAgICAgICBoZWFkZXJF
bGVtZW50LmFwcGVuZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQpOworICAgICAgICB0aGlzLmFkZFN1
YnZpZXcobmF2aWdhdGlvbkJhcik7CisKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lciA9
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7
CisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIuY2xhc3NOYW1lID0gInByZXZpZXciOwor
ICAgIH0KKworICAgIGxheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5sYXlvdXQoKTsKKwor
ICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFBy
ZXZpZXcoKTsKKyAgICB9CisKKyAgICBzaXplRGlkQ2hhbmdlKCkKKyAgICB7CisgICAgICAgIHN1
cGVyLnNpemVEaWRDaGFuZ2UoKTsKKworICAgICAgICB0aGlzLl9jYWNoZWRXaWR0aCA9IHRoaXMu
ZWxlbWVudC5yZWFsT2Zmc2V0V2lkdGg7CisgICAgfQorCisgICAgYXR0YWNoZWQoKQorICAgIHsK
KyAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRo
aXMuX2hhbmRsZUVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQs
IHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAgIH0KKworICAgIGRldGFjaGVk
KCkKKyAgICB7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlVGFyZ2V0
Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxl
RWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9
CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfcmVmcmVzaFN1YnRpdGxlKCkKKyAgICB7CisgICAg
ICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdEVmZmVjdFRhcmdldCgoZG9tTm9kZSkg
PT4geworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IGRvbU5vZGU7
CisKKyAgICAgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwor
ICAgICAgICAgICAgaWYgKGRvbU5vZGUpCisgICAgICAgICAgICAgICAgdGhpcy5fc3VidGl0bGVF
bGVtZW50LmFwcGVuZENoaWxkKFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKGRvbU5vZGUpKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgX3JlZnJlc2hQcmV2aWV3KCkKKyAgICB7CisgICAgICAg
IHRoaXMuX3ByZXZpZXdDb250YWluZXIucmVtb3ZlQ2hpbGRyZW4oKTsKKworICAgICAgICBsZXQg
a2V5ZnJhbWVzID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5rZXlmcmFtZXM7CisgICAgICAgIGlm
ICgha2V5ZnJhbWVzLmxlbmd0aCkgeworICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2
aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7
CisgICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0
aW9uIGhhcyBubyBrZXlmcmFtZXMuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBsZXQgc3RhcnREZWxheSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3RhcnRE
ZWxheSB8fCAwOworICAgICAgICBsZXQgaXRlcmF0aW9uRHVyYXRpb24gPSB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0Lml0ZXJhdGlvbkR1cmF0aW9uIHx8IDA7CisgICAgICAgIGxldCBlbmREZWxheSA9
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZW5kRGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IHRvdGFs
RHVyYXRpb24gPSBzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheTsKKyAg
ICAgICAgaWYgKHRvdGFsRHVyYXRpb24gPT09IDApIHsKKyAgICAgICAgICAgIGxldCBzcGFuID0g
dGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzcGFuIikpOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJU
aGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zdCBwcmV2aWV3SGVpZ2h0ID0gV0kuQW5pbWF0aW9uQ29u
dGVudFZpZXcucHJldmlld0hlaWdodDsKKworICAgICAgICBjb25zdCBtYXJrZXJIZWFkUmFkaXVz
ID0gNDsKKyAgICAgICAgY29uc3QgbWFya2VySGVhZFBhZGRpbmcgPSAyOworCisgICAgICAgIC8v
IFNxdWVlemUgdGhlIGVudGlyZSBwcmV2aWV3IHNvIHRoYXQgbWFya2VycyBhcmVuJ3QgY3V0IG9m
Zi4KKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVhTdGFydCA9IChpdGVyYXRpb25EdXJhdGlvbiAmJiBz
dGFydERlbGF5KSA/IDAgOiBtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmc7Cisg
ICAgICAgIGNvbnN0IHNxdWVlemVYRW5kID0gKGl0ZXJhdGlvbkR1cmF0aW9uICYmIGVuZERlbGF5
KSA/IDAgOiBtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmc7CisgICAgICAgIGNv
bnN0IHNxdWVlemVZU3RhcnQgPSBtYXJrZXJIZWFkUmFkaXVzICsgKG1hcmtlckhlYWRQYWRkaW5n
ICogMik7CisKKyAgICAgICAgLy8gTW92ZSB0aGUgZWFzaW5nIGxpbmUgZG93biB0byBjdXQgb2Zm
IHRoZSBib3R0b20gYm9yZGVyLgorICAgICAgICBjb25zdCBhZGp1c3RFYXNpbmdZID0gMC41Owor
CisgICAgICAgIGxldCBzZWNvbmRzUGVyUGl4ZWwgPSB0aGlzLl9jYWNoZWRXaWR0aCAvIHRvdGFs
RHVyYXRpb247CisKKyAgICAgICAgc3RhcnREZWxheSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisgICAg
ICAgIGl0ZXJhdGlvbkR1cmF0aW9uID0gKGl0ZXJhdGlvbkR1cmF0aW9uICogc2Vjb25kc1BlclBp
eGVsKSAtIHNxdWVlemVYU3RhcnQgLSBzcXVlZXplWEVuZDsKKyAgICAgICAgZW5kRGVsYXkgKj0g
c2Vjb25kc1BlclBpeGVsOworCisgICAgICAgIGxldCBzdmcgPSB0aGlzLl9wcmV2aWV3Q29udGFp
bmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInN2ZyIpKTsKKyAgICAgICAgc3ZnLnNl
dEF0dHJpYnV0ZSgidmlld0JveCIsIGAwIDAgJHt0aGlzLl9jYWNoZWRXaWR0aH0gJHtwcmV2aWV3
SGVpZ2h0fWApOworCisgICAgICAgIGZ1bmN0aW9uIGFkZFRpdGxlKHBhcmVudCwgdGl0bGUpIHsK
KyAgICAgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY3JlYXRl
U1ZHRWxlbWVudCgidGl0bGUiKSk7CisgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRl
bnQgPSB0aXRsZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydERlbGF5KSB7CisgICAg
ICAgICAgICBsZXQgc3RhcnREZWxheUNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVT
VkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgc3RhcnREZWxheUNvbnRhaW5lci5jbGFzc0xp
c3QuYWRkKCJkZWxheSIsICJzdGFydCIpOworCisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUxp
bmUgPSBzdGFydERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxp
bmUiKSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgKHBy
ZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAgICAgc3RhcnREZWxh
eUxpbmUuc2V0QXR0cmlidXRlKCJ4MiIsIHN0YXJ0RGVsYXkpOworICAgICAgICAgICAgc3RhcnRE
ZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFy
dCkgLyAyKTsKKworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlFbGVtZW50ID0gc3RhcnREZWxh
eUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAg
ICAgICAgc3RhcnREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkp
OworICAgICAgICAgICAgc3RhcnREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBw
cmV2aWV3SGVpZ2h0KTsKKworICAgICAgICAgICAgY29uc3Qgc3RhcnREZWxheVRpdGxlRm9ybWF0
ID0gV0kuVUlTdHJpbmcoIlN0YXJ0IERlbGF5ICVzIiwgIldlYiBBbmltYXRpb24gU3RhcnQgRGVs
YXkgVG9vbHRpcCIsICJUb29sdGlwIGZvciBzZWN0aW9uIG9mIGdyYXBoIHJlcHJlc2VudGluZyBk
ZWxheSBiZWZvcmUgYSB3ZWIgYW5pbWF0aW9uIGJlZ2lucyBhcHBseWluZyBzdHlsZXMiKTsKKyAg
ICAgICAgICAgIGFkZFRpdGxlKHN0YXJ0RGVsYXlFbGVtZW50LCBzdGFydERlbGF5VGl0bGVGb3Jt
YXQuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXByZXNlbnRlZE9iamVjdC5z
dGFydERlbGF5IC8gMTAwMCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbmREZWxheSkg
eworICAgICAgICAgICAgbGV0IGVuZERlbGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNy
ZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICBlbmREZWxheUNvbnRhaW5lci5zZXRB
dHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydERlbGF5ICsgaXRlcmF0aW9u
RHVyYXRpb24gKyBzcXVlZXplWFN0YXJ0fSwgMClgKTsKKyAgICAgICAgICAgIGVuZERlbGF5Q29u
dGFpbmVyLmNsYXNzTGlzdC5hZGQoImRlbGF5IiwgImVuZCIpOworCisgICAgICAgICAgICBsZXQg
ZW5kRGVsYXlMaW5lID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxl
bWVudCgibGluZSIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkx
IiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAgICAgZW5k
RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieDIiLCBlbmREZWxheSk7CisgICAgICAgICAgICBlbmRE
ZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFy
dCkgLyAyKTsKKworICAgICAgICAgICAgbGV0IGVuZERlbGF5RWxlbWVudCA9IGVuZERlbGF5Q29u
dGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAg
ICBlbmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkgKyBpdGVy
YXRpb25EdXJhdGlvbiArIGVuZERlbGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxlbWVudC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQpOworCisgICAgICAgICAgICBjb25z
dCBlbmREZWxheVRpdGxlRm9ybWF0ID0gV0kuVUlTdHJpbmcoIkVuZCBEZWxheSAlcyIsICJXZWIg
QW5pbWF0aW9uIEVuZCBEZWxheSBUb29sdGlwIiwgIlRvb2x0aXAgZm9yIHNlY3Rpb24gb2YgZ3Jh
cGggcmVwcmVzZW50aW5nIGRlbGF5IGFmdGVyIGEgd2ViIGFuaW1hdGlvbiBmaW5pc2hlcyBhcHBs
eWluZyBzdHlsZXMiKTsKKyAgICAgICAgICAgIGFkZFRpdGxlKGVuZERlbGF5RWxlbWVudCwgZW5k
RGVsYXlUaXRsZUZvcm1hdC5mb3JtYXQoTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LmVuZERlbGF5IC8gMTAwMCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChpdGVyYXRpb25EdXJhdGlvbikgeworICAgICAgICAgICAgbGV0IHRpbWluZ0Z1bmN0aW9uID0g
dGhpcy5yZXByZXNlbnRlZE9iamVjdC50aW1pbmdGdW5jdGlvbjsKKworICAgICAgICAgICAgbGV0
IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1l
bnQoImciKSk7CisgICAgICAgICAgICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5jbGFzc0xpc3Qu
YWRkKCJhY3RpdmUiKTsKKyAgICAgICAgICAgIGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLnNldEF0
dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0RGVsYXkgKyBzcXVlZXplWFN0
YXJ0fSwgJHtzcXVlZXplWVN0YXJ0fSlgKTsKKworICAgICAgICAgICAgY29uc3Qgc3RhcnRZID0g
MDsKKyAgICAgICAgICAgIGNvbnN0IGVuZFkgPSBwcmV2aWV3SGVpZ2h0IC0gc3F1ZWV6ZVlTdGFy
dDsKKyAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGVuZFkgLSBzdGFydFk7CisKKyAgICAgICAg
ICAgIGZvciAobGV0IFtrZXlmcmFtZUEsIGtleWZyYW1lQl0gb2Yga2V5ZnJhbWVzLmFkamFjZW5j
aWVzKCkpIHsKKyAgICAgICAgICAgICAgICBsZXQgc3RhcnRYID0gaXRlcmF0aW9uRHVyYXRpb24g
KiBrZXlmcmFtZUEub2Zmc2V0OworICAgICAgICAgICAgICAgIGxldCBlbmRYID0gaXRlcmF0aW9u
RHVyYXRpb24gKiBrZXlmcmFtZUIub2Zmc2V0OworICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9
IGVuZFggLSBzdGFydFg7CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5nID0ga2V5ZnJhbWVB
LmVhc2luZyB8fCB0aW1pbmdGdW5jdGlvbjsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmdD
b250YWluZXIgPSBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdF
bGVtZW50KCJnIikpOworICAgICAgICAgICAgICAgIGVhc2luZ0NvbnRhaW5lci5jbGFzc0xpc3Qu
YWRkKCJlYXNpbmciKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdDb250YWluZXIuc2V0QXR0cmli
dXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3RhcnRYfSwgJHtzdGFydFl9KWApOworCisg
ICAgICAgICAgICAgICAgbGV0IHgxID0gZWFzaW5nLmluUG9pbnQueCAqIHdpZHRoOworICAgICAg
ICAgICAgICAgIGxldCB5MSA9ICgoMSAtIGVhc2luZy5pblBvaW50LnkpICogaGVpZ2h0KSArIGFk
anVzdEVhc2luZ1k7CisgICAgICAgICAgICAgICAgbGV0IHgyID0gZWFzaW5nLm91dFBvaW50Lngg
KiB3aWR0aDsKKyAgICAgICAgICAgICAgICBsZXQgeTIgPSAoKDEgLSBlYXNpbmcub3V0UG9pbnQu
eSkgKiBoZWlnaHQpICsgYWRqdXN0RWFzaW5nWTsKKworICAgICAgICAgICAgICAgIGxldCBlYXNp
bmdQYXRoID0gZWFzaW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInBh
dGgiKSk7CisgICAgICAgICAgICAgICAgZWFzaW5nUGF0aC5zZXRBdHRyaWJ1dGUoImQiLCBgTSAw
ICR7aGVpZ2h0ICsgYWRqdXN0RWFzaW5nWX0gQyAke3gxfSAke3kxfSAke3gyfSAke3kyfSAke3dp
ZHRofSAke2FkanVzdEVhc2luZ1l9IFYgJHtoZWlnaHQgKyBhZGp1c3RFYXNpbmdZfSBaYCk7CisK
KyAgICAgICAgICAgICAgICBsZXQgdGl0bGVSZWN0ID0gZWFzaW5nQ29udGFpbmVyLmFwcGVuZENo
aWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0
LnNldEF0dHJpYnV0ZSgid2lkdGgiLCB3aWR0aCk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0
LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgaGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIGFkZFRp
dGxlKHRpdGxlUmVjdCwgZWFzaW5nLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmb3IgKGxldCBrZXlmcmFtZSBvZiBrZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAg
ICBsZXQgeCA9IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWUub2Zmc2V0OworCisgICAgICAg
ICAgICAgICAgbGV0IGtleWZyYW1lQ29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIu
YXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBrZXlm
cmFtZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJrZXlmcmFtZSIpOworICAgICAgICAgICAgICAg
IGtleWZyYW1lQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgk
e3h9LCAke3N0YXJ0WX0pYCk7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVNYXJrZXJI
ZWFkID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiY2ly
Y2xlIikpOworICAgICAgICAgICAgICAgIGtleWZyYW1lTWFya2VySGVhZC5zZXRBdHRyaWJ1dGUo
InIiLCBtYXJrZXJIZWFkUmFkaXVzKTsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1h
cmtlckxpbmUgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50
KCJsaW5lIikpOworICAgICAgICAgICAgICAgIGtleWZyYW1lTWFya2VyTGluZS5zZXRBdHRyaWJ1
dGUoInkxIiwgaGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZVJlY3QgPSBrZXlm
cmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAg
ICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAtMSAqIChtYXJrZXJIZWFk
UmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmcpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Qu
c2V0QXR0cmlidXRlKCJ5IiwgLTEgKiBzcXVlZXplWVN0YXJ0KTsKKyAgICAgICAgICAgICAgICB0
aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2Vy
SGVhZFBhZGRpbmcpICogMik7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0
ZSgiaGVpZ2h0IiwgaGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCk7CisKKyAgICAgICAgICAgICAgICBh
ZGRUaXRsZSh0aXRsZVJlY3QsIGtleWZyYW1lLnN0eWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KKworICAgIF9oYW5kbGVFZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fcmVmcmVzaFByZXZpZXcoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlVGFyZ2V0
Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOwor
ICAgIH0KKworICAgIF9wb3B1bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51KGNv
bnRleHRNZW51KQorICAgIHsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0
cmluZygiTG9nIEFuaW1hdGlvbiIpLCAoKSA9PiB7CisgICAgICAgICAgICBXSS5SZW1vdGVPYmpl
Y3QucmVzb2x2ZUFuaW1hdGlvbih0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50aW1lTWFu
YWdlci5Db25zb2xlT2JqZWN0R3JvdXAsIChyZW1vdGVPYmplY3QpID0+IHsKKyAgICAgICAgICAg
ICAgICBpZiAoIXJlbW90ZU9iamVjdCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IFdJLlVJU3RyaW5nKCJTZWxlY3RlZCBBbmltYXRp
b24iLCAiQXBwZWFycyBhcyBhIGxhYmVsIHdoZW4gYSBnaXZlbiB3ZWIgYW5pbWF0aW9uIGlzIGxv
Z2dlZCB0byB0aGUgQ29uc29sZSIpOworICAgICAgICAgICAgICAgIGNvbnN0IGFkZFNwZWNpYWxV
c2VyTG9nQ2xhc3MgPSB0cnVlOworICAgICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29u
dHJvbGxlci5hcHBlbmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJlbW90ZU9i
amVjdCwgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAg
aWYgKHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUpCisgICAgICAgICAgICBXSS5hcHBlbmRD
b250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fYW5pbWF0aW9uVGFy
Z2V0RE9NTm9kZSk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkYjQ2ZTQ4ZjA0YzM5NWE2MWE0Yjc0ZWVk
MDM1M2MyMmZlNzIzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1h
dGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5o
ZWFkZXIgPiAuc3VidGl0bGUgeworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVk
aXVtKTsKK30KKworLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVu
dCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9u
IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk3JSk7Cit9CisKKy5zaWRlYmFy
ID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9u
LmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyB7CisgICAg
ZGlzcGxheTogdGFibGUtcm93OworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1h
dGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5k
ZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3IgeworICAgIGhlaWdodDogYXV0
bzsKKyAgICBwYWRkaW5nOiA0cHggMDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu
dDsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5zaWRl
YmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0
aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiB7CisgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTglKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
QW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjkxYTVjODIzMzAy
ZDE0N2EwODg5ZDM2NjRiMTYyNTk1OWIyY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQ
YW5lbC5qcwpAQCAtMCwwICsxLDI1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkRldGFp
bHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBBbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVu
ZHMgV0kuRGV0YWlsc1NpZGViYXJQYW5lbAoreworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7Cisg
ICAgICAgIHN1cGVyKCJhbmltYXRpb24iLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIikpOworCisg
ICAgICAgIHRoaXMuX2FuaW1hdGlvbiA9IG51bGw7CisKKyAgICAgICAgdGhpcy5fY29kZU1pcnJv
clNlY3Rpb25NYXAgPSBuZXcgTWFwOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaW5z
cGVjdChvYmplY3RzKQorICAgIHsKKyAgICAgICAgaWYgKCEob2JqZWN0cyBpbnN0YW5jZW9mIEFy
cmF5KSkKKyAgICAgICAgICAgIG9iamVjdHMgPSBbb2JqZWN0c107CisKKyAgICAgICAgdGhpcy5h
bmltYXRpb24gPSBvYmplY3RzLmZpbmQoKG9iamVjdCkgPT4gb2JqZWN0IGluc3RhbmNlb2YgV0ku
QW5pbWF0aW9uKTsKKworICAgICAgICByZXR1cm4gISF0aGlzLmFuaW1hdGlvbjsKKyAgICB9CisK
KyAgICBnZXQgYW5pbWF0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9hbmltYXRp
b247CisgICAgfQorCisgICAgc2V0IGFuaW1hdGlvbihhbmltYXRpb24pCisgICAgeworICAgICAg
ICBpZiAoYW5pbWF0aW9uID09PSB0aGlzLl9hbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikgeworICAgICAgICAgICAgdGhpcy5fYW5p
bWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5n
ZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50
LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQsIHRoaXMp
OworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0gYW5pbWF0aW9uIHx8IG51
bGw7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikgeworICAgICAgICAgICAgdGhpcy5f
YW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5n
ZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRh
cmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQsIHRoaXMpOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIC8v
IFByb3RlY3RlZAorCisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5p
bml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fbmFtZVJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiTmFtZSIpKTsKKyAgICAgICAgdGhpcy5fdHlw
ZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiVHlwZSIp
KTsKKyAgICAgICAgdGhpcy5fdGFyZ2V0Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxl
Um93KFdJLlVJU3RyaW5nKCJUYXJnZXQiLCAiV2ViIEFuaW1hdGlvbiBUYXJnZXQgTGFiZWwiLCAi
TGFiZWwgZm9yIHRoZSBjdXJyZW50IERPTSBub2RlIHRhcmdldCBvZiBhIHdlYiBhbmltYXRpb24i
KSk7CisKKyAgICAgICAgY29uc3QgaWRlbnRpdHlTZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygi
SWRlbnRpdHkiLCAiV2ViIEFuaW1hdGlvbiBJZGVudGl0eSBUaXRsZSIsICJTZWN0aW9uIHRpdGxl
IGZvciBpbmZvcm1hdGlvbiBhYm91dCBhIHdlYiBhbmltYXRpb24iKTsKKyAgICAgICAgbGV0IGlk
ZW50aXR5U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWlkZW50aXR5
IiwgaWRlbnRpdHlTZWN0aW9uVGl0bGUsIFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhp
cy5fbmFtZVJvdywgdGhpcy5fdHlwZVJvdywgdGhpcy5fdGFyZ2V0Um93XSldKTsKKyAgICAgICAg
dGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGlkZW50aXR5U2VjdGlvbi5lbGVt
ZW50KTsKKworICAgICAgICB0aGlzLl9pdGVyYXRpb25Db3VudFJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiSXRlcmF0aW9ucyIsICJXZWIgQW5pbWF0aW9u
IEl0ZXJhdGlvbiBDb3VudCBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIG51bWJlciBvZiBpdGVyYXRp
b25zIG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0Iiwg
IldlYiBBbmltYXRpb24gSXRlcmF0aW9uIFN0YXJ0IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgbnVt
YmVyIGRlc2NyaWJpbmcgd2hpY2ggaXRlcmF0aW9uIGEgd2ViIGFuaW1hdGlvbiBzaG91bGQgc3Rh
cnQgYXQiKSk7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJEdXJhdGlvbiIsICJXZWIgQW5pbWF0
aW9uIEl0ZXJhdGlvbiBEdXJhdGlvbiBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIHRpbWUgZHVyYXRp
b24gb2YgZWFjaCBpdGVyYXRpb24gb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICBsZXQg
aXRlcmF0aW9uc0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX2l0ZXJh
dGlvbkNvdW50Um93LCB0aGlzLl9pdGVyYXRpb25TdGFydFJvdywgdGhpcy5faXRlcmF0aW9uRHVy
YXRpb25Sb3ddKTsKKworICAgICAgICB0aGlzLl9zdGFydERlbGF5Um93ID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJTdGFydCBEZWxheSIsICJXZWIgQW5pbWF0
aW9uIFN0YXJ0IERlbGF5IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgc3RhcnQgZGVsYXkgdGltZSBv
ZiBhIHdlYiBhbmltYXRpb24gIikpOworICAgICAgICB0aGlzLl9lbmREZWxheVJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRW5kIERlbGF5IiwgIldlYiBB
bmltYXRpb24gRW5kIERlbGF5IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgZW5kIGRlbGF5IHRpbWUg
b2YgYSB3ZWIgYW5pbWF0aW9uICIpKTsKKyAgICAgICAgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3cg
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkVhc2luZyIsICJX
ZWIgQW5pbWF0aW9uIEVhc2luZyBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIGN1YmljLWJlemllciB0
aW1pbmcgZnVuY3Rpb24gb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICBsZXQgdGltaW5n
R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fc3RhcnREZWxheVJvdywg
dGhpcy5fZW5kRGVsYXlSb3csIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93XSk7CisKKyAgICAgICAg
dGhpcy5fcGxheWJhY2tEaXJlY3Rpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVS
b3coV0kuVUlTdHJpbmcoIkRpcmVjdGlvbiIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVj
dGlvbiBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiBhIHdlYiBh
bmltYXRpb24iKSk7CisgICAgICAgIHRoaXMuX2ZpbGxNb2RlUm93ID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJGaWxsIiwgIldlYiBBbmltYXRpb24gRmlsbCBN
b2RlIExhYmVsIiwgIkxhYmVsIGZvciB0aGUgZmlsbCBtb2RlIG9mIGEgd2ViIGFuaW1hdGlvbiIp
KTsKKyAgICAgICAgbGV0IGZpbGxEaXJlY3Rpb25Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
bkdyb3VwKFt0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdywgdGhpcy5fZmlsbE1vZGVSb3ddKTsK
KworICAgICAgICBjb25zdCBlZmZlY3RTZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygiRWZmZWN0
IiwgIldlYiBBbmltYXRpb24gRWZmZWN0IFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUgZm9yIGluZm9y
bWF0aW9uIGFib3V0IHRoZSBlZmZlY3Qgb2YgYSB3ZWIgYW5pbWF0aW9uIik7CisgICAgICAgIGxl
dCBlZmZlY3RTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24tZWZmZWN0
IiwgZWZmZWN0U2VjdGlvblRpdGxlLCBbaXRlcmF0aW9uc0dyb3VwLCB0aW1pbmdHcm91cCwgZmls
bERpcmVjdGlvbkdyb3VwXSk7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBl
bmRDaGlsZChlZmZlY3RTZWN0aW9uLmVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2tleWZyYW1l
c0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXA7CisKKyAgICAgICAgY29uc3Qga2V5
ZnJhbWVzU2VjdGlvblRpdGxlID0gV0kuVUlTdHJpbmcoIktleWZyYW1lcyIsICJXZWIgQW5pbWF0
aW9uIEtleWZyYW1lcyBUaXRsZSIsICJTZWN0aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91
dCB0aGUga2V5ZnJhbWVzIG9mIGEgd2ViIGFuaW1hdGlvbiIpOworICAgICAgICBsZXQga2V5ZnJh
bWVzU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWtleWZyYW1lcyIs
IGtleWZyYW1lc1NlY3Rpb25UaXRsZSwgW3RoaXMuX2tleWZyYW1lc0dyb3VwXSk7CisgICAgICAg
IHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChrZXlmcmFtZXNTZWN0aW9uLmVs
ZW1lbnQpOworCisgICAgICAgIGNvbnN0IHNlbGVjdGFibGUgPSBmYWxzZTsKKyAgICAgICAgbGV0
IGJhY2t0cmFjZVRyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lKHNlbGVjdGFibGUpOwor
ICAgICAgICBiYWNrdHJhY2VUcmVlT3V0bGluZS5kaXNjbG9zdXJlQnV0dG9ucyA9IGZhbHNlOwor
ICAgICAgICB0aGlzLl9iYWNrdHJhY2VUcmVlQ29udHJvbGxlciA9IG5ldyBXSS5DYWxsRnJhbWVU
cmVlQ29udHJvbGxlcihiYWNrdHJhY2VUcmVlT3V0bGluZSk7CisKKyAgICAgICAgbGV0IGJhY2t0
cmFjZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKKyAgICAgICAgYmFja3RyYWNlUm93
LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja3RyYWNlVHJlZU91dGxpbmUuZWxlbWVudCk7CisKKyAg
ICAgICAgY29uc3QgYmFja3RyYWNlU2VjdGlvblRpdGxlID0gV0kuVUlTdHJpbmcoIkJhY2t0cmFj
ZSIsICJXZWIgQW5pbWF0aW9uIEJhY2t0cmFjZSBUaXRsZSIsICJTZWN0aW9uIHRpdGxlIGZvciB0
aGUgSmF2YVNjcmlwdCBiYWNrdHJhY2Ugb2YgdGhlIGNyZWF0aW9uIG9mIGEgd2ViIGFuaW1hdGlv
biIpOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uKCJhbmltYXRpb24tYmFja3RyYWNlIiwgYmFja3RyYWNlU2VjdGlvblRpdGxlLCBbbmV3IFdJ
LkRldGFpbHNTZWN0aW9uR3JvdXAoW2JhY2t0cmFjZVJvd10pXSk7CisgICAgICAgIHRoaXMuX2Jh
Y2t0cmFjZVNlY3Rpb24uZWxlbWVudC5oaWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLmNvbnRl
bnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50
KTsKKyAgICB9CisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7
CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgdGhpcy5fcmVmcmVzaElkZW50aXR5U2VjdGlvbigpOworICAgICAgICB0aGlzLl9y
ZWZyZXNoRWZmZWN0U2VjdGlvbigpOworICAgICAgICB0aGlzLl9yZWZyZXNoQmFja3RyYWNlU2Vj
dGlvbigpOworCisgICAgICAgIGZvciAobGV0IGNvZGVNaXJyb3Igb2YgdGhpcy5fY29kZU1pcnJv
clNlY3Rpb25NYXAudmFsdWVzKCkpCisgICAgICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsK
KyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfcmVmcmVzaElkZW50aXR5U2VjdGlvbigp
CisgICAgeworICAgICAgICB0aGlzLl9uYW1lUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmRp
c3BsYXlOYW1lOworICAgICAgICB0aGlzLl90eXBlUm93LnZhbHVlID0gV0kuQW5pbWF0aW9uLmRp
c3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSh0aGlzLl9hbmltYXRpb24uYW5pbWF0aW9uVHlwZSk7
CisKKyAgICAgICAgdGhpcy5fdGFyZ2V0Um93LnZhbHVlID0gbnVsbDsKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAg
IHRoaXMuX3RhcmdldFJvdy52YWx1ZSA9IGRvbU5vZGUgPyBXSS5saW5raWZ5Tm9kZVJlZmVyZW5j
ZShkb21Ob2RlKSA6IG51bGw7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoRWZm
ZWN0U2VjdGlvbigpCisgICAgeworICAgICAgICBmb3IgKGxldCBzZWN0aW9uIG9mIHRoaXMuX2Nv
ZGVNaXJyb3JTZWN0aW9uTWFwLmtleXMoKSkKKyAgICAgICAgICAgIHNlY3Rpb24ucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXSS5EZXRhaWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQs
IHRoaXMuX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsK
KyAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAuY2xlYXIoKTsKKworICAgICAgICBj
b25zdCBwcmVjaXNpb24gPSAwOworICAgICAgICBjb25zdCByZWFkT25seSA9IHRydWU7CisKKyAg
ICAgICAgdGhpcy5faXRlcmF0aW9uQ291bnRSb3cudmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0
aW9uLml0ZXJhdGlvbkNvdW50KSA/IHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25Db3VudC50b0xv
Y2FsZVN0cmluZygpIDogbnVsbDsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cudmFs
dWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSA/IHRoaXMuX2FuaW1h
dGlvbi5pdGVyYXRpb25TdGFydC50b0xvY2FsZVN0cmluZygpIDogbnVsbDsKKyAgICAgICAgdGhp
cy5faXRlcmF0aW9uRHVyYXRpb25Sb3cudmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0
ZXJhdGlvbkR1cmF0aW9uKSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0aW9u
Lml0ZXJhdGlvbkR1cmF0aW9uIC8gMTAwMCkgOiBudWxsOworCisgICAgICAgIHRoaXMuX3N0YXJ0
RGVsYXlSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uc3RhcnREZWxheSA/IE51bWJlci5zZWNv
bmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0aW9uLnN0YXJ0RGVsYXkgLyAxMDAwKSA6IG51bGw7Cisg
ICAgICAgIHRoaXMuX2VuZERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5
ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24uZW5kRGVsYXkgLyAxMDAw
KSA6IG51bGw7CisgICAgICAgIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93LnZhbHVlID0gdGhpcy5f
YW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uID8gdGhpcy5fYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9u
LnRvU3RyaW5nKCkgOiBudWxsOworCisgICAgICAgIHRoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93
LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uID8gV0kuQW5pbWF0aW9u
LmRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24odGhpcy5fYW5pbWF0aW9uLnBsYXliYWNr
RGlyZWN0aW9uKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2ZpbGxNb2RlUm93LnZhbHVlID0gdGhp
cy5fYW5pbWF0aW9uLmZpbGxNb2RlID8gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1v
ZGUodGhpcy5fYW5pbWF0aW9uLmZpbGxNb2RlKSA6IG51bGw7CisKKyAgICAgICAgbGV0IGtleWZy
YW1lU2VjdGlvbnMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2YgdGhpcy5fYW5p
bWF0aW9uLmtleWZyYW1lcykgeworICAgICAgICAgICAgbGV0IHJvd3MgPSBbXTsKKworICAgICAg
ICAgICAgbGV0IGtleWZyYW1lU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0
aW9uLWtleWZyYW1lLW9mZnNldC0iICsga2V5ZnJhbWUub2Zmc2V0LCBOdW1iZXIucGVyY2VudGFn
ZVN0cmluZyhrZXlmcmFtZS5vZmZzZXQsIHByZWNpc2lvbikpOworICAgICAgICAgICAga2V5ZnJh
bWVTZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGV0YWlsc1NlY3Rpb24uRXZlbnQuQ29sbGFw
c2VkU3RhdGVDaGFuZ2VkLCB0aGlzLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRl
Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goa2V5ZnJh
bWVTZWN0aW9uKTsKKworICAgICAgICAgICAgaWYgKGtleWZyYW1lLmVhc2luZykgeworICAgICAg
ICAgICAgICAgIGxldCBzdWJ0aXRsZSA9IGtleWZyYW1lU2VjdGlvbi5oZWFkZXJFbGVtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICAg
ICAgc3VidGl0bGUuY2xhc3NOYW1lID0gInN1YnRpdGxlIjsKKyAgICAgICAgICAgICAgICBzdWJ0
aXRsZS50ZXh0Q29udGVudCA9IGAgJHtlbURhc2h9ICR7a2V5ZnJhbWUuZWFzaW5nLnRvU3RyaW5n
KCl9YDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGtleWZyYW1lLnN0eWxlKSB7
CisgICAgICAgICAgICAgICAgbGV0IGNvZGVNaXJyb3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSBXSS5Db2Rl
TWlycm9yRWRpdG9yLmNyZWF0ZShjb2RlTWlycm9yRWxlbWVudCwgeworICAgICAgICAgICAgICAg
ICAgICBtb2RlOiAiY3NzIiwKKyAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk6ICJub2N1cnNv
ciIsCisgICAgICAgICAgICAgICAgICAgIGxpbmVXcmFwcGluZzogdHJ1ZSwKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBjb2RlTWlycm9yLnNldFZhbHVlKGtleWZyYW1lLnN0
eWxlKTsKKworICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBvcHRpb25zRm9yVHlwZSh0eXBlKSB7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB7CisgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkVG9rZW5zOiAvXGJ0YWdc
Yi8sCisgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhtYXJrZXIsIHZhbHVlT2JqZWN0
LCB2YWx1ZVN0cmluZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzd2F0Y2gg
PSBuZXcgV0kuSW5saW5lU3dhdGNoKHR5cGUsIHZhbHVlT2JqZWN0LCByZWFkT25seSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29kZU1pcnJvci5zZXRVbmlxdWVCb29rbWFyayhtYXJr
ZXIucmFuZ2Uuc3RhcnRQb3NpdGlvbigpLnRvQ29kZU1pcnJvcigpLCBzd2F0Y2guZWxlbWVudCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JDb2xvclRleHRN
YXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0Y2gu
VHlwZS5Db2xvcikpOworICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JHcmFkaWVudFRl
eHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0
Y2guVHlwZS5HcmFkaWVudCkpOworICAgICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JDdWJp
Y0JlemllclRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5J
bmxpbmVTd2F0Y2guVHlwZS5CZXppZXIpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWly
cm9yU3ByaW5nVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJ
LklubGluZVN3YXRjaC5UeXBlLlNwcmluZykpOworCisgICAgICAgICAgICAgICAgbGV0IHJvdyA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKKyAgICAgICAgICAgICAgICByb3cuZWxlbWVudC5j
bGFzc0xpc3QuYWRkKCJzdHlsZXMiKTsKKyAgICAgICAgICAgICAgICByb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChjb2RlTWlycm9yRWxlbWVudCk7CisgICAgICAgICAgICAgICAgcm93cy5wdXNoKHJv
dyk7CisKKyAgICAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5zZXQoa2V5
ZnJhbWVTZWN0aW9uLCBjb2RlTWlycm9yKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKCFyb3dzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGxldCBlbXB0eVJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdyhXSS5VSVN0cmluZygiTm8gU3R5bGVzIikpOworICAgICAgICAg
ICAgICAgIGVtcHR5Um93LnNob3dFbXB0eU1lc3NhZ2UoKTsKKyAgICAgICAgICAgICAgICByb3dz
LnB1c2goZW1wdHlSb3cpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBrZXlmcmFtZVNl
Y3Rpb24uZ3JvdXBzID0gW25ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKHJvd3MpXTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoIWtleWZyYW1lU2VjdGlvbnMubGVuZ3RoKSB7CisgICAgICAgICAg
ICBsZXQgZW1wdHlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5v
IEtleWZyYW1lcyIpKTsKKyAgICAgICAgICAgIGVtcHR5Um93LnNob3dFbXB0eU1lc3NhZ2UoKTsK
KyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbnMucHVzaChlbXB0eVJvdyk7CisgICAgICAgIH0K
KyAgICAgICAgdGhpcy5fa2V5ZnJhbWVzR3JvdXAucm93cyA9IGtleWZyYW1lU2VjdGlvbnM7Cisg
ICAgfQorCisgICAgX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGxl
dCBjYWxsRnJhbWVzID0gdGhpcy5fYW5pbWF0aW9uLmJhY2t0cmFjZTsKKyAgICAgICAgdGhpcy5f
YmFja3RyYWNlVHJlZUNvbnRyb2xsZXIuY2FsbEZyYW1lcyA9IGNhbGxGcmFtZXM7CisgICAgICAg
IHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxlbWVudC5oaWRkZW4gPSAhY2FsbEZyYW1lcy5sZW5n
dGg7CisgICAgfQorCisgICAgX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQoZXZlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoRWZmZWN0U2VjdGlvbigpOworICAgIH0KKworICAg
IF9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fcmVmcmVzaElkZW50aXR5U2VjdGlvbigpOworICAgIH0KKworICAgIF9oYW5kbGVEZXRhaWxz
U2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBj
b2RlTWlycm9yID0gdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAuZ2V0KGV2ZW50LnRhcmdldCk7
CisgICAgICAgIGNvZGVNaXJyb3IucmVmcmVzaCgpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmll
dy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXND
b250ZW50Vmlldy5jc3MKaW5kZXggNGU1YTkwZTFmMDMxN2YwYzRlYmY0Zjc5OTcwMjc2YzdmYmQy
N2Y1OC4uY2MxNjZiZDNlNjBkMzgxYTc1YTFhMTc5NDNhYmUyMzY3MDdhOGI0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVu
dFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc0NvbnRlbnRWaWV3LmNzcwpAQCAtMjMsMTEgKzIzLDExIEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50
YWIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2wo
MCwgMCUsIDkwJSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IC5wcmV2
aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgewogICAgIGRpc3BsYXk6IGZs
ZXg7CiAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgYWxpZ24taXRlbXM6IGNlbnRl
cjsKQEAgLTM2LDE3ICszNiwxNyBAQAogICAgIHBhZGRpbmc6IDE1cHg7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZGlz
cGxheTogZmxleDsKICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhczpub3QoLnRhYikgPiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNh
bnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgbWF4LWhl
aWdodDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gOm1hdGNo
ZXMoaGVhZGVyLCBmb290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVh
ZGVyLCBmb290ZXIpIHsKICAgICBkaXNwbGF5OiBub25lOwogfQogCkBAIC01Niw3ICs1Niw3IEBA
CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnRhYikgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzIHsKICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250
ZW50Vmlldy5qcwppbmRleCA5YjRmZDZmNmVkN2UxY2I3NjM5NzUxMTEwMTE1MzI0NjU0ZDU4ZjAx
Li45OTNkYTUxM2YyZGQ1NjMzZmQ3OTQ4M2VhNGNhOWZmYmE5NmVmY2U5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmll
dy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNDb250ZW50Vmlldy5qcwpAQCAtNDUsNyArNDUsNyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9
IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAg
ICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdh
dGlvbkl0ZW0oInJlZnJlc2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9h
ZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRp
b25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQ
cmlvcml0eS5Mb3c7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5h
ZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRo
aXMucmVmcmVzaFByZXZpZXcsIHRoaXMpOworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVu
dC5DbGlja2VkLCB0aGlzLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKIAogICAg
ICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRl
QnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5z
cGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJ
bWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlz
Ll9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlja2Vk
LCB0aGlzKTsKQEAgLTc3LDYgKzc3LDI5IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3Mg
Q2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB9KTsKICAg
ICB9CiAKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICB0
aGlzLnJlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVn
YXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudChkcm9wWm9uZSwgZXZl
bnQpCisgICAgeworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1
ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAgIGRyb3Bab25lSGFuZGxlRHJvcChkcm9wWm9uZSwg
ZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmls
ZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5iZWVwKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBX
SS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKwogICAgIC8vIFBy
b3RlY3RlZAogCiAgICAgaW5pdGlhbExheW91dCgpCkBAIC0xNjAsNiArMTgzLDEzIEBAIFdJLkNh
bnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldwogCiAgICAgICAgIGlmIChpc0NhcmQpCiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNo
UGl4ZWxTaXplKCk7CisKKyAgICAgICAgaWYgKCFpc0NhcmQpIHsKKyAgICAgICAgICAgIGxldCBk
cm9wWm9uZVZpZXcgPSBuZXcgV0kuRHJvcFpvbmVWaWV3KHRoaXMpOworICAgICAgICAgICAgZHJv
cFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmluZygiSW1wb3J0IFJlY29yZGluZyIpOworICAgICAg
ICAgICAgZHJvcFpvbmVWaWV3LnRhcmdldEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgICAg
ICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpvbmVWaWV3KTsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIGxheW91dCgpCkBAIC0xOTEsMTMgKzIyMSw2IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0g
Y2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0
aGlzLl91cGRhdGVJbWFnZUdyaWQoKTsKICAgICB9CiAKLSAgICBzaG93bigpCi0gICAgewotICAg
ICAgICBzdXBlci5zaG93bigpOwotCi0gICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKLSAg
ICB9Ci0KICAgICBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwpA
QCAtMjIzLDYgKzI0Niw4IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB9KTsKIAogICAgICAgICBX
SS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVu
dC5DaGFuZ2VkLCB0aGlzLl91cGRhdGVJbWFnZUdyaWQsIHRoaXMpOworCisgICAgICAgIHRoaXMu
cmVmcmVzaFByZXZpZXcoKTsKICAgICB9CiAKICAgICBkZXRhY2hlZCgpCkBAIC0yOTEsMTEgKzMx
Niw2IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgX3BvcHVsYXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNv
bnRleHRNZW51KGNvbnRleHRNZW51KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2NhbnZhc05v
ZGUpCi0gICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250
ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7Ci0KLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
U2VwYXJhdG9yKCk7Ci0KICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmlu
ZygiTG9nIENhbnZhcyBDb250ZXh0IiksICgpID0+IHsKICAgICAgICAgICAgIFdJLlJlbW90ZU9i
amVjdC5yZXNvbHZlQ2FudmFzQ29udGV4dCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50
aW1lTWFuYWdlci5Db25zb2xlT2JqZWN0R3JvdXAsIChyZW1vdGVPYmplY3QpID0+IHsKICAgICAg
ICAgICAgICAgICBpZiAoIXJlbW90ZU9iamVjdCkKQEAgLTMwNiw2ICszMjYsMTEgQEAgV0kuQ2Fu
dmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAgICAgICAgICAgICAgICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVu
ZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhSZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVj
aWFsVXNlckxvZ0NsYXNzKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKKworICAgICAg
ICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fY2Fu
dmFzTm9kZSkKKyAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2Rl
KGNvbnRleHRNZW51LCB0aGlzLl9jYW52YXNOb2RlKTsKICAgICB9CiAKICAgICBfc2hvd0dyaWRC
dXR0b25DbGlja2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5j
c3MKaW5kZXggMTBmMzdjMDQ2YjBjMmExMjgyYzVlYzk5ZGM2Y2I5OTBiMjIzNmM1Zi4uMWM2ZDY0
MzFmOWI3ZDYzNmU4ZjNlOGNlMTVjNmJiMmE2NWIxMzZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKQEAgLTI2LDI5ICsyNiwyOSBAQAogLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgewogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAg
IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAw
JSwgOTAlKTsKLQotICAgIC0taXRlbS1tYXJnaW46IDEwcHg7CisgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIHBhZGRpbmc6IDRweCAwOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICBmbGV4LWdyb3c6IDA7Ci0gICAgbWFyZ2lu
OiB2YXIoLS1pdGVtLW1hcmdpbik7CisgICAgZmxleC1zaHJpbms6IDA7CiAgICAgd2lkdGg6IDQw
MHB4OworICAgIG1hcmdpbjogNHB4OwogICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRl
ci1jb2xvcik7CiAgICAgY3Vyc29yOiBwb2ludGVyOwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcywKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGlt
ZyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlIHsKICAgICBib3JkZXItY29sb3I6IHJlZDsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZv
b3RlcikgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAgZGlzcGxheTogZmxleDsKICAg
ICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgIGZsZXgtc2hyaW5rOiAwOwpAQCAtNTksMTM2ICs1
OSwxMzYgQEAKICAgICBjdXJzb3I6IGRlZmF1bHQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgewogICAgIGZv
bnQtc2l6ZTogMTNweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUg
PiBoZWFkZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVz
LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgPiAuc2l6ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuc2l6ZSB7CiAgICAgd2hp
dGUtc3BhY2U6IG5vd3JhcDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAu
dGl0bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LWRhcmsp
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgY29sb3I6
IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9y
ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gaGVhZGVyIC5zdWJ0aXRsZTo6YmVmb3JlIHsKICAgICBjb250ZW50OiAiXDAwQTBcMjAxNFww
MEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNwOyAqLzsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRl
ciA+IC50aXRsZXMgPiAudGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSB7CiAgICAgY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4g
LnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4g
LnN1YnRpdGxlIHsKICAgICBjb2xvcjogdmFyKC0tc2VsZWN0ZWQtc2Vjb25kYXJ5LXRleHQtY29s
b3IpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0g
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAg
IGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cyA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgYWxpZ24taXRlbXM6IGluaXRpYWw7
CiAgICAgYm9yZGVyOiBub25lOwogICAgIG9wYWNpdHk6IDA7CiAgICAgdHJhbnNpdGlvbjogb3Bh
Y2l0eSAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5yZWNvcmRpbmctYWN0aXZl
KSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3JkaW5nLWFj
dGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIG9wYWNpdHk6IDE7CiAgICAg
dHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0
aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9w
LmRpc2FibGVkIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wLmRpc2FibGVkIHsKICAgICBmaWx0ZXI6IGdyYXlz
Y2FsZSgpOwogICAgIG9wYWNpdHk6IDAuNTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRl
ciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJs
ZWQpOmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmhvdmVyIHsKICAgICBm
aWx0ZXI6IGJyaWdodG5lc3MoOTUlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQp
OmFjdGl2ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIg
PiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTphY3RpdmUgewogICAgIGZp
bHRlcjogYnJpZ2h0bmVzcyg4MCUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXcs
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3LAorLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBo
ZWlnaHQ6IDI4MHB4OwogICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXMgZWFz
ZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6
aG92ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92
ZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYlKTsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFj
dGl2ZSA+IC5wcmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5
OiBub25lOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgYm9yZGVyLXJh
ZGl1czogNHB4OwogICAgIGJveC1zaGFkb3c6IDFweCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC41
OCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgPiAubWVzc2FnZS10ZXh0LXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2Ut
dGV4dC12aWV3IHsKICAgICBwb3NpdGlvbjogc3RhdGljOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIHsKICAg
ICBib3JkZXItdG9wOiBub25lOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3Rl
ciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgYWxpZ24t
aXRlbXM6IGNlbnRlcjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gOm1hdGNoZXMo
LnZpZXctc2hhZGVyLCAudmlldy1yZWNvcmRpbmcpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0
ZW1zID4gOm1hdGNoZXMoLnZpZXctc2hhZGVyLCAudmlldy1yZWNvcmRpbmcpIHsKICAgICB3aWR0
aDogMTZweDsKICAgICBoZWlnaHQ6IDE2cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVt
cyA+IGltZyArIGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IGltZyArIGltZyB7
CiAgICAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVk
LWl0ZW1zID4gLnZpZXctc2hhZGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZp
ZXctc2hhZGVyIHsKICAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVu
dEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290
ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctcmVjb3JkaW5nIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmll
dy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctcmVjb3JkaW5nIHsKICAgICBjb250ZW50OiB1cmwoLi4v
SW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVy
ID4gLmZsZXhpYmxlLXNwYWNlIHsKICAgICBmbGV4OiAxOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3Qg
eworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogNHB4Owog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5z
YXZlZC1yZWNvcmRpbmdzIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CiAgICAgaGVpZ2h0OiAzNDBweDsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2
ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5l
IHsKICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGlu
ZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5l
ID4gLml0ZW0ucmVjb3JkaW5nID4gLmljb24gewogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMv
UmVjb3JkaW5nLnN2Zyk7CiB9CiAKQEAgLTIwOSw0MyArMjA5LDM5IEBACiB9CiAKIEBtZWRpYSAo
cHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwotICAgIH0KLQotICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLAotICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnBy
ZXZpZXcgPiBpbWcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1zZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGlu
Zy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKLSAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKKyAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKKyAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92ZXIgewog
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXRlcnRpYXJ5
KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgICAg
ICAtLXJlY29yZGluZy1jb2xvcjogaHNsKDAsIDEwMCUsIDM5JSk7CiAgICAgICAgIGJvcmRlci1j
b2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
aGVhZGVyIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgewogICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB2YXIoLS1yZWNvcmRpbmctY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxl
cyA+IC50aXRsZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgICAgICBjb2xv
cjogdmFyKC0tdGV4dC1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRp
dGxlLAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0
bGUsCisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1j
b2xvci1zZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC52aWV3LXJlY29yZGluZyB7CisgICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciAudmlldy1yZWNvcmRpbmcgewogICAgICAgICBmaWx0ZXI6IGludmVydCgpOwogICAgIH0K
IAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
LnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKICAgICAgICAgY29s
b3I6IHVuc2V0OwogICAgICAgICBvcGFjaXR5OiAwLjUKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwppbmRleCA2MzliMzZkODU5YmI3Y2YzYzM0NDQ1YWEw
ZWI3NDk1NDMzYzQxMDk4Li4wZDE2NWRkMjY4ZDQzNzAyOGE0M2QxNDllMDdjZmE4MzhiNGRlN2Fi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAgLTI5LDcg
KzI5LDggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbik7
CiAKLSAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmNyZWF0ZU1lc3NhZ2VUZXh0
VmlldyhXSS5VSVN0cmluZygiTm8gQ2FudmFzIENvbnRleHRzIikpOworICAgICAgICBsZXQgY29u
dGVudFBsYWNlaG9sZGVyID0gV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQgPyBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSA6IFdJLmNyZWF0ZU1lc3NhZ2VUZXh0VmlldyhXSS5VSVN0
cmluZygiTm8gQ2FudmFzIENvbnRleHRzIikpOworCiAgICAgICAgIGxldCBkZXNjcmlwdGlvbkVs
ZW1lbnQgPSBjb250ZW50UGxhY2Vob2xkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOwogICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gImRl
c2NyaXB0aW9uIjsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0ku
VUlTdHJpbmcoIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBv
ciBDU1MuIik7CkBAIC02MiwyMSArNjMsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAg
ICAgICAgICAgdGhpcy5fdXBkYXRlUmVjb3JkaW5nQXV0b0NhcHR1cmVDaGVja2JveExhYmVsKGZy
YW1lQ291bnQpOwogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNvcmRpbmci
LCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7Ci0g
ICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2x0aXAgPSBXSS5VSVN0
cmluZygiSW1wb3J0Iik7Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmJ1dHRvblN0eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0
OwotCi0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaC1hbGwiLCBXSS5VSVN0cmluZygiUmVmcmVzaCBh
bGwiKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7Ci0gICAgICAgIHRoaXMuX3Jl
ZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu
X3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3JlZnJlc2hQcmV2aWV3cywgdGhpcyk7
Ci0KLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5B
Y3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hv
dyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3Jp
ZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKLSAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNl
dHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKLQog
ICAgICAgICBpbXBvcnROYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQu
Q2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0
aGlzKTsKIAogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50VmlldyA9IG51bGw7
CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lID0gbnVsbDsKQEAgLTkw
LDE3ICs3NywxOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFz
T3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogCiAgICAgZ2V0IG5hdmlnYXRp
b25JdGVtcygpCiAgICAgewotICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX2lt
cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtLCB0
aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW1dOwotICAgICAgICBpZiAoV0kuQ2FudmFzTWFuYWdlci5zdXBwb3J0c1JlY29y
ZGluZ0F1dG9DYXB0dXJlKCkpCi0gICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMudW5zaGlmdCh0
aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5h
dmlnYXRpb25JdGVtKTsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFtdOworICAgICAg
ICBpZiAodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSkKKyAgICAgICAg
ICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdh
dGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOwogICAgIH0KIAotICAg
IGhpZGRlbigpCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQogICAgIHsKLSAgICAg
ICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOwotCi0gICAgICAgIHN1cGVy
LmhpZGRlbigpOworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsK
KyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcp
CisgICAgICAgICAgICAgICAgc3Vidmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0xMTUsMjMgKzEwMywxOCBA
QCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250
ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJ2aWV3
KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3KTsKICAgICAgICAgICAgIHRoaXMuYWRk
U3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7CiAgICAgICAgIH0KLQot
ICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICB9CiAKICAgICBjb250
ZW50Vmlld1JlbW92ZWQoY29udGVudFZpZXcpCiAgICAgewogICAgICAgICBjb250ZW50Vmlldy5l
bGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9jb250ZW50Vmll
d01vdXNlRW50ZXIpOwogICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlz
dGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9jb250ZW50Vmlld01vdXNlTGVhdmUpOwotCi0gICAg
ICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpOwogICAgIH0KIAogICAgIGF0dGFjaGVk
KCkKICAgICB7CiAgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CiAKLSAgICAgICAgV0kuc2V0dGlu
Z3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdl
ZCwgdGhpcy5fdXBkYXRlU2hvd0ltYWdlR3JpZCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdz
LmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC5hZGRFdmVudExpc3RlbmVyKFdJLlNl
dHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1
cmVFbmFibGVkQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29y
ZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZl
bnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNv
dW50Q2hhbmdlZCwgdGhpcyk7CiAKQEAgLTE0MSw0OSArMTI0LDI3IEBAIFdJLkNhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5y
ZW1vdmVDaGlsZHJlbigpOwogICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFz
TWFuYWdlci5zYXZlZFJlY29yZGluZ3MpCiAgICAgICAgICAgICB0aGlzLl9hZGRTYXZlZFJlY29y
ZGluZyhyZWNvcmRpbmcpOworCisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2
aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250
ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LnJlZnJlc2hQcmV2aWV3KCk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBkZXRhY2hlZCgpCiAgICAgeworICAgICAgICBXSS5kb21NYW5h
Z2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5y
ZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCiAgICAgICAgIFdJLnNldHRp
bmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5yZW1vdmVFdmVudExpc3Rl
bmVyKG51bGwsIG51bGwsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRp
bmdBdXRvQ2FwdHVyZUVuYWJsZWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlz
KTsKLSAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVy
KG51bGwsIG51bGwsIHRoaXMpOwogCiAgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CiAgICAgfQog
CiAgICAgLy8gUHJpdmF0ZQogCi0gICAgZ2V0IF9pdGVtTWFyZ2luKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpLmdl
dFByb3BlcnR5VmFsdWUoIi0taXRlbS1tYXJnaW4iKSk7Ci0gICAgfQotCi0gICAgX3JlZnJlc2hQ
cmV2aWV3cygpCi0gICAgewotICAgICAgICBmb3IgKGxldCBjYW52YXNDb250ZW50VmlldyBvZiB0
aGlzLnN1YnZpZXdzKQotICAgICAgICAgICAgY2FudmFzQ29udGVudFZpZXcucmVmcmVzaFByZXZp
ZXcoKTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCkKLSAgICB7Ci0gICAg
ICAgIGxldCBoYXNJdGVtcyA9ICEhdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplOwotICAgICAg
ICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGhhc0l0ZW1zOwot
ICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBoYXNJ
dGVtczsKLSAgICB9Ci0KLSAgICBfc2hvd0dyaWRCdXR0b25DbGlja2VkKGV2ZW50KQotICAgIHsK
LSAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZSA9ICF0aGlzLl9zaG93R3Jp
ZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZDsKLSAgICB9Ci0KLSAgICBfdXBkYXRlU2hv
d0ltYWdlR3JpZCgpCi0gICAgewotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKLSAg
ICB9Ci0KICAgICBfY29udGVudFZpZXdNb3VzZUVudGVyKGV2ZW50KQogICAgIHsKICAgICAgICAg
bGV0IGNvbnRlbnRWaWV3ID0gV0kuVmlldy5mcm9tRWxlbWVudChldmVudC50YXJnZXQpOwpAQCAt
MzAxLDggKzI2Miw3IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlz
Ll9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Nh
dmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lLmVsZW1lbnQpOwogICAgICAgICB9CiAKLSAgICAgICAg
Y29uc3Qgc3VidGl0bGUgPSBudWxsOwotICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQg
PSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNw
bGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7CisgICAgICAgIGxldCByZWNvcmRpbmdUcmVl
RWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3Jk
aW5nLmRpc3BsYXlOYW1lLCBXSS5SZWNvcmRpbmcuZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBl
KHJlY29yZGluZy50eXBlKSwgcmVjb3JkaW5nKTsKICAgICAgICAgcmVjb3JkaW5nVHJlZUVsZW1l
bnQuc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVl
T3V0bGluZS5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lk
ZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzU2lkZWJhclBhbmVsLmpzCmluZGV4IGNiNWI5MGQ0MmQxZDYwYmM1ODViZDNhYjExNWRk
MGMyM2VhYjI0MWUuLjYwM2Y1YWVhNDdlYjJiMzA2OGY0YjU2OWE4OWM4ZGZiOWM5M2U3NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKQEAgLTIzNywxMCArMjM3LDggQEAgV0kuQ2Fu
dmFzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2
aWdhdGlvblNpZGViYXJQYW4KIAogICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNl
bnRlZE9iamVjdCkKICAgICB7Ci0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICAgICAgcmV0dXJuIHN1cGVyLmNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9i
amVjdCk7CisgICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNh
bnZhcworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNv
cmRpbmc7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250
ZW50Vmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ZGFiNWVmOTk3OWQ2
MmI4MTE1OTg5YTkxNjQwNDEzYzcyYThjZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIg
PiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL0NhbnZhc092ZXJ2aWV3LnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7Ci0gICAgY29u
dGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRh
Yi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhczptYXRjaGVzKC53ZWJnbCwg
LndlYmdsMiwgLndlYmdwdSwgLndlYm1ldGFsKSAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4u
L0ltYWdlcy9DYW52YXMzRC5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5h
dmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKLSAgICBjb250ZW50OiB1
cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52
YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFtID4gLmljb24gewotICAg
IGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJs
KC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOwotfQotCi1AbWVkaWEgKHByZWZlcnMt
Y29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZp
Z2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24gewotICAgICAgICBmaWx0
ZXI6IGludmVydCg2MCUpOwotICAgIH0KLQotICAgIC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAotICAgIC5jb250ZW50LXZpZXcu
dGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24gewot
ICAgICAgICBmaWx0ZXI6IGludmVydCgpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29u
dGVudFZpZXcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlMWRiZTQ4MDFlNTU3
YmM3YzIwZTUyZWM3N2M4MDk5OWQ1NmE4ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyOTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLVdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFi
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3Ci17Ci0g
ICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydCghcmVwcmVzZW50ZWRPYmplY3QgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXMpOwotCi0gICAgICAgIGxldCB0YWJCYXJJdGVtID0gV0kuR2VuZXJhbFRhYkJh
ckl0ZW0uZnJvbVRhYkluZm8oV0kuQ2FudmFzVGFiQ29udGVudFZpZXcudGFiSW5mbygpKTsKLQot
ICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBXSS5DYW52
YXNTaWRlYmFyUGFuZWw7Ci0gICAgICAgIGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1
Y3RvcnMgPSBbV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5SZWNvcmRp
bmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwsIFdJLkNhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWxd
OwotICAgICAgICBjb25zdCBkaXNhYmxlQmFja0ZvcndhcmQgPSB0cnVlOwotICAgICAgICBzdXBl
cigiY2FudmFzIiwgWyJjYW52YXMiXSwgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5l
bENvbnN0cnVjdG9yLCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCBkaXNhYmxlQmFj
a0ZvcndhcmQpOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24gPSBuZXcgV0kuQ2Fu
dmFzQ29sbGVjdGlvbjsKLQotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZSA9IG5ldyBX
SS5UcmVlT3V0bGluZTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYWxsb3dzUmVw
ZWF0U2VsZWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYWRk
RXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRo
aXMuX2NhbnZhc1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKLQotICAgICAg
ICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudCgi
Y2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlTdHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHRoaXMuX2Nh
bnZhc0NvbGxlY3Rpb24pOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5hcHBlbmRD
aGlsZCh0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9zYXZlZFJl
Y29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmlu
ZygiU2F2ZWQgUmVjb3JkaW5ncyIpLCBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uKTsKLSAgICAgICAg
dGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKLSAgICAgICAg
dGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZFJlY29yZGlu
Z3NUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0ku
S2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhp
cy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0
LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3Jk
U2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZy
YW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0
Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFu
ZGxlU3BhY2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hv
cnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9y
ZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLmVuYWJsZSgpOwotICAgIH0KLQotICAgIHN0YXRpYyB0YWJJbmZvKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBpbWFnZTogIkltYWdlcy9DYW52YXMu
c3ZnIiwKLSAgICAgICAgICAgIHRpdGxlOiBXSS5VSVN0cmluZygiQ2FudmFzIiksCi0gICAgICAg
IH07Ci0gICAgfQotCi0gICAgc3RhdGljIGlzVGFiQWxsb3dlZCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkNhbnZhcyIpOwotICAgIH0KLQotICAg
IC8vIFB1YmxpYwotCi0gICAgdHJlZUVsZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNl
bnRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jYW52YXNUcmVlT3V0bGlu
ZS5maW5kVHJlZUVsZW1lbnQocmVwcmVzZW50ZWRPYmplY3QpOwotICAgIH0KLQotICAgIGdldCB0
eXBlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBl
OwotICAgIH0KLQotICAgIGdldCBzdXBwb3J0c1NwbGl0Q29udGVudEJyb3dzZXIoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgZ2V0IG1hbmFnZXNOYXZpZ2F0aW9u
U2lkZWJhclBhbmVsKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAg
IGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcwotICAgICAg
ICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9u
Ci0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGlu
ZwotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQ
cm9ncmFtOwotICAgIH0KLQotICAgIHNob3duKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnNob3du
KCk7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKLSAg
ICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOwot
Ci0gICAgICAgIGlmICghdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXcpCi0g
ICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdCh0aGlzLl9jYW52YXNDb2xsZWN0
aW9uKTsKLSAgICB9Ci0KLSAgICBoaWRkZW4oKQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVjb3Jk
U2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFt
ZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICBzdXBlci5oaWRkZW4oKTsKLSAg
ICB9Ci0KLSAgICBjbG9zZWQoKQotICAgIHsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5kaXNh
YmxlKCk7Ci0KLSAgICAgICAgc3VwZXIuY2xvc2VkKCk7Ci0gICAgfQotCi0gICAgcmVzdG9yZVN0
YXRlRnJvbUNvb2tpZShjb29raWUpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50
IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCi0gICAgfQot
Ci0gICAgc2F2ZVN0YXRlVG9Db29raWUoY29va2llKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRl
LgotICAgIH0KLQotICAgIGFzeW5jIGhhbmRsZUZpbGVEcm9wKGZpbGVzKQotICAgIHsKLSAgICAg
ICAgYXdhaXQgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0ku
Y2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKLSAgICB9Ci0KLSAgICAvLyBQcm90
ZWN0ZWQKLQotICAgIGF0dGFjaGVkKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7
Ci0KLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsK
LSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7
Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3Rv
cHBlZCwgdGhpcyk7Ci0gICAgICAgIFdJLkNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
cy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3Rv
cHBlZCwgdGhpcyk7Ci0KLSAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlczsKLQotICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgdGhpcy5fY2FudmFzQ29sbGVj
dGlvbikgewotICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5pbmNsdWRlcyhjYW52YXMpKQotICAg
ICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZm9yIChsZXQgY2FudmFzIG9mIGNhbnZhc2VzKSB7Ci0gICAgICAgICAgICBpZiAoIXRo
aXMuX2NhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCi0gICAgICAgICAgICAgICAgdGhpcy5f
YWRkQ2FudmFzKGNhbnZhcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9zYXZlZFJlY29y
ZGluZ3NUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICBmb3IgKGxldCByZWNv
cmRpbmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3MpCi0gICAgICAgICAgICB0
aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVl
fSk7Ci0gICAgfQotCi0gICAgZGV0YWNoZWQoKQotICAgIHsKLSAgICAgICAgV0kuQ2FudmFzLnJl
bW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01h
bmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKLQotICAgICAgICBz
dXBlci5kZXRhY2hlZCgpOwotICAgIH0KLQotICAgIC8vIFByaXZhdGUKLQotICAgIF9hZGRDYW52
YXMoY2FudmFzKQotICAgIHsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5hcHBl
bmRDaGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7Ci0gICAgICAgIHRoaXMu
X2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNhbnZhcyk7Ci0KLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKLSAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKLSAgICAgICAgfTsK
LQotICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rp
b24pCi0gICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsK
LSAgICB9Ci0KLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIGxldCB0
cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52
YXMpOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCwgIk1pc3NpbmcgdHJlZSBl
bGVtZW50IGZvciBjYW52YXMuIiwgY2FudmFzKTsKLQotICAgICAgICBjb25zdCBzdXBwcmVzc05v
dGlmaWNhdGlvbiA9IHRydWU7Ci0gICAgICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KHN1cHByZXNz
Tm90aWZpY2F0aW9uKTsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5yZW1vdmVD
aGlsZCh0cmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5yZW1v
dmUoY2FudmFzKTsKLQotICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jb250
ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7Ci0gICAgICAgIGlmIChjdXJyZW50Q29udGVu
dFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKLSAgICAgICAgICAgIFdJLnNo
b3dSZXByZXNlbnRlZE9iamVjdCh0aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgZWxz
ZSBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29udGVudFZp
ZXcgJiYgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24uaGFzKGN1cnJlbnRDb250ZW50Vmlldy5y
ZXByZXNlbnRlZE9iamVjdCkpCi0gICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnVwZGF0
ZUhpZXJhcmNoaWNhbFBhdGhGb3JDdXJyZW50Q29udGVudFZpZXcoKTsKLQotICAgICAgICBsZXQg
bmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbDsKLSAg
ICAgICAgaWYgKG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5DYW52YXNTaWRl
YmFyUGFuZWwgJiYgbmF2aWdhdGlvblNpZGViYXJQYW5lbC52aXNpYmxlKQotICAgICAgICAgICAg
bmF2aWdhdGlvblNpZGViYXJQYW5lbC51cGRhdGVSZXByZXNlbnRlZE9iamVjdHMoKTsKLQotICAg
ICAgICB0aGlzLnNob3dEZXRhaWxzU2lkZWJhclBhbmVscygpOwotICAgIH0KLQotICAgIF9hZGRS
ZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zID0ge30pCi0gICAgewotICAgICAgICBpZiAoIXJl
Y29yZGluZy5zb3VyY2UpIHsKLSAgICAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAg
ICAgICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVs
ZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVj
b3JkaW5nKTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50Lmhp
ZGRlbiA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1l
bnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKCFvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZykKLSAgICAgICAgICAgIHRoaXMu
c2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlY29yZGluZyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNh
bnZhc0FkZGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGV2ZW50LmRh
dGEuY2FudmFzKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVudCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhldmVudC5kYXRhLmNhbnZhcyk7Ci0gICAg
fQotCi0gICAgX2NhbnZhc1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQotICAg
IHsKLSAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5l
LnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCByZXByZXNlbnRlZE9iamVjdCA9IHNlbGVj
dGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAgaWYgKCF0aGlzLmNhblNob3dS
ZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkpIHsKLSAgICAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGZhbHNlLCAiVW5leHBlY3RlZCByZXByZXNlbnRlZE9iamVjdC4iLCByZXByZXNl
bnRlZE9iamVjdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB0
aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgfQotCi0g
ICAgX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAg
bGV0IHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlciwgaW1wb3J0ZWR9ID0gZXZlbnQuZGF0YTsK
LSAgICAgICAgaWYgKCFyZWNvcmRpbmcpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
bGV0IG9wdGlvbnMgPSB7fTsKLQotICAgICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRlZCByZWNv
cmRpbmdzLgotICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSB8fCAhaW1wb3J0ZWQpCi0gICAg
ICAgICAgICBvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZyA9ICFpbml0aWF0ZWRCeVVzZXIg
fHwgdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50UmVwcmVzZW50ZWRPYmplY3RzLnNvbWUoKHJl
cHJlc2VudGVkT2JqZWN0KSA9PiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29y
ZGluZyk7Ci0KLSAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7
Ci0gICAgfQotCi0gICAgX2hhbmRsZVNwYWNlKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKFdJ
LmlzRXZlbnRUYXJnZXRBbkVkaXRhYmxlRmllbGQoZXZlbnQpKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBjYW52YXMgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFy
UGFuZWwuY2FudmFzOwotICAgICAgICBpZiAoIWNhbnZhcykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAoY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKLSAgICAgICAgICAgIGNhbnZh
cy5zdG9wUmVjb3JkaW5nKCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbGV0IHNpbmds
ZUZyYW1lID0gISFldmVudC5zaGlmdEtleTsKLSAgICAgICAgICAgIGNhbnZhcy5zdGFydFJlY29y
ZGluZyhzaW5nbGVGcmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOwotICAgIH0KLX07Ci0KLVdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiY2Fu
dmFzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCmluZGV4IGZlMzNlN2Fj
ZDlmMTYxYjJjYzBjZTcxY2Q1MjRhNDkxYWRkMzNjMmIuLjVjZThkYjBmMzA4ZGQ5ODk4NGIzMWJi
OTRjYzVmNzljMzk1YzJkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNz
cwpAQCAtMzMsMTQgKzMzLDE3IEBACiAgICAgZmxleC1ncm93OiAxOwogfQogCi0uY29udGVudC12
aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZyB7Ci0gICAgb3V0bGluZTogMC41cHgg
c29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKLX0KLQotLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9u
IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIgewotICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWds
eXBoLWNvbG9yLWFjdGl2ZSkKLX0KLQogLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLmNvbnRl
bnQtdmlld1toaWRkZW5dIHsKICAgICBkaXNwbGF5OiBub25lOwogfQorCisuY29udGVudC12aWV3
LmNvbGxlY3Rpb24gPiAucGxhY2Vob2xkZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykgeworICAg
IGRpc3BsYXk6IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICBqdXN0aWZ5
LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIHdpZHRoOiAx
MDAlOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBmb250LXNpemU6IDEzcHg7CisgICAg
Y29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmpzCmluZGV4IDA1NDc0MTY4MWM4MThiZTViY2FhNWQ2ZmYxOWQ1Mzcy
OWI3YjM4NjYuLjUwNWE0YTdiZGU0NTUyM2IzMGRhNGY2YmNhNzdiNGQ4Y2NkMTA2YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rp
b25Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTI4LDcgKzI4LDcgQEAgV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMg
V0kuQ29udGVudFZpZXcKICAgICBjb25zdHJ1Y3Rvcihjb2xsZWN0aW9uLCBjb250ZW50Vmlld0Nv
bnN0cnVjdG9yLCBjb250ZW50UGxhY2Vob2xkZXIpCiAgICAgewogICAgICAgICBjb25zb2xlLmFz
c2VydChjb2xsZWN0aW9uIGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbik7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbnRlbnRWaWV3Q29uc3RydWN0b3IgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmll
dyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFjb250ZW50Vmlld0NvbnN0cnVjdG9yIHx8IGNv
bnRlbnRWaWV3Q29uc3RydWN0b3IucHJvdG90eXBlIGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcp
OwogCiAgICAgICAgIHN1cGVyKGNvbGxlY3Rpb24pOwogCkBAIC0zOCw3ICszOCw2IEBAIFdJLkNv
bGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQg
PSBudWxsOwogICAgICAgICB0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yID0gY29udGVudFZp
ZXdDb25zdHJ1Y3RvcjsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdNYXAgPSBuZXcgTWFwOwot
ICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcCA9IG5ldyBXZWFrTWFwOwogICAgICAgICB0aGlz
Ll9zZWxlY3RlZEl0ZW0gPSBudWxsOwogICAgICAgICB0aGlzLl9zZWxlY3Rpb25FbmFibGVkID0g
ZmFsc2U7CiAgICAgfQpAQCAtODMsMTkgKzgyLDI1IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50Vmll
dyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAg
ICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOwogICAgIH0KIAotICAgIHNldFNlbGVj
dGVkSXRlbShpdGVtKQorICAgIGdldCBzZWxlY3RlZEl0ZW0oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsKKyAgICB9CisKKyAgICBzZXQgc2VsZWN0ZWRJdGVtKGl0
ZW0pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zZWxlY3Rpb25FbmFibGVk
LCAiQXR0ZW1wdGVkIHRvIHNldCBzZWxlY3RlZCBpdGVtIHdoZW4gc2VsZWN0aW9uIGlzIGRpc2Fi
bGVkLiIpOwogICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gdGhpcy5fY29udGVudFZpZXdN
YXAuZ2V0KGl0ZW0pOwotICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldywgIk1pc3Np
bmcgY29udGV0IHZpZXcgZm9yIGl0ZW0uIiwgaXRlbSk7Ci0gICAgICAgIGlmICghY29udGVudFZp
ZXcpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVt
KTsKLSAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7
CisKKyAgICAgICAgaWYgKGl0ZW0pIHsKKyAgICAgICAgICAgIGxldCBjb250ZW50VmlldyA9IHRo
aXMuX2NvbnRlbnRWaWV3TWFwLmdldChpdGVtKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGNvbnRlbnRWaWV3LCAiTWlzc2luZyBjb250ZW50IHZpZXcgZm9yIGl0ZW0uIiwgaXRlbSk7Cisg
ICAgICAgICAgICBpZiAoY29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgY29udGVudFZpZXcu
ZWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICAvLyBQcm90ZWN0ZWQKQEAgLTEyMCwyMCArMTI1LDkgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRW
aWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcK
IAogICAgICAgICBsZXQgY29udGVudFZpZXcgPSBuZXcgdGhpcy5fY29udGVudFZpZXdDb25zdHJ1
Y3RvcihpdGVtLCB0aGlzLmNvbnRlbnRWaWV3Q29uc3RydWN0b3JPcHRpb25zKTsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQoY29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7Ci0K
LSAgICAgICAgbGV0IGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBpZiAo
ZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKLSAgICAgICAg
ICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVtKTsKLSAgICAgICAgfTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QgPT09IGl0
ZW0pOwogCiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwLnNldChpdGVtLCBjb250ZW50Vmll
dyk7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLnNldChpdGVtLCBoYW5kbGVDbGljayk7
Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBo
YW5kbGVDbGljayk7CiAKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGNvbnRlbnRWaWV3KTsKICAg
ICAgICAgdGhpcy5jb250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3KTsKQEAgLTE2OSwxNCArMTYz
LDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBjb250ZW50Vmlldy5yZW1vdmVF
dmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCi0gICAgICAgIGxldCBoYW5kbGVDbGlj
ayA9IHRoaXMuX2hhbmRsZUNsaWNrTWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQoaGFuZGxlQ2xpY2spOwotCi0gICAgICAgIGlmIChoYW5kbGVDbGljaykgewotICAgICAgICAg
ICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIGhhbmRs
ZUNsaWNrKTsKLSAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwLmRlbGV0ZShpdGVtKTsK
LSAgICAgICAgfQotCiAgICAgICAgIGlmICghdGhpcy5zdWJ2aWV3cy5sZW5ndGgpCiAgICAgICAg
ICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKICAgICB9CkBAIC0yMDAsNiArMTg2
LDggQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50
UGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5fY29udGVudFBsYWNlaG9sZGVyOwogICAgICAgICB9
CiAKKyAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJwbGFjZWhvbGRlciIpOworCiAgICAgICAgIGlmICghdGhpcy5fY29udGVudFBsYWNlaG9sZGVy
RWxlbWVudC5wYXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQpOwogICAgIH0KQEAgLTIxMiwxMCArMjAw
LDExIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBpbml0aWFsTGF5b3V0KCkKICAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlzLl9jb250
ZW50Vmlld0NvbnN0cnVjdG9yKSB7CisgICAgICAgIGlmICh0aGlzLl9jb250ZW50Vmlld0NvbnN0
cnVjdG9yKQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgaWYgKCF0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpCiAg
ICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxhY2Vob2xkZXIoKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGF0dGFjaGVkKCkKQEAgLTI5Miw2ICsyODEs
MzAgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHNlbGVjdGVkQ29udGVudFZp
ZXcuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwogICAgICAgICB9CiAKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LkV2ZW50LlNlbGVjdGVkSXRlbUNoYW5nZWQpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9i
amVjdHNEaWRDaGFuZ2UpOwogICAgIH0KKworICAgIF9oYW5kbGVDbGljayhldmVudCkKKyAgICB7
CisgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBbaXRlbSwgY29udGVudFZpZXddIG9m
IHRoaXMuX2NvbnRlbnRWaWV3TWFwKSB7CisgICAgICAgICAgICBpZiAoY29udGVudFZpZXcuZWxl
bWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMu
X3NlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0o
aXRlbSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBXSS5zaG93
UmVwcmVzZW50ZWRPYmplY3QoaXRlbSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQp
CisgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKG51bGwpOworICAgIH0KK307CisKK1dJLkNv
bGxlY3Rpb25Db250ZW50Vmlldy5FdmVudCA9IHsKKyAgICBTZWxlY3RlZEl0ZW1DaGFuZ2VkOiAi
Y29sbGVjdGlvbi1jb250ZW50LXZpZXctc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkIiwKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRl
bnRWaWV3LmpzCmluZGV4IGRmOTEyZGQ1NmZhMDdkZjk0OGYwZDdmN2FmMGQ3YzZkMWI3OWEyZjYu
LjI5NmMyYTU0MjNhMGY2OTFlYWM3ZDJkMGU5MzYwMGY1MTU0ZjBkZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3
LmpzCkBAIC02MCw5ICs2MCw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLkNhbnZhcykKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzQ29udGVudFZpZXco
cmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAotICAgICAgICBpZiAocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAg
cmV0dXJuIG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0
LCBleHRyYUFyZ3VtZW50cyk7Ci0KICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuU2hhZGVy
UHJvZ3JhbUNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAK
QEAgLTE4Miw2ICsxNzksOSBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5BdWRpdFRlc3RHcm91cCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0
VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5BdWRpdFRlc3RHcm91
cENvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKKyAgICAg
ICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXSS5BbmltYXRpb25Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVj
dCwgZXh0cmFBcmd1bWVudHMpOworCiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNvbGxlY3Rp
b25Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCkBAIC0y
NzMsOCArMjczLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRz
IFdJLlZpZXcKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVj
dGlvbikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlRpbWVsaW5l
UmVjb3JkaW5nKQpAQCAtMzE4LDEwICszMTYsMTQgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBD
b250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZSB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkF1ZGl0VGVzdEdyb3VwCiAgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24p
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBpZiAodHlwZW9mIHJlcHJlc2VudGVkT2JqZWN0ID09PSAic3RyaW5nIiB8fCByZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykKICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3RbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5
bWJvbF0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIApAQCAtNTEyLDQgKzUxNCw1IEBAIFdJLkNvbnRlbnRWaWV3LkV2ZW50ID0gewogICAg
IE5hdmlnYXRpb25JdGVtc0RpZENoYW5nZTogImNvbnRlbnQtdmlldy1uYXZpZ2F0aW9uLWl0ZW1z
LWRpZC1jaGFuZ2UiCiB9OwogCitXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9sID0gU3lt
Ym9sKCJpcy12aWV3YWJsZSIpOwogV0kuQ29udGVudFZpZXcuQ29udGVudFZpZXdGb3JSZXByZXNl
bnRlZE9iamVjdFN5bWJvbCA9IFN5bWJvbCgiY29udGVudC12aWV3LWZvci1yZXByZXNlbnRlZC1v
YmplY3QiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKaW5kZXggZTVh
NWZlYzFlYWJiNWMwOTcyY2ZhMDUzZDUzNGMzNjAwOWUxYjc2Zi4uN2VkMGM4MmViM2I3MWVlYjZi
YmIxZjk3ZTk3OTBmNmJiYmM1NTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1w
bGVSb3cuanMKQEAgLTk2LDcgKzk2LDcgQEAgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cgPSBj
bGFzcyBEZXRhaWxzU2VjdGlvblNpbXBsZVJvdyBleHRlbmRzIFdJLkRldGFpbHNTZWMKICAgICB7
CiAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgIiI7CiAKLSAgICAgICAgaWYgKHRoaXMu
X3ZhbHVlKSB7CisgICAgICAgIGlmICh0aGlzLl92YWx1ZSB8fCB0aGlzLl92YWx1ZSA9PT0gMCkg
ewogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV0kuRGV0YWlsc1Nl
Y3Rpb25TaW1wbGVSb3cuRW1wdHlTdHlsZUNsYXNzTmFtZSk7CiAKICAgICAgICAgICAgIC8vIElm
IHRoZSB2YWx1ZSBoYXMgc3BhY2UgY2hhcmFjdGVycyB0aGF0IGNhdXNlIHdvcmQgd3JhcHBpbmcg
dGhlbiB3ZSBkb24ndCBuZWVkIHRoZSBkYXRhIGNsYXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q2NjNlNmYwZjE3MmZjZTA5
MjY3ZjhlYzE2YWVhOGRkN2ViYTU0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5j
c3MKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgeworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3It
Y29udGVudCk7CisgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgIHBhZGRpbmctYm90dG9tOiB2
YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgw
LCAwJSwgOTAlKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rp
b24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhl
cml0OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3Qo
OmZpcnN0LWNoaWxkKSB7CisgICAgbWFyZ2luLXRvcDogMjBweDsKK30KKworLmNvbnRlbnQtdmll
dy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsKKyAgICBkaXNwbGF5OiBm
bGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgcG9zaXRpb246IHN0aWNreTsKKyAg
ICB0b3A6IDA7CisgICAgei1pbmRleDogMTsKKyAgICBtaW4taGVpZ2h0OiB2YXIoLS1uYXZpZ2F0
aW9uLWJhci1oZWlnaHQpOworICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogOHB4OworICAgIGJh
Y2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTsKKyAgICBib3JkZXItYm90dG9tOiAxcHgg
c29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1v
dmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKSA+IC5oZWFkZXIgeworICAgIGJv
cmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12
aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiBoMSB7CisgICAgbWFy
Z2luOiAwOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+
IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIGZsZXgtZ3JvdzogMTsKKyAgICBqdXN0
aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOworICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cit9CisKKy5j
b250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICByaWdodDog
MDsKKyAgICBib3R0b206IDA7CisgICAgbGVmdDogMDsKK30KKworQG1lZGlhIChwcmVmZXJzLWNv
bG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcg
eworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE0JSk7CisgICAgfQorCisg
ICAgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsK
KyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAyMSUpOworICAgIH0KK30KKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3Jh
cGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUwYzBhZTAxMTc1ZDk3YWRlYjI0ZGMzMGMwYjM1MDc3Y2FiYTI4ZTkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBHcmFwaGljc092ZXJ2aWV3Q29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7
CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQo
ImdyYXBoaWNzLW92ZXJ2aWV3Iik7CisKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNvcmRpbmci
LCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7Cisg
ICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2x0aXAgPSBXSS5VSVN0
cmluZygiSW1wb3J0Iik7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmJ1dHRvblN0eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0
OworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3Rl
bmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUlt
cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5f
cmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
KCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2
ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5h
ZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRo
aXMuX2hhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9z
aG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdh
dGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlk
IiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdh
dGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3Jp
ZC52YWx1ZTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRF
dmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMu
X2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fY2Fu
dmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisKKyAgICAgICAgdGhpcy5fb3Zl
cnZpZXdWaWV3cyA9IFtdOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHN1cHBs
ZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0cygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
b3ZlcnZpZXdWaWV3cy5mbGF0TWFwKChzdWJ2aWV3KSA9PiBzdWJ2aWV3LnN1cHBsZW1lbnRhbFJl
cHJlc2VudGVkT2JqZWN0cyk7CisgICAgfQorCisgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCisg
ICAgeworICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW107CisgICAgICAgIGlmICghV0ku
YW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVt
cy5wdXNoQWxsKHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcubmF2aWdhdGlvbkl0ZW1z
KTsKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKG5ldyBXSS5EaXZpZGVyTmF2aWdh
dGlvbkl0ZW0pOworICAgICAgICB9CisgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMu
X2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVt
LCB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3Nob3dHcmlkQnV0dG9u
TmF2aWdhdGlvbkl0ZW0pOworICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOworICAgIH0K
KworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3Vw
ZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2
ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaG93SW1h
Z2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9oYW5kbGVTaG93SW1h
Z2VHcmlkU2V0dGluZ0NoYW5nZWQoKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgewor
ICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAg
V0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNldHRpbmcu
RXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0
aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIGluaXRpYWxM
YXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAg
IGlmIChXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAgICAgICAgICAgbGV0IGNy
ZWF0ZVNlY3Rpb24gPSAoaWRlbnRpZmllciwgdGl0bGUsIG92ZXJ2aWV3VmlldykgPT4geworICAg
ICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG92ZXJ2aWV3VmlldyBpbnN0YW5jZW9mIFdJLkNv
bnRlbnRWaWV3KTsKKworICAgICAgICAgICAgICAgIGxldCBzZWN0aW9uRWxlbWVudCA9IHRoaXMu
ZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIikpOwor
ICAgICAgICAgICAgICAgIHNlY3Rpb25FbGVtZW50LmNsYXNzTmFtZSA9IGlkZW50aWZpZXI7CisK
KyAgICAgICAgICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBo
ZWFkZXJFbGVtZW50LmNsYXNzTmFtZSA9ICJoZWFkZXIiOworCisgICAgICAgICAgICAgICAgbGV0
IHRpdGxlRWxlbWVudCA9IGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaDEiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50
ID0gdGl0bGU7CisKKyAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gb3ZlcnZp
ZXdWaWV3Lm5hdmlnYXRpb25JdGVtczsKKyAgICAgICAgICAgICAgICBpZiAobmF2aWdhdGlvbkl0
ZW1zLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IG5l
dyBXSS5OYXZpZ2F0aW9uQmFyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5hdiIpLCBuYXZpZ2F0
aW9uSXRlbXMpOworICAgICAgICAgICAgICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxk
KG5hdmlnYXRpb25CYXIuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU3Vi
dmlldyhuYXZpZ2F0aW9uQmFyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBsZXQgY29udGVudEVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQu
Y2xhc3NOYW1lID0gImNvbnRlbnQiOworCisgICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQu
YXBwZW5kQ2hpbGQob3ZlcnZpZXdWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgICAgIHRoaXMu
YWRkU3VidmlldyhvdmVydmlld1ZpZXcpOworCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVk
SXRlbUNoYW5nZWQsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNoYW5nZWQs
IHRoaXMpOworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExpc3RlbmVyKFdJ
LkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5n
ZSwgdGhpcy5faGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3Rz
RGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9vdmVydmlld1ZpZXdzLnB1
c2gob3ZlcnZpZXdWaWV3KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGNyZWF0ZVNl
Y3Rpb24oImNhbnZhcyIsIFdJLlVJU3RyaW5nKCJDYW52YXNlcyIpLCB0aGlzLl9jYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3KTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb24g
PSBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAgICAgICBj
cmVhdGVTZWN0aW9uKCJ3ZWItYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25z
IiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVj
dGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5XZWJBbmlt
YXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3MtYW5pbWF0aW9uIiwgV0ku
VUlTdHJpbmcoIkNTUyBBbmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29u
dGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShX
SS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0
aW9uKCJjc3MtdHJhbnNpdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMiKSwgbmV3
IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb24p
KSk7CisKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KTsKKwor
ICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAg
ICAgICAgZHJvcFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0cmluZygiSW1wb3J0IFJlY29yZGluZyIp
OworICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKKyAg
ICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgfQorCisgICAgLy8gRHJv
cFpvbmVWaWV3IGRlbGVnYXRlCisKKyAgICBkcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVu
dChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5z
ZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxlcyIpOworICAgIH0KKworICAgIGRyb3Bab25lSGFuZGxl
RHJvcChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZmlsZXMgPSBldmVudC5k
YXRhVHJhbnNmZXIuZmlsZXM7CisgICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09IDEpIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5iZWVwKCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVz
LCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAg
IH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgp
CisgICAgeworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdW
aWV3cykKKyAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tl
ZCgpOworICAgIH0KKworICAgIF9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZlbnQpCisg
ICAgeworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOworICAgIH0KKworICAgIF9oYW5k
bGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2hv
d0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJ
bWFnZUdyaWQudmFsdWU7CisgICAgfQorCisgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRp
b25JdGVtQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuaW1w
b3J0SlNPTigocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCks
IHttdWx0aXBsZTogdHJ1ZX0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1ZpZXdTZWxl
Y3RlZEl0ZW1DaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVudC50YXJnZXQu
c2VsZWN0ZWRJdGVtKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IG92
ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAgICBpZiAob3Zl
cnZpZXdWaWV3ICE9PSBldmVudC50YXJnZXQgJiYgb3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJs
ZWQpCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVw
cmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKGV2bmV0KQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVw
cmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2xpY2soZXZl
bnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmVsZW1lbnQpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9mIHRo
aXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld1ZpZXcuc2VsZWN0
aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJdGVtID0g
bnVsbDsKKyAgICAgICAgfQorICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVu
dFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0MDc1YzAzNzUwN2EyZWM3N2EzNTFmZGQzODhhNThmNGEy
YTg4MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdl
cy9DYW52YXNPdmVydmlldy5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7CisgICAgY29u
dGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMyRC5zdmcpOworfQorCisuY29udGVudC12aWV3LnRh
Yi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNoZXMoLndlYmds
LCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwo
Li4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNz
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgY29udGVu
dDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIu
Z3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnNoYWRlci1wcm9ncmFtID4gLmljb24g
eworICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAx
eCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOworfQorCitAbWVkaWEgKHBy
ZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhp
Y3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmdyYXBoaWNzLW92ZXJ2aWV3IC5pY29uIHsKKyAg
ICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LnRh
Yi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAorICAgIC5j
b250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRp
bmcgPiAuaWNvbiB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7CisgICAgfQorfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NU
YWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU2ZDg1NzIyNjc5ODMw
ZTRhNjU3NzE5N2Q5YTkyODUzODI3MDNmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMK
QEAgLTAsMCArMSwzMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3
ID0gY2xhc3MgR3JhcGhpY3NUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2Vy
VGFiQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBsZXQg
dGFiQmFySXRlbSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkdyYXBoaWNz
VGFiQ29udGVudFZpZXcudGFiSW5mbygpKTsKKworICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsQ29uc3RydWN0b3IgPSBXSS5DYW52YXNTaWRlYmFyUGFuZWw7CisgICAgICAgIGNv
bnN0IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMgPSBbCisgICAgICAgICAgICBXSS5S
ZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5SZWNvcmRp
bmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5DYW52YXNEZXRhaWxz
U2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5l
bCwKKyAgICAgICAgXTsKKyAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsK
KyAgICAgICAgc3VwZXIoImdyYXBoaWNzIiwgWyJncmFwaGljcyJdLCB0YWJCYXJJdGVtLCBuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1
Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2FyZCk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVl
T3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVl
T3V0bGluZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0aGlzLl9jYW52
YXNlc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2VsZWN0aW9u
RGlkQ2hhbmdlLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50ID0g
bmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudCgiY2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlTdHJpbmco
Ik92ZXJ2aWV3IiksIG51bGwsIHtbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbF06IHRy
dWV9KTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZCh0aGlz
Ll9jYW52YXNlc1RyZWVFbGVtZW50KTsKKworICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29y
ZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmluZygi
U2F2ZWQgUmVjb3JkaW5ncyIpKTsKKyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdz
VHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCk7
CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1
dChudWxsLCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2Uu
YmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2
ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJs
ZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBu
ZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0
LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0
aGlzKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRs
eVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFt
ZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmVu
YWJsZSgpOworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVuYWJsZSgpOworICAgIH0KKwor
ICAgIHN0YXRpYyB0YWJJbmZvKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICBpbWFnZTogIkltYWdlcy9HcmFwaGljcy5zdmciLAorICAgICAgICAgICAgdGl0bGU6IFdJLlVJ
U3RyaW5nKCJHcmFwaGljcyIpLAorICAgICAgICB9OworICAgIH0KKworICAgIHN0YXRpYyBpc1Rh
YkFsbG93ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9t
YWluKCJDYW52YXMiKQorICAgICAgICAgICAgfHwgSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4o
IkFuaW1hdGlvbiIpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgdHJlZUVsZW1lbnRG
b3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRl
ZE9iamVjdCk7CisgICAgfQorCisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZTsKKyAgICB9CisKKyAgICBnZXQgc3VwcG9y
dHNTcGxpdENvbnRlbnRCcm93c2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGdldCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCisgICAgeworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzaG93UmVwcmVzZW50ZWRPYmplY3QocmVw
cmVzZW50ZWRPYmplY3QsIGNvb2tpZSkKKyAgICB7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIHRoaXMuY29udGVu
dEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuc2hvd1JlcHJlc2Vu
dGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpOworICAgIH0KKworICAgIGNhblNo
b3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJl
dHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24KKyAg
ICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCisgICAg
ICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbGxl
Y3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVj
b3JkaW5nCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNo
YWRlclByb2dyYW1Db2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb247CisgICAgfQorCisgICAgY2xv
c2VkKCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZGlzYWJsZSgpOworICAg
ICAgICBXSS5jYW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKKworICAgICAgICBzdXBlci5jbG9zZWQo
KTsKKyAgICB9CisKKyAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkKKyAgICB7Cisg
ICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3
NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9CisKKyAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUp
CisgICAgeworICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAgYXN5bmMgaGFuZGxlRmls
ZURyb3AoZmlsZXMpCisgICAgeworICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRK
U09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3Vs
dCkpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsK
KyAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2
ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKyAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZl
bnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0
aGlzKTsKKyAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50
LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0
aGlzKTsKKworICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiB0aGlzLl9jYW52YXNlc1RyZWVFbGVt
ZW50LmNoaWxkcmVuKSB7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gY2hpbGQucmVwcmVzZW50
ZWRPYmplY3Q7CisgICAgICAgICAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzICYm
ICFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCisgICAgICAg
ICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAg
ICBmb3IgKGxldCBjYW52YXMgb2YgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKSB7
CisgICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVt
ZW50KGNhbnZhcykpCisgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGNhbnZhcyk7Cisg
ICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFzTWFuYWdl
ci5zYXZlZFJlY29yZGluZ3MpIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzZXNUcmVl
T3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVjb3JkaW5nKSkKKyAgICAgICAgICAgICAgICB0aGlz
Ll9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlfSk7
CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IGZh
bHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0g
ZmFsc2U7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVj
b3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVG
cmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICBXSS5DYW52YXMucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFu
ZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdT
YXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
SS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRo
aXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVD
YW52YXNSZW1vdmVkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0K
KworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDb250
ZW50VmlldyA9IG5ldyBXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXc7CisgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZp
ZXcpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9hZGRDYW52YXMoY2FudmFzKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcg
V0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7CisKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKKyAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKKyAgICAgICAgfTsK
KworICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rp
b24pCisgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsK
KyAgICB9CisKKyAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAgICAgIGxldCB0
cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNh
bnZhcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlzc2luZyB0cmVl
IGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOworCisgICAgICAgIGNvbnN0IHN1cHByZXNz
Tm90aWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxlY3Qoc3VwcHJl
c3NOb3RpZmljYXRpb24pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LnJlbW92
ZUNoaWxkKHRyZWVFbGVtZW50KTsKKworICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0g
dGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CisgICAgICAgIGlmIChjdXJy
ZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAg
ICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24pOworICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBX
SS5SZWNvcmRpbmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMo
Y3VycmVudENvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKKyAgICAgICAgICAgIHRoaXMu
Y29udGVudEJyb3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50Vmll
dygpOworCisgICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZpZ2F0
aW9uU2lkZWJhclBhbmVsOworICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBpbnN0
YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnZp
c2libGUpCisgICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJlc2Vu
dGVkT2JqZWN0cygpOworCisgICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxzKCk7
CisgICAgfQorCisgICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkKKyAg
ICB7CisgICAgICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgeworICAgICAgICAgICAgY29uc3Qg
c3VidGl0bGUgPSBudWxsOworICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0g
bmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxh
eU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52
YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7CisgICAgICAgICAgICB0aGlz
Ll9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdU
cmVlRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NT
aG93UmVjb3JkaW5nKQorICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVj
b3JkaW5nKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCisgICAgewor
ICAgICAgICB0aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisKKyAgICBf
aGFuZGxlQ2FudmFzUmVtb3ZlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlbW92ZUNh
bnZhcyhldmVudC5kYXRhLml0ZW0pOworICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1RyZWVP
dXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHNlbGVj
dGVkRWxlbWVudCA9IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVu
dDsKKyAgICAgICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgc3dpdGNoIChzZWxlY3RlZEVsZW1lbnQpIHsKKyAgICAgICAgY2FzZSB0aGlzLl9j
YW52YXNlc1RyZWVFbGVtZW50OgorICAgICAgICBjYXNlIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3Jk
aW5nc1RyZWVFbGVtZW50OgorICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29u
dGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGlmICghdGhpcy5jYW5TaG93UmVwcmVz
ZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7CisgICAgICAgICAgICBjb25zb2xlLmFz
c2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRP
YmplY3QpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5z
aG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0KKworICAgIF9o
YW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCB7
cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7CisgICAg
ICAgIGlmICghcmVjb3JkaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBv
cHRpb25zID0ge307CisKKyAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5n
cy4KKyAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQorICAgICAgICAg
ICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRo
aXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNl
bnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcp
OworCisgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOworICAg
IH0KKworICAgIF9oYW5kbGVTcGFjZShldmVudCkKKyAgICB7CisgICAgICAgIGlmIChXSS5pc0V2
ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LmNhbnZhczsKKyAgICAgICAgaWYgKCFjYW52YXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCisgICAgICAgICAgICBjYW52YXMuc3Rv
cFJlY29yZGluZygpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxldCBzaW5nbGVGcmFt
ZSA9ICEhZXZlbnQuc2hpZnRLZXk7CisgICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmco
c2luZ2xlRnJhbWUpOworICAgICAgICB9CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKKyAgICB9Cit9OworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiZ3JhcGhp
Y3MiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTWFpbi5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9N
YWluLmNzcwppbmRleCBjZTMxYWY0NjMzNzg2MTM0YjFjYzcyNzZhMzRkNmE0NDcxOGEyYWUyLi4x
MGNkNjRhNDU1OTA5OTVjZGE0OTAyOTIxZTFiZjk4MTUwM2FmOTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwpAQCAtMjA5LDEy
ICsyMDksMTIgQEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2aWdhdGlv
bi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxNXB4
OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIHsKKy5uYXZp
Z2F0aW9uLWl0ZW0taGVscCB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgbGluZS1oZWlnaHQ6
IDIycHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5h
dmlnYXRpb24tYmFyIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciB7
CiAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgaGVpZ2h0OiAyMHB4OwogICAgIHBhZGRp
bmc6IDAgNHB4OwpAQCAtMjIyLDkgKzIyMiw5IEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMoLnJpZ2h0
LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7CiAgICAg
dmVydGljYWwtYWxpZ246IC0zcHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlv
bi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0geworLm5hdmlnYXRpb24taXRlbS1o
ZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAgIGhlaWdodDogMTAwJTsKLSAgICBw
YWRkaW5nOiAwIDRweDsKKyAgICBwYWRkaW5nOiAwIDRweCAhaW1wb3J0YW50OwogICAgIGZvbnQt
c2l6ZTogMTFweDsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm9yZGVyOiBzb2xpZCAx
cHggdmFyKC0tYm9yZGVyLWNvbG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNz
cwppbmRleCA4ZDYwZjIzZjBiMmJlYzcwZDhiZTgzZDAyMTdhNzBhYzc0ZmQyMzU4Li4xMWYxZGQ4
MmU1NTM3NzAxOTBiMmZmN2ViOGI2MDhlZWM3ZTI5YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5n
Q29udGVudFZpZXcuY3NzCkBAIC0yMywxOCArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcg
eworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxl
eC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICBwYWRkaW5nOiAxMHB4OwogICAgIGJhY2tncm91bmQt
Y29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyIHsKICAg
ICBtYXJnaW4tYm90dG9tOiAxMHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNv
cmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisuY29udGVudC12aWV3LnJlY29y
ZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4Owog
ICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICBwYWRkaW5nOiA0cHggMDsKQEAgLTQzLDMxICs0Mywz
MSBAQAogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRh
YikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsKKy5jb250ZW50
LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsKICAgICBt
YXJnaW46IDRweCA4cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+
IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7CisuY29udGVudC12
aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1
ZSB7CiAgICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7CiAgICAgZm9udC1mYW1pbHk6
IDExcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+
IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworLmNvbnRlbnQtdmlldy5y
ZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2Vd
IHsKICAgICBmbGV4OiAxOwogICAgIHdpZHRoOiAxMDAlOwogfQogCi0uY29udGVudC12aWV3Om5v
dCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5
cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CisuY29udGVudC12aWV3
LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5n
ZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6IDJweDsKICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGJvcmRlci1yYWRp
dXM6IDFweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVy
ID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRh
aW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgbWFy
Z2luLXRvcDogLTZweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4g
LnByZXZpZXctY29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gLnByZXZpZXct
Y29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXg6IDE7CiAgICAganVzdGlm
eS1jb250ZW50OiBjZW50ZXI7CkBAIC03NywyNyArNzcsMjcgQEAKICAgICBoZWlnaHQ6IC13ZWJr
aXQtZmlsbC1hdmFpbGFibGU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGlu
ZyA6bWF0Y2hlcyhpbWcsIGNhbnZhcykgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgOm1hdGNo
ZXMoaW1nLCBjYW52YXMpIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgbWF4LXdpZHRo
OiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50
YWIpLnJlY29yZGluZyBjYW52YXMucGF0aCB7CisuY29udGVudC12aWV3LnJlY29yZGluZyBjYW52
YXMucGF0aCB7CiAgICAgei1pbmRleDogMTA7CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1z
Y2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgewor
ICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
dW5zZXQ7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4g
aGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgeworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5n
ID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB1bnNldDsKICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3Itc2Vjb25k
YXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBo
ZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKKyAgICAuY29u
dGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRb
dHlwZT1yYW5nZV0gewogICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRleCAzYTlh
OWFlZmYyOWM1ZWZjZDc3OWJiNGQyOTA0MGFhZDg5ZGJmMWQ0Li4yZjk0YmM3NDA5ZjRkNTU0NjY1
Y2RlODljOWYwZjk5Y2FkZWY5NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xs
ZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0yMyw2ICsyMywxNCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVj
dGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWcgeworICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZh
cigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlv
biA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIgeworICAgIG91dGxpbmUtY29sb3I6IHZhcigt
LWdseXBoLWNvbG9yLWFjdGl2ZSkKK30KKwogLnJlc291cmNlLWNvbGxlY3Rpb24taW1hZ2UtdHlw
ZS1zY29wZS1iYXIuZGVmYXVsdC1pdGVtLXNlbGVjdGVkIHsKICAgICAtLXNjb3BlLWJhci10ZXh0
LWNvbG9yLW92ZXJyaWRlOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICAtLXNjb3BlLWJhci1iYWNr
Z3JvdW5kLWNvbG9yLW92ZXJyaWRlOiB0cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVz
b3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggYzk0ZWNhNzc3MjE0ZTMxZGM1ZDgx
ZTYxMDkwNjA2M2Y3N2M3NGZjYy4uZmMxYzZhMmNkNGFhN2RhMTk1MGMwYTNkM2ZmMDYzNDMyZjk3
ZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcu
anMKQEAgLTM1LDYgKzM1LDggQEAgV0kuUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcgPSBj
bGFzcyBSZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFcKIAogICAgICAgICBz
dXBlcihjb2xsZWN0aW9uLCBjb250ZW50Vmlld0NvbnN0cnVjdG9yKTsKIAorICAgICAgICB0aGlz
LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgicmVzb3VyY2UtY29sbGVjdGlvbiIpOworCiAgICAgICAg
IGlmIChjb2xsZWN0aW9uLnJlc291cmNlVHlwZSA9PT0gV0kuUmVzb3VyY2UuVHlwZS5JbWFnZSkg
ewogICAgICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBX
SS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygi
U2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kg
Z3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAg
ICAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0
ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVT
aG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY2YTVjOTdlZDM1M2UyNzYwY2E2
YjhmMDQ0ZjM5ZWUwNDA1NGY1ZTYuLmE5OWRiYTMwZTJjODUzMTBmZjhhY2M2ZDZkMWIzOTkwNTc4
MDEwYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAyMC0wMS0yOCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1l
bnRhdGlvbiBmb3Igc2hvd2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yODMyODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgor
CisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1h
bmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZl
Y3ljbGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUt
d2ViLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdEVmZmVjdFRhcmdldC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmlt
YXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9u
L3RhcmdldENoYW5nZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlv
bi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qczogQWRkZWQuCisgICAg
ICAgIChjcmVhdGVBbmltYXRpb24pOgorICAgICAgICAoZGVzdHJveUFuaW1hdGlvbnMpOgorICAg
ICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgYXdh
aXRBbmltYXRpb25DcmVhdGVkKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlm
ZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGF3YWl0QW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAg
KEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGNyZWF0ZUFu
aW1hdGlvbik6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxp
dGllcy5hc3luYyBkZXN0cm95QW5pbWF0aW9ucyk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52
YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qczoKKyAgICAgICAgKGRlc3Ry
b3lDYW52YXNlcyk6CisgICAgICAgIChhd2FpdENhbnZhc0FkZGVkKToKKyAgICAgICAgKEluc3Bl
Y3RvclRlc3QuQ3JlYXRlQ29udGV4dFV0aWxpdGllcy5pbml0aWFsaXplVGVzdFN1aXRlKToKKwor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2NhbnZhcy9tZW1vcnkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RDbGllbnROb2Rlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtMmQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50
LWJpdG1hcHJlbmRlcmVyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
Q29udGVudC13ZWJnbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtd2ViZ2wyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9k
ZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRl
cmVyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJn
bC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wy
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUu
aHRtbDoKKworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRp
bGl0aWVzLmpzOgorICAgICAgICAod2luZG93LmdldENhbnZhcyk6CisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJh
Z21lbnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQ
cm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanM6CisgICAgICAgIChkZWxl
dGVDb250ZXh0KToKKyAgICAgICAgKHdoZW5Qcm9ncmFtQWRkZWQpOgorICAgICAgICAod2luZG93
LmluaXRpYWxpemVUZXN0U3VpdGUpOgorICAgICAgICAod2luZG93LmFkZFBhcmVudENhbnZhc1Jl
bW92ZWRUZXN0Q2FzZSk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhh
cm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRl
c3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKworICAgICAg
ICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFNraXAgaW5zcGVjdG9yL2FuaW1hdGlvbi9s
aWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sIHVudGlsIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIw
Njg5OSBpcyBmaXhlZC4KKwogMjAyMC0wMS0yNyAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgLXdlYmtpdC1pbWFnZS1zZXQgc2hvdWxkIHN1cHBvcnQgcmVzb2x1
dGlvbiB1bml0cyBvdGhlciB0aGFuICd4JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWI0YTcyOWEw
ZWExYjg3Zjc2MzMyODZhYTYwOWE0MzFiYmE3NDJjNy4uZDNhMjI1MWIyYjg3NmIyMjY0NzJjZWMy
MTFlMjcxNzE5MzdiNTNlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjIxLDMgKzMyMjEsNSBA
QCB3ZWJnbC8yLjAuMCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIwNjE2OCBbIERlYnVnIF0gZmFz
dC9kb20vaW5zZXJ0LXNwYW4taW50by1sb25nLXRleHQtYnVnLTI4MjQ1Lmh0bWwgWyBTa2lwIF0K
IAogd2Via2l0Lm9yZy9iLzIwNjY3NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
cXVlc3RpZGxlY2FsbGJhY2svY2FsbGJhY2steGhyLXN5bmMuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CisKK3dlYmtpdC5vcmcvYi8yMDY4OTkgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3Nz
LWFuaW1hdGlvbi5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MmYzM2NiZDdmOTMzZDNiNDliYmZmNWQzNzhkZTU3YjgyMzEyYmU5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5lZmZlY3RDaGFu
Z2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLmVmZmVjdENo
YW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5OZXdF
ZmZlY3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBl
ZmZlY3QuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK1BBU1M6
IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QKK1BBU1M6IEFuaW1hdGlv
biBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBlZmZlY3QuLi4KKworUEFTUzogQW5p
bWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0
IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ1ZDg1YjFlMWYyMTY4ODFm
ZmJkNmY2MWIzNzQ3YzcwZGJmMTc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50
LmJvZHkuYW5pbWF0ZShbe29wYWNpdHk6IDB9XSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQiKTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk5ld0VmZmVjdCIs
CisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3Ig
dGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7
CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFu
YWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFu
aW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07
CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBN
aXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlv
blR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91
bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgb2xkS2V5ZnJhbWVz
ID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4i
KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5naW5nIGVmZmVjdC4uLlxu
Iik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYW5p
bWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQpLAorICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5hbmltYXRp
b24uZWZmZWN0ID0gbmV3IEtleWZyYW1lRWZmZWN0KHdpbmRvdy5hbmltYXRpb24uZWZmZWN0LnRh
cmdldCwgW3tvcGFjaXR5OiAxfV0sIHt9KWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAg
ICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eShuZXdLZXlmcmFtZXMsICJBbmltYXRpb24gc2hv
dWxkIGhhdmUgYW4gZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dE5vdFNoYWxsb3dFcXVhbChuZXdLZXlmcmFtZXMsIG9sZEtleWZyYW1lcywgIkFuaW1hdGlvbiBl
ZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZlY3RDaGFu
Z2VkLk51bGxFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2
YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAgICAg
ICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9t
KFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3Vs
ZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24g
PSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAgICAg
ICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFu
aW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24s
ICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAg
bGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1lcywgIkFuaW1hdGlvbiBzaG91bGQg
aGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFu
Z2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5FZmZl
Y3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG51bGxgKSwKKyAgICAgICAgICAgIF0pOworCisg
ICAgICAgICAgICBsZXQgbmV3S2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkobmV3S2V5ZnJhbWVzLCAiQW5pbWF0aW9u
IHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xkS2V5ZnJhbWVzLCAiQW5p
bWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0p
OworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1h
dGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3lj
bGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBkZDJiZjI5YzIwNGYw
NWY1MjNjNmFjOGFhNTdiMzUxMzUyY2VkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0
ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6
IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uCitQQVNTOiBUaGVyZSBzaG91bGQgbm90
IGJlIGFueSBhbmltYXRpb25zLgorUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCitQQVNTOiBBbmlt
YXRpb24gdHlwZSBzaG91bGQgYmUgQ1NTIEFuaW1hdGlvbi4KK3N0YXJ0RGVsYXk6IDEwMAoraXRl
cmF0aW9uQ291bnQ6IDIKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0MDAKK3RpbWluZ0Z1bmN0aW9uOiAi
bGluZWFyIgorcGxheWJhY2tEaXJlY3Rpb246ICJhbHRlcm5hdGUiCitmaWxsTW9kZTogImJvdGgi
CitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwKKyAgICAiZWFzaW5nIjogImN1
YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJn
YigyNTUsIDAsIDApO1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMC41
LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAg
ICJzdHlsZSI6ICJjb2xvcjogcmdiKDAsIDEyOCwgMCk7XG5vcGFjaXR5OiAwLjU7IgorICB9LAor
ICB7CisgICAgIm9mZnNldCI6IDEsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAw
LjIsIDAuMywgMC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMCwgMCwgMjU1KTtcbm9w
YWNpdHk6IDE7IgorICB9CitdCisKK0Rlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLgorCitQQVNTOiBB
bmltYXRpb24gZGVzdHJveWVkLgorUEFTUzogUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVk
IElELgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVj
eWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZkYTA5NTFiZjVlNDUz
NjIzOTIzMDUxMzZjODJiNTQ0NmM4ZTBlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbApAQCAtMCww
ICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CitAa2V5ZnJhbWVzIGZhZGUtaW4geworICAgIGZyb20geworICAg
ICAgICBjb2xvcjogcmVkOworICAgICAgICBvcGFjaXR5OiAwOworICAgIH0KKyAgICA1MCUgewor
ICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIG9wYWNpdHk6IDAuNTsKKyAgICB9CisgICAg
dG8geworICAgICAgICBjb2xvcjogYmx1ZTsKKyAgICAgICAgb3BhY2l0eTogMTsKKyAgICB9Cit9
CitkaXYjdGFyZ2V0LmFjdGl2ZSB7CisgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW47CisgICAg
YW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtczsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9u
OiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICBhbmltYXRpb24tZGVsYXk6
IDEwMG1zOworICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7CisgICAgYW5pbWF0aW9u
LWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7Cit9
Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNsZSIpOwor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLkxpZmVj
eWNsZS5DU1NBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgV2Vi
IEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgYW5pbWF0aW9ucyBhcmUgY3JlYXRl
ZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0
aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIpOworCisg
ICAgICAgICAgICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRB
bmltYXRpb25DcmVhdGVkKFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbiksCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBd
KTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVz
dHJveWVkKGFuaW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMoKSwKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIilgKSwKKyAgICAg
ICAgICAgIF0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFu
ZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+CisgICAgPGRpdiBpZD0i
dGFyZ2V0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWIyYmI1YTkxZDQ0OThlOTBjNTk1YmM5NTY3
NDkyNDgwNjllNTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzMgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1h
dGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0
ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5M
aWZlY3ljbGUuQ1NTVHJhbnNpdGlvbgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5p
bWF0aW9ucy4KK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorUEFTUzogQW5pbWF0aW9uIHR5cGUg
c2hvdWxkIGJlIENTUyBUcmFuc2l0aW9uLgorc3RhcnREZWxheTogMTAwCitpdGVyYXRpb25Db3Vu
dDogMQoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVuY3Rpb246ICJjdWJpYy1iZXpp
ZXIoMC4xLCAwLjIsIDAuMywgMC40KSIKK3BsYXliYWNrRGlyZWN0aW9uOiAibm9ybWFsIgorZmls
bE1vZGU6ICJiYWNrd2FyZHMiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwK
KyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAi
c3R5bGUiOiAib3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMSwKKyAgICAi
ZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUi
OiAib3BhY2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWluZyBhbmltYXRpb25zLi4uCisKK1BB
U1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1vdmVkIGFuaW1hdGlvbiBoYXMgZXhw
ZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNDVhMzhh
MjA0ZTBjNmM0ZDNhNzFiZjBlZDlkYzk2MGUwNDA4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1s
CkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiN0YXJnZXQgeworICAgIGNvbG9yOiByZWQ7
CisgICAgb3BhY2l0eTogMDsKKworfQorZGl2I3RhcmdldC5hY3RpdmUgeworICAgIGNvbG9yOiBi
bHVlOworICAgIG9wYWNpdHk6IDE7CisKKyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5
OworICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDQwMG1zOworICAgIHRyYW5zaXRpb24tdGltaW5n
LWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICB0cmFuc2l0
aW9uLWRlbGF5OiAxMDBtczsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmlt
YXRpb24uTGlmZWN5Y2xlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJBbmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24iLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1Mg
dHJhbnNpdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3Qo
KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1h
bmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBh
bnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQg
UHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlm
ZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5BbmltYXRpb24uVHlwZS5D
U1NUcmFuc2l0aW9uKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LmFkZCgiYWN0
aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFs
bChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGls
aXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uLmFuaW1hdGlvbklkKSwKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5k
ZXN0cm95QW5pbWF0aW9ucygpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QucmVt
b3ZlKCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0
aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZl
bnRzLjwvcD4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2Vi
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWE2Yjhk
YTU5ZmZkNmY3YmYwZDFmMDViODU1ZTU5N2ExMDhiYWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0
aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5XZWJBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNo
b3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitDcmVhdGluZyBhbmltYXRpb24uLi4KKworUEFT
UzogQW5pbWF0aW9uIGNyZWF0ZWQuCisgIDA6IGFuaW1hdGUgLSBbbmF0aXZlIGNvZGVdCisgIDE6
IGNyZWF0ZUFuaW1hdGlvbiAtIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNs
ZS11dGlsaXRpZXMuanM6NzozNQorICAyOiBHbG9iYWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisg
IDM6IGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5v
bnltb3VzIGZ1bmN0aW9uKSAtIFtuYXRpdmUgY29kZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2
ZSBjb2RlXQorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitz
dGFydERlbGF5OiAxMDAKK2VuZERlbGF5OiAyMDAKK2l0ZXJhdGlvbkNvdW50OiAxMAoraXRlcmF0
aW9uU3RhcnQ6IDUKK2l0ZXJhdGlvbkR1cmF0aW9uOiAzMDAKK3RpbWluZ0Z1bmN0aW9uOiAiZWFz
ZS1pbi1vdXQiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2RlOiAiYm90
aCIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLjI1LAorICAgICJlYXNpbmci
OiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJjb2xv
cjogcmVkO1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMC43NSwKKyAg
ICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAgICAic3R5
bGUiOiAiY29sb3I6IGJsdWU7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmlt
YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDI3MGE0YjI3ZDFkYzBiYWE2NzY3NGFiNzA3YzA5OGJj
YThiYWYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuV2ViQW5pbWF0aW9uIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZp
ZWQgd2hlbmV2ZXIgd2ViIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUg
c2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1h
dGlvbiA9IGF3YWl0IEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmNy
ZWF0ZUFuaW1hdGlvbihXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sIHsKKyAgICAgICAg
ICAgICAgICBzZWxlY3RvcjogImJvZHkiLAorICAgICAgICAgICAgICAgIGtleWZyYW1lczogWwor
ICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAu
MjUsCisgICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC4xLCAw
LjIsIDAuMywgMC40KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInJlZCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLAorICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6
IDAuNzUsCisgICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC42
LCAwLjcsIDAuOCwgMC45KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogImJsdWUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKKyAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAg
ICAgICAgICAgICAgICAgICAgZGVsYXk6IDEwMCwKKyAgICAgICAgICAgICAgICAgICAgZW5kRGVs
YXk6IDIwMCwKKyAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMCwKKyAgICAgICAgICAg
ICAgICAgICAgZWFzaW5nOiAiZWFzZS1pbi1vdXQiLAorICAgICAgICAgICAgICAgICAgICBkaXJl
Y3Rpb246ICJhbHRlcm5hdGUiLAorICAgICAgICAgICAgICAgICAgICBmaWxsOiAiYm90aCIsCisg
ICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IDEwLAorICAgICAgICAgICAgICAgICAgICBp
dGVyYXRpb25TdGFydDogNSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxw
PlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5h
bmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZDQ4ZGE4MTUyMTk5NzNkNjEyNjA4MzYwODZl
ZTIxMWUyYTFhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC4KKworCis9PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uVmFsaWRJZGVudGlmaWVyCitQ
QVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuCitQQVNTOiBQYXlsb2FkIHNo
b3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlmaWVyCitQQVNTOiBTaG91
bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBhbmltYXRpb24gZm9yIGdp
dmVuIGFuaW1hdGlvbklkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmlt
YXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1h
dGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEyM2UzOTc0YzM0YzE5N2Nk
ZDU5ODYxMGY3Mzc3MTA2N2UzMDEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3Vt
ZW50LmJvZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgi
QW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24iKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmll
ciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBm
b3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3Qo
KSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9u
TWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25l
IGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNb
MF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93
IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1h
dGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBz
aG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBjb25zdCBvYmplY3RH
cm91cCA9ICJ0ZXN0IjsKKyAgICAgICAgICAgIGxldCB7b2JqZWN0fSA9IGF3YWl0IEFuaW1hdGlv
bkFnZW50LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91
cCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC50eXBlLCAi
b2JqZWN0IiwgYFBheWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAib2JqZWN0Ii5gKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwob2JqZWN0LmNsYXNzTmFtZSwgIkFuaW1hdGlv
biIsIGBQYXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi5gKTsKKyAgICAg
ICAgfSwKKyAgICB9KTsKKworICAgIC8vIC0tLS0tLQorCisgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uSW52YWxpZElkZW50
aWZpZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5pbWF0aW9uIGlkZW50aWZp
ZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAg
ICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElTVCI7CisgICAgICAgICAg
ICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKworICAgICAgICAgICAgYXdhaXQgSW5zcGVj
dG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGF3
YWl0IEFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oaWRlbnRpZmllciwgb2JqZWN0R3Jv
dXApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmlt
YXRpb24gY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0
aWxpdGllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWMyMTJmZjM2MTU4ZDhiYjRjY2UxNmE5NWRhMDUzNTJk
MGIwMWRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDEzMCBAQAord2lu
ZG93LmFuaW1hdGlvbnMgPSBbXTsKKworZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKHNlbGVjdG9y
LCBrZXlmcmFtZXMgPSBbXSwgb3B0aW9ucyA9IHt9KSB7CisgICAgbGV0IGFuaW1hdGlvbiA9IG51
bGw7CisKKyAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7
CisgICAgaWYgKHRhcmdldCkKKyAgICAgICAgYW5pbWF0aW9uID0gdGFyZ2V0LmFuaW1hdGUoa2V5
ZnJhbWVzLCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAgICAgIGFuaW1hdGlvbiA9IG5ldyBBbmlt
YXRpb24obmV3IEtleWZyYW1lRWZmZWN0KG51bGwsIGtleWZyYW1lcywgb3B0aW9ucykpOworCisg
ICAgd2luZG93LmFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pOworfQorCitmdW5jdGlvbiBkZXN0
cm95QW5pbWF0aW9ucygpIHsKKyAgICBmb3IgKGxldCBhbmltYXRpb24gb2Ygd2luZG93LmFuaW1h
dGlvbnMpIHsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgYW5pbWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIGlmIChhbmltYXRpb24uZWZm
ZWN0KSB7CisgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQpIHsKKyAgICAg
ICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldC5yZW1vdmUoKTsKKyAgICAgICAgICAg
ICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldCA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGFuaW1hdGlvbi5lZmZlY3QgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisg
ICAgd2luZG93LmFuaW1hdGlvbnMgPSBbXTsKKworICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3Vy
ZSB0aGUgYW5pbWF0aW9uIGFuZCBpdCdzIHRhcmdldCBhcmUgYm90aCBkZXN0cm95ZWQsIGFzIG90
aGVyd2lzZSB0aGUKKyAgICAvLyBmcm9udGVuZCB3aWxsIG5vdCByZWNlaXZlIEFuaW1hdGlvbi5h
bmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAg
ICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworICAgIH0pOworfQorCitUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBmdW5jdGlvbiBqc29uS2V5ZnJhbWVGaWx0ZXIoa2V5
LCB2YWx1ZSkgeworICAgICAgICBpZiAoa2V5ID09PSAiZWFzaW5nIiAmJiB2YWx1ZSBpbnN0YW5j
ZW9mIFdJLkN1YmljQmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1h
dGlvbkxpZmVjeWNsZVV0aWxpdGllcyA9IHt9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRp
b25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkID0gYXN5bmMgZnVuY3Rp
b24oYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1B
ZGRlZEV2ZW50ID0gYXdhaXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9u
LmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOworCisgICAgICAgIElu
c3BlY3RvclRlc3QucGFzcygiQW5pbWF0aW9uIGNyZWF0ZWQuIik7CisKKyAgICAgICAgbGV0IGFu
aW1hdGlvbiA9IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CisK
KyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmltYXRpb24uYmFja3RyYWNlLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gYW5pbWF0aW9uLmJhY2t0cmFjZVtp
XTsKKyAgICAgICAgICAgIGxldCB0cmFjZVRleHQgPSBgICAke2l9OiBgOworICAgICAgICAgICAg
dHJhY2VUZXh0ICs9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIihhbm9ueW1vdXMgZnVuY3Rp
b24pIjsKKworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS5uYXRpdmVDb2RlKQorICAgICAgICAg
ICAgICAgIHRyYWNlVGV4dCArPSAiIC0gW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICBlbHNl
IGlmIChjYWxsRnJhbWUucHJvZ3JhbUNvZGUpCisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9
ICIgLSBbcHJvZ3JhbSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUuc291
cmNlQ29kZUxvY2F0aW9uKSB7CisgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2FsbEZy
YW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAt
ICIgKyBzYW5pdGl6ZVVSTChsb2NhdGlvbi5zb3VyY2VDb2RlLnVybCkgKyBgOiR7bG9jYXRpb24u
bGluZU51bWJlcn06JHtsb2NhdGlvbi5jb2x1bW5OdW1iZXJ9YDsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2codHJhY2VUZXh0KTsKKyAgICAgICAgfQorCisg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUs
IGFuaW1hdGlvblR5cGUsIGBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgJHtXSS5BbmltYXRpb24u
ZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUpfS5gKTsKKworICAgICAg
ICBpZiAoYW5pbWF0aW9uLnN0YXJ0RGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
Zygic3RhcnREZWxheTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5zdGFydERlbGF5KSk7
CisgICAgICAgIGlmIChhbmltYXRpb24uZW5kRGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiZW5kRGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZW5kRGVsYXkp
KTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25Db3VudDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1h
dGlvbi5pdGVyYXRpb25Db3VudCkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvblN0
YXJ0KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvblN0YXJ0OiAiICsg
SlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSk7CisgICAgICAgIGlmIChh
bmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiaXRlcmF0aW9uRHVyYXRpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0
aW9uRHVyYXRpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbikKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJ0aW1pbmdGdW5jdGlvbjogIiArIEpTT04uc3Ry
aW5naWZ5KFN0cmluZyhhbmltYXRpb24udGltaW5nRnVuY3Rpb24pKSk7CisgICAgICAgIGlmIChh
bmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygicGxheWJhY2tEaXJlY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24ucGxheWJh
Y2tEaXJlY3Rpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5maWxsTW9kZSkKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJmaWxsTW9kZTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1h
dGlvbi5maWxsTW9kZSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmtleWZyYW1lcy5sZW5ndGgp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJrZXlmcmFtZXM6Iik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0Lmpzb24oYW5pbWF0aW9uLmtleWZyYW1lcywganNvbktleWZyYW1l
RmlsdGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOwor
CisgICAgICAgIHJldHVybiBhbmltYXRpb24KKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5B
bmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQgPSBhc3lu
YyBmdW5jdGlvbihhbmltYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAgIGxldCBhbmltYXRpb25D
b2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5p
bWF0aW9uQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92
ZWQpCisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBbmltYXRpb24gZGVzdHJveWVkLiIp
OworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92
ZWRFdmVudC5kYXRhLml0ZW07CisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5p
bWF0aW9uLmFuaW1hdGlvbklkLCBhbmltYXRpb25JZGVudGlmaWVyLCAiUmVtb3ZlZCBhbmltYXRp
b24gaGFzIGV4cGVjdGVkIElELiIpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1h
dGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24gPSBhc3luYyBmdW5jdGlvbihh
bmltYXRpb25UeXBlLCB7c2VsZWN0b3IsIGtleWZyYW1lcywgb3B0aW9uc30gPSB7fSkgeworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3JlYXRpbmcgYW5pbWF0aW9uLi4uXG4iKTsKKworICAg
ICAgICBsZXQgc3RyaW5naWZpZWRTZWxlY3RvciA9IEpTT04uc3RyaW5naWZ5KHNlbGVjdG9yIHx8
IG51bGwpOworICAgICAgICBsZXQgc3RyaW5naWZpZWRLZXlmcmFtZXMgPSBKU09OLnN0cmluZ2lm
eShrZXlmcmFtZXMgfHwgW10pOworICAgICAgICBsZXQgc3RyaW5naWZpZWRPcHRpb25zID0gSlNP
Ti5zdHJpbmdpZnkob3B0aW9ucyB8fCB7fSk7CisKKyAgICAgICAgbGV0IFthbmltYXRpb25dID0g
YXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25M
aWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblR5cGUpLAor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQW5pbWF0aW9u
KCR7c3RyaW5naWZpZWRTZWxlY3Rvcn0sICR7c3RyaW5naWZpZWRLZXlmcmFtZXN9LCAke3N0cmlu
Z2lmaWVkT3B0aW9uc30pYCkKKyAgICAgICAgXSk7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdGlv
bjsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRp
ZXMuZGVzdHJveUFuaW1hdGlvbnMgPSBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkRlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLlxuIik7CisgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlc3Ryb3lBbmltYXRpb25zKClgKTsKKyAg
ICB9OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Rh
cmdldENoYW5nZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODhkZTIyZDM0OGNlYTlh
YzlhZmYzZmFkMWYxNDI1MTA3NmNkN2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LgorCisK
Kz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OZXdUYXJnZXQKK1BBU1M6IEFu
aW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4KK0NoYW5naW5nIHRhcmdldC4uLgorCitQQVNT
OiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0
IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24u
dGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0
YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3Qg
aGF2ZSBhIHRhcmdldC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdl
ZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRD
aGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5n
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZTcwNWY2YzhhMzE0ZWJmZTJhZDY0OTNhYjczZTMyZDEwMmVh
NjhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90
YXJnZXRDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9h
ZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQuYm9keS5hbmltYXRlKFtdKTsK
KworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24udGFyZ2V0Q2hhbmdl
ZCIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9u
LnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQg
cmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIu
IiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0g
QXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJU
aGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQg
YW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7
CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2Vi
QW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAg
ICAgICAgICAgIGxldCBbb2xkVGFyZ2V0XSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2spID0+
IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChvbGRUYXJnZXQgaW5zdGFuY2VvZiBXSS5ET01O
b2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgdGFyZ2V0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3
YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uYXdhaXRFdmVudChX
SS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCksCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAg
ICAgICAgICBsZXQgW25ld1RhcmdldF0gPSBhd2FpdCBwcm9taXNpZnkoKGNhbGxiYWNrKSA9PiB7
IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKTsgfSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobmV3VGFyZ2V0IGluc3RhbmNlb2YgV0kuRE9NTm9k
ZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbChuZXdUYXJnZXQsIG9sZFRhcmdldCwgIkFuaW1hdGlv
biBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJnZXRD
aGFuZ2VkLk51bGxUYXJnZXQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4g
YSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAg
ICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5m
cm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNo
b3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRp
b24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAg
ICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRp
b24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAg
ICAgbGV0IFtvbGRUYXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmlt
YXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KG9sZFRhcmdldCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJB
bmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1h
dGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBudWxsYCks
CisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IFtuZXdUYXJnZXRdID0gYXdhaXQg
cHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChj
YWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROdWxsKG5ld1Rh
cmdldCwgIkFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFyZ2V0LCBvbGRUYXJnZXQsICJB
bmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0sCisgICAg
fSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5p
bWF0aW9uLnRhcmdldENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwK
aW5kZXggZDRlMTExZmQ5ZDg1MzcxNWU0NDYzMzM2YjRiZDA3ODI3OGNhZjYxZS4uMmQ2Mjc0Yjdm
NTU0N2RlYjgyODMzYjlmYWE1YzIzYmYwMGNmYjA3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sCkBAIC0yMCw5ICsyMCw5
IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IGNyZWF0ZWQgY2FudmFzZXMgaGF2ZSB0aGUgY29ycmVjdCB0
eXBlIGFuZCBhdHRyaWJ1dGVzIHNlbnQgdG8gdGhlIGZyb250ZW5kLiIsCiAgICAgICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
YXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKQorICAgICAgICAg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNv
bGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKQogICAgICAgICAgICAgICAgIC50aGVuKChldmVudCkg
PT4gewotICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7
CisgICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJBZGRlZCBjYW52YXMuIik7CiAKICAg
ICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNw
bGF5TmFtZUZvckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sCmluZGV4IGJj
MTgxZjYyZjJkNGY0M2ViNGExYWJmMWQ5ZjgzNmZjZTNkMmJiNWYuLmIxNDBmMTE4ZDA4ODZjYjc1
ODAyZmExNTQwY2E1Zjg1NzZhYzZhMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbApAQCAtMzQsMTQgKzM0LDE0
IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQg
YXR0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBhcyBhIGNhbnZhcywgaW5z
dGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAg
ICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0g
V0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQu
Q2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
ZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2Vi
R1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVB
dHRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJl
bW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlz
dGVuZXIpOworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJl
bW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVy
KTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5z
cGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGF0dGFjaGVkIEdQVUNhbnZh
c0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApA
QCAtNTIsMTQgKzUyLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiRW5zdXJlIHRoYXQgZGV0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBh
cyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5j
IHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAg
bGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBjcmVhdGVEZXRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5D
YW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVt
QWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxz
ZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGRl
dGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIp
OwogICAgICAgICB9LApAQCAtNzAsMTQgKzcwLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgQ1NTIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0
IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURldmljZS4iLAogICAg
ICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAgICAgbGV0IGxpc3Rl
bmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9
IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQ1NTQ2FudmFzKCJncHUiLCAiY3NzLWNhbnZhcyIpYCkK
IAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNv
bGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxkIG5v
dCBiZSBjcmVhdGVkIGZvciBDU1MgR1BVQ2FudmFzQ29udGV4dCB3aXRob3V0IGNvbm5lY3RlZCBX
ZWJHUFVEZXZpY2UuIik7CiAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvZXh0ZW5zaW9ucy5odG1sCmluZGV4IGU4ZmNiZmUwMDczYzE5YjM4NWM0NmI5N2Q0MTVmZjg5
N2JhZjFlMjEuLjkzN2MxZjM0YmJhOTZiNTcwMTFhMzMxOWU4YTU3ODJjMTg0MzJjYWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCkBAIC0yMCw3ICsy
MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMuZXh0ZW5zaW9u
cy5lbmFibGUiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgZW5hYmxpbmcgYW4g
ZXh0ZW5zaW9uIG5vdGlmaWVzIHRoZSBmcm9udGVuZC4iLAogICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5j
YW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXku
ZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9
PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CiAg
ICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVj
dCgiTWlzc2luZyBXZWJHTCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKaW5kZXggMmE0OWUwM2ExODg4ZWU4
NTVlYmJiM2FmMTg4NDNiY2UzZTJiZGIxYy4uNGJmZDdhNmNlYWI1M2ZjNWQ5YjhlNzEzYjg1M2Qy
NzVlMDE3M2U3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1v
cnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sCkBA
IC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAvLyBwZXJmb3Jt
ZWQgb24gdGhhdCBjYW52YXMgdGhhdCByZXF1aXJlcyB0aGUgaW1hZ2UgYnVmZmVyLiAgQSBibGFu
ayBjYW52YXMgdGhhdCB3YXMKICAgICAgICAgICAgIC8vIGp1c3QgY3JlYXRlZCB3aWxsIG5vdCBo
YXZlIGEgYnVmZmVyLCBzbyBpdHMgbWVtb3J5IGNvc3Qgd2lsbCBiZSAwL05hTi4KIAotICAgICAg
ICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNh
bnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2Fu
dmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4
dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBp
ZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyAy
RCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDUsNyArNDUsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLm1lbW9yeS5jYW52YXNNZW1v
cnlDaGFuZ2VkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IG1lbW9yeSBjb3N0
IGlzIHVwZGF0ZWQgd2hlbiB0aGUgYmFja2VuZCB2YWx1ZSBjaGFuZ2VzLiIsCiAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2Fu
dmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmls
dGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzZXMubGVuZ3RoKSB7CiAgICAg
ICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIDJEIGNhbnZhcy4iKTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29y
ZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbApp
bmRleCA0ZDNjZmU5YjhlNmU5NzQwZDRlY2E2Nzc5NGE0NWE0ZjllZWM2OGQxLi5iZTA4YTIwNDEz
MDJjMzc3NjE0Y2MzM2UxMzk0YTA5MDE3NTJlMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5BY3Rpb25QYXJhbWV0ZXJOYU4iLAogICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgTmFOIGlzIGNvbnZlcnRlZCBpbnRvIHRoZSBwcm9wZXIg
dmFsdWUgZm9yIHNlcmlhbGl6YXRpb24uIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBd
OworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5j
YW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNh
bnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFzIGNvbnRleHQuIik7CiAK
ICAgICAgICAgICAgIGNhbnZhcy5hd2FpdEV2ZW50KFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdT
dG9wcGVkKQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1l
OiAiQ2FudmFzLk11bHRpcGxlUmVjb3JkaW5nIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVj
ayB0aGF0IG11bHRpcGxlIHJlY29yZGluZ3MgYXJlIGFibGUgdG8gYmUgc3RhcnRlZC9zdG9wcGVk
IGF0IHRoZSBzYW1lIHRpbWUuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7CisgICAg
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5s
ZW5ndGggPT09IDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIGNhbnZhcyBjb250ZXh0cy4iKTsKIAog
ICAgICAgICAgICAgY2FudmFzZXNbMV0uYXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3Jk
aW5nU3RvcHBlZCkKQEAgLTExMiw3ICsxMTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICBuYW1lOiAiQ2FudmFzLk5vQWN0aW9ucyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sg
dGhhdCBhIGNhbnZhcyBpcyBzdGlsbCBhYmxlIHRvIGJlIHJlY29yZGVkIGFmdGVyIHN0b3BwaW5n
IGEgcmVjb3JkaW5nIHdpdGggbm8gYWN0aW9ucy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXNbMF07CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMgY29udGV4dC4i
KTsKIAogICAgICAgICAgICAgbGV0IGV2ZW50Q291bnQgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwKaW5kZXggMjNjZDA0
ODY4NTBkMGFlMWI3Njc5ODc1YjBhZjI3YTA1MWMwZjRjZC4uZjc0ZDE1ZTEwNmVhM2IwNWNhOTFi
ODAxZjgxYzhhMDJmMTE1MDRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENsaWVudE5vZGVzLkluaXRp
YWwiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgY3JlYXRpbmcgYSBDU1MgY2Fu
dmFzIGNsaWVudCBub2RlIGlzIHRyYWNrZWQgY29ycmVjdGx5LiIsCiAgICAgICAgIHRlc3QocmVz
b2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGNhbnZhcy4i
KTsKIAogICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RDbGllbnROb2RlcygoY2xpZW50Tm9kZXMp
ID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtMmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRl
bnQtMmQuaHRtbAppbmRleCA1MzUwOTU3NjJiMzkwZjJjZTNmYjVhOTY5NmFkZTYxMTM0MzNjMmZk
Li5lOWNiYTFkMDEwN2MzYTY3Y2VmMTcyZThhYjVhOWE0YTRhYTljYTBiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sCkBAIC0x
OCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVx
dWVzdENvbnRlbnQyRC52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQg
dGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBjYW52YXMgb24gdGhlIHBhZ2Ugd2l0aCB0
aGUgZ2l2ZW4gdHlwZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMy
RCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09
PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52
YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbAppbmRleCBjZDUw
ODNjMjUyNTI3NGQ3OWZiOGY0YmQ3OWI5NzkzOGZlMzBjNjMwLi5mNTI2NmVmZGVmZDdlYzc0NzRl
OTZlYmFhZmQwYmI1NzNiMjVmMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sCkBA
IC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMu
cmVxdWVzdENvbnRlbnRCaXRtYXBSZW5kZXJlci52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVz
Y3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBCaXRtYXBSZW5k
ZXJlciBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZp
bmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20o
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
ICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNz
aW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwKaW5kZXgg
YWViODFlZjI3ZDNjOTgwNTg0OTc5OTZhMTc5YmQ2NGE1YmZlOWJlZi4uNzBjMjFmZTQzMzk2OTE1
OTYwOTEyMjg0NTY2YWYyZjczZDU4Yjk2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbApAQCAtMTgsNyArMTgsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50
V2ViR0wudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNl
NjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wgY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAgICAgICAgIGxldCBjYW52
YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgo
Y2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVj
dChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0
bWwKaW5kZXggNmIwM2Q1ZWM3ZTU5ZDAyNjY4N2M2YjdmMGRiMjgwNmUxNjNhZWNjZi4uZjdiNTVm
NGEzZGZjMDg0M2FlZjc4ODBiOWY3OTc0MGNlMTVhMDg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCkBAIC0y
MSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVx
dWVzdENvbnRlbnRXZWJHTDIudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
R2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wyIGNhbnZhcyBvbiB0aGUg
cGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0
IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOworICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLldlYkdMMik7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAg
ICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9k
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sCmlu
ZGV4IGU1YzYxNDdlMzQ3YmMzNjllMmMwNWNjODQxNjZkODA2YTcxYzA2MTYuLmRjYzRiY2NlZTc1
ZjRhNjkzODQ1YmJkZWU3MTIzYWZmZTJhNzkwNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Tm9kZS52YWxpZENhbnZhc0lkIiwK
ICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIG5vZGUgaWQgZm9yIGVhY2ggY2FudmFzIG9u
IHRoZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAg
ICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOworICAgICAgICAgICAg
bGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24pOwogICAgICAgICAgICAgbGV0IGV4cGVjdGVkTGVuZ3RoID0gY2FudmFzZXMubGVuZ3RoOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXhwZWN0ZWRMZW5ndGggPT09IDMsICJU
aGUgcGFnZSBoYXMgMyBjYW52YXNlcy4iKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCmluZGV4IGM0MWNjNmJjNzRhMzI0MTky
MGIzZDZiNWMzZDliM2M2YmZkYTk1ZDEuLmZlMTQxMTc5YjdjYWRhM2JiNTg1YTg4ODg0ZGU2YmI2
MzRlNzQzOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2
ZUNvbnRleHQtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29s
dmVDb250ZXh0LTJkLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHQyRC52YWxpZElkZW50aWZpZXJgLAogICAg
ICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBn
aXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlu
ZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRl
eHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbApp
bmRleCA4NjI1MjkyNjVjNGRkNmIyOWIyOTY3ODg0NDFjZWY5ZTY3N2I5YjEwLi4yOTdkNDQxZTE0
ZmE0YjFiZDM5NmRjMDU0Zjg1YjhkOTNmOWFlNWMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJl
ci5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBg
Q2FudmFzLnJlc29sdmVDb250ZXh0Qml0bWFwUmVuZGVyZXIudmFsaWRJZGVudGlmaWVyYCwKICAg
ICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUg
Z2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZp
bmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5
cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20o
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
ICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNz
aW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwKaW5kZXgg
OTVhZGYxMmMwOTNhZGYzMGM0N2QyOTI5OTIzNDNkY2YwMWNjZTg3ZS4uMmE3MGZhNGEwZmIxN2Zm
YTE5NDQ0NzUxOWNiMzllNTgwYjkzNWU1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbApAQCAtMTcsNyArMTcsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdl
YkdMLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVy
biBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAgICAgICAgIGxldCBjYW52
YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgo
Y2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVj
dChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0
bWwKaW5kZXggMTE1MWY5MTdhN2EyM2U2ZmUzMzJiNDNhOWEzNDA2YTljZmU5MGE1NC4uZDhlMDgz
MWU2YmMzYTI5NjVlOGQ0MmNmZDU4N2UyZGZhMTRkMmM3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCkBAIC0y
MCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29s
dmVDb250ZXh0V2ViR0wyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
U2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlm
aWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisgICAgICAg
ICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxl
Y3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuV2ViR0wyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAg
ICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250
ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29u
dGV4dC13ZWJncHUuaHRtbAppbmRleCBkYzAwZWYxMjM3YTY3Yjg5MDVmMzgwZGNlY2Y2YTc5Y2Vi
NjMyNjc2Li5lOTI1YjI3MTY0OGY0NDRjMjNjOWQyYTg1Y2I4NTIwNjI0Y2I2MjU3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z3B1Lmh0bWwKQEAgLTIyLDE0ICsyMiwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFt
ZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdQVS52YWxpZElkZW50aWZpZXJgLAogICAgICAg
ICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZl
biBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3Ro
LCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplLCAiVGhl
cmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOwogCi0gICAgICAgICAgICBsZXQgW2NhbnZhc0Fk
ZGVkRXZlbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKSwK
KyAgICAgICAgICAgIGxldCBbY2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50XSA9IGF3YWl0
IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCksCiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV2aWNlKClg
KSwKICAgICAgICAgICAgIF0pOwogCi0gICAgICAgICAgICBsZXQge2NhbnZhc30gPSBjYW52YXNB
ZGRlZEV2ZW50LmRhdGE7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gY2FudmFzQ29sbGVjdGlv
bkl0ZW1BZGRlZEV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KGNhbnZhcy5jb250ZXh0VHlwZSwgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkFk
ZGVkIGNhbnZhcyBzaG91bGQgYmUgYSBXZWJHUFUgZGV2aWNlLiIpOwogCiAgICAgICAgICAgICBj
b25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGll
cy5qcwppbmRleCAzYTQ2MDQ1NTI1MTAxODJiYmUyZWYzNTU3MjNhNDFlMDQyODlkNjJmLi4xNTkx
NTgwMjU5MDIzYjllMjM4ZTcxYmI1Yzg1NWFhN2M4NjQ4MWM1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNv
bnRleHQtdXRpbGl0aWVzLmpzCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIGRlc3Ryb3lDYW52
YXNlcygpIHsKICAgICB3aW5kb3cuY29udGV4dHMgPSBbXTsKIAogICAgIC8vIEZvcmNlIEdDIHRv
IG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhl
IGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNh
bnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIu
Y29sbGVjdCgpOyB9LCAwKTsKIH0KIApAQCAtNDMsOSArNDMsOSBAQCBUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVuY3Rp
b24gYXdhaXRDYW52YXNBZGRlZChjb250ZXh0VHlwZSkgewotICAgICAgICByZXR1cm4gV0kuY2Fu
dmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQp
CisgICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRF
dmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCkKICAgICAgICAgLnRoZW4oKGV2ZW50
KSA9PiB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAg
ICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgbGV0IGNv
bnRleHREaXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBlKGNv
bnRleHRUeXBlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY2FudmFz
LmNvbnRleHRUeXBlLCBjb250ZXh0VHlwZSwgYENhbnZhcyBjb250ZXh0IHNob3VsZCBiZSAke2Nv
bnRleHREaXNwbGF5TmFtZX0uYCk7CiAKQEAgLTczLDkgKzczLDkgQEAgVGVzdFBhZ2UucmVnaXN0
ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYXdhaXRDYW52YXNS
ZW1vdmVkKGNhbnZhc0lkZW50aWZpZXIpIHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFn
ZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQpCisgICAg
ICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChX
SS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQogICAgICAgICAudGhlbigoZXZlbnQpID0+
IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAg
ICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5pZGVudGlmaWVyLCBjYW52YXNJZGVudGlmaWVyLCAiUmVt
b3ZlZCBjYW52YXMgaGFzIGV4cGVjdGVkIElELiIpOwogICAgICAgICB9KTsKICAgICB9CkBAIC04
OSw3ICs4OSw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAg
ICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uTm9DYW52YXNlc2AsCiAgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIENhbnZhc01hbmFnZXIgaGFzIG5vIGNhbnZhc2VzIGlu
aXRpYWxseS4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMubGVuZ3RoLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBu
byBjYW52YXNlcy4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMKaW5kZXggNjAxNDZmZjM4NDg3
ZmQxOTNlMjNkMzM3NDdkZjMxMDQ2Y2M2ODFmMy4uNzdhMGVhMzQzYjY1ZjQyNGJhYzZkZTM3NWUz
M2JmMmNhYmRjY2JkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzCkBAIC04Niw3ICs4Niw3
IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIH0KIAogICAgIHdp
bmRvdy5nZXRDYW52YXMgPSBmdW5jdGlvbih0eXBlKSB7Ci0gICAgICAgIGxldCBjYW52YXNlcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gdHlwZSk7CisgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSB0eXBlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2Fu
dmFzZXMubGVuZ3RoID09PSAxLCBgVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcyB3aXRo
IHR5cGUgIiR7dHlwZX0iLmApOwogICAgICAgICBpZiAoY2FudmFzZXMubGVuZ3RoICE9PSAxKQog
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0
aWVzLXdlYmdsLmpzCmluZGV4IDUyNzVjNDQxYWFmYzczYjkxMDc5NDViM2NkNzNmOWNhNjdlMWU2
NWUuLmY0M2U2ZjI3N2NkYzdkMDU4ZDA5OTQxYTc2Njc3NjM0ZTA1ZTZjYzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRp
bGl0aWVzLXdlYmdsLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3Vy
Y2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCkBAIC0zOSw3ICszOSw3IEBAIGZ1
bmN0aW9uIGRlbGV0ZVByb2dyYW0oKSB7CiBmdW5jdGlvbiBkZWxldGVDb250ZXh0KCkgewogICAg
IGNvbnRleHQgPSBudWxsOwogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFz
IGVsZW1lbnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9l
cyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRz
LgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgog
ICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0K
IApAQCAtNDcsOCArNDcsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsK
ICAgICBsZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVuY3Rpb24gd2hlblByb2dyYW1BZGRlZChj
YWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMu
Iik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNv
bGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVt
QWRkZWQsIChldmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJ
LmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBj
YW52YXMuIik7CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNp
bmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZl
bnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5T
aGFkZXJQcm9ncmFtLCAiQWRkZWQgU2hhZGVyUHJvZ3JhbS4iKTsKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcywg
IlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJlbnQgQ2FudmFzLiIpOwpAQCAtNTcsOCAr
NTgsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9CiAKICAg
ICBmdW5jdGlvbiB3aGVuUHJvZ3JhbVJlbW92ZWQoY2FsbGJhY2spIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJU
aGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExp
c3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4geworICAg
ICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9
PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIGNhbnZh
c2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAg
bGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0sICJSZW1vdmVk
IFNoYWRlclByb2dyYW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
cHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3Vs
ZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTc0LDcgKzc2LDcgQEAgVGVzdFBhZ2UucmVn
aXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNr
IHRoYXQgU2hhZGVyUHJvZ3JhbUFkZGVkIGlzIHNlbnQgZm9yIGEgcHJvZ3JhbSBjcmVhdGVkIGJl
Zm9yZSBDYW52YXNBZ2VudCBpcyBlbmFibGVkLiIsCiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgewogICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FuJ3QgdXNlIGBhd2FpdEV2ZW50
YCBzaW5jZSB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGhhcHBlbnMgb24gdGhlIG5leHQgdGljay4K
LSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVy
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4geworICAgICAg
ICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZl
bnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKHByb2dyYW0pID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAgICAgICAgICAgfSk7CkBA
IC0xMTMsNyArMTE1LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAg
ICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAgIGxldCBj
YW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVt
b3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbVJlbW92ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICBjYW52YXNSZW1v
dmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2Vi
Z3B1LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJv
Z3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCmluZGV4IGZlNDhkOGZkODUxMTQ2NTg5OGZkM2IwNDUw
ZGU4OTUxMzc0NDliZTQuLmI4ZGUzNGNmYTg3ODY4NWY5NjVhOWY5MGJiNGJmOGFhYjM1NzM2MGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRl
clByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMKQEAgLTY0
LDcgKzY0LDcgQEAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGlwZWxpbmUoY29kZSA9IHJl
bmRlclBpcGVsaW5lU291cmNlKSB7CiBmdW5jdGlvbiBkZWxldGVEZXZpY2UoKSB7CiAgICAgZGV2
aWNlID0gbnVsbDsKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGRldmljZSBpcyBk
ZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBkb2VzIG5vdCByZWNlaXZl
IFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgLy8gZG9l
cyBub3QgcmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3ZlZCBldmVudHMuCiAgICAgc2V0VGltZW91
dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwogfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJh
bWVDb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdB
dXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbAppbmRleCBkOThmMGZlYTRlOTJjMTUyOTc4MTEyYzJk
MDcwY2Q3NGU5NTlkNGUyLi41NWU1NTI0NzMwODNhYTJkMWJhZWIwZTg4N2VlMDVmYzI4ZjBhMGU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1
dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwKQEAgLTc3LDggKzc3LDgg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgICAgaGFuZGxlUmVjb3JkaW5n
U3RvcHBlZChjYW52YXMsIGV2ZW50LmRhdGEucmVjb3JkaW5nKTsKICAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3Rl
bmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAg
ICAgICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAg
ICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlz
dGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAg
ICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFjYW52YXMucmVjb3JkaW5nQWN0aXZlKQogCiAgICAg
ICAgICAgICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5S
ZWNvcmRpbmdTdGFydGVkLCBoYW5kbGVSZWNvcmRpbmdTdGFydGVkV3JhcHBlcik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92
ZS13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3Jh
bS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCmluZGV4IGQ0MGZhYjc4MzgxMzBjYzk0YjAzYmY5MWQ5
NmYyMjcwOTA0ZWIwMTMuLmQ1ZmI4NzcyYzBiMzc1YzQwZDVkN2EwZTQyMDJhNTRmZjVkNTJkMGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1h
ZGQtcmVtb3ZlLXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
c2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCkBAIC0xNCw5ICsxNCwxMSBAQCB3
aW5kb3cuYmVmb3JlVGVzdCA9IGFzeW5jIGZ1bmN0aW9uKCkgewogZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoYENhbnZhcy5T
aGFkZXJQcm9ncmFtLldlYkdQVWApOwogCi0gICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzZXNbMF07CisgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZh
c2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisK
KyAgICBsZXQgY2FudmFzID0gY2FudmFzZXNbMF07CiAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
Y2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGEgY2FudmFzLiIpOwotICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hv
dWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUsICJDYW52YXMg
c2hvdWxkIGJlIFdlYkdQVS4iKTsKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGF3YWl0UHJvZ3JhbUFk
ZGVkKHByb2dyYW1UeXBlKSB7CkBAIC0xMTgsNyArMTIwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIGxldCBjYW52YXNS
ZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmly
ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCAoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5z
aW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAo
ZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVu
dC5odG1sCmluZGV4IDM0ZDAyYWIxN2U5MDVhNGI3OGEwMjY1NTA0OWFlMjhkYjMzMTA4NzEuLjhj
ZjlhNDc1NjIyNDIxYzgzNjg5YzlhZDM3ZDIxOTBhMDFjZTllMzkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhG
cmFnbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hh
ZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCkBAIC01NywxMCArNTcsMTAgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNyZWF0aW5nIHJl
bmRlciBwaXBlbGluZS4uLiIpOwogICAgICAgICBsZXQgZXZhbHV0ZVByb21pc2UgPSBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVSZW5kZXJQaXBlbGluZSgpYCk7CiAKLSAgICAg
ICAgaWYgKCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCkKLSAgICAgICAgICAgIGF3
YWl0IFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNh
bnZhc0FkZGVkKTsKKyAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24uc2l6ZSkKKyAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVj
dGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKIAotICAgICAg
ICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgbGV0
IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVsw
XTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7
CiAKICAgICAgICAgbGV0IGl0ZW1BZGRlZEV2ZW50ID0gYXdhaXQgY2FudmFzLnNoYWRlclByb2dy
YW1Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNz
LWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4
IDY2YmRiYWI5ZWVlMzE2NzkwZjhmMjY3NDZmOTNlMjFlZDRjM2RmMWUuLmRiZjYzNTFlOWEwOTI0
NjBhYmVlOWQzNGQ5MjA2YjBmNzMzNmIzYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhw
ZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTU0LDYgKzU0LDc0IEBAIEZBSUw6IGV4cGVj
dEZhbHNlKFtdKQogICAgIEV4cGVjdGVkOiBmYWxzZXkKICAgICBBY3R1YWw6IFtdCiAKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdEVtcHR5CitFeHBlY3RlZCB0byBQ
QVNTCitQQVNTOiBleHBlY3RFbXB0eShudWxsKQorUEFTUzogZXhwZWN0RW1wdHkoIiIpCitQQVNT
OiBleHBlY3RFbXB0eSh7fSkKK1BBU1M6IGV4cGVjdEVtcHR5KFtdKQorUEFTUzogZXhwZWN0RW1w
dHkoe30pCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4
cGVjdEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0
IgorRkFJTDogZXhwZWN0RW1wdHkoeyJ0ZXN0IjoxfSkKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAg
ICBBY3R1YWw6IHsidGVzdCI6MX0KK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBl
Y3RlZDogZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhwZWN0RW1wdHkoe30pCisg
ICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0RW1wdHkoe30p
CisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0RW1wdHkg
c2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB0cnVl
CitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVj
dDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNh
bGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IDEKK0ZBSUw6IGV4cGVjdEVtcHR5
IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdW5k
ZWZpbmVkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVt
cHR5CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3ROb3RFbXB0eSgidGVzdCIpCitQQVNT
OiBleHBlY3ROb3RFbXB0eSh7InRlc3QiOjF9KQorUEFTUzogZXhwZWN0Tm90RW1wdHkoInRlc3Qi
KQorUEFTUzogZXhwZWN0Tm90RW1wdHkoe30pCitQQVNTOiBleHBlY3ROb3RFbXB0eSh7fSkKK0V4
cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KG51bGwpCisgICAgRXhwZWN0ZWQ6
IG5vdCBlbXB0eQorICAgIEFjdHVhbDogbnVsbAorRkFJTDogZXhwZWN0Tm90RW1wdHkoIiIpCisg
ICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogIiIKK0ZBSUw6IGV4cGVjdE5vdEVt
cHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBl
eHBlY3ROb3RFbXB0eShbXSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiBb
XQorRkFJTDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAg
IEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3Qg
ZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJl
IGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHRydWUKK0ZBSUw6IGV4cGVj
dE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFj
dHVhbDogZmFsc2UKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdp
dGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogMQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hv
dWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB1bmRlZmlu
ZWQKKwogLS0gUnVubmluZyB0ZXN0IGNhc2U6IEluc3BlY3RvclRlc3QuZXhwZWN0TnVsbAogRXhw
ZWN0ZWQgdG8gUEFTUwogUEFTUzogZXhwZWN0TnVsbChudWxsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBl
Y3QtZnVuY3Rpb25zLmh0bWwKaW5kZXggOTFlODU4MGM3Y2I2MjczNDU4MjU0MDI0OTcyMDA5ZTk5
Y2RhODM0ZC4uZTM4NjRhMDNjNGUwOTQxY2E4YzAyZjJmMGE3ODYyNjM5ODhiMDEyMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVj
dC1mdW5jdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90
ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCkBAIC00OCw2ICs0OCwyMCBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBhZGRUZXN0Q2FzZShleHBlY3RUaGF0VGVzdENhc2UpOwogICAgIGFk
ZEludmVyc2VUZXN0Q2FzZSgiZXhwZWN0RmFsc2UiLCBleHBlY3RUaGF0VGVzdENhc2UpOwogCisg
ICAgbGV0IGV4cGVjdEVtcHR5VGVzdENhc2UgPSB7CisgICAgICAgIGZ1bmN0aW9uTmFtZTogImV4
cGVjdEVtcHR5IiwKKyAgICAgICAgcGFzc2luZ0lucHV0czogW251bGwsICIiLCB7fSwgW10sIG5l
dyBNYXAsIG5ldyBTZXRdLAorICAgICAgICBmYWlsaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVzdDog
MX0sIFsidGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJdKSwg
dHJ1ZSwgZmFsc2UsIDEsIHVuZGVmaW5lZF0sCisgICAgfTsKKyAgICBhZGRUZXN0Q2FzZShleHBl
Y3RFbXB0eVRlc3RDYXNlKTsKKworICAgIGxldCBleHBlY3ROb3RFbXB0eVRlc3RDYXNlID0gewor
ICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROb3RFbXB0eSIsCisgICAgICAgIHBhc3NpbmdJ
bnB1dHM6IFsidGVzdCIsIHt0ZXN0OiAxfSwgWyJ0ZXN0Il0sIG5ldyBNYXAoW1sidGVzdCIsIDFd
XSksIG5ldyBTZXQoWyJ0ZXN0Il0pXSwKKyAgICAgICAgZmFpbGluZ0lucHV0czogW251bGwsICIi
LCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXQsIHRydWUsIGZhbHNlLCAxLCB1bmRlZmluZWRdLAor
ICAgIH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0Tm90RW1wdHlUZXN0Q2FzZSk7CisKICAgICBs
ZXQgZXhwZWN0TnVsbFRlc3RDYXNlID0gewogICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3RO
dWxsIiwKICAgICAgICAgcGFzc2luZ0lucHV0czogW251bGxdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389049</attachid>
            <date>2020-01-28 12:26:53 -0800</date>
            <delta_ts>2020-01-29 12:16:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20200128122652.patch</filename>
            <type>text/plain</type>
            <size>326549</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNjZTlmNGIyZjIyN2FjZWI4ZDY5MTkyMDZiODA2
MDU1ZGIyYzg5NDIuLjE4MzdmOTg0ZDBlNDFlYTgzOTY2ODdmYTdkNGY4ZWVkNjg2Y2JjZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdGUgSW5zcGVjdG9yOiBhZGQg
c3VwcG9ydCBmb3Igc2VydmljZSB3b3JrZXJzIHRhcmdldHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMDJkNTYy
YmEwZTI3MjQ4OGI4YjJkNzVjM2ZhOWZhYzQ4ZWVlMzk2Li4zNDcxOGM1ODJkYjkzNWI2YzM0ZDRh
Nzg2MTFhN2E4MTcyOTRjNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA1IEBACisyMDIwLTAx
LTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmlt
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgQWRkIHR5cGVzL2NvbW1hbmRzL2V2ZW50cyBm
b3IgaW5zdHJ1bWVudGluZyB0aGUgbGlmZWN5Y2xlIG9mIGBBbmltYXRpb25gIG9iamVjdHMsIGFz
IHdlbGwgYXMKKyAgICAgICAgY29tbWFuZHMgZm9yIGdldHRpbmcgdGhlIEphdmFTY3JpcHQgd3Jh
cHBlciBvYmplY3QgYW5kIHRoZSB0YXJnZXQgRE9NIG5vZGUuCisKKyAgICAgICAgVGVzdHM6IGlu
c3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCisgICAgICAgICAgICAgICBpbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAg
ICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24u
aHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFy
Z2V0Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1h
dGlvbi5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5n
ZWQuaHRtbAorCisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAq
IGFuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0
aW9uOjppbnN0YW5jZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6
aW5zdGFuY2VzTXV0ZXgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJBbmltYXRpb246OnNldEVmZmVjdEludGVybmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKToKKyAgICAgICAgKiBh
bmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NUcmFuc2l0aW9uOjpjcmVhdGUpOgorCisgICAgICAgICogYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6
cGFyc2VkS2V5ZnJhbWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFt
ZUVmZmVjdDo6YmxlbmRpbmdLZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lRWZmZWN0OjpoYXNCbGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0ZWQpOgorICAgICAg
ICBQcm92aWRlIGEgd2F5IHRvIGFjY2VzcyB0aGUgbGlzdCBvZiBrZXlmcmFtZXMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFy
Z2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENyZWF0ZVdlYkFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBEZWxldGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdl
YkFuaW1hdGlvbkVmZmVjdEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCk6IERlbGV0ZWQu
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6ZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRz
OjpzZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0
cnVtZW50aW5nQWdlbnRzOjpyZXNldCk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFuaW1hdGlvbkFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBbmltYXRpb25BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVl
Rm9yU2Vjb25kcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJvdG9jb2xWYWx1ZUZvclBs
YXliYWNrRGlyZWN0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVl
Rm9yRmlsbE1vZGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yS2V5
ZnJhbWVzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvckVmZmVjdCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3RFZmZlY3RUYXJnZXQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZl
QW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGlt
aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ry
b3lXZWJBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OmZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50OjpmaW5kQW5pbWF0aW9uSWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpiaW5kQW5pbWF0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5pbWF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5p
bWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KTogRGVs
ZXRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgIEFkZCBhbiBv
dmVybG9hZCBmb3IgYHB1c2hOb2RlUGF0aFRvRnJvbnRlbmRgIHRoYXQgZXhwb3NlcyBhbiBgRXJy
b3JTdHJpbmdgLgorCiAyMDIwLTAxLTI4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBTZXBhcmF0ZSBzZXR0aW5nIGEgdGltZWxp
bmUncyBjdXJyZW50IHRpbWUgZnJvbSB1cGRhdGluZyBpdHMgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKaW5kZXggODcyYTg3MTIwYThmNzdhMGVkMWE3Y2Q0MjY4MjhmNDM1NmRlYzNh
ZS4uNThlZjkyOTg1N2QzOTY3MTVjMmMwNTdkYmUyY2QxMjI1NDkyNTkyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzI4IEBACisyMDIwLTAxLTI4ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1
bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIu
anM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlcik6CisgICAgICAgIChXSS5B
bmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgZG9tYWlucyk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25NYW5hZ2VyLnByb3RvdHlwZS5hY3RpdmF0ZUV4dHJhRG9tYWluKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmluaXRpYWxpemVUYXJnZXQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvbkNvbGxlY3Rpb24pOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZ2V0IHN1cHBvcnRlZCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5lbmFibGUpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZGlzYWJsZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25NYW5hZ2VyLnByb3RvdHlwZS5hbmltYXRpb25DcmVhdGVkKToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uTWFuYWdlci5wcm90b3R5cGUudGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5Bbmlt
YXRpb25NYW5hZ2VyLnByb3RvdHlwZS5hbmltYXRpb25EZXN0cm95ZWQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuX2hhbmRsZU1haW5SZXNvdXJjZURpZENoYW5nZSk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qczoK
KyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS5hbmltYXRpb25DcmVhdGVk
KTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuZWZmZWN0
Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBl
LnRhcmdldENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnBy
b3RvdHlwZS5hbmltYXRpb25EZXN0cm95ZWQpOiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanM6IEFkZGVkLgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29sbGVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnBy
b3RvdHlwZS5nZXQgYW5pbWF0aW9uVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0
aW9uLnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29s
bGVjdGlvbi5wcm90b3R5cGUub2JqZWN0SXNSZXF1aXJlZFR5cGUpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuaXRlbUFkZGVkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0ZW1SZW1vdmVkKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0ZW1zQ2xlYXJlZCk6Cisg
ICAgICAgIFNpbWlsYXIgdG8gYFdJLlJlc291cmNlQ29sbGVjdGlvbmAsIGNyZWF0ZSBhIHN1YmNs
YXNzIG9mIGBXSS5Db2xsZWN0aW9uYCB0aGF0IG1haW50YWlucyBpdCdzCisgICAgICAgIG93biBz
dWItYFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25gcyBmb3IgZWFjaCB0eXBlIG9mIGBXSS5BbmltYXRp
b24uVHlwZWAuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanM6
IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5m
cm9tUGF5bG9hZCk6CisgICAgICAgIChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JBbmltYXRp
b25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclBsYXliYWNrRGly
ZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckZpbGxNb2RlKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbi5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycyk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBhbmltYXRpb25JZCk6CisgICAgICAg
IChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBiYWNrdHJhY2UpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRp
b24ucHJvdG90eXBlLmdldCBzdGFydERlbGF5KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90
b3R5cGUuZ2V0IGVuZERlbGF5KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0
IGl0ZXJhdGlvbkNvdW50KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0
ZXJhdGlvblN0YXJ0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJh
dGlvbkR1cmF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IHRpbWlu
Z0Z1bmN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IHBsYXliYWNr
RGlyZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGZpbGxNb2Rl
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGtleWZyYW1lcyk6CisgICAg
ICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBkaXNwbGF5TmFtZSk6CisgICAgICAgIChX
SS5BbmltYXRpb24ucHJvdG90eXBlLnJlcXVlc3RFZmZlY3RUYXJnZXQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bi5wcm90b3R5cGUudGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90
eXBlLl91cGRhdGVFZmZlY3QpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVt
b3RlT2JqZWN0LmpzOgorICAgICAgICAoV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVBbmltYXRpb24p
OiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250
ZW50Vmlldy5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzLgorICAgICAgICAoV0kuR3JhcGhpY3NU
YWJDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnRhYklu
Zm8pOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5pc1RhYkFsbG93ZWQpOgor
ICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHR5cGUpOgor
ICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuc2hvd1JlcHJlc2Vu
dGVkT2JqZWN0KTogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAgICAoV0kuR3JhcGhpY3NU
YWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2xvc2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFi
Q29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFi
Q29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFi
Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmlld1RyZWVPdXRs
aW5lU2VsZWN0aW9uRGlkQ2hhbmdlKTogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcy4K
KyAgICAgICAgUmVuYW1lIHRoZSBDYW52YXMgVGFiIHRvIEdyYXBoaWNzIFRhYiBhbmQgZGlzcGxh
eSBmb3VyIHNlY3Rpb25zOgorICAgICAgICAgLSBDYW52YXNlcworICAgICAgICAgLSBXZWIgQW5p
bWF0aW9ucworICAgICAgICAgLSBDU1MgQW5pbWF0aW9ucworICAgICAgICAgLSBDU1MgVHJhbnNp
dGlvbnMKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVs
LmpzOgorICAgICAgICAoV0kuQ2FudmFzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5jYW5TaG93UmVw
cmVzZW50ZWRPYmplY3QpOgorICAgICAgICBPbmx5IGFwcGVhciBpZiBhIGBXSS5DYW52YXNgIG9y
IGBXSS5SZWNvcmRpbmdgIGlzIHNlbGVjdGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0
cyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdl
dCBuYXZpZ2F0aW9uSXRlbXMpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5HcmFw
aGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9y
RHJhZ0V2ZW50KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90
b3R5cGUuZHJvcFpvbmVIYW5kbGVEcm9wKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZVNob3dH
cmlkQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcucHJvdG90eXBlLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQpOgorICAgICAg
ICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlSW1wb3J0
QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNo
YW5nZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5faGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUu
X2hhbmRsZUNsaWNrKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5jc3M6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFw
aGljcy1vdmVydmlldyk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
ID4gc2VjdGlvbik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4g
c2VjdGlvbjpub3QoOmZpcnN0LWNoaWxkKSk6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBo
aWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKSA+IC5oZWFk
ZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24g
PiAuaGVhZGVyID4gaDEpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmll
dyA+IHNlY3Rpb24gPiAuaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKToKKyAgICAgICAgKC5jb250
ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkgLmNvbnRl
bnQtdmlldy5ncmFwaGljcy1vdmVydmlldyk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29s
b3Itc2NoZW1lOiBsaWdodCkgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rp
b24gPiAuaGVhZGVyKToKKyAgICAgICAgQWRkIHN0aWNreSBoZWFkZXJzIGZvciBlYWNoIG9mIHRo
ZSBzZWN0aW9ucyBkZXNjcmliZWQgYWJvdmUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChX
SS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tl
ZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LmNvbnRlbnRWaWV3QWRkZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld1JlbW92ZWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChX
SS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZW50
Vmlld01vdXNlRW50ZXIpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3M6IEFk
ZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24tY29sbGVjdGlvbik6CisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbnRlbnRWaWV3LmdldCBwcmV2aWV3SGVpZ2h0KToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUubGF5b3V0KToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaXplRGlkQ2hhbmdlKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoU3VidGl0bGUpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmll
dy5hZGRUaXRsZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
X3JlZnJlc2hQcmV2aWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5faGFuZGxlRWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuX2hhbmRsZVRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9wb3B1bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNv
bnRleHRNZW51KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRl
bnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbik6Cisg
ICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbi5zZWxlY3RlZCk6CisgICAgICAgICguY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlcik6CisgICAgICAgICguY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlKToKKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6CisgICAgICAgICgu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGU6bm90
KDplbXB0eSk6OmJlZm9yZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlv
bjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gLnByZXZpZXcgPiBzdmcpOgorICAgICAgICAoYm9keVtkaXI9cnRsXSAuY29udGVudC12
aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgcmVjdCk6CisgICAgICAgICguY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmRlbGF5IGxpbmUpOgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgcGF0aCk6Cisg
ICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2
ZSBjaXJjbGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHN2ZyA+IC5hY3RpdmUgbGluZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3ID4gc3Bhbik6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1l
OiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0
bGUpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRl
bnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlKToKKyAgICAg
ICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcpOgorICAgICAgICBWaXN1YWxpemUgdGhlIHN0YXJ0L2VuZCBkZWxh
eSBhbmQga2V5ZnJhbWVzIG9mIHRoZSBnaXZlbiBhbmltYXRpb24gYXMgYSBzZXJpZXMgb2YgYmV6
aWVyCisgICAgICAgIGN1cnZlcyBzZXBhcmF0ZWQgYnkgbWFya2Vycy4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qczogQWRkZWQu
CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmluc3BlY3QpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuZ2V0IGFuaW1hdGlv
bik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5z
ZXQgYW5pbWF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFp
bHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKToKKyAgICAg
ICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoRWZm
ZWN0U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5fcmVmcmVzaEJhY2t0cmFjZVNlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9u
RGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hhbmRsZUFuaW1hdGlvbkVmZmVjdENoYW5n
ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUu
X2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2Vk
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRl
dGFpbHNTaWRlYmFyUGFuZWwuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVs
LmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlv
bi1rZXlmcmFtZXMgLmhlYWRlciA+IC5zdWJ0aXRsZSk6CisgICAgICAgICguc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmlt
YXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24pOgorICAgICAgICAoLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5p
bWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzKToKKyAgICAgICAg
KC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWls
cy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxl
cyAuQ29kZU1pcnJvcik6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1h
dGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5k
ZXRhaWxzLXNlY3Rpb24pOgorICAgICAgICBTaG93IGNvbGxlY3RlZCBpbmZvcm1hdGlvbiBhYm91
dCB0aGUgc2VsZWN0ZWQgYW5pbWF0aW9uLCBpdHMgZWZmZWN0LCBhbmQgaXRzIHRhcmdldC4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qczoKKyAg
ICAgICAgKFdJLkNhbnZhc01hbmFnZXIpOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90
b3R5cGUuZ2V0IGNhbnZhc0NvbGxlY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc01h
bmFnZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90
b3R5cGUuY2FudmFzQWRkZWQpOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUu
Y2FudmFzUmVtb3ZlZCk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fc2F2
ZVJlY29yZGluZ3MpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBl
Ll9tYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90
b3R5cGUuZ2V0IGNhbnZhc2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIu
cHJvdG90eXBlLl9yZW1vdmVDYW52YXMpOiBEZWxldGVkLgorICAgICAgICBSYXRoZXIgdGhhbiBo
YXZlIHRoZSBgV0kuQ2FudmFzVGFiQ29udGVudFZpZXdgIG1haW5haW4gdGhlIGBXSS5DYW52YXND
b2xsZWN0aW9uYCBhbmQgaGF2ZSB0bworICAgICAgICBsaXN0ZW4gZm9yIGV2ZW50cyBmcm9tIHRo
ZSBgV0kuQ2FudmFzTWFuYWdlcmAsIGp1c3QgaGF2ZSB0aGUgYFdJLkNhbnZhc01hbmFnZXJgIGhv
bGQgb24gdG8KKyAgICAgICAgaXQgaW5zdGVhZCBhbmQgcHJvdmlkZSBhIGdldHRlciBmb3IgaXQu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcuanM6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KToKKyAgICAgICAg
KFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBuYXZpZ2F0aW9uSXRl
bXMpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaGFu
ZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdBZGRlZCk6CisgICAgICAgIChXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld1JlbW92ZWQpOgorICAgICAg
ICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAg
ICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgor
ICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2FkZFNhdmVk
UmVjb3JkaW5nKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90
eXBlLmhpZGRlbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5nZXQgX2l0ZW1NYXJnaW4pOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQcmV2aWV3cyk6IERlbGV0
ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBk
YXRlTmF2aWdhdGlvbkl0ZW1zKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLl9zaG93R3JpZEJ1dHRvbkNsaWNrZWQpOiBEZWxldGVkLgor
ICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZVNo
b3dJbWFnZUdyaWQpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyk6CisgICAgICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hl
bWU6IGRhcmspIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KTogRGVsZXRlZC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanM6CisgICAgICAg
IChXSS5DYW52YXNDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5w
cm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdF
dmVudCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmRy
b3Bab25lSGFuZGxlRHJvcCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcu
cHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcu
cHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fcG9wdWxhdGVDYW52YXNFbGVtZW50QnV0dG9uQ29udGV4dE1lbnUpOgorICAgICAgICAo
V0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLnNob3duKTogRGVsZXRlZC4KKyAgICAgICAg
TW92ZSB0aGUgIkxvZyBDYW52YXMgQ29udGV4dCIgdG8gYmUgdGhlIGZpcnN0IGl0ZW0gaW4gdGhl
IGNhbnZhcyBlbGVtZW50IGJ1dHRvbiBjb250ZXh0IG1lbnUuCisgICAgICAgIERyaXZlLWJ5OiBh
ZGQgYSBgV0kuRHJvcFpvbmVWaWV3YCBmb3Igd2hlbiByZWNvcmRpbmcgSlNPTiBmaWxlcyBhcmUg
ZHJhZ2dlZCBvbiB0b3AuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0Nv
bnRlbnRWaWV3LmNzczoKKyAgICAgICAgRHJpdmUtYnk6IGRyb3AgYDpub3QoLnRhYilgIGZyb20g
YWxsIHNlbGVjdG9ycyBzaW5jZSB0aGUgQ2FudmFzIFRhYiBkb2Vzbid0IGV4aXN0IGFueW1vcmUu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5q
czoKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5Db2xs
ZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzZWxlY3RlZEl0ZW0pOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0IHNlbGVjdGVkSXRl
bSk6IEFkZGVkLgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5h
ZGRDb250ZW50Vmlld0Zvckl0ZW0pOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5yZW1vdmVDb250ZW50Vmlld0Zvckl0ZW0pOgorICAgICAgICAoV0kuQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93Q29udGVudFBsYWNlaG9sZGVyKToKKyAgICAg
ICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6Cisg
ICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9zZWxlY3RJdGVtKToK
KyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNsaWNr
KTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNl
dFNlbGVjdGVkSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9D
b2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0
aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2FnZS10ZXh0LXZpZXcpKTogQWRkZWQuCisgICAg
ICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZyk6IERlbGV0
ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGlt
Zzpob3Zlcik6IERlbGV0ZWQuCisgICAgICAgIFdoZW4gc2VsZWN0aW9uIGlzIGVuYWJsZWQsIGNs
aWNraW5nIG91dHNpZGUgb2YgYW55IG9mIHRoZSBjb250ZW50IHZpZXdzIHNob3VsZCBkaXNtaXNz
IHRoZQorICAgICAgICBjdXJyZW50IHNlbGVjdGlvbi4gQ2xpZW50cyBzaG91bGQgYWxzbyBiZSBh
YmxlIHRvIGdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0uCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzOgorICAgICAgICAoV0ku
RGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cucHJvdG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAgIEVu
c3VyZSB0aGF0IGAwYCBpcyBjb25zaWRlcmVkIGFzIGEgdmFsaWQgdmFsdWUuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdJLmxvYWRlZCk6CisgICAg
ICAgIChXSS5jb250ZW50TG9hZGVkKToKKyAgICAgICAgKFdJLnRhYkNvbnRlbnRWaWV3Q2xhc3NG
b3JSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNvbnRlbnRWaWV3LmNyZWF0ZUZyb21SZXByZXNlbnRl
ZE9iamVjdCk6CisgICAgICAgIChXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlKToKKyAgICAgICAg
QWxsb3cgYFdJLkFuaW1hdGlvbmAgdG8gYmUgdmlld2FibGUuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL01haW4uY3NzOgorICAgICAgICAoLm5hdmlnYXRpb24taXRlbS1oZWxwKTog
QWRkZWQuCisgICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIp
OiBBZGRlZC4KKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJh
ciA+IC5pdGVtKTogQWRkZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRp
b24taXRlbS1oZWxwKTogRGVsZXRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2
aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKC5t
ZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0pOiBEZWxldGVkLgorICAgICAgICBBbGxvdyBgV0kuY3JlYXRlTmF2aWdhdGlvbkl0ZW1I
ZWxwYCB0byBiZSB1c2VkIGluZGVwZW5kZW50bHkgb2YgYFdJLmNyZWF0ZU1lc3NhZ2VUZXh0Vmll
d2AuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanM6
CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlwZS5ub2RlRm9ySWQpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzOgorICAgICAgICAo
V0kuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5hbmltYXRpb25UcmFja2luZ1VwZGF0ZWQpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanM6Cisg
ICAgICAgIChXSS5BdWRpdFRlc3RDYXNlUmVzdWx0LmFzeW5jIGZyb21QYXlsb2FkKToKKyAgICAg
ICAgQWRkIGEgZmFsbGJhY2sgc28gY2FsbGVycyBkb24ndCBuZWVkIHRvLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qczoKKyAg
ICAgICAgKFdJLlJlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczoKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBp
bWcpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+
IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIpOiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IG1v
dmUgdGhlc2Ugc3R5bGVzIHRvIHRoZSByaWdodCBmaWxlIGFuZCBtYWtlIHRoZW0gbW9yZSBzcGVj
aWZpYy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qczoKKyAgICAg
ICAgKFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBlKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanM6CisgICAgICAgIChXSS5SZWNvcmRpbmcuZGlz
cGxheU5hbWVGb3JSZWNvcmRpbmdUeXBlKTogQWRkZWQuCisgICAgICAgIERyaXZlLWJ5OiBmaXgg
bG9jYWxpemVkIHN0cmluZ3MuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29y
ZGluZ0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgRHJpdmUtYnk6IGRyb3AgYDpub3QoLnRhYilg
IGZyb20gYWxsIHNlbGVjdG9ycyBzaW5jZSB0aGUgUmVjb3JkaW5nIFRhYiBkb2Vzbid0IGV4aXN0
IGFueW1vcmUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmc6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2Zy4KKyAgICAgICAg
KiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3Qv
VGVzdC5qczoKKyAgICAgICAgKFdJLmxvYWRlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1Rlc3QvVGVzdEhhcm5lc3MuanM6CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuZXhw
ZWN0RW1wdHkpOiBBZGRlZC4KKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5leHBlY3RO
b3RFbXB0eSk6IEFkZGVkLgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLl9leHBlY3Rh
dGlvbk1lc3NhZ2VGb3JtYXQpOgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLl9leHBl
Y3RlZFZhbHVlRm9ybWF0KToKKyAgICAgICAgQWRkIHV0aWxpdHkgZnVuY3Rpb24gZm9yIGNoZWNr
aW5nIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGVtcHR5OgorICAgICAgICAgLSBBcnJheSBg
bGVuZ3RoID09PSAwYAorICAgICAgICAgLSBTdHJpbmcgYGxlbmd0aCA9PT0gMGAKKyAgICAgICAg
IC0gU2V0IGBzaXplID09PSAwYAorICAgICAgICAgLSBNYXAgYHNpemUgPT09IDBgCisgICAgICAg
ICAtIE9iamVjdCBgaXNFbXB0eU9iamVjdGAKKyAgICAgICAgQW55IG90aGVyIHR5cGUgd2lsbCBh
dXRvbWF0aWNhbGx5IGZhaWwsIGFzIG5vbi1vYmplY3RzIGNhbid0IGJlICJlbXB0eSIgKGUuZy4g
YDQyYCkuCisKIDIwMjAtMDEtMjcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRvbid0IHVzZSBgOm1hdGNoZXMoOmJlZm9yZSwgOmFm
dGVyKWAgYWZ0ZXIgcjI1NTA1OQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24KaW5kZXggYmVhZjhkZTI4YWM3NTNlMzdl
ZjJiZTg5YzAxZmNiMGJkNTNkYWZiYi4uMjJlZTg4MjQ3OTk5Y2Q1ODI1YTVlYTMxNjc3ZWY2YjQ3
NGM2ODE0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9BbmltYXRpb24uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCkBAIC0xNCw2ICsxNCw1MSBAQAogICAgICAgICAgICAg
InR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICJlbnVtIjogWyJyZWFkeSIsICJkZWxheWVk
IiwgImFjdGl2ZSIsICJjYW5jZWxlZCIsICJkb25lIl0KICAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgImlkIjogIlBsYXliYWNrRGlyZWN0aW9uIiwKKyAgICAgICAgICAgICJ0eXBl
IjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9ybWFsIiwgInJldmVyc2UiLCAi
YWx0ZXJuYXRlIiwgImFsdGVybmF0ZS1yZXZlcnNlIl0KKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgImlkIjogIkZpbGxNb2RlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmlu
ZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9uZSIsICJmb3J3YXJkcyIsICJiYWNrd2FyZHMi
LCAiYm90aCIsICJhdXRvIl0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlk
IjogIkFuaW1hdGlvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAg
ICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25J
ZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
Y3NzQW5pbWF0aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyBgYW5pbWF0aW9uLW5hbWVg
IENTUyBwcm9wZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBpZiBgdHJhbnNpdGlvblByb3Bl
cnR5YCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNz
c1RyYW5zaXRpb25Qcm9wZXJ0eSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyBgdHJhbnNpdGlvbi1w
cm9wZXJ0eWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90IGJlIHByb3ZpZGVkIGlmIGBhbmltYXRp
b25OYW1lYCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVmZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImJhY2t0cmFjZSIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjog
eyAiJHJlZiI6ICJDb25zb2xlLkNhbGxGcmFtZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIkJhY2t0cmFjZSB0aGF0IHdhcyBjYXB0dXJlZCB3aGVuIHRoaXMgYFdlYkFuaW1h
dGlvbmAgd2FzIGNyZWF0ZWQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJpZCI6ICJFZmZlY3QiLAorICAgICAgICAgICAgInR5cGUiOiAib2Jq
ZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAic3RhcnREZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZERlbGF5IiwgInR5cGUiOiAibnVtYmVyIiwg
Im9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9u
Q291bnQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiTnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gdGhlIGFuaW1hdGlvbi4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25TdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJbmRleCBvZiB3aGljaCBpdGVyYXRpb24gdG8g
c3RhcnQgYXQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uRHVyYXRp
b24iLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
VG90YWwgdGltZSBvZiBlYWNoIGl0ZXJhdGlvbiwgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzLiIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWluZ0Z1bmN0aW9uIiwgInR5cGUiOiAi
c3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNTUyB0aW1pbmcgZnVu
Y3Rpb24gb2YgdGhlIG92ZXJhbGwgYW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInBsYXliYWNrRGlyZWN0aW9uIiwgIiRyZWYiOiAiUGxheWJhY2tEaXJlY3Rpb24iLCAi
b3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmaWxsTW9kZSIs
ICIkcmVmIjogIkZpbGxNb2RlIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAia2V5ZnJhbWVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVm
IjogIktleWZyYW1lIiB9LCAib3B0aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIktleWZyYW1lIiwKKyAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlw
dGlvbiI6ICJEZWNpbWFsIHBlcmNlbnRhZ2UgWzAsMV0gcmVwcmVzZW50aW5nIHdoZXJlIHRoaXMg
a2V5ZnJhbWUgaXMgaW4gdGhlIGVudGlyZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uLiIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVhc2luZyIsICJ0eXBlIjogInN0cmluZyIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1MgdGltaW5nIGZ1bmN0aW9uIGZvciBo
b3cgdGhlIGBzdHlsZWAgaXMgYXBwbGllZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzdHlsZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJDU1Mgc3R5bGUgZGVjbGFyYXRpb24gb2YgdGhlIENTUyBwcm9wZXJ0aWVzIHRoYXQgd2ls
bCBiZSBhbmltYXRlZC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewog
ICAgICAgICAgICAgImlkIjogIlRyYWNraW5nVXBkYXRlIiwKICAgICAgICAgICAgICJ0eXBlIjog
Im9iamVjdCIsCkBAIC0yNyw2ICs3MiwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAgICAiY29t
bWFuZHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRpc2FibGUiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIENhbnZhcyBkb21haW4gZXZlbnRzLiIK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVxdWVzdEVmZmVj
dFRhcmdldCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiR2V0cyB0aGUgYERPTS5Ob2Rl
SWRgIGZvciB0aGUgdGFyZ2V0IG9mIHRoZSBlZmZlY3Qgb2YgdGhlIGFuaW1hdGlvbiB3aXRoIHRo
ZSBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9u
SWQiIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiIH0KKyAgICAg
ICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVz
b2x2ZUFuaW1hdGlvbiIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVzb2x2ZXMgSmF2
YVNjcmlwdCBgV2ViQW5pbWF0aW9uYCBvYmplY3QgZm9yIGdpdmVuIGBBbmltYXRpb25JZGAuIiwK
KyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUgdGhhdCBjYW4gYmUgdXNlZCB0
byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3QiLCAiJHJl
ZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAog
ICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJzdGFydFRyYWNraW5nIiwKICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJTdGFydCB0cmFja2luZyBhbmltYXRpb25zLiBUaGlzIHdpbGwg
cHJvZHVjZSBhIGB0cmFja2luZ1N0YXJ0YCBldmVudC4iCkBAIC0zNyw2ICsxMTEsMzUgQEAKICAg
ICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAiYW5pbWF0aW9uQ3JlYXRlZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGlzcGF0Y2hlZCB3aGVuZXZlciBhIGBXZWJBbmltYXRpb25gIGlzIGNyZWF0ZWQuIiwKKyAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0
aW9uIiwgIiRyZWYiOiAiQW5pbWF0aW9uIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVmZmVjdENoYW5nZWQiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGVmZmVjdCBvZiBhbnkg
YW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55IHdheS4iLAorICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjog
IkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZWZmZWN0IiwgIiRy
ZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMg
b21pdHRlZCB3aGVuIHRoZSBlZmZlY3QgaXMgcmVtb3ZlZCB3aXRob3V0IGEgcmVwbGFjZW1lbnQu
IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogInRhcmdldENoYW5nZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3Bh
dGNoZWQgd2hlbmV2ZXIgdGhlIHRhcmdldCBvZiBhbnkgZWZmZWN0IG9mIGFueSBhbmltYXRpb24g
aXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9u
SWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAiYW5pbWF0aW9uRGVzdHJveWVkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1hdGlvbmAgaXMgZGVzdHJveWVkLiIsCisg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFu
aW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAidHJhY2tpbmdTdGFydCIsCiAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCBhZnRlciBgc3RhcnRUcmFja2lu
Z2AgY29tbWFuZC4iLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0Fu
aW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcApp
bmRleCA3YzcyZjYyNGMzMzBhZjk2YmE3MGI3YWU0ZTkyYjUwMWNhMTAxMDdlLi5mZDNlYjlkYmRl
OWJjMWFiMGI5N2YwYTA3MWUwMGU4MGZiODEzMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQ1NTQW5pbWF0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQW5pbWF0
aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KIApAQCAtMzksNiArNDAsOSBAQCBSZWY8Q1NTQW5pbWF0aW9uPiBDU1NB
bmltYXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25pbmdFbGVtZW50LCBjb25zdCBBbmltYXRpb24m
CiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENTU0FuaW1hdGlvbihvd25pbmdF
bGVtZW50LCBiYWNraW5nQW5pbWF0aW9uLCBuZXdTdHlsZSkpOwogICAgIHJlc3VsdC0+aW5pdGlh
bGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcAppbmRl
eCBkZmY1ZmIxZjc5YTg5YzU2NjBhNDljMWIzNjQzZGQwN2Q4MjQzMjcxLi5hYWFlNWUyZDBjNjE3
MjBjZDEwOGRkNmRjZTU5NTE5Y2EwYWMzZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0NTU1RyYW5zaXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbmltYXRp
b24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogCkBAIC00MCw2ICs0MSw5IEBAIFJlZjxDU1NUcmFuc2l0aW9uPiBD
U1NUcmFuc2l0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3duaW5nRWxlbWVudCwgQ1NTUHJvcGVydHlJ
RCBwCiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENTU1RyYW5zaXRpb24ob3duaW5n
RWxlbWVudCwgcHJvcGVydHksIGdlbmVyYXRpb25UaW1lLCBiYWNraW5nQW5pbWF0aW9uLCBuZXdT
dHlsZSwgcmV2ZXJzaW5nQWRqdXN0ZWRTdGFydFN0eWxlLCByZXZlcnNpbmdTaG9ydGVuaW5nRmFj
dG9yKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7CiAgICAg
cmVzdWx0LT5zZXRUaW1pbmdQcm9wZXJ0aWVzKGRlbGF5LCBkdXJhdGlvbik7CisKKyAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkp
OworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggMmI0ZDg2ZDhjYzI1OWVjMWRkNTRhMjk1OTY2ZWYzOTlj
ZjlmOTE5ZC4uM2FmNWQzN2NlNGU4YzdlOWQ1MmRiODA5YjM3MWNkYzM0OWRmOGRmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC0xMTAyLDcgKzEx
MDIsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjppbnZhbGlkYXRlKCkKIAogdm9pZCBLZXlmcmFt
ZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKCkKIHsKLSAgICBtX3Nob3VsZFJ1
bkFjY2VsZXJhdGVkID0gaGFzQmxlbmRpbmdLZXlmcmFtZXMoKTsKKyAgICBtX3Nob3VsZFJ1bkFj
Y2VsZXJhdGVkID0gISFtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsKICAgICBmb3IgKGF1dG8g
Y3NzUHJvcGVydHlJZCA6IG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpKSB7CiAgICAg
ICAgIGlmICghQ1NTUHJvcGVydHlBbmltYXRpb246OmFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2Vs
ZXJhdGVkKGNzc1Byb3BlcnR5SWQpKSB7CiAgICAgICAgICAgICBtX3Nob3VsZFJ1bkFjY2VsZXJh
dGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCmlu
ZGV4IDg1NjA5ODEyNjAzYmY3MzAwNTg1NTNmZmNhMzAwMTE3YmY3YmZkOWQuLmQ1OWUyODk1ZTBj
Mzk3ZTNjOTQ5NDYzMjhjOTg4MGNjODkyNmVlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5oCkBAIC05OCw2ICs5OCw4IEBAIHB1YmxpYzoKICAgICAgICAgQ29t
cG9zaXRlT3BlcmF0aW9uT3JBdXRvIGNvbXBvc2l0ZSB7IENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0
bzo6QXV0byB9OwogICAgIH07CiAKKyAgICBjb25zdCBWZWN0b3I8UGFyc2VkS2V5ZnJhbWU+JiBw
YXJzZWRLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX3BhcnNlZEtleWZyYW1lczsgfQorCiAg
ICAgRWxlbWVudCogdGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0KICAg
ICB2b2lkIHNldFRhcmdldChSZWZQdHI8RWxlbWVudD4mJik7CiAKQEAgLTEzNSw3ICsxMzcsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBjb2xvckZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2g7IH0KIAog
ICAgIHZvaWQgY29tcHV0ZURlY2xhcmF0aXZlQW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFtZXMoY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpOwot
ICAgIGJvb2wgaGFzQmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5n
S2V5ZnJhbWVzLnNpemUoKTsgfQorICAgIGNvbnN0IEtleWZyYW1lTGlzdCYgYmxlbmRpbmdLZXlm
cmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzOyB9CiAgICAgY29uc3Qg
SGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgYW5pbWF0ZWRQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1
cm4gbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCk7IH0KIAogICAgIGJvb2wgY29tcHV0
ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uKExheW91dFJlY3QmKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXggM2I4NzkwYWEzZDllZDI2NWQx
NzZkZmM3YTFiNWY0NDg2NTI3M2I3Ny4uNTRlZTlkZjE3MTRlZGIzMjYzZjc2OGU5MWRjNDYwODk2
NGRlNTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAg
LTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2Vi
QW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
KyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0u
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTUzLDExICs1NSwzMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJBbmlt
YXRpb24pOwogCitIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBXZWJBbmltYXRpb246Omluc3RhbmNl
cyhjb25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNl
dDxXZWJBbmltYXRpb24qPj4gaW5zdGFuY2VzOworICAgIHJldHVybiBpbnN0YW5jZXM7Cit9CisK
K0xvY2smIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKQoreworICAgIHN0YXRpYyBMYXp5
TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGlu
aXRpYWxpemVNdXRleDsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplTXV0ZXgsIFtdIHsK
KyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CisgICAgfSk7CisgICAgcmV0dXJuIG11dGV4Lmdl
dCgpOworfQorCiBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0KQogewogICAgIGF1dG8gcmVzdWx0
ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQpKTsKICAgICByZXN1bHQtPnNl
dEVmZmVjdChlZmZlY3QpOwogICAgIHJlc3VsdC0+c2V0VGltZWxpbmUoJmRvY3VtZW50LnRpbWVs
aW5lKCkpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmlt
YXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTY3LDYg
Kzg4LDkgQEAgUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmUKICAgICByZXN1bHQtPnNldEVmZmVjdChl
ZmZlY3QpOwogICAgIGlmICh0aW1lbGluZSkKICAgICAgICAgcmVzdWx0LT5zZXRUaW1lbGluZSh0
aW1lbGluZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFu
aW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNzcs
NiArMTAxLDkgQEAgV2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24oRG9jdW1lbnQmIGRvY3VtZW50
KQogewogICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKKworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICBp
bnN0YW5jZXMobG9jaykuYWRkKHRoaXMpOwogfQogCiBXZWJBbmltYXRpb246On5XZWJBbmltYXRp
b24oKQpAQCAtODUsNiArMTEyLDEwIEBAIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigpCiAK
ICAgICBpZiAobV90aW1lbGluZSkKICAgICAgICAgbV90aW1lbGluZS0+Zm9yZ2V0QW5pbWF0aW9u
KHRoaXMpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIEFT
U0VSVChpbnN0YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOworICAgIGluc3RhbmNlcyhsb2Nr
KS5yZW1vdmUodGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpjb250ZXh0RGVzdHJveWVk
KCkKQEAgLTExNiw2ICsxNDcsOCBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6dW5zdXNwZW5kRWZmZWN0
SW52YWxpZGF0aW9uKCkKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUaW1pbmdEaWRDaGFuZ2Uo
KQogewogICAgIHRpbWluZ0RpZENoYW5nZShEaWRTZWVrOjpObywgU3luY2hyb25vdXNseU5vdGlm
eTo6WWVzKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5p
bWF0aW9uRWZmZWN0VGltaW5nKCp0aGlzKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnNldEVm
ZmVjdChSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVjdCkKQEAgLTE5MCw3ICsyMjMs
NyBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJuYWwoUmVmUHRyPEFuaW1hdGlv
bkVmZmVjdD4mJiBuZXdFZmZlY3QsIGJvb2wgZAogICAgICAgICAgICAgbV90aW1lbGluZS0+YW5p
bWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOwogICAgIH0KIAotICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KCp0
aGlzKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVm
ZmVjdCgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRUaW1lbGluZShSZWZQdHI8
QW5pbWF0aW9uVGltZWxpbmU+JiYgdGltZWxpbmUpCkBAIC0yNDksMTQgKzI4MiwxNSBAQCB2b2lk
IFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmVJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9uVGltZWxp
bmU+JiYgdGltZWxpbmUpCiAKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZlY3RUYXJnZXREaWRDaGFu
Z2UoRWxlbWVudCogcHJldmlvdXNUYXJnZXQsIEVsZW1lbnQqIG5ld1RhcmdldCkKIHsKLSAgICBp
ZiAoIW1fdGltZWxpbmUpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV90aW1lbGluZSkgewor
ICAgICAgICBpZiAocHJldmlvdXNUYXJnZXQpCisgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmlt
YXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMsICpwcmV2aW91c1RhcmdldCk7CiAKLSAg
ICBpZiAocHJldmlvdXNUYXJnZXQpCi0gICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc1Jl
bW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKKyAgICAgICAgaWYgKG5l
d1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9FbGVt
ZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKKyAgICB9CiAKLSAgICBpZiAobmV3VGFyZ2V0KQotICAg
ICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1Rh
cmdldCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RUYXJnZXQoKnRoaXMpOwogfQogCiBPcHRpb25hbDxkb3VibGU+IFdlYkFuaW1hdGlv
bjo6c3RhcnRUaW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24u
aAppbmRleCBkYTRkOGVjM2JjMmU1NzBiNDhhNTFkYmMxNGEzNDRlNmM0OWJhMDcwLi5jOTk2MTNi
MjY2MWQ3NjVmMGVlM2I4NmQ2MTRmOWNkMmI3ZGMyM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvblV0aWxp
dGllcy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hcmthYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5o
PgpAQCAtNTQsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJBbmltYXRpb24+
IGNyZWF0ZShEb2N1bWVudCYsIEFuaW1hdGlvbkVmZmVjdCosIEFuaW1hdGlvblRpbWVsaW5lKik7
CiAgICAgfldlYkFuaW1hdGlvbigpOwogCisgICAgc3RhdGljIEhhc2hTZXQ8V2ViQW5pbWF0aW9u
Kj4mIGluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgc3RhdGljIExvY2smIGluc3Rh
bmNlc011dGV4KCk7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNEZWNsYXJhdGl2ZUFuaW1hdGlvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ1NTQW5pbWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NUcmFuc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZDBjNDMwZTJiYjg4
MGE2ZTM1ODNhOTk4ZDZkY2ZjMTQzYmQ2ZWJkZS4uM2RjN2I0OTRkNjY1NmE5MWM3ZGQ5YzY4ZTFj
OWVhZjc4OTY2NmQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTcyMCw2ICs3MjAsOSBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudAogICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCiAgICAgICAgIGNh
bnZhc0FnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAKKyAgICBpZiAoYXV0byogYW5pbWF0
aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOwor
CiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPmRpZENvbW1pdExvYWQo
ZnJhbWUuZG9jdW1lbnQoKSk7CiAKQEAgLTExMzAsMTUgKzExMzMsMzcgQEAgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJgogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbEFwcGx5S2V5ZnJhbWVFZmZl
Y3QodGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24p
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRp
b24mIGFuaW1hdGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKLSAgICAgICAg
YW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOwor
ICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxl
ZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRT
ZXRXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBlbHNlIGlmIChhdXRvKiBhbmlt
YXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkU2V0V2ViQW5pbWF0aW9uRWZm
ZWN0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGlu
c3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChh
dXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRp
b24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdl
bnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQorCit2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFu
aW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRp
b25BZ2VudC0+ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9CiAKIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRp
b24pCiB7Ci0gICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgaWYgKGF1dG8qIGFuaW1h
dGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9u
KGFuaW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKICAgICAgICAg
YW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaAppbmRleCBlNzgxODM2NDBhMjk5YWU0MTA3Mjg1ZWY0YzI4YWM4MWQ5NDBhMWQwLi5iMjQ2
ZWFhNTU5YTc1MjY1Yzg5MGRmYTQ3ZDAxZDMxMWMxODZhNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0zMDUsNyAr
MzA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5
ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RUaW1p
bmcpOwotICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmlt
YXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5p
bWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGlt
aW5nKFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVX
ZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lX
ZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3Rh
dGVDaGFuZ2VkKFBhZ2UmKTsKQEAgLTUwNSw3ICs1MDgsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCBFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWlu
Zyk7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkU2V0
V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9u
Jik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQg
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9u
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIHZv
aWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJB
bmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYpOwpAQCAtMTQ2NiwxMSArMTQ3MiwzMiBAQCBpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQm
IHRhcmdldCwgSwogICAgICAgICB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRpbWluZyk7CiB9CiAKLWlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZm
ZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRp
b24pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYg
KGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4
dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKLSAgICAgICAgZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsK
KyAgICAgICAgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50
cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJiBhbmltYXRp
b24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYg
KGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4
dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0
aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFu
Z2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7Cisg
ICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRp
b24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0VGFyZ2V0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30K
KworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmlt
YXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9f
RlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBp
bnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbCgqaW5zdHJ1bWVudGlu
Z0FnZW50cywgYW5pbWF0aW9uKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcApp
bmRleCAxZjlhMGQ3YzUzMmEzZjkwODU2YzE4NGExZmZjM2IxY2YzNWVmYzg3Li5kN2EyZjcxOTU4
ZDk0M2NjY2FjNDM0ZWFjOTNlMzNkYWUyN2NjNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHZvaWQg
SW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1fcGFnZURPTURlYnVnZ2VyQWdlbnQg
PSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgPSBudWxscHRyOwogICAgIG1f
cGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKKyAgICBtX2VuYWJs
ZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiAgICAgbV90cmFja2luZ0luc3Bl
Y3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggZjZmZWE3ZGEyMTM2MGRkMDhjYzNk
OTY2YjE0ZTJhYWM0NjU0NDkxNS4uZjU5YzNkYmRjYWY3OGNmOWM2ZDhkYmI0MzJkY2NmMjJmMTVk
NTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50
cy5oCkBAIC0xNTYsNiArMTU2LDkgQEAgcHVibGljOgogICAgIEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KiBwZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBt
X3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQogICAgIHZvaWQgc2V0UGVyc2lz
dGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBhZ2Vu
dCkgeyBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAKKyAg
ICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KKyAg
ICB2b2lkIHNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCogYWdlbnQpIHsgbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2Vu
dDsgfQorCiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHRyYWNraW5nSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ7IH0KICAgICB2b2lkIHNldFRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCA9IGFnZW50OyB9CiAKQEAgLTE5MCw2ICsxOTMsNyBAQCBwcml2YXRlOgogICAgIFBh
Z2VET01EZWJ1Z2dlckFnZW50KiBtX3BhZ2VET01EZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9Owog
ICAgIEluc3BlY3RvckNhbnZhc0FnZW50KiBtX2luc3BlY3RvckNhbnZhc0FnZW50IHsgbnVsbHB0
ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKKyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCog
bV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQqIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51
bGxwdHIgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKaW5kZXggZGU5YTJjNTliZGFiYzI5
MDg5NmM5NjM5Y2VhYmI0ZTJjNDczYjgyOS4uMjE0M2IzZGJlZjBiMTI4ZjBkN2YzN2RlYzBkNjUx
NmJhOWE4ZmRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKQEAgLTI5LDI5ICsyOSwxOTggQEAK
ICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3QuaCIKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3RQ
aGFzZS5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkNTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNs
dWRlICJDU1NUcmFuc2l0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJE
ZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkZpbGxNb2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMu
aCIKKyNpbmNsdWRlICJKU1dlYkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0
LmgiCisjaW5jbHVkZSAiS2V5ZnJhbWVMaXN0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBsYXliYWNrRGlyZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlRpbWluZ0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7
CiAKK3N0YXRpYyBPcHRpb25hbDxkb3VibGU+IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGNvbnN0
IFNlY29uZHMmIHNlY29uZHMpCit7CisgICAgaWYgKHNlY29uZHMgPT0gU2Vjb25kczo6aW5maW5p
dHkoKSB8fCBzZWNvbmRzID09IFNlY29uZHM6Om5hbigpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIHJldHVybiBzZWNvbmRzLm1pbGxpc2Vjb25kcygpOworfQorCitzdGF0aWMg
T3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlv
bj4gcHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKFBsYXliYWNrRGlyZWN0aW9uIHBs
YXliYWNrRGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAocGxheWJhY2tEaXJlY3Rpb24pIHsKKyAg
ICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWw6CisgICAgICAgIHJldHVybiBJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWw7CisgICAg
Y2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZToKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246OlJldmVyc2U7CisgICAg
Y2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOgorICAgICAgICByZXR1cm4gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOwor
ICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZVJldmVyc2U6CisgICAgICAgIHJl
dHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpB
bHRlcm5hdGVSZXZlcnNlOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3N0YXRpYyBPcHRpb25hbDxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlPiBwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUoRmls
bE1vZGUgZmlsbE1vZGUpCit7CisgICAgc3dpdGNoIChmaWxsTW9kZSkgeworICAgIGNhc2UgRmls
bE1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRp
b246OkZpbGxNb2RlOjpOb25lOworICAgIGNhc2UgRmlsbE1vZGU6OkZvcndhcmRzOgorICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Rm9yd2Fy
ZHM7CisgICAgY2FzZSBGaWxsTW9kZTo6QmFja3dhcmRzOgorICAgICAgICByZXR1cm4gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6QmFja3dhcmRzOworICAgIGNhc2Ug
RmlsbE1vZGU6OkJvdGg6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmlt
YXRpb246OkZpbGxNb2RlOjpCb3RoOworICAgIGNhc2UgRmlsbE1vZGU6OkF1dG86CisgICAgICAg
IHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpBdXRvOwor
ICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Cit9CisKK3N0YXRpYyBSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpB
bmltYXRpb246OktleWZyYW1lPj4gYnVpbGRPYmplY3RGb3JLZXlmcmFtZXMoS2V5ZnJhbWVFZmZl
Y3QmIGtleWZyYW1lRWZmZWN0KQoreworICAgIGF1dG8ga2V5ZnJhbWVzUGF5bG9hZCA9IEpTT046
OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZT46OmNyZWF0
ZSgpOworCisgICAgY29uc3QgYXV0byYgYmxlbmRpbmdLZXlmcmFtZXMgPSBrZXlmcmFtZUVmZmVj
dC5ibGVuZGluZ0tleWZyYW1lcygpOworICAgIGNvbnN0IGF1dG8mIHBhcnNlZEtleWZyYW1lcyA9
IGtleWZyYW1lRWZmZWN0LnBhcnNlZEtleWZyYW1lcygpOworCisgICAgaWYgKGlzPERlY2xhcmF0
aXZlQW5pbWF0aW9uPihrZXlmcmFtZUVmZmVjdC5hbmltYXRpb24oKSkpIHsKKyAgICAgICAgQVNT
RVJUKGtleWZyYW1lRWZmZWN0LnRhcmdldCgpKTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBr
ZXlmcmFtZUVmZmVjdC50YXJnZXQoKS0+cmVuZGVyZXIoKTsKKworICAgICAgICAvLyBTeW50aGVz
aXplIENTUyBzdHlsZSBkZWNsYXJhdGlvbnMgZm9yIGVhY2gga2V5ZnJhbWUgc28gdGhlIGZyb250
ZW5kIGNhbiBkaXNwbGF5IHRoZW0uCisgICAgICAgIENvbXB1dGVkU3R5bGVFeHRyYWN0b3IgY29t
cHV0ZWRTdHlsZUV4dHJhY3RvcihrZXlmcmFtZUVmZmVjdC50YXJnZXQoKSk7CisKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7ICsraSkgewor
ICAgICAgICAgICAgYXV0byYgYmxlbmRpbmdLZXlmcmFtZSA9IGJsZW5kaW5nS2V5ZnJhbWVzW2ld
OworCisgICAgICAgICAgICBBU1NFUlQoYmxlbmRpbmdLZXlmcmFtZS5zdHlsZSgpKTsKKyAgICAg
ICAgICAgIGF1dG8mIHN0eWxlID0gKmJsZW5kaW5nS2V5ZnJhbWUuc3R5bGUoKTsKKworICAgICAg
ICAgICAgYXV0byBrZXlmcmFtZVBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRp
b246OktleWZyYW1lOjpjcmVhdGUoKQorICAgICAgICAgICAgICAgIC5zZXRPZmZzZXQoYmxlbmRp
bmdLZXlmcmFtZS5rZXkoKSkKKyAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAg
ICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOworICAgICAgICAgICAg
aWYgKCFwYXJzZWRLZXlmcmFtZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHRpbWluZ0Z1
bmN0aW9uID0gcGFyc2VkS2V5ZnJhbWVzW2ldLnRpbWluZ0Z1bmN0aW9uOworICAgICAgICAgICAg
aWYgKCF0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IGJs
ZW5kaW5nS2V5ZnJhbWUudGltaW5nRnVuY3Rpb24oKTsKKyAgICAgICAgICAgIGlmICghdGltaW5n
RnVuY3Rpb24pCisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBkb3duY2FzdDxEZWNs
YXJhdGl2ZUFuaW1hdGlvbj4oKmtleWZyYW1lRWZmZWN0LmFuaW1hdGlvbigpKS5iYWNraW5nQW5p
bWF0aW9uKCkudGltaW5nRnVuY3Rpb24oKTsKKyAgICAgICAgICAgIGlmICh0aW1pbmdGdW5jdGlv
bikKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyh0aW1pbmdGdW5j
dGlvbi0+Y3NzVGV4dCgpKTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHlsZVBheWxv
YWRCdWlsZGVyOworICAgICAgICAgICAgYXV0byYgY3NzUHJvcGVydHlJZHMgPSBibGVuZGluZ0tl
eWZyYW1lLnByb3BlcnRpZXMoKTsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IGNzc1Byb3Bl
cnR5SWRzLnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0eUlkIDogY3Nz
UHJvcGVydHlJZHMpIHsKKyAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgICAg
IGlmIChjc3NQcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q3VzdG9tKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBw
ZW5kKGdldFByb3BlcnR5TmFtZVN0cmluZyhjc3NQcm9wZXJ0eUlkKSk7CisgICAgICAgICAgICAg
ICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoIjogIik7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8gdmFsdWUgPSBjb21wdXRlZFN0eWxlRXh0cmFjdG9yLnZhbHVlRm9yUHJvcGVydHlJblN0
eWxlKHN0eWxlLCBjc3NQcm9wZXJ0eUlkLCByZW5kZXJlcikpCisgICAgICAgICAgICAgICAgICAg
IHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKHZhbHVlLT5jc3NUZXh0KCkpOworICAgICAgICAg
ICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCc7Jyk7CisgICAgICAgICAgICAgICAg
aWYgKGNvdW50ID4gMCkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5h
cHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3R5bGVQYXlsb2Fk
QnVpbGRlci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRT
dHlsZShzdHlsZVBheWxvYWRCdWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICBrZXlm
cmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAgICAg
IH0KKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhcnNlZEtleWZyYW1l
IDogcGFyc2VkS2V5ZnJhbWVzKSB7CisgICAgICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9hZCA9
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisgICAg
ICAgICAgICAgICAgLnNldE9mZnNldChwYXJzZWRLZXlmcmFtZS5jb21wdXRlZE9mZnNldCkKKyAg
ICAgICAgICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZy
YW1lLmVhc2luZy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5z
ZXRFYXNpbmcocGFyc2VkS2V5ZnJhbWUuZWFzaW5nKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNv
bnN0IGF1dG8mIHRpbWluZ0Z1bmN0aW9uID0gcGFyc2VkS2V5ZnJhbWUudGltaW5nRnVuY3Rpb24p
CisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRFYXNpbmcodGltaW5nRnVuY3Rp
b24tPmNzc1RleHQoKSk7CisKKyAgICAgICAgICAgIGlmICghcGFyc2VkS2V5ZnJhbWUuc3R5bGUt
PmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldFN0eWxlKHBh
cnNlZEtleWZyYW1lLnN0eWxlLT5hc1RleHQoKSk7CisKKyAgICAgICAgICAgIGtleWZyYW1lc1Bh
eWxvYWQtPmFkZEl0ZW0oV1RGTW92ZShrZXlmcmFtZVBheWxvYWQpKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiBrZXlmcmFtZXNQYXlsb2FkOworfQorCitzdGF0aWMgUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RWZmZWN0PiBidWlsZE9iamVjdEZvckVmZmVjdChB
bmltYXRpb25FZmZlY3QmIGVmZmVjdCkKK3sKKyAgICBhdXRvIGVmZmVjdFBheWxvYWQgPSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdDo6Y3JlYXRlKCkKKyAgICAgICAgLnJl
bGVhc2UoKTsKKworICAgIGlmIChhdXRvIHN0YXJ0RGVsYXkgPSBwcm90b2NvbFZhbHVlRm9yU2Vj
b25kcyhlZmZlY3QuZGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldFN0YXJ0RGVs
YXkoc3RhcnREZWxheS52YWx1ZSgpKTsKKworICAgIGlmIChhdXRvIGVuZERlbGF5ID0gcHJvdG9j
b2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LmVuZERlbGF5KCkpKQorICAgICAgICBlZmZlY3RQYXls
b2FkLT5zZXRFbmREZWxheShlbmREZWxheS52YWx1ZSgpKTsKKworICAgIGVmZmVjdFBheWxvYWQt
PnNldEl0ZXJhdGlvbkNvdW50KGVmZmVjdC5pdGVyYXRpb25zKCkpOworICAgIGVmZmVjdFBheWxv
YWQtPnNldEl0ZXJhdGlvblN0YXJ0KGVmZmVjdC5pdGVyYXRpb25TdGFydCgpKTsKKworICAgIGlm
IChhdXRvIGl0ZXJhdGlvbkR1cmF0aW9uID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0
Lml0ZXJhdGlvbkR1cmF0aW9uKCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRp
b25EdXJhdGlvbihpdGVyYXRpb25EdXJhdGlvbi52YWx1ZSgpKTsKKworICAgIGlmIChhdXRvKiB0
aW1pbmdGdW5jdGlvbiA9IGVmZmVjdC50aW1pbmdGdW5jdGlvbigpKQorICAgICAgICBlZmZlY3RQ
YXlsb2FkLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKwor
ICAgIGlmIChhdXRvIHBsYXliYWNrRGlyZWN0aW9uID0gcHJvdG9jb2xWYWx1ZUZvclBsYXliYWNr
RGlyZWN0aW9uKGVmZmVjdC5kaXJlY3Rpb24oKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNl
dFBsYXliYWNrRGlyZWN0aW9uKHBsYXliYWNrRGlyZWN0aW9uLnZhbHVlKCkpOworCisgICAgaWYg
KGF1dG8gZmlsbE1vZGUgPSBwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUoZWZmZWN0LmZpbGwoKSkp
CisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKGZpbGxNb2RlLnZhbHVlKCkpOwor
CisgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKQorICAgICAgICBlZmZlY3RQYXls
b2FkLT5zZXRLZXlmcmFtZXMoYnVpbGRPYmplY3RGb3JLZXlmcmFtZXMoZG93bmNhc3Q8S2V5ZnJh
bWVFZmZlY3Q+KGVmZmVjdCkpKTsKKworICAgIHJldHVybiBlZmZlY3RQYXlsb2FkOworfQorCiBJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoUGFnZUFnZW50
Q29udGV4dCYgY29udGV4dCkKICAgICA6IEluc3BlY3RvckFnZW50QmFzZSgiQW5pbWF0aW9uIl9z
LCBjb250ZXh0KQogICAgICwgbV9mcm9udGVuZERpc3BhdGNoZXIobWFrZVVuaXF1ZTxJbnNwZWN0
b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0Y2hlcj4oY29udGV4dC5mcm9udGVuZFJvdXRlcikp
CiAgICAgLCBtX2JhY2tlbmREaXNwYXRjaGVyKEluc3BlY3Rvcjo6QW5pbWF0aW9uQmFja2VuZERp
c3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKSkKKyAgICAs
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNvbnRleHQuaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQor
ICAgICwgbV9pbnNwZWN0ZWRQYWdlKGNvbnRleHQuaW5zcGVjdGVkUGFnZSkKKyAgICAsIG1fYW5p
bWF0aW9uRGVzdHJveWVkVGltZXIoKnRoaXMsICZJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5p
bWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNjcsMTEgKzIzNiwxMDMgQEAg
dm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBFcnJvclN0cmluZyBpZ25vcmVkOwogICAgIHN0
b3BUcmFja2luZyhpZ25vcmVkKTsKKyAgICBkaXNhYmxlKGlnbm9yZWQpOwogCiAgICAgQVNTRVJU
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQo
KSA9PSB0aGlzKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0UGVyc2lzdGVudEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIpOwogfQogCit2b2lkIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQoreworICAgIGlmIChtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhp
cykgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZG9tYWluIGFscmVhZHkgZW5h
YmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQodGhpcyk7CisKKyAgICBjb25z
dCBhdXRvIGV4aXN0c0luQ3VycmVudFBhZ2UgPSBbJl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKKyAgICAgICAgaWYgKCFpczxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjg0NzU+IFdlYiBJbnNwZWN0b3I6
IENvcnJlY3RseSBkaXNwbGF5IGlmcmFtZSdzIFdlYlNvY2tldHMKKyAgICAgICAgYXV0byogZG9j
dW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAg
ICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpID09ICZtX2luc3BlY3RlZFBhZ2U7CisgICAgfTsK
KworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdlYkFuaW1hdGlvbjo6aW5zdGFuY2Vz
TXV0ZXgoKSk7CisgICAgICAgIGZvciAoYXV0byogYW5pbWF0aW9uIDogV2ViQW5pbWF0aW9uOjpp
bnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAgIGlmIChleGlzdHNJbkN1cnJlbnRQYWdlKGFu
aW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgICAgICAgICBiaW5k
QW5pbWF0aW9uKCphbmltYXRpb24sIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9p
ZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyYpCit7CisgICAg
bV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChu
dWxscHRyKTsKKworICAgIHJlc2V0KCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OnJlcXVlc3RFZmZlY3RUYXJnZXQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkKK3sKKyAgICBhdXRvKiBhbmltYXRpb24g
PSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJpbmcsIGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFu
aW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZG9tQWdlbnQgPSBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKTsKKyAgICBpZiAoIWRvbUFnZW50KSB7
CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRPTSBkb21haW4gbXVzdCBiZSBlbmFibGVkIl9zOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogZWZmZWN0ID0gYW5pbWF0aW9uLT5l
ZmZlY3QoKTsKKyAgICBpZiAoIWlzPEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKSB7CisgICAgICAg
IGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQgZG9lcyBub3Qg
aGF2ZSBhbiBlZmZlY3QiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBr
ZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PigqZWZmZWN0KTsKKworICAg
IGF1dG8qIHRhcmdldCA9IGtleWZyYW1lRWZmZWN0LnRhcmdldCgpOworICAgIGlmICghdGFyZ2V0
KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9u
SWQgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgICpub2RlSWQgPSBkb21BZ2VudC0+cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmlu
ZywgdGFyZ2V0KTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzb2x2ZUFu
aW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9u
SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpCit7CisgICAgYXV0byogYW5pbWF0aW9u
ID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25JZCk7CisgICAgaWYgKCFh
bmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHN0YXRlID0gYW5pbWF0aW9u
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV4ZWNTdGF0ZSgpOworICAgIGF1dG8gaW5qZWN0
ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbmplY3RlZFNjcmlwdEZvcihzdGF0
ZSk7CisgICAgQVNTRVJUKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpOworCisgICAgSlND
OjpKU1ZhbHVlIHZhbHVlOworICAgIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhz
dGF0ZSk7CisKKyAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZGVwcmVjYXRlZEdsb2JhbE9i
amVjdEZvclByb3RvdHlwZShzdGF0ZSk7CisgICAgICAgIHZhbHVlID0gdG9KUyhzdGF0ZSwgZ2xv
YmFsT2JqZWN0LCBhbmltYXRpb24pOworICAgIH0KKworICAgIGlmICghdmFsdWUpIHsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkludGVybmFs
IGVycm9yOiB1bmtub3duIEFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQiX3M7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgb2JqZWN0R3JvdXBOYW1lID0gb2JqZWN0
R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiBTdHJpbmcoKTsKKyAgICByZXN1bHQgPSBpbmplY3RlZFNj
cmlwdC53cmFwT2JqZWN0KHZhbHVlLCBvYmplY3RHcm91cE5hbWUpOworfQorCiB2b2lkIEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJiBlcnJvclN0cmlu
ZykKIHsKICAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CkBAIC0xNzAsMTYgKzQzMSwxNTEgQEAgdm9pZCBJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYgdGFy
Z2V0LCBLZXlmcmFtZUUKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdVcGRhdGUo
bV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxhcHNlZFRpbWUoKS5zZWNvbmRz
KCksIFdURk1vdmUoZXZlbnQpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9p
ZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFu
aW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4o
YW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oZG93
bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpOworCisgICAgZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFuaW1hdGlvbik7CisgICAgZGlkQ2hhbmdlV2ViQW5p
bWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24m
IGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkgaWYg
QW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1hdGlv
bklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKGFuaW1hdGlvbklkLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGVmZmVjdCA9IGFuaW1h
dGlvbi5lZmZlY3QoKSkKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmVmZmVjdENoYW5n
ZWQoYW5pbWF0aW9uSWQsIGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KCplZmZlY3QpKTsKKyAgICBlbHNl
CisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklk
LCBudWxscHRyKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAg
IC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRpb24gaXMgdHJhY2tp
bmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBmaW5kQW5pbWF0aW9u
SWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dGFyZ2V0Q2hhbmdlZChhbmltYXRp
b25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENyZWF0ZVdlYkFu
aW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoIWZpbmRBbmltYXRp
b25JZChhbmltYXRpb24pLmlzRW1wdHkoKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJpbmRBbmltYXRpb24oYW5pbWF0aW9u
LCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lX
ZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgaWYgKGlzPERlY2xh
cmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKQogICAgICAgICBzdG9wVHJhY2tpbmdEZWNsYXJh
dGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSk7
CisKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlz
IHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFu
aW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKCFhbmltYXRpb25JZC5pc0VtcHR5KCkpCisg
ICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBpZiAo
ZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAgICAgICByZXNldCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gYW5pbWF0aW9uSWRzVG9SZW1vdmU7CisgICAg
Zm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGFuaW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFwKSB7
CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gYW5pbWF0aW9uLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChpczxEb2N1bWVudD4o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KS5mcmFtZSgpID09ICZmcmFtZSkKKyAgICAgICAgICAgICAgICBhbmltYXRp
b25JZHNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0aW9uSWQpOworICAgICAgICB9CisgICAgfQorICAg
IGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uSWQgOiBhbmltYXRpb25JZHNUb1JlbW92ZSkKKyAg
ICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30KKworU3RyaW5nIEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24p
Cit7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGV4aXN0aW5nQW5pbWF0aW9uXSA6IG1f
YW5pbWF0aW9uSWRNYXApIHsKKyAgICAgICAgaWYgKGV4aXN0aW5nQW5pbWF0aW9uID09ICZhbmlt
YXRpb24pCisgICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uSWQ7CisgICAgfQorICAgIHJldHVy
biBudWxsU3RyaW5nKCk7Cit9CisKK1dlYkFuaW1hdGlvbiogSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OmFzc2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgYW5pbWF0aW9uSWQpCit7CisgICAgYXV0byogYW5pbWF0aW9uID0gbV9hbmltYXRpb25JZE1h
cC5nZXQoYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICBlcnJvclN0
cmluZyA9ICJNaXNzaW5nIGFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5pbWF0aW9uSWQiX3M7CisgICAg
cmV0dXJuIGFuaW1hdGlvbjsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6Ymlu
ZEFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbiwgYm9vbCBjYXB0dXJlQmFja3RyYWNl
KQoreworICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBtYWtlU3RyaW5nKCJhbmltYXRpb246IiArIElk
ZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKTsKKyAgICBtX2FuaW1hdGlvbklk
TWFwLnNldChhbmltYXRpb25JZCwgJmFuaW1hdGlvbik7CisKKyAgICBhdXRvIGFuaW1hdGlvblBh
eWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkFuaW1hdGlvbjo6Y3JlYXRl
KCkKKyAgICAgICAgLnNldEFuaW1hdGlvbklkKGFuaW1hdGlvbklkKQorICAgICAgICAucmVsZWFz
ZSgpOworCisgICAgaWYgKGlzPENTU0FuaW1hdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5p
bWF0aW9uUGF5bG9hZC0+c2V0Q3NzQW5pbWF0aW9uTmFtZShkb3duY2FzdDxDU1NBbmltYXRpb24+
KGFuaW1hdGlvbikuYW5pbWF0aW9uTmFtZSgpKTsKKyAgICBlbHNlIGlmIChpczxDU1NUcmFuc2l0
aW9uPihhbmltYXRpb24pKQorICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRDc3NUcmFuc2l0
aW9uUHJvcGVydHkoZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKS50cmFuc2l0aW9u
UHJvcGVydHkoKSk7CisKKyAgICBpZiAoYXV0byogZWZmZWN0ID0gYW5pbWF0aW9uLmVmZmVjdCgp
KQorICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRFZmZlY3QoYnVpbGRPYmplY3RGb3JFZmZl
Y3QoKmVmZmVjdCkpOworCisgICAgaWYgKGNhcHR1cmVCYWNrdHJhY2UpIHsKKyAgICAgICAgYXV0
byBzdGFja1RyYWNlID0gSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNFeGVjU3Rh
dGU6OmN1cnJlbnRTdGF0ZSgpLCBJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0
YWNrU2l6ZVRvQ2FwdHVyZSk7CisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldEJhY2t0cmFj
ZShzdGFja1RyYWNlLT5idWlsZEluc3BlY3RvckFycmF5KCkpOworICAgIH0KKworICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25DcmVhdGVkKFdURk1vdmUoYW5pbWF0aW9uUGF5bG9h
ZCkpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp1bmJpbmRBbmltYXRpb24o
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCkKK3sKKyAgICBtX2FuaW1hdGlvbklkTWFwLnJlbW92
ZShhbmltYXRpb25JZCk7CisKKyAgICAvLyBUaGlzIGNhbiBiZSBjYWxsZWQgaW4gcmVzcG9uc2Ug
dG8gR0MuIER1ZSB0byB0aGUgc2luZ2xlLXByb2Nlc3MgbW9kZWwgdXNlZCBpbiBXZWJLaXQxLCB0
aGUKKyAgICAvLyBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQgZnJvbSBhIHRpbWVyIHRvIHByZXZl
bnQgdGhlIGZyb250ZW5kIGZyb20gbWFraW5nIEpTIGFsbG9jYXRpb25zCisgICAgLy8gd2hpbGUg
dGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KKyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuYXBwZW5k
KGFuaW1hdGlvbklkKTsKKworICAgIGlmICghbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5pc0Fj
dGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLnN0YXJ0T25lU2hvdCgw
X3MpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjphbmltYXRpb25EZXN0cm95
ZWRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoIW1fcmVtb3ZlZEFuaW1hdGlvbklkcy5zaXplKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgaWRlbnRpZmllciA6IG1fcmVtb3Zl
ZEFuaW1hdGlvbklkcykKKyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmFuaW1hdGlvbkRl
c3Ryb3llZChpZGVudGlmaWVyKTsKKworICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5jbGVhcigp
OworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNldCgpCit7CisgICAgbV9h
bmltYXRpb25JZE1hcC5jbGVhcigpOworCisgICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmNsZWFy
KCk7CisKKyAgICBpZiAobV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAg
ICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLnN0b3AoKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6c3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFy
YXRpdmVBbmltYXRpb24mIGFuaW1hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaAppbmRleCA3YTI0YmJj
YmIxYjMzMWQxOTBkYTYwYzAwZDIxYmQ5MzU0OGZhYjAwLi5kMjY2ZDdlZjIxZTQyZDg0MWRmNmMw
ZDM4MDczZGRlYzI5Y2FkOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCkBAIC0yNywxNiArMjcsMjEg
QEAKIAogI2luY2x1ZGUgIkNvbXB1dGVkRWZmZWN0VGltaW5nLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yV2ViQWdlbnRCYXNlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBbmltYXRpb25FZmZlY3Q7CiBj
bGFzcyBEZWNsYXJhdGl2ZUFuaW1hdGlvbjsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsK
K2NsYXNzIEZyYW1lOwogY2xhc3MgS2V5ZnJhbWVFZmZlY3Q7CitjbGFzcyBQYWdlOwogY2xhc3Mg
V2ViQW5pbWF0aW9uOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKQEAgLTUzLDIwICs1
OCw0MiBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQW5pbWF0aW9u
QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHJlcXVlc3RFZmZlY3RUYXJnZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1h
dGlvbklkLCBpbnQqIG5vZGVJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXNvbHZlQW5pbWF0aW9u
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgY29uc3QgU3RyaW5nKiBv
YmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9i
amVjdD4mKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBv
dmVycmlkZTsKICAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwog
CiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCB3aWxsQXBwbHlLZXlm
cmFtZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWlu
Zyk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7
CisgICAgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAg
dm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJik7Cisg
ICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJik7
CisgICAgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAgICAgdm9p
ZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGZyYW1l
TmF2aWdhdGVkKEZyYW1lJik7CiAKIHByaXZhdGU6CisgICAgU3RyaW5nIGZpbmRBbmltYXRpb25J
ZChXZWJBbmltYXRpb24mKTsKKyAgICBXZWJBbmltYXRpb24qIGFzc2VydEFuaW1hdGlvbihFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOworICAgIHZvaWQgYmluZEFuaW1h
dGlvbihXZWJBbmltYXRpb24mLCBib29sIGNhcHR1cmVCYWNrdHJhY2UpOworICAgIHZvaWQgdW5i
aW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOworICAgIHZvaWQgYW5pbWF0
aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpOworICAgIHZvaWQgcmVzZXQoKTsKKwogICAgIHZvaWQg
c3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mKTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0
Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6QW5pbWF0
aW9uQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CiAKKyAgICBJbnNwZWN0
b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CisgICAg
UGFnZSYgbV9pbnNwZWN0ZWRQYWdlOworCisgICAgSGFzaE1hcDxTdHJpbmcsIFdlYkFuaW1hdGlv
bio+IG1fYW5pbWF0aW9uSWRNYXA7CisgICAgVmVjdG9yPFN0cmluZz4gbV9yZW1vdmVkQW5pbWF0
aW9uSWRzOworICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXI7CisKICAgICBzdHJ1
Y3QgVHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0aW9uRGF0YSB7CiAgICAgICAgIFN0cmluZyB0cmFj
a2luZ0FuaW1hdGlvbklkOwogICAgICAgICBDb21wdXRlZEVmZmVjdFRpbWluZyBsYXN0Q29tcHV0
ZWRUaW1pbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGFlY2M3OWJjMGNhNTZmYjY1ZmUwMzMwZjA4ZTRlZTY4
OGJmODFlODkuLjBmNDZhMzAzM2FlZjQwMDdmNmViODM3YTYxMDVmMDVhMGM1OTA2N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC01NjYsNyArNTY2LDcgQEAgaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9k
ZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1lbnQKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
bm9kZVRvUHVzaCk7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJp
bmcsIG5vZGVUb1B1c2gpOwogfQogCiBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvcklk
KGludCBpZCkKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVy
eVNlbGVjdG9yKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29ucwogICAg
IH0KIAogICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcXVlcnlSZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpCi0gICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVsZW1l
bnQpOworICAgICAgICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0
cmluZywgZWxlbWVudCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0
b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcm
IHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mIHJlc3VsdCkKQEAgLTYzOSwx
MyArNjM5LDI0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjCiB9CiAKIGludCBJbnNwZWN0b3JE
T01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKiBub2RlVG9QdXNoKQoreworICAg
IEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
aWdub3JlZCwgbm9kZVRvUHVzaCk7Cit9CisKK2ludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyBlcnJvclN0cmluZywgTm9kZSogbm9kZVRvUHVz
aCkKIHsKICAgICBBU1NFUlQobm9kZVRvUHVzaCk7ICAvLyBJbnZhbGlkIGlucHV0CiAKLSAgICBp
ZiAoIW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3VtZW50KSB7CisgICAgICAgIGVycm9yU3Ry
aW5nID0gIk1pc3NpbmcgZG9jdW1lbnQiX3M7CiAgICAgICAgIHJldHVybiAwOwotICAgIGlmICgh
bV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1lbnQpKQorICAgIH0KKworICAg
IGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1lbnQpKSB7CisgICAg
ICAgIGVycm9yU3RyaW5nID0gIkRvY3VtZW50IG11c3QgaGF2ZSBiZWVuIHJlcXVlc3RlZCJfczsK
ICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgLy8gUmV0dXJuIGlkIGluIGNhc2UgdGhl
IG5vZGUgaXMga25vd24uCiAgICAgaW50IHJlc3VsdCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5n
ZXQobm9kZVRvUHVzaCk7CkBAIC03OTAsNyArODAxLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2Vu
dDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25z
dAogICAgIGlmICghbV9kb21FZGl0b3ItPnJlbW92ZUNoaWxkKCpwYXJlbnQsICpvbGROb2RlLCBl
cnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgICpuZXdJZCA9IHB1c2hOb2RlUGF0
aFRvRnJvbnRlbmQobmV3RWxlbWVudC5wdHIoKSk7CisgICAgKm5ld0lkID0gcHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3RWxlbWVudC5wdHIoKSk7CiAgICAgaWYgKG1fY2hp
bGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkKICAgICAgICAgcHVzaENoaWxkTm9kZXNU
b0Zyb250ZW5kKCpuZXdJZCk7CiB9CkBAIC04MzAsNyArODQxLDcgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJ
ZCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCBuZXdJZCA9IHB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7CisgICAgaW50IG5ld0lkID0gcHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3Tm9kZSk7CiAKICAgICBib29sIGNoaWxkcmVuUmVx
dWVzdGVkID0gbV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhub2RlSWQpOwogICAgIGlmIChj
aGlsZHJlblJlcXVlc3RlZCkKQEAgLTE0MjIsNyArMTQzMyw3IEBAIHZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6Om1vdmVUbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGludCB0
YXJnZXRFCiAgICAgaWYgKCFtX2RvbUVkaXRvci0+aW5zZXJ0QmVmb3JlKCp0YXJnZXRFbGVtZW50
LCAqbm9kZSwgYW5jaG9yTm9kZSwgZXJyb3JTdHJpbmcpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAqbmV3Tm9k
ZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuZG8oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQpAQCAt
MTQ5OCwxMSArMTUwOSwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRBdHRyaWJ1dGVz
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgUmVmUAogICAgIHJlc3VsdCA9
IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhlbGVtZW50KTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG9i
amVjdElkLCBpbnQqIG5vZGVJZCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2Rl
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBu
b2RlSWQpCiB7CiAgICAgTm9kZSogbm9kZSA9IG5vZGVGb3JPYmplY3RJZChvYmplY3RJZCk7CiAg
ICAgaWYgKG5vZGUpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5v
ZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmlu
Zywgbm9kZSk7CiAgICAgZWxzZQogICAgICAgICAqbm9kZUlkID0gMDsKIH0KQEAgLTI2NDYsNyAr
MjY1Nyw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yT2JqZWN0SWQoY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCkKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRo
VG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGF0aCwg
aW50KiBub2RlSWQpCiB7CiAgICAgaWYgKE5vZGUqIG5vZGUgPSBub2RlRm9yUGF0aChwYXRoKSkK
LSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAgICAg
ICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKICAg
ICBlbHNlCiAgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcgbm9kZSBmb3IgZ2l2ZW4gcGF0
aCJfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuaAppbmRleCA1MTYzOWFiZWI4NGY0ZDk1ZGVkM2Y0ZmI2NDA5YWQ4ZjYyYTI4
OTRlLi43ZGYwZTgzZWI1M2Q3NWM0MWM1NTRmMTQwMTIzNWJhMjE3MTk0MTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCkBA
IC0xODAsNiArMTgwLDggQEAgcHVibGljOgogCiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChO
b2RlKik7CiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYsIGludCBkb2N1
bWVudE5vZGVJZCwgTm9kZSopOworICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUq
KTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZywgTm9kZSopOwog
ICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsKICAgICBpbnQgYm91bmROb2RlSWQoY29u
c3QgTm9kZSopOwogCkBAIC0yMTcsNyArMjE5LDYgQEAgcHJpdmF0ZToKICAgICBOb2RlKiBhc3Nl
cnRFZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKICAgICBFbGVtZW50KiBh
c3NlcnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKIAotICAgIGlu
dCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKICAgICB2b2lkIHB1c2hDaGlsZE5vZGVz
VG9Gcm9udGVuZChpbnQgbm9kZUlkLCBpbnQgZGVwdGggPSAxKTsKIAogICAgIFJlZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiwgaW50IGRl
cHRoLCBOb2RlVG9JZE1hcCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXgg
NTlmM2ZhMzkxNWZmYjY5NmRkMWU1NDkyNGZiZmU0NWI2YmU1NGIxMy4uODM5MWJmZmQ0OTQzMDRk
ZTM1Nzc1ZmQxNzcyMzFjZWU0NWFkNmY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCkBAIC0xMjUsMTIgKzEyNSwxNSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1
cnJlZCB0cnlpbmcgdG8gcmVhZCB0aGUgXHUyMDFDJXNcdTIwMUQgdGFibGUuIl0gPQogbG9jYWxp
emVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciAlcyBvY2N1cnJlZC4iXSA9ICJBbiB1bmV4
cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiB1bmV4cGVj
dGVkIGVycm9yIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkFuZ2xlIl0gPSAiQW5nbGUiOworbG9jYWxpemVkU3RyaW5nc1si
QW5pbWF0aW9uIl0gPSAiQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiAl
ZCJdID0gIkFuaW1hdGlvbiAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUg
JWQgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgQ2FuY2VsZWQiOwogbG9jYWxpemVk
U3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVk
IEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBSZXF1ZXN0ZWQi
XSA9ICJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVzdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFu
aW1hdGlvbiBGcmFtZSBDYW5jZWxlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxlZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgRmlyZWQiXSA9ICJBbmltYXRpb24gRnJh
bWUgRmlyZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lIFJlcXVlc3RlZCJd
ID0gIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0ZWQiOworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0
aW9uIFRhcmdldCJdID0gIkFuaW1hdGlvbiBUYXJnZXQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5v
bnltb3VzIFNjcmlwdCAlZCJdID0gIkFub255bW91cyBTY3JpcHQgJWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siQW5vbnltb3VzIFNjcmlwdHMiXSA9ICJBbm9ueW1vdXMgU2NyaXB0cyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQiXSA9ICJBbm9ueW1vdXMgU3R5bGUg
U2hlZXQgJWQiOwpAQCAtMjAxLDkgKzIwNCwxMSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDUFUiXSA9
ICJDUFUiOwogbG9jYWxpemVkU3RyaW5nc1siQ1BVIFVzYWdlIl0gPSAiQ1BVIFVzYWdlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkNTUCBIYXNoIl0gPSAiQ1NQIEhhc2giOwogbG9jYWxpemVkU3RyaW5n
c1siQ1NTIEFuaW1hdGlvbiJdID0gIkNTUyBBbmltYXRpb24iOworbG9jYWxpemVkU3RyaW5nc1si
Q1NTIEFuaW1hdGlvbnMiXSA9ICJDU1MgQW5pbWF0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJD
U1MgQ2FudmFzIl0gPSAiQ1NTIENhbnZhcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQ2hhbmdl
czoiXSA9ICJDU1MgQ2hhbmdlczoiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIFRyYW5zaXRpb24i
XSA9ICJDU1MgVHJhbnNpdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgVHJhbnNpdGlvbnMi
XSA9ICJDU1MgVHJhbnNpdGlvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIGNhbnZhcyBcdTIw
MUMlc1x1MjAxRCJdID0gIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIwMUQiOwogbG9jYWxpemVkU3Ry
aW5nc1siQ2FjaGVkIl0gPSAiQ2FjaGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbGwgRnJhbWVz
IFRydW5jYXRlZCJdID0gIkNhbGwgRnJhbWVzIFRydW5jYXRlZCI7CkBAIC0yMTgsNiArMjIzLDgg
QEAgbG9jYWxpemVkU3RyaW5nc1siQ2FuY2VsZWQiXSA9ICJDYW5jZWxlZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJDYW52YXMiXSA9ICJDYW52YXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzICVk
Il0gPSAiQ2FudmFzICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZhcyAlcyJdID0gIkNhbnZh
cyAlcyI7CisvKiBCaXRtYXAgUmVuZGVyZXIgaXMgYSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0
IGFzc29jaWF0ZWQgd2l0aCBhIDxjYW52YXM+IGVsZW1lbnQgKi8KK2xvY2FsaXplZFN0cmluZ3Nb
IkNhbnZhcyBDb250ZXh0IFR5cGUgQml0bWFwIFJlbmRlcmVyIl0gPSAiQml0bWFwIFJlbmRlcmVy
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZhcyBFbGVtZW50Il0gPSAiQ2FudmFzIEVsZW1lbnQi
OwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzZXMiXSA9ICJDYW52YXNlcyI7CiAvKiBDYXB0dXJl
IHNjcmVlbnNob3Qgb2YgdGhlIHNlbGVjdGVkIERPTSBub2RlICovCkBAIC01ODcsNiArNTk0LDcg
QEAgbG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIENvZGUiXSA9ICJHbG9iYWwgQ29kZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVudCJdID0gIkdsb2JhbCBMZXhp
Y2FsIEVudmlyb25tZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkdsb2JhbCBWYXJpYWJsZXMiXSA9
ICJHbG9iYWwgVmFyaWFibGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyYW1tYXIiXSA9ICJHcmFt
bWFyIjsKK2xvY2FsaXplZFN0cmluZ3NbIkdyYXBoaWNzIl0gPSAiR3JhcGhpY3MiOwogbG9jYWxp
emVkU3RyaW5nc1siR3JvdXAiXSA9ICJHcm91cCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBC
eSBSZXNvdXJjZSJdID0gIkdyb3VwIEJ5IFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdy
b3VwIE1lZGlhIFJlcXVlc3RzIl0gPSAiR3JvdXAgTWVkaWEgUmVxdWVzdHMiOwpAQCAtNjM0LDYg
KzY0Miw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkltYWdlcyJdID0gIkltYWdlcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJJbWFnZXM6Il0gPSAiSW1hZ2VzOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbW1l
ZGlhdGUgUGF1c2UgUmVxdWVzdGVkIl0gPSAiSW1tZWRpYXRlIFBhdXNlIFJlcXVlc3RlZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQiXSA9ICJJbXBvcnQiOworbG9jYWxpemVkU3RyaW5nc1si
SW1wb3J0IFJlY29yZGluZyJdID0gIkltcG9ydCBSZWNvcmRpbmciOwogbG9jYWxpemVkU3RyaW5n
c1siSW1wb3J0ZWQiXSA9ICJJbXBvcnRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCAt
ICVzIl0gPSAiSW1wb3J0ZWQgLSAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCBcdTIw
MTQgJXMiXSA9ICJJbXBvcnRlZCBcdTIwMTQgJXMiOwpAQCAtNjk4LDYgKzcwNyw3IEBAIGxvY2Fs
aXplZFN0cmluZ3NbIkxvY2FsIFN0b3JhZ2UiXSA9ICJMb2NhbCBTdG9yYWdlIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkxvY2FsIFZhcmlhYmxlcyJdID0gIkxvY2FsIFZhcmlhYmxlcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJMb2NhdGVkIGF0ICVzIl0gPSAiTG9jYXRlZCBhdCAlcyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJMb2NhdGlvbiJdID0gIkxvY2F0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIkxvZyBB
bmltYXRpb24iXSA9ICJMb2cgQW5pbWF0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvZyBDYW52
YXMgQ29udGV4dCJdID0gIkxvZyBDYW52YXMgQ29udGV4dCI7CiAvKiBMb2cgKHByaW50KSBET00g
ZWxlbWVudCB0byBDb25zb2xlICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cgRWxlbWVudCJdID0g
IkxvZyBFbGVtZW50IjsKQEAgLTc3MSw2ICs3ODEsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJObyBF
bmFibGVkIEF1ZGl0cyJdID0gIk5vIEVuYWJsZWQgQXVkaXRzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vIEVudHJpZXMiXSA9ICJObyBFbnRyaWVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIEV2ZW50
IExpc3RlbmVycyJdID0gIk5vIEV2ZW50IExpc3RlbmVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJO
byBGaWx0ZXIgUmVzdWx0cyJdID0gIk5vIEZpbHRlciBSZXN1bHRzIjsKK2xvY2FsaXplZFN0cmlu
Z3NbIk5vIEtleWZyYW1lcyJdID0gIk5vIEtleWZyYW1lcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJO
byBMYXllciBBdmFpbGFibGUiXSA9ICJObyBMYXllciBBdmFpbGFibGUiOwogbG9jYWxpemVkU3Ry
aW5nc1siTm8gT3ZlcnJpZGVzIl0gPSAiTm8gT3ZlcnJpZGVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vIFBhcmFtZXRlcnMiXSA9ICJObyBQYXJhbWV0ZXJzIjsKQEAgLTc4Miw2ICs3OTMsNyBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJObyBSZXNwb25zZSBIZWFkZXJzIl0gPSAiTm8gUmVzcG9uc2UgSGVh
ZGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXN1bHQiXSA9ICJObyBSZXN1bHQiOwogbG9j
YWxpemVkU3RyaW5nc1siTm8gUmVzdWx0cyBGb3VuZCJdID0gIk5vIFJlc3VsdHMgRm91bmQiOwog
bG9jYWxpemVkU3RyaW5nc1siTm8gU2VhcmNoIFJlc3VsdHMiXSA9ICJObyBTZWFyY2ggUmVzdWx0
cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBTdHlsZXMiXSA9ICJObyBTdHlsZXMiOwogbG9jYWxp
emVkU3RyaW5nc1siTm8gV2F0Y2ggRXhwcmVzc2lvbnMiXSA9ICJObyBXYXRjaCBFeHByZXNzaW9u
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBhdWRpdCBzZWxlY3RlZCJdID0gIk5vIGF1ZGl0IHNl
bGVjdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIGNlcnRpZmljYXRlIHNlY3VyaXR5IGluZm9y
bWF0aW9uLiJdID0gIk5vIGNlcnRpZmljYXRlIHNlY3VyaXR5IGluZm9ybWF0aW9uLiI7CkBAIC05
MDYsNiArOTE4LDggQEAgbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIl0gPSAiUmVjb3JkaW5n
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyAlZCJdID0gIlJlY29yZGluZyAlZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgRXJyb3I6ICVzIl0gPSAiUmVjb3JkaW5nIEVycm9y
OiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgVGltZWxpbmUgRGF0YSJdID0gIlJl
Y29yZGluZyBUaW1lbGluZSBEYXRhIjsKKy8qIEEgdHlwZSBvZiBjYW52YXMgcmVjb3JkaW5nIGlu
IHRoZSBHcmFwaGljcyBUYWIgKi8KK2xvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyBUeXBlIENh
bnZhcyBCaXRtYXAgUmVuZGVyZXIiXSA9ICJCaXRtYXAgUmVuZGVyZXIiOwogbG9jYWxpemVkU3Ry
aW5nc1siUmVjb3JkaW5nIFdhcm5pbmc6ICVzIl0gPSAiUmVjb3JkaW5nIFdhcm5pbmc6ICVzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyBzdG9wIHJlcXVlc3RlZCBcdTIwMTQgJXMiXSA9
ICJSZWNvcmRpbmcgc3RvcCByZXF1ZXN0ZWQgXHUyMDE0ICVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlY29yZGluZ3MiXSA9ICJSZWNvcmRpbmdzIjsKQEAgLTkxNCw3ICs5MjgsNiBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJSZWRpcmVjdHMiXSA9ICJSZWRpcmVjdHMiOwogbG9jYWxpemVkU3RyaW5nc1si
UmVmZXJlbmNlIElzc3VlIl0gPSAiUmVmZXJlbmNlIElzc3VlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlZmxlY3Rpb24iXSA9ICJSZWZsZWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZnJlc2gi
XSA9ICJSZWZyZXNoIjsKLWxvY2FsaXplZFN0cmluZ3NbIlJlZnJlc2ggYWxsIl0gPSAiUmVmcmVz
aCBhbGwiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCB3YXRjaCBleHByZXNzaW9ucyJdID0g
IlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVnaW9uIGFu
bm91bmNlZCBpbiBpdHMgZW50aXJldHkuIl0gPSAiUmVnaW9uIGFubm91bmNlZCBpbiBpdHMgZW50
aXJldHkuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ3VsYXIgRXhwcmVzc2lvbiJdID0gIlJlZ3Vs
YXIgRXhwcmVzc2lvbiI7CkBAIC0xMDI0LDYgKzEwMzcsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJT
ZWN1cml0eSBPcmlnaW4iXSA9ICJTZWN1cml0eSBPcmlnaW4iOwogbG9jYWxpemVkU3RyaW5nc1si
U2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90Il0gPSAiU2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90IjsK
IGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBjb21wYXJpc29uIHNuYXBzaG90Il0gPSAiU2VsZWN0
IGNvbXBhcmlzb24gc25hcHNob3QiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQiXSA9ICJT
ZWxlY3RlZCI7CisvKiBBcHBlYXJzIGFzIGEgbGFiZWwgd2hlbiBhIGdpdmVuIHdlYiBhbmltYXRp
b24gaXMgbG9nZ2VkIHRvIHRoZSBDb25zb2xlICovCitsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3Rl
ZCBBbmltYXRpb24iXSA9ICJTZWxlY3RlZCBBbmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1si
U2VsZWN0ZWQgQ2FudmFzIENvbnRleHQiXSA9ICJTZWxlY3RlZCBDYW52YXMgQ29udGV4dCI7CiAv
KiBTZWxlY3RlZCBET00gZWxlbWVudCAqLwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgRWxl
bWVudCJdID0gIlNlbGVjdGVkIEVsZW1lbnQiOwpAQCAtMTE3OSw2ICsxMTk0LDggQEAgbG9jYWxp
emVkU3RyaW5nc1siVGhlc2UgdGVzdHMgc2VydmUgYXMgYSBkZW1vbnN0cmF0aW9uIG9mIHRoZSBm
dW5jdGlvbmFsaXR5IGFuZAogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBSZXNvdXJjZSBjYW1lIGZy
b20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSJdID0gIlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9t
IGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhY3Rp
b24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiXSA9ICJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlz
dWFsIGNoYW5nZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0
aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEiXSA9ICJUaGlzIGFjdGlvbiBtb3ZlcyB0aGUgcGF0
aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEiOworbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhbmlt
YXRpb24gaGFzIG5vIGR1cmF0aW9uLiJdID0gIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlv
bi4iOworbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4i
XSA9ICJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiXSA9ICJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBw
b3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBjdXN0
b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIl0gPSAiVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBj
dXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgaXMg
YW4gZXhhbXBsZSBvZiBob3cgZXJyb3JzIGFyZSBzaG93bi4gVGhlIGVycm9yIHdhcyB0aHJvd24g
bWFudWFsbHksIGJ1dCBleGVjdXRpb24gZXJyb3JzIHdpbGwgYXBwZWFyIGluIHRoZSBzYW1lIHdh
eS4iXSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGVycm9ycyBhcmUgc2hvd24uIFRoZSBl
cnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBidXQgZXhlY3V0aW9uIGVycm9ycyB3aWxsIGFwcGVh
ciBpbiB0aGUgc2FtZSB3YXkuIjsKQEAgLTEyOTEsMTIgKzEzMDgsNjUgQEAgbG9jYWxpemVkU3Ry
aW5nc1siVmlldyBTaGFkZXIiXSA9ICJWaWV3IFNoYWRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJW
aWV3cG9ydCJdID0gIlZpZXdwb3J0IjsKIGxvY2FsaXplZFN0cmluZ3NbIlZpc2libGUiXSA9ICJW
aXNpYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmciXSA9ICJXYWl0aW5nIjsKK2xvY2Fs
aXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIl0gPSAi
V2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IENTUy4iOworbG9jYWxpemVkU3RyaW5n
c1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQuIl0gPSAiV2Fp
dGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQuIjsKIGxvY2FsaXplZFN0
cmluZ3NbIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBD
U1MuIl0gPSAiV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9y
IENTUy4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2Il0gPSAi
V2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2IjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9y
IHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiJdID0gIldhaXRpbmcgZm9yIHRyYW5zaXRpb25z
IGNyZWF0ZWQgYnkgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXJuaW5nOiAiXSA9ICJXYXJu
aW5nOiAiOwogbG9jYWxpemVkU3RyaW5nc1siV2FybmluZ3MiXSA9ICJXYXJuaW5ncyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJXYXRjaCBFeHByZXNzaW9ucyJdID0gIldhdGNoIEV4cHJlc3Npb25zIjsK
IGxvY2FsaXplZFN0cmluZ3NbIldhdGVyZmFsbCJdID0gIldhdGVyZmFsbCI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJXZWIgQW5pbWF0aW9uIl0gPSAiV2ViIEFuaW1hdGlvbiI7CisvKiBTZWN0aW9uIHRp
dGxlIGZvciB0aGUgSmF2YVNjcmlwdCBiYWNrdHJhY2Ugb2YgdGhlIGNyZWF0aW9uIG9mIGEgd2Vi
IGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBCYWNrdHJhY2Ug
VGl0bGUiXSA9ICJCYWNrdHJhY2UiOworLyogTGFiZWwgZm9yIHRoZSBjdWJpYy1iZXppZXIgdGlt
aW5nIGZ1bmN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2Vi
IEFuaW1hdGlvbiBFYXNpbmcgTGFiZWwiXSA9ICJFYXNpbmciOworLyogU2VjdGlvbiB0aXRsZSBm
b3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVmZmVjdCBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xv
Y2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRWZmZWN0IFRpdGxlIl0gPSAiRWZmZWN0IjsK
Ky8qIExhYmVsIGZvciB0aGUgZW5kIGRlbGF5IHRpbWUgb2YgYSB3ZWIgYW5pbWF0aW9uICAqLwor
bG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBFbmQgRGVsYXkgTGFiZWwiXSA9ICJFbmQg
RGVsYXkiOworLyogVG9vbHRpcCBmb3Igc2VjdGlvbiBvZiBncmFwaCByZXByZXNlbnRpbmcgZGVs
YXkgYWZ0ZXIgYSB3ZWIgYW5pbWF0aW9uIGZpbmlzaGVzIGFwcGx5aW5nIHN0eWxlcyAqLworbG9j
YWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBFbmQgRGVsYXkgVG9vbHRpcCJdID0gIkVuZCBE
ZWxheSAlcyI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gZWl0aGVyIGRv
ZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5k
cyBvciB0aGF0IGl0IGFwcGxpZXMgdG8gYm90aCwgZGVwZW5kaW5nIG9uIGl0J3MgY29uZmlndXJh
dGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQXV0byJd
ID0gIkF1dG8iOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBw
bGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFu
aW1hdGlvbiBGaWxsIE1vZGUgQmFja3dhcmRzIl0gPSAiQmFja3dhcmRzIjsKKy8qIEluZGljYXRl
cyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBi
ZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRp
b24gRmlsbCBNb2RlIEJvdGgiXSA9ICJCb3RoIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2Vi
IGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGFmdGVyIGl0IGVuZHMgKi8KK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEZvcndhcmRzIl0gPSAiRm9yd2FyZHMi
OworLyogTGFiZWwgZm9yIHRoZSBmaWxsIG1vZGUgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2Nh
bGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBMYWJlbCJdID0gIkZpbGwiOwor
LyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGRvZXMgbm90IGFwcGx5IGFueSBz
dHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyAqLworbG9jYWxpemVkU3Ry
aW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgTm9uZSJdID0gIk5vbmUiOworLyogU2VjdGlv
biB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6
ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIElkZW50aXR5IFRpdGxlIl0gPSAiSWRlbnRpdHkiOwor
LyogTGFiZWwgZm9yIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBvZiBhIHdlYiBhbmltYXRpb24g
Ki8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gSXRlcmF0aW9uIENvdW50IExhYmVs
Il0gPSAiSXRlcmF0aW9ucyI7CisvKiBMYWJlbCBmb3IgdGhlIHRpbWUgZHVyYXRpb24gb2YgZWFj
aCBpdGVyYXRpb24gb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIg
QW5pbWF0aW9uIEl0ZXJhdGlvbiBEdXJhdGlvbiBMYWJlbCJdID0gIkR1cmF0aW9uIjsKKy8qIExh
YmVsIGZvciB0aGUgbnVtYmVyIGRlc2NyaWJpbmcgd2hpY2ggaXRlcmF0aW9uIGEgd2ViIGFuaW1h
dGlvbiBzaG91bGQgc3RhcnQgYXQgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24g
SXRlcmF0aW9uIFN0YXJ0IExhYmVsIl0gPSAiU3RhcnQiOworLyogU2VjdGlvbiB0aXRsZSBmb3Ig
aW5mb3JtYXRpb24gYWJvdXQgdGhlIGtleWZyYW1lcyBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xv
Y2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gS2V5ZnJhbWVzIFRpdGxlIl0gPSAiS2V5ZnJh
bWVzIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3
ZWIgYW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiBub3JtYWwgYW5kIHJldmVyc2VkIG9uIGVh
Y2ggaXRlcmF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNr
IERpcmVjdGlvbiBBbHRlcm5hdGUiXSA9ICJBbHRlcm5hdGUiOworLyogSW5kaWNhdGVzIHRoYXQg
dGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gYWx0ZXJuYXRlcyBi
ZXR3ZWVuIHJldmVyc2VkIGFuZCBub3JtYWwgb24gZWFjaCBpdGVyYXRpb24gKi8KK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIEFsdGVybmF0ZSBSZXZl
cnNlIl0gPSAiQWx0ZXJuYXRlIFJldmVyc2UiOworLyogTGFiZWwgZm9yIHRoZSBwbGF5YmFjayBk
aXJlY3Rpb24gb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5p
bWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBMYWJlbCJdID0gIkRpcmVjdGlvbiI7CisvKiBJbmRp
Y2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBp
cyBub3JtYWwgKGUuZy4gZm9yd2FyZHMpICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0
aW9uIFBsYXliYWNrIERpcmVjdGlvbiBOb3JtYWwiXSA9ICJOb3JtYWwiOworLyogSW5kaWNhdGVz
IHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgcmV2
ZXJzZWQgKGUuZy4gYmFja3dhcmRzKSAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlv
biBQbGF5YmFjayBEaXJlY3Rpb24gUmV2ZXJzZSJdID0gIlJldmVyc2UiOworLyogTGFiZWwgZm9y
IHRoZSBzdGFydCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1hdGlvbiAgKi8KK2xvY2FsaXplZFN0
cmluZ3NbIldlYiBBbmltYXRpb24gU3RhcnQgRGVsYXkgTGFiZWwiXSA9ICJTdGFydCBEZWxheSI7
CisvKiBUb29sdGlwIGZvciBzZWN0aW9uIG9mIGdyYXBoIHJlcHJlc2VudGluZyBkZWxheSBiZWZv
cmUgYSB3ZWIgYW5pbWF0aW9uIGJlZ2lucyBhcHBseWluZyBzdHlsZXMgKi8KK2xvY2FsaXplZFN0
cmluZ3NbIldlYiBBbmltYXRpb24gU3RhcnQgRGVsYXkgVG9vbHRpcCJdID0gIlN0YXJ0IERlbGF5
ICVzIjsKKy8qIExhYmVsIGZvciB0aGUgY3VycmVudCBET00gbm9kZSB0YXJnZXQgb2YgYSB3ZWIg
YW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFRhcmdldCBMYWJl
bCJdID0gIlRhcmdldCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9ucyJdID0gIldl
YiBBbmltYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNwZWN0b3IiXSA9ICJXZWIg
SW5zcGVjdG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNwZWN0b3IgUmVmZXJlbmNlIl0g
PSAiV2ViIEluc3BlY3RvciBSZWZlcmVuY2UiOwogbG9jYWxpemVkU3RyaW5nc1siV2ViIFBhZ2Ui
XSA9ICJXZWIgUGFnZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanMKaW5kZXggODI3MWUxM2M2YjdkN2YzMzFjYjJhZTllZGM4MzJhMTRhYzJm
MmUzMi4uZWFjZTEyNjdjYTA2MTAwZjZjNzBhZjM1NGQyMDQ3ZThkMDRmZGU0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTIz
LDYgKzEyMyw3IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFu
YWdlciA9IG5ldyBXSS5Xb3JrZXJNYW5hZ2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFn
ZXIgPSBuZXcgV0kuRE9NRGVidWdnZXJNYW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
ID0gbmV3IFdJLkNhbnZhc01hbmFnZXIsCisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBu
ZXcgV0kuQW5pbWF0aW9uTWFuYWdlciwKICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2
ZW50cy4KQEAgLTE0NywxMyArMTQ4LDEzIEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLlRpbWVsaW5lVGFi
Q29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuU3RvcmFnZVRhYkNvbnRlbnRWaWV3LlR5cGUs
Ci0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGUsCisgICAgICAgIFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuQXVkaXRUYWJDb250ZW50Vmlldy5U
eXBlLAogICAgICAgICBXSS5Db25zb2xlVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICBdKTsKICAg
ICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRpbmcgPSBuZXcgV0kuU2V0dGluZygic2VsZWN0ZWQt
dGFiLWluZGV4IiwgMCk7CiAKLSAgICAvLyBSZXBsYWNlIHRoZSBEZWJ1Z2dlci9SZXNvdXJjZXMg
VGFiIHdpdGggdGhlIFNvdXJjZXMgVGFiLgorICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMjA1ODI2PiBXZWIgSW5zcGVjdG9yOiByZW1vdmUgbGVnYWN5IGNvZGUgZm9yIHJlcGxh
Y2luZyB0aGUgUmVzb3VyY2VzIFRhYiBhbmQgRGVidWdnZXIgVGFiIHdpdGggdGhlIFNvdXJjZXMg
VGFiCiAgICAgbGV0IGRlYnVnZ2VySW5kZXggPSBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLmlu
ZGV4T2YoImRlYnVnZ2VyIik7CiAgICAgbGV0IHJlc291cmNlc0luZGV4ID0gV0kuX29wZW5UYWJz
U2V0dGluZy52YWx1ZS5pbmRleE9mKCJyZXNvdXJjZXMiKTsKICAgICBpZiAoZGVidWdnZXJJbmRl
eCA+PSAwIHx8IHJlc291cmNlc0luZGV4ID49IDApIHsKQEAgLTE3Myw2ICsxNzQsMTMgQEAgV0ku
bG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgV0kuX3NlbGVjdGVkVGFiSW5kZXhTZXR0
aW5nLnZhbHVlID0gc291cmNlc0luZGV4OwogICAgIH0KIAorICAgIC8vIEZJWE1FOiA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMjA1ODI3PiBXZWIgSW5zcGVjdG9yOiByZW1vdmUgbGVnYWN5IGNvZGUg
Zm9yIHJlcGxhY2luZyB0aGUgQ2FudmFzIFRhYiB3aXRoIHRoZSBHcmFwaGljcyBUYWIKKyAgICBs
ZXQgY2FudmFzSW5kZXggPSBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoImNhbnZh
cyIpOworICAgIGlmIChjYW52YXNJbmRleCA+PSAwKSB7CisgICAgICAgIFdJLl9vcGVuVGFic1Nl
dHRpbmcudmFsdWUuc3BsaWNlKGNhbnZhc0luZGV4LCAxLCBXSS5HcmFwaGljc1RhYkNvbnRlbnRW
aWV3LlR5cGUpOworICAgICAgICBXSS5fb3BlblRhYnNTZXR0aW5nLnNhdmUoKTsKKyAgICB9CisK
ICAgICAvLyBTdGF0ZS4KICAgICBXSS5wcmludFN0eWxlc0VuYWJsZWQgPSBmYWxzZTsKICAgICBX
SS5zZXRab29tRmFjdG9yKFdJLnNldHRpbmdzLnpvb21GYWN0b3IudmFsdWUpOwpAQCAtNDY1LDcg
KzQ3Myw3IEBAIFdJLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJj
ZXNUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuVGltZWxpbmVUYWJDb250ZW50VmlldywKICAg
ICAgICAgV0kuU3RvcmFnZVRhYkNvbnRlbnRWaWV3LAotICAgICAgICBXSS5DYW52YXNUYWJDb250
ZW50VmlldywKKyAgICAgICAgV0kuR3JhcGhpY3NUYWJDb250ZW50VmlldywKICAgICAgICAgV0ku
TGF5ZXJzVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZpZXcsCiAg
ICAgICAgIFdJLkNvbnNvbGVUYWJDb250ZW50VmlldywKQEAgLTEyMjMsMTEgKzEyMzEsOCBAQCBX
SS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVzZW50ZWRPYmplY3QgPSBmdW5jdGlvbihyZXBy
ZXNlbnRlZE9iamVjdCkKICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
QXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgIHJldHVybiBXSS5BdWRpdFRhYkNvbnRlbnRW
aWV3OwogCi0gICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29s
bGVjdGlvbikKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3OwotCi0gICAg
aWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKQotICAgICAgICBy
ZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXc7CisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQ2FudmFzIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
U2hhZGVyUHJvZ3JhbSB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGlu
ZyB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAg
cmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXc7CiAKICAgICByZXR1cm4gbnVsbDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmI0MTJj
ZWE1ZmUyM2E2NmZkMjdlY2Q5NGRhZDczZmRiMDFmMzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFu
YWdlci5qcwpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIEZJWE1FOiBBbmltYXRp
b25NYW5hZ2VyIGxhY2tzIGFkdmFuY2VkIG11bHRpLXRhcmdldCBzdXBwb3J0LiAoQW5pbWF0aW9u
cyBwZXItdGFyZ2V0KQorCitXSS5BbmltYXRpb25NYW5hZ2VyID0gY2xhc3MgQW5pbWF0aW9uTWFu
YWdlcgoreworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VuYWJsZWQg
PSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbiA9IG5ldyBXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcCA9IG5ldyBNYXA7
CisKKyAgICAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWlu
UmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhp
cyk7CisgICAgfQorCisgICAgLy8gQWdlbnQKKworICAgIGdldCBkb21haW5zKCkgeyByZXR1cm4g
WyJBbmltYXRpb24iXTsgfQorCisgICAgYWN0aXZhdGVFeHRyYURvbWFpbihkb21haW4pCisgICAg
eworICAgICAgICBjb25zb2xlLmFzc2VydChkb21haW4gPT09ICJBbmltYXRpb24iKTsKKworICAg
ICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMuaW5p
dGlhbGl6ZVRhcmdldCh0YXJnZXQpOworICAgIH0KKworICAgIC8vIFRhcmdldAorCisgICAgaW5p
dGlhbGl6ZVRhcmdldCh0YXJnZXQpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEz
LjEpOiBBbmltYXRpb24uZW5hYmxlIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAodGFy
Z2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5lbmFibGUiKSkKKyAgICAgICAgICAgIHRhcmdldC5B
bmltYXRpb25BZ2VudC5lbmFibGUoKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdl
dCBhbmltYXRpb25Db2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bjsgfQorCisgICAgZ2V0IHN1cHBvcnRlZCgpCisgICAgeworICAgICAgICAvLyBDT01QQVRJQklM
SVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAg
ICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5lbmFibGUi
KTsKKyAgICB9CisKKyAgICBlbmFibGUoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
IXRoaXMuX2VuYWJsZWQpOworCisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSB0cnVlOworCisgICAg
ICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0
aWFsaXplVGFyZ2V0KHRhcmdldCk7CisgICAgfQorCisgICAgZGlzYWJsZSgpCisgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9lbmFibGVkKTsKKworICAgICAgICBmb3IgKGxldCB0
YXJnZXQgb2YgV0kudGFyZ2V0cykgeworICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9T
IDEzLjEpOiBBbmltYXRpb24uZGlzYWJsZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgICAg
IGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmRpc2FibGUiKSkKKyAgICAgICAgICAg
ICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQuZGlzYWJsZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmlt
YXRpb25JZE1hcC5jbGVhcigpOworCisgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAg
ICB9CisKKyAgICAvLyBBbmltYXRpb25PYnNlcnZlcgorCisgICAgYW5pbWF0aW9uQ3JlYXRlZChh
bmltYXRpb25QYXlsb2FkKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2Fu
aW1hdGlvbklkTWFwLmhhcyhhbmltYXRpb25QYXlsb2FkLmFuaW1hdGlvbklkKSwgYEFuaW1hdGlv
biBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7YW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZH0u
YCk7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IFdJLkFuaW1hdGlvbi5mcm9tUGF5bG9hZChh
bmltYXRpb25QYXlsb2FkKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5hZGQo
YW5pbWF0aW9uKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuc2V0KGFuaW1hdGlvbi5h
bmltYXRpb25JZCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1h
dGlvbklkLCBlZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5p
bWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5p
bWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgYW5pbWF0aW9uLmVmZmVjdENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0
YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5p
bWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLnRhcmdldENoYW5nZWQoZWZmZWN0
KTsKKyAgICB9CisKKyAgICBhbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpCisgICAgewor
ICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAudGFrZShhbmltYXRp
b25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICgh
YW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlv
bkNvbGxlY3Rpb24ucmVtb3ZlKGFuaW1hdGlvbik7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQor
CisgICAgX2hhbmRsZU1haW5SZXNvdXJjZURpZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIFdJLkZyYW1lKTsKKyAgICAg
ICAgaWYgKCFldmVudC50YXJnZXQuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBXSS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKTsK
KworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmNsZWFyKCk7CisgICAgICAgIHRo
aXMuX2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52
YXNNYW5hZ2VyLmpzCmluZGV4IDEzNWMxNjYxM2FlODAwOWMxNmUyNzIyZjcyNTg1Yzk3ZTY5ZGQx
MTQuLmRiYjhlNmZlNDk3MzFkNTIzMWUyODNmNjlmYTI5MGYzN2I2YmJmYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01h
bmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvQ2FudmFzTWFuYWdlci5qcwpAQCAtMzIsNiArMzIsNyBAQCBXSS5DYW52YXNNYW5hZ2Vy
ID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBzdXBlcigp
OwogCiAgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fY2FudmFz
Q29sbGVjdGlvbiA9IG5ldyBXSS5DYW52YXNDb2xsZWN0aW9uOwogICAgICAgICB0aGlzLl9jYW52
YXNJZGVudGlmaWVyTWFwID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlk
ZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MgPSBu
ZXcgU2V0OwpAQCAtNzYsMTMgKzc3LDkgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZh
c01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IGNh
bnZhc0NvbGxlY3Rpb24oKSB7IHJldHVybiB0aGlzLl9jYW52YXNDb2xsZWN0aW9uOyB9CiAgICAg
Z2V0IHNhdmVkUmVjb3JkaW5ncygpIHsgcmV0dXJuIHRoaXMuX3NhdmVkUmVjb3JkaW5nczsgfQog
Ci0gICAgZ2V0IGNhbnZhc2VzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRo
aXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudmFsdWVzKCkpOwotICAgIH0KLQogICAgIGdldCBzaGFk
ZXJQcm9ncmFtcygpCiAgICAgewogICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zaGFk
ZXJQcm9ncmFtSWRlbnRpZmllck1hcC52YWx1ZXMoKSk7CkBAIC0xMzMsNiArMTMwLDcgQEAgV0ku
Q2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQuZGlzYWJsZSgpOwogICAgICAgICB9CiAK
KyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5jbGVhcigpOwogICAgICAgICB0aGlzLl9j
YW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1J
ZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncy5jbGVh
cigpOwpAQCAtMTYxLDkgKzE1OSw4IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNN
YW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9j
YW52YXNJZGVudGlmaWVyTWFwLmhhcyhjYW52YXNQYXlsb2FkLmNhbnZhc0lkKSwgYENhbnZhcyBh
bHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7Y2FudmFzUGF5bG9hZC5jYW52YXNJZH0uYCk7CiAKICAg
ICAgICAgbGV0IGNhbnZhcyA9IFdJLkNhbnZhcy5mcm9tUGF5bG9hZChjYW52YXNQYXlsb2FkKTsK
KyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5hZGQoY2FudmFzKTsKICAgICAgICAgdGhp
cy5fY2FudmFzSWRlbnRpZmllck1hcC5zZXQoY2FudmFzLmlkZW50aWZpZXIsIGNhbnZhcyk7Ci0K
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNBZGRlZCwge2NhbnZhc30pOwogICAgIH0KIAogICAgIGNhbnZhc1JlbW92ZWQo
Y2FudmFzSWRlbnRpZmllcikKQEAgLTE3Myw3ICsxNzAsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9
IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKCFjYW52
YXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNh
bnZhcyk7CisgICAgICAgIHRoaXMuX3NhdmVSZWNvcmRpbmdzKGNhbnZhcyk7CisKKyAgICAgICAg
dGhpcy5fY2FudmFzQ29sbGVjdGlvbi5yZW1vdmUoY2FudmFzKTsKKworICAgICAgICBmb3IgKGxl
dCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbikKKyAgICAgICAgICAg
IHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZp
ZXIpOworCisgICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5jbGVhcigpOwog
ICAgIH0KIAogICAgIGNhbnZhc01lbW9yeUNoYW5nZWQoY2FudmFzSWRlbnRpZmllciwgbWVtb3J5
Q29zdCkKQEAgLTI3NSwyMSArMjc5LDE0IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52
YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBfcmVt
b3ZlQ2FudmFzKGNhbnZhcykKKyAgICBfc2F2ZVJlY29yZGluZ3MoY2FudmFzKQogICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24p
Ci0gICAgICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5kZWxldGUocHJv
Z3JhbS5pZGVudGlmaWVyKTsKLQotICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rp
b24uY2xlYXIoKTsKLQogICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29y
ZGluZ0NvbGxlY3Rpb24pIHsKICAgICAgICAgICAgIHJlY29yZGluZy5zb3VyY2UgPSBudWxsOwog
ICAgICAgICAgICAgcmVjb3JkaW5nLmNyZWF0ZURpc3BsYXlOYW1lKHJlY29yZGluZy5kaXNwbGF5
TmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3MuYWRkKHJlY29yZGluZyk7
CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB7cmVjb3JkaW5nfSk7CiAgICAgICAgIH0KLQotICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc1JlbW92ZWQsIHtjYW52YXN9KTsKICAgICB9CiAKICAgICBfbWFpblJlc291cmNlRGlk
Q2hhbmdlKGV2ZW50KQpAQCAtMzAxLDE1ICsyOTgsMTQgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNs
YXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgV0kuQ2FudmFzLnJl
c2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCk7CiAKICAgICAgICAgZm9yIChsZXQgY2FudmFz
IG9mIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudmFsdWVzKCkpCi0gICAgICAgICAgICB0aGlz
Ll9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVSZWNvcmRpbmdz
KGNhbnZhcyk7CiAKLSAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xl
YXIoKTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5jbGVhcigpOwogICAgICAgICB0
aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX3NoYWRlclBy
b2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgfQogfTsKIAogV0kuQ2FudmFzTWFuYWdl
ci5FdmVudCA9IHsKLSAgICBDYW52YXNBZGRlZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMt
YWRkZWQiLAotICAgIENhbnZhc1JlbW92ZWQ6ICJjYW52YXMtbWFuYWdlci1jYW52YXMtd2FzLXJl
bW92ZWQiLAogICAgIFJlY29yZGluZ1NhdmVkOiAiY2FudmFzLW1hbmFnZXItcmVjb3JkaW5nLXNh
dmVkIiwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcwppbmRleCAxYThkZjY4YmJhZGQ4ZGU4
YmZmYjM4MDc5NTI2OTI4N2EzYTMzMjQyLi43MTg1NTU4YWQzZTBkOTc5YmIwMDFkYjhlMTEwM2Ri
ODJhYTllMDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKQEAgLTMyMyw3ICszMjMsNyBA
QCBXSS5ET01NYW5hZ2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAg
ICAgbm9kZUZvcklkKG5vZGVJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9pZFRvRE9N
Tm9kZVtub2RlSWRdOworICAgICAgICByZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXSB8
fCBudWxsOwogICAgIH0KIAogICAgIF9kb2N1bWVudFVwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5h
Z2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
VGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDc2MzNkZTFiYWUwZjQxM2ZlMTJjZDFjMzYzMzg0YWVm
M2ZkODQ2NTkuLjcyOTY5NmYwNDFjMTYyZmY5N2NmYjA5MjQ5N2JiZDE1YWJmOWZmYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Rp
bWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKQEAgLTc4MSw3ICs3ODEsNyBAQCBXSS5U
aW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxl
dCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoZXZlbnQubm9kZUlkKSB8fCBudWxs
OworICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChldmVu
dC5ub2RlSWQpOwogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZG9tTm9kZSk7CiAKICAgICAg
ICAgICAgIHJlY29yZCA9IG5ldyBXSS5NZWRpYVRpbWVsaW5lUmVjb3JkKGV2ZW50VHlwZSwgZG9t
Tm9kZSwgZGV0YWlscyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
YmQ2NTdkOTMyNmFhYTBjZTY0ZjZkN2VmMDMxZGY4MTZhZjJjZmU4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQg
wqkgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdC
b3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJlY3QgeD0iMS41IiB5PSIyLjUiIHdpZHRoPSIxMyIgaGVp
Z2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KLSAgICA8cG9seWdv
biBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAxMSAzIDEyIDEzIDEyIDEzIDExIDExIDgiLz4KLTwv
c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0dyYXBoaWNzLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9HcmFwaGljcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdjYWYzYTE0OWY2OTQ1YjYxODZkODRiNjE1
ODc2OWNhZjBhNjRhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcKQEAgLTAsMCArMSw2IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAx
NiAxNiI+CisgICAgPHJlY3QgeD0iMS41IiB5PSIyLjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIg
ZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cG9seWdvbiBwb2ludHM9
IjExIDggOSAxMSA2IDcgMyAxMSAzIDEyIDEzIDEyIDEzIDExIDExIDgiLz4KKzwvc3ZnPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IGRkMWQ0
YzYxYjM0OTNlMTk2N2UzYjc3YWE4NDU4YWFlYWE4NzM0ZTYuLjViODU2NTIyMTY0NGJlMWE1ZjJl
NmZiMTM3NDdmNjRjOGViYjRiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwKQEAgLTMwLDYgKzMwLDkgQEAKIAogICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+CiAKKyAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25D
b250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
QW5pbWF0aW9uQ29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRW
aWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdE5h
dmlnYXRpb25TaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0F1ZGl0VGVzdENhc2VDb250ZW50Vmlldy5jc3MiPgpAQCAtNTYsNyArNTksNiBA
QAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzRGV0YWlsc1Np
ZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
Q2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MiPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hhbmdlc0RldGFpbHNTaWRlYmFyUGFu
ZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoYXJ0RGV0
YWlsc1NlY3Rpb25Sb3cuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZp
ZXdzL0NoZWNrYm94TmF2aWdhdGlvbkl0ZW0uY3NzIj4KQEAgLTExMyw2ICsxMTUsOCBAQAogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR29Ub0xpbmVEaWFsb2cuY3NzIj4K
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYWRpZW50RWRpdG9yLmNz
cyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFkaWVudFNsaWRl
ci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGgu
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvSGVhcFNuYXBzaG90SW5zdGFuY2VzQ29udGVudFZpZXcuY3NzIj4KQEAgLTM0OSw2ICsz
NTMsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+PC9z
Y3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUuanMiPjwvc2NyaXB0PgpAQCAtMzYxLDYgKzM2Niw4
IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3JpcHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hlRnJhbWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNoZU1hbmlmZXN0LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0JhY2tGb3J3YXJkRW50cnkuanMiPjwvc2NyaXB0PgpAQCAtMzgw
LDcgKzM4Nyw2IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVl
Tm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52YXMuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmlldy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uVHlwZXMuanMiPjwvc2NyaXB0
PgpAQCAtNTY2LDkgKzU3Miw5IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0eWxlRGV0YWls
c1BhbmVsLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BdWRpdFRhYkNv
bnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ2FudmFzVGFi
Q29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db25zb2xl
VGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9FbGVt
ZW50c1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
R3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL1NjcmlwdFRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KQEAgLTU5NCw2ICs2MDAsOSBA
QAogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvblRvb2xi
YXJJdGVtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
QW5pbWF0aW9uQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZURldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50
Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2Fj
aGVGcmFtZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KQEAgLTY5Miw2ICs3MDEsNyBAQAogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9Hb1RvTGluZURpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50RWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvR3JhZGllbnRTbGlkZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZS5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5l
RGF0YUdyaWROb2RlUGF0aENvbXBvbmVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcyI+PC9zY3JpcHQ+
CkBAIC04NTYsNiArODY2LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5ub3Rh
dG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJv
ckVkaXRpbmdDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJDb250
cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJDb250cm9sbGVycy9CYXNpY0Jsb2NrQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9B
bmltYXRpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
QW5pbWF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjVkZTUyNWY0MDZhZDM4Y2Q0NWZlZGNkNzFiNzE0
ZjNhNTEzNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCkBAIC0wLDAgKzEsMjc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworV0kuQW5pbWF0aW9uID0gY2xhc3MgQW5pbWF0aW9uIGV4dGVuZHMgV0kuT2JqZWN0Cit7Cisg
ICAgY29uc3RydWN0b3IoYW5pbWF0aW9uSWQsIHtjc3NBbmltYXRpb25OYW1lLCBjc3NUcmFuc2l0
aW9uUHJvcGVydHksIGVmZmVjdCwgYmFja3RyYWNlfSA9IHt9KQorICAgIHsKKyAgICAgICAgc3Vw
ZXIoKTsKKworICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb25JZCk7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCghY3NzQW5pbWF0aW9uTmFtZSAmJiAhY3NzVHJhbnNpdGlvblByb3BlcnR5
KSB8fCAhIWNzc0FuaW1hdGlvbk5hbWUgIT09ICEhY3NzVHJhbnNpdGlvblByb3BlcnR5KTsKKwor
ICAgICAgICB0aGlzLl9hbmltYXRpb25JZCA9IGFuaW1hdGlvbklkOworCisgICAgICAgIHRoaXMu
X2Nzc0FuaW1hdGlvbk5hbWUgPSBjc3NBbmltYXRpb25OYW1lIHx8IG51bGw7CisgICAgICAgIHRo
aXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSA9IGNzc1RyYW5zaXRpb25Qcm9wZXJ0eSB8fCBudWxs
OworICAgICAgICB0aGlzLl91cGRhdGVFZmZlY3QoZWZmZWN0KTsKKyAgICAgICAgdGhpcy5fYmFj
a3RyYWNlID0gYmFja3RyYWNlIHx8IFtdOworCisgICAgICAgIHRoaXMuX2VmZmVjdFRhcmdldCA9
IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcyA9
IG51bGw7CisgICAgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgZnJvbVBheWxvYWQo
cGF5bG9hZCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV0kuQW5pbWF0aW9uKHBheWxvYWQu
YW5pbWF0aW9uSWQsIHsKKyAgICAgICAgICAgIGNzc0FuaW1hdGlvbk5hbWU6IHBheWxvYWQuY3Nz
QW5pbWF0aW9uTmFtZSwKKyAgICAgICAgICAgIGNzc1RyYW5zaXRpb25Qcm9wZXJ0eTogcGF5bG9h
ZC5jc3NUcmFuc2l0aW9uUHJvcGVydHksCisgICAgICAgICAgICBlZmZlY3Q6IHBheWxvYWQuZWZm
ZWN0LAorICAgICAgICAgICAgYmFja3RyYWNlOiBBcnJheS5pc0FycmF5KHBheWxvYWQuYmFja3Ry
YWNlKSA/IHBheWxvYWQuYmFja3RyYWNlLm1hcCgoaXRlbSkgPT4gV0kuQ2FsbEZyYW1lLmZyb21Q
YXlsb2FkKFdJLm1haW5UYXJnZXQsIGl0ZW0pKSA6IFtdLAorICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUsIHBs
dXJhbCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBj
YXNlIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBw
bHVyYWwgPyBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJXZWIg
QW5pbWF0aW9uIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9u
OgorICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9u
cyIpIDogV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5Bbmlt
YXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJ
LlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlv
biIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3du
IGFuaW1hdGlvbiB0eXBlIiwgYW5pbWF0aW9uVHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOwor
ICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKHBsYXli
YWNrRGlyZWN0aW9uKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChwbGF5YmFja0RpcmVjdGlvbikg
eworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5Ob3JtYWw6Cisg
ICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIk5vcm1hbCIsICJXZWIgQW5pbWF0aW9uIFBs
YXliYWNrIERpcmVjdGlvbiBOb3JtYWwiLCAiSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRp
cmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgbm9ybWFsIChlLmcuIGZvcndhcmRzKSIp
OworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5SZXZlcnNlOgor
ICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJSZXZlcnNlIiwgIldlYiBBbmltYXRpb24g
UGxheWJhY2sgRGlyZWN0aW9uIFJldmVyc2UiLCAiSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNr
IGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgcmV2ZXJzZWQgKGUuZy4gYmFja3dh
cmRzKSIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0RpcmVjdGlvbi5BbHRl
cm5hdGU6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFsdGVybmF0ZSIsICJXZWIg
QW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBBbHRlcm5hdGUiLCAiSW5kaWNhdGVzIHRoYXQg
dGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gYWx0ZXJuYXRlcyBi
ZXR3ZWVuIG5vcm1hbCBhbmQgcmV2ZXJzZWQgb24gZWFjaCBpdGVyYXRpb24iKTsKKyAgICAgICAg
Y2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uQWx0ZXJuYXRlUmV2ZXJzZToKKyAg
ICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQWx0ZXJuYXRlIFJldmVyc2UiLCAiV2ViIEFu
aW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIFJldmVyc2UiLCAiSW5kaWNhdGVz
IHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gYWx0ZXJu
YXRlcyBiZXR3ZWVuIHJldmVyc2VkIGFuZCBub3JtYWwgb24gZWFjaCBpdGVyYXRpb24iKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBwbGF5YmFj
ayBkaXJlY3Rpb24iLCBwbGF5YmFja0RpcmVjdGlvbik7CisgICAgICAgIHJldHVybiBudWxsOwor
ICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckZpbGxNb2RlKGZpbGxNb2RlKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChmaWxsTW9kZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlv
bi5GaWxsTW9kZS5Ob25lOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJOb25lIiwg
IldlYiBBbmltYXRpb24gRmlsbCBNb2RlIE5vbmUiLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIg
YW5pbWF0aW9uIGRvZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQg
YWZ0ZXIgaXQgZW5kcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Gb3J3
YXJkczoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiRm9yd2FyZHMiLCAiV2ViIEFu
aW1hdGlvbiBGaWxsIE1vZGUgRm9yd2FyZHMiLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5p
bWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYWZ0ZXIgaXQgZW5kcyIpOworICAgICAgICBjYXNl
IFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5CYWNrd2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkJhY2t3YXJkcyIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBCYWNrd2FyZHMi
LCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMg
YmVmb3JlIGl0IGJlZ2lucyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5C
b3RoOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCb3RoIiwgIldlYiBBbmltYXRp
b24gRmlsbCBNb2RlIEJvdGgiLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFs
c28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyIpOwor
ICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5BdXRvOgorICAgICAgICAgICAgcmV0
dXJuIFdJLlVJU3RyaW5nKCJBdXRvIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEF1dG8iLCAi
SW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGVpdGhlciBkb2VzIG5vdCBhcHBseSBh
bnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgb3IgdGhhdCBpdCBh
cHBsaWVzIHRvIGJvdGgsIGRlcGVuZGluZyBvbiBpdCdzIGNvbmZpZ3VyYXRpb24iKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBmaWxsIG1vZGUi
LCBmaWxsTW9kZSk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBy
ZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpCisgICAgeworICAgICAgICBXSS5BbmltYXRp
b24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IDE7CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICBnZXQgYW5pbWF0aW9uSWQoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25JZDsg
fQorICAgIGdldCBiYWNrdHJhY2UoKSB7IHJldHVybiB0aGlzLl9iYWNrdHJhY2U7IH0KKworICAg
IGdldCBhbmltYXRpb25UeXBlKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRp
b25OYW1lKQorICAgICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlv
bjsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAgICAgICAg
IHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uOworICAgICAgICByZXR1cm4g
V0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOworICAgIH0KKworICAgIGdldCBzdGFydERl
bGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAic3RhcnREZWxheSIgaW4gdGhpcy5fZWZmZWN0
ID8gdGhpcy5fZWZmZWN0LnN0YXJ0RGVsYXkgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGVuZERl
bGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiZW5kRGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/
IHRoaXMuX2VmZmVjdC5lbmREZWxheSA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9u
Q291bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRpb25Db3VudCIgaW4gdGhpcy5f
ZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkNvdW50IDogTmFOOworICAgIH0KKworICAg
IGdldCBpdGVyYXRpb25TdGFydCgpCisgICAgeworICAgICAgICByZXR1cm4gIml0ZXJhdGlvblN0
YXJ0IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRlcmF0aW9uU3RhcnQgOiBOYU47
CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAiaXRlcmF0aW9uRHVyYXRpb24iIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5p
dGVyYXRpb25EdXJhdGlvbiA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgdGltaW5nRnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgcmV0dXJuICJ0aW1pbmdGdW5jdGlvbiIgaW4gdGhpcy5fZWZmZWN0
ID8gdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQg
cGxheWJhY2tEaXJlY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJwbGF5YmFja0RpcmVj
dGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnBsYXliYWNrRGlyZWN0aW9uIDog
bnVsbDsKKyAgICB9CisKKyAgICBnZXQgZmlsbE1vZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
ICJmaWxsTW9kZSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LmZpbGxNb2RlIDogbnVs
bDsKKyAgICB9CisKKyAgICBnZXQga2V5ZnJhbWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAi
a2V5ZnJhbWVzIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3Qua2V5ZnJhbWVzIDogW107
CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Nzc0FuaW1hdGlv
bk5hbWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSkKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHk7CisKKyAgICAgICAgaWYg
KCF0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcikKKyAgICAgICAgICAgIHRoaXMuX3VuaXF1
ZURpc3BsYXlOYW1lTnVtYmVyID0gV0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVO
dW1iZXIrKzsKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBbmltYXRpb24gJWQiKS5mb3Jt
YXQodGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIpOworICAgIH0KKworICAgIHJlcXVlc3RF
ZmZlY3RUYXJnZXQoY2FsbGJhY2spCisgICAgeworICAgICAgICBpZiAodGhpcy5fZWZmZWN0VGFy
Z2V0ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX2VmZmVjdFRh
cmdldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhp
cy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcykgeworICAgICAgICAgICAgdGhpcy5fcmVx
dWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxs
YmFja3MgPSBbY2FsbGJhY2tdOworCisgICAgICAgIFdJLmRvbU1hbmFnZXIuZW5zdXJlRG9jdW1l
bnQoKTsKKworICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7Cisg
ICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5yZXF1ZXN0RWZmZWN0VGFyZ2V0KHRoaXMuX2Fu
aW1hdGlvbklkLCAoZXJyb3IsIG5vZGVJZCkgPT4geworICAgICAgICAgICAgdGhpcy5fZWZmZWN0
VGFyZ2V0ID0gIWVycm9yID8gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKSA6IG51bGw7
CisKKyAgICAgICAgICAgIGZvciAobGV0IHJlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFjayBvZiB0
aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzKQorICAgICAgICAgICAgICAgIHJlcXVl
c3RFZmZlY3RUYXJnZXRDYWxsYmFjayh0aGlzLl9lZmZlY3RUYXJnZXQpOworCisgICAgICAgICAg
ICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzID0gbnVsbDsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9uTWFuYWdlcgorCisgICAgZWZmZWN0Q2hhbmdlZChl
ZmZlY3QpCisgICAgeworICAgICAgICB0aGlzLl91cGRhdGVFZmZlY3QoZWZmZWN0KTsKKyAgICB9
CisKKyAgICB0YXJnZXRDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VmZmVjdFRhcmdl
dCA9IHVuZGVmaW5lZDsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
SS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0
ZQorCisgICAgX3VwZGF0ZUVmZmVjdChlZmZlY3QpCisgICAgeworICAgICAgICB0aGlzLl9lZmZl
Y3QgPSBlZmZlY3QgfHwge307CisKKyAgICAgICAgaWYgKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5j
dGlvbikKKyAgICAgICAgICAgIHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbiA9IFdJLkN1Ymlj
QmV6aWVyLmZyb21TdHJpbmcodGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uKTsKKworICAgICAg
ICBpZiAodGhpcy5fZWZmZWN0LmtleWZyYW1lcykgeworICAgICAgICAgICAgZm9yIChsZXQga2V5
ZnJhbWUgb2YgdGhpcy5fZWZmZWN0LmtleWZyYW1lcykgeworICAgICAgICAgICAgICAgIGlmIChr
ZXlmcmFtZS5lYXNpbmcpCisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lLmVhc2luZyA9IFdJ
LkN1YmljQmV6aWVyLmZyb21TdHJpbmcoa2V5ZnJhbWUuZWFzaW5nKTsKKworICAgICAgICAgICAg
ICAgIGlmIChrZXlmcmFtZS5zdHlsZSkKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWUuc3R5
bGUgPSBrZXlmcmFtZS5zdHlsZS5yZXBsYWNlQWxsKC87XHMrL2csICI7XG4iKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKTsKKyAgICB9Cit9OworCitXSS5Bbmlt
YXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IDE7CisKK1dJLkFuaW1hdGlvbi5U
eXBlID0geworICAgIFdlYkFuaW1hdGlvbjogIndlYi1hbmltYXRpb24iLAorICAgIENTU0FuaW1h
dGlvbjogImNzcy1hbmltYXRpb24iLAorICAgIENTU1RyYW5zaXRpb246ICJjc3MtdHJhbnNpdGlv
biIsCit9OworCitXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24gPSB7CisgICAgTm9ybWFs
OiAibm9ybWFsIiwKKyAgICBSZXZlcnNlOiAicmV2ZXJzZSIsCisgICAgQWx0ZXJuYXRlOiAiYWx0
ZXJuYXRlIiwKKyAgICBBbHRlcm5hdGVSZXZlcnNlOiAiYWx0ZXJuYXRlLXJldmVyc2UiLAorfTsK
KworV0kuQW5pbWF0aW9uLkZpbGxNb2RlID0geworICAgIE5vbmU6ICJub25lIiwKKyAgICBGb3J3
YXJkczogImZvcndhcmRzIiwKKyAgICBCYWNrd2FyZHM6ICJiYWNrd2FyZHMiLAorICAgIEJvdGg6
ICJib3RoIiwKKyAgICBBdXRvOiAiYXV0byIsCit9OworCitXSS5BbmltYXRpb24uRXZlbnQgPSB7
CisgICAgRWZmZWN0Q2hhbmdlZDogImFuaW1hdGlvbi1lZmZlY3QtY2hhbmdlZCIsCisgICAgVGFy
Z2V0Q2hhbmdlZDogImFuaW1hdGlvbi10YXJnZXQtY2hhbmdlZCIsCit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxl
Y3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5p
bWF0aW9uQ29sbGVjdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTI4YTdiMTQ4ZGVlYmU4ZWE1NzZmZGIx
ZGFiMGI1YjBiYzQ5MWRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMKQEAgLTAsMCArMSwx
MTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0aW9uID0gY2xhc3MgQW5pbWF0
aW9uQ29sbGVjdGlvbiBleHRlbmRzIFdJLkNvbGxlY3Rpb24KK3sKKyAgICBjb25zdHJ1Y3Rvcihh
bmltYXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWFuaW1hdGlvblR5
cGUgfHwgT2JqZWN0LnZhbHVlcyhXSS5BbmltYXRpb24uVHlwZSkuaW5jbHVkZXMoYW5pbWF0aW9u
VHlwZSkpOworCisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uVHlw
ZSA9IGFuaW1hdGlvblR5cGUgfHwgbnVsbDsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlv
blR5cGUpCisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9
IG51bGw7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uVHlwZSgp
IHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblR5cGU7IH0KKworICAgIGdldCBkaXNwbGF5TmFtZSgp
CisgICAgeworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAg
Y29uc3QgcGx1cmFsID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uZGlz
cGxheU5hbWVGb3JUeXBlKHRoaXMuX2FuaW1hdGlvblR5cGUsIHBsdXJhbCk7CisgICAgICAgIH0K
KworICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25zIik7CisgICAgfQor
CisgICAgb2JqZWN0SXNSZXF1aXJlZFR5cGUob2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCEo
b2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICByZXR1cm4gIXRoaXMuX2FuaW1hdGlvblR5cGUgfHwgb2JqZWN0LmFuaW1h
dGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlvblR5cGU7CisgICAgfQorCisgICAgYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGUoYW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFuaW1hdGlv
blR5cGUpKTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVHlwZSkgeworICAgICAgICAg
ICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uVHlwZSA9PT0gdGhpcy5fYW5pbWF0aW9uVHlwZSk7
CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdGhp
cy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApCisgICAgICAgICAgICB0aGlzLl9hbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgbGV0IGFuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVN
YXAuZ2V0KGFuaW1hdGlvblR5cGUpOworICAgICAgICBpZiAoIWFuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlKSB7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IG5ldyBX
SS5BbmltYXRpb25Db2xsZWN0aW9uKGFuaW1hdGlvblR5cGUpOworICAgICAgICAgICAgdGhpcy5f
YW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAuc2V0KGFuaW1hdGlvblR5cGUsIGFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGU7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpdGVt
QWRkZWQoaXRlbSkKKyAgICB7CisgICAgICAgIHN1cGVyLml0ZW1BZGRlZChpdGVtKTsKKworICAg
ICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRp
b25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRl
bS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBl
LmFkZChpdGVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGl0ZW1SZW1vdmVkKGl0ZW0pCisg
ICAgeworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGxl
dCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5pbWF0aW9uQ29sbGVjdGlvbkZv
clR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rp
b25Gb3JUeXBlLnJlbW92ZShpdGVtKTsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVyLml0ZW1S
ZW1vdmVkKGl0ZW0pOworICAgIH0KKworICAgIGl0ZW1zQ2xlYXJlZChpdGVtcykKKyAgICB7Cisg
ICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCkgeworICAgICAg
ICAgICAgZm9yIChsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgb2YgdGhpcy5fYW5pbWF0
aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAudmFsdWVzKCkpCisgICAgICAgICAgICAgICAgYW5pbWF0
aW9uQ29sbGVjdGlvbkZvclR5cGUuY2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVy
Lml0ZW1zQ2xlYXJlZChpdGVtcyk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VS
ZXN1bHQuanMKaW5kZXggYzljYzM5NjJlODBmYjY2ZmUxNWRhMTM1NGVhMjkyNmJmODQxY2RjZS4u
MzFkNjI3ZDgxMWJkNjMzMmRjNDgwODVmOTdkZjUwNjRkMjAxMjdlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1
bHQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1
ZGl0VGVzdENhc2VSZXN1bHQuanMKQEAgLTE0Niw3ICsxNDYsNyBAQCBXSS5BdWRpdFRlc3RDYXNl
UmVzdWx0ID0gY2xhc3MgQXVkaXRUZXN0Q2FzZVJlc3VsdCBleHRlbmRzIFdJLkF1ZGl0VGVzdFJl
c3VsdEJhcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGVJZCA9IGF3YWl0IGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVj
dG9yKGRvbU5vZGVTdHJpbmcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gg
eyB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9k
ZUZvcklkKG5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpz
CmluZGV4IDYyYmEyNjQxMDVhYWVkZjRiYTVlMmJlMzc1NWEyYjVkMzhiY2ZhZDMuLmZmNzFhZjZk
NDNkMjc2YzExZjc0MzYyM2I4MzJmOTRiNjFlZmUyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwpAQCAtOTcsNyArOTcs
NyBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
Y2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQ6CiAgICAgICAgICAgICByZXR1cm4g
V0kuVUlTdHJpbmcoIjJEIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJp
dG1hcFJlbmRlcmVyOgotICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJC
aXRtYXAgUmVuZGVyZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQml0bWFw
IFJlbmRlcmVyIiwgIkNhbnZhcyBDb250ZXh0IFR5cGUgQml0bWFwIFJlbmRlcmVyIiwgIkJpdG1h
cCBSZW5kZXJlciBpcyBhIHR5cGUgb2YgcmVuZGVyaW5nIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRo
IGEgPGNhbnZhcz4gZWxlbWVudCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHTDoKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wi
KTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyOgpAQCAtMTA2LDkg
KzEwNiwxMCBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViIEdQVSIpOwogICAgICAg
ICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJNZXRhbDoKICAgICAgICAgICAgIHJldHVy
biBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViTWV0YWwiKTsKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgY2FudmFzIGNvbnRleHQgdHlwZSIsIGNv
bnRleHRUeXBlKTsKICAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAi
VW5rbm93biBjYW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOworICAgICAgICByZXR1
cm4gbnVsbDsKICAgICB9CiAKICAgICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJl
cnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1JlY29yZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9SZWNvcmRpbmcuanMKaW5kZXggMWY4ZGQ3ZWY0NWQ2Mjk3NzhjZDgyODdiZmI4ZDMxYjJh
MTA4OWYzMC4uNTEzZWY3NmFmNTYxNDI5MWUyODY0YWFlYTU4ZTc0N2M2OGE4NGZhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGlu
Zy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVj
b3JkaW5nLmpzCkBAIC0xNDgsNiArMTQ4LDIzIEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29y
ZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gbmV3IFdJLlJlY29yZGluZyhw
YXlsb2FkLnZlcnNpb24sIHR5cGUsIHBheWxvYWQuaW5pdGlhbFN0YXRlLCBmcmFtZXMsIHBheWxv
YWQuZGF0YSk7CiAgICAgfQogCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlw
ZShyZWNvcmRpbmdUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyZWNvcmRpbmdUeXBlKSB7
CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQ6CisgICAgICAgICAgICByZXR1
cm4gV0kuVUlTdHJpbmcoIjJEIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFz
Qml0bWFwUmVuZGVyZXI6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJpdG1hcCBS
ZW5kZXJlciIsICJSZWNvcmRpbmcgVHlwZSBDYW52YXMgQml0bWFwIFJlbmRlcmVyIiwgIkEgdHlw
ZSBvZiBjYW52YXMgcmVjb3JkaW5nIGluIHRoZSBHcmFwaGljcyBUYWIiKTsKKyAgICAgICAgY2Fz
ZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNXZWJHTDoKKyAgICAgICAgICAgIHJldHVybiBXSS51bmxv
Y2FsaXplZFN0cmluZygiV2ViR0wiKTsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52
YXNXZWJHTDI6CisgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdM
MiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3du
IHJlY29yZGluZyB0eXBlIiwgcmVjb3JkaW5nVHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOwor
ICAgIH0KKwogICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclN3aXp6bGVUeXBlKHN3aXp6bGVUeXBl
KQogICAgIHsKICAgICAgICAgc3dpdGNoIChzd2l6emxlVHlwZSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9Bbmlt
YXRpb25PYnNlcnZlci5qcwppbmRleCBiMTE5NWVkMGNhMGNiMGNhODA2NjhlMGU5OGRjNjc5ZGNh
ZDkxN2EzLi43ZTU2ZThiYjM5Y2JhMGM2MjgwZWE5Y2VkZDQ1YmU1NTQ1ZjBmMTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRp
b25PYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Q
cm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcwpAQCAtMjcsNiArMjcsMjYgQEAgV0kuQW5pbWF0
aW9uT2JzZXJ2ZXIgPSBjbGFzcyBBbmltYXRpb25PYnNlcnZlciBleHRlbmRzIEluc3BlY3RvckJh
Y2tlbmQuRGlzcGF0Y2gKIHsKICAgICAvLyBFdmVudHMgZGVmaW5lZCBieSB0aGUgIkFuaW1hdGlv
biIgZG9tYWluLgogCisgICAgYW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb24pCisgICAgeworICAg
ICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uKTsKKyAg
ICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAg
ICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVj
dCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCkKKyAgICB7CisgICAg
ICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIudGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCk7CisgICAg
fQorCisgICAgYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAg
V0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uSWQpOworICAg
IH0KKwogICAgIHRyYWNraW5nU3RhcnQodGltZXN0YW1wKQogICAgIHsKICAgICAgICAgV0kudGlt
ZWxpbmVNYW5hZ2VyLmFuaW1hdGlvblRyYWNraW5nU3RhcnRlZCh0aW1lc3RhbXApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3Rl
T2JqZWN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
UmVtb3RlT2JqZWN0LmpzCmluZGV4IGRkMDBhZjU4YzEyNTMwNTg2ZTFjMjgzMDMyYjcyZmQ2Mjlm
YTMyZDkuLjJjYmE1NjRkNGE3YjZhMzhjMTg5ZTU3MzNkM2NmM2M2MGZjNTE2NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9i
amVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9SZW1vdGVPYmplY3QuanMKQEAgLTE4OCw2ICsxODgsMjUgQEAgV0kuUmVtb3RlT2JqZWN0ID0g
Y2xhc3MgUmVtb3RlT2JqZWN0CiAgICAgICAgIHRhcmdldC5DYW52YXNBZ2VudC5yZXNvbHZlQ29u
dGV4dChjYW52YXMuaWRlbnRpZmllciwgb2JqZWN0R3JvdXAsIHdyYXBDYWxsYmFjayk7CiAgICAg
fQogCisgICAgc3RhdGljIHJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLCBvYmplY3RHcm91cCwg
Y2FsbGJhY2spCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgY2FsbGJhY2sg
PT09ICJmdW5jdGlvbiIpOworCisgICAgICAgIGZ1bmN0aW9uIHdyYXBDYWxsYmFjayhlcnJvciwg
b2JqZWN0KSB7CisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIW9iamVjdCkKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBj
YWxsYmFjayhXSS5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2JqZWN0LCBXSS5tYWluVGFyZ2V0
KSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFy
Z2V0KCk7CisKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24u
cmVzb2x2ZUFuaW1hdGlvbiBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgY29uc29sZS5hc3Nl
cnQodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIikpOworCisg
ICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbi5h
bmltYXRpb25JZCwgb2JqZWN0R3JvdXAsIHdyYXBDYWxsYmFjayk7CisgICAgfQorCiAgICAgLy8g
UHVibGljCiAKICAgICBnZXQgdGFyZ2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCAxZDQ0NWEwNGNkZWJlZWNmYTdiMGNiMDhlZDZmYmJk
NGJmNDYxZTg0Li4wYmE1NjBiOTZjMDIzMDZlYjYxYjMyYmRmNGVhYzg5OTIzZGJmMGMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCkBAIC0xMDgs
NiArMTA4LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvV29ya2VyT2JzZXJ2ZXIuanMi
Pjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50QWN0aW9uLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VDb2RlLmpzIj48L3NjcmlwdD4KQEAgLTEyMSw2ICsx
MjIsOCBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2FsU2NyaXB0LmpzIj48L3NjcmlwdD4KIAorICAgIDxz
Y3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9DUFVJbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0NQVVRpbWVsaW5lLmpzIj48L3NjcmlwdD4KQEAgLTEzNyw3ICsxNDAsNiBAQAogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5vZGUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FudmFzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ29sbGVjdGlvbkVudHJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0NvbGxlY3Rpb25FbnRyeVByZXZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvQ29sbGVjdGlvblR5cGVzLmpzIj48L3NjcmlwdD4KQEAgLTIzOCw2ICsyNDAsNyBAQAog
ICAgIDxzY3JpcHQgc3JjPSJQcm94aWVzL0hlYXBTbmFwc2hvdFByb3h5LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iUHJveGllcy9IZWFwU25hcHNob3RXb3JrZXJQcm94eS5qcyI+PC9z
Y3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQnJl
YWtwb2ludExvZ01lc3NhZ2VMZXhlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKaW5kZXggM2M0M2FlNzhiZTE3Mjc3
MDcyOWI3MDMyYWJlNTQ0NDNjOTQ2YThiYi4uMDA2NDQ3YTk2N2U5YzIzN2Y2MGMxMDAwOGJiNDYz
NDU3MmI3YzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC9UZXN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QvVGVzdC5qcwpAQCAtNzAsNiArNzAsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAg
ICAgICAgIFdJLndvcmtlck1hbmFnZXIgPSBuZXcgV0kuV29ya2VyTWFuYWdlciwKICAgICAgICAg
V0kuZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRPTURlYnVnZ2VyTWFuYWdlciwKICAgICAg
ICAgV0kuY2FudmFzTWFuYWdlciA9IG5ldyBXSS5DYW52YXNNYW5hZ2VyLAorICAgICAgICBXSS5h
bmltYXRpb25NYW5hZ2VyID0gbmV3IFdJLkFuaW1hdGlvbk1hbmFnZXIsCiAgICAgXTsKIAogICAg
IC8vIFJlZ2lzdGVyIGZvciBldmVudHMuCkBAIC05MSw2ICs5Miw3IEBAIFdJLmxvYWRlZCA9IGZ1
bmN0aW9uKCkKIFdJLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiB7CiAgICAgLy8gVGhpbmdz
IHRoYXQgd291bGQgbm9ybWFsbHkgZ2V0IGNhbGxlZCBieSB0aGUgVUksIHRoYXQgd2Ugc3RpbGwg
d2FudCB0byBkbyBpbiB0ZXN0cy4KKyAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVuYWJsZSgpOwog
ICAgIFdJLmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmVuYWJsZSgpOwogICAgIFdJLmNhbnZhc01h
bmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuZGF0YWJhc2VNYW5hZ2VyLmVuYWJsZSgpOwpAQCAtMTgx
LDYgKzE4Myw3IEBAIFdJLnVwZGF0ZVZpc2liaWxpdHlTdGF0ZSA9ICgpID0+IHt9OwogICAgICAg
ICAgICAgZ2V0KCkgeyByZXR1cm4gV0kubWFpblRhcmdldC5fYWdlbnRzW2RvbWFpbk5hbWVdOyB9
LAogICAgICAgICB9KTsKICAgICB9CisgICAgbWFrZUFnZW50R2V0dGVyKCJBbmltYXRpb24iKTsK
ICAgICBtYWtlQWdlbnRHZXR0ZXIoIkF1ZGl0Iik7CiAgICAgbWFrZUFnZW50R2V0dGVyKCJBcHBs
aWNhdGlvbkNhY2hlIik7CiAgICAgbWFrZUFnZW50R2V0dGVyKCJDUFVQcm9maWxlciIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFy
bmVzcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhh
cm5lc3MuanMKaW5kZXggZDQ0N2I4OTUwYjkzOTIxZDBhODYwMTMwNjhhOGIzNDgyYjUzMThkYy4u
ZDJlOTlhZjFiNmU4NTEwN2RmZDY2ZDQxYTMxM2E2NGVhZTcwMGYyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpz
CkBAIC0xMzEsNiArMTMxLDQ2IEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0
aW9uVHlwZS5GYWxzZSwgIWFjdHVhbCwgbWVzc2FnZSwgYWN0dWFsKTsKICAgICB9CiAKKyAgICBl
eHBlY3RFbXB0eShhY3R1YWwsIG1lc3NhZ2UpCisgICAgeworICAgICAgICBpZiAoQXJyYXkuaXNB
cnJheShhY3R1YWwpIHx8IHR5cGVvZiBhY3R1YWwgPT09ICJzdHJpbmciKSB7CisgICAgICAgICAg
ICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5LCAhYWN0dWFs
Lmxlbmd0aCwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChhY3R1YWwgaW5zdGFuY2VvZiBTZXQgfHwgYWN0dWFsIGluc3RhbmNl
b2YgTWFwKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRp
b25UeXBlLkVtcHR5LCAhYWN0dWFsLnNpemUsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0gIm9i
amVjdCIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlv
blR5cGUuRW1wdHksIGlzRW1wdHlPYmplY3QoYWN0dWFsKSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZmFpbCgiZXhwZWN0
RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6XG4gICAgQWN0dWFs
OiAiICsgdGhpcy5fZXhwZWN0YXRpb25WYWx1ZUFzU3RyaW5nKGFjdHVhbCkpOworICAgIH0KKwor
ICAgIGV4cGVjdE5vdEVtcHR5KGFjdHVhbCwgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIGlmIChB
cnJheS5pc0FycmF5KGFjdHVhbCkgfHwgdHlwZW9mIGFjdHVhbCA9PT0gInN0cmluZyIpIHsKKyAg
ICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1w
dHksICEhYWN0dWFsLmxlbmd0aCwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhY3R1YWwgaW5zdGFuY2VvZiBTZXQgfHwgYWN0
dWFsIGluc3RhbmNlb2YgTWFwKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5l
c3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5LCAhIWFjdHVhbC5zaXplLCBtZXNzYWdlLCBhY3R1
YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVv
ZiBhY3R1YWwgPT09ICJvYmplY3QiKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhh
cm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5LCAhaXNFbXB0eU9iamVjdChhY3R1YWwpLCBt
ZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5mYWlsKCJleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEg
bm9uLW9iamVjdDpcbiAgICBBY3R1YWw6ICIgKyB0aGlzLl9leHBlY3RhdGlvblZhbHVlQXNTdHJp
bmcoYWN0dWFsKSk7CisgICAgfQorCiAgICAgZXhwZWN0TnVsbChhY3R1YWwsIG1lc3NhZ2UpCiAg
ICAgewogICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk51
bGwsIGFjdHVhbCA9PT0gbnVsbCwgbWVzc2FnZSwgYWN0dWFsLCBudWxsKTsKQEAgLTM4MSw2ICs0
MjEsMTAgQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICAgICAgcmV0dXJuICJleHBlY3RUaGF0KCVzKSI7CiAgICAgICAgIGNhc2UgVGVz
dEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlOgogICAgICAgICAgICAgcmV0dXJuICJleHBl
Y3RGYWxzZSglcykiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5F
bXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZXhwZWN0RW1wdHkoJXMpIjsKKyAgICAgICAgY2Fz
ZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHk6CisgICAgICAgICAgICByZXR1
cm4gImV4cGVjdE5vdEVtcHR5KCVzKSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0
YXRpb25UeXBlLk51bGw6CiAgICAgICAgICAgICByZXR1cm4gImV4cGVjdE51bGwoJXMpIjsKICAg
ICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90TnVsbDoKQEAgLTQxNiw2
ICs0NjAsMTAgQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICAgICAgcmV0dXJuICJ0cnV0aHkiOwogICAgICAgICBjYXNlIFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZToKICAgICAgICAgICAgIHJldHVybiAiZmFsc2V5IjsK
KyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHk6CisgICAgICAg
ICAgICByZXR1cm4gImVtcHR5IjsKKyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlv
blR5cGUuTm90RW1wdHk6CisgICAgICAgICAgICByZXR1cm4gIm5vdCBlbXB0eSI7CiAgICAgICAg
IGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdE51bGw6CiAgICAgICAgICAgICBy
ZXR1cm4gIm5vdCBudWxsIjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5
cGUuTm90RXF1YWw6CkBAIC00NDAsNiArNDg4LDggQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0
SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlID0g
ewogICAgIFRydWU6IFN5bWJvbCgiZXhwZWN0LXRydWUiKSwKICAgICBGYWxzZTogU3ltYm9sKCJl
eHBlY3QtZmFsc2UiKSwKKyAgICBFbXB0eTogU3ltYm9sKCJleHBlY3QtZW1wdHkiKSwKKyAgICBO
b3RFbXB0eTogU3ltYm9sKCJleHBlY3Qtbm90LWVtcHR5IiksCiAgICAgTnVsbDogU3ltYm9sKCJl
eHBlY3QtbnVsbCIpLAogICAgIE5vdE51bGw6IFN5bWJvbCgiZXhwZWN0LW5vdC1udWxsIiksCiAg
ICAgRXF1YWw6IFN5bWJvbCgiZXhwZWN0LWVxdWFsIiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NGEzOGYxNjJiZTUw
ZTc0N2NhNTdmZWMyYjczOTE1NTBmNWQ0YWIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LmNzcwpAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5h
bmltYXRpb24tY29sbGVjdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHBhZGRp
bmc6IDRweDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZWMxZDJjZmMxZWQ5MTBjOTU5YjE5OGUzYjg4ZWZlNzRhNGFk
OTI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMTEw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xh
c3MgQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjdGlvbkNv
bnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCisgICAgewor
ICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFu
aW1hdGlvbkNvbGxlY3Rpb24pOworCisgICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKworICAgICAgICBsZXQgZGVzY3JpcHRpb25F
bGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpKTsKKyAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LmNsYXNzTmFtZSA9ICJk
ZXNjcmlwdGlvbiI7CisKKyAgICAgICAgc3dpdGNoIChyZXByZXNlbnRlZE9iamVjdC5hbmltYXRp
b25UeXBlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOgor
ICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmco
IldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBKYXZhU2NyaXB0LiIpOworICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRp
b246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0
cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IENTUy4iKTsKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlv
bjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3Ry
aW5nKCJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRlc2NyaXB0aW9u
RWxlbWVudC50ZXh0Q29udGVudCk7CisKKyAgICAgICAgc3VwZXIocmVwcmVzZW50ZWRPYmplY3Qs
IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LCBjb250ZW50UGxhY2Vob2xkZXIpOworCisgICAgICAg
IHRoaXMuc2VsZWN0aW9uRW5hYmxlZCA9IHRydWU7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNs
YXNzTGlzdC5hZGQoImFuaW1hdGlvbi1jb2xsZWN0aW9uIik7CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICBm
b3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2
aWV3IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAg
c3Vidmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOworICAgICAgICB9CisgICAgfQor
CisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBjb250ZW50Vmlld0FkZGVkKGNvbnRlbnRWaWV3KQor
ICAgIHsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZWVudGVyIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKTsKKyAgICAgICAgY29u
dGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5faGFu
ZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKTsKKyAgICB9CisKKyAgICBjb250ZW50Vmlld1JlbW92
ZWQoY29udGVudFZpZXcpCisgICAgeworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92
ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNl
RW50ZXIpOworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo
Im1vdXNlbGVhdmUiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUpOworICAgIH0K
KworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5v
ZGVIaWdobGlnaHQoKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAg
IC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50ZXIoZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQgY29udGVudFZpZXcgPSBXSS5WaWV3LmZyb21FbGVtZW50KGV2ZW50
LnRhcmdldCk7CisgICAgICAgIGlmICghKGNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBhbmlt
YXRpb24gPSBjb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgYW5pbWF0aW9u
LnJlcXVlc3RFZmZlY3RUYXJnZXQoKG5vZGUpID0+IHsKKyAgICAgICAgICAgIGlmICghbm9kZSB8
fCAhbm9kZS5vd25lckRvY3VtZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIG5vZGUuaGlnaGxpZ2h0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9oYW5kbGVD
b250ZW50Vmlld01vdXNlTGVhdmUoZXZlbnQpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2Vy
LmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNv
bnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzU5OTA0ZWY3M2YzMjg0ODY0MTc4N2JiOGI2YzBi
ZjkzN2FhNTIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMTI4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24geworICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJnaW46IDRweDsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWNvbnRlbnQpOworICAgIGJvcmRlcjog
MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0
aW9uLnNlbGVjdGVkIHsKKyAgICBvdXRsaW5lOiBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xv
cjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgeworICAgIGRpc3BsYXk6
IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBoZWlnaHQ6IHZhcigtLW5hdmln
YXRpb24tYmFyLWhlaWdodCk7CisgICAgcGFkZGluZzogMCA2cHg7CisgICAgZm9udC1zaXplOiAx
M3B4OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgewor
ICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
aGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3It
Z3JheS1kYXJrKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0
bGVzID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1
bSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5z
dWJ0aXRsZTpub3QoOmVtcHR5KTo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAiXDAwQTBcMjAxNFww
MEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNwOyAqLzsKK30KKworLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIGJvcmRlcjogbm9uZTsKKyAg
ICBvcGFjaXR5OiAwOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbjpob3ZlciA+IGhlYWRl
ciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgb3BhY2l0eTogMTsKK30KKworLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBqdXN0aWZ5
LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIGJhY2tncm91
bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYlKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiAucHJldmlldyA+IHN2ZyB7CisgICAgd2lkdGg6IDEwMCU7Cit9CisKK2JvZHlbZGlyPXJ0bF0g
LmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyB7CisgICAgdHJhbnNmb3Jt
OiBzY2FsZVgoLTEpOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnIHJlY3QgeworICAgIGZpbGw6IHRyYW5zcGFyZW50OworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmRlbGF5IGxpbmUgeworICAgIHN0cm9rZTogdmFy
KC0tYm9yZGVyLWNvbG9yKTsKKyAgICBzdHJva2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGggeworICAgIGZpbGw6
IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7CisgICAgZmlsbC1vcGFjaXR5OiAwLjU7CisgICAg
c3Ryb2tlOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAgIHN0cm9rZS13aWR0aDogMTsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUg
Y2lyY2xlIHsKKyAgICBmaWxsOiB2YXIoLS10ZXh0LWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgbGluZSB7CisgICAgc3Ryb2tl
OiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICBzdHJva2Utd2lkdGg6IDI7Cit9CisKKy5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzcGFuIHsKKyAgICBwYWRkaW5nOiA0cHg7Cisg
ICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKK30KKworQG1lZGlhIChwcmVm
ZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
aGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNv
bG9yKTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50
aXRsZXMgPiAuc3VidGl0bGUgeworICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNv
bmRhcnkpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcg
eworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDIwJSk7CisgICAgfQorfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWQ2MDY3Y2Y4NjRk
NzQ4NzMzMzRkYzk4M2ZjYTBmYWU2NzNiNmI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMK
QEAgLTAsMCArMSwzMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db250ZW50VmlldyA9
IGNsYXNzIEFuaW1hdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKK3sKKyAg
ICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsKKworICAg
ICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVjdCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9u
VGFyZ2V0RE9NTm9kZSA9IG51bGw7CisgICAgICAgIHRoaXMuX2NhY2hlZFdpZHRoID0gTmFOOwor
CisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhbmltYXRpb24iKTsKKyAgICB9
CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBnZXQgcHJldmlld0hlaWdodCgpCisgICAg
eworICAgICAgICByZXR1cm4gNDA7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBoYW5k
bGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3Vi
dGl0bGUoKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQo
KQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIGxldCBo
ZWFkZXJFbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICBsZXQgdGl0bGVzQ29udGFpbmVyID0gaGVhZGVy
RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAg
ICAgIHRpdGxlc0NvbnRhaW5lci5jbGFzc05hbWUgPSAidGl0bGVzIjsKKworICAgICAgICBsZXQg
dGl0bGVFbGVtZW50ID0gdGl0bGVzQ29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgIHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAidGl0
bGUiOworICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmRpc3BsYXlOYW1lOworCisgICAgICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudCA9IHRp
dGxlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikp
OworICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gInN1YnRpdGxlIjsK
KworICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyOworCisg
ICAgICAgIGxldCBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbSgiYW5pbWF0aW9uLXRhcmdldCIsIFdJLlVJU3RyaW5nKCJBbmlt
YXRpb24gVGFyZ2V0IiksICJJbWFnZXMvTWFya3VwLnN2ZyIsIDE2LCAxNik7CisgICAgICAgIGFu
aW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJ
Lk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7CisgICAgICAgIFdJLmFkZE1v
dXNlRG93bkNvbnRleHRNZW51SGFuZGxlcnMoYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0uZWxlbWVudCwgdGhpcy5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0
TWVudS5iaW5kKHRoaXMpKTsKKyAgICAgICAgbmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRl
bShhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbSk7CisKKyAgICAgICAgaGVhZGVy
RWxlbWVudC5hcHBlbmQobmF2aWdhdGlvbkJhci5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRT
dWJ2aWV3KG5hdmlnYXRpb25CYXIpOworCisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIg
PSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikp
OworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNsYXNzTmFtZSA9ICJwcmV2aWV3IjsK
KyAgICB9CisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7CisK
KyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hQ
cmV2aWV3KCk7CisgICAgfQorCisgICAgc2l6ZURpZENoYW5nZSgpCisgICAgeworICAgICAgICBz
dXBlci5zaXplRGlkQ2hhbmdlKCk7CisKKyAgICAgICAgdGhpcy5fY2FjaGVkV2lkdGggPSB0aGlz
LmVsZW1lbnQucmVhbE9mZnNldFdpZHRoOworICAgIH0KKworICAgIGF0dGFjaGVkKCkKKyAgICB7
CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0
aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2Vk
LCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICB9CisKKyAgICBkZXRhY2hl
ZCgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlz
dGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZVRhcmdl
dENoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRs
ZUVmZmVjdENoYW5nZWQsIHRoaXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAg
fQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3JlZnJlc2hTdWJ0aXRsZSgpCisgICAgeworICAg
ICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RFZmZlY3RUYXJnZXQoKGRvbU5vZGUp
ID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUgPSBkb21Ob2Rl
OworCisgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsK
KyAgICAgICAgICAgIGlmIChkb21Ob2RlKQorICAgICAgICAgICAgICAgIHRoaXMuX3N1YnRpdGxl
RWxlbWVudC5hcHBlbmRDaGlsZChXSS5saW5raWZ5Tm9kZVJlZmVyZW5jZShkb21Ob2RlKSk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoUHJldmlldygpCisgICAgeworICAgICAg
ICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLnJlbW92ZUNoaWxkcmVuKCk7CisKKyAgICAgICAgbGV0
IGtleWZyYW1lcyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qua2V5ZnJhbWVzOworICAgICAgICBp
ZiAoIWtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxldCBzcGFuID0gdGhpcy5fcHJl
dmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikp
OworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJUaGlzIGFuaW1h
dGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgbGV0IHN0YXJ0RGVsYXkgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN0YXJ0
RGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbkR1cmF0aW9uID0gdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5pdGVyYXRpb25EdXJhdGlvbiB8fCAwOworICAgICAgICBsZXQgZW5kRGVsYXkg
PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVuZERlbGF5IHx8IDA7CisgICAgICAgIGxldCB0b3Rh
bER1cmF0aW9uID0gc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgZW5kRGVsYXk7Cisg
ICAgICAgIGlmICh0b3RhbER1cmF0aW9uID09PSAwKSB7CisgICAgICAgICAgICBsZXQgc3BhbiA9
IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygi
VGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgY29uc3QgcHJldmlld0hlaWdodCA9IFdJLkFuaW1hdGlvbkNv
bnRlbnRWaWV3LnByZXZpZXdIZWlnaHQ7CisKKyAgICAgICAgY29uc3QgbWFya2VySGVhZFJhZGl1
cyA9IDQ7CisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRQYWRkaW5nID0gMjsKKworICAgICAgICAv
LyBTcXVlZXplIHRoZSBlbnRpcmUgcHJldmlldyBzbyB0aGF0IG1hcmtlcnMgYXJlbid0IGN1dCBv
ZmYuCisgICAgICAgIGNvbnN0IHNxdWVlemVYU3RhcnQgPSAoaXRlcmF0aW9uRHVyYXRpb24gJiYg
c3RhcnREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nOwor
ICAgICAgICBjb25zdCBzcXVlZXplWEVuZCA9IChpdGVyYXRpb25EdXJhdGlvbiAmJiBlbmREZWxh
eSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nOworICAgICAgICBj
b25zdCBzcXVlZXplWVN0YXJ0ID0gbWFya2VySGVhZFJhZGl1cyArIChtYXJrZXJIZWFkUGFkZGlu
ZyAqIDIpOworCisgICAgICAgIC8vIE1vdmUgdGhlIGVhc2luZyBsaW5lIGRvd24gdG8gY3V0IG9m
ZiB0aGUgYm90dG9tIGJvcmRlci4KKyAgICAgICAgY29uc3QgYWRqdXN0RWFzaW5nWSA9IDAuNTsK
KworICAgICAgICBsZXQgc2Vjb25kc1BlclBpeGVsID0gdGhpcy5fY2FjaGVkV2lkdGggLyB0b3Rh
bER1cmF0aW9uOworCisgICAgICAgIHN0YXJ0RGVsYXkgKj0gc2Vjb25kc1BlclBpeGVsOworICAg
ICAgICBpdGVyYXRpb25EdXJhdGlvbiA9IChpdGVyYXRpb25EdXJhdGlvbiAqIHNlY29uZHNQZXJQ
aXhlbCkgLSBzcXVlZXplWFN0YXJ0IC0gc3F1ZWV6ZVhFbmQ7CisgICAgICAgIGVuZERlbGF5ICo9
IHNlY29uZHNQZXJQaXhlbDsKKworICAgICAgICBsZXQgc3ZnID0gdGhpcy5fcHJldmlld0NvbnRh
aW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJzdmciKSk7CisgICAgICAgIHN2Zy5z
ZXRBdHRyaWJ1dGUoInZpZXdCb3giLCBgMCAwICR7dGhpcy5fY2FjaGVkV2lkdGh9ICR7cHJldmll
d0hlaWdodH1gKTsKKworICAgICAgICBmdW5jdGlvbiBhZGRUaXRsZShwYXJlbnQsIHRpdGxlKSB7
CisgICAgICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gcGFyZW50LmFwcGVuZENoaWxkKGNyZWF0
ZVNWR0VsZW1lbnQoInRpdGxlIikpOworICAgICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250
ZW50ID0gdGl0bGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RhcnREZWxheSkgeworICAg
ICAgICAgICAgbGV0IHN0YXJ0RGVsYXlDb250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRl
U1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlDb250YWluZXIuY2xhc3NM
aXN0LmFkZCgiZGVsYXkiLCAic3RhcnQiKTsKKworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlM
aW5lID0gc3RhcnREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJs
aW5lIikpOworICAgICAgICAgICAgc3RhcnREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIChw
cmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsKKyAgICAgICAgICAgIHN0YXJ0RGVs
YXlMaW5lLnNldEF0dHJpYnV0ZSgieDIiLCBzdGFydERlbGF5KTsKKyAgICAgICAgICAgIHN0YXJ0
RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3Rh
cnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5RWxlbWVudCA9IHN0YXJ0RGVs
YXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAg
ICAgICAgIHN0YXJ0RGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBzdGFydERlbGF5
KTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
cHJldmlld0hlaWdodCk7CisKKyAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGVsYXlUaXRsZUZvcm1h
dCA9IFdJLlVJU3RyaW5nKCJTdGFydCBEZWxheSAlcyIsICJXZWIgQW5pbWF0aW9uIFN0YXJ0IERl
bGF5IFRvb2x0aXAiLCAiVG9vbHRpcCBmb3Igc2VjdGlvbiBvZiBncmFwaCByZXByZXNlbnRpbmcg
ZGVsYXkgYmVmb3JlIGEgd2ViIGFuaW1hdGlvbiBiZWdpbnMgYXBwbHlpbmcgc3R5bGVzIik7Cisg
ICAgICAgICAgICBhZGRUaXRsZShzdGFydERlbGF5RWxlbWVudCwgc3RhcnREZWxheVRpdGxlRm9y
bWF0LmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
c3RhcnREZWxheSAvIDEwMDApKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZW5kRGVsYXkp
IHsKKyAgICAgICAgICAgIGxldCBlbmREZWxheUNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChj
cmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgZW5kRGVsYXlDb250YWluZXIuc2V0
QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3RhcnREZWxheSArIGl0ZXJhdGlv
bkR1cmF0aW9uICsgc3F1ZWV6ZVhTdGFydH0sIDApYCk7CisgICAgICAgICAgICBlbmREZWxheUNv
bnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxheSIsICJlbmQiKTsKKworICAgICAgICAgICAgbGV0
IGVuZERlbGF5TGluZSA9IGVuZERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0Vs
ZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5
MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsKKyAgICAgICAgICAgIGVu
ZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngyIiwgZW5kRGVsYXkpOworICAgICAgICAgICAgZW5k
RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3Rh
cnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBlbmREZWxheUVsZW1lbnQgPSBlbmREZWxheUNv
bnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAg
ICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBzdGFydERlbGF5ICsgaXRl
cmF0aW9uRHVyYXRpb24gKyBlbmREZWxheSk7CisgICAgICAgICAgICBlbmREZWxheUVsZW1lbnQu
c2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2aWV3SGVpZ2h0KTsKKworICAgICAgICAgICAgY29u
c3QgZW5kRGVsYXlUaXRsZUZvcm1hdCA9IFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkgJXMiLCAiV2Vi
IEFuaW1hdGlvbiBFbmQgRGVsYXkgVG9vbHRpcCIsICJUb29sdGlwIGZvciBzZWN0aW9uIG9mIGdy
YXBoIHJlcHJlc2VudGluZyBkZWxheSBhZnRlciBhIHdlYiBhbmltYXRpb24gZmluaXNoZXMgYXBw
bHlpbmcgc3R5bGVzIik7CisgICAgICAgICAgICBhZGRUaXRsZShlbmREZWxheUVsZW1lbnQsIGVu
ZERlbGF5VGl0bGVGb3JtYXQuZm9ybWF0KE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5lbmREZWxheSAvIDEwMDApKSk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoaXRlcmF0aW9uRHVyYXRpb24pIHsKKyAgICAgICAgICAgIGxldCB0aW1pbmdGdW5jdGlvbiA9
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QudGltaW5nRnVuY3Rpb247CisKKyAgICAgICAgICAgIGxl
dCBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVt
ZW50KCJnIikpOworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25Db250YWluZXIuY2xhc3NMaXN0
LmFkZCgiYWN0aXZlIik7CisgICAgICAgICAgICBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lci5zZXRB
dHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydERlbGF5ICsgc3F1ZWV6ZVhT
dGFydH0sICR7c3F1ZWV6ZVlTdGFydH0pYCk7CisKKyAgICAgICAgICAgIGNvbnN0IHN0YXJ0WSA9
IDA7CisgICAgICAgICAgICBjb25zdCBlbmRZID0gcHJldmlld0hlaWdodCAtIHNxdWVlemVZU3Rh
cnQ7CisgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBlbmRZIC0gc3RhcnRZOworCisgICAgICAg
ICAgICBmb3IgKGxldCBba2V5ZnJhbWVBLCBrZXlmcmFtZUJdIG9mIGtleWZyYW1lcy5hZGphY2Vu
Y2llcygpKSB7CisgICAgICAgICAgICAgICAgbGV0IHN0YXJ0WCA9IGl0ZXJhdGlvbkR1cmF0aW9u
ICoga2V5ZnJhbWVBLm9mZnNldDsKKyAgICAgICAgICAgICAgICBsZXQgZW5kWCA9IGl0ZXJhdGlv
bkR1cmF0aW9uICoga2V5ZnJhbWVCLm9mZnNldDsKKyAgICAgICAgICAgICAgICBsZXQgd2lkdGgg
PSBlbmRYIC0gc3RhcnRYOworCisgICAgICAgICAgICAgICAgbGV0IGVhc2luZyA9IGtleWZyYW1l
QS5lYXNpbmcgfHwgdGltaW5nRnVuY3Rpb247CisKKyAgICAgICAgICAgICAgICBsZXQgZWFzaW5n
Q29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdDb250YWluZXIuY2xhc3NMaXN0
LmFkZCgiZWFzaW5nIik7CisgICAgICAgICAgICAgICAgZWFzaW5nQ29udGFpbmVyLnNldEF0dHJp
YnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0WH0sICR7c3RhcnRZfSlgKTsKKwor
ICAgICAgICAgICAgICAgIGxldCB4MSA9IGVhc2luZy5pblBvaW50LnggKiB3aWR0aDsKKyAgICAg
ICAgICAgICAgICBsZXQgeTEgPSAoKDEgLSBlYXNpbmcuaW5Qb2ludC55KSAqIGhlaWdodCkgKyBh
ZGp1c3RFYXNpbmdZOworICAgICAgICAgICAgICAgIGxldCB4MiA9IGVhc2luZy5vdXRQb2ludC54
ICogd2lkdGg7CisgICAgICAgICAgICAgICAgbGV0IHkyID0gKCgxIC0gZWFzaW5nLm91dFBvaW50
LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7CisKKyAgICAgICAgICAgICAgICBsZXQgZWFz
aW5nUGF0aCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJw
YXRoIikpOworICAgICAgICAgICAgICAgIGVhc2luZ1BhdGguc2V0QXR0cmlidXRlKCJkIiwgYE0g
MCAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IEMgJHt4MX0gJHt5MX0gJHt4Mn0gJHt5Mn0gJHt3
aWR0aH0gJHthZGp1c3RFYXNpbmdZfSBWICR7aGVpZ2h0ICsgYWRqdXN0RWFzaW5nWX0gWmApOwor
CisgICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRD
aGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgICAgIHRpdGxlUmVj
dC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgd2lkdGgpOworICAgICAgICAgICAgICAgIHRpdGxlUmVj
dC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBhZGRU
aXRsZSh0aXRsZVJlY3QsIGVhc2luZy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2Yga2V5ZnJhbWVzKSB7CisgICAgICAgICAgICAg
ICAgbGV0IHggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lLm9mZnNldDsKKworICAgICAg
ICAgICAgICAgIGxldCBrZXlmcmFtZUNvbnRhaW5lciA9IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICAgICAga2V5
ZnJhbWVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgia2V5ZnJhbWUiKTsKKyAgICAgICAgICAgICAg
ICBrZXlmcmFtZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUo
JHt4fSwgJHtzdGFydFl9KWApOworCisgICAgICAgICAgICAgICAgbGV0IGtleWZyYW1lTWFya2Vy
SGVhZCA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImNp
cmNsZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtlckhlYWQuc2V0QXR0cmlidXRl
KCJyIiwgbWFya2VySGVhZFJhZGl1cyk7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVN
YXJrZXJMaW5lID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgibGluZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtlckxpbmUuc2V0QXR0cmli
dXRlKCJ5MSIsIGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGVSZWN0ID0ga2V5
ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAg
ICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ4IiwgLTEgKiAobWFya2VySGVh
ZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0
LnNldEF0dHJpYnV0ZSgieSIsIC0xICogc3F1ZWV6ZVlTdGFydCk7CisgICAgICAgICAgICAgICAg
dGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAobWFya2VySGVhZFJhZGl1cyArIG1hcmtl
ckhlYWRQYWRkaW5nKSAqIDIpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsIGhlaWdodCArIHNxdWVlemVZU3RhcnQpOworCisgICAgICAgICAgICAgICAg
YWRkVGl0bGUodGl0bGVSZWN0LCBrZXlmcmFtZS5zdHlsZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxlRWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgX2hhbmRsZVRhcmdl
dENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsK
KyAgICB9CisKKyAgICBfcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudShj
b250ZXh0TWVudSkKKyAgICB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlT
dHJpbmcoIkxvZyBBbmltYXRpb24iKSwgKCkgPT4geworICAgICAgICAgICAgV0kuUmVtb3RlT2Jq
ZWN0LnJlc29sdmVBbmltYXRpb24odGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVudGltZU1h
bmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CisgICAgICAgICAg
ICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBXSS5VSVN0cmluZygiU2VsZWN0ZWQgQW5pbWF0
aW9uIiwgIkFwcGVhcnMgYXMgYSBsYWJlbCB3aGVuIGEgZ2l2ZW4gd2ViIGFuaW1hdGlvbiBpcyBs
b2dnZWQgdG8gdGhlIENvbnNvbGUiKTsKKyAgICAgICAgICAgICAgICBjb25zdCBhZGRTcGVjaWFs
VXNlckxvZ0NsYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBXSS5jb25zb2xlTG9nVmlld0Nv
bnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9uV2l0aFJlc3VsdCh0ZXh0LCByZW1vdGVP
YmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworCisgICAgICAg
IGlmICh0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKQorICAgICAgICAgICAgV0kuYXBwZW5k
Q29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2FuaW1hdGlvblRh
cmdldERPTU5vZGUpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFp
bHNTaWRlYmFyUGFuZWwuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZGI0NmU0OGYwNGMzOTVhNjFhNGI3NGVl
ZDAzNTNjMjJmZTcyMzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcwpAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmlt
YXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAu
aGVhZGVyID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1l
ZGl1bSk7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRl
bnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlv
biB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NyUpOworfQorCisuc2lkZWJh
ciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlv
bi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgeworICAg
IGRpc3BsYXk6IHRhYmxlLXJvdzsKK30KKworLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmlt
YXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAu
ZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIC5Db2RlTWlycm9yIHsKKyAgICBoZWlnaHQ6IGF1
dG87CisgICAgcGFkZGluZzogNHB4IDA7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJl
bnQ7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuc2lk
ZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2Vj
dGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24geworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE4JSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5MWE1YzgyMzMw
MmQxNDdhMDg4OWQzNjY0YjE2MjU5NTliMmNjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFy
UGFuZWwuanMKQEAgLTAsMCArMSwyNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25EZXRh
aWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCBleHRl
bmRzIFdJLkRldGFpbHNTaWRlYmFyUGFuZWwKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgewor
ICAgICAgICBzdXBlcigiYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIkFuaW1hdGlvbiIpKTsKKwor
ICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBudWxsOworCisgICAgICAgIHRoaXMuX2NvZGVNaXJy
b3JTZWN0aW9uTWFwID0gbmV3IE1hcDsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGlu
c3BlY3Qob2JqZWN0cykKKyAgICB7CisgICAgICAgIGlmICghKG9iamVjdHMgaW5zdGFuY2VvZiBB
cnJheSkpCisgICAgICAgICAgICBvYmplY3RzID0gW29iamVjdHNdOworCisgICAgICAgIHRoaXMu
YW5pbWF0aW9uID0gb2JqZWN0cy5maW5kKChvYmplY3QpID0+IG9iamVjdCBpbnN0YW5jZW9mIFdJ
LkFuaW1hdGlvbik7CisKKyAgICAgICAgcmV0dXJuICEhdGhpcy5hbmltYXRpb247CisgICAgfQor
CisgICAgZ2V0IGFuaW1hdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYW5pbWF0
aW9uOworICAgIH0KKworICAgIHNldCBhbmltYXRpb24oYW5pbWF0aW9uKQorICAgIHsKKyAgICAg
ICAgaWYgKGFuaW1hdGlvbiA9PT0gdGhpcy5fYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24pIHsKKyAgICAgICAgICAgIHRoaXMuX2Fu
aW1hdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFu
Z2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAg
ICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVu
dC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbiA9IGFuaW1hdGlvbiB8fCBu
dWxsOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24pIHsKKyAgICAgICAgICAgIHRoaXMu
X2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFu
Z2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAg
ICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5U
YXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2VkLCB0aGlzKTsK
KyAgICAgICAgfQorCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICAv
LyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIu
aW5pdGlhbExheW91dCgpOworCisgICAgICAgIHRoaXMuX25hbWVSb3cgPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIk5hbWUiKSk7CisgICAgICAgIHRoaXMuX3R5
cGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlR5cGUi
KSk7CisgICAgICAgIHRoaXMuX3RhcmdldFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdyhXSS5VSVN0cmluZygiVGFyZ2V0IiwgIldlYiBBbmltYXRpb24gVGFyZ2V0IExhYmVsIiwg
IkxhYmVsIGZvciB0aGUgY3VycmVudCBET00gbm9kZSB0YXJnZXQgb2YgYSB3ZWIgYW5pbWF0aW9u
IikpOworCisgICAgICAgIGNvbnN0IGlkZW50aXR5U2VjdGlvblRpdGxlID0gV0kuVUlTdHJpbmco
IklkZW50aXR5IiwgIldlYiBBbmltYXRpb24gSWRlbnRpdHkgVGl0bGUiLCAiU2VjdGlvbiB0aXRs
ZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgYSB3ZWIgYW5pbWF0aW9uIik7CisgICAgICAgIGxldCBp
ZGVudGl0eVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1pZGVudGl0
eSIsIGlkZW50aXR5U2VjdGlvblRpdGxlLCBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3Ro
aXMuX25hbWVSb3csIHRoaXMuX3R5cGVSb3csIHRoaXMuX3RhcmdldFJvd10pXSk7CisgICAgICAg
IHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChpZGVudGl0eVNlY3Rpb24uZWxl
bWVudCk7CisKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uQ291bnRSb3cgPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkl0ZXJhdGlvbnMiLCAiV2ViIEFuaW1hdGlv
biBJdGVyYXRpb24gQ291bnQgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBudW1iZXIgb2YgaXRlcmF0
aW9ucyBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0
Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJTdGFydCIs
ICJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBTdGFydCBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIG51
bWJlciBkZXNjcmliaW5nIHdoaWNoIGl0ZXJhdGlvbiBhIHdlYiBhbmltYXRpb24gc2hvdWxkIHN0
YXJ0IGF0IikpOworICAgICAgICB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvdyA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRHVyYXRpb24iLCAiV2ViIEFuaW1h
dGlvbiBJdGVyYXRpb24gRHVyYXRpb24gTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSB0aW1lIGR1cmF0
aW9uIG9mIGVhY2ggaXRlcmF0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsKKyAgICAgICAgbGV0
IGl0ZXJhdGlvbnNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9pdGVy
YXRpb25Db3VudFJvdywgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3csIHRoaXMuX2l0ZXJhdGlvbkR1
cmF0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5fc3RhcnREZWxheVJvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiU3RhcnQgRGVsYXkiLCAiV2ViIEFuaW1h
dGlvbiBTdGFydCBEZWxheSBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIHN0YXJ0IGRlbGF5IHRpbWUg
b2YgYSB3ZWIgYW5pbWF0aW9uICIpKTsKKyAgICAgICAgdGhpcy5fZW5kRGVsYXlSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkVuZCBEZWxheSIsICJXZWIg
QW5pbWF0aW9uIEVuZCBEZWxheSBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIGVuZCBkZWxheSB0aW1l
IG9mIGEgd2ViIGFuaW1hdGlvbiAiKSk7CisgICAgICAgIHRoaXMuX3RpbWluZ0Z1bmN0aW9uUm93
ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFYXNpbmciLCAi
V2ViIEFuaW1hdGlvbiBFYXNpbmcgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBjdWJpYy1iZXppZXIg
dGltaW5nIGZ1bmN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsKKyAgICAgICAgbGV0IHRpbWlu
Z0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX3N0YXJ0RGVsYXlSb3cs
IHRoaXMuX2VuZERlbGF5Um93LCB0aGlzLl90aW1pbmdGdW5jdGlvblJvd10pOworCisgICAgICAg
IHRoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxl
Um93KFdJLlVJU3RyaW5nKCJEaXJlY3Rpb24iLCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJl
Y3Rpb24gTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgYSB3ZWIg
YW5pbWF0aW9uIikpOworICAgICAgICB0aGlzLl9maWxsTW9kZVJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRmlsbCIsICJXZWIgQW5pbWF0aW9uIEZpbGwg
TW9kZSBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIGZpbGwgbW9kZSBvZiBhIHdlYiBhbmltYXRpb24i
KSk7CisgICAgICAgIGxldCBmaWxsRGlyZWN0aW9uR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rp
b25Hcm91cChbdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25Sb3csIHRoaXMuX2ZpbGxNb2RlUm93XSk7
CisKKyAgICAgICAgY29uc3QgZWZmZWN0U2VjdGlvblRpdGxlID0gV0kuVUlTdHJpbmcoIkVmZmVj
dCIsICJXZWIgQW5pbWF0aW9uIEVmZmVjdCBUaXRsZSIsICJTZWN0aW9uIHRpdGxlIGZvciBpbmZv
cm1hdGlvbiBhYm91dCB0aGUgZWZmZWN0IG9mIGEgd2ViIGFuaW1hdGlvbiIpOworICAgICAgICBs
ZXQgZWZmZWN0U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWVmZmVj
dCIsIGVmZmVjdFNlY3Rpb25UaXRsZSwgW2l0ZXJhdGlvbnNHcm91cCwgdGltaW5nR3JvdXAsIGZp
bGxEaXJlY3Rpb25Hcm91cF0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZWZmZWN0U2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl9rZXlmcmFt
ZXNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwOworCisgICAgICAgIGNvbnN0IGtl
eWZyYW1lc1NlY3Rpb25UaXRsZSA9IFdJLlVJU3RyaW5nKCJLZXlmcmFtZXMiLCAiV2ViIEFuaW1h
dGlvbiBLZXlmcmFtZXMgVGl0bGUiLCAiU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJv
dXQgdGhlIGtleWZyYW1lcyBvZiBhIHdlYiBhbmltYXRpb24iKTsKKyAgICAgICAgbGV0IGtleWZy
YW1lc1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1rZXlmcmFtZXMi
LCBrZXlmcmFtZXNTZWN0aW9uVGl0bGUsIFt0aGlzLl9rZXlmcmFtZXNHcm91cF0pOworICAgICAg
ICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoa2V5ZnJhbWVzU2VjdGlvbi5l
bGVtZW50KTsKKworICAgICAgICBjb25zdCBzZWxlY3RhYmxlID0gZmFsc2U7CisgICAgICAgIGxl
dCBiYWNrdHJhY2VUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZShzZWxlY3RhYmxlKTsK
KyAgICAgICAgYmFja3RyYWNlVHJlZU91dGxpbmUuZGlzY2xvc3VyZUJ1dHRvbnMgPSBmYWxzZTsK
KyAgICAgICAgdGhpcy5fYmFja3RyYWNlVHJlZUNvbnRyb2xsZXIgPSBuZXcgV0kuQ2FsbEZyYW1l
VHJlZUNvbnRyb2xsZXIoYmFja3RyYWNlVHJlZU91dGxpbmUpOworCisgICAgICAgIGxldCBiYWNr
dHJhY2VSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgIGJhY2t0cmFjZVJv
dy5lbGVtZW50LmFwcGVuZENoaWxkKGJhY2t0cmFjZVRyZWVPdXRsaW5lLmVsZW1lbnQpOworCisg
ICAgICAgIGNvbnN0IGJhY2t0cmFjZVNlY3Rpb25UaXRsZSA9IFdJLlVJU3RyaW5nKCJCYWNrdHJh
Y2UiLCAiV2ViIEFuaW1hdGlvbiBCYWNrdHJhY2UgVGl0bGUiLCAiU2VjdGlvbiB0aXRsZSBmb3Ig
dGhlIEphdmFTY3JpcHQgYmFja3RyYWNlIG9mIHRoZSBjcmVhdGlvbiBvZiBhIHdlYiBhbmltYXRp
b24iKTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbigiYW5pbWF0aW9uLWJhY2t0cmFjZSIsIGJhY2t0cmFjZVNlY3Rpb25UaXRsZSwgW25ldyBX
SS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtiYWNrdHJhY2VSb3ddKV0pOworICAgICAgICB0aGlzLl9i
YWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5jb250
ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxlbWVu
dCk7CisgICAgfQorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmxheW91dCgp
OworCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIHRoaXMuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24oKTsKKyAgICAgICAgdGhpcy5f
cmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJhY2t0cmFjZVNl
Y3Rpb24oKTsKKworICAgICAgICBmb3IgKGxldCBjb2RlTWlycm9yIG9mIHRoaXMuX2NvZGVNaXJy
b3JTZWN0aW9uTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgY29kZU1pcnJvci5yZWZyZXNoKCk7
CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdGhpcy5fbmFtZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5k
aXNwbGF5TmFtZTsKKyAgICAgICAgdGhpcy5fdHlwZVJvdy52YWx1ZSA9IFdJLkFuaW1hdGlvbi5k
aXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUodGhpcy5fYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUp
OworCisgICAgICAgIHRoaXMuX3RhcmdldFJvdy52YWx1ZSA9IG51bGw7CisgICAgICAgIHRoaXMu
X2FuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KChkb21Ob2RlKSA9PiB7CisgICAgICAgICAg
ICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBkb21Ob2RlID8gV0kubGlua2lmeU5vZGVSZWZlcmVu
Y2UoZG9tTm9kZSkgOiBudWxsOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVmcmVzaEVm
ZmVjdFNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgc2VjdGlvbiBvZiB0aGlzLl9j
b2RlTWlycm9yU2VjdGlvbk1hcC5rZXlzKCkpCisgICAgICAgICAgICBzZWN0aW9uLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuRGV0YWlsc1NlY3Rpb24uRXZlbnQuQ29sbGFwc2VkU3RhdGVDaGFuZ2Vk
LCB0aGlzLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcyk7
CisgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmNsZWFyKCk7CisKKyAgICAgICAg
Y29uc3QgcHJlY2lzaW9uID0gMDsKKyAgICAgICAgY29uc3QgcmVhZE9ubHkgPSB0cnVlOworCisg
ICAgICAgIHRoaXMuX2l0ZXJhdGlvbkNvdW50Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1h
dGlvbi5pdGVyYXRpb25Db3VudCkgPyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uQ291bnQudG9M
b2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LnZh
bHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkgPyB0aGlzLl9hbmlt
YXRpb24uaXRlcmF0aW9uU3RhcnQudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRo
aXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5p
dGVyYXRpb25EdXJhdGlvbikgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlv
bi5pdGVyYXRpb25EdXJhdGlvbiAvIDEwMDApIDogbnVsbDsKKworICAgICAgICB0aGlzLl9zdGFy
dERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0RGVsYXkgPyBOdW1iZXIuc2Vj
b25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5zdGFydERlbGF5IC8gMTAwMCkgOiBudWxsOwor
ICAgICAgICB0aGlzLl9lbmREZWxheVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5lbmREZWxh
eSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5IC8gMTAw
MCkgOiBudWxsOworICAgICAgICB0aGlzLl90aW1pbmdGdW5jdGlvblJvdy52YWx1ZSA9IHRoaXMu
X2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbiA/IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlv
bi50b1N0cmluZygpIDogbnVsbDsKKworICAgICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJv
dy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbiA/IFdJLkFuaW1hdGlv
bi5kaXNwbGF5TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFj
a0RpcmVjdGlvbikgOiBudWxsOworICAgICAgICB0aGlzLl9maWxsTW9kZVJvdy52YWx1ZSA9IHRo
aXMuX2FuaW1hdGlvbi5maWxsTW9kZSA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckZpbGxN
b2RlKHRoaXMuX2FuaW1hdGlvbi5maWxsTW9kZSkgOiBudWxsOworCisgICAgICAgIGxldCBrZXlm
cmFtZVNlY3Rpb25zID0gW107CisgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIHRoaXMuX2Fu
aW1hdGlvbi5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGxldCByb3dzID0gW107CisKKyAgICAg
ICAgICAgIGxldCBrZXlmcmFtZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1h
dGlvbi1rZXlmcmFtZS1vZmZzZXQtIiArIGtleWZyYW1lLm9mZnNldCwgTnVtYmVyLnBlcmNlbnRh
Z2VTdHJpbmcoa2V5ZnJhbWUub2Zmc2V0LCBwcmVjaXNpb24pKTsKKyAgICAgICAgICAgIGtleWZy
YW1lU2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxh
cHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0
ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9ucy5wdXNoKGtleWZy
YW1lU2VjdGlvbik7CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcpIHsKKyAgICAg
ICAgICAgICAgICBsZXQgc3VidGl0bGUgPSBrZXlmcmFtZVNlY3Rpb24uaGVhZGVyRWxlbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAg
ICAgIHN1YnRpdGxlLmNsYXNzTmFtZSA9ICJzdWJ0aXRsZSI7CisgICAgICAgICAgICAgICAgc3Vi
dGl0bGUudGV4dENvbnRlbnQgPSBgICR7ZW1EYXNofSAke2tleWZyYW1lLmVhc2luZy50b1N0cmlu
ZygpfWA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZS5zdHlsZSkg
eworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yID0gV0kuQ29k
ZU1pcnJvckVkaXRvci5jcmVhdGUoY29kZU1pcnJvckVsZW1lbnQsIHsKKyAgICAgICAgICAgICAg
ICAgICAgbW9kZTogImNzcyIsCisgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5OiAibm9jdXJz
b3IiLAorICAgICAgICAgICAgICAgICAgICBsaW5lV3JhcHBpbmc6IHRydWUsCisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgY29kZU1pcnJvci5zZXRWYWx1ZShrZXlmcmFtZS5z
dHlsZSk7CisKKyAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IG51bGw7CisgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gb3B0aW9uc0ZvclR5cGUodHlwZSkgeworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZFRva2VuczogL1xidGFn
XGIvLAorICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobWFya2VyLCB2YWx1ZU9iamVj
dCwgdmFsdWVTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3dhdGNo
ID0gbmV3IFdJLklubGluZVN3YXRjaCh0eXBlLCB2YWx1ZU9iamVjdCwgcmVhZE9ubHkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0VW5pcXVlQm9va21hcmsobWFy
a2VyLnJhbmdlLnN0YXJ0UG9zaXRpb24oKS50b0NvZGVNaXJyb3IoKSwgc3dhdGNoLmVsZW1lbnQp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9OworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yQ29sb3JUZXh0
TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNo
LlR5cGUuQ29sb3IpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yR3JhZGllbnRU
ZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dh
dGNoLlR5cGUuR3JhZGllbnQpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yQ3Vi
aWNCZXppZXJUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5cGUoV0ku
SW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKSk7CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1p
cnJvclNwcmluZ1RleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShX
SS5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpKTsKKworICAgICAgICAgICAgICAgIGxldCByb3cg
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgICAgICAgICAgcm93LmVsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgic3R5bGVzIik7CisgICAgICAgICAgICAgICAgcm93LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQoY29kZU1pcnJvckVsZW1lbnQpOworICAgICAgICAgICAgICAgIHJvd3MucHVzaChy
b3cpOworCisgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAuc2V0KGtl
eWZyYW1lU2VjdGlvbiwgY29kZU1pcnJvcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmICghcm93cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBsZXQgZW1wdHlSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5vIFN0eWxlcyIpKTsKKyAgICAgICAg
ICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7CisgICAgICAgICAgICAgICAgcm93
cy5wdXNoKGVtcHR5Um93KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAga2V5ZnJhbWVT
ZWN0aW9uLmdyb3VwcyA9IFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChyb3dzKV07CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKCFrZXlmcmFtZVNlY3Rpb25zLmxlbmd0aCkgeworICAgICAgICAg
ICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93KFdJLlVJU3RyaW5nKCJO
byBLZXlmcmFtZXMiKSk7CisgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7
CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goZW1wdHlSb3cpOworICAgICAgICB9
CisgICAgICAgIHRoaXMuX2tleWZyYW1lc0dyb3VwLnJvd3MgPSBrZXlmcmFtZVNlY3Rpb25zOwor
ICAgIH0KKworICAgIF9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigpCisgICAgeworICAgICAgICBs
ZXQgY2FsbEZyYW1lcyA9IHRoaXMuX2FuaW1hdGlvbi5iYWNrdHJhY2U7CisgICAgICAgIHRoaXMu
X2JhY2t0cmFjZVRyZWVDb250cm9sbGVyLmNhbGxGcmFtZXMgPSBjYWxsRnJhbWVzOworICAgICAg
ICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlkZGVuID0gIWNhbGxGcmFtZXMubGVu
Z3RoOworICAgIH0KKworICAgIF9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAgICB9CisKKyAg
ICBfaGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24oKTsKKyAgICB9CisKKyAgICBfaGFuZGxlRGV0YWls
c1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQg
Y29kZU1pcnJvciA9IHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmdldChldmVudC50YXJnZXQp
OworICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZp
ZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
Q29udGVudFZpZXcuY3NzCmluZGV4IDRlNWE5MGUxZjAzMTdmMGM0ZWJmNGY3OTk3MDI3NmM3ZmJk
MjdmNTguLmNjMTY2YmQzZTYwZDM4MWE3NWExYTE3OTQzYWJlMjM2NzA3YThiNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRl
bnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNDb250ZW50Vmlldy5jc3MKQEAgLTIzLDExICsyMywxMSBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgu
dGFiKSB7CisuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDAsIDAlLCA5MCUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiAucHJl
dmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5OiBm
bGV4OwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgIGFsaWduLWl0ZW1zOiBjZW50
ZXI7CkBAIC0zNiwxNyArMzYsMTcgQEAKICAgICBwYWRkaW5nOiAxNXB4OwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGRp
c3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5j
YW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1o
ZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IDptYXRj
aGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhl
YWRlciwgZm9vdGVyKSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApAQCAtNTYsNyArNTYsNyBA
QAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRl
bnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcyB7CiAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29u
dGVudFZpZXcuanMKaW5kZXggOWI0ZmQ2ZjZlZDdlMWNiNzYzOTc1MTExMDExNTMyNDY1NGQ1OGYw
MS4uOTkzZGE1MTNmMmRkNTYzM2ZkNzk0ODNlYTRjYTlmZmJhOTZlZmNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fu
dmFzQ29udGVudFZpZXcuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcg
PSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAg
ICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmln
YXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2giKSwgIkltYWdlcy9SZWxv
YWRGdWxsLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0
aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5
UHJpb3JpdHkuTG93OwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
YWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0
aGlzLnJlZnJlc2hQcmV2aWV3LCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5h
dmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZl
bnQuQ2xpY2tlZCwgdGhpcy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CiAKICAg
ICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0
ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFu
c3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAi
SW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhp
cy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tl
ZCwgdGhpcyk7CkBAIC03Nyw2ICs3NywyOSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAg
ICAgfQogCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAg
dGhpcy5yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIC8vIERyb3Bab25lVmlldyBkZWxl
Z2F0ZQorCisgICAgZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUsIGV2
ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNs
dWRlcygiRmlsZXMiKTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpvbmUs
IGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZp
bGVzOworICAgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4g
V0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKICAgICAvLyBQ
cm90ZWN0ZWQKIAogICAgIGluaXRpYWxMYXlvdXQoKQpAQCAtMTYwLDYgKzE4MywxMyBAQCBXSS5D
YW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29u
dGVudFZpZXcKIAogICAgICAgICBpZiAoaXNDYXJkKQogICAgICAgICAgICAgdGhpcy5fcmVmcmVz
aFBpeGVsU2l6ZSgpOworCisgICAgICAgIGlmICghaXNDYXJkKSB7CisgICAgICAgICAgICBsZXQg
ZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAgICAgICAgIGRy
b3Bab25lVmlldy50ZXh0ID0gV0kuVUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAg
ICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50OworICAgICAg
ICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICBsYXlvdXQoKQpAQCAtMTkxLDEzICsyMjEsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9
IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAg
dGhpcy5fdXBkYXRlSW1hZ2VHcmlkKCk7CiAgICAgfQogCi0gICAgc2hvd24oKQotICAgIHsKLSAg
ICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7Ci0g
ICAgfQotCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsK
QEAgLTIyMyw2ICsyNDYsOCBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0Nv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgfSk7CiAKICAgICAgICAg
V0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZl
bnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkLCB0aGlzKTsKKworICAgICAgICB0aGlz
LnJlZnJlc2hQcmV2aWV3KCk7CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQpAQCAtMjkxLDExICsz
MTYsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIF9wb3B1bGF0ZUNhbnZhc0VsZW1lbnRCdXR0b25D
b250ZXh0TWVudShjb250ZXh0TWVudSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9jYW52YXNO
b2RlKQotICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29u
dGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUpOwotCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZFNlcGFyYXRvcigpOwotCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJp
bmcoIkxvZyBDYW52YXMgQ29udGV4dCIpLCAoKSA9PiB7CiAgICAgICAgICAgICBXSS5SZW1vdGVP
YmplY3QucmVzb2x2ZUNhbnZhc0NvbnRleHQodGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV0kuUnVu
dGltZU1hbmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0KSA9PiB7CiAgICAg
ICAgICAgICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCkBAIC0zMDYsNiArMzI2LDExIEBAIFdJLkNh
bnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldwogICAgICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBl
bmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJlbW90ZU9iamVjdCwgYWRkU3Bl
Y2lhbFVzZXJMb2dDbGFzcyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAg
ICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2Nh
bnZhc05vZGUpCisgICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9k
ZShjb250ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7CiAgICAgfQogCiAgICAgX3Nob3dHcmlk
QnV0dG9uQ2xpY2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcu
Y3NzCmluZGV4IDEwZjM3YzA0NmIwYzJhMTI4MmM1ZWM5OWRjNmNiOTkwYjIyMzZjNWYuLjFjNmQ2
NDMxZjliN2Q2MzZlOGYzZThjZTE1YzZiYjJhNjViMTM2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCkBAIC0yNiwyOSArMjYsMjkgQEAKIC5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAg
ICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwg
MCUsIDkwJSk7Ci0KLSAgICAtLWl0ZW0tbWFyZ2luOiAxMHB4OworICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKKyAgICBwYWRkaW5nOiA0cHggMDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZmxleC1ncm93OiAwOwotICAgIG1hcmdp
bjogdmFyKC0taXRlbS1tYXJnaW4pOworICAgIGZsZXgtc2hyaW5rOiAwOwogICAgIHdpZHRoOiA0
MDBweDsKKyAgICBtYXJnaW46IDRweDsKICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3Jk
ZXItY29sb3IpOwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMsCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMsCisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBp
bWcgewogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3Jk
aW5nLWFjdGl2ZSB7CiAgICAgYm9yZGVyLWNvbG9yOiByZWQ7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBm
b290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAgIGRpc3BsYXk6IGZsZXg7CiAg
ICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICBmbGV4LXNocmluazogMDsKQEAgLTU5LDEzNiAr
NTksMTM2IEBACiAgICAgY3Vyc29yOiBkZWZhdWx0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIHsKICAgICBm
b250LXNpemU6IDEzcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgeworLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZl
ID4gaGVhZGVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxl
cywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
Zm9vdGVyID4gLnNpemUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnNpemUgewogICAgIHdo
aXRlLXNwYWNlOiBub3dyYXA7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4g
LnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJr
KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
PiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgewogICAgIGNvbG9y
OiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgLnN1YnRpdGxlOjpiZWZv
cmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9yZSB7CiAgICAgY29udGVudDogIlwwMEEwXDIwMTRc
MDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMg
PiAudGl0bGUgewogICAgIGNvbG9yOiB3aGl0ZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+
IC50aXRsZXMgPiAuc3VidGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+
IC5zdWJ0aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXNlbGVjdGVkLXNlY29uZGFyeS10ZXh0LWNv
bG9yKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMu
cmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKICAg
ICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLm5hdmlnYXRpb24t
YmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGFsaWduLWl0ZW1zOiBpbml0aWFs
OwogICAgIGJvcmRlcjogbm9uZTsKICAgICBvcGFjaXR5OiAwOwogICAgIHRyYW5zaXRpb246IG9w
YWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3JkaW5nLWFjdGl2
ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJlY29yZGluZy1h
Y3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBvcGFjaXR5OiAxOwogICAg
IHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFj
dGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3Rv
cC5kaXNhYmxlZCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7CiAgICAgZmlsdGVyOiBncmF5
c2NhbGUoKTsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFk
ZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2Fi
bGVkKTpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3ZlciB7CiAgICAg
ZmlsdGVyOiBicmlnaHRuZXNzKDk1JSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2FibGVk
KTphY3RpdmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHsKICAgICBm
aWx0ZXI6IGJyaWdodG5lc3MoODAlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3
LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAu
cHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3MtdmlldywKKy5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CiAgICAg
aGVpZ2h0OiAyODBweDsKICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGVh
c2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
OmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAorLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3Omhv
dmVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1h
Y3RpdmUgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CiAgICAgZGlzcGxh
eTogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIGJvcmRlci1y
YWRpdXM6IDRweDsKICAgICBib3gtc2hhZG93OiAxcHggMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAu
NTgpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3IHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IC5tZXNzYWdl
LXRleHQtdmlldyB7CiAgICAgcG9zaXRpb246IHN0YXRpYzsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciB7CiAg
ICAgYm9yZGVyLXRvcDogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290
ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGFsaWdu
LWl0ZW1zOiBjZW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IDptYXRjaGVz
KC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CisuY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1p
dGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CiAgICAgd2lk
dGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRl
bXMgPiBpbWcgKyBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcgKyBpbWcg
ewogICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRl
ZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52
aWV3LXNoYWRlciB7CiAgICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1l
bnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZp
ZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CiAgICAgY29udGVudDogdXJsKC4u
L0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxleGlibGUtc3BhY2UgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3Rl
ciA+IC5mbGV4aWJsZS1zcGFjZSB7CiAgICAgZmxleDogMTsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAtd2Via2l0LXBhZGRpbmctc3RhcnQ6IDRweDsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMu
c2F2ZWQtcmVjb3JkaW5ncyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgewogICAgIGhlaWdodDogMzQwcHg7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnNh
dmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGlu
ZSB7CiAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxp
bmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGlu
ZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2Vz
L1JlY29yZGluZy5zdmcpOwogfQogCkBAIC0yMDksNDMgKzIwOSwzOSBAQAogfQogCiBAbWVkaWEg
KHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKLSAgICB9Ci0KLSAg
ICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcywKLSAg
ICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5w
cmV2aWV3ID4gaW1nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CisgICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNv
cmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCisgICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsK
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci10ZXJ0aWFy
eSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKICAgICAg
ICAgLS1yZWNvcmRpbmctY29sb3I6IGhzbCgwLCAxMDAlLCAzOSUpOwogICAgICAgICBib3JkZXIt
Y29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+
IGhlYWRlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRs
ZXMgPiAudGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICAgICAgY29s
b3I6IHZhcigtLXRleHQtY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0
aXRsZSwKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRp
dGxlLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAgICAgY29sb3I6IHZhcigtLXRleHQt
Y29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAudmlldy1yZWNvcmRpbmcgeworICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgLnZpZXctcmVjb3JkaW5nIHsKICAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKICAgICB9
CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNv
cmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgICAgIGNv
bG9yOiB1bnNldDsKICAgICAgICAgb3BhY2l0eTogMC41CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKaW5kZXggNjM5YjM2ZDg1OWJiN2NmM2MzNDQ0NWFh
MGViNzQ5NTQzM2M0MTA5OC4uMGQxNjVkZDI2OGQ0MzcwMjhhNDNkMTQ5ZTA3Y2ZhODM4YjRkZTdh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCkBAIC0yOSw3
ICsyOSw4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgewogICAgICAgICBjb25zb2xl
LmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24p
OwogCi0gICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5jcmVhdGVNZXNzYWdlVGV4
dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKyAgICAgICAgbGV0IGNv
bnRlbnRQbGFjZWhvbGRlciA9IFdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkID8gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikgOiBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV0kuVUlT
dHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKwogICAgICAgICBsZXQgZGVzY3JpcHRpb25F
bGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpKTsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LmNsYXNzTmFtZSA9ICJk
ZXNjcmlwdGlvbiI7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJ
LlVJU3RyaW5nKCJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3JpcHQg
b3IgQ1NTLiIpOwpAQCAtNjIsMjEgKzYzLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAg
ICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlY29yZGluZ0F1dG9DYXB0dXJlQ2hlY2tib3hMYWJlbChm
cmFtZUNvdW50KTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5n
IiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOwot
ICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlT
dHJpbmcoIkltcG9ydCIpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4
dDsKLQotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0ku
QnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2gtYWxsIiwgV0kuVUlTdHJpbmcoIlJlZnJlc2gg
YWxsIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwotICAgICAgICB0aGlzLl9y
ZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlz
Ll9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZyZXNoUHJldmlld3MsIHRoaXMp
OwotCi0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0ku
QWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNo
b3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdy
aWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7Ci0gICAg
ICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5z
ZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRv
bk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7Ci0K
ICAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZp
Z2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZp
Z2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50
LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwg
dGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcgPSBudWxs
OwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZSA9IG51bGw7CkBAIC05
MCwxNyArNzcsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKIAogICAgIGdldCBuYXZpZ2F0
aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFt0aGlzLl9p
bXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSwg
dGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRvbk5h
dmlnYXRpb25JdGVtXTsKLSAgICAgICAgaWYgKFdJLkNhbnZhc01hbmFnZXIuc3VwcG9ydHNSZWNv
cmRpbmdBdXRvQ2FwdHVyZSgpKQotICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnVuc2hpZnQo
dGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJO
YXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsKKyAgICAg
ICAgaWYgKHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0pCisgICAgICAg
ICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmln
YXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKICAgICB9CiAKLSAg
ICBoaWRkZW4oKQorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKICAgICB7Ci0gICAg
ICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLQotICAgICAgICBzdXBl
ci5oaWRkZW4oKTsKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7
CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3
KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAtMTE1LDIzICsxMDMsMTgg
QEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMucmVtb3ZlU3Vidmll
dyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7CiAgICAgICAgICAgICB0aGlzLmFk
ZFN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcpOwogICAgICAgICB9Ci0K
LSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7CiAgICAgfQogCiAgICAgY29u
dGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQogICAgIHsKICAgICAgICAgY29udGVudFZpZXcu
ZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5fY29udGVudFZp
ZXdNb3VzZUVudGVyKTsKICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUxlYXZlKTsKLQotICAg
ICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICB9CiAKICAgICBhdHRhY2hl
ZCgpCiAgICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwogCi0gICAgICAgIFdJLnNldHRp
bmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5n
ZWQsIHRoaXMuX3VwZGF0ZVNob3dJbWFnZUdyaWQsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5n
cy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5T
ZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1dG9DYXB0
dXJlRW5hYmxlZENoYW5nZWQsIHRoaXMpOwogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNv
cmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2
ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVD
b3VudENoYW5nZWQsIHRoaXMpOwogCkBAIC0xNDEsNDkgKzEyNCwyNyBAQCBXSS5DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRz
IFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUu
cmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZh
c01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQogICAgICAgICAgICAgdGhpcy5fYWRkU2F2ZWRSZWNv
cmRpbmcocmVjb3JkaW5nKTsKKworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vi
dmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29u
dGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5yZWZyZXNoUHJldmlldygpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQogICAgIHsKKyAgICAgICAgV0kuZG9tTWFu
YWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBXSS5zZXR0
aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQucmVtb3ZlRXZlbnRMaXN0
ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3Jk
aW5nQXV0b0NhcHR1cmVFbmFibGVkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhp
cyk7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5l
cihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwogICAgIH0K
IAogICAgIC8vIFByaXZhdGUKIAotICAgIGdldCBfaXRlbU1hcmdpbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KS5n
ZXRQcm9wZXJ0eVZhbHVlKCItLWl0ZW0tbWFyZ2luIikpOwotICAgIH0KLQotICAgIF9yZWZyZXNo
UHJldmlld3MoKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgY2FudmFzQ29udGVudFZpZXcgb2Yg
dGhpcy5zdWJ2aWV3cykKLSAgICAgICAgICAgIGNhbnZhc0NvbnRlbnRWaWV3LnJlZnJlc2hQcmV2
aWV3KCk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpCi0gICAgewotICAg
ICAgICBsZXQgaGFzSXRlbXMgPSAhIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZTsKLSAgICAg
ICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBoYXNJdGVtczsK
LSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gaGFz
SXRlbXM7Ci0gICAgfQotCi0gICAgX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZChldmVudCkKLSAgICB7
Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWUgPSAhdGhpcy5fc2hvd0dy
aWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7Ci0gICAgfQotCi0gICAgX3VwZGF0ZVNo
b3dJbWFnZUdyaWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0
aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7Ci0g
ICAgfQotCiAgICAgX2NvbnRlbnRWaWV3TW91c2VFbnRlcihldmVudCkKICAgICB7CiAgICAgICAg
IGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKQEAg
LTMwMSw4ICsyNjIsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2Fu
dmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhp
cy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9z
YXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5lbGVtZW50KTsKICAgICAgICAgfQogCi0gICAgICAg
IGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50
ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlz
cGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAgICBsZXQgcmVjb3JkaW5nVHJl
ZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29y
ZGluZy5kaXNwbGF5TmFtZSwgV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVjb3JkaW5nVHlw
ZShyZWNvcmRpbmcudHlwZSksIHJlY29yZGluZyk7CiAgICAgICAgIHJlY29yZGluZ1RyZWVFbGVt
ZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJl
ZU91dGxpbmUuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1Np
ZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc1NpZGViYXJQYW5lbC5qcwppbmRleCBjYjViOTBkNDJkMWQ2MGJjNTg1YmQzYWIxMTVk
ZDBjMjNlYWIyNDFlLi42MDNmNWFlYTQ3ZWIyYjMwNjhmNGI1NjlhODljOGRmYjljOTNlNzVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCkBAIC0yMzcsMTAgKzIzNyw4IEBAIFdJLkNh
bnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5h
dmlnYXRpb25TaWRlYmFyUGFuCiAKICAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVz
ZW50ZWRPYmplY3QpCiAgICAgewotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgICAgIHJldHVybiBzdXBlci5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QpOworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5D
YW52YXMKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVj
b3JkaW5nOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29u
dGVudFZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWRhYjVlZjk5Nzlk
NjJiODExNTk4OWE5MTY0MDQxM2M3MmE4Y2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0lt
YWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMtMmQgLmljb24gewotICAgIGNv
bnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50
YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXM6bWF0Y2hlcygud2ViZ2ws
IC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCgu
Li9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5u
YXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7Ci0gICAgY29udGVudDog
dXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2Fu
dmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXItcHJvZ3JhbSA+IC5pY29uIHsKLSAg
ICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVy
bCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKLX0KLQotQG1lZGlhIChwcmVmZXJz
LWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2
aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKLSAgICAgICAgZmls
dGVyOiBpbnZlcnQoNjAlKTsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwKLSAgICAuY29udGVudC12aWV3
LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsK
LSAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNv
bnRlbnRWaWV3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTFkYmU0ODAxZTU1
N2JjN2MyMGU1MmVjNzdjODA5OTlkNTZhOGQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjk4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi1XSS5DYW52YXNUYWJDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc1Rh
YkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYWJDb250ZW50Vmlldwotewot
ICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoIXJlcHJlc2VudGVkT2JqZWN0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQ2FudmFzKTsKLQotICAgICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxUYWJC
YXJJdGVtLmZyb21UYWJJbmZvKFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnRhYkluZm8oKSk7Ci0K
LSAgICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yID0gV0kuQ2Fu
dmFzU2lkZWJhclBhbmVsOwotICAgICAgICBjb25zdCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3Ry
dWN0b3JzID0gW1dJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCwgV0kuUmVjb3Jk
aW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVs
XTsKLSAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKLSAgICAgICAgc3Vw
ZXIoImNhbnZhcyIsIFsiY2FudmFzIl0sIHRhYkJhckl0ZW0sIG5hdmlnYXRpb25TaWRlYmFyUGFu
ZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycywgZGlzYWJsZUJh
Y2tGb3J3YXJkKTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uID0gbmV3IFdJLkNh
bnZhc0NvbGxlY3Rpb247Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUgPSBuZXcg
V0kuVHJlZU91dGxpbmU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFsbG93c1Jl
cGVhdFNlbGVjdGlvbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0
aGlzLl9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7Ci0KLSAgICAg
ICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQo
ImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIpLCBudWxsLCB0aGlzLl9j
YW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYXBwZW5k
Q2hpbGQodGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fc2F2ZWRS
ZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJlZUVsZW1lbnQoV0kuVUlTdHJp
bmcoIlNhdmVkIFJlY29yZGluZ3MiKSwgV0kuUmVjb3JkaW5nQ29sbGVjdGlvbik7Ci0gICAgICAg
IHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7Ci0gICAgICAg
IHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRSZWNvcmRp
bmdzVHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0ID0gbmV3IFdJ
LktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRo
aXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1
dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29y
ZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVG
cmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1
dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hh
bmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNo
b3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5f
cmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5lbmFibGUoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdGFiSW5mbygpCi0g
ICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgaW1hZ2U6ICJJbWFnZXMvQ2FudmFz
LnN2ZyIsCi0gICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJpbmcoIkNhbnZhcyIpLAotICAgICAg
ICB9OwotICAgIH0KLQotICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52YXMiKTsKLSAgICB9Ci0KLSAg
ICAvLyBQdWJsaWMKLQotICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVz
ZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2FudmFzVHJlZU91dGxp
bmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICB9Ci0KLSAgICBnZXQg
dHlwZSgpCi0gICAgewotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXcuVHlw
ZTsKLSAgICB9Ci0KLSAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGdldCBtYW5hZ2VzTmF2aWdhdGlv
blNpZGViYXJQYW5lbCgpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAg
ICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAg
ICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKLSAgICAg
ICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlv
bgotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRp
bmcKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVy
UHJvZ3JhbTsKLSAgICB9Ci0KLSAgICBzaG93bigpCi0gICAgewotICAgICAgICBzdXBlci5zaG93
bigpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7Ci0g
ICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsK
LQotICAgICAgICBpZiAoIXRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3KQot
ICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVj
dGlvbik7Ci0gICAgfQotCi0gICAgaGlkZGVuKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlY29y
ZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJh
bWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgc3VwZXIuaGlkZGVuKCk7Ci0g
ICAgfQotCi0gICAgY2xvc2VkKCkKLSAgICB7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZGlz
YWJsZSgpOwotCi0gICAgICAgIHN1cGVyLmNsb3NlZCgpOwotICAgIH0KLQotICAgIHJlc3RvcmVT
dGF0ZUZyb21Db29raWUoY29va2llKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVu
dCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgotICAgIH0K
LQotICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0
ZS4KLSAgICB9Ci0KLSAgICBhc3luYyBoYW5kbGVGaWxlRHJvcChmaWxlcykKLSAgICB7Ci0gICAg
ICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJ
LmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7Ci0gICAgfQotCi0gICAgLy8gUHJv
dGVjdGVkCi0KLSAgICBhdHRhY2hlZCgpCi0gICAgewotICAgICAgICBzdXBlci5hdHRhY2hlZCgp
OwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7
Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMp
OwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFu
YWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0
b3BwZWQsIHRoaXMpOwotICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52
YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0
b3BwZWQsIHRoaXMpOwotCi0gICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXM7Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0NvbGxl
Y3Rpb24pIHsKLSAgICAgICAgICAgIGlmICghY2FudmFzZXMuaW5jbHVkZXMoY2FudmFzKSkKLSAg
ICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBjYW52YXNlcykgewotICAgICAgICAgICAgaWYgKCF0
aGlzLl9jYW52YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQotICAgICAgICAgICAgICAgIHRoaXMu
X2FkZENhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fc2F2ZWRSZWNv
cmRpbmdzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgZm9yIChsZXQgcmVj
b3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQotICAgICAgICAgICAg
dGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1
ZX0pOwotICAgIH0KLQotICAgIGRldGFjaGVkKCkKLSAgICB7Ci0gICAgICAgIFdJLkNhbnZhcy5y
ZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0KLSAgICAgICAg
c3VwZXIuZGV0YWNoZWQoKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfYWRkQ2Fu
dmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZhcykpOwotICAgICAgICB0aGlz
Ll9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52YXMpOwotCi0gICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7Ci0gICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWUsCi0gICAgICAgIH07
Ci0KLSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0
aW9uKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7
Ci0gICAgfQotCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCi0gICAgewotICAgICAgICBsZXQg
dHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoY2Fu
dmFzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQsICJNaXNzaW5nIHRyZWUg
ZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7Ci0KLSAgICAgICAgY29uc3Qgc3VwcHJlc3NO
b3RpZmljYXRpb24gPSB0cnVlOwotICAgICAgICB0cmVlRWxlbWVudC5kZXNlbGVjdChzdXBwcmVz
c05vdGlmaWNhdGlvbik7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQucmVtb3Zl
Q2hpbGQodHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24ucmVt
b3ZlKGNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY29u
dGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAoY3VycmVudENvbnRl
bnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCi0gICAgICAgICAgICBXSS5z
aG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgICAgIGVs
c2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbnRlbnRW
aWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhjdXJyZW50Q29udGVudFZpZXcu
cmVwcmVzZW50ZWRPYmplY3QpKQotICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci51cGRh
dGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRWaWV3KCk7Ci0KLSAgICAgICAgbGV0
IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWw7Ci0g
ICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGluc3RhbmNlb2YgV0kuQ2FudmFzU2lk
ZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudmlzaWJsZSkKLSAgICAgICAgICAg
IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVzZW50ZWRPYmplY3RzKCk7Ci0KLSAg
ICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsKLSAgICB9Ci0KLSAgICBfYWRk
UmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQotICAgIHsKLSAgICAgICAgaWYgKCFy
ZWNvcmRpbmcuc291cmNlKSB7Ci0gICAgICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7Ci0g
ICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVF
bGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0bGUsIHJl
Y29yZGluZyk7Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5o
aWRkZW4gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVt
ZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcpCi0gICAgICAgICAgICB0aGlz
LnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOwotICAgIH0KLQotICAgIF9oYW5kbGVD
YW52YXNBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2FkZENhbnZhcyhldmVudC5k
YXRhLmNhbnZhcyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZlbnQpCi0g
ICAgewotICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQuZGF0YS5jYW52YXMpOwotICAg
IH0KLQotICAgIF9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKLSAg
ICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGlu
ZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAoIXNlbGVjdGVkRWxlbWVudCkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxl
Y3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAgIGlmICghdGhpcy5jYW5TaG93
UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7Ci0gICAgICAgICAgICBjb25z
b2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVz
ZW50ZWRPYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
dGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOwotICAgIH0KLQot
ICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVudCkKLSAgICB7Ci0gICAgICAg
IGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7
Ci0gICAgICAgIGlmICghcmVjb3JkaW5nKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGxldCBvcHRpb25zID0ge307Ci0KLSAgICAgICAgLy8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVj
b3JkaW5ncy4KLSAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2UgfHwgIWltcG9ydGVkKQotICAg
ICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2Vy
IHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChy
ZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNv
cmRpbmcpOwotCi0gICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMp
OwotICAgIH0KLQotICAgIF9oYW5kbGVTcGFjZShldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChX
SS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbCkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLmNhbnZhczsKLSAgICAgICAgaWYgKCFjYW52YXMpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUpCi0gICAgICAgICAgICBjYW52
YXMuc3RvcFJlY29yZGluZygpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGxldCBzaW5n
bGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNv
cmRpbmcoc2luZ2xlRnJhbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKLSAgICB9Ci19OwotCi1XSS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBlID0gImNh
bnZhcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRleCBmZTMzZTdh
Y2Q5ZjE2MWIyY2MwY2U3MWNkNTI0YTQ5MWFkZDMzYzJiLi41Y2U4ZGIwZjMwOGRkOTg5ODRiMzFi
Yjk0Y2M1Zjc5YzM5NWMyZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5j
c3MKQEAgLTMzLDE0ICszMywxNyBAQAogICAgIGZsZXgtZ3JvdzogMTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcgewotICAgIG91dGxpbmU6IDAuNXB4
IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ci19Ci0KLS5jb250ZW50LXZpZXcuY29sbGVjdGlv
biAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsKLSAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1n
bHlwaC1jb2xvci1hY3RpdmUpCi19Ci0KIC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5jb250
ZW50LXZpZXdbaGlkZGVuXSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KKworLmNvbnRlbnQtdmll
dy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2FnZS10ZXh0LXZpZXcpIHsKKyAg
ICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAganVzdGlm
eS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICB3aWR0aDog
MTAwJTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAxM3B4OworICAg
IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxl
Y3Rpb25Db250ZW50Vmlldy5qcwppbmRleCAwNTQ3NDE2ODFjODE4YmU1YmNhYTVkNmZmMTlkNTM3
MjliN2IzODY2Li41MDVhNGE3YmRlNDU1MjNiMzBkYTRmNmJjYTc3YjRkOGNjZDEwNmMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0
aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0yOCw3ICsyOCw3IEBAIFdJLkNv
bGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWaWV3CiAgICAgY29uc3RydWN0b3IoY29sbGVjdGlvbiwgY29udGVudFZpZXdD
b25zdHJ1Y3RvciwgY29udGVudFBsYWNlaG9sZGVyKQogICAgIHsKICAgICAgICAgY29uc29sZS5h
c3NlcnQoY29sbGVjdGlvbiBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pOwotICAgICAgICBjb25z
b2xlLmFzc2VydChjb250ZW50Vmlld0NvbnN0cnVjdG9yIGluc3RhbmNlb2YgV0kuQ29udGVudFZp
ZXcpOworICAgICAgICBjb25zb2xlLmFzc2VydCghY29udGVudFZpZXdDb25zdHJ1Y3RvciB8fCBj
b250ZW50Vmlld0NvbnN0cnVjdG9yLnByb3RvdHlwZSBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3
KTsKIAogICAgICAgICBzdXBlcihjb2xsZWN0aW9uKTsKIApAQCAtMzgsNyArMzgsNiBAQCBXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50
ID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvciA9IGNvbnRlbnRW
aWV3Q29uc3RydWN0b3I7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3TWFwID0gbmV3IE1hcDsK
LSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAgPSBuZXcgV2Vha01hcDsKICAgICAgICAgdGhp
cy5fc2VsZWN0ZWRJdGVtID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2VsZWN0aW9uRW5hYmxlZCA9
IGZhbHNlOwogICAgIH0KQEAgLTgzLDE5ICs4MiwyNSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZp
ZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmlldwog
ICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKICAgICB9CiAKLSAgICBzZXRTZWxl
Y3RlZEl0ZW0oaXRlbSkKKyAgICBnZXQgc2VsZWN0ZWRJdGVtKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07CisgICAgfQorCisgICAgc2V0IHNlbGVjdGVkSXRlbShp
dGVtKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fc2VsZWN0aW9uRW5hYmxl
ZCwgIkF0dGVtcHRlZCB0byBzZXQgc2VsZWN0ZWQgaXRlbSB3aGVuIHNlbGVjdGlvbiBpcyBkaXNh
YmxlZC4iKTsKICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBjb250ZW50VmlldyA9IHRoaXMuX2NvbnRlbnRWaWV3
TWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcsICJNaXNz
aW5nIGNvbnRldCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOwotICAgICAgICBpZiAoIWNvbnRlbnRW
aWV3KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRl
bSk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgp
OworCisgICAgICAgIGlmIChpdGVtKSB7CisgICAgICAgICAgICBsZXQgY29udGVudFZpZXcgPSB0
aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChjb250ZW50VmlldywgIk1pc3NpbmcgY29udGVudCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOwor
ICAgICAgICAgICAgaWYgKGNvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIGNvbnRlbnRWaWV3
LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgLy8gUHJvdGVjdGVkCkBAIC0xMjAsMjAgKzEyNSw5IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50
VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3
CiAKICAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gbmV3IHRoaXMuX2NvbnRlbnRWaWV3Q29uc3Ry
dWN0b3IoaXRlbSwgdGhpcy5jb250ZW50Vmlld0NvbnN0cnVjdG9yT3B0aW9ucyk7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcpOwot
Ci0gICAgICAgIGxldCBoYW5kbGVDbGljayA9IChldmVudCkgPT4gewotICAgICAgICAgICAgaWYg
KGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCi0gICAgICAg
ICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVtKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRlbSk7Ci0gICAgICAgIH07Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0ID09PSBp
dGVtKTsKIAogICAgICAgICB0aGlzLl9jb250ZW50Vmlld01hcC5zZXQoaXRlbSwgY29udGVudFZp
ZXcpOwotICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcC5zZXQoaXRlbSwgaGFuZGxlQ2xpY2sp
OwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
aGFuZGxlQ2xpY2spOwogCiAgICAgICAgIHRoaXMuYWRkU3Vidmlldyhjb250ZW50Vmlldyk7CiAg
ICAgICAgIHRoaXMuY29udGVudFZpZXdBZGRlZChjb250ZW50Vmlldyk7CkBAIC0xNjksMTQgKzE2
Myw2IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgY29udGVudFZpZXcucmVtb3Zl
RXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAotICAgICAgICBsZXQgaGFuZGxlQ2xp
Y2sgPSB0aGlzLl9oYW5kbGVDbGlja01hcC5nZXQoaXRlbSk7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGhhbmRsZUNsaWNrKTsKLQotICAgICAgICBpZiAoaGFuZGxlQ2xpY2spIHsKLSAgICAgICAg
ICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBoYW5k
bGVDbGljayk7Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcC5kZWxldGUoaXRlbSk7
Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoIXRoaXMuc3Vidmlld3MubGVuZ3RoKQogICAgICAg
ICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVyKCk7CiAgICAgfQpAQCAtMjAwLDYgKzE4
Niw4IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVu
dFBsYWNlaG9sZGVyRWxlbWVudCA9IHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlcjsKICAgICAgICAg
fQogCisgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQuY2xhc3NMaXN0LmFk
ZCgicGxhY2Vob2xkZXIiKTsKKwogICAgICAgICBpZiAoIXRoaXMuX2NvbnRlbnRQbGFjZWhvbGRl
ckVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50KTsKICAgICB9CkBAIC0yMTIsMTAgKzIw
MCwxMSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgaW5pdGlhbExheW91dCgpCiAgICAg
ewotICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZSB8fCAhdGhpcy5fY29u
dGVudFZpZXdDb25zdHJ1Y3RvcikgeworICAgICAgICBpZiAodGhpcy5fY29udGVudFZpZXdDb25z
dHJ1Y3RvcikKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworCisgICAgICAgIGlmICghdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKQog
ICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVyKCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBhdHRhY2hlZCgpCkBAIC0yOTIsNiArMjgx
LDMwIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRW
aWV3LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKICAgICAgICAgfQogCisgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNvbGxlY3Rpb25Db250ZW50Vmll
dy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2VkKTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRP
YmplY3RzRGlkQ2hhbmdlKTsKICAgICB9CisKKyAgICBfaGFuZGxlQ2xpY2soZXZlbnQpCisgICAg
eworICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2ZW50LmN0cmxLZXkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgW2l0ZW0sIGNvbnRlbnRWaWV3XSBv
ZiB0aGlzLl9jb250ZW50Vmlld01hcCkgeworICAgICAgICAgICAgaWYgKGNvbnRlbnRWaWV3LmVs
ZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlz
Ll9zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVt
KGl0ZW0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgV0kuc2hv
d1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVk
KQorICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKKyAgICB9Cit9OworCitXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQgPSB7CisgICAgU2VsZWN0ZWRJdGVtQ2hhbmdlZDog
ImNvbGxlY3Rpb24tY29udGVudC12aWV3LXNlbGVjdGVkLWl0ZW0tY2hhbmdlZCIsCiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250
ZW50Vmlldy5qcwppbmRleCBkZjkxMmRkNTZmYTA3ZGY5NDhmMGQ3ZjdhZjBkN2M2ZDFiNzlhMmY2
Li4yOTZjMmE1NDIzYTBmNjkxZWFjN2QyZDBlOTM2MDBmNTE1NGYwZGU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmll
dy5qcwpAQCAtNjAsOSArNjAsNiBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNhbnZhc0NvbnRlbnRWaWV3
KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKLSAgICAgICAgaWYgKHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgICAg
IHJldHVybiBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyhyZXByZXNlbnRlZE9iamVj
dCwgZXh0cmFBcmd1bWVudHMpOwotCiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLlNoYWRl
clByb2dyYW1Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwog
CkBAIC0xODIsNiArMTc5LDkgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBl
eHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQXVkaXRUZXN0R3JvdXAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRp
dFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQXVkaXRUZXN0R3Jv
dXBDb250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCisgICAg
ICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmpl
Y3QsIGV4dHJhQXJndW1lbnRzKTsKKwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5Db2xsZWN0
aW9uQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIApAQCAt
MjczLDggKzI3Myw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5WaWV3CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxl
Y3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5UaW1lbGlu
ZVJlY29yZGluZykKQEAgLTMxOCwxMCArMzE2LDE0IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3Mg
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2UgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFu
Y2VvZiBXSS5BdWRpdFRlc3RHcm91cAogICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9u
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgaWYgKHR5cGVvZiByZXByZXNlbnRlZE9iamVjdCA9PT0gInN0cmluZyIgfHwgcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0W1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVT
eW1ib2xdKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKQEAgLTUxMiw0ICs1MTQsNSBAQCBXSS5Db250ZW50Vmlldy5FdmVudCA9IHsKICAg
ICBOYXZpZ2F0aW9uSXRlbXNEaWRDaGFuZ2U6ICJjb250ZW50LXZpZXctbmF2aWdhdGlvbi1pdGVt
cy1kaWQtY2hhbmdlIgogfTsKIAorV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbCA9IFN5
bWJvbCgiaXMtdmlld2FibGUiKTsKIFdJLkNvbnRlbnRWaWV3LkNvbnRlbnRWaWV3Rm9yUmVwcmVz
ZW50ZWRPYmplY3RTeW1ib2wgPSBTeW1ib2woImNvbnRlbnQtdmlldy1mb3ItcmVwcmVzZW50ZWQt
b2JqZWN0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzCmluZGV4IGU1
YTVmZWMxZWFiYjVjMDk3MmNmYTA1M2Q1MzRjMzYwMDllMWI3NmYuLjdlZDBjODJlYjNiNzFlZWI2
YmJiMWY5N2U5NzkwZjZiYmJjNTU2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2lt
cGxlUm93LmpzCkBAIC05Niw3ICs5Niw3IEBAIFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93ID0g
Y2xhc3MgRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cgZXh0ZW5kcyBXSS5EZXRhaWxzU2VjCiAgICAg
ewogICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8ICIiOwogCi0gICAgICAgIGlmICh0aGlz
Ll92YWx1ZSkgeworICAgICAgICBpZiAodGhpcy5fdmFsdWUgfHwgdGhpcy5fdmFsdWUgPT09IDAp
IHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdJLkRldGFpbHNT
ZWN0aW9uU2ltcGxlUm93LkVtcHR5U3R5bGVDbGFzc05hbWUpOwogCiAgICAgICAgICAgICAvLyBJ
ZiB0aGUgdmFsdWUgaGFzIHNwYWNlIGNoYXJhY3RlcnMgdGhhdCBjYXVzZSB3b3JkIHdyYXBwaW5n
IHRoZW4gd2UgZG9uJ3QgbmVlZCB0aGUgZGF0YSBjbGFzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFw
aGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNjYzZTZmMGYxNzJmY2Uw
OTI2N2Y4ZWMxNmFlYThkZDdlYmE1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcu
Y3NzCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29udGVudC12aWV3LmdyYXBoaWNz
LW92ZXJ2aWV3IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9y
LWNvbnRlbnQpOworICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKKyAgICBwYWRkaW5nLWJvdHRvbTog
dmFyKC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0KTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2wo
MCwgMCUsIDkwJSk7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaW5o
ZXJpdDsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90
KDpmaXJzdC1jaGlsZCkgeworICAgIG1hcmdpbi10b3A6IDIwcHg7Cit9CisKKy5jb250ZW50LXZp
ZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciB7CisgICAgZGlzcGxheTog
ZmxleDsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIHBvc2l0aW9uOiBzdGlja3k7Cisg
ICAgdG9wOiAwOworICAgIHotaW5kZXg6IDE7CisgICAgbWluLWhlaWdodDogdmFyKC0tbmF2aWdh
dGlvbi1iYXItaGVpZ2h0KTsKKyAgICAtd2Via2l0LXBhZGRpbmctc3RhcnQ6IDhweDsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk3JSk7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4
IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVhZGVyIHsKKyAgICBi
b3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQt
dmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyID4gaDEgeworICAgIG1h
cmdpbjogMDsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24g
PiAuaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBmbGV4LWdyb3c6IDE7CisgICAganVz
dGlmeS1jb250ZW50OiBmbGV4LWVuZDsKKyAgICBib3JkZXItYm90dG9tOiBub25lOworfQorCisu
Y29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgcmlnaHQ6
IDA7CisgICAgYm90dG9tOiAwOworICAgIGxlZnQ6IDA7Cit9CisKK0BtZWRpYSAocHJlZmVycy1j
b2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAxNCUpOworICAgIH0KKwor
ICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciB7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMjElKTsKKyAgICB9Cit9CisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dy
YXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMGMwYWUwMTE3NWQ5N2FkZWIyNGRjMzBjMGIzNTA3N2NhYmEyOGU5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMjA3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAg
eworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJncmFwaGljcy1vdmVydmlldyIpOworCisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQtcmVjb3JkaW5n
IiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOwor
ICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sdGlwID0gV0kuVUlT
dHJpbmcoIkltcG9ydCIpOworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4
dDsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0
ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJ
bXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMu
X3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5z
dmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
YWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0
aGlzLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5f
c2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmln
YXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3Jp
ZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmln
YXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdy
aWQudmFsdWU7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRk
RXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlz
Ll9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRoaXMuX2Nh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyhXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworCisgICAgICAgIHRoaXMuX292
ZXJ2aWV3Vmlld3MgPSBbXTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBzdXBw
bGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X292ZXJ2aWV3Vmlld3MuZmxhdE1hcCgoc3VidmlldykgPT4gc3Vidmlldy5zdXBwbGVtZW50YWxS
ZXByZXNlbnRlZE9iamVjdHMpOworICAgIH0KKworICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQor
ICAgIHsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFtdOworICAgICAgICBpZiAoIVdJ
LmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRl
bXMucHVzaEFsbCh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVt
cyk7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaChuZXcgV0kuRGl2aWRlck5hdmln
YXRpb25JdGVtKTsKKyAgICAgICAgfQorICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlz
Ll9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRl
bSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlzLl9zaG93R3JpZEJ1dHRv
bk5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKKyAgICB9
CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1
cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRF
dmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlU2hvd0lt
YWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5faGFuZGxlU2hvd0lt
YWdlR3JpZFNldHRpbmdDaGFuZ2VkKCk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsK
KyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAg
IFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5n
LkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCwg
dGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFs
TGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAg
ICBpZiAoV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGxldCBj
cmVhdGVTZWN0aW9uID0gKGlkZW50aWZpZXIsIHRpdGxlLCBvdmVydmlld1ZpZXcpID0+IHsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChvdmVydmlld1ZpZXcgaW5zdGFuY2VvZiBXSS5D
b250ZW50Vmlldyk7CisKKyAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbkVsZW1lbnQgPSB0aGlz
LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIpKTsK
KyAgICAgICAgICAgICAgICBzZWN0aW9uRWxlbWVudC5jbGFzc05hbWUgPSBpZGVudGlmaWVyOwor
CisgICAgICAgICAgICAgICAgbGV0IGhlYWRlckVsZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICAgICAg
aGVhZGVyRWxlbWVudC5jbGFzc05hbWUgPSAiaGVhZGVyIjsKKworICAgICAgICAgICAgICAgIGxl
dCB0aXRsZUVsZW1lbnQgPSBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImgxIikpOworICAgICAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVu
dCA9IHRpdGxlOworCisgICAgICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IG92ZXJ2
aWV3Vmlldy5uYXZpZ2F0aW9uSXRlbXM7CisgICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25J
dGVtcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBu
ZXcgV0kuTmF2aWdhdGlvbkJhcihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJuYXYiKSwgbmF2aWdh
dGlvbkl0ZW1zKTsKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmRDaGls
ZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN1
YnZpZXcobmF2aWdhdGlvbkJhcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgbGV0IGNvbnRlbnRFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50
LmNsYXNzTmFtZSA9ICJjb250ZW50IjsKKworICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50
LmFwcGVuZENoaWxkKG92ZXJ2aWV3Vmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICB0aGlz
LmFkZFN1YnZpZXcob3ZlcnZpZXdWaWV3KTsKKworICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmll
dy5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rl
ZEl0ZW1DaGFuZ2VkLCB0aGlzLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuYWRkRXZlbnRMaXN0ZW5lcihX
SS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFu
Z2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0
c0RpZENoYW5nZSwgdGhpcyk7CisgICAgICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdWaWV3cy5w
dXNoKG92ZXJ2aWV3Vmlldyk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBjcmVhdGVT
ZWN0aW9uKCJjYW52YXMiLCBXSS5VSVN0cmluZygiQ2FudmFzZXMiKSwgdGhpcy5fY2FudmFzT3Zl
cnZpZXdDb250ZW50Vmlldyk7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9u
ID0gV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uOworICAgICAgICAgICAg
Y3JlYXRlU2VjdGlvbigid2ViLWFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9u
cyIpLCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxl
Y3Rpb24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5p
bWF0aW9uKSkpOworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigiY3NzLWFuaW1hdGlvbiIsIFdJ
LlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9ucyIpLCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUo
V0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uKSkpOworICAgICAgICAgICAgY3JlYXRlU2Vj
dGlvbigiY3NzLXRyYW5zaXRpb24iLCBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb25zIiksIG5l
dyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5h
bmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9u
KSkpOworCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk7CisK
KyAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9IG5ldyBXSS5Ecm9wWm9uZVZpZXcodGhpcyk7Cisg
ICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0kuVUlTdHJpbmcoIkltcG9ydCBSZWNvcmRpbmci
KTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRhcmdldEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7Cisg
ICAgICAgIHRoaXMuYWRkU3Vidmlldyhkcm9wWm9uZVZpZXcpOworICAgIH0KKworICAgIC8vIERy
b3Bab25lVmlldyBkZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZl
bnQoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFUcmFu
c2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMiKTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhhbmRs
ZURyb3AoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQu
ZGF0YVRyYW5zZmVyLmZpbGVzOworICAgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxl
cywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAg
ICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQo
KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3
Vmlld3MpCisgICAgICAgICAgICBvdmVydmlld1ZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNr
ZWQoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZSA9ICF0aGlzLl9z
aG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZDsKKyAgICB9CisKKyAgICBfaGFu
ZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93
SW1hZ2VHcmlkLnZhbHVlOworICAgIH0KKworICAgIF9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0
aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisgICAgeworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmlt
cG9ydEpTT04oKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQp
LCB7bXVsdGlwbGU6IHRydWV9KTsKKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdWaWV3U2Vs
ZWN0ZWRJdGVtQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIGlmICghZXZlbnQudGFyZ2V0
LnNlbGVjdGVkSXRlbSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBv
dmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykgeworICAgICAgICAgICAgaWYgKG92
ZXJ2aWV3VmlldyAhPT0gZXZlbnQudGFyZ2V0ICYmIG92ZXJ2aWV3Vmlldy5zZWxlY3Rpb25FbmFi
bGVkKQorICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5zZWxlY3RlZEl0ZW0gPSBudWxsOwor
ICAgICAgICB9CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRhbFJl
cHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZShldm5ldCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJl
cHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk7CisgICAgfQorCisgICAgX2hhbmRsZUNsaWNrKGV2
ZW50KQorICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gdGhpcy5lbGVtZW50KQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0
aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAgICBpZiAob3ZlcnZpZXdWaWV3LnNlbGVj
dGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9
IG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDA3NWMwMzc1MDdhMmVjNzdhMzUxZmRkMzg4YTU4ZjRh
MmE4ODFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSw1NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+
IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFn
ZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3Mg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMtMmQgLmljb24geworICAgIGNv
bnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50
YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhczptYXRjaGVzKC53ZWJn
bCwgLndlYmdsMiwgLndlYmdwdSwgLndlYm1ldGFsKSAuaWNvbiB7CisgICAgY29udGVudDogdXJs
KC4uL0ltYWdlcy9DYW52YXMzRC5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGlj
cyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24geworICAgIGNvbnRl
bnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFi
LmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXItcHJvZ3JhbSA+IC5pY29u
IHsKKyAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBuZykg
MXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKK30KKworQG1lZGlhIChw
cmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBo
aWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5ncmFwaGljcy1vdmVydmlldyAuaWNvbiB7Cisg
ICAgICAgIGZpbHRlcjogaW52ZXJ0KDYwJSk7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy50
YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwKKyAgICAu
Y29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3Jk
aW5nID4gLmljb24geworICAgICAgICBmaWx0ZXI6IGludmVydCgpOworICAgIH0KK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNz
VGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNmQ4NTcyMjY3OTgz
MGU0YTY1NzcxOTdkOWE5Mjg1MzgyNzAzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3Lmpz
CkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuR3JhcGhpY3NUYWJDb250ZW50Vmll
dyA9IGNsYXNzIEdyYXBoaWNzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3Nl
clRhYkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgbGV0
IHRhYkJhckl0ZW0gPSBXSS5HZW5lcmFsVGFiQmFySXRlbS5mcm9tVGFiSW5mbyhXSS5HcmFwaGlj
c1RhYkNvbnRlbnRWaWV3LnRhYkluZm8oKSk7CisKKyAgICAgICAgY29uc3QgbmF2aWdhdGlvblNp
ZGViYXJQYW5lbENvbnN0cnVjdG9yID0gV0kuQ2FudmFzU2lkZWJhclBhbmVsOworICAgICAgICBj
b25zdCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzID0gWworICAgICAgICAgICAgV0ku
UmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuUmVjb3Jk
aW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAgICAgV0kuQ2FudmFzRGV0YWls
c1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFu
ZWwsCisgICAgICAgIF07CisgICAgICAgIGNvbnN0IGRpc2FibGVCYWNrRm9yd2FyZCA9IHRydWU7
CisgICAgICAgIHN1cGVyKCJncmFwaGljcyIsIFsiZ3JhcGhpY3MiXSwgdGFiQmFySXRlbSwgbmF2
aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yLCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3Ry
dWN0b3JzLCBkaXNhYmxlQmFja0ZvcndhcmQpOworCisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJl
ZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmU7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJl
ZU91dGxpbmUuYWxsb3dzUmVwZWF0U2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNl
bGVjdGlvbkRpZENoYW5nZSwgdGhpcy5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlv
bkRpZENoYW5nZSwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudCA9
IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5n
KCJPdmVydmlldyIpLCBudWxsLCB7W1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVTeW1ib2xdOiB0
cnVlfSk7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhp
cy5fY2FudmFzZXNUcmVlRWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNv
cmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJlZUVsZW1lbnQoV0kuVUlTdHJpbmco
IlNhdmVkIFJlY29yZGluZ3MiKSk7CisgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5n
c1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQp
OworCisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRj
dXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNl
LmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJl
dmVudHNEZWZhdWx0ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2Fi
bGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0g
bmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlm
dCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQo
dGhpcykpOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0
bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJh
bWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5l
bmFibGUoKTsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lbmFibGUoKTsKKyAgICB9CisK
KyAgICBzdGF0aWMgdGFiSW5mbygpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgaW1hZ2U6ICJJbWFnZXMvR3JhcGhpY3Muc3ZnIiwKKyAgICAgICAgICAgIHRpdGxlOiBXSS5V
SVN0cmluZygiR3JhcGhpY3MiKSwKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNU
YWJBbGxvd2VkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0Rv
bWFpbigiQ2FudmFzIikKKyAgICAgICAgICAgIHx8IEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWlu
KCJBbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIHRyZWVFbGVtZW50
Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVwcmVzZW50
ZWRPYmplY3QpOworICAgIH0KKworICAgIGdldCB0eXBlKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGU7CisgICAgfQorCisgICAgZ2V0IHN1cHBv
cnRzU3BsaXRDb250ZW50QnJvd3NlcigpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBnZXQgbWFuYWdlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJl
cHJlc2VudGVkT2JqZWN0LCBjb29raWUpCisgICAgeworICAgICAgICBpZiAocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKSB7CisgICAgICAgICAgICB0aGlzLmNvbnRl
bnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN1cGVyLnNob3dSZXByZXNl
bnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgY29va2llKTsKKyAgICB9CisKKyAgICBjYW5T
aG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICBy
ZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uCisg
ICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcworICAg
ICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdDb2xs
ZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJl
Y29yZGluZworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5T
aGFkZXJQcm9ncmFtQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uOworICAgIH0KKworICAgIGNs
b3NlZCgpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmRpc2FibGUoKTsKKyAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5kaXNhYmxlKCk7CisKKyAgICAgICAgc3VwZXIuY2xvc2Vk
KCk7CisgICAgfQorCisgICAgcmVzdG9yZVN0YXRlRnJvbUNvb2tpZShjb29raWUpCisgICAgewor
ICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3
NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAgc2F2ZVN0YXRlVG9Db29raWUoY29va2ll
KQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtp
dC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgorICAgIH0KKworICAgIGFzeW5jIGhhbmRsZUZp
bGVEcm9wKGZpbGVzKQorICAgIHsKKyAgICAgICAgYXdhaXQgV0kuRmlsZVV0aWxpdGllcy5yZWFk
SlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1
bHQpKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGF0dGFjaGVkKCkKKyAgICB7
CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5j
YW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVt
QWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7CisgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwg
dGhpcyk7CisgICAgICAgIFdJLkNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVu
dC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwg
dGhpcyk7CisKKyAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdGhpcy5fY2FudmFzZXNUcmVlRWxl
bWVudC5jaGlsZHJlbikgeworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGNoaWxkLnJlcHJlc2Vu
dGVkT2JqZWN0OworICAgICAgICAgICAgaWYgKGNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcyAm
JiAhV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQorICAgICAg
ICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICB9CisKKyAgICAg
ICAgZm9yIChsZXQgY2FudmFzIG9mIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikg
eworICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxl
bWVudChjYW52YXMpKQorICAgICAgICAgICAgICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOwor
ICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFn
ZXIuc2F2ZWRSZWNvcmRpbmdzKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc2VzVHJl
ZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlY29yZGluZykpCisgICAgICAgICAgICAgICAgdGhp
cy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZX0p
OworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSBm
YWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9
IGZhbHNlOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Jl
Y29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xl
RnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAgV0kuQ2FudmFzLnJlbW92
ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hh
bmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5n
U2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAgICAg
ICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0
aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgdGhpcy5faGFuZGxl
Q2FudmFzUmVtb3ZlZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9
CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHRoaXMuX292ZXJ2aWV3Q29u
dGVudFZpZXcgPSBuZXcgV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3OworICAgICAgICB0
aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRW
aWV3KTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfYWRkQ2FudmFzKGNhbnZhcykK
KyAgICB7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3
IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZhcykpOworCisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRydWUsCisgICAgICAgIH07
CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0
aW9uKQorICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7
CisgICAgfQorCisgICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCisgICAgeworICAgICAgICBsZXQg
dHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChj
YW52YXMpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCwgIk1pc3NpbmcgdHJl
ZSBlbGVtZW50IGZvciBjYW52YXMuIiwgY2FudmFzKTsKKworICAgICAgICBjb25zdCBzdXBwcmVz
c05vdGlmaWNhdGlvbiA9IHRydWU7CisgICAgICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KHN1cHBy
ZXNzTm90aWZpY2F0aW9uKTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5yZW1v
dmVDaGlsZCh0cmVlRWxlbWVudCk7CisKKyAgICAgICAgbGV0IGN1cnJlbnRDb250ZW50VmlldyA9
IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OworICAgICAgICBpZiAoY3Vy
cmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCisgICAgICAg
ICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKTsKKyAgICAgICAgZWxzZSBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2Yg
V0kuUmVjb3JkaW5nQ29udGVudFZpZXcgJiYgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24uaGFz
KGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCkpCisgICAgICAgICAgICB0aGlz
LmNvbnRlbnRCcm93c2VyLnVwZGF0ZUhpZXJhcmNoaWNhbFBhdGhGb3JDdXJyZW50Q29udGVudFZp
ZXcoKTsKKworICAgICAgICBsZXQgbmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IHRoaXMubmF2aWdh
dGlvblNpZGViYXJQYW5lbDsKKyAgICAgICAgaWYgKG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgaW5z
dGFuY2VvZiBXSS5DYW52YXNTaWRlYmFyUGFuZWwgJiYgbmF2aWdhdGlvblNpZGViYXJQYW5lbC52
aXNpYmxlKQorICAgICAgICAgICAgbmF2aWdhdGlvblNpZGViYXJQYW5lbC51cGRhdGVSZXByZXNl
bnRlZE9iamVjdHMoKTsKKworICAgICAgICB0aGlzLnNob3dEZXRhaWxzU2lkZWJhclBhbmVscygp
OworICAgIH0KKworICAgIF9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zID0ge30pCisg
ICAgeworICAgICAgICBpZiAoIXJlY29yZGluZy5zb3VyY2UpIHsKKyAgICAgICAgICAgIGNvbnN0
IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9
IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3Bs
YXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2Fu
dmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IGZhbHNlOworICAgICAgICAgICAgdGhp
cy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5n
VHJlZUVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFvcHRpb25zLnN1cHByZXNz
U2hvd1JlY29yZGluZykKKyAgICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJl
Y29yZGluZyk7CisgICAgfQorCisgICAgX2hhbmRsZUNhbnZhc0FkZGVkKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGV2ZW50LmRhdGEuaXRlbSk7CisgICAgfQorCisgICAg
X2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZW1vdmVD
YW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisKKyAgICBfaGFuZGxlT3ZlcnZpZXdUcmVl
T3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAgIGxldCBzZWxl
Y3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1l
bnQ7CisgICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIHN3aXRjaCAoc2VsZWN0ZWRFbGVtZW50KSB7CisgICAgICAgIGNhc2UgdGhpcy5f
Y2FudmFzZXNUcmVlRWxlbWVudDoKKyAgICAgICAgY2FzZSB0aGlzLl9zYXZlZENhbnZhc1JlY29y
ZGluZ3NUcmVlRWxlbWVudDoKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0Nv
bnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgbGV0IHJlcHJlc2VudGVkT2JqZWN0ID0gc2VsZWN0ZWRF
bGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBpZiAoIXRoaXMuY2FuU2hvd1JlcHJl
c2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KSkgeworICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJlcHJlc2VudGVkT2JqZWN0LiIsIHJlcHJlc2VudGVk
T2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
c2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICB9CisKKyAgICBf
aGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQg
e3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyLCBpbXBvcnRlZH0gPSBldmVudC5kYXRhOworICAg
ICAgICBpZiAoIXJlY29yZGluZykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQg
b3B0aW9ucyA9IHt9OworCisgICAgICAgIC8vIEFsd2F5cyBzaG93IGltcG9ydGVkIHJlY29yZGlu
Z3MuCisgICAgICAgIGlmIChyZWNvcmRpbmcuc291cmNlIHx8ICFpbXBvcnRlZCkKKyAgICAgICAg
ICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0
aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVz
ZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5n
KTsKKworICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKKyAg
ICB9CisKKyAgICBfaGFuZGxlU3BhY2UoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoV0kuaXNF
dmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChldmVudCkpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbGV0IGNhbnZhcyA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5l
bC5jYW52YXM7CisgICAgICAgIGlmICghY2FudmFzKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5nQWN0aXZlKQorICAgICAgICAgICAgY2FudmFzLnN0
b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsZXQgc2luZ2xlRnJh
bWUgPSAhIWV2ZW50LnNoaWZ0S2V5OworICAgICAgICAgICAgY2FudmFzLnN0YXJ0UmVjb3JkaW5n
KHNpbmdsZUZyYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CisgICAgfQorfTsKKworV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlID0gImdyYXBo
aWNzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL01haW4uY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TWFpbi5jc3MKaW5kZXggY2UzMWFmNDYzMzc4NjEzNGIxY2M3Mjc2YTM0ZDZhNDQ3MThhMmFlMi4u
MTBjZDY0YTQ1NTkwOTk1Y2RhNDkwMjkyMWUxYmY5ODE1MDNhZjkxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKQEAgLTIwOSwx
MiArMjA5LDEyIEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRp
b24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7CiAgICAgbWFyZ2luLWJvdHRvbTogMTVw
eDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CisubmF2
aWdhdGlvbi1pdGVtLWhlbHAgewogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIGxpbmUtaGVpZ2h0
OiAyMnB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5u
YXZpZ2F0aW9uLWJhciB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIg
ewogICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgIGhlaWdodDogMjBweDsKICAgICBwYWRk
aW5nOiAwIDRweDsKQEAgLTIyMiw5ICsyMjIsOSBAQCBib2R5LmRvY2tlZDptYXRjaGVzKC5yaWdo
dCwgLmxlZnQpICNuYXZpZ2F0aW9uLXNpZGViYXIuY29sbGFwc2VkID4gLnJlc2l6ZXIgewogICAg
IHZlcnRpY2FsLWFsaWduOiAtM3B4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRp
b24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKKy5uYXZpZ2F0aW9uLWl0ZW0t
aGVscCA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAg
cGFkZGluZzogMCA0cHg7CisgICAgcGFkZGluZzogMCA0cHggIWltcG9ydGFudDsKICAgICBmb250
LXNpemU6IDExcHg7CiAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgIGJvcmRlcjogc29saWQg
MXB4IHZhcigtLWJvcmRlci1jb2xvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5j
c3MKaW5kZXggOGQ2MGYyM2YwYjJiZWM3MGQ4YmU4M2QwMjE3YTcwYWM3NGZkMjM1OC4uMTFmMWRk
ODJlNTUzNzcwMTkwYjJmZjdlYjhiNjA4ZWVjN2UyOWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3Nz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGlu
Z0NvbnRlbnRWaWV3LmNzcwpAQCAtMjMsMTggKzIzLDE4IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5n
IHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZs
ZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgcGFkZGluZzogMTBweDsKICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJl
Y29yZGluZyA+IGhlYWRlciB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciB7CiAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgeworLmNvbnRlbnQtdmlldy5yZWNv
cmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CiAgICAgZGlzcGxheTogZmxleDsK
ICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgcGFkZGluZzogNHB4IDA7CkBAIC00MywzMSArNDMs
MzEgQEAKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50
YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gKiB7CisuY29udGVu
dC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gKiB7CiAgICAg
bWFyZ2luOiA0cHggOHB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcg
PiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IC5zbGlkZXItdmFsdWUgeworLmNvbnRlbnQt
dmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IC5zbGlkZXItdmFs
dWUgewogICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlOwogICAgIGZvbnQtZmFtaWx5
OiAxMXB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIg
PiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKKy5jb250ZW50LXZpZXcu
cmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdl
XSB7CiAgICAgZmxleDogMTsKICAgICB3aWR0aDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldzpu
b3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0
eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgeworLmNvbnRlbnQtdmll
dy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFu
Z2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CiAgICAgaGVpZ2h0OiAycHg7CiAg
ICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgICBib3JkZXItcmFk
aXVzOiAxcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRl
ciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250
YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgIG1h
cmdpbi10b3A6IC02cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+
IC5wcmV2aWV3LWNvbnRhaW5lciB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IC5wcmV2aWV3
LWNvbnRhaW5lciB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4OiAxOwogICAgIGp1c3Rp
ZnktY29udGVudDogY2VudGVyOwpAQCAtNzcsMjcgKzc3LDI3IEBACiAgICAgaGVpZ2h0OiAtd2Vi
a2l0LWZpbGwtYXZhaWxhYmxlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRp
bmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nIDptYXRj
aGVzKGltZywgY2FudmFzKSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIG1heC13aWR0
aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgu
dGFiKS5yZWNvcmRpbmcgY2FudmFzLnBhdGggeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgY2Fu
dmFzLnBhdGggewogICAgIHotaW5kZXg6IDEwOwogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3It
c2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nIHsK
KyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHVuc2V0OwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+
IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGlu
ZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogdW5zZXQ7CiAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yLXNlY29u
ZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4g
aGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CisgICAgLmNv
bnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0
W3R5cGU9cmFuZ2VdIHsKICAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKaW5kZXggM2E5
YTlhZWZmMjljNWVmY2Q3NzliYjRkMjkwNDBhYWQ4OWRiZjFkNC4uMmY5NGJjNzQwOWY0ZDU1NDY2
NWNkZTg5YzlmMGY5OWNhZGVmOTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMjMsNiArMjMsMTQgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisuY29udGVudC12aWV3LnJlc291cmNlLWNvbGxl
Y3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nIHsKKyAgICBvdXRsaW5lOiAwLjVweCBzb2xpZCB2
YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rp
b24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsKKyAgICBvdXRsaW5lLWNvbG9yOiB2YXIo
LS1nbHlwaC1jb2xvci1hY3RpdmUpCit9CisKIC5yZXNvdXJjZS1jb2xsZWN0aW9uLWltYWdlLXR5
cGUtc2NvcGUtYmFyLmRlZmF1bHQtaXRlbS1zZWxlY3RlZCB7CiAgICAgLS1zY29wZS1iYXItdGV4
dC1jb2xvci1vdmVycmlkZTogdmFyKC0tdGV4dC1jb2xvcik7CiAgICAgLS1zY29wZS1iYXItYmFj
a2dyb3VuZC1jb2xvci1vdmVycmlkZTogdHJhbnNwYXJlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250
ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
c291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCmluZGV4IGM5NGVjYTc3NzIxNGUzMWRjNWQ4
MWU2MTA5MDYwNjNmNzdjNzRmY2MuLmZjMWM2YTJjZDRhYTdkYTE5NTBjMGEzZDNmZjA2MzQzMmY5
N2Q2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmpzCkBAIC0zNSw2ICszNSw4IEBAIFdJLlJlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0g
Y2xhc3MgUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXCiAKICAgICAgICAg
c3VwZXIoY29sbGVjdGlvbiwgY29udGVudFZpZXdDb25zdHJ1Y3Rvcik7CiAKKyAgICAgICAgdGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInJlc291cmNlLWNvbGxlY3Rpb24iKTsKKwogICAgICAg
ICBpZiAoY29sbGVjdGlvbi5yZXNvdXJjZVR5cGUgPT09IFdJLlJlc291cmNlLlR5cGUuSW1hZ2Up
IHsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcg
V0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmco
IlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5
IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CiAg
ICAgICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxl
U2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMDg4MTA2MGZhNDFiMDY3NmQw
NzcxYzdkOTM5YTRmYmNiZDFlNDc3Li44ZjY4NTQ3MDA0ODdjMjgxNTA2YjUzN2RhOWNlMjcyYWQw
MjI1YmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMjAtMDEtMjggIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBpbnN0cnVt
ZW50YXRpb24gZm9yIHNob3dpbmcgZXhpc3RpbmcgV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQzNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjgzMjgwODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4K
KworICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
YW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlm
ZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LXdlYi1hbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdEVmZmVjdFRhcmdldC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RFZmZlY3RUYXJnZXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5p
bWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlv
bi90YXJnZXRDaGFuZ2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRp
b24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6IEFkZGVkLgorICAg
ICAgICAoY3JlYXRlQW5pbWF0aW9uKToKKyAgICAgICAgKGRlc3Ryb3lBbmltYXRpb25zKToKKyAg
ICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGF3
YWl0QW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxp
ZmVjeWNsZVV0aWxpdGllcy5hc3luYyBhd2FpdEFuaW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAg
IChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBjcmVhdGVB
bmltYXRpb24pOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGls
aXRpZXMuYXN5bmMgZGVzdHJveUFuaW1hdGlvbnMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanM6CisgICAgICAgIChkZXN0
cm95Q2FudmFzZXMpOgorICAgICAgICAoYXdhaXRDYW52YXNBZGRlZCk6CisgICAgICAgIChJbnNw
ZWN0b3JUZXN0LkNyZWF0ZUNvbnRleHRVdGlsaXRpZXMuaW5pdGlhbGl6ZVRlc3RTdWl0ZSk6CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvbWVtb3J5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q2xpZW50Tm9kZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC1iaXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVz
dENvbnRlbnQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5v
ZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5k
ZXJlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2Vi
Z2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmds
Mi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1
Lmh0bWw6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0
aWxpdGllcy5qczoKKyAgICAgICAgKHdpbmRvdy5nZXRDYW52YXMpOgorCisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZy
YWdtZW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVy
UHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzOgorICAgICAgICAoZGVs
ZXRlQ29udGV4dCk6CisgICAgICAgICh3aGVuUHJvZ3JhbUFkZGVkKToKKyAgICAgICAgKHdpbmRv
dy5pbml0aWFsaXplVGVzdFN1aXRlKToKKyAgICAgICAgKHdpbmRvdy5hZGRQYXJlbnRDYW52YXNS
ZW1vdmVkVGVzdENhc2UpOgorCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1o
YXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10
ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQ6CisKKyAgICAg
ICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBTa2lwIGluc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbCB1bnRpbCBodHRwczovL3dlYmtpdC5vcmcvYi8y
MDY4OTkgaXMgZml4ZWQuCisKIDIwMjAtMDEtMjggIEphY29iIFVwaG9mZiAgPGphY29iX3VwaG9m
ZkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogKHIyNTE2OTQpIFsgaW9zIF0gY3J5
cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbCBpcyBmbGFreSB0aW1pbmcgb3V0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBkZTEyMzVkNWQwMThkMjExMmM5NDJiOWE5MDQxN2E0NWEw
ZjI2MDFlLi43MjhkMTZkNWQ2NmY5MjJkOTRjOTI5YjZkNzE4NmRkNGUzNmUyNDY4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTMyMzAsNiArMzIzMCw4IEBAIHdlYmtpdC5vcmcvYi8yMDYxNjggWyBE
ZWJ1ZyBdIGZhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS5odG1s
CiAKIHdlYmtpdC5vcmcvYi8yMDY2NzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXF1ZXN0aWRsZWNhbGxiYWNrL2NhbGxiYWNrLXhoci1zeW5jLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQogCit3ZWJraXQub3JnL2IvMjA2ODk5IGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNz
cy1hbmltYXRpb24uaHRtbCBbIFNraXAgXQorCiAjIHdwdCBjc3MtYmFja2dyb3VuZHMgZmFpbHVy
ZXMKIHdlYmtpdC5vcmcvYi8yMDY3NTMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWJhY2tncm91bmRzL2JhY2tncm91bmQtYXR0YWNobWVudC1sb2NhbC9hdHRhY2htZW50
LWxvY2FsLWNsaXBwaW5nLWNvbG9yLTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzIwNjc1MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYmFj
a2dyb3VuZHMvYmFja2dyb3VuZC1hdHRhY2htZW50LWxvY2FsL2F0dGFjaG1lbnQtbG9jYWwtY2xp
cHBpbmctY29sb3ItNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMmYzM2NiZDdmOTMzZDNiNDliYmZmNWQzNzhkZTU3YjgyMzEyYmU5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RD
aGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1h
dGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5p
bWF0aW9uLmVmZmVjdENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uZWZm
ZWN0Q2hhbmdlZC5OZXdFZmZlY3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZl
Y3QuCitDaGFuZ2luZyBlZmZlY3QuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFu
IGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QK
K1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBlZmZlY3Qu
Li4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuCitQQVNTOiBB
bmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ1
ZDg1YjFlMWYyMTY4ODFmZmJkNmY2MWIzNzQ3YzcwZGJmMTc0NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCkBAIC0w
LDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1h
dGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbe29wYWNpdHk6IDB9XSk7CisKKyAgICBydW5U
ZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZlY3RDaGFu
Z2VkLk5ld0VmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZh
bGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAg
IGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20o
V0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9
IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAg
ICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5p
bWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwg
IkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBs
ZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBo
YXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5n
aW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVj
dENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
YHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbmV3IEtleWZyYW1lRWZmZWN0KHdpbmRvdy5hbmlt
YXRpb24uZWZmZWN0LnRhcmdldCwgW3tvcGFjaXR5OiAxfV0sIHt9KWApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVz
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eShuZXdLZXlmcmFtZXMs
ICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxsb3dFcXVhbChuZXdLZXlmcmFtZXMsIG9sZEtleWZyYW1l
cywgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwK
KyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1h
dGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNo
b3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRp
Zmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlv
bnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0g
MSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAg
IGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRp
b24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlw
ZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsK
KworICAgICAgICAgICAgbGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1lcywgIkFu
aW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJDaGFuZ2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1h
dGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG51bGxgKSwKKyAgICAg
ICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3S2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtl
eWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkobmV3S2V5ZnJh
bWVzLCAiQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xk
S2V5ZnJhbWVzLCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAg
ICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0
cyBmb3IgdGhlIEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LjwvcD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5
Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTBkZDJiZjI5YzIwNGYwNWY1MjNjNmFjOGFhNTdiMzUxMzUyY2VkYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9u
LmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRz
LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uCitQQVNTOiBU
aGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorUEFTUzogQW5pbWF0aW9uIGNyZWF0
ZWQuCitQQVNTOiBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgQ1NTIEFuaW1hdGlvbi4KK3N0YXJ0
RGVsYXk6IDEwMAoraXRlcmF0aW9uQ291bnQ6IDIKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0MDAKK3Rp
bWluZ0Z1bmN0aW9uOiAibGluZWFyIgorcGxheWJhY2tEaXJlY3Rpb246ICJhbHRlcm5hdGUiCitm
aWxsTW9kZTogImJvdGgiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwKKyAg
ICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5
bGUiOiAiY29sb3I6IHJnYigyNTUsIDAsIDApO1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAg
ICAib2Zmc2V0IjogMC41LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAw
LjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogcmdiKDAsIDEyOCwgMCk7XG5vcGFjaXR5
OiAwLjU7IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDEsCisgICAgImVhc2luZyI6ICJjdWJp
Yy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2Io
MCwgMCwgMjU1KTtcbm9wYWNpdHk6IDE7IgorICB9CitdCisKK0Rlc3Ryb3lpbmcgYW5pbWF0aW9u
cy4uLgorCitQQVNTOiBBbmltYXRpb24gZGVzdHJveWVkLgorUEFTUzogUmVtb3ZlZCBhbmltYXRp
b24gaGFzIGV4cGVjdGVkIElELgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
YW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDZkYTA5NTFiZjVlNDUzNjIzOTIzMDUxMzZjODJiNTQ0NmM4ZTBlZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRp
b24uaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xl
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAa2V5ZnJhbWVzIGZhZGUtaW4gewor
ICAgIGZyb20geworICAgICAgICBjb2xvcjogcmVkOworICAgICAgICBvcGFjaXR5OiAwOworICAg
IH0KKyAgICA1MCUgeworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIG9wYWNpdHk6IDAu
NTsKKyAgICB9CisgICAgdG8geworICAgICAgICBjb2xvcjogYmx1ZTsKKyAgICAgICAgb3BhY2l0
eTogMTsKKyAgICB9Cit9CitkaXYjdGFyZ2V0LmFjdGl2ZSB7CisgICAgYW5pbWF0aW9uLW5hbWU6
IGZhZGUtaW47CisgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtczsKKyAgICBhbmltYXRpb24t
dGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICBh
bmltYXRpb24tZGVsYXk6IDEwMG1zOworICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7
CisgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIGFuaW1hdGlvbi1maWxs
LW1vZGU6IGJvdGg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9u
LkxpZmVjeWNsZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
QW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgYW5pbWF0
aW9ucyBhcmUgY3JlYXRlZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5h
bmltYXRpb25Db2xsZWN0aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmlt
YXRpb25zLiIpOworCisgICAgICAgICAgICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNl
LmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVV
dGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1h
dGlvbiksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCks
CisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3
YWl0QW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFu
aW1hdGlvbnMoKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0
aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmlt
YXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+
CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5
Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWIyYmI1YTkxZDQ0
OThlOTBjNTk1YmM5NTY3NDkyNDgwNjllNTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzMgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNy
ZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTVHJhbnNpdGlvbgorUEFTUzogVGhlcmUgc2hvdWxk
IG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4KK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorUEFTUzog
QW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIENTUyBUcmFuc2l0aW9uLgorc3RhcnREZWxheTogMTAw
CitpdGVyYXRpb25Db3VudDogMQoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVuY3Rp
b246ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIKK3BsYXliYWNrRGlyZWN0aW9u
OiAibm9ybWFsIgorZmlsbE1vZGU6ICJiYWNrd2FyZHMiCitrZXlmcmFtZXM6CitbCisgIHsKKyAg
ICAib2Zmc2V0IjogMCwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4z
LCAwLjQpIiwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zm
c2V0IjogMSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQp
IiwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWluZyBhbmlt
YXRpb25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1vdmVkIGFu
aW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNkNDVhMzhhMjA0ZTBjNmM0ZDNhNzFiZjBlZDlkYzk2MGUwNDA4OWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
dHJhbnNpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9s
aWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiN0YXJnZXQgewor
ICAgIGNvbG9yOiByZWQ7CisgICAgb3BhY2l0eTogMDsKKworfQorZGl2I3RhcmdldC5hY3RpdmUg
eworICAgIGNvbG9yOiBibHVlOworICAgIG9wYWNpdHk6IDE7CisKKyAgICB0cmFuc2l0aW9uLXBy
b3BlcnR5OiBvcGFjaXR5OworICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDQwMG1zOworICAgIHRy
YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40
KTsKKyAgICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtczsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24iLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmll
ZCB3aGVuZXZlciBDU1MgdHJhbnNpdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUg
c2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmlt
YXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5B
bmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xh
c3NMaXN0LmFkZCgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBh
d2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRp
b25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uLmFu
aW1hdGlvbklkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVj
eWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucygpLAorICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAg
IH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3Rz
IGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRp
b25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YWE2YjhkYTU5ZmZkNmY3YmYwZDFmMDViODU1ZTU5N2ExMDhiYWUxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2Vi
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorVGVzdHMgZm9yIHRoZSBB
bmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3ll
ZCBldmVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xl
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5XZWJBbmltYXRpb24K
K1BBU1M6IFRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitDcmVhdGluZyBhbmlt
YXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCisgIDA6IGFuaW1hdGUgLSBbbmF0
aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1hdGlvbiAtIGluc3BlY3Rvci9hbmltYXRpb24vcmVz
b3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6NzozNQorICAyOiBHbG9iYWwgQ29kZSAtIFtw
cm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIC0gW25hdGl2ZSBj
b2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0aW9uKSAtIFtuYXRpdmUgY29kZV0KKyAgNTogX3dy
YXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIFdl
YiBBbmltYXRpb24uCitzdGFydERlbGF5OiAxMDAKK2VuZERlbGF5OiAyMDAKK2l0ZXJhdGlvbkNv
dW50OiAxMAoraXRlcmF0aW9uU3RhcnQ6IDUKK2l0ZXJhdGlvbkR1cmF0aW9uOiAzMDAKK3RpbWlu
Z0Z1bmN0aW9uOiAiZWFzZS1pbi1vdXQiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIK
K2ZpbGxNb2RlOiAiYm90aCIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLjI1
LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAg
ICJzdHlsZSI6ICJjb2xvcjogcmVkO1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zm
c2V0IjogMC43NSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAw
LjkpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IGJsdWU7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQor
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LXdlYi1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlm
ZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDI3MGE0YjI3ZDFkYzBiYWE2
NzY3NGFiNzA3YzA5OGJjYThiYWYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEs
NTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUu
V2ViQW5pbWF0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNw
ZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIgd2ViIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVz
dHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5z
aXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAg
ICAgICAgbGV0IGFuaW1hdGlvbiA9IGF3YWl0IEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5
Y2xlVXRpbGl0aWVzLmNyZWF0ZUFuaW1hdGlvbihXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRp
b24sIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RvcjogImJvZHkiLAorICAgICAgICAgICAgICAg
IGtleWZyYW1lczogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBvZmZzZXQ6IDAuMjUsCisgICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJp
Yy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBj
b2xvcjogInJlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLAorICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBvZmZzZXQ6IDAuNzUsCisgICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJj
dWJpYy1iZXppZXIoMC42LCAwLjcsIDAuOCwgMC45KSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBjb2xvcjogImJsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKKyAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAg
IG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAgICAgICAgZGVsYXk6IDEwMCwKKyAgICAgICAgICAg
ICAgICAgICAgZW5kRGVsYXk6IDIwMCwKKyAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMw
MCwKKyAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAiZWFzZS1pbi1vdXQiLAorICAgICAgICAg
ICAgICAgICAgICBkaXJlY3Rpb246ICJhbHRlcm5hdGUiLAorICAgICAgICAgICAgICAgICAgICBm
aWxsOiAiYm90aCIsCisgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IDEwLAorICAgICAg
ICAgICAgICAgICAgICBpdGVyYXRpb25TdGFydDogNSwKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2Fz
ZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQg
YW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2
ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZDQ4ZGE4MTUyMTk5
NzNkNjEyNjA4MzYwODZlZTIxMWUyYTFhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29t
bWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0
aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uVmFs
aWRJZGVudGlmaWVyCitQQVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuCitQ
QVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlm
aWVyCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBh
bmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEy
M2UzOTc0YzM0YzE5N2NkZDU5ODYxMGY3Mzc3MTA2N2UzMDEzOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCkBA
IC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFu
aW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24iKTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9u
LlZhbGlkSWRlbnRpZmllciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBh
IHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZy
b20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hv
dWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlv
biA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAg
ICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
YW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlv
biwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAg
ICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKyAgICAgICAgICAgIGxldCB7b2JqZWN0fSA9
IGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlv
bklkLCBvYmplY3RHcm91cCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KG9iamVjdC50eXBlLCAib2JqZWN0IiwgYFBheWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAib2JqZWN0
Ii5gKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwob2JqZWN0LmNsYXNz
TmFtZSwgIkFuaW1hdGlvbiIsIGBQYXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0
aW9uIi5gKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIC8vIC0tLS0tLQorCisgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRp
b24uSW52YWxpZElkZW50aWZpZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5p
bWF0aW9uIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3lu
YyB0ZXN0KCkgeworICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElT
VCI7CisgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKworICAgICAgICAg
ICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgICAgIGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oaWRlbnRp
Zmllciwgb2JqZWN0R3JvdXApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7
CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0
aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3lj
bGUtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJj
ZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWMyMTJmZjM2MTU4ZDhiYjRj
Y2UxNmE5NWRhMDUzNTJkMGIwMWRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpAQCAtMCww
ICsxLDEzMCBAQAord2luZG93LmFuaW1hdGlvbnMgPSBbXTsKKworZnVuY3Rpb24gY3JlYXRlQW5p
bWF0aW9uKHNlbGVjdG9yLCBrZXlmcmFtZXMgPSBbXSwgb3B0aW9ucyA9IHt9KSB7CisgICAgbGV0
IGFuaW1hdGlvbiA9IG51bGw7CisKKyAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcihzZWxlY3Rvcik7CisgICAgaWYgKHRhcmdldCkKKyAgICAgICAgYW5pbWF0aW9uID0gdGFy
Z2V0LmFuaW1hdGUoa2V5ZnJhbWVzLCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAgICAgIGFuaW1h
dGlvbiA9IG5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KG51bGwsIGtleWZyYW1lcywg
b3B0aW9ucykpOworCisgICAgd2luZG93LmFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pOworfQor
CitmdW5jdGlvbiBkZXN0cm95QW5pbWF0aW9ucygpIHsKKyAgICBmb3IgKGxldCBhbmltYXRpb24g
b2Ygd2luZG93LmFuaW1hdGlvbnMpIHsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIGlm
IChhbmltYXRpb24uZWZmZWN0KSB7CisgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdC50
YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldC5yZW1vdmUo
KTsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldCA9IG51bGw7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGFuaW1hdGlvbi5lZmZlY3QgPSBudWxsOworICAgICAg
ICB9CisgICAgfQorCisgICAgd2luZG93LmFuaW1hdGlvbnMgPSBbXTsKKworICAgIC8vIEZvcmNl
IEdDIHRvIG1ha2Ugc3VyZSB0aGUgYW5pbWF0aW9uIGFuZCBpdCdzIHRhcmdldCBhcmUgYm90aCBk
ZXN0cm95ZWQsIGFzIG90aGVyd2lzZSB0aGUKKyAgICAvLyBmcm9udGVuZCB3aWxsIG5vdCByZWNl
aXZlIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQo
KCkgPT4geworICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworICAgIH0pOworfQorCitU
ZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBmdW5jdGlvbiBqc29uS2V5
ZnJhbWVGaWx0ZXIoa2V5LCB2YWx1ZSkgeworICAgICAgICBpZiAoa2V5ID09PSAiZWFzaW5nIiAm
JiB2YWx1ZSBpbnN0YW5jZW9mIFdJLkN1YmljQmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLnRvU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBJbnNw
ZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcyA9IHt9OworCisgICAgSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVk
ID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBsZXQgYW5pbWF0aW9u
Q29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50ID0gYXdhaXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmlt
YXRpb25Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQp
OworCisgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiQW5pbWF0aW9uIGNyZWF0ZWQuIik7CisK
KyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVu
dC5kYXRhLml0ZW07CisKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmltYXRpb24uYmFj
a3RyYWNlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gYW5pbWF0
aW9uLmJhY2t0cmFjZVtpXTsKKyAgICAgICAgICAgIGxldCB0cmFjZVRleHQgPSBgICAke2l9OiBg
OworICAgICAgICAgICAgdHJhY2VUZXh0ICs9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIihh
bm9ueW1vdXMgZnVuY3Rpb24pIjsKKworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS5uYXRpdmVD
b2RlKQorICAgICAgICAgICAgICAgIHRyYWNlVGV4dCArPSAiIC0gW25hdGl2ZSBjb2RlXSI7Cisg
ICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUucHJvZ3JhbUNvZGUpCisgICAgICAgICAgICAg
ICAgdHJhY2VUZXh0ICs9ICIgLSBbcHJvZ3JhbSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlm
IChjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uKSB7CisgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICB0
cmFjZVRleHQgKz0gIiAtICIgKyBzYW5pdGl6ZVVSTChsb2NhdGlvbi5zb3VyY2VDb2RlLnVybCkg
KyBgOiR7bG9jYXRpb24ubGluZU51bWJlcn06JHtsb2NhdGlvbi5jb2x1bW5OdW1iZXJ9YDsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2codHJhY2VUZXh0KTsK
KyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9u
LmFuaW1hdGlvblR5cGUsIGFuaW1hdGlvblR5cGUsIGBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUg
JHtXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUp
fS5gKTsKKworICAgICAgICBpZiAoYW5pbWF0aW9uLnN0YXJ0RGVsYXkpCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygic3RhcnREZWxheTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlv
bi5zdGFydERlbGF5KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uZW5kRGVsYXkpCisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZW5kRGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmlt
YXRpb24uZW5kRGVsYXkpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25Db3VudDogIiArIEpTT04u
c3RyaW5naWZ5KGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkpOworICAgICAgICBpZiAoYW5pbWF0
aW9uLml0ZXJhdGlvblN0YXJ0KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJh
dGlvblN0YXJ0OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSk7
CisgICAgICAgIGlmIChhbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiaXRlcmF0aW9uRHVyYXRpb246ICIgKyBKU09OLnN0cmluZ2lmeShh
bmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi50aW1p
bmdGdW5jdGlvbikKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJ0aW1pbmdGdW5jdGlv
bjogIiArIEpTT04uc3RyaW5naWZ5KFN0cmluZyhhbmltYXRpb24udGltaW5nRnVuY3Rpb24pKSk7
CisgICAgICAgIGlmIChhbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygicGxheWJhY2tEaXJlY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShh
bmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5maWxs
TW9kZSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJmaWxsTW9kZTogIiArIEpTT04u
c3RyaW5naWZ5KGFuaW1hdGlvbi5maWxsTW9kZSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmtl
eWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJrZXlmcmFt
ZXM6Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmpzb24oYW5pbWF0aW9uLmtleWZyYW1l
cywganNvbktleWZyYW1lRmlsdGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRl
c3QubmV3bGluZSgpOworCisgICAgICAgIHJldHVybiBhbmltYXRpb24KKyAgICB9OworCisgICAg
SW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25E
ZXN0cm95ZWQgPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAg
IGxldCBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1h
dGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbVJlbW92ZWQpCisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBbmltYXRp
b24gZGVzdHJveWVkLiIpOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xs
ZWN0aW9uSXRlbVJlbW92ZWRFdmVudC5kYXRhLml0ZW07CisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBhbmltYXRpb25JZGVudGlmaWVyLCAi
UmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELiIpOworICAgIH07CisKKyAgICBJbnNw
ZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24gPSBh
c3luYyBmdW5jdGlvbihhbmltYXRpb25UeXBlLCB7c2VsZWN0b3IsIGtleWZyYW1lcywgb3B0aW9u
c30gPSB7fSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3JlYXRpbmcgYW5pbWF0aW9u
Li4uXG4iKTsKKworICAgICAgICBsZXQgc3RyaW5naWZpZWRTZWxlY3RvciA9IEpTT04uc3RyaW5n
aWZ5KHNlbGVjdG9yIHx8IG51bGwpOworICAgICAgICBsZXQgc3RyaW5naWZpZWRLZXlmcmFtZXMg
PSBKU09OLnN0cmluZ2lmeShrZXlmcmFtZXMgfHwgW10pOworICAgICAgICBsZXQgc3RyaW5naWZp
ZWRPcHRpb25zID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucyB8fCB7fSk7CisKKyAgICAgICAgbGV0
IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKGFu
aW1hdGlvblR5cGUpLAorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShg
Y3JlYXRlQW5pbWF0aW9uKCR7c3RyaW5naWZpZWRTZWxlY3Rvcn0sICR7c3RyaW5naWZpZWRLZXlm
cmFtZXN9LCAke3N0cmluZ2lmaWVkT3B0aW9uc30pYCkKKyAgICAgICAgXSk7CisKKyAgICAgICAg
cmV0dXJuIGFuaW1hdGlvbjsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25M
aWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMgPSBhc3luYyBmdW5jdGlvbigpIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLlxuIik7
CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlc3Ryb3lBbmlt
YXRpb25zKClgKTsKKyAgICB9OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ODhkZTIyZDM0OGNlYTlhYzlhZmYzZmFkMWYxNDI1MTA3NmNkN2Q1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFu
Z2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLnRhcmdldENo
YW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OZXdU
YXJnZXQKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4KK0NoYW5naW5nIHRh
cmdldC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitQQVNTOiBB
bmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0CitQQVNTOiBBbmltYXRpb24g
c2hvdWxkIGhhdmUgYSB0YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0
aW9uIHNob3VsZCBub3QgaGF2ZSBhIHRhcmdldC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hv
dWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL3RhcmdldENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTcwNWY2YzhhMzE0ZWJmZTJhZDY0
OTNhYjczZTMyZDEwMmVhNjhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQuYm9k
eS5hbmltYXRlKFtdKTsKKworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRp
b24udGFyZ2V0Q2hhbmdlZCIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0IiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0
aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxl
dCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNv
bGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5s
ZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlm
ICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9u
LmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmlt
YXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBbb2xkVGFyZ2V0XSA9IGF3YWl0IHByb21pc2lm
eSgoY2FsbGJhY2spID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2sp
OyB9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChvbGRUYXJnZXQgaW5z
dGFuY2VvZiBXSS5ET01Ob2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIpOwor
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgdGFyZ2V0Li4uXG4iKTsK
KyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRp
b24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCksCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5l
ZmZlY3QudGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IilgKSwKKyAgICAgICAg
ICAgIF0pOworCisgICAgICAgICAgICBsZXQgW25ld1RhcmdldF0gPSBhd2FpdCBwcm9taXNpZnko
KGNhbGxiYWNrKSA9PiB7IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKTsg
fSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobmV3VGFyZ2V0IGluc3Rh
bmNlb2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbChuZXdUYXJnZXQsIG9sZFRh
cmdldCwgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAg
fSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFu
aW1hdGlvbi50YXJnZXRDaGFuZ2VkLk51bGxUYXJnZXQiLAorICAgICAgICBkZXNjcmlwdGlvbjog
IlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRl
bnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1h
dGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlv
bik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9
PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAg
ICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmlt
YXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24u
VHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4i
KTsKKworICAgICAgICAgICAgbGV0IFtvbGRUYXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxs
YmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG9sZFRhcmdldCBpbnN0YW5jZW9m
IFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIpOworICAgICAg
ICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2Fp
dEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50
YXJnZXQgPSBudWxsYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IFtuZXdU
YXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVz
dEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3ROdWxsKG5ld1RhcmdldCwgIkFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYSB0YXJnZXQu
Iik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFyZ2V0
LCBvbGRUYXJnZXQsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRl
c3RzIGZvciB0aGUgQW5pbWF0aW9uLnRhcmdldENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0
LWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1h
dHRyaWJ1dGVzLmh0bWwKaW5kZXggZDRlMTExZmQ5ZDg1MzcxNWU0NDYzMzM2YjRiZDA3ODI3OGNh
ZjYxZS4uMmQ2Mjc0YjdmNTU0N2RlYjgyODMzYjlmYWE1YzIzYmYwMGNmYjA3OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1s
CkBAIC0yMCw5ICsyMCw5IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuYW1lLAog
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGNyZWF0ZWQgY2FudmFzZXMgaGF2
ZSB0aGUgY29ycmVjdCB0eXBlIGFuZCBhdHRyaWJ1dGVzIHNlbnQgdG8gdGhlIGZyb250ZW5kLiIs
CiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0Fk
ZGVkKQorICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5h
d2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKQogICAgICAgICAgICAgICAg
IC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZl
bnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5k
YXRhLml0ZW07CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJBZGRlZCBj
YW52YXMuIik7CiAKICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9
IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdw
dS5odG1sCmluZGV4IGJjMTgxZjYyZjJkNGY0M2ViNGExYWJmMWQ5ZjgzNmZjZTNkMmJiNWYuLmIx
NDBmMTE4ZDA4ODZjYjc1ODAyZmExNTQwY2E1Zjg1NzZhYzZhMDEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbApA
QCAtMzQsMTQgKzM0LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiRW5zdXJlIHRoYXQgYXR0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBh
cyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5j
IHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAg
bGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBjcmVhdGVBdHRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5D
YW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVt
QWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxz
ZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGF0
dGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIp
OwogICAgICAgICB9LApAQCAtNTIsMTQgKzUyLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgZGV0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBh
cmVuJ3QgdHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIs
CiAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNl
OwotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0
VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQg
bGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVh
dGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVEZXRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0g
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJl
IGNyZWF0ZWQgZm9yIGRldGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQg
V2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApAQCAtNzAsMTQgKzcwLDE0IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgQ1NTIEdQVUNhbnZh
c0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQ
VURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZl
bnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJn
ZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAg
ICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4g
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAg
ICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdh
aXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQ1NTQ2FudmFzKCJncHUiLCAi
Y3NzLWNhbnZhcyIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsK
KyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBj
YW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBDU1MgR1BVQ2FudmFzQ29udGV4dCB3aXRo
b3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7CiAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCmluZGV4IGU4ZmNiZmUwMDczYzE5YjM4
NWM0NmI5N2Q0MTVmZjg5N2JhZjFlMjEuLjkzN2MxZjM0YmJhOTZiNTcwMTFhMzMxOWU4YTU3ODJj
MTg0MzJjYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5z
aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5o
dG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJD
YW52YXMuZXh0ZW5zaW9ucy5lbmFibGUiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
YXQgZW5hYmxpbmcgYW4gZXh0ZW5zaW9uIG5vdGlmaWVzIHRoZSBmcm9udGVuZC4iLAogICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRU
eXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNh
bnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZp
bHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAg
ICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBXZWJHTCBjYW52YXMuIik7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1v
cnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKaW5kZXgg
MmE0OWUwM2ExODg4ZWU4NTVlYmJiM2FmMTg4NDNiY2UzZTJiZGIxYy4uNGJmZDdhNmNlYWI1M2Zj
NWQ5YjhlNzEzYjg1M2QyNzVlMDE3M2U3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9tZW1vcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L21lbW9yeS5odG1sCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICAvLyBwZXJmb3JtZWQgb24gdGhhdCBjYW52YXMgdGhhdCByZXF1aXJlcyB0aGUgaW1hZ2Ug
YnVmZmVyLiAgQSBibGFuayBjYW52YXMgdGhhdCB3YXMKICAgICAgICAgICAgIC8vIGp1c3QgY3Jl
YXRlZCB3aWxsIG5vdCBoYXZlIGEgYnVmZmVyLCBzbyBpdHMgbWVtb3J5IGNvc3Qgd2lsbCBiZSAw
L05hTi4KIAotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52
YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXku
ZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9
PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJl
amVjdCgiTWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAt
NDUsNyArNDUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLm1l
bW9yeS5jYW52YXNNZW1vcnlDaGFuZ2VkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IG1lbW9yeSBjb3N0IGlzIHVwZGF0ZWQgd2hlbiB0aGUgYmFja2VuZCB2YWx1ZSBjaGFuZ2Vz
LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2Fu
dmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAg
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzZXMu
bGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIDJEIGNhbnZhcy4iKTsK
ICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmcuaHRtbAppbmRleCA0ZDNjZmU5YjhlNmU5NzQwZDRlY2E2Nzc5NGE0NWE0ZjllZWM2
OGQxLi5iZTA4YTIwNDEzMDJjMzc3NjE0Y2MzM2UxMzk0YTA5MDE3NTJlMmI4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5BY3Rpb25QYXJhbWV0ZXJO
YU4iLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgTmFOIGlzIGNvbnZlcnRlZCBp
bnRvIHRoZSBwcm9wZXIgdmFsdWUgZm9yIHNlcmlhbGl6YXRpb24uIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFz
IGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGNhbnZhcy5hd2FpdEV2ZW50KFdJLkNhbnZhcy5F
dmVudC5SZWNvcmRpbmdTdG9wcGVkKQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICBuYW1lOiAiQ2FudmFzLk11bHRpcGxlUmVjb3JkaW5nIiwKICAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IG11bHRpcGxlIHJlY29yZGluZ3MgYXJlIGFibGUgdG8gYmUg
c3RhcnRlZC9zdG9wcGVkIGF0IHRoZSBzYW1lIHRpbWUuIiwKICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXM7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChjYW52YXNlcy5sZW5ndGggPT09IDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIGNhbnZhcyBj
b250ZXh0cy4iKTsKIAogICAgICAgICAgICAgY2FudmFzZXNbMV0uYXdhaXRFdmVudChXSS5DYW52
YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTExMiw3ICsxMTIsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLk5vQWN0aW9ucyIsCiAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQ2hlY2sgdGhhdCBhIGNhbnZhcyBpcyBzdGlsbCBhYmxlIHRvIGJlIHJlY29yZGVk
IGFmdGVyIHN0b3BwaW5nIGEgcmVjb3JkaW5nIHdpdGggbm8gYWN0aW9ucy4iLAogICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJv
bShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBj
YW52YXMgY29udGV4dC4iKTsKIAogICAgICAgICAgICAgbGV0IGV2ZW50Q291bnQgPSAwOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0
bWwKaW5kZXggMjNjZDA0ODY4NTBkMGFlMWI3Njc5ODc1YjBhZjI3YTA1MWMwZjRjZC4uZjc0ZDE1
ZTEwNmVhM2IwNWNhOTFiODAxZjgxYzhhMDJmMTE1MDRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCkBAIC0xNiw3ICsx
Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENs
aWVudE5vZGVzLkluaXRpYWwiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgY3Jl
YXRpbmcgYSBDU1MgY2FudmFzIGNsaWVudCBub2RlIGlzIHRyYWNrZWQgY29ycmVjdGx5LiIsCiAg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0g
V0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVh
c3Qgb25lIGNhbnZhcy4iKTsKIAogICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RDbGllbnROb2Rl
cygoY2xpZW50Tm9kZXMpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbAppbmRleCA1MzUwOTU3NjJiMzkwZjJjZTNmYjVhOTY5
NmFkZTYxMTM0MzNjMmZkLi5lOWNiYTFkMDEwN2MzYTY3Y2VmMTcyZThhYjVhOWE0YTRhYTljYTBi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50
LTJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC0yZC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5h
bWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnQyRC52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVz
Y3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBjYW52YXMgb24g
dGhlIHBhZ2Ugd2l0aCB0aGUgZ2l2ZW4gdHlwZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAg
ICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2Fu
dmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIu
aHRtbAppbmRleCBjZDUwODNjMjUyNTI3NGQ3OWZiOGY0YmQ3OWI5NzkzOGZlMzBjNjMwLi5mNTI2
NmVmZGVmZDdlYzc0NzRlOTZlYmFhZmQwYmI1NzNiMjVmMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXBy
ZW5kZXJlci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
IG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRCaXRtYXBSZW5kZXJlci52YWxpZENhbnZhc0lk
IiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9y
IHRoZSBCaXRtYXBSZW5kZXJlciBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5D
YW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJp
dG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdl
YmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdl
YmdsLmh0bWwKaW5kZXggYWViODFlZjI3ZDNjOTgwNTg0OTc5OTZhMTc5YmQ2NGE1YmZlOWJlZi4u
NzBjMjFmZTQzMzk2OTE1OTYwOTEyMjg0NTY2YWYyZjczZDU4Yjk2NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbApA
QCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFz
LnJlcXVlc3RDb250ZW50V2ViR0wudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wgY2FudmFzIG9uIHRo
ZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBs
ZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAg
ICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29u
dGVudC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtd2ViZ2wyLmh0bWwKaW5kZXggNmIwM2Q1ZWM3ZTU5ZDAyNjY4N2M2YjdmMGRiMjgwNmUx
NjNhZWNjZi4uZjdiNTVmNGEzZGZjMDg0M2FlZjc4ODBiOWY3OTc0MGNlMTVhMDg2MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdl
YmdsMi5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5h
bWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRXZWJHTDIudmFsaWRDYW52YXNJZCIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wy
IGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgo
Y2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFu
YWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Tm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Tm9kZS5odG1sCmluZGV4IGU1YzYxNDdlMzQ3YmMzNjllMmMwNWNjODQxNjZkODA2YTcxYzA2
MTYuLmRjYzRiY2NlZTc1ZjRhNjkzODQ1YmJkZWU3MTIzYWZmZTJhNzkwNTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKQEAgLTE4LDcgKzE4LDcg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Tm9kZS52
YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIG5vZGUgaWQgZm9y
IGVhY2ggY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0
KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2Vz
OworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAgICAgICAgbGV0IGV4cGVjdGVkTGVuZ3RoID0gY2Fu
dmFzZXMubGVuZ3RoOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXhwZWN0ZWRM
ZW5ndGggPT09IDMsICJUaGUgcGFnZSBoYXMgMyBjYW52YXNlcy4iKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCmluZGV4IGM0
MWNjNmJjNzRhMzI0MTkyMGIzZDZiNWMzZDliM2M2YmZkYTk1ZDEuLmZlMTQxMTc5YjdjYWRhM2Ji
NTg1YTg4ODg0ZGU2YmI2MzRlNzQzOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHQyRC52YWxpZElk
ZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBv
YmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJl
c29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJy
YXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykg
PT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQp
OwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1p
c3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFw
cmVuZGVyZXIuaHRtbAppbmRleCA4NjI1MjkyNjVjNGRkNmIyOWIyOTY3ODg0NDFjZWY5ZTY3N2I5
YjEwLi4yOTdkNDQxZTE0ZmE0YjFiZDM5NmRjMDU0Zjg1YjhkOTNmOWFlNWMwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRl
cmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4
dC1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0Qml0bWFwUmVuZGVyZXIudmFsaWRJ
ZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQg
b2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5D
YW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJp
dG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdsLmh0bWwKaW5kZXggOTVhZGYxMmMwOTNhZGYzMGM0N2QyOTI5OTIzNDNkY2YwMWNjZTg3ZS4u
MmE3MGZhNGEwZmIxN2ZmYTE5NDQ0NzUxOWNiMzllNTgwYjkzNWU1OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbApA
QCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5y
ZXNvbHZlQ29udGV4dFdlYkdMLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVu
dGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBs
ZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAg
ICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29u
dGV4dC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ2wyLmh0bWwKaW5kZXggMTE1MWY5MTdhN2EyM2U2ZmUzMzJiNDNhOWEzNDA2YTlj
ZmU5MGE1NC4uZDhlMDgzMWU2YmMzYTI5NjVlOGQ0MmNmZDU4N2UyZGZhMTRkMmM3OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdsMi5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1l
OiBgQ2FudmFzLnJlc29sdmVDb250ZXh0V2ViR0wyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVu
IGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0g
ICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdMMik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKICAgICAgICAgICAgIGlmICghY2Fu
dmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAppbmRleCBkYzAwZWYxMjM3YTY3Yjg5MDVm
MzgwZGNlY2Y2YTc5Y2ViNjMyNjc2Li5lOTI1YjI3MTY0OGY0NDRjMjNjOWQyYTg1Y2I4NTIwNjI0
Y2I2MjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVz
b2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTIyLDE0ICsyMiwxNCBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdQVS52YWxpZElkZW50
aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmpl
Y3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICBhc3luYyB0ZXN0
KCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXMubGVuZ3RoLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVj
dGlvbi5zaXplLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOwogCi0gICAgICAgICAg
ICBsZXQgW2NhbnZhc0FkZGVkRXZlbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc0FkZGVkKSwKKyAgICAgICAgICAgIGxldCBbY2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRl
ZEV2ZW50XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1BZGRlZCksCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShg
Y3JlYXRlRGV2aWNlKClgKSwKICAgICAgICAgICAgIF0pOwogCi0gICAgICAgICAgICBsZXQge2Nh
bnZhc30gPSBjYW52YXNBZGRlZEV2ZW50LmRhdGE7CisgICAgICAgICAgICBsZXQgY2FudmFzID0g
Y2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlwZSwgV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdQVSwgIkFkZGVkIGNhbnZhcyBzaG91bGQgYmUgYSBXZWJHUFUgZGV2aWNlLiIpOwog
CiAgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxp
dGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1j
b250ZXh0LXV0aWxpdGllcy5qcwppbmRleCAzYTQ2MDQ1NTI1MTAxODJiYmUyZWYzNTU3MjNhNDFl
MDQyODlkNjJmLi4xNTkxNTgwMjU5MDIzYjllMjM4ZTcxYmI1Yzg1NWFhN2M4NjQ4MWM1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29u
dGV4dC11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
dXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0
aW9uIGRlc3Ryb3lDYW52YXNlcygpIHsKICAgICB3aW5kb3cuY29udGV4dHMgPSBbXTsKIAogICAg
IC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVk
LCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJl
Y2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4g
eyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApAQCAtNDMsOSArNDMsOSBAQCBU
ZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxs
OwogCiAgICAgZnVuY3Rpb24gYXdhaXRDYW52YXNBZGRlZChjb250ZXh0VHlwZSkgewotICAgICAg
ICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZl
bnQuQ2FudmFzQWRkZWQpCisgICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCkKICAgICAg
ICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0
YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAg
ICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZv
ckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoY2FudmFzLmNvbnRleHRUeXBlLCBjb250ZXh0VHlwZSwgYENhbnZhcyBjb250ZXh0
IHNob3VsZCBiZSAke2NvbnRleHREaXNwbGF5TmFtZX0uYCk7CiAKQEAgLTczLDkgKzczLDkgQEAg
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rp
b24gYXdhaXRDYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZpZXIpIHsKLSAgICAgICAgcmV0dXJu
IFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c1JlbW92ZWQpCisgICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQogICAgICAgICAu
dGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNh
bnZhczsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5pZGVudGlmaWVyLCBjYW52YXNJ
ZGVudGlmaWVyLCAiUmVtb3ZlZCBjYW52YXMgaGFzIGV4cGVjdGVkIElELiIpOwogICAgICAgICB9
KTsKICAgICB9CkBAIC04OSw3ICs4OSw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIo
KCkgPT4gewogICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uTm9DYW52YXNlc2AsCiAg
ICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIENhbnZhc01hbmFnZXIgaGFz
IG5vIGNhbnZhc2VzIGluaXRpYWxseS4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXMubGVuZ3RoLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBu
byBjYW52YXNlcy4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplLCAwLCAiQ2FudmFzTWFuYWdl
ciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMKaW5k
ZXggNjAxNDZmZjM4NDg3ZmQxOTNlMjNkMzM3NDdkZjMxMDQ2Y2M2ODFmMy4uNzdhMGVhMzQzYjY1
ZjQyNGJhYzZkZTM3NWUzM2JmMmNhYmRjY2JkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcworKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpz
CkBAIC04Niw3ICs4Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewog
ICAgIH0KIAogICAgIHdpbmRvdy5nZXRDYW52YXMgPSBmdW5jdGlvbih0eXBlKSB7Ci0gICAgICAg
IGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlwZSk7CisgICAgICAgIGxldCBjYW52YXNlcyA9
IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNh
bnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSB0eXBlKTsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAxLCBgVGhlcmUgc2hvdWxkIG9ubHkgYmUg
b25lIGNhbnZhcyB3aXRoIHR5cGUgIiR7dHlwZX0iLmApOwogICAgICAgICBpZiAoY2FudmFzZXMu
bGVuZ3RoICE9PSAxKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy13ZWJnbC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRl
clByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCmluZGV4IDUyNzVjNDQxYWFmYzczYjkxMDc5NDVi
M2NkNzNmOWNhNjdlMWU2NWUuLmY0M2U2ZjI3N2NkYzdkMDU4ZDA5OTQxYTc2Njc3NjM0ZTA1ZTZj
YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3No
YWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCkBAIC0z
OSw3ICszOSw3IEBAIGZ1bmN0aW9uIGRlbGV0ZVByb2dyYW0oKSB7CiBmdW5jdGlvbiBkZWxldGVD
b250ZXh0KCkgewogICAgIGNvbnRleHQgPSBudWxsOwogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ug
c3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250
ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1Jl
bW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVj
dCgpOyB9LCAwKTsKIH0KIApAQCAtNDcsOCArNDcsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRp
YWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVuY3Rpb24gd2hl
blByb2dyYW1BZGRlZChjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5
IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF0u
c2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMg
PSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3Vs
ZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dy
YW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQu
ZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0g
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiQWRkZWQgU2hhZGVyUHJvZ3JhbS4iKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZhcyBpbnN0YW5j
ZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJlbnQgQ2FudmFz
LiIpOwpAQCAtNTcsOCArNTgsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+
IHsKICAgICB9CiAKICAgICBmdW5jdGlvbiB3aGVuUHJvZ3JhbVJlbW92ZWQoY2FsbGJhY2spIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5s
ZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNp
bmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChl
dmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNh
bnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7
CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4g
ewogICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclBy
b2dyYW0sICJSZW1vdmVkIFNoYWRlclByb2dyYW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFk
ZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTc0LDcgKzc2LDcg
QEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgU2hhZGVyUHJvZ3JhbUFkZGVkIGlzIHNlbnQgZm9yIGEgcHJv
Z3JhbSBjcmVhdGVkIGJlZm9yZSBDYW52YXNBZ2VudCBpcyBlbmFibGVkLiIsCiAgICAgICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FuJ3Qg
dXNlIGBhd2FpdEV2ZW50YCBzaW5jZSB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGhhcHBlbnMgb24g
dGhlIG5leHQgdGljay4KLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwg
KGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKHByb2dy
YW0pID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAg
ICAgICAgICAgfSk7CkBAIC0xMTMsNyArMTE1LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFs
aXplcigoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAg
ICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIu
RXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNv
bGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAg
ICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ3B1LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
dXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCmluZGV4IGZlNDhkOGZkODUx
MTQ2NTg5OGZkM2IwNDUwZGU4OTUxMzc0NDliZTQuLmI4ZGUzNGNmYTg3ODY4NWY5NjVhOWY5MGJi
NGJmOGFhYjM1NzM2MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJncHUuanMKQEAgLTY0LDcgKzY0LDcgQEAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGlw
ZWxpbmUoY29kZSA9IHJlbmRlclBpcGVsaW5lU291cmNlKSB7CiBmdW5jdGlvbiBkZWxldGVEZXZp
Y2UoKSB7CiAgICAgZGV2aWNlID0gbnVsbDsKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUg
dGhlIGRldmljZSBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBk
b2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVu
dHMuCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3ZlZCBldmVudHMu
CiAgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGlu
Z0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbAppbmRleCBkOThmMGZlYTRl
OTJjMTUyOTc4MTEyYzJkMDcwY2Q3NGU5NTlkNGUyLi41NWU1NTI0NzMwODNhYTJkMWJhZWIwZTg4
N2VlMDVmYzI4ZjBhMGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwK
QEAgLTc3LDggKzc3LDggQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlUmVjb3JkaW5nU3RvcHBlZChjYW52YXMsIGV2ZW50LmRhdGEucmVjb3JkaW5nKTsKICAg
ICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmds
ZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChl
dmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZh
czsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2lu
Z2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFjYW52YXMucmVjb3JkaW5n
QWN0aXZlKQogCiAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJ
LkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdGFydGVkLCBoYW5kbGVSZWNvcmRpbmdTdGFydGVkV3Jh
cHBlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclBy
b2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCmluZGV4IGQ0MGZhYjc4Mzgx
MzBjYzk0YjAzYmY5MWQ5NmYyMjcwOTA0ZWIwMTMuLmQ1ZmI4NzcyYzBiMzc1YzQwZDVkN2EwZTQy
MDJhNTRmZjVkNTJkMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
c2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCkBAIC0x
NCw5ICsxNCwxMSBAQCB3aW5kb3cuYmVmb3JlVGVzdCA9IGFzeW5jIGZ1bmN0aW9uKCkgewogZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoYENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVWApOwogCi0gICAgbGV0IGNhbnZhcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgbGV0IGNhbnZhc2VzID0gQXJyYXku
ZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9u
ZSBjYW52YXMuIik7CisKKyAgICBsZXQgY2FudmFzID0gY2FudmFzZXNbMF07CiAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGEgY2FudmFzLiIpOwotICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09
PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHUFUsICJDYW52YXMgc2hvdWxkIGJlIFdlYkdQVS4iKTsKIAogICAgIGFzeW5jIGZ1bmN0aW9u
IGF3YWl0UHJvZ3JhbUFkZGVkKHByb2dyYW1UeXBlKSB7CkBAIC0xMTgsNyArMTIwLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAg
ICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52
YXNSZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50
Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBjYW52YXNSZW1vdmVk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFy
ZWRWZXJ0ZXhGcmFnbWVudC5odG1sCmluZGV4IDM0ZDAyYWIxN2U5MDVhNGI3OGEwMjY1NTA0OWFl
MjhkYjMzMTA4NzEuLjhjZjlhNDc1NjIyNDIxYzgzNjg5YzlhZDM3ZDIxOTBhMDFjZTllMzkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdw
dS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCkBAIC01
NywxMCArNTcsMTAgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNyZWF0aW5nIHJlbmRlciBwaXBlbGluZS4uLiIpOwogICAgICAgICBsZXQgZXZhbHV0ZVBy
b21pc2UgPSBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVSZW5kZXJQaXBlbGlu
ZSgpYCk7CiAKLSAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCkK
LSAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKTsKKyAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSkKKyAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkKTsKIAotICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1sw
XTsKKyAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3Vs
ZCBiZSBXZWJHUFUuIik7CiAKICAgICAgICAgbGV0IGl0ZW1BZGRlZEV2ZW50ID0gYXdhaXQgY2Fu
dmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVu
dC5JdGVtQWRkZWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhw
ZWN0ZWQudHh0CmluZGV4IDY2YmRiYWI5ZWVlMzE2NzkwZjhmMjY3NDZmOTNlMjFlZDRjM2RmMWUu
LmRiZjYzNTFlOWEwOTI0NjBhYmVlOWQzNGQ5MjA2YjBmNzMzNmIzYTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rp
b25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90
ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTU0LDYgKzU0LDc0
IEBAIEZBSUw6IGV4cGVjdEZhbHNlKFtdKQogICAgIEV4cGVjdGVkOiBmYWxzZXkKICAgICBBY3R1
YWw6IFtdCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdEVtcHR5
CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3RFbXB0eShudWxsKQorUEFTUzogZXhwZWN0
RW1wdHkoIiIpCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK1BBU1M6IGV4cGVjdEVtcHR5KFtdKQor
UEFTUzogZXhwZWN0RW1wdHkoe30pCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRv
IEZBSUwKK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAg
ICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhwZWN0RW1wdHkoeyJ0ZXN0IjoxfSkKKyAgICBFeHBl
Y3RlZDogZW1wdHkKKyAgICBBY3R1YWw6IHsidGVzdCI6MX0KK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0
ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhw
ZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDog
ZXhwZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJ
TDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6Cisg
ICAgQWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3
aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBleHBlY3RFbXB0eSBz
aG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IDEKK0ZB
SUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0Ogor
ICAgIEFjdHVhbDogdW5kZWZpbmVkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JU
ZXN0LmV4cGVjdE5vdEVtcHR5CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3ROb3RFbXB0
eSgidGVzdCIpCitQQVNTOiBleHBlY3ROb3RFbXB0eSh7InRlc3QiOjF9KQorUEFTUzogZXhwZWN0
Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoe30pCitQQVNTOiBleHBlY3RO
b3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KG51bGwp
CisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogbnVsbAorRkFJTDogZXhwZWN0
Tm90RW1wdHkoIiIpCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogIiIKK0ZB
SUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1
YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0eShbXSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5
CisgICAgQWN0dWFsOiBbXQorRkFJTDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6
IG5vdCBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAg
IEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0
eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHRy
dWUKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24t
b2JqZWN0OgorICAgIEFjdHVhbDogZmFsc2UKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBu
b3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogMQorRkFJTDogZXhw
ZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAg
QWN0dWFsOiB1bmRlZmluZWQKKwogLS0gUnVubmluZyB0ZXN0IGNhc2U6IEluc3BlY3RvclRlc3Qu
ZXhwZWN0TnVsbAogRXhwZWN0ZWQgdG8gUEFTUwogUEFTUzogZXhwZWN0TnVsbChudWxsKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4
cGVjdC1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rl
c3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKaW5kZXggOTFlODU4MGM3Y2I2MjczNDU4
MjU0MDI0OTcyMDA5ZTk5Y2RhODM0ZC4uZTM4NjRhMDNjNGUwOTQxY2E4YzAyZjJmMGE3ODYyNjM5
ODhiMDEyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVz
dC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCkBAIC00OCw2
ICs0OCwyMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRUZXN0Q2FzZShleHBlY3RUaGF0VGVz
dENhc2UpOwogICAgIGFkZEludmVyc2VUZXN0Q2FzZSgiZXhwZWN0RmFsc2UiLCBleHBlY3RUaGF0
VGVzdENhc2UpOwogCisgICAgbGV0IGV4cGVjdEVtcHR5VGVzdENhc2UgPSB7CisgICAgICAgIGZ1
bmN0aW9uTmFtZTogImV4cGVjdEVtcHR5IiwKKyAgICAgICAgcGFzc2luZ0lucHV0czogW251bGws
ICIiLCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXRdLAorICAgICAgICBmYWlsaW5nSW5wdXRzOiBb
InRlc3QiLCB7dGVzdDogMX0sIFsidGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcg
U2V0KFsidGVzdCJdKSwgdHJ1ZSwgZmFsc2UsIDEsIHVuZGVmaW5lZF0sCisgICAgfTsKKyAgICBh
ZGRUZXN0Q2FzZShleHBlY3RFbXB0eVRlc3RDYXNlKTsKKworICAgIGxldCBleHBlY3ROb3RFbXB0
eVRlc3RDYXNlID0geworICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROb3RFbXB0eSIsCisg
ICAgICAgIHBhc3NpbmdJbnB1dHM6IFsidGVzdCIsIHt0ZXN0OiAxfSwgWyJ0ZXN0Il0sIG5ldyBN
YXAoW1sidGVzdCIsIDFdXSksIG5ldyBTZXQoWyJ0ZXN0Il0pXSwKKyAgICAgICAgZmFpbGluZ0lu
cHV0czogW251bGwsICIiLCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXQsIHRydWUsIGZhbHNlLCAx
LCB1bmRlZmluZWRdLAorICAgIH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0Tm90RW1wdHlUZXN0
Q2FzZSk7CisKICAgICBsZXQgZXhwZWN0TnVsbFRlc3RDYXNlID0gewogICAgICAgICBmdW5jdGlv
bk5hbWU6ICJleHBlY3ROdWxsIiwKICAgICAgICAgcGFzc2luZ0lucHV0czogW251bGxdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389108</attachid>
            <date>2020-01-28 23:20:27 -0800</date>
            <delta_ts>2020-01-29 09:50:55 -0800</delta_ts>
            <desc>[Patch] test modifying JavaScriptCore/inspector/scripts for win</desc>
            <filename>bug-205434-20200128232027.patch</filename>
            <type>text/plain</type>
            <size>345053</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZiN2Y3NGU0MDFmODJmZTYxNTY3NGExMDg0YzFm
OGZmNTRkZWI2OWQuLjVhMjY3OTI0NzcxZDMzZTYwMDEyNTRlZmVhMTc0ODEyN2I4ZGM3OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI4ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3Nl
dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBpbmNsdWRlIG9mIEJ5dGVjb2RlR2Vu
ZXJhdG9yLmggaW4gQ29kZUNhY2hlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YWNlNzQyNWE1YjM2YmVkZDhl
OGY3Y2QwYjVlMGFiYmZhMzdhNThlLi5hMzI4YWU1MWU0MTUzYjg3ZDQwNDNlYjM4YzllYWMzNGQx
NTg1NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA1IEBACisyMDIwLTAxLTI4ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQg
aW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFu
IEJ1cmcuCisKKyAgICAgICAgQWRkIHR5cGVzL2NvbW1hbmRzL2V2ZW50cyBmb3IgaW5zdHJ1bWVu
dGluZyB0aGUgbGlmZWN5Y2xlIG9mIGBBbmltYXRpb25gIG9iamVjdHMsIGFzIHdlbGwgYXMKKyAg
ICAgICAgY29tbWFuZHMgZm9yIGdldHRpbmcgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3Qg
YW5kIHRoZSB0YXJnZXQgRE9NIG5vZGUuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9hbmlt
YXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rv
ci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAg
IGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbAorICAgICAg
ICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0Lmh0bWwKKyAg
ICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCisg
ICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbAorCisg
ICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9X
ZWJBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjppbnN0YW5j
ZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0
ZXgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBbmltYXRpb246OnNldEVmZmVjdEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NT
QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NUcmFuc2l0aW9uOjpjcmVhdGUpOgorCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6cGFyc2VkS2V5ZnJh
bWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Ymxl
bmRpbmdLZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjpoYXNCbGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0ZWQpOgorICAgICAgICBQcm92aWRlIGEg
d2F5IHRvIGFjY2VzcyB0aGUgbGlzdCBvZiBrZXlmcmFtZXMuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUaW1pbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdl
YkFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBEZWxldGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVm
ZmVjdEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUYXJnZXRJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJB
bmltYXRpb25JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCk6IERlbGV0ZWQuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5z
dHJ1bWVudGluZ0FnZW50czo6ZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50IGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRFbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdl
bnRzOjpyZXNldCk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1h
dGlvbkFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRp
b25BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvckVmZmVjdCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3RFZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZlQW5pbWF0aW9uKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0
V2ViQW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lXZWJBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2
aWdhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5k
QW5pbWF0aW9uSWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojphc3NlcnRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpiaW5kQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5pbWF0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJv
eWVkVGltZXJGaXJlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OnJlc2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRlZC4KKworICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6cmVxdWVzdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6
OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgIEFkZCBhbiBvdmVybG9hZCBmb3Ig
YHB1c2hOb2RlUGF0aFRvRnJvbnRlbmRgIHRoYXQgZXhwb3NlcyBhbiBgRXJyb3JTdHJpbmdgLgor
CiAyMDIwLTAxLTI4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIG1hY0NhdGFseXN0OiBUcmlwbGUgY2xpY2tpbmcgdG8gc2VsZWN0IGEgc2VudGVuY2Ug
cmVzdWx0cyBpbiBhbiBlbXB0eSBzZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4
IDg3MmE4NzEyMGE4Zjc3YTBlZDFhN2NkNDI2ODI4ZjQzNTZkZWMzYWUuLjU4ZWY5Mjk4NTdkMzk2
NzE1YzJjMDU3ZGJlMmNkMTIyNTQ5MjU5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMyOCBAQAorMjAyMC0wMS0yOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hv
d2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMy
ODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5w
cm90b3R5cGUuZ2V0IGRvbWFpbnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90
b3R5cGUuYWN0aXZhdGVFeHRyYURvbWFpbik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2Vy
LnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLmdldCBhbmltYXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBzdXBwb3J0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uTWFuYWdlci5wcm90b3R5cGUuZW5hYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90
b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnBy
b3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJv
dG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90
b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIu
cHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5Bbmlt
YXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgorICAgICAg
ICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKTog
QWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9u
RGVzdHJveWVkKTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9Bbmlt
YXRpb25Db2xsZWN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rp
b24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1h
dGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0
IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBl
Lm9iamVjdElzUmVxdWlyZWRUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24u
cHJvdG90eXBlLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0ZW1BZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtc0NsZWFyZWQpOgorICAgICAgICBTaW1pbGFyIHRv
IGBXSS5SZXNvdXJjZUNvbGxlY3Rpb25gLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiBgV0kuQ29sbGVj
dGlvbmAgdGhhdCBtYWludGFpbnMgaXQncworICAgICAgICBvd24gc3ViLWBXSS5BbmltYXRpb25D
b2xsZWN0aW9uYHMgZm9yIGVhY2ggdHlwZSBvZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAg
KFdJLkFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZnJvbVBheWxvYWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSk6CisgICAgICAg
IChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAg
IChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JGaWxsTW9kZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uSWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnBy
b3RvdHlwZS5nZXQgYmFja3RyYWNlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUu
Z2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQg
c3RhcnREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBlbmREZWxh
eSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25Db3VudCk6
CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25TdGFydCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25EdXJhdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCB0aW1pbmdGdW5jdGlvbik6CisgICAg
ICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBwbGF5YmFja0RpcmVjdGlvbik6CisgICAg
ICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBmaWxsTW9kZSk6CisgICAgICAgIChXSS5B
bmltYXRpb24ucHJvdG90eXBlLmdldCBrZXlmcmFtZXMpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
LnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS5yZXF1ZXN0RWZmZWN0VGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnRhcmdl
dENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5fdXBkYXRlRWZmZWN0
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qczoKKyAg
ICAgICAgKFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanM6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNU
YWJDb250ZW50Vmlldy5qcy4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcpOgor
ICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy50YWJJbmZvKToKKyAgICAgICAgKFdJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcuaXNUYWJBbGxvd2VkKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dSZXByZXNlbnRlZE9iamVjdCk6IEFkZGVk
LgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2FuU2hvd1Jl
cHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLmNsb3NlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENo
YW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5jc3M6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MuCisgICAgICAgIFJlbmFtZSB0
aGUgQ2FudmFzIFRhYiB0byBHcmFwaGljcyBUYWIgYW5kIGRpc3BsYXkgZm91ciBzZWN0aW9uczoK
KyAgICAgICAgIC0gQ2FudmFzZXMKKyAgICAgICAgIC0gV2ViIEFuaW1hdGlvbnMKKyAgICAgICAg
IC0gQ1NTIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIFRyYW5zaXRpb25zCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJ
LkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToK
KyAgICAgICAgT25seSBhcHBlYXIgaWYgYSBgV0kuQ2FudmFzYCBvciBgV0kuUmVjb3JkaW5nYCBp
cyBzZWxlY3RlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMpOgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1z
KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0
YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6CisgICAg
ICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lSGFu
ZGxlRHJvcCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90
eXBlLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQp
OgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFu
ZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25J
dGVtQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKToKKyAgICAgICAg
KFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3
Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk6CisgICAgICAgIChX
SS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcu
Y3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24pOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJz
dC1jaGlsZCkpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNl
Y3Rpb24gPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVhZGVyKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxKToK
KyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAgICAoQG1l
ZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQp
IC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6Cisg
ICAgICAgIEFkZCBzdGlja3kgaGVhZGVycyBmb3IgZWFjaCBvZiB0aGUgc2VjdGlvbnMgZGVzY3Jp
YmVkIGFib3ZlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVj
dGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
Y29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hh
bmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5j
b250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24pOgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5B
bmltYXRpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5n
ZXQgcHJldmlld0hlaWdodCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25D
b250ZW50Vmlldy5wcm90b3R5cGUuc2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFN1YnRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXcuYWRkVGl0bGUpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlldyk6
CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUVmZmVj
dENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9o
YW5kbGVUYXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudSk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3M6IEFkZGVk
LgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24pOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24uc2VsZWN0ZWQpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiBoZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIg
PiAudGl0bGVzKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4g
LnRpdGxlcyA+IC50aXRsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhl
YWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZvcmUp
OgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlv
bi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBoZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnKToKKyAgICAgICAgKGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyA+IHN2Zyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2
aWV3ID4gc3ZnIHJlY3QpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGgpOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlKToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxp
bmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHNwYW4p
OgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlKToKKyAgICAgICAgKEBt
ZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZl
cnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3
KToKKyAgICAgICAgVmlzdWFsaXplIHRoZSBzdGFydC9lbmQgZGVsYXkgYW5kIGtleWZyYW1lcyBv
ZiB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGFzIGEgc2VyaWVzIG9mIGJlemllcgorICAgICAgICBjdXJ2
ZXMgc2VwYXJhdGVkIGJ5IG1hcmtlcnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5p
bWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbnNwZWN0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRl
dGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmdldCBhbmltYXRpb24pOgorICAgICAgICAoV0ku
QW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuc2V0IGFuaW1hdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbml0aWFs
TGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90
eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5fcmVmcmVzaElkZW50aXR5U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaEVmZmVjdFNlY3Rpb24pOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hC
YWNrdHJhY2VTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFu
ZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25U
YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LmNzczogQWRkZWQuCisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlv
biA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5oZWFk
ZXIgPiAuc3VidGl0bGUpOgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmlt
YXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAu
ZGV0YWlscy1zZWN0aW9uKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5p
bWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMg
LmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyk6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5l
bC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRp
b24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3IpOgor
ICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+
IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uKToK
KyAgICAgICAgU2hvdyBjb2xsZWN0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVjdGVkIGFu
aW1hdGlvbiwgaXRzIGVmZmVjdCwgYW5kIGl0cyB0YXJnZXQuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5DYW52YXNN
YW5hZ2VyKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXND
b2xsZWN0aW9uKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5k
aXNhYmxlKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc0FkZGVk
KToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc1JlbW92ZWQpOgor
ICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3NhdmVSZWNvcmRpbmdzKTogQWRk
ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291cmNlRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3Zl
Q2FudmFzKTogRGVsZXRlZC4KKyAgICAgICAgUmF0aGVyIHRoYW4gaGF2ZSB0aGUgYFdJLkNhbnZh
c1RhYkNvbnRlbnRWaWV3YCBtYWluYWluIHRoZSBgV0kuQ2FudmFzQ29sbGVjdGlvbmAgYW5kIGhh
dmUgdG8KKyAgICAgICAgbGlzdGVuIGZvciBldmVudHMgZnJvbSB0aGUgYFdJLkNhbnZhc01hbmFn
ZXJgLCBqdXN0IGhhdmUgdGhlIGBXSS5DYW52YXNNYW5hZ2VyYCBob2xkIG9uIHRvCisgICAgICAg
IGl0IGluc3RlYWQgYW5kIHByb3ZpZGUgYSBnZXR0ZXIgZm9yIGl0LgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
LmNvbnRlbnRWaWV3QWRkZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9hZGRTYXZlZFJlY29yZGluZyk6CisgICAg
ICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oaWRkZW4pOiBEZWxl
dGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0
IF9pdGVtTWFyZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlld3MpOiBEZWxldGVkLgorICAgICAgICAoV0ku
Q2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZU5hdmlnYXRpb25JdGVt
cyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fc2hvd0dyaWRCdXR0b25DbGlja2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVTaG93SW1hZ2VHcmlkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cyk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVu
dFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJl
ZnJlc2hCdXR0b25DbGlja2VkKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmll
dy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQpOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZUhhbmRsZURyb3Ap
OiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFs
TGF5b3V0KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hl
ZCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQ2Fu
dmFzRWxlbWVudEJ1dHRvbkNvbnRleHRNZW51KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5zaG93bik6IERlbGV0ZWQuCisgICAgICAgIE1vdmUgdGhlICJMb2cgQ2Fu
dmFzIENvbnRleHQiIHRvIGJlIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBjYW52YXMgZWxlbWVudCBi
dXR0b24gY29udGV4dCBtZW51LgorICAgICAgICBEcml2ZS1ieTogYWRkIGEgYFdJLkRyb3Bab25l
Vmlld2AgZm9yIHdoZW4gcmVjb3JkaW5nIEpTT04gZmlsZXMgYXJlIGRyYWdnZWQgb24gdG9wLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3M6Cisg
ICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3RvcnMgc2lu
Y2UgdGhlIENhbnZhcyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5nZXQgc2VsZWN0ZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNldCBzZWxlY3RlZEl0ZW0pOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuYWRkQ29udGVudFZpZXdGb3JJ
dGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUucmVtb3Zl
Q29udGVudFZpZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5w
cm90b3R5cGUuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcik6CisgICAgICAgIChXSS5Db2xsZWN0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2VsZWN0SXRlbSk6CisgICAgICAgIChXSS5Db2xs
ZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6IEFkZGVkLgorICAgICAg
ICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXRTZWxlY3RlZEl0ZW0pOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRl
cjpub3QoLm1lc3NhZ2UtdGV4dC12aWV3KSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcpOiBEZWxldGVkLgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIpOiBEZWxldGVk
LgorICAgICAgICBXaGVuIHNlbGVjdGlvbiBpcyBlbmFibGVkLCBjbGlja2luZyBvdXRzaWRlIG9m
IGFueSBvZiB0aGUgY29udGVudCB2aWV3cyBzaG91bGQgZGlzbWlzcyB0aGUKKyAgICAgICAgY3Vy
cmVudCBzZWxlY3Rpb24uIENsaWVudHMgc2hvdWxkIGFsc28gYmUgYWJsZSB0byBnZXQgdGhlIGN1
cnJlbnRseSBzZWxlY3RlZCBpdGVtLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9E
ZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qczoKKyAgICAgICAgKFdJLkRldGFpbHNTZWN0aW9uU2lt
cGxlUm93LnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICBFbnN1cmUgdGhhdCBgMGAgaXMg
Y29uc2lkZXJlZCBhcyBhIHZhbGlkIHZhbHVlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9C
YXNlL01haW4uanM6CisgICAgICAgIChXSS5sb2FkZWQpOgorICAgICAgICAoV0kuY29udGVudExv
YWRlZCk6CisgICAgICAgIChXSS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVzZW50ZWRPYmpl
Y3QpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXSS5Db250ZW50Vmlldy5jcmVhdGVGcm9tUmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAg
ICAoV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZSk6CisgICAgICAgIEFsbG93IGBXSS5BbmltYXRp
b25gIHRvIGJlIHZpZXdhYmxlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9NYWlu
LmNzczoKKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IEFkZGVkLgorICAgICAgICAo
Lm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyKTogQWRkZWQuCisgICAgICAg
ICgubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6IEFkZGVk
LgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IERl
bGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxw
IC5uYXZpZ2F0aW9uLWJhcik6IERlbGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcg
Lm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtKTogRGVsZXRlZC4K
KyAgICAgICAgQWxsb3cgYFdJLmNyZWF0ZU5hdmlnYXRpb25JdGVtSGVscGAgdG8gYmUgdXNlZCBp
bmRlcGVuZGVudGx5IG9mIGBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXdgLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzOgorICAgICAgICAoV0kuRE9N
TWFuYWdlci5wcm90b3R5cGUubm9kZUZvcklkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFuYWdl
ci5wcm90b3R5cGUuYW5pbWF0aW9uVHJhY2tpbmdVcGRhdGVkKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzOgorICAgICAgICAoV0kuQXVkaXRU
ZXN0Q2FzZVJlc3VsdC5hc3luYyBmcm9tUGF5bG9hZCk6CisgICAgICAgIEFkZCBhIGZhbGxiYWNr
IHNvIGNhbGxlcnMgZG9uJ3QgbmVlZCB0by4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5SZXNvdXJj
ZUNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9S
ZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3
LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogQWRkZWQuCisgICAg
ICAgICguY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2Ug
aW1nOmhvdmVyKTogQWRkZWQuCisgICAgICAgIERyaXZlLWJ5OiBtb3ZlIHRoZXNlIHN0eWxlcyB0
byB0aGUgcmlnaHQgZmlsZSBhbmQgbWFrZSB0aGVtIG1vcmUgc3BlY2lmaWMuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanM6CisgICAgICAgIChXSS5DYW52YXMuZGlz
cGxheU5hbWVGb3JDb250ZXh0VHlwZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVjb3JkaW5nLmpzOgorICAgICAgICAoV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVjb3Jk
aW5nVHlwZSk6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogZml4IGxvY2FsaXplZCBzdHJpbmdz
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5j
c3M6CisgICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3Rv
cnMgc2luY2UgdGhlIFJlY29yZGluZyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9J
bWFnZXMvR3JhcGhpY3Muc3ZnOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcuCisgICAgICAgICogTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9U
ZXN0Lmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanM6CisgICAgICAg
IChXSS5sb2FkZWQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNz
LmpzOgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdEVtcHR5KTogQWRkZWQu
CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuZXhwZWN0Tm90RW1wdHkpOiBBZGRlZC4K
KyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0YXRpb25NZXNzYWdlRm9ybWF0
KToKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0ZWRWYWx1ZUZvcm1hdCk6
CisgICAgICAgIEFkZCB1dGlsaXR5IGZ1bmN0aW9uIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBn
aXZlbiB2YWx1ZSBpcyBlbXB0eToKKyAgICAgICAgIC0gQXJyYXkgYGxlbmd0aCA9PT0gMGAKKyAg
ICAgICAgIC0gU3RyaW5nIGBsZW5ndGggPT09IDBgCisgICAgICAgICAtIFNldCBgc2l6ZSA9PT0g
MGAKKyAgICAgICAgIC0gTWFwIGBzaXplID09PSAwYAorICAgICAgICAgLSBPYmplY3QgYGlzRW1w
dHlPYmplY3RgCisgICAgICAgIEFueSBvdGhlciB0eXBlIHdpbGwgYXV0b21hdGljYWxseSBmYWls
LCBhcyBub24tb2JqZWN0cyBjYW4ndCBiZSAiZW1wdHkiIChlLmcuIGA0MmApLgorCiAyMDIwLTAx
LTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBkb24ndCB1c2UgYDptYXRjaGVzKDpiZWZvcmUsIDphZnRlcilgIGFmdGVyIHIyNTUw
NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
QW5pbWF0aW9uLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0FuaW1hdGlvbi5qc29uCmluZGV4IGJlYWY4ZGUyOGFjNzUzZTM3ZWYyYmU4OWMwMWZjYjBiZDUz
ZGFmYmIuLjIyZWU4ODI0Nzk5OWNkNTgyNWE1ZWEzMTY3N2VmNmI0NzRjNjgxNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRp
b24uanNvbgpAQCAtMTQsNiArMTQsNTEgQEAKICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIs
CiAgICAgICAgICAgICAiZW51bSI6IFsicmVhZHkiLCAiZGVsYXllZCIsICJhY3RpdmUiLCAiY2Fu
Y2VsZWQiLCAiZG9uZSJdCiAgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6
ICJQbGF5YmFja0RpcmVjdGlvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAg
ICAgICAgICAgImVudW0iOiBbIm5vcm1hbCIsICJyZXZlcnNlIiwgImFsdGVybmF0ZSIsICJhbHRl
cm5hdGUtcmV2ZXJzZSJdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6
ICJGaWxsTW9kZSIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAg
ImVudW0iOiBbIm5vbmUiLCAiZm9yd2FyZHMiLCAiYmFja3dhcmRzIiwgImJvdGgiLCAiYXV0byJd
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJBbmltYXRpb24iLAor
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmlt
YXRpb25JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNzc0FuaW1hdGlvbk5hbWUi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXF1
YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYGFuaW1hdGlvbi1uYW1lYCBDU1MgcHJvcGVydHkuIFNo
b3VsZCBub3QgYmUgcHJvdmlkZWQgaWYgYHRyYW5zaXRpb25Qcm9wZXJ0eWAgaXMgYWxzbyBwcm92
aWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjc3NUcmFuc2l0aW9uUHJvcGVy
dHkiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
RXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYHRyYW5zaXRpb24tcHJvcGVydHlgIENTUyBwcm9w
ZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBpZiBgYW5pbWF0aW9uTmFtZWAgaXMgYWxzbyBw
cm92aWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6
ICJFZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJiYWNrdHJhY2UiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ29uc29s
ZS5DYWxsRnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJCYWNrdHJh
Y2UgdGhhdCB3YXMgY2FwdHVyZWQgd2hlbiB0aGlzIGBXZWJBbmltYXRpb25gIHdhcyBjcmVhdGVk
LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
aWQiOiAiRWZmZWN0IiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0RGVsYXki
LCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJlbmREZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvbkNvdW50IiwgInR5cGUiOiAi
bnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBpdGVy
YXRpb25zIGluIHRoZSBhbmltYXRpb24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aXRlcmF0aW9uU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiSW5kZXggb2Ygd2hpY2ggaXRlcmF0aW9uIHRvIHN0YXJ0IGF0LiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvbkR1cmF0aW9uIiwgInR5cGUiOiAibnVt
YmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRvdGFsIHRpbWUgb2YgZWFj
aCBpdGVyYXRpb24sIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcy4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ0aW1pbmdGdW5jdGlvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1MgdGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBvdmVy
YWxsIGFuaW1hdGlvbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwbGF5YmFja0Rp
cmVjdGlvbiIsICIkcmVmIjogIlBsYXliYWNrRGlyZWN0aW9uIiwgIm9wdGlvbmFsIjogdHJ1ZSB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZmlsbE1vZGUiLCAiJHJlZiI6ICJGaWxsTW9k
ZSIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImtleWZy
YW1lcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJLZXlmcmFtZSIgfSwg
Im9wdGlvbmFsIjogdHJ1ZSB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJpZCI6ICJLZXlmcmFtZSIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRGVjaW1hbCBw
ZXJjZW50YWdlIFswLDFdIHJlcHJlc2VudGluZyB3aGVyZSB0aGlzIGtleWZyYW1lIGlzIGluIHRo
ZSBlbnRpcmUgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbi4iIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJlYXNpbmciLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiQ1NTIHRpbWluZyBmdW5jdGlvbiBmb3IgaG93IHRoZSBgc3R5bGVgIGlz
IGFwcGxpZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGUiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ1NTIHN0eWxlIGRl
Y2xhcmF0aW9uIG9mIHRoZSBDU1MgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgYW5pbWF0ZWQuIiB9
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJpZCI6
ICJUcmFja2luZ1VwZGF0ZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLApAQCAtMjcs
NiArNzIsMzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWworICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkVuYWJsZXMgQ2FudmFzIGRvbWFpbiBldmVudHMuIgorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJEaXNhYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RFZmZlY3RUYXJnZXQiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkdldHMgdGhlIGBET00uTm9kZUlkYCBmb3IgdGhlIHRhcmdl
dCBvZiB0aGUgZWZmZWN0IG9mIHRoZSBhbmltYXRpb24gd2l0aCB0aGUgZ2l2ZW4gYEFuaW1hdGlv
bklkYC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiB9CisgICAgICAgICAgICBdCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlc29sdmVBbmltYXRpb24iLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc29sdmVzIEphdmFTY3JpcHQgYFdlYkFuaW1h
dGlvbmAgb2JqZWN0IGZvciBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRy
ZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RH
cm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJTeW1ib2xpYyBncm91cCBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVsZWFzZSBtdWx0aXBs
ZSBvYmplY3RzLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWwor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiUnVudGltZS5SZW1v
dGVPYmplY3QiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAg
ICAgICAgIm5hbWUiOiAic3RhcnRUcmFja2luZyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiU3RhcnQgdHJhY2tpbmcgYW5pbWF0aW9ucy4gVGhpcyB3aWxsIHByb2R1Y2UgYSBgdHJhY2tp
bmdTdGFydGAgZXZlbnQuIgpAQCAtMzcsNiArMTExLDM1IEBACiAgICAgICAgIH0KICAgICBdLAog
ICAgICJldmVudHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFuaW1hdGlv
bkNyZWF0ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2
ZXIgYSBgV2ViQW5pbWF0aW9uYCBpcyBjcmVhdGVkLiIsCisgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbiIsICIkcmVmIjogIkFu
aW1hdGlvbiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJlZmZlY3RDaGFuZ2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFu
Z2VkIGluIGFueSB3YXkuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIG9taXR0ZWQgd2hlbiB0aGUg
ZWZmZWN0IGlzIHJlbW92ZWQgd2l0aG91dCBhIHJlcGxhY2VtZW50LiIgfQorICAgICAgICAgICAg
XQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ0YXJnZXRDaGFu
Z2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRo
ZSB0YXJnZXQgb2YgYW55IGVmZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55
IHdheS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFuaW1hdGlv
bkRlc3Ryb3llZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVu
ZXZlciBhIGBXZWJBbmltYXRpb25gIGlzIGRlc3Ryb3llZC4iLAorICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVm
IjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsK
ICAgICAgICAgICAgICJuYW1lIjogInRyYWNraW5nU3RhcnQiLAogICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkRpc3BhdGNoZWQgYWZ0ZXIgYHN0YXJ0VHJhY2tpbmdgIGNvbW1hbmQuIiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2Vu
L19faW5pdF9fLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vX19pbml0X18ucHkKaW5kZXggMWE0YWM2OWRhNGI1ZjFlOWRkMTdmMWJjOTM3MDkzMzNk
N2UyNmMxOS4uOTE4YTUwNTBhNGE0YjYyYmUzN2Y3OWFjMmNlNmE2NmQ4NWVjOGQwYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vX19p
bml0X18ucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vX19pbml0X18ucHkKQEAgLTIzLDMgKzIzLDQgQEAgZnJvbSAuZ2VuZXJhdGVfb2JqY19p
bnRlcm5hbF9oZWFkZXIgaW1wb3J0ICoKIGZyb20gLmdlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlw
ZXNfaW1wbGVtZW50YXRpb24gaW1wb3J0ICoKIGZyb20gLmdlbmVyYXRlX29iamNfcHJvdG9jb2xf
dHlwZV9jb252ZXJzaW9uc19oZWFkZXIgaW1wb3J0ICoKIGZyb20gLmdlbmVyYXRlX29iamNfcHJv
dG9jb2xfdHlwZV9jb252ZXJzaW9uc19pbXBsZW1lbnRhdGlvbiBpbXBvcnQgKgorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBf
Z2VuZXJhdG9yLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vY3BwX2dlbmVyYXRvci5weQppbmRleCBkZjgzNzc1YzlhMDRmODE0YmI0YWQ1ZmVhYzQx
ZmE0Y2E0YTFlZmEzLi5mNGI5OTA0Yjg0NmE1ZTA0ZjA5NGU3N2ZiNDViZDNmMDUzOTQ5ZjhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9jcHBfZ2VuZXJhdG9yLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3IucHkKQEAgLTMzMSwzICszMzEsNCBAQCBjbGFz
cyBDcHBHZW5lcmF0b3IoR2VuZXJhdG9yKToKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIHNo
b3VsZF9wYXNzX2J5X2NvcHlfZm9yX3JldHVybl90eXBlKF90eXBlKToKICAgICAgICAgcmV0dXJu
IGlzaW5zdGFuY2UoX3R5cGUsIChBcnJheVR5cGUsIE9iamVjdFR5cGUpKSBvciAoaXNpbnN0YW5j
ZShfdHlwZSwgKFByaW1pdGl2ZVR5cGUpKSBhbmQgX3R5cGUucXVhbGlmaWVkX25hbWUoKSA9PSAi
b2JqZWN0IikKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL2NvZGVnZW4vY3BwX2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRl
cy5weQppbmRleCBjN2IxYzg3ZTExOThkNjZlZjY5OGY5ZWM4YTkyNDcxMjdiOTJkYzAwLi5hZGFl
YjUwOWJmYmQ4ZDExYjc1YWEwNmM4MTA2ODQ1NjQ4MzI5ZjYyIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yX3Rl
bXBsYXRlcy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weQpAQCAtMjU2LDMgKzI1Niw0IEBAICR7
Y29uc3RydWN0b3JFeGFtcGxlfQogICAgIHJldHVybiBzdGF0aWNfY2FzdDwke29iamVjdFR5cGV9
Kj4oc3RhdGljX2Nhc3Q8SlNPTjo6T2JqZWN0QmFzZSo+KHJlc3VsdC5nZXQoKSkpOwogfQogIiIi
KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfYWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIu
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5l
cmF0ZV9jcHBfYWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKaW5kZXggZTYy
Nzg4MGUxMzNlMjExNDk1NzBmYzY3ZDk3NTk5NmM0YTk1OWM0ZC4uZjI3ZWJkYzczNTM4OWFiMDg1
YmM3MzJmNWY0ZGFkNmY5NTNmZTNhOSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2FsdGVybmF0ZV9iYWNrZW5k
X2Rpc3BhdGNoZXJfaGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9hbHRlcm5hdGVfYmFja2VuZF9kaXNwYXRj
aGVyX2hlYWRlci5weQpAQCAtMTAxLDMgKzEwMSw0IEBAIGNsYXNzIENwcEFsdGVybmF0ZUJhY2tl
bmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAgICAgICAgIH0KICAg
ICAgICAgbGluZXMuYXBwZW5kKCcgICAgdmlydHVhbCB2b2lkICUoY29tbWFuZE5hbWUpcyglKHBh
cmFtZXRlcnMpcykgPSAwOycgJSBjb21tYW5kX2FyZ3MpCiAgICAgICAgIHJldHVybiAnXG4nLmpv
aW4obGluZXMpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJh
dGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKaW5kZXggZTNmZTRlMTAwNDJlOGI0
NWRiMzk1MDc1M2QxZTI5NDQ0YThlMTg1My4uMGM0MWM2ZGYzN2QwYmU4NDNkYmI1MDEwNWUxMmU1
MTU4MGZhYzI0YiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2Vu
ZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKQEAgLTIyNCwzICsyMjQsNCBA
QCBjbGFzcyBDcHBCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvcihDcHBHZW5lcmF0b3Ip
OgogCiAgICAgZGVmIF9nZW5lcmF0ZV9kaXNwYXRjaGVyX2RlY2xhcmF0aW9uX2Zvcl9jb21tYW5k
KHNlbGYsIGNvbW1hbmQpOgogICAgICAgICByZXR1cm4gIiAgICB2b2lkICVzKGxvbmcgcmVxdWVz
dElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMpOyIgJSBjb21tYW5kLmNvbW1h
bmRfbmFtZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0
aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4v
Z2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQppbmRleCBh
MTU5NjFhNjQ3NDRlMTExYjU4MGM4ZDFhMGZhODA1NThlZTFjZTRiLi4zOTdlMDM0NGIxM2YzODg0
NmFkYzY0MzgwYWRmZTZmNGEwZWVkODE4IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRj
aGVyX2ltcGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVt
ZW50YXRpb24ucHkKQEAgLTMzNSwzICszMzUsNCBAQCBjbGFzcyBDcHBCYWNrZW5kRGlzcGF0Y2hl
ckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAKICAgICAgICAgbGluZXMu
YXBwZW5kKCd9JykKICAgICAgICAgcmV0dXJuICJcbiIuam9pbihsaW5lcykKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJh
dGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3Bh
dGNoZXJfaGVhZGVyLnB5CmluZGV4IDVjZjc0Nzg1NDMzNjhhY2E4YTIzNGIzNTU0ZTA2OTRjMTAw
MTg1MmYuLmZlYzUyZjc4OGJjODBjYmFhY2MwYmRlMDRjMTcwN2UxY2RmMDQzOWEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVy
YXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRf
ZGlzcGF0Y2hlcl9oZWFkZXIucHkKQEAgLTEyNCwzICsxMjQsNCBAQCBjbGFzcyBDcHBGcm9udGVu
ZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKIAogICAgICAgICBsaW5l
cy5hcHBlbmQoIiAgICB2b2lkICVzKCVzKTsiICUgKGV2ZW50LmV2ZW50X25hbWUsICIsICIuam9p
bihmb3JtYWxfcGFyYW1ldGVycykpKQogICAgICAgICByZXR1cm4gIlxuIi5qb2luKGxpbmVzKQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRl
X2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5CmluZGV4IDkwNGQyMjdh
NmU5MzhkM2QwYWRjMWJiZjMwZjUzMGMzN2VlOTA5ZGYuLjBhNGY1NDlhN2FkMjRhMjlmM2ZmOTli
ZTUwMTU1YTU4MGI0MWVkNmMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2lt
cGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0
aW9uLnB5CkBAIC0xMzIsMyArMTMyLDQgQEAgY2xhc3MgQ3BwRnJvbnRlbmREaXNwYXRjaGVySW1w
bGVtZW50YXRpb25HZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKICAgICAgICAgbGluZXMuYXBwZW5k
KCcgICAgbV9mcm9udGVuZFJvdXRlci5zZW5kRXZlbnQoanNvbk1lc3NhZ2UtPnRvSlNPTlN0cmlu
ZygpKTsnKQogICAgICAgICBsaW5lcy5hcHBlbmQoJ30nKQogICAgICAgICByZXR1cm4gIlxuIi5q
b2luKGxpbmVzKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVf
Y3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weQppbmRleCA0MjNkN2EyMzAwODhlNTZlNzdkMWRk
MjhjMTQ5YzMwOWExNzFkMmIzLi40M2Y0OGZkMDJjZjBjNzk3OGFiZWUxMDAwYmI4Y2JmZmQwMjQ2
NWJkIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9w
cm90b2NvbF90eXBlc19oZWFkZXIucHkKQEAgLTQ4OSwzICs0ODksNCBAQCBjbGFzcyBDcHBQcm90
b2NvbFR5cGVzSGVhZGVyR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAgICAgICAgIGxpbmVzLmFw
cGVuZCgnJykKICAgICAgICAgbGluZXMuYXBwZW5kKCd9IC8vIG5hbWVzcGFjZSBXVEYnKQogICAg
ICAgICByZXR1cm4gWydcbicuam9pbihsaW5lcyldCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2Nv
bF90eXBlc19pbXBsZW1lbnRhdGlvbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19pbXBsZW1lbnRh
dGlvbi5weQppbmRleCA2NWNlYmY1ODNlZThiYTNjNzhlOWI0Yzc0MjA3YzY0MTY2YThhZDExLi5i
MDNlNTQzYWQ2MTQ0NmZhNzA5YzMyNmI4MGM1Yjg4ZDU5MmRiMGIzIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBf
cHJvdG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVz
X2ltcGxlbWVudGF0aW9uLnB5CkBAIC0yNzcsMyArMjc3LDQgQEAgY2xhc3MgQ3BwUHJvdG9jb2xU
eXBlc0ltcGxlbWVudGF0aW9uR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAgICAgICAgIGxpbmVz
LmFwcGVuZCgnfScpCiAKICAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2Vu
ZXJhdGVfanNfYmFja2VuZF9jb21tYW5kcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2pzX2JhY2tlbmRfY29tbWFuZHMucHkKaW5k
ZXggYmJmNzZmOTI5MTEzMmEzYTVkNTlhZThlMTYxNTRkODg5OWUwNmNhMi4uNTdiNTcwZTIwODI2
NmNjNzU2N2RhMjI1YjljMDllZjU4NDViMjJmMiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfanNfYmFja2VuZF9jb21t
YW5kcy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9qc19iYWNrZW5kX2NvbW1hbmRzLnB5CkBAIC0xNjEsMyArMTYxLDQgQEAg
Y2xhc3MgSlNCYWNrZW5kQ29tbWFuZHNHZW5lcmF0b3IoR2VuZXJhdG9yKToKICAgICAgICAgbGlu
ZXMuYXBwZW5kKCdJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCIlKGRvbWFpbk5hbWUp
cyIsICUoZGVidWdnYWJsZVR5cGVzKXMpOycgJSBhY3RpdmF0ZV9hcmdzKQogCiAgICAgICAgIHJl
dHVybiAiXG4iLmpvaW4obGluZXMpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfYmFja2VuZF9kaXNwYXRj
aGVyX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9j
b2RlZ2VuL2dlbmVyYXRlX29iamNfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weQppbmRleCAw
NTEyMmM2Y2FiZGQyMmM0YjliMDA3Zjk4ZmZlZWMxZjgyYjM0Y2RjLi4yNmU1N2M1OTA1ZWVmZjdj
ZDdjZjg2MzE0MjUzYWU0ZWEwNzkwYTc0IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0
Y2hlcl9oZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CkBA
IC0xMTMsMyArMTEzLDQgQEAgY2xhc3MgT2JqQ0JhY2tlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJh
dG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAgICB9CiAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAg
IHZpcnR1YWwgdm9pZCAlKGNvbW1hbmROYW1lKXMoJShwYXJhbWV0ZXJzKXMpIG92ZXJyaWRlOycg
JSBjb21tYW5kX2FyZ3MpCiAgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dl
bmVyYXRlX29iamNfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19i
YWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKaW5kZXggYTFiOWUxNzk3MDU4MTI1
YmM3N2ZkZDUyZmQ1NTg0MjhiODNiZDIwNy4uZmEzNjM3NjZjMzE2ZmYyNzg4YjYwMjhjNDQ4NWUz
Mjg3ZTU5MTc0NiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50
YXRpb24ucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkK
QEAgLTIyMCwzICsyMjAsNCBAQCBjbGFzcyBPYmpDQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRh
dGlvbkdlbmVyYXRvcihPYmpDR2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICBvcHRpb25hbF9l
eHByZXNzaW9uID0gJyglcyA/ICYlcyA6IG5pbCknICUgKGluX3BhcmFtX25hbWUsIG9iamNfaW5f
cGFyYW1fZXhwcmVzc2lvbikKICAgICAgICAgICAgICAgICBwYWlycy5hcHBlbmQoJyVzOiVzJyAl
IChwYXJhbWV0ZXIucGFyYW1ldGVyX25hbWUsIG9wdGlvbmFsX2V4cHJlc3Npb24pKQogICAgICAg
ICByZXR1cm4gJyAgICBbbV9kZWxlZ2F0ZSAlcyVzXTsnICUgKGNvbW1hbmQuY29tbWFuZF9uYW1l
LCAnICcuam9pbihwYWlycykpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfY29uZmlndXJhdGlvbl9oZWFk
ZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9n
ZW5lcmF0ZV9vYmpjX2NvbmZpZ3VyYXRpb25faGVhZGVyLnB5CmluZGV4IDZjM2RkNzY1MjM4Nzk1
ZTEzYWRjNzI4OGMzNWIyZGNhM2IzYTIwYTMuLjQ3ZThkN2YxNzYyZGNkODE2ZmJmNWIxNTZiZTk5
MzFlNTc2Y2E0MzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfY29uZmlndXJhdGlvbl9oZWFkZXIucHkKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJh
dGVfb2JqY19jb25maWd1cmF0aW9uX2hlYWRlci5weQpAQCAtODgsMyArODgsNCBAQCBjbGFzcyBP
YmpDQ29uZmlndXJhdGlvbkhlYWRlckdlbmVyYXRvcihPYmpDR2VuZXJhdG9yKToKICAgICAgICAg
aWYgc2VsZi5zaG91bGRfZ2VuZXJhdGVfZXZlbnRzX2Zvcl9kb21haW4oZG9tYWluKToKICAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZChUZW1wbGF0ZShPYmpDVGVtcGxhdGVzLkNvbmZpZ3VyYXRpb25F
dmVudFByb3BlcnR5KS5zdWJzdGl0dXRlKE5vbmUsICoqcHJvcGVydHlfYXJncykpCiAgICAgICAg
IHJldHVybiBsaW5lcworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2NvbmZpZ3VyYXRpb25faW1wbGVtZW50
YXRpb24ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9nZW5lcmF0ZV9vYmpjX2NvbmZpZ3VyYXRpb25faW1wbGVtZW50YXRpb24ucHkKaW5kZXggOTIy
YjYwODFmNjdkOGQ1ODAwMzc4ZDNiYzk4YjZmOTY5ZDVjNzEwZC4uNzc5Mjk4MDU0ZjU5NWZkYzE3
NGIwMDIzMDFjOGJiMTZlYTU4NmU0NCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19jb25maWd1cmF0aW9uX2lt
cGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfY29uZmlndXJhdGlvbl9pbXBsZW1lbnRhdGlvbi5w
eQpAQCAtMTUwLDMgKzE1MCw0IEBAIGNsYXNzIE9iakNDb25maWd1cmF0aW9uSW1wbGVtZW50YXRp
b25HZW5lcmF0b3IoT2JqQ0dlbmVyYXRvcik6CiAgICAgICAgIGlmIGRvbWFpbl9uYW1lLnN0YXJ0
c3dpdGgoJ0NTUycpOgogICAgICAgICAgICAgcmV0dXJuICdjc3MnICsgZG9tYWluX25hbWVbMzpd
CiAgICAgICAgIHJldHVybiBkb21haW5fbmFtZVs6MV0ubG93ZXIoKSArIGRvbWFpbl9uYW1lWzE6
XQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9vYmpjX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24u
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5l
cmF0ZV9vYmpjX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKaW5kZXggM2M0
MDU3ODY5ODhjY2ZjNDFkYzZmODdlNDhjOTAwZWRmNGEyNzc1Mi4uMDAyZTQyZDc5MzI0ZWU1NTIw
MWMwMWI1NjhkZmUyZjBhY2I3N2RhOSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19mcm9udGVuZF9kaXNwYXRj
aGVyX2ltcGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfZnJvbnRlbmRfZGlzcGF0Y2hlcl9pbXBs
ZW1lbnRhdGlvbi5weQpAQCAtMTU4LDMgKzE1OCw0IEBAIGNsYXNzIE9iakNGcm9udGVuZERpc3Bh
dGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihPYmpDR2VuZXJhdG9yKToKICAgICAgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoJyAgICAgICAgcGFyYW1zT2JqZWN0LT4lcygiJXMiX3MsICVzKTsn
ICUgKGtleWVkX3NldF9tZXRob2QsIHBhcmFtZXRlci5wYXJhbWV0ZXJfbmFtZSwgZXhwb3J0X2V4
cHJlc3Npb24pKQogICAgICAgICBsaW5lcy5hcHBlbmQoJyAgICBqc29uTWVzc2FnZS0+c2V0T2Jq
ZWN0KCJwYXJhbXMiX3MsIFdURk1vdmUocGFyYW1zT2JqZWN0KSk7JykKICAgICAgICAgcmV0dXJu
IGxpbmVzCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19oZWFkZXIucHkKaW5k
ZXggMTVmYjc0YmU4YmZiMTRjNDE5ZmJkYzNlZDk3ZWRjYzI2MGZiNDllNy4uMDIzMjdhN2VjM2Jj
OTNiODhiOTQxOWUxYzhjMWVmYzM4MmU4OTA5OSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19oZWFkZXIucHkK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2Vu
ZXJhdGVfb2JqY19oZWFkZXIucHkKQEAgLTI2MCwzICsyNjAsNCBAQCBjbGFzcyBPYmpDSGVhZGVy
R2VuZXJhdG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAgICAgICAgcGFpcnMuYXBwZW5kKCclczoo
JXMpJXMnICUgKHBhcmFtX25hbWUsIHNlbGYub2JqY190eXBlX2Zvcl9wYXJhbShkb21haW4sIGV2
ZW50LmV2ZW50X25hbWUsIHBhcmFtZXRlciksIHBhcmFtX25hbWUpKQogICAgICAgICBwYWlyc1sw
XSA9IHVjZmlyc3QocGFpcnNbMF0pCiAgICAgICAgIHJldHVybiAnLSAodm9pZCklc1dpdGglczsn
ICUgKGV2ZW50LmV2ZW50X25hbWUsICcgJy5qb2luKHBhaXJzKSkKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2Jq
Y19pbnRlcm5hbF9oZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2ludGVybmFsX2hlYWRlci5weQppbmRleCBhNzMz
OWQyOWI0MzljOTgxMzQyNTQwNzk3M2NmZWU0MDUxNDE3NmRlLi5mZTY3MzhhOWEwYzBlNGEzZmE1
NGQ1NWYxY2ZmMTZiYTdhNjFhMjBmIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2ludGVybmFsX2hlYWRlci5w
eQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9n
ZW5lcmF0ZV9vYmpjX2ludGVybmFsX2hlYWRlci5weQpAQCAtNzcsMyArNzcsNCBAQCBjbGFzcyBP
YmpDSW50ZXJuYWxIZWFkZXJHZW5lcmF0b3IoT2JqQ0dlbmVyYXRvcik6CiAgICAgICAgICAgICBs
aW5lcy5hcHBlbmQoJy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbnRyb2xsZXI6KEluc3BlY3Rv
cjo6QXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyKiljb250cm9sbGVyOycpCiAgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoJ0BlbmQnKQogICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVz
KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9vYmpjX3Byb3RvY29sX3R5cGVfY29udmVyc2lvbnNfaGVhZGVyLnB5
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJh
dGVfb2JqY19wcm90b2NvbF90eXBlX2NvbnZlcnNpb25zX2hlYWRlci5weQppbmRleCAyNTcxZjRi
MjJhODY5ZDg1NzQ0OGEyODg1NTIxYjlmMjA0MGMxOTg2Li4yNDQwOWYzZTYzODg5ODMyYzQ0YmVh
NTQyODc3MzE4ZjZhZTYyYTVhIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX3Byb3RvY29sX3R5cGVfY29udmVy
c2lvbnNfaGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19oZWFk
ZXIucHkKQEAgLTE2OSwzICsxNjksNCBAQCBjbGFzcyBPYmpDUHJvdG9jb2xUeXBlQ29udmVyc2lv
bnNIZWFkZXJHZW5lcmF0b3IoT2JqQ0dlbmVyYXRvcik6CiAgICAgICAgIGxpbmVzLmFwcGVuZCgn
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7JykKICAgICAgICAgbGluZXMuYXBwZW5kKCd9JykKICAg
ICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19wcm90b2Nv
bF90eXBlX2NvbnZlcnNpb25zX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19wcm90b2NvbF90eXBl
X2NvbnZlcnNpb25zX2ltcGxlbWVudGF0aW9uLnB5CmluZGV4IGEzNmQ4MTNlY2VlZWExMTRiZTk0
YmY2MWQ1ZjZhNTUzMmZkZmUxNTQuLjRlYjkxZDY4MzA4MjVhMTlmMzdhY2FhMjRjYTZmZjk1ZDg1
MjY4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19pbXBsZW1l
bnRhdGlvbi5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9vYmpjX3Byb3RvY29sX3R5cGVfY29udmVyc2lvbnNfaW1wbGVtZW50
YXRpb24ucHkKQEAgLTE0MiwzICsxNDIsNCBAQCBjbGFzcyBPYmpDUHJvdG9jb2xUeXBlQ29udmVy
c2lvbnNJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihPYmpDR2VuZXJhdG9yKToKICAgICAgICAgICAg
IGxpbmVzLmFwcGVuZCgnICAgICpvdXRWYWx1ZSA9IFtbJXMgYWxsb2NdIGluaXRXaXRoUGF5bG9h
ZDpwYXlsb2FkXTsnICUgKG9iamNfY2xhc3MpKQogICAgICAgICBsaW5lcy5hcHBlbmQoJ30nKQog
ICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX3Byb3Rv
Y29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19wcm90b2NvbF90eXBlc19pbXBsZW1l
bnRhdGlvbi5weQppbmRleCBjODcwODgxYWJkODBkMmI2ZWRhYTg4MTI1OThjODM2MjgzYTY2NWIw
Li45MmNjMGIwNTViMDExMzJlYWIzODZlNTc3YjY1MjliYmM5OWI2NzMwIDEwMDc1NQotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9v
YmpjX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfcHJvdG9jb2xf
dHlwZXNfaW1wbGVtZW50YXRpb24ucHkKQEAgLTIyNywzICsyMjcsNCBAQCBjbGFzcyBPYmpDUHJv
dG9jb2xUeXBlc0ltcGxlbWVudGF0aW9uR2VuZXJhdG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKCcgICAgcmV0dXJuICVzOycgJSBjb252ZXJzaW9uX2V4cHJlc3Np
b24pCiAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJ30nKQogICAgICAgICByZXR1cm4gJ1xuJy5q
b2luKGxpbmVzKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0b3IucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0b3IucHkKaW5kZXggNjdjODYzMGRjNGNlMzUw
NDZmYmQyNGZkNzMyOGRmYjkxYzM5MGNlMi4uZDM0ZThiMTkxZGVlZGUwMjE1ZTc3MTFkZDNiMGI4
NmFlMjA1MTFkZSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvci5weQpAQCAtMzE2LDMgKzMxNiw0IEBA
IGNsYXNzIEdlbmVyYXRvcjoKICAgICAgICAgICAgIHJldHVybiAnIiVzIicgJSBmaWxlbmFtZQog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuICc8JXMvJXM+JyAlIChmaWxlX2ZyYW1l
d29yay5uYW1lLCBmaWxlbmFtZSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yX3RlbXBsYXRlcy5weSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvcl90ZW1w
bGF0ZXMucHkKaW5kZXggODkxNjgxZmZkNzFmNTQ5NTc2Y2ZmMWFhNTAyMDJlMTI5YjkyZWU4OC4u
NTVkNGYwMDUzMjVkMDZkNDRkYzIwMTgzMTU2ZGQyMDU2ODAxN2VhZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yX3Rl
bXBsYXRlcy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5CkBAIC01OSwzICs1OSw0IEBAIGNsYXNzIEdl
bmVyYXRvclRlbXBsYXRlczoKIAogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRv
bWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICR7aW5wdXRGaWxlbmFtZX0KIC8vIGJ5IHRoZSBzY3Jp
cHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNw
ZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkiIiIpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5weSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5weQppbmRleCA2
ZDk3YTA5M2MzNGY3ODk2MjNiMDIxZGVhNjc5YWY0MDY0ZGM2MmE1Li4wODZhZmFjNDBmNzEyYTAz
MjJmOGRmMzAwMDQ4NjRiZWI5ZDcyMDcxIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9tb2RlbHMucHkKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vbW9kZWxzLnB5CkBAIC03NjUsMyAr
NzY1LDQgQEAgY2xhc3MgRXZlbnQ6CiAgICAgICAgIGxvZy5kZWJ1ZygiPj4gUmVzb2x2aW5nIHR5
cGUgcmVmZXJlbmNlcyBmb3IgcGFyYW1ldGVycyBpbiBldmVudDogJXMiICUgc2VsZi5ldmVudF9u
YW1lKQogICAgICAgICBmb3IgcGFyYW1ldGVyIGluIHNlbGYuZXZlbnRfcGFyYW1ldGVyczoKICAg
ICAgICAgICAgIHBhcmFtZXRlci5yZXNvbHZlX3R5cGVfcmVmZXJlbmNlcyhwcm90b2NvbCwgZG9t
YWluKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvY29kZWdlbi9vYmpjX2dlbmVyYXRvci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL29iamNfZ2VuZXJhdG9yLnB5CmluZGV4IDY4MmZjN2YyM2Vl
YjFlNzc5YjRhYWExYjc0OGM5MTA0MTc0Zjk2YjMuLjE5ZjllY2UzOGNmYWU0ZTVlMDA4MGJhZWNk
NzIwNDAwOWU3YzlhNWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL29iamNfZ2VuZXJhdG9yLnB5CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL29iamNfZ2VuZXJhdG9yLnB5CkBAIC01
NzIsMyArNTcyLDQgQEAgY2xhc3MgT2JqQ0dlbmVyYXRvcihHZW5lcmF0b3IpOgogICAgICAgICBp
ZiAoaXNpbnN0YW5jZShfdHlwZSwgQXJyYXlUeXBlKSk6CiAgICAgICAgICAgICByZXR1cm4gJ0pT
T05BcnJheUZvcktleScKICAgICAgICAgcmV0dXJuIE5vbmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vb2JqY19nZW5lcmF0b3Jf
dGVtcGxhdGVzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vb2JqY19nZW5lcmF0b3JfdGVtcGxhdGVzLnB5CmluZGV4IDIyNzQyMTUxOTk0ZjI0M2Y0
ZWQxM2JjNzZmYThhNmI1Nzc1NWE1MzIuLmMwZGMwNzZlNDVhM2FhNTBmMGFmZTg5NmE2MTY0YWI2
ZmUwNjVhN2EgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL29iamNfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9vYmpjX2dlbmVyYXRvcl90ZW1w
bGF0ZXMucHkKQEAgLTE2MiwzICsxNjIsNCBAQCAke2ludm9jYXRpb259CiAgICAgICAgIF8ke3Zh
cmlhYmxlTmFtZVByZWZpeH1FdmVudERpc3BhdGNoZXIgPSBbWyR7b2JqY1ByZWZpeH0ke2RvbWFp
bk5hbWV9RG9tYWluRXZlbnREaXNwYXRjaGVyIGFsbG9jXSBpbml0V2l0aENvbnRyb2xsZXI6X2Nv
bnRyb2xsZXJdOwogICAgIHJldHVybiBfJHt2YXJpYWJsZU5hbWVQcmVmaXh9RXZlbnREaXNwYXRj
aGVyOwogfSIiIikKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJv
dG9jb2wtYmluZGluZ3MucHkKaW5kZXggMmIxZDg3ODJjYjJhN2U5MmM4MmJjYjU3MzNiMTlhZGQ0
OTVkMjlkNS4uYmQ4MzlmNmViNjBlZmYzMDc2MGYxMjVkMWNlNmRlMGI0ODYzYTY4NiAxMDA3NTUK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWlu
c3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5
CkBAIC0yNzcsMyArMjc3LDQgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICAgICAg
ICAgIGxvZy5lcnJvcihlLm1lc3NhZ2UpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlz
ZSAgIyBGb3JjZSB0aGUgYnVpbGQgdG8gZmFpbC4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
Q1NTQW5pbWF0aW9uLmNwcAppbmRleCA3YzcyZjYyNGMzMzBhZjk2YmE3MGI3YWU0ZTkyYjUwMWNh
MTAxMDdlLi5mZDNlYjlkYmRlOWJjMWFiMGI5N2YwYTA3MWUwMGU4MGZiODEzMTJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
Ikluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzksNiArNDAsOSBAQCBSZWY8
Q1NTQW5pbWF0aW9uPiBDU1NBbmltYXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25pbmdFbGVtZW50
LCBjb25zdCBBbmltYXRpb24mCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENT
U0FuaW1hdGlvbihvd25pbmdFbGVtZW50LCBiYWNraW5nQW5pbWF0aW9uLCBuZXdTdHlsZSkpOwog
ICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOworCisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsK
KwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NU
cmFuc2l0aW9uLmNwcAppbmRleCBkZmY1ZmIxZjc5YTg5YzU2NjBhNDljMWIzNjQzZGQwN2Q4MjQz
MjcxLi5hYWFlNWUyZDBjNjE3MjBjZDEwOGRkNmRjZTU5NTE5Y2EwYWMzZTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC00MCw2ICs0MSw5IEBAIFJl
ZjxDU1NUcmFuc2l0aW9uPiBDU1NUcmFuc2l0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3duaW5nRWxl
bWVudCwgQ1NTUHJvcGVydHlJRCBwCiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENT
U1RyYW5zaXRpb24ob3duaW5nRWxlbWVudCwgcHJvcGVydHksIGdlbmVyYXRpb25UaW1lLCBiYWNr
aW5nQW5pbWF0aW9uLCBuZXdTdHlsZSwgcmV2ZXJzaW5nQWRqdXN0ZWRTdGFydFN0eWxlLCByZXZl
cnNpbmdTaG9ydGVuaW5nRmFjdG9yKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxl
LCBuZXdTdHlsZSk7CiAgICAgcmVzdWx0LT5zZXRUaW1pbmdQcm9wZXJ0aWVzKGRlbGF5LCBkdXJh
dGlvbik7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1h
dGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggMmI0ZDg2ZDhjYzI1OWVj
MWRkNTRhMjk1OTY2ZWYzOTljZjlmOTE5ZC4uM2FmNWQzN2NlNGU4YzdlOWQ1MmRiODA5YjM3MWNk
YzM0OWRmOGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
Y3BwCkBAIC0xMTAyLDcgKzExMDIsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjppbnZhbGlkYXRl
KCkKIAogdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVNob3VsZFJ1bkFjY2VsZXJhdGVkKCkK
IHsKLSAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gaGFzQmxlbmRpbmdLZXlmcmFtZXMoKTsK
KyAgICBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gISFtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUo
KTsKICAgICBmb3IgKGF1dG8gY3NzUHJvcGVydHlJZCA6IG1fYmxlbmRpbmdLZXlmcmFtZXMucHJv
cGVydGllcygpKSB7CiAgICAgICAgIGlmICghQ1NTUHJvcGVydHlBbmltYXRpb246OmFuaW1hdGlv
bk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKGNzc1Byb3BlcnR5SWQpKSB7CiAgICAgICAgICAgICBt
X3Nob3VsZFJ1bkFjY2VsZXJhdGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5oCmluZGV4IDg1NjA5ODEyNjAzYmY3MzAwNTg1NTNmZmNhMzAwMTE3YmY3
YmZkOWQuLmQ1OWUyODk1ZTBjMzk3ZTNjOTQ5NDYzMjhjOTg4MGNjODkyNmVlYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC05OCw2ICs5OCw4IEBAIHB1
YmxpYzoKICAgICAgICAgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvIGNvbXBvc2l0ZSB7IENvbXBv
c2l0ZU9wZXJhdGlvbk9yQXV0bzo6QXV0byB9OwogICAgIH07CiAKKyAgICBjb25zdCBWZWN0b3I8
UGFyc2VkS2V5ZnJhbWU+JiBwYXJzZWRLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX3BhcnNl
ZEtleWZyYW1lczsgfQorCiAgICAgRWxlbWVudCogdGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90
YXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFRhcmdldChSZWZQdHI8RWxlbWVudD4mJik7CiAK
QEAgLTEzNSw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb2xvckZpbHRlckZ1bmN0aW9u
TGlzdHNNYXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29sb3JGaWx0ZXJGdW5jdGlv
bkxpc3RzTWF0Y2g7IH0KIAogICAgIHZvaWQgY29tcHV0ZURlY2xhcmF0aXZlQW5pbWF0aW9uQmxl
bmRpbmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSYgbmV3U3R5bGUpOwotICAgIGJvb2wgaGFzQmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7
IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgfQorICAgIGNvbnN0IEtleWZyYW1l
TGlzdCYgYmxlbmRpbmdLZXlmcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJh
bWVzOyB9CiAgICAgY29uc3QgSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgYW5pbWF0ZWRQcm9wZXJ0
aWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lcy5wcm9wZXJ0aWVzKCk7IH0K
IAogICAgIGJvb2wgY29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uKExheW91dFJlY3Qm
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXgg
M2I4NzkwYWEzZDllZDI2NWQxNzZkZmM3YTFiNWY0NDg2NTI3M2I3Ny4uNTRlZTlkZjE3MTRlZGIz
MjYzZjc2OGU5MWRjNDYwODk2NGRlNTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTUzLDExICs1NSwzMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChXZWJBbmltYXRpb24pOwogCitIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBXZWJB
bmltYXRpb246Omluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJikKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaFNldDxXZWJBbmltYXRpb24qPj4gaW5zdGFuY2VzOworICAgIHJldHVy
biBpbnN0YW5jZXM7Cit9CisKK0xvY2smIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKQor
eworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CisgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVNdXRleDsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0
aWFsaXplTXV0ZXgsIFtdIHsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CisgICAgfSk7Cisg
ICAgcmV0dXJuIG11dGV4LmdldCgpOworfQorCiBSZWY8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRp
b246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0KQog
ewogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXZWJBbmltYXRpb24oZG9jdW1lbnQp
KTsKICAgICByZXN1bHQtPnNldEVmZmVjdChlZmZlY3QpOwogICAgIHJlc3VsdC0+c2V0VGltZWxp
bmUoJmRvY3VtZW50LnRpbWVsaW5lKCkpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKQEAgLTY3LDYgKzg4LDkgQEAgUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9u
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmUKICAgICBy
ZXN1bHQtPnNldEVmZmVjdChlZmZlY3QpOwogICAgIGlmICh0aW1lbGluZSkKICAgICAgICAgcmVz
dWx0LT5zZXRUaW1lbGluZSh0aW1lbGluZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIApAQCAtNzcsNiArMTAxLDkgQEAgV2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24o
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlz
KTsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKKworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5j
ZXNNdXRleCgpKTsKKyAgICBpbnN0YW5jZXMobG9jaykuYWRkKHRoaXMpOwogfQogCiBXZWJBbmlt
YXRpb246On5XZWJBbmltYXRpb24oKQpAQCAtODUsNiArMTEyLDEwIEBAIFdlYkFuaW1hdGlvbjo6
fldlYkFuaW1hdGlvbigpCiAKICAgICBpZiAobV90aW1lbGluZSkKICAgICAgICAgbV90aW1lbGlu
ZS0+Zm9yZ2V0QW5pbWF0aW9uKHRoaXMpOworCisgICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNl
c011dGV4KCkpOworICAgIEFTU0VSVChpbnN0YW5jZXMobG9jaykuY29udGFpbnModGhpcykpOwor
ICAgIGluc3RhbmNlcyhsb2NrKS5yZW1vdmUodGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9u
Ojpjb250ZXh0RGVzdHJveWVkKCkKQEAgLTExNiw2ICsxNDcsOCBAQCB2b2lkIFdlYkFuaW1hdGlv
bjo6dW5zdXNwZW5kRWZmZWN0SW52YWxpZGF0aW9uKCkKIHZvaWQgV2ViQW5pbWF0aW9uOjplZmZl
Y3RUaW1pbmdEaWRDaGFuZ2UoKQogewogICAgIHRpbWluZ0RpZENoYW5nZShEaWRTZWVrOjpObywg
U3luY2hyb25vdXNseU5vdGlmeTo6WWVzKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKCp0aGlzKTsKIH0KIAogdm9pZCBX
ZWJBbmltYXRpb246OnNldEVmZmVjdChSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVj
dCkKQEAgLTE5MCw3ICsyMjMsNyBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJu
YWwoUmVmUHRyPEFuaW1hdGlvbkVmZmVjdD4mJiBuZXdFZmZlY3QsIGJvb2wgZAogICAgICAgICAg
ICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJn
ZXQpOwogICAgIH0KIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0KCp0aGlzKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdCgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpz
ZXRUaW1lbGluZShSZWZQdHI8QW5pbWF0aW9uVGltZWxpbmU+JiYgdGltZWxpbmUpCkBAIC0yNDks
MTQgKzI4MiwxNSBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmVJbnRlcm5hbChSZWZQ
dHI8QW5pbWF0aW9uVGltZWxpbmU+JiYgdGltZWxpbmUpCiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpl
ZmZlY3RUYXJnZXREaWRDaGFuZ2UoRWxlbWVudCogcHJldmlvdXNUYXJnZXQsIEVsZW1lbnQqIG5l
d1RhcmdldCkKIHsKLSAgICBpZiAoIW1fdGltZWxpbmUpCi0gICAgICAgIHJldHVybjsKKyAgICBp
ZiAobV90aW1lbGluZSkgeworICAgICAgICBpZiAocHJldmlvdXNUYXJnZXQpCisgICAgICAgICAg
ICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMsICpwcmV2
aW91c1RhcmdldCk7CiAKLSAgICBpZiAocHJldmlvdXNUYXJnZXQpCi0gICAgICAgIG1fdGltZWxp
bmUtPmFuaW1hdGlvbldhc1JlbW92ZWRGcm9tRWxlbWVudCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0
KTsKKyAgICAgICAgaWYgKG5ld1RhcmdldCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1h
dGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKKyAgICB9CiAKLSAgICBp
ZiAobmV3VGFyZ2V0KQotICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxl
bWVudCgqdGhpcywgKm5ld1RhcmdldCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoKnRoaXMpOwogfQogCiBPcHRpb25hbDxk
b3VibGU+IFdlYkFuaW1hdGlvbjo6c3RhcnRUaW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uaAppbmRleCBkYTRkOGVjM2JjMmU1NzBiNDhhNTFkYmMxNGEzNDRl
NmM0OWJhMDcwLi5jOTk2MTNiMjY2MWQ3NjVmMGVlM2I4NmQ2MTRmOWNkMmI3ZGMyM2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUg
IldlYkFuaW1hdGlvblV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL01hcmthYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgpAQCAtNTQsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxXZWJBbmltYXRpb24+IGNyZWF0ZShEb2N1bWVudCYsIEFuaW1hdGlvbkVmZmVjdCosIEFu
aW1hdGlvblRpbWVsaW5lKik7CiAgICAgfldlYkFuaW1hdGlvbigpOwogCisgICAgc3RhdGljIEhh
c2hTZXQ8V2ViQW5pbWF0aW9uKj4mIGluc3RhbmNlcyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAg
c3RhdGljIExvY2smIGluc3RhbmNlc011dGV4KCk7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNEZWNs
YXJhdGl2ZUFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzQ1NTQW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNDU1NUcmFuc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
aW5kZXggZDBjNDMwZTJiYjg4MGE2ZTM1ODNhOTk4ZDZkY2ZjMTQzYmQ2ZWJkZS4uM2RjN2I0OTRk
NjY1NmE5MWM3ZGQ5YzY4ZTFjOWVhZjc4OTY2NmQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTcyMCw2ICs3
MjAsOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudAogICAgIGlmIChJbnNwZWN0b3JDYW52YXNB
Z2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0Fn
ZW50KCkpCiAgICAgICAgIGNhbnZhc0FnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAKKyAg
ICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZnJhbWVO
YXZpZ2F0ZWQoZnJhbWUpOworCiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdl
bnQtPmRpZENvbW1pdExvYWQoZnJhbWUuZG9jdW1lbnQoKSk7CiAKQEAgLTExMzAsMTUgKzExMzMs
MzcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZm
ZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJgogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2ls
bEFwcGx5S2V5ZnJhbWVFZmZlY3QodGFyZ2V0LCBlZmZlY3QsIGNvbXB1dGVkVGltaW5nKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0
V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5pbWF0
aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoKSkKLSAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdChhbmltYXRpb24pOworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFu
aW1hdGlvbkFnZW50LT5kaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBl
bHNlIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tp
bmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlk
U2V0V2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFn
ZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoYW5pbWF0aW9uKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVj
dFRhcmdldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAg
ICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChh
bmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
KQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKGFuaW1hdGlv
bik7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFu
aW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCiB7Ci0gICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisg
ICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxE
ZXN0cm95V2ViQW5pbWF0aW9uKGFuaW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byogYW5pbWF0
aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoKSkKICAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxEZXN0cm95V2ViQW5pbWF0aW9u
KGFuaW1hdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBlNzgxODM2NDBhMjk5YWU0MTA3Mjg1ZWY0YzI4
YWM4MWQ5NDBhMWQwLi5iMjQ2ZWFhNTU5YTc1MjY1Yzg5MGRmYTQ3ZDAxZDMxMWMxODZhNDAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0zMDUsNyArMzA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgc3RhdGlj
IHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0Jiwg
Q29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmlt
YXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0
aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAgICAgc3RhdGlj
IHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0
aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UmKTsKQEAgLTUwNSw3ICs1MDgsMTAgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZl
Y3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBD
b21wdXRlZEVmZmVjdFRpbWluZyk7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAg
c3RhdGljIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0
aW9uRWZmZWN0VGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7
CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlk
Q3JlYXRlV2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9u
Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJl
ZURpZENoYW5nZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYpOwpAQCAtMTQ2NiwxMSArMTQ3Miwz
MiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxBcHBseUtleWZy
YW1lRWZmZWN0KEVsZW1lbnQmIHRhcmdldCwgSwogICAgICAgICB3aWxsQXBwbHlLZXlmcmFtZUVm
ZmVjdEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRp
bWluZyk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hh
bmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoraW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7CiAgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
LSAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0Fn
ZW50cywgYW5pbWF0aW9uKTsKKyAgICAgICAgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0SW1wbCgq
aW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
KyAgICAgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9u
JiBhbmltYXRpb24pCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
CisgICAgaWYgKGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yQ29udGV4dChhbmltYXRpb24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAg
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50
cywgYW5pbWF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGF1dG8qIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChhbmltYXRpb24u
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAgICAgZGlkQ3JlYXRlV2ViQW5pbWF0aW9u
SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgYW5pbWF0aW9uKTsKIH0KIAogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmlt
YXRpb24mIGFuaW1hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmNwcAppbmRleCAxZjlhMGQ3YzUzMmEzZjkwODU2YzE4NGExZmZjM2IxY2Yz
NWVmYzg3Li5kN2EyZjcxOTU4ZDk0M2NjY2FjNDM0ZWFjOTNlMzNkYWUyN2NjNDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC03
MCw2ICs3MCw3IEBAIHZvaWQgSW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1fcGFn
ZURPTURlYnVnZ2VyQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQg
PSBudWxscHRyOwogICAgIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVs
bHB0cjsKKyAgICBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiAg
ICAgbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gbnVsbHB0cjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggZjZm
ZWE3ZGEyMTM2MGRkMDhjYzNkOTY2YjE0ZTJhYWM0NjU0NDkxNS4uZjU5YzNkYmRjYWY3OGNmOWM2
ZDhkYmI0MzJkY2NmMjJmMTVkNTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zdHJ1bWVudGluZ0FnZW50cy5oCkBAIC0xNTYsNiArMTU2LDkgQEAgcHVibGljOgogICAgIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KiBwZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQo
KSBjb25zdCB7IHJldHVybiBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQog
ICAgIHZvaWQgc2V0UGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dCA9IGFnZW50OyB9CiAKKyAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogZW5hYmxlZEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ7IH0KKyAgICB2b2lkIHNldEVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV9lbmFibGVkSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQgPSBhZ2VudDsgfQorCiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHRy
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNraW5n
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KICAgICB2b2lkIHNldFRyYWNraW5nSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fdHJhY2tp
bmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CiAKQEAgLTE5MCw2ICsxOTMsNyBA
QCBwcml2YXRlOgogICAgIFBhZ2VET01EZWJ1Z2dlckFnZW50KiBtX3BhZ2VET01EZWJ1Z2dlckFn
ZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckNhbnZhc0FnZW50KiBtX2luc3BlY3RvckNh
bnZhc0FnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3Bl
cnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKKyAgICBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCogbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxs
cHRyIH07CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fdHJhY2tpbmdJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCB7IG51bGxwdHIgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKaW5k
ZXggZGU5YTJjNTliZGFiYzI5MDg5NmM5NjM5Y2VhYmI0ZTJjNDczYjgyOS4uMjE0M2IzZGJlZjBi
MTI4ZjBkN2YzN2RlYzBkNjUxNmJhOWE4ZmRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKQEAg
LTI5LDI5ICsyOSwxOTggQEAKICNpbmNsdWRlICJBbmltYXRpb25FZmZlY3QuaCIKICNpbmNsdWRl
ICJBbmltYXRpb25FZmZlY3RQaGFzZS5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbi5oIgorI2lu
Y2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NUcmFuc2l0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFs
dWUuaCIKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkZpbGxNb2RlLmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIklu
c3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJKU1dlYkFuaW1hdGlvbi5oIgogI2luY2x1
ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiS2V5ZnJhbWVMaXN0LmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXliYWNrRGlyZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVu
ZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRpbWluZ0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
QW5pbWF0aW9uLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSWRlbnRpZmllcnNGYWN0b3J5
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBJbnNwZWN0b3I7CiAKK3N0YXRpYyBPcHRpb25hbDxkb3VibGU+IHByb3RvY29sVmFs
dWVGb3JTZWNvbmRzKGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCit7CisgICAgaWYgKHNlY29uZHMg
PT0gU2Vjb25kczo6aW5maW5pdHkoKSB8fCBzZWNvbmRzID09IFNlY29uZHM6Om5hbigpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBzZWNvbmRzLm1pbGxpc2Vjb25k
cygpOworfQorCitzdGF0aWMgT3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpQbGF5YmFja0RpcmVjdGlvbj4gcHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKFBs
YXliYWNrRGlyZWN0aW9uIHBsYXliYWNrRGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAocGxheWJh
Y2tEaXJlY3Rpb24pIHsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWw6CisgICAg
ICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0
aW9uOjpOb3JtYWw7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZToKKyAgICAg
ICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rp
b246OlJldmVyc2U7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlOgorICAg
ICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVj
dGlvbjo6QWx0ZXJuYXRlOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZVJl
dmVyc2U6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBs
YXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3N0YXRpYyBPcHRp
b25hbDxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlPiBwcm90b2NvbFZh
bHVlRm9yRmlsbE1vZGUoRmlsbE1vZGUgZmlsbE1vZGUpCit7CisgICAgc3dpdGNoIChmaWxsTW9k
ZSkgeworICAgIGNhc2UgRmlsbE1vZGU6Ok5vbmU6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6
OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpOb25lOworICAgIGNhc2UgRmlsbE1vZGU6
OkZvcndhcmRzOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpGaWxsTW9kZTo6Rm9yd2FyZHM7CisgICAgY2FzZSBGaWxsTW9kZTo6QmFja3dhcmRzOgorICAg
ICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6QmFj
a3dhcmRzOworICAgIGNhc2UgRmlsbE1vZGU6OkJvdGg6CisgICAgICAgIHJldHVybiBJbnNwZWN0
b3I6OlByb3RvY29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpCb3RoOworICAgIGNhc2UgRmlsbE1v
ZGU6OkF1dG86CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OkZpbGxNb2RlOjpBdXRvOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3N0YXRpYyBSZWY8SlNPTjo6QXJyYXlPZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lPj4gYnVpbGRPYmplY3RGb3JLZXlm
cmFtZXMoS2V5ZnJhbWVFZmZlY3QmIGtleWZyYW1lRWZmZWN0KQoreworICAgIGF1dG8ga2V5ZnJh
bWVzUGF5bG9hZCA9IEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpLZXlmcmFtZT46OmNyZWF0ZSgpOworCisgICAgY29uc3QgYXV0byYgYmxlbmRpbmdLZXlmcmFt
ZXMgPSBrZXlmcmFtZUVmZmVjdC5ibGVuZGluZ0tleWZyYW1lcygpOworICAgIGNvbnN0IGF1dG8m
IHBhcnNlZEtleWZyYW1lcyA9IGtleWZyYW1lRWZmZWN0LnBhcnNlZEtleWZyYW1lcygpOworCisg
ICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihrZXlmcmFtZUVmZmVjdC5hbmltYXRpb24o
KSkpIHsKKyAgICAgICAgQVNTRVJUKGtleWZyYW1lRWZmZWN0LnRhcmdldCgpKTsKKyAgICAgICAg
YXV0byogcmVuZGVyZXIgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKS0+cmVuZGVyZXIoKTsKKwor
ICAgICAgICAvLyBTeW50aGVzaXplIENTUyBzdHlsZSBkZWNsYXJhdGlvbnMgZm9yIGVhY2gga2V5
ZnJhbWUgc28gdGhlIGZyb250ZW5kIGNhbiBkaXNwbGF5IHRoZW0uCisgICAgICAgIENvbXB1dGVk
U3R5bGVFeHRyYWN0b3IgY29tcHV0ZWRTdHlsZUV4dHJhY3RvcihrZXlmcmFtZUVmZmVjdC50YXJn
ZXQoKSk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibGVuZGluZ0tleWZyYW1l
cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYXV0byYgYmxlbmRpbmdLZXlmcmFtZSA9IGJs
ZW5kaW5nS2V5ZnJhbWVzW2ldOworCisgICAgICAgICAgICBBU1NFUlQoYmxlbmRpbmdLZXlmcmFt
ZS5zdHlsZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gKmJsZW5kaW5nS2V5ZnJhbWUu
c3R5bGUoKTsKKworICAgICAgICAgICAgYXV0byBrZXlmcmFtZVBheWxvYWQgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lOjpjcmVhdGUoKQorICAgICAgICAgICAgICAg
IC5zZXRPZmZzZXQoYmxlbmRpbmdLZXlmcmFtZS5rZXkoKSkKKyAgICAgICAgICAgICAgICAucmVs
ZWFzZSgpOworCisgICAgICAgICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0
aW9uOworICAgICAgICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZXMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gcGFyc2VkS2V5ZnJhbWVzW2ldLnRpbWluZ0Z1bmN0
aW9uOworICAgICAgICAgICAgaWYgKCF0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgICAgICB0
aW1pbmdGdW5jdGlvbiA9IGJsZW5kaW5nS2V5ZnJhbWUudGltaW5nRnVuY3Rpb24oKTsKKyAgICAg
ICAgICAgIGlmICghdGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rp
b24gPSBkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oKmtleWZyYW1lRWZmZWN0LmFuaW1h
dGlvbigpKS5iYWNraW5nQW5pbWF0aW9uKCkudGltaW5nRnVuY3Rpb24oKTsKKyAgICAgICAgICAg
IGlmICh0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNl
dEVhc2luZyh0aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKworICAgICAgICAgICAgU3RyaW5n
QnVpbGRlciBzdHlsZVBheWxvYWRCdWlsZGVyOworICAgICAgICAgICAgYXV0byYgY3NzUHJvcGVy
dHlJZHMgPSBibGVuZGluZ0tleWZyYW1lLnByb3BlcnRpZXMoKTsKKyAgICAgICAgICAgIHNpemVf
dCBjb3VudCA9IGNzc1Byb3BlcnR5SWRzLnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoYXV0byBj
c3NQcm9wZXJ0eUlkIDogY3NzUHJvcGVydHlJZHMpIHsKKyAgICAgICAgICAgICAgICAtLWNvdW50
OworICAgICAgICAgICAgICAgIGlmIChjc3NQcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5Q3VzdG9t
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIHN0eWxl
UGF5bG9hZEJ1aWxkZXIuYXBwZW5kKGdldFByb3BlcnR5TmFtZVN0cmluZyhjc3NQcm9wZXJ0eUlk
KSk7CisgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoIjogIik7Cisg
ICAgICAgICAgICAgICAgaWYgKGF1dG8gdmFsdWUgPSBjb21wdXRlZFN0eWxlRXh0cmFjdG9yLnZh
bHVlRm9yUHJvcGVydHlJblN0eWxlKHN0eWxlLCBjc3NQcm9wZXJ0eUlkLCByZW5kZXJlcikpCisg
ICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKHZhbHVlLT5jc3NU
ZXh0KCkpOworICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCc7Jyk7
CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID4gMCkKKyAgICAgICAgICAgICAgICAgICAgc3R5
bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmICghc3R5bGVQYXlsb2FkQnVpbGRlci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAga2V5
ZnJhbWVQYXlsb2FkLT5zZXRTdHlsZShzdHlsZVBheWxvYWRCdWlsZGVyLnRvU3RyaW5nKCkpOwor
CisgICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQ
YXlsb2FkKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIHBhcnNlZEtleWZyYW1lIDogcGFyc2VkS2V5ZnJhbWVzKSB7CisgICAgICAgICAgICBhdXRv
IGtleWZyYW1lUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJh
bWU6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgLnNldE9mZnNldChwYXJzZWRLZXlmcmFtZS5j
b21wdXRlZE9mZnNldCkKKyAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworCisgICAgICAgICAg
ICBpZiAoIXBhcnNlZEtleWZyYW1lLmVhc2luZy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
a2V5ZnJhbWVQYXlsb2FkLT5zZXRFYXNpbmcocGFyc2VkS2V5ZnJhbWUuZWFzaW5nKTsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKGNvbnN0IGF1dG8mIHRpbWluZ0Z1bmN0aW9uID0gcGFyc2VkS2V5ZnJh
bWUudGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRF
YXNpbmcodGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAgICAgICAgIGlmICghcGFy
c2VkS2V5ZnJhbWUuc3R5bGUtPmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBrZXlmcmFtZVBh
eWxvYWQtPnNldFN0eWxlKHBhcnNlZEtleWZyYW1lLnN0eWxlLT5hc1RleHQoKSk7CisKKyAgICAg
ICAgICAgIGtleWZyYW1lc1BheWxvYWQtPmFkZEl0ZW0oV1RGTW92ZShrZXlmcmFtZVBheWxvYWQp
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBrZXlmcmFtZXNQYXlsb2FkOworfQor
CitzdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RWZmZWN0PiBidWls
ZE9iamVjdEZvckVmZmVjdChBbmltYXRpb25FZmZlY3QmIGVmZmVjdCkKK3sKKyAgICBhdXRvIGVm
ZmVjdFBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdDo6Y3Jl
YXRlKCkKKyAgICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlmIChhdXRvIHN0YXJ0RGVsYXkgPSBw
cm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QuZGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBh
eWxvYWQtPnNldFN0YXJ0RGVsYXkoc3RhcnREZWxheS52YWx1ZSgpKTsKKworICAgIGlmIChhdXRv
IGVuZERlbGF5ID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LmVuZERlbGF5KCkpKQor
ICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRFbmREZWxheShlbmREZWxheS52YWx1ZSgpKTsKKwor
ICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvbkNvdW50KGVmZmVjdC5pdGVyYXRpb25zKCkp
OworICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvblN0YXJ0KGVmZmVjdC5pdGVyYXRpb25T
dGFydCgpKTsKKworICAgIGlmIChhdXRvIGl0ZXJhdGlvbkR1cmF0aW9uID0gcHJvdG9jb2xWYWx1
ZUZvclNlY29uZHMoZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9uKCkpKQorICAgICAgICBlZmZlY3RQ
YXlsb2FkLT5zZXRJdGVyYXRpb25EdXJhdGlvbihpdGVyYXRpb25EdXJhdGlvbi52YWx1ZSgpKTsK
KworICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IGVmZmVjdC50aW1pbmdGdW5jdGlvbigp
KQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlv
bi0+Y3NzVGV4dCgpKTsKKworICAgIGlmIChhdXRvIHBsYXliYWNrRGlyZWN0aW9uID0gcHJvdG9j
b2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0aW9uKGVmZmVjdC5kaXJlY3Rpb24oKSkpCisgICAgICAg
IGVmZmVjdFBheWxvYWQtPnNldFBsYXliYWNrRGlyZWN0aW9uKHBsYXliYWNrRGlyZWN0aW9uLnZh
bHVlKCkpOworCisgICAgaWYgKGF1dG8gZmlsbE1vZGUgPSBwcm90b2NvbFZhbHVlRm9yRmlsbE1v
ZGUoZWZmZWN0LmZpbGwoKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEZpbGxNb2RlKGZp
bGxNb2RlLnZhbHVlKCkpOworCisgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKQor
ICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRLZXlmcmFtZXMoYnVpbGRPYmplY3RGb3JLZXlmcmFt
ZXMoZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpKTsKKworICAgIHJldHVybiBlZmZl
Y3RQYXlsb2FkOworfQorCiBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICA6IEluc3BlY3RvckFnZW50
QmFzZSgiQW5pbWF0aW9uIl9zLCBjb250ZXh0KQogICAgICwgbV9mcm9udGVuZERpc3BhdGNoZXIo
bWFrZVVuaXF1ZTxJbnNwZWN0b3I6OkFuaW1hdGlvbkZyb250ZW5kRGlzcGF0Y2hlcj4oY29udGV4
dC5mcm9udGVuZFJvdXRlcikpCiAgICAgLCBtX2JhY2tlbmREaXNwYXRjaGVyKEluc3BlY3Rvcjo6
QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJhY2tlbmREaXNwYXRj
aGVyLCB0aGlzKSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNvbnRleHQuaW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKQorICAgICwgbV9pbnNwZWN0ZWRQYWdlKGNvbnRleHQuaW5zcGVjdGVk
UGFnZSkKKyAgICAsIG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIoKnRoaXMsICZJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCkKIHsKIH0KIApAQCAt
NjcsMTEgKzIzNiwxMDMgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBFcnJvclN0cmlu
ZyBpZ25vcmVkOwogICAgIHN0b3BUcmFja2luZyhpZ25vcmVkKTsKKyAgICBkaXNhYmxlKGlnbm9y
ZWQpOwogCiAgICAgQVNTRVJUKG1faW5zdHJ1bWVudGluZ0FnZW50cy5wZXJzaXN0ZW50SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMu
c2V0UGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIpOwogfQogCit2b2lk
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
KQoreworICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1h
dGlvbkFnZW50KCkgPT0gdGhpcykgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24g
ZG9tYWluIGFscmVhZHkgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQo
dGhpcyk7CisKKyAgICBjb25zdCBhdXRvIGV4aXN0c0luQ3VycmVudFBhZ2UgPSBbJl0gKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKKyAgICAgICAgaWYg
KCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjg0
NzU+IFdlYiBJbnNwZWN0b3I6IENvcnJlY3RseSBkaXNwbGF5IGlmcmFtZSdzIFdlYlNvY2tldHMK
KyAgICAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpID09ICZtX2luc3Bl
Y3RlZFBhZ2U7CisgICAgfTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKFdlYkFu
aW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgICAgIGZvciAoYXV0byogYW5pbWF0aW9u
IDogV2ViQW5pbWF0aW9uOjppbnN0YW5jZXMobG9jaykpIHsKKyAgICAgICAgICAgIGlmIChleGlz
dHNJbkN1cnJlbnRQYWdlKGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAg
ICAgICAgICAgICAgICBiaW5kQW5pbWF0aW9uKCphbmltYXRpb24sIGZhbHNlKTsKKyAgICAgICAg
fQorICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZShFcnJv
clN0cmluZyYpCit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0
b3JBbmltYXRpb25BZ2VudChudWxscHRyKTsKKworICAgIHJlc2V0KCk7Cit9CisKK3ZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3RFZmZlY3RUYXJnZXQoRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkKK3sKKyAg
ICBhdXRvKiBhbmltYXRpb24gPSBhc3NlcnRBbmltYXRpb24oZXJyb3JTdHJpbmcsIGFuaW1hdGlv
bklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byog
ZG9tQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKTsKKyAg
ICBpZiAoIWRvbUFnZW50KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRPTSBkb21haW4gbXVz
dCBiZSBlbmFibGVkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogZWZm
ZWN0ID0gYW5pbWF0aW9uLT5lZmZlY3QoKTsKKyAgICBpZiAoIWlzPEtleWZyYW1lRWZmZWN0Pihl
ZmZlY3QpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5p
bWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhbiBlZmZlY3QiX3M7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBhdXRvJiBrZXlmcmFtZUVmZmVjdCA9IGRvd25jYXN0PEtleWZyYW1lRWZmZWN0
PigqZWZmZWN0KTsKKworICAgIGF1dG8qIHRhcmdldCA9IGtleWZyYW1lRWZmZWN0LnRhcmdldCgp
OworICAgIGlmICghdGFyZ2V0KSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkFuaW1hdGlvbiBm
b3IgZ2l2ZW4gYW5pbWF0aW9uSWQgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCJfczsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgICpub2RlSWQgPSBkb21BZ2VudC0+cHVzaE5vZGVQYXRoVG9G
cm9udGVuZChlcnJvclN0cmluZywgdGFyZ2V0KTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6cmVzb2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgYW5pbWF0aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpCit7Cisg
ICAgYXV0byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRp
b25JZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8q
IHN0YXRlID0gYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV4ZWNTdGF0ZSgp
OworICAgIGF1dG8gaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbmpl
Y3RlZFNjcmlwdEZvcihzdGF0ZSk7CisgICAgQVNTRVJUKCFpbmplY3RlZFNjcmlwdC5oYXNOb1Zh
bHVlKCkpOworCisgICAgSlNDOjpKU1ZhbHVlIHZhbHVlOworICAgIHsKKyAgICAgICAgSlNDOjpK
U0xvY2tIb2xkZXIgbG9jayhzdGF0ZSk7CisKKyAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0g
ZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShzdGF0ZSk7CisgICAgICAgIHZhbHVl
ID0gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBhbmltYXRpb24pOworICAgIH0KKworICAgIGlm
ICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGVycm9y
U3RyaW5nID0gIkludGVybmFsIGVycm9yOiB1bmtub3duIEFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5p
bWF0aW9uSWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgb2JqZWN0
R3JvdXBOYW1lID0gb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiBTdHJpbmcoKTsKKyAgICBy
ZXN1bHQgPSBpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KHZhbHVlLCBvYmplY3RHcm91cE5hbWUp
OworfQorCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdGFydFRyYWNraW5nKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZykKIHsKICAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLnRy
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CkBAIC0xNzAsMTYgKzQz
MSwxNTEgQEAgdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbEFwcGx5S2V5ZnJhbWVF
ZmZlY3QoRWxlbWVudCYgdGFyZ2V0LCBLZXlmcmFtZUUKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ci0+dHJhY2tpbmdVcGRhdGUobV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKS0+ZWxh
cHNlZFRpbWUoKS5zZWNvbmRzKCksIFdURk1vdmUoZXZlbnQpKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlv
biYgYW5pbWF0aW9uKQordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0V2ViQW5p
bWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxEZWNs
YXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVjbGFy
YXRpdmVBbmltYXRpb24oZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikp
OworCisgICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFuaW1hdGlvbik7Cisg
ICAgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRp
bWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklk
YCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4K
KyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAg
aWYgKGFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1
dG8qIGVmZmVjdCA9IGFuaW1hdGlvbi5lZmZlY3QoKSkKKyAgICAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KCpl
ZmZlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5lZmZlY3RD
aGFuZ2VkKGFuaW1hdGlvbklkLCBudWxscHRyKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYg
YW5pbWF0aW9uKQoreworICAgIC8vIFRoZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBB
bmltYXRpb24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9u
SWQgPSBmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dGFy
Z2V0Q2hhbmdlZChhbmltYXRpb25JZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAg
ICBpZiAoIWZpbmRBbmltYXRpb25JZChhbmltYXRpb24pLmlzRW1wdHkoKSkgeworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJpbmRB
bmltYXRpb24oYW5pbWF0aW9uLCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7
CiAgICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKQogICAgICAgICBz
dG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1h
dGlvbj4oYW5pbWF0aW9uKSk7CisKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1w
dHkgaWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFu
aW1hdGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKCFhbmltYXRp
b25JZC5pc0VtcHR5KCkpCisgICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lJiBm
cmFtZSkKK3sKKyAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAgICAgICByZXNldCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gYW5pbWF0aW9u
SWRzVG9SZW1vdmU7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGFuaW1hdGlvbl0gOiBt
X2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0ID0gYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgICAg
IGlmIChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYgZG93bmNhc3Q8RG9j
dW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KS5mcmFtZSgpID09ICZmcmFtZSkKKyAgICAg
ICAgICAgICAgICBhbmltYXRpb25JZHNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0aW9uSWQpOworICAg
ICAgICB9CisgICAgfQorICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uSWQgOiBhbmltYXRp
b25JZHNUb1JlbW92ZSkKKyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFuaW1hdGlvbklkKTsKK30K
KworU3RyaW5nIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5kQW5pbWF0aW9uSWQoV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgZm9yIChhdXRvJiBbYW5pbWF0aW9uSWQsIGV4aXN0
aW5nQW5pbWF0aW9uXSA6IG1fYW5pbWF0aW9uSWRNYXApIHsKKyAgICAgICAgaWYgKGV4aXN0aW5n
QW5pbWF0aW9uID09ICZhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uSWQ7
CisgICAgfQorICAgIHJldHVybiBudWxsU3RyaW5nKCk7Cit9CisKK1dlYkFuaW1hdGlvbiogSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmFzc2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAgYXV0byogYW5pbWF0aW9u
ID0gbV9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9u
KQorICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIGFuaW1hdGlvbiBmb3IgZ2l2ZW4gYW5p
bWF0aW9uSWQiX3M7CisgICAgcmV0dXJuIGFuaW1hdGlvbjsKK30KKwordm9pZCBJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6YmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1hdGlvbiwgYm9v
bCBjYXB0dXJlQmFja3RyYWNlKQoreworICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBtYWtlU3RyaW5n
KCJhbmltYXRpb246IiArIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKTsK
KyAgICBtX2FuaW1hdGlvbklkTWFwLnNldChhbmltYXRpb25JZCwgJmFuaW1hdGlvbik7CisKKyAg
ICBhdXRvIGFuaW1hdGlvblBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OkFuaW1hdGlvbjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldEFuaW1hdGlvbklkKGFuaW1hdGlvbklk
KQorICAgICAgICAucmVsZWFzZSgpOworCisgICAgaWYgKGlzPENTU0FuaW1hdGlvbj4oYW5pbWF0
aW9uKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0Q3NzQW5pbWF0aW9uTmFtZShkb3du
Y2FzdDxDU1NBbmltYXRpb24+KGFuaW1hdGlvbikuYW5pbWF0aW9uTmFtZSgpKTsKKyAgICBlbHNl
IGlmIChpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24pKQorICAgICAgICBhbmltYXRpb25QYXls
b2FkLT5zZXRDc3NUcmFuc2l0aW9uUHJvcGVydHkoZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4oYW5p
bWF0aW9uKS50cmFuc2l0aW9uUHJvcGVydHkoKSk7CisKKyAgICBpZiAoYXV0byogZWZmZWN0ID0g
YW5pbWF0aW9uLmVmZmVjdCgpKQorICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRFZmZlY3Qo
YnVpbGRPYmplY3RGb3JFZmZlY3QoKmVmZmVjdCkpOworCisgICAgaWYgKGNhcHR1cmVCYWNrdHJh
Y2UpIHsKKyAgICAgICAgYXV0byBzdGFja1RyYWNlID0gSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRD
YWxsU3RhY2soSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCBJbnNwZWN0b3I6OlNjcmlwdENh
bGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CisgICAgICAgIGFuaW1hdGlvblBh
eWxvYWQtPnNldEJhY2t0cmFjZShzdGFja1RyYWNlLT5idWlsZEluc3BlY3RvckFycmF5KCkpOwor
ICAgIH0KKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRpb25DcmVhdGVkKFdURk1v
dmUoYW5pbWF0aW9uUGF5bG9hZCkpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
Ojp1bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCkKK3sKKyAgICBtX2Fu
aW1hdGlvbklkTWFwLnJlbW92ZShhbmltYXRpb25JZCk7CisKKyAgICAvLyBUaGlzIGNhbiBiZSBj
YWxsZWQgaW4gcmVzcG9uc2UgdG8gR0MuIER1ZSB0byB0aGUgc2luZ2xlLXByb2Nlc3MgbW9kZWwg
dXNlZCBpbiBXZWJLaXQxLCB0aGUKKyAgICAvLyBldmVudCBtdXN0IGJlIGRpc3BhdGNoZWQgZnJv
bSBhIHRpbWVyIHRvIHByZXZlbnQgdGhlIGZyb250ZW5kIGZyb20gbWFraW5nIEpTIGFsbG9jYXRp
b25zCisgICAgLy8gd2hpbGUgdGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KKyAgICBtX3JlbW92ZWRB
bmltYXRpb25JZHMuYXBwZW5kKGFuaW1hdGlvbklkKTsKKworICAgIGlmICghbV9hbmltYXRpb25E
ZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjphbmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoIW1fcmVtb3ZlZEFu
aW1hdGlvbklkcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgaWRl
bnRpZmllciA6IG1fcmVtb3ZlZEFuaW1hdGlvbklkcykKKyAgICAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXItPmFuaW1hdGlvbkRlc3Ryb3llZChpZGVudGlmaWVyKTsKKworICAgIG1fcmVtb3ZlZEFu
aW1hdGlvbklkcy5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojpy
ZXNldCgpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisgICAgbV9yZW1vdmVk
QW5pbWF0aW9uSWRzLmNsZWFyKCk7CisKKyAgICBpZiAobV9hbmltYXRpb25EZXN0cm95ZWRUaW1l
ci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLnN0b3AoKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RvcFRyYWNraW5nRGVjbGFyYXRp
dmVBbmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mIGFuaW1hdGlvbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQuaAppbmRleCA3YTI0YmJjYmIxYjMzMWQxOTBkYTYwYzAwZDIxYmQ5MzU0OGZhYjAwLi5kMjY2
ZDdlZjIxZTQyZDg0MWRmNmMwZDM4MDczZGRlYzI5Y2FkOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5o
CkBAIC0yNywxNiArMjcsMjEgQEAKIAogI2luY2x1ZGUgIkNvbXB1dGVkRWZmZWN0VGltaW5nLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yV2ViQWdlbnRCYXNlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBB
bmltYXRpb25FZmZlY3Q7CiBjbGFzcyBEZWNsYXJhdGl2ZUFuaW1hdGlvbjsKIGNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgS2V5ZnJhbWVFZmZlY3Q7Citj
bGFzcyBQYWdlOwogY2xhc3MgV2ViQW5pbWF0aW9uOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0
cmluZzsKQEAgLTUzLDIwICs1OCw0MiBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwog
CiAgICAgLy8gQW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFi
bGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcm
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RFZmZlY3RUYXJnZXQoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBpbnQqIG5vZGVJZCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCByZXNvbHZlQW5pbWF0aW9uKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25J
ZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0VHJhY2tp
bmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0
cmluZyYpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAg
dm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiwgS2V5ZnJhbWVFZmZlY3QmLCBD
b21wdXRlZEVmZmVjdFRpbWluZyk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3QoV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2Vi
QW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmco
V2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJn
ZXQoV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5p
bWF0aW9uJik7CiAgICAgdm9pZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24m
KTsKKyAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKEZyYW1lJik7CiAKIHByaXZhdGU6CisgICAgU3Ry
aW5nIGZpbmRBbmltYXRpb25JZChXZWJBbmltYXRpb24mKTsKKyAgICBXZWJBbmltYXRpb24qIGFz
c2VydEFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpOwor
ICAgIHZvaWQgYmluZEFuaW1hdGlvbihXZWJBbmltYXRpb24mLCBib29sIGNhcHR1cmVCYWNrdHJh
Y2UpOworICAgIHZvaWQgdW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQp
OworICAgIHZvaWQgYW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpOworICAgIHZvaWQgcmVz
ZXQoKTsKKwogICAgIHZvaWQgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFy
YXRpdmVBbmltYXRpb24mKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkFuaW1h
dGlvbkZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRy
PEluc3BlY3Rvcjo6QW5pbWF0aW9uQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNo
ZXI7CiAKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciYgbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXI7CisgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOworCisgICAgSGFzaE1hcDxT
dHJpbmcsIFdlYkFuaW1hdGlvbio+IG1fYW5pbWF0aW9uSWRNYXA7CisgICAgVmVjdG9yPFN0cmlu
Zz4gbV9yZW1vdmVkQW5pbWF0aW9uSWRzOworICAgIFRpbWVyIG1fYW5pbWF0aW9uRGVzdHJveWVk
VGltZXI7CisKICAgICBzdHJ1Y3QgVHJhY2tlZERlY2xhcmF0aXZlQW5pbWF0aW9uRGF0YSB7CiAg
ICAgICAgIFN0cmluZyB0cmFja2luZ0FuaW1hdGlvbklkOwogICAgICAgICBDb21wdXRlZEVmZmVj
dFRpbWluZyBsYXN0Q29tcHV0ZWRUaW1pbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGFlY2M3OWJjMGNhNTZm
YjY1ZmUwMzMwZjA4ZTRlZTY4OGJmODFlODkuLjBmNDZhMzAzM2FlZjQwMDdmNmViODM3YTYxMDVm
MDVhMGM1OTA2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NjYsNyArNTY2LDcgQEAgaW50IEluc3BlY3Rv
ckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBp
bnQgZG9jdW1lbnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIHB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQobm9kZVRvUHVzaCk7CisgICAgcmV0dXJuIHB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGVUb1B1c2gpOwogfQogCiBOb2RlKiBJbnNwZWN0b3JE
T01BZ2VudDo6bm9kZUZvcklkKGludCBpZCkKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50
IG5vZGVJZCwgY29ucwogICAgIH0KIAogICAgIGlmIChhdXRvKiBlbGVtZW50ID0gcXVlcnlSZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCkpCi0gICAgICAgICplbGVtZW50SWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGVsZW1lbnQpOworICAgICAgICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRo
VG9Gcm9udGVuZChlcnJvclN0cmluZywgZWxlbWVudCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6OnF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4m
IHJlc3VsdCkKQEAgLTYzOSwxMyArNjM5LDI0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1
ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjCiB9
CiAKIGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKiBu
b2RlVG9QdXNoKQoreworICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgcmV0dXJuIHB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQoaWdub3JlZCwgbm9kZVRvUHVzaCk7Cit9CisKK2ludCBJbnNwZWN0
b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyBlcnJvclN0cmlu
ZywgTm9kZSogbm9kZVRvUHVzaCkKIHsKICAgICBBU1NFUlQobm9kZVRvUHVzaCk7ICAvLyBJbnZh
bGlkIGlucHV0CiAKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3VtZW50KSB7
CisgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3NpbmcgZG9jdW1lbnQiX3M7CiAgICAgICAgIHJl
dHVybiAwOwotICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1fZG9jdW1l
bnQpKQorICAgIH0KKworICAgIGlmICghbV9kb2N1bWVudE5vZGVUb0lkTWFwLmNvbnRhaW5zKG1f
ZG9jdW1lbnQpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIkRvY3VtZW50IG11c3QgaGF2ZSBi
ZWVuIHJlcXVlc3RlZCJfczsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgLy8gUmV0
dXJuIGlkIGluIGNhc2UgdGhlIG5vZGUgaXMga25vd24uCiAgICAgaW50IHJlc3VsdCA9IG1fZG9j
dW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZVRvUHVzaCk7CkBAIC03OTAsNyArODAxLDcgQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBpbnQgbm9kZUlkLCBjb25zdAogICAgIGlmICghbV9kb21FZGl0b3ItPnJlbW92ZUNoaWxkKCpw
YXJlbnQsICpvbGROb2RlLCBlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgICpu
ZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3RWxlbWVudC5wdHIoKSk7CisgICAgKm5l
d0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3RWxlbWVudC5wdHIo
KSk7CiAgICAgaWYgKG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkKICAgICAg
ICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKCpuZXdJZCk7CiB9CkBAIC04MzAsNyArODQxLDcg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGludCBuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7CisgICAgaW50IG5l
d0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbmV3Tm9kZSk7CiAKICAg
ICBib29sIGNoaWxkcmVuUmVxdWVzdGVkID0gbV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhu
b2RlSWQpOwogICAgIGlmIChjaGlsZHJlblJlcXVlc3RlZCkKQEAgLTE0MjIsNyArMTQzMyw3IEBA
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcs
IGludCBub2RlSWQsIGludCB0YXJnZXRFCiAgICAgaWYgKCFtX2RvbUVkaXRvci0+aW5zZXJ0QmVm
b3JlKCp0YXJnZXRFbGVtZW50LCAqbm9kZSwgYW5jaG9yTm9kZSwgZXJyb3JTdHJpbmcpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChu
b2RlKTsKKyAgICAqbmV3Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmlu
Zywgbm9kZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuZG8oRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nKQpAQCAtMTQ5OCwxMSArMTUwOSwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpnZXRBdHRyaWJ1dGVzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwg
UmVmUAogICAgIHJlc3VsdCA9IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhlbGVtZW50
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKK3ZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgaW50KiBub2RlSWQpCiB7CiAgICAgTm9kZSogbm9kZSA9IG5vZGVGb3JPYmpl
Y3RJZChvYmplY3RJZCk7CiAgICAgaWYgKG5vZGUpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9k
ZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9G
cm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7CiAgICAgZWxzZQogICAgICAgICAqbm9kZUlkID0g
MDsKIH0KQEAgLTI2NDYsNyArMjY1Nyw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2Rl
Rm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpCiB7CiAgICAgaWYgKE5vZGUqIG5vZGUgPSBu
b2RlRm9yUGF0aChwYXRoKSkKLSAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRl
bmQobm9kZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9y
U3RyaW5nLCBub2RlKTsKICAgICBlbHNlCiAgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3Npbmcg
bm9kZSBmb3IgZ2l2ZW4gcGF0aCJfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA1MTYzOWFiZWI4NGY0ZDk1ZGVk
M2Y0ZmI2NDA5YWQ4ZjYyYTI4OTRlLi43ZGYwZTgzZWI1M2Q3NWM0MWM1NTRmMTQwMTIzNWJhMjE3
MTk0MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5oCkBAIC0xODAsNiArMTgwLDggQEAgcHVibGljOgogCiAgICAgaW50IHB1
c2hOb2RlVG9Gcm9udGVuZChOb2RlKik7CiAgICAgaW50IHB1c2hOb2RlVG9Gcm9udGVuZChFcnJv
clN0cmluZyYsIGludCBkb2N1bWVudE5vZGVJZCwgTm9kZSopOworICAgIGludCBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKE5vZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFcnJv
clN0cmluZywgTm9kZSopOwogICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsKICAgICBp
bnQgYm91bmROb2RlSWQoY29uc3QgTm9kZSopOwogCkBAIC0yMTcsNyArMjE5LDYgQEAgcHJpdmF0
ZToKICAgICBOb2RlKiBhc3NlcnRFZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlk
KTsKICAgICBFbGVtZW50KiBhc3NlcnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkKTsKIAotICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKICAgICB2
b2lkIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChpbnQgbm9kZUlkLCBpbnQgZGVwdGggPSAxKTsK
IAogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9y
Tm9kZShOb2RlKiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKaW5kZXggNTlmM2ZhMzkxNWZmYjY5NmRkMWU1NDkyNGZiZmU0NWI2YmU1NGIx
My4uODM5MWJmZmQ0OTQzMDRkZTM1Nzc1ZmQxNzcyMzFjZWU0NWFkNmY1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xMjUsMTIgKzEyNSwxNSBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gcmVhZCB0aGUgXHUyMDFDJXNcdTIwMUQg
dGFibGUuIl0gPQogbG9jYWxpemVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciAlcyBvY2N1
cnJlZC4iXSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0ZWQg
ZXJyb3Igb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuZ2xlIl0gPSAiQW5nbGUiOwor
bG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIl0gPSAiQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0
cmluZ3NbIkFuaW1hdGlvbiAlZCJdID0gIkFuaW1hdGlvbiAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJBbmltYXRpb24gRnJhbWUgJWQgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgQ2Fu
Y2VsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIl0gPSAi
QW5pbWF0aW9uIEZyYW1lICVkIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBG
cmFtZSAlZCBSZXF1ZXN0ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVzdGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBDYW5jZWxlZCJdID0gIkFuaW1hdGlvbiBG
cmFtZSBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgRmlyZWQi
XSA9ICJBbmltYXRpb24gRnJhbWUgRmlyZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9u
IEZyYW1lIFJlcXVlc3RlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0ZWQiOworbG9jYWxp
emVkU3RyaW5nc1siQW5pbWF0aW9uIFRhcmdldCJdID0gIkFuaW1hdGlvbiBUYXJnZXQiOwogbG9j
YWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdCAlZCJdID0gIkFub255bW91cyBTY3JpcHQg
JWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFNjcmlwdHMiXSA9ICJBbm9ueW1vdXMg
U2NyaXB0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQiXSA9
ICJBbm9ueW1vdXMgU3R5bGUgU2hlZXQgJWQiOwpAQCAtMjAxLDkgKzIwNCwxMSBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJDUFUiXSA9ICJDUFUiOwogbG9jYWxpemVkU3RyaW5nc1siQ1BVIFVzYWdlIl0g
PSAiQ1BVIFVzYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUCBIYXNoIl0gPSAiQ1NQIEhhc2gi
OwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbiJdID0gIkNTUyBBbmltYXRpb24iOwor
bG9jYWxpemVkU3RyaW5nc1siQ1NTIEFuaW1hdGlvbnMiXSA9ICJDU1MgQW5pbWF0aW9ucyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJDU1MgQ2FudmFzIl0gPSAiQ1NTIENhbnZhcyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJDU1MgQ2hhbmdlczoiXSA9ICJDU1MgQ2hhbmdlczoiOwogbG9jYWxpemVkU3RyaW5n
c1siQ1NTIFRyYW5zaXRpb24iXSA9ICJDU1MgVHJhbnNpdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdz
WyJDU1MgVHJhbnNpdGlvbnMiXSA9ICJDU1MgVHJhbnNpdGlvbnMiOwogbG9jYWxpemVkU3RyaW5n
c1siQ1NTIGNhbnZhcyBcdTIwMUMlc1x1MjAxRCJdID0gIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIw
MUQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FjaGVkIl0gPSAiQ2FjaGVkIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNhbGwgRnJhbWVzIFRydW5jYXRlZCJdID0gIkNhbGwgRnJhbWVzIFRydW5jYXRlZCI7
CkBAIC0yMTgsNiArMjIzLDggQEAgbG9jYWxpemVkU3RyaW5nc1siQ2FuY2VsZWQiXSA9ICJDYW5j
ZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMiXSA9ICJDYW52YXMiOwogbG9jYWxpemVk
U3RyaW5nc1siQ2FudmFzICVkIl0gPSAiQ2FudmFzICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNh
bnZhcyAlcyJdID0gIkNhbnZhcyAlcyI7CisvKiBCaXRtYXAgUmVuZGVyZXIgaXMgYSB0eXBlIG9m
IHJlbmRlcmluZyBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCBhIDxjYW52YXM+IGVsZW1lbnQgKi8K
K2xvY2FsaXplZFN0cmluZ3NbIkNhbnZhcyBDb250ZXh0IFR5cGUgQml0bWFwIFJlbmRlcmVyIl0g
PSAiQml0bWFwIFJlbmRlcmVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZhcyBFbGVtZW50Il0g
PSAiQ2FudmFzIEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzZXMiXSA9ICJDYW52
YXNlcyI7CiAvKiBDYXB0dXJlIHNjcmVlbnNob3Qgb2YgdGhlIHNlbGVjdGVkIERPTSBub2RlICov
CkBAIC01ODcsNiArNTk0LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIENvZGUiXSA9ICJH
bG9iYWwgQ29kZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVu
dCJdID0gIkdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkds
b2JhbCBWYXJpYWJsZXMiXSA9ICJHbG9iYWwgVmFyaWFibGVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkdyYW1tYXIiXSA9ICJHcmFtbWFyIjsKK2xvY2FsaXplZFN0cmluZ3NbIkdyYXBoaWNzIl0gPSAi
R3JhcGhpY3MiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAiXSA9ICJHcm91cCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJHcm91cCBCeSBSZXNvdXJjZSJdID0gIkdyb3VwIEJ5IFJlc291cmNlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkdyb3VwIE1lZGlhIFJlcXVlc3RzIl0gPSAiR3JvdXAgTWVkaWEgUmVx
dWVzdHMiOwpAQCAtNjM0LDYgKzY0Miw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkltYWdlcyJdID0g
IkltYWdlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXM6Il0gPSAiSW1hZ2VzOiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIl0gPSAiSW1tZWRpYXRlIFBh
dXNlIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQiXSA9ICJJbXBvcnQiOwor
bG9jYWxpemVkU3RyaW5nc1siSW1wb3J0IFJlY29yZGluZyJdID0gIkltcG9ydCBSZWNvcmRpbmci
OwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQiXSA9ICJJbXBvcnRlZCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJJbXBvcnRlZCAtICVzIl0gPSAiSW1wb3J0ZWQgLSAlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJJbXBvcnRlZCBcdTIwMTQgJXMiXSA9ICJJbXBvcnRlZCBcdTIwMTQgJXMiOwpAQCAtNjk4
LDYgKzcwNyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFN0b3JhZ2UiXSA9ICJMb2NhbCBT
dG9yYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2FsIFZhcmlhYmxlcyJdID0gIkxvY2FsIFZh
cmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGVkIGF0ICVzIl0gPSAiTG9jYXRlZCBh
dCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhdGlvbiJdID0gIkxvY2F0aW9uIjsKK2xvY2Fs
aXplZFN0cmluZ3NbIkxvZyBBbmltYXRpb24iXSA9ICJMb2cgQW5pbWF0aW9uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkxvZyBDYW52YXMgQ29udGV4dCJdID0gIkxvZyBDYW52YXMgQ29udGV4dCI7CiAv
KiBMb2cgKHByaW50KSBET00gZWxlbWVudCB0byBDb25zb2xlICovCiBsb2NhbGl6ZWRTdHJpbmdz
WyJMb2cgRWxlbWVudCJdID0gIkxvZyBFbGVtZW50IjsKQEAgLTc3MSw2ICs3ODEsNyBAQCBsb2Nh
bGl6ZWRTdHJpbmdzWyJObyBFbmFibGVkIEF1ZGl0cyJdID0gIk5vIEVuYWJsZWQgQXVkaXRzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5vIEVudHJpZXMiXSA9ICJObyBFbnRyaWVzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIk5vIEV2ZW50IExpc3RlbmVycyJdID0gIk5vIEV2ZW50IExpc3RlbmVycyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJObyBGaWx0ZXIgUmVzdWx0cyJdID0gIk5vIEZpbHRlciBSZXN1bHRz
IjsKK2xvY2FsaXplZFN0cmluZ3NbIk5vIEtleWZyYW1lcyJdID0gIk5vIEtleWZyYW1lcyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJObyBMYXllciBBdmFpbGFibGUiXSA9ICJObyBMYXllciBBdmFpbGFi
bGUiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gT3ZlcnJpZGVzIl0gPSAiTm8gT3ZlcnJpZGVzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5vIFBhcmFtZXRlcnMiXSA9ICJObyBQYXJhbWV0ZXJzIjsKQEAg
LTc4Miw2ICs3OTMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXNwb25zZSBIZWFkZXJzIl0g
PSAiTm8gUmVzcG9uc2UgSGVhZGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXN1bHQiXSA9
ICJObyBSZXN1bHQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzdWx0cyBGb3VuZCJdID0gIk5v
IFJlc3VsdHMgRm91bmQiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gU2VhcmNoIFJlc3VsdHMiXSA9
ICJObyBTZWFyY2ggUmVzdWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBTdHlsZXMiXSA9ICJO
byBTdHlsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gV2F0Y2ggRXhwcmVzc2lvbnMiXSA9ICJO
byBXYXRjaCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBhdWRpdCBzZWxlY3Rl
ZCJdID0gIk5vIGF1ZGl0IHNlbGVjdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIGNlcnRpZmlj
YXRlIHNlY3VyaXR5IGluZm9ybWF0aW9uLiJdID0gIk5vIGNlcnRpZmljYXRlIHNlY3VyaXR5IGlu
Zm9ybWF0aW9uLiI7CkBAIC05MDYsNiArOTE4LDggQEAgbG9jYWxpemVkU3RyaW5nc1siUmVjb3Jk
aW5nIl0gPSAiUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyAlZCJdID0g
IlJlY29yZGluZyAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgRXJyb3I6ICVzIl0g
PSAiUmVjb3JkaW5nIEVycm9yOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgVGlt
ZWxpbmUgRGF0YSJdID0gIlJlY29yZGluZyBUaW1lbGluZSBEYXRhIjsKKy8qIEEgdHlwZSBvZiBj
YW52YXMgcmVjb3JkaW5nIGluIHRoZSBHcmFwaGljcyBUYWIgKi8KK2xvY2FsaXplZFN0cmluZ3Nb
IlJlY29yZGluZyBUeXBlIENhbnZhcyBCaXRtYXAgUmVuZGVyZXIiXSA9ICJCaXRtYXAgUmVuZGVy
ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIFdhcm5pbmc6ICVzIl0gPSAiUmVjb3Jk
aW5nIFdhcm5pbmc6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyBzdG9wIHJlcXVl
c3RlZCBcdTIwMTQgJXMiXSA9ICJSZWNvcmRpbmcgc3RvcCByZXF1ZXN0ZWQgXHUyMDE0ICVzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZ3MiXSA9ICJSZWNvcmRpbmdzIjsKQEAgLTkxNCw3
ICs5MjgsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZWRpcmVjdHMiXSA9ICJSZWRpcmVjdHMiOwog
bG9jYWxpemVkU3RyaW5nc1siUmVmZXJlbmNlIElzc3VlIl0gPSAiUmVmZXJlbmNlIElzc3VlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlJlZmxlY3Rpb24iXSA9ICJSZWZsZWN0aW9uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlZnJlc2giXSA9ICJSZWZyZXNoIjsKLWxvY2FsaXplZFN0cmluZ3NbIlJlZnJl
c2ggYWxsIl0gPSAiUmVmcmVzaCBhbGwiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCB3YXRj
aCBleHByZXNzaW9ucyJdID0gIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMiOwogbG9jYWxpemVk
U3RyaW5nc1siUmVnaW9uIGFubm91bmNlZCBpbiBpdHMgZW50aXJldHkuIl0gPSAiUmVnaW9uIGFu
bm91bmNlZCBpbiBpdHMgZW50aXJldHkuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ3VsYXIgRXhw
cmVzc2lvbiJdID0gIlJlZ3VsYXIgRXhwcmVzc2lvbiI7CkBAIC0xMDI0LDYgKzEwMzcsOCBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJTZWN1cml0eSBPcmlnaW4iXSA9ICJTZWN1cml0eSBPcmlnaW4iOwog
bG9jYWxpemVkU3RyaW5nc1siU2VsZWN0IGJhc2VsaW5lIHNuYXBzaG90Il0gPSAiU2VsZWN0IGJh
c2VsaW5lIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBjb21wYXJpc29uIHNu
YXBzaG90Il0gPSAiU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiOwogbG9jYWxpemVkU3RyaW5n
c1siU2VsZWN0ZWQiXSA9ICJTZWxlY3RlZCI7CisvKiBBcHBlYXJzIGFzIGEgbGFiZWwgd2hlbiBh
IGdpdmVuIHdlYiBhbmltYXRpb24gaXMgbG9nZ2VkIHRvIHRoZSBDb25zb2xlICovCitsb2NhbGl6
ZWRTdHJpbmdzWyJTZWxlY3RlZCBBbmltYXRpb24iXSA9ICJTZWxlY3RlZCBBbmltYXRpb24iOwog
bG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgQ2FudmFzIENvbnRleHQiXSA9ICJTZWxlY3RlZCBD
YW52YXMgQ29udGV4dCI7CiAvKiBTZWxlY3RlZCBET00gZWxlbWVudCAqLwogbG9jYWxpemVkU3Ry
aW5nc1siU2VsZWN0ZWQgRWxlbWVudCJdID0gIlNlbGVjdGVkIEVsZW1lbnQiOwpAQCAtMTE3OSw2
ICsxMTk0LDggQEAgbG9jYWxpemVkU3RyaW5nc1siVGhlc2UgdGVzdHMgc2VydmUgYXMgYSBkZW1v
bnN0cmF0aW9uIG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFuZAogbG9jYWxpemVkU3RyaW5nc1siVGhp
cyBSZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSJdID0gIlRoaXMg
UmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUiOwogbG9jYWxpemVk
U3RyaW5nc1siVGhpcyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiXSA9ICJUaGlzIGFj
dGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5nZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFj
dGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEiXSA9ICJUaGlzIGFj
dGlvbiBtb3ZlcyB0aGUgcGF0aCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEiOworbG9jYWxpemVk
U3RyaW5nc1siVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiJdID0gIlRoaXMgYW5pbWF0
aW9uIGhhcyBubyBkdXJhdGlvbi4iOworbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhbmltYXRpb24g
aGFzIG5vIGtleWZyYW1lcy4iXSA9ICJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiXSA9ICJUaGlz
IGF1ZGl0IGlzIG5vdCBzdXBwb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBpcyBhbiBl
eGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIl0gPSAiVGhpcyBpcyBh
biBleGFtcGxlIG9mIGhvdyBjdXN0b20gcmVzdWx0IGRhdGEgaXMgc2hvd24uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgZXJyb3JzIGFyZSBzaG93bi4gVGhl
IGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHksIGJ1dCBleGVjdXRpb24gZXJyb3JzIHdpbGwgYXBw
ZWFyIGluIHRoZSBzYW1lIHdheS4iXSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGVycm9y
cyBhcmUgc2hvd24uIFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBidXQgZXhlY3V0aW9u
IGVycm9ycyB3aWxsIGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIjsKQEAgLTEyOTEsMTIgKzEzMDgs
NjUgQEAgbG9jYWxpemVkU3RyaW5nc1siVmlldyBTaGFkZXIiXSA9ICJWaWV3IFNoYWRlciI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJWaWV3cG9ydCJdID0gIlZpZXdwb3J0IjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlZpc2libGUiXSA9ICJWaXNpYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmciXSA9
ICJXYWl0aW5nIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3Jl
YXRlZCBieSBDU1MuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IENTUy4i
OworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEph
dmFTY3JpcHQuIl0gPSAiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5IEphdmFTY3Jp
cHQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0cyBjcmVh
dGVkIGJ5IHNjcmlwdCBvciBDU1MuIl0gPSAiV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNy
ZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3Ig
ZnJhbWVzXHUyMDI2Il0gPSAiV2FpdGluZyBmb3IgZnJhbWVzXHUyMDI2IjsKK2xvY2FsaXplZFN0
cmluZ3NbIldhaXRpbmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiJdID0gIldhaXRp
bmcgZm9yIHRyYW5zaXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJX
YXJuaW5nOiAiXSA9ICJXYXJuaW5nOiAiOwogbG9jYWxpemVkU3RyaW5nc1siV2FybmluZ3MiXSA9
ICJXYXJuaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRjaCBFeHByZXNzaW9ucyJdID0gIldh
dGNoIEV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhdGVyZmFsbCJdID0gIldhdGVy
ZmFsbCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIl0gPSAiV2ViIEFuaW1hdGlv
biI7CisvKiBTZWN0aW9uIHRpdGxlIGZvciB0aGUgSmF2YVNjcmlwdCBiYWNrdHJhY2Ugb2YgdGhl
IGNyZWF0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFu
aW1hdGlvbiBCYWNrdHJhY2UgVGl0bGUiXSA9ICJCYWNrdHJhY2UiOworLyogTGFiZWwgZm9yIHRo
ZSBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9j
YWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBFYXNpbmcgTGFiZWwiXSA9ICJFYXNpbmciOwor
LyogU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVmZmVjdCBvZiBhIHdl
YiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRWZmZWN0IFRp
dGxlIl0gPSAiRWZmZWN0IjsKKy8qIExhYmVsIGZvciB0aGUgZW5kIGRlbGF5IHRpbWUgb2YgYSB3
ZWIgYW5pbWF0aW9uICAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBFbmQgRGVs
YXkgTGFiZWwiXSA9ICJFbmQgRGVsYXkiOworLyogVG9vbHRpcCBmb3Igc2VjdGlvbiBvZiBncmFw
aCByZXByZXNlbnRpbmcgZGVsYXkgYWZ0ZXIgYSB3ZWIgYW5pbWF0aW9uIGZpbmlzaGVzIGFwcGx5
aW5nIHN0eWxlcyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBFbmQgRGVsYXkg
VG9vbHRpcCJdID0gIkVuZCBEZWxheSAlcyI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBh
bmltYXRpb24gZWl0aGVyIGRvZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lu
cyBhbmQgYWZ0ZXIgaXQgZW5kcyBvciB0aGF0IGl0IGFwcGxpZXMgdG8gYm90aCwgZGVwZW5kaW5n
IG9uIGl0J3MgY29uZmlndXJhdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlv
biBGaWxsIE1vZGUgQXV0byJdID0gIkF1dG8iOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIg
YW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyAqLworbG9jYWxp
emVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQmFja3dhcmRzIl0gPSAiQmFja3dh
cmRzIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMg
c3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgKi8KK2xvY2FsaXplZFN0
cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEJvdGgiXSA9ICJCb3RoIjsKKy8qIEluZGlj
YXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGFmdGVyIGl0
IGVuZHMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEZvcndh
cmRzIl0gPSAiRm9yd2FyZHMiOworLyogTGFiZWwgZm9yIHRoZSBmaWxsIG1vZGUgb2YgYSB3ZWIg
YW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBM
YWJlbCJdID0gIkZpbGwiOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGRv
ZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5k
cyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgTm9uZSJdID0g
Ik5vbmUiOworLyogU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgYSB3ZWIgYW5p
bWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIElkZW50aXR5IFRpdGxl
Il0gPSAiSWRlbnRpdHkiOworLyogTGFiZWwgZm9yIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBv
ZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gSXRl
cmF0aW9uIENvdW50IExhYmVsIl0gPSAiSXRlcmF0aW9ucyI7CisvKiBMYWJlbCBmb3IgdGhlIHRp
bWUgZHVyYXRpb24gb2YgZWFjaCBpdGVyYXRpb24gb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2Nh
bGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBEdXJhdGlvbiBMYWJlbCJdID0g
IkR1cmF0aW9uIjsKKy8qIExhYmVsIGZvciB0aGUgbnVtYmVyIGRlc2NyaWJpbmcgd2hpY2ggaXRl
cmF0aW9uIGEgd2ViIGFuaW1hdGlvbiBzaG91bGQgc3RhcnQgYXQgKi8KK2xvY2FsaXplZFN0cmlu
Z3NbIldlYiBBbmltYXRpb24gSXRlcmF0aW9uIFN0YXJ0IExhYmVsIl0gPSAiU3RhcnQiOworLyog
U2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGtleWZyYW1lcyBvZiBhIHdl
YiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gS2V5ZnJhbWVz
IFRpdGxlIl0gPSAiS2V5ZnJhbWVzIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBk
aXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiBub3JtYWwg
YW5kIHJldmVyc2VkIG9uIGVhY2ggaXRlcmF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIg
QW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBBbHRlcm5hdGUiXSA9ICJBbHRlcm5hdGUiOwor
LyogSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmlt
YXRpb24gYWx0ZXJuYXRlcyBiZXR3ZWVuIHJldmVyc2VkIGFuZCBub3JtYWwgb24gZWFjaCBpdGVy
YXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0
aW9uIEFsdGVybmF0ZSBSZXZlcnNlIl0gPSAiQWx0ZXJuYXRlIFJldmVyc2UiOworLyogTGFiZWwg
Zm9yIHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6
ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBMYWJlbCJdID0gIkRp
cmVjdGlvbiI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRo
aXMgd2ViIGFuaW1hdGlvbiBpcyBub3JtYWwgKGUuZy4gZm9yd2FyZHMpICovCitsb2NhbGl6ZWRT
dHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBOb3JtYWwiXSA9ICJOb3Jt
YWwiOworLyogSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdl
YiBhbmltYXRpb24gaXMgcmV2ZXJzZWQgKGUuZy4gYmFja3dhcmRzKSAqLworbG9jYWxpemVkU3Ry
aW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gUmV2ZXJzZSJdID0gIlJldmVy
c2UiOworLyogTGFiZWwgZm9yIHRoZSBzdGFydCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1hdGlv
biAgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gU3RhcnQgRGVsYXkgTGFiZWwi
XSA9ICJTdGFydCBEZWxheSI7CisvKiBUb29sdGlwIGZvciBzZWN0aW9uIG9mIGdyYXBoIHJlcHJl
c2VudGluZyBkZWxheSBiZWZvcmUgYSB3ZWIgYW5pbWF0aW9uIGJlZ2lucyBhcHBseWluZyBzdHls
ZXMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gU3RhcnQgRGVsYXkgVG9vbHRp
cCJdID0gIlN0YXJ0IERlbGF5ICVzIjsKKy8qIExhYmVsIGZvciB0aGUgY3VycmVudCBET00gbm9k
ZSB0YXJnZXQgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5p
bWF0aW9uIFRhcmdldCBMYWJlbCJdID0gIlRhcmdldCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIg
QW5pbWF0aW9ucyJdID0gIldlYiBBbmltYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJ
bnNwZWN0b3IiXSA9ICJXZWIgSW5zcGVjdG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNw
ZWN0b3IgUmVmZXJlbmNlIl0gPSAiV2ViIEluc3BlY3RvciBSZWZlcmVuY2UiOwogbG9jYWxpemVk
U3RyaW5nc1siV2ViIFBhZ2UiXSA9ICJXZWIgUGFnZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggODI3MWUxM2M2YjdkN2YzMzFj
YjJhZTllZGM4MzJhMTRhYzJmMmUzMi4uZWFjZTEyNjdjYTA2MTAwZjZjNzBhZjM1NGQyMDQ3ZThk
MDRmZGU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcwpAQCAtMTIzLDYgKzEyMyw3IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgV0kud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3JrZXJNYW5hZ2VyLAogICAgICAgICBX
SS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRE9NRGVidWdnZXJNYW5hZ2VyLAogICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3IFdJLkNhbnZhc01hbmFnZXIsCisgICAgICAgIFdJLmFu
aW1hdGlvbk1hbmFnZXIgPSBuZXcgV0kuQW5pbWF0aW9uTWFuYWdlciwKICAgICBdOwogCiAgICAg
Ly8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4KQEAgLTE0NywxMyArMTQ4LDEzIEBAIFdJLmxvYWRlZCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAg
ICAgIFdJLlRpbWVsaW5lVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuU3RvcmFnZVRh
YkNvbnRlbnRWaWV3LlR5cGUsCi0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGUs
CisgICAgICAgIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuQXVk
aXRUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5Db25zb2xlVGFiQ29udGVudFZpZXcu
VHlwZSwKICAgICBdKTsKICAgICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRpbmcgPSBuZXcgV0ku
U2V0dGluZygic2VsZWN0ZWQtdGFiLWluZGV4IiwgMCk7CiAKLSAgICAvLyBSZXBsYWNlIHRoZSBE
ZWJ1Z2dlci9SZXNvdXJjZXMgVGFiIHdpdGggdGhlIFNvdXJjZXMgVGFiLgorICAgIC8vIEZJWE1F
OiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjA1ODI2PiBXZWIgSW5zcGVjdG9yOiByZW1vdmUgbGVn
YWN5IGNvZGUgZm9yIHJlcGxhY2luZyB0aGUgUmVzb3VyY2VzIFRhYiBhbmQgRGVidWdnZXIgVGFi
IHdpdGggdGhlIFNvdXJjZXMgVGFiCiAgICAgbGV0IGRlYnVnZ2VySW5kZXggPSBXSS5fb3BlblRh
YnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoImRlYnVnZ2VyIik7CiAgICAgbGV0IHJlc291cmNlc0lu
ZGV4ID0gV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5pbmRleE9mKCJyZXNvdXJjZXMiKTsKICAg
ICBpZiAoZGVidWdnZXJJbmRleCA+PSAwIHx8IHJlc291cmNlc0luZGV4ID49IDApIHsKQEAgLTE3
Myw2ICsxNzQsMTMgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgV0kuX3Nl
bGVjdGVkVGFiSW5kZXhTZXR0aW5nLnZhbHVlID0gc291cmNlc0luZGV4OwogICAgIH0KIAorICAg
IC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjA1ODI3PiBXZWIgSW5zcGVjdG9yOiBy
ZW1vdmUgbGVnYWN5IGNvZGUgZm9yIHJlcGxhY2luZyB0aGUgQ2FudmFzIFRhYiB3aXRoIHRoZSBH
cmFwaGljcyBUYWIKKyAgICBsZXQgY2FudmFzSW5kZXggPSBXSS5fb3BlblRhYnNTZXR0aW5nLnZh
bHVlLmluZGV4T2YoImNhbnZhcyIpOworICAgIGlmIChjYW52YXNJbmRleCA+PSAwKSB7CisgICAg
ICAgIFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuc3BsaWNlKGNhbnZhc0luZGV4LCAxLCBXSS5H
cmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUpOworICAgICAgICBXSS5fb3BlblRhYnNTZXR0aW5n
LnNhdmUoKTsKKyAgICB9CisKICAgICAvLyBTdGF0ZS4KICAgICBXSS5wcmludFN0eWxlc0VuYWJs
ZWQgPSBmYWxzZTsKICAgICBXSS5zZXRab29tRmFjdG9yKFdJLnNldHRpbmdzLnpvb21GYWN0b3Iu
dmFsdWUpOwpAQCAtNDY1LDcgKzQ3Myw3IEBAIFdJLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigp
CiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuVGltZWxpbmVU
YWJDb250ZW50VmlldywKICAgICAgICAgV0kuU3RvcmFnZVRhYkNvbnRlbnRWaWV3LAotICAgICAg
ICBXSS5DYW52YXNUYWJDb250ZW50VmlldywKKyAgICAgICAgV0kuR3JhcGhpY3NUYWJDb250ZW50
VmlldywKICAgICAgICAgV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkF1ZGl0
VGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLkNvbnNvbGVUYWJDb250ZW50VmlldywKQEAgLTEy
MjMsMTEgKzEyMzEsOCBAQCBXSS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVzZW50ZWRPYmpl
Y3QgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkKICAgICAgICAgfHwgcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgIHJldHVybiBX
SS5BdWRpdFRhYkNvbnRlbnRWaWV3OwogCi0gICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNv
bnRlbnRWaWV3OwotCi0gICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVj
b3JkaW5nKQotICAgICAgICByZXR1cm4gV0kuQ2FudmFzVGFiQ29udGVudFZpZXc7CisgICAgaWYg
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLlJlY29yZGluZyB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFu
aW1hdGlvbikKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXc7CiAKICAg
ICByZXR1cm4gbnVsbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mZmI0MTJjZWE1ZmUyM2E2NmZkMjdlY2Q5NGRhZDczZmRiMDFmMzI1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcwpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
Ky8vIEZJWE1FOiBBbmltYXRpb25NYW5hZ2VyIGxhY2tzIGFkdmFuY2VkIG11bHRpLXRhcmdldCBz
dXBwb3J0LiAoQW5pbWF0aW9ucyBwZXItdGFyZ2V0KQorCitXSS5BbmltYXRpb25NYW5hZ2VyID0g
Y2xhc3MgQW5pbWF0aW9uTWFuYWdlcgoreworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVj
dGlvbiA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uOworICAgICAgICB0aGlzLl9hbmltYXRp
b25JZE1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihX
SS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU1haW5SZXNv
dXJjZURpZENoYW5nZSwgdGhpcyk7CisgICAgfQorCisgICAgLy8gQWdlbnQKKworICAgIGdldCBk
b21haW5zKCkgeyByZXR1cm4gWyJBbmltYXRpb24iXTsgfQorCisgICAgYWN0aXZhdGVFeHRyYURv
bWFpbihkb21haW4pCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChkb21haW4gPT09ICJB
bmltYXRpb24iKTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykKKyAg
ICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpOworICAgIH0KKworICAgIC8v
IFRhcmdldAorCisgICAgaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpCisgICAgeworICAgICAgICBp
ZiAoIXRoaXMuX2VuYWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZW5hYmxlIGRpZCBub3QgZXhpc3QgeWV0
LgorICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5lbmFibGUiKSkKKyAg
ICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5lbmFibGUoKTsKKyAgICB9CisKKyAgICAv
LyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25Db2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5f
YW5pbWF0aW9uQ29sbGVjdGlvbjsgfQorCisgICAgZ2V0IHN1cHBvcnRlZCgpCisgICAgeworICAg
ICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5lbmFibGUgZGlkIG5v
dCBleGlzdCB5ZXQuCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0NvbW1hbmQo
IkFuaW1hdGlvbi5lbmFibGUiKTsKKyAgICB9CisKKyAgICBlbmFibGUoKQorICAgIHsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2VuYWJsZWQpOworCisgICAgICAgIHRoaXMuX2VuYWJs
ZWQgPSB0cnVlOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKQorICAg
ICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFyZ2V0KHRhcmdldCk7CisgICAgfQorCisgICAgZGlz
YWJsZSgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9lbmFibGVkKTsKKwor
ICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgeworICAgICAgICAgICAgLy8g
Q09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZGlzYWJsZSBkaWQgbm90IGV4aXN0
IHlldC4KKyAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmRpc2Fi
bGUiKSkKKyAgICAgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQuZGlzYWJsZSgpOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5jbGVhcigpOwor
ICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5jbGVhcigpOworCisgICAgICAgIHRoaXMuX2Vu
YWJsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBBbmltYXRpb25PYnNlcnZlcgorCisgICAg
YW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25QYXlsb2FkKQorICAgIHsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoIXRoaXMuX2FuaW1hdGlvbklkTWFwLmhhcyhhbmltYXRpb25QYXlsb2FkLmFuaW1h
dGlvbklkKSwgYEFuaW1hdGlvbiBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7YW5pbWF0aW9uUGF5
bG9hZC5hbmltYXRpb25JZH0uYCk7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IFdJLkFuaW1h
dGlvbi5mcm9tUGF5bG9hZChhbmltYXRpb25QYXlsb2FkKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0
aW9uQ29sbGVjdGlvbi5hZGQoYW5pbWF0aW9uKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRN
YXAuc2V0KGFuaW1hdGlvbi5hbmltYXRpb25JZCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBl
ZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAgeworICAgICAgICBsZXQgYW5p
bWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLmVmZmVjdENoYW5nZWQoZWZmZWN0
KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpCisgICAg
eworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1h
dGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYg
KCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLnRh
cmdldENoYW5nZWQoZWZmZWN0KTsKKyAgICB9CisKKyAgICBhbmltYXRpb25EZXN0cm95ZWQoYW5p
bWF0aW9uSWQpCisgICAgeworICAgICAgICBsZXQgYW5pbWF0aW9uID0gdGhpcy5fYW5pbWF0aW9u
SWRNYXAudGFrZShhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlv
bik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24ucmVtb3ZlKGFuaW1hdGlvbik7CisgICAgfQor
CisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZU1haW5SZXNvdXJjZURpZENoYW5nZShldmVu
dCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LnRhcmdldCBpbnN0YW5jZW9m
IFdJLkZyYW1lKTsKKyAgICAgICAgaWYgKCFldmVudC50YXJnZXQuaXNNYWluRnJhbWUoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBXSS5BbmltYXRpb24ucmVzZXRVbmlxdWVEaXNw
bGF5TmFtZU51bWJlcnMoKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmNs
ZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0NhbnZhc01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCmluZGV4IDEzNWMxNjYxM2FlODAwOWMxNmUy
NzIyZjcyNTg1Yzk3ZTY5ZGQxMTQuLmRiYjhlNmZlNDk3MzFkNTIzMWUyODNmNjlmYTI5MGYzN2I2
YmJmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpAQCAtMzIsNiArMzIsNyBA
QCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKKyAg
ICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbiA9IG5ldyBXSS5DYW52YXNDb2xsZWN0aW9uOwog
ICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwID0gbmV3IE1hcDsKICAgICAgICAgdGhp
cy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9z
YXZlZFJlY29yZGluZ3MgPSBuZXcgU2V0OwpAQCAtNzYsMTMgKzc3LDkgQEAgV0kuQ2FudmFzTWFu
YWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8vIFB1
YmxpYwogCisgICAgZ2V0IGNhbnZhc0NvbGxlY3Rpb24oKSB7IHJldHVybiB0aGlzLl9jYW52YXND
b2xsZWN0aW9uOyB9CiAgICAgZ2V0IHNhdmVkUmVjb3JkaW5ncygpIHsgcmV0dXJuIHRoaXMuX3Nh
dmVkUmVjb3JkaW5nczsgfQogCi0gICAgZ2V0IGNhbnZhc2VzKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBBcnJheS5mcm9tKHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudmFsdWVzKCkpOwotICAg
IH0KLQogICAgIGdldCBzaGFkZXJQcm9ncmFtcygpCiAgICAgewogICAgICAgICByZXR1cm4gQXJy
YXkuZnJvbSh0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC52YWx1ZXMoKSk7CkBAIC0x
MzMsNiArMTMwLDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQuZGlzYWJs
ZSgpOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5jbGVhcigp
OwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgICAgIHRo
aXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3Nh
dmVkUmVjb3JkaW5ncy5jbGVhcigpOwpAQCAtMTYxLDkgKzE1OSw4IEBAIFdJLkNhbnZhc01hbmFn
ZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCF0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmhhcyhjYW52YXNQYXlsb2FkLmNh
bnZhc0lkKSwgYENhbnZhcyBhbHJlYWR5IGV4aXN0cyB3aXRoIGlkICR7Y2FudmFzUGF5bG9hZC5j
YW52YXNJZH0uYCk7CiAKICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLkNhbnZhcy5mcm9tUGF5bG9h
ZChjYW52YXNQYXlsb2FkKTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5hZGQoY2Fu
dmFzKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5zZXQoY2FudmFzLmlkZW50
aWZpZXIsIGNhbnZhcyk7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwge2NhbnZhc30pOwogICAgIH0KIAog
ICAgIGNhbnZhc1JlbW92ZWQoY2FudmFzSWRlbnRpZmllcikKQEAgLTE3Myw3ICsxNzAsMTQgQEAg
V0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhp
cy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIHRoaXMuX3NhdmVSZWNvcmRpbmdzKGNh
bnZhcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5yZW1vdmUoY2FudmFzKTsK
KworICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9mIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVj
dGlvbikKKyAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmRlbGV0
ZShwcm9ncmFtLmlkZW50aWZpZXIpOworCisgICAgICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbi5jbGVhcigpOwogICAgIH0KIAogICAgIGNhbnZhc01lbW9yeUNoYW5nZWQoY2FudmFz
SWRlbnRpZmllciwgbWVtb3J5Q29zdCkKQEAgLTI3NSwyMSArMjc5LDE0IEBAIFdJLkNhbnZhc01h
bmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQ
cml2YXRlCiAKLSAgICBfcmVtb3ZlQ2FudmFzKGNhbnZhcykKKyAgICBfc2F2ZVJlY29yZGluZ3Mo
Y2FudmFzKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVy
UHJvZ3JhbUNvbGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRp
Zmllck1hcC5kZWxldGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKLQotICAgICAgICBjYW52YXMuc2hh
ZGVyUHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIoKTsKLQogICAgICAgICBmb3IgKGxldCByZWNvcmRp
bmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pIHsKICAgICAgICAgICAgIHJlY29yZGlu
Zy5zb3VyY2UgPSBudWxsOwogICAgICAgICAgICAgcmVjb3JkaW5nLmNyZWF0ZURpc3BsYXlOYW1l
KHJlY29yZGluZy5kaXNwbGF5TmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGlu
Z3MuYWRkKHJlY29yZGluZyk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB7cmVjb3JkaW5nfSk7
CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5D
YW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHtjYW52YXN9KTsKICAgICB9CiAKICAg
ICBfbWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQpAQCAtMzAxLDE1ICsyOTgsMTQgQEAgV0ku
Q2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgV0kuQ2FudmFzLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCk7CiAKICAgICAg
ICAgZm9yIChsZXQgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudmFsdWVzKCkp
Ci0gICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgICAgIHRo
aXMuX3NhdmVSZWNvcmRpbmdzKGNhbnZhcyk7CiAKLSAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3Jh
bUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5j
bGVhcigpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLmNsZWFyKCk7CisgICAg
ICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CiAgICAgfQogfTsK
IAogV0kuQ2FudmFzTWFuYWdlci5FdmVudCA9IHsKLSAgICBDYW52YXNBZGRlZDogImNhbnZhcy1t
YW5hZ2VyLWNhbnZhcy13YXMtYWRkZWQiLAotICAgIENhbnZhc1JlbW92ZWQ6ICJjYW52YXMtbWFu
YWdlci1jYW52YXMtd2FzLXJlbW92ZWQiLAogICAgIFJlY29yZGluZ1NhdmVkOiAiY2FudmFzLW1h
bmFnZXItcmVjb3JkaW5nLXNhdmVkIiwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcwppbmRl
eCAxYThkZjY4YmJhZGQ4ZGU4YmZmYjM4MDc5NTI2OTI4N2EzYTMzMjQyLi43MTg1NTU4YWQzZTBk
OTc5YmIwMDFkYjhlMTEwM2RiODJhYTllMDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMK
QEAgLTMyMyw3ICszMjMsNyBAQCBXSS5ET01NYW5hZ2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogCiAgICAgbm9kZUZvcklkKG5vZGVJZCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdOworICAgICAgICByZXR1cm4gdGhpcy5faWRU
b0RPTU5vZGVbbm9kZUlkXSB8fCBudWxsOwogICAgIH0KIAogICAgIF9kb2N1bWVudFVwZGF0ZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDc2MzNkZTFiYWUwZjQx
M2ZlMTJjZDFjMzYzMzg0YWVmM2ZkODQ2NTkuLjcyOTY5NmYwNDFjMTYyZmY5N2NmYjA5MjQ5N2Ji
ZDE1YWJmOWZmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKQEAgLTc4
MSw3ICs3ODEsNyBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoZXZl
bnQubm9kZUlkKSB8fCBudWxsOworICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5h
Z2VyLm5vZGVGb3JJZChldmVudC5ub2RlSWQpOwogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
ZG9tTm9kZSk7CiAKICAgICAgICAgICAgIHJlY29yZCA9IG5ldyBXSS5NZWRpYVRpbWVsaW5lUmVj
b3JkKGV2ZW50VHlwZSwgZG9tTm9kZSwgZGV0YWlscyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkYmQ2NTdkOTMyNmFhYTBjZTY0ZjZkN2VmMDMxZGY4MTZhZjJjZmU4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCisrKyAvZGV2L251
bGwKQEAgLTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2
ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJlY3QgeD0iMS41IiB5PSIy
LjUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29s
b3IiLz4KLSAgICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAxMSAzIDEyIDEzIDEy
IDEzIDExIDExIDgiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdjYWYzYTE0
OWY2OTQ1YjYxODZkODRiNjE1ODc2OWNhZjBhNjRhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcKQEAgLTAs
MCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBD
b3B5cmlnaHQgwqkgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIx
LjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJlY3QgeD0iMS41IiB5PSIyLjUiIHdpZHRo
PSIxMyIgaGVpZ2h0PSIxMSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KKyAg
ICA8cG9seWdvbiBwb2ludHM9IjExIDggOSAxMSA2IDcgMyAxMSAzIDEyIDEzIDEyIDEzIDExIDEx
IDgiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFp
bi5odG1sCmluZGV4IGRkMWQ0YzYxYjM0OTNlMTk2N2UzYjc3YWE4NDU4YWFlYWE4NzM0ZTYuLjVi
ODU2NTIyMTY0NGJlMWE1ZjJlNmZiMTM3NDdmNjRjOGViYjRiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTMwLDYgKzMwLDkgQEAKIAog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2Rl
bWlycm9yLmNzcyI+CiAKKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0Fu
aW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwu
Y3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FwcGxpY2F0aW9u
Q2FjaGVGcmFtZUNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJWaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0VGVzdENhc2VDb250ZW50Vmlldy5jc3Mi
PgpAQCAtNTYsNyArNTksNiBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmll
d3MvQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MiPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmNzcyI+
Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNUYWJDb250ZW50
Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hhbmdl
c0RldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0NoYXJ0RGV0YWlsc1NlY3Rpb25Sb3cuY3NzIj4KICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoZWNrYm94TmF2aWdhdGlvbkl0ZW0uY3NzIj4KQEAgLTEx
Myw2ICsxMTUsOCBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR29U
b0xpbmVEaWFsb2cuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0dyYWRpZW50RWRpdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9HcmFkaWVudFNsaWRlci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcyI+CiAg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1l
bGluZU92ZXJ2aWV3R3JhcGguY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcFNuYXBzaG90SW5zdGFuY2VzQ29udGVudFZpZXcu
Y3NzIj4KQEAgLTM0OSw2ICszNTMsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9Xb3Jr
ZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFr
cG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVj
dGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db25zb2xlTWVzc2Fn
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbnN0cnVtZW50LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGUuanMiPjwvc2NyaXB0
PgpAQCAtMzYxLDYgKzM2Niw4IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9TY3JpcHQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9jYWxTY3JpcHQuanMiPjwvc2Ny
aXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb24uanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNhY2hlRnJhbWUuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNoZU1hbmlmZXN0Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JhY2tGb3J3YXJkRW50cnkuanMi
Pjwvc2NyaXB0PgpAQCAtMzgwLDcgKzM4Nyw2IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
YWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
Q2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9DYW52YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVj
dGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50
cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5
UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9u
VHlwZXMuanMiPjwvc2NyaXB0PgpAQCAtNTY2LDkgKzU3Miw5IEBACiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL1N0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9Db25zb2xlVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NjcmlwdFRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4K
QEAgLTU5NCw2ICs2MDAsOSBAQAogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FjdGl2YXRlQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9B
Y3RpdmF0ZUJ1dHRvblRvb2xiYXJJdGVtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZURldGFpbHNTaWRl
YmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BcHBsaWNhdGlv
bkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KQEAgLTY5
Miw2ICs3MDEsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Hb1RvTGluZURpYWxvZy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50RWRpdG9yLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGllbnRTbGlkZXIuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGlu
ZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBB
bGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlUGF0aENvbXBvbmVudC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lT3ZlcnZpZXdH
cmFwaC5qcyI+PC9zY3JpcHQ+CkBAIC04NTYsNiArODY2LDcgQEAKICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KIAorICAg
IDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9CYXNpY0Jsb2NrQW5ub3Rh
dG9yLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjVkZTUyNWY0MDZh
ZDM4Y2Q0NWZlZGNkNzFiNzE0ZjNhNTEzNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzCkBAIC0wLDAgKzEs
Mjc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uID0gY2xhc3MgQW5pbWF0aW9uIGV4dGVu
ZHMgV0kuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoYW5pbWF0aW9uSWQsIHtjc3NBbmltYXRp
b25OYW1lLCBjc3NUcmFuc2l0aW9uUHJvcGVydHksIGVmZmVjdCwgYmFja3RyYWNlfSA9IHt9KQor
ICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRp
b25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCghY3NzQW5pbWF0aW9uTmFtZSAmJiAhY3Nz
VHJhbnNpdGlvblByb3BlcnR5KSB8fCAhIWNzc0FuaW1hdGlvbk5hbWUgIT09ICEhY3NzVHJhbnNp
dGlvblByb3BlcnR5KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25JZCA9IGFuaW1hdGlvbklk
OworCisgICAgICAgIHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUgPSBjc3NBbmltYXRpb25OYW1lIHx8
IG51bGw7CisgICAgICAgIHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9wZXJ0eSA9IGNzc1RyYW5zaXRp
b25Qcm9wZXJ0eSB8fCBudWxsOworICAgICAgICB0aGlzLl91cGRhdGVFZmZlY3QoZWZmZWN0KTsK
KyAgICAgICAgdGhpcy5fYmFja3RyYWNlID0gYmFja3RyYWNlIHx8IFtdOworCisgICAgICAgIHRo
aXMuX2VmZmVjdFRhcmdldCA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5fcmVxdWVzdEVmZmVj
dFRhcmdldENhbGxiYWNrcyA9IG51bGw7CisgICAgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBz
dGF0aWMgZnJvbVBheWxvYWQocGF5bG9hZCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV0ku
QW5pbWF0aW9uKHBheWxvYWQuYW5pbWF0aW9uSWQsIHsKKyAgICAgICAgICAgIGNzc0FuaW1hdGlv
bk5hbWU6IHBheWxvYWQuY3NzQW5pbWF0aW9uTmFtZSwKKyAgICAgICAgICAgIGNzc1RyYW5zaXRp
b25Qcm9wZXJ0eTogcGF5bG9hZC5jc3NUcmFuc2l0aW9uUHJvcGVydHksCisgICAgICAgICAgICBl
ZmZlY3Q6IHBheWxvYWQuZWZmZWN0LAorICAgICAgICAgICAgYmFja3RyYWNlOiBBcnJheS5pc0Fy
cmF5KHBheWxvYWQuYmFja3RyYWNlKSA/IHBheWxvYWQuYmFja3RyYWNlLm1hcCgoaXRlbSkgPT4g
V0kuQ2FsbEZyYW1lLmZyb21QYXlsb2FkKFdJLm1haW5UYXJnZXQsIGl0ZW0pKSA6IFtdLAorICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBl
KGFuaW1hdGlvblR5cGUsIHBsdXJhbCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYW5pbWF0aW9u
VHlwZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbjoKKyAg
ICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbnMiKSA6
IFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9uIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9u
LlR5cGUuQ1NTQW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJLlVJU3Ry
aW5nKCJDU1MgQW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb24iKTsKKyAg
ICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uOgorICAgICAgICAgICAg
cmV0dXJuIHBsdXJhbCA/IFdJLlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMiKSA6IFdJLlVJU3Ry
aW5nKCJDU1MgVHJhbnNpdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQoZmFsc2UsICJVbmtub3duIGFuaW1hdGlvbiB0eXBlIiwgYW5pbWF0aW9uVHlwZSk7CisgICAg
ICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclBsYXli
YWNrRGlyZWN0aW9uKHBsYXliYWNrRGlyZWN0aW9uKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChw
bGF5YmFja0RpcmVjdGlvbikgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0Rp
cmVjdGlvbi5Ob3JtYWw6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIk5vcm1hbCIs
ICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBOb3JtYWwiLCAiSW5kaWNhdGVzIHRo
YXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgbm9ybWFs
IChlLmcuIGZvcndhcmRzKSIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFja0Rp
cmVjdGlvbi5SZXZlcnNlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJSZXZlcnNl
IiwgIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIFJldmVyc2UiLCAiSW5kaWNhdGVz
IHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgcmV2
ZXJzZWQgKGUuZy4gYmFja3dhcmRzKSIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5
YmFja0RpcmVjdGlvbi5BbHRlcm5hdGU6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmco
IkFsdGVybmF0ZSIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBBbHRlcm5hdGUi
LCAiSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmlt
YXRpb24gYWx0ZXJuYXRlcyBiZXR3ZWVuIG5vcm1hbCBhbmQgcmV2ZXJzZWQgb24gZWFjaCBpdGVy
YXRpb24iKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uQWx0
ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQWx0ZXJuYXRl
IFJldmVyc2UiLCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIFJl
dmVyc2UiLCAiSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdl
YiBhbmltYXRpb24gYWx0ZXJuYXRlcyBiZXR3ZWVuIHJldmVyc2VkIGFuZCBub3JtYWwgb24gZWFj
aCBpdGVyYXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNl
LCAiVW5rbm93biBwbGF5YmFjayBkaXJlY3Rpb24iLCBwbGF5YmFja0RpcmVjdGlvbik7CisgICAg
ICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvckZpbGxN
b2RlKGZpbGxNb2RlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChmaWxsTW9kZSkgeworICAgICAg
ICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5Ob25lOgorICAgICAgICAgICAgcmV0dXJuIFdJ
LlVJU3RyaW5nKCJOb25lIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIE5vbmUiLCAiSW5kaWNh
dGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGRvZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVm
b3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5GaWxsTW9kZS5Gb3J3YXJkczoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygi
Rm9yd2FyZHMiLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgRm9yd2FyZHMiLCAiSW5kaWNhdGVz
IHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYWZ0ZXIgaXQgZW5k
cyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5CYWNrd2FyZHM6CisgICAg
ICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJhY2t3YXJkcyIsICJXZWIgQW5pbWF0aW9uIEZp
bGwgTW9kZSBCYWNrd2FyZHMiLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFs
c28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyIpOworICAgICAgICBjYXNlIFdJLkFu
aW1hdGlvbi5GaWxsTW9kZS5Cb3RoOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJC
b3RoIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEJvdGgiLCAiSW5kaWNhdGVzIHRoYXQgdGhp
cyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQg
YWZ0ZXIgaXQgZW5kcyIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5GaWxsTW9kZS5BdXRv
OgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBdXRvIiwgIldlYiBBbmltYXRpb24g
RmlsbCBNb2RlIEF1dG8iLCAiSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGVpdGhl
ciBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0
IGVuZHMgb3IgdGhhdCBpdCBhcHBsaWVzIHRvIGJvdGgsIGRlcGVuZGluZyBvbiBpdCdzIGNvbmZp
Z3VyYXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAi
VW5rbm93biBmaWxsIG1vZGUiLCBmaWxsTW9kZSk7CisgICAgICAgIHJldHVybiBudWxsOworICAg
IH0KKworICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpCisgICAgewor
ICAgICAgICBXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IDE7Cisg
ICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uSWQoKSB7IHJldHVybiB0
aGlzLl9hbmltYXRpb25JZDsgfQorICAgIGdldCBiYWNrdHJhY2UoKSB7IHJldHVybiB0aGlzLl9i
YWNrdHJhY2U7IH0KKworICAgIGdldCBhbmltYXRpb25UeXBlKCkKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlv
bi5UeXBlLkNTU0FuaW1hdGlvbjsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1RyYW5zaXRpb25Qcm9w
ZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9u
OworICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uOworICAgIH0K
KworICAgIGdldCBzdGFydERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAic3RhcnREZWxh
eSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnN0YXJ0RGVsYXkgOiBOYU47CisgICAg
fQorCisgICAgZ2V0IGVuZERlbGF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiZW5kRGVsYXki
IGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5lbmREZWxheSA6IE5hTjsKKyAgICB9CisK
KyAgICBnZXQgaXRlcmF0aW9uQ291bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRp
b25Db3VudCIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkNvdW50IDog
TmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25TdGFydCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gIml0ZXJhdGlvblN0YXJ0IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRl
cmF0aW9uU3RhcnQgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uRHVyYXRpb24iIGluIHRoaXMuX2VmZmVj
dCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25EdXJhdGlvbiA6IE5hTjsKKyAgICB9CisKKyAgICBn
ZXQgdGltaW5nRnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJ0aW1pbmdGdW5jdGlv
biIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uIDogbnVsbDsK
KyAgICB9CisKKyAgICBnZXQgcGxheWJhY2tEaXJlY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICJwbGF5YmFja0RpcmVjdGlvbiIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LnBs
YXliYWNrRGlyZWN0aW9uIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQgZmlsbE1vZGUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICJmaWxsTW9kZSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZm
ZWN0LmZpbGxNb2RlIDogbnVsbDsKKyAgICB9CisKKyAgICBnZXQga2V5ZnJhbWVzKCkKKyAgICB7
CisgICAgICAgIHJldHVybiAia2V5ZnJhbWVzIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZl
Y3Qua2V5ZnJhbWVzIDogW107CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLl9jc3NBbmltYXRpb25OYW1lKQorICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2Nzc1RyYW5zaXRp
b25Qcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVy
dHk7CisKKyAgICAgICAgaWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcikKKyAgICAg
ICAgICAgIHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gV0kuQW5pbWF0aW9uLl9uZXh0
VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIrKzsKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJB
bmltYXRpb24gJWQiKS5mb3JtYXQodGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIpOworICAg
IH0KKworICAgIHJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2spCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fZWZmZWN0VGFyZ2V0ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIGNhbGxi
YWNrKHRoaXMuX2VmZmVjdFRhcmdldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcykgeworICAg
ICAgICAgICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcy5wdXNoKGNhbGxiYWNr
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3JlcXVl
c3RFZmZlY3RUYXJnZXRDYWxsYmFja3MgPSBbY2FsbGJhY2tdOworCisgICAgICAgIFdJLmRvbU1h
bmFnZXIuZW5zdXJlRG9jdW1lbnQoKTsKKworICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1p
bmdNYWluVGFyZ2V0KCk7CisgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5yZXF1ZXN0RWZm
ZWN0VGFyZ2V0KHRoaXMuX2FuaW1hdGlvbklkLCAoZXJyb3IsIG5vZGVJZCkgPT4geworICAgICAg
ICAgICAgdGhpcy5fZWZmZWN0VGFyZ2V0ID0gIWVycm9yID8gV0kuZG9tTWFuYWdlci5ub2RlRm9y
SWQobm9kZUlkKSA6IG51bGw7CisKKyAgICAgICAgICAgIGZvciAobGV0IHJlcXVlc3RFZmZlY3RU
YXJnZXRDYWxsYmFjayBvZiB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzKQorICAg
ICAgICAgICAgICAgIHJlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFjayh0aGlzLl9lZmZlY3RUYXJn
ZXQpOworCisgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzID0g
bnVsbDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9uTWFuYWdlcgorCisg
ICAgZWZmZWN0Q2hhbmdlZChlZmZlY3QpCisgICAgeworICAgICAgICB0aGlzLl91cGRhdGVFZmZl
Y3QoZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRDaGFuZ2VkKCkKKyAgICB7CisgICAgICAg
IHRoaXMuX2VmZmVjdFRhcmdldCA9IHVuZGVmaW5lZDsKKworICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCk7CisgICAg
fQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3VwZGF0ZUVmZmVjdChlZmZlY3QpCisgICAgewor
ICAgICAgICB0aGlzLl9lZmZlY3QgPSBlZmZlY3QgfHwge307CisKKyAgICAgICAgaWYgKHRoaXMu
X2VmZmVjdC50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgIHRoaXMuX2VmZmVjdC50aW1pbmdG
dW5jdGlvbiA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcodGhpcy5fZWZmZWN0LnRpbWluZ0Z1
bmN0aW9uKTsKKworICAgICAgICBpZiAodGhpcy5fZWZmZWN0LmtleWZyYW1lcykgeworICAgICAg
ICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2YgdGhpcy5fZWZmZWN0LmtleWZyYW1lcykgeworICAg
ICAgICAgICAgICAgIGlmIChrZXlmcmFtZS5lYXNpbmcpCisgICAgICAgICAgICAgICAgICAgIGtl
eWZyYW1lLmVhc2luZyA9IFdJLkN1YmljQmV6aWVyLmZyb21TdHJpbmcoa2V5ZnJhbWUuZWFzaW5n
KTsKKworICAgICAgICAgICAgICAgIGlmIChrZXlmcmFtZS5zdHlsZSkKKyAgICAgICAgICAgICAg
ICAgICAga2V5ZnJhbWUuc3R5bGUgPSBrZXlmcmFtZS5zdHlsZS5yZXBsYWNlQWxsKC87XHMrL2cs
ICI7XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKTsKKyAg
ICB9Cit9OworCitXSS5BbmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IDE7
CisKK1dJLkFuaW1hdGlvbi5UeXBlID0geworICAgIFdlYkFuaW1hdGlvbjogIndlYi1hbmltYXRp
b24iLAorICAgIENTU0FuaW1hdGlvbjogImNzcy1hbmltYXRpb24iLAorICAgIENTU1RyYW5zaXRp
b246ICJjc3MtdHJhbnNpdGlvbiIsCit9OworCitXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rp
b24gPSB7CisgICAgTm9ybWFsOiAibm9ybWFsIiwKKyAgICBSZXZlcnNlOiAicmV2ZXJzZSIsCisg
ICAgQWx0ZXJuYXRlOiAiYWx0ZXJuYXRlIiwKKyAgICBBbHRlcm5hdGVSZXZlcnNlOiAiYWx0ZXJu
YXRlLXJldmVyc2UiLAorfTsKKworV0kuQW5pbWF0aW9uLkZpbGxNb2RlID0geworICAgIE5vbmU6
ICJub25lIiwKKyAgICBGb3J3YXJkczogImZvcndhcmRzIiwKKyAgICBCYWNrd2FyZHM6ICJiYWNr
d2FyZHMiLAorICAgIEJvdGg6ICJib3RoIiwKKyAgICBBdXRvOiAiYXV0byIsCit9OworCitXSS5B
bmltYXRpb24uRXZlbnQgPSB7CisgICAgRWZmZWN0Q2hhbmdlZDogImFuaW1hdGlvbi1lZmZlY3Qt
Y2hhbmdlZCIsCisgICAgVGFyZ2V0Q2hhbmdlZDogImFuaW1hdGlvbi10YXJnZXQtY2hhbmdlZCIs
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTI4YTdi
MTQ4ZGVlYmU4ZWE1NzZmZGIxZGFiMGI1YjBiYzQ5MWRkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rp
b24uanMKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb25Db2xsZWN0
aW9uID0gY2xhc3MgQW5pbWF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIFdJLkNvbGxlY3Rpb24KK3sK
KyAgICBjb25zdHJ1Y3RvcihhbmltYXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoIWFuaW1hdGlvblR5cGUgfHwgT2JqZWN0LnZhbHVlcyhXSS5BbmltYXRpb24uVHlwZSku
aW5jbHVkZXMoYW5pbWF0aW9uVHlwZSkpOworCisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAg
dGhpcy5fYW5pbWF0aW9uVHlwZSA9IGFuaW1hdGlvblR5cGUgfHwgbnVsbDsKKworICAgICAgICBp
ZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpCisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZU1hcCA9IG51bGw7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBn
ZXQgYW5pbWF0aW9uVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblR5cGU7IH0KKworICAg
IGdldCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVHlw
ZSkgeworICAgICAgICAgICAgY29uc3QgcGx1cmFsID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVy
biBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JUeXBlKHRoaXMuX2FuaW1hdGlvblR5cGUsIHBs
dXJhbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIldlYiBBbmlt
YXRpb25zIik7CisgICAgfQorCisgICAgb2JqZWN0SXNSZXF1aXJlZFR5cGUob2JqZWN0KQorICAg
IHsKKyAgICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gIXRoaXMuX2FuaW1hdGlvblR5
cGUgfHwgb2JqZWN0LmFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlvblR5cGU7CisgICAg
fQorCisgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoYW5pbWF0aW9uVHlwZSkKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUp
LmluY2x1ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9u
VHlwZSkgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uVHlwZSA9PT0gdGhp
cy5fYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQor
CisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApCisgICAg
ICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcCA9IG5ldyBNYXA7CisK
KyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhpcy5fYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGVNYXAuZ2V0KGFuaW1hdGlvblR5cGUpOworICAgICAgICBpZiAoIWFu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKSB7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0
aW9uRm9yVHlwZSA9IG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uKGFuaW1hdGlvblR5cGUpOwor
ICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAuc2V0KGFuaW1h
dGlvblR5cGUsIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGU7CisgICAgfQorCisgICAgLy8gUHJv
dGVjdGVkCisKKyAgICBpdGVtQWRkZWQoaXRlbSkKKyAgICB7CisgICAgICAgIHN1cGVyLml0ZW1B
ZGRlZChpdGVtKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAg
ICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIGFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlLmFkZChpdGVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGl0
ZW1SZW1vdmVkKGl0ZW0pCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvblR5cGUp
IHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuYW5p
bWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoaXRlbS5hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAg
IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLnJlbW92ZShpdGVtKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHN1cGVyLml0ZW1SZW1vdmVkKGl0ZW0pOworICAgIH0KKworICAgIGl0ZW1zQ2xlYXJl
ZChpdGVtcykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZU1hcCkgeworICAgICAgICAgICAgZm9yIChsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5
cGUgb2YgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAudmFsdWVzKCkpCisgICAg
ICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUuY2xlYXIoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHN1cGVyLml0ZW1zQ2xlYXJlZChpdGVtcyk7CisgICAgfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRl
c3RDYXNlUmVzdWx0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKaW5kZXggYzljYzM5NjJlODBmYjY2ZmUxNWRhMTM1
NGVhMjkyNmJmODQxY2RjZS4uMzFkNjI3ZDgxMWJkNjMzMmRjNDgwODVmOTdkZjUwNjRkMjAxMjdl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMKQEAgLTE0Niw3ICsxNDYsNyBA
QCBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0ID0gY2xhc3MgQXVkaXRUZXN0Q2FzZVJlc3VsdCBleHRl
bmRzIFdJLkF1ZGl0VGVzdFJlc3VsdEJhcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRy
eSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJZCA9IGF3YWl0IGRvY3Vt
ZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGRvbU5vZGVTdHJpbmcpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggeyB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9DYW52YXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvQ2FudmFzLmpzCmluZGV4IDYyYmEyNjQxMDVhYWVkZjRiYTVlMmJlMzc1NWEyYjVk
MzhiY2ZhZDMuLmZmNzFhZjZkNDNkMjc2YzExZjc0MzYyM2I4MzJmOTRiNjFlZmUyZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZh
cy5qcwpAQCAtOTcsNyArOTcsNyBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQ6CiAg
ICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CiAgICAgICAgIGNhc2UgV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyOgotICAgICAgICAgICAgcmV0dXJuIFdJLnVu
bG9jYWxpemVkU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBX
SS5VSVN0cmluZygiQml0bWFwIFJlbmRlcmVyIiwgIkNhbnZhcyBDb250ZXh0IFR5cGUgQml0bWFw
IFJlbmRlcmVyIiwgIkJpdG1hcCBSZW5kZXJlciBpcyBhIHR5cGUgb2YgcmVuZGVyaW5nIGNvbnRl
eHQgYXNzb2NpYXRlZCB3aXRoIGEgPGNhbnZhcz4gZWxlbWVudCIpOwogICAgICAgICBjYXNlIFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDoKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2Fs
aXplZFN0cmluZygiV2ViR0wiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
V2ViR0wyOgpAQCAtMTA2LDkgKzEwNiwxMCBAQCBXSS5DYW52YXMgPSBjbGFzcyBDYW52YXMgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygi
V2ViIEdQVSIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJNZXRhbDoK
ICAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViTWV0YWwiKTsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgY2FudmFz
IGNvbnRleHQgdHlwZSIsIGNvbnRleHRUeXBlKTsKICAgICAgICAgfQorCisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGZhbHNlLCAiVW5rbm93biBjYW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5
cGUpOworICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKICAgICBzdGF0aWMgcmVzZXRVbmlx
dWVEaXNwbGF5TmFtZU51bWJlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKaW5kZXggMWY4ZGQ3ZWY0NWQ2Mjk3
NzhjZDgyODdiZmI4ZDMxYjJhMTA4OWYzMC4uNTEzZWY3NmFmNTYxNDI5MWUyODY0YWFlYTU4ZTc0
N2M2OGE4NGZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1JlY29yZGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCkBAIC0xNDgsNiArMTQ4LDIzIEBAIFdJLlJlY29y
ZGluZyA9IGNsYXNzIFJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4g
bmV3IFdJLlJlY29yZGluZyhwYXlsb2FkLnZlcnNpb24sIHR5cGUsIHBheWxvYWQuaW5pdGlhbFN0
YXRlLCBmcmFtZXMsIHBheWxvYWQuZGF0YSk7CiAgICAgfQogCisgICAgc3RhdGljIGRpc3BsYXlO
YW1lRm9yUmVjb3JkaW5nVHlwZShyZWNvcmRpbmdUeXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
IChyZWNvcmRpbmdUeXBlKSB7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQ6
CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIjJEIik7CisgICAgICAgIGNhc2UgUmVj
b3JkaW5nLlR5cGUuQ2FudmFzQml0bWFwUmVuZGVyZXI6CisgICAgICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIsICJSZWNvcmRpbmcgVHlwZSBDYW52YXMgQml0bWFw
IFJlbmRlcmVyIiwgIkEgdHlwZSBvZiBjYW52YXMgcmVjb3JkaW5nIGluIHRoZSBHcmFwaGljcyBU
YWIiKTsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNXZWJHTDoKKyAgICAgICAg
ICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wiKTsKKyAgICAgICAgY2FzZSBS
ZWNvcmRpbmcuVHlwZS5DYW52YXNXZWJHTDI6CisgICAgICAgICAgICByZXR1cm4gV0kudW5sb2Nh
bGl6ZWRTdHJpbmcoIldlYkdMMiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQoZmFsc2UsICJVbmtub3duIHJlY29yZGluZyB0eXBlIiwgcmVjb3JkaW5nVHlwZSk7CisgICAg
ICAgIHJldHVybiBudWxsOworICAgIH0KKwogICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclN3aXp6
bGVUeXBlKHN3aXp6bGVUeXBlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChzd2l6emxlVHlwZSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcwppbmRleCBiMTE5NWVkMGNhMGNiMGNh
ODA2NjhlMGU5OGRjNjc5ZGNhZDkxN2EzLi43ZTU2ZThiYjM5Y2JhMGM2MjgwZWE5Y2VkZDQ1YmU1
NTQ1ZjBmMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcwpAQCAtMjcsNiAr
MjcsMjYgQEAgV0kuQW5pbWF0aW9uT2JzZXJ2ZXIgPSBjbGFzcyBBbmltYXRpb25PYnNlcnZlciBl
eHRlbmRzIEluc3BlY3RvckJhY2tlbmQuRGlzcGF0Y2gKIHsKICAgICAvLyBFdmVudHMgZGVmaW5l
ZCBieSB0aGUgIkFuaW1hdGlvbiIgZG9tYWluLgogCisgICAgYW5pbWF0aW9uQ3JlYXRlZChhbmlt
YXRpb24pCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNyZWF0
ZWQoYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBlZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBl
ZmZlY3QpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmVmZmVjdENoYW5nZWQo
YW5pbWF0aW9uSWQsIGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZChhbmltYXRp
b25JZCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIudGFyZ2V0Q2hhbmdlZChh
bmltYXRpb25JZCk7CisgICAgfQorCisgICAgYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklk
KQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25EZXN0cm95ZWQo
YW5pbWF0aW9uSWQpOworICAgIH0KKwogICAgIHRyYWNraW5nU3RhcnQodGltZXN0YW1wKQogICAg
IHsKICAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLmFuaW1hdGlvblRyYWNraW5nU3RhcnRlZCh0
aW1lc3RhbXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCmluZGV4IGRkMDBhZjU4YzEyNTMwNTg2
ZTFjMjgzMDMyYjcyZmQ2MjlmYTMyZDkuLjJjYmE1NjRkNGE3YjZhMzhjMTg5ZTU3MzNkM2NmM2M2
MGZjNTE2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKQEAgLTE4OCw2ICsxODgsMjUgQEAg
V0kuUmVtb3RlT2JqZWN0ID0gY2xhc3MgUmVtb3RlT2JqZWN0CiAgICAgICAgIHRhcmdldC5DYW52
YXNBZ2VudC5yZXNvbHZlQ29udGV4dChjYW52YXMuaWRlbnRpZmllciwgb2JqZWN0R3JvdXAsIHdy
YXBDYWxsYmFjayk7CiAgICAgfQogCisgICAgc3RhdGljIHJlc29sdmVBbmltYXRpb24oYW5pbWF0
aW9uLCBvYmplY3RHcm91cCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0eXBlb2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpOworCisgICAgICAgIGZ1bmN0aW9uIHdy
YXBDYWxsYmFjayhlcnJvciwgb2JqZWN0KSB7CisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIW9i
amVjdCkKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBjYWxsYmFjayhXSS5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2Jq
ZWN0LCBXSS5tYWluVGFyZ2V0KSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgdGFyZ2V0ID0g
V0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9T
IDEzLjEpOiBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiBkaWQgbm90IGV4aXN0IHlldC4KKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5yZXNvbHZl
QW5pbWF0aW9uIikpOworCisgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2VudC5yZXNvbHZlQW5p
bWF0aW9uKGFuaW1hdGlvbi5hbmltYXRpb25JZCwgb2JqZWN0R3JvdXAsIHdyYXBDYWxsYmFjayk7
CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdGFyZ2V0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCAxZDQ0NWEwNGNkZWJl
ZWNmYTdiMGNiMDhlZDZmYmJkNGJmNDYxZTg0Li4wYmE1NjBiOTZjMDIzMDZlYjYxYjMyYmRmNGVh
Yzg5OTIzZGJmMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdC5odG1sCkBAIC0xMDgsNiArMTA4LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wv
V29ya2VyT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9C
cmVha3BvaW50QWN0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Nv
bGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29uc29sZU1l
c3NhZ2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5zdHJ1bWVudC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VDb2RlLmpzIj48L3Nj
cmlwdD4KQEAgLTEyMSw2ICsxMjIsOCBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2FsU2NyaXB0LmpzIj48
L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DUFVJbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NQVVRpbWVsaW5lLmpzIj48L3NjcmlwdD4KQEAgLTEzNyw3ICsx
NDAsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5vZGUu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FudmFzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVByZXZpZXcuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvblR5cGVzLmpzIj48L3NjcmlwdD4KQEAg
LTIzOCw2ICsyNDAsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJQcm94aWVzL0hlYXBTbmFwc2hvdFBy
b3h5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJveGllcy9IZWFwU25hcHNob3RX
b3JrZXJQcm94eS5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMv
QW5pbWF0aW9uTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL0F1ZGl0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iQ29udHJvbGxlcnMvQnJlYWtwb2ludExvZ01lc3NhZ2VMZXhlci5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3Qu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKaW5k
ZXggM2M0M2FlNzhiZTE3Mjc3MDcyOWI3MDMyYWJlNTQ0NDNjOTQ2YThiYi4uMDA2NDQ3YTk2N2U5
YzIzN2Y2MGMxMDAwOGJiNDYzNDU3MmI3YzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcwpAQCAtNzAsNiArNzAsNyBAQCBXSS5sb2Fk
ZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLndvcmtlck1hbmFnZXIgPSBuZXcgV0kuV29ya2Vy
TWFuYWdlciwKICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRPTURlYnVn
Z2VyTWFuYWdlciwKICAgICAgICAgV0kuY2FudmFzTWFuYWdlciA9IG5ldyBXSS5DYW52YXNNYW5h
Z2VyLAorICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyID0gbmV3IFdJLkFuaW1hdGlvbk1hbmFn
ZXIsCiAgICAgXTsKIAogICAgIC8vIFJlZ2lzdGVyIGZvciBldmVudHMuCkBAIC05MSw2ICs5Miw3
IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKIFdJLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigp
CiB7CiAgICAgLy8gVGhpbmdzIHRoYXQgd291bGQgbm9ybWFsbHkgZ2V0IGNhbGxlZCBieSB0aGUg
VUksIHRoYXQgd2Ugc3RpbGwgd2FudCB0byBkbyBpbiB0ZXN0cy4KKyAgICBXSS5hbmltYXRpb25N
YW5hZ2VyLmVuYWJsZSgpOwogICAgIFdJLmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmVuYWJsZSgp
OwogICAgIFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuZGF0YWJhc2VNYW5hZ2Vy
LmVuYWJsZSgpOwpAQCAtMTgxLDYgKzE4Myw3IEBAIFdJLnVwZGF0ZVZpc2liaWxpdHlTdGF0ZSA9
ICgpID0+IHt9OwogICAgICAgICAgICAgZ2V0KCkgeyByZXR1cm4gV0kubWFpblRhcmdldC5fYWdl
bnRzW2RvbWFpbk5hbWVdOyB9LAogICAgICAgICB9KTsKICAgICB9CisgICAgbWFrZUFnZW50R2V0
dGVyKCJBbmltYXRpb24iKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIoIkF1ZGl0Iik7CiAgICAgbWFr
ZUFnZW50R2V0dGVyKCJBcHBsaWNhdGlvbkNhY2hlIik7CiAgICAgbWFrZUFnZW50R2V0dGVyKCJD
UFVQcm9maWxlciIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMKaW5kZXggZDQ0N2I4OTUwYjkzOTIxZDBhODYwMTMw
NjhhOGIzNDgyYjUzMThkYy4uZDJlOTlhZjFiNmU4NTEwN2RmZDY2ZDQxYTMxM2E2NGVhZTcwMGYy
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0SGFybmVzcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0L1Rlc3RIYXJuZXNzLmpzCkBAIC0xMzEsNiArMTMxLDQ2IEBAIFRlc3RIYXJuZXNzID0gY2xh
c3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fZXhwZWN0KFRl
c3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZSwgIWFjdHVhbCwgbWVzc2FnZSwgYWN0dWFs
KTsKICAgICB9CiAKKyAgICBleHBlY3RFbXB0eShhY3R1YWwsIG1lc3NhZ2UpCisgICAgeworICAg
ICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IHR5cGVvZiBhY3R1YWwgPT09ICJzdHJp
bmciKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25U
eXBlLkVtcHR5LCAhYWN0dWFsLmxlbmd0aCwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhY3R1YWwgaW5zdGFuY2VvZiBTZXQg
fHwgYWN0dWFsIGluc3RhbmNlb2YgTWFwKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVz
dEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5LCAhYWN0dWFsLnNpemUsIG1lc3NhZ2UsIGFj
dHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodHlw
ZW9mIGFjdHVhbCA9PT0gIm9iamVjdCIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0
SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksIGlzRW1wdHlPYmplY3QoYWN0dWFsKSwgbWVz
c2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IHRoaXMuZmFpbCgiZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1v
YmplY3Q6XG4gICAgQWN0dWFsOiAiICsgdGhpcy5fZXhwZWN0YXRpb25WYWx1ZUFzU3RyaW5nKGFj
dHVhbCkpOworICAgIH0KKworICAgIGV4cGVjdE5vdEVtcHR5KGFjdHVhbCwgbWVzc2FnZSkKKyAg
ICB7CisgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgdHlwZW9mIGFjdHVhbCA9
PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBl
Y3RhdGlvblR5cGUuTm90RW1wdHksICEhYWN0dWFsLmxlbmd0aCwgbWVzc2FnZSwgYWN0dWFsKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhY3R1YWwgaW5z
dGFuY2VvZiBTZXQgfHwgYWN0dWFsIGluc3RhbmNlb2YgTWFwKSB7CisgICAgICAgICAgICB0aGlz
Ll9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5LCAhIWFjdHVhbC5z
aXplLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICJvYmplY3QiKSB7CisgICAgICAgICAgICB0
aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5LCAhaXNFbXB0
eU9iamVjdChhY3R1YWwpLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy5mYWlsKCJleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90
IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDpcbiAgICBBY3R1YWw6ICIgKyB0aGlzLl9leHBl
Y3RhdGlvblZhbHVlQXNTdHJpbmcoYWN0dWFsKSk7CisgICAgfQorCiAgICAgZXhwZWN0TnVsbChh
Y3R1YWwsIG1lc3NhZ2UpCiAgICAgewogICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3Mu
RXhwZWN0YXRpb25UeXBlLk51bGwsIGFjdHVhbCA9PT0gbnVsbCwgbWVzc2FnZSwgYWN0dWFsLCBu
dWxsKTsKQEAgLTM4MSw2ICs0MjEsMTAgQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFybmVz
cyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuICJleHBlY3RUaGF0KCVzKSI7
CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlOgogICAgICAg
ICAgICAgcmV0dXJuICJleHBlY3RGYWxzZSglcykiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNz
LkV4cGVjdGF0aW9uVHlwZS5FbXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZXhwZWN0RW1wdHko
JXMpIjsKKyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHk6
CisgICAgICAgICAgICByZXR1cm4gImV4cGVjdE5vdEVtcHR5KCVzKSI7CiAgICAgICAgIGNhc2Ug
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk51bGw6CiAgICAgICAgICAgICByZXR1cm4gImV4
cGVjdE51bGwoJXMpIjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUu
Tm90TnVsbDoKQEAgLTQxNiw2ICs0NjAsMTAgQEAgVGVzdEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFy
bmVzcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuICJ0cnV0aHkiOwogICAg
ICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZToKICAgICAgICAgICAg
IHJldHVybiAiZmFsc2V5IjsKKyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5
cGUuRW1wdHk6CisgICAgICAgICAgICByZXR1cm4gImVtcHR5IjsKKyAgICAgICAgY2FzZSBUZXN0
SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1wdHk6CisgICAgICAgICAgICByZXR1cm4gIm5v
dCBlbXB0eSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdE51
bGw6CiAgICAgICAgICAgICByZXR1cm4gIm5vdCBudWxsIjsKICAgICAgICAgY2FzZSBUZXN0SGFy
bmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RXF1YWw6CkBAIC00NDAsNiArNDg4LDggQEAgVGVzdEhh
cm5lc3MgPSBjbGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogVGVzdEhhcm5lc3Mu
RXhwZWN0YXRpb25UeXBlID0gewogICAgIFRydWU6IFN5bWJvbCgiZXhwZWN0LXRydWUiKSwKICAg
ICBGYWxzZTogU3ltYm9sKCJleHBlY3QtZmFsc2UiKSwKKyAgICBFbXB0eTogU3ltYm9sKCJleHBl
Y3QtZW1wdHkiKSwKKyAgICBOb3RFbXB0eTogU3ltYm9sKCJleHBlY3Qtbm90LWVtcHR5IiksCiAg
ICAgTnVsbDogU3ltYm9sKCJleHBlY3QtbnVsbCIpLAogICAgIE5vdE51bGw6IFN5bWJvbCgiZXhw
ZWN0LW5vdC1udWxsIiksCiAgICAgRXF1YWw6IFN5bWJvbCgiZXhwZWN0LWVxdWFsIiksCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NGEzOGYxNjJiZTUwZTc0N2NhNTdmZWMyYjczOTE1NTBmNWQ0YWIxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworLmNvbnRlbnQtdmlldy5hbmltYXRpb24tY29sbGVjdGlvbiB7CisgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgIHBhZGRpbmc6IDRweDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmll
dy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWMxZDJjZmMxZWQ5MTBjOTU5
YjE5OGUzYjg4ZWZlNzRhNGFkOTI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmpzCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlv
bkNvbnRlbnRWaWV3ID0gY2xhc3MgQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IocmVwcmVzZW50
ZWRPYmplY3QpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24pOworCisgICAgICAgIGxldCBjb250
ZW50UGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKworICAgICAg
ICBsZXQgZGVzY3JpcHRpb25FbGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgZGVzY3JpcHRpb25FbGVt
ZW50LmNsYXNzTmFtZSA9ICJkZXNjcmlwdGlvbiI7CisKKyAgICAgICAgc3dpdGNoIChyZXByZXNl
bnRlZE9iamVjdC5hbmltYXRpb25UeXBlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5
cGUuV2ViQW5pbWF0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250
ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBKYXZh
U2NyaXB0LiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5BbmltYXRp
b24uVHlwZS5DU1NBbmltYXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4
dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBjcmVhdGVkIGJ5
IENTUy4iKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9u
LlR5cGUuQ1NTVHJhbnNpdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0
Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5
IENTUy4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCk7CisKKyAgICAgICAgc3VwZXIo
cmVwcmVzZW50ZWRPYmplY3QsIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LCBjb250ZW50UGxhY2Vo
b2xkZXIpOworCisgICAgICAgIHRoaXMuc2VsZWN0aW9uRW5hYmxlZCA9IHRydWU7CisKKyAgICAg
ICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImFuaW1hdGlvbi1jb2xsZWN0aW9uIik7Cisg
ICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgp
CisgICAgeworICAgICAgICBmb3IgKGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsKKyAg
ICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcp
CisgICAgICAgICAgICAgICAgc3Vidmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBjb250ZW50Vmlld0Fk
ZGVkKGNvbnRlbnRWaWV3KQorICAgIHsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVu
dGVyKTsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZWxlYXZlIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKTsKKyAgICB9CisKKyAg
ICBjb250ZW50Vmlld1JlbW92ZWQoY29udGVudFZpZXcpCisgICAgeworICAgICAgICBjb250ZW50
Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5k
bGVDb250ZW50Vmlld01vdXNlRW50ZXIpOworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJl
bW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01v
dXNlTGVhdmUpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIFdJLmRv
bU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKworICAgICAgICBzdXBlci5kZXRhY2hl
ZCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVDb250ZW50Vmlld01v
dXNlRW50ZXIoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgY29udGVudFZpZXcgPSBXSS5WaWV3
LmZyb21FbGVtZW50KGV2ZW50LnRhcmdldCk7CisgICAgICAgIGlmICghKGNvbnRlbnRWaWV3IGlu
c3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcpKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGxldCBhbmltYXRpb24gPSBjb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdDsK
KyAgICAgICAgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoKG5vZGUpID0+IHsKKyAgICAg
ICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5vd25lckRvY3VtZW50KQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIG5vZGUuaGlnaGxpZ2h0KCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIF9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUoZXZlbnQpCisgICAgeworICAg
ICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisgICAgfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzU5OTA0ZWY3M2Yz
Mjg0ODY0MTc4N2JiOGI2YzBiZjkzN2FhNTIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3Nz
CkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
eworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJnaW46
IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWNvbnRl
bnQpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5j
b250ZW50LXZpZXcuYW5pbWF0aW9uLnNlbGVjdGVkIHsKKyAgICBvdXRsaW5lOiBhdXRvIC13ZWJr
aXQtZm9jdXMtcmluZy1jb2xvcjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFk
ZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBo
ZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgcGFkZGluZzogMCA2cHg7
CisgICAgZm9udC1zaXplOiAxM3B4OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhl
YWRlciA+IC50aXRsZXMgeworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisKKy5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgY29sb3I6
IHZhcigtLXRleHQtY29sb3ItZ3JheS1kYXJrKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0tdGV4
dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5KTo6YmVmb3JlIHsKKyAgICBjb250
ZW50OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZuYnNwOyAqLzsKK30KKwor
LmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAg
IGJvcmRlcjogbm9uZTsKKyAgICBvcGFjaXR5OiAwOworfQorCisuY29udGVudC12aWV3LmFuaW1h
dGlvbjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgb3BhY2l0eTogMTsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyB7CisgICAgZGlzcGxheTog
ZmxleDsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczogY2Vu
dGVyOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTYlKTsKK30KKworLmNvbnRl
bnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyB7CisgICAgd2lkdGg6IDEwMCU7Cit9
CisKK2JvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2
ZyB7CisgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOworfQorCisuY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHJlY3QgeworICAgIGZpbGw6IHRyYW5zcGFyZW50OworfQor
CisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmRlbGF5IGxpbmUg
eworICAgIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG9yKTsKKyAgICBzdHJva2Utd2lkdGg6IDI7
Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZl
IHBhdGggeworICAgIGZpbGw6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7CisgICAgZmlsbC1v
cGFjaXR5OiAwLjU7CisgICAgc3Ryb2tlOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAg
IHN0cm9rZS13aWR0aDogMTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlIHsKKyAgICBmaWxsOiB2YXIoLS10ZXh0LWNvbG9yKTsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUg
bGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICBzdHJva2Utd2lkdGg6
IDI7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzcGFuIHsKKyAg
ICBwYWRkaW5nOiA0cHg7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsK
K30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgICAgIGNv
bG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgICAgICBjb2xvcjogdmFy
KC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUs
IDIwJSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OWQ2MDY3Y2Y4NjRkNzQ4NzMzMzRkYzk4M2ZjYTBmYWU2NzNiNmI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5Bbmlt
YXRpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
QW5pbWF0aW9uKTsKKworICAgICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVjdCk7CisKKyAgICAg
ICAgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IG51bGw7CisgICAgICAgIHRoaXMuX2Nh
Y2hlZFdpZHRoID0gTmFOOworCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJh
bmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBnZXQgcHJl
dmlld0hlaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gNDA7CisgICAgfQorCisgICAgLy8g
UHVibGljCisKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAg
ICB0aGlzLl9yZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKwor
ICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgp
OworCisgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWRlciIpKTsKKworICAgICAgICBsZXQgdGl0bGVz
Q29udGFpbmVyID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKSk7CisgICAgICAgIHRpdGxlc0NvbnRhaW5lci5jbGFzc05hbWUgPSAidGl0bGVz
IjsKKworICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gdGl0bGVzQ29udGFpbmVyLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgIHRpdGxlRWxlbWVu
dC5jbGFzc05hbWUgPSAidGl0bGUiOworICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQg
PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc3BsYXlOYW1lOworCisgICAgICAgIHRoaXMuX3N1
YnRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuY2xhc3NO
YW1lID0gInN1YnRpdGxlIjsKKworICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IG5ldyBXSS5O
YXZpZ2F0aW9uQmFyOworCisgICAgICAgIGxldCBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0
aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiYW5pbWF0aW9uLXRhcmdldCIs
IFdJLlVJU3RyaW5nKCJBbmltYXRpb24gVGFyZ2V0IiksICJJbWFnZXMvTWFya3VwLnN2ZyIsIDE2
LCAxNik7CisgICAgICAgIGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZpc2li
aWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7
CisgICAgICAgIFdJLmFkZE1vdXNlRG93bkNvbnRleHRNZW51SGFuZGxlcnMoYW5pbWF0aW9uVGFy
Z2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZWxlbWVudCwgdGhpcy5fcG9wdWxhdGVBbmltYXRpb25U
YXJnZXRCdXR0b25Db250ZXh0TWVudS5iaW5kKHRoaXMpKTsKKyAgICAgICAgbmF2aWdhdGlvbkJh
ci5hZGROYXZpZ2F0aW9uSXRlbShhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbSk7
CisKKyAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmQobmF2aWdhdGlvbkJhci5lbGVtZW50KTsK
KyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRpb25CYXIpOworCisgICAgICAgIHRoaXMu
X3ByZXZpZXdDb250YWluZXIgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNsYXNz
TmFtZSA9ICJwcmV2aWV3IjsKKyAgICB9CisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAgICAg
c3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAg
ICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQorCisgICAgc2l6ZURpZENoYW5nZSgp
CisgICAgeworICAgICAgICBzdXBlci5zaXplRGlkQ2hhbmdlKCk7CisKKyAgICAgICAgdGhpcy5f
Y2FjaGVkV2lkdGggPSB0aGlzLmVsZW1lbnQucmVhbE9mZnNldFdpZHRoOworICAgIH0KKworICAg
IGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAg
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVu
dC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAg
ICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5F
dmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAg
ICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQs
IHRoaXMuX2hhbmRsZVRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENo
YW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQsIHRoaXMpOworCisgICAgICAgIHN1cGVy
LmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3JlZnJlc2hTdWJ0
aXRsZSgpCisgICAgeworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlcXVlc3RFZmZl
Y3RUYXJnZXQoKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvblRhcmdl
dERPTU5vZGUgPSBkb21Ob2RlOworCisgICAgICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQu
cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIGlmIChkb21Ob2RlKQorICAgICAgICAgICAg
ICAgIHRoaXMuX3N1YnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChXSS5saW5raWZ5Tm9kZVJlZmVy
ZW5jZShkb21Ob2RlKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoUHJldmll
dygpCisgICAgeworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLnJlbW92ZUNoaWxkcmVu
KCk7CisKKyAgICAgICAgbGV0IGtleWZyYW1lcyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qua2V5
ZnJhbWVzOworICAgICAgICBpZiAoIWtleWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxl
dCBzcGFuID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IFdJLlVJ
U3RyaW5nKCJUaGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHN0YXJ0RGVsYXkgPSB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbkR1cmF0
aW9uID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5pdGVyYXRpb25EdXJhdGlvbiB8fCAwOworICAg
ICAgICBsZXQgZW5kRGVsYXkgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVuZERlbGF5IHx8IDA7
CisgICAgICAgIGxldCB0b3RhbER1cmF0aW9uID0gc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0
aW9uICsgZW5kRGVsYXk7CisgICAgICAgIGlmICh0b3RhbER1cmF0aW9uID09PSAwKSB7CisgICAg
ICAgICAgICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRl
bnQgPSBXSS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgcHJldmlld0hlaWdo
dCA9IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByZXZpZXdIZWlnaHQ7CisKKyAgICAgICAgY29u
c3QgbWFya2VySGVhZFJhZGl1cyA9IDQ7CisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRQYWRkaW5n
ID0gMjsKKworICAgICAgICAvLyBTcXVlZXplIHRoZSBlbnRpcmUgcHJldmlldyBzbyB0aGF0IG1h
cmtlcnMgYXJlbid0IGN1dCBvZmYuCisgICAgICAgIGNvbnN0IHNxdWVlemVYU3RhcnQgPSAoaXRl
cmF0aW9uRHVyYXRpb24gJiYgc3RhcnREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyArIG1h
cmtlckhlYWRQYWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWEVuZCA9IChpdGVyYXRpb25E
dXJhdGlvbiAmJiBlbmREZWxheSkgPyAwIDogbWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQ
YWRkaW5nOworICAgICAgICBjb25zdCBzcXVlZXplWVN0YXJ0ID0gbWFya2VySGVhZFJhZGl1cyAr
IChtYXJrZXJIZWFkUGFkZGluZyAqIDIpOworCisgICAgICAgIC8vIE1vdmUgdGhlIGVhc2luZyBs
aW5lIGRvd24gdG8gY3V0IG9mZiB0aGUgYm90dG9tIGJvcmRlci4KKyAgICAgICAgY29uc3QgYWRq
dXN0RWFzaW5nWSA9IDAuNTsKKworICAgICAgICBsZXQgc2Vjb25kc1BlclBpeGVsID0gdGhpcy5f
Y2FjaGVkV2lkdGggLyB0b3RhbER1cmF0aW9uOworCisgICAgICAgIHN0YXJ0RGVsYXkgKj0gc2Vj
b25kc1BlclBpeGVsOworICAgICAgICBpdGVyYXRpb25EdXJhdGlvbiA9IChpdGVyYXRpb25EdXJh
dGlvbiAqIHNlY29uZHNQZXJQaXhlbCkgLSBzcXVlZXplWFN0YXJ0IC0gc3F1ZWV6ZVhFbmQ7Cisg
ICAgICAgIGVuZERlbGF5ICo9IHNlY29uZHNQZXJQaXhlbDsKKworICAgICAgICBsZXQgc3ZnID0g
dGhpcy5fcHJldmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJzdmci
KSk7CisgICAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCBgMCAwICR7dGhpcy5fY2Fj
aGVkV2lkdGh9ICR7cHJldmlld0hlaWdodH1gKTsKKworICAgICAgICBmdW5jdGlvbiBhZGRUaXRs
ZShwYXJlbnQsIHRpdGxlKSB7CisgICAgICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gcGFyZW50
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInRpdGxlIikpOworICAgICAgICAgICAgdGl0
bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
c3RhcnREZWxheSkgeworICAgICAgICAgICAgbGV0IHN0YXJ0RGVsYXlDb250YWluZXIgPSBzdmcu
YXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVs
YXlDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZGVsYXkiLCAic3RhcnQiKTsKKworICAgICAgICAg
ICAgbGV0IHN0YXJ0RGVsYXlMaW5lID0gc3RhcnREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChj
cmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAgICAgc3RhcnREZWxheUxpbmUuc2V0
QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsKKyAg
ICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieDIiLCBzdGFydERlbGF5KTsK
KyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJldmlld0hl
aWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5
RWxlbWVudCA9IHN0YXJ0RGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgicmVjdCIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgi
d2lkdGgiLCBzdGFydERlbGF5KTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlFbGVtZW50LnNldEF0
dHJpYnV0ZSgiaGVpZ2h0IiwgcHJldmlld0hlaWdodCk7CisKKyAgICAgICAgICAgIGNvbnN0IHN0
YXJ0RGVsYXlUaXRsZUZvcm1hdCA9IFdJLlVJU3RyaW5nKCJTdGFydCBEZWxheSAlcyIsICJXZWIg
QW5pbWF0aW9uIFN0YXJ0IERlbGF5IFRvb2x0aXAiLCAiVG9vbHRpcCBmb3Igc2VjdGlvbiBvZiBn
cmFwaCByZXByZXNlbnRpbmcgZGVsYXkgYmVmb3JlIGEgd2ViIGFuaW1hdGlvbiBiZWdpbnMgYXBw
bHlpbmcgc3R5bGVzIik7CisgICAgICAgICAgICBhZGRUaXRsZShzdGFydERlbGF5RWxlbWVudCwg
c3RhcnREZWxheVRpdGxlRm9ybWF0LmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMu
cmVwcmVzZW50ZWRPYmplY3Quc3RhcnREZWxheSAvIDEwMDApKSk7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoZW5kRGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBlbmREZWxheUNvbnRhaW5lciA9
IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgZW5k
RGVsYXlDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3Rh
cnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgc3F1ZWV6ZVhTdGFydH0sIDApYCk7CisgICAg
ICAgICAgICBlbmREZWxheUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxheSIsICJlbmQiKTsK
KworICAgICAgICAgICAgbGV0IGVuZERlbGF5TGluZSA9IGVuZERlbGF5Q29udGFpbmVyLmFwcGVu
ZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICBlbmREZWxheUxp
bmUuc2V0QXR0cmlidXRlKCJ5MSIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAy
KTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngyIiwgZW5kRGVsYXkp
OworICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTIiLCAocHJldmlld0hl
aWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisKKyAgICAgICAgICAgIGxldCBlbmREZWxheUVs
ZW1lbnQgPSBlbmREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJy
ZWN0IikpOworICAgICAgICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgi
LCBzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheSk7CisgICAgICAgICAg
ICBlbmREZWxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2aWV3SGVpZ2h0KTsK
KworICAgICAgICAgICAgY29uc3QgZW5kRGVsYXlUaXRsZUZvcm1hdCA9IFdJLlVJU3RyaW5nKCJF
bmQgRGVsYXkgJXMiLCAiV2ViIEFuaW1hdGlvbiBFbmQgRGVsYXkgVG9vbHRpcCIsICJUb29sdGlw
IGZvciBzZWN0aW9uIG9mIGdyYXBoIHJlcHJlc2VudGluZyBkZWxheSBhZnRlciBhIHdlYiBhbmlt
YXRpb24gZmluaXNoZXMgYXBwbHlpbmcgc3R5bGVzIik7CisgICAgICAgICAgICBhZGRUaXRsZShl
bmREZWxheUVsZW1lbnQsIGVuZERlbGF5VGl0bGVGb3JtYXQuZm9ybWF0KE51bWJlci5zZWNvbmRz
VG9TdHJpbmcodGhpcy5yZXByZXNlbnRlZE9iamVjdC5lbmREZWxheSAvIDEwMDApKSk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoaXRlcmF0aW9uRHVyYXRpb24pIHsKKyAgICAgICAgICAgIGxl
dCB0aW1pbmdGdW5jdGlvbiA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QudGltaW5nRnVuY3Rpb247
CisKKyAgICAgICAgICAgIGxldCBhY3RpdmVEdXJhdGlvbkNvbnRhaW5lciA9IHN2Zy5hcHBlbmRD
aGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25D
b250YWluZXIuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7CisgICAgICAgICAgICBhY3RpdmVEdXJh
dGlvbkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFy
dERlbGF5ICsgc3F1ZWV6ZVhTdGFydH0sICR7c3F1ZWV6ZVlTdGFydH0pYCk7CisKKyAgICAgICAg
ICAgIGNvbnN0IHN0YXJ0WSA9IDA7CisgICAgICAgICAgICBjb25zdCBlbmRZID0gcHJldmlld0hl
aWdodCAtIHNxdWVlemVZU3RhcnQ7CisgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBlbmRZIC0g
c3RhcnRZOworCisgICAgICAgICAgICBmb3IgKGxldCBba2V5ZnJhbWVBLCBrZXlmcmFtZUJdIG9m
IGtleWZyYW1lcy5hZGphY2VuY2llcygpKSB7CisgICAgICAgICAgICAgICAgbGV0IHN0YXJ0WCA9
IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWVBLm9mZnNldDsKKyAgICAgICAgICAgICAgICBs
ZXQgZW5kWCA9IGl0ZXJhdGlvbkR1cmF0aW9uICoga2V5ZnJhbWVCLm9mZnNldDsKKyAgICAgICAg
ICAgICAgICBsZXQgd2lkdGggPSBlbmRYIC0gc3RhcnRYOworCisgICAgICAgICAgICAgICAgbGV0
IGVhc2luZyA9IGtleWZyYW1lQS5lYXNpbmcgfHwgdGltaW5nRnVuY3Rpb247CisKKyAgICAgICAg
ICAgICAgICBsZXQgZWFzaW5nQ29udGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdD
b250YWluZXIuY2xhc3NMaXN0LmFkZCgiZWFzaW5nIik7CisgICAgICAgICAgICAgICAgZWFzaW5n
Q29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0WH0s
ICR7c3RhcnRZfSlgKTsKKworICAgICAgICAgICAgICAgIGxldCB4MSA9IGVhc2luZy5pblBvaW50
LnggKiB3aWR0aDsKKyAgICAgICAgICAgICAgICBsZXQgeTEgPSAoKDEgLSBlYXNpbmcuaW5Qb2lu
dC55KSAqIGhlaWdodCkgKyBhZGp1c3RFYXNpbmdZOworICAgICAgICAgICAgICAgIGxldCB4MiA9
IGVhc2luZy5vdXRQb2ludC54ICogd2lkdGg7CisgICAgICAgICAgICAgICAgbGV0IHkyID0gKCgx
IC0gZWFzaW5nLm91dFBvaW50LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7CisKKyAgICAg
ICAgICAgICAgICBsZXQgZWFzaW5nUGF0aCA9IGVhc2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChj
cmVhdGVTVkdFbGVtZW50KCJwYXRoIikpOworICAgICAgICAgICAgICAgIGVhc2luZ1BhdGguc2V0
QXR0cmlidXRlKCJkIiwgYE0gMCAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IEMgJHt4MX0gJHt5
MX0gJHt4Mn0gJHt5Mn0gJHt3aWR0aH0gJHthZGp1c3RFYXNpbmdZfSBWICR7aGVpZ2h0ICsgYWRq
dXN0RWFzaW5nWX0gWmApOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9IGVhc2lu
Z0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAg
ICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgd2lkdGgpOworICAgICAg
ICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhlaWdodCk7CisKKyAg
ICAgICAgICAgICAgICBhZGRUaXRsZSh0aXRsZVJlY3QsIGVhc2luZy50b1N0cmluZygpKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChsZXQga2V5ZnJhbWUgb2Yga2V5ZnJhbWVz
KSB7CisgICAgICAgICAgICAgICAgbGV0IHggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1l
Lm9mZnNldDsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZUNvbnRhaW5lciA9IGFjdGl2
ZUR1cmF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7Cisg
ICAgICAgICAgICAgICAga2V5ZnJhbWVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgia2V5ZnJhbWUi
KTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5z
Zm9ybSIsIGB0cmFuc2xhdGUoJHt4fSwgJHtzdGFydFl9KWApOworCisgICAgICAgICAgICAgICAg
bGV0IGtleWZyYW1lTWFya2VySGVhZCA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNy
ZWF0ZVNWR0VsZW1lbnQoImNpcmNsZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1hcmtl
ckhlYWQuc2V0QXR0cmlidXRlKCJyIiwgbWFya2VySGVhZFJhZGl1cyk7CisKKyAgICAgICAgICAg
ICAgICBsZXQga2V5ZnJhbWVNYXJrZXJMaW5lID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hp
bGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZU1h
cmtlckxpbmUuc2V0QXR0cmlidXRlKCJ5MSIsIGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICBs
ZXQgdGl0bGVSZWN0ID0ga2V5ZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxl
bWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ4
IiwgLTEgKiAobWFya2VySGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nKSk7CisgICAgICAg
ICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgieSIsIC0xICogc3F1ZWV6ZVlTdGFydCk7
CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAobWFya2Vy
SGVhZFJhZGl1cyArIG1hcmtlckhlYWRQYWRkaW5nKSAqIDIpOworICAgICAgICAgICAgICAgIHRp
dGxlUmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGhlaWdodCArIHNxdWVlemVZU3RhcnQpOwor
CisgICAgICAgICAgICAgICAgYWRkVGl0bGUodGl0bGVSZWN0LCBrZXlmcmFtZS5zdHlsZSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGFuZGxlRWZmZWN0Q2hhbmdl
ZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hQcmV2aWV3KCk7CisgICAgfQor
CisgICAgX2hhbmRsZVRhcmdldENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9y
ZWZyZXNoU3VidGl0bGUoKTsKKyAgICB9CisKKyAgICBfcG9wdWxhdGVBbmltYXRpb25UYXJnZXRC
dXR0b25Db250ZXh0TWVudShjb250ZXh0TWVudSkKKyAgICB7CisgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvZyBBbmltYXRpb24iKSwgKCkgPT4geworICAgICAg
ICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVBbmltYXRpb24odGhpcy5yZXByZXNlbnRlZE9i
amVjdCwgV0kuUnVudGltZU1hbmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3RlT2JqZWN0
KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBXSS5VSVN0cmlu
ZygiU2VsZWN0ZWQgQW5pbWF0aW9uIiwgIkFwcGVhcnMgYXMgYSBsYWJlbCB3aGVuIGEgZ2l2ZW4g
d2ViIGFuaW1hdGlvbiBpcyBsb2dnZWQgdG8gdGhlIENvbnNvbGUiKTsKKyAgICAgICAgICAgICAg
ICBjb25zdCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBX
SS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9uV2l0aFJl
c3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFy
YXRvcigpOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKQorICAg
ICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUs
IHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZGI0NmU0
OGYwNGMzOTVhNjFhNGI3NGVlZDAzNTNjMjJmZTcyMzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsLmNzcwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5p
bWF0aW9uLWtleWZyYW1lcyAuaGVhZGVyID4gLnN1YnRpdGxlIHsKKyAgICBjb2xvcjogdmFyKC0t
dGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMu
YW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFt
ZXMgLmRldGFpbHMtc2VjdGlvbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5
NyUpOworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50
ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24g
LnJvdy5zdHlsZXMgeworICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKK30KKworLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5p
bWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIC5Db2RlTWlycm9y
IHsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgcGFkZGluZzogNHB4IDA7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6
IGRhcmspIHsKKyAgICAuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250
ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rp
b24geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDE4JSk7CisgICAgfQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
QW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDY5MWE1YzgyMzMwMmQxNDdhMDg4OWQzNjY0YjE2MjU5NTliMmNjNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTAsMCArMSwyNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTaWRlYmFyUGFuZWwKK3sKKyAgICBjb25z
dHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigiYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmco
IkFuaW1hdGlvbiIpKTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBudWxsOworCisgICAg
ICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwID0gbmV3IE1hcDsKKyAgICB9CisKKyAgICAv
LyBQdWJsaWMKKworICAgIGluc3BlY3Qob2JqZWN0cykKKyAgICB7CisgICAgICAgIGlmICghKG9i
amVjdHMgaW5zdGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICBvYmplY3RzID0gW29iamVjdHNd
OworCisgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gb2JqZWN0cy5maW5kKChvYmplY3QpID0+IG9i
amVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbik7CisKKyAgICAgICAgcmV0dXJuICEhdGhpcy5h
bmltYXRpb247CisgICAgfQorCisgICAgZ2V0IGFuaW1hdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fYW5pbWF0aW9uOworICAgIH0KKworICAgIHNldCBhbmltYXRpb24oYW5pbWF0
aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGFuaW1hdGlvbiA9PT0gdGhpcy5fYW5pbWF0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24pIHsKKyAg
ICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlv
bi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25UYXJnZXRDaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZW1vdmVFdmVudExpc3RlbmVy
KFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25F
ZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FuaW1hdGlv
biA9IGFuaW1hdGlvbiB8fCBudWxsOworCisgICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24pIHsK
KyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlv
bi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJ
LkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVBbmltYXRpb25UYXJn
ZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQo
KTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGluaXRpYWxMYXlvdXQoKQorICAg
IHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIHRoaXMuX25hbWVS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIk5hbWUiKSk7
CisgICAgICAgIHRoaXMuX3R5cGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3co
V0kuVUlTdHJpbmcoIlR5cGUiKSk7CisgICAgICAgIHRoaXMuX3RhcmdldFJvdyA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiVGFyZ2V0IiwgIldlYiBBbmltYXRp
b24gVGFyZ2V0IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgY3VycmVudCBET00gbm9kZSB0YXJnZXQg
b2YgYSB3ZWIgYW5pbWF0aW9uIikpOworCisgICAgICAgIGNvbnN0IGlkZW50aXR5U2VjdGlvblRp
dGxlID0gV0kuVUlTdHJpbmcoIklkZW50aXR5IiwgIldlYiBBbmltYXRpb24gSWRlbnRpdHkgVGl0
bGUiLCAiU2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgYSB3ZWIgYW5pbWF0aW9u
Iik7CisgICAgICAgIGxldCBpZGVudGl0eVNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24o
ImFuaW1hdGlvbi1pZGVudGl0eSIsIGlkZW50aXR5U2VjdGlvblRpdGxlLCBbbmV3IFdJLkRldGFp
bHNTZWN0aW9uR3JvdXAoW3RoaXMuX25hbWVSb3csIHRoaXMuX3R5cGVSb3csIHRoaXMuX3Rhcmdl
dFJvd10pXSk7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChp
ZGVudGl0eVNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uQ291bnRS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkl0ZXJhdGlv
bnMiLCAiV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gQ291bnQgTGFiZWwiLCAiTGFiZWwgZm9yIHRo
ZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIHRo
aXMuX2l0ZXJhdGlvblN0YXJ0Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJ
LlVJU3RyaW5nKCJTdGFydCIsICJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBTdGFydCBMYWJlbCIs
ICJMYWJlbCBmb3IgdGhlIG51bWJlciBkZXNjcmliaW5nIHdoaWNoIGl0ZXJhdGlvbiBhIHdlYiBh
bmltYXRpb24gc2hvdWxkIHN0YXJ0IGF0IikpOworICAgICAgICB0aGlzLl9pdGVyYXRpb25EdXJh
dGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRHVy
YXRpb24iLCAiV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gRHVyYXRpb24gTGFiZWwiLCAiTGFiZWwg
Zm9yIHRoZSB0aW1lIGR1cmF0aW9uIG9mIGVhY2ggaXRlcmF0aW9uIG9mIGEgd2ViIGFuaW1hdGlv
biIpKTsKKyAgICAgICAgbGV0IGl0ZXJhdGlvbnNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
bkdyb3VwKFt0aGlzLl9pdGVyYXRpb25Db3VudFJvdywgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cs
IHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5fc3RhcnREZWxh
eVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiU3RhcnQg
RGVsYXkiLCAiV2ViIEFuaW1hdGlvbiBTdGFydCBEZWxheSBMYWJlbCIsICJMYWJlbCBmb3IgdGhl
IHN0YXJ0IGRlbGF5IHRpbWUgb2YgYSB3ZWIgYW5pbWF0aW9uICIpKTsKKyAgICAgICAgdGhpcy5f
ZW5kRGVsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmco
IkVuZCBEZWxheSIsICJXZWIgQW5pbWF0aW9uIEVuZCBEZWxheSBMYWJlbCIsICJMYWJlbCBmb3Ig
dGhlIGVuZCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1hdGlvbiAiKSk7CisgICAgICAgIHRoaXMu
X3RpbWluZ0Z1bmN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJ
U3RyaW5nKCJFYXNpbmciLCAiV2ViIEFuaW1hdGlvbiBFYXNpbmcgTGFiZWwiLCAiTGFiZWwgZm9y
IHRoZSBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsK
KyAgICAgICAgbGV0IHRpbWluZ0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3Ro
aXMuX3N0YXJ0RGVsYXlSb3csIHRoaXMuX2VuZERlbGF5Um93LCB0aGlzLl90aW1pbmdGdW5jdGlv
blJvd10pOworCisgICAgICAgIHRoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJEaXJlY3Rpb24iLCAiV2ViIEFuaW1h
dGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBwbGF5YmFjayBk
aXJlY3Rpb24gb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICB0aGlzLl9maWxsTW9kZVJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRmlsbCIsICJX
ZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIGZpbGwgbW9kZSBv
ZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIGxldCBmaWxsRGlyZWN0aW9uR3JvdXAgPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25Sb3csIHRo
aXMuX2ZpbGxNb2RlUm93XSk7CisKKyAgICAgICAgY29uc3QgZWZmZWN0U2VjdGlvblRpdGxlID0g
V0kuVUlTdHJpbmcoIkVmZmVjdCIsICJXZWIgQW5pbWF0aW9uIEVmZmVjdCBUaXRsZSIsICJTZWN0
aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZWZmZWN0IG9mIGEgd2ViIGFuaW1h
dGlvbiIpOworICAgICAgICBsZXQgZWZmZWN0U2VjdGlvbiA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
bigiYW5pbWF0aW9uLWVmZmVjdCIsIGVmZmVjdFNlY3Rpb25UaXRsZSwgW2l0ZXJhdGlvbnNHcm91
cCwgdGltaW5nR3JvdXAsIGZpbGxEaXJlY3Rpb25Hcm91cF0pOworICAgICAgICB0aGlzLmNvbnRl
bnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZWZmZWN0U2VjdGlvbi5lbGVtZW50KTsKKworICAg
ICAgICB0aGlzLl9rZXlmcmFtZXNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwOwor
CisgICAgICAgIGNvbnN0IGtleWZyYW1lc1NlY3Rpb25UaXRsZSA9IFdJLlVJU3RyaW5nKCJLZXlm
cmFtZXMiLCAiV2ViIEFuaW1hdGlvbiBLZXlmcmFtZXMgVGl0bGUiLCAiU2VjdGlvbiB0aXRsZSBm
b3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGtleWZyYW1lcyBvZiBhIHdlYiBhbmltYXRpb24iKTsK
KyAgICAgICAgbGV0IGtleWZyYW1lc1NlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFu
aW1hdGlvbi1rZXlmcmFtZXMiLCBrZXlmcmFtZXNTZWN0aW9uVGl0bGUsIFt0aGlzLl9rZXlmcmFt
ZXNHcm91cF0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
a2V5ZnJhbWVzU2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICBjb25zdCBzZWxlY3RhYmxlID0g
ZmFsc2U7CisgICAgICAgIGxldCBiYWNrdHJhY2VUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0
bGluZShzZWxlY3RhYmxlKTsKKyAgICAgICAgYmFja3RyYWNlVHJlZU91dGxpbmUuZGlzY2xvc3Vy
ZUJ1dHRvbnMgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlVHJlZUNvbnRyb2xsZXIg
PSBuZXcgV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIoYmFja3RyYWNlVHJlZU91dGxpbmUpOwor
CisgICAgICAgIGxldCBiYWNrdHJhY2VSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Cisg
ICAgICAgIGJhY2t0cmFjZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGJhY2t0cmFjZVRyZWVPdXRs
aW5lLmVsZW1lbnQpOworCisgICAgICAgIGNvbnN0IGJhY2t0cmFjZVNlY3Rpb25UaXRsZSA9IFdJ
LlVJU3RyaW5nKCJCYWNrdHJhY2UiLCAiV2ViIEFuaW1hdGlvbiBCYWNrdHJhY2UgVGl0bGUiLCAi
U2VjdGlvbiB0aXRsZSBmb3IgdGhlIEphdmFTY3JpcHQgYmFja3RyYWNlIG9mIHRoZSBjcmVhdGlv
biBvZiBhIHdlYiBhbmltYXRpb24iKTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbiA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWJhY2t0cmFjZSIsIGJhY2t0cmFjZVNl
Y3Rpb25UaXRsZSwgW25ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtiYWNrdHJhY2VSb3ddKV0p
OworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsK
KyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JhY2t0
cmFjZVNlY3Rpb24uZWxlbWVudCk7CisgICAgfQorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAg
ICAgIHN1cGVyLmxheW91dCgpOworCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24o
KTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEVmZmVjdFNlY3Rpb24oKTsKKyAgICAgICAgdGhpcy5f
cmVmcmVzaEJhY2t0cmFjZVNlY3Rpb24oKTsKKworICAgICAgICBmb3IgKGxldCBjb2RlTWlycm9y
IG9mIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgY29k
ZU1pcnJvci5yZWZyZXNoKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3JlZnJl
c2hJZGVudGl0eVNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fbmFtZVJvdy52YWx1ZSA9
IHRoaXMuX2FuaW1hdGlvbi5kaXNwbGF5TmFtZTsKKyAgICAgICAgdGhpcy5fdHlwZVJvdy52YWx1
ZSA9IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUodGhpcy5fYW5pbWF0
aW9uLmFuaW1hdGlvblR5cGUpOworCisgICAgICAgIHRoaXMuX3RhcmdldFJvdy52YWx1ZSA9IG51
bGw7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KChkb21Ob2Rl
KSA9PiB7CisgICAgICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBkb21Ob2RlID8gV0ku
bGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkgOiBudWxsOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBfcmVmcmVzaEVmZmVjdFNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQg
c2VjdGlvbiBvZiB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5rZXlzKCkpCisgICAgICAgICAg
ICBzZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuRGV0YWlsc1NlY3Rpb24uRXZlbnQuQ29s
bGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0
YXRlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmNs
ZWFyKCk7CisKKyAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gMDsKKyAgICAgICAgY29uc3QgcmVh
ZE9ubHkgPSB0cnVlOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkNvdW50Um93LnZhbHVlID0g
IWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkgPyB0aGlzLl9hbmltYXRpb24u
aXRlcmF0aW9uQ291bnQudG9Mb2NhbGVTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2l0
ZXJhdGlvblN0YXJ0Um93LnZhbHVlID0gIWlzTmFOKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25T
dGFydCkgPyB0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQudG9Mb2NhbGVTdHJpbmcoKSA6
IG51bGw7CisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkR1cmF0aW9uUm93LnZhbHVlID0gIWlzTmFO
KHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbikgPyBOdW1iZXIuc2Vjb25kc1RvU3Ry
aW5nKHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25EdXJhdGlvbiAvIDEwMDApIDogbnVsbDsKKwor
ICAgICAgICB0aGlzLl9zdGFydERlbGF5Um93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0
RGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5zdGFydERlbGF5
IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl9lbmREZWxheVJvdy52YWx1ZSA9IHRoaXMu
X2FuaW1hdGlvbi5lbmREZWxheSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0
aW9uLmVuZERlbGF5IC8gMTAwMCkgOiBudWxsOworICAgICAgICB0aGlzLl90aW1pbmdGdW5jdGlv
blJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi50aW1pbmdGdW5jdGlvbiA/IHRoaXMuX2FuaW1h
dGlvbi50aW1pbmdGdW5jdGlvbi50b1N0cmluZygpIDogbnVsbDsKKworICAgICAgICB0aGlzLl9w
bGF5YmFja0RpcmVjdGlvblJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5wbGF5YmFja0RpcmVj
dGlvbiA/IFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKHRoaXMu
X2FuaW1hdGlvbi5wbGF5YmFja0RpcmVjdGlvbikgOiBudWxsOworICAgICAgICB0aGlzLl9maWxs
TW9kZVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5maWxsTW9kZSA/IFdJLkFuaW1hdGlvbi5k
aXNwbGF5TmFtZUZvckZpbGxNb2RlKHRoaXMuX2FuaW1hdGlvbi5maWxsTW9kZSkgOiBudWxsOwor
CisgICAgICAgIGxldCBrZXlmcmFtZVNlY3Rpb25zID0gW107CisgICAgICAgIGZvciAobGV0IGtl
eWZyYW1lIG9mIHRoaXMuX2FuaW1hdGlvbi5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGxldCBy
b3dzID0gW107CisKKyAgICAgICAgICAgIGxldCBrZXlmcmFtZVNlY3Rpb24gPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1rZXlmcmFtZS1vZmZzZXQtIiArIGtleWZyYW1lLm9mZnNl
dCwgTnVtYmVyLnBlcmNlbnRhZ2VTdHJpbmcoa2V5ZnJhbWUub2Zmc2V0LCBwcmVjaXNpb24pKTsK
KyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkRldGFpbHNT
ZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlRGV0YWlsc1Nl
Y3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAga2V5ZnJhbWVT
ZWN0aW9ucy5wdXNoKGtleWZyYW1lU2VjdGlvbik7CisKKyAgICAgICAgICAgIGlmIChrZXlmcmFt
ZS5lYXNpbmcpIHsKKyAgICAgICAgICAgICAgICBsZXQgc3VidGl0bGUgPSBrZXlmcmFtZVNlY3Rp
b24uaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
IikpOworICAgICAgICAgICAgICAgIHN1YnRpdGxlLmNsYXNzTmFtZSA9ICJzdWJ0aXRsZSI7Cisg
ICAgICAgICAgICAgICAgc3VidGl0bGUudGV4dENvbnRlbnQgPSBgICR7ZW1EYXNofSAke2tleWZy
YW1lLmVhc2luZy50b1N0cmluZygpfWA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlm
IChrZXlmcmFtZS5zdHlsZSkgeworICAgICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgICAgIGxldCBj
b2RlTWlycm9yID0gV0kuQ29kZU1pcnJvckVkaXRvci5jcmVhdGUoY29kZU1pcnJvckVsZW1lbnQs
IHsKKyAgICAgICAgICAgICAgICAgICAgbW9kZTogImNzcyIsCisgICAgICAgICAgICAgICAgICAg
IHJlYWRPbmx5OiAibm9jdXJzb3IiLAorICAgICAgICAgICAgICAgICAgICBsaW5lV3JhcHBpbmc6
IHRydWUsCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgY29kZU1pcnJvci5z
ZXRWYWx1ZShrZXlmcmFtZS5zdHlsZSk7CisKKyAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9
IG51bGw7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gb3B0aW9uc0ZvclR5cGUodHlwZSkgewor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICAgICAgYWxs
b3dlZFRva2VuczogL1xidGFnXGIvLAorICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2so
bWFya2VyLCB2YWx1ZU9iamVjdCwgdmFsdWVTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgc3dhdGNoID0gbmV3IFdJLklubGluZVN3YXRjaCh0eXBlLCB2YWx1ZU9iamVj
dCwgcmVhZE9ubHkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0
VW5pcXVlQm9va21hcmsobWFya2VyLnJhbmdlLnN0YXJ0UG9zaXRpb24oKS50b0NvZGVNaXJyb3Io
KSwgc3dhdGNoLmVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjcmVhdGVD
b2RlTWlycm9yQ29sb3JUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5
cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuQ29sb3IpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVD
b2RlTWlycm9yR3JhZGllbnRUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0Zv
clR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpKTsKKyAgICAgICAgICAgICAgICBj
cmVhdGVDb2RlTWlycm9yQ3ViaWNCZXppZXJUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwg
b3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKSk7CisgICAgICAgICAg
ICAgICAgY3JlYXRlQ29kZU1pcnJvclNwcmluZ1RleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdl
LCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpKTsKKworICAgICAg
ICAgICAgICAgIGxldCByb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7CisgICAgICAgICAg
ICAgICAgcm93LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic3R5bGVzIik7CisgICAgICAgICAgICAg
ICAgcm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoY29kZU1pcnJvckVsZW1lbnQpOworICAgICAgICAg
ICAgICAgIHJvd3MucHVzaChyb3cpOworCisgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJv
clNlY3Rpb25NYXAuc2V0KGtleWZyYW1lU2VjdGlvbiwgY29kZU1pcnJvcik7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICghcm93cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBs
ZXQgZW1wdHlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5vIFN0
eWxlcyIpKTsKKyAgICAgICAgICAgICAgICBlbXB0eVJvdy5zaG93RW1wdHlNZXNzYWdlKCk7Cisg
ICAgICAgICAgICAgICAgcm93cy5wdXNoKGVtcHR5Um93KTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAga2V5ZnJhbWVTZWN0aW9uLmdyb3VwcyA9IFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25H
cm91cChyb3dzKV07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFrZXlmcmFtZVNlY3Rpb25zLmxl
bmd0aCkgeworICAgICAgICAgICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
Um93KFdJLlVJU3RyaW5nKCJObyBLZXlmcmFtZXMiKSk7CisgICAgICAgICAgICBlbXB0eVJvdy5z
aG93RW1wdHlNZXNzYWdlKCk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goZW1w
dHlSb3cpOworICAgICAgICB9CisgICAgICAgIHRoaXMuX2tleWZyYW1lc0dyb3VwLnJvd3MgPSBr
ZXlmcmFtZVNlY3Rpb25zOworICAgIH0KKworICAgIF9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigp
CisgICAgeworICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHRoaXMuX2FuaW1hdGlvbi5iYWNrdHJh
Y2U7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVRyZWVDb250cm9sbGVyLmNhbGxGcmFtZXMgPSBj
YWxsRnJhbWVzOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQuaGlkZGVu
ID0gIWNhbGxGcmFtZXMubGVuZ3RoOworICAgIH0KKworICAgIF9oYW5kbGVBbmltYXRpb25FZmZl
Y3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEVmZmVjdFNlY3Rp
b24oKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZChldmVudCkK
KyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hJZGVudGl0eVNlY3Rpb24oKTsKKyAgICB9CisK
KyAgICBfaGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQgY29kZU1pcnJvciA9IHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFw
LmdldChldmVudC50YXJnZXQpOworICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCmluZGV4IDRlNWE5MGUxZjAzMTdmMGM0
ZWJmNGY3OTk3MDI3NmM3ZmJkMjdmNTguLmNjMTY2YmQzZTYwZDM4MWE3NWExYTE3OTQzYWJlMjM2
NzA3YThiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKQEAgLTIzLDExICsyMywx
MSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50
LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
czpub3QoLnRhYikgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
IHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAg
IGFsaWduLWl0ZW1zOiBjZW50ZXI7CkBAIC0zNiwxNyArMzYsMTcgQEAKICAgICBwYWRkaW5nOiAx
NXB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmll
dy5jYW52YXMgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVt
bjsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgPiBpbWcg
eworLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgbWF4LXdpZHRo
OiAxMDAlOwogICAgIG1heC1oZWlnaHQ6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
Om5vdCgudGFiKSA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNh
bnZhcyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0K
IApAQCAtNTYsNyArNTYsNyBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBk
YXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKyAgICAuY29udGVu
dC12aWV3LmNhbnZhcyB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKaW5kZXggOWI0ZmQ2ZjZlZDdlMWNiNzYzOTc1
MTExMDExNTMyNDY1NGQ1OGYwMS4uOTkzZGE1MTNmMmRkNTYzM2ZkNzk0ODNlYTRjYTlmZmJhOTZl
ZmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV0ku
Q2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNv
bnRlbnRWaWV3CiAKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
bmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmcoIlJlZnJl
c2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3Jl
ZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0
aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bS5FdmVudC5DbGlja2VkLCB0aGlzLnJlZnJlc2hQcmV2aWV3LCB0aGlzKTsKKyAgICAgICAgdGhp
cy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xp
Y2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5V
SVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFu
c3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMs
IDEzKTsKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVu
dExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3No
b3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CkBAIC03Nyw2ICs3NywyOSBAQCBXSS5DYW52YXND
b250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQo
KQorICAgIHsKKyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIC8v
IERyb3Bab25lVmlldyBkZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFn
RXZlbnQoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFU
cmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMiKTsKKyAgICB9CisKKyAgICBkcm9wWm9uZUhh
bmRsZURyb3AoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGZpbGVzID0gZXZl
bnQuZGF0YVRyYW5zZmVyLmZpbGVzOworICAgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7
CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihm
aWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsK
KyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGluaXRpYWxMYXlvdXQoKQpAQCAtMTYw
LDYgKzE4MywxMyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBpZiAoaXNDYXJkKQogICAgICAg
ICAgICAgdGhpcy5fcmVmcmVzaFBpeGVsU2l6ZSgpOworCisgICAgICAgIGlmICghaXNDYXJkKSB7
CisgICAgICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlz
KTsKKyAgICAgICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0kuVUlTdHJpbmcoIkltcG9ydCBS
ZWNvcmRpbmciKTsKKyAgICAgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhp
cy5lbGVtZW50OworICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRyb3Bab25lVmlldyk7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBsYXlvdXQoKQpAQCAtMTkxLDEzICsyMjEsNiBAQCBXSS5D
YW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29u
dGVudFZpZXcKICAgICAgICAgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkKCk7CiAgICAgfQogCi0gICAg
c2hvd24oKQotICAgIHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLnJl
ZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAg
c3VwZXIuYXR0YWNoZWQoKTsKQEAgLTIyMyw2ICsyNDYsOCBAQCBXSS5DYW52YXNDb250ZW50Vmll
dyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAg
ICAgfSk7CiAKICAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3Rl
bmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRlSW1hZ2VHcmlkLCB0aGlz
KTsKKworICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7CiAgICAgfQogCiAgICAgZGV0YWNo
ZWQoKQpAQCAtMjkxLDExICszMTYsNiBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENh
bnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIF9wb3B1bGF0ZUNh
bnZhc0VsZW1lbnRCdXR0b25Db250ZXh0TWVudShjb250ZXh0TWVudSkKICAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9jYW52YXNOb2RlKQotICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJ
dGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUpOwotCi0gICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwotCiAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvZyBDYW52YXMgQ29udGV4dCIpLCAoKSA9PiB7CiAgICAg
ICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUNhbnZhc0NvbnRleHQodGhpcy5yZXByZXNl
bnRlZE9iamVjdCwgV0kuUnVudGltZU1hbmFnZXIuQ29uc29sZU9iamVjdEdyb3VwLCAocmVtb3Rl
T2JqZWN0KSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFyZW1vdGVPYmplY3QpCkBAIC0zMDYs
NiArMzI2LDExIEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dW
aWV3Q29udHJvbGxlci5hcHBlbmRJbW1lZGlhdGVFeGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJl
bW90ZU9iamVjdCwgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAg
ICAgICAgaWYgKHRoaXMuX2NhbnZhc05vZGUpCisgICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0
TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9kZSk7CiAgICAg
fQogCiAgICAgX3Nob3dHcmlkQnV0dG9uQ2xpY2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcuY3NzCmluZGV4IDEwZjM3YzA0NmIwYzJhMTI4MmM1ZWM5OWRjNmNi
OTkwYjIyMzZjNWYuLjFjNmQ2NDMxZjliN2Q2MzZlOGYzZThjZTE1YzZiYjJhNjViMTM2YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCkBAIC0yNiwyOSAr
MjYsMjkgQEAKIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKICAgICBqdXN0aWZ5LWNv
bnRlbnQ6IGNlbnRlcjsKICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7Ci0KLSAgICAtLWl0ZW0tbWFyZ2luOiAxMHB4Owor
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHggMDsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZmxleC1n
cm93OiAwOwotICAgIG1hcmdpbjogdmFyKC0taXRlbS1tYXJnaW4pOworICAgIGZsZXgtc2hyaW5r
OiAwOwogICAgIHdpZHRoOiA0MDBweDsKKyAgICBtYXJnaW46IDRweDsKICAgICBib3JkZXI6IDFw
eCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMsCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
ID4gaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQog
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNv
cmRpbmctYWN0aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CiAgICAgYm9yZGVyLWNvbG9yOiByZWQ7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
Om1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAg
IGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICBmbGV4LXNocmlu
azogMDsKQEAgLTU5LDEzNiArNTksMTM2IEBACiAgICAgY3Vyc29yOiBkZWZhdWx0OwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gaGVhZGVyIHsKICAgICBmb250LXNpemU6IDEzcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFk
ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gaGVhZGVyID4gLnRpdGxlcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnNpemUgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVy
ID4gLnNpemUgewogICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXRl
eHQtY29sb3ItZ3JheS1kYXJrKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
Lm1lbW9yeS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAorLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5
LWNvc3QgewogICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFk
ZXIgLnN1YnRpdGxlOjpiZWZvcmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9yZSB7CiAgICAgY29u
dGVudDogIlwwMEEwXDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+
IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB3aGl0ZTsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5n
LWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
aGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CiAgICAgY29sb3I6IHZhcigtLXNlbGVjdGVk
LXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZp
Z2F0aW9uLWJhciA+IC5pdGVtIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9u
LWJhciA+IC5pdGVtIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KCk7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVh
ZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgewogICAgIGFs
aWduLWl0ZW1zOiBpbml0aWFsOwogICAgIGJvcmRlcjogbm9uZTsKICAgICBvcGFjaXR5OiAwOwog
ICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm1hdGNoZXMoOmhvdmVy
LCAucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpo
b3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAg
ICBvcGFjaXR5OiAxOwogICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
Om5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRl
bS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFk
ZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcC5kaXNhYmxlZCB7
CiAgICAgZmlsdGVyOiBncmF5c2NhbGUoKTsKICAgICBvcGFjaXR5OiAwLjU7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3Jk
aW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3Rh
cnQtc3RvcDpub3QoLmRpc2FibGVkKTpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFk
ZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3RvcDpub3QoLmRpc2Fi
bGVkKTpob3ZlciB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDk1JSk7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5n
LWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQt
c3RvcDpub3QoLmRpc2FibGVkKTphY3RpdmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVy
ID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxl
ZCk6YWN0aXZlIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoODAlKTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSA+IC5wcm9ncmVzcy12aWV3LAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmll
dywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiAucHJldmlldyB7CiAgICAgaGVpZ2h0OiAyODBweDsKICAgICB0cmFuc2l0aW9uOiBiYWNrZ3Jv
dW5kLWNvbG9yIDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNz
LXZpZXc6aG92ZXIsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3
OmhvdmVyLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUs
IDk2JSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJldmlldyB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJl
dmlldyB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBp
bWcgewogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICBib3gtc2hhZG93OiAxcHggMnB4IDZw
eCByZ2JhKDAsIDAsIDAsIDAuNTgpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3IHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAu
cHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmlldyB7CiAgICAgcG9zaXRpb246IHN0YXRpYzsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGZvb3RlciB7CiAgICAgYm9yZGVyLXRvcDogbm9uZTsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1y
ZWxhdGVkLWl0ZW1zIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zIHsKICAgICBkaXNwbGF5
OiBmbGV4OwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRl
ZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVjb3JkaW5nKSB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVy
ID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IDptYXRjaGVzKC52aWV3LXNoYWRlciwgLnZpZXctcmVj
b3JkaW5nKSB7CiAgICAgd2lkdGg6IDE2cHg7CiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+
IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiBpbWcgKyBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQt
aXRlbXMgPiBpbWcgKyBpbWcgewogICAgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiA0cHg7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXct
cmVsYXRlZC1pdGVtcyA+IC52aWV3LXNoYWRlciB7CiAgICAgY29udGVudDogaW1hZ2Utc2V0KHVy
bCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xA
MngucG5nKSAyeCk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50
LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29y
ZGluZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IC52aWV3LXJlY29yZGluZyB7CiAg
ICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIAotLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxl
eGlibGUtc3BhY2UgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CiAgICAgZmxleDogMTsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgLm1lbW9yeS1jb3N0IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAtd2Via2l0LXBh
ZGRpbmctc3RhcnQ6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgewogICAg
IGhlaWdodDogMzQwcHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29y
ZGluZ3MgLnRyZWUtb3V0bGluZSB7CiAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNv
cmRpbmdzIC50cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29y
ZGluZ3MgLnRyZWUtb3V0bGluZSA+IC5pdGVtLnJlY29yZGluZyA+IC5pY29uIHsKICAgICBjb250
ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwogfQogCkBAIC0yMDksNDMgKzIwOSwz
OSBAQAogfQogCiBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1
bnNldDsKLSAgICB9Ci0KLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcywKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLAorICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5
KTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCi0gICAg
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJl
dmlldzpob3ZlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXc6aG92ZXIsCisg
ICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+
IC5wcmV2aWV3OmhvdmVyIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dy
b3VuZC1jb2xvci10ZXJ0aWFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CisgICAgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlIHsKICAgICAgICAgLS1yZWNvcmRpbmctY29sb3I6IGhzbCgwLCAxMDAlLCAzOSUp
OwogICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAgICAgfQog
Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMu
cmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsK
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNvbG9yKTsKICAgICB9
CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRp
dGxlIHsKICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpOwogICAgIH0KIAotICAgIC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVy
ID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworICAgIC5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIg
PiAudGl0bGVzID4gLnN1YnRpdGxlLAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICAgICAg
Y29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAudmll
dy1yZWNvcmRpbmcgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgLnZpZXctcmVjb3JkaW5nIHsKICAgICAgICAgZmlsdGVy
OiBpbnZlcnQoKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+
IC5zdWJ0aXRsZSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0
aXRsZSB7CiAgICAgICAgIGNvbG9yOiB1bnNldDsKICAgICAgICAgb3BhY2l0eTogMC41CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKaW5kZXggNjM5YjM2
ZDg1OWJiN2NmM2MzNDQ0NWFhMGViNzQ5NTQzM2M0MTA5OC4uMGQxNjVkZDI2OGQ0MzcwMjhhNDNk
MTQ5ZTA3Y2ZhODM4YjRkZTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LmpzCkBAIC0yOSw3ICsyOSw4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcg
PSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAg
ewogICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkNhbnZhc0NvbGxlY3Rpb24pOwogCi0gICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBX
SS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIp
KTsKKyAgICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IFdJLmFuaW1hdGlvbk1hbmFnZXIu
c3VwcG9ydGVkID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikgOiBXSS5jcmVhdGVNZXNz
YWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIk5vIENhbnZhcyBDb250ZXh0cyIpKTsKKwogICAgICAg
ICBsZXQgZGVzY3JpcHRpb25FbGVtZW50ID0gY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKICAgICAgICAgZGVzY3JpcHRpb25FbGVt
ZW50LmNsYXNzTmFtZSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVu
dC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMg
Y3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiIpOwpAQCAtNjIsMjEgKzYzLDcgQEAgV0kuQ2FudmFz
T3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVJlY29yZGluZ0F1dG9DYXB0
dXJlQ2hlY2tib3hMYWJlbChmcmFtZUNvdW50KTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMu
X2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
KCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9y
dC5zdmciLCAxNSwgMTUpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bS50b29sdGlwID0gV0kuVUlTdHJpbmcoIkltcG9ydCIpOwotICAgICAgICB0aGlzLl9pbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LlN0eWxlLkltYWdlQW5kVGV4dDsKLQotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2gtYWxsIiwgV0ku
VUlTdHJpbmcoIlJlZnJlc2ggYWxsIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMp
OwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZh
bHNlOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRM
aXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9yZWZy
ZXNoUHJldmlld3MsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlk
IiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhp
ZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2
ZyIsIDEzLCAxMyk7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
YWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOwotICAgICAgICB0
aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJ
LkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dHcmlkQnV0dG9u
Q2xpY2tlZCwgdGhpcyk7Ci0KICAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRM
aXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5k
bGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwotICAgICAgICB0aGlz
Ll9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdz
Q29udGVudFZpZXcgPSBudWxsOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0
bGluZSA9IG51bGw7CkBAIC05MCwxNyArNzcsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMK
IAogICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgbGV0IG5hdmlnYXRp
b25JdGVtcyA9IFt0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRpdmlk
ZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0aGlz
Ll9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKLSAgICAgICAgaWYgKFdJLkNhbnZhc01h
bmFnZXIuc3VwcG9ydHNSZWNvcmRpbmdBdXRvQ2FwdHVyZSgpKQotICAgICAgICAgICAgbmF2aWdh
dGlvbkl0ZW1zLnVuc2hpZnQodGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRl
bSwgbmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIGxldCBuYXZpZ2F0aW9u
SXRlbXMgPSBbXTsKKyAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdh
dGlvbkl0ZW0pCisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9yZWNvcmRp
bmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25J
dGVtczsKICAgICB9CiAKLSAgICBoaWRkZW4oKQorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlj
a2VkKCkKICAgICB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQo
KTsKLQotICAgICAgICBzdXBlci5oaWRkZW4oKTsKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBv
ZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJ
LkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVz
aEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApA
QCAtMTE1LDIzICsxMDMsMTggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAg
IHRoaXMucmVtb3ZlU3Vidmlldyh0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50Vmlldyk7CiAg
ICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZp
ZXcpOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7
CiAgICAgfQogCiAgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQogICAgIHsKICAg
ICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVy
IiwgdGhpcy5fY29udGVudFZpZXdNb3VzZUVudGVyKTsKICAgICAgICAgY29udGVudFZpZXcuZWxl
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5fY29udGVudFZpZXdN
b3VzZUxlYXZlKTsKLQotICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKTsKICAg
ICB9CiAKICAgICBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwog
Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5T
ZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZVNob3dJbWFnZUdyaWQsIHRoaXMpOwog
ICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQuYWRk
RXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZh
c1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZENoYW5nZWQsIHRoaXMpOwogICAgICAgICBXSS5z
ZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuYWRkRXZlbnRMaXN0
ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlY29yZGlu
Z0F1dG9DYXB0dXJlRnJhbWVDb3VudENoYW5nZWQsIHRoaXMpOwogCkBAIC0xNDEsNDkgKzEyNCwy
NyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdD
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNv
cmRpbmdzVHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgZm9yIChsZXQgcmVj
b3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKQogICAgICAgICAgICAg
dGhpcy5fYWRkU2F2ZWRSZWNvcmRpbmcocmVjb3JkaW5nKTsKKworICAgICAgICBmb3IgKGxldCBz
dWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3IGluc3Rh
bmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmlldy5yZWZy
ZXNoUHJldmlldygpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQogICAgIHsK
KyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCiAgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsK
IAogICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291
bnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKICAgICAgICAgV0kuc2V0
dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkLnJlbW92ZUV2ZW50TGlzdGVu
ZXIobnVsbCwgbnVsbCwgdGhpcyk7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBzdXBlci5k
ZXRhY2hlZCgpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAotICAgIGdldCBfaXRlbU1hcmdp
bigpCi0gICAgewotICAgICAgICByZXR1cm4gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGhpcy5lbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCItLWl0ZW0tbWFyZ2luIikpOwotICAg
IH0KLQotICAgIF9yZWZyZXNoUHJldmlld3MoKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgY2Fu
dmFzQ29udGVudFZpZXcgb2YgdGhpcy5zdWJ2aWV3cykKLSAgICAgICAgICAgIGNhbnZhc0NvbnRl
bnRWaWV3LnJlZnJlc2hQcmV2aWV3KCk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZU5hdmlnYXRpb25J
dGVtcygpCi0gICAgewotICAgICAgICBsZXQgaGFzSXRlbXMgPSAhIXRoaXMucmVwcmVzZW50ZWRP
YmplY3Quc2l6ZTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVu
YWJsZWQgPSBoYXNJdGVtczsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9u
SXRlbS5lbmFibGVkID0gaGFzSXRlbXM7Ci0gICAgfQotCi0gICAgX3Nob3dHcmlkQnV0dG9uQ2xp
Y2tlZChldmVudCkKLSAgICB7Ci0gICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFs
dWUgPSAhdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7Ci0gICAg
fQotCi0gICAgX3VwZGF0ZVNob3dJbWFnZUdyaWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2hv
d0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJ
bWFnZUdyaWQudmFsdWU7Ci0gICAgfQotCiAgICAgX2NvbnRlbnRWaWV3TW91c2VFbnRlcihldmVu
dCkKICAgICB7CiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQo
ZXZlbnQudGFyZ2V0KTsKQEAgLTMwMSw4ICsyNjIsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxl
YwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5lbGVtZW50KTsKICAg
ICAgICAgfQogCi0gICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAgICAgICAgbGV0IHJl
Y29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGlu
ZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOworICAgICAg
ICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsi
cmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgV0kuUmVjb3JkaW5nLmRpc3BsYXlO
YW1lRm9yUmVjb3JkaW5nVHlwZShyZWNvcmRpbmcudHlwZSksIHJlY29yZGluZyk7CiAgICAgICAg
IHJlY29yZGluZ1RyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5f
c2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1l
bnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwppbmRleCBjYjViOTBkNDJk
MWQ2MGJjNTg1YmQzYWIxMTVkZDBjMjNlYWIyNDFlLi42MDNmNWFlYTQ3ZWIyYjMwNjhmNGI1Njlh
ODljOGRmYjljOTNlNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCkBAIC0yMzcs
MTAgKzIzNyw4IEBAIFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQ
YW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmFyUGFuCiAKICAgICBjYW5TaG93UmVwcmVz
ZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgewotICAgICAgICBpZiAocmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVybiBzdXBlci5jYW5TaG93UmVwcmVzZW50ZWRP
YmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5DYW52YXMKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
VGFiQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4OWRhYjVlZjk5NzlkNjJiODExNTk4OWE5MTY0MDQxM2M3MmE4Y2RjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcworKysgL2Rldi9u
dWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0uY29udGVudC12aWV3LnRhYi5jYW52
YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0gICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwotfQotCi0uY29udGVu
dC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMt
MmQgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKLX0K
LQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52
YXM6bWF0Y2hlcygud2ViZ2wsIC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24gewot
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKLX0KLQotLmNvbnRlbnQt
dmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNv
biB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKLX0KLQotLmNv
bnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFkZXItcHJv
Z3JhbSA+IC5pY29uIHsKLSAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1
bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKLX0K
LQotQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZp
ZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5p
Y29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAlKTsKLSAgICB9Ci0KLSAgICAuY29udGVu
dC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcyAuaWNvbiwK
LSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJl
Y29yZGluZyA+IC5pY29uIHsKLSAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKLSAgICB9Ci19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2ZTFkYmU0ODAxZTU1N2JjN2MyMGU1MmVjNzdjODA5OTlkNTZhOGQ1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMjk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5DYW52YXNUYWJDb250ZW50Vmll
dyA9IGNsYXNzIENhbnZhc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJU
YWJDb250ZW50VmlldwotewotICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQotICAg
IHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXJlcHJlc2VudGVkT2JqZWN0IHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKTsKLQotICAgICAgICBsZXQgdGFiQmFySXRl
bSA9IFdJLkdlbmVyYWxUYWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkNhbnZhc1RhYkNvbnRlbnRW
aWV3LnRhYkluZm8oKSk7Ci0KLSAgICAgICAgY29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENv
bnN0cnVjdG9yID0gV0kuQ2FudmFzU2lkZWJhclBhbmVsOwotICAgICAgICBjb25zdCBkZXRhaWxz
U2lkZWJhclBhbmVsQ29uc3RydWN0b3JzID0gW1dJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGVi
YXJQYW5lbCwgV0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5DYW52YXNE
ZXRhaWxzU2lkZWJhclBhbmVsXTsKLSAgICAgICAgY29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0g
dHJ1ZTsKLSAgICAgICAgc3VwZXIoImNhbnZhcyIsIFsiY2FudmFzIl0sIHRhYkJhckl0ZW0sIG5h
dmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0
cnVjdG9ycywgZGlzYWJsZUJhY2tGb3J3YXJkKTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xs
ZWN0aW9uID0gbmV3IFdJLkNhbnZhc0NvbGxlY3Rpb247Ci0KLSAgICAgICAgdGhpcy5fY2FudmFz
VHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmU7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1Ry
ZWVPdXRsaW5lLmFsbG93c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2Nh
bnZhc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5n
ZSwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCA9IG5ldyBXSS5H
ZW5lcmFsVHJlZUVsZW1lbnQoImNhbnZhcy1vdmVydmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmll
dyIpLCBudWxsLCB0aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgdGhpcy5fY2FudmFz
VHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudCk7Ci0KLSAg
ICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJl
ZUVsZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSwgV0kuUmVjb3JkaW5nQ29s
bGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRl
biA9IHRydWU7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3JlY29y
ZFNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9y
dGN1dC5LZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0
aGlzLl9yZWNvcmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0g
ICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICB0
aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQo
V0kuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5L
ZXkuU3BhY2UsIHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9y
ZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxz
ZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRy
dWU7Ci0KLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKLSAgICB9Ci0KLSAgICBz
dGF0aWMgdGFiSW5mbygpCi0gICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgaW1h
Z2U6ICJJbWFnZXMvQ2FudmFzLnN2ZyIsCi0gICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJpbmco
IkNhbnZhcyIpLAotICAgICAgICB9OwotICAgIH0KLQotICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52
YXMiKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVz
ZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fY2FudmFzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0KTsK
LSAgICB9Ci0KLSAgICBnZXQgdHlwZSgpCi0gICAgewotICAgICAgICByZXR1cm4gV0kuQ2FudmFz
VGFiQ29udGVudFZpZXcuVHlwZTsKLSAgICB9Ci0KLSAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRl
bnRCcm93c2VyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGdl
dCBtYW5hZ2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCgpCi0gICAgewotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0KLSAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXMKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQ2FudmFzQ29sbGVjdGlvbgotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5SZWNvcmRpbmcKLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbTsKLSAgICB9Ci0KLSAgICBzaG93bigpCi0gICAgewot
ICAgICAgICBzdXBlci5zaG93bigpOwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRp
c2FibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQu
ZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMuY29udGVudEJyb3dzZXIuY3Vy
cmVudENvbnRlbnRWaWV3KQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3Qo
dGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgfQotCi0gICAgaGlkZGVuKCkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAgdGhp
cy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAg
c3VwZXIuaGlkZGVuKCk7Ci0gICAgfQotCi0gICAgY2xvc2VkKCkKLSAgICB7Ci0gICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIuZGlzYWJsZSgpOwotCi0gICAgICAgIHN1cGVyLmNsb3NlZCgpOwotICAg
IH0KLQotICAgIHJlc3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQotICAgIHsKLSAgICAgICAg
Ly8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlz
IGNvbXBsZXRlLgotICAgIH0KLQotICAgIHNhdmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKLSAgICB7
Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTc3NjA2PiBpcyBjb21wbGV0ZS4KLSAgICB9Ci0KLSAgICBhc3luYyBoYW5kbGVGaWxlRHJvcChm
aWxlcykKLSAgICB7Ci0gICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmls
ZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7Ci0g
ICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICBhdHRhY2hlZCgpCi0gICAgewotICAgICAg
ICBzdXBlci5hdHRhY2hlZCgpOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB0aGlzLl9oYW5kbGVD
YW52YXNBZGRlZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIHRoaXMuX2hhbmRsZUNh
bnZhc1JlbW92ZWQsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxl
UmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotICAgICAgICBXSS5DYW52YXMuYWRkRXZl
bnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxl
UmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOwotCi0gICAgICAgIGxldCBjYW52YXNlcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFzIG9m
IHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgIGlmICghY2FudmFzZXMuaW5j
bHVkZXMoY2FudmFzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFz
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBjYW52YXNlcykgewot
ICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmhhcyhjYW52YXMpKQotICAg
ICAgICAgICAgICAgIHRoaXMuX2FkZENhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAg
ICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRp
bmdzKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHByZXNz
U2hvd1JlY29yZGluZzogdHJ1ZX0pOwotICAgIH0KLQotICAgIGRldGFjaGVkKCkKLSAgICB7Ci0g
ICAgICAgIFdJLkNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwot
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwg
dGhpcyk7Ci0KLSAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2
YXRlCi0KLSAgICBfYWRkQ2FudmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIHRoaXMuX292ZXJ2
aWV3VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZh
cykpOwotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLmFkZChjYW52YXMpOwotCi0gICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6
IHRydWUsCi0gICAgICAgIH07Ci0KLSAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZh
cy5yZWNvcmRpbmdDb2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJl
Y29yZGluZywgb3B0aW9ucyk7Ci0gICAgfQotCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCi0g
ICAgewotICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5m
aW5kVHJlZUVsZW1lbnQoY2FudmFzKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1l
bnQsICJNaXNzaW5nIHRyZWUgZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7Ci0KLSAgICAg
ICAgY29uc3Qgc3VwcHJlc3NOb3RpZmljYXRpb24gPSB0cnVlOwotICAgICAgICB0cmVlRWxlbWVu
dC5kZXNlbGVjdChzdXBwcmVzc05vdGlmaWNhdGlvbik7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3
VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2Nh
bnZhc0NvbGxlY3Rpb24ucmVtb3ZlKGNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IGN1cnJlbnRDb250
ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAg
ICBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcp
Ci0gICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QodGhpcy5fY2FudmFzQ29sbGVj
dGlvbik7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJ
LlJlY29yZGluZ0NvbnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhj
dXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQotICAgICAgICAgICAgdGhpcy5j
b250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRWaWV3
KCk7Ci0KLSAgICAgICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRp
b25TaWRlYmFyUGFuZWw7Ci0gICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGluc3Rh
bmNlb2YgV0kuQ2FudmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudmlz
aWJsZSkKLSAgICAgICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVwcmVzZW50
ZWRPYmplY3RzKCk7Ci0KLSAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsK
LSAgICB9Ci0KLSAgICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9KQotICAg
IHsKLSAgICAgICAgaWYgKCFyZWNvcmRpbmcuc291cmNlKSB7Ci0gICAgICAgICAgICBjb25zdCBz
dWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBu
ZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5
TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29y
ZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMuX3NhdmVk
UmVjb3JkaW5nc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsK
LSAgICAgICAgfQotCi0gICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcp
Ci0gICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOwotICAg
IH0KLQotICAgIF9oYW5kbGVDYW52YXNBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X2FkZENhbnZhcyhldmVudC5kYXRhLmNhbnZhcyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNhbnZh
c1JlbW92ZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQu
ZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAgIF9jYW52YXNUcmVlT3V0bGluZVNlbGVjdGlvbkRp
ZENoYW5nZShldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlz
Ll9jYW52YXNUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAoIXNl
bGVjdGVkRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVwcmVz
ZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAg
IGlmICghdGhpcy5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpKSB7
Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgcmVwcmVzZW50
ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRPYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QpOwotICAgIH0KLQotICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZChldmVu
dCkKLSAgICB7Ci0gICAgICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXIsIGltcG9y
dGVkfSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIGxldCBvcHRpb25zID0ge307Ci0KLSAgICAgICAgLy8gQWx3YXlz
IHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5ncy4KLSAgICAgICAgaWYgKHJlY29yZGluZy5zb3VyY2Ug
fHwgIWltcG9ydGVkKQotICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcg
PSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2Vu
dGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpOwotCi0gICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhy
ZWNvcmRpbmcsIG9wdGlvbnMpOwotICAgIH0KLQotICAgIF9oYW5kbGVTcGFjZShldmVudCkKLSAg
ICB7Ci0gICAgICAgIGlmIChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxkKGV2ZW50KSkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvblNpZGVi
YXJQYW5lbCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgY2FudmFzID0gdGhp
cy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNhbnZhczsKLSAgICAgICAgaWYgKCFjYW52YXMpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRpbmdBY3RpdmUp
Ci0gICAgICAgICAgICBjYW52YXMuc3RvcFJlY29yZGluZygpOwotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIGxldCBzaW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgICAg
ICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICB9Ci19OwotCi1XSS5DYW52YXNUYWJDb250
ZW50Vmlldy5UeXBlID0gImNhbnZhcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LmNzcwppbmRleCBmZTMzZTdhY2Q5ZjE2MWIyY2MwY2U3MWNkNTI0YTQ5MWFkZDMzYzJiLi41Y2U4
ZGIwZjMwOGRkOTg5ODRiMzFiYjk0Y2M1Zjc5YzM5NWMyZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcu
Y3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxl
Y3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTMzLDE0ICszMywxNyBAQAogICAgIGZsZXgtZ3Jvdzog
MTsKIH0KIAotLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcgewot
ICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ci19Ci0KLS5jb250
ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsKLSAgICBvdXRs
aW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCi19Ci0KIC5jb250ZW50LXZpZXcu
Y29sbGVjdGlvbiA+IC5jb250ZW50LXZpZXdbaGlkZGVuXSB7CiAgICAgZGlzcGxheTogbm9uZTsK
IH0KKworLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2Fn
ZS10ZXh0LXZpZXcpIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtZGlyZWN0aW9uOiBj
b2x1bW47CisgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNl
bnRlcjsKKyAgICB3aWR0aDogMTAwJTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9u
dC1zaXplOiAxM3B4OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRleCAwNTQ3NDE2ODFjODE4
YmU1YmNhYTVkNmZmMTlkNTM3MjliN2IzODY2Li41MDVhNGE3YmRlNDU1MjNiMzBkYTRmNmJjYTc3
YjRkOGNjZDEwNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0y
OCw3ICsyOCw3IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgY29uc3RydWN0b3IoY29sbGVj
dGlvbiwgY29udGVudFZpZXdDb25zdHJ1Y3RvciwgY29udGVudFBsYWNlaG9sZGVyKQogICAgIHsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY29sbGVjdGlvbiBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rp
b24pOwotICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlld0NvbnN0cnVjdG9yIGluc3Rh
bmNlb2YgV0kuQ29udGVudFZpZXcpOworICAgICAgICBjb25zb2xlLmFzc2VydCghY29udGVudFZp
ZXdDb25zdHJ1Y3RvciB8fCBjb250ZW50Vmlld0NvbnN0cnVjdG9yLnByb3RvdHlwZSBpbnN0YW5j
ZW9mIFdJLkNvbnRlbnRWaWV3KTsKIAogICAgICAgICBzdXBlcihjb2xsZWN0aW9uKTsKIApAQCAt
MzgsNyArMzgsNiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9u
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9jb250ZW50
UGxhY2Vob2xkZXJFbGVtZW50ID0gbnVsbDsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb25z
dHJ1Y3RvciA9IGNvbnRlbnRWaWV3Q29uc3RydWN0b3I7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRW
aWV3TWFwID0gbmV3IE1hcDsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAgPSBuZXcgV2Vh
a01hcDsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gbnVsbDsKICAgICAgICAgdGhpcy5f
c2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOwogICAgIH0KQEAgLTgzLDE5ICs4MiwyNSBAQCBXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsKICAg
ICB9CiAKLSAgICBzZXRTZWxlY3RlZEl0ZW0oaXRlbSkKKyAgICBnZXQgc2VsZWN0ZWRJdGVtKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07CisgICAgfQorCisgICAg
c2V0IHNlbGVjdGVkSXRlbShpdGVtKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy5fc2VsZWN0aW9uRW5hYmxlZCwgIkF0dGVtcHRlZCB0byBzZXQgc2VsZWN0ZWQgaXRlbSB3aGVu
IHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4iKTsKICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3Rpb25F
bmFibGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBjb250ZW50VmlldyA9
IHRoaXMuX2NvbnRlbnRWaWV3TWFwLmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
Y29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRldCB2aWV3IGZvciBpdGVtLiIsIGl0ZW0pOwotICAg
ICAgICBpZiAoIWNvbnRlbnRWaWV3KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIHRo
aXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCgpOworCisgICAgICAgIGlmIChpdGVtKSB7CisgICAgICAgICAgICBs
ZXQgY29udGVudFZpZXcgPSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7CisgICAgICAg
ICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldywgIk1pc3NpbmcgY29udGVudCB2aWV3IGZv
ciBpdGVtLiIsIGl0ZW0pOworICAgICAgICAgICAgaWYgKGNvbnRlbnRWaWV3KQorICAgICAgICAg
ICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBAIC0xMjAsMjAgKzEyNSw5IEBAIFdJ
LkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gbmV3IHRoaXMu
X2NvbnRlbnRWaWV3Q29uc3RydWN0b3IoaXRlbSwgdGhpcy5jb250ZW50Vmlld0NvbnN0cnVjdG9y
T3B0aW9ucyk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3IGluc3RhbmNlb2Yg
V0kuQ29udGVudFZpZXcpOwotCi0gICAgICAgIGxldCBoYW5kbGVDbGljayA9IChldmVudCkgPT4g
ewotICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlv
bkVuYWJsZWQpCi0gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVtKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRl
bSk7Ci0gICAgICAgIH07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LnJlcHJl
c2VudGVkT2JqZWN0ID09PSBpdGVtKTsKIAogICAgICAgICB0aGlzLl9jb250ZW50Vmlld01hcC5z
ZXQoaXRlbSwgY29udGVudFZpZXcpOwotICAgICAgICB0aGlzLl9oYW5kbGVDbGlja01hcC5zZXQo
aXRlbSwgaGFuZGxlQ2xpY2spOwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgaGFuZGxlQ2xpY2spOwogCiAgICAgICAgIHRoaXMuYWRkU3Vidmll
dyhjb250ZW50Vmlldyk7CiAgICAgICAgIHRoaXMuY29udGVudFZpZXdBZGRlZChjb250ZW50Vmll
dyk7CkBAIC0xNjksMTQgKzE2Myw2IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAg
Y29udGVudFZpZXcucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAotICAg
ICAgICBsZXQgaGFuZGxlQ2xpY2sgPSB0aGlzLl9oYW5kbGVDbGlja01hcC5nZXQoaXRlbSk7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGhhbmRsZUNsaWNrKTsKLQotICAgICAgICBpZiAoaGFuZGxl
Q2xpY2spIHsKLSAgICAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCBoYW5kbGVDbGljayk7Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlj
a01hcC5kZWxldGUoaXRlbSk7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoIXRoaXMuc3Vidmll
d3MubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVyKCk7CiAg
ICAgfQpAQCAtMjAwLDYgKzE4Niw4IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAg
ICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCA9IHRoaXMuX2NvbnRlbnRQbGFj
ZWhvbGRlcjsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgicGxhY2Vob2xkZXIiKTsKKwogICAgICAgICBpZiAoIXRoaXMu
X2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQucGFyZW50Tm9kZSkKICAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50KTsKICAg
ICB9CkBAIC0yMTIsMTAgKzIwMCwxMSBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFz
cyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgaW5p
dGlhbExheW91dCgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
c2l6ZSB8fCAhdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikgeworICAgICAgICBpZiAodGhp
cy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcikKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQodGhpcykpOworCisg
ICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlzLl9jb250ZW50
Vmlld0NvbnN0cnVjdG9yKQogICAgICAgICAgICAgdGhpcy5zaG93Q29udGVudFBsYWNlaG9sZGVy
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBhdHRhY2hl
ZCgpCkBAIC0yOTIsNiArMjgxLDMwIEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNz
IENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAg
ICBzZWxlY3RlZENvbnRlbnRWaWV3LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsK
ICAgICAgICAgfQogCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNv
bGxlY3Rpb25Db250ZW50Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2VkKTsKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxl
bWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKTsKICAgICB9CisKKyAgICBfaGFuZGxl
Q2xpY2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2
ZW50LmN0cmxLZXkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgW2l0
ZW0sIGNvbnRlbnRWaWV3XSBvZiB0aGlzLl9jb250ZW50Vmlld01hcCkgeworICAgICAgICAgICAg
aWYgKGNvbnRlbnRWaWV3LmVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgeworICAgICAg
ICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlz
Ll9zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShudWxsKTsK
KyAgICB9Cit9OworCitXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQgPSB7CisgICAgU2Vs
ZWN0ZWRJdGVtQ2hhbmdlZDogImNvbGxlY3Rpb24tY29udGVudC12aWV3LXNlbGVjdGVkLWl0ZW0t
Y2hhbmdlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcwppbmRleCBkZjkxMmRkNTZmYTA3ZGY5NDhmMGQ3
ZjdhZjBkN2M2ZDFiNzlhMmY2Li4yOTZjMmE1NDIzYTBmNjkxZWFjN2QyZDBlOTM2MDBmNTE1NGYw
ZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db250ZW50Vmlldy5qcwpAQCAtNjAsOSArNjAsNiBAQCBXSS5Db250ZW50VmlldyA9
IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJ
LkNhbnZhc0NvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAK
LSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVj
dGlvbikKLSAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwotCiAgICAgICAgIGlmIChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAgICBy
ZXR1cm4gbmV3IFdJLlNoYWRlclByb2dyYW1Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwg
ZXh0cmFBcmd1bWVudHMpOwogCkBAIC0xODIsNiArMTc5LDkgQEAgV0kuQ29udGVudFZpZXcgPSBj
bGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXAgfHwgcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBu
ZXcgV0kuQXVkaXRUZXN0R3JvdXBDb250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFB
cmd1bWVudHMpOwogCisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LkFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQW5pbWF0aW9uQ29udGVudFZp
ZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKKwogICAgICAgICBpZiAocmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0
dXJuIG5ldyBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJh
QXJndW1lbnRzKTsKIApAQCAtMjczLDggKzI3Myw2IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3Mg
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5UaW1lbGluZVJlY29yZGluZykKQEAgLTMxOCwxMCArMzE2LDE0IEBAIFdJLkNv
bnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2UgfHwgcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cAogICAgICAgICAgICAgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0IHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHR5cGVvZiByZXByZXNlbnRlZE9iamVjdCA9PT0g
InN0cmluZyIgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0W1dJLkNvbnRl
bnRWaWV3LmlzVmlld2FibGVTeW1ib2xdKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTUxMiw0ICs1MTQsNSBAQCBXSS5Db250ZW50
Vmlldy5FdmVudCA9IHsKICAgICBOYXZpZ2F0aW9uSXRlbXNEaWRDaGFuZ2U6ICJjb250ZW50LXZp
ZXctbmF2aWdhdGlvbi1pdGVtcy1kaWQtY2hhbmdlIgogfTsKIAorV0kuQ29udGVudFZpZXcuaXNW
aWV3YWJsZVN5bWJvbCA9IFN5bWJvbCgiaXMtdmlld2FibGUiKTsKIFdJLkNvbnRlbnRWaWV3LkNv
bnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3RTeW1ib2wgPSBTeW1ib2woImNvbnRlbnQtdmll
dy1mb3ItcmVwcmVzZW50ZWQtb2JqZWN0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2lt
cGxlUm93LmpzCmluZGV4IGU1YTVmZWMxZWFiYjVjMDk3MmNmYTA1M2Q1MzRjMzYwMDllMWI3NmYu
LjdlZDBjODJlYjNiNzFlZWI2YmJiMWY5N2U5NzkwZjZiYmJjNTU2MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2lt
cGxlUm93LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RldGFpbHNTZWN0aW9uU2ltcGxlUm93LmpzCkBAIC05Niw3ICs5Niw3IEBAIFdJLkRldGFpbHNT
ZWN0aW9uU2ltcGxlUm93ID0gY2xhc3MgRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cgZXh0ZW5kcyBX
SS5EZXRhaWxzU2VjCiAgICAgewogICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8ICIiOwog
Ci0gICAgICAgIGlmICh0aGlzLl92YWx1ZSkgeworICAgICAgICBpZiAodGhpcy5fdmFsdWUgfHwg
dGhpcy5fdmFsdWUgPT09IDApIHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3Qu
cmVtb3ZlKFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93LkVtcHR5U3R5bGVDbGFzc05hbWUpOwog
CiAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaGFzIHNwYWNlIGNoYXJhY3RlcnMgdGhhdCBj
YXVzZSB3b3JkIHdyYXBwaW5nIHRoZW4gd2UgZG9uJ3QgbmVlZCB0aGUgZGF0YSBjbGFzcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNkNjYzZTZmMGYxNzJmY2UwOTI2N2Y4ZWMxNmFlYThkZDdlYmE1NDEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29u
dGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIo
LS1iYWNrZ3JvdW5kLWNvbG9yLWNvbnRlbnQpOworICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKKyAg
ICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0KTsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgPiBzZWN0aW9uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVy
dmlldyA+IHNlY3Rpb246bm90KDpmaXJzdC1jaGlsZCkgeworICAgIG1hcmdpbi10b3A6IDIwcHg7
Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRl
ciB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIHBv
c2l0aW9uOiBzdGlja3k7CisgICAgdG9wOiAwOworICAgIHotaW5kZXg6IDE7CisgICAgbWluLWhl
aWdodDogdmFyKC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0KTsKKyAgICAtd2Via2l0LXBhZGRpbmct
c3RhcnQ6IDhweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk3JSk7CisgICAg
Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250
ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkg
PiAuaGVhZGVyIHsKKyAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9y
KTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVh
ZGVyID4gaDEgeworICAgIG1hcmdpbjogMDsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1v
dmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBmbGV4
LWdyb3c6IDE7CisgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKKyAgICBib3JkZXItYm90
dG9tOiBub25lOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0
b3A6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgYm90dG9tOiAwOworICAgIGxlZnQ6IDA7Cit9CisK
K0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAl
LCAxNCUpOworICAgIH0KKworICAgIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBz
ZWN0aW9uID4gLmhlYWRlciB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwg
MjElKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50
Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMGMwYWUwMTE3NWQ5N2FkZWIyNGRjMzBjMGIzNTA3N2NhYmEy
OGU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMjA3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgR3Jh
cGhpY3NPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKK3sKKyAgICBj
b25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJncmFwaGljcy1vdmVydmlldyIpOworCisgICAgICAgIHRoaXMu
X2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
KCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9y
dC5zdmciLCAxNSwgMTUpOworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRl
bS50b29sdGlwID0gV0kuVUlTdHJpbmcoIkltcG9ydCIpOworICAgICAgICB0aGlzLl9pbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LlN0eWxlLkltYWdlQW5kVGV4dDsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlj
a2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMp
OworCisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJ
bWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCwgdGhpcyk7
CisKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5B
Y3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hv
dyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3Jp
ZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKKyAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNl
dHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5F
dmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwor
CisgICAgICAgIHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBuZXcgV0kuQ2FudmFz
T3ZlcnZpZXdDb250ZW50VmlldyhXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwor
CisgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmlld3MgPSBbXTsKKyAgICB9CisKKyAgICAvLyBQdWJs
aWMKKworICAgIGdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX292ZXJ2aWV3Vmlld3MuZmxhdE1hcCgoc3VidmlldykgPT4gc3Vi
dmlldy5zdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMpOworICAgIH0KKworICAgIGdldCBu
YXZpZ2F0aW9uSXRlbXMoKQorICAgIHsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25JdGVtcyA9IFtd
OworICAgICAgICBpZiAoIVdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAg
ICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaEFsbCh0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3Lm5hdmlnYXRpb25JdGVtcyk7CisgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaChu
ZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgfQorICAgICAgICBuYXZpZ2F0
aW9uSXRlbXMucHVzaCh0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSwgbmV3IFdJLkRp
dmlkZXJOYXZpZ2F0aW9uSXRlbSwgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLCB0
aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgcmV0dXJuIG5hdmln
YXRpb25JdGVtczsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGF0dGFjaGVkKCkK
KyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAgV0kuc2V0dGluZ3Mu
c2hvd0ltYWdlR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwg
dGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAg
dGhpcy5faGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKCk7CisgICAgfQorCisgICAg
ZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hs
aWdodCgpOworCisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdy
aWRTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAg
ICB9CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxM
YXlvdXQoKTsKKworICAgICAgICBpZiAoV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQpIHsK
KyAgICAgICAgICAgIGxldCBjcmVhdGVTZWN0aW9uID0gKGlkZW50aWZpZXIsIHRpdGxlLCBvdmVy
dmlld1ZpZXcpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChvdmVydmlld1Zp
ZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7CisKKyAgICAgICAgICAgICAgICBsZXQgc2Vj
dGlvbkVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic2VjdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBzZWN0aW9uRWxlbWVudC5jbGFzc05h
bWUgPSBpZGVudGlmaWVyOworCisgICAgICAgICAgICAgICAgbGV0IGhlYWRlckVsZW1lbnQgPSBz
ZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7
CisgICAgICAgICAgICAgICAgaGVhZGVyRWxlbWVudC5jbGFzc05hbWUgPSAiaGVhZGVyIjsKKwor
ICAgICAgICAgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSBoZWFkZXJFbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIikpOworICAgICAgICAgICAgICAgIHRpdGxl
RWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOworCisgICAgICAgICAgICAgICAgbGV0IG5hdmln
YXRpb25JdGVtcyA9IG92ZXJ2aWV3Vmlldy5uYXZpZ2F0aW9uSXRlbXM7CisgICAgICAgICAgICAg
ICAgaWYgKG5hdmlnYXRpb25JdGVtcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IG5hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdhdGlvbkJhcihkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJuYXYiKSwgbmF2aWdhdGlvbkl0ZW1zKTsKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVy
RWxlbWVudC5hcHBlbmRDaGlsZChuYXZpZ2F0aW9uQmFyLmVsZW1lbnQpOworICAgICAgICAgICAg
ICAgICAgICB0aGlzLmFkZFN1YnZpZXcobmF2aWdhdGlvbkJhcik7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgbGV0IGNvbnRlbnRFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAg
ICAgIGNvbnRlbnRFbGVtZW50LmNsYXNzTmFtZSA9ICJjb250ZW50IjsKKworICAgICAgICAgICAg
ICAgIGNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKG92ZXJ2aWV3Vmlldy5lbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcob3ZlcnZpZXdWaWV3KTsKKworICAgICAgICAg
ICAgICAgIG92ZXJ2aWV3Vmlldy5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb25Db250ZW50
Vmlldy5FdmVudC5TZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzLl9oYW5kbGVPdmVydmlld1ZpZXdT
ZWxlY3RlZEl0ZW1DaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcu
YWRkRXZlbnRMaXN0ZW5lcihXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNl
bnRlZE9iamVjdHNEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3Vmlld1N1cHBsZW1lbnRh
bFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSwgdGhpcyk7CisgICAgICAgICAgICAgICAgdGhp
cy5fb3ZlcnZpZXdWaWV3cy5wdXNoKG92ZXJ2aWV3Vmlldyk7CisgICAgICAgICAgICB9OworCisg
ICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjYW52YXMiLCBXSS5VSVN0cmluZygiQ2FudmFzZXMi
KSwgdGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk7CisKKyAgICAgICAgICAgIGxldCBh
bmltYXRpb25Db2xsZWN0aW9uID0gV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0
aW9uOworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigid2ViLWFuaW1hdGlvbiIsIFdJLlVJU3Ry
aW5nKCJXZWIgQW5pbWF0aW9ucyIpLCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRW
aWV3KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uKSkpOworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigi
Y3NzLWFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9ucyIpLCBuZXcgV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uKSkpOworICAg
ICAgICAgICAgY3JlYXRlU2VjdGlvbigiY3NzLXRyYW5zaXRpb24iLCBXSS5VSVN0cmluZygiQ1NT
IFRyYW5zaXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5p
bWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24u
VHlwZS5DU1NUcmFuc2l0aW9uKSkpOworCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fY2FudmFzT3ZlcnZp
ZXdDb250ZW50Vmlldyk7CisKKyAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9IG5ldyBXSS5Ecm9w
Wm9uZVZpZXcodGhpcyk7CisgICAgICAgIGRyb3Bab25lVmlldy50ZXh0ID0gV0kuVUlTdHJpbmco
IkltcG9ydCBSZWNvcmRpbmciKTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRhcmdldEVsZW1lbnQg
PSB0aGlzLmVsZW1lbnQ7CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyhkcm9wWm9uZVZpZXcpOwor
ICAgIH0KKworICAgIC8vIERyb3Bab25lVmlldyBkZWxlZ2F0ZQorCisgICAgZHJvcFpvbmVTaG91
bGRBcHBlYXJGb3JEcmFnRXZlbnQoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmlsZXMiKTsKKyAgICB9CisK
KyAgICBkcm9wWm9uZUhhbmRsZURyb3AoZHJvcFpvbmUsIGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzOworICAgICAgICBpZiAoZmlsZXMu
bGVuZ3RoICE9PSAxKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYmVlcCgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV0kuRmlsZVV0aWxp
dGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNz
SlNPTihyZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlUmVm
cmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3
IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpCisgICAgICAgICAgICBvdmVydmlld1ZpZXcuaGFuZGxl
UmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlU2hvd0dyaWRCdXR0
b25DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3Jp
ZC52YWx1ZSA9ICF0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZDsK
KyAgICB9CisKKyAgICBfaGFuZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0g
ISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOworICAgIH0KKworICAgIF9oYW5kbGVJ
bXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisgICAgeworICAgICAgICBX
SS5GaWxlVXRpbGl0aWVzLmltcG9ydEpTT04oKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5w
cm9jZXNzSlNPTihyZXN1bHQpLCB7bXVsdGlwbGU6IHRydWV9KTsKKyAgICB9CisKKyAgICBfaGFu
ZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAg
IGlmICghZXZlbnQudGFyZ2V0LnNlbGVjdGVkSXRlbSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykgewor
ICAgICAgICAgICAgaWYgKG92ZXJ2aWV3VmlldyAhPT0gZXZlbnQudGFyZ2V0ICYmIG92ZXJ2aWV3
Vmlldy5zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5zZWxl
Y3RlZEl0ZW0gPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3
Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZShldm5ldCkKKyAgICB7
CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNvbnRlbnRWaWV3LkV2
ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk7CisgICAgfQorCisg
ICAgX2hhbmRsZUNsaWNrKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAh
PT0gdGhpcy5lbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0
IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKSB7CisgICAgICAgICAgICBpZiAo
b3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdW
aWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDA3NWMwMzc1MDdhMmVj
NzdhMzUxZmRkMzg4YTU4ZjRhMmE4ODFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNz
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24geworICAgIGNv
bnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKK30KKworLmNvbnRlbnQt
dmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy5jYW52YXMt
MmQgLmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzMkQuc3ZnKTsKK30K
KworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNh
bnZhczptYXRjaGVzKC53ZWJnbCwgLndlYmdsMiwgLndlYmdwdSwgLndlYm1ldGFsKSAuaWNvbiB7
CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMzRC5zdmcpOworfQorCisuY29udGVu
dC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4g
Lmljb24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7Cit9CisK
Ky5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5zaGFk
ZXItcHJvZ3JhbSA+IC5pY29uIHsKKyAgICBjb250ZW50OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdl
cy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4
KTsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5jb250
ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5ncmFwaGljcy1v
dmVydmlldyAuaWNvbiB7CisgICAgICAgIGZpbHRlcjogaW52ZXJ0KDYwJSk7CisgICAgfQorCisg
ICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNh
bnZhcyAuaWNvbiwKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24geworICAgICAgICBmaWx0ZXI6IGludmVydCgp
OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJlNmQ4NTcyMjY3OTgzMGU0YTY1NzcxOTdkOWE5Mjg1MzgyNzAzZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGlj
c1RhYkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuR3Jh
cGhpY3NUYWJDb250ZW50VmlldyA9IGNsYXNzIEdyYXBoaWNzVGFiQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IoKQor
ICAgIHsKKyAgICAgICAgbGV0IHRhYkJhckl0ZW0gPSBXSS5HZW5lcmFsVGFiQmFySXRlbS5mcm9t
VGFiSW5mbyhXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnRhYkluZm8oKSk7CisKKyAgICAgICAg
Y29uc3QgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yID0gV0kuQ2FudmFzU2lkZWJh
clBhbmVsOworICAgICAgICBjb25zdCBkZXRhaWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzID0g
WworICAgICAgICAgICAgV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLAorICAg
ICAgICAgICAgV0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAg
ICAgV0kuQ2FudmFzRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLkFuaW1hdGlv
bkRldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgIF07CisgICAgICAgIGNvbnN0IGRpc2FibGVC
YWNrRm9yd2FyZCA9IHRydWU7CisgICAgICAgIHN1cGVyKCJncmFwaGljcyIsIFsiZ3JhcGhpY3Mi
XSwgdGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yLCBkZXRhaWxz
U2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCBkaXNhYmxlQmFja0ZvcndhcmQpOworCisgICAgICAg
IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmU7CisgICAgICAg
IHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuYWxsb3dzUmVwZWF0U2VsZWN0aW9uID0gdHJ1ZTsK
KyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRy
ZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5faGFuZGxlT3ZlcnZpZXdU
cmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoImNhbnZhcy1vdmVy
dmlldyIsIFdJLlVJU3RyaW5nKCJPdmVydmlldyIpLCBudWxsLCB7W1dJLkNvbnRlbnRWaWV3Lmlz
Vmlld2FibGVTeW1ib2xdOiB0cnVlfSk7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxp
bmUuYXBwZW5kQ2hpbGQodGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudCk7CisKKyAgICAgICAgdGhp
cy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQgPSBuZXcgV0kuRm9sZGVyVHJlZUVs
ZW1lbnQoV0kuVUlTdHJpbmcoIlNhdmVkIFJlY29yZGluZ3MiKSk7CisgICAgICAgIHRoaXMuX3Nh
dmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRo
aXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRDYW52YXNSZWNv
cmRpbmdzVHJlZUVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0ID0gbmV3
IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2Us
IHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yZWNvcmRTaG9y
dGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3Jl
Y29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLl9yZWNvcmRTaW5n
bGVGcmFtZVNob3J0Y3V0ID0gbmV3IFdJLktleWJvYXJkU2hvcnRjdXQoV0kuS2V5Ym9hcmRTaG9y
dGN1dC5Nb2RpZmllci5TaGlmdCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2UsIHRoaXMu
X2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFt
ZVNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgdGhp
cy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5l
bmFibGUoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdGFiSW5mbygpCisgICAgeworICAgICAgICBy
ZXR1cm4geworICAgICAgICAgICAgaW1hZ2U6ICJJbWFnZXMvR3JhcGhpY3Muc3ZnIiwKKyAgICAg
ICAgICAgIHRpdGxlOiBXSS5VSVN0cmluZygiR3JhcGhpY3MiKSwKKyAgICAgICAgfTsKKyAgICB9
CisKKyAgICBzdGF0aWMgaXNUYWJBbGxvd2VkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJbnNw
ZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQ2FudmFzIikKKyAgICAgICAgICAgIHx8IEluc3BlY3Rv
ckJhY2tlbmQuaGFzRG9tYWluKCJBbmltYXRpb24iKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMK
KworICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3Qp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJl
ZUVsZW1lbnQocmVwcmVzZW50ZWRPYmplY3QpOworICAgIH0KKworICAgIGdldCB0eXBlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGU7CisgICAg
fQorCisgICAgZ2V0IHN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3NlcigpCisgICAgeworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBnZXQgbWFuYWdlc05hdmlnYXRpb25TaWRlYmFy
UGFuZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc2hvd1Jl
cHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpCisgICAgeworICAgICAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKSB7CisgICAg
ICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9vdmVydmll
d0NvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IHN1cGVyLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgY29va2llKTsK
KyAgICB9CisKKyAgICBjYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3Qp
CisgICAgeworICAgICAgICByZXR1cm4gcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5D
YW52YXNDb2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkNhbnZhcworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5SZWNvcmRpbmdDb2xsZWN0aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZworICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtCisgICAgICAgICAg
ICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24K
KyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9u
OworICAgIH0KKworICAgIGNsb3NlZCgpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5h
Z2VyLmRpc2FibGUoKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5kaXNhYmxlKCk7CisKKyAg
ICAgICAgc3VwZXIuY2xvc2VkKCk7CisgICAgfQorCisgICAgcmVzdG9yZVN0YXRlRnJvbUNvb2tp
ZShjb29raWUpCisgICAgeworICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCisgICAgfQorCisgICAgc2F2ZVN0
YXRlVG9Db29raWUoY29va2llKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBv
bmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgorICAgIH0KKwor
ICAgIGFzeW5jIGhhbmRsZUZpbGVEcm9wKGZpbGVzKQorICAgIHsKKyAgICAgICAgYXdhaXQgV0ku
RmlsZVV0aWxpdGllcy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdl
ci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAg
IGF0dGFjaGVkKCkKKyAgICB7CisgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CisKKyAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29s
bGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsK
KyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVt
b3ZlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
SS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRp
bmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLkNhbnZhcy5hZGRFdmVudExpc3Rl
bmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRp
bmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisKKyAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgdGhp
cy5fY2FudmFzZXNUcmVlRWxlbWVudC5jaGlsZHJlbikgeworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IGNoaWxkLnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICAgICAgaWYgKGNhbnZhcyBpbnN0
YW5jZW9mIFdJLkNhbnZhcyAmJiAhV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmhh
cyhjYW52YXMpKQorICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOwor
ICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgY2FudmFzIG9mIFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzQ29sbGVjdGlvbikgeworICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMpKQorICAgICAgICAgICAgICAgIHRoaXMuX2Fk
ZENhbnZhcyhjYW52YXMpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5n
IG9mIFdJLmNhbnZhc01hbmFnZXIuc2F2ZWRSZWNvcmRpbmdzKSB7CisgICAgICAgICAgICBpZiAo
IXRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlY29yZGluZykpCisg
ICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywge3N1cHByZXNzU2hv
d1JlY29yZGluZzogdHJ1ZX0pOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hv
cnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVT
aG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAg
dGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAg
ICAgV0kuQ2FudmFzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGlu
Z1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9w
cGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJl
bW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIHRoaXMuX2hh
bmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVt
b3ZlZCwgdGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7CisKKyAgICAgICAgc3VwZXIu
ZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAg
IHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcgPSBuZXcgV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3OworICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlz
Ll9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBf
YWRkQ2FudmFzKGNhbnZhcykKKyAgICB7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1l
bnQuYXBwZW5kQ2hpbGQobmV3IFdJLkNhbnZhc1RyZWVFbGVtZW50KGNhbnZhcykpOworCisgICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBzdXBwcmVzc1Nob3dSZWNvcmRpbmc6
IHRydWUsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZh
cy5yZWNvcmRpbmdDb2xsZWN0aW9uKQorICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJl
Y29yZGluZywgb3B0aW9ucyk7CisgICAgfQorCisgICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCisg
ICAgeworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5l
LmZpbmRUcmVlRWxlbWVudChjYW52YXMpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxl
bWVudCwgIk1pc3NpbmcgdHJlZSBlbGVtZW50IGZvciBjYW52YXMuIiwgY2FudmFzKTsKKworICAg
ICAgICBjb25zdCBzdXBwcmVzc05vdGlmaWNhdGlvbiA9IHRydWU7CisgICAgICAgIHRyZWVFbGVt
ZW50LmRlc2VsZWN0KHN1cHByZXNzTm90aWZpY2F0aW9uKTsKKyAgICAgICAgdGhpcy5fY2FudmFz
ZXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7CisKKyAgICAgICAgbGV0IGN1
cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3
OworICAgICAgICBpZiAoY3VycmVudENvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29u
dGVudFZpZXcpCisgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAgICAgICAgZWxzZSBpZiAoY3VycmVudENvbnRl
bnRWaWV3IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcgJiYgY2FudmFzLnJlY29y
ZGluZ0NvbGxlY3Rpb24uaGFzKGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCkp
CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnVwZGF0ZUhpZXJhcmNoaWNhbFBhdGhG
b3JDdXJyZW50Q29udGVudFZpZXcoKTsKKworICAgICAgICBsZXQgbmF2aWdhdGlvblNpZGViYXJQ
YW5lbCA9IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbDsKKyAgICAgICAgaWYgKG5hdmlnYXRp
b25TaWRlYmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5DYW52YXNTaWRlYmFyUGFuZWwgJiYgbmF2aWdh
dGlvblNpZGViYXJQYW5lbC52aXNpYmxlKQorICAgICAgICAgICAgbmF2aWdhdGlvblNpZGViYXJQ
YW5lbC51cGRhdGVSZXByZXNlbnRlZE9iamVjdHMoKTsKKworICAgICAgICB0aGlzLnNob3dEZXRh
aWxzU2lkZWJhclBhbmVscygpOworICAgIH0KKworICAgIF9hZGRSZWNvcmRpbmcocmVjb3JkaW5n
LCBvcHRpb25zID0ge30pCisgICAgeworICAgICAgICBpZiAoIXJlY29yZGluZy5zb3VyY2UpIHsK
KyAgICAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKKyAgICAgICAgICAgIGxldCByZWNv
cmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmci
XSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKKyAgICAgICAg
ICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IGZhbHNl
OworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQocmVjb3JkaW5nVHJlZUVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KCFvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZykKKyAgICAgICAgICAgIHRoaXMuc2hvd1Jl
cHJlc2VudGVkT2JqZWN0KHJlY29yZGluZyk7CisgICAgfQorCisgICAgX2hhbmRsZUNhbnZhc0Fk
ZGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGV2ZW50LmRhdGEuaXRl
bSk7CisgICAgfQorCisgICAgX2hhbmRsZUNhbnZhc1JlbW92ZWQoZXZlbnQpCisgICAgeworICAg
ICAgICB0aGlzLl9yZW1vdmVDYW52YXMoZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisKKyAgICBf
aGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKKyAgICB7
CisgICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5l
LnNlbGVjdGVkVHJlZUVsZW1lbnQ7CisgICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHN3aXRjaCAoc2VsZWN0ZWRFbGVtZW50KSB7Cisg
ICAgICAgIGNhc2UgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudDoKKyAgICAgICAgY2FzZSB0aGlz
Ll9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudDoKKyAgICAgICAgICAgIHRoaXMuY29u
dGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHJlcHJlc2VudGVk
T2JqZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBpZiAo
IXRoaXMuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KSkgeworICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJlcHJlc2VudGVkT2Jq
ZWN0LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0
KTsKKyAgICB9CisKKyAgICBfaGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQoZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyLCBpbXBvcnRlZH0g
PSBldmVudC5kYXRhOworICAgICAgICBpZiAoIXJlY29yZGluZykKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OworCisgICAgICAgIC8vIEFsd2F5cyBzaG93
IGltcG9ydGVkIHJlY29yZGluZ3MuCisgICAgICAgIGlmIChyZWNvcmRpbmcuc291cmNlIHx8ICFp
bXBvcnRlZCkKKyAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nID0gIWlu
aXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9i
amVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuUmVjb3JkaW5nKTsKKworICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3Jk
aW5nLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICBfaGFuZGxlU3BhY2UoZXZlbnQpCisgICAgewor
ICAgICAgICBpZiAoV0kuaXNFdmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChldmVudCkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFu
ZWwpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGNhbnZhcyA9IHRoaXMubmF2
aWdhdGlvblNpZGViYXJQYW5lbC5jYW52YXM7CisgICAgICAgIGlmICghY2FudmFzKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5nQWN0aXZlKQorICAg
ICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2ZW50LnNoaWZ0S2V5OworICAgICAgICAgICAgY2Fu
dmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgfQorfTsKKworV0kuR3JhcGhpY3NUYWJDb250ZW50
Vmlldy5UeXBlID0gImdyYXBoaWNzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MKaW5kZXggY2UzMWFmNDYzMzc4NjEzNGIxY2M3Mjc2
YTM0ZDZhNDQ3MThhMmFlMi4uMTBjZDY0YTQ1NTkwOTk1Y2RhNDkwMjkyMWUxYmY5ODE1MDNhZjkx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TWFpbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TWFpbi5jc3MKQEAgLTIwOSwxMiArMjA5LDEyIEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMoLnJpZ2h0
LCAubGVmdCkgI25hdmlnYXRpb24tc2lkZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7CiAgICAg
bWFyZ2luLWJvdHRvbTogMTVweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9u
LWl0ZW0taGVscCB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAgewogICAgIGRpc3BsYXk6IGJsb2Nr
OwogICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmln
YXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAg
PiAubmF2aWdhdGlvbi1iYXIgewogICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgIGhlaWdo
dDogMjBweDsKICAgICBwYWRkaW5nOiAwIDRweDsKQEAgLTIyMiw5ICsyMjIsOSBAQCBib2R5LmRv
Y2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZpZ2F0aW9uLXNpZGViYXIuY29sbGFwc2Vk
ID4gLnJlc2l6ZXIgewogICAgIHZlcnRpY2FsLWFsaWduOiAtM3B4OwogfQogCi0ubWVzc2FnZS10
ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsK
Ky5uYXZpZ2F0aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIHsKICAgICBo
ZWlnaHQ6IDEwMCU7Ci0gICAgcGFkZGluZzogMCA0cHg7CisgICAgcGFkZGluZzogMCA0cHggIWlt
cG9ydGFudDsKICAgICBmb250LXNpemU6IDExcHg7CiAgICAgYm9yZGVyLXJhZGl1czogNHB4Owog
ICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJvcmRlci1jb2xvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50
Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNv
cmRpbmdDb250ZW50Vmlldy5jc3MKaW5kZXggOGQ2MGYyM2YwYjJiZWM3MGQ4YmU4M2QwMjE3YTcw
YWM3NGZkMjM1OC4uMTFmMWRkODJlNTUzNzcwMTkwYjJmZjdlYjhiNjA4ZWVjN2UyOWMyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3Jk
aW5nQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwpAQCAtMjMsMTggKzIzLDE4IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLmNvbnRlbnQtdmlldzpu
b3QoLnRhYikucmVjb3JkaW5nIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nIHsKICAgICBkaXNw
bGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgcGFkZGluZzogMTBw
eDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7CiB9CiAKLS5jb250ZW50
LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciB7CisuY29udGVudC12aWV3LnJlY29y
ZGluZyA+IGhlYWRlciB7CiAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKIH0KIAotLmNvbnRlbnQt
dmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgewor
LmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CiAg
ICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgcGFkZGluZzogNHB4
IDA7CkBAIC00MywzMSArNDMsMzEgQEAKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiB9CiAKLS5j
b250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFp
bmVyID4gKiB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29u
dGFpbmVyID4gKiB7CiAgICAgbWFyZ2luOiA0cHggOHB4OwogfQogCi0uY29udGVudC12aWV3Om5v
dCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IC5zbGlkZXIt
dmFsdWUgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRh
aW5lciA+IC5zbGlkZXItdmFsdWUgewogICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNl
OwogICAgIGZvbnQtZmFtaWx5OiAxMXB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5y
ZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2Vd
IHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIg
PiBpbnB1dFt0eXBlPXJhbmdlXSB7CiAgICAgZmxleDogMTsKICAgICB3aWR0aDogMTAwJTsKIH0K
IAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1j
b250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJh
Y2sgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5l
ciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7CiAg
ICAgaGVpZ2h0OiAycHg7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9y
KTsKICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIp
LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5n
ZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVh
ZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgewogICAgIG1hcmdpbi10b3A6IC02cHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90
KC50YWIpLnJlY29yZGluZyA+IC5wcmV2aWV3LWNvbnRhaW5lciB7CisuY29udGVudC12aWV3LnJl
Y29yZGluZyA+IC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBm
bGV4OiAxOwogICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwpAQCAtNzcsMjcgKzc3LDI3IEBA
CiAgICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlOwogfQogCi0uY29udGVudC12aWV3
Om5vdCgudGFiKS5yZWNvcmRpbmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsKKy5jb250ZW50LXZp
ZXcucmVjb3JkaW5nIDptYXRjaGVzKGltZywgY2FudmFzKSB7CiAgICAgcG9zaXRpb246IGFic29s
dXRlOwogICAgIG1heC13aWR0aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogfQogCi0u
Y29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgY2FudmFzLnBhdGggeworLmNvbnRlbnQt
dmlldy5yZWNvcmRpbmcgY2FudmFzLnBhdGggewogICAgIHotaW5kZXg6IDEwOwogfQogCiBAbWVk
aWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0gICAgLmNvbnRlbnQtdmlldzpub3Qo
LnRhYikucmVjb3JkaW5nIHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyB7CiAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXc6bm90
KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKKyAgICAuY29u
dGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0t
Ym9yZGVyLWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldzpub3Qo
LnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBl
PXJhbmdlXSB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVy
LWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKICAgICAgICAgYmFja2dyb3VuZDogbm9u
ZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50
Vmlldy5jc3MKaW5kZXggM2E5YTlhZWZmMjljNWVmY2Q3NzliYjRkMjkwNDBhYWQ4OWRiZjFkNC4u
MmY5NGJjNzQwOWY0ZDU1NDY2NWNkZTg5YzlmMGY5OWNhZGVmOTcwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9u
Q29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMjMsNiArMjMsMTQg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisuY29udGVudC12
aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nIHsKKyAgICBvdXRs
aW5lOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3
LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyIHsKKyAgICBv
dXRsaW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpCit9CisKIC5yZXNvdXJjZS1j
b2xsZWN0aW9uLWltYWdlLXR5cGUtc2NvcGUtYmFyLmRlZmF1bHQtaXRlbS1zZWxlY3RlZCB7CiAg
ICAgLS1zY29wZS1iYXItdGV4dC1jb2xvci1vdmVycmlkZTogdmFyKC0tdGV4dC1jb2xvcik7CiAg
ICAgLS1zY29wZS1iYXItYmFja2dyb3VuZC1jb2xvci1vdmVycmlkZTogdHJhbnNwYXJlbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCmluZGV4IGM5
NGVjYTc3NzIxNGUzMWRjNWQ4MWU2MTA5MDYwNjNmNzdjNzRmY2MuLmZjMWM2YTJjZDRhYTdkYTE5
NTBjMGEzZDNmZjA2MzQzMmY5N2Q2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0zNSw2ICszNSw4IEBAIFdJLlJlc291cmNlQ29sbGVj
dGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0
ZW5kcyBXCiAKICAgICAgICAgc3VwZXIoY29sbGVjdGlvbiwgY29udGVudFZpZXdDb25zdHJ1Y3Rv
cik7CiAKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInJlc291cmNlLWNvbGxl
Y3Rpb24iKTsKKwogICAgICAgICBpZiAoY29sbGVjdGlvbi5yZXNvdXJjZVR5cGUgPT09IFdJLlJl
c291cmNlLlR5cGUuSW1hZ2UpIHsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1n
cmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmco
IkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJz
LnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xp
Y2tlZCwgdGhpcy5faGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAx
NGMxMTdmYmM3N2NjYzgwNmEwYjc4ZmNmOTNhY2JlZjUzYzU4ZGI1Li4yN2FkYjM5NzcxZTM5NjQz
Y2Q4MjlkYzhhNmQyNGJjNDI4MWE2YTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMjAtMDEt
MjggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGFkZCBpbnN0cnVtZW50YXRpb24gZm9yIHNob3dpbmcgZXhpc3RpbmcgV2ViIEFuaW1h
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTQzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgzMjgwODc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0
Q2hhbmdlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVj
dENoYW5nZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9h
bmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVxdWVzdEVmZmVjdFRhcmdl
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RFZmZl
Y3RUYXJnZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0
aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Fu
aW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRp
ZXMuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlQW5pbWF0aW9uKToKKyAgICAgICAgKGRlc3Ry
b3lBbmltYXRpb25zKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xl
VXRpbGl0aWVzLmFzeW5jIGF3YWl0QW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChJbnNwZWN0
b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBhd2FpdEFuaW1hdGlvbkRl
c3Ryb3llZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxp
dGllcy5hc3luYyBjcmVhdGVBbmltYXRpb24pOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5Bbmlt
YXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgZGVzdHJveUFuaW1hdGlvbnMpOgorCisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMu
anM6CisgICAgICAgIChkZXN0cm95Q2FudmFzZXMpOgorICAgICAgICAoYXdhaXRDYW52YXNBZGRl
ZCk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkNyZWF0ZUNvbnRleHRVdGlsaXRpZXMuaW5pdGlh
bGl6ZVRlc3RTdWl0ZSk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0
cmlidXRlcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jl
c29sdmVDb250ZXh0LTJkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZl
Q29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jl
c29sdmVDb250ZXh0LXdlYmdsMi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVz
b2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWw6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jl
Y29yZGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0
b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNv
dXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qczoKKyAgICAgICAgKHdpbmRvdy5nZXRDYW52YXMp
OgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUt
d2ViZ3B1Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2Vi
Z3B1LXNoYXJlZFZlcnRleEZyYWdtZW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzOgorICAgICAgICAq
IGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmds
LmpzOgorICAgICAgICAoZGVsZXRlQ29udGV4dCk6CisgICAgICAgICh3aGVuUHJvZ3JhbUFkZGVk
KToKKyAgICAgICAgKHdpbmRvdy5pbml0aWFsaXplVGVzdFN1aXRlKToKKyAgICAgICAgKHdpbmRv
dy5hZGRQYXJlbnRDYW52YXNSZW1vdmVkVGVzdENhc2UpOgorCisgICAgICAgICogaW5zcGVjdG9y
L3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBl
Y3RlZC50eHQ6CisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBTa2lwIGlu
c3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbCB1bnRpbCBodHRw
czovL3dlYmtpdC5vcmcvYi8yMDY4OTkgaXMgZml4ZWQuCisKIDIwMjAtMDEtMjggIEphY29iIFVw
aG9mZiAgPGphY29iX3VwaG9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzY292ZXJlZCBzb21l
IGV4cGVjdGVkIHRpbWVvdXRzIG9uIHRoZSB0ZXN0IGhpc3RvcnksIGNoYW5naW5nIGV4cGVjdGF0
aW9ucyB0byBleHBlY3QgdGhlIHRpbWVvdXRzIHRvIHBhc3MuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAyYTE2MzU2YjFmM2JjNDQ0OTJkMjRkMDg5NDhlY2M5Mzk0NjIwNDYyLi5jNThmYjVmZGUzYzQ1
MmM4MTBiYzY2MWFmZTAwMzQ1YjU1ZGMwN2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMyMzAs
NiArMzIzMCw4IEBAIHdlYmtpdC5vcmcvYi8yMDYxNjggWyBEZWJ1ZyBdIGZhc3QvZG9tL2luc2Vy
dC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS5odG1sCiAKIHdlYmtpdC5vcmcvYi8yMDY2
NzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL2Nh
bGxiYWNrLXhoci1zeW5jLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMjA2
ODk5IGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbCBbIFNr
aXAgXQorCiAjIHdwdCBjc3MtYmFja2dyb3VuZHMgZmFpbHVyZXMKIHdlYmtpdC5vcmcvYi8yMDY3
NTMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWJhY2tncm91bmRzL2Jh
Y2tncm91bmQtYXR0YWNobWVudC1sb2NhbC9hdHRhY2htZW50LWxvY2FsLWNsaXBwaW5nLWNvbG9y
LTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNjc1MyBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYmFja2dyb3VuZHMvYmFja2dyb3VuZC1h
dHRhY2htZW50LWxvY2FsL2F0dGFjaG1lbnQtbG9jYWwtY2xpcHBpbmctY29sb3ItNi5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmYzM2Ni
ZDdmOTMzZDNiNDliYmZmNWQzNzhkZTU3YjgyMzEyYmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkIGV2
ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5OZXdFZmZlY3QK
K1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBlZmZlY3Qu
Li4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4KK1BBU1M6IEFuaW1h
dGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91
bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBlZmZlY3QuLi4KKworUEFTUzogQW5pbWF0aW9u
IHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3Vs
ZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmlt
YXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9lZmZlY3RDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ1ZDg1YjFlMWYyMTY4ODFmZmJkNmY2
MWIzNzQ3YzcwZGJmMTc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJvZHku
YW5pbWF0ZShbe29wYWNpdHk6IDB9XSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk5ld0VmZmVjdCIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdp
dmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAg
ICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5h
bmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFu
aW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlv
bi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAg
ICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5n
IGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUg
PT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUg
YSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgb2xkS2V5ZnJhbWVzID0gYW5p
bWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1w
dHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4iKTsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5naW5nIGVmZmVjdC4uLlxuIik7Cisg
ICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgYW5pbWF0aW9u
LmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQpLAorICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5hbmltYXRpb24uZWZm
ZWN0ID0gbmV3IEtleWZyYW1lRWZmZWN0KHdpbmRvdy5hbmltYXRpb24uZWZmZWN0LnRhcmdldCwg
W3tvcGFjaXR5OiAxfV0sIHt9KWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGxl
dCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3ROb3RFbXB0eShuZXdLZXlmcmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhh
dmUgYW4gZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNo
YWxsb3dFcXVhbChuZXdLZXlmcmFtZXMsIG9sZEtleWZyYW1lcywgIkFuaW1hdGlvbiBlZmZlY3Qg
c2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51
bGxFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBv
YmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAgICAgICBhc3lu
YyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFu
aW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5
IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmlt
YXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAgICAgICAgICAg
ICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlv
bi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJBbmlt
YXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IG9s
ZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1lcywgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBh
biBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyBl
ZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAg
ICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFu
Z2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5k
b3cuYW5pbWF0aW9uLmVmZmVjdCA9IG51bGxgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAg
ICAgICBsZXQgbmV3S2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkobmV3S2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3Vs
ZCBub3QgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9u
IGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5l
ZmZlY3RDaGFuZ2VkIGV2ZW50LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3Nz
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBkZDJiZjI5YzIwNGYwNWY1MjNj
NmFjOGFhNTdiMzUxMzUyY2VkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5k
IEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1h
dGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uCitQQVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFu
eSBhbmltYXRpb25zLgorUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCitQQVNTOiBBbmltYXRpb24g
dHlwZSBzaG91bGQgYmUgQ1NTIEFuaW1hdGlvbi4KK3N0YXJ0RGVsYXk6IDEwMAoraXRlcmF0aW9u
Q291bnQ6IDIKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0MDAKK3RpbWluZ0Z1bmN0aW9uOiAibGluZWFy
IgorcGxheWJhY2tEaXJlY3Rpb246ICJhbHRlcm5hdGUiCitmaWxsTW9kZTogImJvdGgiCitrZXlm
cmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwKKyAgICAiZWFzaW5nIjogImN1YmljLWJl
emllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJnYigyNTUs
IDAsIDApO1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMC41LAorICAg
ICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHls
ZSI6ICJjb2xvcjogcmdiKDAsIDEyOCwgMCk7XG5vcGFjaXR5OiAwLjU7IgorICB9LAorICB7Cisg
ICAgIm9mZnNldCI6IDEsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAu
MywgMC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMCwgMCwgMjU1KTtcbm9wYWNpdHk6
IDE7IgorICB9CitdCisKK0Rlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLgorCitQQVNTOiBBbmltYXRp
b24gZGVzdHJveWVkLgorUEFTUzogUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtYW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVj
eWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZkYTA5NTFiZjVlNDUzNjIzOTIz
MDUxMzZjODJiNTQ0NmM4ZTBlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDYz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CitAa2V5ZnJhbWVzIGZhZGUtaW4geworICAgIGZyb20geworICAgICAgICBj
b2xvcjogcmVkOworICAgICAgICBvcGFjaXR5OiAwOworICAgIH0KKyAgICA1MCUgeworICAgICAg
ICBjb2xvcjogZ3JlZW47CisgICAgICAgIG9wYWNpdHk6IDAuNTsKKyAgICB9CisgICAgdG8gewor
ICAgICAgICBjb2xvcjogYmx1ZTsKKyAgICAgICAgb3BhY2l0eTogMTsKKyAgICB9Cit9CitkaXYj
dGFyZ2V0LmFjdGl2ZSB7CisgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtaW47CisgICAgYW5pbWF0
aW9uLWR1cmF0aW9uOiA0MDBtczsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJp
Yy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICBhbmltYXRpb24tZGVsYXk6IDEwMG1z
OworICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7CisgICAgYW5pbWF0aW9uLWRpcmVj
dGlvbjogYWx0ZXJuYXRlOworICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7Cit9Cis8L3N0
eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNsZSIpOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLkxpZmVjeWNsZS5D
U1NBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgV2ViIEluc3Bl
Y3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgYW5pbWF0aW9ucyBhcmUgY3JlYXRlZC9kZXN0
cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLnNp
emUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLiIpOworCisgICAgICAg
ICAgICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRp
b25DcmVhdGVkKFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbiksCisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKwor
ICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVzdHJveWVk
KGFuaW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5B
bmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMoKSwKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIilgKSwKKyAgICAgICAgICAg
IF0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmlu
aXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmlt
YXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+CisgICAgPGRpdiBpZD0idGFyZ2V0
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWIyYmI1YTkxZDQ0OThlOTBjNTk1YmM5NTY3NDkyNDgw
NjllNTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAK
K1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5h
bmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5p
bWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3lj
bGUuQ1NTVHJhbnNpdGlvbgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9u
cy4KK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxk
IGJlIENTUyBUcmFuc2l0aW9uLgorc3RhcnREZWxheTogMTAwCitpdGVyYXRpb25Db3VudDogMQor
aXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVuY3Rpb246ICJjdWJpYy1iZXppZXIoMC4x
LCAwLjIsIDAuMywgMC40KSIKK3BsYXliYWNrRGlyZWN0aW9uOiAibm9ybWFsIgorZmlsbE1vZGU6
ICJiYWNrd2FyZHMiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwKKyAgICAi
ZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUi
OiAib3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMSwKKyAgICAiZWFzaW5n
IjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAib3Bh
Y2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWluZyBhbmltYXRpb25zLi4uCisKK1BBU1M6IEFu
aW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1vdmVkIGFuaW1hdGlvbiBoYXMgZXhwZWN0ZWQg
SUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5
Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNDVhMzhhMjA0ZTBj
NmM0ZDNhNzFiZjBlZDlkYzk2MGUwNDA4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCkBAIC0w
LDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiN0YXJnZXQgeworICAgIGNvbG9yOiByZWQ7CisgICAg
b3BhY2l0eTogMDsKKworfQorZGl2I3RhcmdldC5hY3RpdmUgeworICAgIGNvbG9yOiBibHVlOwor
ICAgIG9wYWNpdHk6IDE7CisKKyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OworICAg
IHRyYW5zaXRpb24tZHVyYXRpb246IDQwMG1zOworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0
aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICB0cmFuc2l0aW9uLWRl
bGF5OiAxMDBtczsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24u
TGlmZWN5Y2xlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJB
bmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgdHJhbnNp
dGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFnZXIu
YW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5p
bWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xl
VXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFu
c2l0aW9uKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIilg
KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMu
YXdhaXRBbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uLmFuaW1hdGlvbklkKSwKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5kZXN0cm95
QW5pbWF0aW9ucygpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QucmVtb3ZlKCJh
Y3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBz
dWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFu
aW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwv
cD4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1h
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVj
eWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWE2YjhkYTU5ZmZk
NmY3YmYwZDFmMDViODU1ZTU5N2ExMDhiYWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzOSBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3Jl
YXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBldmVudHMuCisKKworPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xlCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5XZWJBbmltYXRpb24KK1BBU1M6IFRoZXJlIHNob3VsZCBu
b3QgYmUgYW55IGFuaW1hdGlvbnMuCitDcmVhdGluZyBhbmltYXRpb24uLi4KKworUEFTUzogQW5p
bWF0aW9uIGNyZWF0ZWQuCisgIDA6IGFuaW1hdGUgLSBbbmF0aXZlIGNvZGVdCisgIDE6IGNyZWF0
ZUFuaW1hdGlvbiAtIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGls
aXRpZXMuanM6NzozNQorICAyOiBHbG9iYWwgQ29kZSAtIFtwcm9ncmFtIGNvZGVdCisgIDM6IGV2
YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIC0gW25hdGl2ZSBjb2RlXQorICA0OiAoYW5vbnltb3Vz
IGZ1bmN0aW9uKSAtIFtuYXRpdmUgY29kZV0KKyAgNTogX3dyYXBDYWxsIC0gW25hdGl2ZSBjb2Rl
XQorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIFdlYiBBbmltYXRpb24uCitzdGFydERl
bGF5OiAxMDAKK2VuZERlbGF5OiAyMDAKK2l0ZXJhdGlvbkNvdW50OiAxMAoraXRlcmF0aW9uU3Rh
cnQ6IDUKK2l0ZXJhdGlvbkR1cmF0aW9uOiAzMDAKK3RpbWluZ0Z1bmN0aW9uOiAiZWFzZS1pbi1v
dXQiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIKK2ZpbGxNb2RlOiAiYm90aCIKK2tl
eWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLjI1LAorICAgICJlYXNpbmciOiAiY3Vi
aWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogcmVk
O1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zmc2V0IjogMC43NSwKKyAgICAiZWFz
aW5nIjogImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAwLjkpIiwKKyAgICAic3R5bGUiOiAi
Y29sb3I6IGJsdWU7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQorCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMDI3MGE0YjI3ZDFkYzBiYWE2NzY3NGFiNzA3YzA5OGJjYThiYWYx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZl
Y3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuV2ViQW5pbWF0aW9uIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hl
bmV2ZXIgd2ViIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFz
eW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFu
aW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxk
IG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9
IGF3YWl0IEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmNyZWF0ZUFu
aW1hdGlvbihXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sIHsKKyAgICAgICAgICAgICAg
ICBzZWxlY3RvcjogImJvZHkiLAorICAgICAgICAgICAgICAgIGtleWZyYW1lczogWworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuMjUsCisg
ICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAu
MywgMC40KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogInJlZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLAorICAgICAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuNzUs
CisgICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJpYy1iZXppZXIoMC42LCAwLjcs
IDAuOCwgMC45KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogImJsdWUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKKyAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAg
ICAgICAgICAgICAgZGVsYXk6IDEwMCwKKyAgICAgICAgICAgICAgICAgICAgZW5kRGVsYXk6IDIw
MCwKKyAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMCwKKyAgICAgICAgICAgICAgICAg
ICAgZWFzaW5nOiAiZWFzZS1pbi1vdXQiLAorICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246
ICJhbHRlcm5hdGUiLAorICAgICAgICAgICAgICAgICAgICBmaWxsOiAiYm90aCIsCisgICAgICAg
ICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IDEwLAorICAgICAgICAgICAgICAgICAgICBpdGVyYXRp
b25TdGFydDogNSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSk7CisgICAgICAg
IH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3Rz
IGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRp
b25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZDQ4ZGE4MTUyMTk5NzNkNjEyNjA4MzYwODZlZTIxMWUy
YTFhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIGZv
ciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uVmFsaWRJZGVudGlmaWVyCitQQVNTOiBQ
YXlsb2FkIHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuCitQQVNTOiBQYXlsb2FkIHNob3VsZCBo
YXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1h
dGlvbi5yZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlmaWVyCitQQVNTOiBTaG91bGQgcHJv
ZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBhbmltYXRpb24gZm9yIGdpdmVuIGFu
aW1hdGlvbklkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24v
cmVzb2x2ZUFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9y
ZXNvbHZlQW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEyM2UzOTc0YzM0YzE5N2NkZDU5ODYx
MGY3Mzc3MTA2N2UzMDEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRvY3VtZW50LmJv
ZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0
aW9uLnJlc29sdmVBbmltYXRpb24iKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmllciIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhl
IGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdl
ci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1h
dGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07Cisg
ICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBNaXNz
aW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5
cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQg
YmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9
ICJ0ZXN0IjsKKyAgICAgICAgICAgIGxldCB7b2JqZWN0fSA9IGF3YWl0IEFuaW1hdGlvbkFnZW50
LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9iamVjdC50eXBlLCAib2JqZWN0
IiwgYFBheWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAib2JqZWN0Ii5gKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwob2JqZWN0LmNsYXNzTmFtZSwgIkFuaW1hdGlvbiIsIGBQ
YXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi5gKTsKKyAgICAgICAgfSwK
KyAgICB9KTsKKworICAgIC8vIC0tLS0tLQorCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uSW52YWxpZElkZW50aWZpZXIi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5pbWF0aW9uIGlkZW50aWZpZXJzIHNo
b3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAg
ICAgY29uc3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElTVCI7CisgICAgICAgICAgICBjb25z
dCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKworICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGF3YWl0IEFu
aW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oaWRlbnRpZmllciwgb2JqZWN0R3JvdXApOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0
Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJs
b2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24g
Y29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGll
cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kOWMyMTJmZjM2MTU4ZDhiYjRjY2UxNmE5NWRhMDUzNTJkMGIwMWRl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNv
dXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDEzMCBAQAord2luZG93LmFu
aW1hdGlvbnMgPSBbXTsKKworZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKHNlbGVjdG9yLCBrZXlm
cmFtZXMgPSBbXSwgb3B0aW9ucyA9IHt9KSB7CisgICAgbGV0IGFuaW1hdGlvbiA9IG51bGw7CisK
KyAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAg
aWYgKHRhcmdldCkKKyAgICAgICAgYW5pbWF0aW9uID0gdGFyZ2V0LmFuaW1hdGUoa2V5ZnJhbWVz
LCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAgICAgIGFuaW1hdGlvbiA9IG5ldyBBbmltYXRpb24o
bmV3IEtleWZyYW1lRWZmZWN0KG51bGwsIGtleWZyYW1lcywgb3B0aW9ucykpOworCisgICAgd2lu
ZG93LmFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pOworfQorCitmdW5jdGlvbiBkZXN0cm95QW5p
bWF0aW9ucygpIHsKKyAgICBmb3IgKGxldCBhbmltYXRpb24gb2Ygd2luZG93LmFuaW1hdGlvbnMp
IHsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgYW5pbWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIGlmIChhbmltYXRpb24uZWZmZWN0KSB7
CisgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQpIHsKKyAgICAgICAgICAg
ICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldC5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICBh
bmltYXRpb24uZWZmZWN0LnRhcmdldCA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGFuaW1hdGlvbi5lZmZlY3QgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgd2lu
ZG93LmFuaW1hdGlvbnMgPSBbXTsKKworICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUg
YW5pbWF0aW9uIGFuZCBpdCdzIHRhcmdldCBhcmUgYm90aCBkZXN0cm95ZWQsIGFzIG90aGVyd2lz
ZSB0aGUKKyAgICAvLyBmcm9udGVuZCB3aWxsIG5vdCByZWNlaXZlIEFuaW1hdGlvbi5hbmltYXRp
b25EZXN0cm95ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBHQ0Nv
bnRyb2xsZXIuY29sbGVjdCgpOworICAgIH0pOworfQorCitUZXN0UGFnZS5yZWdpc3RlckluaXRp
YWxpemVyKCgpID0+IHsKKyAgICBmdW5jdGlvbiBqc29uS2V5ZnJhbWVGaWx0ZXIoa2V5LCB2YWx1
ZSkgeworICAgICAgICBpZiAoa2V5ID09PSAiZWFzaW5nIiAmJiB2YWx1ZSBpbnN0YW5jZW9mIFdJ
LkN1YmljQmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7CisgICAg
ICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxp
ZmVjeWNsZVV0aWxpdGllcyA9IHt9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZl
Y3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkID0gYXN5bmMgZnVuY3Rpb24oYW5p
bWF0aW9uVHlwZSkgeworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1BZGRlZEV2
ZW50ID0gYXdhaXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uLmF3YWl0
RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOworCisgICAgICAgIEluc3BlY3Rv
clRlc3QucGFzcygiQW5pbWF0aW9uIGNyZWF0ZWQuIik7CisKKyAgICAgICAgbGV0IGFuaW1hdGlv
biA9IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CisKKyAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmltYXRpb24uYmFja3RyYWNlLmxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gYW5pbWF0aW9uLmJhY2t0cmFjZVtpXTsKKyAg
ICAgICAgICAgIGxldCB0cmFjZVRleHQgPSBgICAke2l9OiBgOworICAgICAgICAgICAgdHJhY2VU
ZXh0ICs9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIihhbm9ueW1vdXMgZnVuY3Rpb24pIjsK
KworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS5uYXRpdmVDb2RlKQorICAgICAgICAgICAgICAg
IHRyYWNlVGV4dCArPSAiIC0gW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChj
YWxsRnJhbWUucHJvZ3JhbUNvZGUpCisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9ICIgLSBb
cHJvZ3JhbSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUuc291cmNlQ29k
ZUxvY2F0aW9uKSB7CisgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2FsbEZyYW1lLnNv
dXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAtICIgKyBz
YW5pdGl6ZVVSTChsb2NhdGlvbi5zb3VyY2VDb2RlLnVybCkgKyBgOiR7bG9jYXRpb24ubGluZU51
bWJlcn06JHtsb2NhdGlvbi5jb2x1bW5OdW1iZXJ9YDsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2codHJhY2VUZXh0KTsKKyAgICAgICAgfQorCisgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUsIGFuaW1h
dGlvblR5cGUsIGBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgJHtXSS5BbmltYXRpb24uZGlzcGxh
eU5hbWVGb3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUpfS5gKTsKKworICAgICAgICBpZiAo
YW5pbWF0aW9uLnN0YXJ0RGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygic3Rh
cnREZWxheTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5zdGFydERlbGF5KSk7CisgICAg
ICAgIGlmIChhbmltYXRpb24uZW5kRGVsYXkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiZW5kRGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZW5kRGVsYXkpKTsKKyAg
ICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJpdGVyYXRpb25Db3VudDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5p
dGVyYXRpb25Db3VudCkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KQor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvblN0YXJ0OiAiICsgSlNPTi5z
dHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSk7CisgICAgICAgIGlmIChhbmltYXRp
b24uaXRlcmF0aW9uRHVyYXRpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiaXRl
cmF0aW9uRHVyYXRpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0aW9uRHVy
YXRpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbikKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJ0aW1pbmdGdW5jdGlvbjogIiArIEpTT04uc3RyaW5naWZ5
KFN0cmluZyhhbmltYXRpb24udGltaW5nRnVuY3Rpb24pKSk7CisgICAgICAgIGlmIChhbmltYXRp
b24ucGxheWJhY2tEaXJlY3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygicGxh
eWJhY2tEaXJlY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24ucGxheWJhY2tEaXJl
Y3Rpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5maWxsTW9kZSkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJmaWxsTW9kZTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5m
aWxsTW9kZSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmtleWZyYW1lcy5sZW5ndGgpIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJrZXlmcmFtZXM6Iik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0Lmpzb24oYW5pbWF0aW9uLmtleWZyYW1lcywganNvbktleWZyYW1lRmlsdGVy
KTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOworCisgICAg
ICAgIHJldHVybiBhbmltYXRpb24KKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRp
b25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQgPSBhc3luYyBmdW5j
dGlvbihhbmltYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0
aW9uSXRlbVJlbW92ZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9u
Q29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQpCisK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBbmltYXRpb24gZGVzdHJveWVkLiIpOworCisg
ICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVu
dC5kYXRhLml0ZW07CisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9u
LmFuaW1hdGlvbklkLCBhbmltYXRpb25JZGVudGlmaWVyLCAiUmVtb3ZlZCBhbmltYXRpb24gaGFz
IGV4cGVjdGVkIElELiIpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxp
ZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24gPSBhc3luYyBmdW5jdGlvbihhbmltYXRp
b25UeXBlLCB7c2VsZWN0b3IsIGtleWZyYW1lcywgb3B0aW9uc30gPSB7fSkgeworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiQ3JlYXRpbmcgYW5pbWF0aW9uLi4uXG4iKTsKKworICAgICAgICBs
ZXQgc3RyaW5naWZpZWRTZWxlY3RvciA9IEpTT04uc3RyaW5naWZ5KHNlbGVjdG9yIHx8IG51bGwp
OworICAgICAgICBsZXQgc3RyaW5naWZpZWRLZXlmcmFtZXMgPSBKU09OLnN0cmluZ2lmeShrZXlm
cmFtZXMgfHwgW10pOworICAgICAgICBsZXQgc3RyaW5naWZpZWRPcHRpb25zID0gSlNPTi5zdHJp
bmdpZnkob3B0aW9ucyB8fCB7fSk7CisKKyAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdhaXQg
UHJvbWlzZS5hbGwoWworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3lj
bGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblR5cGUpLAorICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQW5pbWF0aW9uKCR7c3Ry
aW5naWZpZWRTZWxlY3Rvcn0sICR7c3RyaW5naWZpZWRLZXlmcmFtZXN9LCAke3N0cmluZ2lmaWVk
T3B0aW9uc30pYCkKKyAgICAgICAgXSk7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdGlvbjsKKyAg
ICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVz
dHJveUFuaW1hdGlvbnMgPSBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkRlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLlxuIik7CisgICAgICAgIGF3YWl0IEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlc3Ryb3lBbmltYXRpb25zKClgKTsKKyAgICB9Owor
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENo
YW5nZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJn
ZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODhkZTIyZDM0OGNlYTlhYzlhZmYz
ZmFkMWYxNDI1MTA3NmNkN2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBA
CitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OZXdUYXJnZXQKK1BBU1M6IEFuaW1hdGlv
biBzaG91bGQgaGF2ZSBhIHRhcmdldC4KK0NoYW5naW5nIHRhcmdldC4uLgorCitQQVNTOiBBbmlt
YXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3Vs
ZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0
Q2hhbmdlZC5OdWxsVGFyZ2V0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQu
CitDaGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBh
IHRhcmdldC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2Vk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iZTcwNWY2YzhhMzE0ZWJmZTJhZDY0OTNhYjczZTMyZDEwMmVhNjhjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRD
aGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZCgpIHsK
KyAgICB3aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQuYm9keS5hbmltYXRlKFtdKTsKKworICAg
IHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZCIpOwor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnRhcmdl
dENoYW5nZWQuTmV3VGFyZ2V0IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJu
IGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAg
ICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXku
ZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBz
aG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0
aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAg
ICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0
aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAg
ICAgIGxldCBbb2xkVGFyZ2V0XSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2spID0+IHsgYW5p
bWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChvbGRUYXJnZXQgaW5zdGFuY2VvZiBXSS5ET01Ob2RlLCAi
QW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiQ2hhbmdpbmcgdGFyZ2V0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3YWl0IFBy
b21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uYXdhaXRFdmVudChXSS5Bbmlt
YXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAg
ICBsZXQgW25ld1RhcmdldF0gPSBhd2FpdCBwcm9taXNpZnkoKGNhbGxiYWNrKSA9PiB7IGFuaW1h
dGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKTsgfSk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQobmV3VGFyZ2V0IGluc3RhbmNlb2YgV0kuRE9NTm9kZSwgIkFu
aW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3ROb3RFcXVhbChuZXdUYXJnZXQsIG9sZFRhcmdldCwgIkFuaW1hdGlvbiBlZmZl
Y3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJnZXRDaGFuZ2Vk
Lk51bGxUYXJnZXQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxp
ZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4iLAorICAgICAgICBh
c3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJ
LmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBv
bmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBh
bmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsKKyAgICAgICAgICAg
ICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1h
dGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJB
bmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0
IFtvbGRUYXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24u
cmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KG9sZFRhcmdldCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRp
b24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5h
bGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5F
dmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBudWxsYCksCisgICAg
ICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IFtuZXdUYXJnZXRdID0gYXdhaXQgcHJvbWlz
aWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFj
ayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROdWxsKG5ld1RhcmdldCwg
IkFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFyZ2V0LCBvbGRUYXJnZXQsICJBbmltYXRp
b24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7CisgICAgICAgIH0sCisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9u
LnRhcmdldENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwKaW5kZXgg
ZDRlMTExZmQ5ZDg1MzcxNWU0NDYzMzM2YjRiZDA3ODI3OGNhZjYxZS4uMmQ2Mjc0YjdmNTU0N2Rl
YjgyODMzYjlmYWE1YzIzYmYwMGNmYjA3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sCkBAIC0yMCw5ICsyMCw5IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGF0IGNyZWF0ZWQgY2FudmFzZXMgaGF2ZSB0aGUgY29ycmVjdCB0eXBlIGFu
ZCBhdHRyaWJ1dGVzIHNlbnQgdG8gdGhlIGZyb250ZW5kLiIsCiAgICAgICAgICAgICB0ZXN0KHJl
c29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRF
dmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKQorICAgICAgICAgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rp
b24uRXZlbnQuSXRlbUFkZGVkKQogICAgICAgICAgICAgICAgIC50aGVuKChldmVudCkgPT4gewot
ICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAg
ICAgICAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJBZGRlZCBjYW52YXMuIik7CiAKICAgICAgICAg
ICAgICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNwbGF5TmFt
ZUZvckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sCmluZGV4IGJjMTgxZjYy
ZjJkNGY0M2ViNGExYWJmMWQ5ZjgzNmZjZTNkMmJiNWYuLmIxNDBmMTE4ZDA4ODZjYjc1ODAyZmEx
NTQwY2E1Zjg1NzZhYzZhMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbApAQCAtMzQsMTQgKzM0LDE0IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgYXR0YWNo
ZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBv
ZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAg
ICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2Fu
dmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFz
QWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQ
VSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQu
ZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsK
ICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVBdHRhY2hl
ZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIp
OworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9y
IGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGF0dGFjaGVkIEdQVUNhbnZhc0NvbnRl
eHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApAQCAtNTIs
MTQgKzUyLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5z
dXJlIHRoYXQgZGV0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBhcyBhIGNh
bnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5jIHRlc3Qo
KSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAgbGV0IGxp
c3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNv
bnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2
ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KGBjcmVhdGVEZXRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNB
ZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQs
IGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShjcmVh
dGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGRldGFjaGVk
IEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAg
ICAgICB9LApAQCAtNzAsMTQgKzcwLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRl
c2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgQ1NTIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0IHRyYWNr
ZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURldmljZS4iLAogICAgICAgICBh
c3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5D
YW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0g
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29s
bGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWU7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShgY3JlYXRlQ1NTQ2FudmFzKCJncHUiLCAiY3NzLWNhbnZhcyIpYCkKIAotICAg
ICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rp
b24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxkIG5vdCBiZSBj
cmVhdGVkIGZvciBDU1MgR1BVQ2FudmFzQ29udGV4dCB3aXRob3V0IGNvbm5lY3RlZCBXZWJHUFVE
ZXZpY2UuIik7CiAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL2V4dGVuc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0
ZW5zaW9ucy5odG1sCmluZGV4IGU4ZmNiZmUwMDczYzE5YjM4NWM0NmI5N2Q0MTVmZjg5N2JhZjFl
MjEuLjkzN2MxZjM0YmJhOTZiNTcwMTFhMzMxOWU4YTU3ODJjMTg0MzJjYWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCkBAIC0yMCw3ICsyMCw3IEBA
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMuZXh0ZW5zaW9ucy5lbmFi
bGUiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgZW5hYmxpbmcgYW4gZXh0ZW5z
aW9uIG5vdGlmaWVzIHRoZSBmcm9udGVuZC4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
cy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAg
ICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlz
c2luZyBXZWJHTCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKaW5kZXggMmE0OWUwM2ExODg4ZWU4NTVlYmJi
M2FmMTg4NDNiY2UzZTJiZGIxYy4uNGJmZDdhNmNlYWI1M2ZjNWQ5YjhlNzEzYjg1M2QyNzVlMDE3
M2U3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sCkBAIC0yOCw3
ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAvLyBwZXJmb3JtZWQgb24g
dGhhdCBjYW52YXMgdGhhdCByZXF1aXJlcyB0aGUgaW1hZ2UgYnVmZmVyLiAgQSBibGFuayBjYW52
YXMgdGhhdCB3YXMKICAgICAgICAgICAgIC8vIGp1c3QgY3JlYXRlZCB3aWxsIG5vdCBoYXZlIGEg
YnVmZmVyLCBzbyBpdHMgbWVtb3J5IGNvc3Qgd2lsbCBiZSAwL05hTi4KIAotICAgICAgICAgICAg
bGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykg
PT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQp
OworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyAyRCBjYW52
YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDUsNyArNDUsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLm1lbW9yeS5jYW52YXNNZW1vcnlDaGFu
Z2VkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IG1lbW9yeSBjb3N0IGlzIHVw
ZGF0ZWQgd2hlbiB0aGUgYmFja2VuZCB2YWx1ZSBjaGFuZ2VzLiIsCiAgICAgICAgIHRlc3QocmVz
b2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMg
PSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmlsdGVyKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNh
bnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzZXMubGVuZ3RoKSB7CiAgICAgICAgICAg
ICAgICAgcmVqZWN0KCJNaXNzaW5nIDJEIGNhbnZhcy4iKTsKICAgICAgICAgICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbAppbmRleCA0
ZDNjZmU5YjhlNmU5NzQwZDRlY2E2Nzc5NGE0NWE0ZjllZWM2OGQxLi5iZTA4YTIwNDEzMDJjMzc3
NjE0Y2MzM2UxMzk0YTA5MDE3NTJlMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVjb3JkaW5nLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgbmFtZTogIkNhbnZhcy5BY3Rpb25QYXJhbWV0ZXJOYU4iLAogICAgICAgICBkZXNjcmlw
dGlvbjogIkNoZWNrIHRoYXQgTmFOIGlzIGNvbnZlcnRlZCBpbnRvIHRoZSBwcm9wZXIgdmFsdWUg
Zm9yIHNlcmlhbGl6YXRpb24uIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uKVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywg
IlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFzIGNvbnRleHQuIik7CiAKICAgICAg
ICAgICAgIGNhbnZhcy5hd2FpdEV2ZW50KFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVk
KQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2Fu
dmFzLk11bHRpcGxlUmVjb3JkaW5nIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0
IG11bHRpcGxlIHJlY29yZGluZ3MgYXJlIGFibGUgdG8gYmUgc3RhcnRlZC9zdG9wcGVkIGF0IHRo
ZSBzYW1lIHRpbWUuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAg
ICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXM7CisgICAgICAgICAg
ICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVj
dGlvbik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGgg
PT09IDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIGNhbnZhcyBjb250ZXh0cy4iKTsKIAogICAgICAg
ICAgICAgY2FudmFzZXNbMV0uYXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3Rv
cHBlZCkKQEAgLTExMiw3ICsxMTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1l
OiAiQ2FudmFzLk5vQWN0aW9ucyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBh
IGNhbnZhcyBpcyBzdGlsbCBhYmxlIHRvIGJlIHJlY29yZGVkIGFmdGVyIHN0b3BwaW5nIGEgcmVj
b3JkaW5nIHdpdGggbm8gYWN0aW9ucy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07
CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2Fu
dmFzLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMgY29udGV4dC4iKTsKIAog
ICAgICAgICAgICAgbGV0IGV2ZW50Q291bnQgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwKaW5kZXggMjNjZDA0ODY4NTBk
MGFlMWI3Njc5ODc1YjBhZjI3YTA1MWMwZjRjZC4uZjc0ZDE1ZTEwNmVhM2IwNWNhOTFiODAxZjgx
YzhhMDJmMTE1MDRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENsaWVudE5vZGVzLkluaXRpYWwiLAog
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgY3JlYXRpbmcgYSBDU1MgY2FudmFzIGNs
aWVudCBub2RlIGlzIHRyYWNrZWQgY29ycmVjdGx5LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52
YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChjYW52YXMsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGNhbnZhcy4iKTsKIAog
ICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RDbGllbnROb2RlcygoY2xpZW50Tm9kZXMpID0+IHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQt
MmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQu
aHRtbAppbmRleCA1MzUwOTU3NjJiMzkwZjJjZTNmYjVhOTY5NmFkZTYxMTM0MzNjMmZkLi5lOWNi
YTFkMDEwN2MzYTY3Y2VmMTcyZThhYjVhOWE0YTRhYTljYTBiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sCkBAIC0xOCw3ICsx
OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENv
bnRlbnQyRC52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJh
c2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBjYW52YXMgb24gdGhlIHBhZ2Ugd2l0aCB0aGUgZ2l2
ZW4gdHlwZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBj
YW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7Cisg
ICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5D
YW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsK
ICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVx
dWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbAppbmRleCBjZDUwODNjMjUy
NTI3NGQ3OWZiOGY0YmQ3OWI5NzkzOGZlMzBjNjMwLi5mNTI2NmVmZGVmZDdlYzc0NzRlOTZlYmFh
ZmQwYmI1NzNiMjVmMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0yMiw3
ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVz
dENvbnRlbnRCaXRtYXBSZW5kZXJlci52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRp
b246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBCaXRtYXBSZW5kZXJlciBj
YW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNh
bnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0
bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKICAgICAg
ICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENh
bnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWwKaW5kZXggYWViODFl
ZjI3ZDNjOTgwNTg0OTc5OTZhMTc5YmQ2NGE1YmZlOWJlZi4uNzBjMjFmZTQzMzk2OTE1OTYwOTEy
Mjg0NTY2YWYyZjczZDU4Yjk2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wu
dmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5j
b2RlZCBkYXRhIGZvciB0aGUgV2ViR0wgY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFz
TWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlz
c2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKaW5k
ZXggNmIwM2Q1ZWM3ZTU5ZDAyNjY4N2M2YjdmMGRiMjgwNmUxNjNhZWNjZi4uZjdiNTVmNGEzZGZj
MDg0M2FlZjc4ODBiOWY3OTc0MGNlMTVhMDg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCkBAIC0yMSw3ICsy
MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENv
bnRlbnRXZWJHTDIudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRo
ZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wyIGNhbnZhcyBvbiB0aGUgcGFnZS4i
LAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOworICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9u
KS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRl
eHRUeXBlLldlYkdMMik7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAg
ICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sCmluZGV4IGU1
YzYxNDdlMzQ3YmMzNjllMmMwNWNjODQxNjZkODA2YTcxYzA2MTYuLmRjYzRiY2NlZTc1ZjRhNjkz
ODQ1YmJkZWU3MTIzYWZmZTJhNzkwNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3JlcXVlc3ROb2RlLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Tm9kZS52YWxpZENhbnZhc0lkIiwKICAgICAg
ICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIG5vZGUgaWQgZm9yIGVhY2ggY2FudmFzIG9uIHRoZSBw
YWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOworICAgICAgICAgICAgbGV0IGNh
bnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwog
ICAgICAgICAgICAgbGV0IGV4cGVjdGVkTGVuZ3RoID0gY2FudmFzZXMubGVuZ3RoOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXhwZWN0ZWRMZW5ndGggPT09IDMsICJUaGUgcGFn
ZSBoYXMgMyBjYW52YXNlcy4iKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCmluZGV4IGM0MWNjNmJjNzRhMzI0MTkyMGIzZDZi
NWMzZDliM2M2YmZkYTk1ZDEuLmZlMTQxMTc5YjdjYWRhM2JiNTg1YTg4ODg0ZGU2YmI2MzRlNzQz
OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRl
eHQtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250
ZXh0LTJkLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5h
bWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHQyRC52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBk
ZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBj
YW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2Fu
dmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52
YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFj
YW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbAppbmRleCA4
NjI1MjkyNjVjNGRkNmIyOWIyOTY3ODg0NDFjZWY5ZTY3N2I5YjEwLi4yOTdkNDQxZTE0ZmE0YjFi
ZDM5NmRjMDU0Zjg1YjhkOTNmOWFlNWMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1s
CkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFz
LnJlc29sdmVDb250ZXh0Qml0bWFwUmVuZGVyZXIudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAg
ZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4g
Y2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNh
bnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0
bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKICAgICAg
ICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENh
bnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWwKaW5kZXggOTVhZGYx
MmMwOTNhZGYzMGM0N2QyOTI5OTIzNDNkY2YwMWNjZTg3ZS4uMmE3MGZhNGEwZmIxN2ZmYTE5NDQ0
NzUxOWNiMzllNTgwYjkzNWU1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMLnZh
bGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZh
bGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFz
TWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlz
c2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKaW5k
ZXggMTE1MWY5MTdhN2EyM2U2ZmUzMzJiNDNhOWEzNDA2YTljZmU5MGE1NC4uZDhlMDgzMWU2YmMz
YTI5NjVlOGQ0MmNmZDU4N2UyZGZhMTRkMmM3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCkBAIC0yMCw3ICsy
MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250
ZXh0V2ViR0wyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxk
IHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIs
CiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFz
ID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CisgICAgICAgICAgICBs
ZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24p
LmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR0wyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13
ZWJncHUuaHRtbAppbmRleCBkYzAwZWYxMjM3YTY3Yjg5MDVmMzgwZGNlY2Y2YTc5Y2ViNjMyNjc2
Li5lOTI1YjI3MTY0OGY0NDRjMjNjOWQyYTg1Y2I4NTIwNjI0Y2I2MjU3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0
bWwKQEAgLTIyLDE0ICsyMiwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENh
bnZhcy5yZXNvbHZlQ29udGV4dFdlYkdQVS52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBkZXNj
cmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52
YXMgaWRlbnRpZmllci4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoLCAiVGhl
cmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplLCAiVGhlcmUgc2hv
dWxkIGJlIG5vIGNhbnZhc2VzLiIpOwogCi0gICAgICAgICAgICBsZXQgW2NhbnZhc0FkZGVkRXZl
bnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKSwKKyAgICAg
ICAgICAgIGxldCBbY2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50XSA9IGF3YWl0IFByb21p
c2UuYWxsKFsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCksCiAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV2aWNlKClgKSwKICAg
ICAgICAgICAgIF0pOwogCi0gICAgICAgICAgICBsZXQge2NhbnZhc30gPSBjYW52YXNBZGRlZEV2
ZW50LmRhdGE7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gY2FudmFzQ29sbGVjdGlvbkl0ZW1B
ZGRlZEV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNh
bnZhcy5jb250ZXh0VHlwZSwgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkFkZGVkIGNh
bnZhcyBzaG91bGQgYmUgYSBXZWJHUFUgZGV2aWNlLiIpOwogCiAgICAgICAgICAgICBjb25zdCBv
YmplY3RHcm91cCA9ICJ0ZXN0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwpp
bmRleCAzYTQ2MDQ1NTI1MTAxODJiYmUyZWYzNTU3MjNhNDFlMDQyODlkNjJmLi4xNTkxNTgwMjU5
MDIzYjllMjM4ZTcxYmI1Yzg1NWFhN2M4NjQ4MWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQt
dXRpbGl0aWVzLmpzCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0aW9uIGRlc3Ryb3lDYW52YXNlcygp
IHsKICAgICB3aW5kb3cuY29udGV4dHMgPSBbXTsKIAogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ug
c3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250
ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1Jl
bW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVj
dCgpOyB9LCAwKTsKIH0KIApAQCAtNDMsOSArNDMsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRp
YWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVuY3Rpb24gYXdh
aXRDYW52YXNBZGRlZChjb250ZXh0VHlwZSkgewotICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFu
YWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQpCisgICAg
ICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChX
SS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCkKICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7
Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAg
ICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgbGV0IGNvbnRleHRE
aXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBlKGNvbnRleHRU
eXBlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY2FudmFzLmNvbnRl
eHRUeXBlLCBjb250ZXh0VHlwZSwgYENhbnZhcyBjb250ZXh0IHNob3VsZCBiZSAke2NvbnRleHRE
aXNwbGF5TmFtZX0uYCk7CiAKQEAgLTczLDkgKzczLDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0
aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYXdhaXRDYW52YXNSZW1vdmVk
KGNhbnZhc0lkZW50aWZpZXIpIHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdh
aXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQpCisgICAgICAgIHJl
dHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xs
ZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQogICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAg
ICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAgIGxl
dCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKGNhbnZhcy5pZGVudGlmaWVyLCBjYW52YXNJZGVudGlmaWVyLCAiUmVtb3ZlZCBj
YW52YXMgaGFzIGV4cGVjdGVkIElELiIpOwogICAgICAgICB9KTsKICAgICB9CkBAIC04OSw3ICs4
OSw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAg
bmFtZTogYCR7c3VpdGUubmFtZX0uTm9DYW52YXNlc2AsCiAgICAgICAgICAgICBkZXNjcmlwdGlv
bjogIkNoZWNrIHRoYXQgdGhlIENhbnZhc01hbmFnZXIgaGFzIG5vIGNhbnZhc2VzIGluaXRpYWxs
eS4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVu
Z3RoLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbi5zaXplLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBubyBjYW52
YXNlcy4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJj
ZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMKaW5kZXggNjAxNDZmZjM4NDg3ZmQxOTNl
MjNkMzM3NDdkZjMxMDQ2Y2M2ODFmMy4uNzdhMGVhMzQzYjY1ZjQyNGJhYzZkZTM3NWUzM2JmMmNh
YmRjY2JkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJj
ZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzCkBAIC04Niw3ICs4Niw3IEBAIFRl
c3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIH0KIAogICAgIHdpbmRvdy5n
ZXRDYW52YXMgPSBmdW5jdGlvbih0eXBlKSB7Ci0gICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gdHlwZSk7CisgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRl
eHRUeXBlID09PSB0eXBlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMu
bGVuZ3RoID09PSAxLCBgVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcyB3aXRoIHR5cGUg
IiR7dHlwZX0iLmApOwogICAgICAgICBpZiAoY2FudmFzZXMubGVuZ3RoICE9PSAxKQogICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdl
YmdsLmpzCmluZGV4IDUyNzVjNDQxYWFmYzczYjkxMDc5NDViM2NkNzNmOWNhNjdlMWU2NWUuLmY0
M2U2ZjI3N2NkYzdkMDU4ZDA5OTQxYTc2Njc3NjM0ZTA1ZTZjYzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVz
LXdlYmdsLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3No
YWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9u
IGRlbGV0ZVByb2dyYW0oKSB7CiBmdW5jdGlvbiBkZWxldGVDb250ZXh0KCkgewogICAgIGNvbnRl
eHQgPSBudWxsOwogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1l
bnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3Qg
cmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAg
IC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNl
dFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApAQCAt
NDcsOCArNDcsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICBs
ZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVuY3Rpb24gd2hlblByb2dyYW1BZGRlZChjYWxsYmFj
aykgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7Ci0g
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF0uc2hhZGVyUHJvZ3JhbUNvbGxlY3Rp
b24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQs
IChldmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMu
Iik7CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+
IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBXSS5TaGFkZXJQ
cm9ncmFtLCAiQWRkZWQgU2hhZGVyUHJvZ3JhbS4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZhcyBpbnN0YW5jZW9mIFdJLkNhbnZhcywgIlNoYWRl
clByb2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJlbnQgQ2FudmFzLiIpOwpAQCAtNTcsOCArNTgsOSBA
QCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9CiAKICAgICBmdW5j
dGlvbiB3aGVuUHJvZ3JhbVJlbW92ZWQoY2FsbGJhY2spIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBz
aG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVy
KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4geworICAgICAgICBs
ZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwg
IlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIGNhbnZhc2VzWzBd
LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxl
Y3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgbGV0IHBy
b2dyYW0gPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0sICJSZW1vdmVkIFNoYWRl
clByb2dyYW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3Jh
bS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZl
IGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTc0LDcgKzc2LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJ
bml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQg
U2hhZGVyUHJvZ3JhbUFkZGVkIGlzIHNlbnQgZm9yIGEgcHJvZ3JhbSBjcmVhdGVkIGJlZm9yZSBD
YW52YXNBZ2VudCBpcyBlbmFibGVkLiIsCiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgewogICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FuJ3QgdXNlIGBhd2FpdEV2ZW50YCBzaW5j
ZSB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGhhcHBlbnMgb24gdGhlIG5leHQgdGljay4KLSAgICAg
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKHByb2dyYW0pID0+IHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAgICAgICAgICAgfSk7CkBAIC0xMTMs
NyArMTE1LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAgIGxldCBjYW52YXNS
ZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmds
ZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJl
bW92ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICBjYW52YXNSZW1vdmVkID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1Lmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMtd2ViZ3B1LmpzCmluZGV4IGZlNDhkOGZkODUxMTQ2NTg5OGZkM2IwNDUwZGU4OTUx
Mzc0NDliZTQuLmI4ZGUzNGNmYTg3ODY4NWY5NjVhOWY5MGJiNGJmOGFhYjM1NzM2MGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dy
YW0tdXRpbGl0aWVzLXdlYmdwdS5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMKQEAgLTY0LDcgKzY0
LDcgQEAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGlwZWxpbmUoY29kZSA9IHJlbmRlclBp
cGVsaW5lU291cmNlKSB7CiBmdW5jdGlvbiBkZWxldGVEZXZpY2UoKSB7CiAgICAgZGV2aWNlID0g
bnVsbDsKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGRldmljZSBpcyBkZXN0cm95
ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBkb2VzIG5vdCByZWNlaXZlIFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVudHMuCisgICAgLy8gZG9lcyBub3Qg
cmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3ZlZCBldmVudHMuCiAgICAgc2V0VGltZW91dCgoKSA9
PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3Vu
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2Fw
dHVyZUZyYW1lQ291bnQuaHRtbAppbmRleCBkOThmMGZlYTRlOTJjMTUyOTc4MTEyYzJkMDcwY2Q3
NGU5NTlkNGUyLi41NWU1NTI0NzMwODNhYTJkMWJhZWIwZTg4N2VlMDVmYzI4ZjBhMGU2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0
dXJlRnJhbWVDb3VudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0
UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwKQEAgLTc3LDggKzc3LDggQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgICAgaGFuZGxlUmVjb3JkaW5nU3RvcHBl
ZChjYW52YXMsIGV2ZW50LmRhdGEucmVjb3JkaW5nKTsKICAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAg
ICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKKyAgICAgICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KCFjYW52YXMucmVjb3JkaW5nQWN0aXZlKQogCiAgICAgICAgICAg
ICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRp
bmdTdGFydGVkLCBoYW5kbGVSZWNvcmRpbmdTdGFydGVkV3JhcHBlcik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJn
cHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQt
cmVtb3ZlLXdlYmdwdS5odG1sCmluZGV4IGQ0MGZhYjc4MzgxMzBjYzk0YjAzYmY5MWQ5NmYyMjcw
OTA0ZWIwMTMuLmQ1ZmI4NzcyYzBiMzc1YzQwZDVkN2EwZTQyMDJhNTRmZjVkNTJkMGEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2hhZGVy
UHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCkBAIC0xNCw5ICsxNCwxMSBAQCB3aW5kb3cu
YmVmb3JlVGVzdCA9IGFzeW5jIGZ1bmN0aW9uKCkgewogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBs
ZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoYENhbnZhcy5TaGFkZXJQ
cm9ncmFtLldlYkdQVWApOwogCi0gICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzZXNbMF07CisgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxl
bmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisKKyAgICBs
ZXQgY2FudmFzID0gY2FudmFzZXNbMF07CiAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFz
LCAiVGhlcmUgc2hvdWxkIGJlIGEgY2FudmFzLiIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9u
bHkgYmUgb25lIGNhbnZhcy4iKTsKICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUsICJDYW52YXMgc2hvdWxk
IGJlIFdlYkdQVS4iKTsKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGF3YWl0UHJvZ3JhbUFkZGVkKHBy
b2dyYW1UeXBlKSB7CkBAIC0xMTgsNyArMTIwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVk
ID0gZmFsc2U7CiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuc2luZ2xlRmlyZUV2ZW50
TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCAoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQp
ID0+IHsKICAgICAgICAgICAgICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAgICAgICAg
IH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1s
CmluZGV4IDM0ZDAyYWIxN2U5MDVhNGI3OGEwMjY1NTA0OWFlMjhkYjMzMTA4NzEuLjhjZjlhNDc1
NjIyNDIxYzgzNjg5YzlhZDM3ZDIxOTBhMDFjZTllMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVu
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdl
YmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCkBAIC01NywxMCArNTcsMTAgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNyZWF0aW5nIHJlbmRlciBw
aXBlbGluZS4uLiIpOwogICAgICAgICBsZXQgZXZhbHV0ZVByb21pc2UgPSBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVSZW5kZXJQaXBlbGluZSgpYCk7CiAKLSAgICAgICAgaWYg
KCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCkKLSAgICAgICAgICAgIGF3YWl0IFdJ
LmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0Fk
ZGVkKTsKKyAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6
ZSkKKyAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5h
d2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKIAotICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgbGV0IGNhbnZh
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CiAKICAg
ICAgICAgbGV0IGl0ZW1BZGRlZEV2ZW50ID0gYXdhaXQgY2FudmFzLnNoYWRlclByb2dyYW1Db2xs
ZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVj
dC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDY2YmRi
YWI5ZWVlMzE2NzkwZjhmMjY3NDZmOTNlMjFlZDRjM2RmMWUuLmRiZjYzNTFlOWEwOTI0NjBhYmVl
OWQzNGQ5MjA2YjBmNzMzNmIzYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91
bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1
bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTU0LDYgKzU0LDc0IEBAIEZBSUw6IGV4cGVjdEZhbHNl
KFtdKQogICAgIEV4cGVjdGVkOiBmYWxzZXkKICAgICBBY3R1YWw6IFtdCiAKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdEVtcHR5CitFeHBlY3RlZCB0byBQQVNTCitQ
QVNTOiBleHBlY3RFbXB0eShudWxsKQorUEFTUzogZXhwZWN0RW1wdHkoIiIpCitQQVNTOiBleHBl
Y3RFbXB0eSh7fSkKK1BBU1M6IGV4cGVjdEVtcHR5KFtdKQorUEFTUzogZXhwZWN0RW1wdHkoe30p
CitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4cGVjdEVt
cHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0IgorRkFJ
TDogZXhwZWN0RW1wdHkoeyJ0ZXN0IjoxfSkKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1
YWw6IHsidGVzdCI6MX0KK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDog
ZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhwZWN0RW1wdHkoe30pCisgICAgRXhw
ZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0RW1wdHkoe30pCisgICAg
RXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxk
IG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB0cnVlCitGQUlM
OiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAg
ICBBY3R1YWw6IGZhbHNlCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3
aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IDEKK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3Vs
ZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdW5kZWZpbmVk
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5CitF
eHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3ROb3RFbXB0eSgidGVzdCIpCitQQVNTOiBleHBl
Y3ROb3RFbXB0eSh7InRlc3QiOjF9KQorUEFTUzogZXhwZWN0Tm90RW1wdHkoInRlc3QiKQorUEFT
UzogZXhwZWN0Tm90RW1wdHkoe30pCitQQVNTOiBleHBlY3ROb3RFbXB0eSh7fSkKK0V4cGVjdGVk
IHRvIEZBSUwKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KG51bGwpCisgICAgRXhwZWN0ZWQ6IG5vdCBl
bXB0eQorICAgIEFjdHVhbDogbnVsbAorRkFJTDogZXhwZWN0Tm90RW1wdHkoIiIpCisgICAgRXhw
ZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogIiIKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9
KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3RO
b3RFbXB0eShbXSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiBbXQorRkFJ
TDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVh
bDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkK
KyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxl
ZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHRydWUKK0ZBSUw6IGV4cGVjdE5vdEVt
cHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDog
ZmFsc2UKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBu
b24tb2JqZWN0OgorICAgIEFjdHVhbDogMQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5v
dCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiB1bmRlZmluZWQKKwog
LS0gUnVubmluZyB0ZXN0IGNhc2U6IEluc3BlY3RvclRlc3QuZXhwZWN0TnVsbAogRXhwZWN0ZWQg
dG8gUEFTUwogUEFTUzogZXhwZWN0TnVsbChudWxsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVu
Y3Rpb25zLmh0bWwKaW5kZXggOTFlODU4MGM3Y2I2MjczNDU4MjU0MDI0OTcyMDA5ZTk5Y2RhODM0
ZC4uZTM4NjRhMDNjNGUwOTQxY2E4YzAyZjJmMGE3ODYyNjM5ODhiMDEyMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5j
dGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhh
cm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCkBAIC00OCw2ICs0OCwyMCBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICBhZGRUZXN0Q2FzZShleHBlY3RUaGF0VGVzdENhc2UpOwogICAgIGFkZEludmVy
c2VUZXN0Q2FzZSgiZXhwZWN0RmFsc2UiLCBleHBlY3RUaGF0VGVzdENhc2UpOwogCisgICAgbGV0
IGV4cGVjdEVtcHR5VGVzdENhc2UgPSB7CisgICAgICAgIGZ1bmN0aW9uTmFtZTogImV4cGVjdEVt
cHR5IiwKKyAgICAgICAgcGFzc2luZ0lucHV0czogW251bGwsICIiLCB7fSwgW10sIG5ldyBNYXAs
IG5ldyBTZXRdLAorICAgICAgICBmYWlsaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVzdDogMX0sIFsi
dGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJdKSwgdHJ1ZSwg
ZmFsc2UsIDEsIHVuZGVmaW5lZF0sCisgICAgfTsKKyAgICBhZGRUZXN0Q2FzZShleHBlY3RFbXB0
eVRlc3RDYXNlKTsKKworICAgIGxldCBleHBlY3ROb3RFbXB0eVRlc3RDYXNlID0geworICAgICAg
ICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROb3RFbXB0eSIsCisgICAgICAgIHBhc3NpbmdJbnB1dHM6
IFsidGVzdCIsIHt0ZXN0OiAxfSwgWyJ0ZXN0Il0sIG5ldyBNYXAoW1sidGVzdCIsIDFdXSksIG5l
dyBTZXQoWyJ0ZXN0Il0pXSwKKyAgICAgICAgZmFpbGluZ0lucHV0czogW251bGwsICIiLCB7fSwg
W10sIG5ldyBNYXAsIG5ldyBTZXQsIHRydWUsIGZhbHNlLCAxLCB1bmRlZmluZWRdLAorICAgIH07
CisgICAgYWRkVGVzdENhc2UoZXhwZWN0Tm90RW1wdHlUZXN0Q2FzZSk7CisKICAgICBsZXQgZXhw
ZWN0TnVsbFRlc3RDYXNlID0gewogICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROdWxsIiwK
ICAgICAgICAgcGFzc2luZ0lucHV0czogW251bGxdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389152</attachid>
            <date>2020-01-29 09:53:47 -0800</date>
            <delta_ts>2020-01-29 11:52:38 -0800</delta_ts>
            <desc>[Patch] test modifying WTF/wtf/Assertions.h for win</desc>
            <filename>bug-205434-20200129095344.patch</filename>
            <type>text/plain</type>
            <size>326856</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZiN2Y3NGU0MDFmODJmZTYxNTY3NGExMDg0YzFm
OGZmNTRkZWI2OWQuLjVhMjY3OTI0NzcxZDMzZTYwMDEyNTRlZmVhMTc0ODEyN2I4ZGM3OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI4ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3Nl
dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBpbmNsdWRlIG9mIEJ5dGVjb2RlR2Vu
ZXJhdG9yLmggaW4gQ29kZUNhY2hlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YWNlNzQyNWE1YjM2YmVkZDhl
OGY3Y2QwYjVlMGFiYmZhMzdhNThlLi5hMzI4YWU1MWU0MTUzYjg3ZDQwNDNlYjM4YzllYWMzNGQx
NTg1NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA1IEBACisyMDIwLTAxLTI4ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQg
aW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFu
IEJ1cmcuCisKKyAgICAgICAgQWRkIHR5cGVzL2NvbW1hbmRzL2V2ZW50cyBmb3IgaW5zdHJ1bWVu
dGluZyB0aGUgbGlmZWN5Y2xlIG9mIGBBbmltYXRpb25gIG9iamVjdHMsIGFzIHdlbGwgYXMKKyAg
ICAgICAgY29tbWFuZHMgZm9yIGdldHRpbmcgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3Qg
YW5kIHRoZSB0YXJnZXQgRE9NIG5vZGUuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9hbmlt
YXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rv
ci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAg
IGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbAorICAgICAg
ICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0Lmh0bWwKKyAg
ICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCisg
ICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbAorCisg
ICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9X
ZWJBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjppbnN0YW5j
ZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0
ZXgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBbmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBbmltYXRpb246OnNldEVmZmVjdEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NT
QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NUcmFuc2l0aW9uOjpjcmVhdGUpOgorCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6cGFyc2VkS2V5ZnJh
bWVzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Ymxl
bmRpbmdLZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjpoYXNCbGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVuQWNjZWxlcmF0ZWQpOgorICAgICAgICBQcm92aWRlIGEg
d2F5IHRvIGFjY2VzcyB0aGUgbGlzdCBvZiBrZXlmcmFtZXMuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUaW1pbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdl
YkFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBEZWxldGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVm
ZmVjdEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUYXJnZXRJbXBsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJB
bmltYXRpb25JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0SW1wbCk6IERlbGV0ZWQuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5z
dHJ1bWVudGluZ0FnZW50czo6ZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50IGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRFbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdl
bnRzOjpyZXNldCk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1h
dGlvbkFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRp
b25BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJvdG9jb2xWYWx1ZUZvclBsYXliYWNrRGlyZWN0
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yRmlsbE1vZGUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvckVmZmVjdCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6ZW5hYmxlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZGlzYWJsZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlcXVlc3RFZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZlQW5pbWF0aW9uKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkU2V0
V2ViQW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
bmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGFyZ2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6d2lsbERlc3Ryb3lXZWJBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZyYW1lTmF2
aWdhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmaW5k
QW5pbWF0aW9uSWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojphc3NlcnRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpiaW5kQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5pbWF0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVzdHJv
eWVkVGltZXJGaXJlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OnJlc2V0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KTogRGVsZXRlZC4KKworICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRE9NQWdlbnQ6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6cmVxdWVzdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6
OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgIEFkZCBhbiBvdmVybG9hZCBmb3Ig
YHB1c2hOb2RlUGF0aFRvRnJvbnRlbmRgIHRoYXQgZXhwb3NlcyBhbiBgRXJyb3JTdHJpbmdgLgor
CiAyMDIwLTAxLTI4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIG1hY0NhdGFseXN0OiBUcmlwbGUgY2xpY2tpbmcgdG8gc2VsZWN0IGEgc2VudGVuY2Ug
cmVzdWx0cyBpbiBhbiBlbXB0eSBzZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4
IDg3MmE4NzEyMGE4Zjc3YTBlZDFhN2NkNDI2ODI4ZjQzNTZkZWMzYWUuLjU4ZWY5Mjk4NTdkMzk2
NzE1YzJjMDU3ZGJlMmNkMTIyNTQ5MjU5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMyOCBAQAorMjAyMC0wMS0yOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hv
d2luZyBleGlzdGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMy
ODA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5w
cm90b3R5cGUuZ2V0IGRvbWFpbnMpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90
b3R5cGUuYWN0aXZhdGVFeHRyYURvbWFpbik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2Vy
LnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLmdldCBhbmltYXRpb25Db2xsZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbk1hbmFnZXIucHJvdG90eXBlLmdldCBzdXBwb3J0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uTWFuYWdlci5wcm90b3R5cGUuZW5hYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90
b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnBy
b3RvdHlwZS5lZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJv
dG90eXBlLnRhcmdldENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90
b3R5cGUuYW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIu
cHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanM6CisgICAgICAgIChXSS5Bbmlt
YXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9uQ3JlYXRlZCk6IEFkZGVkLgorICAgICAg
ICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmVmZmVjdENoYW5nZWQpOiBBZGRlZC4K
KyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS50YXJnZXRDaGFuZ2VkKTog
QWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUuYW5pbWF0aW9u
RGVzdHJveWVkKTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9Bbmlt
YXRpb25Db2xsZWN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rp
b24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0IGFuaW1h
dGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0
IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBl
Lm9iamVjdElzUmVxdWlyZWRUeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24u
cHJvdG90eXBlLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLml0ZW1BZGRlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db2xsZWN0aW9uLnByb3RvdHlwZS5pdGVtc0NsZWFyZWQpOgorICAgICAgICBTaW1pbGFyIHRv
IGBXSS5SZXNvdXJjZUNvbGxlY3Rpb25gLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiBgV0kuQ29sbGVj
dGlvbmAgdGhhdCBtYWludGFpbnMgaXQncworICAgICAgICBvd24gc3ViLWBXSS5BbmltYXRpb25D
b2xsZWN0aW9uYHMgZm9yIGVhY2ggdHlwZSBvZiBgV0kuQW5pbWF0aW9uLlR5cGVgLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAg
KFdJLkFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb24uZnJvbVBheWxvYWQpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZSk6CisgICAgICAg
IChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbik6CisgICAgICAg
IChXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JGaWxsTW9kZSk6CisgICAgICAgIChXSS5Bbmlt
YXRpb24ucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uSWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnBy
b3RvdHlwZS5nZXQgYmFja3RyYWNlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUu
Z2V0IGFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQg
c3RhcnREZWxheSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBlbmREZWxh
eSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25Db3VudCk6
CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25TdGFydCk6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBpdGVyYXRpb25EdXJhdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCB0aW1pbmdGdW5jdGlvbik6CisgICAg
ICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBwbGF5YmFja0RpcmVjdGlvbik6CisgICAg
ICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBmaWxsTW9kZSk6CisgICAgICAgIChXSS5B
bmltYXRpb24ucHJvdG90eXBlLmdldCBrZXlmcmFtZXMpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
LnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3Rv
dHlwZS5yZXF1ZXN0RWZmZWN0VGFyZ2V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnRhcmdl
dENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5fdXBkYXRlRWZmZWN0
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qczoKKyAg
ICAgICAgKFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKTogQWRkZWQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanM6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNU
YWJDb250ZW50Vmlldy5qcy4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcpOgor
ICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy50YWJJbmZvKToKKyAgICAgICAgKFdJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcuaXNUYWJBbGxvd2VkKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFdJLkdyYXBo
aWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNob3dSZXByZXNlbnRlZE9iamVjdCk6IEFkZGVk
LgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2FuU2hvd1Jl
cHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLmNsb3NlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdUcmVlT3V0bGluZVNlbGVjdGlvbkRpZENo
YW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5jc3M6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MuCisgICAgICAgIFJlbmFtZSB0
aGUgQ2FudmFzIFRhYiB0byBHcmFwaGljcyBUYWIgYW5kIGRpc3BsYXkgZm91ciBzZWN0aW9uczoK
KyAgICAgICAgIC0gQ2FudmFzZXMKKyAgICAgICAgIC0gV2ViIEFuaW1hdGlvbnMKKyAgICAgICAg
IC0gQ1NTIEFuaW1hdGlvbnMKKyAgICAgICAgIC0gQ1NTIFRyYW5zaXRpb25zCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJ
LkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KToK
KyAgICAgICAgT25seSBhcHBlYXIgaWYgYSBgV0kuQ2FudmFzYCBvciBgV0kuUmVjb3JkaW5nYCBp
cyBzZWxlY3RlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmdldCBzdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHMpOgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1z
KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0
YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6CisgICAg
ICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lSGFu
ZGxlRHJvcCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90
eXBlLl9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQp
OgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFu
ZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3Zl
cnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25J
dGVtQ2xpY2tlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLl9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKToKKyAgICAgICAg
KFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3
Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk6CisgICAgICAgIChX
SS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcu
Y3NzOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcpOgor
ICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24pOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpmaXJz
dC1jaGlsZCkpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNl
Y3Rpb24gPiAuaGVhZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZp
ZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgPiAuaGVhZGVyKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxKToK
KyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAgICAgICAoQG1l
ZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQp
IC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlcik6Cisg
ICAgICAgIEFkZCBzdGlja3kgaGVhZGVycyBmb3IgZWFjaCBvZiB0aGUgc2VjdGlvbnMgZGVzY3Jp
YmVkIGFib3ZlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVj
dGlvbkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld0FkZGVk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
Y29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hh
bmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5j
b250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24pOgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5B
bmltYXRpb25Db250ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5n
ZXQgcHJldmlld0hlaWdodCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25D
b250ZW50Vmlldy5wcm90b3R5cGUuc2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFN1YnRpdGxlKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXcuYWRkVGl0bGUpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlldyk6
CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUVmZmVj
dENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9o
YW5kbGVUYXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fcG9wdWxhdGVBbmltYXRpb25UYXJnZXRCdXR0b25Db250ZXh0TWVudSk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3M6IEFkZGVk
LgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24pOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24uc2VsZWN0ZWQpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRp
b24gPiBoZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIg
PiAudGl0bGVzKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4g
LnRpdGxlcyA+IC50aXRsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhl
YWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZvcmUp
OgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAubmF2aWdhdGlv
bi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBoZWFkZXIg
PiAubmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnKToKKyAgICAgICAgKGJvZHlbZGlyPXJ0bF0gLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAu
cHJldmlldyA+IHN2Zyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2
aWV3ID4gc3ZnIHJlY3QpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJl
dmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIHBhdGgpOgorICAgICAgICAoLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgY2lyY2xlKToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxp
bmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHNwYW4p
OgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQt
dmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlKToKKyAgICAgICAgKEBt
ZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9u
ID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSk6CisgICAgICAgIChAbWVkaWEgKHByZWZl
cnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3
KToKKyAgICAgICAgVmlzdWFsaXplIHRoZSBzdGFydC9lbmQgZGVsYXkgYW5kIGtleWZyYW1lcyBv
ZiB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGFzIGEgc2VyaWVzIG9mIGJlemllcgorICAgICAgICBjdXJ2
ZXMgc2VwYXJhdGVkIGJ5IG1hcmtlcnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5p
bWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbnNwZWN0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRl
dGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmdldCBhbmltYXRpb24pOgorICAgICAgICAoV0ku
QW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuc2V0IGFuaW1hdGlvbik6Cisg
ICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbml0aWFs
TGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90
eXBlLmxheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5fcmVmcmVzaElkZW50aXR5U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaEVmZmVjdFNlY3Rpb24pOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hC
YWNrdHJhY2VTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFu
ZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25FZmZlY3RDaGFuZ2VkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVBbmltYXRpb25U
YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLl9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVs
LmNzczogQWRkZWQuCisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlv
biA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5oZWFk
ZXIgPiAuc3VidGl0bGUpOgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmlt
YXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAu
ZGV0YWlscy1zZWN0aW9uKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5p
bWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMg
LmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyk6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5l
bC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRp
b24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHlsZXMgLkNvZGVNaXJyb3IpOgor
ICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+
IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uKToK
KyAgICAgICAgU2hvdyBjb2xsZWN0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVjdGVkIGFu
aW1hdGlvbiwgaXRzIGVmZmVjdCwgYW5kIGl0cyB0YXJnZXQuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAgICAgIChXSS5DYW52YXNN
YW5hZ2VyKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXND
b2xsZWN0aW9uKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5k
aXNhYmxlKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc0FkZGVk
KToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmNhbnZhc1JlbW92ZWQpOgor
ICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3NhdmVSZWNvcmRpbmdzKTogQWRk
ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fbWFpblJlc291cmNlRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmdldCBjYW52YXNl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3Zl
Q2FudmFzKTogRGVsZXRlZC4KKyAgICAgICAgUmF0aGVyIHRoYW4gaGF2ZSB0aGUgYFdJLkNhbnZh
c1RhYkNvbnRlbnRWaWV3YCBtYWluYWluIHRoZSBgV0kuQ2FudmFzQ29sbGVjdGlvbmAgYW5kIGhh
dmUgdG8KKyAgICAgICAgbGlzdGVuIGZvciBldmVudHMgZnJvbSB0aGUgYFdJLkNhbnZhc01hbmFn
ZXJgLCBqdXN0IGhhdmUgdGhlIGBXSS5DYW52YXNNYW5hZ2VyYCBob2xkIG9uIHRvCisgICAgICAg
IGl0IGluc3RlYWQgYW5kIHByb3ZpZGUgYSBnZXR0ZXIgZm9yIGl0LgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
LmNvbnRlbnRWaWV3QWRkZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuY29udGVudFZpZXdSZW1vdmVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkNhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9hZGRTYXZlZFJlY29yZGluZyk6CisgICAg
ICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oaWRkZW4pOiBEZWxl
dGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0
IF9pdGVtTWFyZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcucHJvdG90eXBlLl9yZWZyZXNoUHJldmlld3MpOiBEZWxldGVkLgorICAgICAgICAoV0ku
Q2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZU5hdmlnYXRpb25JdGVt
cyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fc2hvd0dyaWRCdXR0b25DbGlja2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVTaG93SW1hZ2VHcmlkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcpOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZh
cyk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVu
dFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZVJl
ZnJlc2hCdXR0b25DbGlja2VkKTogQWRkZWQuCisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmll
dy5wcm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQpOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZUhhbmRsZURyb3Ap
OiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5pbml0aWFs
TGF5b3V0KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hl
ZCk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuX3BvcHVsYXRlQ2Fu
dmFzRWxlbWVudEJ1dHRvbkNvbnRleHRNZW51KToKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5zaG93bik6IERlbGV0ZWQuCisgICAgICAgIE1vdmUgdGhlICJMb2cgQ2Fu
dmFzIENvbnRleHQiIHRvIGJlIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBjYW52YXMgZWxlbWVudCBi
dXR0b24gY29udGV4dCBtZW51LgorICAgICAgICBEcml2ZS1ieTogYWRkIGEgYFdJLkRyb3Bab25l
Vmlld2AgZm9yIHdoZW4gcmVjb3JkaW5nIEpTT04gZmlsZXMgYXJlIGRyYWdnZWQgb24gdG9wLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3M6Cisg
ICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3RvcnMgc2lu
Y2UgdGhlIENhbnZhcyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5nZXQgc2VsZWN0ZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnNldCBzZWxlY3RlZEl0ZW0pOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuYWRkQ29udGVudFZpZXdGb3JJ
dGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUucmVtb3Zl
Q29udGVudFZpZXdGb3JJdGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5w
cm90b3R5cGUuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcik6CisgICAgICAgIChXSS5Db2xsZWN0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2VsZWN0SXRlbSk6CisgICAgICAgIChXSS5Db2xs
ZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDbGljayk6IEFkZGVkLgorICAgICAg
ICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZXRTZWxlY3RlZEl0ZW0pOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRl
cjpub3QoLm1lc3NhZ2UtdGV4dC12aWV3KSk6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWcpOiBEZWxldGVkLgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIpOiBEZWxldGVk
LgorICAgICAgICBXaGVuIHNlbGVjdGlvbiBpcyBlbmFibGVkLCBjbGlja2luZyBvdXRzaWRlIG9m
IGFueSBvZiB0aGUgY29udGVudCB2aWV3cyBzaG91bGQgZGlzbWlzcyB0aGUKKyAgICAgICAgY3Vy
cmVudCBzZWxlY3Rpb24uIENsaWVudHMgc2hvdWxkIGFsc28gYmUgYWJsZSB0byBnZXQgdGhlIGN1
cnJlbnRseSBzZWxlY3RlZCBpdGVtLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9E
ZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qczoKKyAgICAgICAgKFdJLkRldGFpbHNTZWN0aW9uU2lt
cGxlUm93LnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICBFbnN1cmUgdGhhdCBgMGAgaXMg
Y29uc2lkZXJlZCBhcyBhIHZhbGlkIHZhbHVlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9C
YXNlL01haW4uanM6CisgICAgICAgIChXSS5sb2FkZWQpOgorICAgICAgICAoV0kuY29udGVudExv
YWRlZCk6CisgICAgICAgIChXSS50YWJDb250ZW50Vmlld0NsYXNzRm9yUmVwcmVzZW50ZWRPYmpl
Y3QpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXSS5Db250ZW50Vmlldy5jcmVhdGVGcm9tUmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAg
ICAoV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZSk6CisgICAgICAgIEFsbG93IGBXSS5BbmltYXRp
b25gIHRvIGJlIHZpZXdhYmxlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9NYWlu
LmNzczoKKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IEFkZGVkLgorICAgICAgICAo
Lm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyKTogQWRkZWQuCisgICAgICAg
ICgubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6IEFkZGVk
LgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCk6IERl
bGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxw
IC5uYXZpZ2F0aW9uLWJhcik6IERlbGV0ZWQuCisgICAgICAgICgubWVzc2FnZS10ZXh0LXZpZXcg
Lm5hdmlnYXRpb24taXRlbS1oZWxwIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtKTogRGVsZXRlZC4K
KyAgICAgICAgQWxsb3cgYFdJLmNyZWF0ZU5hdmlnYXRpb25JdGVtSGVscGAgdG8gYmUgdXNlZCBp
bmRlcGVuZGVudGx5IG9mIGBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXdgLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzOgorICAgICAgICAoV0kuRE9N
TWFuYWdlci5wcm90b3R5cGUubm9kZUZvcklkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFuYWdl
ci5wcm90b3R5cGUuYW5pbWF0aW9uVHJhY2tpbmdVcGRhdGVkKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzOgorICAgICAgICAoV0kuQXVkaXRU
ZXN0Q2FzZVJlc3VsdC5hc3luYyBmcm9tUGF5bG9hZCk6CisgICAgICAgIEFkZCBhIGZhbGxiYWNr
IHNvIGNhbGxlcnMgZG9uJ3QgbmVlZCB0by4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5SZXNvdXJj
ZUNvbGxlY3Rpb25Db250ZW50Vmlldyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9S
ZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3M6CisgICAgICAgICguY29udGVudC12aWV3
LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogQWRkZWQuCisgICAg
ICAgICguY29udGVudC12aWV3LnJlc291cmNlLWNvbGxlY3Rpb24gPiAucmVzb3VyY2UuaW1hZ2Ug
aW1nOmhvdmVyKTogQWRkZWQuCisgICAgICAgIERyaXZlLWJ5OiBtb3ZlIHRoZXNlIHN0eWxlcyB0
byB0aGUgcmlnaHQgZmlsZSBhbmQgbWFrZSB0aGVtIG1vcmUgc3BlY2lmaWMuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanM6CisgICAgICAgIChXSS5DYW52YXMuZGlz
cGxheU5hbWVGb3JDb250ZXh0VHlwZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVjb3JkaW5nLmpzOgorICAgICAgICAoV0kuUmVjb3JkaW5nLmRpc3BsYXlOYW1lRm9yUmVjb3Jk
aW5nVHlwZSk6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogZml4IGxvY2FsaXplZCBzdHJpbmdz
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5j
c3M6CisgICAgICAgIERyaXZlLWJ5OiBkcm9wIGA6bm90KC50YWIpYCBmcm9tIGFsbCBzZWxlY3Rv
cnMgc2luY2UgdGhlIFJlY29yZGluZyBUYWIgZG9lc24ndCBleGlzdCBhbnltb3JlLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9J
bWFnZXMvR3JhcGhpY3Muc3ZnOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcuCisgICAgICAgICogTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9U
ZXN0Lmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanM6CisgICAgICAg
IChXSS5sb2FkZWQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNz
LmpzOgorICAgICAgICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdEVtcHR5KTogQWRkZWQu
CisgICAgICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuZXhwZWN0Tm90RW1wdHkpOiBBZGRlZC4K
KyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0YXRpb25NZXNzYWdlRm9ybWF0
KToKKyAgICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fZXhwZWN0ZWRWYWx1ZUZvcm1hdCk6
CisgICAgICAgIEFkZCB1dGlsaXR5IGZ1bmN0aW9uIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBn
aXZlbiB2YWx1ZSBpcyBlbXB0eToKKyAgICAgICAgIC0gQXJyYXkgYGxlbmd0aCA9PT0gMGAKKyAg
ICAgICAgIC0gU3RyaW5nIGBsZW5ndGggPT09IDBgCisgICAgICAgICAtIFNldCBgc2l6ZSA9PT0g
MGAKKyAgICAgICAgIC0gTWFwIGBzaXplID09PSAwYAorICAgICAgICAgLSBPYmplY3QgYGlzRW1w
dHlPYmplY3RgCisgICAgICAgIEFueSBvdGhlciB0eXBlIHdpbGwgYXV0b21hdGljYWxseSBmYWls
LCBhcyBub24tb2JqZWN0cyBjYW4ndCBiZSAiZW1wdHkiIChlLmcuIGA0MmApLgorCiAyMDIwLTAx
LTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBkb24ndCB1c2UgYDptYXRjaGVzKDpiZWZvcmUsIDphZnRlcilgIGFmdGVyIHIyNTUw
NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
QW5pbWF0aW9uLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0FuaW1hdGlvbi5qc29uCmluZGV4IGJlYWY4ZGUyOGFjNzUzZTM3ZWYyYmU4OWMwMWZjYjBiZDUz
ZGFmYmIuLjIyZWU4ODI0Nzk5OWNkNTgyNWE1ZWEzMTY3N2VmNmI0NzRjNjgxNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRp
b24uanNvbgpAQCAtMTQsNiArMTQsNTEgQEAKICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIs
CiAgICAgICAgICAgICAiZW51bSI6IFsicmVhZHkiLCAiZGVsYXllZCIsICJhY3RpdmUiLCAiY2Fu
Y2VsZWQiLCAiZG9uZSJdCiAgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6
ICJQbGF5YmFja0RpcmVjdGlvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAg
ICAgICAgICAgImVudW0iOiBbIm5vcm1hbCIsICJyZXZlcnNlIiwgImFsdGVybmF0ZSIsICJhbHRl
cm5hdGUtcmV2ZXJzZSJdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6
ICJGaWxsTW9kZSIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAg
ImVudW0iOiBbIm5vbmUiLCAiZm9yd2FyZHMiLCAiYmFja3dhcmRzIiwgImJvdGgiLCAiYXV0byJd
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJBbmltYXRpb24iLAor
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmlt
YXRpb25JZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNzc0FuaW1hdGlvbk5hbWUi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXF1
YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYGFuaW1hdGlvbi1uYW1lYCBDU1MgcHJvcGVydHkuIFNo
b3VsZCBub3QgYmUgcHJvdmlkZWQgaWYgYHRyYW5zaXRpb25Qcm9wZXJ0eWAgaXMgYWxzbyBwcm92
aWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjc3NUcmFuc2l0aW9uUHJvcGVy
dHkiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
RXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYHRyYW5zaXRpb24tcHJvcGVydHlgIENTUyBwcm9w
ZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92aWRlZCBpZiBgYW5pbWF0aW9uTmFtZWAgaXMgYWxzbyBw
cm92aWRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6
ICJFZmZlY3QiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJiYWNrdHJhY2UiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ29uc29s
ZS5DYWxsRnJhbWUiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJCYWNrdHJh
Y2UgdGhhdCB3YXMgY2FwdHVyZWQgd2hlbiB0aGlzIGBXZWJBbmltYXRpb25gIHdhcyBjcmVhdGVk
LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
aWQiOiAiRWZmZWN0IiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0RGVsYXki
LCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJlbmREZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvbkNvdW50IiwgInR5cGUiOiAi
bnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBpdGVy
YXRpb25zIGluIHRoZSBhbmltYXRpb24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aXRlcmF0aW9uU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiSW5kZXggb2Ygd2hpY2ggaXRlcmF0aW9uIHRvIHN0YXJ0IGF0LiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlvbkR1cmF0aW9uIiwgInR5cGUiOiAibnVt
YmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRvdGFsIHRpbWUgb2YgZWFj
aCBpdGVyYXRpb24sIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcy4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ0aW1pbmdGdW5jdGlvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1MgdGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBvdmVy
YWxsIGFuaW1hdGlvbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwbGF5YmFja0Rp
cmVjdGlvbiIsICIkcmVmIjogIlBsYXliYWNrRGlyZWN0aW9uIiwgIm9wdGlvbmFsIjogdHJ1ZSB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZmlsbE1vZGUiLCAiJHJlZiI6ICJGaWxsTW9k
ZSIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImtleWZy
YW1lcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJLZXlmcmFtZSIgfSwg
Im9wdGlvbmFsIjogdHJ1ZSB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJpZCI6ICJLZXlmcmFtZSIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRGVjaW1hbCBw
ZXJjZW50YWdlIFswLDFdIHJlcHJlc2VudGluZyB3aGVyZSB0aGlzIGtleWZyYW1lIGlzIGluIHRo
ZSBlbnRpcmUgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbi4iIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJlYXNpbmciLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiQ1NTIHRpbWluZyBmdW5jdGlvbiBmb3IgaG93IHRoZSBgc3R5bGVgIGlz
IGFwcGxpZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGUiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ1NTIHN0eWxlIGRl
Y2xhcmF0aW9uIG9mIHRoZSBDU1MgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgYW5pbWF0ZWQuIiB9
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJpZCI6
ICJUcmFja2luZ1VwZGF0ZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLApAQCAtMjcs
NiArNzIsMzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWworICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkVuYWJsZXMgQ2FudmFzIGRvbWFpbiBldmVudHMuIgorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJEaXNhYmxlcyBDYW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RFZmZlY3RUYXJnZXQiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkdldHMgdGhlIGBET00uTm9kZUlkYCBmb3IgdGhlIHRhcmdl
dCBvZiB0aGUgZWZmZWN0IG9mIHRoZSBhbmltYXRpb24gd2l0aCB0aGUgZ2l2ZW4gYEFuaW1hdGlv
bklkYC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiB9CisgICAgICAgICAgICBdCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlc29sdmVBbmltYXRpb24iLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc29sdmVzIEphdmFTY3JpcHQgYFdlYkFuaW1h
dGlvbmAgb2JqZWN0IGZvciBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRy
ZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RH
cm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJTeW1ib2xpYyBncm91cCBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVsZWFzZSBtdWx0aXBs
ZSBvYmplY3RzLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWwor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiUnVudGltZS5SZW1v
dGVPYmplY3QiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAg
ICAgICAgIm5hbWUiOiAic3RhcnRUcmFja2luZyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiU3RhcnQgdHJhY2tpbmcgYW5pbWF0aW9ucy4gVGhpcyB3aWxsIHByb2R1Y2UgYSBgdHJhY2tp
bmdTdGFydGAgZXZlbnQuIgpAQCAtMzcsNiArMTExLDM1IEBACiAgICAgICAgIH0KICAgICBdLAog
ICAgICJldmVudHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFuaW1hdGlv
bkNyZWF0ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2
ZXIgYSBgV2ViQW5pbWF0aW9uYCBpcyBjcmVhdGVkLiIsCisgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbiIsICIkcmVmIjogIkFu
aW1hdGlvbiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJlZmZlY3RDaGFuZ2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFu
Z2VkIGluIGFueSB3YXkuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIG9taXR0ZWQgd2hlbiB0aGUg
ZWZmZWN0IGlzIHJlbW92ZWQgd2l0aG91dCBhIHJlcGxhY2VtZW50LiIgfQorICAgICAgICAgICAg
XQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ0YXJnZXRDaGFu
Z2VkIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIHRo
ZSB0YXJnZXQgb2YgYW55IGVmZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55
IHdheS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFuaW1hdGlv
bkRlc3Ryb3llZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVu
ZXZlciBhIGBXZWJBbmltYXRpb25gIGlzIGRlc3Ryb3llZC4iLAorICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVm
IjogIkFuaW1hdGlvbklkIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsK
ICAgICAgICAgICAgICJuYW1lIjogInRyYWNraW5nU3RhcnQiLAogICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkRpc3BhdGNoZWQgYWZ0ZXIgYHN0YXJ0VHJhY2tpbmdgIGNvbW1hbmQuIiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuaAppbmRleCBiZWIwODUzN2U4YTU0NjljNmExZmY0N2ZkYzVkMjNhOTg1Mzg2Nzky
Li5hMzEzNGIzNDdmZWRlMzIzMWVjOGVhZjIyZTY3ZmZmNWNmZTc4ZmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisKICNpbmNsdWRlIDx3dGYv
UGxhdGZvcm0uaD4KIAogLyoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9D
U1NBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5j
cHAKaW5kZXggN2M3MmY2MjRjMzMwYWY5NmJhNzBiN2FlNGU5MmI1MDFjYTEwMTA3ZS4uZmQzZWI5
ZGJkZTliYzFhYjBiOTdmMGEwNzFlMDBlODBmYjgxMzEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFu
aW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTM5LDYgKzQwLDkgQEAgUmVmPENTU0FuaW1hdGlvbj4g
Q1NTQW5pbWF0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3duaW5nRWxlbWVudCwgY29uc3QgQW5pbWF0
aW9uJgogewogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDU1NBbmltYXRpb24ob3du
aW5nRWxlbWVudCwgYmFja2luZ0FuaW1hdGlvbiwgbmV3U3R5bGUpKTsKICAgICByZXN1bHQtPmlu
aXRpYWxpemUob2xkU3R5bGUsIG5ld1N0eWxlKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJh
bnNpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAK
aW5kZXggZGZmNWZiMWY3OWE4OWM1NjYwYTQ5YzFiMzY0M2RkMDdkODI0MzI3MS4uYWFhZTVlMmQw
YzYxNzIwY2QxMDhkZDZkY2U1OTUxOWNhMGFjM2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9DU1NUcmFuc2l0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQW5p
bWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNDAsNiArNDEsOSBAQCBSZWY8Q1NTVHJhbnNpdGlv
bj4gQ1NTVHJhbnNpdGlvbjo6Y3JlYXRlKEVsZW1lbnQmIG93bmluZ0VsZW1lbnQsIENTU1Byb3Bl
cnR5SUQgcAogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDU1NUcmFuc2l0aW9uKG93
bmluZ0VsZW1lbnQsIHByb3BlcnR5LCBnZW5lcmF0aW9uVGltZSwgYmFja2luZ0FuaW1hdGlvbiwg
bmV3U3R5bGUsIHJldmVyc2luZ0FkanVzdGVkU3RhcnRTdHlsZSwgcmV2ZXJzaW5nU2hvcnRlbmlu
Z0ZhY3RvcikpOwogICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOwog
ICAgIHJlc3VsdC0+c2V0VGltaW5nUHJvcGVydGllcyhkZWxheSwgZHVyYXRpb24pOworCisgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0Lmdl
dCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IDJiNGQ4NmQ4Y2MyNTllYzFkZDU0YTI5NTk2NmVm
Mzk5Y2Y5ZjkxOWQuLjNhZjVkMzdjZTRlOGM3ZTlkNTJkYjgwOWIzNzFjZGMzNDlkZjhkZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtMTEwMiw3
ICsxMTAyLDcgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6aW52YWxpZGF0ZSgpCiAKIHZvaWQgS2V5
ZnJhbWVFZmZlY3Q6OmNvbXB1dGVTaG91bGRSdW5BY2NlbGVyYXRlZCgpCiB7Ci0gICAgbV9zaG91
bGRSdW5BY2NlbGVyYXRlZCA9IGhhc0JsZW5kaW5nS2V5ZnJhbWVzKCk7CisgICAgbV9zaG91bGRS
dW5BY2NlbGVyYXRlZCA9ICEhbV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7CiAgICAgZm9yIChh
dXRvIGNzc1Byb3BlcnR5SWQgOiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKSkgewog
ICAgICAgICBpZiAoIUNTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25PZlByb3BlcnR5SXNB
Y2NlbGVyYXRlZChjc3NQcm9wZXJ0eUlkKSkgewogICAgICAgICAgICAgbV9zaG91bGRSdW5BY2Nl
bGVyYXRlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
aAppbmRleCA4NTYwOTgxMjYwM2JmNzMwMDU4NTUzZmZjYTMwMDExN2JmN2JmZDlkLi5kNTllMjg5
NWUwYzM5N2UzYzk0OTQ2MzI4Yzk4ODBjYzg5MjZlZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAgICAg
IENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0byBjb21wb3NpdGUgeyBDb21wb3NpdGVPcGVyYXRpb25P
ckF1dG86OkF1dG8gfTsKICAgICB9OwogCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZEtleWZyYW1l
PiYgcGFyc2VkS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZWRLZXlmcmFtZXM7IH0K
KwogICAgIEVsZW1lbnQqIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0LmdldCgpOyB9
CiAgICAgdm9pZCBzZXRUYXJnZXQoUmVmUHRyPEVsZW1lbnQ+JiYpOwogCkBAIC0xMzUsNyArMTM3
LDcgQEAgcHVibGljOgogICAgIGJvb2wgY29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2goKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoOyB9
CiAKICAgICB2b2lkIGNvbXB1dGVEZWNsYXJhdGl2ZUFuaW1hdGlvbkJsZW5kaW5nS2V5ZnJhbWVz
KGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxl
KTsKLSAgICBib29sIGhhc0JsZW5kaW5nS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVu
ZGluZ0tleWZyYW1lcy5zaXplKCk7IH0KKyAgICBjb25zdCBLZXlmcmFtZUxpc3QmIGJsZW5kaW5n
S2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lczsgfQogICAgIGNv
bnN0IEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4mIGFuaW1hdGVkUHJvcGVydGllcygpIGNvbnN0IHsg
cmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMucHJvcGVydGllcygpOyB9CiAKICAgICBib29sIGNv
bXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFuaW1hdGlvbihMYXlvdXRSZWN0JikgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDNiODc5MGFhM2Q5ZWQy
NjVkMTc2ZGZjN2ExYjVmNDQ4NjUyNzNiNzcuLjU0ZWU5ZGYxNzE0ZWRiMzI2M2Y3NjhlOTFkYzQ2
MDg5NjRkZTUyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmlt
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
CkBAIC00NSw2ICs0NSw4IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUg
IldlYkFuaW1hdGlvblV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01MywxMSArNTUsMzAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2Vi
QW5pbWF0aW9uKTsKIAorSGFzaFNldDxXZWJBbmltYXRpb24qPiYgV2ViQW5pbWF0aW9uOjppbnN0
YW5jZXMoY29uc3QgTG9ja0hvbGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhh
c2hTZXQ8V2ViQW5pbWF0aW9uKj4+IGluc3RhbmNlczsKKyAgICByZXR1cm4gaW5zdGFuY2VzOwor
fQorCitMb2NrJiBXZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KCkKK3sKKyAgICBzdGF0aWMg
TGF6eU5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBpbml0aWFsaXplTXV0ZXg7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU11dGV4LCBb
XSB7CisgICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBtdXRl
eC5nZXQoKTsKK30KKwogUmVmPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBBbmltYXRpb25FZmZlY3QqIGVmZmVjdCkKIHsKICAgICBhdXRvIHJl
c3VsdCA9IGFkb3B0UmVmKCpuZXcgV2ViQW5pbWF0aW9uKGRvY3VtZW50KSk7CiAgICAgcmVzdWx0
LT5zZXRFZmZlY3QoZWZmZWN0KTsKICAgICByZXN1bHQtPnNldFRpbWVsaW5lKCZkb2N1bWVudC50
aW1lbGluZSgpKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
QW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC02
Nyw2ICs4OCw5IEBAIFJlZjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgQW5pbWF0aW9uRWZmZWN0KiBlZmZlCiAgICAgcmVzdWx0LT5zZXRFZmZl
Y3QoZWZmZWN0KTsKICAgICBpZiAodGltZWxpbmUpCiAgICAgICAgIHJlc3VsdC0+c2V0VGltZWxp
bmUodGltZWxpbmUpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVX
ZWJBbmltYXRpb24ocmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAg
LTc3LDYgKzEwMSw5IEBAIFdlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICBtX3JlYWR5UHJvbWlzZS0+cmVzb2x2ZSgqdGhpcyk7CiAgICAgc3VzcGVu
ZElmTmVlZGVkKCk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7Cisg
ICAgaW5zdGFuY2VzKGxvY2spLmFkZCh0aGlzKTsKIH0KIAogV2ViQW5pbWF0aW9uOjp+V2ViQW5p
bWF0aW9uKCkKQEAgLTg1LDYgKzExMiwxMCBAQCBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24o
KQogCiAgICAgaWYgKG1fdGltZWxpbmUpCiAgICAgICAgIG1fdGltZWxpbmUtPmZvcmdldEFuaW1h
dGlvbih0aGlzKTsKKworICAgIExvY2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAg
ICBBU1NFUlQoaW5zdGFuY2VzKGxvY2spLmNvbnRhaW5zKHRoaXMpKTsKKyAgICBpbnN0YW5jZXMo
bG9jaykucmVtb3ZlKHRoaXMpOwogfQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6Y29udGV4dERlc3Ry
b3llZCgpCkBAIC0xMTYsNiArMTQ3LDggQEAgdm9pZCBXZWJBbmltYXRpb246OnVuc3VzcGVuZEVm
ZmVjdEludmFsaWRhdGlvbigpCiB2b2lkIFdlYkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlkQ2hh
bmdlKCkKIHsKICAgICB0aW1pbmdEaWRDaGFuZ2UoRGlkU2Vlazo6Tm8sIFN5bmNocm9ub3VzbHlO
b3RpZnk6Olllcyk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdFRpbWluZygqdGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpz
ZXRFZmZlY3QoUmVmUHRyPEFuaW1hdGlvbkVmZmVjdD4mJiBuZXdFZmZlY3QpCkBAIC0xOTAsNyAr
MjIzLDcgQEAgdm9pZCBXZWJBbmltYXRpb246OnNldEVmZmVjdEludGVybmFsKFJlZlB0cjxBbmlt
YXRpb25FZmZlY3Q+JiYgbmV3RWZmZWN0LCBib29sIGQKICAgICAgICAgICAgIG1fdGltZWxpbmUt
PmFuaW1hdGlvbldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKICAgICB9CiAK
LSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVj
dCgqdGhpcyk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRp
b25FZmZlY3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmUoUmVm
UHRyPEFuaW1hdGlvblRpbWVsaW5lPiYmIHRpbWVsaW5lKQpAQCAtMjQ5LDE0ICsyODIsMTUgQEAg
dm9pZCBXZWJBbmltYXRpb246OnNldFRpbWVsaW5lSW50ZXJuYWwoUmVmUHRyPEFuaW1hdGlvblRp
bWVsaW5lPiYmIHRpbWVsaW5lKQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlk
Q2hhbmdlKEVsZW1lbnQqIHByZXZpb3VzVGFyZ2V0LCBFbGVtZW50KiBuZXdUYXJnZXQpCiB7Ci0g
ICAgaWYgKCFtX3RpbWVsaW5lKQotICAgICAgICByZXR1cm47CisgICAgaWYgKG1fdGltZWxpbmUp
IHsKKyAgICAgICAgaWYgKHByZXZpb3VzVGFyZ2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+
YW5pbWF0aW9uV2FzUmVtb3ZlZEZyb21FbGVtZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOwog
Ci0gICAgaWYgKHByZXZpb3VzVGFyZ2V0KQotICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25X
YXNSZW1vdmVkRnJvbUVsZW1lbnQoKnRoaXMsICpwcmV2aW91c1RhcmdldCk7CisgICAgICAgIGlm
IChuZXdUYXJnZXQpCisgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRv
RWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7CisgICAgfQogCi0gICAgaWYgKG5ld1RhcmdldCkK
LSAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpu
ZXdUYXJnZXQpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5p
bWF0aW9uRWZmZWN0VGFyZ2V0KCp0aGlzKTsKIH0KIAogT3B0aW9uYWw8ZG91YmxlPiBXZWJBbmlt
YXRpb246OnN0YXJ0VGltZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0
aW9uLmgKaW5kZXggZGE0ZDhlYzNiYzJlNTcwYjQ4YTUxZGJjMTRhMzQ0ZTZjNDliYTA3MC4uYzk5
NjEzYjI2NjFkNzY1ZjBlZTNiODZkNjE0ZjljZDJiN2RjMjNiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2Vw
dGlvbk9yLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb25V
dGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXJr
YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29u
ZHMuaD4KQEAgLTU0LDYgKzU1LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQW5pbWF0
aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBBbmltYXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1lbGlu
ZSopOwogICAgIH5XZWJBbmltYXRpb24oKTsKIAorICAgIHN0YXRpYyBIYXNoU2V0PFdlYkFuaW1h
dGlvbio+JiBpbnN0YW5jZXMoY29uc3QgTG9ja0hvbGRlciYpOworICAgIHN0YXRpYyBMb2NrJiBp
bnN0YW5jZXNNdXRleCgpOworCiAgICAgdmlydHVhbCBib29sIGlzRGVjbGFyYXRpdmVBbmltYXRp
b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU0FuaW1h
dGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ1NTVHJh
bnNpdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGQwYzQzMGUy
YmI4ODBhNmUzNTgzYTk5OGQ2ZGNmYzE0M2JkNmViZGUuLjNkYzdiNDk0ZDY2NTZhOTFjN2RkOWM2
OGUxYzllYWY3ODk2NjZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC03MjAsNiArNzIwLDkgQEAgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnQKICAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0Fn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQogICAgICAg
ICBjYW52YXNBZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOwogCisgICAgaWYgKGF1dG8qIGFu
aW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmZyYW1lTmF2aWdhdGVkKGZyYW1l
KTsKKwogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgIGRvbUFnZW50LT5kaWRDb21taXRM
b2FkKGZyYW1lLmRvY3VtZW50KCkpOwogCkBAIC0xMTMwLDE1ICsxMTMzLDM3IEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYKICAgICAgICAgYW5pbWF0aW9uQWdlbnQtPndpbGxBcHBseUtleWZyYW1l
RWZmZWN0KHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRpbWluZyk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1hdGlvbkVm
ZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCiB7Ci0gICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCi0gICAg
ICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9u
KTsKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVu
YWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+
ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7CisgICAgZWxzZSBpZiAoYXV0byog
YW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZFNldFdlYkFuaW1hdGlv
bkVmZmVjdChhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBp
ZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlv
bkFnZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoYW5pbWF0aW9uKTsKK30K
Kwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbklt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5pbWF0aW9u
JiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5p
bWF0aW9uQWdlbnQtPmRpZENyZWF0ZVdlYkFuaW1hdGlvbihhbmltYXRpb24pOwogfQogCiB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQogewotICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgIGlmIChhdXRvKiBh
bmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1h
dGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsRGVzdHJveVdlYkFuaW1h
dGlvbihhbmltYXRpb24pOworICAgIGVsc2UgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCiAgICAg
ICAgIGFuaW1hdGlvbkFnZW50LT53aWxsRGVzdHJveVdlYkFuaW1hdGlvbihhbmltYXRpb24pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKaW5kZXggZTc4MTgzNjQwYTI5OWFlNDEwNzI4NWVmNGMyOGFjODFkOTQwYTFkMC4u
YjI0NmVhYTU1OWE3NTI2NWM4OTBkZmE0N2QwMWQzMTFjMTg2YTQwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMzA1
LDcgKzMwNSwxMCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxBcHBs
eUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0
VGltaW5nKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2Vi
QW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdl
YkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVj
dFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmlt
YXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3Jl
YXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0
cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgbmV0d29y
a1N0YXRlQ2hhbmdlZChQYWdlJik7CkBAIC01MDUsNyArNTA4LDEwIEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RU
aW1pbmcpOwotICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1h
dGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2
b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkFuaW1h
dGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOwogICAgIHN0YXRp
YyB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
V2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0aWMgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2VJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmKTsKQEAgLTE0NjYsMTEgKzE0NzIsMzIgQEAgaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVt
ZW50JiB0YXJnZXQsIEsKICAgICAgICAgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3RJbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCB0YXJnZXQsIGVmZmVjdCwgY29tcHV0ZWRUaW1pbmcpOwogfQogCi1p
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAg
IGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNv
bnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCi0gICAgICAgIGRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlv
bik7CisgICAgICAgIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwoKmluc3RydW1lbnRpbmdB
Z2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAg
IGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNv
bnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgIGRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFu
aW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQor
eworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRv
KiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5p
bWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgIGRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRhcmdldEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7
Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lG
X05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkpCisgICAgICAgIGRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRp
b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5j
cHAKaW5kZXggMWY5YTBkN2M1MzJhM2Y5MDg1NmMxODRhMWZmYzNiMWNmMzVlZmM4Ny4uZDdhMmY3
MTk1OGQ5NDNjY2NhYzQzNGVhYzkzZTMzZGFlMjdjYzQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcApAQCAtNzAsNiArNzAsNyBAQCB2
b2lkIEluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KCkKICAgICBtX3BhZ2VET01EZWJ1Z2dlckFn
ZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3BlY3RvckNhbnZhc0FnZW50ID0gbnVsbHB0cjsKICAg
ICBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CisgICAgbV9l
bmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRyOwogICAgIG1fdHJhY2tpbmdJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4IGY2ZmVhN2RhMjEzNjBkZDA4
Y2MzZDk2NmIxNGUyYWFjNDY1NDQ5MTUuLmY1OWMzZGJkY2FmNzhjZjljNmQ4ZGJiNDMyZGNjZjIy
ZjE1ZDUwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50
aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuaApAQCAtMTU2LDYgKzE1Niw5IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCogcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7IH0KICAgICB2b2lkIHNldFBl
cnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCog
YWdlbnQpIHsgbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQog
CisgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25B
Z2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9
CisgICAgdm9pZCBzZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50ID0g
YWdlbnQ7IH0KKwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiB0cmFja2luZ0luc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1cm4gbV90cmFja2luZ0luc3BlY3RvckFuaW1h
dGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRUcmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50
KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX3RyYWNraW5nSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQgPSBhZ2VudDsgfQogCkBAIC0xOTAsNiArMTkzLDcgQEAgcHJpdmF0ZToKICAg
ICBQYWdlRE9NRGVidWdnZXJBZ2VudCogbV9wYWdlRE9NRGVidWdnZXJBZ2VudCB7IG51bGxwdHIg
fTsKICAgICBJbnNwZWN0b3JDYW52YXNBZ2VudCogbV9pbnNwZWN0b3JDYW52YXNBZ2VudCB7IG51
bGxwdHIgfTsKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogbV9wZXJzaXN0ZW50SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CisgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQqIG1fZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50IHsgbnVsbHB0ciB9OwogICAgIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQg
eyBudWxscHRyIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwCmluZGV4IGRlOWEyYzU5YmRh
YmMyOTA4OTZjOTYzOWNlYWJiNGUyYzQ3M2I4MjkuLjIxNDNiM2RiZWYwYjEyOGYwZDdmMzdkZWMw
ZDY1MTZiYTlhOGZkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwCkBAIC0yOSwyOSArMjksMTk4
IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZm
ZWN0UGhhc2UuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb24uaCIKKyNpbmNsdWRlICJDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAj
aW5jbHVkZSAiQ1NTVHJhbnNpdGlvbi5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVk
ZSAiRGVjbGFyYXRpdmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJGaWxsTW9kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdl
bnRzLmgiCisjaW5jbHVkZSAiSlNXZWJBbmltYXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUVm
ZmVjdC5oIgorI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJQbGF5YmFja0RpcmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
KyNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvbi5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lkZW50aWZpZXJzRmFjdG9yeS5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckVudmlyb25tZW50Lmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4K
ICNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVj
dG9yOwogCitzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhj
b25zdCBTZWNvbmRzJiBzZWNvbmRzKQoreworICAgIGlmIChzZWNvbmRzID09IFNlY29uZHM6Omlu
ZmluaXR5KCkgfHwgc2Vjb25kcyA9PSBTZWNvbmRzOjpuYW4oKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICByZXR1cm4gc2Vjb25kcy5taWxsaXNlY29uZHMoKTsKK30KKworc3Rh
dGljIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJl
Y3Rpb24+IHByb3RvY29sVmFsdWVGb3JQbGF5YmFja0RpcmVjdGlvbihQbGF5YmFja0RpcmVjdGlv
biBwbGF5YmFja0RpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKHBsYXliYWNrRGlyZWN0aW9uKSB7
CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsOgorICAgICAgICByZXR1cm4gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsOwor
ICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OlJldmVyc2U6CisgICAgICAgIHJldHVybiBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uOjpSZXZlcnNlOwor
ICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZToKKyAgICAgICAgcmV0dXJuIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0
ZTsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGVSZXZlcnNlOgorICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0RpcmVjdGlv
bjo6QWx0ZXJuYXRlUmV2ZXJzZTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCitzdGF0aWMgT3B0aW9uYWw8SW5zcGVjdG9y
OjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZT4gcHJvdG9jb2xWYWx1ZUZvckZpbGxNb2Rl
KEZpbGxNb2RlIGZpbGxNb2RlKQoreworICAgIHN3aXRjaCAoZmlsbE1vZGUpIHsKKyAgICBjYXNl
IEZpbGxNb2RlOjpOb25lOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5p
bWF0aW9uOjpGaWxsTW9kZTo6Tm9uZTsKKyAgICBjYXNlIEZpbGxNb2RlOjpGb3J3YXJkczoKKyAg
ICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkZv
cndhcmRzOworICAgIGNhc2UgRmlsbE1vZGU6OkJhY2t3YXJkczoKKyAgICAgICAgcmV0dXJuIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkJhY2t3YXJkczsKKyAgICBj
YXNlIEZpbGxNb2RlOjpCb3RoOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6
QW5pbWF0aW9uOjpGaWxsTW9kZTo6Qm90aDsKKyAgICBjYXNlIEZpbGxNb2RlOjpBdXRvOgorICAg
ICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6QXV0
bzsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworfQorCitzdGF0aWMgUmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6QW5pbWF0aW9uOjpLZXlmcmFtZT4+IGJ1aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKEtleWZyYW1l
RWZmZWN0JiBrZXlmcmFtZUVmZmVjdCkKK3sKKyAgICBhdXRvIGtleWZyYW1lc1BheWxvYWQgPSBK
U09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU+Ojpj
cmVhdGUoKTsKKworICAgIGNvbnN0IGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWVzID0ga2V5ZnJhbWVF
ZmZlY3QuYmxlbmRpbmdLZXlmcmFtZXMoKTsKKyAgICBjb25zdCBhdXRvJiBwYXJzZWRLZXlmcmFt
ZXMgPSBrZXlmcmFtZUVmZmVjdC5wYXJzZWRLZXlmcmFtZXMoKTsKKworICAgIGlmIChpczxEZWNs
YXJhdGl2ZUFuaW1hdGlvbj4oa2V5ZnJhbWVFZmZlY3QuYW5pbWF0aW9uKCkpKSB7CisgICAgICAg
IEFTU0VSVChrZXlmcmFtZUVmZmVjdC50YXJnZXQoKSk7CisgICAgICAgIGF1dG8qIHJlbmRlcmVy
ID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCktPnJlbmRlcmVyKCk7CisKKyAgICAgICAgLy8gU3lu
dGhlc2l6ZSBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGZvciBlYWNoIGtleWZyYW1lIHNvIHRoZSBm
cm9udGVuZCBjYW4gZGlzcGxheSB0aGVtLgorICAgICAgICBDb21wdXRlZFN0eWxlRXh0cmFjdG9y
IGNvbXB1dGVkU3R5bGVFeHRyYWN0b3Ioa2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCkpOworCisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgICAgIGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWUgPSBibGVuZGluZ0tleWZyYW1l
c1tpXTsKKworICAgICAgICAgICAgQVNTRVJUKGJsZW5kaW5nS2V5ZnJhbWUuc3R5bGUoKSk7Cisg
ICAgICAgICAgICBhdXRvJiBzdHlsZSA9ICpibGVuZGluZ0tleWZyYW1lLnN0eWxlKCk7CisKKyAg
ICAgICAgICAgIGF1dG8ga2V5ZnJhbWVQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5p
bWF0aW9uOjpLZXlmcmFtZTo6Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAuc2V0T2Zmc2V0KGJs
ZW5kaW5nS2V5ZnJhbWUua2V5KCkpCisgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKworICAg
ICAgICAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbjsKKyAgICAgICAg
ICAgIGlmICghcGFyc2VkS2V5ZnJhbWVzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICB0aW1p
bmdGdW5jdGlvbiA9IHBhcnNlZEtleWZyYW1lc1tpXS50aW1pbmdGdW5jdGlvbjsKKyAgICAgICAg
ICAgIGlmICghdGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24g
PSBibGVuZGluZ0tleWZyYW1lLnRpbWluZ0Z1bmN0aW9uKCk7CisgICAgICAgICAgICBpZiAoIXRp
bWluZ0Z1bmN0aW9uKQorICAgICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gZG93bmNhc3Q8
RGVjbGFyYXRpdmVBbmltYXRpb24+KCprZXlmcmFtZUVmZmVjdC5hbmltYXRpb24oKSkuYmFja2lu
Z0FuaW1hdGlvbigpLnRpbWluZ0Z1bmN0aW9uKCk7CisgICAgICAgICAgICBpZiAodGltaW5nRnVu
Y3Rpb24pCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRFYXNpbmcodGltaW5n
RnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc3R5bGVQ
YXlsb2FkQnVpbGRlcjsKKyAgICAgICAgICAgIGF1dG8mIGNzc1Byb3BlcnR5SWRzID0gYmxlbmRp
bmdLZXlmcmFtZS5wcm9wZXJ0aWVzKCk7CisgICAgICAgICAgICBzaXplX3QgY291bnQgPSBjc3NQ
cm9wZXJ0eUlkcy5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGF1dG8gY3NzUHJvcGVydHlJZCA6
IGNzc1Byb3BlcnR5SWRzKSB7CisgICAgICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAg
ICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0eUN1c3RvbSkKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVy
LmFwcGVuZChnZXRQcm9wZXJ0eU5hbWVTdHJpbmcoY3NzUHJvcGVydHlJZCkpOworICAgICAgICAg
ICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCI6ICIpOworICAgICAgICAgICAgICAg
IGlmIChhdXRvIHZhbHVlID0gY29tcHV0ZWRTdHlsZUV4dHJhY3Rvci52YWx1ZUZvclByb3BlcnR5
SW5TdHlsZShzdHlsZSwgY3NzUHJvcGVydHlJZCwgcmVuZGVyZXIpKQorICAgICAgICAgICAgICAg
ICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCh2YWx1ZS0+Y3NzVGV4dCgpKTsKKyAgICAg
ICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgnOycpOworICAgICAgICAgICAg
ICAgIGlmIChjb3VudCA+IDApCisgICAgICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXN0eWxlUGF5
bG9hZEJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+
c2V0U3R5bGUoc3R5bGVQYXlsb2FkQnVpbGRlci50b1N0cmluZygpKTsKKworICAgICAgICAgICAg
a2V5ZnJhbWVzUGF5bG9hZC0+YWRkSXRlbShXVEZNb3ZlKGtleWZyYW1lUGF5bG9hZCkpOworICAg
ICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYXJzZWRLZXlm
cmFtZSA6IHBhcnNlZEtleWZyYW1lcykgeworICAgICAgICAgICAgYXV0byBrZXlmcmFtZVBheWxv
YWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OktleWZyYW1lOjpjcmVhdGUoKQor
ICAgICAgICAgICAgICAgIC5zZXRPZmZzZXQocGFyc2VkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQp
CisgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKworICAgICAgICAgICAgaWYgKCFwYXJzZWRL
ZXlmcmFtZS5lYXNpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9h
ZC0+c2V0RWFzaW5nKHBhcnNlZEtleWZyYW1lLmVhc2luZyk7CisgICAgICAgICAgICBlbHNlIGlm
IChjb25zdCBhdXRvJiB0aW1pbmdGdW5jdGlvbiA9IHBhcnNlZEtleWZyYW1lLnRpbWluZ0Z1bmN0
aW9uKQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0RWFzaW5nKHRpbWluZ0Z1
bmN0aW9uLT5jc3NUZXh0KCkpOworCisgICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZyYW1lLnN0
eWxlLT5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2FkLT5zZXRTdHls
ZShwYXJzZWRLZXlmcmFtZS5zdHlsZS0+YXNUZXh0KCkpOworCisgICAgICAgICAgICBrZXlmcmFt
ZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXlsb2FkKSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4ga2V5ZnJhbWVzUGF5bG9hZDsKK30KKworc3RhdGljIFJlZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdD4gYnVpbGRPYmplY3RGb3JFZmZl
Y3QoQW5pbWF0aW9uRWZmZWN0JiBlZmZlY3QpCit7CisgICAgYXV0byBlZmZlY3RQYXlsb2FkID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q6OmNyZWF0ZSgpCisgICAgICAg
IC5yZWxlYXNlKCk7CisKKyAgICBpZiAoYXV0byBzdGFydERlbGF5ID0gcHJvdG9jb2xWYWx1ZUZv
clNlY29uZHMoZWZmZWN0LmRlbGF5KCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRTdGFy
dERlbGF5KHN0YXJ0RGVsYXkudmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byBlbmREZWxheSA9IHBy
b3RvY29sVmFsdWVGb3JTZWNvbmRzKGVmZmVjdC5lbmREZWxheSgpKSkKKyAgICAgICAgZWZmZWN0
UGF5bG9hZC0+c2V0RW5kRGVsYXkoZW5kRGVsYXkudmFsdWUoKSk7CisKKyAgICBlZmZlY3RQYXls
b2FkLT5zZXRJdGVyYXRpb25Db3VudChlZmZlY3QuaXRlcmF0aW9ucygpKTsKKyAgICBlZmZlY3RQ
YXlsb2FkLT5zZXRJdGVyYXRpb25TdGFydChlZmZlY3QuaXRlcmF0aW9uU3RhcnQoKSk7CisKKyAg
ICBpZiAoYXV0byBpdGVyYXRpb25EdXJhdGlvbiA9IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGVm
ZmVjdC5pdGVyYXRpb25EdXJhdGlvbigpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRl
cmF0aW9uRHVyYXRpb24oaXRlcmF0aW9uRHVyYXRpb24udmFsdWUoKSk7CisKKyAgICBpZiAoYXV0
byogdGltaW5nRnVuY3Rpb24gPSBlZmZlY3QudGltaW5nRnVuY3Rpb24oKSkKKyAgICAgICAgZWZm
ZWN0UGF5bG9hZC0+c2V0VGltaW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7
CisKKyAgICBpZiAoYXV0byBwbGF5YmFja0RpcmVjdGlvbiA9IHByb3RvY29sVmFsdWVGb3JQbGF5
YmFja0RpcmVjdGlvbihlZmZlY3QuZGlyZWN0aW9uKCkpKQorICAgICAgICBlZmZlY3RQYXlsb2Fk
LT5zZXRQbGF5YmFja0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlvbi52YWx1ZSgpKTsKKworICAg
IGlmIChhdXRvIGZpbGxNb2RlID0gcHJvdG9jb2xWYWx1ZUZvckZpbGxNb2RlKGVmZmVjdC5maWxs
KCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9kZShmaWxsTW9kZS52YWx1ZSgp
KTsKKworICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkKKyAgICAgICAgZWZmZWN0
UGF5bG9hZC0+c2V0S2V5ZnJhbWVzKGJ1aWxkT2JqZWN0Rm9yS2V5ZnJhbWVzKGRvd25jYXN0PEtl
eWZyYW1lRWZmZWN0PihlZmZlY3QpKSk7CisKKyAgICByZXR1cm4gZWZmZWN0UGF5bG9hZDsKK30K
KwogSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50KFBhZ2VB
Z2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgOiBJbnNwZWN0b3JBZ2VudEJhc2UoIkFuaW1hdGlv
biJfcywgY29udGV4dCkKICAgICAsIG1fZnJvbnRlbmREaXNwYXRjaGVyKG1ha2VVbmlxdWU8SW5z
cGVjdG9yOjpBbmltYXRpb25Gcm9udGVuZERpc3BhdGNoZXI+KGNvbnRleHQuZnJvbnRlbmRSb3V0
ZXIpKQogICAgICwgbV9iYWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0b3I6OkFuaW1hdGlvbkJhY2tl
bmREaXNwYXRjaGVyOjpjcmVhdGUoY29udGV4dC5iYWNrZW5kRGlzcGF0Y2hlciwgdGhpcykpCisg
ICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihjb250ZXh0LmluamVjdGVkU2NyaXB0TWFuYWdl
cikKKyAgICAsIG1faW5zcGVjdGVkUGFnZShjb250ZXh0Lmluc3BlY3RlZFBhZ2UpCisgICAgLCBt
X2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTY3LDExICsyMzYsMTAz
IEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKICAg
ICBzdG9wVHJhY2tpbmcoaWdub3JlZCk7CisgICAgZGlzYWJsZShpZ25vcmVkKTsKIAogICAgIEFT
U0VSVChtX2luc3RydW1lbnRpbmdBZ2VudHMucGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KCkgPT0gdGhpcyk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldFBlcnNpc3RlbnRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudChudWxscHRyKTsKIH0KIAordm9pZCBJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKK3sKKyAgICBpZiAo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpID09
IHRoaXMpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9uIGRvbWFpbiBhbHJlYWR5
IGVuYWJsZWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMuc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KHRoaXMpOworCisgICAg
Y29uc3QgYXV0byBleGlzdHNJbkN1cnJlbnRQYWdlID0gWyZdIChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGlmICghaXM8RG9jdW1lbnQ+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY4NDc1PiBXZWIgSW5zcGVj
dG9yOiBDb3JyZWN0bHkgZGlzcGxheSBpZnJhbWUncyBXZWJTb2NrZXRzCisgICAgICAgIGF1dG8q
IGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgICAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKSA9PSAmbV9pbnNwZWN0ZWRQYWdlOworICAg
IH07CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhXZWJBbmltYXRpb246Omluc3Rh
bmNlc011dGV4KCkpOworICAgICAgICBmb3IgKGF1dG8qIGFuaW1hdGlvbiA6IFdlYkFuaW1hdGlv
bjo6aW5zdGFuY2VzKGxvY2spKSB7CisgICAgICAgICAgICBpZiAoZXhpc3RzSW5DdXJyZW50UGFn
ZShhbmltYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAg
YmluZEFuaW1hdGlvbigqYW5pbWF0aW9uLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQorewor
ICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQobnVsbHB0cik7CisKKyAgICByZXNldCgpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50OjpyZXF1ZXN0RWZmZWN0VGFyZ2V0KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpCit7CisgICAgYXV0byogYW5pbWF0
aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmltYXRpb25JZCk7CisgICAgaWYg
KCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvbUFnZW50ID0gbV9p
bnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCk7CisgICAgaWYgKCFkb21BZ2Vu
dCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJET00gZG9tYWluIG11c3QgYmUgZW5hYmxlZCJf
czsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGVmZmVjdCA9IGFuaW1hdGlv
bi0+ZWZmZWN0KCk7CisgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkgeworICAg
ICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIGRvZXMg
bm90IGhhdmUgYW4gZWZmZWN0Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byYga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oKmVmZmVjdCk7CisK
KyAgICBhdXRvKiB0YXJnZXQgPSBrZXlmcmFtZUVmZmVjdC50YXJnZXQoKTsKKyAgICBpZiAoIXRh
cmdldCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1h
dGlvbklkIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAqbm9kZUlkID0gZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JT
dHJpbmcsIHRhcmdldCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc29s
dmVBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1h
dGlvbklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KQoreworICAgIGF1dG8qIGFuaW1h
dGlvbiA9IGFzc2VydEFuaW1hdGlvbihlcnJvclN0cmluZywgYW5pbWF0aW9uSWQpOworICAgIGlm
ICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBzdGF0ZSA9IGFuaW1h
dGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5leGVjU3RhdGUoKTsKKyAgICBhdXRvIGlu
amVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5qZWN0ZWRTY3JpcHRGb3Io
c3RhdGUpOworICAgIEFTU0VSVCghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKTsKKworICAg
IEpTQzo6SlNWYWx1ZSB2YWx1ZTsKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxv
Y2soc3RhdGUpOworCisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9i
YWxPYmplY3RGb3JQcm90b3R5cGUoc3RhdGUpOworICAgICAgICB2YWx1ZSA9IHRvSlMoc3RhdGUs
IGdsb2JhbE9iamVjdCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBpZiAoIXZhbHVlKSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBlcnJvclN0cmluZyA9ICJJbnRl
cm5hbCBlcnJvcjogdW5rbm93biBBbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIl9zOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG9iamVjdEdyb3VwTmFtZSA9IG9i
amVjdEdyb3VwID8gKm9iamVjdEdyb3VwIDogU3RyaW5nKCk7CisgICAgcmVzdWx0ID0gaW5qZWN0
ZWRTY3JpcHQud3JhcE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcpCiB7CiAgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcykgewpAQCAtMTcwLDE2ICs0MzEsMTUxIEBAIHZvaWQg
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQm
IHRhcmdldCwgS2V5ZnJhbWVFCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRyYWNraW5nVXBk
YXRlKG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCkuc2Vj
b25kcygpLCBXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikK
K3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChX
ZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRp
b24+KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9u
KGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKTsKKworICAgIGRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24pOworICAgIGRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0
aW9uJiBhbmltYXRpb24pCit7CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5
IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmlt
YXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmIChhbmltYXRpb25J
ZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBlZmZlY3QgPSBh
bmltYXRpb24uZWZmZWN0KCkpCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5lZmZlY3RD
aGFuZ2VkKGFuaW1hdGlvbklkLCBidWlsZE9iamVjdEZvckVmZmVjdCgqZWZmZWN0KSk7CisgICAg
ZWxzZQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZWZmZWN0Q2hhbmdlZChhbmltYXRp
b25JZCwgbnVsbHB0cik7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENo
YW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sK
KyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkgaWYgQW5pbWF0aW9uIGlzIHRy
YWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1hdGlvbklkID0gZmluZEFuaW1h
dGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKGFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRhcmdldENoYW5nZWQoYW5p
bWF0aW9uSWQpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDcmVhdGVX
ZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKCFmaW5kQW5p
bWF0aW9uSWQoYW5pbWF0aW9uKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBiaW5kQW5pbWF0aW9uKGFuaW1h
dGlvbiwgdHJ1ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxEZXN0
cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGlmIChpczxE
ZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkKICAgICAgICAgc3RvcFRyYWNraW5nRGVj
bGFyYXRpdmVBbmltYXRpb24oZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlv
bikpOworCisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlv
biBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZp
bmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmICghYW5pbWF0aW9uSWQuaXNFbXB0eSgp
KQorICAgICAgICB1bmJpbmRBbmltYXRpb24oYW5pbWF0aW9uSWQpOworfQorCit2b2lkIEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpmcmFtZU5hdmlnYXRlZChGcmFtZSYgZnJhbWUpCit7CisgICAg
aWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+IGFuaW1hdGlvbklkc1RvUmVtb3ZlOwor
ICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBhbmltYXRpb25dIDogbV9hbmltYXRpb25JZE1h
cCkgeworICAgICAgICBpZiAoYXV0byogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGFuaW1hdGlv
bi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAgICAgICBpZiAoaXM8RG9jdW1l
bnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkuZnJhbWUoKSA9PSAmZnJhbWUpCisgICAgICAgICAgICAgICAgYW5p
bWF0aW9uSWRzVG9SZW1vdmUuYXBwZW5kKGFuaW1hdGlvbklkKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbklkIDogYW5pbWF0aW9uSWRzVG9SZW1vdmUp
CisgICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7Cit9CisKK1N0cmluZyBJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKFdlYkFuaW1hdGlvbiYgYW5pbWF0
aW9uKQoreworICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBleGlzdGluZ0FuaW1hdGlvbl0g
OiBtX2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChleGlzdGluZ0FuaW1hdGlvbiA9PSAm
YW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbklkOworICAgIH0KKyAgICBy
ZXR1cm4gbnVsbFN0cmluZygpOworfQorCitXZWJBbmltYXRpb24qIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50Ojphc3NlcnRBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbklkKQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9IG1fYW5pbWF0aW9u
SWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgZXJy
b3JTdHJpbmcgPSAiTWlzc2luZyBhbmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIl9zOwor
ICAgIHJldHVybiBhbmltYXRpb247Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6
OmJpbmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24sIGJvb2wgY2FwdHVyZUJhY2t0
cmFjZSkKK3sKKyAgICBhdXRvIGFuaW1hdGlvbklkID0gbWFrZVN0cmluZygiYW5pbWF0aW9uOiIg
KyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSk7CisgICAgbV9hbmltYXRp
b25JZE1hcC5zZXQoYW5pbWF0aW9uSWQsICZhbmltYXRpb24pOworCisgICAgYXV0byBhbmltYXRp
b25QYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpBbmltYXRpb246OmNy
ZWF0ZSgpCisgICAgICAgIC5zZXRBbmltYXRpb25JZChhbmltYXRpb25JZCkKKyAgICAgICAgLnJl
bGVhc2UoKTsKKworICAgIGlmIChpczxDU1NBbmltYXRpb24+KGFuaW1hdGlvbikpCisgICAgICAg
IGFuaW1hdGlvblBheWxvYWQtPnNldENzc0FuaW1hdGlvbk5hbWUoZG93bmNhc3Q8Q1NTQW5pbWF0
aW9uPihhbmltYXRpb24pLmFuaW1hdGlvbk5hbWUoKSk7CisgICAgZWxzZSBpZiAoaXM8Q1NTVHJh
bnNpdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0Q3NzVHJh
bnNpdGlvblByb3BlcnR5KGRvd25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbikudHJhbnNp
dGlvblByb3BlcnR5KCkpOworCisgICAgaWYgKGF1dG8qIGVmZmVjdCA9IGFuaW1hdGlvbi5lZmZl
Y3QoKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0RWZmZWN0KGJ1aWxkT2JqZWN0Rm9y
RWZmZWN0KCplZmZlY3QpKTsKKworICAgIGlmIChjYXB0dXJlQmFja3RyYWNlKSB7CisgICAgICAg
IGF1dG8gc3RhY2tUcmFjZSA9IEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTRXhl
Y1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgSW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s6Om1heENh
bGxTdGFja1NpemVUb0NhcHR1cmUpOworICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRCYWNr
dHJhY2Uoc3RhY2tUcmFjZS0+YnVpbGRJbnNwZWN0b3JBcnJheSgpKTsKKyAgICB9CisKKyAgICBt
X2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0aW9uQ3JlYXRlZChXVEZNb3ZlKGFuaW1hdGlvblBh
eWxvYWQpKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6dW5iaW5kQW5pbWF0
aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAgbV9hbmltYXRpb25JZE1hcC5y
ZW1vdmUoYW5pbWF0aW9uSWQpOworCisgICAgLy8gVGhpcyBjYW4gYmUgY2FsbGVkIGluIHJlc3Bv
bnNlIHRvIEdDLiBEdWUgdG8gdGhlIHNpbmdsZS1wcm9jZXNzIG1vZGVsIHVzZWQgaW4gV2ViS2l0
MSwgdGhlCisgICAgLy8gZXZlbnQgbXVzdCBiZSBkaXNwYXRjaGVkIGZyb20gYSB0aW1lciB0byBw
cmV2ZW50IHRoZSBmcm9udGVuZCBmcm9tIG1ha2luZyBKUyBhbGxvY2F0aW9ucworICAgIC8vIHdo
aWxlIHRoZSBHQyBpcyBzdGlsbCBhY3RpdmUuCisgICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmFw
cGVuZChhbmltYXRpb25JZCk7CisKKyAgICBpZiAoIW1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIu
aXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5zdGFydE9uZVNo
b3QoMF9zKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YW5pbWF0aW9uRGVz
dHJveWVkVGltZXJGaXJlZCgpCit7CisgICAgaWYgKCFtX3JlbW92ZWRBbmltYXRpb25JZHMuc2l6
ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGlkZW50aWZpZXIgOiBtX3Jl
bW92ZWRBbmltYXRpb25JZHMpCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5hbmltYXRp
b25EZXN0cm95ZWQoaWRlbnRpZmllcik7CisKKyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuY2xl
YXIoKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVzZXQoKQoreworICAg
IG1fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKworICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5j
bGVhcigpOworCisgICAgaWYgKG1fYW5pbWF0aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5zdG9wKCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERl
Y2xhcmF0aXZlQW5pbWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmgKaW5kZXggN2Ey
NGJiY2JiMWIzMzFkMTkwZGE2MGMwMGQyMWJkOTM1NDhmYWIwMC4uZDI2NmQ3ZWYyMWU0MmQ4NDFk
ZjZjMGQzODA3M2RkZWMyOWNhZDkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuaApAQCAtMjcsMTYgKzI3
LDIxIEBACiAKICNpbmNsdWRlICJDb21wdXRlZEVmZmVjdFRpbWluZy5oIgogI2luY2x1ZGUgIklu
c3BlY3RvcldlYkFnZW50QmFzZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQW5pbWF0aW9uRWZmZWN0
OwogY2xhc3MgRGVjbGFyYXRpdmVBbmltYXRpb247CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZl
bnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIEtleWZyYW1lRWZmZWN0OworY2xhc3MgUGFnZTsKIGNs
YXNzIFdlYkFuaW1hdGlvbjsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CkBAIC01Mywy
MCArNTgsNDIgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIEFuaW1h
dGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCByZXF1ZXN0RWZmZWN0VGFyZ2V0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBh
bmltYXRpb25JZCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzb2x2ZUFuaW1h
dGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGNvbnN0IFN0cmlu
Zyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1v
dGVPYmplY3Q+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlk
ZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgd2lsbEFwcGx5
S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0JiwgQ29tcHV0ZWRFZmZlY3RU
aW1pbmcpOwotICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlv
biYpOworICAgIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOwor
ICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYp
OworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlv
biYpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOwogICAg
IHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJik7CisgICAgdm9pZCBm
cmFtZU5hdmlnYXRlZChGcmFtZSYpOwogCiBwcml2YXRlOgorICAgIFN0cmluZyBmaW5kQW5pbWF0
aW9uSWQoV2ViQW5pbWF0aW9uJik7CisgICAgV2ViQW5pbWF0aW9uKiBhc3NlcnRBbmltYXRpb24o
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKTsKKyAgICB2b2lkIGJpbmRB
bmltYXRpb24oV2ViQW5pbWF0aW9uJiwgYm9vbCBjYXB0dXJlQmFja3RyYWNlKTsKKyAgICB2b2lk
IHVuYmluZEFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKTsKKyAgICB2b2lkIGFu
aW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJlc2V0KCk7CisKICAgICB2
b2lkIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZlQW5pbWF0aW9u
Jik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpBbmltYXRpb25Gcm9udGVuZERp
c3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OkFu
aW1hdGlvbkJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogCisgICAgSW5z
cGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwor
ICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKKworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJBbmlt
YXRpb24qPiBtX2FuaW1hdGlvbklkTWFwOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVtb3ZlZEFu
aW1hdGlvbklkczsKKyAgICBUaW1lciBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyOworCiAgICAg
c3RydWN0IFRyYWNrZWREZWNsYXJhdGl2ZUFuaW1hdGlvbkRhdGEgewogICAgICAgICBTdHJpbmcg
dHJhY2tpbmdBbmltYXRpb25JZDsKICAgICAgICAgQ29tcHV0ZWRFZmZlY3RUaW1pbmcgbGFzdENv
bXB1dGVkVGltaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBhZWNjNzliYzBjYTU2ZmI2NWZlMDMzMGYwOGU0
ZWU2ODhiZjgxZTg5Li4wZjQ2YTMwMzNhZWY0MDA3ZjZlYjgzN2E2MTA1ZjA1YTBjNTkwNjdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRP
TUFnZW50LmNwcApAQCAtNTY2LDcgKzU2Niw3IEBAIGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVz
aE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IGRvY3VtZW50CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHJldHVybiBwdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKG5vZGVUb1B1c2gpOworICAgIHJldHVybiBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9y
U3RyaW5nLCBub2RlVG9QdXNoKTsKIH0KIAogTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVG
b3JJZChpbnQgaWQpCkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
cXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnMK
ICAgICB9CiAKICAgICBpZiAoYXV0byogZWxlbWVudCA9IHF1ZXJ5UmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKQotICAgICAgICAqZWxlbWVudElkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChl
bGVtZW50KTsKKyAgICAgICAgKmVsZW1lbnRJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJy
b3JTdHJpbmcsIGVsZW1lbnQpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNl
bGVjdG9yQWxsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvcnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1bHQpCkBAIC02
MzksMTMgKzYzOSwyNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yQWxs
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgYwogfQogCiBpbnQgSW5zcGVj
dG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSogbm9kZVRvUHVzaCkKK3sK
KyAgICBFcnJvclN0cmluZyBpZ25vcmVkOworICAgIHJldHVybiBwdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKGlnbm9yZWQsIG5vZGVUb1B1c2gpOworfQorCitpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcgZXJyb3JTdHJpbmcsIE5vZGUqIG5vZGVU
b1B1c2gpCiB7CiAgICAgQVNTRVJUKG5vZGVUb1B1c2gpOyAgLy8gSW52YWxpZCBpbnB1dAogCi0g
ICAgaWYgKCFtX2RvY3VtZW50KQorICAgIGlmICghbV9kb2N1bWVudCkgeworICAgICAgICBlcnJv
clN0cmluZyA9ICJNaXNzaW5nIGRvY3VtZW50Il9zOwogICAgICAgICByZXR1cm4gMDsKLSAgICBp
ZiAoIW1fZG9jdW1lbnROb2RlVG9JZE1hcC5jb250YWlucyhtX2RvY3VtZW50KSkKKyAgICB9CisK
KyAgICBpZiAoIW1fZG9jdW1lbnROb2RlVG9JZE1hcC5jb250YWlucyhtX2RvY3VtZW50KSkgewor
ICAgICAgICBlcnJvclN0cmluZyA9ICJEb2N1bWVudCBtdXN0IGhhdmUgYmVlbiByZXF1ZXN0ZWQi
X3M7CiAgICAgICAgIHJldHVybiAwOworICAgIH0KIAogICAgIC8vIFJldHVybiBpZCBpbiBjYXNl
IHRoZSBub2RlIGlzIGtub3duLgogICAgIGludCByZXN1bHQgPSBtX2RvY3VtZW50Tm9kZVRvSWRN
YXAuZ2V0KG5vZGVUb1B1c2gpOwpAQCAtNzkwLDcgKzgwMSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6OnNldE5vZGVOYW1lKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwg
Y29uc3QKICAgICBpZiAoIW1fZG9tRWRpdG9yLT5yZW1vdmVDaGlsZCgqcGFyZW50LCAqb2xkTm9k
ZSwgZXJyb3JTdHJpbmcpKQogICAgICAgICByZXR1cm47CiAKLSAgICAqbmV3SWQgPSBwdXNoTm9k
ZVBhdGhUb0Zyb250ZW5kKG5ld0VsZW1lbnQucHRyKCkpOworICAgICpuZXdJZCA9IHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5ld0VsZW1lbnQucHRyKCkpOwogICAgIGlmICht
X2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCkpCiAgICAgICAgIHB1c2hDaGlsZE5v
ZGVzVG9Gcm9udGVuZCgqbmV3SWQpOwogfQpAQCAtODMwLDcgKzg0MSw3IEBAIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBu
b2RlSWQsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQgbmV3SWQgPSBw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5ld05vZGUpOworICAgIGludCBuZXdJZCA9IHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5ld05vZGUpOwogCiAgICAgYm9vbCBjaGlsZHJl
blJlcXVlc3RlZCA9IG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKTsKICAgICBp
ZiAoY2hpbGRyZW5SZXF1ZXN0ZWQpCkBAIC0xNDIyLDcgKzE0MzMsNyBAQCB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50Ojptb3ZlVG8oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBp
bnQgdGFyZ2V0RQogICAgIGlmICghbV9kb21FZGl0b3ItPmluc2VydEJlZm9yZSgqdGFyZ2V0RWxl
bWVudCwgKm5vZGUsIGFuY2hvck5vZGUsIGVycm9yU3RyaW5nKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgKm5ld05vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAgKm5l
d05vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogfQog
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmRvKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykK
QEAgLTE0OTgsMTEgKzE1MDksMTEgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0QXR0cmli
dXRlcyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFJlZlAKICAgICByZXN1
bHQgPSBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoZWxlbWVudCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgaW50KiBub2RlSWQpCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZXF1ZXN0
Tm9kZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGlu
dCogbm9kZUlkKQogewogICAgIE5vZGUqIG5vZGUgPSBub2RlRm9yT2JqZWN0SWQob2JqZWN0SWQp
OwogICAgIGlmIChub2RlKQotICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChub2RlKTsKKyAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JT
dHJpbmcsIG5vZGUpOwogICAgIGVsc2UKICAgICAgICAgKm5vZGVJZCA9IDA7CiB9CkBAIC0yNjQ2
LDcgKzI2NTcsNyBAQCBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvck9iamVjdElkKGNv
bnN0IFN0cmluZyYgb2JqZWN0SWQpCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5
UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGludCogbm9kZUlkKQogewogICAgIGlmIChOb2RlKiBub2RlID0gbm9kZUZvclBhdGgocGF0
aCkpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAg
ICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZSk7
CiAgICAgZWxzZQogICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIG5vZGUgZm9yIGdpdmVu
IHBhdGgiX3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmgKaW5kZXggNTE2MzlhYmViODRmNGQ5NWRlZDNmNGZiNjQwOWFkOGY2
MmEyODk0ZS4uN2RmMGU4M2ViNTNkNzVjNDFjNTU0ZjE0MDEyMzViYTIxNzE5NDE0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQu
aApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKIAogICAgIGludCBwdXNoTm9kZVRvRnJvbnRl
bmQoTm9kZSopOwogICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmLCBpbnQg
ZG9jdW1lbnROb2RlSWQsIE5vZGUqKTsKKyAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChO
b2RlKik7CisgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcsIE5vZGUq
KTsKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJvdW5kTm9kZUlk
KGNvbnN0IE5vZGUqKTsKIApAQCAtMjE3LDcgKzIxOSw2IEBAIHByaXZhdGU6CiAgICAgTm9kZSog
YXNzZXJ0RWRpdGFibGVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCk7CiAgICAgRWxlbWVu
dCogYXNzZXJ0RWRpdGFibGVFbGVtZW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCk7CiAKLSAg
ICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKik7CiAgICAgdm9pZCBwdXNoQ2hpbGRO
b2Rlc1RvRnJvbnRlbmQoaW50IG5vZGVJZCwgaW50IGRlcHRoID0gMSk7CiAKICAgICBSZWY8SW5z
cGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPiBidWlsZE9iamVjdEZvck5vZGUoTm9kZSosIGlu
dCBkZXB0aCwgTm9kZVRvSWRNYXAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmlu
ZGV4IDU5ZjNmYTM5MTVmZmI2OTZkZDFlNTQ5MjRmYmZlNDViNmJlNTRiMTMuLjgzOTFiZmZkNDk0
MzA0ZGUzNTc3NWZkMTc3MjMxY2VlNDVhZDZmNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcwpAQCAtMTI1LDEyICsxMjUsMTUgQEAgbG9jYWxpemVkU3RyaW5nc1siQW4gZXJyb3Ig
b2NjdXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIFx1MjAxQyVzXHUyMDFEIHRhYmxlLiJdID0KIGxv
Y2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIl0gPSAiQW4g
dW5leHBlY3RlZCBlcnJvciAlcyBvY2N1cnJlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siQW4gdW5l
eHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iXSA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVk
LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmdsZSJdID0gIkFuZ2xlIjsKK2xvY2FsaXplZFN0cmlu
Z3NbIkFuaW1hdGlvbiJdID0gIkFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRp
b24gJWQiXSA9ICJBbmltYXRpb24gJWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZy
YW1lICVkIENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFt
ZSAlZCBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQgUmVxdWVz
dGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJBbmltYXRpb24gRnJhbWUgQ2FuY2VsZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgQ2FuY2VsZWQi
OwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lIEZpcmVkIl0gPSAiQW5pbWF0aW9u
IEZyYW1lIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSBSZXF1ZXN0
ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFu
aW1hdGlvbiBUYXJnZXQiXSA9ICJBbmltYXRpb24gVGFyZ2V0IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkFub255bW91cyBTY3JpcHQgJWQiXSA9ICJBbm9ueW1vdXMgU2NyaXB0ICVkIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkFub255bW91cyBTY3JpcHRzIl0gPSAiQW5vbnltb3VzIFNjcmlwdHMiOwogbG9j
YWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFN0eWxlIFNoZWV0ICVkIl0gPSAiQW5vbnltb3VzIFN0
eWxlIFNoZWV0ICVkIjsKQEAgLTIwMSw5ICsyMDQsMTEgQEAgbG9jYWxpemVkU3RyaW5nc1siQ1BV
Il0gPSAiQ1BVIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNQVSBVc2FnZSJdID0gIkNQVSBVc2FnZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1AgSGFzaCJdID0gIkNTUCBIYXNoIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNTUyBBbmltYXRpb24iXSA9ICJDU1MgQW5pbWF0aW9uIjsKK2xvY2FsaXplZFN0cmlu
Z3NbIkNTUyBBbmltYXRpb25zIl0gPSAiQ1NTIEFuaW1hdGlvbnMiOwogbG9jYWxpemVkU3RyaW5n
c1siQ1NTIENhbnZhcyJdID0gIkNTUyBDYW52YXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENo
YW5nZXM6Il0gPSAiQ1NTIENoYW5nZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0
aW9uIl0gPSAiQ1NTIFRyYW5zaXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siQ1NTIFRyYW5zaXRp
b25zIl0gPSAiQ1NTIFRyYW5zaXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBjYW52YXMg
XHUyMDFDJXNcdTIwMUQiXSA9ICJDU1MgY2FudmFzIFx1MjAxQyVzXHUyMDFEIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkNhY2hlZCJdID0gIkNhY2hlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWxsIEZy
YW1lcyBUcnVuY2F0ZWQiXSA9ICJDYWxsIEZyYW1lcyBUcnVuY2F0ZWQiOwpAQCAtMjE4LDYgKzIy
Myw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIkNhbmNlbGVkIl0gPSAiQ2FuY2VsZWQiOwogbG9jYWxp
emVkU3RyaW5nc1siQ2FudmFzIl0gPSAiQ2FudmFzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZh
cyAlZCJdID0gIkNhbnZhcyAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgJXMiXSA9ICJD
YW52YXMgJXMiOworLyogQml0bWFwIFJlbmRlcmVyIGlzIGEgdHlwZSBvZiByZW5kZXJpbmcgY29u
dGV4dCBhc3NvY2lhdGVkIHdpdGggYSA8Y2FudmFzPiBlbGVtZW50ICovCitsb2NhbGl6ZWRTdHJp
bmdzWyJDYW52YXMgQ29udGV4dCBUeXBlIEJpdG1hcCBSZW5kZXJlciJdID0gIkJpdG1hcCBSZW5k
ZXJlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgRWxlbWVudCJdID0gIkNhbnZhcyBFbGVt
ZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZhc2VzIl0gPSAiQ2FudmFzZXMiOwogLyogQ2Fw
dHVyZSBzY3JlZW5zaG90IG9mIHRoZSBzZWxlY3RlZCBET00gbm9kZSAqLwpAQCAtNTg3LDYgKzU5
NCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkdsb2JhbCBDb2RlIl0gPSAiR2xvYmFsIENvZGUiOwog
bG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQiXSA9ICJHbG9iYWwg
TGV4aWNhbCBFbnZpcm9ubWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9iYWwgVmFyaWFibGVz
Il0gPSAiR2xvYmFsIFZhcmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcmFtbWFyIl0gPSAi
R3JhbW1hciI7Citsb2NhbGl6ZWRTdHJpbmdzWyJHcmFwaGljcyJdID0gIkdyYXBoaWNzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkdyb3VwIl0gPSAiR3JvdXAiOwogbG9jYWxpemVkU3RyaW5nc1siR3Jv
dXAgQnkgUmVzb3VyY2UiXSA9ICJHcm91cCBCeSBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJHcm91cCBNZWRpYSBSZXF1ZXN0cyJdID0gIkdyb3VwIE1lZGlhIFJlcXVlc3RzIjsKQEAgLTYz
NCw2ICs2NDIsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXMiXSA9ICJJbWFnZXMiOwogbG9j
YWxpemVkU3RyaW5nc1siSW1hZ2VzOiJdID0gIkltYWdlczoiOwogbG9jYWxpemVkU3RyaW5nc1si
SW1tZWRpYXRlIFBhdXNlIFJlcXVlc3RlZCJdID0gIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQi
OwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0Il0gPSAiSW1wb3J0IjsKK2xvY2FsaXplZFN0cmlu
Z3NbIkltcG9ydCBSZWNvcmRpbmciXSA9ICJJbXBvcnQgUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkltcG9ydGVkIl0gPSAiSW1wb3J0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0
ZWQgLSAlcyJdID0gIkltcG9ydGVkIC0gJXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQg
XHUyMDE0ICVzIl0gPSAiSW1wb3J0ZWQgXHUyMDE0ICVzIjsKQEAgLTY5OCw2ICs3MDcsNyBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBTdG9yYWdlIl0gPSAiTG9jYWwgU3RvcmFnZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJMb2NhbCBWYXJpYWJsZXMiXSA9ICJMb2NhbCBWYXJpYWJsZXMiOwogbG9j
YWxpemVkU3RyaW5nc1siTG9jYXRlZCBhdCAlcyJdID0gIkxvY2F0ZWQgYXQgJXMiOwogbG9jYWxp
emVkU3RyaW5nc1siTG9jYXRpb24iXSA9ICJMb2NhdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJM
b2cgQW5pbWF0aW9uIl0gPSAiTG9nIEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2cg
Q2FudmFzIENvbnRleHQiXSA9ICJMb2cgQ2FudmFzIENvbnRleHQiOwogLyogTG9nIChwcmludCkg
RE9NIGVsZW1lbnQgdG8gQ29uc29sZSAqLwogbG9jYWxpemVkU3RyaW5nc1siTG9nIEVsZW1lbnQi
XSA9ICJMb2cgRWxlbWVudCI7CkBAIC03NzEsNiArNzgxLDcgQEAgbG9jYWxpemVkU3RyaW5nc1si
Tm8gRW5hYmxlZCBBdWRpdHMiXSA9ICJObyBFbmFibGVkIEF1ZGl0cyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJObyBFbnRyaWVzIl0gPSAiTm8gRW50cmllcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBF
dmVudCBMaXN0ZW5lcnMiXSA9ICJObyBFdmVudCBMaXN0ZW5lcnMiOwogbG9jYWxpemVkU3RyaW5n
c1siTm8gRmlsdGVyIFJlc3VsdHMiXSA9ICJObyBGaWx0ZXIgUmVzdWx0cyI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJObyBLZXlmcmFtZXMiXSA9ICJObyBLZXlmcmFtZXMiOwogbG9jYWxpemVkU3RyaW5n
c1siTm8gTGF5ZXIgQXZhaWxhYmxlIl0gPSAiTm8gTGF5ZXIgQXZhaWxhYmxlIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIk5vIE92ZXJyaWRlcyJdID0gIk5vIE92ZXJyaWRlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJObyBQYXJhbWV0ZXJzIl0gPSAiTm8gUGFyYW1ldGVycyI7CkBAIC03ODIsNiArNzkzLDcg
QEAgbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzcG9uc2UgSGVhZGVycyJdID0gIk5vIFJlc3BvbnNl
IEhlYWRlcnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzdWx0Il0gPSAiTm8gUmVzdWx0IjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5vIFJlc3VsdHMgRm91bmQiXSA9ICJObyBSZXN1bHRzIEZvdW5k
IjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFNlYXJjaCBSZXN1bHRzIl0gPSAiTm8gU2VhcmNoIFJl
c3VsdHMiOworbG9jYWxpemVkU3RyaW5nc1siTm8gU3R5bGVzIl0gPSAiTm8gU3R5bGVzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIk5vIFdhdGNoIEV4cHJlc3Npb25zIl0gPSAiTm8gV2F0Y2ggRXhwcmVz
c2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gYXVkaXQgc2VsZWN0ZWQiXSA9ICJObyBhdWRp
dCBzZWxlY3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBp
bmZvcm1hdGlvbi4iXSA9ICJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iOwpA
QCAtOTA2LDYgKzkxOCw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyJdID0gIlJlY29y
ZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgJWQiXSA9ICJSZWNvcmRpbmcgJWQi
OwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIEVycm9yOiAlcyJdID0gIlJlY29yZGluZyBF
cnJvcjogJXMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIFRpbWVsaW5lIERhdGEiXSA9
ICJSZWNvcmRpbmcgVGltZWxpbmUgRGF0YSI7CisvKiBBIHR5cGUgb2YgY2FudmFzIHJlY29yZGlu
ZyBpbiB0aGUgR3JhcGhpY3MgVGFiICovCitsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgVHlw
ZSBDYW52YXMgQml0bWFwIFJlbmRlcmVyIl0gPSAiQml0bWFwIFJlbmRlcmVyIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlY29yZGluZyBXYXJuaW5nOiAlcyJdID0gIlJlY29yZGluZyBXYXJuaW5nOiAl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgc3RvcCByZXF1ZXN0ZWQgXHUyMDE0ICVz
Il0gPSAiUmVjb3JkaW5nIHN0b3AgcmVxdWVzdGVkIFx1MjAxNCAlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZWNvcmRpbmdzIl0gPSAiUmVjb3JkaW5ncyI7CkBAIC05MTQsNyArOTI4LDYgQEAgbG9j
YWxpemVkU3RyaW5nc1siUmVkaXJlY3RzIl0gPSAiUmVkaXJlY3RzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlJlZmVyZW5jZSBJc3N1ZSJdID0gIlJlZmVyZW5jZSBJc3N1ZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZWZsZWN0aW9uIl0gPSAiUmVmbGVjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZy
ZXNoIl0gPSAiUmVmcmVzaCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJSZWZyZXNoIGFsbCJdID0gIlJl
ZnJlc2ggYWxsIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZnJlc2ggd2F0Y2ggZXhwcmVzc2lvbnMi
XSA9ICJSZWZyZXNoIHdhdGNoIGV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZ2lv
biBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiJdID0gIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRz
IGVudGlyZXR5LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWd1bGFyIEV4cHJlc3Npb24iXSA9ICJS
ZWd1bGFyIEV4cHJlc3Npb24iOwpAQCAtMTAyNCw2ICsxMDM3LDggQEAgbG9jYWxpemVkU3RyaW5n
c1siU2VjdXJpdHkgT3JpZ2luIl0gPSAiU2VjdXJpdHkgT3JpZ2luIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlNlbGVjdCBiYXNlbGluZSBzbmFwc2hvdCJdID0gIlNlbGVjdCBiYXNlbGluZSBzbmFwc2hv
dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3QgY29tcGFyaXNvbiBzbmFwc2hvdCJdID0gIlNl
bGVjdCBjb21wYXJpc29uIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIl0g
PSAiU2VsZWN0ZWQiOworLyogQXBwZWFycyBhcyBhIGxhYmVsIHdoZW4gYSBnaXZlbiB3ZWIgYW5p
bWF0aW9uIGlzIGxvZ2dlZCB0byB0aGUgQ29uc29sZSAqLworbG9jYWxpemVkU3RyaW5nc1siU2Vs
ZWN0ZWQgQW5pbWF0aW9uIl0gPSAiU2VsZWN0ZWQgQW5pbWF0aW9uIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlNlbGVjdGVkIENhbnZhcyBDb250ZXh0Il0gPSAiU2VsZWN0ZWQgQ2FudmFzIENvbnRleHQi
OwogLyogU2VsZWN0ZWQgRE9NIGVsZW1lbnQgKi8KIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVk
IEVsZW1lbnQiXSA9ICJTZWxlY3RlZCBFbGVtZW50IjsKQEAgLTExNzksNiArMTE5NCw4IEBAIGxv
Y2FsaXplZFN0cmluZ3NbIlRoZXNlIHRlc3RzIHNlcnZlIGFzIGEgZGVtb25zdHJhdGlvbiBvZiB0
aGUgZnVuY3Rpb25hbGl0eSBhbmQKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgUmVzb3VyY2UgY2Ft
ZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUiXSA9ICJUaGlzIFJlc291cmNlIGNhbWUg
ZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMg
YWN0aW9uIGNhdXNlcyBubyB2aXN1YWwgY2hhbmdlIl0gPSAiVGhpcyBhY3Rpb24gY2F1c2VzIG5v
IHZpc3VhbCBjaGFuZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhY3Rpb24gbW92ZXMgdGhl
IHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIl0gPSAiVGhpcyBhY3Rpb24gbW92ZXMgdGhl
IHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIjsKK2xvY2FsaXplZFN0cmluZ3NbIlRoaXMg
YW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iXSA9ICJUaGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVy
YXRpb24uIjsKK2xvY2FsaXplZFN0cmluZ3NbIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFt
ZXMuIl0gPSAiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4iOwogbG9jYWxpemVkU3Ry
aW5nc1siVGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVkIl0gPSAiVGhpcyBhdWRpdCBpcyBub3Qg
c3VwcG9ydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cg
Y3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiJdID0gIlRoaXMgaXMgYW4gZXhhbXBsZSBvZiBo
b3cgY3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlz
IGlzIGFuIGV4YW1wbGUgb2YgaG93IGVycm9ycyBhcmUgc2hvd24uIFRoZSBlcnJvciB3YXMgdGhy
b3duIG1hbnVhbGx5LCBidXQgZXhlY3V0aW9uIGVycm9ycyB3aWxsIGFwcGVhciBpbiB0aGUgc2Ft
ZSB3YXkuIl0gPSAiVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBlcnJvcnMgYXJlIHNob3duLiBU
aGUgZXJyb3Igd2FzIHRocm93biBtYW51YWxseSwgYnV0IGV4ZWN1dGlvbiBlcnJvcnMgd2lsbCBh
cHBlYXIgaW4gdGhlIHNhbWUgd2F5LiI7CkBAIC0xMjkxLDEyICsxMzA4LDY1IEBAIGxvY2FsaXpl
ZFN0cmluZ3NbIlZpZXcgU2hhZGVyIl0gPSAiVmlldyBTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5n
c1siVmlld3BvcnQiXSA9ICJWaWV3cG9ydCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaXNpYmxlIl0g
PSAiVmlzaWJsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIl0gPSAiV2FpdGluZyI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgQ1NTLiJd
ID0gIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIjsKK2xvY2FsaXplZFN0
cmluZ3NbIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBKYXZhU2NyaXB0LiJdID0g
IldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBKYXZhU2NyaXB0LiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3JpcHQg
b3IgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlw
dCBvciBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGZyYW1lc1x1MjAyNiJd
ID0gIldhaXRpbmcgZm9yIGZyYW1lc1x1MjAyNiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5n
IGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iXSA9ICJXYWl0aW5nIGZvciB0cmFuc2l0
aW9ucyBjcmVhdGVkIGJ5IENTUy4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FybmluZzogIl0gPSAi
V2FybmluZzogIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhcm5pbmdzIl0gPSAiV2FybmluZ3MiOwog
bG9jYWxpemVkU3RyaW5nc1siV2F0Y2ggRXhwcmVzc2lvbnMiXSA9ICJXYXRjaCBFeHByZXNzaW9u
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRlcmZhbGwiXSA9ICJXYXRlcmZhbGwiOworbG9jYWxp
emVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiJdID0gIldlYiBBbmltYXRpb24iOworLyogU2VjdGlv
biB0aXRsZSBmb3IgdGhlIEphdmFTY3JpcHQgYmFja3RyYWNlIG9mIHRoZSBjcmVhdGlvbiBvZiBh
IHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gQmFja3Ry
YWNlIFRpdGxlIl0gPSAiQmFja3RyYWNlIjsKKy8qIExhYmVsIGZvciB0aGUgY3ViaWMtYmV6aWVy
IHRpbWluZyBmdW5jdGlvbiBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3Nb
IldlYiBBbmltYXRpb24gRWFzaW5nIExhYmVsIl0gPSAiRWFzaW5nIjsKKy8qIFNlY3Rpb24gdGl0
bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlZmZlY3Qgb2YgYSB3ZWIgYW5pbWF0aW9uICov
Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEVmZmVjdCBUaXRsZSJdID0gIkVmZmVj
dCI7CisvKiBMYWJlbCBmb3IgdGhlIGVuZCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1hdGlvbiAg
Ki8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRW5kIERlbGF5IExhYmVsIl0gPSAi
RW5kIERlbGF5IjsKKy8qIFRvb2x0aXAgZm9yIHNlY3Rpb24gb2YgZ3JhcGggcmVwcmVzZW50aW5n
IGRlbGF5IGFmdGVyIGEgd2ViIGFuaW1hdGlvbiBmaW5pc2hlcyBhcHBseWluZyBzdHlsZXMgKi8K
K2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRW5kIERlbGF5IFRvb2x0aXAiXSA9ICJF
bmQgRGVsYXkgJXMiOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGVpdGhl
ciBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0
IGVuZHMgb3IgdGhhdCBpdCBhcHBsaWVzIHRvIGJvdGgsIGRlcGVuZGluZyBvbiBpdCdzIGNvbmZp
Z3VyYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEF1
dG8iXSA9ICJBdXRvIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNv
IGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldl
YiBBbmltYXRpb24gRmlsbCBNb2RlIEJhY2t3YXJkcyJdID0gIkJhY2t3YXJkcyI7CisvKiBJbmRp
Y2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBiZWZvcmUg
aXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5p
bWF0aW9uIEZpbGwgTW9kZSBCb3RoIl0gPSAiQm90aCI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlz
IHdlYiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBhZnRlciBpdCBlbmRzICovCitsb2Nh
bGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBGb3J3YXJkcyJdID0gIkZvcndh
cmRzIjsKKy8qIExhYmVsIGZvciB0aGUgZmlsbCBtb2RlIG9mIGEgd2ViIGFuaW1hdGlvbiAqLwor
bG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgTGFiZWwiXSA9ICJGaWxs
IjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBkb2VzIG5vdCBhcHBseSBh
bnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgKi8KK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIE5vbmUiXSA9ICJOb25lIjsKKy8qIFNl
Y3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IGEgd2ViIGFuaW1hdGlvbiAqLworbG9j
YWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBJZGVudGl0eSBUaXRsZSJdID0gIklkZW50aXR5
IjsKKy8qIExhYmVsIGZvciB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgb2YgYSB3ZWIgYW5pbWF0
aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBDb3VudCBM
YWJlbCJdID0gIkl0ZXJhdGlvbnMiOworLyogTGFiZWwgZm9yIHRoZSB0aW1lIGR1cmF0aW9uIG9m
IGVhY2ggaXRlcmF0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1si
V2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gRHVyYXRpb24gTGFiZWwiXSA9ICJEdXJhdGlvbiI7Cisv
KiBMYWJlbCBmb3IgdGhlIG51bWJlciBkZXNjcmliaW5nIHdoaWNoIGl0ZXJhdGlvbiBhIHdlYiBh
bmltYXRpb24gc2hvdWxkIHN0YXJ0IGF0ICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0
aW9uIEl0ZXJhdGlvbiBTdGFydCBMYWJlbCJdID0gIlN0YXJ0IjsKKy8qIFNlY3Rpb24gdGl0bGUg
Zm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBrZXlmcmFtZXMgb2YgYSB3ZWIgYW5pbWF0aW9uICov
Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEtleWZyYW1lcyBUaXRsZSJdID0gIktl
eWZyYW1lcyI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRo
aXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5hdGVzIGJldHdlZW4gbm9ybWFsIGFuZCByZXZlcnNlZCBv
biBlYWNoIGl0ZXJhdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5
YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIl0gPSAiQWx0ZXJuYXRlIjsKKy8qIEluZGljYXRlcyB0
aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0
ZXMgYmV0d2VlbiByZXZlcnNlZCBhbmQgbm9ybWFsIG9uIGVhY2ggaXRlcmF0aW9uICovCitsb2Nh
bGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBBbHRlcm5hdGUg
UmV2ZXJzZSJdID0gIkFsdGVybmF0ZSBSZXZlcnNlIjsKKy8qIExhYmVsIGZvciB0aGUgcGxheWJh
Y2sgZGlyZWN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2Vi
IEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gTGFiZWwiXSA9ICJEaXJlY3Rpb24iOworLyog
SW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRp
b24gaXMgbm9ybWFsIChlLmcuIGZvcndhcmRzKSAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFu
aW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gTm9ybWFsIl0gPSAiTm9ybWFsIjsKKy8qIEluZGlj
YXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlz
IHJldmVyc2VkIChlLmcuIGJhY2t3YXJkcykgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmlt
YXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIFJldmVyc2UiXSA9ICJSZXZlcnNlIjsKKy8qIExhYmVs
IGZvciB0aGUgc3RhcnQgZGVsYXkgdGltZSBvZiBhIHdlYiBhbmltYXRpb24gICovCitsb2NhbGl6
ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFN0YXJ0IERlbGF5IExhYmVsIl0gPSAiU3RhcnQgRGVs
YXkiOworLyogVG9vbHRpcCBmb3Igc2VjdGlvbiBvZiBncmFwaCByZXByZXNlbnRpbmcgZGVsYXkg
YmVmb3JlIGEgd2ViIGFuaW1hdGlvbiBiZWdpbnMgYXBwbHlpbmcgc3R5bGVzICovCitsb2NhbGl6
ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFN0YXJ0IERlbGF5IFRvb2x0aXAiXSA9ICJTdGFydCBE
ZWxheSAlcyI7CisvKiBMYWJlbCBmb3IgdGhlIGN1cnJlbnQgRE9NIG5vZGUgdGFyZ2V0IG9mIGEg
d2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBUYXJnZXQg
TGFiZWwiXSA9ICJUYXJnZXQiOworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbnMiXSA9
ICJXZWIgQW5pbWF0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgSW5zcGVjdG9yIl0gPSAi
V2ViIEluc3BlY3RvciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgSW5zcGVjdG9yIFJlZmVyZW5j
ZSJdID0gIldlYiBJbnNwZWN0b3IgUmVmZXJlbmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYiBQ
YWdlIl0gPSAiV2ViIFBhZ2UiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDgyNzFlMTNjNmI3ZDdmMzMxY2IyYWU5ZWRjODMyYTE0
YWMyZjJlMzIuLmVhY2UxMjY3Y2EwNjEwMGY2YzcwYWYzNTRkMjA0N2U4ZDA0ZmRlNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAg
LTEyMyw2ICsxMjMsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLndvcmtl
ck1hbmFnZXIgPSBuZXcgV0kuV29ya2VyTWFuYWdlciwKICAgICAgICAgV0kuZG9tRGVidWdnZXJN
YW5hZ2VyID0gbmV3IFdJLkRPTURlYnVnZ2VyTWFuYWdlciwKICAgICAgICAgV0kuY2FudmFzTWFu
YWdlciA9IG5ldyBXSS5DYW52YXNNYW5hZ2VyLAorICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2Vy
ID0gbmV3IFdJLkFuaW1hdGlvbk1hbmFnZXIsCiAgICAgXTsKIAogICAgIC8vIFJlZ2lzdGVyIGZv
ciBldmVudHMuCkBAIC0xNDcsMTMgKzE0OCwxMyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAg
ICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAgICBXSS5UaW1lbGlu
ZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50Vmlldy5U
eXBlLAotICAgICAgICBXSS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBlLAorICAgICAgICBXSS5H
cmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLkF1ZGl0VGFiQ29udGVudFZp
ZXcuVHlwZSwKICAgICAgICAgV0kuQ29uc29sZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgXSk7
CiAgICAgV0kuX3NlbGVjdGVkVGFiSW5kZXhTZXR0aW5nID0gbmV3IFdJLlNldHRpbmcoInNlbGVj
dGVkLXRhYi1pbmRleCIsIDApOwogCi0gICAgLy8gUmVwbGFjZSB0aGUgRGVidWdnZXIvUmVzb3Vy
Y2VzIFRhYiB3aXRoIHRoZSBTb3VyY2VzIFRhYi4KKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzIwNTgyNj4gV2ViIEluc3BlY3RvcjogcmVtb3ZlIGxlZ2FjeSBjb2RlIGZvciBy
ZXBsYWNpbmcgdGhlIFJlc291cmNlcyBUYWIgYW5kIERlYnVnZ2VyIFRhYiB3aXRoIHRoZSBTb3Vy
Y2VzIFRhYgogICAgIGxldCBkZWJ1Z2dlckluZGV4ID0gV0kuX29wZW5UYWJzU2V0dGluZy52YWx1
ZS5pbmRleE9mKCJkZWJ1Z2dlciIpOwogICAgIGxldCByZXNvdXJjZXNJbmRleCA9IFdJLl9vcGVu
VGFic1NldHRpbmcudmFsdWUuaW5kZXhPZigicmVzb3VyY2VzIik7CiAgICAgaWYgKGRlYnVnZ2Vy
SW5kZXggPj0gMCB8fCByZXNvdXJjZXNJbmRleCA+PSAwKSB7CkBAIC0xNzMsNiArMTc0LDEzIEBA
IFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIFdJLl9zZWxlY3RlZFRhYkluZGV4
U2V0dGluZy52YWx1ZSA9IHNvdXJjZXNJbmRleDsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzIwNTgyNz4gV2ViIEluc3BlY3RvcjogcmVtb3ZlIGxlZ2FjeSBj
b2RlIGZvciByZXBsYWNpbmcgdGhlIENhbnZhcyBUYWIgd2l0aCB0aGUgR3JhcGhpY3MgVGFiCisg
ICAgbGV0IGNhbnZhc0luZGV4ID0gV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5pbmRleE9mKCJj
YW52YXMiKTsKKyAgICBpZiAoY2FudmFzSW5kZXggPj0gMCkgeworICAgICAgICBXSS5fb3BlblRh
YnNTZXR0aW5nLnZhbHVlLnNwbGljZShjYW52YXNJbmRleCwgMSwgV0kuR3JhcGhpY3NUYWJDb250
ZW50Vmlldy5UeXBlKTsKKyAgICAgICAgV0kuX29wZW5UYWJzU2V0dGluZy5zYXZlKCk7CisgICAg
fQorCiAgICAgLy8gU3RhdGUuCiAgICAgV0kucHJpbnRTdHlsZXNFbmFibGVkID0gZmFsc2U7CiAg
ICAgV0kuc2V0Wm9vbUZhY3RvcihXSS5zZXR0aW5ncy56b29tRmFjdG9yLnZhbHVlKTsKQEAgLTQ2
NSw3ICs0NzMsNyBAQCBXSS5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS5T
b3VyY2VzVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLlRpbWVsaW5lVGFiQ29udGVudFZpZXcs
CiAgICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50VmlldywKLSAgICAgICAgV0kuQ2FudmFzVGFi
Q29udGVudFZpZXcsCisgICAgICAgIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcsCiAgICAgICAg
IFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3
LAogICAgICAgICBXSS5Db25zb2xlVGFiQ29udGVudFZpZXcsCkBAIC0xMjIzLDExICsxMjMxLDgg
QEAgV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24o
cmVwcmVzZW50ZWRPYmplY3QpCiAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNl
b2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICByZXR1cm4gV0kuQXVkaXRUYWJDb250
ZW50VmlldzsKIAotICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZh
c0NvbGxlY3Rpb24pCi0gICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50VmlldzsKLQot
ICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZykKLSAgICAg
ICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3OworICAgIGlmIChyZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcyB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLlNoYWRlclByb2dyYW0gfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNv
cmRpbmcgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pCisgICAg
ICAgIHJldHVybiBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3OwogCiAgICAgcmV0dXJuIG51bGw7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZi
NDEyY2VhNWZlMjNhNjZmZDI3ZWNkOTRkYWQ3M2ZkYjAxZjMyNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlv
bk1hbmFnZXIuanMKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBGSVhNRTogQW5p
bWF0aW9uTWFuYWdlciBsYWNrcyBhZHZhbmNlZCBtdWx0aS10YXJnZXQgc3VwcG9ydC4gKEFuaW1h
dGlvbnMgcGVyLXRhcmdldCkKKworV0kuQW5pbWF0aW9uTWFuYWdlciA9IGNsYXNzIEFuaW1hdGlv
bk1hbmFnZXIKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICB0aGlzLl9lbmFi
bGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24gPSBuZXcgV0ku
QW5pbWF0aW9uQ29sbGVjdGlvbjsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAgPSBuZXcg
TWFwOworCisgICAgICAgIFdJLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV0kuRnJhbWUuRXZlbnQu
TWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2Us
IHRoaXMpOworICAgIH0KKworICAgIC8vIEFnZW50CisKKyAgICBnZXQgZG9tYWlucygpIHsgcmV0
dXJuIFsiQW5pbWF0aW9uIl07IH0KKworICAgIGFjdGl2YXRlRXh0cmFEb21haW4oZG9tYWluKQor
ICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZG9tYWluID09PSAiQW5pbWF0aW9uIik7CisK
KyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0aGlz
LmluaXRpYWxpemVUYXJnZXQodGFyZ2V0KTsKKyAgICB9CisKKyAgICAvLyBUYXJnZXQKKworICAg
IGluaXRpYWxpemVUYXJnZXQodGFyZ2V0KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9lbmFi
bGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlP
UyAxMy4xKTogQW5pbWF0aW9uLmVuYWJsZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYg
KHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24uZW5hYmxlIikpCisgICAgICAgICAgICB0YXJn
ZXQuQW5pbWF0aW9uQWdlbnQuZW5hYmxlKCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAg
ICBnZXQgYW5pbWF0aW9uQ29sbGVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbkNvbGxl
Y3Rpb247IH0KKworICAgIGdldCBzdXBwb3J0ZWQoKQorICAgIHsKKyAgICAgICAgLy8gQ09NUEFU
SUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZW5hYmxlIGRpZCBub3QgZXhpc3QgeWV0Lgor
ICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNDb21tYW5kKCJBbmltYXRpb24uZW5h
YmxlIik7CisgICAgfQorCisgICAgZW5hYmxlKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCF0aGlzLl9lbmFibGVkKTsKKworICAgICAgICB0aGlzLl9lbmFibGVkID0gdHJ1ZTsKKwor
ICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykKKyAgICAgICAgICAgIHRoaXMu
aW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpOworICAgIH0KKworICAgIGRpc2FibGUoKQorICAgIHsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fZW5hYmxlZCk7CisKKyAgICAgICAgZm9yIChs
ZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpIHsKKyAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkg
KGlPUyAxMy4xKTogQW5pbWF0aW9uLmRpc2FibGUgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAg
ICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5kaXNhYmxlIikpCisgICAgICAg
ICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LmRpc2FibGUoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgdGhpcy5f
YW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKworICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7
CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9uT2JzZXJ2ZXIKKworICAgIGFuaW1hdGlvbkNyZWF0
ZWQoYW5pbWF0aW9uUGF5bG9hZCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlz
Ll9hbmltYXRpb25JZE1hcC5oYXMoYW5pbWF0aW9uUGF5bG9hZC5hbmltYXRpb25JZCksIGBBbmlt
YXRpb24gYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke2FuaW1hdGlvblBheWxvYWQuYW5pbWF0aW9u
SWR9LmApOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBXSS5BbmltYXRpb24uZnJvbVBheWxv
YWQoYW5pbWF0aW9uUGF5bG9hZCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24u
YWRkKGFuaW1hdGlvbik7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLnNldChhbmltYXRp
b24uYW5pbWF0aW9uSWQsIGFuaW1hdGlvbik7CisgICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChh
bmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMu
X2FuaW1hdGlvbklkTWFwLmdldChhbmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisg
ICAgdGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgbGV0
IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLmdldChhbmltYXRpb25JZCk7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkKGVm
ZmVjdCk7CisgICAgfQorCisgICAgYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKQorICAg
IHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLnRha2UoYW5p
bWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAgICAgICBp
ZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9hbmlt
YXRpb25Db2xsZWN0aW9uLnJlbW92ZShhbmltYXRpb24pOworICAgIH0KKworICAgIC8vIFByaXZh
dGUKKworICAgIF9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBXSS5GcmFtZSk7Cisg
ICAgICAgIGlmICghZXZlbnQudGFyZ2V0LmlzTWFpbkZyYW1lKCkpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgV0kuQW5pbWF0aW9uLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJz
KCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5jbGVhcigpOworICAgICAg
ICB0aGlzLl9hbmltYXRpb25JZE1hcC5jbGVhcigpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5h
Z2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
Q2FudmFzTWFuYWdlci5qcwppbmRleCAxMzVjMTY2MTNhZTgwMDljMTZlMjcyMmY3MjU4NWM5N2U2
OWRkMTE0Li5kYmI4ZTZmZTQ5NzMxZDUyMzFlMjgzZjY5ZmEyOTBmMzdiNmJiZmFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52
YXNNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKQEAgLTMyLDYgKzMyLDcgQEAgV0kuQ2FudmFzTWFu
YWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgc3Vw
ZXIoKTsKIAogICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2Nh
bnZhc0NvbGxlY3Rpb24gPSBuZXcgV0kuQ2FudmFzQ29sbGVjdGlvbjsKICAgICAgICAgdGhpcy5f
Y2FudmFzSWRlbnRpZmllck1hcCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3NoYWRlclByb2dy
YW1JZGVudGlmaWVyTWFwID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdz
ID0gbmV3IFNldDsKQEAgLTc2LDEzICs3Nyw5IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBD
YW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdl
dCBjYW52YXNDb2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fY2FudmFzQ29sbGVjdGlvbjsgfQog
ICAgIGdldCBzYXZlZFJlY29yZGluZ3MoKSB7IHJldHVybiB0aGlzLl9zYXZlZFJlY29yZGluZ3M7
IH0KIAotICAgIGdldCBjYW52YXNlcygpCi0gICAgewotICAgICAgICByZXR1cm4gQXJyYXkuZnJv
bSh0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnZhbHVlcygpKTsKLSAgICB9Ci0KICAgICBnZXQg
c2hhZGVyUHJvZ3JhbXMoKQogICAgIHsKICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5f
c2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAudmFsdWVzKCkpOwpAQCAtMTMzLDYgKzEzMCw3IEBA
IFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgICAgICAgICAgdGFyZ2V0LkNhbnZhc0FnZW50LmRpc2FibGUoKTsKICAgICAgICAg
fQogCisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uY2xlYXIoKTsKICAgICAgICAgdGhp
cy5fY2FudmFzSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9n
cmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3Mu
Y2xlYXIoKTsKQEAgLTE2MSw5ICsxNTksOCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2Fu
dmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhp
cy5fY2FudmFzSWRlbnRpZmllck1hcC5oYXMoY2FudmFzUGF5bG9hZC5jYW52YXNJZCksIGBDYW52
YXMgYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke2NhbnZhc1BheWxvYWQuY2FudmFzSWR9LmApOwog
CiAgICAgICAgIGxldCBjYW52YXMgPSBXSS5DYW52YXMuZnJvbVBheWxvYWQoY2FudmFzUGF5bG9h
ZCk7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNhbnZhcyk7CiAgICAgICAg
IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuc2V0KGNhbnZhcy5pZGVudGlmaWVyLCBjYW52YXMp
OwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzQWRkZWQsIHtjYW52YXN9KTsKICAgICB9CiAKICAgICBjYW52YXNSZW1v
dmVkKGNhbnZhc0lkZW50aWZpZXIpCkBAIC0xNzMsNyArMTcwLDE0IEBAIFdJLkNhbnZhc01hbmFn
ZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICgh
Y2FudmFzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3JlbW92ZUNhbnZh
cyhjYW52YXMpOworICAgICAgICB0aGlzLl9zYXZlUmVjb3JkaW5ncyhjYW52YXMpOworCisgICAg
ICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlKGNhbnZhcyk7CisKKyAgICAgICAgZm9y
IChsZXQgcHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24pCisgICAgICAg
ICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5kZWxldGUocHJvZ3JhbS5pZGVu
dGlmaWVyKTsKKworICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uY2xlYXIo
KTsKICAgICB9CiAKICAgICBjYW52YXNNZW1vcnlDaGFuZ2VkKGNhbnZhc0lkZW50aWZpZXIsIG1l
bW9yeUNvc3QpCkBAIC0yNzUsMjEgKzI3OSwxNCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3Mg
Q2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAg
X3JlbW92ZUNhbnZhcyhjYW52YXMpCisgICAgX3NhdmVSZWNvcmRpbmdzKGNhbnZhcykKICAgICB7
Ci0gICAgICAgIGZvciAobGV0IHByb2dyYW0gb2YgY2FudmFzLnNoYWRlclByb2dyYW1Db2xsZWN0
aW9uKQotICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuZGVsZXRl
KHByb2dyYW0uaWRlbnRpZmllcik7Ci0KLSAgICAgICAgY2FudmFzLnNoYWRlclByb2dyYW1Db2xs
ZWN0aW9uLmNsZWFyKCk7Ci0KICAgICAgICAgZm9yIChsZXQgcmVjb3JkaW5nIG9mIGNhbnZhcy5y
ZWNvcmRpbmdDb2xsZWN0aW9uKSB7CiAgICAgICAgICAgICByZWNvcmRpbmcuc291cmNlID0gbnVs
bDsKICAgICAgICAgICAgIHJlY29yZGluZy5jcmVhdGVEaXNwbGF5TmFtZShyZWNvcmRpbmcuZGlz
cGxheU5hbWUpOwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzLmFkZChyZWNvcmRp
bmcpOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwge3JlY29yZGluZ30pOwogICAgICAgICB9Ci0K
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNSZW1vdmVkLCB7Y2FudmFzfSk7CiAgICAgfQogCiAgICAgX21haW5SZXNvdXJj
ZURpZENoYW5nZShldmVudCkKQEAgLTMwMSwxNSArMjk4LDE0IEBAIFdJLkNhbnZhc01hbmFnZXIg
PSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIFdJLkNhbnZh
cy5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOwogCiAgICAgICAgIGZvciAobGV0IGNh
bnZhcyBvZiB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnZhbHVlcygpKQotICAgICAgICAgICAg
dGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgICAgICB0aGlzLl9zYXZlUmVjb3Jk
aW5ncyhjYW52YXMpOwogCi0gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFw
LmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uY2xlYXIoKTsKICAgICAg
ICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5jbGVhcigpOworICAgICAgICB0aGlzLl9zaGFk
ZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgIH0KIH07CiAKIFdJLkNhbnZhc01h
bmFnZXIuRXZlbnQgPSB7Ci0gICAgQ2FudmFzQWRkZWQ6ICJjYW52YXMtbWFuYWdlci1jYW52YXMt
d2FzLWFkZGVkIiwKLSAgICBDYW52YXNSZW1vdmVkOiAiY2FudmFzLW1hbmFnZXItY2FudmFzLXdh
cy1yZW1vdmVkIiwKICAgICBSZWNvcmRpbmdTYXZlZDogImNhbnZhcy1tYW5hZ2VyLXJlY29yZGlu
Zy1zYXZlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKaW5kZXggMWE4ZGY2OGJiYWRk
OGRlOGJmZmIzODA3OTUyNjkyODdhM2EzMzI0Mi4uNzE4NTU1OGFkM2UwZDk3OWJiMDAxZGI4ZTEx
MDNkYjgyYWE5ZTA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCkBAIC0zMjMsNyArMzIz
LDcgQEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
IAogICAgIG5vZGVGb3JJZChub2RlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5faWRU
b0RPTU5vZGVbbm9kZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJ
ZF0gfHwgbnVsbDsKICAgICB9CiAKICAgICBfZG9jdW1lbnRVcGRhdGVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5l
TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL1RpbWVsaW5lTWFuYWdlci5qcwppbmRleCA3NjMzZGUxYmFlMGY0MTNmZTEyY2QxYzM2MzM4
NGFlZjNmZDg0NjU5Li43Mjk2OTZmMDQxYzE2MmZmOTdjZmIwOTI0OTdiYmQxNWFiZjlmZmI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCkBAIC03ODEsNyArNzgxLDcgQEAg
V0kuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGV2ZW50Lm5vZGVJZCkgfHwg
bnVsbDsKKyAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQo
ZXZlbnQubm9kZUlkKTsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbU5vZGUpOwogCiAg
ICAgICAgICAgICByZWNvcmQgPSBuZXcgV0kuTWVkaWFUaW1lbGluZVJlY29yZChldmVudFR5cGUs
IGRvbU5vZGUsIGRldGFpbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZGJkNjU3ZDkzMjZhYWEwY2U2NGY2ZDdlZjAzMWRmODE2YWYyY2ZlOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDYgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJp
Z2h0IMKpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2
aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxyZWN0IHg9IjEuNSIgeT0iMi41IiB3aWR0aD0iMTMi
IGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Ci0gICAgPHBv
bHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3IDMgMTEgMyAxMiAxMyAxMiAxMyAxMSAxMSA4Ii8+
Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9HcmFwaGljcy5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvR3JhcGhpY3Muc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3Y2FmM2ExNDlmNjk0NWI2MTg2ZDg0
YjYxNTg3NjljYWYwYTY0YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnCkBAIC0wLDAgKzEsNiBAQAorPD94
bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIw
IDAgMTYgMTYiPgorICAgIDxyZWN0IHg9IjEuNSIgeT0iMi41IiB3aWR0aD0iMTMiIGhlaWdodD0i
MTEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CisgICAgPHBvbHlnb24gcG9p
bnRzPSIxMSA4IDkgMTEgNiA3IDMgMTEgMyAxMiAxMyAxMiAxMyAxMSAxMSA4Ii8+Cis8L3N2Zz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRt
bCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBk
ZDFkNGM2MWIzNDkzZTE5NjdlM2I3N2FhODQ1OGFhZWFhODczNGU2Li41Yjg1NjUyMjE2NDRiZTFh
NWYyZTZmYjEzNzQ3ZjY0YzhlYmI0YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0zMCw2ICszMCw5IEBACiAKICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IkV4dGVybmFsL0NvZGVNaXJyb3IvY29kZW1pcnJvci5jc3MiPgog
CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25Db2xsZWN0
aW9uQ29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZp
ZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250
ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXVk
aXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9BdWRpdFRlc3RDYXNlQ29udGVudFZpZXcuY3NzIj4KQEAgLTU2LDcgKzU5
LDYgQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc0RldGFp
bHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZp
ZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5jc3MiPgotICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzIj4KICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NoYW5nZXNEZXRhaWxzU2lkZWJh
clBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGFy
dERldGFpbHNTZWN0aW9uUm93LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9DaGVja2JveE5hdmlnYXRpb25JdGVtLmNzcyI+CkBAIC0xMTMsNiArMTE1LDggQEAK
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dvVG9MaW5lRGlhbG9nLmNz
cyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFkaWVudEVkaXRv
ci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhZGllbnRT
bGlkZXIuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVPdmVydmlld0dy
YXBoLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwQWxs
b2NhdGlvbnNUaW1lbGluZVZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL0hlYXBTbmFwc2hvdEluc3RhbmNlc0NvbnRlbnRWaWV3LmNzcyI+CkBAIC0zNDks
NiArMzUzLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvV29ya2VyT2JzZXJ2ZXIuanMi
Pjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50QWN0aW9uLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VDb2RlLmpzIj48L3NjcmlwdD4KQEAgLTM2MSw2ICsz
NjYsOCBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2FsU2NyaXB0LmpzIj48L3NjcmlwdD4KIAorICAgIDxz
Y3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNoZUZyYW1lLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CYWNrRm9yd2FyZEVudHJ5LmpzIj48L3NjcmlwdD4KQEAg
LTM4MCw3ICszODcsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRU
cmVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0
VHJlZU5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FudmFzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVByZXZpZXcuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvblR5cGVzLmpzIj48L3Nj
cmlwdD4KQEAgLTU2Niw5ICs1NzIsOSBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TdHlsZURl
dGFpbHNQYW5lbC5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXVkaXRU
YWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NhbnZh
c1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ29u
c29sZVRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
RWxlbWVudHNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9MYXllcnNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9TY3JpcHRUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBAIC01OTQsNiArNjAw
LDkgQEAKIAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25J
dGVtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0aXZhdGVCdXR0b25U
b29sYmFySXRlbS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29u
dGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BcHBsaWNhdGlv
bkNhY2hlRnJhbWVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBAIC02OTIsNiArNzAxLDcgQEAK
ICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR29Ub0xpbmVEaWFsb2cuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFkaWVudEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50U2xpZGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1l
bGluZURhdGFHcmlkTm9kZVBhdGhDb21wb25lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMiPjwvc2Ny
aXB0PgpAQCAtODU2LDYgKzg2Niw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Fu
bm90YXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NvZGVN
aXJyb3JFZGl0aW5nQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNvbnRyb2xsZXJzL0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQmFzaWNCbG9ja0Fubm90YXRvci5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQW5pbWF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0FuaW1hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1ZGU1MjVmNDA2YWQzOGNkNDVmZWRjZDcx
YjcxNGYzYTUxMzYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpAQCAtMCwwICsxLDI3NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1dJLkFuaW1hdGlvbiA9IGNsYXNzIEFuaW1hdGlvbiBleHRlbmRzIFdJLk9iamVjdAor
eworICAgIGNvbnN0cnVjdG9yKGFuaW1hdGlvbklkLCB7Y3NzQW5pbWF0aW9uTmFtZSwgY3NzVHJh
bnNpdGlvblByb3BlcnR5LCBlZmZlY3QsIGJhY2t0cmFjZX0gPSB7fSkKKyAgICB7CisgICAgICAg
IHN1cGVyKCk7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5pbWF0aW9uSWQpOworICAgICAg
ICBjb25zb2xlLmFzc2VydCgoIWNzc0FuaW1hdGlvbk5hbWUgJiYgIWNzc1RyYW5zaXRpb25Qcm9w
ZXJ0eSkgfHwgISFjc3NBbmltYXRpb25OYW1lICE9PSAhIWNzc1RyYW5zaXRpb25Qcm9wZXJ0eSk7
CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWQgPSBhbmltYXRpb25JZDsKKworICAgICAgICB0
aGlzLl9jc3NBbmltYXRpb25OYW1lID0gY3NzQW5pbWF0aW9uTmFtZSB8fCBudWxsOworICAgICAg
ICB0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkgPSBjc3NUcmFuc2l0aW9uUHJvcGVydHkgfHwg
bnVsbDsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7CisgICAgICAgIHRoaXMu
X2JhY2t0cmFjZSA9IGJhY2t0cmFjZSB8fCBbXTsKKworICAgICAgICB0aGlzLl9lZmZlY3RUYXJn
ZXQgPSB1bmRlZmluZWQ7CisgICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFj
a3MgPSBudWxsOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisgICAgc3RhdGljIGZyb21QYXls
b2FkKHBheWxvYWQpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdJLkFuaW1hdGlvbihwYXls
b2FkLmFuaW1hdGlvbklkLCB7CisgICAgICAgICAgICBjc3NBbmltYXRpb25OYW1lOiBwYXlsb2Fk
LmNzc0FuaW1hdGlvbk5hbWUsCisgICAgICAgICAgICBjc3NUcmFuc2l0aW9uUHJvcGVydHk6IHBh
eWxvYWQuY3NzVHJhbnNpdGlvblByb3BlcnR5LAorICAgICAgICAgICAgZWZmZWN0OiBwYXlsb2Fk
LmVmZmVjdCwKKyAgICAgICAgICAgIGJhY2t0cmFjZTogQXJyYXkuaXNBcnJheShwYXlsb2FkLmJh
Y2t0cmFjZSkgPyBwYXlsb2FkLmJhY2t0cmFjZS5tYXAoKGl0ZW0pID0+IFdJLkNhbGxGcmFtZS5m
cm9tUGF5bG9hZChXSS5tYWluVGFyZ2V0LCBpdGVtKSkgOiBbXSwKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZShhbmltYXRpb25UeXBl
LCBwbHVyYWwpCisgICAgeworICAgICAgICBzd2l0Y2ggKGFuaW1hdGlvblR5cGUpIHsKKyAgICAg
ICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb246CisgICAgICAgICAgICByZXR1
cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25zIikgOiBXSS5VSVN0cmluZygi
V2ViIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1h
dGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NTIEFuaW1h
dGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9uIik7CisgICAgICAgIGNhc2UgV0ku
QW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwg
PyBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb25zIikgOiBXSS5VSVN0cmluZygiQ1NTIFRyYW5z
aXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5r
bm93biBhbmltYXRpb24gdHlwZSIsIGFuaW1hdGlvblR5cGUpOworICAgICAgICByZXR1cm4gbnVs
bDsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbihw
bGF5YmFja0RpcmVjdGlvbikKKyAgICB7CisgICAgICAgIHN3aXRjaCAocGxheWJhY2tEaXJlY3Rp
b24pIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uTm9ybWFs
OgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJOb3JtYWwiLCAiV2ViIEFuaW1hdGlv
biBQbGF5YmFjayBEaXJlY3Rpb24gTm9ybWFsIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFj
ayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlzIG5vcm1hbCAoZS5nLiBmb3J3YXJk
cykiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24uUmV2ZXJz
ZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUmV2ZXJzZSIsICJXZWIgQW5pbWF0
aW9uIFBsYXliYWNrIERpcmVjdGlvbiBSZXZlcnNlIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5
YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlzIHJldmVyc2VkIChlLmcuIGJh
Y2t3YXJkcykiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJhY2tEaXJlY3Rpb24u
QWx0ZXJuYXRlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJBbHRlcm5hdGUiLCAi
V2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIiwgIkluZGljYXRlcyB0
aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0
ZXMgYmV0d2VlbiBub3JtYWwgYW5kIHJldmVyc2VkIG9uIGVhY2ggaXRlcmF0aW9uIik7CisgICAg
ICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLkFsdGVybmF0ZVJldmVyc2U6
CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFsdGVybmF0ZSBSZXZlcnNlIiwgIldl
YiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIEFsdGVybmF0ZSBSZXZlcnNlIiwgIkluZGlj
YXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGFs
dGVybmF0ZXMgYmV0d2VlbiByZXZlcnNlZCBhbmQgbm9ybWFsIG9uIGVhY2ggaXRlcmF0aW9uIik7
CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gcGxh
eWJhY2sgZGlyZWN0aW9uIiwgcGxheWJhY2tEaXJlY3Rpb24pOworICAgICAgICByZXR1cm4gbnVs
bDsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JGaWxsTW9kZShmaWxsTW9kZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAoZmlsbE1vZGUpIHsKKyAgICAgICAgY2FzZSBXSS5Bbmlt
YXRpb24uRmlsbE1vZGUuTm9uZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiTm9u
ZSIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBOb25lIiwgIkluZGljYXRlcyB0aGF0IHRoaXMg
d2ViIGFuaW1hdGlvbiBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMg
YW5kIGFmdGVyIGl0IGVuZHMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUu
Rm9yd2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkZvcndhcmRzIiwgIldl
YiBBbmltYXRpb24gRmlsbCBNb2RlIEZvcndhcmRzIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2Vi
IGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGFmdGVyIGl0IGVuZHMiKTsKKyAgICAgICAg
Y2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuQmFja3dhcmRzOgorICAgICAgICAgICAgcmV0dXJu
IFdJLlVJU3RyaW5nKCJCYWNrd2FyZHMiLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQmFja3dh
cmRzIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5
bGVzIGJlZm9yZSBpdCBiZWdpbnMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1v
ZGUuQm90aDoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQm90aCIsICJXZWIgQW5p
bWF0aW9uIEZpbGwgTW9kZSBCb3RoIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlv
biBhbHNvIGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMi
KTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuQXV0bzoKKyAgICAgICAgICAg
IHJldHVybiBXSS5VSVN0cmluZygiQXV0byIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBBdXRv
IiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBlaXRoZXIgZG9lcyBub3QgYXBw
bHkgYW55IHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzIG9yIHRoYXQg
aXQgYXBwbGllcyB0byBib3RoLCBkZXBlbmRpbmcgb24gaXQncyBjb25maWd1cmF0aW9uIik7Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gZmlsbCBt
b2RlIiwgZmlsbE1vZGUpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0
aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKQorICAgIHsKKyAgICAgICAgV0kuQW5p
bWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOworICAgIH0KKworICAgIC8v
IFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvbklkKCkgeyByZXR1cm4gdGhpcy5fYW5pbWF0aW9u
SWQ7IH0KKyAgICBnZXQgYmFja3RyYWNlKCkgeyByZXR1cm4gdGhpcy5fYmFja3RyYWNlOyB9CisK
KyAgICBnZXQgYW5pbWF0aW9uVHlwZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fY3NzQW5p
bWF0aW9uTmFtZSkKKyAgICAgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmlt
YXRpb247CisgICAgICAgIGlmICh0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkpCisgICAgICAg
ICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjsKKyAgICAgICAgcmV0
dXJuIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBnZXQgc3Rh
cnREZWxheSgpCisgICAgeworICAgICAgICByZXR1cm4gInN0YXJ0RGVsYXkiIGluIHRoaXMuX2Vm
ZmVjdCA/IHRoaXMuX2VmZmVjdC5zdGFydERlbGF5IDogTmFOOworICAgIH0KKworICAgIGdldCBl
bmREZWxheSgpCisgICAgeworICAgICAgICByZXR1cm4gImVuZERlbGF5IiBpbiB0aGlzLl9lZmZl
Y3QgPyB0aGlzLl9lZmZlY3QuZW5kRGVsYXkgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJh
dGlvbkNvdW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uQ291bnQiIGluIHRo
aXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25Db3VudCA6IE5hTjsKKyAgICB9CisK
KyAgICBnZXQgaXRlcmF0aW9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRp
b25TdGFydCIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvblN0YXJ0IDog
TmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25EdXJhdGlvbigpCisgICAgeworICAgICAg
ICByZXR1cm4gIml0ZXJhdGlvbkR1cmF0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZl
Y3QuaXRlcmF0aW9uRHVyYXRpb24gOiBOYU47CisgICAgfQorCisgICAgZ2V0IHRpbWluZ0Z1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAidGltaW5nRnVuY3Rpb24iIGluIHRoaXMuX2Vm
ZmVjdCA/IHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbiA6IG51bGw7CisgICAgfQorCisgICAg
Z2V0IHBsYXliYWNrRGlyZWN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAicGxheWJhY2tE
aXJlY3Rpb24iIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5wbGF5YmFja0RpcmVjdGlv
biA6IG51bGw7CisgICAgfQorCisgICAgZ2V0IGZpbGxNb2RlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAiZmlsbE1vZGUiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5maWxsTW9kZSA6
IG51bGw7CisgICAgfQorCisgICAgZ2V0IGtleWZyYW1lcygpCisgICAgeworICAgICAgICByZXR1
cm4gImtleWZyYW1lcyIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LmtleWZyYW1lcyA6
IFtdOworICAgIH0KKworICAgIGdldCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICBpZiAo
dGhpcy5fY3NzQW5pbWF0aW9uTmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jc3NBbmlt
YXRpb25OYW1lOworCisgICAgICAgIGlmICh0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkpCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5OworCisgICAgICAg
IGlmICghdGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIpCisgICAgICAgICAgICB0aGlzLl91
bmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IFdJLkFuaW1hdGlvbi5fbmV4dFVuaXF1ZURpc3BsYXlO
YW1lTnVtYmVyKys7CisgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQW5pbWF0aW9uICVkIiku
Zm9ybWF0KHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKTsKKyAgICB9CisKKyAgICByZXF1
ZXN0RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2VmZmVj
dFRhcmdldCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9lZmZl
Y3RUYXJnZXQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MpIHsKKyAgICAgICAgICAgIHRoaXMu
X3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MucHVzaChjYWxsYmFjayk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0
Q2FsbGJhY2tzID0gW2NhbGxiYWNrXTsKKworICAgICAgICBXSS5kb21NYW5hZ2VyLmVuc3VyZURv
Y3VtZW50KCk7CisKKyAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgp
OworICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQucmVxdWVzdEVmZmVjdFRhcmdldCh0aGlz
Ll9hbmltYXRpb25JZCwgKGVycm9yLCBub2RlSWQpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2Vm
ZmVjdFRhcmdldCA9ICFlcnJvciA/IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCkgOiBu
dWxsOworCisgICAgICAgICAgICBmb3IgKGxldCByZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2sg
b2YgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcykKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2sodGhpcy5fZWZmZWN0VGFyZ2V0KTsKKworICAgICAg
ICAgICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcyA9IG51bGw7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIC8vIEFuaW1hdGlvbk1hbmFnZXIKKworICAgIGVmZmVjdENoYW5n
ZWQoZWZmZWN0KQorICAgIHsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVjdCk7Cisg
ICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl9lZmZlY3RU
YXJnZXQgPSB1bmRlZmluZWQ7CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpOworICAgIH0KKworICAgIC8vIFBy
aXZhdGUKKworICAgIF91cGRhdGVFZmZlY3QoZWZmZWN0KQorICAgIHsKKyAgICAgICAgdGhpcy5f
ZWZmZWN0ID0gZWZmZWN0IHx8IHt9OworCisgICAgICAgIGlmICh0aGlzLl9lZmZlY3QudGltaW5n
RnVuY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24gPSBXSS5D
dWJpY0Jlemllci5mcm9tU3RyaW5nKHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbik7CisKKyAg
ICAgICAgaWYgKHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0
IGtleWZyYW1lIG9mIHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoa2V5ZnJhbWUuZWFzaW5nKQorICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZS5lYXNpbmcg
PSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKGtleWZyYW1lLmVhc2luZyk7CisKKyAgICAgICAg
ICAgICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpCisgICAgICAgICAgICAgICAgICAgIGtleWZyYW1l
LnN0eWxlID0ga2V5ZnJhbWUuc3R5bGUucmVwbGFjZUFsbCgvO1xzKy9nLCAiO1xuIik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCk7CisgICAgfQorfTsKKworV0ku
QW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOworCitXSS5BbmltYXRp
b24uVHlwZSA9IHsKKyAgICBXZWJBbmltYXRpb246ICJ3ZWItYW5pbWF0aW9uIiwKKyAgICBDU1NB
bmltYXRpb246ICJjc3MtYW5pbWF0aW9uIiwKKyAgICBDU1NUcmFuc2l0aW9uOiAiY3NzLXRyYW5z
aXRpb24iLAorfTsKKworV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uID0geworICAgIE5v
cm1hbDogIm5vcm1hbCIsCisgICAgUmV2ZXJzZTogInJldmVyc2UiLAorICAgIEFsdGVybmF0ZTog
ImFsdGVybmF0ZSIsCisgICAgQWx0ZXJuYXRlUmV2ZXJzZTogImFsdGVybmF0ZS1yZXZlcnNlIiwK
K307CisKK1dJLkFuaW1hdGlvbi5GaWxsTW9kZSA9IHsKKyAgICBOb25lOiAibm9uZSIsCisgICAg
Rm9yd2FyZHM6ICJmb3J3YXJkcyIsCisgICAgQmFja3dhcmRzOiAiYmFja3dhcmRzIiwKKyAgICBC
b3RoOiAiYm90aCIsCisgICAgQXV0bzogImF1dG8iLAorfTsKKworV0kuQW5pbWF0aW9uLkV2ZW50
ID0geworICAgIEVmZmVjdENoYW5nZWQ6ICJhbmltYXRpb24tZWZmZWN0LWNoYW5nZWQiLAorICAg
IFRhcmdldENoYW5nZWQ6ICJhbmltYXRpb24tdGFyZ2V0LWNoYW5nZWQiLAorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25D
b2xsZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0FuaW1hdGlvbkNvbGxlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEyOGE3YjE0OGRlZWJlOGVhNTc2
ZmRiMWRhYjBiNWIwYmM0OTFkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzCkBAIC0wLDAg
KzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29sbGVjdGlvbiA9IGNsYXNzIEFu
aW1hdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBXSS5Db2xsZWN0aW9uCit7CisgICAgY29uc3RydWN0
b3IoYW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFhbmltYXRp
b25UeXBlIHx8IE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5cGUpLmluY2x1ZGVzKGFuaW1h
dGlvblR5cGUpKTsKKworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlv
blR5cGUgPSBhbmltYXRpb25UeXBlIHx8IG51bGw7CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmlt
YXRpb25UeXBlKQorICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVN
YXAgPSBudWxsOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvblR5
cGUoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25UeXBlOyB9CisKKyAgICBnZXQgZGlzcGxheU5h
bWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAgICAg
ICAgIGNvbnN0IHBsdXJhbCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9u
LmRpc3BsYXlOYW1lRm9yVHlwZSh0aGlzLl9hbmltYXRpb25UeXBlLCBwbHVyYWwpOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJXZWIgQW5pbWF0aW9ucyIpOworICAg
IH0KKworICAgIG9iamVjdElzUmVxdWlyZWRUeXBlKG9iamVjdCkKKyAgICB7CisgICAgICAgIGlm
ICghKG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICF0aGlzLl9hbmltYXRpb25UeXBlIHx8IG9iamVjdC5h
bmltYXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlOworICAgIH0KKworICAgIGFuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGFuaW1hdGlvblR5cGUpCisgICAgeworICAgICAgICBjb25z
b2xlLmFzc2VydChPYmplY3QudmFsdWVzKFdJLkFuaW1hdGlvbi5UeXBlKS5pbmNsdWRlcyhhbmlt
YXRpb25UeXBlKSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblR5cGUpIHsKKyAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvblR5cGUgPT09IHRoaXMuX2FuaW1hdGlvblR5
cGUpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
IXRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKQorICAgICAgICAgICAgdGhpcy5f
YW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAgPSBuZXcgTWFwOworCisgICAgICAgIGxldCBh
bmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlTWFwLmdldChhbmltYXRpb25UeXBlKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb25Db2xsZWN0
aW9uRm9yVHlwZSkgeworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSBu
ZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbihhbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIHRo
aXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnNldChhbmltYXRpb25UeXBlLCBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAg
aXRlbUFkZGVkKGl0ZW0pCisgICAgeworICAgICAgICBzdXBlci5pdGVtQWRkZWQoaXRlbSk7CisK
KyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBsZXQgYW5p
bWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBl
KGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZS5hZGQoaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpdGVtUmVtb3ZlZChpdGVt
KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAg
ICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlvbkNvbGxlY3Rp
b25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmltYXRpb25Db2xs
ZWN0aW9uRm9yVHlwZS5yZW1vdmUoaXRlbSk7CisgICAgICAgIH0KKworICAgICAgICBzdXBlci5p
dGVtUmVtb3ZlZChpdGVtKTsKKyAgICB9CisKKyAgICBpdGVtc0NsZWFyZWQoaXRlbXMpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXApIHsKKyAg
ICAgICAgICAgIGZvciAobGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlIG9mIHRoaXMuX2Fu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgICAgIGFu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAgICBz
dXBlci5pdGVtc0NsZWFyZWQoaXRlbXMpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RD
YXNlUmVzdWx0LmpzCmluZGV4IGM5Y2MzOTYyZTgwZmI2NmZlMTVkYTEzNTRlYTI5MjZiZjg0MWNk
Y2UuLjMxZDYyN2Q4MTFiZDYzMzJkYzQ4MDg1Zjk3ZGY1MDY0ZDIwMTI3ZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNl
UmVzdWx0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCkBAIC0xNDYsNyArMTQ2LDcgQEAgV0kuQXVkaXRUZXN0
Q2FzZVJlc3VsdCA9IGNsYXNzIEF1ZGl0VGVzdENhc2VSZXN1bHQgZXh0ZW5kcyBXSS5BdWRpdFRl
c3RSZXN1bHRCYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUucXVlcnlT
ZWxlY3Rvcihkb21Ob2RlU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNh
dGNoIHsgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kb21NYW5hZ2Vy
Lm5vZGVGb3JJZChub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2Fu
dmFzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZh
cy5qcwppbmRleCA2MmJhMjY0MTA1YWFlZGY0YmE1ZTJiZTM3NTVhMmI1ZDM4YmNmYWQzLi5mZjcx
YWY2ZDQzZDI3NmMxMWY3NDM2MjNiODMyZjk0YjYxZWZlMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKQEAgLTk3LDcg
Kzk3LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEOgogICAgICAgICAgICAgcmV0
dXJuIFdJLlVJU3RyaW5nKCIyRCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5CaXRtYXBSZW5kZXJlcjoKLSAgICAgICAgICAgIHJldHVybiBXSS51bmxvY2FsaXplZFN0cmlu
ZygiQml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkJp
dG1hcCBSZW5kZXJlciIsICJDYW52YXMgQ29udGV4dCBUeXBlIEJpdG1hcCBSZW5kZXJlciIsICJC
aXRtYXAgUmVuZGVyZXIgaXMgYSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGFzc29jaWF0ZWQg
d2l0aCBhIDxjYW52YXM+IGVsZW1lbnQiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR0w6CiAgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldl
YkdMIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMjoKQEAgLTEw
Niw5ICsxMDYsMTAgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYiBHUFUiKTsKICAg
ICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViTWV0YWw6CiAgICAgICAgICAgICBy
ZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYk1ldGFsIik7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBjb25zb2xlLmVycm9yKCJJbnZhbGlkIGNhbnZhcyBjb250ZXh0IHR5cGUi
LCBjb250ZXh0VHlwZSk7CiAgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxz
ZSwgIlVua25vd24gY2FudmFzIGNvbnRleHQgdHlwZSIsIGNvbnRleHRUeXBlKTsKKyAgICAgICAg
cmV0dXJuIG51bGw7CiAgICAgfQogCiAgICAgc3RhdGljIHJlc2V0VW5pcXVlRGlzcGxheU5hbWVO
dW1iZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9SZWNvcmRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCmluZGV4IDFmOGRkN2VmNDVkNjI5Nzc4Y2Q4Mjg3YmZiOGQz
MWIyYTEwODlmMzAuLjUxM2VmNzZhZjU2MTQyOTFlMjg2NGFhZWE1OGU3NDdjNjhhODRmYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNv
cmRpbmcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1JlY29yZGluZy5qcwpAQCAtMTQ4LDYgKzE0OCwyMyBAQCBXSS5SZWNvcmRpbmcgPSBjbGFzcyBS
ZWNvcmRpbmcgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJuIG5ldyBXSS5SZWNvcmRp
bmcocGF5bG9hZC52ZXJzaW9uLCB0eXBlLCBwYXlsb2FkLmluaXRpYWxTdGF0ZSwgZnJhbWVzLCBw
YXlsb2FkLmRhdGEpOwogICAgIH0KIAorICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZvclJlY29yZGlu
Z1R5cGUocmVjb3JkaW5nVHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocmVjb3JkaW5nVHlw
ZSkgeworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhczJEOgorICAgICAgICAgICAg
cmV0dXJuIFdJLlVJU3RyaW5nKCIyRCIpOworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNh
bnZhc0JpdG1hcFJlbmRlcmVyOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCaXRt
YXAgUmVuZGVyZXIiLCAiUmVjb3JkaW5nIFR5cGUgQ2FudmFzIEJpdG1hcCBSZW5kZXJlciIsICJB
IHR5cGUgb2YgY2FudmFzIHJlY29yZGluZyBpbiB0aGUgR3JhcGhpY3MgVGFiIik7CisgICAgICAg
IGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0w6CisgICAgICAgICAgICByZXR1cm4gV0ku
dW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUu
Q2FudmFzV2ViR0wyOgorICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJX
ZWJHTDIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5r
bm93biByZWNvcmRpbmcgdHlwZSIsIHJlY29yZGluZ1R5cGUpOworICAgICAgICByZXR1cm4gbnVs
bDsKKyAgICB9CisKICAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JTd2l6emxlVHlwZShzd2l6emxl
VHlwZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3dpenpsZVR5cGUpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9i
c2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
QW5pbWF0aW9uT2JzZXJ2ZXIuanMKaW5kZXggYjExOTVlZDBjYTBjYjBjYTgwNjY4ZTBlOThkYzY3
OWRjYWQ5MTdhMy4uN2U1NmU4YmIzOWNiYTBjNjI4MGVhOWNlZGQ0NWJlNTU0NWYwZjE2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5p
bWF0aW9uT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKQEAgLTI3LDYgKzI3LDI2IEBAIFdJLkFu
aW1hdGlvbk9ic2VydmVyID0gY2xhc3MgQW5pbWF0aW9uT2JzZXJ2ZXIgZXh0ZW5kcyBJbnNwZWN0
b3JCYWNrZW5kLkRpc3BhdGNoCiB7CiAgICAgLy8gRXZlbnRzIGRlZmluZWQgYnkgdGhlICJBbmlt
YXRpb24iIGRvbWFpbi4KIAorICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uKQorICAgIHsK
KyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvbik7
CisgICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsK
KyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBl
ZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpCisgICAgewor
ICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLnRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpOwor
ICAgIH0KKworICAgIGFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCkKKyAgICB7CisgICAg
ICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbklkKTsK
KyAgICB9CisKICAgICB0cmFja2luZ1N0YXJ0KHRpbWVzdGFtcCkKICAgICB7CiAgICAgICAgIFdJ
LnRpbWVsaW5lTWFuYWdlci5hbmltYXRpb25UcmFja2luZ1N0YXJ0ZWQodGltZXN0YW1wKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1Jl
bW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL1JlbW90ZU9iamVjdC5qcwppbmRleCBkZDAwYWY1OGMxMjUzMDU4NmUxYzI4MzAzMmI3MmZk
NjI5ZmEzMmQ5Li4yY2JhNTY0ZDRhN2I2YTM4YzE4OWU1NzMzZDNjZjNjNjBmYzUxNjQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1v
dGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvUmVtb3RlT2JqZWN0LmpzCkBAIC0xODgsNiArMTg4LDI1IEBAIFdJLlJlbW90ZU9iamVj
dCA9IGNsYXNzIFJlbW90ZU9iamVjdAogICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQucmVzb2x2
ZUNvbnRleHQoY2FudmFzLmlkZW50aWZpZXIsIG9iamVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOwog
ICAgIH0KIAorICAgIHN0YXRpYyByZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlvbiwgb2JqZWN0R3Jv
dXAsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGNhbGxi
YWNrID09PSAiZnVuY3Rpb24iKTsKKworICAgICAgICBmdW5jdGlvbiB3cmFwQ2FsbGJhY2soZXJy
b3IsIG9iamVjdCkgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFvYmplY3QpCisgICAgICAg
ICAgICAgICAgY2FsbGJhY2sobnVsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgY2FsbGJhY2soV0kuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVjdCwgV0kubWFpblRh
cmdldCkpOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFp
blRhcmdldCgpOworCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0
aW9uLnJlc29sdmVBbmltYXRpb24gZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbiIpKTsK
KworICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQucmVzb2x2ZUFuaW1hdGlvbihhbmltYXRp
b24uYW5pbWF0aW9uSWQsIG9iamVjdEdyb3VwLCB3cmFwQ2FsbGJhY2spOworICAgIH0KKwogICAg
IC8vIFB1YmxpYwogCiAgICAgZ2V0IHRhcmdldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggMWQ0NDVhMDRjZGViZWVjZmE3YjBjYjA4ZWQ2
ZmJiZDRiZjQ2MWU4NC4uMGJhNTYwYjk2YzAyMzA2ZWI2MWIzMmJkZjRlYWM4OTkyM2RiZjBjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1s
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAt
MTA4LDYgKzEwOCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL1dvcmtlck9ic2VydmVy
LmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludEFjdGlv
bi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luc3RydW1lbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNlQ29kZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMjEs
NiArMTIyLDggQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Mb2NhbFNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAg
ICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQ1BVSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9DUFVUaW1lbGluZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMzcsNyArMTQwLDYgQEAKICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+PC9zY3JpcHQ+CkBAIC0yMzgsNiArMjQwLDcg
QEAKICAgICA8c2NyaXB0IHNyYz0iUHJveGllcy9IZWFwU25hcHNob3RQcm94eS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVhcFNuYXBzaG90V29ya2VyUHJveHkuanMi
Pjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFn
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BdWRpdE1hbmFn
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L0JyZWFrcG9pbnRMb2dNZXNzYWdlTGV4ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCmluZGV4IDNjNDNhZTc4YmUx
NzI3NzA3MjliNzAzMmFiZTU0NDQzYzk0NmE4YmIuLjAwNjQ0N2E5NjdlOWMyMzdmNjBjMTAwMDhi
YjQ2MzQ1NzJiN2M0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QvVGVzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0L1Rlc3QuanMKQEAgLTcwLDYgKzcwLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24o
KQogICAgICAgICBXSS53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFnZXIsCiAgICAg
ICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1hbmFnZXIsCiAg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwKKyAgICAgICAg
V0kuYW5pbWF0aW9uTWFuYWdlciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAogICAgIF07CiAK
ICAgICAvLyBSZWdpc3RlciBmb3IgZXZlbnRzLgpAQCAtOTEsNiArOTIsNyBAQCBXSS5sb2FkZWQg
PSBmdW5jdGlvbigpCiBXSS5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogewogICAgIC8vIFRo
aW5ncyB0aGF0IHdvdWxkIG5vcm1hbGx5IGdldCBjYWxsZWQgYnkgdGhlIFVJLCB0aGF0IHdlIHN0
aWxsIHdhbnQgdG8gZG8gaW4gdGVzdHMuCisgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lbmFibGUo
KTsKICAgICBXSS5hcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5jYW52
YXNNYW5hZ2VyLmVuYWJsZSgpOwogICAgIFdJLmRhdGFiYXNlTWFuYWdlci5lbmFibGUoKTsKQEAg
LTE4MSw2ICsxODMsNyBAQCBXSS51cGRhdGVWaXNpYmlsaXR5U3RhdGUgPSAoKSA9PiB7fTsKICAg
ICAgICAgICAgIGdldCgpIHsgcmV0dXJuIFdJLm1haW5UYXJnZXQuX2FnZW50c1tkb21haW5OYW1l
XTsgfSwKICAgICAgICAgfSk7CiAgICAgfQorICAgIG1ha2VBZ2VudEdldHRlcigiQW5pbWF0aW9u
Iik7CiAgICAgbWFrZUFnZW50R2V0dGVyKCJBdWRpdCIpOwogICAgIG1ha2VBZ2VudEdldHRlcigi
QXBwbGljYXRpb25DYWNoZSIpOwogICAgIG1ha2VBZ2VudEdldHRlcigiQ1BVUHJvZmlsZXIiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVz
dEhhcm5lc3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rl
c3RIYXJuZXNzLmpzCmluZGV4IGQ0NDdiODk1MGI5MzkyMWQwYTg2MDEzMDY4YThiMzQ4MmI1MzE4
ZGMuLmQyZTk5YWYxYjZlODUxMDdkZmQ2NmQ0MWEzMTNhNjRlYWU3MDBmMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVz
cy5qcwpAQCAtMTMxLDYgKzEzMSw0NiBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNz
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBl
Y3RhdGlvblR5cGUuRmFsc2UsICFhY3R1YWwsIG1lc3NhZ2UsIGFjdHVhbCk7CiAgICAgfQogCisg
ICAgZXhwZWN0RW1wdHkoYWN0dWFsLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgaWYgKEFycmF5
LmlzQXJyYXkoYWN0dWFsKSB8fCB0eXBlb2YgYWN0dWFsID09PSAic3RyaW5nIikgeworICAgICAg
ICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgIWFj
dHVhbC5sZW5ndGgsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0IHx8IGFjdHVhbCBpbnN0
YW5jZW9mIE1hcCkgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVj
dGF0aW9uVHlwZS5FbXB0eSwgIWFjdHVhbC5zaXplLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVvZiBhY3R1YWwgPT09
ICJvYmplY3QiKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0
YXRpb25UeXBlLkVtcHR5LCBpc0VtcHR5T2JqZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVhbCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmZhaWwoImV4
cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAgIEFj
dHVhbDogIiArIHRoaXMuX2V4cGVjdGF0aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAgICB9
CisKKyAgICBleHBlY3ROb3RFbXB0eShhY3R1YWwsIG1lc3NhZ2UpCisgICAgeworICAgICAgICBp
ZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IHR5cGVvZiBhY3R1YWwgPT09ICJzdHJpbmciKSB7
CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5v
dEVtcHR5LCAhIWFjdHVhbC5sZW5ndGgsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgU2V0IHx8
IGFjdHVhbCBpbnN0YW5jZW9mIE1hcCkgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RI
YXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwuc2l6ZSwgbWVzc2FnZSwg
YWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0
eXBlb2YgYWN0dWFsID09PSAib2JqZWN0IikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRl
c3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgIWlzRW1wdHlPYmplY3QoYWN0dWFs
KSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIHRoaXMuZmFpbCgiZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0
aCBhIG5vbi1vYmplY3Q6XG4gICAgQWN0dWFsOiAiICsgdGhpcy5fZXhwZWN0YXRpb25WYWx1ZUFz
U3RyaW5nKGFjdHVhbCkpOworICAgIH0KKwogICAgIGV4cGVjdE51bGwoYWN0dWFsLCBtZXNzYWdl
KQogICAgIHsKICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlw
ZS5OdWxsLCBhY3R1YWwgPT09IG51bGwsIG1lc3NhZ2UsIGFjdHVhbCwgbnVsbCk7CkBAIC0zODEs
NiArNDIxLDEwIEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgICAgIHJldHVybiAiZXhwZWN0VGhhdCglcykiOwogICAgICAgICBjYXNl
IFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZToKICAgICAgICAgICAgIHJldHVybiAi
ZXhwZWN0RmFsc2UoJXMpIjsKKyAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5
cGUuRW1wdHk6CisgICAgICAgICAgICByZXR1cm4gImV4cGVjdEVtcHR5KCVzKSI7CisgICAgICAg
IGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5OgorICAgICAgICAgICAg
cmV0dXJuICJleHBlY3ROb3RFbXB0eSglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4
cGVjdGF0aW9uVHlwZS5OdWxsOgogICAgICAgICAgICAgcmV0dXJuICJleHBlY3ROdWxsKCVzKSI7
CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdE51bGw6CkBAIC00
MTYsNiArNDYwLDEwIEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiAidHJ1dGh5IjsKICAgICAgICAgY2FzZSBUZXN0
SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2U6CiAgICAgICAgICAgICByZXR1cm4gImZhbHNl
eSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5OgorICAg
ICAgICAgICAgcmV0dXJuICJlbXB0eSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0
YXRpb25UeXBlLk5vdEVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJub3QgZW1wdHkiOwogICAg
ICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3ROdWxsOgogICAgICAgICAg
ICAgcmV0dXJuICJub3QgbnVsbCI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRp
b25UeXBlLk5vdEVxdWFsOgpAQCAtNDQwLDYgKzQ4OCw4IEBAIFRlc3RIYXJuZXNzID0gY2xhc3Mg
VGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlw
ZSA9IHsKICAgICBUcnVlOiBTeW1ib2woImV4cGVjdC10cnVlIiksCiAgICAgRmFsc2U6IFN5bWJv
bCgiZXhwZWN0LWZhbHNlIiksCisgICAgRW1wdHk6IFN5bWJvbCgiZXhwZWN0LWVtcHR5IiksCisg
ICAgTm90RW1wdHk6IFN5bWJvbCgiZXhwZWN0LW5vdC1lbXB0eSIpLAogICAgIE51bGw6IFN5bWJv
bCgiZXhwZWN0LW51bGwiKSwKICAgICBOb3ROdWxsOiBTeW1ib2woImV4cGVjdC1ub3QtbnVsbCIp
LAogICAgIEVxdWFsOiBTeW1ib2woImV4cGVjdC1lcXVhbCIpLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRhMzhmMTYy
YmU1MGU3NDdjYTU3ZmVjMmI3MzkxNTUwZjVkNGFiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25D
b250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZp
ZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBw
YWRkaW5nOiA0cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29u
dGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVjMWQyY2ZjMWVkOTEwYzk1OWIxOThlM2I4OGVmZTc0
YTRhZDkyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMCwwICsx
LDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyA9
IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlY3Rp
b25Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVkT2JqZWN0KQorICAg
IHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5BbmltYXRpb25Db2xsZWN0aW9uKTsKKworICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKyAgICAgICAgbGV0IGRlc2NyaXB0
aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5jbGFzc05hbWUg
PSAiZGVzY3JpcHRpb24iOworCisgICAgICAgIHN3aXRjaCAocmVwcmVzZW50ZWRPYmplY3QuYW5p
bWF0aW9uVHlwZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlv
bjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3Ry
aW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iKTsKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5p
bWF0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0ku
VUlTdHJpbmcoIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5z
aXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5V
SVN0cmluZygiV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjb25zb2xlLmFzc2VydChkZXNjcmlw
dGlvbkVsZW1lbnQudGV4dENvbnRlbnQpOworCisgICAgICAgIHN1cGVyKHJlcHJlc2VudGVkT2Jq
ZWN0LCBXSS5BbmltYXRpb25Db250ZW50VmlldywgY29udGVudFBsYWNlaG9sZGVyKTsKKworICAg
ICAgICB0aGlzLnNlbGVjdGlvbkVuYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJhbmltYXRpb24tY29sbGVjdGlvbiIpOworICAgIH0KKworICAgIC8v
IFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAg
ICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAo
c3VidmlldyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KQorICAgICAgICAgICAg
ICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgY29udGVudFZpZXdBZGRlZChjb250ZW50Vmll
dykKKyAgICB7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2VlbnRlciIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAg
IGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMu
X2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk7CisgICAgfQorCisgICAgY29udGVudFZpZXdS
ZW1vdmVkKGNvbnRlbnRWaWV3KQorICAgIHsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdN
b3VzZUVudGVyKTsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3Rl
bmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5faGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKTsKKyAg
ICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVE
T01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisK
KyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKGV2ZW50
KQorICAgIHsKKyAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gV0kuVmlldy5mcm9tRWxlbWVudChl
dmVudC50YXJnZXQpOworICAgICAgICBpZiAoIShjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkFu
aW1hdGlvbkNvbnRlbnRWaWV3KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQg
YW5pbWF0aW9uID0gY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGFuaW1h
dGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KChub2RlKSA9PiB7CisgICAgICAgICAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUub3duZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBub2RlLmhpZ2hsaWdodCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfaGFu
ZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuZG9tTWFu
YWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmll
dy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M1OTkwNGVmNzNmMzI4NDg2NDE3ODdiYjhi
NmMwYmY5MzdhYTUyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDEy
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uIHsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDEwMCU7CisgICAgbWFyZ2luOiA0cHg7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50KTsKKyAgICBib3Jk
ZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbi5zZWxlY3RlZCB7CisgICAgb3V0bGluZTogYXV0byAtd2Via2l0LWZvY3VzLXJpbmct
Y29sb3I7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyIHsKKyAgICBkaXNw
bGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgaGVpZ2h0OiB2YXIoLS1u
YXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIHBhZGRpbmc6IDAgNnB4OworICAgIGZvbnQtc2l6
ZTogMTNweDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVz
IHsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlv
biA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNv
bG9yLWdyYXktZGFyayk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4g
LnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1t
ZWRpdW0pOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMg
PiAuc3VidGl0bGU6bm90KDplbXB0eSk6OmJlZm9yZSB7CisgICAgY29udGVudDogIlwwMEEwXDIw
MTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87Cit9CisKKy5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAgICBib3JkZXI6IG5vbmU7
CisgICAgb3BhY2l0eTogMDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb246aG92ZXIgPiBo
ZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIG9wYWNpdHk6IDE7Cit9CisKKy5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAganVz
dGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0
aW9uID4gLnByZXZpZXcgPiBzdmcgeworICAgIHdpZHRoOiAxMDAlOworfQorCitib2R5W2Rpcj1y
dGxdIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgeworICAgIHRyYW5z
Zm9ybTogc2NhbGVYKC0xKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyA+IHN2ZyByZWN0IHsKKyAgICBmaWxsOiB0cmFuc3BhcmVudDsKK30KKworLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBsaW5lIHsKKyAgICBzdHJva2U6
IHZhcigtLWJvcmRlci1jb2xvcik7CisgICAgc3Ryb2tlLXdpZHRoOiAyOworfQorCisuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRoIHsKKyAgICBm
aWxsOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAgIGZpbGwtb3BhY2l0eTogMC41Owor
ICAgIHN0cm9rZTogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKKyAgICBzdHJva2Utd2lkdGg6
IDE7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0
aXZlIGNpcmNsZSB7CisgICAgZmlsbDogdmFyKC0tdGV4dC1jb2xvcik7Cit9CisKKy5jb250ZW50
LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGxpbmUgeworICAgIHN0
cm9rZTogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgc3Ryb2tlLXdpZHRoOiAyOworfQorCisuY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3BhbiB7CisgICAgcGFkZGluZzogNHB4
OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7Cit9CisKK0BtZWRpYSAo
cHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LmFuaW1hdGlv
biA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgICAgICBjb2xvcjogdmFyKC0tdGV4
dC1jb2xvcik7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIg
PiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3It
c2Vjb25kYXJ5KTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2
aWV3IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAyMCUpOworICAgIH0K
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDlkNjA2N2Nm
ODY0ZDc0ODczMzM0ZGM5ODNmY2EwZmFlNjczYjZiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3
LmpzCkBAIC0wLDAgKzEsMzAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29udGVudFZp
ZXcgPSBjbGFzcyBBbmltYXRpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3Cit7
CisgICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCisgICAgeworICAgICAgICBjb25z
b2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbik7CisK
KyAgICAgICAgc3VwZXIocmVwcmVzZW50ZWRPYmplY3QpOworCisgICAgICAgIHRoaXMuX2FuaW1h
dGlvblRhcmdldERPTU5vZGUgPSBudWxsOworICAgICAgICB0aGlzLl9jYWNoZWRXaWR0aCA9IE5h
TjsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW9uIik7Cisg
ICAgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgZ2V0IHByZXZpZXdIZWlnaHQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIDQwOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAg
aGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVz
aFN1YnRpdGxlKCk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5
b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBs
ZXQgaGVhZGVyRWxlbWVudCA9IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJoZWFkZXIiKSk7CisKKyAgICAgICAgbGV0IHRpdGxlc0NvbnRhaW5lciA9IGhl
YWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwor
ICAgICAgICB0aXRsZXNDb250YWluZXIuY2xhc3NOYW1lID0gInRpdGxlcyI7CisKKyAgICAgICAg
bGV0IHRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0g
InRpdGxlIjsKKyAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5kaXNwbGF5TmFtZTsKKworICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQg
PSB0aXRsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Bh
biIpKTsKKyAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LmNsYXNzTmFtZSA9ICJzdWJ0aXRs
ZSI7CisKKyAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdhdGlvbkJhcjsK
KworICAgICAgICBsZXQgYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcg
V0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImFuaW1hdGlvbi10YXJnZXQiLCBXSS5VSVN0cmluZygi
QW5pbWF0aW9uIFRhcmdldCIpLCAiSW1hZ2VzL01hcmt1cC5zdmciLCAxNiwgMTYpOworICAgICAg
ICBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkg
PSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICBXSS5h
ZGRNb3VzZURvd25Db250ZXh0TWVudUhhbmRsZXJzKGFuaW1hdGlvblRhcmdldEJ1dHRvbk5hdmln
YXRpb25JdGVtLmVsZW1lbnQsIHRoaXMuX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29u
dGV4dE1lbnUuYmluZCh0aGlzKSk7CisgICAgICAgIG5hdmlnYXRpb25CYXIuYWRkTmF2aWdhdGlv
bkl0ZW0oYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0ZW0pOworCisgICAgICAgIGhl
YWRlckVsZW1lbnQuYXBwZW5kKG5hdmlnYXRpb25CYXIuZWxlbWVudCk7CisgICAgICAgIHRoaXMu
YWRkU3VidmlldyhuYXZpZ2F0aW9uQmFyKTsKKworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFp
bmVyID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5jbGFzc05hbWUgPSAicHJldmll
dyI7CisgICAgfQorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmxheW91dCgp
OworCisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAgICAgICB0aGlzLl9yZWZy
ZXNoUHJldmlldygpOworICAgIH0KKworICAgIHNpemVEaWRDaGFuZ2UoKQorICAgIHsKKyAgICAg
ICAgc3VwZXIuc2l6ZURpZENoYW5nZSgpOworCisgICAgICAgIHRoaXMuX2NhY2hlZFdpZHRoID0g
dGhpcy5lbGVtZW50LnJlYWxPZmZzZXRXaWR0aDsKKyAgICB9CisKKyAgICBhdHRhY2hlZCgpCisg
ICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgpOworCisgICAgICAgIHRoaXMucmVwcmVzZW50
ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdl
ZCwgdGhpcy5faGFuZGxlRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hh
bmdlZCwgdGhpcy5faGFuZGxlVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgfQorCisgICAgZGV0
YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVU
YXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1v
dmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkLCB0aGlzLl9o
YW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwor
ICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9yZWZyZXNoU3VidGl0bGUoKQorICAgIHsK
KyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0RWZmZWN0VGFyZ2V0KChkb21O
b2RlKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlID0gZG9t
Tm9kZTsKKworICAgICAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LnJlbW92ZUNoaWxkcmVu
KCk7CisgICAgICAgICAgICBpZiAoZG9tTm9kZSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zdWJ0
aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoV0kubGlua2lmeU5vZGVSZWZlcmVuY2UoZG9tTm9kZSkp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVmcmVzaFByZXZpZXcoKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAg
IGxldCBrZXlmcmFtZXMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmtleWZyYW1lczsKKyAgICAg
ICAgaWYgKCFrZXlmcmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBsZXQgc3BhbiA9IHRoaXMu
X3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Bh
biIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiVGhpcyBh
bmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGxldCBzdGFydERlbGF5ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5z
dGFydERlbGF5IHx8IDA7CisgICAgICAgIGxldCBpdGVyYXRpb25EdXJhdGlvbiA9IHRoaXMucmVw
cmVzZW50ZWRPYmplY3QuaXRlcmF0aW9uRHVyYXRpb24gfHwgMDsKKyAgICAgICAgbGV0IGVuZERl
bGF5ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5lbmREZWxheSB8fCAwOworICAgICAgICBsZXQg
dG90YWxEdXJhdGlvbiA9IHN0YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIGVuZERlbGF5
OworICAgICAgICBpZiAodG90YWxEdXJhdGlvbiA9PT0gMCkgeworICAgICAgICAgICAgbGV0IHNw
YW4gPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gV0kuVUlTdHJp
bmcoIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHByZXZpZXdIZWlnaHQgPSBXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcmV2aWV3SGVpZ2h0OworCisgICAgICAgIGNvbnN0IG1hcmtlckhlYWRS
YWRpdXMgPSA0OworICAgICAgICBjb25zdCBtYXJrZXJIZWFkUGFkZGluZyA9IDI7CisKKyAgICAg
ICAgLy8gU3F1ZWV6ZSB0aGUgZW50aXJlIHByZXZpZXcgc28gdGhhdCBtYXJrZXJzIGFyZW4ndCBj
dXQgb2ZmLgorICAgICAgICBjb25zdCBzcXVlZXplWFN0YXJ0ID0gKGl0ZXJhdGlvbkR1cmF0aW9u
ICYmIHN0YXJ0RGVsYXkpID8gMCA6IG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGlu
ZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVhFbmQgPSAoaXRlcmF0aW9uRHVyYXRpb24gJiYgZW5k
RGVsYXkpID8gMCA6IG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAg
ICAgY29uc3Qgc3F1ZWV6ZVlTdGFydCA9IG1hcmtlckhlYWRSYWRpdXMgKyAobWFya2VySGVhZFBh
ZGRpbmcgKiAyKTsKKworICAgICAgICAvLyBNb3ZlIHRoZSBlYXNpbmcgbGluZSBkb3duIHRvIGN1
dCBvZmYgdGhlIGJvdHRvbSBib3JkZXIuCisgICAgICAgIGNvbnN0IGFkanVzdEVhc2luZ1kgPSAw
LjU7CisKKyAgICAgICAgbGV0IHNlY29uZHNQZXJQaXhlbCA9IHRoaXMuX2NhY2hlZFdpZHRoIC8g
dG90YWxEdXJhdGlvbjsKKworICAgICAgICBzdGFydERlbGF5ICo9IHNlY29uZHNQZXJQaXhlbDsK
KyAgICAgICAgaXRlcmF0aW9uRHVyYXRpb24gPSAoaXRlcmF0aW9uRHVyYXRpb24gKiBzZWNvbmRz
UGVyUGl4ZWwpIC0gc3F1ZWV6ZVhTdGFydCAtIHNxdWVlemVYRW5kOworICAgICAgICBlbmREZWxh
eSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisKKyAgICAgICAgbGV0IHN2ZyA9IHRoaXMuX3ByZXZpZXdD
b250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgic3ZnIikpOworICAgICAgICBz
dmcuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgYDAgMCAke3RoaXMuX2NhY2hlZFdpZHRofSAke3By
ZXZpZXdIZWlnaHR9YCk7CisKKyAgICAgICAgZnVuY3Rpb24gYWRkVGl0bGUocGFyZW50LCB0aXRs
ZSkgeworICAgICAgICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IHBhcmVudC5hcHBlbmRDaGlsZChj
cmVhdGVTVkdFbGVtZW50KCJ0aXRsZSIpKTsKKyAgICAgICAgICAgIHRpdGxlRWxlbWVudC50ZXh0
Q29udGVudCA9IHRpdGxlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXJ0RGVsYXkpIHsK
KyAgICAgICAgICAgIGxldCBzdGFydERlbGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNy
ZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICBzdGFydERlbGF5Q29udGFpbmVyLmNs
YXNzTGlzdC5hZGQoImRlbGF5IiwgInN0YXJ0Iik7CisKKyAgICAgICAgICAgIGxldCBzdGFydERl
bGF5TGluZSA9IHN0YXJ0RGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgibGluZSIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgieTEi
LCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisgICAgICAgICAgICBzdGFy
dERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngyIiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBz
dGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkyIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXpl
WVN0YXJ0KSAvIDIpOworCisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUVsZW1lbnQgPSBzdGFy
dERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7Cisg
ICAgICAgICAgICBzdGFydERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgc3RhcnRE
ZWxheSk7CisgICAgICAgICAgICBzdGFydERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdo
dCIsIHByZXZpZXdIZWlnaHQpOworCisgICAgICAgICAgICBjb25zdCBzdGFydERlbGF5VGl0bGVG
b3JtYXQgPSBXSS5VSVN0cmluZygiU3RhcnQgRGVsYXkgJXMiLCAiV2ViIEFuaW1hdGlvbiBTdGFy
dCBEZWxheSBUb29sdGlwIiwgIlRvb2x0aXAgZm9yIHNlY3Rpb24gb2YgZ3JhcGggcmVwcmVzZW50
aW5nIGRlbGF5IGJlZm9yZSBhIHdlYiBhbmltYXRpb24gYmVnaW5zIGFwcGx5aW5nIHN0eWxlcyIp
OworICAgICAgICAgICAgYWRkVGl0bGUoc3RhcnREZWxheUVsZW1lbnQsIHN0YXJ0RGVsYXlUaXRs
ZUZvcm1hdC5mb3JtYXQoTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnN0YXJ0RGVsYXkgLyAxMDAwKSkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVuZERl
bGF5KSB7CisgICAgICAgICAgICBsZXQgZW5kRGVsYXlDb250YWluZXIgPSBzdmcuYXBwZW5kQ2hp
bGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5Q29udGFpbmVy
LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3N0YXJ0RGVsYXkgKyBpdGVy
YXRpb25EdXJhdGlvbiArIHNxdWVlemVYU3RhcnR9LCAwKWApOworICAgICAgICAgICAgZW5kRGVs
YXlDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZGVsYXkiLCAiZW5kIik7CisKKyAgICAgICAgICAg
IGxldCBlbmREZWxheUxpbmUgPSBlbmREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVT
VkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0
ZSgieTEiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7CisgICAgICAgICAg
ICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ4MiIsIGVuZERlbGF5KTsKKyAgICAgICAgICAg
IGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkyIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXpl
WVN0YXJ0KSAvIDIpOworCisgICAgICAgICAgICBsZXQgZW5kRGVsYXlFbGVtZW50ID0gZW5kRGVs
YXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAg
ICAgICAgIGVuZERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgc3RhcnREZWxheSAr
IGl0ZXJhdGlvbkR1cmF0aW9uICsgZW5kRGVsYXkpOworICAgICAgICAgICAgZW5kRGVsYXlFbGVt
ZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgcHJldmlld0hlaWdodCk7CisKKyAgICAgICAgICAg
IGNvbnN0IGVuZERlbGF5VGl0bGVGb3JtYXQgPSBXSS5VSVN0cmluZygiRW5kIERlbGF5ICVzIiwg
IldlYiBBbmltYXRpb24gRW5kIERlbGF5IFRvb2x0aXAiLCAiVG9vbHRpcCBmb3Igc2VjdGlvbiBv
ZiBncmFwaCByZXByZXNlbnRpbmcgZGVsYXkgYWZ0ZXIgYSB3ZWIgYW5pbWF0aW9uIGZpbmlzaGVz
IGFwcGx5aW5nIHN0eWxlcyIpOworICAgICAgICAgICAgYWRkVGl0bGUoZW5kRGVsYXlFbGVtZW50
LCBlbmREZWxheVRpdGxlRm9ybWF0LmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QuZW5kRGVsYXkgLyAxMDAwKSkpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGl0ZXJhdGlvbkR1cmF0aW9uKSB7CisgICAgICAgICAgICBsZXQgdGltaW5nRnVuY3Rp
b24gPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnRpbWluZ0Z1bmN0aW9uOworCisgICAgICAgICAg
ICBsZXQgYWN0aXZlRHVyYXRpb25Db250YWluZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZH
RWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgIGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmNsYXNz
TGlzdC5hZGQoImFjdGl2ZSIpOworICAgICAgICAgICAgYWN0aXZlRHVyYXRpb25Db250YWluZXIu
c2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7c3RhcnREZWxheSArIHNxdWVl
emVYU3RhcnR9LCAke3NxdWVlemVZU3RhcnR9KWApOworCisgICAgICAgICAgICBjb25zdCBzdGFy
dFkgPSAwOworICAgICAgICAgICAgY29uc3QgZW5kWSA9IHByZXZpZXdIZWlnaHQgLSBzcXVlZXpl
WVN0YXJ0OworICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gZW5kWSAtIHN0YXJ0WTsKKworICAg
ICAgICAgICAgZm9yIChsZXQgW2tleWZyYW1lQSwga2V5ZnJhbWVCXSBvZiBrZXlmcmFtZXMuYWRq
YWNlbmNpZXMoKSkgeworICAgICAgICAgICAgICAgIGxldCBzdGFydFggPSBpdGVyYXRpb25EdXJh
dGlvbiAqIGtleWZyYW1lQS5vZmZzZXQ7CisgICAgICAgICAgICAgICAgbGV0IGVuZFggPSBpdGVy
YXRpb25EdXJhdGlvbiAqIGtleWZyYW1lQi5vZmZzZXQ7CisgICAgICAgICAgICAgICAgbGV0IHdp
ZHRoID0gZW5kWCAtIHN0YXJ0WDsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmcgPSBrZXlm
cmFtZUEuZWFzaW5nIHx8IHRpbWluZ0Z1bmN0aW9uOworCisgICAgICAgICAgICAgICAgbGV0IGVh
c2luZ0NvbnRhaW5lciA9IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0
ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICAgICAgZWFzaW5nQ29udGFpbmVyLmNsYXNz
TGlzdC5hZGQoImVhc2luZyIpOworICAgICAgICAgICAgICAgIGVhc2luZ0NvbnRhaW5lci5zZXRB
dHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFydFh9LCAke3N0YXJ0WX0pYCk7
CisKKyAgICAgICAgICAgICAgICBsZXQgeDEgPSBlYXNpbmcuaW5Qb2ludC54ICogd2lkdGg7Cisg
ICAgICAgICAgICAgICAgbGV0IHkxID0gKCgxIC0gZWFzaW5nLmluUG9pbnQueSkgKiBoZWlnaHQp
ICsgYWRqdXN0RWFzaW5nWTsKKyAgICAgICAgICAgICAgICBsZXQgeDIgPSBlYXNpbmcub3V0UG9p
bnQueCAqIHdpZHRoOworICAgICAgICAgICAgICAgIGxldCB5MiA9ICgoMSAtIGVhc2luZy5vdXRQ
b2ludC55KSAqIGhlaWdodCkgKyBhZGp1c3RFYXNpbmdZOworCisgICAgICAgICAgICAgICAgbGV0
IGVhc2luZ1BhdGggPSBlYXNpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgicGF0aCIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdQYXRoLnNldEF0dHJpYnV0ZSgiZCIs
IGBNIDAgJHtoZWlnaHQgKyBhZGp1c3RFYXNpbmdZfSBDICR7eDF9ICR7eTF9ICR7eDJ9ICR7eTJ9
ICR7d2lkdGh9ICR7YWRqdXN0RWFzaW5nWX0gViAke2hlaWdodCArIGFkanVzdEVhc2luZ1l9IFpg
KTsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZVJlY3QgPSBlYXNpbmdDb250YWluZXIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAgICAgICAgICAgICAgICB0aXRs
ZVJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHdpZHRoKTsKKyAgICAgICAgICAgICAgICB0aXRs
ZVJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBoZWlnaHQpOworCisgICAgICAgICAgICAgICAg
YWRkVGl0bGUodGl0bGVSZWN0LCBlYXNpbmcudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIGtleWZyYW1lcykgeworICAgICAgICAg
ICAgICAgIGxldCB4ID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZS5vZmZzZXQ7CisKKyAg
ICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVDb250YWluZXIgPSBhY3RpdmVEdXJhdGlvbkNvbnRh
aW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAgICAgICAg
IGtleWZyYW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImtleWZyYW1lIik7CisgICAgICAgICAg
ICAgICAga2V5ZnJhbWVDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNs
YXRlKCR7eH0sICR7c3RhcnRZfSlgKTsKKworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1h
cmtlckhlYWQgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50
KCJjaXJjbGUiKSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVNYXJrZXJIZWFkLnNldEF0dHJp
YnV0ZSgiciIsIG1hcmtlckhlYWRSYWRpdXMpOworCisgICAgICAgICAgICAgICAgbGV0IGtleWZy
YW1lTWFya2VyTGluZSA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0Vs
ZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVNYXJrZXJMaW5lLnNldEF0
dHJpYnV0ZSgieTEiLCBoZWlnaHQpOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxlUmVjdCA9
IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKSk7
CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgieCIsIC0xICogKG1hcmtl
ckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZykpOworICAgICAgICAgICAgICAgIHRpdGxl
UmVjdC5zZXRBdHRyaWJ1dGUoInkiLCAtMSAqIHNxdWVlemVZU3RhcnQpOworICAgICAgICAgICAg
ICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgKG1hcmtlckhlYWRSYWRpdXMgKyBt
YXJrZXJIZWFkUGFkZGluZykgKiAyKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCBoZWlnaHQgKyBzcXVlZXplWVN0YXJ0KTsKKworICAgICAgICAgICAg
ICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwga2V5ZnJhbWUuc3R5bGUpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfQorCisgICAgX2hhbmRsZUVmZmVjdENoYW5nZWQoZXZlbnQpCisgICAg
eworICAgICAgICB0aGlzLl9yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIF9oYW5kbGVU
YXJnZXRDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxl
KCk7CisgICAgfQorCisgICAgX3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1l
bnUoY29udGV4dE1lbnUpCisgICAgeworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJ
LlVJU3RyaW5nKCJMb2cgQW5pbWF0aW9uIiksICgpID0+IHsKKyAgICAgICAgICAgIFdJLlJlbW90
ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRp
bWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCwgKHJlbW90ZU9iamVjdCkgPT4geworICAgICAg
ICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gV0kuVUlTdHJpbmcoIlNlbGVjdGVkIEFu
aW1hdGlvbiIsICJBcHBlYXJzIGFzIGEgbGFiZWwgd2hlbiBhIGdpdmVuIHdlYiBhbmltYXRpb24g
aXMgbG9nZ2VkIHRvIHRoZSBDb25zb2xlIik7CisgICAgICAgICAgICAgICAgY29uc3QgYWRkU3Bl
Y2lhbFVzZXJMb2dDbGFzcyA9IHRydWU7CisgICAgICAgICAgICAgICAgV0kuY29uc29sZUxvZ1Zp
ZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhSZXN1bHQodGV4dCwgcmVt
b3RlT2JqZWN0LCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAg
ICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSkKKyAgICAgICAgICAgIFdJLmFw
cGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9hbmltYXRp
b25UYXJnZXRET01Ob2RlKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5j
c3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25E
ZXRhaWxzU2lkZWJhclBhbmVsLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWRiNDZlNDhmMDRjMzk1YTYxYTRi
NzRlZWQwMzUzYzIyZmU3MjM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MK
QEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMu
YW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFt
ZXMgLmhlYWRlciA+IC5zdWJ0aXRsZSB7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3Jh
eS1tZWRpdW0pOworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5j
b250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNl
Y3Rpb24geworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTclKTsKK30KKworLnNp
ZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNl
Y3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIHsK
KyAgICBkaXNwbGF5OiB0YWJsZS1yb3c7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMu
YW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFt
ZXMgLmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyAuQ29kZU1pcnJvciB7CisgICAgaGVpZ2h0
OiBhdXRvOworICAgIHBhZGRpbmc6IDRweCAwOworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5z
cGFyZW50OworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAg
LnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxz
LXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIHsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAxOCUpOworICAgIH0KK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFp
bHNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OTFhNWM4
MjMzMDJkMTQ3YTA4ODlkMzY2NGIxNjI1OTU5YjJjYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9u
RGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIEFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwg
ZXh0ZW5kcyBXSS5EZXRhaWxzU2lkZWJhclBhbmVsCit7CisgICAgY29uc3RydWN0b3IoKQorICAg
IHsKKyAgICAgICAgc3VwZXIoImFuaW1hdGlvbiIsIFdJLlVJU3RyaW5nKCJBbmltYXRpb24iKSk7
CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0gbnVsbDsKKworICAgICAgICB0aGlzLl9jb2Rl
TWlycm9yU2VjdGlvbk1hcCA9IG5ldyBNYXA7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAg
ICBpbnNwZWN0KG9iamVjdHMpCisgICAgeworICAgICAgICBpZiAoIShvYmplY3RzIGluc3RhbmNl
b2YgQXJyYXkpKQorICAgICAgICAgICAgb2JqZWN0cyA9IFtvYmplY3RzXTsKKworICAgICAgICB0
aGlzLmFuaW1hdGlvbiA9IG9iamVjdHMuZmluZCgob2JqZWN0KSA9PiBvYmplY3QgaW5zdGFuY2Vv
ZiBXSS5BbmltYXRpb24pOworCisgICAgICAgIHJldHVybiAhIXRoaXMuYW5pbWF0aW9uOworICAg
IH0KKworICAgIGdldCBhbmltYXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Fu
aW1hdGlvbjsKKyAgICB9CisKKyAgICBzZXQgYW5pbWF0aW9uKGFuaW1hdGlvbikKKyAgICB7Cisg
ICAgICAgIGlmIChhbmltYXRpb24gPT09IHRoaXMuX2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7CisgICAgICAgICAgICB0aGlz
Ll9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0
Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAg
ICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24u
RXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwg
dGhpcyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9hbmltYXRpb24gPSBhbmltYXRpb24g
fHwgbnVsbDsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7CisgICAgICAgICAgICB0
aGlzLl9hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0
Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAg
ICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZl
bnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hhbmdlZCwgdGhp
cyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisg
ICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1
cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICB0aGlzLl9uYW1lUm93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJOYW1lIikpOworICAgICAgICB0aGlz
Ll90eXBlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJU
eXBlIikpOworICAgICAgICB0aGlzLl90YXJnZXRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25T
aW1wbGVSb3coV0kuVUlTdHJpbmcoIlRhcmdldCIsICJXZWIgQW5pbWF0aW9uIFRhcmdldCBMYWJl
bCIsICJMYWJlbCBmb3IgdGhlIGN1cnJlbnQgRE9NIG5vZGUgdGFyZ2V0IG9mIGEgd2ViIGFuaW1h
dGlvbiIpKTsKKworICAgICAgICBjb25zdCBpZGVudGl0eVNlY3Rpb25UaXRsZSA9IFdJLlVJU3Ry
aW5nKCJJZGVudGl0eSIsICJXZWIgQW5pbWF0aW9uIElkZW50aXR5IFRpdGxlIiwgIlNlY3Rpb24g
dGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IGEgd2ViIGFuaW1hdGlvbiIpOworICAgICAgICBs
ZXQgaWRlbnRpdHlTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24taWRl
bnRpdHkiLCBpZGVudGl0eVNlY3Rpb25UaXRsZSwgW25ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3Vw
KFt0aGlzLl9uYW1lUm93LCB0aGlzLl90eXBlUm93LCB0aGlzLl90YXJnZXRSb3ddKV0pOworICAg
ICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoaWRlbnRpdHlTZWN0aW9u
LmVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkNvdW50Um93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJJdGVyYXRpb25zIiwgIldlYiBBbmlt
YXRpb24gSXRlcmF0aW9uIENvdW50IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgbnVtYmVyIG9mIGl0
ZXJhdGlvbnMgb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICB0aGlzLl9pdGVyYXRpb25T
dGFydFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiU3Rh
cnQiLCAiV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gU3RhcnQgTGFiZWwiLCAiTGFiZWwgZm9yIHRo
ZSBudW1iZXIgZGVzY3JpYmluZyB3aGljaCBpdGVyYXRpb24gYSB3ZWIgYW5pbWF0aW9uIHNob3Vs
ZCBzdGFydCBhdCIpKTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uRHVyYXRpb25Sb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkR1cmF0aW9uIiwgIldlYiBB
bmltYXRpb24gSXRlcmF0aW9uIER1cmF0aW9uIExhYmVsIiwgIkxhYmVsIGZvciB0aGUgdGltZSBk
dXJhdGlvbiBvZiBlYWNoIGl0ZXJhdGlvbiBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAg
IGxldCBpdGVyYXRpb25zR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5f
aXRlcmF0aW9uQ291bnRSb3csIHRoaXMuX2l0ZXJhdGlvblN0YXJ0Um93LCB0aGlzLl9pdGVyYXRp
b25EdXJhdGlvblJvd10pOworCisgICAgICAgIHRoaXMuX3N0YXJ0RGVsYXlSb3cgPSBuZXcgV0ku
RGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IERlbGF5IiwgIldlYiBB
bmltYXRpb24gU3RhcnQgRGVsYXkgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBzdGFydCBkZWxheSB0
aW1lIG9mIGEgd2ViIGFuaW1hdGlvbiAiKSk7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93ID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJFbmQgRGVsYXkiLCAi
V2ViIEFuaW1hdGlvbiBFbmQgRGVsYXkgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBlbmQgZGVsYXkg
dGltZSBvZiBhIHdlYiBhbmltYXRpb24gIikpOworICAgICAgICB0aGlzLl90aW1pbmdGdW5jdGlv
blJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRWFzaW5n
IiwgIldlYiBBbmltYXRpb24gRWFzaW5nIExhYmVsIiwgIkxhYmVsIGZvciB0aGUgY3ViaWMtYmV6
aWVyIHRpbWluZyBmdW5jdGlvbiBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIGxldCB0
aW1pbmdHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9zdGFydERlbGF5
Um93LCB0aGlzLl9lbmREZWxheVJvdywgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3ddKTsKKworICAg
ICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNp
bXBsZVJvdyhXSS5VSVN0cmluZygiRGlyZWN0aW9uIiwgIldlYiBBbmltYXRpb24gUGxheWJhY2sg
RGlyZWN0aW9uIExhYmVsIiwgIkxhYmVsIGZvciB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIGEg
d2ViIGFuaW1hdGlvbiIpKTsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cgPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkZpbGwiLCAiV2ViIEFuaW1hdGlvbiBG
aWxsIE1vZGUgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBmaWxsIG1vZGUgb2YgYSB3ZWIgYW5pbWF0
aW9uIikpOworICAgICAgICBsZXQgZmlsbERpcmVjdGlvbkdyb3VwID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uR3JvdXAoW3RoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93LCB0aGlzLl9maWxsTW9kZVJv
d10pOworCisgICAgICAgIGNvbnN0IGVmZmVjdFNlY3Rpb25UaXRsZSA9IFdJLlVJU3RyaW5nKCJF
ZmZlY3QiLCAiV2ViIEFuaW1hdGlvbiBFZmZlY3QgVGl0bGUiLCAiU2VjdGlvbiB0aXRsZSBmb3Ig
aW5mb3JtYXRpb24gYWJvdXQgdGhlIGVmZmVjdCBvZiBhIHdlYiBhbmltYXRpb24iKTsKKyAgICAg
ICAgbGV0IGVmZmVjdFNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1l
ZmZlY3QiLCBlZmZlY3RTZWN0aW9uVGl0bGUsIFtpdGVyYXRpb25zR3JvdXAsIHRpbWluZ0dyb3Vw
LCBmaWxsRGlyZWN0aW9uR3JvdXBdKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50
LmFwcGVuZENoaWxkKGVmZmVjdFNlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fa2V5
ZnJhbWVzR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cDsKKworICAgICAgICBjb25z
dCBrZXlmcmFtZXNTZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygiS2V5ZnJhbWVzIiwgIldlYiBB
bmltYXRpb24gS2V5ZnJhbWVzIFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBrZXlmcmFtZXMgb2YgYSB3ZWIgYW5pbWF0aW9uIik7CisgICAgICAgIGxldCBr
ZXlmcmFtZXNTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24ta2V5ZnJh
bWVzIiwga2V5ZnJhbWVzU2VjdGlvblRpdGxlLCBbdGhpcy5fa2V5ZnJhbWVzR3JvdXBdKTsKKyAg
ICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGtleWZyYW1lc1NlY3Rp
b24uZWxlbWVudCk7CisKKyAgICAgICAgY29uc3Qgc2VsZWN0YWJsZSA9IGZhbHNlOworICAgICAg
ICBsZXQgYmFja3RyYWNlVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJlZU91dGxpbmUoc2VsZWN0YWJs
ZSk7CisgICAgICAgIGJhY2t0cmFjZVRyZWVPdXRsaW5lLmRpc2Nsb3N1cmVCdXR0b25zID0gZmFs
c2U7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVRyZWVDb250cm9sbGVyID0gbmV3IFdJLkNhbGxG
cmFtZVRyZWVDb250cm9sbGVyKGJhY2t0cmFjZVRyZWVPdXRsaW5lKTsKKworICAgICAgICBsZXQg
YmFja3RyYWNlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OworICAgICAgICBiYWNrdHJh
Y2VSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChiYWNrdHJhY2VUcmVlT3V0bGluZS5lbGVtZW50KTsK
KworICAgICAgICBjb25zdCBiYWNrdHJhY2VTZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygiQmFj
a3RyYWNlIiwgIldlYiBBbmltYXRpb24gQmFja3RyYWNlIFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUg
Zm9yIHRoZSBKYXZhU2NyaXB0IGJhY2t0cmFjZSBvZiB0aGUgY3JlYXRpb24gb2YgYSB3ZWIgYW5p
bWF0aW9uIik7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24gPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb24oImFuaW1hdGlvbi1iYWNrdHJhY2UiLCBiYWNrdHJhY2VTZWN0aW9uVGl0bGUsIFtu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYmFja3RyYWNlUm93XSldKTsKKyAgICAgICAgdGhp
cy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50LmhpZGRlbiA9IHRydWU7CisgICAgICAgIHRoaXMu
Y29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9iYWNrdHJhY2VTZWN0aW9uLmVs
ZW1lbnQpOworICAgIH0KKworICAgIGxheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5sYXlv
dXQoKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCk7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCYWNrdHJh
Y2VTZWN0aW9uKCk7CisKKyAgICAgICAgZm9yIChsZXQgY29kZU1pcnJvciBvZiB0aGlzLl9jb2Rl
TWlycm9yU2VjdGlvbk1hcC52YWx1ZXMoKSkKKyAgICAgICAgICAgIGNvZGVNaXJyb3IucmVmcmVz
aCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9yZWZyZXNoSWRlbnRpdHlTZWN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX25hbWVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRp
b24uZGlzcGxheU5hbWU7CisgICAgICAgIHRoaXMuX3R5cGVSb3cudmFsdWUgPSBXSS5BbmltYXRp
b24uZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKHRoaXMuX2FuaW1hdGlvbi5hbmltYXRpb25U
eXBlKTsKKworICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUgPSBudWxsOworICAgICAgICB0
aGlzLl9hbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldCgoZG9tTm9kZSkgPT4geworICAgICAg
ICAgICAgdGhpcy5fdGFyZ2V0Um93LnZhbHVlID0gZG9tTm9kZSA/IFdJLmxpbmtpZnlOb2RlUmVm
ZXJlbmNlKGRvbU5vZGUpIDogbnVsbDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgX3JlZnJl
c2hFZmZlY3RTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGZvciAobGV0IHNlY3Rpb24gb2YgdGhp
cy5fY29kZU1pcnJvclNlY3Rpb25NYXAua2V5cygpKQorICAgICAgICAgICAgc2VjdGlvbi5yZW1v
dmVFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50LkNvbGxhcHNlZFN0YXRlQ2hh
bmdlZCwgdGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRo
aXMpOworICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5jbGVhcigpOworCisgICAg
ICAgIGNvbnN0IHByZWNpc2lvbiA9IDA7CisgICAgICAgIGNvbnN0IHJlYWRPbmx5ID0gdHJ1ZTsK
KworICAgICAgICB0aGlzLl9pdGVyYXRpb25Db3VudFJvdy52YWx1ZSA9ICFpc05hTih0aGlzLl9h
bmltYXRpb24uaXRlcmF0aW9uQ291bnQpID8gdGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50
LnRvTG9jYWxlU3RyaW5nKCkgOiBudWxsOworICAgICAgICB0aGlzLl9pdGVyYXRpb25TdGFydFJv
dy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uU3RhcnQpID8gdGhpcy5f
YW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0LnRvTG9jYWxlU3RyaW5nKCkgOiBudWxsOworICAgICAg
ICB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvdy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmltYXRp
b24uaXRlcmF0aW9uRHVyYXRpb24pID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmlt
YXRpb24uaXRlcmF0aW9uRHVyYXRpb24gLyAxMDAwKSA6IG51bGw7CisKKyAgICAgICAgdGhpcy5f
c3RhcnREZWxheVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5zdGFydERlbGF5ID8gTnVtYmVy
LnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24uc3RhcnREZWxheSAvIDEwMDApIDogbnVs
bDsKKyAgICAgICAgdGhpcy5fZW5kRGVsYXlSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZW5k
RGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2FuaW1hdGlvbi5lbmREZWxheSAv
IDEwMDApIDogbnVsbDsKKyAgICAgICAgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3cudmFsdWUgPSB0
aGlzLl9hbmltYXRpb24udGltaW5nRnVuY3Rpb24gPyB0aGlzLl9hbmltYXRpb24udGltaW5nRnVu
Y3Rpb24udG9TdHJpbmcoKSA6IG51bGw7CisKKyAgICAgICAgdGhpcy5fcGxheWJhY2tEaXJlY3Rp
b25Sb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24gPyBXSS5Bbmlt
YXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbih0aGlzLl9hbmltYXRpb24ucGxh
eWJhY2tEaXJlY3Rpb24pIDogbnVsbDsKKyAgICAgICAgdGhpcy5fZmlsbE1vZGVSb3cudmFsdWUg
PSB0aGlzLl9hbmltYXRpb24uZmlsbE1vZGUgPyBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JG
aWxsTW9kZSh0aGlzLl9hbmltYXRpb24uZmlsbE1vZGUpIDogbnVsbDsKKworICAgICAgICBsZXQg
a2V5ZnJhbWVTZWN0aW9ucyA9IFtdOworICAgICAgICBmb3IgKGxldCBrZXlmcmFtZSBvZiB0aGlz
Ll9hbmltYXRpb24ua2V5ZnJhbWVzKSB7CisgICAgICAgICAgICBsZXQgcm93cyA9IFtdOworCisg
ICAgICAgICAgICBsZXQga2V5ZnJhbWVTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJh
bmltYXRpb24ta2V5ZnJhbWUtb2Zmc2V0LSIgKyBrZXlmcmFtZS5vZmZzZXQsIE51bWJlci5wZXJj
ZW50YWdlU3RyaW5nKGtleWZyYW1lLm9mZnNldCwgcHJlY2lzaW9uKSk7CisgICAgICAgICAgICBr
ZXlmcmFtZVNlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5EZXRhaWxzU2VjdGlvbi5FdmVudC5D
b2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2Vk
U3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbnMucHVzaChr
ZXlmcmFtZVNlY3Rpb24pOworCisgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuZWFzaW5nKSB7Cisg
ICAgICAgICAgICAgICAgbGV0IHN1YnRpdGxlID0ga2V5ZnJhbWVTZWN0aW9uLmhlYWRlckVsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAg
ICAgICAgICBzdWJ0aXRsZS5jbGFzc05hbWUgPSAic3VidGl0bGUiOworICAgICAgICAgICAgICAg
IHN1YnRpdGxlLnRleHRDb250ZW50ID0gYCAke2VtRGFzaH0gJHtrZXlmcmFtZS5lYXNpbmcudG9T
dHJpbmcoKX1gOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuc3R5
bGUpIHsKKyAgICAgICAgICAgICAgICBsZXQgY29kZU1pcnJvckVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgICAgICBsZXQgY29kZU1pcnJvciA9IFdJ
LkNvZGVNaXJyb3JFZGl0b3IuY3JlYXRlKGNvZGVNaXJyb3JFbGVtZW50LCB7CisgICAgICAgICAg
ICAgICAgICAgIG1vZGU6ICJjc3MiLAorICAgICAgICAgICAgICAgICAgICByZWFkT25seTogIm5v
Y3Vyc29yIiwKKyAgICAgICAgICAgICAgICAgICAgbGluZVdyYXBwaW5nOiB0cnVlLAorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0VmFsdWUoa2V5ZnJh
bWUuc3R5bGUpOworCisgICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBudWxsOworICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIG9wdGlvbnNGb3JUeXBlKHR5cGUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRUb2tlbnM6IC9c
YnRhZ1xiLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG1hcmtlciwgdmFsdWVP
YmplY3QsIHZhbHVlU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN3
YXRjaCA9IG5ldyBXSS5JbmxpbmVTd2F0Y2godHlwZSwgdmFsdWVPYmplY3QsIHJlYWRPbmx5KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlTWlycm9yLnNldFVuaXF1ZUJvb2ttYXJr
KG1hcmtlci5yYW5nZS5zdGFydFBvc2l0aW9uKCkudG9Db2RlTWlycm9yKCksIHN3YXRjaC5lbGVt
ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckNvbG9y
VGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3
YXRjaC5UeXBlLkNvbG9yKSk7CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvckdyYWRp
ZW50VGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGlu
ZVN3YXRjaC5UeXBlLkdyYWRpZW50KSk7CisgICAgICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJv
ckN1YmljQmV6aWVyVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBl
KFdJLklubGluZVN3YXRjaC5UeXBlLkJlemllcikpOworICAgICAgICAgICAgICAgIGNyZWF0ZUNv
ZGVNaXJyb3JTcHJpbmdUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgb3B0aW9uc0ZvclR5
cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nKSk7CisKKyAgICAgICAgICAgICAgICBsZXQg
cm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OworICAgICAgICAgICAgICAgIHJvdy5lbGVt
ZW50LmNsYXNzTGlzdC5hZGQoInN0eWxlcyIpOworICAgICAgICAgICAgICAgIHJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKGNvZGVNaXJyb3JFbGVtZW50KTsKKyAgICAgICAgICAgICAgICByb3dzLnB1
c2gocm93KTsKKworICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLnNl
dChrZXlmcmFtZVNlY3Rpb24sIGNvZGVNaXJyb3IpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAoIXJvd3MubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgbGV0IGVtcHR5Um93ID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uUm93KFdJLlVJU3RyaW5nKCJObyBTdHlsZXMiKSk7CisgICAg
ICAgICAgICAgICAgZW1wdHlSb3cuc2hvd0VtcHR5TWVzc2FnZSgpOworICAgICAgICAgICAgICAg
IHJvd3MucHVzaChlbXB0eVJvdyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGtleWZy
YW1lU2VjdGlvbi5ncm91cHMgPSBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAocm93cyldOwor
ICAgICAgICB9CisgICAgICAgIGlmICgha2V5ZnJhbWVTZWN0aW9ucy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgIGxldCBlbXB0eVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdyhXSS5VSVN0cmlu
ZygiTm8gS2V5ZnJhbWVzIikpOworICAgICAgICAgICAgZW1wdHlSb3cuc2hvd0VtcHR5TWVzc2Fn
ZSgpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9ucy5wdXNoKGVtcHR5Um93KTsKKyAgICAg
ICAgfQorICAgICAgICB0aGlzLl9rZXlmcmFtZXNHcm91cC5yb3dzID0ga2V5ZnJhbWVTZWN0aW9u
czsKKyAgICB9CisKKyAgICBfcmVmcmVzaEJhY2t0cmFjZVNlY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgbGV0IGNhbGxGcmFtZXMgPSB0aGlzLl9hbmltYXRpb24uYmFja3RyYWNlOworICAgICAgICB0
aGlzLl9iYWNrdHJhY2VUcmVlQ29udHJvbGxlci5jYWxsRnJhbWVzID0gY2FsbEZyYW1lczsKKyAg
ICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50LmhpZGRlbiA9ICFjYWxsRnJhbWVz
Lmxlbmd0aDsKKyAgICB9CisKKyAgICBfaGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZChldmVu
dCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7CisgICAgfQor
CisgICAgX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAg
ICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCk7CisgICAgfQorCisgICAgX2hhbmRsZURl
dGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IGNvZGVNaXJyb3IgPSB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5nZXQoZXZlbnQudGFy
Z2V0KTsKKyAgICAgICAgY29kZU1pcnJvci5yZWZyZXNoKCk7CisgICAgfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRl
bnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc0NvbnRlbnRWaWV3LmNzcwppbmRleCA0ZTVhOTBlMWYwMzE3ZjBjNGViZjRmNzk5NzAyNzZj
N2ZiZDI3ZjU4Li5jYzE2NmJkM2U2MGQzODFhNzVhMWExNzk0M2FiZTIzNjcwN2E4YjRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXND
b250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCkBAIC0yMywxMSArMjMsMTEgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29udGVudC12aWV3LmNhbnZhczpu
b3QoLnRhYikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGJhY2tncm91bmQtY29sb3I6
IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpID4g
LnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyB7CiAgICAgZGlzcGxh
eTogZmxleDsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICBhbGlnbi1pdGVtczog
Y2VudGVyOwpAQCAtMzYsMTcgKzM2LDE3IEBACiAgICAgcGFkZGluZzogMTVweDsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzIHsKICAg
ICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IC5wcmV2aWV3ID4gaW1nIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIG1heC13aWR0aDogMTAwJTsKICAgICBt
YXgtaGVpZ2h0OiAxMDAlOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiA6
bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiA6bWF0Y2hl
cyhoZWFkZXIsIGZvb3RlcikgewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKQEAgLTU2LDcgKzU2
LDcgQEAKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5j
b250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMg
ewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c0NvbnRlbnRWaWV3LmpzCmluZGV4IDliNGZkNmY2ZWQ3ZTFjYjc2Mzk3NTExMTAxMTUzMjQ2NTRk
NThmMDEuLjk5M2RhNTEzZjJkZDU2MzNmZDc5NDgzZWE0Y2E5ZmZiYTk2ZWZjZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRl
bnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc0NvbnRlbnRWaWV3LmpzCkBAIC00NSw3ICs0NSw3IEBAIFdJLkNhbnZhc0NvbnRlbnRW
aWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAg
ICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMv
UmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJp
bGl0eVByaW9yaXR5LkxvdzsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tl
ZCwgdGhpcy5yZWZyZXNoUHJldmlldywgdGhpcyk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0
b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LkV2ZW50LkNsaWNrZWQsIHRoaXMuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwog
CiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0
aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cg
dHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQi
KSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAg
IHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1dHRvbkNs
aWNrZWQsIHRoaXMpOwpAQCAtNzcsNiArNzcsMjkgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIH0p
OwogICAgIH0KIAorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAg
ICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKKyAgICB9CisKKyAgICAvLyBEcm9wWm9uZVZpZXcg
ZGVsZWdhdGUKKworICAgIGRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KGRyb3Bab25l
LCBldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMu
aW5jbHVkZXMoIkZpbGVzIik7CisgICAgfQorCisgICAgZHJvcFpvbmVIYW5kbGVEcm9wKGRyb3Ba
b25lLCBldmVudCkKKyAgICB7CisgICAgICAgIGxldCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zl
ci5maWxlczsKKyAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCAhPT0gMSkgeworICAgICAgICAgICAg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQp
ID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQorCiAgICAg
Ly8gUHJvdGVjdGVkCiAKICAgICBpbml0aWFsTGF5b3V0KCkKQEAgLTE2MCw2ICsxODMsMTMgQEAg
V0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJ
LkNvbnRlbnRWaWV3CiAKICAgICAgICAgaWYgKGlzQ2FyZCkKICAgICAgICAgICAgIHRoaXMuX3Jl
ZnJlc2hQaXhlbFNpemUoKTsKKworICAgICAgICBpZiAoIWlzQ2FyZCkgeworICAgICAgICAgICAg
bGV0IGRyb3Bab25lVmlldyA9IG5ldyBXSS5Ecm9wWm9uZVZpZXcodGhpcyk7CisgICAgICAgICAg
ICBkcm9wWm9uZVZpZXcudGV4dCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQgUmVjb3JkaW5nIik7Cisg
ICAgICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKKyAg
ICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyhkcm9wWm9uZVZpZXcpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgbGF5b3V0KCkKQEAgLTE5MSwxMyArMjIxLDYgQEAgV0kuQ2FudmFzQ29udGVudFZp
ZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAg
ICAgIHRoaXMuX3VwZGF0ZUltYWdlR3JpZCgpOwogICAgIH0KIAotICAgIHNob3duKCkKLSAgICB7
Ci0gICAgICAgIHN1cGVyLnNob3duKCk7Ci0KLSAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygp
OwotICAgIH0KLQogICAgIGF0dGFjaGVkKCkKICAgICB7CiAgICAgICAgIHN1cGVyLmF0dGFjaGVk
KCk7CkBAIC0yMjMsNiArMjQ2LDggQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52
YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5n
LkV2ZW50LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZUltYWdlR3JpZCwgdGhpcyk7CisKKyAgICAgICAg
dGhpcy5yZWZyZXNoUHJldmlldygpOwogICAgIH0KIAogICAgIGRldGFjaGVkKCkKQEAgLTI5MSwx
MSArMzE2LDYgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50Vmll
dyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBfcG9wdWxhdGVDYW52YXNFbGVtZW50QnV0
dG9uQ29udGV4dE1lbnUoY29udGV4dE1lbnUpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fY2Fu
dmFzTm9kZSkKLSAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2Rl
KGNvbnRleHRNZW51LCB0aGlzLl9jYW52YXNOb2RlKTsKLQotICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRTZXBhcmF0b3IoKTsKLQogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJ
U3RyaW5nKCJMb2cgQ2FudmFzIENvbnRleHQiKSwgKCkgPT4gewogICAgICAgICAgICAgV0kuUmVt
b3RlT2JqZWN0LnJlc29sdmVDYW52YXNDb250ZXh0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdJ
LlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCwgKHJlbW90ZU9iamVjdCkgPT4gewog
ICAgICAgICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0KQpAQCAtMzA2LDYgKzMyNiwxMSBAQCBX
SS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFZpZXcKICAgICAgICAgICAgICAgICBXSS5jb25zb2xlTG9nVmlld0NvbnRyb2xsZXIu
YXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9uV2l0aFJlc3VsdCh0ZXh0LCByZW1vdGVPYmplY3QsIGFk
ZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworCisg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOworCisgICAgICAgIGlmICh0aGlz
Ll9jYW52YXNOb2RlKQorICAgICAgICAgICAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRP
TU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUpOwogICAgIH0KIAogICAgIF9zaG93
R3JpZEJ1dHRvbkNsaWNrZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3LmNzcwppbmRleCAxMGYzN2MwNDZiMGMyYTEyODJjNWVjOTlkYzZjYjk5MGIyMjM2YzVmLi4x
YzZkNjQzMWY5YjdkNjM2ZThmM2U4Y2UxNWM2YmIyYTY1YjEzNmM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpAQCAtMjYsMjkgKzI2LDI5IEBACiAuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7CiAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7
CiAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDAsIDAlLCA5MCUpOwotCi0gICAgLS1pdGVtLW1hcmdpbjogMTBweDsKKyAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgcGFkZGluZzogNHB4IDA7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGZsZXgtZ3JvdzogMDsKLSAgICBt
YXJnaW46IHZhcigtLWl0ZW0tbWFyZ2luKTsKKyAgICBmbGV4LXNocmluazogMDsKICAgICB3aWR0
aDogNDAwcHg7CisgICAgbWFyZ2luOiA0cHg7CiAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t
Ym9yZGVyLWNvbG9yKTsKICAgICBjdXJzb3I6IHBvaW50ZXI7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLAorLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
ID4gaW1nIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKIH0KIAotLmNvbnRlbnQtdmll
dy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJl
Y29yZGluZy1hY3RpdmUgewogICAgIGJvcmRlci1jb2xvcjogcmVkOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhlYWRl
ciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKICAgICBkaXNwbGF5OiBmbGV4
OwogICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgZmxleC1zaHJpbms6IDA7CkBAIC01OSwx
MzYgKzU5LDEzNiBAQAogICAgIGN1cnNvcjogZGVmYXVsdDsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciB7CiAg
ICAgZm9udC1zaXplOiAxM3B4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFj
dGl2ZSA+IGhlYWRlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50
aXRsZXMsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IGZvb3RlciA+IC5zaXplIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzLAorLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5zaXplIHsKICAg
ICB3aGl0ZS1zcGFjZTogbm93cmFwOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRl
ciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXkt
ZGFyayk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4g
aGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKICAgICBj
b2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIC5zdWJ0aXRsZTo6
YmVmb3JlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBoZWFkZXIgLnN1YnRpdGxlOjpiZWZvcmUgewogICAgIGNvbnRlbnQ6ICJcMDBBMFwy
MDE0XDAwQTAiOyAvKiAmbmJzcDsmbWRhc2g7Jm5ic3A7ICovOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
aGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0
bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogd2hpdGU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRs
ZXMgPiAuc3VidGl0bGUgewogICAgIGNvbG9yOiB2YXIoLS1zZWxlY3RlZC1zZWNvbmRhcnktdGV4
dC1jb2xvcik7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAu
aXRlbSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7
CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgpOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC5uYXZpZ2F0
aW9uLWJhciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBhbGlnbi1pdGVtczogaW5p
dGlhbDsKICAgICBib3JkZXI6IG5vbmU7CiAgICAgb3BhY2l0eTogMDsKICAgICB0cmFuc2l0aW9u
OiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpob3ZlciwgLnJlY29yZGluZy1h
Y3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hlcyg6aG92ZXIsIC5yZWNvcmRp
bmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgb3BhY2l0eTogMTsK
ICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGlu
Zy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0
LXN0b3AuZGlzYWJsZWQgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJsZWQgewogICAgIGZpbHRlcjog
Z3JheXNjYWxlKCk7CiAgICAgb3BhY2l0eTogMC41OwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5k
aXNhYmxlZCk6aG92ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6aG92ZXIgewog
ICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg5NSUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVh
ZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5kaXNh
YmxlZCk6YWN0aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQt
dmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9u
LWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7CiAg
ICAgZmlsdGVyOiBicmlnaHRuZXNzKDgwJSk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mt
dmlldywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXcsCisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgewog
ICAgIGhlaWdodDogMjgwcHg7CiAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBt
cyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJl
dmlldzpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmll
dzpob3ZlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NiUpOwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRp
bmctYWN0aXZlID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByZXZpZXcgewogICAgIGRp
c3BsYXk6IG5vbmU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50
LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICBib3Jk
ZXItcmFkaXVzOiA0cHg7CiAgICAgYm94LXNoYWRvdzogMXB4IDJweCA2cHggcmdiYSgwLCAwLCAw
LCAwLjU4KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiAucHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmlldyB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiAubWVz
c2FnZS10ZXh0LXZpZXcgewogICAgIHBvc2l0aW9uOiBzdGF0aWM7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIHsKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
ewogICAgIGJvcmRlci10b3A6IG5vbmU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyB7
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4g
Zm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBh
bGlnbi1pdGVtczogY2VudGVyOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiA6bWF0
Y2hlcygudmlldy1zaGFkZXIsIC52aWV3LXJlY29yZGluZykgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0
ZWQtaXRlbXMgPiA6bWF0Y2hlcygudmlldy1zaGFkZXIsIC52aWV3LXJlY29yZGluZykgewogICAg
IHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVk
LWl0ZW1zID4gaW1nICsgaW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gaW1nICsg
aW1nIHsKICAgICAtd2Via2l0LW1hcmdpbi1zdGFydDogNHB4OwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJl
bGF0ZWQtaXRlbXMgPiAudmlldy1zaGFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMg
PiAudmlldy1zaGFkZXIgewogICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0Rv
Y3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBuZykgMngpOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1yZWNvcmRpbmcgeworLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+
IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1yZWNvcmRpbmcgewogICAgIGNvbnRlbnQ6IHVy
bCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLmZsZXhpYmxlLXNwYWNlIHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgPiAuZmxleGlibGUtc3BhY2UgewogICAgIGZsZXg6IDE7CiB9CiAKLS5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnkt
Y29zdCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA0
cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzLnNhdmVkLXJlY29yZGluZ3MgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIHsKICAgICBoZWlnaHQ6IDM0MHB4
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91
dGxpbmUgewogICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1v
dXRsaW5lID4gLml0ZW0ucmVjb3JkaW5nID4gLmljb24geworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91
dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CiAgICAgY29udGVudDogdXJsKC4uL0lt
YWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIApAQCAtMjA5LDQzICsyMDksMzkgQEAKIH0KIAogQG1l
ZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7Ci0gICAgfQot
Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMs
Ci0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMg
PiAucHJldmlldyA+IGltZyB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcywKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0g
ICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAotICAgIC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92ZXIgewor
ICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMu
cmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAorICAgIC5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldzpob3Zl
ciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItdGVy
dGlhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgeworICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSB7CiAg
ICAgICAgIC0tcmVjb3JkaW5nLWNvbG9yOiBoc2woMCwgMTAwJSwgMzklKTsKICAgICAgICAgYm9y
ZGVyLWNvbG9yOiB2YXIoLS1yZWNvcmRpbmctY29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiBoZWFkZXIgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAgICAgfQogCi0gICAgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAu
dGl0bGVzID4gLnRpdGxlIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgICAg
IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAu
c3VidGl0bGUsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKyAgICAuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5z
dWJ0aXRsZSwKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgICAgIGNvbG9yOiB2YXIoLS10
ZXh0LWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLnZpZXctcmVjb3JkaW5nIHsK
KyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyIC52aWV3LXJlY29yZGluZyB7CiAgICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7CiAg
ICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewor
ICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMu
cmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewogICAgICAg
ICBjb2xvcjogdW5zZXQ7CiAgICAgICAgIG9wYWNpdHk6IDAuNQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCmluZGV4IDYzOWIzNmQ4NTliYjdjZjNjMzQ0
NDVhYTBlYjc0OTU0MzNjNDEwOTguLjBkMTY1ZGQyNjhkNDM3MDI4YTQzZDE0OWUwN2NmYTgzOGI0
ZGU3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwpAQCAt
MjksNyArMjksOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFz
T3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgIHsKICAgICAgICAgY29u
c29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0
aW9uKTsKIAotICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVyID0gV0kuY3JlYXRlTWVzc2Fn
ZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4dHMiKSk7CisgICAgICAgIGxl
dCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCA/IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIDogV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3KFdJ
LlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4dHMiKSk7CisKICAgICAgICAgbGV0IGRlc2NyaXB0
aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKSk7CiAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5jbGFzc05hbWUg
PSAiZGVzY3JpcHRpb24iOwogICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQg
PSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQgYnkgc2Ny
aXB0IG9yIENTUy4iKTsKQEAgLTYyLDIxICs2Myw3IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVj
CiAgICAgICAgICAgICB0aGlzLl91cGRhdGVSZWNvcmRpbmdBdXRvQ2FwdHVyZUNoZWNrYm94TGFi
ZWwoZnJhbWVDb3VudCk7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LXJlY29y
ZGluZyIsIFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1
KTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbHRpcCA9IFdJ
LlVJU3RyaW5nKCJJbXBvcnQiKTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFu
ZFRleHQ7Ci0KLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3
IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoLWFsbCIsIFdJLlVJU3RyaW5nKCJSZWZy
ZXNoIGFsbCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKLSAgICAgICAgdGhp
cy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAg
dGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fcmVmcmVzaFByZXZpZXdzLCB0
aGlzKTsKLQotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3
IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3RyaW5n
KCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFyZW5j
eSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMpOwot
ICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEh
V0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3Nob3dH
cmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0
aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMp
OwotCiAgICAgICAgIGltcG9ydE5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9u
TmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9u
TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5F
dmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNr
ZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3ID0g
bnVsbDsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUgPSBudWxsOwpA
QCAtOTAsMTcgKzc3LDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBD
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAKICAgICBnZXQgbmF2
aWdhdGlvbkl0ZW1zKCkKICAgICB7Ci0gICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbdGhp
cy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0
ZW0sIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwgdGhpcy5fc2hvd0dyaWRCdXR0
b25OYXZpZ2F0aW9uSXRlbV07Ci0gICAgICAgIGlmIChXSS5DYW52YXNNYW5hZ2VyLnN1cHBvcnRz
UmVjb3JkaW5nQXV0b0NhcHR1cmUoKSkKLSAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy51bnNo
aWZ0KHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZp
ZGVyTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW107Cisg
ICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5hdmlnYXRpb25JdGVtKQorICAg
ICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5fcmVjb3JkaW5nQXV0b0NhcHR1cmVO
YXZpZ2F0aW9uSXRlbSk7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7CiAgICAgfQog
Ci0gICAgaGlkZGVuKCkKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCiAgICAgewot
ICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Ci0KLSAgICAgICAg
c3VwZXIuaGlkZGVuKCk7CisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2aWV3
cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50
VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2Vk
KCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTExNSwyMyArMTAz
LDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLnJlbW92ZVN1
YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcpOwogICAgICAgICAgICAgdGhp
cy5hZGRTdWJ2aWV3KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3KTsKICAgICAgICAg
fQotCi0gICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25JdGVtcygpOwogICAgIH0KIAogICAg
IGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKICAgICB7CiAgICAgICAgIGNvbnRlbnRW
aWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2NvbnRl
bnRWaWV3TW91c2VFbnRlcik7CiAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZl
bnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2NvbnRlbnRWaWV3TW91c2VMZWF2ZSk7Ci0K
LSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7CiAgICAgfQogCiAgICAgYXR0
YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKIAotICAgICAgICBXSS5z
ZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5D
aGFuZ2VkLCB0aGlzLl91cGRhdGVTaG93SW1hZ2VHcmlkLCB0aGlzKTsKICAgICAgICAgV0kuc2V0
dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkLmFkZEV2ZW50TGlzdGVuZXIo
V0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVDYW52YXNSZWNvcmRpbmdBdXRv
Q2FwdHVyZUVuYWJsZWRDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFz
UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGlu
Zy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVDYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZy
YW1lQ291bnRDaGFuZ2VkLCB0aGlzKTsKIApAQCAtMTQxLDQ5ICsxMjQsMjcgQEAgV0kuQ2FudmFz
T3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRs
aW5lLnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5j
YW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykKICAgICAgICAgICAgIHRoaXMuX2FkZFNhdmVk
UmVjb3JkaW5nKHJlY29yZGluZyk7CisKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlz
LnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkNhbnZh
c0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcucmVmcmVzaFByZXZpZXcoKTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIGRldGFjaGVkKCkKICAgICB7CisgICAgICAgIFdJLmRv
bU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKwogICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgV0ku
c2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1Jl
Y29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGws
IHRoaXMpOwotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnJlbW92ZUV2ZW50TGlz
dGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKICAg
ICB9CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBnZXQgX2l0ZW1NYXJnaW4oKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVu
dCkuZ2V0UHJvcGVydHlWYWx1ZSgiLS1pdGVtLW1hcmdpbiIpKTsKLSAgICB9Ci0KLSAgICBfcmVm
cmVzaFByZXZpZXdzKCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGNhbnZhc0NvbnRlbnRWaWV3
IG9mIHRoaXMuc3Vidmlld3MpCi0gICAgICAgICAgICBjYW52YXNDb250ZW50Vmlldy5yZWZyZXNo
UHJldmlldygpOwotICAgIH0KLQotICAgIF91cGRhdGVOYXZpZ2F0aW9uSXRlbXMoKQotICAgIHsK
LSAgICAgICAgbGV0IGhhc0l0ZW1zID0gISF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemU7Ci0g
ICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gaGFzSXRl
bXM7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9
IGhhc0l0ZW1zOwotICAgIH0KLQotICAgIF9zaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZlbnQpCi0g
ICAgewotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOwotICAgIH0KLQotICAgIF91cGRh
dGVTaG93SW1hZ2VHcmlkKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVl
OwotICAgIH0KLQogICAgIF9jb250ZW50Vmlld01vdXNlRW50ZXIoZXZlbnQpCiAgICAgewogICAg
ICAgICBsZXQgY29udGVudFZpZXcgPSBXSS5WaWV3LmZyb21FbGVtZW50KGV2ZW50LnRhcmdldCk7
CkBAIC0zMDEsOCArMjYyLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAg
IHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUuZWxlbWVudCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxl
bWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5n
LmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKKyAgICAgICAgbGV0IHJlY29yZGlu
Z1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCBy
ZWNvcmRpbmcuZGlzcGxheU5hbWUsIFdJLlJlY29yZGluZy5kaXNwbGF5TmFtZUZvclJlY29yZGlu
Z1R5cGUocmVjb3JkaW5nLnR5cGUpLCByZWNvcmRpbmcpOwogICAgICAgICByZWNvcmRpbmdUcmVl
RWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5n
c1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKaW5kZXggY2I1YjkwZDQyZDFkNjBiYzU4NWJkM2Fi
MTE1ZGQwYzIzZWFiMjQxZS4uNjAzZjVhZWE0N2ViMmIzMDY4ZjRiNTY5YTg5YzhkZmI5YzkzZTc1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwpAQCAtMjM3LDEwICsyMzcsOCBAQCBX
SS5DYW52YXNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52YXNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBX
SS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogCiAgICAgY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJl
cHJlc2VudGVkT2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgICAgICByZXR1cm4gc3VwZXIuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2Vu
dGVkT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQ2FudmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LlJlY29yZGluZzsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1Rh
YkNvbnRlbnRWaWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODlkYWI1ZWY5
OTc5ZDYyYjgxMTU5ODlhOTE2NDA0MTNjNzJhOGNkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw1NSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9u
LWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24gewotICAgIGNvbnRlbnQ6IHVybCgu
Li9JbWFnZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKLX0KLQotLmNvbnRlbnQtdmlldy50YWIuY2Fu
dmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMuY2FudmFzLTJkIC5pY29uIHsKLSAg
ICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczJELnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZp
ZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzOm1hdGNoZXMoLndl
YmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29uIHsKLSAgICBjb250ZW50OiB1
cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZh
cyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24gewotICAgIGNvbnRl
bnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7Ci19Ci0KLS5jb250ZW50LXZpZXcudGFi
LmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuc2hhZGVyLXByb2dyYW0gPiAuaWNvbiB7
Ci0gICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4
LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7Ci19Ci0KLUBtZWRpYSAocHJl
ZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3LnRhYi5jYW52YXMg
Lm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAuaWNvbiB7Ci0gICAgICAg
IGZpbHRlcjogaW52ZXJ0KDYwJSk7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQtdmlldy50YWIuY2Fu
dmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMgLmljb24sCi0gICAgLmNvbnRlbnQt
dmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNv
biB7Ci0gICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNU
YWJDb250ZW50Vmlldy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUxZGJlNDgw
MWU1NTdiYzdjMjBlNTJlYzc3YzgwOTk5ZDU2YThkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI5OCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBDYW52
YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcK
LXsKLSAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCFyZXByZXNlbnRlZE9iamVjdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdJLkNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IHRhYkJhckl0ZW0gPSBXSS5HZW5lcmFs
VGFiQmFySXRlbS5mcm9tVGFiSW5mbyhXSS5DYW52YXNUYWJDb250ZW50Vmlldy50YWJJbmZvKCkp
OwotCi0gICAgICAgIGNvbnN0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciA9IFdJ
LkNhbnZhc1NpZGViYXJQYW5lbDsKLSAgICAgICAgY29uc3QgZGV0YWlsc1NpZGViYXJQYW5lbENv
bnN0cnVjdG9ycyA9IFtXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwsIFdJLlJl
Y29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbCwgV0kuQ2FudmFzRGV0YWlsc1NpZGViYXJQ
YW5lbF07Ci0gICAgICAgIGNvbnN0IGRpc2FibGVCYWNrRm9yd2FyZCA9IHRydWU7Ci0gICAgICAg
IHN1cGVyKCJjYW52YXMiLCBbImNhbnZhcyJdLCB0YWJCYXJJdGVtLCBuYXZpZ2F0aW9uU2lkZWJh
clBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMsIGRpc2Fi
bGVCYWNrRm9yd2FyZCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbiA9IG5ldyBX
SS5DYW52YXNDb2xsZWN0aW9uOwotCi0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lID0g
bmV3IFdJLlRyZWVPdXRsaW5lOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5hbGxv
d3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOwotICAgICAgICB0aGlzLl9jYW52YXNUcmVlT3V0bGlu
ZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5n
ZSwgdGhpcy5fY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwotCi0g
ICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVt
ZW50KCJjYW52YXMtb3ZlcnZpZXciLCBXSS5VSVN0cmluZygiT3ZlcnZpZXciKSwgbnVsbCwgdGhp
cy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmFw
cGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3Nh
dmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50ID0gbmV3IFdJLkZvbGRlclRyZWVFbGVtZW50KFdJLlVJ
U3RyaW5nKCJTYXZlZCBSZWNvcmRpbmdzIiksIFdJLlJlY29yZGluZ0NvbGxlY3Rpb24pOwotICAg
ICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSB0cnVlOwotICAg
ICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NhdmVkUmVj
b3JkaW5nc1RyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dCA9IG5l
dyBXSS5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNl
LCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2hv
cnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9y
ZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5fcmVjb3JkU2lu
Z2xlRnJhbWVTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJkU2hv
cnRjdXQuTW9kaWZpZXIuU2hpZnQsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlz
Ll9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJh
bWVTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7Ci0gICAgICAgIHRo
aXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7Ci0gICAgfQotCi0gICAgc3RhdGljIHRhYkluZm8o
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIGltYWdlOiAiSW1hZ2VzL0Nh
bnZhcy5zdmciLAotICAgICAgICAgICAgdGl0bGU6IFdJLlVJU3RyaW5nKCJDYW52YXMiKSwKLSAg
ICAgICAgfTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaXNUYWJBbGxvd2VkKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQ2FudmFzIik7Ci0gICAgfQot
Ci0gICAgLy8gUHVibGljCi0KLSAgICB0cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KHJl
cHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2NhbnZhc1RyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgfQotCi0gICAg
Z2V0IHR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3
LlR5cGU7Ci0gICAgfQotCi0gICAgZ2V0IHN1cHBvcnRzU3BsaXRDb250ZW50QnJvd3NlcigpCi0g
ICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBnZXQgbWFuYWdlc05hdmln
YXRpb25TaWRlYmFyUGFuZWwoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
Ci0gICAgY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCi0g
ICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxl
Y3Rpb24KLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVj
b3JkaW5nCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNo
YWRlclByb2dyYW07Ci0gICAgfQotCi0gICAgc2hvd24oKQotICAgIHsKLSAgICAgICAgc3VwZXIu
c2hvd24oKTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNl
OwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gZmFs
c2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50Vmll
dykKLSAgICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHRoaXMuX2NhbnZhc0Nv
bGxlY3Rpb24pOwotICAgIH0KLQotICAgIGhpZGRlbigpCi0gICAgewotICAgICAgICB0aGlzLl9y
ZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmds
ZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgIHN1cGVyLmhpZGRlbigp
OwotICAgIH0KLQotICAgIGNsb3NlZCgpCi0gICAgewotICAgICAgICBXSS5jYW52YXNNYW5hZ2Vy
LmRpc2FibGUoKTsKLQotICAgICAgICBzdXBlci5jbG9zZWQoKTsKLSAgICB9Ci0KLSAgICByZXN0
b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KLSAg
ICB9Ci0KLSAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUpCi0gICAgewotICAgICAgICAvLyBG
SVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29t
cGxldGUuCi0gICAgfQotCi0gICAgYXN5bmMgaGFuZGxlRmlsZURyb3AoZmlsZXMpCi0gICAgewot
ICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9
PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOwotICAgIH0KLQotICAgIC8v
IFByb3RlY3RlZAotCi0gICAgYXR0YWNoZWQoKQotICAgIHsKLSAgICAgICAgc3VwZXIuYXR0YWNo
ZWQoKTsKLQotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRo
aXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0
aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVk
T3JTdG9wcGVkLCB0aGlzKTsKLSAgICAgICAgV0kuQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV0ku
Q2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hhbmRsZVJlY29yZGluZ1NhdmVk
T3JTdG9wcGVkLCB0aGlzKTsKLQotICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzOwotCi0gICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiB0aGlzLl9jYW52YXND
b2xsZWN0aW9uKSB7Ci0gICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmluY2x1ZGVzKGNhbnZhcykp
Ci0gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7Ci0gICAgICAgIH0K
LQotICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgY2FudmFzZXMpIHsKLSAgICAgICAgICAgIGlm
ICghdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5oYXMoY2FudmFzKSkKLSAgICAgICAgICAgICAgICB0
aGlzLl9hZGRDYW52YXMoY2FudmFzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3NhdmVk
UmVjb3JkaW5nc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIGZvciAobGV0
IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykKLSAgICAgICAg
ICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIHtzdXBwcmVzc1Nob3dSZWNvcmRpbmc6
IHRydWV9KTsKLSAgICB9Ci0KLSAgICBkZXRhY2hlZCgpCi0gICAgewotICAgICAgICBXSS5DYW52
YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKLSAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotCi0gICAg
ICAgIHN1cGVyLmRldGFjaGVkKCk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2Fk
ZENhbnZhcyhjYW52YXMpCi0gICAgewotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50
LmFwcGVuZENoaWxkKG5ldyBXSS5DYW52YXNUcmVlRWxlbWVudChjYW52YXMpKTsKLSAgICAgICAg
dGhpcy5fY2FudmFzQ29sbGVjdGlvbi5hZGQoY2FudmFzKTsKLQotICAgICAgICBjb25zdCBvcHRp
b25zID0gewotICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlLAotICAgICAg
ICB9OwotCi0gICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29s
bGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlv
bnMpOwotICAgIH0KLQotICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQotICAgIHsKLSAgICAgICAg
bGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50
KGNhbnZhcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlzc2luZyB0
cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOwotCi0gICAgICAgIGNvbnN0IHN1cHBy
ZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKLSAgICAgICAgdHJlZUVsZW1lbnQuZGVzZWxlY3Qoc3Vw
cHJlc3NOb3RpZmljYXRpb24pOwotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50LnJl
bW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9u
LnJlbW92ZShjYW52YXMpOwotCi0gICAgICAgIGxldCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlz
LmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKLSAgICAgICAgaWYgKGN1cnJlbnRD
b250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQotICAgICAgICAgICAg
V0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwotICAgICAg
ICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdDb250
ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMoY3VycmVudENvbnRlbnRW
aWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKLSAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIu
dXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50VmlldygpOwotCi0gICAgICAg
IGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVs
OwotICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBpbnN0YW5jZW9mIFdJLkNhbnZh
c1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnZpc2libGUpCi0gICAgICAg
ICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJlc2VudGVkT2JqZWN0cygpOwot
Ci0gICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxzKCk7Ci0gICAgfQotCi0gICAg
X2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkKLSAgICB7Ci0gICAgICAgIGlm
ICghcmVjb3JkaW5nLnNvdXJjZSkgewotICAgICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxs
OwotICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxU
cmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxl
LCByZWNvcmRpbmcpOwotICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1l
bnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVl
RWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nKQotICAgICAgICAgICAg
dGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVjb3JkaW5nKTsKLSAgICB9Ci0KLSAgICBfaGFu
ZGxlQ2FudmFzQWRkZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9hZGRDYW52YXMoZXZl
bnQuZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAgIF9oYW5kbGVDYW52YXNSZW1vdmVkKGV2ZW50
KQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGV2ZW50LmRhdGEuY2FudmFzKTsK
LSAgICB9Ci0KLSAgICBfY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQp
Ci0gICAgewotICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5fY2FudmFzVHJlZU91
dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHJlcHJlc2VudGVkT2JqZWN0ID0g
c2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwotICAgICAgICBpZiAoIXRoaXMuY2Fu
U2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KSkgewotICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJlcHJlc2VudGVkT2JqZWN0LiIsIHJl
cHJlc2VudGVkT2JqZWN0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICB9
Ci0KLSAgICBfaGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQoZXZlbnQpCi0gICAgewotICAg
ICAgICBsZXQge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyLCBpbXBvcnRlZH0gPSBldmVudC5k
YXRhOwotICAgICAgICBpZiAoIXJlY29yZGluZykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBsZXQgb3B0aW9ucyA9IHt9OwotCi0gICAgICAgIC8vIEFsd2F5cyBzaG93IGltcG9ydGVk
IHJlY29yZGluZ3MuCi0gICAgICAgIGlmIChyZWNvcmRpbmcuc291cmNlIHx8ICFpbXBvcnRlZCkK
LSAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nID0gIWluaXRpYXRlZEJ5
VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9iamVjdHMuc29t
ZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
UmVjb3JkaW5nKTsKLQotICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRp
b25zKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlU3BhY2UoZXZlbnQpCi0gICAgewotICAgICAgICBp
ZiAoV0kuaXNFdmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChldmVudCkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGNhbnZhcyA9IHRoaXMubmF2aWdhdGlvblNp
ZGViYXJQYW5lbC5jYW52YXM7Ci0gICAgICAgIGlmICghY2FudmFzKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5nQWN0aXZlKQotICAgICAgICAgICAg
Y2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBsZXQg
c2luZ2xlRnJhbWUgPSAhIWV2ZW50LnNoaWZ0S2V5OwotICAgICAgICAgICAgY2FudmFzLnN0YXJ0
UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKLSAgICAgICAgfQotCi0gICAgICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7Ci0gICAgfQotfTsKLQotV0kuQ2FudmFzVGFiQ29udGVudFZpZXcuVHlwZSA9
ICJjYW52YXMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKaW5kZXggZmUz
M2U3YWNkOWYxNjFiMmNjMGNlNzFjZDUyNGE0OTFhZGQzM2MyYi4uNWNlOGRiMGYzMDhkZDk4OTg0
YjMxYmI5NGNjNWY3OWMzOTVjMmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZp
ZXcuY3NzCkBAIC0zMywxNCArMzMsMTcgQEAKICAgICBmbGV4LWdyb3c6IDE7CiB9CiAKLS5jb250
ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nIHsKLSAgICBvdXRsaW5lOiAw
LjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwotfQotCi0uY29udGVudC12aWV3LmNvbGxl
Y3Rpb24gLnJlc291cmNlLmltYWdlIGltZzpob3ZlciB7Ci0gICAgb3V0bGluZS1jb2xvcjogdmFy
KC0tZ2x5cGgtY29sb3ItYWN0aXZlKQotfQotCiAuY29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAu
Y29udGVudC12aWV3W2hpZGRlbl0gewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CisKKy5jb250ZW50
LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRlcjpub3QoLm1lc3NhZ2UtdGV4dC12aWV3KSB7
CisgICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIGp1
c3RpZnktY29udGVudDogY2VudGVyOworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgd2lk
dGg6IDEwMCU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogMTNweDsK
KyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29u
dGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggMDU0NzQxNjgxYzgxOGJlNWJjYWE1ZDZmZjE5
ZDUzNzI5YjdiMzg2Ni4uNTA1YTRhN2JkZTQ1NTIzYjMwZGE0ZjZiY2E3N2I0ZDhjY2QxMDZjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMjgsNyArMjgsNyBAQCBX
SS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VmlldwogICAgIGNvbnN0cnVjdG9yKGNvbGxlY3Rpb24sIGNvbnRlbnRW
aWV3Q29uc3RydWN0b3IsIGNvbnRlbnRQbGFjZWhvbGRlcikKICAgICB7CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbGxlY3Rpb24gaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKTsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoY29udGVudFZpZXdDb25zdHJ1Y3RvciBpbnN0YW5jZW9mIFdJLkNvbnRl
bnRWaWV3KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWNvbnRlbnRWaWV3Q29uc3RydWN0b3Ig
fHwgY29udGVudFZpZXdDb25zdHJ1Y3Rvci5wcm90b3R5cGUgaW5zdGFuY2VvZiBXSS5Db250ZW50
Vmlldyk7CiAKICAgICAgICAgc3VwZXIoY29sbGVjdGlvbik7CiAKQEAgLTM4LDcgKzM4LDYgQEAg
V0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxl
bWVudCA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IgPSBjb250
ZW50Vmlld0NvbnN0cnVjdG9yOwogICAgICAgICB0aGlzLl9jb250ZW50Vmlld01hcCA9IG5ldyBN
YXA7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwID0gbmV3IFdlYWtNYXA7CiAgICAgICAg
IHRoaXMuX3NlbGVjdGVkSXRlbSA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkVuYWJs
ZWQgPSBmYWxzZTsKICAgICB9CkBAIC04MywxOSArODIsMjUgQEAgV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7CiAgICAgfQogCi0gICAgc2V0
U2VsZWN0ZWRJdGVtKGl0ZW0pCisgICAgZ2V0IHNlbGVjdGVkSXRlbSgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtOworICAgIH0KKworICAgIHNldCBzZWxlY3RlZEl0
ZW0oaXRlbSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3NlbGVjdGlvbkVu
YWJsZWQsICJBdHRlbXB0ZWQgdG8gc2V0IHNlbGVjdGVkIGl0ZW0gd2hlbiBzZWxlY3Rpb24gaXMg
ZGlzYWJsZWQuIik7CiAgICAgICAgIGlmICghdGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgY29udGVudFZpZXcgPSB0aGlzLl9jb250ZW50
Vmlld01hcC5nZXQoaXRlbSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LCAi
TWlzc2luZyBjb250ZXQgdmlldyBmb3IgaXRlbS4iLCBpdGVtKTsKLSAgICAgICAgaWYgKCFjb250
ZW50VmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB0aGlzLl9zZWxlY3RJdGVt
KGl0ZW0pOwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnNjcm9sbEludG9WaWV3SWZOZWVk
ZWQoKTsKKworICAgICAgICBpZiAoaXRlbSkgeworICAgICAgICAgICAgbGV0IGNvbnRlbnRWaWV3
ID0gdGhpcy5fY29udGVudFZpZXdNYXAuZ2V0KGl0ZW0pOworICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQoY29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRlbnQgdmlldyBmb3IgaXRlbS4iLCBpdGVt
KTsKKyAgICAgICAgICAgIGlmIChjb250ZW50VmlldykKKyAgICAgICAgICAgICAgICBjb250ZW50
Vmlldy5lbGVtZW50LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIC8vIFByb3RlY3RlZApAQCAtMTIwLDIwICsxMjUsOSBAQCBXSS5Db2xsZWN0aW9uQ29u
dGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50
VmlldwogCiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IG5ldyB0aGlzLl9jb250ZW50Vmlld0Nv
bnN0cnVjdG9yKGl0ZW0sIHRoaXMuY29udGVudFZpZXdDb25zdHJ1Y3Rvck9wdGlvbnMpOwogICAg
ICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3
KTsKLQotICAgICAgICBsZXQgaGFuZGxlQ2xpY2sgPSAoZXZlbnQpID0+IHsKLSAgICAgICAgICAg
IGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmFibGVkKQotICAg
ICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGl0ZW0pOwotICAgICAgICB9
OworICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCA9
PT0gaXRlbSk7CiAKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdNYXAuc2V0KGl0ZW0sIGNvbnRl
bnRWaWV3KTsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAuc2V0KGl0ZW0sIGhhbmRsZUNs
aWNrKTsKLSAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIGhhbmRsZUNsaWNrKTsKIAogICAgICAgICB0aGlzLmFkZFN1YnZpZXcoY29udGVudFZpZXcp
OwogICAgICAgICB0aGlzLmNvbnRlbnRWaWV3QWRkZWQoY29udGVudFZpZXcpOwpAQCAtMTY5LDE0
ICsxNjMsNiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIGNvbnRlbnRWaWV3LnJl
bW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKLSAgICAgICAgbGV0IGhhbmRs
ZUNsaWNrID0gdGhpcy5faGFuZGxlQ2xpY2tNYXAuZ2V0KGl0ZW0pOwotICAgICAgICBjb25zb2xl
LmFzc2VydChoYW5kbGVDbGljayk7Ci0KLSAgICAgICAgaWYgKGhhbmRsZUNsaWNrKSB7Ci0gICAg
ICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
aGFuZGxlQ2xpY2spOwotICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAuZGVsZXRlKGl0
ZW0pOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKCF0aGlzLnN1YnZpZXdzLmxlbmd0aCkKICAg
ICAgICAgICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigpOwogICAgIH0KQEAgLTIwMCw2
ICsxODYsOCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgICAgIHRoaXMuX2Nv
bnRlbnRQbGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXI7CiAgICAg
ICAgIH0KIAorICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50LmNsYXNzTGlz
dC5hZGQoInBsYWNlaG9sZGVyIik7CisKICAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50UGxhY2Vo
b2xkZXJFbGVtZW50LnBhcmVudE5vZGUpCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCk7CiAgICAgfQpAQCAtMjEyLDEw
ICsyMDAsMTEgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIGluaXRpYWxMYXlvdXQoKQog
ICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwgIXRoaXMu
X2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpIHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbnRlbnRWaWV3
Q29uc3RydWN0b3IpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKTsKKworICAgICAgICBpZiAoIXRo
aXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZSB8fCAhdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3Rv
cikKICAgICAgICAgICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9CiAgICAgfQogCiAgICAgYXR0YWNoZWQoKQpAQCAtMjkyLDYg
KzI4MSwzMCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgc2VsZWN0ZWRDb250
ZW50Vmlldy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik7CiAgICAgICAgIH0KIAor
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db2xsZWN0aW9uQ29udGVu
dFZpZXcuRXZlbnQuU2VsZWN0ZWRJdGVtQ2hhbmdlZCk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBsZW1lbnRhbFJlcHJlc2Vu
dGVkT2JqZWN0c0RpZENoYW5nZSk7CiAgICAgfQorCisgICAgX2hhbmRsZUNsaWNrKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IFtpdGVtLCBjb250ZW50Vmll
d10gb2YgdGhpcy5fY29udGVudFZpZXdNYXApIHsKKyAgICAgICAgICAgIGlmIChjb250ZW50Vmll
dy5lbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
dGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0
SXRlbShpdGVtKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIFdJ
LnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVtKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5h
YmxlZCkKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7CisgICAgfQorfTsKKwor
V0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50ID0geworICAgIFNlbGVjdGVkSXRlbUNoYW5n
ZWQ6ICJjb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1zZWxlY3RlZC1pdGVtLWNoYW5nZWQiLAogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGVudFZpZXcuanMKaW5kZXggZGY5MTJkZDU2ZmEwN2RmOTQ4ZjBkN2Y3YWYwZDdjNmQxYjc5
YTJmNi4uMjk2YzJhNTQyM2EwZjY5MWVhYzdkMmQwZTkzNjAwZjUxNTRmMGRlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVu
dFZpZXcuanMKQEAgLTYwLDkgKzYwLDYgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50
VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQ2FudmFzKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXNDb250ZW50
VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCi0gICAgICAgIGlmIChy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAg
ICAgICByZXR1cm4gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcocmVwcmVzZW50ZWRP
YmplY3QsIGV4dHJhQXJndW1lbnRzKTsKLQogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5T
aGFkZXJQcm9ncmFtQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRz
KTsKIApAQCAtMTgyLDYgKzE3OSw5IEBAIFdJLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkF1ZGl0VGVzdEdyb3VwIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
QXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkF1ZGl0VGVz
dEdyb3VwQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKIAor
ICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pCisg
ICAgICAgICAgICByZXR1cm4gbmV3IFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KHJlcHJlc2VudGVk
T2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CisKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAK
QEAgLTI3Myw4ICsyNzMsNiBAQCBXSS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuVmlldwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXND
b2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0pCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuVGlt
ZWxpbmVSZWNvcmRpbmcpCkBAIC0zMTgsMTAgKzMxNiwxNCBAQCBXSS5Db250ZW50VmlldyA9IGNs
YXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBpZiAocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlIHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXAKICAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1h
dGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGlmICh0eXBlb2YgcmVwcmVzZW50ZWRPYmplY3QgPT09ICJzdHJpbmciIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdFtXSS5Db250ZW50Vmlldy5pc1ZpZXdh
YmxlU3ltYm9sXSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCkBAIC01MTIsNCArNTE0LDUgQEAgV0kuQ29udGVudFZpZXcuRXZlbnQgPSB7
CiAgICAgTmF2aWdhdGlvbkl0ZW1zRGlkQ2hhbmdlOiAiY29udGVudC12aWV3LW5hdmlnYXRpb24t
aXRlbXMtZGlkLWNoYW5nZSIKIH07CiAKK1dJLkNvbnRlbnRWaWV3LmlzVmlld2FibGVTeW1ib2wg
PSBTeW1ib2woImlzLXZpZXdhYmxlIik7CiBXSS5Db250ZW50Vmlldy5Db250ZW50Vmlld0ZvclJl
cHJlc2VudGVkT2JqZWN0U3ltYm9sID0gU3ltYm9sKCJjb250ZW50LXZpZXctZm9yLXJlcHJlc2Vu
dGVkLW9iamVjdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcwppbmRl
eCBlNWE1ZmVjMWVhYmI1YzA5NzJjZmEwNTNkNTM0YzM2MDA5ZTFiNzZmLi43ZWQwYzgyZWIzYjcx
ZWViNmJiYjFmOTdlOTc5MGY2YmJiYzU1NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
blNpbXBsZVJvdy5qcwpAQCAtOTYsNyArOTYsNyBAQCBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyA9IGNsYXNzIERldGFpbHNTZWN0aW9uU2ltcGxlUm93IGV4dGVuZHMgV0kuRGV0YWlsc1NlYwog
ICAgIHsKICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSB8fCAiIjsKIAotICAgICAgICBpZiAo
dGhpcy5fdmFsdWUpIHsKKyAgICAgICAgaWYgKHRoaXMuX3ZhbHVlIHx8IHRoaXMuX3ZhbHVlID09
PSAwKSB7CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdy5FbXB0eVN0eWxlQ2xhc3NOYW1lKTsKIAogICAgICAgICAgICAg
Ly8gSWYgdGhlIHZhbHVlIGhhcyBzcGFjZSBjaGFyYWN0ZXJzIHRoYXQgY2F1c2Ugd29yZCB3cmFw
cGluZyB0aGVuIHdlIGRvbid0IG5lZWQgdGhlIGRhdGEgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDY2M2U2ZjBmMTcy
ZmNlMDkyNjdmOGVjMTZhZWE4ZGQ3ZWJhNTQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRW
aWV3LmNzcwpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmlldy5ncmFw
aGljcy1vdmVydmlldyB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1j
b2xvci1jb250ZW50KTsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgcGFkZGluZy1ib3R0
b206IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
aHNsKDAsIDAlLCA5MCUpOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4g
c2VjdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGJhY2tncm91bmQtY29sb3I6
IGluaGVyaXQ7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9u
Om5vdCg6Zmlyc3QtY2hpbGQpIHsKKyAgICBtYXJnaW4tdG9wOiAyMHB4OworfQorCisuY29udGVu
dC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgeworICAgIGRpc3Bs
YXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBwb3NpdGlvbjogc3RpY2t5
OworICAgIHRvcDogMDsKKyAgICB6LWluZGV4OiAxOworICAgIG1pbi1oZWlnaHQ6IHZhcigtLW5h
dmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA4cHg7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NyUpOworICAgIGJvcmRlci1ib3R0b206
IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LmdyYXBo
aWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRlciB7Cisg
ICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisKKy5jb250
ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IGgxIHsKKyAg
ICBtYXJnaW46IDA7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0
aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAgZmxleC1ncm93OiAxOworICAg
IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CisgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKK30K
KworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIHJp
Z2h0OiAwOworICAgIGJvdHRvbTogMDsKKyAgICBsZWZ0OiAwOworfQorCitAbWVkaWEgKHByZWZl
cnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVy
dmlldyB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgMTQlKTsKKyAgICB9
CisKKyAgICAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFk
ZXIgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDIxJSk7CisgICAgfQor
fQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTBjMGFlMDExNzVkOTdhZGViMjRkYzMwYzBiMzUwNzdjYWJhMjhlOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBo
aWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDIwNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1dJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIEdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IoKQor
ICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgiZ3JhcGhpY3Mtb3ZlcnZpZXciKTsKKworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LXJlY29y
ZGluZyIsIFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1
KTsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbHRpcCA9IFdJ
LlVJU3RyaW5nKCJJbXBvcnQiKTsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFu
ZFRleHQ7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFu
ZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0
aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0oInJlZnJlc2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1
bGwuc3ZnIiwgMTMsIDEzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tl
ZCwgdGhpcy5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworCisgICAgICAgIHRo
aXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25O
YXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5
IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9O
YXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRoaXMuX3Nob3dH
cmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1h
Z2VHcmlkLnZhbHVlOworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwg
dGhpcy5faGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlz
Ll9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcoV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKworICAgICAgICB0aGlz
Ll9vdmVydmlld1ZpZXdzID0gW107CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQg
c3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9vdmVydmlld1ZpZXdzLmZsYXRNYXAoKHN1YnZpZXcpID0+IHN1YnZpZXcuc3VwcGxlbWVu
dGFsUmVwcmVzZW50ZWRPYmplY3RzKTsKKyAgICB9CisKKyAgICBnZXQgbmF2aWdhdGlvbkl0ZW1z
KCkKKyAgICB7CisgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgaWYg
KCFXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAgICAgICAgICAgbmF2aWdhdGlv
bkl0ZW1zLnB1c2hBbGwodGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5uYXZpZ2F0aW9u
SXRlbXMpOworICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2gobmV3IFdJLkRpdmlkZXJO
YXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2go
dGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlv
bkl0ZW0sIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwgdGhpcy5fc2hvd0dyaWRC
dXR0b25OYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7Cisg
ICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAg
ICBzdXBlci5hdHRhY2hlZCgpOworCisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQu
YWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZVNo
b3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2hhbmRsZVNo
b3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCgpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAg
ICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKworICAg
ICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2V0
dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5n
ZWQsIHRoaXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgaW5p
dGlhbExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAg
ICAgICAgaWYgKFdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBs
ZXQgY3JlYXRlU2VjdGlvbiA9IChpZGVudGlmaWVyLCB0aXRsZSwgb3ZlcnZpZXdWaWV3KSA9PiB7
CisgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQob3ZlcnZpZXdWaWV3IGluc3RhbmNlb2Yg
V0kuQ29udGVudFZpZXcpOworCisgICAgICAgICAgICAgICAgbGV0IHNlY3Rpb25FbGVtZW50ID0g
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24i
KSk7CisgICAgICAgICAgICAgICAgc2VjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gaWRlbnRpZmll
cjsKKworICAgICAgICAgICAgICAgIGxldCBoZWFkZXJFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICAgICAg
ICAgIGhlYWRlckVsZW1lbnQuY2xhc3NOYW1lID0gImhlYWRlciI7CisKKyAgICAgICAgICAgICAg
ICBsZXQgdGl0bGVFbGVtZW50ID0gaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJoMSIpKTsKKyAgICAgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENv
bnRlbnQgPSB0aXRsZTsKKworICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMgPSBv
dmVydmlld1ZpZXcubmF2aWdhdGlvbkl0ZW1zOworICAgICAgICAgICAgICAgIGlmIChuYXZpZ2F0
aW9uSXRlbXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uQmFy
ID0gbmV3IFdJLk5hdmlnYXRpb25CYXIoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibmF2IiksIG5h
dmlnYXRpb25JdGVtcyk7CisgICAgICAgICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5k
Q2hpbGQobmF2aWdhdGlvbkJhci5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5h
ZGRTdWJ2aWV3KG5hdmlnYXRpb25CYXIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGxldCBjb250ZW50RWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBjb250ZW50RWxl
bWVudC5jbGFzc05hbWUgPSAiY29udGVudCI7CisKKyAgICAgICAgICAgICAgICBjb250ZW50RWxl
bWVudC5hcHBlbmRDaGlsZChvdmVydmlld1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICAgICAg
dGhpcy5hZGRTdWJ2aWV3KG92ZXJ2aWV3Vmlldyk7CisKKyAgICAgICAgICAgICAgICBvdmVydmll
d1ZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQuU2Vs
ZWN0ZWRJdGVtQ2hhbmdlZCwgdGhpcy5faGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hh
bmdlZCwgdGhpcyk7CisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlk
Q2hhbmdlLCB0aGlzLl9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9i
amVjdHNEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3Vmll
d3MucHVzaChvdmVydmlld1ZpZXcpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgY3Jl
YXRlU2VjdGlvbigiY2FudmFzIiwgV0kuVUlTdHJpbmcoIkNhbnZhc2VzIiksIHRoaXMuX2NhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVj
dGlvbiA9IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbjsKKyAgICAgICAg
ICAgIGNyZWF0ZVNlY3Rpb24oIndlYi1hbmltYXRpb24iLCBXSS5VSVN0cmluZygiV2ViIEFuaW1h
dGlvbnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25D
b2xsZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLldl
YkFuaW1hdGlvbikpKTsKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oImNzcy1hbmltYXRpb24i
LCBXSS5VSVN0cmluZygiQ1NTIEFuaW1hdGlvbnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rp
b25Db250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlKFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbikpKTsKKyAgICAgICAgICAgIGNyZWF0
ZVNlY3Rpb24oImNzcy10cmFuc2l0aW9uIiwgV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9ucyIp
LCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3KGFuaW1hdGlvbkNvbGxlY3Rp
b24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNp
dGlvbikpKTsKKworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcp
OworCisgICAgICAgIGxldCBkcm9wWm9uZVZpZXcgPSBuZXcgV0kuRHJvcFpvbmVWaWV3KHRoaXMp
OworICAgICAgICBkcm9wWm9uZVZpZXcudGV4dCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQgUmVjb3Jk
aW5nIik7CisgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbGVtZW50
OworICAgICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpvbmVWaWV3KTsKKyAgICB9CisKKyAgICAv
LyBEcm9wWm9uZVZpZXcgZGVsZWdhdGUKKworICAgIGRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJh
Z0V2ZW50KGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBldmVudC5kYXRh
VHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIik7CisgICAgfQorCisgICAgZHJvcFpvbmVI
YW5kbGVEcm9wKGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIGxldCBmaWxlcyA9IGV2
ZW50LmRhdGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCAhPT0gMSkg
eworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04o
ZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7
CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZVJlZnJlc2hCdXR0b25DbGlj
a2VkKCkKKyAgICB7CisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVy
dmlld1ZpZXdzKQorICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmhhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkKCk7CisgICAgfQorCisgICAgX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZChldmVu
dCkKKyAgICB7CisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWUgPSAhdGhp
cy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQ7CisgICAgfQorCisgICAg
X2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlz
Ll9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Mu
c2hvd0ltYWdlR3JpZC52YWx1ZTsKKyAgICB9CisKKyAgICBfaGFuZGxlSW1wb3J0QnV0dG9uTmF2
aWdhdGlvbkl0ZW1DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuRmlsZVV0aWxpdGll
cy5pbXBvcnRKU09OKChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVz
dWx0KSwge211bHRpcGxlOiB0cnVlfSk7CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3Vmll
d1NlbGVjdGVkSXRlbUNoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoIWV2ZW50LnRh
cmdldC5zZWxlY3RlZEl0ZW0pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChs
ZXQgb3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAgICAgICAgICAgIGlm
IChvdmVydmlld1ZpZXcgIT09IGV2ZW50LnRhcmdldCAmJiBvdmVydmlld1ZpZXcuc2VsZWN0aW9u
RW5hYmxlZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJdGVtID0gbnVs
bDsKKyAgICAgICAgfQorICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVtZW50
YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UoZXZuZXQpCisgICAgeworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50
YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOworICAgIH0KKworICAgIF9oYW5kbGVDbGlj
ayhldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMuZWxlbWVu
dCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBvdmVydmlld1ZpZXcg
b2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykgeworICAgICAgICAgICAgaWYgKG92ZXJ2aWV3Vmlldy5z
ZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgIG92ZXJ2aWV3Vmlldy5zZWxlY3RlZEl0
ZW0gPSBudWxsOworICAgICAgICB9CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJD
b250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQwNzVjMDM3NTA3YTJlYzc3YTM1MWZkZDM4OGE1
OGY0YTJhODgxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4v
SW1hZ2VzL0NhbnZhc092ZXJ2aWV3LnN2Zyk7Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBo
aWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMuY2FudmFzLTJkIC5pY29uIHsKKyAg
ICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczJELnN2Zyk7Cit9CisKKy5jb250ZW50LXZp
ZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXM6bWF0Y2hlcygu
d2ViZ2wsIC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmljb24geworICAgIGNvbnRlbnQ6
IHVybCguLi9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3Jh
cGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKKyAgICBj
b250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOworfQorCisuY29udGVudC12aWV3
LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuc2hhZGVyLXByb2dyYW0gPiAu
aWNvbiB7CisgICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMvRG9jdW1lbnRHTC5w
bmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7Cit9CisKK0BtZWRp
YSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29udGVudC12aWV3LnRhYi5n
cmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuZ3JhcGhpY3Mtb3ZlcnZpZXcgLmljb24g
eworICAgICAgICBmaWx0ZXI6IGludmVydCg2MCUpOworICAgIH0KKworICAgIC5jb250ZW50LXZp
ZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMgLmljb24sCisg
ICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJl
Y29yZGluZyA+IC5pY29uIHsKKyAgICAgICAgZmlsdGVyOiBpbnZlcnQoKTsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTZkODU3MjI2
Nzk4MzBlNGE2NTc3MTk3ZDlhOTI4NTM4MjcwM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmll
dy5qcwpAQCAtMCwwICsxLDMxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkdyYXBoaWNzVGFiQ29udGVu
dFZpZXcgPSBjbGFzcyBHcmFwaGljc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJy
b3dzZXJUYWJDb250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAg
IGxldCB0YWJCYXJJdGVtID0gV0kuR2VuZXJhbFRhYkJhckl0ZW0uZnJvbVRhYkluZm8oV0kuR3Jh
cGhpY3NUYWJDb250ZW50Vmlldy50YWJJbmZvKCkpOworCisgICAgICAgIGNvbnN0IG5hdmlnYXRp
b25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciA9IFdJLkNhbnZhc1NpZGViYXJQYW5lbDsKKyAgICAg
ICAgY29uc3QgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyA9IFsKKyAgICAgICAgICAg
IFdJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLlJl
Y29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgICAgIFdJLkNhbnZhc0Rl
dGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJh
clBhbmVsLAorICAgICAgICBdOworICAgICAgICBjb25zdCBkaXNhYmxlQmFja0ZvcndhcmQgPSB0
cnVlOworICAgICAgICBzdXBlcigiZ3JhcGhpY3MiLCBbImdyYXBoaWNzIl0sIHRhYkJhckl0ZW0s
IG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0YWlsc1NpZGViYXJQYW5lbENv
bnN0cnVjdG9ycywgZGlzYWJsZUJhY2tGb3J3YXJkKTsKKworICAgICAgICB0aGlzLl9jYW52YXNl
c1RyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lOworICAgICAgICB0aGlzLl9jYW52YXNl
c1RyZWVPdXRsaW5lLmFsbG93c1JlcGVhdFNlbGVjdGlvbiA9IHRydWU7CisgICAgICAgIHRoaXMu
X2NhbnZhc2VzVHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVu
dC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxl
Y3Rpb25EaWRDaGFuZ2UsIHRoaXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1l
bnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KCJjYW52YXMtb3ZlcnZpZXciLCBXSS5VSVN0
cmluZygiT3ZlcnZpZXciKSwgbnVsbCwge1tXSS5Db250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9s
XTogdHJ1ZX0pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxk
KHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFz
UmVjb3JkaW5nc1RyZWVFbGVtZW50ID0gbmV3IFdJLkZvbGRlclRyZWVFbGVtZW50KFdJLlVJU3Ry
aW5nKCJTYXZlZCBSZWNvcmRpbmdzIikpOworICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29y
ZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLl9jYW52YXNlc1Ry
ZWVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVt
ZW50KTsKKworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNo
b3J0Y3V0KG51bGwsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVT
cGFjZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuaW1wbGljaXRs
eVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5k
aXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1
dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIu
U2hpZnQsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5i
aW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5pbXBs
aWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmds
ZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuZW5hYmxlKCk7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuZW5hYmxlKCk7CisgICAg
fQorCisgICAgc3RhdGljIHRhYkluZm8oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgIGltYWdlOiAiSW1hZ2VzL0dyYXBoaWNzLnN2ZyIsCisgICAgICAgICAgICB0aXRsZTog
V0kuVUlTdHJpbmcoIkdyYXBoaWNzIiksCisgICAgICAgIH07CisgICAgfQorCisgICAgc3RhdGlj
IGlzVGFiQWxsb3dlZCgpCisgICAgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5o
YXNEb21haW4oIkNhbnZhcyIpCisgICAgICAgICAgICB8fCBJbnNwZWN0b3JCYWNrZW5kLmhhc0Rv
bWFpbigiQW5pbWF0aW9uIik7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICB0cmVlRWxl
bWVudEZvclJlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJlcHJl
c2VudGVkT2JqZWN0KTsKKyAgICB9CisKKyAgICBnZXQgdHlwZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlOworICAgIH0KKworICAgIGdldCBz
dXBwb3J0c1NwbGl0Q29udGVudEJyb3dzZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgZ2V0IG1hbmFnZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHNob3dSZXByZXNlbnRlZE9iamVj
dChyZXByZXNlbnRlZE9iamVjdCwgY29va2llKQorICAgIHsKKyAgICAgICAgaWYgKHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikgeworICAgICAgICAgICAgdGhpcy5j
b250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdXBlci5zaG93UmVw
cmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSk7CisgICAgfQorCisgICAg
Y2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlv
bgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMK
KyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5n
Q29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5SZWNvcmRpbmcKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuU2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbQorICAgICAgICAgICAgfHwgcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db2xsZWN0aW9uCisgICAgICAgICAgICB8
fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbjsKKyAgICB9CisKKyAg
ICBjbG9zZWQoKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5kaXNhYmxlKCk7
CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZGlzYWJsZSgpOworCisgICAgICAgIHN1cGVyLmNs
b3NlZCgpOworICAgIH0KKworICAgIHJlc3RvcmVTdGF0ZUZyb21Db29raWUoY29va2llKQorICAg
IHsKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcv
Yi8xNzc2MDY+IGlzIGNvbXBsZXRlLgorICAgIH0KKworICAgIHNhdmVTdGF0ZVRvQ29va2llKGNv
b2tpZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9CisKKyAgICBhc3luYyBoYW5k
bGVGaWxlRHJvcChmaWxlcykKKyAgICB7CisgICAgICAgIGF3YWl0IFdJLkZpbGVVdGlsaXRpZXMu
cmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04o
cmVzdWx0KSk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBhdHRhY2hlZCgpCisg
ICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgpOworCisgICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7CisgICAgICAgIFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rp
b24uRXZlbnQuSXRlbVJlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOwor
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdl
ci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3Bw
ZWQsIHRoaXMpOworICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMu
RXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3Bw
ZWQsIHRoaXMpOworCisgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMuX2NhbnZhc2VzVHJl
ZUVsZW1lbnQuY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBjaGlsZC5yZXBy
ZXNlbnRlZE9iamVjdDsKKyAgICAgICAgICAgIGlmIChjYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52
YXMgJiYgIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5oYXMoY2FudmFzKSkKKyAg
ICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24pIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJl
ZUVsZW1lbnQoY2FudmFzKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRDYW52YXMoY2FudmFz
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5jYW52YXNN
YW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykgeworICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW52YXNl
c1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZWNvcmRpbmcpKQorICAgICAgICAgICAgICAg
IHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIHtzdXBwcmVzc1Nob3dSZWNvcmRpbmc6IHRy
dWV9KTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmRpc2FibGVk
ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJs
ZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICB0aGlz
Ll9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgIHRoaXMuX3JlY29yZFNp
bmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIFdJLkNhbnZhcy5y
ZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVkLCB0aGlz
Ll9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZh
c01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29y
ZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7Cisg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3Rl
bmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRl
ZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1v
dmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIHRoaXMuX2hh
bmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7Cisg
ICAgfQorCisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICB0aGlzLl9vdmVydmll
d0NvbnRlbnRWaWV3ID0gbmV3IFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldzsKKyAgICAg
ICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdDb250
ZW50Vmlldyk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2FkZENhbnZhcyhjYW52
YXMpCisgICAgeworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmFwcGVuZENoaWxk
KG5ldyBXSS5DYW52YXNUcmVlRWxlbWVudChjYW52YXMpKTsKKworICAgICAgICBjb25zdCBvcHRp
b25zID0geworICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlLAorICAgICAg
ICB9OworCisgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29s
bGVjdGlvbikKKyAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlv
bnMpOworICAgIH0KKworICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQorICAgIHsKKyAgICAgICAg
bGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1l
bnQoY2FudmFzKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQsICJNaXNzaW5n
IHRyZWUgZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7CisKKyAgICAgICAgY29uc3Qgc3Vw
cHJlc3NOb3RpZmljYXRpb24gPSB0cnVlOworICAgICAgICB0cmVlRWxlbWVudC5kZXNlbGVjdChz
dXBwcmVzc05vdGlmaWNhdGlvbik7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQu
cmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOworCisgICAgICAgIGxldCBjdXJyZW50Q29udGVudFZp
ZXcgPSB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKKyAgICAgICAgaWYg
KGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAg
ICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbik7CisgICAgICAgIGVsc2UgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5j
ZW9mIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ICYmIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9u
LmhhcyhjdXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QpKQorICAgICAgICAgICAg
dGhpcy5jb250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRl
bnRWaWV3KCk7CisKKyAgICAgICAgbGV0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSB0aGlzLm5h
dmlnYXRpb25TaWRlYmFyUGFuZWw7CisgICAgICAgIGlmIChuYXZpZ2F0aW9uU2lkZWJhclBhbmVs
IGluc3RhbmNlb2YgV0kuQ2FudmFzU2lkZWJhclBhbmVsICYmIG5hdmlnYXRpb25TaWRlYmFyUGFu
ZWwudmlzaWJsZSkKKyAgICAgICAgICAgIG5hdmlnYXRpb25TaWRlYmFyUGFuZWwudXBkYXRlUmVw
cmVzZW50ZWRPYmplY3RzKCk7CisKKyAgICAgICAgdGhpcy5zaG93RGV0YWlsc1NpZGViYXJQYW5l
bHMoKTsKKyAgICB9CisKKyAgICBfYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyA9IHt9
KQorICAgIHsKKyAgICAgICAgaWYgKCFyZWNvcmRpbmcuc291cmNlKSB7CisgICAgICAgICAgICBj
b25zdCBzdWJ0aXRsZSA9IG51bGw7CisgICAgICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1l
bnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5k
aXNwbGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7CisgICAgICAgICAgICB0aGlzLl9zYXZl
ZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTsKKyAgICAgICAgICAg
IHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHJlY29y
ZGluZ1RyZWVFbGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghb3B0aW9ucy5zdXBw
cmVzc1Nob3dSZWNvcmRpbmcpCisgICAgICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVj
dChyZWNvcmRpbmcpOworICAgIH0KKworICAgIF9oYW5kbGVDYW52YXNBZGRlZChldmVudCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX2FkZENhbnZhcyhldmVudC5kYXRhLml0ZW0pOworICAgIH0KKwor
ICAgIF9oYW5kbGVDYW52YXNSZW1vdmVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVt
b3ZlQ2FudmFzKGV2ZW50LmRhdGEuaXRlbSk7CisgICAgfQorCisgICAgX2hhbmRsZU92ZXJ2aWV3
VHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAgICBsZXQg
c2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVF
bGVtZW50OworICAgICAgICBpZiAoIXNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBzd2l0Y2ggKHNlbGVjdGVkRWxlbWVudCkgeworICAgICAgICBjYXNlIHRo
aXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQ6CisgICAgICAgIGNhc2UgdGhpcy5fc2F2ZWRDYW52YXNS
ZWNvcmRpbmdzVHJlZUVsZW1lbnQ6CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNo
b3dDb250ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCByZXByZXNlbnRlZE9iamVjdCA9IHNlbGVj
dGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgaWYgKCF0aGlzLmNhblNob3dS
ZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkpIHsKKyAgICAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGZhbHNlLCAiVW5leHBlY3RlZCByZXByZXNlbnRlZE9iamVjdC4iLCByZXByZXNl
bnRlZE9iamVjdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0
aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisg
ICAgX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlciwgaW1wb3J0ZWR9ID0gZXZlbnQuZGF0YTsK
KyAgICAgICAgaWYgKCFyZWNvcmRpbmcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
bGV0IG9wdGlvbnMgPSB7fTsKKworICAgICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRlZCByZWNv
cmRpbmdzLgorICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSB8fCAhaW1wb3J0ZWQpCisgICAg
ICAgICAgICBvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZyA9ICFpbml0aWF0ZWRCeVVzZXIg
fHwgdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50UmVwcmVzZW50ZWRPYmplY3RzLnNvbWUoKHJl
cHJlc2VudGVkT2JqZWN0KSA9PiByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29y
ZGluZyk7CisKKyAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7
CisgICAgfQorCisgICAgX2hhbmRsZVNwYWNlKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKFdJ
LmlzRXZlbnRUYXJnZXRBbkVkaXRhYmxlRmllbGQoZXZlbnQpKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGxldCBjYW52YXMgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFy
UGFuZWwuY2FudmFzOworICAgICAgICBpZiAoIWNhbnZhcykKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBpZiAoY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKKyAgICAgICAgICAgIGNhbnZh
cy5zdG9wUmVjb3JkaW5nKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGV0IHNpbmds
ZUZyYW1lID0gISFldmVudC5zaGlmdEtleTsKKyAgICAgICAgICAgIGNhbnZhcy5zdGFydFJlY29y
ZGluZyhzaW5nbGVGcmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOworICAgIH0KK307CisKK1dJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSA9ICJn
cmFwaGljcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9NYWluLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL01haW4uY3NzCmluZGV4IGNlMzFhZjQ2MzM3ODYxMzRiMWNjNzI3NmEzNGQ2YTQ0NzE4YTJh
ZTIuLjEwY2Q2NGE0NTU5MDk5NWNkYTQ5MDI5MjFlMWJmOTgxNTAzYWY5MTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCkBAIC0y
MDksMTIgKzIwOSwxMiBAQCBib2R5LmRvY2tlZDptYXRjaGVzKC5yaWdodCwgLmxlZnQpICNuYXZp
Z2F0aW9uLXNpZGViYXIuY29sbGFwc2VkID4gLnJlc2l6ZXIgewogICAgIG1hcmdpbi1ib3R0b206
IDE1cHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgewor
Lm5hdmlnYXRpb24taXRlbS1oZWxwIHsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBsaW5lLWhl
aWdodDogMjJweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVs
cCAubmF2aWdhdGlvbi1iYXIgeworLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24t
YmFyIHsKICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICBoZWlnaHQ6IDIwcHg7CiAgICAg
cGFkZGluZzogMCA0cHg7CkBAIC0yMjIsOSArMjIyLDkgQEAgYm9keS5kb2NrZWQ6bWF0Y2hlcygu
cmlnaHQsIC5sZWZ0KSAjbmF2aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5yZXNpemVyIHsK
ICAgICB2ZXJ0aWNhbC1hbGlnbjogLTNweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZp
Z2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CisubmF2aWdhdGlvbi1p
dGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CiAgICAgaGVpZ2h0OiAxMDAlOwot
ICAgIHBhZGRpbmc6IDAgNHB4OworICAgIHBhZGRpbmc6IDAgNHB4ICFpbXBvcnRhbnQ7CiAgICAg
Zm9udC1zaXplOiAxMXB4OwogICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICBib3JkZXI6IHNv
bGlkIDFweCB2YXIoLS1ib3JkZXItY29sb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZp
ZXcuY3NzCmluZGV4IDhkNjBmMjNmMGIyYmVjNzBkOGJlODNkMDIxN2E3MGFjNzRmZDIzNTguLjEx
ZjFkZDgyZTU1Mzc3MDE5MGIyZmY3ZWI4YjYwOGVlYzdlMjljMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3
LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNv
cmRpbmdDb250ZW50Vmlldy5jc3MKQEAgLTIzLDE4ICsyMywxOCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29y
ZGluZyB7CisuY29udGVudC12aWV3LnJlY29yZGluZyB7CiAgICAgZGlzcGxheTogZmxleDsKICAg
ICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgYmFja2dy
b3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFi
KS5yZWNvcmRpbmcgPiBoZWFkZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIg
ewogICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIp
LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyIHsKKy5jb250ZW50LXZpZXcu
cmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgewogICAgIGRpc3BsYXk6IGZs
ZXg7CiAgICAgZmxleC13cmFwOiB3cmFwOwogICAgIHBhZGRpbmc6IDRweCAwOwpAQCAtNDMsMzEg
KzQzLDMxIEBACiAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogfQogCi0uY29udGVudC12aWV3Om5v
dCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+ICogeworLmNv
bnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+ICogewog
ICAgIG1hcmdpbjogNHB4IDhweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3Jk
aW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAuc2xpZGVyLXZhbHVlIHsKKy5jb250
ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAuc2xpZGVy
LXZhbHVlIHsKICAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9zcGFjZTsKICAgICBmb250LWZh
bWlseTogMTFweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVh
ZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CisuY29udGVudC12
aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1y
YW5nZV0gewogICAgIGZsZXg6IDE7CiAgICAgd2lkdGg6IDEwMCU7CiB9CiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5w
dXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKKy5jb250ZW50
LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBl
PXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgewogICAgIGhlaWdodDogMnB4
OwogICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcik7CiAgICAgYm9yZGVy
LXJhZGl1czogMXB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBo
ZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNs
aWRlci10aHVtYiB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXIt
Y29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAg
ICBtYXJnaW4tdG9wOiAtNnB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRp
bmcgPiAucHJldmlldy1jb250YWluZXIgeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiAucHJl
dmlldy1jb250YWluZXIgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleDogMTsKICAgICBq
dXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKQEAgLTc3LDI3ICs3NywyNyBAQAogICAgIGhlaWdodDog
LXdlYmtpdC1maWxsLWF2YWlsYWJsZTsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVj
b3JkaW5nIDptYXRjaGVzKGltZywgY2FudmFzKSB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA6
bWF0Y2hlcyhpbWcsIGNhbnZhcykgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBtYXgt
d2lkdGg6IDEwMCU7CiAgICAgbWF4LWhlaWdodDogMTAwJTsKIH0KIAotLmNvbnRlbnQtdmlldzpu
b3QoLnRhYikucmVjb3JkaW5nIGNhbnZhcy5wYXRoIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5n
IGNhbnZhcy5wYXRoIHsKICAgICB6LWluZGV4OiAxMDsKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNv
bG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGlu
ZyB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgewogICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiB1bnNldDsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRp
bmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNv
cmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CiAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHVuc2V0OwogICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvci1z
ZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGlu
ZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0geworICAg
IC5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBp
bnB1dFt0eXBlPXJhbmdlXSB7CiAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVz
b3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCmluZGV4
IDNhOWE5YWVmZjI5YzVlZmNkNzc5YmI0ZDI5MDQwYWFkODlkYmYxZDQuLjJmOTRiYzc0MDlmNGQ1
NTQ2NjVjZGU4OWM5ZjBmOTljYWRlZjk3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNz
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTIzLDYgKzIzLDE0IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1j
b2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZyB7CisgICAgb3V0bGluZTogMC41cHggc29s
aWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5yZXNvdXJjZS1jb2xs
ZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZzpob3ZlciB7CisgICAgb3V0bGluZS1jb2xvcjog
dmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKQorfQorCiAucmVzb3VyY2UtY29sbGVjdGlvbi1pbWFn
ZS10eXBlLXNjb3BlLWJhci5kZWZhdWx0LWl0ZW0tc2VsZWN0ZWQgewogICAgIC0tc2NvcGUtYmFy
LXRleHQtY29sb3Itb3ZlcnJpZGU6IHZhcigtLXRleHQtY29sb3IpOwogICAgIC0tc2NvcGUtYmFy
LWJhY2tncm91bmQtY29sb3Itb3ZlcnJpZGU6IHRyYW5zcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9u
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRleCBjOTRlY2E3NzcyMTRlMzFk
YzVkODFlNjEwOTA2MDYzZjc3Yzc0ZmNjLi5mYzFjNmEyY2Q0YWE3ZGExOTUwYzBhM2QzZmYwNjM0
MzJmOTdkNmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50
Vmlldy5qcwpAQCAtMzUsNiArMzUsOCBAQCBXSS5SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmll
dyA9IGNsYXNzIFJlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgVwogCiAgICAg
ICAgIHN1cGVyKGNvbGxlY3Rpb24sIGNvbnRlbnRWaWV3Q29uc3RydWN0b3IpOwogCisgICAgICAg
IHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJyZXNvdXJjZS1jb2xsZWN0aW9uIik7CisKICAg
ICAgICAgaWYgKGNvbGxlY3Rpb24ucmVzb3VyY2VUeXBlID09PSBXSS5SZXNvdXJjZS5UeXBlLklt
YWdlKSB7CiAgICAgICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
bmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJLlVJU3Ry
aW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRyYW5zcGFy
ZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAxMywgMTMp
OwogICAgICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVu
dExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hh
bmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTRjMTE3ZmJjNzdjY2M4
MDZhMGI3OGZjZjkzYWNiZWY1M2M1OGRiNS4uMjdhZGIzOTc3MWUzOTY0M2NkODI5ZGM4YTZkMjRi
YzQyODFhNmE2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIwLTAxLTI4ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5z
dHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1
cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUt
Y3NzLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVj
eWNsZS13ZWItYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmlt
YXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RFZmZlY3RUYXJnZXQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5p
bWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2
ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmlt
YXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5p
bWF0aW9uL3RhcmdldENoYW5nZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKGNyZWF0ZUFuaW1hdGlvbik6CisgICAgICAgIChkZXN0cm95QW5pbWF0aW9ucyk6
CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3lu
YyBhd2FpdEFuaW1hdGlvbkNyZWF0ZWQpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRp
b25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgYXdhaXRBbmltYXRpb25EZXN0cm95ZWQpOgorICAg
ICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgY3Jl
YXRlQW5pbWF0aW9uKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xl
VXRpbGl0aWVzLmFzeW5jIGRlc3Ryb3lBbmltYXRpb25zKToKKworICAgICAgICAqIGluc3BlY3Rv
ci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzOgorICAgICAgICAo
ZGVzdHJveUNhbnZhc2VzKToKKyAgICAgICAgKGF3YWl0Q2FudmFzQWRkZWQpOgorICAgICAgICAo
SW5zcGVjdG9yVGVzdC5DcmVhdGVDb250ZXh0VXRpbGl0aWVzLmluaXRpYWxpemVUZXN0U3VpdGUp
OgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENsaWVudE5vZGVzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q29udGVudC0yZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jl
cXVlc3RDb250ZW50LXdlYmdsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q29udGVudC13ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3ROb2RlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0y
ZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFw
cmVuZGVyZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0
LXdlYmdsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13
ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdwdS5odG1sOgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVD
b3VudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGlu
Zy11dGlsaXRpZXMuanM6CisgICAgICAgICh3aW5kb3cuZ2V0Q2FudmFzKToKKworICAgICAgICAq
IGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0
ZXhGcmFnbWVudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3No
YWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qczoKKyAgICAgICAg
KGRlbGV0ZUNvbnRleHQpOgorICAgICAgICAod2hlblByb2dyYW1BZGRlZCk6CisgICAgICAgICh3
aW5kb3cuaW5pdGlhbGl6ZVRlc3RTdWl0ZSk6CisgICAgICAgICh3aW5kb3cuYWRkUGFyZW50Q2Fu
dmFzUmVtb3ZlZFRlc3RDYXNlKToKKworICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL3Rl
c3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0OgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgU2tpcCBpbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwgdW50aWwgaHR0cHM6Ly93ZWJraXQub3Jn
L2IvMjA2ODk5IGlzIGZpeGVkLgorCiAyMDIwLTAxLTI4ICBKYWNvYiBVcGhvZmYgIDxqYWNvYl91
cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2NvdmVyZWQgc29tZSBleHBlY3RlZCB0aW1l
b3V0cyBvbiB0aGUgdGVzdCBoaXN0b3J5LCBjaGFuZ2luZyBleHBlY3RhdGlvbnMgdG8gZXhwZWN0
IHRoZSB0aW1lb3V0cyB0byBwYXNzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmExNjM1NmIxZjNi
YzQ0NDkyZDI0ZDA4OTQ4ZWNjOTM5NDYyMDQ2Mi4uYzU4ZmI1ZmRlM2M0NTJjODEwYmM2NjFhZmUw
MDM0NWI1NWRjMDdkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjMwLDYgKzMyMzAsOCBAQCB3
ZWJraXQub3JnL2IvMjA2MTY4IFsgRGVidWcgXSBmYXN0L2RvbS9pbnNlcnQtc3Bhbi1pbnRvLWxv
bmctdGV4dC1idWctMjgyNDUuaHRtbAogCiB3ZWJraXQub3JnL2IvMjA2Njc2IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay14aHItc3lu
Yy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAord2Via2l0Lm9yZy9iLzIwNjg5OSBpbnNwZWN0b3Iv
YW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwgWyBTa2lwIF0KKwogIyB3cHQg
Y3NzLWJhY2tncm91bmRzIGZhaWx1cmVzCiB3ZWJraXQub3JnL2IvMjA2NzUzIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLWF0dGFj
aG1lbnQtbG9jYWwvYXR0YWNobWVudC1sb2NhbC1jbGlwcGluZy1jb2xvci00Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDY3NTMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWJhY2tncm91bmRzL2JhY2tncm91bmQtYXR0YWNobWVudC1sb2Nh
bC9hdHRhY2htZW50LWxvY2FsLWNsaXBwaW5nLWNvbG9yLTYuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RD
aGFuZ2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZm
ZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJmMzNjYmQ3ZjkzM2QzYjQ5YmJm
ZjVkMzc4ZGU1N2I4MjMxMmJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBA
QAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCBldmVudC4KKworCis9PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQuTmV3RWZmZWN0CitQQVNTOiBBbmltYXRp
b24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LgorQ2hhbmdpbmcgZWZmZWN0Li4uCisKK1BBU1M6IEFu
aW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNo
b3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uZWZm
ZWN0Q2hhbmdlZC5OdWxsRWZmZWN0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZm
ZWN0LgorQ2hhbmdpbmcgZWZmZWN0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgbm90IGhh
dmUgYW4gZWZmZWN0LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2Vk
LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENo
YW5nZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA0NWQ4NWIxZTFmMjE2ODgxZmZiZDZmNjFiMzc0N2M3MGRiZjE3
NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2Vm
ZmVjdENoYW5nZWQuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2Fk
KCkgeworICAgIHdpbmRvdy5hbmltYXRpb24gPSBkb2N1bWVudC5ib2R5LmFuaW1hdGUoW3tvcGFj
aXR5OiAwfV0pOworCisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5l
ZmZlY3RDaGFuZ2VkIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5OZXdFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlv
bjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24g
aWRlbnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFu
aW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVj
dGlvbik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0
aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAg
ICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFh
bmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRp
b24uVHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlv
bi4iKTsKKworICAgICAgICAgICAgbGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFt
ZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1l
cywgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJ
LkFuaW1hdGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG5ldyBLZXlm
cmFtZUVmZmVjdCh3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQsIFt7b3BhY2l0eTogMX1d
LCB7fSlgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3S2V5ZnJhbWVz
ID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
Tm90RW1wdHkobmV3S2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4i
KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwobmV3
S2V5ZnJhbWVzLCBvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNo
YW5nZWQuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5OdWxsRWZmZWN0IiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUg
Z2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAg
ICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2Vy
LmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
YW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0
aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAg
ICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3Np
bmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlw
ZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBi
ZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRLZXlmcmFtZXMgPSBh
bmltYXRpb24ua2V5ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RF
bXB0eShvbGRLZXlmcmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIpOwor
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgZWZmZWN0Li4uXG4iKTsK
KyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRp
b24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCksCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5l
ZmZlY3QgPSBudWxsYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IG5ld0tl
eWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVtcHR5KG5ld0tleWZyYW1lcywgIkFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYW4g
ZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxsb3dF
cXVhbChuZXdLZXlmcmFtZXMsIG9sZEtleWZyYW1lcywgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxk
IGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRl
c3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
ImxvYWQoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCBl
dmVudC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwZGQyYmYyOWMyMDRmMDVmNTIzYzZhYzhhYTU3YjM1MTM1
MmNlZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM4IEBACitU
ZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5p
bWF0aW9uRGVzdHJveWVkIGV2ZW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1h
dGlvbi5MaWZlY3ljbGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5Y2xl
LkNTU0FuaW1hdGlvbgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4K
K1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJl
IENTUyBBbmltYXRpb24uCitzdGFydERlbGF5OiAxMDAKK2l0ZXJhdGlvbkNvdW50OiAyCitpdGVy
YXRpb25EdXJhdGlvbjogNDAwCit0aW1pbmdGdW5jdGlvbjogImxpbmVhciIKK3BsYXliYWNrRGly
ZWN0aW9uOiAiYWx0ZXJuYXRlIgorZmlsbE1vZGU6ICJib3RoIgora2V5ZnJhbWVzOgorWworICB7
CisgICAgIm9mZnNldCI6IDAsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIs
IDAuMywgMC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMjU1LCAwLCAwKTtcbm9wYWNp
dHk6IDA7IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDAuNSwKKyAgICAiZWFzaW5nIjogImN1
YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJn
YigwLCAxMjgsIDApO1xub3BhY2l0eTogMC41OyIKKyAgfSwKKyAgeworICAgICJvZmZzZXQiOiAx
LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAg
ICJzdHlsZSI6ICJjb2xvcjogcmdiKDAsIDAsIDI1NSk7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQor
CitEZXN0cm95aW5nIGFuaW1hdGlvbnMuLi4KKworUEFTUzogQW5pbWF0aW9uIGRlc3Ryb3llZC4K
K1BBU1M6IFJlbW92ZWQgYW5pbWF0aW9uIGhhcyBleHBlY3RlZCBJRC4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1h
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZGEwOTUxYmY1ZTQ1MzYyMzkyMzA1MTM2YzgyYjU0NDZj
OGUwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
QGtleWZyYW1lcyBmYWRlLWluIHsKKyAgICBmcm9tIHsKKyAgICAgICAgY29sb3I6IHJlZDsKKyAg
ICAgICAgb3BhY2l0eTogMDsKKyAgICB9CisgICAgNTAlIHsKKyAgICAgICAgY29sb3I6IGdyZWVu
OworICAgICAgICBvcGFjaXR5OiAwLjU7CisgICAgfQorICAgIHRvIHsKKyAgICAgICAgY29sb3I6
IGJsdWU7CisgICAgICAgIG9wYWNpdHk6IDE7CisgICAgfQorfQorZGl2I3RhcmdldC5hY3RpdmUg
eworICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlLWluOworICAgIGFuaW1hdGlvbi1kdXJhdGlvbjog
NDAwbXM7CisgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwg
MC4yLCAwLjMsIDAuNCk7CisgICAgYW5pbWF0aW9uLWRlbGF5OiAxMDBtczsKKyAgICBhbmltYXRp
b24taXRlcmF0aW9uLWNvdW50OiAyOworICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0
ZTsKKyAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZp
ZWQgd2hlbmV2ZXIgQ1NTIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUg
c2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmlt
YXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5B
bmltYXRpb24uVHlwZS5DU1NBbmltYXRpb24pLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFz
c0xpc3QuYWRkKCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3
YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlv
bkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb24uYW5p
bWF0aW9uSWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5
Y2xlVXRpbGl0aWVzLmRlc3Ryb3lBbmltYXRpb25zKCksCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKyAgICAgICAg
fSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMg
Zm9yIHRoZSBBbmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlv
bkRlc3Ryb3llZCBldmVudHMuPC9wPgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmFiMmJiNWE5MWQ0NDk4ZTkwYzU5NWJjOTU2NzQ5MjQ4MDY5ZTU2YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNz
cy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitUZXN0cyBmb3IgdGhl
IEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJv
eWVkIGV2ZW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5MaWZlY3lj
bGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRp
b24KK1BBU1M6IFRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmlt
YXRpb24gY3JlYXRlZC4KK1BBU1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgVHJhbnNp
dGlvbi4KK3N0YXJ0RGVsYXk6IDEwMAoraXRlcmF0aW9uQ291bnQ6IDEKK2l0ZXJhdGlvbkR1cmF0
aW9uOiA0MDAKK3RpbWluZ0Z1bmN0aW9uOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAu
NCkiCitwbGF5YmFja0RpcmVjdGlvbjogIm5vcm1hbCIKK2ZpbGxNb2RlOiAiYmFja3dhcmRzIgor
a2V5ZnJhbWVzOgorWworICB7CisgICAgIm9mZnNldCI6IDAsCisgICAgImVhc2luZyI6ICJjdWJp
Yy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDA7
IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDEsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXpp
ZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDE7IgorICB9
CitdCisKK0Rlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLgorCitQQVNTOiBBbmltYXRpb24gZGVzdHJv
eWVkLgorUEFTUzogUmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNp
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3Nz
LXRyYW5zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDQ1YTM4YTIwNGUwYzZjNGQzYTcxYmYwZWQ5
ZGM5NjBlMDQwODliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbApAQCAtMCwwICsxLDU0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CitkaXYjdGFyZ2V0IHsKKyAgICBjb2xvcjogcmVkOworICAgIG9wYWNpdHk6IDA7CisK
K30KK2RpdiN0YXJnZXQuYWN0aXZlIHsKKyAgICBjb2xvcjogYmx1ZTsKKyAgICBvcGFjaXR5OiAx
OworCisgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsKKyAgICB0cmFuc2l0aW9uLWR1
cmF0aW9uOiA0MDBtczsKKyAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6
aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCk7CisgICAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7Cit9
Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNsZSIpOwor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLkxpZmVj
eWNsZS5DU1NUcmFuc2l0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdl
YiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIgQ1NTIHRyYW5zaXRpb25zIGFyZSBjcmVh
dGVkL2Rlc3Ryb3llZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxl
Y3Rpb24uc2l6ZSwgMCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7CisK
KyAgICAgICAgICAgIGxldCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2Fp
dEFuaW1hdGlvbkNyZWF0ZWQoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbiksCisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCksCisgICAgICAgICAg
ICBdKTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9u
RGVzdHJveWVkKGFuaW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMoKSwK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIilgKSwKKyAg
ICAgICAgICAgIF0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENh
c2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVk
IGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+CisgICAgPGRpdiBp
ZD0idGFyZ2V0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1h
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFhNmI4ZGE1OWZmZDZmN2JmMGQxZjA1Yjg1
NWU1OTdhMTA4YmFlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
bmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzkgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1h
dGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0
ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5M
aWZlY3ljbGUuV2ViQW5pbWF0aW9uCitQQVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmlt
YXRpb25zLgorQ3JlYXRpbmcgYW5pbWF0aW9uLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVk
LgorICAwOiBhbmltYXRlIC0gW25hdGl2ZSBjb2RlXQorICAxOiBjcmVhdGVBbmltYXRpb24gLSBp
bnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzOjc6MzUK
KyAgMjogR2xvYmFsIENvZGUgLSBbcHJvZ3JhbSBjb2RlXQorICAzOiBldmFsdWF0ZVdpdGhTY29w
ZUV4dGVuc2lvbiAtIFtuYXRpdmUgY29kZV0KKyAgNDogKGFub255bW91cyBmdW5jdGlvbikgLSBb
bmF0aXZlIGNvZGVdCisgIDU6IF93cmFwQ2FsbCAtIFtuYXRpdmUgY29kZV0KK1BBU1M6IEFuaW1h
dGlvbiB0eXBlIHNob3VsZCBiZSBXZWIgQW5pbWF0aW9uLgorc3RhcnREZWxheTogMTAwCitlbmRE
ZWxheTogMjAwCitpdGVyYXRpb25Db3VudDogMTAKK2l0ZXJhdGlvblN0YXJ0OiA1CitpdGVyYXRp
b25EdXJhdGlvbjogMzAwCit0aW1pbmdGdW5jdGlvbjogImVhc2UtaW4tb3V0IgorcGxheWJhY2tE
aXJlY3Rpb246ICJhbHRlcm5hdGUiCitmaWxsTW9kZTogImJvdGgiCitrZXlmcmFtZXM6CitbCisg
IHsKKyAgICAib2Zmc2V0IjogMC4yNSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEs
IDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJlZDtcbm9wYWNpdHk6IDA7
IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDAuNzUsCisgICAgImVhc2luZyI6ICJjdWJpYy1i
ZXppZXIoMC42LCAwLjcsIDAuOCwgMC45KSIsCisgICAgInN0eWxlIjogImNvbG9yOiBibHVlO1xu
b3BhY2l0eTogMTsiCisgIH0KK10KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjAyNzBhNGIyN2QxZGMwYmFhNjc2NzRhYjcwN2MwOThiY2E4YmFmMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmlt
YXRpb24uaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5
Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRp
b24uTGlmZWN5Y2xlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJBbmltYXRpb24uTGlmZWN5Y2xlLldlYkFuaW1hdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiQ2hlY2sgdGhhdCBXZWIgSW5zcGVjdG9yIGlzIG5vdGlmaWVkIHdoZW5ldmVyIHdlYiBhbmlt
YXRpb25zIGFyZSBjcmVhdGVkL2Rlc3Ryb3llZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgewor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2Vy
LmFuaW1hdGlvbkNvbGxlY3Rpb24uc2l6ZSwgMCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFu
aW1hdGlvbnMuIik7CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhd2FpdCBJbnNwZWN0
b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24oV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCB7CisgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICJi
b2R5IiwKKyAgICAgICAgICAgICAgICBrZXlmcmFtZXM6IFsKKyAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjI1LAorICAgICAgICAgICAgICAg
ICAgICAgICAgZWFzaW5nOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJyZWQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgb3BhY2l0eTogMCwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjc1LAorICAgICAgICAgICAg
ICAgICAgICAgICAgZWFzaW5nOiAiY3ViaWMtYmV6aWVyKDAuNiwgMC43LCAwLjgsIDAuOSkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJibHVlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG9wYWNpdHk6IDEsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICAgICAgICAgIGRl
bGF5OiAxMDAsCisgICAgICAgICAgICAgICAgICAgIGVuZERlbGF5OiAyMDAsCisgICAgICAgICAg
ICAgICAgICAgIGR1cmF0aW9uOiAzMDAsCisgICAgICAgICAgICAgICAgICAgIGVhc2luZzogImVh
c2UtaW4tb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiAiYWx0ZXJuYXRlIiwK
KyAgICAgICAgICAgICAgICAgICAgZmlsbDogImJvdGgiLAorICAgICAgICAgICAgICAgICAgICBp
dGVyYXRpb25zOiAxMCwKKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uU3RhcnQ6IDUsCisg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgIH0pOwor
CisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1h
dGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2
ZW50cy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iYmQ0OGRhODE1MjE5OTczZDYxMjYwODM2MDg2ZWUyMTFlMmExYWYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlv
bi5yZXNvbHZlQW5pbWF0aW9uIGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBB
bmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlv
bi5yZXNvbHZlQW5pbWF0aW9uLlZhbGlkSWRlbnRpZmllcgorUEFTUzogUGF5bG9hZCBzaG91bGQg
aGF2ZSB0eXBlICJvYmplY3QiLgorUEFTUzogUGF5bG9hZCBzaG91bGQgaGF2ZSBjbGFzc05hbWUg
IkFuaW1hdGlvbiIuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24ucmVzb2x2ZUFu
aW1hdGlvbi5JbnZhbGlkSWRlbnRpZmllcgorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0
aW9uLgorRXJyb3I6IE1pc3NpbmcgYW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhMjNlMzk3NGMzNGMxOTdjZGQ1OTg2MTBmNzM3NzEwNjdlMzAx
MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jl
c29sdmVBbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBs
b2FkKCkgeworICAgIHdpbmRvdy5hbmltYXRpb24gPSBkb2N1bWVudC5ib2R5LmFuaW1hdGUoW10p
OworCisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3Vp
dGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5yZXNvbHZlQW5p
bWF0aW9uIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmlt
YXRpb24ucmVzb2x2ZUFuaW1hdGlvbi5WYWxpZElkZW50aWZpZXIiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRp
b24gaWRlbnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0
IGFuaW1hdGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29s
bGVjdGlvbik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxl
bmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAg
ICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYg
KCFhbmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24u
YDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5Bbmlt
YXRpb24uVHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1h
dGlvbi4iKTsKKworICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CisgICAg
ICAgICAgICBsZXQge29iamVjdH0gPSBhd2FpdCBBbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0
aW9uKGFuaW1hdGlvbi5hbmltYXRpb25JZCwgb2JqZWN0R3JvdXApOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChvYmplY3QudHlwZSwgIm9iamVjdCIsIGBQYXlsb2FkIHNo
b3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKG9iamVjdC5jbGFzc05hbWUsICJBbmltYXRpb24iLCBgUGF5bG9hZCBzaG91bGQg
aGF2ZSBjbGFzc05hbWUgIkFuaW1hdGlvbiIuYCk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAg
ICAvLyAtLS0tLS0KKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFu
aW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlmaWVyIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJJbnZhbGlkIGFuaW1hdGlvbiBpZGVudGlmaWVycyBzaG91bGQgY2F1c2UgYW4g
ZXJyb3IuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGNvbnN0IGlkZW50
aWZpZXIgPSAiRE9FU19OT1RfRVhJU1QiOworICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAg
PSAidGVzdCI7CisKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0
aW9uKGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBBbmltYXRpb25BZ2VudC5y
ZXNvbHZlQW5pbWF0aW9uKGlkZW50aWZpZXIsIG9iamVjdEdyb3VwKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNo
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8
cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGNvbW1hbmQuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1h
dGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDljMjEyZmYzNjE1OGQ4YmI0Y2NlMTZhOTVkYTA1MzUyZDBiMDFkZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNs
ZS11dGlsaXRpZXMuanMKQEAgLTAsMCArMSwxMzAgQEAKK3dpbmRvdy5hbmltYXRpb25zID0gW107
CisKK2Z1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvbihzZWxlY3Rvciwga2V5ZnJhbWVzID0gW10sIG9w
dGlvbnMgPSB7fSkgeworICAgIGxldCBhbmltYXRpb24gPSBudWxsOworCisgICAgbGV0IHRhcmdl
dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpOworICAgIGlmICh0YXJnZXQpCisg
ICAgICAgIGFuaW1hdGlvbiA9IHRhcmdldC5hbmltYXRlKGtleWZyYW1lcywgb3B0aW9ucyk7Cisg
ICAgZWxzZQorICAgICAgICBhbmltYXRpb24gPSBuZXcgQW5pbWF0aW9uKG5ldyBLZXlmcmFtZUVm
ZmVjdChudWxsLCBrZXlmcmFtZXMsIG9wdGlvbnMpKTsKKworICAgIHdpbmRvdy5hbmltYXRpb25z
LnB1c2goYW5pbWF0aW9uKTsKK30KKworZnVuY3Rpb24gZGVzdHJveUFuaW1hdGlvbnMoKSB7Cisg
ICAgZm9yIChsZXQgYW5pbWF0aW9uIG9mIHdpbmRvdy5hbmltYXRpb25zKSB7CisgICAgICAgIGlm
ICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1hdGlvbi5j
YW5jZWwoKTsKKworICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdCkgeworICAgICAgICAgICAg
aWYgKGFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgYW5pbWF0aW9u
LmVmZmVjdC50YXJnZXQucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVj
dC50YXJnZXQgPSBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhbmltYXRpb24u
ZWZmZWN0ID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHdpbmRvdy5hbmltYXRpb25z
ID0gW107CisKKyAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGFuaW1hdGlvbiBhbmQg
aXQncyB0YXJnZXQgYXJlIGJvdGggZGVzdHJveWVkLCBhcyBvdGhlcndpc2UgdGhlCisgICAgLy8g
ZnJvbnRlbmQgd2lsbCBub3QgcmVjZWl2ZSBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2
ZW50cy4KKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgR0NDb250cm9sbGVyLmNvbGxl
Y3QoKTsKKyAgICB9KTsKK30KKworVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7
CisgICAgZnVuY3Rpb24ganNvbktleWZyYW1lRmlsdGVyKGtleSwgdmFsdWUpIHsKKyAgICAgICAg
aWYgKGtleSA9PT0gImVhc2luZyIgJiYgdmFsdWUgaW5zdGFuY2VvZiBXSS5DdWJpY0JlemllcikK
KyAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpOworICAgICAgICByZXR1cm4gdmFs
dWU7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRp
ZXMgPSB7fTsKKworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVz
LmF3YWl0QW5pbWF0aW9uQ3JlYXRlZCA9IGFzeW5jIGZ1bmN0aW9uKGFuaW1hdGlvblR5cGUpIHsK
KyAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVudCA9IGF3YWl0IFdJ
LmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxl
Y3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIkFu
aW1hdGlvbiBjcmVhdGVkLiIpOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25D
b2xsZWN0aW9uSXRlbUFkZGVkRXZlbnQuZGF0YS5pdGVtOworCisgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgYW5pbWF0aW9uLmJhY2t0cmFjZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
bGV0IGNhbGxGcmFtZSA9IGFuaW1hdGlvbi5iYWNrdHJhY2VbaV07CisgICAgICAgICAgICBsZXQg
dHJhY2VUZXh0ID0gYCAgJHtpfTogYDsKKyAgICAgICAgICAgIHRyYWNlVGV4dCArPSBjYWxsRnJh
bWUuZnVuY3Rpb25OYW1lIHx8ICIoYW5vbnltb3VzIGZ1bmN0aW9uKSI7CisKKyAgICAgICAgICAg
IGlmIChjYWxsRnJhbWUubmF0aXZlQ29kZSkKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0g
IiAtIFtuYXRpdmUgY29kZV0iOworICAgICAgICAgICAgZWxzZSBpZiAoY2FsbEZyYW1lLnByb2dy
YW1Db2RlKQorICAgICAgICAgICAgICAgIHRyYWNlVGV4dCArPSAiIC0gW3Byb2dyYW0gY29kZV0i
OworICAgICAgICAgICAgZWxzZSBpZiAoY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbikgewor
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRp
b247CisgICAgICAgICAgICAgICAgdHJhY2VUZXh0ICs9ICIgLSAiICsgc2FuaXRpemVVUkwobG9j
YXRpb24uc291cmNlQ29kZS51cmwpICsgYDoke2xvY2F0aW9uLmxpbmVOdW1iZXJ9OiR7bG9jYXRp
b24uY29sdW1uTnVtYmVyfWA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKHRyYWNlVGV4dCk7CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKGFuaW1hdGlvbi5hbmltYXRpb25UeXBlLCBhbmltYXRpb25UeXBlLCBgQW5p
bWF0aW9uIHR5cGUgc2hvdWxkIGJlICR7V0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0
aW9uVHlwZShhbmltYXRpb25UeXBlKX0uYCk7CisKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5zdGFy
dERlbGF5KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coInN0YXJ0RGVsYXk6ICIgKyBK
U09OLnN0cmluZ2lmeShhbmltYXRpb24uc3RhcnREZWxheSkpOworICAgICAgICBpZiAoYW5pbWF0
aW9uLmVuZERlbGF5KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coImVuZERlbGF5OiAi
ICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLmVuZERlbGF5KSk7CisgICAgICAgIGlmIChhbmlt
YXRpb24uaXRlcmF0aW9uQ291bnQpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiaXRl
cmF0aW9uQ291bnQ6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0aW9uQ291bnQp
KTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25TdGFydDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1h
dGlvbi5pdGVyYXRpb25TdGFydCkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvbkR1
cmF0aW9uKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvbkR1cmF0aW9u
OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uKSk7CisgICAg
ICAgIGlmIChhbmltYXRpb24udGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygidGltaW5nRnVuY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShTdHJpbmcoYW5pbWF0
aW9uLnRpbWluZ0Z1bmN0aW9uKSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLnBsYXliYWNrRGly
ZWN0aW9uKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coInBsYXliYWNrRGlyZWN0aW9u
OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uKSk7CisgICAg
ICAgIGlmIChhbmltYXRpb24uZmlsbE1vZGUpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiZmlsbE1vZGU6ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZmlsbE1vZGUpKTsKKyAg
ICAgICAgaWYgKGFuaW1hdGlvbi5rZXlmcmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygia2V5ZnJhbWVzOiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5q
c29uKGFuaW1hdGlvbi5rZXlmcmFtZXMsIGpzb25LZXlmcmFtZUZpbHRlcik7CisgICAgICAgIH0K
KworICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKKworICAgICAgICByZXR1cm4gYW5p
bWF0aW9uCisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRp
bGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVzdHJveWVkID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9u
SWRlbnRpZmllcikgeworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1SZW1vdmVk
RXZlbnQgPSBhd2FpdCBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uYXdh
aXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQorCisgICAgICAgIEluc3Bl
Y3RvclRlc3QucGFzcygiQW5pbWF0aW9uIGRlc3Ryb3llZC4iKTsKKworICAgICAgICBsZXQgYW5p
bWF0aW9uID0gYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1SZW1vdmVkRXZlbnQuZGF0YS5pdGVtOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGFuaW1hdGlvbi5hbmltYXRpb25JZCwg
YW5pbWF0aW9uSWRlbnRpZmllciwgIlJlbW92ZWQgYW5pbWF0aW9uIGhhcyBleHBlY3RlZCBJRC4i
KTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRp
ZXMuY3JlYXRlQW5pbWF0aW9uID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uVHlwZSwge3NlbGVj
dG9yLCBrZXlmcmFtZXMsIG9wdGlvbnN9ID0ge30pIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNyZWF0aW5nIGFuaW1hdGlvbi4uLlxuIik7CisKKyAgICAgICAgbGV0IHN0cmluZ2lmaWVk
U2VsZWN0b3IgPSBKU09OLnN0cmluZ2lmeShzZWxlY3RvciB8fCBudWxsKTsKKyAgICAgICAgbGV0
IHN0cmluZ2lmaWVkS2V5ZnJhbWVzID0gSlNPTi5zdHJpbmdpZnkoa2V5ZnJhbWVzIHx8IFtdKTsK
KyAgICAgICAgbGV0IHN0cmluZ2lmaWVkT3B0aW9ucyA9IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMg
fHwge30pOworCisgICAgICAgIGxldCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3
YWl0QW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb25UeXBlKSwKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUFuaW1hdGlvbigke3N0cmluZ2lmaWVkU2VsZWN0
b3J9LCAke3N0cmluZ2lmaWVkS2V5ZnJhbWVzfSwgJHtzdHJpbmdpZmllZE9wdGlvbnN9KWApCisg
ICAgICAgIF0pOworCisgICAgICAgIHJldHVybiBhbmltYXRpb247CisgICAgfTsKKworICAgIElu
c3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmRlc3Ryb3lBbmltYXRpb25z
ID0gYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZXN0cm95
aW5nIGFuaW1hdGlvbnMuLi5cbiIpOworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGBkZXN0cm95QW5pbWF0aW9ucygpYCk7CisgICAgfTsKK30pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg4ZGUyMmQzNDhjZWE5YWM5YWZmM2ZhZDFmMTQyNTEwNzZj
ZDdkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24v
dGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgZm9yIHRo
ZSBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZCBldmVudC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0
aW9uLnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUg
YSB0YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBo
YXZlIGEgdGFyZ2V0LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2Vk
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTnVsbFRh
cmdldAorUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LgorQ2hhbmdpbmcgdGFy
Z2V0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYSB0YXJnZXQuCitQQVNT
OiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmU3MDVmNmM4YTMxNGViZmUyYWQ2NDkzYWI3M2UzMmQxMDJlYTY4YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sCkBA
IC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFu
aW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnRhcmdldENoYW5nZWQiKTsKKworICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkLk5ld1Rh
cmdldCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVj
dCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0
aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUg
b25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlv
bnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRo
cm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFu
aW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlv
biBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgW29sZFRh
cmdldF0gPSBhd2FpdCBwcm9taXNpZnkoKGNhbGxiYWNrKSA9PiB7IGFuaW1hdGlvbi5yZXF1ZXN0
RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKTsgfSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQob2xkVGFyZ2V0IGluc3RhbmNlb2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91
bGQgaGF2ZSBhIHRhcmdldC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNo
YW5naW5nIHRhcmdldC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LlRh
cmdldENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoYHdpbmRvdy5hbmltYXRpb24uZWZmZWN0LnRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IFtuZXdUYXJn
ZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVm
ZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KG5ld1RhcmdldCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxk
IGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90
RXF1YWwobmV3VGFyZ2V0LCBvbGRUYXJnZXQsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZl
IGNoYW5nZWQuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0IiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0
aGUgZ2l2ZW4gYW5pbWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsK
KyAgICAgICAgICAgIGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5h
Z2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5p
bWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsK
KyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1p
c3NpbmcgYW5pbWF0aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9u
VHlwZSA9PT0gV0kuQW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3Vs
ZCBiZSBhIHdlYiBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBbb2xkVGFyZ2V0XSA9
IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2spID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RU
YXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChvbGRUYXJnZXQgaW5zdGFuY2VvZiBXSS5ET01Ob2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZl
IGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcg
dGFyZ2V0Li4uXG4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAg
ICAgICAgICBhbmltYXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hh
bmdlZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2lu
ZG93LmFuaW1hdGlvbi5lZmZlY3QudGFyZ2V0ID0gbnVsbGApLAorICAgICAgICAgICAgXSk7CisK
KyAgICAgICAgICAgIGxldCBbbmV3VGFyZ2V0XSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2sp
ID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0TnVsbChuZXdUYXJnZXQsICJBbmltYXRpb24gc2hv
dWxkIG5vdCBoYXZlIGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdE5vdEVxdWFsKG5ld1RhcmdldCwgb2xkVGFyZ2V0LCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91
bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2Vk
IGV2ZW50LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1sCmluZGV4IGQ0ZTExMWZkOWQ4NTM3
MTVlNDQ2MzMzNmI0YmQwNzgyNzhjYWY2MWUuLjJkNjI3NGI3ZjU1NDdkZWI4MjgzM2I5ZmFhNWMy
M2JmMDBjZmIwNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29u
dGV4dC1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9j
b250ZXh0LWF0dHJpYnV0ZXMuaHRtbApAQCAtMjAsOSArMjAsOSBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhh
dCBjcmVhdGVkIGNhbnZhc2VzIGhhdmUgdGhlIGNvcnJlY3QgdHlwZSBhbmQgYXR0cmlidXRlcyBz
ZW50IHRvIHRoZSBmcm9udGVuZC4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCkKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCkKICAgICAgICAgICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgICAgICAg
ICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiQWRkZWQgY2FudmFzLiIpOwogCiAgICAgICAgICAgICAgICAgICAgIGxl
dCBjb250ZXh0RGlzcGxheU5hbWUgPSBXSS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlw
ZShjb250ZXh0VHlwZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbAppbmRleCBiYzE4MWY2MmYyZDRmNDNlYjRhMWFi
ZjFkOWY4MzZmY2UzZDJiYjVmLi5iMTQwZjExOGQwODg2Y2I3NTgwMmZhMTU0MGNhNWY4NTc2YWM2
YTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250
ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRl
LWNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTM0LDE0ICszNCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGF0dGFjaGVkIEdQVUNhbnZhc0Nv
bnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURl
dmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQg
PSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRk
RXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQp
ID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQu
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAg
ICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAg
ICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQXR0YWNoZWRDYW52YXMoImdwdSIp
YCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAg
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxk
IG5vdCBiZSBjcmVhdGVkIGZvciBhdHRhY2hlZCBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29u
bmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTUyLDE0ICs1MiwxNCBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGRldGFj
aGVkIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQg
b2YgdGhlIFdlYkdQVURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAg
ICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNh
bnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChldmVudC50YXJnZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
UFUpOworICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXND
b2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50
LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7
CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV0YWNo
ZWRDYW52YXMoImdwdSIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVy
KTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3Rv
ciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBkZXRhY2hlZCBHUFVDYW52YXNDb250
ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTcw
LDE0ICs3MCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVu
c3VyZSB0aGF0IENTUyBHUFVDYW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFz
LCBpbnN0ZWFkIG9mIHRoZSBXZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsK
ICAgICAgICAgICAgIGxldCBjcmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVu
ZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNBZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuV2ViR1BVKTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChldmVudC5kYXRhLml0ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5XZWJHUFUpOwogICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNy
ZWF0ZUNTU0NhbnZhcygiZ3B1IiwgImNzcy1jYW52YXMiKWApCiAKLSAgICAgICAgICAgIFdJLmNh
bnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNh
bnZhc0FkZGVkLCBsaXN0ZW5lcik7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgbGlzdGVuZXIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNl
KGNyZWF0ZWQsICJJbnNwZWN0b3IgY2FudmFzIHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgQ1NT
IEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAg
ICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbApp
bmRleCBlOGZjYmZlMDA3M2MxOWIzODVjNDZiOTdkNDE1ZmY4OTdiYWYxZTIxLi45MzdjMWYzNGJi
YTk2YjU3MDExYTMzMTllOGE1NzgyYzE4NDMyY2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLmV4dGVuc2lvbnMuZW5hYmxlIiwKICAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGVuYWJsaW5nIGFuIGV4dGVuc2lvbiBub3RpZmllcyB0
aGUgZnJvbnRlbmQuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAg
ICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52
YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdM
KTsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52
YXNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgV2ViR0wgY2Fu
dmFzLiIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL21lbW9yeS5odG1sCmluZGV4IDJhNDllMDNhMTg4OGVlODU1ZWJiYjNhZjE4ODQzYmNlM2Uy
YmRiMWMuLjRiZmQ3YTZjZWFiNTNmYzVkOWI4ZTcxM2I4NTNkMjc1ZTAxNzNlNzEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbApAQCAtMjgsNyArMjgsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgLy8gcGVyZm9ybWVkIG9uIHRoYXQgY2FudmFzIHRo
YXQgcmVxdWlyZXMgdGhlIGltYWdlIGJ1ZmZlci4gIEEgYmxhbmsgY2FudmFzIHRoYXQgd2FzCiAg
ICAgICAgICAgICAvLyBqdXN0IGNyZWF0ZWQgd2lsbCBub3QgaGF2ZSBhIGJ1ZmZlciwgc28gaXRz
IG1lbW9yeSBjb3N0IHdpbGwgYmUgMC9OYU4uCiAKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250
ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAgICAg
IGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgp
IHsKICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgMkQgY2FudmFzLiIpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgbmFtZTogIkNhbnZhcy5tZW1vcnkuY2FudmFzTWVtb3J5Q2hhbmdlZCIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBtZW1vcnkgY29zdCBpcyB1cGRhdGVkIHdoZW4gdGhl
IGJhY2tlbmQgdmFsdWUgY2hhbmdlcy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5m
aWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4
dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAg
ICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgi
TWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKaW5kZXggNGQzY2ZlOWI4ZTZlOTc0
MGQ0ZWNhNjc3OTRhNDVhNGY5ZWVjNjhkMS4uYmUwOGEyMDQxMzAyYzM3NzYxNGNjMzNlMTM5NGEw
OTAxNzUyZTJiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNv
cmRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5o
dG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJD
YW52YXMuQWN0aW9uUGFyYW1ldGVyTmFOIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IE5hTiBpcyBjb252ZXJ0ZWQgaW50byB0aGUgcHJvcGVyIHZhbHVlIGZvciBzZXJpYWxpemF0
aW9uLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBj
YW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQg
YmUgYXQgbGVhc3Qgb25lIGNhbnZhcyBjb250ZXh0LiIpOwogCiAgICAgICAgICAgICBjYW52YXMu
YXdhaXRFdmVudChXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTU4LDcgKzU4
LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5NdWx0aXBsZVJl
Y29yZGluZyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBtdWx0aXBsZSByZWNv
cmRpbmdzIGFyZSBhYmxlIHRvIGJlIHN0YXJ0ZWQvc3RvcHBlZCBhdCB0aGUgc2FtZSB0aW1lLiIs
CiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFz
ZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOworICAgICAgICAgICAgbGV0IGNhbnZhc2Vz
ID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAyLCAiVGhlcmUg
c2hvdWxkIGJlIHR3byBjYW52YXMgY29udGV4dHMuIik7CiAKICAgICAgICAgICAgIGNhbnZhc2Vz
WzFdLmF3YWl0RXZlbnQoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQpCkBAIC0xMTIs
NyArMTEyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5Ob0Fj
dGlvbnMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYSBjYW52YXMgaXMgc3Rp
bGwgYWJsZSB0byBiZSByZWNvcmRlZCBhZnRlciBzdG9wcGluZyBhIHJlY29yZGluZyB3aXRoIG5v
IGFjdGlvbnMuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
IGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9u
KVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNo
b3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFzIGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGxl
dCBldmVudENvdW50ID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCmluZGV4IDIzY2QwNDg2ODUwZDBhZTFiNzY3OTg3NWIw
YWYyN2EwNTFjMGY0Y2QuLmY3NGQxNWUxMDZlYTNiMDVjYTkxYjgwMWY4MWM4YTAyZjExNTA0YzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5v
ZGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50
Tm9kZXMuaHRtbApAQCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBu
YW1lOiAiQ2FudmFzLnJlcXVlc3RDbGllbnROb2Rlcy5Jbml0aWFsIiwKICAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGF0IGNyZWF0aW5nIGEgQ1NTIGNhbnZhcyBjbGllbnQgbm9kZSBpcyB0
cmFja2VkIGNvcnJlY3RseS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAg
ICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAi
VGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBjYW52YXMuIik7CiAKICAgICAgICAgICAgIGNh
bnZhcy5yZXF1ZXN0Q2xpZW50Tm9kZXMoKGNsaWVudE5vZGVzKSA9PiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKaW5kZXggNTM1
MDk1NzYyYjM5MGYyY2UzZmI1YTk2OTZhZGU2MTEzNDMzYzJmZC4uZTljYmExZDAxMDdjM2E2N2Nl
ZjE3MmU4YWI1YTlhNGE0YWE5Y2EwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50MkQudmFsaWRD
YW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBk
YXRhIGZvciB0aGUgY2FudmFzIG9uIHRoZSBwYWdlIHdpdGggdGhlIGdpdmVuIHR5cGUuIiwKICAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRU
eXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0
IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5m
aW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRU
eXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJp
dG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RD
b250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggY2Q1MDgzYzI1MjUyNzRkNzlmYjhmNGJk
NzliOTc5MzhmZTMwYzYzMC4uZjUyNjZlZmRlZmQ3ZWM3NDc0ZTk2ZWJhYWZkMGJiNTczYjI1ZjJi
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC1iaXRtYXByZW5kZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMjIsNyArMjIsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50Qml0bWFw
UmVuZGVyZXIudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBi
YXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgQml0bWFwUmVuZGVyZXIgY2FudmFzIG9uIHRoZSBw
YWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
KyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCmluZGV4IGFlYjgxZWYyN2QzYzk4MDU4NDk3
OTk2YTE3OWJkNjRhNWJmZTliZWYuLjcwYzIxZmU0MzM5NjkxNTk2MDkxMjI4NDU2NmFmMmY3M2Q1
OGI5NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3RDb250ZW50LXdlYmdsLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Q29udGVudFdlYkdMLnZhbGlkQ2FudmFzSWQi
LAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3Ig
dGhlIFdlYkdMIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCmluZGV4IDZiMDNkNWVjN2U1
OWQwMjY2ODdjNmI3ZjBkYjI4MDZlMTYzYWVjY2YuLmY3YjU1ZjRhM2RmYzA4NDNhZWY3ODgwYjlm
Nzk3NDBjZTE1YTA4NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbApAQCAtMjEsNyArMjEsNyBAQCBmdW5jdGlv
biB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wyLnZh
bGlkQ2FudmFzSWQiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29k
ZWQgZGF0YSBmb3IgdGhlIFdlYkdMMiBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFz
KSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIp
OwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1p
c3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAppbmRleCBlNWM2MTQ3ZTM0N2JjMzY5
ZTJjMDVjYzg0MTY2ZDgwNmE3MWMwNjE2Li5kY2M0YmNjZWU3NWY0YTY5Mzg0NWJiZGVlNzEyM2Fm
ZmUyYTc5MDUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVl
c3ROb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9k
ZS5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6
ICJDYW52YXMucmVxdWVzdE5vZGUudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiR2V0IHRoZSBub2RlIGlkIGZvciBlYWNoIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlczsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5
LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKICAgICAgICAgICAgIGxl
dCBleHBlY3RlZExlbmd0aCA9IGNhbnZhc2VzLmxlbmd0aDsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGV4cGVjdGVkTGVuZ3RoID09PSAzLCAiVGhlIHBhZ2UgaGFzIDMgY2FudmFz
ZXMuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2
ZUNvbnRleHQtMmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtMmQuaHRtbAppbmRleCBjNDFjYzZiYzc0YTMyNDE5MjBiM2Q2YjVjM2Q5YjNjNmJmZGE5
NWQxLi5mZTE0MTE3OWI3Y2FkYTNiYjU4NWE4ODg4NGRlNmJiNjM0ZTc0MzhiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCkBA
IC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJl
c29sdmVDb250ZXh0MkQudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJT
aG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZp
ZXIuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBj
YW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAg
ICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFz
LkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAg
ICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggODYyNTI5MjY1YzRkZDZi
MjliMjk2Nzg4NDQxY2VmOWU2NzdiOWIxMC4uMjk3ZDQ0MWUxNGZhNGIxYmQzOTZkYzA1NGY4NWI4
ZDkzZjlhZTVjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
bHZlQ29udGV4dC1iaXRtYXByZW5kZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMTcsNyArMTcs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4
dEJpdG1hcFJlbmRlcmVyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
U2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlm
aWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsK
KyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCmluZGV4IDk1YWRmMTJjMDkzYWRmMzBjNDdk
MjkyOTkyMzQzZGNmMDFjY2U4N2UuLjJhNzBmYTRhMGZiMTdmZmExOTQ0NDc1MTljYjM5ZTU4MGI5
MzVlNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29s
dmVDb250ZXh0LXdlYmdsLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHRXZWJHTC52YWxpZElkZW50aWZpZXJg
LAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9y
IHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAg
aWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmAp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCmluZGV4IDExNTFmOTE3YTdh
MjNlNmZlMzMyYjQzYTlhMzQwNmE5Y2ZlOTBhNTQuLmQ4ZTA4MzFlNmJjM2EyOTY1ZThkNDJjZmQ1
ODdlMmRmYTE0ZDJjNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMMi52YWxp
ZElkZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxp
ZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFy
cmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlz
c2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKaW5k
ZXggZGMwMGVmMTIzN2E2N2I4OTA1ZjM4MGRjZWNmNmE3OWNlYjYzMjY3Ni4uZTkyNWIyNzE2NDhm
NDQ0YzIzYzlkMmE4NWNiODUyMDYyNGNiNjI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sCkBAIC0yMiwxNCAr
MjIsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNv
bnRleHRXZWJHUFUudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91
bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIu
IiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgIlRoZXJlIHNob3VsZCBiZSBu
byBjYW52YXNlcy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSwgIlRoZXJlIHNob3VsZCBiZSBubyBjYW52
YXNlcy4iKTsKIAotICAgICAgICAgICAgbGV0IFtjYW52YXNBZGRlZEV2ZW50XSA9IGF3YWl0IFBy
b21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCksCisgICAgICAgICAgICBsZXQgW2Nh
bnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQpLAogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZURldmljZSgpYCksCiAgICAgICAgICAgICBdKTsK
IAotICAgICAgICAgICAgbGV0IHtjYW52YXN9ID0gY2FudmFzQWRkZWRFdmVudC5kYXRhOworICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IGNhbnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRh
Lml0ZW07CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5
cGUsIFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUsICJBZGRlZCBjYW52YXMgc2hvdWxkIGJl
IGEgV2ViR1BVIGRldmljZS4iKTsKIAogICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAi
dGVzdCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNl
cy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc291cmNlcy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKaW5kZXggM2E0NjA0NTUy
NTEwMTgyYmJlMmVmMzU1NzIzYTQxZTA0Mjg5ZDYyZi4uMTU5MTU4MDI1OTAyM2I5ZTIzOGU3MWJi
NWM4NTVhYTdjODY0ODFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwpA
QCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiBkZXN0cm95Q2FudmFzZXMoKSB7CiAgICAgd2luZG93
LmNvbnRleHRzID0gW107CiAKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZh
cyBlbGVtZW50IGlzIGRlc3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRv
ZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50
cy4KKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4K
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9
CiAKQEAgLTQzLDkgKzQzLDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7
CiAgICAgbGV0IHN1aXRlID0gbnVsbDsKIAogICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzQWRkZWQo
Y29udGV4dFR5cGUpIHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVu
dChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKQorICAgICAgICByZXR1cm4gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5F
dmVudC5JdGVtQWRkZWQpCiAgICAgICAgIC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAg
bGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9
IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIGxldCBjb250ZXh0RGlzcGxheU5hbWUgPSBX
SS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlwZShjb250ZXh0VHlwZSk7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5jb250ZXh0VHlwZSwgY29udGV4
dFR5cGUsIGBDYW52YXMgY29udGV4dCBzaG91bGQgYmUgJHtjb250ZXh0RGlzcGxheU5hbWV9LmAp
OwogCkBAIC03Myw5ICs3Myw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4g
ewogICAgIH0KIAogICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlm
aWVyKSB7Ci0gICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkKQorICAgICAgICByZXR1cm4gV0kuY2FudmFz
TWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtUmVtb3ZlZCkKICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQg
Y2FudmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZl
bnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjYW52
YXMuaWRlbnRpZmllciwgY2FudmFzSWRlbnRpZmllciwgIlJlbW92ZWQgY2FudmFzIGhhcyBleHBl
Y3RlZCBJRC4iKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtODksNyArODksNyBAQCBUZXN0UGFn
ZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgICAgIG5hbWU6IGAke3N1aXRl
Lm5hbWV9Lk5vQ2FudmFzZXNgLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0
IHRoZSBDYW52YXNNYW5hZ2VyIGhhcyBubyBjYW52YXNlcyBpbml0aWFsbHkuIiwKICAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgMCwgIkNhbnZh
c01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
c2l6ZSwgMCwgIkNhbnZhc01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CiAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11
dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNv
cmRpbmctdXRpbGl0aWVzLmpzCmluZGV4IDYwMTQ2ZmYzODQ4N2ZkMTkzZTIzZDMzNzQ3ZGYzMTA0
NmNjNjgxZjMuLjc3YTBlYTM0M2I2NWY0MjRiYWM2ZGUzNzVlMzNiZjJjYWJkY2NiZDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11
dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
cmVjb3JkaW5nLXV0aWxpdGllcy5qcwpAQCAtODYsNyArODYsNyBAQCBUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyKCgpID0+IHsKICAgICB9CiAKICAgICB3aW5kb3cuZ2V0Q2FudmFzID0gZnVu
Y3Rpb24odHlwZSkgewotICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IHR5cGUpOwor
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlw
ZSk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwg
YFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMgd2l0aCB0eXBlICIke3R5cGV9Ii5gKTsK
ICAgICAgICAgaWYgKGNhbnZhc2VzLmxlbmd0aCAhPT0gMSkKICAgICAgICAgICAgIHJldHVybiBu
dWxsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
c2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ2wuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcwppbmRleCA1
Mjc1YzQ0MWFhZmM3M2I5MTA3OTQ1YjNjZDczZjljYTY3ZTFlNjVlLi5mNDNlNmYyNzdjZGM3ZDA1
OGQwOTk0MWE3NjY3NzYzNGUwNWU2Y2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0
aWxpdGllcy13ZWJnbC5qcwpAQCAtMzksNyArMzksNyBAQCBmdW5jdGlvbiBkZWxldGVQcm9ncmFt
KCkgewogZnVuY3Rpb24gZGVsZXRlQ29udGV4dCgpIHsKICAgICBjb250ZXh0ID0gbnVsbDsKICAg
ICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlzIGRlc3Ryb3ll
ZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2Fu
dmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBkb2VzIG5vdCBy
ZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1lb3V0KCgpID0+
IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKQEAgLTQ3LDggKzQ3LDkgQEAg
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgbGV0IHN1aXRlID0gbnVs
bDsKIAogICAgIGZ1bmN0aW9uIHdoZW5Qcm9ncmFtQWRkZWQoY2FsbGJhY2spIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09
IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5n
dGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBj
YW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5l
cihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAg
ICBsZXQgcHJvZ3JhbSA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIkFkZGVk
IFNoYWRlclByb2dyYW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
cHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3Vs
ZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTU3LDggKzU4LDkgQEAgVGVzdFBhZ2UucmVn
aXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gd2hlblByb2dy
YW1SZW1vdmVkKGNhbGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUg
b25lIGNhbnZhcy4iKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFk
ZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0g
QXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQg
b25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBjYW52YXNlc1swXS5zaGFkZXJQcm9ncmFt
Q29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQu
ZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0g
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3Rh
bmNlb2YgV0kuQ2FudmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52
YXMuIik7CkBAIC03NCw3ICs3Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkg
PT4gewogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRlclByb2dyYW1B
ZGRlZCBpcyBzZW50IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQgaXMg
ZW5hYmxlZC4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAg
ICAgICAgICAvLyBUaGlzIGNhbid0IHVzZSBgYXdhaXRFdmVudGAgc2luY2UgdGhlIHByb21pc2Ug
cmVzb2x1dGlvbiBoYXBwZW5zIG9uIHRoZSBuZXh0IHRpY2suCi0gICAgICAgICAgICAgICAgV0ku
Y2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICB3
aGVuUHJvZ3JhbUFkZGVkKChwcm9ncmFtKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwpAQCAtMTEzLDcgKzExNSw3IEBAIFRl
c3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNl
OwogCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQp
ID0+IHsKICAgICAgICAgICAgICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdw
dS5qcwppbmRleCBmZTQ4ZDhmZDg1MTE0NjU4OThmZDNiMDQ1MGRlODk1MTM3NDQ5YmU0Li5iOGRl
MzRjZmE4Nzg2ODVmOTY1YTlmOTBiYjRiZjhhYWIzNTczNjBlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJncHUuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hh
ZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCkBAIC02NCw3ICs2NCw3IEBAIGFzeW5jIGZ1
bmN0aW9uIGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvZGUgPSByZW5kZXJQaXBlbGluZVNvdXJjZSkg
ewogZnVuY3Rpb24gZGVsZXRlRGV2aWNlKCkgewogICAgIGRldmljZSA9IG51bGw7CiAgICAgLy8g
Rm9yY2UgR0MgdG8gbWFrZSBzdXJlIHRoZSBkZXZpY2UgaXMgZGVzdHJveWVkLCBvdGhlcndpc2Ug
dGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFz
LmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50
Lmh0bWwKaW5kZXggZDk4ZjBmZWE0ZTkyYzE1Mjk3ODExMmMyZDA3MGNkNzRlOTU5ZDRlMi4uNTVl
NTUyNDczMDgzYWEyZDFiYWViMGU4ODdlZTA1ZmMyOGYwYTBlNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9D
YXB0dXJlRnJhbWVDb3VudC5odG1sCkBAIC03Nyw4ICs3Nyw4IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJlY29yZGluZ1N0b3BwZWQoY2FudmFzLCBldmVu
dC5kYXRhLnJlY29yZGluZyk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2Vy
LkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2Fu
dmFzID0gZXZlbnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFz
ID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCghY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkKIAogICAgICAgICAgICAgICAgICAgICBjYW52
YXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwgaGFu
ZGxlUmVjb3JkaW5nU3RhcnRlZFdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUu
aHRtbAppbmRleCBkNDBmYWI3ODM4MTMwY2M5NGIwM2JmOTFkOTZmMjI3MDkwNGViMDEzLi5kNWZi
ODc3MmMwYjM3NWM0MGQ1ZDdhMGU0MjAyYTU0ZmY1ZDUyZDBhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJl
bW92ZS13ZWJncHUuaHRtbApAQCAtMTQsOSArMTQsMTEgQEAgd2luZG93LmJlZm9yZVRlc3QgPSBh
c3luYyBmdW5jdGlvbigpIHsKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFVg
KTsKIAotICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAg
IGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0
aW9uKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJU
aGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworCisgICAgbGV0IGNhbnZhcyA9IGNh
bnZhc2VzWzBdOwogICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3Vs
ZCBiZSBhIGNhbnZhcy4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52
YXMuIik7CiAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBX
SS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7
CiAKICAgICBhc3luYyBmdW5jdGlvbiBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgewpA
QCAtMTE4LDcgKzEyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOwogCi0g
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNh
bnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVu
ZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAg
ICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNo
YXJlZFZlcnRleEZyYWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAppbmRleCAzNGQwMmFi
MTdlOTA1YTRiNzhhMDI2NTUwNDlhZTI4ZGIzMzEwODcxLi44Y2Y5YTQ3NTYyMjQyMWM4MzY4OWM5
YWQzN2QyMTkwYTAxY2U5ZTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVy
dGV4RnJhZ21lbnQuaHRtbApAQCAtNTcsMTAgKzU3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGluZyByZW5kZXIgcGlwZWxpbmUuLi4iKTsK
ICAgICAgICAgbGV0IGV2YWx1dGVQcm9taXNlID0gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZShgY3JlYXRlUmVuZGVyUGlwZWxpbmUoKWApOwogCi0gICAgICAgIGlmICghV0kuY2FudmFzTWFu
YWdlci5jYW52YXNlcy5sZW5ndGgpCi0gICAgICAgICAgICBhd2FpdCBXSS5jYW52YXNNYW5hZ2Vy
LmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCk7CisgICAgICAg
IGlmICghV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpemUpCisgICAgICAgICAg
ICBhd2FpdCBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5D
b2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCk7CiAKLSAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9t
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LldlYkdQVSwgIkNhbnZhcyBzaG91bGQgYmUgV2ViR1BVLiIpOwogCiAgICAgICAgIGxldCBpdGVt
QWRkZWRFdmVudCA9IGF3YWl0IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hd2FpdEV2
ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVz
cy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCA2NmJkYmFiOWVlZTMxNjc5MGY4
ZjI2NzQ2ZjkzZTIxZWQ0YzNkZjFlLi5kYmY2MzUxZTlhMDkyNDYwYWJlZTlkMzRkOTIwNmIwZjcz
MzZiM2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0
LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0
ZWQudHh0CkBAIC01NCw2ICs1NCw3NCBAQCBGQUlMOiBleHBlY3RGYWxzZShbXSkKICAgICBFeHBl
Y3RlZDogZmFsc2V5CiAgICAgQWN0dWFsOiBbXQogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogSW5z
cGVjdG9yVGVzdC5leHBlY3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFTUworUEFTUzogZXhwZWN0RW1w
dHkobnVsbCkKK1BBU1M6IGV4cGVjdEVtcHR5KCIiKQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitQ
QVNTOiBleHBlY3RFbXB0eShbXSkKK1BBU1M6IGV4cGVjdEVtcHR5KHt9KQorUEFTUzogZXhwZWN0
RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisg
ICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5
KHsidGVzdCI6MX0pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7InRlc3QiOjF9
CitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0
dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0eQor
ICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0
eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVk
IHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdHJ1ZQorRkFJTDogZXhwZWN0RW1wdHkg
c2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiBmYWxz
ZQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmpl
Y3Q6CisgICAgQWN0dWFsOiAxCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxl
ZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHVuZGVmaW5lZAorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFT
UworUEFTUzogZXhwZWN0Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoeyJ0
ZXN0IjoxfSkKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KCJ0ZXN0IikKK1BBU1M6IGV4cGVjdE5vdEVt
cHR5KHt9KQorUEFTUzogZXhwZWN0Tm90RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlM
OiBleHBlY3ROb3RFbXB0eShudWxsKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1
YWw6IG51bGwKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KCIiKQorICAgIEV4cGVjdGVkOiBub3QgZW1w
dHkKKyAgICBBY3R1YWw6ICIiCitGQUlMOiBleHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3Rl
ZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0Tm90RW1wdHkoW10pCisg
ICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogW10KK0ZBSUw6IGV4cGVjdE5vdEVt
cHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBl
eHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7
fQorRkFJTDogZXhwZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1v
YmplY3Q6CisgICAgQWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90
IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBl
eHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAg
ICBBY3R1YWw6IDEKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdp
dGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogdW5kZWZpbmVkCisKIC0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdE51bGwKIEV4cGVjdGVkIHRvIFBBU1MKIFBBU1M6
IGV4cGVjdE51bGwobnVsbCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCmlu
ZGV4IDkxZTg1ODBjN2NiNjI3MzQ1ODI1NDAyNDk3MjAwOWU5OWNkYTgzNGQuLmUzODY0YTAzYzRl
MDk0MWNhOGMwMmYyZjBhNzg2MjYzOTg4YjAxMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1m
dW5jdGlvbnMuaHRtbApAQCAtNDgsNiArNDgsMjAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgYWRk
VGVzdENhc2UoZXhwZWN0VGhhdFRlc3RDYXNlKTsKICAgICBhZGRJbnZlcnNlVGVzdENhc2UoImV4
cGVjdEZhbHNlIiwgZXhwZWN0VGhhdFRlc3RDYXNlKTsKIAorICAgIGxldCBleHBlY3RFbXB0eVRl
c3RDYXNlID0geworICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3RFbXB0eSIsCisgICAgICAg
IHBhc3NpbmdJbnB1dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBuZXcgU2V0XSwKKyAg
ICAgICAgZmFpbGluZ0lucHV0czogWyJ0ZXN0Iiwge3Rlc3Q6IDF9LCBbInRlc3QiXSwgbmV3IE1h
cChbWyJ0ZXN0IiwgMV1dKSwgbmV3IFNldChbInRlc3QiXSksIHRydWUsIGZhbHNlLCAxLCB1bmRl
ZmluZWRdLAorICAgIH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0RW1wdHlUZXN0Q2FzZSk7CisK
KyAgICBsZXQgZXhwZWN0Tm90RW1wdHlUZXN0Q2FzZSA9IHsKKyAgICAgICAgZnVuY3Rpb25OYW1l
OiAiZXhwZWN0Tm90RW1wdHkiLAorICAgICAgICBwYXNzaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVz
dDogMX0sIFsidGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJd
KV0sCisgICAgICAgIGZhaWxpbmdJbnB1dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBu
ZXcgU2V0LCB0cnVlLCBmYWxzZSwgMSwgdW5kZWZpbmVkXSwKKyAgICB9OworICAgIGFkZFRlc3RD
YXNlKGV4cGVjdE5vdEVtcHR5VGVzdENhc2UpOworCiAgICAgbGV0IGV4cGVjdE51bGxUZXN0Q2Fz
ZSA9IHsKICAgICAgICAgZnVuY3Rpb25OYW1lOiAiZXhwZWN0TnVsbCIsCiAgICAgICAgIHBhc3Np
bmdJbnB1dHM6IFtudWxsXSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389170</attachid>
            <date>2020-01-29 12:17:01 -0800</date>
            <delta_ts>2020-01-29 14:34:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20200129121700.patch</filename>
            <type>text/plain</type>
            <size>325523</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGM1ZjUwNzc2NmY0NGI3N2E3YThmYTMwMzBiYWY5
ZDJmZGE3NTVlZjAuLmU0OWMyYzViMWY0ZDFhMDgzODI3ODk1M2Q2ODAwNTA4MmNlMTMwNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gR2l2ZSB1cCBJQyB3aGVuIHVua25vd24gc3RydWN0
dXJlIHRyYW5zaXRpb24gaGFwcGVucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAxMTYzYWMzNDlkY2U5NjM2ZGE0
ZWNkZjE3NDRmMTMzOGM3NjhkYzcuLjViODMzZDY4OWEyNzIyMWYyOGMzOThmNDAyODYyYmJlY2Ni
NmFhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDUgQEAKKzIwMjAtMDEtMjggIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBp
bnN0cnVtZW50YXRpb24gZm9yIHNob3dpbmcgZXhpc3RpbmcgV2ViIEFuaW1hdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQzNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjgzMjgwODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4g
QnVyZy4KKworICAgICAgICBBZGQgdHlwZXMvY29tbWFuZHMvZXZlbnRzIGZvciBpbnN0cnVtZW50
aW5nIHRoZSBsaWZlY3ljbGUgb2YgYEFuaW1hdGlvbmAgb2JqZWN0cywgYXMgd2VsbCBhcworICAg
ICAgICBjb21tYW5kcyBmb3IgZ2V0dGluZyB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyIG9iamVjdCBh
bmQgdGhlIHRhcmdldCBET00gbm9kZS4KKworICAgICAgICBUZXN0czogaW5zcGVjdG9yL2FuaW1h
dGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRp
b24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9y
L2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbAorICAgICAgICAgICAgICAg
aW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RFZmZlY3RUYXJnZXQuaHRtbAorICAg
ICAgICAgICAgICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sCisKKyAg
ICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmg6CisgICAgICAgICogYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246Omluc3RhbmNl
cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjppbnN0YW5jZXNNdXRl
eCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpXZWJBbmltYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkFuaW1hdGlvbjo6c2V0RWZmZWN0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5p
bWF0aW9uOjplZmZlY3RUYXJnZXREaWRDaGFuZ2UpOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NB
bmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAqIGFuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1RyYW5zaXRpb246OmNyZWF0ZSk6CisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpwYXJzZWRLZXlmcmFt
ZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpibGVu
ZGluZ0tleWZyYW1lcyBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVF
ZmZlY3Q6Omhhc0JsZW5kaW5nS2V5ZnJhbWVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBh
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVF
ZmZlY3Q6OmNvbXB1dGVTaG91bGRSdW5BY2NlbGVyYXRlZCk6CisgICAgICAgIFByb3ZpZGUgYSB3
YXkgdG8gYWNjZXNzIHRoZSBsaXN0IG9mIGtleWZyYW1lcy4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
QW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdCk6IERlbGV0ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZm
ZWN0SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdFRhcmdldEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdlYkFu
aW1hdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKTogRGVsZXRlZC4KKworICAgICAgICAq
IGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnN0
cnVtZW50aW5nQWdlbnRzOjplbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnNldEVuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnN0
cnVtZW50aW5nQWdlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2Vu
dHM6OnJlc2V0KToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlv
bkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sVmFsdWVGb3JTZWNvbmRzKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yUGxheWJhY2tEaXJlY3Rp
b24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sVmFsdWVGb3JGaWxsTW9kZSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JLZXlmcmFtZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yRWZmZWN0KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjplbmFibGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudDo6cmVxdWVzdEVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc29sdmVBbmltYXRpb24pOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRTZXRX
ZWJBbmltYXRpb25FZmZlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpkaWRDcmVhdGVXZWJBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveVdlYkFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZnJhbWVOYXZp
Z2F0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZpbmRB
bmltYXRpb25JZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQ6OmFzc2VydEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp1bmJpbmRBbmltYXRpb24pOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjphbmltYXRpb25EZXN0cm95
ZWRUaW1lckZpcmVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRp
b25BZ2VudDo6cmVzZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1h
dGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBEZWxldGVkLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpyZXF1ZXN0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgQWRkIGFuIG92ZXJsb2FkIGZvciBg
cHVzaE5vZGVQYXRoVG9Gcm9udGVuZGAgdGhhdCBleHBvc2VzIGFuIGBFcnJvclN0cmluZ2AuCisK
IDIwMjAtMDEtMjkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViIEFuaW1hdGlvbnNdIGBEZWNsYXJhdGl2ZUFuaW1hdGlvbmAgZm9yIENTUyBBbmltYXRp
b24gaXMgbm90IGFsd2F5cyBkZXN0cm95ZWQgd2hlbiBjbGFzcyB0aGF0IGFwcGxpZXMgYGFuaW1h
dGlvbi1uYW1lYCBpcyByZW1vdmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4NzJhODcx
MjBhOGY3N2EwZWQxYTdjZDQyNjgyOGY0MzU2ZGVjM2FlLi41OGVmOTI5ODU3ZDM5NjcxNWMyYzA1
N2RiZTJjZDEyMjU0OTI1OTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MjggQEAKKzIwMjAtMDEtMjggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBpbnN0cnVtZW50YXRpb24gZm9yIHNob3dpbmcgZXhp
c3RpbmcgV2ViIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTQzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgzMjgwODc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qczogQWRkZWQuCisgICAgICAgIChXSS5B
bmltYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBl
LmdldCBkb21haW5zKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmFj
dGl2YXRlRXh0cmFEb21haW4pOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5
cGUuaW5pdGlhbGl6ZVRhcmdldCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3Rv
dHlwZS5nZXQgYW5pbWF0aW9uQ29sbGVjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5h
Z2VyLnByb3RvdHlwZS5nZXQgc3VwcG9ydGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFn
ZXIucHJvdG90eXBlLmVuYWJsZSk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3Rv
dHlwZS5kaXNhYmxlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmFu
aW1hdGlvbkNyZWF0ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUu
ZWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS50
YXJnZXRDaGFuZ2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmFu
aW1hdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlw
ZS5faGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzOgorICAgICAgICAoV0kuQW5pbWF0aW9uT2Jz
ZXJ2ZXIucHJvdG90eXBlLmFuaW1hdGlvbkNyZWF0ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkFu
aW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2VkKTogQWRkZWQuCisgICAgICAg
IChXSS5BbmltYXRpb25PYnNlcnZlci5wcm90b3R5cGUudGFyZ2V0Q2hhbmdlZCk6IEFkZGVkLgor
ICAgICAgICAoV0kuQW5pbWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmFuaW1hdGlvbkRlc3Ryb3ll
ZCk6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29s
bGVjdGlvbi5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uKToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmdldCBhbmltYXRpb25UeXBl
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlLmdldCBkaXNwbGF5
TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5vYmplY3RJ
c1JlcXVpcmVkVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlw
ZS5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xs
ZWN0aW9uLnByb3RvdHlwZS5pdGVtQWRkZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVj
dGlvbi5wcm90b3R5cGUuaXRlbVJlbW92ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVj
dGlvbi5wcm90b3R5cGUuaXRlbXNDbGVhcmVkKToKKyAgICAgICAgU2ltaWxhciB0byBgV0kuUmVz
b3VyY2VDb2xsZWN0aW9uYCwgY3JlYXRlIGEgc3ViY2xhc3Mgb2YgYFdJLkNvbGxlY3Rpb25gIHRo
YXQgbWFpbnRhaW5zIGl0J3MKKyAgICAgICAgb3duIHN1Yi1gV0kuQW5pbWF0aW9uQ29sbGVjdGlv
bmBzIGZvciBlYWNoIHR5cGUgb2YgYFdJLkFuaW1hdGlvbi5UeXBlYC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qczogQWRkZWQuCisgICAgICAgIChXSS5Bbmlt
YXRpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uLmZyb21QYXlsb2FkKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvckFuaW1hdGlvblR5cGUpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uLmRpc3BsYXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24pOgorICAgICAgICAoV0kuQW5p
bWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1vZGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnJl
c2V0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90
b3R5cGUuZ2V0IGFuaW1hdGlvbklkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUu
Z2V0IGJhY2t0cmFjZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBhbmlt
YXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IHN0YXJ0RGVs
YXkpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZW5kRGVsYXkpOgorICAg
ICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0aW9uQ291bnQpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0aW9uU3RhcnQpOgorICAgICAgICAo
V0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgaXRlcmF0aW9uRHVyYXRpb24pOgorICAgICAgICAo
V0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgdGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV0ku
QW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgcGxheWJhY2tEaXJlY3Rpb24pOgorICAgICAgICAoV0ku
QW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgZmlsbE1vZGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9u
LnByb3RvdHlwZS5nZXQga2V5ZnJhbWVzKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUucmVx
dWVzdEVmZmVjdFRhcmdldCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmVmZmVj
dENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS50YXJnZXRDaGFuZ2Vk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuX3VwZGF0ZUVmZmVjdCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanM6CisgICAgICAgIChX
SS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlvbik6IEFkZGVkLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVu
dFZpZXcuanMuCisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3KToKKyAgICAgICAg
KFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbyk6CisgICAgICAgIChXSS5HcmFwaGlj
c1RhYkNvbnRlbnRWaWV3LmlzVGFiQWxsb3dlZCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgdHlwZSk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5zaG93UmVwcmVzZW50ZWRPYmplY3QpOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmNhblNob3dSZXByZXNlbnRl
ZE9iamVjdCk6CisgICAgICAgIChXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5j
bG9zZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0
YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuZGV0
YWNoZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuaW5p
dGlhbExheW91dCk6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5w
cm90b3R5cGUuX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UpOiBB
ZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZp
ZXcuY3NzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuY3NzLgorICAgICAgICBSZW5hbWUgdGhlIENhbnZh
cyBUYWIgdG8gR3JhcGhpY3MgVGFiIGFuZCBkaXNwbGF5IGZvdXIgc2VjdGlvbnM6CisgICAgICAg
ICAtIENhbnZhc2VzCisgICAgICAgICAtIFdlYiBBbmltYXRpb25zCisgICAgICAgICAtIENTUyBB
bmltYXRpb25zCisgICAgICAgICAtIENTUyBUcmFuc2l0aW9ucworCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXSS5DYW52YXNT
aWRlYmFyUGFuZWwucHJvdG90eXBlLmNhblNob3dSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAg
IE9ubHkgYXBwZWFyIGlmIGEgYFdJLkNhbnZhc2Agb3IgYFdJLlJlY29yZGluZ2AgaXMgc2VsZWN0
ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250
ZW50Vmlldy5qczogQWRkZWQuCisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5n
ZXQgc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzKToKKyAgICAgICAgKFdJLkdyYXBoaWNz
T3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAg
ICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZGV0YWNo
ZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5p
bml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5w
cm90b3R5cGUuZHJvcFpvbmVTaG91bGRBcHBlYXJGb3JEcmFnRXZlbnQpOgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9wWm9uZUhhbmRsZURyb3Ap
OgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFu
ZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZVNob3dJ
bWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNr
ZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5f
aGFuZGxlT3ZlcnZpZXdWaWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZCk6CisgICAgICAgIChXSS5HcmFw
aGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVPdmVydmlld1ZpZXdTdXBw
bGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOgorICAgICAgICAoV0kuR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2spOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzczogQWRk
ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3KToKKyAgICAgICAg
KC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uKToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQp
KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4g
LmhlYWRlcik6CisgICAgICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2Vj
dGlvbjpub3QoOmZpcnN0LW9mLXR5cGUpID4gLmhlYWRlcik6CisgICAgICAgICguY29udGVudC12
aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiBoMSk6CisgICAgICAg
ICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiAu
bmF2aWdhdGlvbi1iYXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAgICAgICAgKEBtZWRpYSAocHJl
ZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
KToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSAuY29udGVu
dC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIpOgorICAgICAgICBB
ZGQgc3RpY2t5IGhlYWRlcnMgZm9yIGVhY2ggb2YgdGhlIHNlY3Rpb25zIGRlc2NyaWJlZCBhYm92
ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50Vmlldyk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJv
dG90eXBlLmhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdBZGRlZCk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRW
aWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLmRldGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik6CisgICAgICAg
IChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250
ZW50Vmlld01vdXNlTGVhdmUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0
aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICguY29udGVudC12
aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9u
Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcuZ2V0IHByZXZp
ZXdIZWlnaHQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmhh
bmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZp
ZXcucHJvdG90eXBlLnNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVu
dFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmll
dy5wcm90b3R5cGUuX3JlZnJlc2hTdWJ0aXRsZSk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQcmV2aWV3LmFkZFRpdGxlKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFByZXZpZXcpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVFZmZlY3RDaGFuZ2Vk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlVGFy
Z2V0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUu
X3BvcHVsYXRlQW5pbWF0aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzOiBBZGRlZC4KKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uLnNlbGVjdGVkKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVh
ZGVyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxl
cyk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMg
PiAudGl0bGUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAu
dGl0bGVzID4gLnN1YnRpdGxlKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
aGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTpub3QoOmVtcHR5KTo6YmVmb3JlKToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyKToK
KyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uOmhvdmVyID4gaGVhZGVyID4gLm5hdmln
YXRpb24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcp
OgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2Zyk6Cisg
ICAgICAgIChib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcg
PiBzdmcpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2
ZyByZWN0KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBz
dmcgPiAuZGVsYXkgbGluZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5w
cmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBwYXRoKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGNpcmNsZSk6CisgICAgICAgICguY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBsaW5lKToKKyAg
ICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzcGFuKToKKyAgICAg
ICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSk6CisgICAgICAgIChAbWVkaWEgKHBy
ZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRl
ciA+IC50aXRsZXMgPiAuc3VidGl0bGUpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9y
LXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyk6CisgICAg
ICAgIFZpc3VhbGl6ZSB0aGUgc3RhcnQvZW5kIGRlbGF5IGFuZCBrZXlmcmFtZXMgb2YgdGhlIGdp
dmVuIGFuaW1hdGlvbiBhcyBhIHNlcmllcyBvZiBiZXppZXIKKyAgICAgICAgY3VydmVzIHNlcGFy
YXRlZCBieSBtYXJrZXJzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRp
b25EZXRhaWxzU2lkZWJhclBhbmVsLmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkRl
dGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQ
YW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnNldCBhbmltYXRpb24pOgorICAgICAgICAo
V0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6
CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5sYXlv
dXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUu
X3JlZnJlc2hJZGVudGl0eVNlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1Np
ZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoQmFja3RyYWNl
U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hhbmdlZCk6CisgICAgICAgIChXSS5BbmltYXRp
b25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hh
bmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlw
ZS5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBzZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3M6IEFk
ZGVkLgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29u
dGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuaGVhZGVyID4gLnN1
YnRpdGxlKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4g
LmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMt
c2VjdGlvbik6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+
IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxz
LXNlY3Rpb24gLnJvdy5zdHlsZXMpOgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWls
cy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZy
YW1lcyAuZGV0YWlscy1zZWN0aW9uIC5yb3cuc3R5bGVzIC5Db2RlTWlycm9yKToKKyAgICAgICAg
KC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWls
cy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbik6CisgICAgICAg
IFNob3cgY29sbGVjdGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWxlY3RlZCBhbmltYXRpb24s
IGl0cyBlZmZlY3QsIGFuZCBpdHMgdGFyZ2V0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlcik6
CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5nZXQgY2FudmFzQ29sbGVjdGlv
bik6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuZGlzYWJsZSk6
CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5jYW52YXNBZGRlZCk6CisgICAg
ICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5jYW52YXNSZW1vdmVkKToKKyAgICAgICAg
KFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9zYXZlUmVjb3JkaW5ncyk6IEFkZGVkLgorICAg
ICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX21haW5SZXNvdXJjZURpZENoYW5nZSk6
CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5nZXQgY2FudmFzZXMpOiBEZWxl
dGVkLgorICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuX3JlbW92ZUNhbnZhcyk6
IERlbGV0ZWQuCisgICAgICAgIFJhdGhlciB0aGFuIGhhdmUgdGhlIGBXSS5DYW52YXNUYWJDb250
ZW50Vmlld2AgbWFpbmFpbiB0aGUgYFdJLkNhbnZhc0NvbGxlY3Rpb25gIGFuZCBoYXZlIHRvCisg
ICAgICAgIGxpc3RlbiBmb3IgZXZlbnRzIGZyb20gdGhlIGBXSS5DYW52YXNNYW5hZ2VyYCwganVz
dCBoYXZlIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAgaG9sZCBvbiB0bworICAgICAgICBpdCBpbnN0
ZWFkIGFuZCBwcm92aWRlIGEgZ2V0dGVyIGZvciBpdC4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6
CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50
Vmlld0FkZGVkKToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90
eXBlLmNvbnRlbnRWaWV3UmVtb3ZlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fYWRkU2F2ZWRSZWNvcmRpbmcpOgorICAgICAgICAoV0ku
Q2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaGlkZGVuKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBfaXRlbU1h
cmdpbik6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fcmVmcmVzaFByZXZpZXdzKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkNhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVOYXZpZ2F0aW9uSXRlbXMpOiBEZWxl
dGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX3No
b3dHcmlkQnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlU2hvd0ltYWdlR3JpZCk6IERlbGV0ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNz
czoKKyAgICAgICAgKC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3KToKKyAgICAgICAgKC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMpOgorICAg
ICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcpOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9DYW52YXNDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3KToK
KyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZyZXNoQnV0
dG9uQ2xpY2tlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90
eXBlLmRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KTogQWRkZWQuCisgICAgICAgIChX
SS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVIYW5kbGVEcm9wKTogQWRkZWQu
CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6
CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuYXR0YWNoZWQpOgorICAg
ICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLl9wb3B1bGF0ZUNhbnZhc0VsZW1l
bnRCdXR0b25Db250ZXh0TWVudSk6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90
b3R5cGUuc2hvd24pOiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRoZSAiTG9nIENhbnZhcyBDb250
ZXh0IiB0byBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgY2FudmFzIGVsZW1lbnQgYnV0dG9uIGNv
bnRleHQgbWVudS4KKyAgICAgICAgRHJpdmUtYnk6IGFkZCBhIGBXSS5Ecm9wWm9uZVZpZXdgIGZv
ciB3aGVuIHJlY29yZGluZyBKU09OIGZpbGVzIGFyZSBkcmFnZ2VkIG9uIHRvcC4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzOgorICAgICAgICBE
cml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBhbGwgc2VsZWN0b3JzIHNpbmNlIHRoZSBD
YW52YXMgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ29sbGVjdGlv
bkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5
cGUuZ2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVkLgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5zZXQgc2VsZWN0ZWRJdGVtKTogQWRkZWQuCisgICAgICAgIChXSS5D
b2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmFkZENvbnRlbnRWaWV3Rm9ySXRlbSk6Cisg
ICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLnJlbW92ZUNvbnRlbnRW
aWV3Rm9ySXRlbSk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBl
LnNob3dDb250ZW50UGxhY2Vob2xkZXIpOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250
ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEl0ZW0pOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ2xpY2spOiBBZGRlZC4KKyAgICAgICAgKFdJLkNv
bGxlY3Rpb25Db250ZW50Vmlldy5wcm90b3R5cGUuc2V0U2VsZWN0ZWRJdGVtKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5jc3M6
CisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAucGxhY2Vob2xkZXI6bm90KC5t
ZXNzYWdlLXRleHQtdmlldykpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZpZXcuY29sbGVj
dGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb250ZW50LXZp
ZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1nOmhvdmVyKTogRGVsZXRlZC4KKyAgICAg
ICAgV2hlbiBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgY2xpY2tpbmcgb3V0c2lkZSBvZiBhbnkgb2Yg
dGhlIGNvbnRlbnQgdmlld3Mgc2hvdWxkIGRpc21pc3MgdGhlCisgICAgICAgIGN1cnJlbnQgc2Vs
ZWN0aW9uLiBDbGllbnRzIHNob3VsZCBhbHNvIGJlIGFibGUgdG8gZ2V0IHRoZSBjdXJyZW50bHkg
c2VsZWN0ZWQgaXRlbS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1Nl
Y3Rpb25TaW1wbGVSb3cuanM6CisgICAgICAgIChXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5w
cm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgRW5zdXJlIHRoYXQgYDBgIGlzIGNvbnNpZGVy
ZWQgYXMgYSB2YWxpZCB2YWx1ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWlu
LmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKyAgICAgICAgKFdJLmNvbnRlbnRMb2FkZWQpOgor
ICAgICAgICAoV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJlcHJlc2VudGVkT2JqZWN0KToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0ku
Q29udGVudFZpZXcuY3JlYXRlRnJvbVJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgKFdJLkNv
bnRlbnRWaWV3LmlzVmlld2FibGUpOgorICAgICAgICBBbGxvdyBgV0kuQW5pbWF0aW9uYCB0byBi
ZSB2aWV3YWJsZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3M6Cisg
ICAgICAgICgubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBBZGRlZC4KKyAgICAgICAgKC5uYXZpZ2F0
aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhcik6IEFkZGVkLgorICAgICAgICAoLm5hdmln
YXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0pOiBBZGRlZC4KKyAgICAg
ICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHApOiBEZWxldGVkLgor
ICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdh
dGlvbi1iYXIpOiBEZWxldGVkLgorICAgICAgICAoLm1lc3NhZ2UtdGV4dC12aWV3IC5uYXZpZ2F0
aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSk6IERlbGV0ZWQuCisgICAgICAg
IEFsbG93IGBXSS5jcmVhdGVOYXZpZ2F0aW9uSXRlbUhlbHBgIHRvIGJlIHVzZWQgaW5kZXBlbmRl
bnRseSBvZiBgV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3YC4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIu
cHJvdG90eXBlLm5vZGVGb3JJZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgIChXSS5UaW1lbGluZU1hbmFnZXIucHJvdG90
eXBlLmFuaW1hdGlvblRyYWNraW5nVXBkYXRlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qczoKKyAgICAgICAgKFdJLkF1ZGl0VGVzdENhc2VS
ZXN1bHQuYXN5bmMgZnJvbVBheWxvYWQpOgorICAgICAgICBBZGQgYSBmYWxsYmFjayBzbyBjYWxs
ZXJzIGRvbid0IG5lZWQgdG8uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291
cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuUmVzb3VyY2VDb2xsZWN0
aW9uQ29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VD
b2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5yZXNvdXJj
ZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZyk6IEFkZGVkLgorICAgICAgICAoLmNv
bnRlbnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZzpob3Zl
cik6IEFkZGVkLgorICAgICAgICBEcml2ZS1ieTogbW92ZSB0aGVzZSBzdHlsZXMgdG8gdGhlIHJp
Z2h0IGZpbGUgYW5kIG1ha2UgdGhlbSBtb3JlIHNwZWNpZmljLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzOgorICAgICAgICAoV0kuQ2FudmFzLmRpc3BsYXlOYW1l
Rm9yQ29udGV4dFR5cGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGlu
Zy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZy5kaXNwbGF5TmFtZUZvclJlY29yZGluZ1R5cGUp
OiBBZGRlZC4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBsb2NhbGl6ZWQgc3RyaW5ncy4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzOgorICAg
ICAgICBEcml2ZS1ieTogZHJvcCBgOm5vdCgudGFiKWAgZnJvbSBhbGwgc2VsZWN0b3JzIHNpbmNl
IHRoZSBSZWNvcmRpbmcgVGFiIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0dy
YXBoaWNzLnN2ZzogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9DYW52YXMuc3ZnLgorICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC5odG1s
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzOgorICAgICAgICAoV0kubG9h
ZGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qczoKKyAg
ICAgICAgKFRlc3RIYXJuZXNzLnByb3RvdHlwZS5leHBlY3RFbXB0eSk6IEFkZGVkLgorICAgICAg
ICAoVGVzdEhhcm5lc3MucHJvdG90eXBlLmV4cGVjdE5vdEVtcHR5KTogQWRkZWQuCisgICAgICAg
IChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGF0aW9uTWVzc2FnZUZvcm1hdCk6CisgICAg
ICAgIChUZXN0SGFybmVzcy5wcm90b3R5cGUuX2V4cGVjdGVkVmFsdWVGb3JtYXQpOgorICAgICAg
ICBBZGQgdXRpbGl0eSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgd2hldGhlciB0aGUgZ2l2ZW4gdmFs
dWUgaXMgZW1wdHk6CisgICAgICAgICAtIEFycmF5IGBsZW5ndGggPT09IDBgCisgICAgICAgICAt
IFN0cmluZyBgbGVuZ3RoID09PSAwYAorICAgICAgICAgLSBTZXQgYHNpemUgPT09IDBgCisgICAg
ICAgICAtIE1hcCBgc2l6ZSA9PT0gMGAKKyAgICAgICAgIC0gT2JqZWN0IGBpc0VtcHR5T2JqZWN0
YAorICAgICAgICBBbnkgb3RoZXIgdHlwZSB3aWxsIGF1dG9tYXRpY2FsbHkgZmFpbCwgYXMgbm9u
LW9iamVjdHMgY2FuJ3QgYmUgImVtcHR5IiAoZS5nLiBgNDJgKS4KKwogMjAyMC0wMS0yNyAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
ZG9uJ3QgdXNlIGA6bWF0Y2hlcyg6YmVmb3JlLCA6YWZ0ZXIpYCBhZnRlciByMjU1MDU5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlv
bi5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRp
b24uanNvbgppbmRleCBiZWFmOGRlMjhhYzc1M2UzN2VmMmJlODljMDFmY2IwYmQ1M2RhZmJiLi4y
MmVlODgyNDc5OTljZDU4MjVhNWVhMzE2NzdlZjZiNDc0YzY4MTQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24K
QEAgLTE0LDYgKzE0LDUxIEBACiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAg
ICAgICAgImVudW0iOiBbInJlYWR5IiwgImRlbGF5ZWQiLCAiYWN0aXZlIiwgImNhbmNlbGVkIiwg
ImRvbmUiXQogICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiUGxheWJh
Y2tEaXJlY3Rpb24iLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAg
ICJlbnVtIjogWyJub3JtYWwiLCAicmV2ZXJzZSIsICJhbHRlcm5hdGUiLCAiYWx0ZXJuYXRlLXJl
dmVyc2UiXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiRmlsbE1v
ZGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjog
WyJub25lIiwgImZvcndhcmRzIiwgImJhY2t3YXJkcyIsICJib3RoIiwgImF1dG8iXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiQW5pbWF0aW9uIiwKKyAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQi
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjc3NBbmltYXRpb25OYW1lIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkVxdWFsIHRvIHRo
ZSBjb3JyZXNwb25kaW5nIGBhbmltYXRpb24tbmFtZWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90
IGJlIHByb3ZpZGVkIGlmIGB0cmFuc2l0aW9uUHJvcGVydHlgIGlzIGFsc28gcHJvdmlkZWQuIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY3NzVHJhbnNpdGlvblByb3BlcnR5IiwgInR5
cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkVxdWFsIHRv
IHRoZSBjb3JyZXNwb25kaW5nIGB0cmFuc2l0aW9uLXByb3BlcnR5YCBDU1MgcHJvcGVydHkuIFNo
b3VsZCBub3QgYmUgcHJvdmlkZWQgaWYgYGFuaW1hdGlvbk5hbWVgIGlzIGFsc28gcHJvdmlkZWQu
IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0
IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFja3Ry
YWNlIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNvbnNvbGUuQ2FsbEZy
YW1lIiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQmFja3RyYWNlIHRoYXQg
d2FzIGNhcHR1cmVkIHdoZW4gdGhpcyBgV2ViQW5pbWF0aW9uYCB3YXMgY3JlYXRlZC4iIH0KKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkVm
ZmVjdCIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3Bl
cnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydERlbGF5IiwgInR5cGUi
OiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZW5kRGVsYXkiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25Db3VudCIsICJ0eXBlIjogIm51bWJlciIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgaXRlcmF0aW9ucyBp
biB0aGUgYW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIml0ZXJhdGlv
blN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkluZGV4IG9mIHdoaWNoIGl0ZXJhdGlvbiB0byBzdGFydCBhdC4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25EdXJhdGlvbiIsICJ0eXBlIjogIm51bWJlciIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUb3RhbCB0aW1lIG9mIGVhY2ggaXRlcmF0
aW9uLCBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidGltaW5nRnVuY3Rpb24iLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiQ1NTIHRpbWluZyBmdW5jdGlvbiBvZiB0aGUgb3ZlcmFsbCBhbmlt
YXRpb24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGxheWJhY2tEaXJlY3Rpb24i
LCAiJHJlZiI6ICJQbGF5YmFja0RpcmVjdGlvbiIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImZpbGxNb2RlIiwgIiRyZWYiOiAiRmlsbE1vZGUiLCAib3B0
aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJrZXlmcmFtZXMiLCAi
dHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiS2V5ZnJhbWUiIH0sICJvcHRpb25h
bCI6IHRydWUgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAiaWQiOiAiS2V5ZnJhbWUiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAg
ICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2Zm
c2V0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkRlY2ltYWwgcGVyY2VudGFn
ZSBbMCwxXSByZXByZXNlbnRpbmcgd2hlcmUgdGhpcyBrZXlmcmFtZSBpcyBpbiB0aGUgZW50aXJl
IGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZWFzaW5nIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIkNTUyB0aW1pbmcgZnVuY3Rpb24gZm9yIGhvdyB0aGUgYHN0eWxlYCBpcyBhcHBsaWVk
LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNTUyBzdHlsZSBkZWNsYXJhdGlv
biBvZiB0aGUgQ1NTIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIGFuaW1hdGVkLiIgfQorICAgICAg
ICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiVHJhY2tp
bmdVcGRhdGUiLAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKQEAgLTI3LDYgKzcyLDM1
IEBACiAgICAgICAgIH0KICAgICBdLAogICAgICJjb21tYW5kcyI6IFsKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAiZW5hYmxlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJF
bmFibGVzIENhbnZhcyBkb21haW4gZXZlbnRzLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAiZGlzYWJsZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGlzYWJsZXMgQ2FudmFzIGRvbWFpbiBldmVudHMuIgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJyZXF1ZXN0RWZmZWN0VGFyZ2V0IiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBgRE9NLk5vZGVJZGAgZm9yIHRoZSB0YXJnZXQgb2YgdGhl
IGVmZmVjdCBvZiB0aGUgYW5pbWF0aW9uIHdpdGggdGhlIGdpdmVuIGBBbmltYXRpb25JZGAuIiwK
KyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlk
IiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlQW5pbWF0aW9uIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJSZXNvbHZlcyBKYXZhU2NyaXB0IGBXZWJBbmltYXRpb25gIG9i
amVjdCBmb3IgZ2l2ZW4gYEFuaW1hdGlvbklkYC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFu
aW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0R3JvdXAiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3ltYm9s
aWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0
cy4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm9iamVjdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0
IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJu
YW1lIjogInN0YXJ0VHJhY2tpbmciLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN0YXJ0
IHRyYWNraW5nIGFuaW1hdGlvbnMuIFRoaXMgd2lsbCBwcm9kdWNlIGEgYHRyYWNraW5nU3RhcnRg
IGV2ZW50LiIKQEAgLTM3LDYgKzExMSwzNSBAQAogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZl
bnRzIjogWworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25DcmVhdGVk
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdl
YkFuaW1hdGlvbmAgaXMgY3JlYXRlZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhbmltYXRpb24iLCAiJHJlZiI6ICJBbmltYXRpb24i
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAiZWZmZWN0Q2hhbmdlZCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0
Y2hlZCB3aGVuZXZlciB0aGUgZWZmZWN0IG9mIGFueSBhbmltYXRpb24gaXMgY2hhbmdlZCBpbiBh
bnkgd2F5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJlZmZlY3QiLCAiJHJlZiI6ICJFZmZlY3QiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBvbWl0dGVkIHdoZW4gdGhlIGVmZmVjdCBp
cyByZW1vdmVkIHdpdGhvdXQgYSByZXBsYWNlbWVudC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidGFyZ2V0Q2hhbmdlZCIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgdGFyZ2V0
IG9mIGFueSBlZmZlY3Qgb2YgYW55IGFuaW1hdGlvbiBpcyBjaGFuZ2VkIGluIGFueSB3YXkuIiwK
KyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25JZCIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbmltYXRpb25EZXN0cm95
ZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgYSBg
V2ViQW5pbWF0aW9uYCBpcyBkZXN0cm95ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmlt
YXRpb25JZCIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAg
ICAgICAibmFtZSI6ICJ0cmFja2luZ1N0YXJ0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEaXNwYXRjaGVkIGFmdGVyIGBzdGFydFRyYWNraW5nYCBjb21tYW5kLiIsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCmluZGV4IDdjNzJmNjI0YzMzMGFmOTZiYTcw
YjdhZTRlOTJiNTAxY2ExMDEwN2UuLmZkM2ViOWRiZGU5YmMxYWIwYjk3ZjBhMDcxZTAwZTgwZmI4
MTMxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zOSw2
ICs0MCw5IEBAIFJlZjxDU1NBbmltYXRpb24+IENTU0FuaW1hdGlvbjo6Y3JlYXRlKEVsZW1lbnQm
IG93bmluZ0VsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYKIHsKICAgICBhdXRvIHJlc3VsdCA9IGFk
b3B0UmVmKCpuZXcgQ1NTQW5pbWF0aW9uKG93bmluZ0VsZW1lbnQsIGJhY2tpbmdBbmltYXRpb24s
IG5ld1N0eWxlKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7
CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihy
ZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCmluZGV4IGRmZjVmYjFmNzlhODljNTY2MGE0OWMx
YjM2NDNkZDA3ZDgyNDMyNzEuLmFhYWU1ZTJkMGM2MTcyMGNkMTA4ZGQ2ZGNlNTk1MTljYTBhYzNl
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJLZXlm
cmFtZUVmZmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTQw
LDYgKzQxLDkgQEAgUmVmPENTU1RyYW5zaXRpb24+IENTU1RyYW5zaXRpb246OmNyZWF0ZShFbGVt
ZW50JiBvd25pbmdFbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHAKICAgICBhdXRvIHJlc3VsdCA9IGFk
b3B0UmVmKCpuZXcgQ1NTVHJhbnNpdGlvbihvd25pbmdFbGVtZW50LCBwcm9wZXJ0eSwgZ2VuZXJh
dGlvblRpbWUsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxlLCByZXZlcnNpbmdBZGp1c3RlZFN0
YXJ0U3R5bGUsIHJldmVyc2luZ1Nob3J0ZW5pbmdGYWN0b3IpKTsKICAgICByZXN1bHQtPmluaXRp
YWxpemUob2xkU3R5bGUsIG5ld1N0eWxlKTsKICAgICByZXN1bHQtPnNldFRpbWluZ1Byb3BlcnRp
ZXMoZGVsYXksIGR1cmF0aW9uKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCAy
YjRkODZkOGNjMjU5ZWMxZGQ1NGEyOTU5NjZlZjM5OWNmOWY5MTlkLi4zYWY1ZDM3Y2U0ZThjN2U5
ZDUyZGI4MDliMzcxY2RjMzQ5ZGY4ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTExMDIsNyArMTEwMiw3IEBAIHZvaWQgS2V5ZnJhbWVFZmZl
Y3Q6OmludmFsaWRhdGUoKQogCiB2b2lkIEtleWZyYW1lRWZmZWN0Ojpjb21wdXRlU2hvdWxkUnVu
QWNjZWxlcmF0ZWQoKQogewotICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBoYXNCbGVuZGlu
Z0tleWZyYW1lcygpOworICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSAhIW1fYmxlbmRpbmdL
ZXlmcmFtZXMuc2l6ZSgpOwogICAgIGZvciAoYXV0byBjc3NQcm9wZXJ0eUlkIDogbV9ibGVuZGlu
Z0tleWZyYW1lcy5wcm9wZXJ0aWVzKCkpIHsKICAgICAgICAgaWYgKCFDU1NQcm9wZXJ0eUFuaW1h
dGlvbjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxlcmF0ZWQoY3NzUHJvcGVydHlJZCkpIHsK
ICAgICAgICAgICAgIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5kZXggODU2MDk4MTI2MDNiZjczMDA1ODU1
M2ZmY2EzMDAxMTdiZjdiZmQ5ZC4uZDU5ZTI4OTVlMGMzOTdlM2M5NDk0NjMyOGM5ODgwY2M4OTI2
ZWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKQEAgLTk4
LDYgKzk4LDggQEAgcHVibGljOgogICAgICAgICBDb21wb3NpdGVPcGVyYXRpb25PckF1dG8gY29t
cG9zaXRlIHsgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvOjpBdXRvIH07CiAgICAgfTsKIAorICAg
IGNvbnN0IFZlY3RvcjxQYXJzZWRLZXlmcmFtZT4mIHBhcnNlZEtleWZyYW1lcygpIGNvbnN0IHsg
cmV0dXJuIG1fcGFyc2VkS2V5ZnJhbWVzOyB9CisKICAgICBFbGVtZW50KiB0YXJnZXQoKSBjb25z
dCB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0VGFyZ2V0KFJlZlB0cjxF
bGVtZW50PiYmKTsKIApAQCAtMTM1LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbG9y
RmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb2xv
ckZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogCiAgICAgdm9pZCBjb21wdXRlRGVjbGFyYXRp
dmVBbmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUs
IGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7Ci0gICAgYm9vbCBoYXNCbGVuZGluZ0tleWZy
YW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyB9CisgICAg
Y29uc3QgS2V5ZnJhbWVMaXN0JiBibGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1f
YmxlbmRpbmdLZXlmcmFtZXM7IH0KICAgICBjb25zdCBIYXNoU2V0PENTU1Byb3BlcnR5SUQ+JiBh
bmltYXRlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnBy
b3BlcnRpZXMoKTsgfQogCiAgICAgYm9vbCBjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRp
b24oTGF5b3V0UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0
aW9uLmNwcAppbmRleCAzYjg3OTBhYTNkOWVkMjY1ZDE3NmRmYzdhMWI1ZjQ0ODY1MjczYjc3Li41
NGVlOWRmMTcxNGVkYjMyNjNmNzY4ZTkxZGM0NjA4OTY0ZGU1MjMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtNDUsNiArNDUsOCBAQAogI2luY2x1ZGUg
IlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Cisj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNTMsMTEgKzU1LDMwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYkFuaW1hdGlvbik7CiAKK0hhc2hTZXQ8V2ViQW5p
bWF0aW9uKj4mIFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKGNvbnN0IExvY2tIb2xkZXImKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFdlYkFuaW1hdGlvbio+PiBpbnN0YW5j
ZXM7CisgICAgcmV0dXJuIGluc3RhbmNlczsKK30KKworTG9jayYgV2ViQW5pbWF0aW9uOjppbnN0
YW5jZXNNdXRleCgpCit7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRl
eDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU11dGV4OworICAgIHN0ZDo6
Y2FsbF9vbmNlKGluaXRpYWxpemVNdXRleCwgW10geworICAgICAgICBtdXRleC5jb25zdHJ1Y3Qo
KTsKKyAgICB9KTsKKyAgICByZXR1cm4gbXV0ZXguZ2V0KCk7Cit9CisKIFJlZjxXZWJBbmltYXRp
b24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgQW5pbWF0aW9uRWZm
ZWN0KiBlZmZlY3QpCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdlYkFuaW1h
dGlvbihkb2N1bWVudCkpOwogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAgICAgcmVz
dWx0LT5zZXRUaW1lbGluZSgmZG9jdW1lbnQudGltZWxpbmUoKSk7CisKKyAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNjcsNiArODgsOSBAQCBSZWY8V2ViQW5pbWF0aW9u
PiBXZWJBbmltYXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEFuaW1hdGlvbkVmZmVj
dCogZWZmZQogICAgIHJlc3VsdC0+c2V0RWZmZWN0KGVmZmVjdCk7CiAgICAgaWYgKHRpbWVsaW5l
KQogICAgICAgICByZXN1bHQtPnNldFRpbWVsaW5lKHRpbWVsaW5lKTsKKworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQoKSk7CisK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC03Nyw2ICsxMDEsOSBAQCBXZWJBbmltYXRpb246
OldlYkFuaW1hdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgbV9yZWFkeVByb21pc2Ut
PnJlc29sdmUoKnRoaXMpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgTG9ja0hvbGRl
ciBsb2NrKGluc3RhbmNlc011dGV4KCkpOworICAgIGluc3RhbmNlcyhsb2NrKS5hZGQodGhpcyk7
CiB9CiAKIFdlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbigpCkBAIC04NSw2ICsxMTIsMTAgQEAg
V2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKIAogICAgIGlmIChtX3RpbWVsaW5lKQogICAg
ICAgICBtX3RpbWVsaW5lLT5mb3JnZXRBbmltYXRpb24odGhpcyk7CisKKyAgICBMb2NrSG9sZGVy
IGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgQVNTRVJUKGluc3RhbmNlcyhsb2NrKS5jb250
YWlucyh0aGlzKSk7CisgICAgaW5zdGFuY2VzKGxvY2spLnJlbW92ZSh0aGlzKTsKIH0KIAogdm9p
ZCBXZWJBbmltYXRpb246OmNvbnRleHREZXN0cm95ZWQoKQpAQCAtMTE2LDYgKzE0Nyw4IEBAIHZv
aWQgV2ViQW5pbWF0aW9uOjp1bnN1c3BlbmRFZmZlY3RJbnZhbGlkYXRpb24oKQogdm9pZCBXZWJB
bmltYXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSgpCiB7CiAgICAgdGltaW5nRGlkQ2hhbmdl
KERpZFNlZWs6Ok5vLCBTeW5jaHJvbm91c2x5Tm90aWZ5OjpZZXMpOworCisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoKnRoaXMp
OwogfQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0RWZmZWN0KFJlZlB0cjxBbmltYXRpb25FZmZl
Y3Q+JiYgbmV3RWZmZWN0KQpAQCAtMTkwLDcgKzIyMyw3IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpz
ZXRFZmZlY3RJbnRlcm5hbChSZWZQdHI8QW5pbWF0aW9uRWZmZWN0PiYmIG5ld0VmZmVjdCwgYm9v
bCBkCiAgICAgICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgq
dGhpcywgKm5ld1RhcmdldCk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoKnRoaXMpOworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBX
ZWJBbmltYXRpb246OnNldFRpbWVsaW5lKFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4mJiB0aW1l
bGluZSkKQEAgLTI0OSwxNCArMjgyLDE1IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRUaW1lbGlu
ZUludGVybmFsKFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4mJiB0aW1lbGluZSkKIAogdm9pZCBX
ZWJBbmltYXRpb246OmVmZmVjdFRhcmdldERpZENoYW5nZShFbGVtZW50KiBwcmV2aW91c1Rhcmdl
dCwgRWxlbWVudCogbmV3VGFyZ2V0KQogewotICAgIGlmICghbV90aW1lbGluZSkKLSAgICAgICAg
cmV0dXJuOworICAgIGlmIChtX3RpbWVsaW5lKSB7CisgICAgICAgIGlmIChwcmV2aW91c1Rhcmdl
dCkKKyAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc1JlbW92ZWRGcm9tRWxlbWVu
dCgqdGhpcywgKnByZXZpb3VzVGFyZ2V0KTsKIAotICAgIGlmIChwcmV2aW91c1RhcmdldCkKLSAg
ICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVtb3ZlZEZyb21FbGVtZW50KCp0aGlzLCAq
cHJldmlvdXNUYXJnZXQpOworICAgICAgICBpZiAobmV3VGFyZ2V0KQorICAgICAgICAgICAgbV90
aW1lbGluZS0+YW5pbWF0aW9uV2FzQWRkZWRUb0VsZW1lbnQoKnRoaXMsICpuZXdUYXJnZXQpOwor
ICAgIH0KIAotICAgIGlmIChuZXdUYXJnZXQpCi0gICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlv
bldhc0FkZGVkVG9FbGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldCgqdGhpcyk7CiB9
CiAKIE9wdGlvbmFsPGRvdWJsZT4gV2ViQW5pbWF0aW9uOjpzdGFydFRpbWUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCmluZGV4IGRhNGQ4ZWMzYmMyZTU3MGI0
OGE1MWRiYzE0YTM0NGU2YzQ5YmEwNzAuLmM5OTYxM2IyNjYxZDc2NWYwZWUzYjg2ZDYxNGY5Y2Qy
YjdkYzIzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIklETFR5cGVz
LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CkBAIC01NCw2ICs1NSw5IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFdlYkFuaW1hdGlvbj4gY3JlYXRlKERvY3VtZW50JiwgQW5pbWF0
aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKICAgICB+V2ViQW5pbWF0aW9uKCk7CiAK
KyAgICBzdGF0aWMgSGFzaFNldDxXZWJBbmltYXRpb24qPiYgaW5zdGFuY2VzKGNvbnN0IExvY2tI
b2xkZXImKTsKKyAgICBzdGF0aWMgTG9jayYgaW5zdGFuY2VzTXV0ZXgoKTsKKwogICAgIHZpcnR1
YWwgYm9vbCBpc0RlY2xhcmF0aXZlQW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNDU1NBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0NTU1RyYW5zaXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcAppbmRleCBkMGM0MzBlMmJiODgwYTZlMzU4M2E5OThkNmRjZmMxNDNiZDZl
YmRlLi4zZGM3YjQ5NGQ2NjU2YTkxYzdkZDljNjhlMWM5ZWFmNzg5NjY2ZDAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cApAQCAtNzIwLDYgKzcyMCw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
b21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50CiAgICAgaWYgKElu
c3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5z
cGVjdG9yQ2FudmFzQWdlbnQoKSkKICAgICAgICAgY2FudmFzQWdlbnQtPmZyYW1lTmF2aWdhdGVk
KGZyYW1lKTsKIAorICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlv
bkFnZW50LT5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CisKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdl
bnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpKQog
ICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0TG9hZChmcmFtZS5kb2N1bWVudCgpKTsKIApAQCAt
MTEzMCwxNSArMTEzMywzNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEFw
cGx5S2V5ZnJhbWVFZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmCiAgICAgICAgIGFuaW1h
dGlvbkFnZW50LT53aWxsQXBwbHlLZXlmcmFtZUVmZmVjdCh0YXJnZXQsIGVmZmVjdCwgY29tcHV0
ZWRUaW1pbmcpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewotICAgIGlm
IChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudCgpKQotICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdl
V2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQo
KSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChhbmlt
YXRpb24pOworICAgIGVsc2UgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1h
dGlvbkFnZW50LT5kaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoYW5pbWF0aW9uKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRp
bWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAg
ICAgYW5pbWF0aW9uQWdlbnQtPmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhhbmlt
YXRpb24pOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2Vi
QW5pbWF0aW9uRWZmZWN0VGFyZ2V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5p
bWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCgpKQorICAgICAgICBhbmltYXRpb25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0VGFyZ2V0KGFuaW1hdGlvbik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChhdXRv
KiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFu
aW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDcmVhdGVXZWJBbmlt
YXRpb24oYW5pbWF0aW9uKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKLSAgICBpZiAoYXV0byogYW5p
bWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQoKSkKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRp
b25BZ2VudC0+d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICBlbHNlIGlm
IChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNw
ZWN0b3JBbmltYXRpb25BZ2VudCgpKQogICAgICAgICBhbmltYXRpb25BZ2VudC0+d2lsbERlc3Ry
b3lXZWJBbmltYXRpb24oYW5pbWF0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGU3ODE4MzY0MGEyOTlh
ZTQxMDcyODVlZjRjMjhhYzgxZDk0MGExZDAuLmIyNDZlYWE1NTlhNzUyNjVjODkwZGZhNDdkMDFk
MzExYzE4NmE0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMwNSw3ICszMDUsMTAgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICBzdGF0aWMgdm9pZCB3aWxsQXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiwgS2V5
ZnJhbWVFZmZlY3QmLCBDb21wdXRlZEVmZmVjdFRpbWluZyk7Ci0gICAgc3RhdGljIHZvaWQgZGlk
Q2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lk
IGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcoV2ViQW5pbWF0aW9uJik7CisgICAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1hdGlv
biYpOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24m
KTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24m
KTsKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoUGFnZSYpOwpAQCAtNTA1
LDcgKzUwOCwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCB3aWxsQXBw
bHlLZXlmcmFtZUVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEVsZW1lbnQmLCBLZXlm
cmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmlt
YXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTZXRXZWJBbmltYXRpb25FZmZlY3RJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRD
aGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBX
ZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBXZWJBbmltYXRpb24mKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRDcmVhdGVXZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
LCBXZWJBbmltYXRpb24mKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveVdlYkFuaW1hdGlv
bkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOwogCiAgICAgc3RhdGlj
IHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CkBAIC0x
NDY2LDExICsxNDcyLDMyIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYgdGFyZ2V0LCBLCiAgICAgICAgIHdpbGxB
cHBseUtleWZyYW1lRWZmZWN0SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdGFyZ2V0LCBlZmZl
Y3QsIGNvbXB1dGVkVGltaW5nKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRp
b24pCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNldFdlYkFuaW1h
dGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBGQVNUX1JFVFVSTl9J
Rl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpKQotICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKCpp
bnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworICAgICAgICBkaWRTZXRXZWJBbmltYXRp
b25FZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQorCitpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVm
ZmVjdFRpbWluZyhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9J
Rl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJ
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdl
dChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFModm9pZCgpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3Ry
dW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpKQorICAgICAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXRJbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24mIGFuaW1h
dGlvbikKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBp
ZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250
ZXh0KGFuaW1hdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQorICAgICAgICBkaWRDcmVh
dGVXZWJBbmltYXRpb25JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBhbmltYXRpb24pOwogfQog
CiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95V2ViQW5p
bWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCmluZGV4IDFmOWEwZDdjNTMyYTNmOTA4NTZj
MTg0YTFmZmMzYjFjZjM1ZWZjODcuLmQ3YTJmNzE5NThkOTQzY2NjYWM0MzRlYWM5M2UzM2RhZTI3
Y2M0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5n
QWdlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgdm9pZCBJbnN0cnVtZW50aW5nQWdlbnRzOjpyZXNl
dCgpCiAgICAgbV9wYWdlRE9NRGVidWdnZXJBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0
b3JDYW52YXNBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQgPSBudWxscHRyOworICAgIG1fZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50
ID0gbnVsbHB0cjsKICAgICBtX3RyYWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxs
cHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVu
dGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2Vu
dHMuaAppbmRleCBmNmZlYTdkYTIxMzYwZGQwOGNjM2Q5NjZiMTRlMmFhYzQ2NTQ0OTE1Li5mNTlj
M2RiZGNhZjc4Y2Y5YzZkOGRiYjQzMmRjY2YyMmYxNWQ1MDdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTE1Niw2ICsxNTYsOSBAQCBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIHBlcnNpc3RlbnRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1h
dGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRQZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fcGVyc2lzdGVudEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KIAorICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KiBlbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJs
ZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQorICAgIHZvaWQgc2V0RW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX2VuYWJs
ZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IGFnZW50OyB9CisKICAgICBJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudCogdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudDsgfQogICAgIHZvaWQgc2V0VHJh
Y2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogYWdl
bnQpIHsgbV90cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KIApAQCAt
MTkwLDYgKzE5Myw3IEBAIHByaXZhdGU6CiAgICAgUGFnZURPTURlYnVnZ2VyQWdlbnQqIG1fcGFn
ZURPTURlYnVnZ2VyQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQq
IG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQqIG1fcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFnZW50IHsgbnVsbHB0ciB9
OworICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX2VuYWJsZWRJbnNwZWN0b3JBbmltYXRp
b25BZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogbV90cmFj
a2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50IHsgbnVsbHB0ciB9OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlv
bkFnZW50LmNwcAppbmRleCBkZTlhMmM1OWJkYWJjMjkwODk2Yzk2MzljZWFiYjRlMmM0NzNiODI5
Li4yMTQzYjNkYmVmMGIxMjhmMGQ3ZjM3ZGVjMGQ2NTE2YmE5YThmZGRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlv
bkFnZW50LmNwcApAQCAtMjksMjkgKzI5LDE5OCBAQAogI2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVj
dC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkVmZmVjdFBoYXNlLmgiCiAjaW5jbHVkZSAiQ1NTQW5p
bWF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1RyYW5zaXRpb24uaCIKKyNp
bmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRmlsbE1v
ZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUgIkpTV2ViQW5pbWF0
aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZlY3QuaCIKKyNpbmNsdWRlICJLZXlmcmFtZUxp
c3QuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxheWJhY2tEaXJlY3Rpb24uaCIK
KyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGltaW5nRnVuY3Rpb24uaCIK
ICNpbmNsdWRlICJXZWJBbmltYXRpb24uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVu
dGlmaWVyc0ZhY3RvcnkuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JFbnZp
cm9ubWVudC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAorc3RhdGljIE9wdGlvbmFsPGRvdWJs
ZT4gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoY29uc3QgU2Vjb25kcyYgc2Vjb25kcykKK3sKKyAg
ICBpZiAoc2Vjb25kcyA9PSBTZWNvbmRzOjppbmZpbml0eSgpIHx8IHNlY29uZHMgPT0gU2Vjb25k
czo6bmFuKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHNlY29u
ZHMubWlsbGlzZWNvbmRzKCk7Cit9CisKK3N0YXRpYyBPcHRpb25hbDxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBbmltYXRpb246OlBsYXliYWNrRGlyZWN0aW9uPiBwcm90b2NvbFZhbHVlRm9yUGxheWJh
Y2tEaXJlY3Rpb24oUGxheWJhY2tEaXJlY3Rpb24gcGxheWJhY2tEaXJlY3Rpb24pCit7CisgICAg
c3dpdGNoIChwbGF5YmFja0RpcmVjdGlvbikgeworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246
Ok5vcm1hbDoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6
UGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbDsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpS
ZXZlcnNlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQ
bGF5YmFja0RpcmVjdGlvbjo6UmV2ZXJzZTsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpB
bHRlcm5hdGU6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OlBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5hdGU7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlv
bjo6QWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFuaW1hdGlvbjo6UGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZVJldmVyc2U7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30K
Kworc3RhdGljIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1v
ZGU+IHByb3RvY29sVmFsdWVGb3JGaWxsTW9kZShGaWxsTW9kZSBmaWxsTW9kZSkKK3sKKyAgICBz
d2l0Y2ggKGZpbGxNb2RlKSB7CisgICAgY2FzZSBGaWxsTW9kZTo6Tm9uZToKKyAgICAgICAgcmV0
dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6Ok5vbmU7CisgICAg
Y2FzZSBGaWxsTW9kZTo6Rm9yd2FyZHM6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBbmltYXRpb246OkZpbGxNb2RlOjpGb3J3YXJkczsKKyAgICBjYXNlIEZpbGxNb2RlOjpC
YWNrd2FyZHM6CisgICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246
OkZpbGxNb2RlOjpCYWNrd2FyZHM7CisgICAgY2FzZSBGaWxsTW9kZTo6Qm90aDoKKyAgICAgICAg
cmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkJvdGg7Cisg
ICAgY2FzZSBGaWxsTW9kZTo6QXV0bzoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6OkF1dG87CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworc3RhdGljIFJlZjxKU09O
OjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU+PiBidWls
ZE9iamVjdEZvcktleWZyYW1lcyhLZXlmcmFtZUVmZmVjdCYga2V5ZnJhbWVFZmZlY3QpCit7Cisg
ICAgYXV0byBrZXlmcmFtZXNQYXlsb2FkID0gSlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBbmltYXRpb246OktleWZyYW1lPjo6Y3JlYXRlKCk7CisKKyAgICBjb25zdCBhdXRvJiBi
bGVuZGluZ0tleWZyYW1lcyA9IGtleWZyYW1lRWZmZWN0LmJsZW5kaW5nS2V5ZnJhbWVzKCk7Cisg
ICAgY29uc3QgYXV0byYgcGFyc2VkS2V5ZnJhbWVzID0ga2V5ZnJhbWVFZmZlY3QucGFyc2VkS2V5
ZnJhbWVzKCk7CisKKyAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGtleWZyYW1lRWZm
ZWN0LmFuaW1hdGlvbigpKSkgeworICAgICAgICBBU1NFUlQoa2V5ZnJhbWVFZmZlY3QudGFyZ2V0
KCkpOworICAgICAgICBhdXRvKiByZW5kZXJlciA9IGtleWZyYW1lRWZmZWN0LnRhcmdldCgpLT5y
ZW5kZXJlcigpOworCisgICAgICAgIC8vIFN5bnRoZXNpemUgQ1NTIHN0eWxlIGRlY2xhcmF0aW9u
cyBmb3IgZWFjaCBrZXlmcmFtZSBzbyB0aGUgZnJvbnRlbmQgY2FuIGRpc3BsYXkgdGhlbS4KKyAg
ICAgICAgQ29tcHV0ZWRTdHlsZUV4dHJhY3RvciBjb21wdXRlZFN0eWxlRXh0cmFjdG9yKGtleWZy
YW1lRWZmZWN0LnRhcmdldCgpKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJs
ZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBibGVuZGlu
Z0tleWZyYW1lID0gYmxlbmRpbmdLZXlmcmFtZXNbaV07CisKKyAgICAgICAgICAgIEFTU0VSVChi
bGVuZGluZ0tleWZyYW1lLnN0eWxlKCkpOworICAgICAgICAgICAgYXV0byYgc3R5bGUgPSAqYmxl
bmRpbmdLZXlmcmFtZS5zdHlsZSgpOworCisgICAgICAgICAgICBhdXRvIGtleWZyYW1lUGF5bG9h
ZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6S2V5ZnJhbWU6OmNyZWF0ZSgpCisg
ICAgICAgICAgICAgICAgLnNldE9mZnNldChibGVuZGluZ0tleWZyYW1lLmtleSgpKQorICAgICAg
ICAgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICAgICAgICAgIFJlZlB0cjxUaW1pbmdGdW5jdGlv
bj4gdGltaW5nRnVuY3Rpb247CisgICAgICAgICAgICBpZiAoIXBhcnNlZEtleWZyYW1lcy5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBwYXJzZWRLZXlmcmFtZXNb
aV0udGltaW5nRnVuY3Rpb247CisgICAgICAgICAgICBpZiAoIXRpbWluZ0Z1bmN0aW9uKQorICAg
ICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gYmxlbmRpbmdLZXlmcmFtZS50aW1pbmdGdW5j
dGlvbigpOworICAgICAgICAgICAgaWYgKCF0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgICAg
ICB0aW1pbmdGdW5jdGlvbiA9IGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPigqa2V5ZnJh
bWVFZmZlY3QuYW5pbWF0aW9uKCkpLmJhY2tpbmdBbmltYXRpb24oKS50aW1pbmdGdW5jdGlvbigp
OworICAgICAgICAgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAgICAgICAgIGtleWZy
YW1lUGF5bG9hZC0+c2V0RWFzaW5nKHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOworCisgICAg
ICAgICAgICBTdHJpbmdCdWlsZGVyIHN0eWxlUGF5bG9hZEJ1aWxkZXI7CisgICAgICAgICAgICBh
dXRvJiBjc3NQcm9wZXJ0eUlkcyA9IGJsZW5kaW5nS2V5ZnJhbWUucHJvcGVydGllcygpOworICAg
ICAgICAgICAgc2l6ZV90IGNvdW50ID0gY3NzUHJvcGVydHlJZHMuc2l6ZSgpOworICAgICAgICAg
ICAgZm9yIChhdXRvIGNzc1Byb3BlcnR5SWQgOiBjc3NQcm9wZXJ0eUlkcykgeworICAgICAgICAg
ICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAgICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NT
UHJvcGVydHlDdXN0b20pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBlbmQoZ2V0UHJvcGVydHlOYW1lU3RyaW5n
KGNzc1Byb3BlcnR5SWQpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFw
cGVuZCgiOiAiKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byB2YWx1ZSA9IGNvbXB1dGVkU3R5
bGVFeHRyYWN0b3IudmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoc3R5bGUsIGNzc1Byb3BlcnR5SWQs
IHJlbmRlcmVyKSkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRlci5hcHBl
bmQodmFsdWUtPmNzc1RleHQoKSk7CisgICAgICAgICAgICAgICAgc3R5bGVQYXlsb2FkQnVpbGRl
ci5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPiAwKQorICAgICAgICAg
ICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKCFzdHlsZVBheWxvYWRCdWlsZGVyLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldFN0eWxlKHN0eWxlUGF5bG9hZEJ1aWxkZXIu
dG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGtleWZyYW1lc1BheWxvYWQtPmFkZEl0ZW0oV1RG
TW92ZShrZXlmcmFtZVBheWxvYWQpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAg
IGZvciAoY29uc3QgYXV0byYgcGFyc2VkS2V5ZnJhbWUgOiBwYXJzZWRLZXlmcmFtZXMpIHsKKyAg
ICAgICAgICAgIGF1dG8ga2V5ZnJhbWVQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5p
bWF0aW9uOjpLZXlmcmFtZTo6Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAuc2V0T2Zmc2V0KHBh
cnNlZEtleWZyYW1lLmNvbXB1dGVkT2Zmc2V0KQorICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7
CisKKyAgICAgICAgICAgIGlmICghcGFyc2VkS2V5ZnJhbWUuZWFzaW5nLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBrZXlmcmFtZVBheWxvYWQtPnNldEVhc2luZyhwYXJzZWRLZXlmcmFtZS5l
YXNpbmcpOworICAgICAgICAgICAgZWxzZSBpZiAoY29uc3QgYXV0byYgdGltaW5nRnVuY3Rpb24g
PSBwYXJzZWRLZXlmcmFtZS50aW1pbmdGdW5jdGlvbikKKyAgICAgICAgICAgICAgICBrZXlmcmFt
ZVBheWxvYWQtPnNldEVhc2luZyh0aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpKTsKKworICAgICAg
ICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5zdHlsZS0+aXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0U3R5bGUocGFyc2VkS2V5ZnJhbWUuc3R5bGUtPmFzVGV4
dCgpKTsKKworICAgICAgICAgICAga2V5ZnJhbWVzUGF5bG9hZC0+YWRkSXRlbShXVEZNb3ZlKGtl
eWZyYW1lUGF5bG9hZCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGtleWZyYW1l
c1BheWxvYWQ7Cit9CisKK3N0YXRpYyBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpFZmZlY3Q+IGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KEFuaW1hdGlvbkVmZmVjdCYgZWZmZWN0KQor
eworICAgIGF1dG8gZWZmZWN0UGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlv
bjo6RWZmZWN0OjpjcmVhdGUoKQorICAgICAgICAucmVsZWFzZSgpOworCisgICAgaWYgKGF1dG8g
c3RhcnREZWxheSA9IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGVmZmVjdC5kZWxheSgpKSkKKyAg
ICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0U3RhcnREZWxheShzdGFydERlbGF5LnZhbHVlKCkpOwor
CisgICAgaWYgKGF1dG8gZW5kRGVsYXkgPSBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3Qu
ZW5kRGVsYXkoKSkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEVuZERlbGF5KGVuZERlbGF5
LnZhbHVlKCkpOworCisgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9uQ291bnQoZWZmZWN0
Lml0ZXJhdGlvbnMoKSk7CisgICAgZWZmZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9uU3RhcnQoZWZm
ZWN0Lml0ZXJhdGlvblN0YXJ0KCkpOworCisgICAgaWYgKGF1dG8gaXRlcmF0aW9uRHVyYXRpb24g
PSBwcm90b2NvbFZhbHVlRm9yU2Vjb25kcyhlZmZlY3QuaXRlcmF0aW9uRHVyYXRpb24oKSkpCisg
ICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEl0ZXJhdGlvbkR1cmF0aW9uKGl0ZXJhdGlvbkR1cmF0
aW9uLnZhbHVlKCkpOworCisgICAgaWYgKGF1dG8qIHRpbWluZ0Z1bmN0aW9uID0gZWZmZWN0LnRp
bWluZ0Z1bmN0aW9uKCkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldFRpbWluZ0Z1bmN0aW9u
KHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOworCisgICAgaWYgKGF1dG8gcGxheWJhY2tEaXJl
Y3Rpb24gPSBwcm90b2NvbFZhbHVlRm9yUGxheWJhY2tEaXJlY3Rpb24oZWZmZWN0LmRpcmVjdGlv
bigpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0UGxheWJhY2tEaXJlY3Rpb24ocGxheWJh
Y2tEaXJlY3Rpb24udmFsdWUoKSk7CisKKyAgICBpZiAoYXV0byBmaWxsTW9kZSA9IHByb3RvY29s
VmFsdWVGb3JGaWxsTW9kZShlZmZlY3QuZmlsbCgpKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+
c2V0RmlsbE1vZGUoZmlsbE1vZGUudmFsdWUoKSk7CisKKyAgICBpZiAoaXM8S2V5ZnJhbWVFZmZl
Y3Q+KGVmZmVjdCkpCisgICAgICAgIGVmZmVjdFBheWxvYWQtPnNldEtleWZyYW1lcyhidWlsZE9i
amVjdEZvcktleWZyYW1lcyhkb3duY2FzdDxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0KSkpOworCisg
ICAgcmV0dXJuIGVmZmVjdFBheWxvYWQ7Cit9CisKIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIDog
SW5zcGVjdG9yQWdlbnRCYXNlKCJBbmltYXRpb24iX3MsIGNvbnRleHQpCiAgICAgLCBtX2Zyb250
ZW5kRGlzcGF0Y2hlcihtYWtlVW5pcXVlPEluc3BlY3Rvcjo6QW5pbWF0aW9uRnJvbnRlbmREaXNw
YXRjaGVyPihjb250ZXh0LmZyb250ZW5kUm91dGVyKSkKICAgICAsIG1fYmFja2VuZERpc3BhdGNo
ZXIoSW5zcGVjdG9yOjpBbmltYXRpb25CYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGNvbnRleHQu
YmFja2VuZERpc3BhdGNoZXIsIHRoaXMpKQorICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIo
Y29udGV4dC5pbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgLCBtX2luc3BlY3RlZFBhZ2UoY29u
dGV4dC5pbnNwZWN0ZWRQYWdlKQorICAgICwgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lcigqdGhp
cywgJkluc3BlY3RvckFuaW1hdGlvbkFnZW50OjphbmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVk
KQogewogfQogCkBAIC02NywxMSArMjM2LDEwMyBAQCB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewog
ICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CiAgICAgc3RvcFRyYWNraW5nKGlnbm9yZWQpOworICAg
IGRpc2FibGUoaWdub3JlZCk7CiAKICAgICBBU1NFUlQobV9pbnN0cnVtZW50aW5nQWdlbnRzLnBl
cnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpID09IHRoaXMpOwogICAgIG1faW5zdHJ1
bWVudGluZ0FnZW50cy5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0
cik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmVuYWJsZShFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcpCit7CisgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVk
SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSA9PSB0aGlzKSB7CisgICAgICAgIGVycm9yU3RyaW5n
ID0gIkFuaW1hdGlvbiBkb21haW4gYWxyZWFkeSBlbmFibGVkIl9zOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEVuYWJsZWRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCh0aGlzKTsKKworICAgIGNvbnN0IGF1dG8gZXhpc3RzSW5DdXJyZW50UGFn
ZSA9IFsmXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkg
eworICAgICAgICBpZiAoIWlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE2ODQ3NT4gV2ViIEluc3BlY3RvcjogQ29ycmVjdGx5IGRpc3BsYXkgaWZyYW1l
J3MgV2ViU29ja2V0cworICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5wYWdl
KCkgPT0gJm1faW5zcGVjdGVkUGFnZTsKKyAgICB9OworCisgICAgeworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2soV2ViQW5pbWF0aW9uOjppbnN0YW5jZXNNdXRleCgpKTsKKyAgICAgICAgZm9yIChh
dXRvKiBhbmltYXRpb24gOiBXZWJBbmltYXRpb246Omluc3RhbmNlcyhsb2NrKSkgeworICAgICAg
ICAgICAgaWYgKGV4aXN0c0luQ3VycmVudFBhZ2UoYW5pbWF0aW9uLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpKQorICAgICAgICAgICAgICAgIGJpbmRBbmltYXRpb24oKmFuaW1hdGlvbiwgZmFs
c2UpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKK3sKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0
RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KG51bGxwdHIpOworCisgICAgcmVzZXQoKTsK
K30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVxdWVzdEVmZmVjdFRhcmdldChF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGludCog
bm9kZUlkKQoreworICAgIGF1dG8qIGFuaW1hdGlvbiA9IGFzc2VydEFuaW1hdGlvbihlcnJvclN0
cmluZywgYW5pbWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvKiBkb21BZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JE
T01BZ2VudCgpOworICAgIGlmICghZG9tQWdlbnQpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAi
RE9NIGRvbWFpbiBtdXN0IGJlIGVuYWJsZWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOworICAgIGlmICghaXM8S2V5
ZnJhbWVFZmZlY3Q+KGVmZmVjdCkpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0aW9u
IGZvciBnaXZlbiBhbmltYXRpb25JZCBkb2VzIG5vdCBoYXZlIGFuIGVmZmVjdCJfczsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGtleWZyYW1lRWZmZWN0ID0gZG93bmNhc3Q8
S2V5ZnJhbWVFZmZlY3Q+KCplZmZlY3QpOworCisgICAgYXV0byogdGFyZ2V0ID0ga2V5ZnJhbWVF
ZmZlY3QudGFyZ2V0KCk7CisgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcg
PSAiQW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZCBkb2VzIG5vdCBoYXZlIGEgdGFyZ2V0
Il9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKm5vZGVJZCA9IGRvbUFnZW50LT5w
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCB0YXJnZXQpOworfQorCit2b2lkIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXNvbHZlQW5pbWF0aW9uKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgY29uc3QgU3RyaW5nKiBvYmplY3RH
cm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4m
IHJlc3VsdCkKK3sKKyAgICBhdXRvKiBhbmltYXRpb24gPSBhc3NlcnRBbmltYXRpb24oZXJyb3JT
dHJpbmcsIGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byogc3RhdGUgPSBhbmltYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+ZXhlY1N0YXRlKCk7CisgICAgYXV0byBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmluamVjdGVkU2NyaXB0Rm9yKHN0YXRlKTsKKyAgICBBU1NFUlQoIWluamVjdGVk
U2NyaXB0Lmhhc05vVmFsdWUoKSk7CisKKyAgICBKU0M6OkpTVmFsdWUgdmFsdWU7CisgICAgewor
ICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHN0YXRlKTsKKworICAgICAgICBhdXRvKiBn
bG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKHN0YXRlKTsK
KyAgICAgICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QsIGFuaW1hdGlvbik7Cisg
ICAgfQorCisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgZXJyb3JTdHJpbmcgPSAiSW50ZXJuYWwgZXJyb3I6IHVua25vd24gQW5pbWF0aW9u
IGZvciBnaXZlbiBhbmltYXRpb25JZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFN0cmluZyBvYmplY3RHcm91cE5hbWUgPSBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6IFN0
cmluZygpOworICAgIHJlc3VsdCA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QodmFsdWUsIG9i
amVjdEdyb3VwTmFtZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0YXJ0
VHJhY2tpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogewogICAgIGlmIChtX2luc3RydW1l
bnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpID09IHRoaXMpIHsK
QEAgLTE3MCwxNiArNDMxLDE1MSBAQCB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxs
QXBwbHlLZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0YXJnZXQsIEtleWZyYW1lRQogICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1VwZGF0ZShtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0
b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMoKSwgV1RGTW92ZShldmVudCkpOwogfQog
Ci12b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
OjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAg
ICAgaWYgKGlzPERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKQogICAgICAgICBzdG9w
VHJhY2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlv
bj4oYW5pbWF0aW9uKSk7CisKKyAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmco
YW5pbWF0aW9uKTsKKyAgICBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoYW5pbWF0
aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZGlkQ2hhbmdlV2ViQW5p
bWF0aW9uRWZmZWN0VGltaW5nKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIC8vIFRo
ZSBgYW5pbWF0aW9uSWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRpb24gaXMgdHJhY2tpbmcgYnV0
IG5vdCBlbmFibGVkLgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBmaW5kQW5pbWF0aW9uSWQoYW5p
bWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoYXV0byogZWZmZWN0ID0gYW5pbWF0aW9uLmVmZmVjdCgpKQorICAgICAgICBt
X2Zyb250ZW5kRGlzcGF0Y2hlci0+ZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgYnVpbGRPYmpl
Y3RGb3JFZmZlY3QoKmVmZmVjdCkpOworICAgIGVsc2UKKyAgICAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXItPmVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIG51bGxwdHIpOworfQorCit2b2lkIElu
c3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQo
V2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5
IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAg
YXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmIChh
bmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT50YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkKTsKK30KKwordm9pZCBJbnNwZWN0
b3JBbmltYXRpb25BZ2VudDo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5p
bWF0aW9uKQoreworICAgIGlmICghZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbikuaXNFbXB0eSgp
KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYmluZEFuaW1hdGlvbihhbmltYXRpb24sIHRydWUpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveVdlYkFuaW1hdGlvbihXZWJBbmltYXRpb24m
IGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlv
bikpCiAgICAgICAgIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKGRvd25jYXN0PERl
Y2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRpb24pKTsKKworICAgIC8vIFRoZSBgYW5pbWF0aW9u
SWRgIG1heSBiZSBlbXB0eSBpZiBBbmltYXRpb24gaXMgdHJhY2tpbmcgYnV0IG5vdCBlbmFibGVk
LgorICAgIGF1dG8gYW5pbWF0aW9uSWQgPSBmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKTsKKyAg
ICBpZiAoIWFuaW1hdGlvbklkLmlzRW1wdHkoKSkKKyAgICAgICAgdW5iaW5kQW5pbWF0aW9uKGFu
aW1hdGlvbklkKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZnJhbWVOYXZp
Z2F0ZWQoRnJhbWUmIGZyYW1lKQoreworICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7Cisg
ICAgICAgIHJlc2V0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3Ry
aW5nPiBhbmltYXRpb25JZHNUb1JlbW92ZTsKKyAgICBmb3IgKGF1dG8mIFthbmltYXRpb25JZCwg
YW5pbWF0aW9uXSA6IG1fYW5pbWF0aW9uSWRNYXApIHsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQgPSBhbmltYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkg
eworICAgICAgICAgICAgaWYgKGlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSAm
JiBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLmZyYW1lKCkgPT0g
JmZyYW1lKQorICAgICAgICAgICAgICAgIGFuaW1hdGlvbklkc1RvUmVtb3ZlLmFwcGVuZChhbmlt
YXRpb25JZCk7CisgICAgICAgIH0KKyAgICB9CisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRp
b25JZCA6IGFuaW1hdGlvbklkc1RvUmVtb3ZlKQorICAgICAgICB1bmJpbmRBbmltYXRpb24oYW5p
bWF0aW9uSWQpOworfQorCitTdHJpbmcgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZpbmRBbmlt
YXRpb25JZChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK3sKKyAgICBmb3IgKGF1dG8mIFthbmlt
YXRpb25JZCwgZXhpc3RpbmdBbmltYXRpb25dIDogbV9hbmltYXRpb25JZE1hcCkgeworICAgICAg
ICBpZiAoZXhpc3RpbmdBbmltYXRpb24gPT0gJmFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVy
biBhbmltYXRpb25JZDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxTdHJpbmcoKTsKK30KKworV2Vi
QW5pbWF0aW9uKiBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6YXNzZXJ0QW5pbWF0aW9uKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCkKK3sKKyAgICBh
dXRvKiBhbmltYXRpb24gPSBtX2FuaW1hdGlvbklkTWFwLmdldChhbmltYXRpb25JZCk7CisgICAg
aWYgKCFhbmltYXRpb24pCisgICAgICAgIGVycm9yU3RyaW5nID0gIk1pc3NpbmcgYW5pbWF0aW9u
IGZvciBnaXZlbiBhbmltYXRpb25JZCJfczsKKyAgICByZXR1cm4gYW5pbWF0aW9uOworfQorCit2
b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpiaW5kQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYg
YW5pbWF0aW9uLCBib29sIGNhcHR1cmVCYWNrdHJhY2UpCit7CisgICAgYXV0byBhbmltYXRpb25J
ZCA9IG1ha2VTdHJpbmcoImFuaW1hdGlvbjoiICsgSWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJ
ZGVudGlmaWVyKCkpOworICAgIG1fYW5pbWF0aW9uSWRNYXAuc2V0KGFuaW1hdGlvbklkLCAmYW5p
bWF0aW9uKTsKKworICAgIGF1dG8gYW5pbWF0aW9uUGF5bG9hZCA9IEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFuaW1hdGlvbjo6QW5pbWF0aW9uOjpjcmVhdGUoKQorICAgICAgICAuc2V0QW5pbWF0aW9u
SWQoYW5pbWF0aW9uSWQpCisgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICBpZiAoaXM8Q1NTQW5p
bWF0aW9uPihhbmltYXRpb24pKQorICAgICAgICBhbmltYXRpb25QYXlsb2FkLT5zZXRDc3NBbmlt
YXRpb25OYW1lKGRvd25jYXN0PENTU0FuaW1hdGlvbj4oYW5pbWF0aW9uKS5hbmltYXRpb25OYW1l
KCkpOworICAgIGVsc2UgaWYgKGlzPENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbikpCisgICAgICAg
IGFuaW1hdGlvblBheWxvYWQtPnNldENzc1RyYW5zaXRpb25Qcm9wZXJ0eShkb3duY2FzdDxDU1NU
cmFuc2l0aW9uPihhbmltYXRpb24pLnRyYW5zaXRpb25Qcm9wZXJ0eSgpKTsKKworICAgIGlmIChh
dXRvKiBlZmZlY3QgPSBhbmltYXRpb24uZWZmZWN0KCkpCisgICAgICAgIGFuaW1hdGlvblBheWxv
YWQtPnNldEVmZmVjdChidWlsZE9iamVjdEZvckVmZmVjdCgqZWZmZWN0KSk7CisKKyAgICBpZiAo
Y2FwdHVyZUJhY2t0cmFjZSkgeworICAgICAgICBhdXRvIHN0YWNrVHJhY2UgPSBJbnNwZWN0b3I6
OmNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0V4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIEluc3Bl
Y3Rvcjo6U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKTsKKyAgICAg
ICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0QmFja3RyYWNlKHN0YWNrVHJhY2UtPmJ1aWxkSW5zcGVj
dG9yQXJyYXkoKSk7CisgICAgfQorCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmFuaW1hdGlv
bkNyZWF0ZWQoV1RGTW92ZShhbmltYXRpb25QYXlsb2FkKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OnVuYmluZEFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklk
KQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAucmVtb3ZlKGFuaW1hdGlvbklkKTsKKworICAgIC8v
IFRoaXMgY2FuIGJlIGNhbGxlZCBpbiByZXNwb25zZSB0byBHQy4gRHVlIHRvIHRoZSBzaW5nbGUt
cHJvY2VzcyBtb2RlbCB1c2VkIGluIFdlYktpdDEsIHRoZQorICAgIC8vIGV2ZW50IG11c3QgYmUg
ZGlzcGF0Y2hlZCBmcm9tIGEgdGltZXIgdG8gcHJldmVudCB0aGUgZnJvbnRlbmQgZnJvbSBtYWtp
bmcgSlMgYWxsb2NhdGlvbnMKKyAgICAvLyB3aGlsZSB0aGUgR0MgaXMgc3RpbGwgYWN0aXZlLgor
ICAgIG1fcmVtb3ZlZEFuaW1hdGlvbklkcy5hcHBlbmQoYW5pbWF0aW9uSWQpOworCisgICAgaWYg
KCFtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fYW5pbWF0
aW9uRGVzdHJveWVkVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
QW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQoKQoreworICAgIGlm
ICghbV9yZW1vdmVkQW5pbWF0aW9uSWRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Zm9yIChhdXRvJiBpZGVudGlmaWVyIDogbV9yZW1vdmVkQW5pbWF0aW9uSWRzKQorICAgICAgICBt
X2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0aW9uRGVzdHJveWVkKGlkZW50aWZpZXIpOworCisg
ICAgbV9yZW1vdmVkQW5pbWF0aW9uSWRzLmNsZWFyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OnJlc2V0KCkKK3sKKyAgICBtX2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7CisK
KyAgICBtX3JlbW92ZWRBbmltYXRpb25JZHMuY2xlYXIoKTsKKworICAgIGlmIChtX2FuaW1hdGlv
bkRlc3Ryb3llZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fYW5pbWF0aW9uRGVzdHJveWVk
VGltZXIuc3RvcCgpOwogfQogCiB2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpzdG9wVHJh
Y2tpbmdEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNsYXJhdGl2ZUFuaW1hdGlvbiYgYW5pbWF0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JB
bmltYXRpb25BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBbmltYXRpb25BZ2VudC5oCmluZGV4IDdhMjRiYmNiYjFiMzMxZDE5MGRhNjBjMDBkMjFiZDkz
NTQ4ZmFiMDAuLmQyNjZkN2VmMjFlNDJkODQxZGY2YzBkMzgwNzNkZGVjMjljYWQ5MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFu
aW1hdGlvbkFnZW50LmgKQEAgLTI3LDE2ICsyNywyMSBAQAogCiAjaW5jbHVkZSAiQ29tcHV0ZWRF
ZmZlY3RUaW1pbmcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIKKyNpbmNs
dWRlICJUaW1lci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5k
RGlzcGF0Y2hlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2Nv
bE9iamVjdHMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIEFuaW1hdGlvbkVmZmVjdDsKIGNsYXNzIERlY2xhcmF0aXZlQW5pbWF0aW9u
OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50OworY2xhc3MgRnJhbWU7CiBjbGFzcyBLZXlm
cmFtZUVmZmVjdDsKK2NsYXNzIFBhZ2U7CiBjbGFzcyBXZWJBbmltYXRpb247CiAKIHR5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOwpAQCAtNTMsMjAgKzU4LDQyIEBAIHB1YmxpYzoKICAgICB2b2lk
IHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
bikgb3ZlcnJpZGU7CiAKICAgICAvLyBBbmltYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIK
KyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJs
ZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdEVmZmVjdFRhcmdldChF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQsIGludCogbm9kZUlkKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHJlc29sdmVBbmltYXRpb24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFRy
YWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24KICAgICB2b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBLZXlm
cmFtZUVmZmVjdCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICB2b2lkIGRpZENoYW5nZVdl
YkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZFNldFdlYkFuaW1h
dGlvbkVmZmVjdChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlv
bkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENoYW5nZVdlYkFuaW1h
dGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRpb24mKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYkFu
aW1hdGlvbihXZWJBbmltYXRpb24mKTsKICAgICB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9u
KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmKTsKIAogcHJp
dmF0ZToKKyAgICBTdHJpbmcgZmluZEFuaW1hdGlvbklkKFdlYkFuaW1hdGlvbiYpOworICAgIFdl
YkFuaW1hdGlvbiogYXNzZXJ0QW5pbWF0aW9uKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBh
bmltYXRpb25JZCk7CisgICAgdm9pZCBiaW5kQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYsIGJvb2wg
Y2FwdHVyZUJhY2t0cmFjZSk7CisgICAgdm9pZCB1bmJpbmRBbmltYXRpb24oY29uc3QgU3RyaW5n
JiBhbmltYXRpb25JZCk7CisgICAgdm9pZCBhbmltYXRpb25EZXN0cm95ZWRUaW1lckZpcmVkKCk7
CisgICAgdm9pZCByZXNldCgpOworCiAgICAgdm9pZCBzdG9wVHJhY2tpbmdEZWNsYXJhdGl2ZUFu
aW1hdGlvbihEZWNsYXJhdGl2ZUFuaW1hdGlvbiYpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPElu
c3BlY3Rvcjo6QW5pbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hl
cjsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpBbmltYXRpb25CYWNrZW5kRGlzcGF0Y2hlcj4gbV9i
YWNrZW5kRGlzcGF0Y2hlcjsKIAorICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
JiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CisK
KyAgICBIYXNoTWFwPFN0cmluZywgV2ViQW5pbWF0aW9uKj4gbV9hbmltYXRpb25JZE1hcDsKKyAg
ICBWZWN0b3I8U3RyaW5nPiBtX3JlbW92ZWRBbmltYXRpb25JZHM7CisgICAgVGltZXIgbV9hbmlt
YXRpb25EZXN0cm95ZWRUaW1lcjsKKwogICAgIHN0cnVjdCBUcmFja2VkRGVjbGFyYXRpdmVBbmlt
YXRpb25EYXRhIHsKICAgICAgICAgU3RyaW5nIHRyYWNraW5nQW5pbWF0aW9uSWQ7CiAgICAgICAg
IENvbXB1dGVkRWZmZWN0VGltaW5nIGxhc3RDb21wdXRlZFRpbWluZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXgg
YWVjYzc5YmMwY2E1NmZiNjVmZTAzMzBmMDhlNGVlNjg4YmY4MWU4OS4uMGY0NmEzMDMzYWVmNDAw
N2Y2ZWI4MzdhNjEwNWYwNWEwYzU5MDY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTU2Niw3ICs1NjYsNyBA
QCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludCBkb2N1bWVudAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAg
ICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlVG9QdXNoKTsKKyAgICByZXR1cm4g
cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChlcnJvclN0cmluZywgbm9kZVRvUHVzaCk7CiB9CiAKIE5v
ZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9ySWQoaW50IGlkKQpAQCAtNjEzLDcgKzYxMyw3
IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnF1ZXJ5U2VsZWN0b3IoRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zCiAgICAgfQogCiAgICAgaWYgKGF1dG8qIGVsZW1l
bnQgPSBxdWVyeVJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkKLSAgICAgICAgKmVsZW1lbnRJ
ZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZWxlbWVudCk7CisgICAgICAgICplbGVtZW50SWQg
PSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBlbGVtZW50KTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxpbnQ+PiYgcmVzdWx0KQpAQCAtNjM5LDEzICs2MzksMjQgQEAgdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGlu
dCBub2RlSWQsIGMKIH0KIAogaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVBhdGhUb0Zy
b250ZW5kKE5vZGUqIG5vZGVUb1B1c2gpCit7CisgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKKyAg
ICByZXR1cm4gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChpZ25vcmVkLCBub2RlVG9QdXNoKTsKK30K
KworaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKEVycm9yU3Ry
aW5nIGVycm9yU3RyaW5nLCBOb2RlKiBub2RlVG9QdXNoKQogewogICAgIEFTU0VSVChub2RlVG9Q
dXNoKTsgIC8vIEludmFsaWQgaW5wdXQKIAotICAgIGlmICghbV9kb2N1bWVudCkKKyAgICBpZiAo
IW1fZG9jdW1lbnQpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBkb2N1bWVudCJf
czsKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKCFtX2RvY3VtZW50Tm9kZVRvSWRNYXAuY29u
dGFpbnMobV9kb2N1bWVudCkpCisgICAgfQorCisgICAgaWYgKCFtX2RvY3VtZW50Tm9kZVRvSWRN
YXAuY29udGFpbnMobV9kb2N1bWVudCkpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiRG9jdW1l
bnQgbXVzdCBoYXZlIGJlZW4gcmVxdWVzdGVkIl9zOwogICAgICAgICByZXR1cm4gMDsKKyAgICB9
CiAKICAgICAvLyBSZXR1cm4gaWQgaW4gY2FzZSB0aGUgbm9kZSBpcyBrbm93bi4KICAgICBpbnQg
cmVzdWx0ID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChub2RlVG9QdXNoKTsKQEAgLTc5MCw3
ICs4MDEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXROb2RlTmFtZShFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0CiAgICAgaWYgKCFtX2RvbUVkaXRvci0+
cmVtb3ZlQ2hpbGQoKnBhcmVudCwgKm9sZE5vZGUsIGVycm9yU3RyaW5nKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgKm5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChuZXdFbGVtZW50LnB0
cigpKTsKKyAgICAqbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBu
ZXdFbGVtZW50LnB0cigpKTsKICAgICBpZiAobV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhu
b2RlSWQpKQogICAgICAgICBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQoKm5ld0lkKTsKIH0KQEAg
LTgzMCw3ICs4NDEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdAogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaW50IG5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChuZXdOb2Rl
KTsKKyAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBu
ZXdOb2RlKTsKIAogICAgIGJvb2wgY2hpbGRyZW5SZXF1ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVz
dGVkLmNvbnRhaW5zKG5vZGVJZCk7CiAgICAgaWYgKGNoaWxkcmVuUmVxdWVzdGVkKQpAQCAtMTQy
Miw3ICsxNDMzLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6bW92ZVRvKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgaW50IHRhcmdldEUKICAgICBpZiAoIW1fZG9tRWRp
dG9yLT5pbnNlcnRCZWZvcmUoKnRhcmdldEVsZW1lbnQsICpub2RlLCBhbmNob3JOb2RlLCBlcnJv
clN0cmluZykpCiAgICAgICAgIHJldHVybjsKIAotICAgICpuZXdOb2RlSWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKG5vZGUpOworICAgICpuZXdOb2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5k
byhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCkBAIC0xNDk4LDExICsxNTA5LDExIEBAIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OmdldEF0dHJpYnV0ZXMoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBpbnQgbm9kZUlkLCBSZWZQCiAgICAgcmVzdWx0ID0gYnVpbGRBcnJheUZvckVsZW1lbnRBdHRy
aWJ1dGVzKGVsZW1lbnQpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZXF1ZXN0Tm9k
ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKQordm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkKIHsKICAgICBOb2RlKiBub2Rl
ID0gbm9kZUZvck9iamVjdElkKG9iamVjdElkKTsKICAgICBpZiAobm9kZSkKLSAgICAgICAgKm5v
ZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAgICAgICpub2RlSWQgPSBw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlKTsKICAgICBlbHNlCiAgICAg
ICAgICpub2RlSWQgPSAwOwogfQpAQCAtMjY0Niw3ICsyNjU3LDcgQEAgTm9kZSogSW5zcGVjdG9y
RE9NQWdlbnQ6Om5vZGVGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKQogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiBl
cnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJZCkKIHsKICAgICBpZiAo
Tm9kZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBhdGgpKQotICAgICAgICAqbm9kZUlkID0gcHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogICAgIGVsc2UKICAgICAgICAgZXJyb3JTdHJp
bmcgPSAiTWlzc2luZyBub2RlIGZvciBnaXZlbiBwYXRoIl9zOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDUxNjM5
YWJlYjg0ZjRkOTVkZWQzZjRmYjY0MDlhZDhmNjJhMjg5NGUuLjdkZjBlODNlYjUzZDc1YzQxYzU1
NGYxNDAxMjM1YmEyMTcxOTQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTE4MCw2ICsxODAsOCBAQCBwdWJsaWM6
CiAKICAgICBpbnQgcHVzaE5vZGVUb0Zyb250ZW5kKE5vZGUqKTsKICAgICBpbnQgcHVzaE5vZGVU
b0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgaW50IGRvY3VtZW50Tm9kZUlkLCBOb2RlKik7CisgICAg
aW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSopOworICAgIGludCBwdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKEVycm9yU3RyaW5nLCBOb2RlKik7CiAgICAgTm9kZSogbm9kZUZvcklkKGludCBu
b2RlSWQpOwogICAgIGludCBib3VuZE5vZGVJZChjb25zdCBOb2RlKik7CiAKQEAgLTIxNyw3ICsy
MTksNiBAQCBwcml2YXRlOgogICAgIE5vZGUqIGFzc2VydEVkaXRhYmxlTm9kZShFcnJvclN0cmlu
ZyYsIGludCBub2RlSWQpOwogICAgIEVsZW1lbnQqIGFzc2VydEVkaXRhYmxlRWxlbWVudChFcnJv
clN0cmluZyYsIGludCBub2RlSWQpOwogCi0gICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
Tm9kZSopOwogICAgIHZvaWQgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKGludCBub2RlSWQsIGlu
dCBkZXB0aCA9IDEpOwogCiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4g
YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4u
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA1OWYzZmEzOTE1ZmZiNjk2ZGQxZTU0OTI0
ZmJmZTQ1YjZiZTU0YjEzLi44MzkxYmZmZDQ5NDMwNGRlMzU3NzVmZDE3NzIzMWNlZTQ1YWQ2ZjVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6
YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTEyNSwxMiArMTI1LDE1IEBA
IGxvY2FsaXplZFN0cmluZ3NbIkFuIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byByZWFkIHRoZSBc
dTIwMUMlc1x1MjAxRCB0YWJsZS4iXSA9CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiB1bmV4cGVjdGVk
IGVycm9yICVzIG9jY3VycmVkLiJdID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQu
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIl0gPSAi
QW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siQW5nbGUi
XSA9ICJBbmdsZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24iXSA9ICJBbmltYXRpb24i
OworbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uICVkIl0gPSAiQW5pbWF0aW9uICVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBDYW5jZWxlZCJdID0gIkFuaW1hdGlv
biBGcmFtZSAlZCBDYW5jZWxlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUg
JWQgRmlyZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgJWQgRmlyZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBS
ZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lIENhbmNlbGVkIl0g
PSAiQW5pbWF0aW9uIEZyYW1lIENhbmNlbGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlv
biBGcmFtZSBGaXJlZCJdID0gIkFuaW1hdGlvbiBGcmFtZSBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIFJlcXVl
c3RlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gVGFyZ2V0Il0gPSAiQW5pbWF0aW9u
IFRhcmdldCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU2NyaXB0ICVkIl0gPSAiQW5v
bnltb3VzIFNjcmlwdCAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbm9ueW1vdXMgU2NyaXB0cyJd
ID0gIkFub255bW91cyBTY3JpcHRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFub255bW91cyBTdHls
ZSBTaGVldCAlZCJdID0gIkFub255bW91cyBTdHlsZSBTaGVldCAlZCI7CkBAIC0yMDEsOSArMjA0
LDExIEBAIGxvY2FsaXplZFN0cmluZ3NbIkNQVSJdID0gIkNQVSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDUFUgVXNhZ2UiXSA9ICJDUFUgVXNhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siQ1NQIEhhc2gi
XSA9ICJDU1AgSGFzaCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQW5pbWF0aW9uIl0gPSAiQ1NT
IEFuaW1hdGlvbiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJDU1MgQW5pbWF0aW9ucyJdID0gIkNTUyBB
bmltYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBDYW52YXMiXSA9ICJDU1MgQ2FudmFz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBDaGFuZ2VzOiJdID0gIkNTUyBDaGFuZ2VzOiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJDU1MgVHJhbnNpdGlvbiJdID0gIkNTUyBUcmFuc2l0aW9uIjsKK2xv
Y2FsaXplZFN0cmluZ3NbIkNTUyBUcmFuc2l0aW9ucyJdID0gIkNTUyBUcmFuc2l0aW9ucyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJDU1MgY2FudmFzIFx1MjAxQyVzXHUyMDFEIl0gPSAiQ1NTIGNhbnZh
cyBcdTIwMUMlc1x1MjAxRCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYWNoZWQiXSA9ICJDYWNoZWQi
OwogbG9jYWxpemVkU3RyaW5nc1siQ2FsbCBGcmFtZXMgVHJ1bmNhdGVkIl0gPSAiQ2FsbCBGcmFt
ZXMgVHJ1bmNhdGVkIjsKQEAgLTIxOCw2ICsyMjMsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDYW5j
ZWxlZCJdID0gIkNhbmNlbGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZhcyJdID0gIkNhbnZh
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgJWQiXSA9ICJDYW52YXMgJWQiOwogbG9jYWxp
emVkU3RyaW5nc1siQ2FudmFzICVzIl0gPSAiQ2FudmFzICVzIjsKKy8qIEJpdG1hcCBSZW5kZXJl
ciBpcyBhIHR5cGUgb2YgcmVuZGVyaW5nIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgPGNhbnZh
cz4gZWxlbWVudCAqLworbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzIENvbnRleHQgVHlwZSBCaXRt
YXAgUmVuZGVyZXIiXSA9ICJCaXRtYXAgUmVuZGVyZXIiOwogbG9jYWxpemVkU3RyaW5nc1siQ2Fu
dmFzIEVsZW1lbnQiXSA9ICJDYW52YXMgRWxlbWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52
YXNlcyJdID0gIkNhbnZhc2VzIjsKIC8qIENhcHR1cmUgc2NyZWVuc2hvdCBvZiB0aGUgc2VsZWN0
ZWQgRE9NIG5vZGUgKi8KQEAgLTU4Nyw2ICs1OTQsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJHbG9i
YWwgQ29kZSJdID0gIkdsb2JhbCBDb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdsb2JhbCBMZXhp
Y2FsIEVudmlyb25tZW50Il0gPSAiR2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQiOwogbG9jYWxp
emVkU3RyaW5nc1siR2xvYmFsIFZhcmlhYmxlcyJdID0gIkdsb2JhbCBWYXJpYWJsZXMiOwogbG9j
YWxpemVkU3RyaW5nc1siR3JhbW1hciJdID0gIkdyYW1tYXIiOworbG9jYWxpemVkU3RyaW5nc1si
R3JhcGhpY3MiXSA9ICJHcmFwaGljcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCJdID0gIkdy
b3VwIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIEJ5IFJlc291cmNlIl0gPSAiR3JvdXAgQnkg
UmVzb3VyY2UiOwogbG9jYWxpemVkU3RyaW5nc1siR3JvdXAgTWVkaWEgUmVxdWVzdHMiXSA9ICJH
cm91cCBNZWRpYSBSZXF1ZXN0cyI7CkBAIC02MzQsNiArNjQyLDcgQEAgbG9jYWxpemVkU3RyaW5n
c1siSW1hZ2VzIl0gPSAiSW1hZ2VzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltYWdlczoiXSA9ICJJ
bWFnZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiXSA9
ICJJbW1lZGlhdGUgUGF1c2UgUmVxdWVzdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydCJd
ID0gIkltcG9ydCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnQgUmVjb3JkaW5nIl0gPSAiSW1w
b3J0IFJlY29yZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCJdID0gIkltcG9ydGVk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIC0gJXMiXSA9ICJJbXBvcnRlZCAtICVzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIFx1MjAxNCAlcyJdID0gIkltcG9ydGVkIFx1MjAx
NCAlcyI7CkBAIC02OTgsNiArNzA3LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTG9jYWwgU3RvcmFn
ZSJdID0gIkxvY2FsIFN0b3JhZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYWwgVmFyaWFibGVz
Il0gPSAiTG9jYWwgVmFyaWFibGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2F0ZWQgYXQgJXMi
XSA9ICJMb2NhdGVkIGF0ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxvY2F0aW9uIl0gPSAiTG9j
YXRpb24iOworbG9jYWxpemVkU3RyaW5nc1siTG9nIEFuaW1hdGlvbiJdID0gIkxvZyBBbmltYXRp
b24iOwogbG9jYWxpemVkU3RyaW5nc1siTG9nIENhbnZhcyBDb250ZXh0Il0gPSAiTG9nIENhbnZh
cyBDb250ZXh0IjsKIC8qIExvZyAocHJpbnQpIERPTSBlbGVtZW50IHRvIENvbnNvbGUgKi8KIGxv
Y2FsaXplZFN0cmluZ3NbIkxvZyBFbGVtZW50Il0gPSAiTG9nIEVsZW1lbnQiOwpAQCAtNzcxLDYg
Kzc4MSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIk5vIEVuYWJsZWQgQXVkaXRzIl0gPSAiTm8gRW5h
YmxlZCBBdWRpdHMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRW50cmllcyJdID0gIk5vIEVudHJp
ZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gRXZlbnQgTGlzdGVuZXJzIl0gPSAiTm8gRXZlbnQg
TGlzdGVuZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIEZpbHRlciBSZXN1bHRzIl0gPSAiTm8g
RmlsdGVyIFJlc3VsdHMiOworbG9jYWxpemVkU3RyaW5nc1siTm8gS2V5ZnJhbWVzIl0gPSAiTm8g
S2V5ZnJhbWVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIExheWVyIEF2YWlsYWJsZSJdID0gIk5v
IExheWVyIEF2YWlsYWJsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBPdmVycmlkZXMiXSA9ICJO
byBPdmVycmlkZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUGFyYW1ldGVycyJdID0gIk5vIFBh
cmFtZXRlcnMiOwpAQCAtNzgyLDYgKzc5Myw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIk5vIFJlc3Bv
bnNlIEhlYWRlcnMiXSA9ICJObyBSZXNwb25zZSBIZWFkZXJzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5vIFJlc3VsdCJdID0gIk5vIFJlc3VsdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBSZXN1bHRz
IEZvdW5kIl0gPSAiTm8gUmVzdWx0cyBGb3VuZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBTZWFy
Y2ggUmVzdWx0cyJdID0gIk5vIFNlYXJjaCBSZXN1bHRzIjsKK2xvY2FsaXplZFN0cmluZ3NbIk5v
IFN0eWxlcyJdID0gIk5vIFN0eWxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBXYXRjaCBFeHBy
ZXNzaW9ucyJdID0gIk5vIFdhdGNoIEV4cHJlc3Npb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5v
IGF1ZGl0IHNlbGVjdGVkIl0gPSAiTm8gYXVkaXQgc2VsZWN0ZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siTm8gY2VydGlmaWNhdGUgc2VjdXJpdHkgaW5mb3JtYXRpb24uIl0gPSAiTm8gY2VydGlmaWNh
dGUgc2VjdXJpdHkgaW5mb3JtYXRpb24uIjsKQEAgLTkwNiw2ICs5MTgsOCBAQCBsb2NhbGl6ZWRT
dHJpbmdzWyJSZWNvcmRpbmciXSA9ICJSZWNvcmRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siUmVj
b3JkaW5nICVkIl0gPSAiUmVjb3JkaW5nICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGlu
ZyBFcnJvcjogJXMiXSA9ICJSZWNvcmRpbmcgRXJyb3I6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlY29yZGluZyBUaW1lbGluZSBEYXRhIl0gPSAiUmVjb3JkaW5nIFRpbWVsaW5lIERhdGEiOwor
LyogQSB0eXBlIG9mIGNhbnZhcyByZWNvcmRpbmcgaW4gdGhlIEdyYXBoaWNzIFRhYiAqLworbG9j
YWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIFR5cGUgQ2FudmFzIEJpdG1hcCBSZW5kZXJlciJdID0g
IkJpdG1hcCBSZW5kZXJlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgV2FybmluZzog
JXMiXSA9ICJSZWNvcmRpbmcgV2FybmluZzogJXMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3Jk
aW5nIHN0b3AgcmVxdWVzdGVkIFx1MjAxNCAlcyJdID0gIlJlY29yZGluZyBzdG9wIHJlcXVlc3Rl
ZCBcdTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5ncyJdID0gIlJlY29yZGlu
Z3MiOwpAQCAtOTE0LDcgKzkyOCw2IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlZGlyZWN0cyJdID0g
IlJlZGlyZWN0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZlcmVuY2UgSXNzdWUiXSA9ICJSZWZl
cmVuY2UgSXNzdWUiOwogbG9jYWxpemVkU3RyaW5nc1siUmVmbGVjdGlvbiJdID0gIlJlZmxlY3Rp
b24iOwogbG9jYWxpemVkU3RyaW5nc1siUmVmcmVzaCJdID0gIlJlZnJlc2giOwotbG9jYWxpemVk
U3RyaW5nc1siUmVmcmVzaCBhbGwiXSA9ICJSZWZyZXNoIGFsbCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJSZWZyZXNoIHdhdGNoIGV4cHJlc3Npb25zIl0gPSAiUmVmcmVzaCB3YXRjaCBleHByZXNzaW9u
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWdpb24gYW5ub3VuY2VkIGluIGl0cyBlbnRpcmV0eS4i
XSA9ICJSZWdpb24gYW5ub3VuY2VkIGluIGl0cyBlbnRpcmV0eS4iOwogbG9jYWxpemVkU3RyaW5n
c1siUmVndWxhciBFeHByZXNzaW9uIl0gPSAiUmVndWxhciBFeHByZXNzaW9uIjsKQEAgLTEwMjQs
NiArMTAzNyw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlNlY3VyaXR5IE9yaWdpbiJdID0gIlNlY3Vy
aXR5IE9yaWdpbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3Qi
XSA9ICJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0
IGNvbXBhcmlzb24gc25hcHNob3QiXSA9ICJTZWxlY3QgY29tcGFyaXNvbiBzbmFwc2hvdCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCJdID0gIlNlbGVjdGVkIjsKKy8qIEFwcGVhcnMgYXMg
YSBsYWJlbCB3aGVuIGEgZ2l2ZW4gd2ViIGFuaW1hdGlvbiBpcyBsb2dnZWQgdG8gdGhlIENvbnNv
bGUgKi8KK2xvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIEFuaW1hdGlvbiJdID0gIlNlbGVjdGVk
IEFuaW1hdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBDYW52YXMgQ29udGV4dCJd
ID0gIlNlbGVjdGVkIENhbnZhcyBDb250ZXh0IjsKIC8qIFNlbGVjdGVkIERPTSBlbGVtZW50ICov
CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBFbGVtZW50Il0gPSAiU2VsZWN0ZWQgRWxlbWVu
dCI7CkBAIC0xMTc5LDYgKzExOTQsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJUaGVzZSB0ZXN0cyBz
ZXJ2ZSBhcyBhIGRlbW9uc3RyYXRpb24gb2YgdGhlIGZ1bmN0aW9uYWxpdHkgYW5kCiBsb2NhbGl6
ZWRTdHJpbmdzWyJUaGlzIFJlc291cmNlIGNhbWUgZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJy
aWRlIl0gPSAiVGhpcyBSZXNvdXJjZSBjYW1lIGZyb20gYSBMb2NhbCBSZXNvdXJjZSBPdmVycmlk
ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFsIGNoYW5n
ZSJdID0gIlRoaXMgYWN0aW9uIGNhdXNlcyBubyB2aXN1YWwgY2hhbmdlIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlRoaXMgYWN0aW9uIG1vdmVzIHRoZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJl
YSJdID0gIlRoaXMgYWN0aW9uIG1vdmVzIHRoZSBwYXRoIG91dHNpZGUgdGhlIHZpc2libGUgYXJl
YSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIl0g
PSAiVGhpcyBhbmltYXRpb24gaGFzIG5vIGR1cmF0aW9uLiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJU
aGlzIGFuaW1hdGlvbiBoYXMgbm8ga2V5ZnJhbWVzLiJdID0gIlRoaXMgYW5pbWF0aW9uIGhhcyBu
byBrZXlmcmFtZXMuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgYXVkaXQgaXMgbm90IHN1cHBv
cnRlZCJdID0gIlRoaXMgYXVkaXQgaXMgbm90IHN1cHBvcnRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93bi4i
XSA9ICJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGN1c3RvbSByZXN1bHQgZGF0YSBpcyBzaG93
bi4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBlcnJvcnMg
YXJlIHNob3duLiBUaGUgZXJyb3Igd2FzIHRocm93biBtYW51YWxseSwgYnV0IGV4ZWN1dGlvbiBl
cnJvcnMgd2lsbCBhcHBlYXIgaW4gdGhlIHNhbWUgd2F5LiJdID0gIlRoaXMgaXMgYW4gZXhhbXBs
ZSBvZiBob3cgZXJyb3JzIGFyZSBzaG93bi4gVGhlIGVycm9yIHdhcyB0aHJvd24gbWFudWFsbHks
IGJ1dCBleGVjdXRpb24gZXJyb3JzIHdpbGwgYXBwZWFyIGluIHRoZSBzYW1lIHdheS4iOwpAQCAt
MTI5MSwxMiArMTMwOCw2NSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3IFNoYWRlciJdID0gIlZp
ZXcgU2hhZGVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZpZXdwb3J0Il0gPSAiVmlld3BvcnQiOwog
bG9jYWxpemVkU3RyaW5nc1siVmlzaWJsZSJdID0gIlZpc2libGUiOwogbG9jYWxpemVkU3RyaW5n
c1siV2FpdGluZyJdID0gIldhaXRpbmciOworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3Ig
YW5pbWF0aW9ucyBjcmVhdGVkIGJ5IENTUy4iXSA9ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNy
ZWF0ZWQgYnkgQ1NTLiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBhbmltYXRpb25z
IGNyZWF0ZWQgYnkgSmF2YVNjcmlwdC4iXSA9ICJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0
ZWQgYnkgSmF2YVNjcmlwdC4iOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgY2FudmFz
IGNvbnRleHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iXSA9ICJXYWl0aW5nIGZvciBjYW52
YXMgY29udGV4dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJXYWl0aW5nIGZvciBmcmFtZXNcdTIwMjYiXSA9ICJXYWl0aW5nIGZvciBmcmFtZXNcdTIwMjYi
OworbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBD
U1MuIl0gPSAiV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRlZCBieSBDU1MuIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIldhcm5pbmc6ICJdID0gIldhcm5pbmc6ICI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJXYXJuaW5ncyJdID0gIldhcm5pbmdzIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhdGNoIEV4cHJl
c3Npb25zIl0gPSAiV2F0Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siV2F0ZXJm
YWxsIl0gPSAiV2F0ZXJmYWxsIjsKK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24iXSA9
ICJXZWIgQW5pbWF0aW9uIjsKKy8qIFNlY3Rpb24gdGl0bGUgZm9yIHRoZSBKYXZhU2NyaXB0IGJh
Y2t0cmFjZSBvZiB0aGUgY3JlYXRpb24gb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRT
dHJpbmdzWyJXZWIgQW5pbWF0aW9uIEJhY2t0cmFjZSBUaXRsZSJdID0gIkJhY2t0cmFjZSI7Cisv
KiBMYWJlbCBmb3IgdGhlIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb24gb2YgYSB3ZWIgYW5p
bWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEVhc2luZyBMYWJlbCJd
ID0gIkVhc2luZyI7CisvKiBTZWN0aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUg
ZWZmZWN0IG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1h
dGlvbiBFZmZlY3QgVGl0bGUiXSA9ICJFZmZlY3QiOworLyogTGFiZWwgZm9yIHRoZSBlbmQgZGVs
YXkgdGltZSBvZiBhIHdlYiBhbmltYXRpb24gICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5p
bWF0aW9uIEVuZCBEZWxheSBMYWJlbCJdID0gIkVuZCBEZWxheSI7CisvKiBUb29sdGlwIGZvciBz
ZWN0aW9uIG9mIGdyYXBoIHJlcHJlc2VudGluZyBkZWxheSBhZnRlciBhIHdlYiBhbmltYXRpb24g
ZmluaXNoZXMgYXBwbHlpbmcgc3R5bGVzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0
aW9uIEVuZCBEZWxheSBUb29sdGlwIl0gPSAiRW5kIERlbGF5ICVzIjsKKy8qIEluZGljYXRlcyB0
aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBlaXRoZXIgZG9lcyBub3QgYXBwbHkgYW55IHN0eWxlcyBi
ZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzIG9yIHRoYXQgaXQgYXBwbGllcyB0byBi
b3RoLCBkZXBlbmRpbmcgb24gaXQncyBjb25maWd1cmF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdz
WyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBBdXRvIl0gPSAiQXV0byI7CisvKiBJbmRpY2F0ZXMg
dGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBiZWZvcmUgaXQgYmVn
aW5zICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBCYWNrd2Fy
ZHMiXSA9ICJCYWNrd2FyZHMiOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9u
IGFsc28gYXBwbGllcyBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lucyBhbmQgYWZ0ZXIgaXQgZW5kcyAq
LworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQm90aCJdID0gIkJv
dGgiOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3ZWIgYW5pbWF0aW9uIGFsc28gYXBwbGllcyBz
dHlsZXMgYWZ0ZXIgaXQgZW5kcyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBG
aWxsIE1vZGUgRm9yd2FyZHMiXSA9ICJGb3J3YXJkcyI7CisvKiBMYWJlbCBmb3IgdGhlIGZpbGwg
bW9kZSBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRp
b24gRmlsbCBNb2RlIExhYmVsIl0gPSAiRmlsbCI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdl
YiBhbmltYXRpb24gZG9lcyBub3QgYXBwbHkgYW55IHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFu
ZCBhZnRlciBpdCBlbmRzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwg
TW9kZSBOb25lIl0gPSAiTm9uZSI7CisvKiBTZWN0aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBh
Ym91dCBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24g
SWRlbnRpdHkgVGl0bGUiXSA9ICJJZGVudGl0eSI7CisvKiBMYWJlbCBmb3IgdGhlIG51bWJlciBv
ZiBpdGVyYXRpb25zIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2Vi
IEFuaW1hdGlvbiBJdGVyYXRpb24gQ291bnQgTGFiZWwiXSA9ICJJdGVyYXRpb25zIjsKKy8qIExh
YmVsIGZvciB0aGUgdGltZSBkdXJhdGlvbiBvZiBlYWNoIGl0ZXJhdGlvbiBvZiBhIHdlYiBhbmlt
YXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gSXRlcmF0aW9uIER1cmF0
aW9uIExhYmVsIl0gPSAiRHVyYXRpb24iOworLyogTGFiZWwgZm9yIHRoZSBudW1iZXIgZGVzY3Jp
YmluZyB3aGljaCBpdGVyYXRpb24gYSB3ZWIgYW5pbWF0aW9uIHNob3VsZCBzdGFydCBhdCAqLwor
bG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gU3RhcnQgTGFiZWwiXSA9
ICJTdGFydCI7CisvKiBTZWN0aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUga2V5
ZnJhbWVzIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1h
dGlvbiBLZXlmcmFtZXMgVGl0bGUiXSA9ICJLZXlmcmFtZXMiOworLyogSW5kaWNhdGVzIHRoYXQg
dGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiB0aGlzIHdlYiBhbmltYXRpb24gYWx0ZXJuYXRlcyBi
ZXR3ZWVuIG5vcm1hbCBhbmQgcmV2ZXJzZWQgb24gZWFjaCBpdGVyYXRpb24gKi8KK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIEFsdGVybmF0ZSJdID0g
IkFsdGVybmF0ZSI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9m
IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5hdGVzIGJldHdlZW4gcmV2ZXJzZWQgYW5kIG5vcm1h
bCBvbiBlYWNoIGl0ZXJhdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQ
bGF5YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIFJldmVyc2UiXSA9ICJBbHRlcm5hdGUgUmV2ZXJz
ZSI7CisvKiBMYWJlbCBmb3IgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiBhIHdlYiBhbmltYXRp
b24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9u
IExhYmVsIl0gPSAiRGlyZWN0aW9uIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBk
aXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlzIG5vcm1hbCAoZS5nLiBmb3J3YXJkcykg
Ki8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIE5v
cm1hbCJdID0gIk5vcm1hbCI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0
aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBpcyByZXZlcnNlZCAoZS5nLiBiYWNrd2FyZHMpICov
Citsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBSZXZl
cnNlIl0gPSAiUmV2ZXJzZSI7CisvKiBMYWJlbCBmb3IgdGhlIHN0YXJ0IGRlbGF5IHRpbWUgb2Yg
YSB3ZWIgYW5pbWF0aW9uICAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBTdGFy
dCBEZWxheSBMYWJlbCJdID0gIlN0YXJ0IERlbGF5IjsKKy8qIFRvb2x0aXAgZm9yIHNlY3Rpb24g
b2YgZ3JhcGggcmVwcmVzZW50aW5nIGRlbGF5IGJlZm9yZSBhIHdlYiBhbmltYXRpb24gYmVnaW5z
IGFwcGx5aW5nIHN0eWxlcyAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBTdGFy
dCBEZWxheSBUb29sdGlwIl0gPSAiU3RhcnQgRGVsYXkgJXMiOworLyogTGFiZWwgZm9yIHRoZSBj
dXJyZW50IERPTSBub2RlIHRhcmdldCBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0
cmluZ3NbIldlYiBBbmltYXRpb24gVGFyZ2V0IExhYmVsIl0gPSAiVGFyZ2V0IjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb25zIl0gPSAiV2ViIEFuaW1hdGlvbnMiOwogbG9jYWxpemVk
U3RyaW5nc1siV2ViIEluc3BlY3RvciJdID0gIldlYiBJbnNwZWN0b3IiOwogbG9jYWxpemVkU3Ry
aW5nc1siV2ViIEluc3BlY3RvciBSZWZlcmVuY2UiXSA9ICJXZWIgSW5zcGVjdG9yIFJlZmVyZW5j
ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgUGFnZSJdID0gIldlYiBQYWdlIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCA4Mjcx
ZTEzYzZiN2Q3ZjMzMWNiMmFlOWVkYzgzMmExNGFjMmYyZTMyLi5lYWNlMTI2N2NhMDYxMDBmNmM3
MGFmMzU0ZDIwNDdlOGQwNGZkZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0xMjMsNiArMTIzLDcgQEAgV0kubG9hZGVkID0g
ZnVuY3Rpb24oKQogICAgICAgICBXSS53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldvcmtlck1hbmFn
ZXIsCiAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5ET01EZWJ1Z2dlck1h
bmFnZXIsCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIgPSBuZXcgV0kuQ2FudmFzTWFuYWdlciwK
KyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlciA9IG5ldyBXSS5BbmltYXRpb25NYW5hZ2VyLAog
ICAgIF07CiAKICAgICAvLyBSZWdpc3RlciBmb3IgZXZlbnRzLgpAQCAtMTQ3LDEzICsxNDgsMTMg
QEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVudFZp
ZXcuVHlwZSwKICAgICAgICAgV0kuVGltZWxpbmVUYWJDb250ZW50Vmlldy5UeXBlLAogICAgICAg
ICBXSS5TdG9yYWdlVGFiQ29udGVudFZpZXcuVHlwZSwKLSAgICAgICAgV0kuQ2FudmFzVGFiQ29u
dGVudFZpZXcuVHlwZSwKKyAgICAgICAgV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlLAog
ICAgICAgICBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLkNvbnNvbGVU
YWJDb250ZW50Vmlldy5UeXBlLAogICAgIF0pOwogICAgIFdJLl9zZWxlY3RlZFRhYkluZGV4U2V0
dGluZyA9IG5ldyBXSS5TZXR0aW5nKCJzZWxlY3RlZC10YWItaW5kZXgiLCAwKTsKIAotICAgIC8v
IFJlcGxhY2UgdGhlIERlYnVnZ2VyL1Jlc291cmNlcyBUYWIgd2l0aCB0aGUgU291cmNlcyBUYWIu
CisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8yMDU4MjY+IFdlYiBJbnNwZWN0
b3I6IHJlbW92ZSBsZWdhY3kgY29kZSBmb3IgcmVwbGFjaW5nIHRoZSBSZXNvdXJjZXMgVGFiIGFu
ZCBEZWJ1Z2dlciBUYWIgd2l0aCB0aGUgU291cmNlcyBUYWIKICAgICBsZXQgZGVidWdnZXJJbmRl
eCA9IFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuaW5kZXhPZigiZGVidWdnZXIiKTsKICAgICBs
ZXQgcmVzb3VyY2VzSW5kZXggPSBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLmluZGV4T2YoInJl
c291cmNlcyIpOwogICAgIGlmIChkZWJ1Z2dlckluZGV4ID49IDAgfHwgcmVzb3VyY2VzSW5kZXgg
Pj0gMCkgewpAQCAtMTczLDYgKzE3NCwxMyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICBXSS5fc2VsZWN0ZWRUYWJJbmRleFNldHRpbmcudmFsdWUgPSBzb3VyY2VzSW5kZXg7
CiAgICAgfQogCisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8yMDU4Mjc+IFdl
YiBJbnNwZWN0b3I6IHJlbW92ZSBsZWdhY3kgY29kZSBmb3IgcmVwbGFjaW5nIHRoZSBDYW52YXMg
VGFiIHdpdGggdGhlIEdyYXBoaWNzIFRhYgorICAgIGxldCBjYW52YXNJbmRleCA9IFdJLl9vcGVu
VGFic1NldHRpbmcudmFsdWUuaW5kZXhPZigiY2FudmFzIik7CisgICAgaWYgKGNhbnZhc0luZGV4
ID49IDApIHsKKyAgICAgICAgV0kuX29wZW5UYWJzU2V0dGluZy52YWx1ZS5zcGxpY2UoY2FudmFz
SW5kZXgsIDEsIFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcuVHlwZSk7CisgICAgICAgIFdJLl9v
cGVuVGFic1NldHRpbmcuc2F2ZSgpOworICAgIH0KKwogICAgIC8vIFN0YXRlLgogICAgIFdJLnBy
aW50U3R5bGVzRW5hYmxlZCA9IGZhbHNlOwogICAgIFdJLnNldFpvb21GYWN0b3IoV0kuc2V0dGlu
Z3Muem9vbUZhY3Rvci52YWx1ZSk7CkBAIC00NjUsNyArNDczLDcgQEAgV0kuY29udGVudExvYWRl
ZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kuU291cmNlc1RhYkNvbnRlbnRWaWV3LAogICAgICAg
ICBXSS5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5TdG9yYWdlVGFiQ29udGVu
dFZpZXcsCi0gICAgICAgIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LAorICAgICAgICBXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5MYXllcnNUYWJDb250ZW50VmlldywKICAg
ICAgICAgV0kuQXVkaXRUYWJDb250ZW50VmlldywKICAgICAgICAgV0kuQ29uc29sZVRhYkNvbnRl
bnRWaWV3LApAQCAtMTIyMywxMSArMTIzMSw4IEBAIFdJLnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JS
ZXByZXNlbnRlZE9iamVjdCA9IGZ1bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICB8
fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCkKICAg
ICAgICAgcmV0dXJuIFdJLkF1ZGl0VGFiQ29udGVudFZpZXc7CiAKLSAgICBpZiAocmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICByZXR1cm4g
V0kuQ2FudmFzVGFiQ29udGVudFZpZXc7Ci0KLSAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5SZWNvcmRpbmcpCi0gICAgICAgIHJldHVybiBXSS5DYW52YXNUYWJDb250ZW50
VmlldzsKKyAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMgfHwg
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtIHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nIHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gV0kuR3JhcGhpY3NUYWJDb250
ZW50VmlldzsKIAogICAgIHJldHVybiBudWxsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRp
b25NYW5hZ2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmYjQxMmNlYTVmZTIzYTY2ZmQyN2VjZDk0ZGFkNzNm
ZGIwMWYzMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzCkBAIC0wLDAgKzEsMTUzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLy8gRklYTUU6IEFuaW1hdGlvbk1hbmFnZXIgbGFja3MgYWR2YW5jZWQg
bXVsdGktdGFyZ2V0IHN1cHBvcnQuIChBbmltYXRpb25zIHBlci10YXJnZXQpCisKK1dJLkFuaW1h
dGlvbk1hbmFnZXIgPSBjbGFzcyBBbmltYXRpb25NYW5hZ2VyCit7CisgICAgY29uc3RydWN0b3Io
KQorICAgIHsKKyAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9h
bmltYXRpb25Db2xsZWN0aW9uID0gbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAg
IHRoaXMuX2FuaW1hdGlvbklkTWFwID0gbmV3IE1hcDsKKworICAgICAgICBXSS5GcmFtZS5hZGRF
dmVudExpc3RlbmVyKFdJLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5f
aGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBBZ2Vu
dAorCisgICAgZ2V0IGRvbWFpbnMoKSB7IHJldHVybiBbIkFuaW1hdGlvbiJdOyB9CisKKyAgICBh
Y3RpdmF0ZUV4dHJhRG9tYWluKGRvbWFpbikKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGRvbWFpbiA9PT0gIkFuaW1hdGlvbiIpOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBX
SS50YXJnZXRzKQorICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFyZ2V0KHRhcmdldCk7Cisg
ICAgfQorCisgICAgLy8gVGFyZ2V0CisKKyAgICBpbml0aWFsaXplVGFyZ2V0KHRhcmdldCkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5fZW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5lbmFibGUgZGlk
IG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiQW5pbWF0aW9u
LmVuYWJsZSIpKQorICAgICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LmVuYWJsZSgpOwor
ICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvbkNvbGxlY3Rpb24oKSB7
IHJldHVybiB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uOyB9CisKKyAgICBnZXQgc3VwcG9ydGVk
KCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9u
LmVuYWJsZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tl
bmQuaGFzQ29tbWFuZCgiQW5pbWF0aW9uLmVuYWJsZSIpOworICAgIH0KKworICAgIGVuYWJsZSgp
CisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZW5hYmxlZCk7CisKKyAgICAg
ICAgdGhpcy5fZW5hYmxlZCA9IHRydWU7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJ
LnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUYXJnZXQodGFyZ2V0KTsKKyAg
ICB9CisKKyAgICBkaXNhYmxlKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X2VuYWJsZWQpOworCisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKSB7Cisg
ICAgICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5kaXNhYmxl
IGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJB
bmltYXRpb24uZGlzYWJsZSIpKQorICAgICAgICAgICAgICAgIHRhcmdldC5BbmltYXRpb25BZ2Vu
dC5kaXNhYmxlKCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0
aW9uLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklkTWFwLmNsZWFyKCk7CisKKyAg
ICAgICAgdGhpcy5fZW5hYmxlZCA9IGZhbHNlOworICAgIH0KKworICAgIC8vIEFuaW1hdGlvbk9i
c2VydmVyCisKKyAgICBhbmltYXRpb25DcmVhdGVkKGFuaW1hdGlvblBheWxvYWQpCisgICAgewor
ICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fYW5pbWF0aW9uSWRNYXAuaGFzKGFuaW1hdGlv
blBheWxvYWQuYW5pbWF0aW9uSWQpLCBgQW5pbWF0aW9uIGFscmVhZHkgZXhpc3RzIHdpdGggaWQg
JHthbmltYXRpb25QYXlsb2FkLmFuaW1hdGlvbklkfS5gKTsKKworICAgICAgICBsZXQgYW5pbWF0
aW9uID0gV0kuQW5pbWF0aW9uLmZyb21QYXlsb2FkKGFuaW1hdGlvblBheWxvYWQpOworICAgICAg
ICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLmFkZChhbmltYXRpb24pOworICAgICAgICB0aGlz
Ll9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBhbmltYXRpb24pOwor
ICAgIH0KKworICAgIGVmZmVjdENoYW5nZWQoYW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7Cisg
ICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25JZE1hcC5nZXQoYW5pbWF0aW9u
SWQpOworICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb24pOworICAgICAgICBpZiAoIWFu
aW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhbmltYXRpb24uZWZmZWN0
Q2hhbmdlZChlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQs
IGVmZmVjdCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0aGlzLl9hbmltYXRpb25J
ZE1hcC5nZXQoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRpb24p
OworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBhbmltYXRpb24udGFyZ2V0Q2hhbmdlZChlZmZlY3QpOworICAgIH0KKworICAgIGFuaW1hdGlv
bkRlc3Ryb3llZChhbmltYXRpb25JZCkKKyAgICB7CisgICAgICAgIGxldCBhbmltYXRpb24gPSB0
aGlzLl9hbmltYXRpb25JZE1hcC50YWtlKGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoYW5pbWF0aW9uKTsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbi5yZW1vdmUoYW5pbWF0
aW9uKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlTWFpblJlc291cmNl
RGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZXZlbnQudGFy
Z2V0IGluc3RhbmNlb2YgV0kuRnJhbWUpOworICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5pc01h
aW5GcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFdJLkFuaW1hdGlvbi5y
ZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlv
bkNvbGxlY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuY2xlYXIo
KTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKaW5kZXggMTM1YzE2
NjEzYWU4MDA5YzE2ZTI3MjJmNzI1ODVjOTdlNjlkZDExNC4uZGJiOGU2ZmU0OTczMWQ1MjMxZTI4
M2Y2OWZhMjkwZjM3YjZiYmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCkBA
IC0zMiw2ICszMiw3IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhpcy5fZW5hYmxl
ZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uID0gbmV3IFdJLkNhbnZh
c0NvbGxlY3Rpb247CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAgPSBuZXcgTWFw
OwogICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcCA9IG5ldyBNYXA7CiAg
ICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5ncyA9IG5ldyBTZXQ7CkBAIC03NiwxMyArNzcsOSBA
QCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogCiAgICAgLy8gUHVibGljCiAKKyAgICBnZXQgY2FudmFzQ29sbGVjdGlvbigpIHsgcmV0dXJu
IHRoaXMuX2NhbnZhc0NvbGxlY3Rpb247IH0KICAgICBnZXQgc2F2ZWRSZWNvcmRpbmdzKCkgeyBy
ZXR1cm4gdGhpcy5fc2F2ZWRSZWNvcmRpbmdzOyB9CiAKLSAgICBnZXQgY2FudmFzZXMoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC52
YWx1ZXMoKSk7Ci0gICAgfQotCiAgICAgZ2V0IHNoYWRlclByb2dyYW1zKCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLnZh
bHVlcygpKTsKQEAgLTEzMyw2ICsxMzAsNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2Fu
dmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHRhcmdldC5DYW52
YXNBZ2VudC5kaXNhYmxlKCk7CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9jYW52YXNDb2xs
ZWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuY2xlYXIo
KTsKICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAg
ICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzLmNsZWFyKCk7CkBAIC0xNjEsOSArMTU5LDggQEAg
V0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuaGFzKGNh
bnZhc1BheWxvYWQuY2FudmFzSWQpLCBgQ2FudmFzIGFscmVhZHkgZXhpc3RzIHdpdGggaWQgJHtj
YW52YXNQYXlsb2FkLmNhbnZhc0lkfS5gKTsKIAogICAgICAgICBsZXQgY2FudmFzID0gV0kuQ2Fu
dmFzLmZyb21QYXlsb2FkKGNhbnZhc1BheWxvYWQpOworICAgICAgICB0aGlzLl9jYW52YXNDb2xs
ZWN0aW9uLmFkZChjYW52YXMpOwogICAgICAgICB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnNl
dChjYW52YXMuaWRlbnRpZmllciwgY2FudmFzKTsKLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCB7Y2FudmFz
fSk7CiAgICAgfQogCiAgICAgY2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKQpAQCAtMTcz
LDcgKzE3MCwxNCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICBpZiAoIWNhbnZhcykKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFzKTsKKyAgICAgICAgdGhpcy5fc2F2
ZVJlY29yZGluZ3MoY2FudmFzKTsKKworICAgICAgICB0aGlzLl9jYW52YXNDb2xsZWN0aW9uLnJl
bW92ZShjYW52YXMpOworCisgICAgICAgIGZvciAobGV0IHByb2dyYW0gb2YgY2FudmFzLnNoYWRl
clByb2dyYW1Db2xsZWN0aW9uKQorICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50
aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmllcik7CisKKyAgICAgICAgY2FudmFzLnNo
YWRlclByb2dyYW1Db2xsZWN0aW9uLmNsZWFyKCk7CiAgICAgfQogCiAgICAgY2FudmFzTWVtb3J5
Q2hhbmdlZChjYW52YXNJZGVudGlmaWVyLCBtZW1vcnlDb3N0KQpAQCAtMjc1LDIxICsyNzksMTQg
QEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9yZW1vdmVDYW52YXMoY2FudmFzKQorICAgIF9z
YXZlUmVjb3JkaW5ncyhjYW52YXMpCiAgICAgewotICAgICAgICBmb3IgKGxldCBwcm9ncmFtIG9m
IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3NoYWRl
clByb2dyYW1JZGVudGlmaWVyTWFwLmRlbGV0ZShwcm9ncmFtLmlkZW50aWZpZXIpOwotCi0gICAg
ICAgIGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5jbGVhcigpOwotCiAgICAgICAgIGZv
ciAobGV0IHJlY29yZGluZyBvZiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikgewogICAgICAg
ICAgICAgcmVjb3JkaW5nLnNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICByZWNvcmRpbmcuY3Jl
YXRlRGlzcGxheU5hbWUocmVjb3JkaW5nLmRpc3BsYXlOYW1lKTsKICAgICAgICAgICAgIHRoaXMu
X3NhdmVkUmVjb3JkaW5ncy5hZGQocmVjb3JkaW5nKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQs
IHtyZWNvcmRpbmd9KTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwge2NhbnZhc30p
OwogICAgIH0KIAogICAgIF9tYWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCkBAIC0zMDEsMTUg
KzI5OCwxNCBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICBXSS5DYW52YXMucmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJl
cnMoKTsKIAogICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgdGhpcy5fY2FudmFzSWRlbnRpZmll
ck1hcC52YWx1ZXMoKSkKLSAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOwor
ICAgICAgICAgICAgdGhpcy5fc2F2ZVJlY29yZGluZ3MoY2FudmFzKTsKIAotICAgICAgICB0aGlz
Ll9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOworICAgICAgICB0aGlzLl9jYW52
YXNDb2xsZWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAu
Y2xlYXIoKTsKKyAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAuY2xlYXIo
KTsKICAgICB9CiB9OwogCiBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50ID0gewotICAgIENhbnZhc0Fk
ZGVkOiAiY2FudmFzLW1hbmFnZXItY2FudmFzLXdhcy1hZGRlZCIsCi0gICAgQ2FudmFzUmVtb3Zl
ZDogImNhbnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtcmVtb3ZlZCIsCiAgICAgUmVjb3JkaW5nU2F2
ZWQ6ICJjYW52YXMtbWFuYWdlci1yZWNvcmRpbmctc2F2ZWQiLAogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01N
YW5hZ2VyLmpzCmluZGV4IDFhOGRmNjhiYmFkZDhkZThiZmZiMzgwNzk1MjY5Mjg3YTNhMzMyNDIu
LjcxODU1NThhZDNlMGQ5NzliYjAwMWRiOGUxMTAzZGI4MmFhOWUwNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
RE9NTWFuYWdlci5qcwpAQCAtMzIzLDcgKzMyMyw3IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBE
T01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBub2RlRm9ySWQobm9kZUlkKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CisgICAgICAgIHJl
dHVybiB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdIHx8IG51bGw7CiAgICAgfQogCiAgICAgX2Rv
Y3VtZW50VXBkYXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKaW5kZXgg
NzYzM2RlMWJhZTBmNDEzZmUxMmNkMWMzNjMzODRhZWYzZmQ4NDY1OS4uNzI5Njk2ZjA0MWMxNjJm
Zjk3Y2ZiMDkyNDk3YmJkMTVhYmY5ZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFu
YWdlci5qcwpAQCAtNzgxLDcgKzc4MSw3IEBAIFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRp
bWVsaW5lTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2Vy
Lm5vZGVGb3JJZChldmVudC5ub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAgICBsZXQgZG9tTm9k
ZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGV2ZW50Lm5vZGVJZCk7CiAgICAgICAgICAgICBj
b25zb2xlLmFzc2VydChkb21Ob2RlKTsKIAogICAgICAgICAgICAgcmVjb3JkID0gbmV3IFdJLk1l
ZGlhVGltZWxpbmVSZWNvcmQoZXZlbnRUeXBlLCBkb21Ob2RlLCBkZXRhaWxzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3Zn
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiZDY1N2Q5MzI2YWFhMGNlNjRmNmQ3ZWYw
MzFkZjgxNmFmMmNmZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5z
dmcKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cmVj
dCB4PSIxLjUiIHk9IjIuNSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjExIiBmaWxsPSJub25lIiBzdHJv
a2U9ImN1cnJlbnRDb2xvciIvPgotICAgIDxwb2x5Z29uIHBvaW50cz0iMTEgOCA5IDExIDYgNyAz
IDExIDMgMTIgMTMgMTIgMTMgMTEgMTEgOCIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBoaWNzLnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44N2NhZjNhMTQ5ZjY5NDViNjE4NmQ4NGI2MTU4NzY5Y2FmMGE2NGExCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0dyYXBo
aWNzLnN2ZwpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0
Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4gLS0+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJv
b3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCB4PSIxLjUi
IHk9IjIuNSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjExIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJl
bnRDb2xvciIvPgorICAgIDxwb2x5Z29uIHBvaW50cz0iMTEgOCA5IDExIDYgNyAzIDExIDMgMTIg
MTMgMTIgMTMgMTEgMTEgOCIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggZGQxZDRjNjFiMzQ5M2UxOTY3ZTNiNzdhYTg0NThh
YWVhYTg3MzRlNi4uNWI4NTY1MjIxNjQ0YmUxYTVmMmU2ZmIxMzc0N2Y2NGM4ZWJiNGJhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMzAs
NiArMzAsOSBAQAogCiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJFeHRlcm5hbC9D
b2RlTWlycm9yL2NvZGVtaXJyb3IuY3NzIj4KIAorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3Mi
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmll
d3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5jc3Mi
PgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQXVkaXRUZXN0Q2FzZUNv
bnRlbnRWaWV3LmNzcyI+CkBAIC01Niw3ICs1OSw2IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DYW52YXNTaWRl
YmFyUGFuZWwuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0Nh
bnZhc1RhYkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9DaGFuZ2VzRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hhcnREZXRhaWxzU2VjdGlvblJvdy5jc3MiPgogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2hlY2tib3hOYXZpZ2F0aW9uSXRl
bS5jc3MiPgpAQCAtMTEzLDYgKzExNSw4IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJWaWV3cy9Hb1RvTGluZURpYWxvZy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvR3JhZGllbnRFZGl0b3IuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0dyYWRpZW50U2xpZGVyLmNzcyI+CisgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVu
dFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBB
bGxvY2F0aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVWaWV3LmNzcyI+CiAg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9IZWFwU25hcHNob3RJbnN0YW5j
ZXNDb250ZW50Vmlldy5jc3MiPgpAQCAtMzQ5LDYgKzM1Myw3IEBACiAgICAgPHNjcmlwdCBzcmM9
IlByb3RvY29sL1dvcmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0NvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0lu
c3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNlQ29k
ZS5qcyI+PC9zY3JpcHQ+CkBAIC0zNjEsNiArMzY2LDggQEAKICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL1NjcmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Mb2NhbFNj
cmlwdC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbi5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb25Db2xsZWN0aW9u
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVG
cmFtZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BcHBsaWNhdGlvbkNh
Y2hlTWFuaWZlc3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQmFja0Zv
cndhcmRFbnRyeS5qcyI+PC9zY3JpcHQ+CkBAIC0zODAsNyArMzg3LDYgQEAKICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
b2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+PC9zY3JpcHQ+CkBAIC01NjYsOSArNTcyLDkgQEAKICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvU3R5bGVEZXRhaWxzUGFuZWwuanMiPjwvc2NyaXB0PgogCiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0F1ZGl0VGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NvbnNvbGVUYWJDb250ZW50Vmlldy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0VsZW1lbnRzVGFiQ29udGVudFZpZXcuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU2NyaXB0VHJlZUVsZW1lbnQu
anMiPjwvc2NyaXB0PgpAQCAtNTk0LDYgKzYwMCw5IEBACiAKICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0FjdGl2YXRlQnV0dG9uVG9vbGJhckl0ZW0uanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFy
UGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BcHBsaWNhdGlvbkNh
Y2hlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQuanMiPjwv
c2NyaXB0PgpAQCAtNjkyLDYgKzcwMSw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dvVG9M
aW5lRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhZGllbnRF
ZGl0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFkaWVudFNsaWRl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdD
b250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0hlYXBBbGxv
Y2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGVQYXRoQ29tcG9uZW50
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmVPdmVydmlld0dyYXBoLmpzIj48L3NjcmlwdD4KQEAgLTg1Niw2ICs4NjYsNyBAQAogICAg
IDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Bbm5vdGF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yRWRpdGluZ0NvbnRyb2xsZXIuanMiPjwv
c2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BdWRpdE1hbmFnZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9BcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0Jh
c2ljQmxvY2tBbm5vdGF0b3IuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjM2NWRlNTI1ZjQwNmFkMzhjZDQ1ZmVkY2Q3MWI3MTRmM2E1MTM2MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb24u
anMKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbmltYXRpb24gPSBjbGFzcyBB
bmltYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKK3sKKyAgICBjb25zdHJ1Y3RvcihhbmltYXRpb25J
ZCwge2Nzc0FuaW1hdGlvbk5hbWUsIGNzc1RyYW5zaXRpb25Qcm9wZXJ0eSwgZWZmZWN0LCBiYWNr
dHJhY2V9ID0ge30pCisgICAgeworICAgICAgICBzdXBlcigpOworCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGFuaW1hdGlvbklkKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoKCFjc3NBbmltYXRp
b25OYW1lICYmICFjc3NUcmFuc2l0aW9uUHJvcGVydHkpIHx8ICEhY3NzQW5pbWF0aW9uTmFtZSAh
PT0gISFjc3NUcmFuc2l0aW9uUHJvcGVydHkpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbklk
ID0gYW5pbWF0aW9uSWQ7CisKKyAgICAgICAgdGhpcy5fY3NzQW5pbWF0aW9uTmFtZSA9IGNzc0Fu
aW1hdGlvbk5hbWUgfHwgbnVsbDsKKyAgICAgICAgdGhpcy5fY3NzVHJhbnNpdGlvblByb3BlcnR5
ID0gY3NzVHJhbnNpdGlvblByb3BlcnR5IHx8IG51bGw7CisgICAgICAgIHRoaXMuX3VwZGF0ZUVm
ZmVjdChlZmZlY3QpOworICAgICAgICB0aGlzLl9iYWNrdHJhY2UgPSBiYWNrdHJhY2UgfHwgW107
CisKKyAgICAgICAgdGhpcy5fZWZmZWN0VGFyZ2V0ID0gdW5kZWZpbmVkOworICAgICAgICB0aGlz
Ll9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzID0gbnVsbDsKKyAgICB9CisKKyAgICAvLyBT
dGF0aWMKKworICAgIHN0YXRpYyBmcm9tUGF5bG9hZChwYXlsb2FkKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG5ldyBXSS5BbmltYXRpb24ocGF5bG9hZC5hbmltYXRpb25JZCwgeworICAgICAgICAg
ICAgY3NzQW5pbWF0aW9uTmFtZTogcGF5bG9hZC5jc3NBbmltYXRpb25OYW1lLAorICAgICAgICAg
ICAgY3NzVHJhbnNpdGlvblByb3BlcnR5OiBwYXlsb2FkLmNzc1RyYW5zaXRpb25Qcm9wZXJ0eSwK
KyAgICAgICAgICAgIGVmZmVjdDogcGF5bG9hZC5lZmZlY3QsCisgICAgICAgICAgICBiYWNrdHJh
Y2U6IEFycmF5LmlzQXJyYXkocGF5bG9hZC5iYWNrdHJhY2UpID8gcGF5bG9hZC5iYWNrdHJhY2Uu
bWFwKChpdGVtKSA9PiBXSS5DYWxsRnJhbWUuZnJvbVBheWxvYWQoV0kubWFpblRhcmdldCwgaXRl
bSkpIDogW10sCisgICAgICAgIH0pOworICAgIH0KKworICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZv
ckFuaW1hdGlvblR5cGUoYW5pbWF0aW9uVHlwZSwgcGx1cmFsKQorICAgIHsKKyAgICAgICAgc3dp
dGNoIChhbmltYXRpb25UeXBlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuV2Vi
QW5pbWF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHBsdXJhbCA/IFdJLlVJU3RyaW5nKCJXZWIg
QW5pbWF0aW9ucyIpIDogV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb24iKTsKKyAgICAgICAgY2Fz
ZSBXSS5BbmltYXRpb24uVHlwZS5DU1NBbmltYXRpb246CisgICAgICAgICAgICByZXR1cm4gcGx1
cmFsID8gV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25zIikgOiBXSS5VSVN0cmluZygiQ1NTIEFu
aW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb246
CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9u
cyIpIDogV0kuVUlTdHJpbmcoIkNTUyBUcmFuc2l0aW9uIik7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gYW5pbWF0aW9uIHR5cGUiLCBhbmltYXRp
b25UeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIGRpc3Bs
YXlOYW1lRm9yUGxheWJhY2tEaXJlY3Rpb24ocGxheWJhY2tEaXJlY3Rpb24pCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHBsYXliYWNrRGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0
aW9uLlBsYXliYWNrRGlyZWN0aW9uLk5vcm1hbDoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0
cmluZygiTm9ybWFsIiwgIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIE5vcm1hbCIs
ICJJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1h
dGlvbiBpcyBub3JtYWwgKGUuZy4gZm9yd2FyZHMpIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0
aW9uLlBsYXliYWNrRGlyZWN0aW9uLlJldmVyc2U6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlT
dHJpbmcoIlJldmVyc2UiLCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gUmV2ZXJz
ZSIsICJJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFu
aW1hdGlvbiBpcyByZXZlcnNlZCAoZS5nLiBiYWNrd2FyZHMpIik7CisgICAgICAgIGNhc2UgV0ku
QW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9uLkFsdGVybmF0ZToKKyAgICAgICAgICAgIHJldHVy
biBXSS5VSVN0cmluZygiQWx0ZXJuYXRlIiwgIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0
aW9uIEFsdGVybmF0ZSIsICJJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9m
IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5hdGVzIGJldHdlZW4gbm9ybWFsIGFuZCByZXZlcnNl
ZCBvbiBlYWNoIGl0ZXJhdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1hdGlvbi5QbGF5YmFj
a0RpcmVjdGlvbi5BbHRlcm5hdGVSZXZlcnNlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3Ry
aW5nKCJBbHRlcm5hdGUgUmV2ZXJzZSIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlv
biBBbHRlcm5hdGUgUmV2ZXJzZSIsICJJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJhY2sgZGlyZWN0
aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5hdGVzIGJldHdlZW4gcmV2ZXJzZWQgYW5k
IG5vcm1hbCBvbiBlYWNoIGl0ZXJhdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIHBsYXliYWNrIGRpcmVjdGlvbiIsIHBsYXliYWNrRGly
ZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIGRpc3Bs
YXlOYW1lRm9yRmlsbE1vZGUoZmlsbE1vZGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZpbGxN
b2RlKSB7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLk5vbmU6CisgICAgICAg
ICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIk5vbmUiLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUg
Tm9uZSIsICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gZG9lcyBub3QgYXBwbHkg
YW55IHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzIik7CisgICAgICAg
IGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkZvcndhcmRzOgorICAgICAgICAgICAgcmV0dXJu
IFdJLlVJU3RyaW5nKCJGb3J3YXJkcyIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBGb3J3YXJk
cyIsICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxl
cyBhZnRlciBpdCBlbmRzIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJh
Y2t3YXJkczoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQmFja3dhcmRzIiwgIldl
YiBBbmltYXRpb24gRmlsbCBNb2RlIEJhY2t3YXJkcyIsICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdl
YiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIik7CisgICAg
ICAgIGNhc2UgV0kuQW5pbWF0aW9uLkZpbGxNb2RlLkJvdGg6CisgICAgICAgICAgICByZXR1cm4g
V0kuVUlTdHJpbmcoIkJvdGgiLCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQm90aCIsICJJbmRp
Y2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBiZWZvcmUg
aXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9u
LkZpbGxNb2RlLkF1dG86CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkF1dG8iLCAi
V2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgQXV0byIsICJJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBh
bmltYXRpb24gZWl0aGVyIGRvZXMgbm90IGFwcGx5IGFueSBzdHlsZXMgYmVmb3JlIGl0IGJlZ2lu
cyBhbmQgYWZ0ZXIgaXQgZW5kcyBvciB0aGF0IGl0IGFwcGxpZXMgdG8gYm90aCwgZGVwZW5kaW5n
IG9uIGl0J3MgY29uZmlndXJhdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoZmFsc2UsICJVbmtub3duIGZpbGwgbW9kZSIsIGZpbGxNb2RlKTsKKyAgICAgICAgcmV0
dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIHJlc2V0VW5pcXVlRGlzcGxheU5hbWVOdW1i
ZXJzKCkKKyAgICB7CisgICAgICAgIFdJLkFuaW1hdGlvbi5fbmV4dFVuaXF1ZURpc3BsYXlOYW1l
TnVtYmVyID0gMTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBhbmltYXRpb25J
ZCgpIHsgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbklkOyB9CisgICAgZ2V0IGJhY2t0cmFjZSgpIHsg
cmV0dXJuIHRoaXMuX2JhY2t0cmFjZTsgfQorCisgICAgZ2V0IGFuaW1hdGlvblR5cGUoKQorICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUpCisgICAgICAgICAgICByZXR1
cm4gV0kuQW5pbWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOworICAgICAgICBpZiAodGhpcy5fY3Nz
VHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBl
LkNTU1RyYW5zaXRpb247CisgICAgICAgIHJldHVybiBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmlt
YXRpb247CisgICAgfQorCisgICAgZ2V0IHN0YXJ0RGVsYXkoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICJzdGFydERlbGF5IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3Quc3RhcnREZWxh
eSA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgZW5kRGVsYXkoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICJlbmREZWxheSIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0LmVuZERlbGF5IDog
TmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25Db3VudCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gIml0ZXJhdGlvbkNvdW50IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRl
cmF0aW9uQ291bnQgOiBOYU47CisgICAgfQorCisgICAgZ2V0IGl0ZXJhdGlvblN0YXJ0KCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAiaXRlcmF0aW9uU3RhcnQiIGluIHRoaXMuX2VmZmVjdCA/IHRo
aXMuX2VmZmVjdC5pdGVyYXRpb25TdGFydCA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0
aW9uRHVyYXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJpdGVyYXRpb25EdXJhdGlvbiIg
aW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9uIDogTmFOOwor
ICAgIH0KKworICAgIGdldCB0aW1pbmdGdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
InRpbWluZ0Z1bmN0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QudGltaW5nRnVu
Y3Rpb24gOiBudWxsOworICAgIH0KKworICAgIGdldCBwbGF5YmFja0RpcmVjdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gInBsYXliYWNrRGlyZWN0aW9uIiBpbiB0aGlzLl9lZmZlY3QgPyB0
aGlzLl9lZmZlY3QucGxheWJhY2tEaXJlY3Rpb24gOiBudWxsOworICAgIH0KKworICAgIGdldCBm
aWxsTW9kZSgpCisgICAgeworICAgICAgICByZXR1cm4gImZpbGxNb2RlIiBpbiB0aGlzLl9lZmZl
Y3QgPyB0aGlzLl9lZmZlY3QuZmlsbE1vZGUgOiBudWxsOworICAgIH0KKworICAgIGdldCBrZXlm
cmFtZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJrZXlmcmFtZXMiIGluIHRoaXMuX2VmZmVj
dCA/IHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMgOiBbXTsKKyAgICB9CisKKyAgICBnZXQgZGlzcGxh
eU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nzc0FuaW1hdGlvbk5hbWUpCisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fY3NzQW5pbWF0aW9uTmFtZTsKKworICAgICAgICBpZiAodGhp
cy5fY3NzVHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Nzc1Ry
YW5zaXRpb25Qcm9wZXJ0eTsKKworICAgICAgICBpZiAoIXRoaXMuX3VuaXF1ZURpc3BsYXlOYW1l
TnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSBXSS5B
bmltYXRpb24uX25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcisrOworICAgICAgICByZXR1cm4g
V0kuVUlTdHJpbmcoIkFuaW1hdGlvbiAlZCIpLmZvcm1hdCh0aGlzLl91bmlxdWVEaXNwbGF5TmFt
ZU51bWJlcik7CisgICAgfQorCisgICAgcmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFjaykKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLl9lZmZlY3RUYXJnZXQgIT09IHVuZGVmaW5lZCkgeworICAg
ICAgICAgICAgY2FsbGJhY2sodGhpcy5fZWZmZWN0VGFyZ2V0KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2Fs
bGJhY2tzKSB7CisgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tz
LnB1c2goY2FsbGJhY2spOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcyA9IFtjYWxsYmFja107CisKKyAg
ICAgICAgV0kuZG9tTWFuYWdlci5lbnN1cmVEb2N1bWVudCgpOworCisgICAgICAgIGxldCB0YXJn
ZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKyAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFn
ZW50LnJlcXVlc3RFZmZlY3RUYXJnZXQodGhpcy5fYW5pbWF0aW9uSWQsIChlcnJvciwgbm9kZUlk
KSA9PiB7CisgICAgICAgICAgICB0aGlzLl9lZmZlY3RUYXJnZXQgPSAhZXJyb3IgPyBXSS5kb21N
YW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpIDogbnVsbDsKKworICAgICAgICAgICAgZm9yIChsZXQg
cmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrIG9mIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRD
YWxsYmFja3MpCisgICAgICAgICAgICAgICAgcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrKHRo
aXMuX2VmZmVjdFRhcmdldCk7CisKKyAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJn
ZXRDYWxsYmFja3MgPSBudWxsOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBBbmltYXRp
b25NYW5hZ2VyCisKKyAgICBlZmZlY3RDaGFuZ2VkKGVmZmVjdCkKKyAgICB7CisgICAgICAgIHRo
aXMuX3VwZGF0ZUVmZmVjdChlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fZWZmZWN0VGFyZ2V0ID0gdW5kZWZpbmVkOworCisgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRD
aGFuZ2VkKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfdXBkYXRlRWZmZWN0KGVm
ZmVjdCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VmZmVjdCA9IGVmZmVjdCB8fCB7fTsKKworICAg
ICAgICBpZiAodGhpcy5fZWZmZWN0LnRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAgICAgdGhpcy5f
ZWZmZWN0LnRpbWluZ0Z1bmN0aW9uID0gV0kuQ3ViaWNCZXppZXIuZnJvbVN0cmluZyh0aGlzLl9l
ZmZlY3QudGltaW5nRnVuY3Rpb24pOworCisgICAgICAgIGlmICh0aGlzLl9lZmZlY3Qua2V5ZnJh
bWVzKSB7CisgICAgICAgICAgICBmb3IgKGxldCBrZXlmcmFtZSBvZiB0aGlzLl9lZmZlY3Qua2V5
ZnJhbWVzKSB7CisgICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lLmVhc2luZykKKyAgICAgICAg
ICAgICAgICAgICAga2V5ZnJhbWUuZWFzaW5nID0gV0kuQ3ViaWNCZXppZXIuZnJvbVN0cmluZyhr
ZXlmcmFtZS5lYXNpbmcpOworCisgICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lLnN0eWxlKQor
ICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZS5zdHlsZSA9IGtleWZyYW1lLnN0eWxlLnJlcGxh
Y2VBbGwoLztccysvZywgIjtcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVj
dENoYW5nZWQpOworICAgIH0KK307CisKK1dJLkFuaW1hdGlvbi5fbmV4dFVuaXF1ZURpc3BsYXlO
YW1lTnVtYmVyID0gMTsKKworV0kuQW5pbWF0aW9uLlR5cGUgPSB7CisgICAgV2ViQW5pbWF0aW9u
OiAid2ViLWFuaW1hdGlvbiIsCisgICAgQ1NTQW5pbWF0aW9uOiAiY3NzLWFuaW1hdGlvbiIsCisg
ICAgQ1NTVHJhbnNpdGlvbjogImNzcy10cmFuc2l0aW9uIiwKK307CisKK1dJLkFuaW1hdGlvbi5Q
bGF5YmFja0RpcmVjdGlvbiA9IHsKKyAgICBOb3JtYWw6ICJub3JtYWwiLAorICAgIFJldmVyc2U6
ICJyZXZlcnNlIiwKKyAgICBBbHRlcm5hdGU6ICJhbHRlcm5hdGUiLAorICAgIEFsdGVybmF0ZVJl
dmVyc2U6ICJhbHRlcm5hdGUtcmV2ZXJzZSIsCit9OworCitXSS5BbmltYXRpb24uRmlsbE1vZGUg
PSB7CisgICAgTm9uZTogIm5vbmUiLAorICAgIEZvcndhcmRzOiAiZm9yd2FyZHMiLAorICAgIEJh
Y2t3YXJkczogImJhY2t3YXJkcyIsCisgICAgQm90aDogImJvdGgiLAorICAgIEF1dG86ICJhdXRv
IiwKK307CisKK1dJLkFuaW1hdGlvbi5FdmVudCA9IHsKKyAgICBFZmZlY3RDaGFuZ2VkOiAiYW5p
bWF0aW9uLWVmZmVjdC1jaGFuZ2VkIiwKKyAgICBUYXJnZXRDaGFuZ2VkOiAiYW5pbWF0aW9uLXRh
cmdldC1jaGFuZ2VkIiwKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uQ29sbGVjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlhMjhhN2IxNDhkZWViZThlYTU3NmZkYjFkYWIwYjViMGJjNDkxZGQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5p
bWF0aW9uQ29sbGVjdGlvbi5qcwpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFu
aW1hdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBBbmltYXRpb25Db2xsZWN0aW9uIGV4dGVuZHMgV0ku
Q29sbGVjdGlvbgoreworICAgIGNvbnN0cnVjdG9yKGFuaW1hdGlvblR5cGUpCisgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydCghYW5pbWF0aW9uVHlwZSB8fCBPYmplY3QudmFsdWVzKFdJLkFu
aW1hdGlvbi5UeXBlKS5pbmNsdWRlcyhhbmltYXRpb25UeXBlKSk7CisKKyAgICAgICAgc3VwZXIo
KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25UeXBlID0gYW5pbWF0aW9uVHlwZSB8fCBudWxs
OworCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uVHlwZSkKKyAgICAgICAgICAgIHRoaXMu
X2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwID0gbnVsbDsKKyAgICB9CisKKyAgICAvLyBQ
dWJsaWMKKworICAgIGdldCBhbmltYXRpb25UeXBlKCkgeyByZXR1cm4gdGhpcy5fYW5pbWF0aW9u
VHlwZTsgfQorCisgICAgZ2V0IGRpc3BsYXlOYW1lKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBjb25zdCBwbHVyYWwgPSB0cnVlOworICAg
ICAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5kaXNwbGF5TmFtZUZvclR5cGUodGhpcy5fYW5p
bWF0aW9uVHlwZSwgcGx1cmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBXSS5VSVN0
cmluZygiV2ViIEFuaW1hdGlvbnMiKTsKKyAgICB9CisKKyAgICBvYmplY3RJc1JlcXVpcmVkVHlw
ZShvYmplY3QpCisgICAgeworICAgICAgICBpZiAoIShvYmplY3QgaW5zdGFuY2VvZiBXSS5Bbmlt
YXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiAhdGhp
cy5fYW5pbWF0aW9uVHlwZSB8fCBvYmplY3QuYW5pbWF0aW9uVHlwZSA9PT0gdGhpcy5fYW5pbWF0
aW9uVHlwZTsKKyAgICB9CisKKyAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShhbmltYXRp
b25UeXBlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoT2JqZWN0LnZhbHVlcyhXSS5B
bmltYXRpb24uVHlwZSkuaW5jbHVkZXMoYW5pbWF0aW9uVHlwZSkpOworCisgICAgICAgIGlmICh0
aGlzLl9hbmltYXRpb25UeXBlKSB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChhbmltYXRp
b25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlz
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9y
VHlwZU1hcCkKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFw
ID0gbmV3IE1hcDsKKworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0
aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcC5nZXQoYW5pbWF0aW9uVHlwZSk7Cisg
ICAgICAgIGlmICghYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUpIHsKKyAgICAgICAgICAgIGFu
aW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24oYW5p
bWF0aW9uVHlwZSk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlw
ZU1hcC5zZXQoYW5pbWF0aW9uVHlwZSwgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZTsKKyAgICB9
CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGl0ZW1BZGRlZChpdGVtKQorICAgIHsKKyAgICAg
ICAgc3VwZXIuaXRlbUFkZGVkKGl0ZW0pOworCisgICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9u
VHlwZSkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlID0gdGhp
cy5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShpdGVtLmFuaW1hdGlvblR5cGUpOworICAgICAg
ICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUuYWRkKGl0ZW0pOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaXRlbVJlbW92ZWQoaXRlbSkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5f
YW5pbWF0aW9uVHlwZSkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JU
eXBlID0gdGhpcy5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShpdGVtLmFuaW1hdGlvblR5cGUp
OworICAgICAgICAgICAgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUucmVtb3ZlKGl0ZW0pOwor
ICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuaXRlbVJlbW92ZWQoaXRlbSk7CisgICAgfQorCisg
ICAgaXRlbXNDbGVhcmVkKGl0ZW1zKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlTWFwKSB7CisgICAgICAgICAgICBmb3IgKGxldCBhbmltYXRpb25D
b2xsZWN0aW9uRm9yVHlwZSBvZiB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZU1hcC52
YWx1ZXMoKSkKKyAgICAgICAgICAgICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZS5jbGVh
cigpOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIuaXRlbXNDbGVhcmVkKGl0ZW1zKTsKKyAg
ICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcwppbmRleCBjOWNjMzk2MmU4
MGZiNjZmZTE1ZGExMzU0ZWEyOTI2YmY4NDFjZGNlLi4zMWQ2MjdkODExYmQ2MzMyZGM0ODA4NWY5
N2RmNTA2NGQyMDEyN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcwpAQCAt
MTQ2LDcgKzE0Niw3IEBAIFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQgPSBjbGFzcyBBdWRpdFRlc3RD
YXNlUmVzdWx0IGV4dGVuZHMgV0kuQXVkaXRUZXN0UmVzdWx0QmFzCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUlk
ID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoZG9tTm9kZVN0cmluZyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7IH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKSB8fCBudWxsOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJ
ZChub2RlSWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYW52YXMuanMKaW5kZXggNjJiYTI2NDEwNWFhZWRmNGJh
NWUyYmUzNzU1YTJiNWQzOGJjZmFkMy4uZmY3MWFmNmQ0M2QyNzZjMTFmNzQzNjIzYjgzMmY5NGI2
MWVmZTJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NhbnZhcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvQ2FudmFzLmpzCkBAIC05Nyw3ICs5Nyw3IEBAIFdJLkNhbnZhcyA9IGNsYXNzIENh
bnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYXNlIFdJLkNhbnZhcy5Db250ZXh0VHlw
ZS5DYW52YXMyRDoKICAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiMkQiKTsKICAgICAg
ICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXI6Ci0gICAgICAgICAg
ICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIpOworICAgICAg
ICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiLCAiQ2FudmFzIENvbnRl
eHQgVHlwZSBCaXRtYXAgUmVuZGVyZXIiLCAiQml0bWFwIFJlbmRlcmVyIGlzIGEgdHlwZSBvZiBy
ZW5kZXJpbmcgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggYSA8Y2FudmFzPiBlbGVtZW50Iik7CiAg
ICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMOgogICAgICAgICAgICAgcmV0
dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIpOwogICAgICAgICBjYXNlIFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTDI6CkBAIC0xMDYsOSArMTA2LDEwIEBAIFdJLkNhbnZhcyA9IGNs
YXNzIENhbnZhcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9j
YWxpemVkU3RyaW5nKCJXZWIgR1BVIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYk1ldGFsOgogICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJX
ZWJNZXRhbCIpOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY29uc29sZS5lcnJvcigi
SW52YWxpZCBjYW52YXMgY29udGV4dCB0eXBlIiwgY29udGV4dFR5cGUpOwogICAgICAgICB9CisK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmtub3duIGNhbnZhcyBjb250ZXh0IHR5
cGUiLCBjb250ZXh0VHlwZSk7CisgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KIAogICAgIHN0
YXRpYyByZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwppbmRleCAx
ZjhkZDdlZjQ1ZDYyOTc3OGNkODI4N2JmYjhkMzFiMmExMDg5ZjMwLi41MTNlZjc2YWY1NjE0Mjkx
ZTI4NjRhYWVhNThlNzQ3YzY4YTg0ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKQEAgLTE0OCw2ICsxNDgs
MjMgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIHJldHVybiBuZXcgV0kuUmVjb3JkaW5nKHBheWxvYWQudmVyc2lvbiwgdHlwZSwgcGF5
bG9hZC5pbml0aWFsU3RhdGUsIGZyYW1lcywgcGF5bG9hZC5kYXRhKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBlKHJlY29yZGluZ1R5cGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHJlY29yZGluZ1R5cGUpIHsKKyAgICAgICAgY2FzZSBSZWNvcmRpbmcu
VHlwZS5DYW52YXMyRDoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiMkQiKTsKKyAg
ICAgICAgY2FzZSBSZWNvcmRpbmcuVHlwZS5DYW52YXNCaXRtYXBSZW5kZXJlcjoKKyAgICAgICAg
ICAgIHJldHVybiBXSS5VSVN0cmluZygiQml0bWFwIFJlbmRlcmVyIiwgIlJlY29yZGluZyBUeXBl
IENhbnZhcyBCaXRtYXAgUmVuZGVyZXIiLCAiQSB0eXBlIG9mIGNhbnZhcyByZWNvcmRpbmcgaW4g
dGhlIEdyYXBoaWNzIFRhYiIpOworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc1dl
YkdMOgorICAgICAgICAgICAgcmV0dXJuIFdJLnVubG9jYWxpemVkU3RyaW5nKCJXZWJHTCIpOwor
ICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMMjoKKyAgICAgICAgICAgIHJl
dHVybiBXSS51bmxvY2FsaXplZFN0cmluZygiV2ViR0wyIik7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gcmVjb3JkaW5nIHR5cGUiLCByZWNvcmRp
bmdUeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCiAgICAgc3RhdGljIGRpc3Bs
YXlOYW1lRm9yU3dpenpsZVR5cGUoc3dpenpsZVR5cGUpCiAgICAgewogICAgICAgICBzd2l0Y2gg
KHN3aXp6bGVUeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9BbmltYXRpb25PYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCmluZGV4IGIx
MTk1ZWQwY2EwY2IwY2E4MDY2OGUwZTk4ZGM2NzlkY2FkOTE3YTMuLjdlNTZlOGJiMzljYmEwYzYy
ODBlYTljZWRkNDViZTU1NDVmMGYxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0FuaW1hdGlvbk9ic2VydmVy
LmpzCkBAIC0yNyw2ICsyNywyNiBAQCBXSS5BbmltYXRpb25PYnNlcnZlciA9IGNsYXNzIEFuaW1h
dGlvbk9ic2VydmVyIGV4dGVuZHMgSW5zcGVjdG9yQmFja2VuZC5EaXNwYXRjaAogewogICAgIC8v
IEV2ZW50cyBkZWZpbmVkIGJ5IHRoZSAiQW5pbWF0aW9uIiBkb21haW4uCiAKKyAgICBhbmltYXRp
b25DcmVhdGVkKGFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIu
YW5pbWF0aW9uQ3JlYXRlZChhbmltYXRpb24pOworICAgIH0KKworICAgIGVmZmVjdENoYW5nZWQo
YW5pbWF0aW9uSWQsIGVmZmVjdCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIu
ZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KTsKKyAgICB9CisKKyAgICB0YXJnZXRD
aGFuZ2VkKGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci50
YXJnZXRDaGFuZ2VkKGFuaW1hdGlvbklkKTsKKyAgICB9CisKKyAgICBhbmltYXRpb25EZXN0cm95
ZWQoYW5pbWF0aW9uSWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1h
dGlvbkRlc3Ryb3llZChhbmltYXRpb25JZCk7CisgICAgfQorCiAgICAgdHJhY2tpbmdTdGFydCh0
aW1lc3RhbXApCiAgICAgewogICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuYW5pbWF0aW9uVHJh
Y2tpbmdTdGFydGVkKHRpbWVzdGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKaW5kZXggZGQw
MGFmNThjMTI1MzA1ODZlMWMyODMwMzJiNzJmZDYyOWZhMzJkOS4uMmNiYTU2NGQ0YTdiNmEzOGMx
ODllNTczM2QzY2YzYzYwZmM1MTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwpAQCAtMTg4
LDYgKzE4OCwyNSBAQCBXSS5SZW1vdGVPYmplY3QgPSBjbGFzcyBSZW1vdGVPYmplY3QKICAgICAg
ICAgdGFyZ2V0LkNhbnZhc0FnZW50LnJlc29sdmVDb250ZXh0KGNhbnZhcy5pZGVudGlmaWVyLCBv
YmplY3RHcm91cCwgd3JhcENhbGxiYWNrKTsKICAgICB9CiAKKyAgICBzdGF0aWMgcmVzb2x2ZUFu
aW1hdGlvbihhbmltYXRpb24sIG9iamVjdEdyb3VwLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIik7CisKKyAgICAg
ICAgZnVuY3Rpb24gd3JhcENhbGxiYWNrKGVycm9yLCBvYmplY3QpIHsKKyAgICAgICAgICAgIGlm
IChlcnJvciB8fCAhb2JqZWN0KQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdJLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZChvYmplY3QsIFdJLm1haW5UYXJnZXQpKTsKKyAgICAgICAgfQorCisgICAgICAg
IGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKworICAgICAgICAvLyBDT01Q
QVRJQklMSVRZIChpT1MgMTMuMSk6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGRpZCBub3Qg
ZXhpc3QgeWV0LgorICAgICAgICBjb25zb2xlLmFzc2VydCh0YXJnZXQuaGFzQ29tbWFuZCgiQW5p
bWF0aW9uLnJlc29sdmVBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFn
ZW50LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBvYmplY3RHcm91cCwg
d3JhcENhbGxiYWNrKTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0YXJnZXQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5o
dG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmluZGV4
IDFkNDQ1YTA0Y2RlYmVlY2ZhN2IwY2IwOGVkNmZiYmQ0YmY0NjFlODQuLjBiYTU2MGI5NmMwMjMw
NmViNjFiMzJiZGY0ZWFjODk5MjNkYmYwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9UZXN0Lmh0bWwKQEAgLTEwOCw2ICsxMDgsNyBAQAogICAgIDxzY3JpcHQg
c3JjPSJQcm90b2NvbC9Xb3JrZXJPYnNlcnZlci5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9Db25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9JbnN0cnVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJj
ZUNvZGUuanMiPjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw4IEBACiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9TY3JpcHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTG9j
YWxTY3JpcHQuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRp
b24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uQ29sbGVj
dGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmVha3BvaW50Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NQVUluc3RydW1lbnQuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVVGltZWxpbmUuanMiPjwvc2NyaXB0
PgpAQCAtMTM3LDcgKzE0MCw2IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29u
dGV4dFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0Nv
bnRleHRUcmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYW52
YXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbi5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmlldy5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uVHlwZXMuanMi
Pjwvc2NyaXB0PgpAQCAtMjM4LDYgKzI0MCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMv
SGVhcFNuYXBzaG90UHJveHkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm94aWVz
L0hlYXBTbmFwc2hvdFdvcmtlclByb3h5LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3Jj
PSJDb250cm9sbGVycy9BbmltYXRpb25NYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iQ29udHJvbGxlcnMvQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9CcmVha3BvaW50TG9nTWVzc2FnZUxleGVyLmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QvVGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvVGVzdC5qcwppbmRleCAzYzQzYWU3OGJlMTcyNzcwNzI5YjcwMzJhYmU1NDQ0M2M5NDZhOGJi
Li4wMDY0NDdhOTY3ZTljMjM3ZjYwYzEwMDA4YmI0NjM0NTcyYjdjNDZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCkBAIC03MCw2ICs3
MCw3IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV0kud29ya2VyTWFuYWdlciA9
IG5ldyBXSS5Xb3JrZXJNYW5hZ2VyLAogICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIgPSBu
ZXcgV0kuRE9NRGVidWdnZXJNYW5hZ2VyLAogICAgICAgICBXSS5jYW52YXNNYW5hZ2VyID0gbmV3
IFdJLkNhbnZhc01hbmFnZXIsCisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgV0ku
QW5pbWF0aW9uTWFuYWdlciwKICAgICBdOwogCiAgICAgLy8gUmVnaXN0ZXIgZm9yIGV2ZW50cy4K
QEAgLTkxLDYgKzkyLDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogV0kuY29udGVudExvYWRl
ZCA9IGZ1bmN0aW9uKCkKIHsKICAgICAvLyBUaGluZ3MgdGhhdCB3b3VsZCBub3JtYWxseSBnZXQg
Y2FsbGVkIGJ5IHRoZSBVSSwgdGhhdCB3ZSBzdGlsbCB3YW50IHRvIGRvIGluIHRlc3RzLgorICAg
IFdJLmFuaW1hdGlvbk1hbmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuYXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuZW5hYmxlKCk7CiAgICAgV0kuY2FudmFzTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5k
YXRhYmFzZU1hbmFnZXIuZW5hYmxlKCk7CkBAIC0xODEsNiArMTgzLDcgQEAgV0kudXBkYXRlVmlz
aWJpbGl0eVN0YXRlID0gKCkgPT4ge307CiAgICAgICAgICAgICBnZXQoKSB7IHJldHVybiBXSS5t
YWluVGFyZ2V0Ll9hZ2VudHNbZG9tYWluTmFtZV07IH0sCiAgICAgICAgIH0pOwogICAgIH0KKyAg
ICBtYWtlQWdlbnRHZXR0ZXIoIkFuaW1hdGlvbiIpOwogICAgIG1ha2VBZ2VudEdldHRlcigiQXVk
aXQiKTsKICAgICBtYWtlQWdlbnRHZXR0ZXIoIkFwcGxpY2F0aW9uQ2FjaGUiKTsKICAgICBtYWtl
QWdlbnRHZXR0ZXIoIkNQVVByb2ZpbGVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0SGFybmVzcy5qcwppbmRleCBkNDQ3Yjg5NTBi
OTM5MjFkMGE4NjAxMzA2OGE4YjM0ODJiNTMxOGRjLi5kMmU5OWFmMWI2ZTg1MTA3ZGZkNjZkNDFh
MzEzYTY0ZWFlNzAwZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMKQEAgLTEzMSw2ICsxMzEsNDYgQEAgVGVz
dEhhcm5lc3MgPSBjbGFzcyBUZXN0SGFybmVzcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0
aGlzLl9leHBlY3QoVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNlLCAhYWN0dWFsLCBt
ZXNzYWdlLCBhY3R1YWwpOwogICAgIH0KIAorICAgIGV4cGVjdEVtcHR5KGFjdHVhbCwgbWVzc2Fn
ZSkKKyAgICB7CisgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgdHlwZW9mIGFj
dHVhbCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVz
cy5FeHBlY3RhdGlvblR5cGUuRW1wdHksICFhY3R1YWwubGVuZ3RoLCBtZXNzYWdlLCBhY3R1YWwp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdHVhbCBp
bnN0YW5jZW9mIFNldCB8fCBhY3R1YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIHRo
aXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHksICFhY3R1YWwuc2l6
ZSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAib2JqZWN0IikgeworICAgICAgICAgICAgdGhp
cy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgaXNFbXB0eU9iamVj
dChhY3R1YWwpLCBtZXNzYWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgdGhpcy5mYWlsKCJleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxl
ZCB3aXRoIGEgbm9uLW9iamVjdDpcbiAgICBBY3R1YWw6ICIgKyB0aGlzLl9leHBlY3RhdGlvblZh
bHVlQXNTdHJpbmcoYWN0dWFsKSk7CisgICAgfQorCisgICAgZXhwZWN0Tm90RW1wdHkoYWN0dWFs
LCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCB0
eXBlb2YgYWN0dWFsID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRl
c3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgISFhY3R1YWwubGVuZ3RoLCBtZXNz
YWdlLCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGFjdHVhbCBpbnN0YW5jZW9mIFNldCB8fCBhY3R1YWwgaW5zdGFuY2VvZiBNYXApIHsKKyAg
ICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90RW1w
dHksICEhYWN0dWFsLnNpemUsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0gIm9iamVjdCIpIHsK
KyAgICAgICAgICAgIHRoaXMuX2V4cGVjdChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTm90
RW1wdHksICFpc0VtcHR5T2JqZWN0KGFjdHVhbCksIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmZhaWwoImV4cGVjdE5vdEVt
cHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OlxuICAgIEFjdHVhbDog
IiArIHRoaXMuX2V4cGVjdGF0aW9uVmFsdWVBc1N0cmluZyhhY3R1YWwpKTsKKyAgICB9CisKICAg
ICBleHBlY3ROdWxsKGFjdHVhbCwgbWVzc2FnZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2V4cGVj
dChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTnVsbCwgYWN0dWFsID09PSBudWxsLCBtZXNz
YWdlLCBhY3R1YWwsIG51bGwpOwpAQCAtMzgxLDYgKzQyMSwxMCBAQCBUZXN0SGFybmVzcyA9IGNs
YXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4gImV4
cGVjdFRoYXQoJXMpIjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUu
RmFsc2U6CiAgICAgICAgICAgICByZXR1cm4gImV4cGVjdEZhbHNlKCVzKSI7CisgICAgICAgIGNh
c2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5OgorICAgICAgICAgICAgcmV0dXJu
ICJleHBlY3RFbXB0eSglcykiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9u
VHlwZS5Ob3RFbXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZXhwZWN0Tm90RW1wdHkoJXMpIjsK
ICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuTnVsbDoKICAgICAgICAg
ICAgIHJldHVybiAiZXhwZWN0TnVsbCglcykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4
cGVjdGF0aW9uVHlwZS5Ob3ROdWxsOgpAQCAtNDE2LDYgKzQ2MCwxMCBAQCBUZXN0SGFybmVzcyA9
IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4g
InRydXRoeSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkZhbHNl
OgogICAgICAgICAgICAgcmV0dXJuICJmYWxzZXkiOworICAgICAgICBjYXNlIFRlc3RIYXJuZXNz
LkV4cGVjdGF0aW9uVHlwZS5FbXB0eToKKyAgICAgICAgICAgIHJldHVybiAiZW1wdHkiOworICAg
ICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eToKKyAgICAgICAg
ICAgIHJldHVybiAibm90IGVtcHR5IjsKICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3Rh
dGlvblR5cGUuTm90TnVsbDoKICAgICAgICAgICAgIHJldHVybiAibm90IG51bGwiOwogICAgICAg
ICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFcXVhbDoKQEAgLTQ0MCw2ICs0
ODgsOCBAQCBUZXN0SGFybmVzcyA9IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0
CiBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUgPSB7CiAgICAgVHJ1ZTogU3ltYm9sKCJleHBl
Y3QtdHJ1ZSIpLAogICAgIEZhbHNlOiBTeW1ib2woImV4cGVjdC1mYWxzZSIpLAorICAgIEVtcHR5
OiBTeW1ib2woImV4cGVjdC1lbXB0eSIpLAorICAgIE5vdEVtcHR5OiBTeW1ib2woImV4cGVjdC1u
b3QtZW1wdHkiKSwKICAgICBOdWxsOiBTeW1ib2woImV4cGVjdC1udWxsIiksCiAgICAgTm90TnVs
bDogU3ltYm9sKCJleHBlY3Qtbm90LW51bGwiKSwKICAgICBFcXVhbDogU3ltYm9sKCJleHBlY3Qt
ZXF1YWwiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZp
ZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk0YTM4ZjE2MmJlNTBlNzQ3Y2E1N2ZlYzJiNzM5MTU1MGY1ZDRh
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0wLDAgKzEsMjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisuY29udGVudC12aWV3LmFuaW1hdGlvbi1jb2xsZWN0aW9uIHsKKyAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgcGFkZGluZzogNHB4OworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllYzFk
MmNmYzFlZDkxMGM5NTliMTk4ZTNiODhlZmU3NGE0YWQ5MjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0
aW9uQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db2xsZWN0aW9uQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcKK3sKKyAgICBjb25zdHJ1
Y3RvcihyZXByZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbik7CisKKyAg
ICAgICAgbGV0IGNvbnRlbnRQbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworCisgICAgICAgIGxldCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBjb250ZW50UGxhY2Vob2xk
ZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICBk
ZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gImRlc2NyaXB0aW9uIjsKKworICAgICAgICBz
d2l0Y2ggKHJlcHJlc2VudGVkT2JqZWN0LmFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBX
SS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVs
ZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgYW5pbWF0aW9ucyBj
cmVhdGVkIGJ5IEphdmFTY3JpcHQuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBj
YXNlIFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0
aW9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBhbmltYXRp
b25zIGNyZWF0ZWQgYnkgQ1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBXSS5BbmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRp
b25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIHRyYW5zaXRp
b25zIGNyZWF0ZWQgYnkgQ1NTLiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50KTsKKwor
ICAgICAgICBzdXBlcihyZXByZXNlbnRlZE9iamVjdCwgV0kuQW5pbWF0aW9uQ29udGVudFZpZXcs
IGNvbnRlbnRQbGFjZWhvbGRlcik7CisKKyAgICAgICAgdGhpcy5zZWxlY3Rpb25FbmFibGVkID0g
dHJ1ZTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYW5pbWF0aW9uLWNv
bGxlY3Rpb24iKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRsZVJlZnJlc2hC
dXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5z
dWJ2aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRp
b25Db250ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJlZnJlc2hCdXR0
b25DbGlja2VkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAg
IGNvbnRlbnRWaWV3QWRkZWQoY29udGVudFZpZXcpCisgICAgeworICAgICAgICBjb250ZW50Vmll
dy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9oYW5kbGVDb250
ZW50Vmlld01vdXNlRW50ZXIpOworICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzLl9oYW5kbGVDb250ZW50Vmlld01vdXNlTGVhdmUp
OworICAgIH0KKworICAgIGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKKyAgICB7Cisg
ICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRl
ciIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRW
aWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRs
ZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk7CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsK
KyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAg
IHN1cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRs
ZUNvbnRlbnRWaWV3TW91c2VFbnRlcihldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb250ZW50
VmlldyA9IFdJLlZpZXcuZnJvbUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgaWYgKCEo
Y29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db250ZW50VmlldykpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGNvbnRlbnRWaWV3LnJlcHJl
c2VudGVkT2JqZWN0OworICAgICAgICBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldCgobm9k
ZSkgPT4geworICAgICAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLm93bmVyRG9jdW1lbnQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbm9kZS5oaWdobGlnaHQoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZShldmVu
dCkKKyAgICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsK
KyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdjNTk5MDRlZjczZjMyODQ4NjQxNzg3YmI4YjZjMGJmOTM3YWE1MjIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25D
b250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29udGVudC12
aWV3LmFuaW1hdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiAxMDAl
OworICAgIG1hcmdpbjogNHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91
bmQtY29sb3ItY29udGVudCk7CisgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNv
bG9yKTsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24uc2VsZWN0ZWQgeworICAgIG91dGxp
bmU6IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yOworfQorCisuY29udGVudC12aWV3LmFu
aW1hdGlvbiA+IGhlYWRlciB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBhbGlnbi1pdGVtczog
Y2VudGVyOworICAgIGhlaWdodDogdmFyKC0tbmF2aWdhdGlvbi1iYXItaGVpZ2h0KTsKKyAgICBw
YWRkaW5nOiAwIDZweDsKKyAgICBmb250LXNpemU6IDEzcHg7Cit9CisKKy5jb250ZW50LXZpZXcu
YW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyB7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxl
IHsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LWRhcmspOworfQorCisuY29udGVu
dC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgeworICAgIGNv
bG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KKworLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlOm5vdCg6ZW1wdHkpOjpiZWZv
cmUgeworICAgIGNvbnRlbnQ6ICJcMDBBMFwyMDE0XDAwQTAiOyAvKiAmbmJzcDsmbWRhc2g7Jm5i
c3A7ICovOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC5uYXZpZ2F0
aW9uLWJhciB7CisgICAgYm9yZGVyOiBub25lOworICAgIG9wYWNpdHk6IDA7Cit9CisKKy5jb250
ZW50LXZpZXcuYW5pbWF0aW9uOmhvdmVyID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKyAg
ICBvcGFjaXR5OiAxOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3IHsK
KyAgICBkaXNwbGF5OiBmbGV4OworICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgIGFs
aWduLWl0ZW1zOiBjZW50ZXI7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NiUp
OworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnIHsKKyAgICB3
aWR0aDogMTAwJTsKK30KKworYm9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3ID4gc3ZnIHsKKyAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Cit9CisKKy5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgcmVjdCB7CisgICAgZmlsbDogdHJh
bnNwYXJlbnQ7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcg
PiAuZGVsYXkgbGluZSB7CisgICAgc3Ryb2tlOiB2YXIoLS1ib3JkZXItY29sb3IpOworICAgIHN0
cm9rZS13aWR0aDogMjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHN2ZyA+IC5hY3RpdmUgcGF0aCB7CisgICAgZmlsbDogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZl
KTsKKyAgICBmaWxsLW9wYWNpdHk6IDAuNTsKKyAgICBzdHJva2U6IHZhcigtLWdseXBoLWNvbG9y
LWFjdGl2ZSk7CisgICAgc3Ryb2tlLXdpZHRoOiAxOworfQorCisuY29udGVudC12aWV3LmFuaW1h
dGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBjaXJjbGUgeworICAgIGZpbGw6IHZhcigt
LXRleHQtY29sb3IpOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4g
c3ZnID4gLmFjdGl2ZSBsaW5lIHsKKyAgICBzdHJva2U6IHZhcigtLXRleHQtY29sb3IpOworICAg
IHN0cm9rZS13aWR0aDogMjsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmll
dyA+IHNwYW4geworICAgIHBhZGRpbmc6IDRweDsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xv
ci1zZWNvbmRhcnkpOworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7
CisgICAgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxl
IHsKKyAgICAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpOworICAgIH0KKworICAgIC5jb250
ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAg
ICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7CisgICAgfQorCisgICAgLmNv
bnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyB7CisgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IGhzbCgwLCAwJSwgMjAlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRW
aWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ5ZDYwNjdjZjg2NGQ3NDg3MzMzNGRjOTgzZmNhMGZhZTY3M2I2
YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDMwMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1dJLkFuaW1hdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQW5pbWF0aW9uQ29udGVudFZp
ZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKHJlcHJlc2VudGVk
T2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOworCisgICAgICAgIHN1cGVyKHJlcHJlc2VudGVkT2Jq
ZWN0KTsKKworICAgICAgICB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlID0gbnVsbDsKKyAg
ICAgICAgdGhpcy5fY2FjaGVkV2lkdGggPSBOYU47CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNs
YXNzTGlzdC5hZGQoImFuaW1hdGlvbiIpOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisgICAg
c3RhdGljIGdldCBwcmV2aWV3SGVpZ2h0KCkKKyAgICB7CisgICAgICAgIHJldHVybiA0MDsKKyAg
ICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCkK
KyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAgIH0KKworICAgIC8v
IFByb3RlY3RlZAorCisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5p
bml0aWFsTGF5b3V0KCk7CisKKyAgICAgICAgbGV0IGhlYWRlckVsZW1lbnQgPSB0aGlzLmVsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaGVhZGVyIikpOworCisgICAg
ICAgIGxldCB0aXRsZXNDb250YWluZXIgPSBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgdGl0bGVzQ29udGFpbmVyLmNsYXNz
TmFtZSA9ICJ0aXRsZXMiOworCisgICAgICAgIGxldCB0aXRsZUVsZW1lbnQgPSB0aXRsZXNDb250
YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAg
ICAgdGl0bGVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aXRsZSI7CisgICAgICAgIHRpdGxlRWxlbWVu
dC50ZXh0Q29udGVudCA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZGlzcGxheU5hbWU7CisKKyAg
ICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50ID0gdGl0bGVzQ29udGFpbmVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgIHRoaXMuX3N1YnRpdGxl
RWxlbWVudC5jbGFzc05hbWUgPSAic3VidGl0bGUiOworCisgICAgICAgIGxldCBuYXZpZ2F0aW9u
QmFyID0gbmV3IFdJLk5hdmlnYXRpb25CYXI7CisKKyAgICAgICAgbGV0IGFuaW1hdGlvblRhcmdl
dEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJhbmlt
YXRpb24tdGFyZ2V0IiwgV0kuVUlTdHJpbmcoIkFuaW1hdGlvbiBUYXJnZXQiKSwgIkltYWdlcy9N
YXJrdXAuc3ZnIiwgMTYsIDE2KTsKKyAgICAgICAgYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdh
dGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0
eVByaW9yaXR5LkxvdzsKKyAgICAgICAgV0kuYWRkTW91c2VEb3duQ29udGV4dE1lbnVIYW5kbGVy
cyhhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbGVtZW50LCB0aGlzLl9wb3B1
bGF0ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51LmJpbmQodGhpcykpOworICAgICAg
ICBuYXZpZ2F0aW9uQmFyLmFkZE5hdmlnYXRpb25JdGVtKGFuaW1hdGlvblRhcmdldEJ1dHRvbk5h
dmlnYXRpb25JdGVtKTsKKworICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZChuYXZpZ2F0aW9u
QmFyLmVsZW1lbnQpOworICAgICAgICB0aGlzLmFkZFN1YnZpZXcobmF2aWdhdGlvbkJhcik7CisK
KyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lciA9IHRoaXMuZWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIHRoaXMuX3ByZXZpZXdD
b250YWluZXIuY2xhc3NOYW1lID0gInByZXZpZXciOworICAgIH0KKworICAgIGxheW91dCgpCisg
ICAgeworICAgICAgICBzdXBlci5sYXlvdXQoKTsKKworICAgICAgICB0aGlzLl9yZWZyZXNoU3Vi
dGl0bGUoKTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFByZXZpZXcoKTsKKyAgICB9CisKKyAgICBz
aXplRGlkQ2hhbmdlKCkKKyAgICB7CisgICAgICAgIHN1cGVyLnNpemVEaWRDaGFuZ2UoKTsKKwor
ICAgICAgICB0aGlzLl9jYWNoZWRXaWR0aCA9IHRoaXMuZWxlbWVudC5yZWFsT2Zmc2V0V2lkdGg7
CisgICAgfQorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQo
KTsKKworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV0ku
QW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUVmZmVjdENoYW5nZWQs
IHRoaXMpOworICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIo
V0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZVRhcmdldENoYW5n
ZWQsIHRoaXMpOworICAgIH0KKworICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24uRXZlbnQu
VGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24u
RXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisK
KyAgICAgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAg
ICBfcmVmcmVzaFN1YnRpdGxlKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QucmVxdWVzdEVmZmVjdFRhcmdldCgoZG9tTm9kZSkgPT4geworICAgICAgICAgICAgdGhpcy5f
YW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSA9IGRvbU5vZGU7CisKKyAgICAgICAgICAgIHRoaXMuX3N1
YnRpdGxlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICAgICAgaWYgKGRvbU5vZGUp
CisgICAgICAgICAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKFdJLmxp
bmtpZnlOb2RlUmVmZXJlbmNlKGRvbU5vZGUpKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
X3JlZnJlc2hQcmV2aWV3KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIu
cmVtb3ZlQ2hpbGRyZW4oKTsKKworICAgICAgICBsZXQga2V5ZnJhbWVzID0gdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5rZXlmcmFtZXM7CisgICAgICAgIGlmICgha2V5ZnJhbWVzLmxlbmd0aCkgewor
ICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICBzcGFuLnRleHRD
b250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBrZXlmcmFtZXMuIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgc3RhcnREZWxh
eSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3RhcnREZWxheSB8fCAwOworICAgICAgICBsZXQg
aXRlcmF0aW9uRHVyYXRpb24gPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lml0ZXJhdGlvbkR1cmF0
aW9uIHx8IDA7CisgICAgICAgIGxldCBlbmREZWxheSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
ZW5kRGVsYXkgfHwgMDsKKyAgICAgICAgbGV0IHRvdGFsRHVyYXRpb24gPSBzdGFydERlbGF5ICsg
aXRlcmF0aW9uRHVyYXRpb24gKyBlbmREZWxheTsKKyAgICAgICAgaWYgKHRvdGFsRHVyYXRpb24g
PT09IDApIHsKKyAgICAgICAgICAgIGxldCBzcGFuID0gdGhpcy5fcHJldmlld0NvbnRhaW5lci5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICAgICAg
c3Bhbi50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJUaGlzIGFuaW1hdGlvbiBoYXMgbm8gZHVy
YXRpb24uIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCBwcmV2aWV3SGVpZ2h0ID0gV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJldmlld0hlaWdodDsK
KworICAgICAgICBjb25zdCBtYXJrZXJIZWFkUmFkaXVzID0gNDsKKyAgICAgICAgY29uc3QgbWFy
a2VySGVhZFBhZGRpbmcgPSAyOworCisgICAgICAgIC8vIFNxdWVlemUgdGhlIGVudGlyZSBwcmV2
aWV3IHNvIHRoYXQgbWFya2VycyBhcmVuJ3QgY3V0IG9mZi4KKyAgICAgICAgY29uc3Qgc3F1ZWV6
ZVhTdGFydCA9IChpdGVyYXRpb25EdXJhdGlvbiAmJiBzdGFydERlbGF5KSA/IDAgOiBtYXJrZXJI
ZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmc7CisgICAgICAgIGNvbnN0IHNxdWVlemVYRW5k
ID0gKGl0ZXJhdGlvbkR1cmF0aW9uICYmIGVuZERlbGF5KSA/IDAgOiBtYXJrZXJIZWFkUmFkaXVz
ICsgbWFya2VySGVhZFBhZGRpbmc7CisgICAgICAgIGNvbnN0IHNxdWVlemVZU3RhcnQgPSBtYXJr
ZXJIZWFkUmFkaXVzICsgKG1hcmtlckhlYWRQYWRkaW5nICogMik7CisKKyAgICAgICAgLy8gTW92
ZSB0aGUgZWFzaW5nIGxpbmUgZG93biB0byBjdXQgb2ZmIHRoZSBib3R0b20gYm9yZGVyLgorICAg
ICAgICBjb25zdCBhZGp1c3RFYXNpbmdZID0gMC41OworCisgICAgICAgIGxldCBzZWNvbmRzUGVy
UGl4ZWwgPSB0aGlzLl9jYWNoZWRXaWR0aCAvIHRvdGFsRHVyYXRpb247CisKKyAgICAgICAgc3Rh
cnREZWxheSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisgICAgICAgIGl0ZXJhdGlvbkR1cmF0aW9uID0g
KGl0ZXJhdGlvbkR1cmF0aW9uICogc2Vjb25kc1BlclBpeGVsKSAtIHNxdWVlemVYU3RhcnQgLSBz
cXVlZXplWEVuZDsKKyAgICAgICAgZW5kRGVsYXkgKj0gc2Vjb25kc1BlclBpeGVsOworCisgICAg
ICAgIGxldCBzdmcgPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNW
R0VsZW1lbnQoInN2ZyIpKTsKKyAgICAgICAgc3ZnLnNldEF0dHJpYnV0ZSgidmlld0JveCIsIGAw
IDAgJHt0aGlzLl9jYWNoZWRXaWR0aH0gJHtwcmV2aWV3SGVpZ2h0fWApOworCisgICAgICAgIGZ1
bmN0aW9uIGFkZFRpdGxlKHBhcmVudCwgdGl0bGUpIHsKKyAgICAgICAgICAgIGxldCB0aXRsZUVs
ZW1lbnQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgidGl0bGUiKSk7Cisg
ICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aXRsZTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChzdGFydERlbGF5KSB7CisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUNv
bnRhaW5lciA9IHN2Zy5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAg
ICAgICAgc3RhcnREZWxheUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJkZWxheSIsICJzdGFydCIp
OworCisgICAgICAgICAgICBsZXQgc3RhcnREZWxheUxpbmUgPSBzdGFydERlbGF5Q29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICBzdGFy
dERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVlZXplWVN0
YXJ0KSAvIDIpOworICAgICAgICAgICAgc3RhcnREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ4MiIs
IHN0YXJ0RGVsYXkpOworICAgICAgICAgICAgc3RhcnREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5
MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsKKworICAgICAgICAgICAg
bGV0IHN0YXJ0RGVsYXlFbGVtZW50ID0gc3RhcnREZWxheUNvbnRhaW5lci5hcHBlbmRDaGlsZChj
cmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgc3RhcnREZWxheUVsZW1lbnQu
c2V0QXR0cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkpOworICAgICAgICAgICAgc3RhcnREZWxh
eUVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBwcmV2aWV3SGVpZ2h0KTsKKworICAgICAg
ICAgICAgY29uc3Qgc3RhcnREZWxheVRpdGxlRm9ybWF0ID0gV0kuVUlTdHJpbmcoIlN0YXJ0IERl
bGF5ICVzIiwgIldlYiBBbmltYXRpb24gU3RhcnQgRGVsYXkgVG9vbHRpcCIsICJUb29sdGlwIGZv
ciBzZWN0aW9uIG9mIGdyYXBoIHJlcHJlc2VudGluZyBkZWxheSBiZWZvcmUgYSB3ZWIgYW5pbWF0
aW9uIGJlZ2lucyBhcHBseWluZyBzdHlsZXMiKTsKKyAgICAgICAgICAgIGFkZFRpdGxlKHN0YXJ0
RGVsYXlFbGVtZW50LCBzdGFydERlbGF5VGl0bGVGb3JtYXQuZm9ybWF0KE51bWJlci5zZWNvbmRz
VG9TdHJpbmcodGhpcy5yZXByZXNlbnRlZE9iamVjdC5zdGFydERlbGF5IC8gMTAwMCkpKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChlbmREZWxheSkgeworICAgICAgICAgICAgbGV0IGVuZERl
bGF5Q29udGFpbmVyID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7Cisg
ICAgICAgICAgICBlbmREZWxheUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0
cmFuc2xhdGUoJHtzdGFydERlbGF5ICsgaXRlcmF0aW9uRHVyYXRpb24gKyBzcXVlZXplWFN0YXJ0
fSwgMClgKTsKKyAgICAgICAgICAgIGVuZERlbGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImRl
bGF5IiwgImVuZCIpOworCisgICAgICAgICAgICBsZXQgZW5kRGVsYXlMaW5lID0gZW5kRGVsYXlD
b250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAg
ICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgKHByZXZpZXdIZWlnaHQgKyBzcXVl
ZXplWVN0YXJ0KSAvIDIpOworICAgICAgICAgICAgZW5kRGVsYXlMaW5lLnNldEF0dHJpYnV0ZSgi
eDIiLCBlbmREZWxheSk7CisgICAgICAgICAgICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ5
MiIsIChwcmV2aWV3SGVpZ2h0ICsgc3F1ZWV6ZVlTdGFydCkgLyAyKTsKKworICAgICAgICAgICAg
bGV0IGVuZERlbGF5RWxlbWVudCA9IGVuZERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0
ZVNWR0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICBlbmREZWxheUVsZW1lbnQuc2V0QXR0
cmlidXRlKCJ3aWR0aCIsIHN0YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIGVuZERlbGF5
KTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHBy
ZXZpZXdIZWlnaHQpOworCisgICAgICAgICAgICBjb25zdCBlbmREZWxheVRpdGxlRm9ybWF0ID0g
V0kuVUlTdHJpbmcoIkVuZCBEZWxheSAlcyIsICJXZWIgQW5pbWF0aW9uIEVuZCBEZWxheSBUb29s
dGlwIiwgIlRvb2x0aXAgZm9yIHNlY3Rpb24gb2YgZ3JhcGggcmVwcmVzZW50aW5nIGRlbGF5IGFm
dGVyIGEgd2ViIGFuaW1hdGlvbiBmaW5pc2hlcyBhcHBseWluZyBzdHlsZXMiKTsKKyAgICAgICAg
ICAgIGFkZFRpdGxlKGVuZERlbGF5RWxlbWVudCwgZW5kRGVsYXlUaXRsZUZvcm1hdC5mb3JtYXQo
TnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmVuZERlbGF5IC8g
MTAwMCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpdGVyYXRpb25EdXJhdGlvbikgewor
ICAgICAgICAgICAgbGV0IHRpbWluZ0Z1bmN0aW9uID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC50
aW1pbmdGdW5jdGlvbjsKKworICAgICAgICAgICAgbGV0IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVy
ID0gc3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICBh
Y3RpdmVEdXJhdGlvbkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTsKKyAgICAgICAg
ICAgIGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRy
YW5zbGF0ZSgke3N0YXJ0RGVsYXkgKyBzcXVlZXplWFN0YXJ0fSwgJHtzcXVlZXplWVN0YXJ0fSlg
KTsKKworICAgICAgICAgICAgY29uc3Qgc3RhcnRZID0gMDsKKyAgICAgICAgICAgIGNvbnN0IGVu
ZFkgPSBwcmV2aWV3SGVpZ2h0IC0gc3F1ZWV6ZVlTdGFydDsKKyAgICAgICAgICAgIGNvbnN0IGhl
aWdodCA9IGVuZFkgLSBzdGFydFk7CisKKyAgICAgICAgICAgIGZvciAobGV0IFtrZXlmcmFtZUEs
IGtleWZyYW1lQl0gb2Yga2V5ZnJhbWVzLmFkamFjZW5jaWVzKCkpIHsKKyAgICAgICAgICAgICAg
ICBsZXQgc3RhcnRYID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZUEub2Zmc2V0OworICAg
ICAgICAgICAgICAgIGxldCBlbmRYID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlmcmFtZUIub2Zm
c2V0OworICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGVuZFggLSBzdGFydFg7CisKKyAgICAg
ICAgICAgICAgICBsZXQgZWFzaW5nID0ga2V5ZnJhbWVBLmVhc2luZyB8fCB0aW1pbmdGdW5jdGlv
bjsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmdDb250YWluZXIgPSBhY3RpdmVEdXJhdGlv
bkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikpOworICAgICAgICAg
ICAgICAgIGVhc2luZ0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJlYXNpbmciKTsKKyAgICAgICAg
ICAgICAgICBlYXNpbmdDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNs
YXRlKCR7c3RhcnRYfSwgJHtzdGFydFl9KWApOworCisgICAgICAgICAgICAgICAgbGV0IHgxID0g
ZWFzaW5nLmluUG9pbnQueCAqIHdpZHRoOworICAgICAgICAgICAgICAgIGxldCB5MSA9ICgoMSAt
IGVhc2luZy5pblBvaW50LnkpICogaGVpZ2h0KSArIGFkanVzdEVhc2luZ1k7CisgICAgICAgICAg
ICAgICAgbGV0IHgyID0gZWFzaW5nLm91dFBvaW50LnggKiB3aWR0aDsKKyAgICAgICAgICAgICAg
ICBsZXQgeTIgPSAoKDEgLSBlYXNpbmcub3V0UG9pbnQueSkgKiBoZWlnaHQpICsgYWRqdXN0RWFz
aW5nWTsKKworICAgICAgICAgICAgICAgIGxldCBlYXNpbmdQYXRoID0gZWFzaW5nQ29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgiKSk7CisgICAgICAgICAgICAgICAg
ZWFzaW5nUGF0aC5zZXRBdHRyaWJ1dGUoImQiLCBgTSAwICR7aGVpZ2h0ICsgYWRqdXN0RWFzaW5n
WX0gQyAke3gxfSAke3kxfSAke3gyfSAke3kyfSAke3dpZHRofSAke2FkanVzdEVhc2luZ1l9IFYg
JHtoZWlnaHQgKyBhZGp1c3RFYXNpbmdZfSBaYCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0
bGVSZWN0ID0gZWFzaW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoInJl
Y3QiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCB3
aWR0aCk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
aGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwgZWFzaW5nLnRv
U3RyaW5nKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGxldCBrZXlmcmFt
ZSBvZiBrZXlmcmFtZXMpIHsKKyAgICAgICAgICAgICAgICBsZXQgeCA9IGl0ZXJhdGlvbkR1cmF0
aW9uICoga2V5ZnJhbWUub2Zmc2V0OworCisgICAgICAgICAgICAgICAgbGV0IGtleWZyYW1lQ29u
dGFpbmVyID0gYWN0aXZlRHVyYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxl
bWVudCgiZyIpKTsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUNvbnRhaW5lci5jbGFzc0xpc3Qu
YWRkKCJrZXlmcmFtZSIpOworICAgICAgICAgICAgICAgIGtleWZyYW1lQ29udGFpbmVyLnNldEF0
dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgke3h9LCAke3N0YXJ0WX0pYCk7CisKKyAg
ICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVNYXJrZXJIZWFkID0ga2V5ZnJhbWVDb250YWluZXIu
YXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiY2lyY2xlIikpOworICAgICAgICAgICAgICAg
IGtleWZyYW1lTWFya2VySGVhZC5zZXRBdHRyaWJ1dGUoInIiLCBtYXJrZXJIZWFkUmFkaXVzKTsK
KworICAgICAgICAgICAgICAgIGxldCBrZXlmcmFtZU1hcmtlckxpbmUgPSBrZXlmcmFtZUNvbnRh
aW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAgICAg
ICAgIGtleWZyYW1lTWFya2VyTGluZS5zZXRBdHRyaWJ1dGUoInkxIiwgaGVpZ2h0KTsKKworICAg
ICAgICAgICAgICAgIGxldCB0aXRsZVJlY3QgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGls
ZChjcmVhdGVTVkdFbGVtZW50KCJyZWN0IikpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5z
ZXRBdHRyaWJ1dGUoIngiLCAtMSAqIChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRp
bmcpKTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ5IiwgLTEgKiBz
cXVlZXplWVN0YXJ0KTsKKyAgICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ3
aWR0aCIsIChtYXJrZXJIZWFkUmFkaXVzICsgbWFya2VySGVhZFBhZGRpbmcpICogMik7CisgICAg
ICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgaGVpZ2h0ICsgc3F1
ZWV6ZVlTdGFydCk7CisKKyAgICAgICAgICAgICAgICBhZGRUaXRsZSh0aXRsZVJlY3QsIGtleWZy
YW1lLnN0eWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIF9oYW5k
bGVFZmZlY3RDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaFByZXZp
ZXcoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlVGFyZ2V0Q2hhbmdlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOworICAgIH0KKworICAgIF9wb3B1bGF0ZUFu
aW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51KGNvbnRleHRNZW51KQorICAgIHsKKyAgICAg
ICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiTG9nIEFuaW1hdGlvbiIpLCAo
KSA9PiB7CisgICAgICAgICAgICBXSS5SZW1vdGVPYmplY3QucmVzb2x2ZUFuaW1hdGlvbih0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50aW1lTWFuYWdlci5Db25zb2xlT2JqZWN0R3JvdXAs
IChyZW1vdGVPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIXJlbW90ZU9iamVjdCkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgY29uc3QgdGV4
dCA9IFdJLlVJU3RyaW5nKCJTZWxlY3RlZCBBbmltYXRpb24iLCAiQXBwZWFycyBhcyBhIGxhYmVs
IHdoZW4gYSBnaXZlbiB3ZWIgYW5pbWF0aW9uIGlzIGxvZ2dlZCB0byB0aGUgQ29uc29sZSIpOwor
ICAgICAgICAgICAgICAgIGNvbnN0IGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MgPSB0cnVlOworICAg
ICAgICAgICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBlbmRJbW1lZGlhdGVF
eGVjdXRpb25XaXRoUmVzdWx0KHRleHQsIHJlbW90ZU9iamVjdCwgYWRkU3BlY2lhbFVzZXJMb2dD
bGFzcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29udGV4dE1l
bnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvblRhcmdl
dERPTU5vZGUpCisgICAgICAgICAgICBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9k
ZShjb250ZXh0TWVudSwgdGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSk7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDVkYjQ2ZTQ4ZjA0YzM5NWE2MWE0Yjc0ZWVkMDM1M2MyMmZlNzIzNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Cisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFp
bHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5oZWFkZXIgPiAuc3VidGl0bGUgeworICAg
IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktbWVkaXVtKTsKK30KKworLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5p
bWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9uIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBoc2woMCwgMCUsIDk3JSk7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0
aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRl
dGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyB7CisgICAgZGlzcGxheTogdGFibGUtcm93OworfQor
Cisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFp
bHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24gLnJvdy5zdHls
ZXMgLkNvZGVNaXJyb3IgeworICAgIGhlaWdodDogYXV0bzsKKyAgICBwYWRkaW5nOiA0cHggMDsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKK30KKworQG1lZGlhIChwcmVmZXJz
LWNvbG9yLXNjaGVtZTogZGFyaykgeworICAgIC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5p
bWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMg
LmRldGFpbHMtc2VjdGlvbiB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwg
MTglKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQ
YW5lbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNjkxYTVjODIzMzAyZDE0N2EwODg5ZDM2NjRiMTYyNTk1OWIy
Y2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtMCwwICsxLDI1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBB
bmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuRGV0YWlsc1NpZGViYXJQYW5l
bAoreworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCJhbmltYXRpb24i
LCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIikpOworCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbiA9
IG51bGw7CisKKyAgICAgICAgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAgPSBuZXcgTWFwOwor
ICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaW5zcGVjdChvYmplY3RzKQorICAgIHsKKyAg
ICAgICAgaWYgKCEob2JqZWN0cyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAgICAgICAgIG9iamVj
dHMgPSBbb2JqZWN0c107CisKKyAgICAgICAgdGhpcy5hbmltYXRpb24gPSBvYmplY3RzLmZpbmQo
KG9iamVjdCkgPT4gb2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKTsKKworICAgICAgICBy
ZXR1cm4gISF0aGlzLmFuaW1hdGlvbjsKKyAgICB9CisKKyAgICBnZXQgYW5pbWF0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9hbmltYXRpb247CisgICAgfQorCisgICAgc2V0IGFu
aW1hdGlvbihhbmltYXRpb24pCisgICAgeworICAgICAgICBpZiAoYW5pbWF0aW9uID09PSB0aGlz
Ll9hbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMuX2Fu
aW1hdGlvbikgeworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlv
blRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlbW92
ZUV2ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hh
bmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAg
dGhpcy5fYW5pbWF0aW9uID0gYW5pbWF0aW9uIHx8IG51bGw7CisKKyAgICAgICAgaWYgKHRoaXMu
X2FuaW1hdGlvbikgeworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVjdENoYW5nZWQsIHRoaXMuX2hhbmRsZUFuaW1hdGlv
bkVmZmVjdENoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQsIHRoaXMuX2hhbmRs
ZUFuaW1hdGlvblRhcmdldENoYW5nZWQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgdGhp
cy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaW5pdGlh
bExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisKKyAgICAg
ICAgdGhpcy5fbmFtZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0
cmluZygiTmFtZSIpKTsKKyAgICAgICAgdGhpcy5fdHlwZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiVHlwZSIpKTsKKyAgICAgICAgdGhpcy5fdGFyZ2V0
Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJUYXJnZXQi
LCAiV2ViIEFuaW1hdGlvbiBUYXJnZXQgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBjdXJyZW50IERP
TSBub2RlIHRhcmdldCBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisKKyAgICAgICAgY29uc3QgaWRl
bnRpdHlTZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygiSWRlbnRpdHkiLCAiV2ViIEFuaW1hdGlv
biBJZGVudGl0eSBUaXRsZSIsICJTZWN0aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91dCBh
IHdlYiBhbmltYXRpb24iKTsKKyAgICAgICAgbGV0IGlkZW50aXR5U2VjdGlvbiA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWlkZW50aXR5IiwgaWRlbnRpdHlTZWN0aW9uVGl0bGUs
IFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdGhpcy5fbmFtZVJvdywgdGhpcy5fdHlwZVJv
dywgdGhpcy5fdGFyZ2V0Um93XSldKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50
LmFwcGVuZENoaWxkKGlkZW50aXR5U2VjdGlvbi5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl9p
dGVyYXRpb25Db3VudFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0
cmluZygiSXRlcmF0aW9ucyIsICJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBDb3VudCBMYWJlbCIs
ICJMYWJlbCBmb3IgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIG9mIGEgd2ViIGFuaW1hdGlvbiIp
KTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rp
b25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0YXJ0IiwgIldlYiBBbmltYXRpb24gSXRlcmF0aW9u
IFN0YXJ0IExhYmVsIiwgIkxhYmVsIGZvciB0aGUgbnVtYmVyIGRlc2NyaWJpbmcgd2hpY2ggaXRl
cmF0aW9uIGEgd2ViIGFuaW1hdGlvbiBzaG91bGQgc3RhcnQgYXQiKSk7CisgICAgICAgIHRoaXMu
X2l0ZXJhdGlvbkR1cmF0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJ
LlVJU3RyaW5nKCJEdXJhdGlvbiIsICJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBEdXJhdGlvbiBM
YWJlbCIsICJMYWJlbCBmb3IgdGhlIHRpbWUgZHVyYXRpb24gb2YgZWFjaCBpdGVyYXRpb24gb2Yg
YSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICBsZXQgaXRlcmF0aW9uc0dyb3VwID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX2l0ZXJhdGlvbkNvdW50Um93LCB0aGlzLl9pdGVy
YXRpb25TdGFydFJvdywgdGhpcy5faXRlcmF0aW9uRHVyYXRpb25Sb3ddKTsKKworICAgICAgICB0
aGlzLl9zdGFydERlbGF5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJ
U3RyaW5nKCJTdGFydCBEZWxheSIsICJXZWIgQW5pbWF0aW9uIFN0YXJ0IERlbGF5IExhYmVsIiwg
IkxhYmVsIGZvciB0aGUgc3RhcnQgZGVsYXkgdGltZSBvZiBhIHdlYiBhbmltYXRpb24gIikpOwor
ICAgICAgICB0aGlzLl9lbmREZWxheVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyhXSS5VSVN0cmluZygiRW5kIERlbGF5IiwgIldlYiBBbmltYXRpb24gRW5kIERlbGF5IExhYmVs
IiwgIkxhYmVsIGZvciB0aGUgZW5kIGRlbGF5IHRpbWUgb2YgYSB3ZWIgYW5pbWF0aW9uICIpKTsK
KyAgICAgICAgdGhpcy5fdGltaW5nRnVuY3Rpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25T
aW1wbGVSb3coV0kuVUlTdHJpbmcoIkVhc2luZyIsICJXZWIgQW5pbWF0aW9uIEVhc2luZyBMYWJl
bCIsICJMYWJlbCBmb3IgdGhlIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb24gb2YgYSB3ZWIg
YW5pbWF0aW9uIikpOworICAgICAgICBsZXQgdGltaW5nR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Hcm91cChbdGhpcy5fc3RhcnREZWxheVJvdywgdGhpcy5fZW5kRGVsYXlSb3csIHRoaXMu
X3RpbWluZ0Z1bmN0aW9uUm93XSk7CisKKyAgICAgICAgdGhpcy5fcGxheWJhY2tEaXJlY3Rpb25S
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkRpcmVjdGlv
biIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBMYWJlbCIsICJMYWJlbCBmb3Ig
dGhlIHBsYXliYWNrIGRpcmVjdGlvbiBvZiBhIHdlYiBhbmltYXRpb24iKSk7CisgICAgICAgIHRo
aXMuX2ZpbGxNb2RlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3Ry
aW5nKCJGaWxsIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIExhYmVsIiwgIkxhYmVsIGZvciB0
aGUgZmlsbCBtb2RlIG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsKKyAgICAgICAgbGV0IGZpbGxEaXJl
Y3Rpb25Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9wbGF5YmFja0Rp
cmVjdGlvblJvdywgdGhpcy5fZmlsbE1vZGVSb3ddKTsKKworICAgICAgICBjb25zdCBlZmZlY3RT
ZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygiRWZmZWN0IiwgIldlYiBBbmltYXRpb24gRWZmZWN0
IFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlZmZlY3Qg
b2YgYSB3ZWIgYW5pbWF0aW9uIik7CisgICAgICAgIGxldCBlZmZlY3RTZWN0aW9uID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24tZWZmZWN0IiwgZWZmZWN0U2VjdGlvblRpdGxlLCBb
aXRlcmF0aW9uc0dyb3VwLCB0aW1pbmdHcm91cCwgZmlsbERpcmVjdGlvbkdyb3VwXSk7CisgICAg
ICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChlZmZlY3RTZWN0aW9uLmVs
ZW1lbnQpOworCisgICAgICAgIHRoaXMuX2tleWZyYW1lc0dyb3VwID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uR3JvdXA7CisKKyAgICAgICAgY29uc3Qga2V5ZnJhbWVzU2VjdGlvblRpdGxlID0gV0ku
VUlTdHJpbmcoIktleWZyYW1lcyIsICJXZWIgQW5pbWF0aW9uIEtleWZyYW1lcyBUaXRsZSIsICJT
ZWN0aW9uIHRpdGxlIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUga2V5ZnJhbWVzIG9mIGEgd2Vi
IGFuaW1hdGlvbiIpOworICAgICAgICBsZXQga2V5ZnJhbWVzU2VjdGlvbiA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvbigiYW5pbWF0aW9uLWtleWZyYW1lcyIsIGtleWZyYW1lc1NlY3Rpb25UaXRsZSwg
W3RoaXMuX2tleWZyYW1lc0dyb3VwXSk7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVu
dC5hcHBlbmRDaGlsZChrZXlmcmFtZXNTZWN0aW9uLmVsZW1lbnQpOworCisgICAgICAgIGNvbnN0
IHNlbGVjdGFibGUgPSBmYWxzZTsKKyAgICAgICAgbGV0IGJhY2t0cmFjZVRyZWVPdXRsaW5lID0g
bmV3IFdJLlRyZWVPdXRsaW5lKHNlbGVjdGFibGUpOworICAgICAgICBiYWNrdHJhY2VUcmVlT3V0
bGluZS5kaXNjbG9zdXJlQnV0dG9ucyA9IGZhbHNlOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VU
cmVlQ29udHJvbGxlciA9IG5ldyBXSS5DYWxsRnJhbWVUcmVlQ29udHJvbGxlcihiYWNrdHJhY2VU
cmVlT3V0bGluZSk7CisKKyAgICAgICAgbGV0IGJhY2t0cmFjZVJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblJvdzsKKyAgICAgICAgYmFja3RyYWNlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFj
a3RyYWNlVHJlZU91dGxpbmUuZWxlbWVudCk7CisKKyAgICAgICAgY29uc3QgYmFja3RyYWNlU2Vj
dGlvblRpdGxlID0gV0kuVUlTdHJpbmcoIkJhY2t0cmFjZSIsICJXZWIgQW5pbWF0aW9uIEJhY2t0
cmFjZSBUaXRsZSIsICJTZWN0aW9uIHRpdGxlIGZvciB0aGUgSmF2YVNjcmlwdCBiYWNrdHJhY2Ug
b2YgdGhlIGNyZWF0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiIpOworICAgICAgICB0aGlzLl9iYWNr
dHJhY2VTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24tYmFja3RyYWNl
IiwgYmFja3RyYWNlU2VjdGlvblRpdGxlLCBbbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2Jh
Y2t0cmFjZVJvd10pXSk7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24uZWxlbWVudC5o
aWRkZW4gPSB0cnVlOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50KTsKKyAgICB9CisKKyAgICBsYXlvdXQo
KQorICAgIHsKKyAgICAgICAgc3VwZXIubGF5b3V0KCk7CisKKyAgICAgICAgaWYgKCF0aGlzLl9h
bmltYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaElk
ZW50aXR5U2VjdGlvbigpOworICAgICAgICB0aGlzLl9yZWZyZXNoRWZmZWN0U2VjdGlvbigpOwor
ICAgICAgICB0aGlzLl9yZWZyZXNoQmFja3RyYWNlU2VjdGlvbigpOworCisgICAgICAgIGZvciAo
bGV0IGNvZGVNaXJyb3Igb2YgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAudmFsdWVzKCkpCisg
ICAgICAgICAgICBjb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRl
CisKKyAgICBfcmVmcmVzaElkZW50aXR5U2VjdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9u
YW1lUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmRpc3BsYXlOYW1lOworICAgICAgICB0aGlz
Ll90eXBlUm93LnZhbHVlID0gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlw
ZSh0aGlzLl9hbmltYXRpb24uYW5pbWF0aW9uVHlwZSk7CisKKyAgICAgICAgdGhpcy5fdGFyZ2V0
Um93LnZhbHVlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RU
YXJnZXQoKGRvbU5vZGUpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3RhcmdldFJvdy52YWx1ZSA9
IGRvbU5vZGUgPyBXSS5saW5raWZ5Tm9kZVJlZmVyZW5jZShkb21Ob2RlKSA6IG51bGw7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIF9yZWZyZXNoRWZmZWN0U2VjdGlvbigpCisgICAgeworICAg
ICAgICBmb3IgKGxldCBzZWN0aW9uIG9mIHRoaXMuX2NvZGVNaXJyb3JTZWN0aW9uTWFwLmtleXMo
KSkKKyAgICAgICAgICAgIHNlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5EZXRhaWxzU2Vj
dGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRsZURldGFpbHNTZWN0
aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fY29kZU1pcnJv
clNlY3Rpb25NYXAuY2xlYXIoKTsKKworICAgICAgICBjb25zdCBwcmVjaXNpb24gPSAwOworICAg
ICAgICBjb25zdCByZWFkT25seSA9IHRydWU7CisKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uQ291
bnRSb3cudmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KSA/IHRo
aXMuX2FuaW1hdGlvbi5pdGVyYXRpb25Db3VudC50b0xvY2FsZVN0cmluZygpIDogbnVsbDsKKyAg
ICAgICAgdGhpcy5faXRlcmF0aW9uU3RhcnRSb3cudmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0
aW9uLml0ZXJhdGlvblN0YXJ0KSA/IHRoaXMuX2FuaW1hdGlvbi5pdGVyYXRpb25TdGFydC50b0xv
Y2FsZVN0cmluZygpIDogbnVsbDsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9uRHVyYXRpb25Sb3cu
dmFsdWUgPSAhaXNOYU4odGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uKSA/IE51bWJl
ci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uIC8gMTAw
MCkgOiBudWxsOworCisgICAgICAgIHRoaXMuX3N0YXJ0RGVsYXlSb3cudmFsdWUgPSB0aGlzLl9h
bmltYXRpb24uc3RhcnREZWxheSA/IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYW5pbWF0
aW9uLnN0YXJ0RGVsYXkgLyAxMDAwKSA6IG51bGw7CisgICAgICAgIHRoaXMuX2VuZERlbGF5Um93
LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmVuZERlbGF5ID8gTnVtYmVyLnNlY29uZHNUb1N0cmlu
Zyh0aGlzLl9hbmltYXRpb24uZW5kRGVsYXkgLyAxMDAwKSA6IG51bGw7CisgICAgICAgIHRoaXMu
X3RpbWluZ0Z1bmN0aW9uUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9u
ID8gdGhpcy5fYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uLnRvU3RyaW5nKCkgOiBudWxsOworCisg
ICAgICAgIHRoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9u
LnBsYXliYWNrRGlyZWN0aW9uID8gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yUGxheWJhY2tE
aXJlY3Rpb24odGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uKSA6IG51bGw7CisgICAg
ICAgIHRoaXMuX2ZpbGxNb2RlUm93LnZhbHVlID0gdGhpcy5fYW5pbWF0aW9uLmZpbGxNb2RlID8g
V0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yRmlsbE1vZGUodGhpcy5fYW5pbWF0aW9uLmZpbGxN
b2RlKSA6IG51bGw7CisKKyAgICAgICAgbGV0IGtleWZyYW1lU2VjdGlvbnMgPSBbXTsKKyAgICAg
ICAgZm9yIChsZXQga2V5ZnJhbWUgb2YgdGhpcy5fYW5pbWF0aW9uLmtleWZyYW1lcykgeworICAg
ICAgICAgICAgbGV0IHJvd3MgPSBbXTsKKworICAgICAgICAgICAgbGV0IGtleWZyYW1lU2VjdGlv
biA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigiYW5pbWF0aW9uLWtleWZyYW1lLW9mZnNldC0iICsg
a2V5ZnJhbWUub2Zmc2V0LCBOdW1iZXIucGVyY2VudGFnZVN0cmluZyhrZXlmcmFtZS5vZmZzZXQs
IHByZWNpc2lvbikpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9uLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuRGV0YWlsc1NlY3Rpb24uRXZlbnQuQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzLl9o
YW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAg
ICAgICBrZXlmcmFtZVNlY3Rpb25zLnB1c2goa2V5ZnJhbWVTZWN0aW9uKTsKKworICAgICAgICAg
ICAgaWYgKGtleWZyYW1lLmVhc2luZykgeworICAgICAgICAgICAgICAgIGxldCBzdWJ0aXRsZSA9
IGtleWZyYW1lU2VjdGlvbi5oZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICAgICAgc3VidGl0bGUuY2xhc3NOYW1lID0g
InN1YnRpdGxlIjsKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZS50ZXh0Q29udGVudCA9IGAgJHtl
bURhc2h9ICR7a2V5ZnJhbWUuZWFzaW5nLnRvU3RyaW5nKCl9YDsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKGtleWZyYW1lLnN0eWxlKSB7CisgICAgICAgICAgICAgICAgbGV0IGNv
ZGVNaXJyb3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
ICAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSBXSS5Db2RlTWlycm9yRWRpdG9yLmNyZWF0ZShjb2Rl
TWlycm9yRWxlbWVudCwgeworICAgICAgICAgICAgICAgICAgICBtb2RlOiAiY3NzIiwKKyAgICAg
ICAgICAgICAgICAgICAgcmVhZE9ubHk6ICJub2N1cnNvciIsCisgICAgICAgICAgICAgICAgICAg
IGxpbmVXcmFwcGluZzogdHJ1ZSwKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBjb2RlTWlycm9yLnNldFZhbHVlKGtleWZyYW1lLnN0eWxlKTsKKworICAgICAgICAgICAgICAg
IGNvbnN0IHJhbmdlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBvcHRpb25zRm9y
VHlwZSh0eXBlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBhbGxvd2VkVG9rZW5zOiAvXGJ0YWdcYi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICBjYWxsYmFjayhtYXJrZXIsIHZhbHVlT2JqZWN0LCB2YWx1ZVN0cmluZykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBzd2F0Y2ggPSBuZXcgV0kuSW5saW5lU3dhdGNoKHR5
cGUsIHZhbHVlT2JqZWN0LCByZWFkT25seSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29kZU1pcnJvci5zZXRVbmlxdWVCb29rbWFyayhtYXJrZXIucmFuZ2Uuc3RhcnRQb3NpdGlvbigp
LnRvQ29kZU1pcnJvcigpLCBzd2F0Y2guZWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JDb2xvclRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdl
LCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0Y2guVHlwZS5Db2xvcikpOworICAgICAgICAg
ICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JHcmFkaWVudFRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJh
bmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0Y2guVHlwZS5HcmFkaWVudCkpOworICAg
ICAgICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JDdWJpY0JlemllclRleHRNYXJrZXJzKGNvZGVN
aXJyb3IsIHJhbmdlLCBvcHRpb25zRm9yVHlwZShXSS5JbmxpbmVTd2F0Y2guVHlwZS5CZXppZXIp
KTsKKyAgICAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yU3ByaW5nVGV4dE1hcmtlcnMoY29k
ZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLlNwcmlu
ZykpOworCisgICAgICAgICAgICAgICAgbGV0IHJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJv
dzsKKyAgICAgICAgICAgICAgICByb3cuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzdHlsZXMiKTsK
KyAgICAgICAgICAgICAgICByb3cuZWxlbWVudC5hcHBlbmRDaGlsZChjb2RlTWlycm9yRWxlbWVu
dCk7CisgICAgICAgICAgICAgICAgcm93cy5wdXNoKHJvdyk7CisKKyAgICAgICAgICAgICAgICB0
aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC5zZXQoa2V5ZnJhbWVTZWN0aW9uLCBjb2RlTWlycm9y
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFyb3dzLmxlbmd0aCkgeworICAg
ICAgICAgICAgICAgIGxldCBlbXB0eVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdyhXSS5V
SVN0cmluZygiTm8gU3R5bGVzIikpOworICAgICAgICAgICAgICAgIGVtcHR5Um93LnNob3dFbXB0
eU1lc3NhZ2UoKTsKKyAgICAgICAgICAgICAgICByb3dzLnB1c2goZW1wdHlSb3cpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb24uZ3JvdXBzID0gW25ldyBXSS5E
ZXRhaWxzU2VjdGlvbkdyb3VwKHJvd3MpXTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWtleWZy
YW1lU2VjdGlvbnMubGVuZ3RoKSB7CisgICAgICAgICAgICBsZXQgZW1wdHlSb3cgPSBuZXcgV0ku
RGV0YWlsc1NlY3Rpb25Sb3coV0kuVUlTdHJpbmcoIk5vIEtleWZyYW1lcyIpKTsKKyAgICAgICAg
ICAgIGVtcHR5Um93LnNob3dFbXB0eU1lc3NhZ2UoKTsKKyAgICAgICAgICAgIGtleWZyYW1lU2Vj
dGlvbnMucHVzaChlbXB0eVJvdyk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fa2V5ZnJhbWVz
R3JvdXAucm93cyA9IGtleWZyYW1lU2VjdGlvbnM7CisgICAgfQorCisgICAgX3JlZnJlc2hCYWNr
dHJhY2VTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGxldCBjYWxsRnJhbWVzID0gdGhpcy5fYW5p
bWF0aW9uLmJhY2t0cmFjZTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlVHJlZUNvbnRyb2xsZXIu
Y2FsbEZyYW1lcyA9IGNhbGxGcmFtZXM7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rpb24u
ZWxlbWVudC5oaWRkZW4gPSAhY2FsbEZyYW1lcy5sZW5ndGg7CisgICAgfQorCisgICAgX2hhbmRs
ZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZy
ZXNoRWZmZWN0U2VjdGlvbigpOworICAgIH0KKworICAgIF9oYW5kbGVBbmltYXRpb25UYXJnZXRD
aGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVmcmVzaElkZW50aXR5U2VjdGlv
bigpOworICAgIH0KKworICAgIF9oYW5kbGVEZXRhaWxzU2VjdGlvbkNvbGxhcHNlZFN0YXRlQ2hh
bmdlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb2RlTWlycm9yID0gdGhpcy5fY29kZU1p
cnJvclNlY3Rpb25NYXAuZ2V0KGV2ZW50LnRhcmdldCk7CisgICAgICAgIGNvZGVNaXJyb3IucmVm
cmVzaCgpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKaW5kZXggNGU1
YTkwZTFmMDMxN2YwYzRlYmY0Zjc5OTcwMjc2YzdmYmQyN2Y1OC4uY2MxNjZiZDNlNjBkMzgxYTc1
YTFhMTc5NDNhYmUyMzY3MDdhOGI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcwpA
QCAtMjMsMTEgKzIzLDExIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDkwJSk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IC5wcmV2aWV3IHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAganVzdGlmeS1jb250ZW50
OiBjZW50ZXI7CiAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKQEAgLTM2LDE3ICszNiwxNyBAQAog
ICAgIHBhZGRpbmc6IDE1cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7
CisuY29udGVudC12aWV3LmNhbnZhcyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LWRp
cmVjdGlvbjogY29sdW1uOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgPiAu
cHJldmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsK
ICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgbWF4LWhlaWdodDogMTAwJTsKIH0KIAotLmNvbnRl
bnQtdmlldy5jYW52YXM6bm90KC50YWIpID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsKICAgICBkaXNw
bGF5OiBub25lOwogfQogCkBAIC01Niw3ICs1Niw3IEBACiB9CiAKIEBtZWRpYSAocHJlZmVycy1j
b2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnRhYikg
eworICAgIC5jb250ZW50LXZpZXcuY2FudmFzIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
dW5zZXQ7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcwppbmRleCA5YjRmZDZm
NmVkN2UxY2I3NjM5NzUxMTEwMTE1MzI0NjU0ZDU4ZjAxLi45OTNkYTUxM2YyZGQ1NjMzZmQ3OTQ4
M2VhNGNhOWZmYmE5NmVmY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5qcwpAQCAtNDUs
NyArNDUsNyBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2giLCBXSS5V
SVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKICAg
ICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0
eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7Ci0gICAgICAgIHRo
aXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMucmVmcmVzaFByZXZpZXcsIHRoaXMp
OworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0
ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLmhhbmRsZVJl
ZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRv
bk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNo
b3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3Ry
aW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVj
a2Vycy5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xp
Y2tlZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKQEAgLTc3LDYgKzc3LDI5
IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS5Db250ZW50VmlldwogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBoYW5kbGVSZWZyZXNo
QnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICB0aGlzLnJlZnJlc2hQcmV2aWV3KCk7Cisg
ICAgfQorCisgICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVnYXRlCisKKyAgICBkcm9wWm9uZVNob3Vs
ZEFwcGVhckZvckRyYWdFdmVudChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICByZXR1
cm4gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxlcyIpOworICAgIH0KKwor
ICAgIGRyb3Bab25lSGFuZGxlRHJvcChkcm9wWm9uZSwgZXZlbnQpCisgICAgeworICAgICAgICBs
ZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAgICAgIGlmIChmaWxlcy5s
ZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5iZWVwKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBXSS5GaWxlVXRpbGl0
aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NK
U09OKHJlc3VsdCkpOworICAgIH0KKwogICAgIC8vIFByb3RlY3RlZAogCiAgICAgaW5pdGlhbExh
eW91dCgpCkBAIC0xNjAsNiArMTgzLDEzIEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3Mg
Q2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIGlmIChp
c0NhcmQpCiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNoUGl4ZWxTaXplKCk7CisKKyAgICAgICAg
aWYgKCFpc0NhcmQpIHsKKyAgICAgICAgICAgIGxldCBkcm9wWm9uZVZpZXcgPSBuZXcgV0kuRHJv
cFpvbmVWaWV3KHRoaXMpOworICAgICAgICAgICAgZHJvcFpvbmVWaWV3LnRleHQgPSBXSS5VSVN0
cmluZygiSW1wb3J0IFJlY29yZGluZyIpOworICAgICAgICAgICAgZHJvcFpvbmVWaWV3LnRhcmdl
dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcoZHJv
cFpvbmVWaWV3KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGxheW91dCgpCkBAIC0xOTEsMTMg
KzIyMSw2IEBAIFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl91cGRhdGVJbWFnZUdyaWQoKTsK
ICAgICB9CiAKLSAgICBzaG93bigpCi0gICAgewotICAgICAgICBzdXBlci5zaG93bigpOwotCi0g
ICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKLSAgICB9Ci0KICAgICBhdHRhY2hlZCgpCiAg
ICAgewogICAgICAgICBzdXBlci5hdHRhY2hlZCgpOwpAQCAtMjIzLDYgKzI0Niw4IEBAIFdJLkNh
bnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50VmlldwogICAgICAgICB9KTsKIAogICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlk
LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl91cGRhdGVJ
bWFnZUdyaWQsIHRoaXMpOworCisgICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKICAgICB9
CiAKICAgICBkZXRhY2hlZCgpCkBAIC0yOTEsMTEgKzMxNiw2IEBAIFdJLkNhbnZhc0NvbnRlbnRW
aWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAg
ICAgX3BvcHVsYXRlQ2FudmFzRWxlbWVudEJ1dHRvbkNvbnRleHRNZW51KGNvbnRleHRNZW51KQog
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2NhbnZhc05vZGUpCi0gICAgICAgICAgICBXSS5hcHBl
bmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZShjb250ZXh0TWVudSwgdGhpcy5fY2FudmFzTm9k
ZSk7Ci0KLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7Ci0KICAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiTG9nIENhbnZhcyBDb250ZXh0Iiks
ICgpID0+IHsKICAgICAgICAgICAgIFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQ2FudmFzQ29udGV4
dCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXSS5SdW50aW1lTWFuYWdlci5Db25zb2xlT2JqZWN0
R3JvdXAsIChyZW1vdGVPYmplY3QpID0+IHsKICAgICAgICAgICAgICAgICBpZiAoIXJlbW90ZU9i
amVjdCkKQEAgLTMwNiw2ICszMjYsMTEgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBD
YW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICAgICAg
V0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4ZWN1dGlvbldpdGhS
ZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBh
cmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fY2FudmFzTm9kZSkKKyAgICAgICAgICAgIFdJ
LmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9jYW52
YXNOb2RlKTsKICAgICB9CiAKICAgICBfc2hvd0dyaWRCdXR0b25DbGlja2VkKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKaW5kZXggMTBmMzdjMDQ2YjBjMmEx
MjgyYzVlYzk5ZGM2Y2I5OTBiMjIzNmM1Zi4uMWM2ZDY0MzFmOWI3ZDYzNmU4ZjNlOGNlMTVjNmJi
MmE2NWIxMzZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5j
c3MKQEAgLTI2LDI5ICsyNiwyOSBAQAogLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgewog
ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0
OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKLQotICAgIC0taXRlbS1t
YXJnaW46IDEwcHg7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHBhZGRpbmc6IDRweCAw
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
IHsKICAgICBmbGV4LWdyb3c6IDA7Ci0gICAgbWFyZ2luOiB2YXIoLS1pdGVtLW1hcmdpbik7Cisg
ICAgZmxleC1zaHJpbms6IDA7CiAgICAgd2lkdGg6IDQwMHB4OworICAgIG1hcmdpbjogNHB4Owog
ICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICAgY3Vyc29yOiBw
b2ludGVyOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAu
Y29udGVudC12aWV3LmNhbnZhcywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CiAgICAgYmFja2dyb3VuZC1jb2xv
cjogd2hpdGU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZp
ZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlIHsKICAgICBib3JkZXIt
Y29sb3I6IHJlZDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IDptYXRjaGVzKGhlYWRlciwg
Zm9vdGVyKSB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owog
ICAgIGZsZXgtc2hyaW5rOiAwOwpAQCAtNTksMTM2ICs1OSwxMzYgQEAKICAgICBjdXJzb3I6IGRl
ZmF1bHQ7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcu
Y2FudmFzID4gaGVhZGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBoZWFkZXIgewogICAgIGZvbnQtc2l6ZTogMTNweDsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5n
LWFjdGl2ZSA+IGhlYWRlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgewogICAgIGJhY2tncm91
bmQtY29sb3I6IHJlZDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzLAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuc2l6ZSB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4g
LnRpdGxlcywKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBmb290ZXIgPiAuc2l6ZSB7CiAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4g
LmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBj
b2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LWRhcmspOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAu
c3VidGl0bGUsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUs
CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4g
Zm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3ItZ3JheS1t
ZWRpdW0pOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcyA+IGhlYWRlciAuc3VidGl0bGU6OmJlZm9yZSB7CisuY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyIC5zdWJ0aXRsZTo6YmVm
b3JlIHsKICAgICBjb250ZW50OiAiXDAwQTBcMjAxNFwwMEEwIjsgLyogJm5ic3A7Jm1kYXNoOyZu
YnNwOyAqLzsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNv
cmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgY29sb3I6IHdo
aXRlOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7Cisu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKICAgICBjb2xvcjog
dmFyKC0tc2VsZWN0ZWQtc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0geworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVy
ID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBp
bnZlcnQoKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC5uYXZpZ2F0aW9u
LWJhciB7CiAgICAgYWxpZ24taXRlbXM6IGluaXRpYWw7CiAgICAgYm9yZGVyOiBub25lOwogICAg
IG9wYWNpdHk6IDA7CiAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6
bWF0Y2hlcyg6aG92ZXIsIC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9u
LWJhciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzOm1hdGNoZXMoOmhvdmVyLCAucmVjb3JkaW5nLWFjdGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdh
dGlvbi1iYXIgewogICAgIG9wYWNpdHk6IDE7CiAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBt
cyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0
aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wLmRpc2FibGVkIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmct
YWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1z
dG9wLmRpc2FibGVkIHsKICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgpOwogICAgIG9wYWNpdHk6IDAu
NTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52
YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5p
dGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmhvdmVyIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmct
YWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1z
dG9wOm5vdCguZGlzYWJsZWQpOmhvdmVyIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoOTUlKTsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXM6
bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
LnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7CisuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgucmVjb3JkaW5nLWFj
dGl2ZSkgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbS5yZWNvcmQtc3RhcnQtc3Rv
cDpub3QoLmRpc2FibGVkKTphY3RpdmUgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg4MCUpOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNzLXZpZXcsCi0uY29udGVudC12aWV3LmNhbnZhcy1v
dmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKKy5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+
IC5wcm9ncmVzcy12aWV3LAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVu
dC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3IHsKICAgICBoZWlnaHQ6IDI4MHB4OwogICAgIHRyYW5z
aXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXMgZWFzZS1pbi1vdXQ7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiAucHJvZ3Jlc3Mtdmlldzpob3ZlciwKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92ZXIgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
LnByb2dyZXNzLXZpZXc6aG92ZXIsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92ZXIgewogICAgIGJhY2tncm91bmQtY29s
b3I6IGhzbCgwLCAwJSwgOTYlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcg
LmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcmV2aWV3IHsKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5n
LWFjdGl2ZSA+IC5wcmV2aWV3IHsKICAgICBkaXNwbGF5OiBub25lOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1n
IHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMg
PiAucHJldmlldyA+IGltZyB7CiAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgIGJveC1zaGFk
b3c6IDFweCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC41OCk7CiB9CiAKLS5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiAubWVzc2Fn
ZS10ZXh0LXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IC5wcmV2aWV3ID4gLm1lc3NhZ2UtdGV4dC12aWV3IHsKICAgICBwb3NpdGlv
bjogc3RhdGljOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcyA+IGZvb3RlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIHsKICAgICBib3JkZXItdG9wOiBub25lOwogfQog
Ci0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMg
ewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKIH0KIAotLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
PiAudmlldy1yZWxhdGVkLWl0ZW1zID4gOm1hdGNoZXMoLnZpZXctc2hhZGVyLCAudmlldy1yZWNv
cmRpbmcpIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gOm1hdGNoZXMoLnZpZXctc2hh
ZGVyLCAudmlldy1yZWNvcmRpbmcpIHsKICAgICB3aWR0aDogMTZweDsKICAgICBoZWlnaHQ6IDE2
cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyA+IGltZyArIGltZyB7CisuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4g
LnZpZXctcmVsYXRlZC1pdGVtcyA+IGltZyArIGltZyB7CiAgICAgLXdlYmtpdC1tYXJnaW4tc3Rh
cnQ6IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctc2hhZGVyIHsK
Ky5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBm
b290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXctc2hhZGVyIHsKICAgICBjb250ZW50
OiBpbWFnZS1zZXQodXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMLnBuZykgMXgsIHVybCguLi9JbWFn
ZXMvRG9jdW1lbnRHTEAyeC5wbmcpIDJ4KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1z
ID4gLnZpZXctcmVjb3JkaW5nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gLnZpZXct
cmVjb3JkaW5nIHsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciA+IC5mbGV4aWJsZS1zcGFjZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLmZsZXhpYmxlLXNwYWNlIHsKICAg
ICBmbGV4OiAxOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3QgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNvc3Qgewog
ICAgIC13ZWJraXQtcGFkZGluZy1zdGFydDogNHB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZh
cy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIHsKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVj
b3JkaW5ncyB7CiAgICAgaGVpZ2h0OiAzNDBweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRs
aW5lIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lIHsKICAgICBvdmVyZmxvdy15OiBzY3Jv
bGw7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzLnNhdmVkLXJlY29yZGluZ3MgLnRyZWUtb3V0bGluZSA+IC5pdGVtLnJlY29yZGluZyA+IC5p
Y29uIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMuc2F2ZWQtcmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lID4gLml0ZW0ucmVjb3JkaW5nID4gLmlj
b24gewogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7CiB9CiAKQEAg
LTIwOSw0MyArMjA5LDM5IEBACiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRh
cmspIHsKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7Ci0gICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHVuc2V0OwotICAgIH0KLQotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworICAgIC5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMsCisgICAgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2
aWV3ID4gaW1nIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1j
b2xvci1zZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mtdmll
dzpob3ZlciwKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3OmhvdmVyIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mt
dmlldzpob3ZlciwKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50
LXZpZXcuY2FudmFzID4gLnByZXZpZXc6aG92ZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXRlcnRpYXJ5KTsKICAgICB9CiAKLSAgICAuY29udGVu
dC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0
aXZlIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcu
Y2FudmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgICAgICAtLXJlY29yZGluZy1jb2xvcjogaHNs
KDAsIDEwMCUsIDM5JSk7CiAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcmVjb3JkaW5nLWNv
bG9yKTsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVu
dC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyIHsKKyAgICAuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiBoZWFkZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yZWNvcmRpbmct
Y29sb3IpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250
ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisgICAgLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+
IC50aXRsZXMgPiAudGl0bGUgewogICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7CiAg
ICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlLAotICAgIC5jb250ZW50LXZpZXcu
Y2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29z
dCB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCisgICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAubWVtb3J5LWNv
c3QgewogICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpOwogICAgIH0K
IAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyIC52aWV3LXJlY29yZGluZyB7CisgICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciAudmlldy1yZWNvcmRpbmcgewog
ICAgICAgICBmaWx0ZXI6IGludmVydCgpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFk
ZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAu
dGl0bGVzID4gLnN1YnRpdGxlIHsKICAgICAgICAgY29sb3I6IHVuc2V0OwogICAgICAgICBvcGFj
aXR5OiAwLjUKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5q
cwppbmRleCA2MzliMzZkODU5YmI3Y2YzYzM0NDQ1YWEwZWI3NDk1NDMzYzQxMDk4Li4wZDE2NWRk
MjY4ZDQzNzAyOGE0M2QxNDllMDdjZmE4MzhiNGRlN2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAgLTI5LDcgKzI5LDggQEAgV0kuQ2FudmFzT3ZlcnZp
ZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db2xsZWMKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbik7CiAKLSAgICAgICAgbGV0IGNvbnRlbnRQ
bGFjZWhvbGRlciA9IFdJLmNyZWF0ZU1lc3NhZ2VUZXh0VmlldyhXSS5VSVN0cmluZygiTm8gQ2Fu
dmFzIENvbnRleHRzIikpOworICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVyID0gV0kuYW5p
bWF0aW9uTWFuYWdlci5zdXBwb3J0ZWQgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSA6
IFdJLmNyZWF0ZU1lc3NhZ2VUZXh0VmlldyhXSS5VSVN0cmluZygiTm8gQ2FudmFzIENvbnRleHRz
IikpOworCiAgICAgICAgIGxldCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBjb250ZW50UGxhY2Vob2xk
ZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwogICAgICAgICBk
ZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgZGVz
Y3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGNh
bnZhcyBjb250ZXh0cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIik7CkBAIC02MiwyMSArNjMs
NyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdD
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICAgICAgdGhpcy5fdXBkYXRlUmVj
b3JkaW5nQXV0b0NhcHR1cmVDaGVja2JveExhYmVsKGZyYW1lQ291bnQpOwogICAgICAgICB9CiAK
LSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNvcmRpbmciLCBXSS5VSVN0cmluZygiSW1wb3J0Iiks
ICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtLnRvb2x0aXAgPSBXSS5VSVN0cmluZygiSW1wb3J0Iik7Ci0gICAgICAg
IHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0OwotCi0gICAgICAgIHRoaXMuX3JlZnJl
c2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVm
cmVzaC1hbGwiLCBXSS5VSVN0cmluZygiUmVmcmVzaCBhbGwiKSwgIkltYWdlcy9SZWxvYWRGdWxs
LnN2ZyIsIDEzLCAxMyk7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRl
bS5lbmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9u
SXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNr
ZWQsIHRoaXMuX3JlZnJlc2hQcmV2aWV3cywgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fc2hvd0dy
aWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25J
dGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIpLCBX
SS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRpb25J
dGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKLSAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25O
YXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFs
dWU7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9
IGZhbHNlOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5f
c2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlzKTsKLQogICAgICAgICBpbXBvcnROYXZpZ2F0aW9u
SXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNr
ZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7
Ci0gICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1w
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9z
YXZlZFJlY29yZGluZ3NDb250ZW50VmlldyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NhdmVkUmVj
b3JkaW5nc1RyZWVPdXRsaW5lID0gbnVsbDsKQEAgLTkwLDE3ICs3NywxOCBAQCBXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbGxlYwogCiAgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCiAgICAgewotICAgICAg
ICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
LCBuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtLCB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdh
dGlvbkl0ZW0sIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW1dOwotICAgICAgICBp
ZiAoV0kuQ2FudmFzTWFuYWdlci5zdXBwb3J0c1JlY29yZGluZ0F1dG9DYXB0dXJlKCkpCi0gICAg
ICAgICAgICBuYXZpZ2F0aW9uSXRlbXMudW5zaGlmdCh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVy
ZU5hdmlnYXRpb25JdGVtLCBuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAg
bGV0IG5hdmlnYXRpb25JdGVtcyA9IFtdOworICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nQXV0
b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSkKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNo
KHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1
cm4gbmF2aWdhdGlvbkl0ZW1zOwogICAgIH0KIAotICAgIGhpZGRlbigpCisgICAgaGFuZGxlUmVm
cmVzaEJ1dHRvbkNsaWNrZWQoKQogICAgIHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9N
Tm9kZUhpZ2hsaWdodCgpOwotCi0gICAgICAgIHN1cGVyLmhpZGRlbigpOworICAgICAgICBmb3Ig
KGxldCBzdWJ2aWV3IG9mIHRoaXMuc3Vidmlld3MpIHsKKyAgICAgICAgICAgIGlmIChzdWJ2aWV3
IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29udGVudFZpZXcpCisgICAgICAgICAgICAgICAgc3Vidmll
dy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
Ly8gUHJvdGVjdGVkCkBAIC0xMTUsMjMgKzEwMywxOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRl
bnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxl
YwogICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJ2aWV3KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0Nv
bnRlbnRWaWV3KTsKICAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9zYXZlZFJlY29y
ZGluZ3NDb250ZW50Vmlldyk7CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLl91cGRhdGVOYXZp
Z2F0aW9uSXRlbXMoKTsKICAgICB9CiAKICAgICBjb250ZW50Vmlld1JlbW92ZWQoY29udGVudFZp
ZXcpCiAgICAgewogICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoIm1vdXNlZW50ZXIiLCB0aGlzLl9jb250ZW50Vmlld01vdXNlRW50ZXIpOwogICAgICAgICBj
b250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlz
Ll9jb250ZW50Vmlld01vdXNlTGVhdmUpOwotCi0gICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRp
b25JdGVtcygpOwogICAgIH0KIAogICAgIGF0dGFjaGVkKCkKICAgICB7CiAgICAgICAgIHN1cGVy
LmF0dGFjaGVkKCk7CiAKLSAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC5hZGRFdmVu
dExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5fdXBkYXRlU2hvd0ltYWdl
R3JpZCwgdGhpcyk7CiAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0
dXJlRW5hYmxlZC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhp
cy5faGFuZGxlQ2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkQ2hhbmdlZCwgdGhpcyk7
CiAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3Vu
dC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxl
Q2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Q2hhbmdlZCwgdGhpcyk7CiAKQEAg
LTE0MSw0OSArMTI0LDI3IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBD
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0
aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5yZW1vdmVDaGlsZHJlbigpOwogICAgICAg
ICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3Mp
CiAgICAgICAgICAgICB0aGlzLl9hZGRTYXZlZFJlY29yZGluZyhyZWNvcmRpbmcpOworCisgICAg
ICAgIGZvciAobGV0IHN1YnZpZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAgICAgICAgICAgaWYg
KHN1YnZpZXcgaW5zdGFuY2VvZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAgICAg
ICBzdWJ2aWV3LnJlZnJlc2hQcmV2aWV3KCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBkZXRh
Y2hlZCgpCiAgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0
KCk7CisKICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKG51bGws
IG51bGwsIHRoaXMpOwogCiAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9D
YXB0dXJlRnJhbWVDb3VudC5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwog
ICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQucmVt
b3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKLSAgICAgICAgV0kuc2V0dGluZ3Mu
c2hvd0ltYWdlR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwogCiAg
ICAgICAgIHN1cGVyLmRldGFjaGVkKCk7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAg
Z2V0IF9pdGVtTWFyZ2luKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBwYXJzZUludCh3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoIi0taXRlbS1t
YXJnaW4iKSk7Ci0gICAgfQotCi0gICAgX3JlZnJlc2hQcmV2aWV3cygpCi0gICAgewotICAgICAg
ICBmb3IgKGxldCBjYW52YXNDb250ZW50VmlldyBvZiB0aGlzLnN1YnZpZXdzKQotICAgICAgICAg
ICAgY2FudmFzQ29udGVudFZpZXcucmVmcmVzaFByZXZpZXcoKTsKLSAgICB9Ci0KLSAgICBfdXBk
YXRlTmF2aWdhdGlvbkl0ZW1zKCkKLSAgICB7Ci0gICAgICAgIGxldCBoYXNJdGVtcyA9ICEhdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5zaXplOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGhhc0l0ZW1zOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBoYXNJdGVtczsKLSAgICB9Ci0KLSAgICBfc2hv
d0dyaWRCdXR0b25DbGlja2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAgV0kuc2V0dGluZ3Muc2hv
d0ltYWdlR3JpZC52YWx1ZSA9ICF0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFj
dGl2YXRlZDsKLSAgICB9Ci0KLSAgICBfdXBkYXRlU2hvd0ltYWdlR3JpZCgpCi0gICAgewotICAg
ICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCA9ICEhV0ku
c2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKLSAgICB9Ci0KICAgICBfY29udGVudFZpZXdN
b3VzZUVudGVyKGV2ZW50KQogICAgIHsKICAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gV0kuVmll
dy5mcm9tRWxlbWVudChldmVudC50YXJnZXQpOwpAQCAtMzAxLDggKzI2Miw3IEBAIFdJLkNhbnZh
c092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NDb250ZW50
Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5l
LmVsZW1lbnQpOwogICAgICAgICB9CiAKLSAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOwot
ICAgICAgICBsZXQgcmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVt
ZW50KFsicmVjb3JkaW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0bGUsIHJlY29y
ZGluZyk7CisgICAgICAgIGxldCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFs
VHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBXSS5SZWNv
cmRpbmcuZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBlKHJlY29yZGluZy50eXBlKSwgcmVjb3Jk
aW5nKTsKICAgICAgICAgcmVjb3JkaW5nVHJlZUVsZW1lbnQuc2VsZWN0YWJsZSA9IGZhbHNlOwog
ICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlT3V0bGluZS5hcHBlbmRDaGlsZChyZWNv
cmRpbmdUcmVlRWxlbWVudCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCmlu
ZGV4IGNiNWI5MGQ0MmQxZDYwYmM1ODViZDNhYjExNWRkMGMyM2VhYjI0MWUuLjYwM2Y1YWVhNDdl
YjJiMzA2OGY0YjU2OWE4OWM4ZGZiOWM5M2U3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFu
ZWwuanMKQEAgLTIzNywxMCArMjM3LDggQEAgV0kuQ2FudmFzU2lkZWJhclBhbmVsID0gY2xhc3Mg
Q2FudmFzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW4KIAogICAg
IGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKICAgICB7Ci0gICAg
ICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24p
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuIHN1cGVyLmNhblNo
b3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAgIHJldHVybiBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcworICAgICAgICAgICAgfHwgcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmc7CiAgICAgfQogCiAgICAgLy8g
UHJvdGVjdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg5ZGFiNWVmOTk3OWQ2MmI4MTE1OTg5YTkxNjQwNDEzYzcyYThj
ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcu
Y3NzCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS5jb250ZW50
LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3
IC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhc092ZXJ2aWV3LnN2Zyk7
Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
Y2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52
YXMyRC5zdmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gLmNhbnZhczptYXRjaGVzKC53ZWJnbCwgLndlYmdsMiwgLndlYmdwdSwgLndlYm1l
dGFsKSAuaWNvbiB7Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXMzRC5zdmcpOwot
fQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJl
Y29yZGluZyA+IC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5z
dmcpOwotfQotCi0uY29udGVudC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0gLnNoYWRlci1wcm9ncmFtID4gLmljb24gewotICAgIGNvbnRlbnQ6IGltYWdlLXNldCh1cmwo
Li4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4
LnBuZykgMngpOwotfQotCi1AbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Ci0g
ICAgLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52
YXMtb3ZlcnZpZXcgLmljb24gewotICAgICAgICBmaWx0ZXI6IGludmVydCg2MCUpOwotICAgIH0K
LQotICAgIC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
Y2FudmFzIC5pY29uLAotICAgIC5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAucmVjb3JkaW5nID4gLmljb24gewotICAgICAgICBmaWx0ZXI6IGludmVydCgp
OwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZlMWRiZTQ4MDFlNTU3YmM3YzIwZTUyZWM3N2M4MDk5OWQ1NmE4
ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwyOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJLkNhbnZh
c1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3Ci17Ci0gICAgY29uc3RydWN0b3IocmVwcmVzZW50
ZWRPYmplY3QpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghcmVwcmVzZW50ZWRPYmpl
Y3QgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5DYW52YXMpOwotCi0gICAgICAg
IGxldCB0YWJCYXJJdGVtID0gV0kuR2VuZXJhbFRhYkJhckl0ZW0uZnJvbVRhYkluZm8oV0kuQ2Fu
dmFzVGFiQ29udGVudFZpZXcudGFiSW5mbygpKTsKLQotICAgICAgICBjb25zdCBuYXZpZ2F0aW9u
U2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBXSS5DYW52YXNTaWRlYmFyUGFuZWw7Ci0gICAgICAg
IGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMgPSBbV0kuUmVjb3JkaW5nU3Rh
dGVEZXRhaWxzU2lkZWJhclBhbmVsLCBXSS5SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFu
ZWwsIFdJLkNhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWxdOwotICAgICAgICBjb25zdCBkaXNhYmxl
QmFja0ZvcndhcmQgPSB0cnVlOwotICAgICAgICBzdXBlcigiY2FudmFzIiwgWyJjYW52YXMiXSwg
dGFiQmFySXRlbSwgbmF2aWdhdGlvblNpZGViYXJQYW5lbENvbnN0cnVjdG9yLCBkZXRhaWxzU2lk
ZWJhclBhbmVsQ29uc3RydWN0b3JzLCBkaXNhYmxlQmFja0ZvcndhcmQpOwotCi0gICAgICAgIHRo
aXMuX2NhbnZhc0NvbGxlY3Rpb24gPSBuZXcgV0kuQ2FudmFzQ29sbGVjdGlvbjsKLQotICAgICAg
ICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0bGluZTsKLSAgICAgICAg
dGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYWxsb3dzUmVwZWF0U2VsZWN0aW9uID0gdHJ1ZTsKLSAg
ICAgICAgdGhpcy5fY2FudmFzVHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0
bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKLQotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVt
ZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudCgiY2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlT
dHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwotICAgICAg
ICB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZCh0aGlzLl9vdmVydmlld1RyZWVF
bGVtZW50KTsKLQotICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudCA9IG5l
dyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmluZygiU2F2ZWQgUmVjb3JkaW5ncyIpLCBX
SS5SZWNvcmRpbmdDb2xsZWN0aW9uKTsKLSAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJl
ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudCk7Ci0KLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBX
SS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlz
KSk7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1
bHQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVl
OwotCi0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5
Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXli
b2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7Ci0g
ICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRz
RGVmYXVsdCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0
LmRpc2FibGVkID0gdHJ1ZTsKLQotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgpOwot
ICAgIH0KLQotICAgIHN0YXRpYyB0YWJJbmZvKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7Ci0g
ICAgICAgICAgICBpbWFnZTogIkltYWdlcy9DYW52YXMuc3ZnIiwKLSAgICAgICAgICAgIHRpdGxl
OiBXSS5VSVN0cmluZygiQ2FudmFzIiksCi0gICAgICAgIH07Ci0gICAgfQotCi0gICAgc3RhdGlj
IGlzVGFiQWxsb3dlZCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5o
YXNEb21haW4oIkNhbnZhcyIpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgdHJlZUVs
ZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9jYW52YXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocmVwcmVz
ZW50ZWRPYmplY3QpOwotICAgIH0KLQotICAgIGdldCB0eXBlKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBXSS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBlOwotICAgIH0KLQotICAgIGdldCBzdXBw
b3J0c1NwbGl0Q29udGVudEJyb3dzZXIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotCi0gICAgZ2V0IG1hbmFnZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVj
dChyZXByZXNlbnRlZE9iamVjdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcwotICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uCi0gICAgICAgICAgICB8fCByZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZwotICAgICAgICAgICAgfHwgcmVwcmVz
ZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtOwotICAgIH0KLQotICAgIHNo
b3duKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnNob3duKCk7Ci0KLSAgICAgICAgdGhpcy5fcmVj
b3JkU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xl
RnJhbWVTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgIGlmICghdGhpcy5jb250
ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXcpCi0gICAgICAgICAgICB0aGlzLnNob3dSZXBy
ZXNlbnRlZE9iamVjdCh0aGlzLl9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICB9Ci0KLSAgICBoaWRk
ZW4oKQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVl
OwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1
ZTsKLQotICAgICAgICBzdXBlci5oaWRkZW4oKTsKLSAgICB9Ci0KLSAgICBjbG9zZWQoKQotICAg
IHsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5kaXNhYmxlKCk7Ci0KLSAgICAgICAgc3VwZXIu
Y2xvc2VkKCk7Ci0gICAgfQotCi0gICAgcmVzdG9yZVN0YXRlRnJvbUNvb2tpZShjb29raWUpCi0g
ICAgewotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCi0gICAgfQotCi0gICAgc2F2ZVN0YXRlVG9Db29raWUo
Y29va2llKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxodHRwczov
L3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgotICAgIH0KLQotICAgIGFzeW5jIGhh
bmRsZUZpbGVEcm9wKGZpbGVzKQotICAgIHsKLSAgICAgICAgYXdhaXQgV0kuRmlsZVV0aWxpdGll
cy5yZWFkSlNPTihmaWxlcywgKHJlc3VsdCkgPT4gV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSlNP
TihyZXN1bHQpKTsKLSAgICB9Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAgIGF0dGFjaGVkKCkK
LSAgICB7Ci0gICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7Ci0KLSAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQs
IHRoaXMuX2hhbmRsZUNhbnZhc0FkZGVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCwg
dGhpcy5faGFuZGxlQ2FudmFzUmVtb3ZlZCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVk
LCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7Ci0gICAgICAgIFdJ
LkNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdG9wcGVk
LCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7Ci0KLSAgICAgICAg
bGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlczsKLQotICAgICAgICBmb3Ig
KGxldCBjYW52YXMgb2YgdGhpcy5fY2FudmFzQ29sbGVjdGlvbikgewotICAgICAgICAgICAgaWYg
KCFjYW52YXNlcy5pbmNsdWRlcyhjYW52YXMpKQotICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92
ZUNhbnZhcyhjYW52YXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgY2FudmFzIG9m
IGNhbnZhc2VzKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uaGFz
KGNhbnZhcykpCi0gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGNhbnZhcyk7Ci0gICAg
ICAgIH0KLQotICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5yZW1vdmVD
aGlsZHJlbigpOwotICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFzTWFuYWdl
ci5zYXZlZFJlY29yZGluZ3MpCi0gICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3Jk
aW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlfSk7Ci0gICAgfQotCi0gICAgZGV0YWNo
ZWQoKQotICAgIHsKLSAgICAgICAgV0kuQ2FudmFzLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwg
bnVsbCwgdGhpcyk7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5l
cihudWxsLCBudWxsLCB0aGlzKTsKLQotICAgICAgICBzdXBlci5kZXRhY2hlZCgpOwotICAgIH0K
LQotICAgIC8vIFByaXZhdGUKLQotICAgIF9hZGRDYW52YXMoY2FudmFzKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FudmFzVHJl
ZUVsZW1lbnQoY2FudmFzKSk7Ci0gICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNh
bnZhcyk7Ci0KLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHN1cHByZXNz
U2hvd1JlY29yZGluZzogdHJ1ZSwKLSAgICAgICAgfTsKLQotICAgICAgICBmb3IgKGxldCByZWNv
cmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9h
ZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKLSAgICB9Ci0KLSAgICBfcmVtb3ZlQ2Fu
dmFzKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZh
c1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChjYW52YXMpOwotICAgICAgICBjb25zb2xlLmFz
c2VydCh0cmVlRWxlbWVudCwgIk1pc3NpbmcgdHJlZSBlbGVtZW50IGZvciBjYW52YXMuIiwgY2Fu
dmFzKTsKLQotICAgICAgICBjb25zdCBzdXBwcmVzc05vdGlmaWNhdGlvbiA9IHRydWU7Ci0gICAg
ICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KHN1cHByZXNzTm90aWZpY2F0aW9uKTsKLSAgICAgICAg
dGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7Ci0KLSAg
ICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5yZW1vdmUoY2FudmFzKTsKLQotICAgICAgICBs
ZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVu
dFZpZXc7Ci0gICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5DYW52
YXNDb250ZW50VmlldykKLSAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdCh0aGlz
Ll9jYW52YXNDb2xsZWN0aW9uKTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudENvbnRlbnRWaWV3
IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcgJiYgY2FudmFzLnJlY29yZGluZ0Nv
bGxlY3Rpb24uaGFzKGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCkpCi0gICAg
ICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnVwZGF0ZUhpZXJhcmNoaWNhbFBhdGhGb3JDdXJy
ZW50Q29udGVudFZpZXcoKTsKLQotICAgICAgICBsZXQgbmF2aWdhdGlvblNpZGViYXJQYW5lbCA9
IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbDsKLSAgICAgICAgaWYgKG5hdmlnYXRpb25TaWRl
YmFyUGFuZWwgaW5zdGFuY2VvZiBXSS5DYW52YXNTaWRlYmFyUGFuZWwgJiYgbmF2aWdhdGlvblNp
ZGViYXJQYW5lbC52aXNpYmxlKQotICAgICAgICAgICAgbmF2aWdhdGlvblNpZGViYXJQYW5lbC51
cGRhdGVSZXByZXNlbnRlZE9iamVjdHMoKTsKLQotICAgICAgICB0aGlzLnNob3dEZXRhaWxzU2lk
ZWJhclBhbmVscygpOwotICAgIH0KLQotICAgIF9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRp
b25zID0ge30pCi0gICAgewotICAgICAgICBpZiAoIXJlY29yZGluZy5zb3VyY2UpIHsKLSAgICAg
ICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKLSAgICAgICAgICAgIGxldCByZWNvcmRpbmdU
cmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNvcmRpbmciXSwgcmVj
b3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKLSAgICAgICAgICAgIHRo
aXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LmhpZGRlbiA9IGZhbHNlOwotICAgICAgICAg
ICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVjb3JkaW5n
VHJlZUVsZW1lbnQpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFvcHRpb25zLnN1cHByZXNz
U2hvd1JlY29yZGluZykKLSAgICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJl
Y29yZGluZyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUNhbnZhc0FkZGVkKGV2ZW50KQotICAgIHsK
LSAgICAgICAgdGhpcy5fYWRkQ2FudmFzKGV2ZW50LmRhdGEuY2FudmFzKTsKLSAgICB9Ci0KLSAg
ICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlbW92
ZUNhbnZhcyhldmVudC5kYXRhLmNhbnZhcyk7Ci0gICAgfQotCi0gICAgX2NhbnZhc1RyZWVPdXRs
aW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQotICAgIHsKLSAgICAgICAgbGV0IHNlbGVjdGVk
RWxlbWVudCA9IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0g
ICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGxldCByZXByZXNlbnRlZE9iamVjdCA9IHNlbGVjdGVkRWxlbWVudC5yZXByZXNlbnRlZE9i
amVjdDsKLSAgICAgICAgaWYgKCF0aGlzLmNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNl
bnRlZE9iamVjdCkpIHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5leHBl
Y3RlZCByZXByZXNlbnRlZE9iamVjdC4iLCByZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVj
dChyZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgfQotCi0gICAgX2hhbmRsZVJlY29yZGluZ1NhdmVk
T3JTdG9wcGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgbGV0IHtyZWNvcmRpbmcsIGluaXRpYXRl
ZEJ5VXNlciwgaW1wb3J0ZWR9ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKCFyZWNvcmRpbmcp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IG9wdGlvbnMgPSB7fTsKLQotICAg
ICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRlZCByZWNvcmRpbmdzLgotICAgICAgICBpZiAocmVj
b3JkaW5nLnNvdXJjZSB8fCAhaW1wb3J0ZWQpCi0gICAgICAgICAgICBvcHRpb25zLnN1cHByZXNz
U2hvd1JlY29yZGluZyA9ICFpbml0aWF0ZWRCeVVzZXIgfHwgdGhpcy5jb250ZW50QnJvd3Nlci5j
dXJyZW50UmVwcmVzZW50ZWRPYmplY3RzLnNvbWUoKHJlcHJlc2VudGVkT2JqZWN0KSA9PiByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZyk7Ci0KLSAgICAgICAgdGhpcy5f
YWRkUmVjb3JkaW5nKHJlY29yZGluZywgb3B0aW9ucyk7Ci0gICAgfQotCi0gICAgX2hhbmRsZVNw
YWNlKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKFdJLmlzRXZlbnRUYXJnZXRBbkVkaXRhYmxl
RmllbGQoZXZlbnQpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICghdGhpcy5u
YXZpZ2F0aW9uU2lkZWJhclBhbmVsKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxl
dCBjYW52YXMgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwuY2FudmFzOwotICAgICAgICBp
ZiAoIWNhbnZhcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoY2FudmFzLnJl
Y29yZGluZ0FjdGl2ZSkKLSAgICAgICAgICAgIGNhbnZhcy5zdG9wUmVjb3JkaW5nKCk7Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgbGV0IHNpbmdsZUZyYW1lID0gISFldmVudC5zaGlmdEtl
eTsKLSAgICAgICAgICAgIGNhbnZhcy5zdGFydFJlY29yZGluZyhzaW5nbGVGcmFtZSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0KLX07Ci0KLVdJ
LkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiY2FudmFzIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmll
dy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0
aW9uQ29udGVudFZpZXcuY3NzCmluZGV4IGZlMzNlN2FjZDlmMTYxYjJjYzBjZTcxY2Q1MjRhNDkx
YWRkMzNjMmIuLjVjZThkYjBmMzA4ZGQ5ODk4NGIzMWJiOTRjYzVmNzljMzk1YzJkNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rp
b25Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcwpAQCAtMzMsMTQgKzMzLDE3IEBACiAg
ICAgZmxleC1ncm93OiAxOwogfQogCi0uY29udGVudC12aWV3LmNvbGxlY3Rpb24gLnJlc291cmNl
LmltYWdlIGltZyB7Ci0gICAgb3V0bGluZTogMC41cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9y
KTsKLX0KLQotLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uIC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92
ZXIgewotICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSkKLX0KLQog
LmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLmNvbnRlbnQtdmlld1toaWRkZW5dIHsKICAgICBk
aXNwbGF5OiBub25lOwogfQorCisuY29udGVudC12aWV3LmNvbGxlY3Rpb24gPiAucGxhY2Vob2xk
ZXI6bm90KC5tZXNzYWdlLXRleHQtdmlldykgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgZmxl
eC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBh
bGlnbi1pdGVtczogY2VudGVyOworICAgIHdpZHRoOiAxMDAlOworICAgIHRleHQtYWxpZ246IGNl
bnRlcjsKKyAgICBmb250LXNpemU6IDEzcHg7CisgICAgY29sb3I6IHZhcigtLXRleHQtY29sb3It
Z3JheS1tZWRpdW0pOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCmluZGV4
IDA1NDc0MTY4MWM4MThiZTViY2FhNWQ2ZmYxOWQ1MzcyOWI3YjM4NjYuLjUwNWE0YTdiZGU0NTUy
M2IzMGRhNGY2YmNhNzdiNGQ4Y2NkMTA2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVu
dFZpZXcuanMKQEAgLTI4LDcgKzI4LDcgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xh
c3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICBjb25z
dHJ1Y3Rvcihjb2xsZWN0aW9uLCBjb250ZW50Vmlld0NvbnN0cnVjdG9yLCBjb250ZW50UGxhY2Vo
b2xkZXIpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChjb2xsZWN0aW9uIGluc3RhbmNl
b2YgV0kuQ29sbGVjdGlvbik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3Q29u
c3RydWN0b3IgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCFjb250ZW50Vmlld0NvbnN0cnVjdG9yIHx8IGNvbnRlbnRWaWV3Q29uc3RydWN0b3IucHJv
dG90eXBlIGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcpOwogCiAgICAgICAgIHN1cGVyKGNvbGxl
Y3Rpb24pOwogCkBAIC0zOCw3ICszOCw2IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNs
YXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAg
IHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQgPSBudWxsOwogICAgICAgICB0aGlzLl9j
b250ZW50Vmlld0NvbnN0cnVjdG9yID0gY29udGVudFZpZXdDb25zdHJ1Y3RvcjsKICAgICAgICAg
dGhpcy5fY29udGVudFZpZXdNYXAgPSBuZXcgTWFwOwotICAgICAgICB0aGlzLl9oYW5kbGVDbGlj
a01hcCA9IG5ldyBXZWFrTWFwOwogICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSBudWxsOwog
ICAgICAgICB0aGlzLl9zZWxlY3Rpb25FbmFibGVkID0gZmFsc2U7CiAgICAgfQpAQCAtODMsMTkg
KzgyLDI1IEBAIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250
ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJ
dGVtKG51bGwpOwogICAgIH0KIAotICAgIHNldFNlbGVjdGVkSXRlbShpdGVtKQorICAgIGdldCBz
ZWxlY3RlZEl0ZW0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsK
KyAgICB9CisKKyAgICBzZXQgc2VsZWN0ZWRJdGVtKGl0ZW0pCiAgICAgewogICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLl9zZWxlY3Rpb25FbmFibGVkLCAiQXR0ZW1wdGVkIHRvIHNldCBzZWxl
Y3RlZCBpdGVtIHdoZW4gc2VsZWN0aW9uIGlzIGRpc2FibGVkLiIpOwogICAgICAgICBpZiAoIXRo
aXMuX3NlbGVjdGlvbkVuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGV0
IGNvbnRlbnRWaWV3ID0gdGhpcy5fY29udGVudFZpZXdNYXAuZ2V0KGl0ZW0pOwotICAgICAgICBj
b25zb2xlLmFzc2VydChjb250ZW50VmlldywgIk1pc3NpbmcgY29udGV0IHZpZXcgZm9yIGl0ZW0u
IiwgaXRlbSk7Ci0gICAgICAgIGlmICghY29udGVudFZpZXcpCi0gICAgICAgICAgICByZXR1cm47
Ci0KICAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVtKTsKLSAgICAgICAgY29udGVudFZpZXcu
ZWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7CisKKyAgICAgICAgaWYgKGl0ZW0pIHsK
KyAgICAgICAgICAgIGxldCBjb250ZW50VmlldyA9IHRoaXMuX2NvbnRlbnRWaWV3TWFwLmdldChp
dGVtKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRlbnRWaWV3LCAiTWlzc2luZyBj
b250ZW50IHZpZXcgZm9yIGl0ZW0uIiwgaXRlbSk7CisgICAgICAgICAgICBpZiAoY29udGVudFZp
ZXcpCisgICAgICAgICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5zY3JvbGxJbnRvVmlld0lm
TmVlZGVkKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTEyMCwy
MCArMTI1LDkgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICBsZXQgY29udGVudFZp
ZXcgPSBuZXcgdGhpcy5fY29udGVudFZpZXdDb25zdHJ1Y3RvcihpdGVtLCB0aGlzLmNvbnRlbnRW
aWV3Q29uc3RydWN0b3JPcHRpb25zKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZp
ZXcgaW5zdGFuY2VvZiBXSS5Db250ZW50Vmlldyk7Ci0KLSAgICAgICAgbGV0IGhhbmRsZUNsaWNr
ID0gKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwIHx8IGV2
ZW50LmN0cmxLZXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAo
dGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKLSAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVt
KGl0ZW0pOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdJLnNob3dSZXByZXNl
bnRlZE9iamVjdChpdGVtKTsKLSAgICAgICAgfTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoY29u
dGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3QgPT09IGl0ZW0pOwogCiAgICAgICAgIHRoaXMuX2Nv
bnRlbnRWaWV3TWFwLnNldChpdGVtLCBjb250ZW50Vmlldyk7Ci0gICAgICAgIHRoaXMuX2hhbmRs
ZUNsaWNrTWFwLnNldChpdGVtLCBoYW5kbGVDbGljayk7Ci0gICAgICAgIGNvbnRlbnRWaWV3LmVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBoYW5kbGVDbGljayk7CiAKICAgICAgICAg
dGhpcy5hZGRTdWJ2aWV3KGNvbnRlbnRWaWV3KTsKICAgICAgICAgdGhpcy5jb250ZW50Vmlld0Fk
ZGVkKGNvbnRlbnRWaWV3KTsKQEAgLTE2OSwxNCArMTYzLDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKIAogICAgICAgICBjb250ZW50Vmlldy5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGws
IHRoaXMpOwogCi0gICAgICAgIGxldCBoYW5kbGVDbGljayA9IHRoaXMuX2hhbmRsZUNsaWNrTWFw
LmdldChpdGVtKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoaGFuZGxlQ2xpY2spOwotCi0gICAg
ICAgIGlmIChoYW5kbGVDbGljaykgewotICAgICAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIGhhbmRsZUNsaWNrKTsKLSAgICAgICAgICAgIHRo
aXMuX2hhbmRsZUNsaWNrTWFwLmRlbGV0ZShpdGVtKTsKLSAgICAgICAgfQotCiAgICAgICAgIGlm
ICghdGhpcy5zdWJ2aWV3cy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLnNob3dDb250ZW50UGxh
Y2Vob2xkZXIoKTsKICAgICB9CkBAIC0yMDAsNiArMTg2LDggQEAgV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50ID0gdGhp
cy5fY29udGVudFBsYWNlaG9sZGVyOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fY29udGVu
dFBsYWNlaG9sZGVyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJwbGFjZWhvbGRlciIpOworCiAgICAg
ICAgIGlmICghdGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudC5wYXJlbnROb2RlKQogICAg
ICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRl
ckVsZW1lbnQpOwogICAgIH0KQEAgLTIxMiwxMCArMjAwLDExIEBAIFdJLkNvbGxlY3Rpb25Db250
ZW50VmlldyA9IGNsYXNzIENvbGxlY3Rpb25Db250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRW
aWV3CiAKICAgICBpbml0aWFsTGF5b3V0KCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5zaXplIHx8ICF0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKSB7Cisg
ICAgICAgIGlmICh0aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKQorICAgICAgICAgICAgdGhp
cy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlQ2xpY2suYmlu
ZCh0aGlzKSk7CisKKyAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNpemUgfHwg
IXRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpCiAgICAgICAgICAgICB0aGlzLnNob3dDb250
ZW50UGxhY2Vob2xkZXIoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogICAgIH0K
IAogICAgIGF0dGFjaGVkKCkKQEAgLTI5Miw2ICsyODEsMzAgQEAgV0kuQ29sbGVjdGlvbkNvbnRl
bnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKICAgICAgICAgICAgIHNlbGVjdGVkQ29udGVudFZpZXcuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJzZWxlY3RlZCIpOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVkSXRlbUNoYW5n
ZWQpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db250ZW50Vmll
dy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOwogICAgIH0K
KworICAgIF9oYW5kbGVDbGljayhldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5idXR0
b24gIT09IDAgfHwgZXZlbnQuY3RybEtleSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBmb3IgKGxldCBbaXRlbSwgY29udGVudFZpZXddIG9mIHRoaXMuX2NvbnRlbnRWaWV3TWFwKSB7
CisgICAgICAgICAgICBpZiAoY29udGVudFZpZXcuZWxlbWVudC5jb250YWlucyhldmVudC50YXJn
ZXQpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBXSS5zaG93UmVwcmVzZW50ZWRPYmplY3QoaXRlbSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICB0aGlzLl9zZWxl
Y3RJdGVtKG51bGwpOworICAgIH0KK307CisKK1dJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5FdmVu
dCA9IHsKKyAgICBTZWxlY3RlZEl0ZW1DaGFuZ2VkOiAiY29sbGVjdGlvbi1jb250ZW50LXZpZXct
c2VsZWN0ZWQtaXRlbS1jaGFuZ2VkIiwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzCmluZGV4IGRmOTEyZGQ1
NmZhMDdkZjk0OGYwZDdmN2FmMGQ3YzZkMWI3OWEyZjYuLjI5NmMyYTU0MjNhMGY2OTFlYWM3ZDJk
MGU5MzYwMGY1MTU0ZjBkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzCkBAIC02MCw5ICs2MCw2IEBAIFdJ
LkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAg
IGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcykKICAgICAgICAgICAg
IHJldHVybiBuZXcgV0kuQ2FudmFzQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJh
QXJndW1lbnRzKTsKIAotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7Ci0KICAg
ICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSkK
ICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuU2hhZGVyUHJvZ3JhbUNvbnRlbnRWaWV3KHJlcHJl
c2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKQEAgLTE4Miw2ICsxNzksOSBAQCBXSS5D
b250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICBp
ZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cCB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXSS5BdWRpdFRlc3RHcm91cENvbnRlbnRWaWV3KHJlcHJlc2VudGVk
T2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CiAKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuQW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5Bbmlt
YXRpb25Db250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOworCiAg
ICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxlY3Rpb24pCiAg
ICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNvbGxlY3Rpb25Db250ZW50VmlldyhyZXByZXNlbnRl
ZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOwogCkBAIC0yNzMsOCArMjczLDYgQEAgV0kuQ29udGVu
dFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5D
YW52YXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFk
ZXJQcm9ncmFtKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChyZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlRpbWVsaW5lUmVjb3JkaW5nKQpAQCAtMzE4LDEwICsz
MTYsMTQgQEAgV0kuQ29udGVudFZpZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZp
ZXcKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0
Q2FzZSB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwCiAg
ICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdENh
c2VSZXN1bHQgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91
cFJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAocmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlv
bikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAodHlwZW9mIHJlcHJlc2Vu
dGVkT2JqZWN0ID09PSAic3RyaW5nIiB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFN0
cmluZykKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAocmVwcmVzZW50ZWRP
YmplY3RbV0kuQ29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbF0pCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNTEyLDQgKzUxNCw1
IEBAIFdJLkNvbnRlbnRWaWV3LkV2ZW50ID0gewogICAgIE5hdmlnYXRpb25JdGVtc0RpZENoYW5n
ZTogImNvbnRlbnQtdmlldy1uYXZpZ2F0aW9uLWl0ZW1zLWRpZC1jaGFuZ2UiCiB9OwogCitXSS5D
b250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9sID0gU3ltYm9sKCJpcy12aWV3YWJsZSIpOwogV0ku
Q29udGVudFZpZXcuQ29udGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdFN5bWJvbCA9IFN5bWJv
bCgiY29udGVudC12aWV3LWZvci1yZXByZXNlbnRlZC1vYmplY3QiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2lt
cGxlUm93LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0
YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKaW5kZXggZTVhNWZlYzFlYWJiNWMwOTcyY2ZhMDUzZDUz
NGMzNjAwOWUxYjc2Zi4uN2VkMGM4MmViM2I3MWVlYjZiYmIxZjk3ZTk3OTBmNmJiYmM1NTYxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0
YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMKQEAgLTk2LDcgKzk2LDcg
QEAgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cgPSBjbGFzcyBEZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdyBleHRlbmRzIFdJLkRldGFpbHNTZWMKICAgICB7CiAgICAgICAgIHRoaXMuX3ZhbHVlID0g
dmFsdWUgfHwgIiI7CiAKLSAgICAgICAgaWYgKHRoaXMuX3ZhbHVlKSB7CisgICAgICAgIGlmICh0
aGlzLl92YWx1ZSB8fCB0aGlzLl92YWx1ZSA9PT0gMCkgewogICAgICAgICAgICAgdGhpcy5lbGVt
ZW50LmNsYXNzTGlzdC5yZW1vdmUoV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuRW1wdHlTdHls
ZUNsYXNzTmFtZSk7CiAKICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBoYXMgc3BhY2UgY2hh
cmFjdGVycyB0aGF0IGNhdXNlIHdvcmQgd3JhcHBpbmcgdGhlbiB3ZSBkb24ndCBuZWVkIHRoZSBk
YXRhIGNsYXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5j
c3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2Q2NjNlNmYwZjE3MmZjZTA5MjY3ZjhlYzE2YWVhOGRkN2ViYTU0MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSw4NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgeworICAgIGJhY2tncm91
bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItY29udGVudCk7CisgICAgb3ZlcmZsb3ct
eTogc2Nyb2xsOworICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWln
aHQpOworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKK30KKworLmNvbnRl
bnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24geworICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OworfQorCisuY29udGVudC12aWV3
LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LWNoaWxkKSB7CisgICAgbWFy
Z2luLXRvcDogMjBweDsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNl
Y3Rpb24gPiAuaGVhZGVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBj
ZW50ZXI7CisgICAgcG9zaXRpb246IHN0aWNreTsKKyAgICB0b3A6IDA7CisgICAgei1pbmRleDog
MTsKKyAgICBtaW4taGVpZ2h0OiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIC13
ZWJraXQtcGFkZGluZy1zdGFydDogOHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAw
JSwgOTclKTsKKyAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9y
KTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90KDpm
aXJzdC1vZi10eXBlKSA+IC5oZWFkZXIgeworICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIo
LS1ib3JkZXItY29sb3IpOworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4g
c2VjdGlvbiA+IC5oZWFkZXIgPiBoMSB7CisgICAgbWFyZ2luOiAwOworfQorCisuY29udGVudC12
aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIgPiAubmF2aWdhdGlvbi1i
YXIgeworICAgIGZsZXgtZ3JvdzogMTsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwor
ICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIHRvcDogMDsKKyAgICByaWdodDogMDsKKyAgICBib3R0b206IDA7CisgICAg
bGVmdDogMDsKK30KKworQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgeworICAg
IC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgeworICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBoc2woMCwgMCUsIDE0JSk7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5ncmFwaGlj
cy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogaHNsKDAsIDAlLCAyMSUpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NP
dmVydmlld0NvbnRlbnRWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwYzBhZTAxMTc1ZDk3YWRlYjI0ZGMz
MGMwYjM1MDc3Y2FiYTI4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAg
LTAsMCArMSwyMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZp
ZXcgPSBjbGFzcyBHcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50
VmlldworeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisKKyAg
ICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImdyYXBoaWNzLW92ZXJ2aWV3Iik7CisK
KyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNvcmRpbmciLCBXSS5VSVN0cmluZygiSW1wb3J0Iiks
ICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtLnRvb2x0aXAgPSBXSS5VSVN0cmluZygiSW1wb3J0Iik7CisgICAgICAg
IHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0OworICAgICAgICB0aGlzLl9pbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
Q2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25J
dGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoIiwgV0kuVUlTdHJpbmco
IlJlZnJlc2giKSwgIkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZVJlZnJlc2hCdXR0b25D
bGlja2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25J
dGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ctZ3JpZCIsIFdJ
LlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5nKCJIaWRlIHRy
YW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vycy5zdmciLCAx
MywgMTMpOworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2
YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKKyAgICAgICAgdGhpcy5f
c2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5h
dmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xp
Y2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9
IG5ldyBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbik7CisKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdWaWV3cyA9IFtdOworICAgIH0K
KworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0
cygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcnZpZXdWaWV3cy5mbGF0TWFwKChz
dWJ2aWV3KSA9PiBzdWJ2aWV3LnN1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0cyk7CisgICAg
fQorCisgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCisgICAgeworICAgICAgICBsZXQgbmF2aWdh
dGlvbkl0ZW1zID0gW107CisgICAgICAgIGlmICghV0kuYW5pbWF0aW9uTWFuYWdlci5zdXBwb3J0
ZWQpIHsKKyAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoQWxsKHRoaXMuX2NhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcubmF2aWdhdGlvbkl0ZW1zKTsKKyAgICAgICAgICAgIG5hdmlnYXRp
b25JdGVtcy5wdXNoKG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICB9Cisg
ICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25J
dGVtLCBuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtLCB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2
aWdhdGlvbkl0ZW0sIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0pOworICAgICAg
ICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisg
ICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKworICAgICAg
ICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5F
dmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRo
aXMpOworICAgICAgICB0aGlzLl9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0NoYW5nZWQoKTsK
KyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICBXSS5kb21NYW5hZ2VyLmhp
ZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAgV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3Jp
ZC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFu
ZGxlU2hvd0ltYWdlR3JpZFNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKKworICAgICAgICBzdXBlci5k
ZXRhY2hlZCgpOworICAgIH0KKworICAgIGluaXRpYWxMYXlvdXQoKQorICAgIHsKKyAgICAgICAg
c3VwZXIuaW5pdGlhbExheW91dCgpOworCisgICAgICAgIGlmIChXSS5hbmltYXRpb25NYW5hZ2Vy
LnN1cHBvcnRlZCkgeworICAgICAgICAgICAgbGV0IGNyZWF0ZVNlY3Rpb24gPSAoaWRlbnRpZmll
ciwgdGl0bGUsIG92ZXJ2aWV3VmlldykgPT4geworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KG92ZXJ2aWV3VmlldyBpbnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKKworICAgICAgICAg
ICAgICAgIGxldCBzZWN0aW9uRWxlbWVudCA9IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIikpOworICAgICAgICAgICAgICAgIHNlY3Rpb25F
bGVtZW50LmNsYXNzTmFtZSA9IGlkZW50aWZpZXI7CisKKyAgICAgICAgICAgICAgICBsZXQgaGVh
ZGVyRWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBoZWFkZXJFbGVtZW50LmNsYXNzTmFtZSA9
ICJoZWFkZXIiOworCisgICAgICAgICAgICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IGhlYWRlckVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDEiKSk7CisgICAgICAg
ICAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7CisKKyAgICAgICAgICAg
ICAgICBsZXQgbmF2aWdhdGlvbkl0ZW1zID0gb3ZlcnZpZXdWaWV3Lm5hdmlnYXRpb25JdGVtczsK
KyAgICAgICAgICAgICAgICBpZiAobmF2aWdhdGlvbkl0ZW1zLmxlbmd0aCkgeworICAgICAgICAg
ICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoIm5hdiIpLCBuYXZpZ2F0aW9uSXRlbXMpOworICAgICAgICAgICAg
ICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKG5hdmlnYXRpb25CYXIuZWxlbWVudCk7
CisgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU3VidmlldyhuYXZpZ2F0aW9uQmFyKTsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsZXQgY29udGVudEVsZW1lbnQgPSBz
ZWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7
CisgICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0gImNvbnRlbnQiOwor
CisgICAgICAgICAgICAgICAgY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQob3ZlcnZpZXdWaWV3
LmVsZW1lbnQpOworICAgICAgICAgICAgICAgIHRoaXMuYWRkU3VidmlldyhvdmVydmlld1ZpZXcp
OworCisgICAgICAgICAgICAgICAgb3ZlcnZpZXdWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVkSXRlbUNoYW5nZWQsIHRoaXMuX2hhbmRs
ZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgICAg
IG92ZXJ2aWV3Vmlldy5hZGRFdmVudExpc3RlbmVyKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1cHBs
ZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSwgdGhpcy5faGFuZGxlT3ZlcnZpZXdW
aWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9vdmVydmlld1ZpZXdzLnB1c2gob3ZlcnZpZXdWaWV3KTsKKyAgICAg
ICAgICAgIH07CisKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oImNhbnZhcyIsIFdJLlVJU3Ry
aW5nKCJDYW52YXNlcyIpLCB0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KTsKKworICAg
ICAgICAgICAgbGV0IGFuaW1hdGlvbkNvbGxlY3Rpb24gPSBXSS5hbmltYXRpb25NYW5hZ2VyLmFu
aW1hdGlvbkNvbGxlY3Rpb247CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJ3ZWItYW5pbWF0
aW9uIiwgV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25zIiksIG5ldyBXSS5BbmltYXRpb25Db2xs
ZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVjdGlvbi5hbmltYXRpb25Db2xsZWN0aW9u
Rm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb24pKSk7CisgICAgICAgICAgICBj
cmVhdGVTZWN0aW9uKCJjc3MtYW5pbWF0aW9uIiwgV0kuVUlTdHJpbmcoIkNTUyBBbmltYXRpb25z
IiksIG5ldyBXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcoYW5pbWF0aW9uQ29sbGVj
dGlvbi5hbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZShXSS5BbmltYXRpb24uVHlwZS5DU1NBbmlt
YXRpb24pKSk7CisgICAgICAgICAgICBjcmVhdGVTZWN0aW9uKCJjc3MtdHJhbnNpdGlvbiIsIFdJ
LlVJU3RyaW5nKCJDU1MgVHJhbnNpdGlvbnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25D
b250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBl
KFdJLkFuaW1hdGlvbi5UeXBlLkNTU1RyYW5zaXRpb24pKSk7CisKKyAgICAgICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hhbmRsZUNsaWNrLmJpbmQo
dGhpcykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlz
Ll9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3KTsKKworICAgICAgICBsZXQgZHJvcFpvbmVWaWV3
ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKKyAgICAgICAgZHJvcFpvbmVWaWV3LnRleHQg
PSBXSS5VSVN0cmluZygiSW1wb3J0IFJlY29yZGluZyIpOworICAgICAgICBkcm9wWm9uZVZpZXcu
dGFyZ2V0RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KGRy
b3Bab25lVmlldyk7CisgICAgfQorCisgICAgLy8gRHJvcFpvbmVWaWV3IGRlbGVnYXRlCisKKyAg
ICBkcm9wWm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudChkcm9wWm9uZSwgZXZlbnQpCisgICAg
eworICAgICAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxl
cyIpOworICAgIH0KKworICAgIGRyb3Bab25lSGFuZGxlRHJvcChkcm9wWm9uZSwgZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAg
ICAgIGlmIChmaWxlcy5sZW5ndGggIT09IDEpIHsKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5iZWVwKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNN
YW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKwor
ICAgIF9oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpCisgICAgeworICAgICAgICBmb3IgKGxl
dCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykKKyAgICAgICAgICAgIG92ZXJ2
aWV3Vmlldy5oYW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCgpOworICAgIH0KKworICAgIF9oYW5k
bGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQoZXZlbnQpCisgICAgeworICAgICAgICBXSS5zZXR0aW5n
cy5zaG93SW1hZ2VHcmlkLnZhbHVlID0gIXRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uYWN0aXZhdGVkOworICAgIH0KKworICAgIF9oYW5kbGVTaG93SW1hZ2VHcmlkU2V0dGluZ0No
YW5nZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRl
bS5hY3RpdmF0ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CisgICAgfQor
CisgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZChldmVudCkKKyAg
ICB7CisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuaW1wb3J0SlNPTigocmVzdWx0KSA9PiBXSS5j
YW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCksIHttdWx0aXBsZTogdHJ1ZX0pOworICAg
IH0KKworICAgIF9oYW5kbGVPdmVydmlld1ZpZXdTZWxlY3RlZEl0ZW1DaGFuZ2VkKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgaWYgKCFldmVudC50YXJnZXQuc2VsZWN0ZWRJdGVtKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3VmlldyBvZiB0aGlzLl9vdmVy
dmlld1ZpZXdzKSB7CisgICAgICAgICAgICBpZiAob3ZlcnZpZXdWaWV3ICE9PSBldmVudC50YXJn
ZXQgJiYgb3ZlcnZpZXdWaWV3LnNlbGVjdGlvbkVuYWJsZWQpCisgICAgICAgICAgICAgICAgb3Zl
cnZpZXdWaWV3LnNlbGVjdGVkSXRlbSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBf
aGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdl
KGV2bmV0KQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0ku
Q29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdl
KTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2xpY2soZXZlbnQpCisgICAgeworICAgICAgICBpZiAo
ZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3MpIHsKKyAg
ICAgICAgICAgIGlmIChvdmVydmlld1ZpZXcuc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAg
ICAgICBvdmVydmlld1ZpZXcuc2VsZWN0ZWRJdGVtID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuY3NzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0
MDc1YzAzNzUwN2EyZWM3N2EzNTFmZGQzODhhNThmNGEyYTg4MWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNv
bnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNvbnRlbnQtdmll
dy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmlldyAu
aWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52YXNPdmVydmlldy5zdmcpOwor
fQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
Y2FudmFzLmNhbnZhcy0yZCAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9DYW52
YXMyRC5zdmcpOworfQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAuY2FudmFzOm1hdGNoZXMoLndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2Vi
bWV0YWwpIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7
Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRp
bmcuc3ZnKTsKK30KKworLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFy
ID4gLml0ZW0gLnNoYWRlci1wcm9ncmFtID4gLmljb24geworICAgIGNvbnRlbnQ6IGltYWdlLXNl
dCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVu
dEdMQDJ4LnBuZykgMngpOworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJr
KSB7CisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0
ZW0gLmdyYXBoaWNzLW92ZXJ2aWV3IC5pY29uIHsKKyAgICAgICAgZmlsdGVyOiBpbnZlcnQoNjAl
KTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1i
YXIgPiAuaXRlbSAuY2FudmFzIC5pY29uLAorICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNz
IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5yZWNvcmRpbmcgPiAuaWNvbiB7CisgICAgICAgIGZp
bHRlcjogaW52ZXJ0KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZp
ZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmU2ZDg1NzIyNjc5ODMwZTRhNjU3NzE5N2Q5YTkyODUzODI3MDNm
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMKQEAgLTAsMCArMSwzMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgR3JhcGhpY3NUYWJDb250
ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcKK3sKKyAgICBj
b25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBsZXQgdGFiQmFySXRlbSA9IFdJLkdlbmVyYWxU
YWJCYXJJdGVtLmZyb21UYWJJbmZvKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcudGFiSW5mbygp
KTsKKworICAgICAgICBjb25zdCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IgPSBX
SS5DYW52YXNTaWRlYmFyUGFuZWw7CisgICAgICAgIGNvbnN0IGRldGFpbHNTaWRlYmFyUGFuZWxD
b25zdHJ1Y3RvcnMgPSBbCisgICAgICAgICAgICBXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRl
YmFyUGFuZWwsCisgICAgICAgICAgICBXSS5SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFu
ZWwsCisgICAgICAgICAgICBXSS5DYW52YXNEZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICAg
ICAgV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAgICAgXTsKKyAgICAgICAg
Y29uc3QgZGlzYWJsZUJhY2tGb3J3YXJkID0gdHJ1ZTsKKyAgICAgICAgc3VwZXIoImdyYXBoaWNz
IiwgWyJncmFwaGljcyJdLCB0YWJCYXJJdGVtLCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3Ry
dWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxDb25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2Fy
ZCk7CisKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZSA9IG5ldyBXSS5UcmVlT3V0
bGluZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxl
Y3Rpb24gPSB0cnVlOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFkZEV2ZW50
TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9o
YW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKworICAg
ICAgICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVu
dCgiY2FudmFzLW92ZXJ2aWV3IiwgV0kuVUlTdHJpbmcoIk92ZXJ2aWV3IiksIG51bGwsIHtbV0ku
Q29udGVudFZpZXcuaXNWaWV3YWJsZVN5bWJvbF06IHRydWV9KTsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZCh0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50KTsK
KworICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCA9IG5ldyBX
SS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmluZygiU2F2ZWQgUmVjb3JkaW5ncyIpKTsKKyAg
ICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1
ZTsKKyAgICAgICAgdGhpcy5fY2FudmFzZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9z
YXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fcmVjb3Jk
U2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXSS5LZXlib2FyZFNob3J0
Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRo
aXMuX3JlY29yZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKKyAg
ICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRo
aXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChX
SS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNob3J0Y3V0Lktl
eS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3Jl
Y29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNl
OworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1
ZTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgpOworICAgICAgICBXSS5hbmlt
YXRpb25NYW5hZ2VyLmVuYWJsZSgpOworICAgIH0KKworICAgIHN0YXRpYyB0YWJJbmZvKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBpbWFnZTogIkltYWdlcy9HcmFwaGlj
cy5zdmciLAorICAgICAgICAgICAgdGl0bGU6IFdJLlVJU3RyaW5nKCJHcmFwaGljcyIpLAorICAg
ICAgICB9OworICAgIH0KKworICAgIHN0YXRpYyBpc1RhYkFsbG93ZWQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzRG9tYWluKCJDYW52YXMiKQorICAgICAgICAg
ICAgfHwgSW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkFuaW1hdGlvbiIpOworICAgIH0KKwor
ICAgIC8vIFB1YmxpYworCisgICAgdHJlZUVsZW1lbnRGb3JSZXByZXNlbnRlZE9iamVjdChyZXBy
ZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgfQorCisgICAg
Z2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdJLkdyYXBoaWNzVGFiQ29udGVudFZp
ZXcuVHlwZTsKKyAgICB9CisKKyAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGdldCBtYW5hZ2VzTmF2
aWdhdGlvblNpZGViYXJQYW5lbCgpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBzaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSkK
KyAgICB7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNvbGxl
Y3Rpb24pIHsKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3
KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgc3VwZXIuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2Jq
ZWN0LCBjb29raWUpOworICAgIH0KKworICAgIGNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXBy
ZXNlbnRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbGxlY3Rpb24KKyAgICAgICAgICAgIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nCisgICAgICAgICAgICB8fCBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW1Db2xsZWN0aW9uCisg
ICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dy
YW0KKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQW5pbWF0
aW9uQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5BbmltYXRpb247CisgICAgfQorCisgICAgY2xvc2VkKCkKKyAgICB7CisgICAgICAgIFdJ
LmFuaW1hdGlvbk1hbmFnZXIuZGlzYWJsZSgpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmRp
c2FibGUoKTsKKworICAgICAgICBzdXBlci5jbG9zZWQoKTsKKyAgICB9CisKKyAgICByZXN0b3Jl
U3RhdGVGcm9tQ29va2llKGNvb2tpZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9
CisKKyAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUpCisgICAgeworICAgICAgICAvLyBGSVhN
RTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NzYwNj4gaXMgY29tcGxl
dGUuCisgICAgfQorCisgICAgYXN5bmMgaGFuZGxlRmlsZURyb3AoZmlsZXMpCisgICAgeworICAg
ICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09OKGZpbGVzLCAocmVzdWx0KSA9PiBX
SS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKworICAgIC8vIFBy
b3RlY3RlZAorCisgICAgYXR0YWNoZWQoKQorICAgIHsKKyAgICAgICAgc3VwZXIuYXR0YWNoZWQo
KTsKKworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRM
aXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFz
QWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
YWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9o
YW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKyAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMu
X2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKyAgICAgICAgV0kuQ2FudmFz
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMu
X2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKKworICAgICAgICBmb3IgKGxl
dCBjaGlsZCBvZiB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmNoaWxkcmVuKSB7CisgICAgICAg
ICAgICBsZXQgY2FudmFzID0gY2hpbGQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgICAgICBp
ZiAoY2FudmFzIGluc3RhbmNlb2YgV0kuQ2FudmFzICYmICFXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24uaGFzKGNhbnZhcykpCisgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2Fu
dmFzKGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMu
X2NhbnZhc2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcykpCisgICAgICAgICAg
ICAgICAgdGhpcy5fYWRkQ2FudmFzKGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBmb3Ig
KGxldCByZWNvcmRpbmcgb2YgV0kuY2FudmFzTWFuYWdlci5zYXZlZFJlY29yZGluZ3MpIHsKKyAg
ICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzZXNUcmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQo
cmVjb3JkaW5nKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5n
LCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlfSk7CisgICAgICAgIH0KKworICAgICAgICB0
aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9yZWNv
cmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgZGV0
YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuZGlzYWJsZWQgPSB0
cnVlOworICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2FibGVkID0g
dHJ1ZTsKKworICAgICAgICBXSS5DYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXMu
RXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3Bw
ZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVjb3Jk
aW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1B
ZGRlZCwgdGhpcy5faGFuZGxlQ2FudmFzQWRkZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9u
LkV2ZW50Lkl0ZW1SZW1vdmVkLCB0aGlzLl9oYW5kbGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKKwor
ICAgICAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIGluaXRpYWxMYXlvdXQoKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDb250ZW50VmlldyA9IG5ldyBXSS5HcmFwaGlj
c092ZXJ2aWV3Q29udGVudFZpZXc7CisgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0Nv
bnRlbnRWaWV3KHRoaXMuX292ZXJ2aWV3Q29udGVudFZpZXcpOworICAgIH0KKworICAgIC8vIFBy
aXZhdGUKKworICAgIF9hZGRDYW52YXMoY2FudmFzKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2Fu
dmFzZXNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2Fu
dmFzKSk7CisKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHN1cHByZXNz
U2hvd1JlY29yZGluZzogdHJ1ZSwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGxldCByZWNv
cmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9h
ZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKKyAgICB9CisKKyAgICBfcmVtb3ZlQ2Fu
dmFzKGNhbnZhcykKKyAgICB7CisgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NhbnZh
c2VzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcyk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRyZWVFbGVtZW50LCAiTWlzc2luZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBj
YW52YXMpOworCisgICAgICAgIGNvbnN0IHN1cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKKyAg
ICAgICAgdHJlZUVsZW1lbnQuZGVzZWxlY3Qoc3VwcHJlc3NOb3RpZmljYXRpb24pOworICAgICAg
ICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKKwor
ICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJy
ZW50Q29udGVudFZpZXc7CisgICAgICAgIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9i
amVjdChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBlbHNlIGlm
IChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAm
JiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5oYXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJl
c2VudGVkT2JqZWN0KSkKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIudXBkYXRlSGll
cmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50VmlldygpOworCisgICAgICAgIGxldCBuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsOworICAgICAg
ICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBpbnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQ
YW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnZpc2libGUpCisgICAgICAgICAgICBuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJlc2VudGVkT2JqZWN0cygpOworCisgICAgICAg
IHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxzKCk7CisgICAgfQorCisgICAgX2FkZFJlY29y
ZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkKKyAgICB7CisgICAgICAgIGlmICghcmVjb3Jk
aW5nLnNvdXJjZSkgeworICAgICAgICAgICAgY29uc3Qgc3VidGl0bGUgPSBudWxsOworICAgICAg
ICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVu
dChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRp
bmcpOworICAgICAgICAgICAgdGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQu
aGlkZGVuID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NU
cmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVudCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nKQorICAgICAgICAg
ICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVjb3JkaW5nKTsKKyAgICB9CisKKyAgICBf
aGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9hZGRDYW52YXMo
ZXZlbnQuZGF0YS5pdGVtKTsKKyAgICB9CisKKyAgICBfaGFuZGxlQ2FudmFzUmVtb3ZlZChldmVu
dCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlbW92ZUNhbnZhcyhldmVudC5kYXRhLml0ZW0pOwor
ICAgIH0KKworICAgIF9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdl
KGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2NhbnZh
c2VzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKKyAgICAgICAgaWYgKCFzZWxlY3Rl
ZEVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc3dpdGNoIChzZWxlY3Rl
ZEVsZW1lbnQpIHsKKyAgICAgICAgY2FzZSB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50OgorICAg
ICAgICBjYXNlIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50OgorICAgICAg
ICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3ZlcnZpZXdD
b250ZW50Vmlldyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBs
ZXQgcmVwcmVzZW50ZWRPYmplY3QgPSBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7
CisgICAgICAgIGlmICghdGhpcy5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRP
YmplY3QpKSB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQg
cmVwcmVzZW50ZWRPYmplY3QuIiwgcmVwcmVzZW50ZWRPYmplY3QpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVw
cmVzZW50ZWRPYmplY3QpOworICAgIH0KKworICAgIF9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3Rv
cHBlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVz
ZXIsIGltcG9ydGVkfSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmICghcmVjb3JkaW5nKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBvcHRpb25zID0ge307CisKKyAgICAgICAg
Ly8gQWx3YXlzIHNob3cgaW1wb3J0ZWQgcmVjb3JkaW5ncy4KKyAgICAgICAgaWYgKHJlY29yZGlu
Zy5zb3VyY2UgfHwgIWltcG9ydGVkKQorICAgICAgICAgICAgb3B0aW9ucy5zdXBwcmVzc1Nob3dS
ZWNvcmRpbmcgPSAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVu
dFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50
ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpOworCisgICAgICAgIHRoaXMuX2FkZFJl
Y29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMpOworICAgIH0KKworICAgIF9oYW5kbGVTcGFjZShl
dmVudCkKKyAgICB7CisgICAgICAgIGlmIChXSS5pc0V2ZW50VGFyZ2V0QW5FZGl0YWJsZUZpZWxk
KGV2ZW50KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXRoaXMubmF2aWdh
dGlvblNpZGViYXJQYW5lbCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgY2Fu
dmFzID0gdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNhbnZhczsKKyAgICAgICAgaWYgKCFj
YW52YXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGNhbnZhcy5yZWNvcmRp
bmdBY3RpdmUpCisgICAgICAgICAgICBjYW52YXMuc3RvcFJlY29yZGluZygpOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIGxldCBzaW5nbGVGcmFtZSA9ICEhZXZlbnQuc2hpZnRLZXk7Cisg
ICAgICAgICAgICBjYW52YXMuc3RhcnRSZWNvcmRpbmcoc2luZ2xlRnJhbWUpOworICAgICAgICB9
CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9Cit9OworCitXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiZ3JhcGhpY3MiOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWFpbi5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcwppbmRleCBjZTMxYWY0NjMz
Nzg2MTM0YjFjYzcyNzZhMzRkNmE0NDcxOGEyYWUyLi4xMGNkNjRhNDU1OTA5OTVjZGE0OTAyOTIx
ZTFiZjk4MTUwM2FmOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NYWluLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NYWluLmNzcwpAQCAtMjA5LDEyICsyMDksMTIgQEAgYm9keS5kb2NrZWQ6
bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2aWdhdGlvbi1zaWRlYmFyLmNvbGxhcHNlZCA+IC5y
ZXNpemVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogfQogCi0ubWVzc2FnZS10ZXh0LXZp
ZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwIHsKKy5uYXZpZ2F0aW9uLWl0ZW0taGVscCB7CiAgICAg
ZGlzcGxheTogYmxvY2s7CiAgICAgbGluZS1oZWlnaHQ6IDIycHg7CiB9CiAKLS5tZXNzYWdlLXRl
eHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFyIHsKKy5uYXZpZ2F0
aW9uLWl0ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciB7CiAgICAgZGlzcGxheTogaW5saW5lLWZs
ZXg7CiAgICAgaGVpZ2h0OiAyMHB4OwogICAgIHBhZGRpbmc6IDAgNHB4OwpAQCAtMjIyLDkgKzIy
Miw5IEBAIGJvZHkuZG9ja2VkOm1hdGNoZXMoLnJpZ2h0LCAubGVmdCkgI25hdmlnYXRpb24tc2lk
ZWJhci5jb2xsYXBzZWQgPiAucmVzaXplciB7CiAgICAgdmVydGljYWwtYWxpZ246IC0zcHg7CiB9
CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24t
YmFyID4gLml0ZW0geworLm5hdmlnYXRpb24taXRlbS1oZWxwID4gLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0gewogICAgIGhlaWdodDogMTAwJTsKLSAgICBwYWRkaW5nOiAwIDRweDsKKyAgICBwYWRk
aW5nOiAwIDRweCAhaW1wb3J0YW50OwogICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICBib3JkZXIt
cmFkaXVzOiA0cHg7CiAgICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tYm9yZGVyLWNvbG9yKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
Y29yZGluZ0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwppbmRleCA4ZDYwZjIzZjBiMmJlYzcw
ZDhiZTgzZDAyMTdhNzBhYzc0ZmQyMzU4Li4xMWYxZGQ4MmU1NTM3NzAxOTBiMmZmN2ViOGI2MDhl
ZWM3ZTI5YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCkBAIC0yMywx
OCArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0u
Y29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgeworLmNvbnRlbnQtdmlldy5yZWNvcmRp
bmcgewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAg
ICBwYWRkaW5nOiAxMHB4OwogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsK
IH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyIHsKKy5jb250
ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyIHsKICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owog
fQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVy
LWNvbnRhaW5lciB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXIt
Y29udGFpbmVyIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtd3JhcDogd3JhcDsKICAg
ICBwYWRkaW5nOiA0cHggMDsKQEAgLTQzLDMxICs0MywzMSBAQAogICAgIGJvcmRlci1yYWRpdXM6
IDRweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4g
LnNsaWRlci1jb250YWluZXIgPiAqIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVy
ID4gLnNsaWRlci1jb250YWluZXIgPiAqIHsKICAgICBtYXJnaW46IDRweCA4cHg7CiB9CiAKLS5j
b250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFp
bmVyID4gLnNsaWRlci12YWx1ZSB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+
IC5zbGlkZXItY29udGFpbmVyID4gLnNsaWRlci12YWx1ZSB7CiAgICAgZm9udC1mYW1pbHk6IE1l
bmxvLCBtb25vc3BhY2U7CiAgICAgZm9udC1mYW1pbHk6IDExcHg7CiB9CiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5w
dXRbdHlwZT1yYW5nZV0geworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xp
ZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKICAgICBmbGV4OiAxOwogICAgIHdp
ZHRoOiAxMDAlOwogfQogCi0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFk
ZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRl
ci1ydW5uYWJsZS10cmFjayB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5z
bGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5h
YmxlLXRyYWNrIHsKICAgICBoZWlnaHQ6IDJweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIo
LS1ib3JkZXItY29sb3IpOwogICAgIGJvcmRlci1yYWRpdXM6IDFweDsKIH0KIAotLmNvbnRlbnQt
dmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBp
bnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeworLmNvbnRlbnQtdmlldy5y
ZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9cmFuZ2Vd
Ojotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgbWFyZ2luLXRvcDogLTZweDsKIH0KIAotLmNv
bnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gLnByZXZpZXctY29udGFpbmVyIHsKKy5j
b250ZW50LXZpZXcucmVjb3JkaW5nID4gLnByZXZpZXctY29udGFpbmVyIHsKICAgICBkaXNwbGF5
OiBmbGV4OwogICAgIGZsZXg6IDE7CiAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CkBAIC03
NywyNyArNzcsMjcgQEAKICAgICBoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7CiB9CiAK
LS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA6bWF0Y2hlcyhpbWcsIGNhbnZhcykg
eworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgOm1hdGNoZXMoaW1nLCBjYW52YXMpIHsKICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgIG1heC1oZWlnaHQ6
IDEwMCU7CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyBjYW52YXMucGF0
aCB7CisuY29udGVudC12aWV3LnJlY29yZGluZyBjYW52YXMucGF0aCB7CiAgICAgei1pbmRleDog
MTA7CiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29u
dGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgeworICAgIC5jb250ZW50LXZpZXcucmVjb3Jk
aW5nIHsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgfQogCi0gICAgLmNv
bnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWlu
ZXIgeworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250
YWluZXIgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAgICAgICAgYm9yZGVy
LWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3Itc2Vjb25kYXJ5KTsKICAgICB9CiAKLSAgICAuY29u
dGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5l
ciA+IGlucHV0W3R5cGU9cmFuZ2VdIHsKKyAgICAuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhl
YWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV0gewogICAgICAgICBi
YWNrZ3JvdW5kOiBub25lOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmNzcwppbmRleCAzYTlhOWFlZmYyOWM1ZWZjZDc3OWJiNGQyOTA0
MGFhZDg5ZGJmMWQ0Li4yZjk0YmM3NDA5ZjRkNTU0NjY1Y2RlODljOWYwZjk5Y2FkZWY5NzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBA
IC0yMyw2ICsyMywxNCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKKy5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBp
bWcgeworICAgIG91dGxpbmU6IDAuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cit9CisK
Ky5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6
aG92ZXIgeworICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSkKK30K
KwogLnJlc291cmNlLWNvbGxlY3Rpb24taW1hZ2UtdHlwZS1zY29wZS1iYXIuZGVmYXVsdC1pdGVt
LXNlbGVjdGVkIHsKICAgICAtLXNjb3BlLWJhci10ZXh0LWNvbG9yLW92ZXJyaWRlOiB2YXIoLS10
ZXh0LWNvbG9yKTsKICAgICAtLXNjb3BlLWJhci1iYWNrZ3JvdW5kLWNvbG9yLW92ZXJyaWRlOiB0
cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZp
ZXcuanMKaW5kZXggYzk0ZWNhNzc3MjE0ZTMxZGM1ZDgxZTYxMDkwNjA2M2Y3N2M3NGZjYy4uZmMx
YzZhMmNkNGFhN2RhMTk1MGMwYTNkM2ZmMDYzNDMyZjk3ZDZmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMKQEAgLTM1LDYgKzM1LDggQEAgV0ku
UmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBSZXNvdXJjZUNvbGxlY3Rpb25D
b250ZW50VmlldyBleHRlbmRzIFcKIAogICAgICAgICBzdXBlcihjb2xsZWN0aW9uLCBjb250ZW50
Vmlld0NvbnN0cnVjdG9yKTsKIAorICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
cmVzb3VyY2UtY29sbGVjdGlvbiIpOworCiAgICAgICAgIGlmIChjb2xsZWN0aW9uLnJlc291cmNl
VHlwZSA9PT0gV0kuUmVzb3VyY2UuVHlwZS5JbWFnZSkgewogICAgICAgICAgICAgdGhpcy5fc2hv
d0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRp
b25JdGVtKCJzaG93LWdyaWQiLCBXSS5VSVN0cmluZygiU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCIp
LCBXSS5VSVN0cmluZygiSGlkZSB0cmFuc3BhcmVuY3kgZ3JpZCIpLCAiSW1hZ2VzL05hdmlnYXRp
b25JdGVtQ2hlY2tlcnMuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgICAgIHRoaXMuX3Nob3dHcmlk
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVTaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDMzOTQ0ZDUzNzExMTA5YTViMjk1YThkMDEzZTg0ZGQyMjZiNDdkM2YuLmMx
YzhiNDUyZDlhNDA2NGY3MDBmYzJhZTk4YzJiN2MyOGFmM2ZjZTkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MSBAQAorMjAyMC0wMS0yOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGluc3RydW1lbnRhdGlvbiBmb3Igc2hvd2luZyBleGlz
dGluZyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODMyODA4Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogaW5zcGVjdG9yL2Fu
aW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9h
bmltYXRpb24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LWNzcy10cmFuc2l0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRp
b24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1
ZXN0RWZmZWN0VGFyZ2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9hbmltYXRp
b24vcmVxdWVzdEVmZmVjdFRhcmdldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlm
ZWN5Y2xlLXV0aWxpdGllcy5qczogQWRkZWQuCisgICAgICAgIChjcmVhdGVBbmltYXRpb24pOgor
ICAgICAgICAoZGVzdHJveUFuaW1hdGlvbnMpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5Bbmlt
YXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgYXdhaXRBbmltYXRpb25DcmVhdGVkKToKKyAg
ICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGF3
YWl0QW5pbWF0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQW5pbWF0aW9u
TGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGNyZWF0ZUFuaW1hdGlvbik6CisgICAgICAgIChJbnNw
ZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hc3luYyBkZXN0cm95QW5pbWF0
aW9ucyk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdw
dS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250
ZXh0LXV0aWxpdGllcy5qczoKKyAgICAgICAgKGRlc3Ryb3lDYW52YXNlcyk6CisgICAgICAgIChh
d2FpdENhbnZhc0FkZGVkKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QuQ3JlYXRlQ29udGV4dFV0
aWxpdGllcy5pbml0aWFsaXplVGVzdFN1aXRlKToKKworICAgICAgICAqIGluc3BlY3Rvci9jYW52
YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9l
eHRlbnNpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbDoKKworICAgICAgICAqIGluc3Bl
Y3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9z
ZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpzOgorICAgICAgICAod2lu
ZG93LmdldENhbnZhcyk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dy
YW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Vw
ZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUu
anM6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMtd2ViZ2wuanM6CisgICAgICAgIChkZWxldGVDb250ZXh0KToKKyAgICAgICAgKHdo
ZW5Qcm9ncmFtQWRkZWQpOgorICAgICAgICAod2luZG93LmluaXRpYWxpemVUZXN0U3VpdGUpOgor
ICAgICAgICAod2luZG93LmFkZFBhcmVudENhbnZhc1JlbW92ZWRUZXN0Q2FzZSk6CisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3Qt
ZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wMS0yOSAgSmFzb24gTGF3cmVuY2UgIDxs
YXdyZW5jZS5qQGFwcGxlLmNvbT4KIAogICAgICAgICBbIE1hYyBdIGZhc3QvZG9tL1dpbmRvdy9w
b3N0LW1lc3NhZ2UtY3Jhc2guaHRtbCBpcyBmbGFreSBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMmYzM2NiZDdmOTMzZDNiNDliYmZmNWQzNzhkZTU3YjgyMzEyYmU5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RD
aGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1h
dGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5p
bWF0aW9uLmVmZmVjdENoYW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uZWZm
ZWN0Q2hhbmdlZC5OZXdFZmZlY3QKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZl
Y3QuCitDaGFuZ2luZyBlZmZlY3QuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFu
IGVmZmVjdC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QK
K1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuCitDaGFuZ2luZyBlZmZlY3Qu
Li4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuCitQQVNTOiBB
bmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ1
ZDg1YjFlMWYyMTY4ODFmZmJkNmY2MWIzNzQ3YzcwZGJmMTc0NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCkBAIC0w
LDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1h
dGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbe29wYWNpdHk6IDB9XSk7CisKKyAgICBydW5U
ZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLmVmZmVjdENoYW5nZWQiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5lZmZlY3RDaGFu
Z2VkLk5ld0VmZmVjdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZh
bGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAg
IGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20o
V0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxk
IG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9
IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAg
ICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5p
bWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwg
IkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBs
ZXQgb2xkS2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0Tm90RW1wdHkob2xkS2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBo
YXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5n
aW5nIGVmZmVjdC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICAgICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LkVmZmVj
dENoYW5nZWQpLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
YHdpbmRvdy5hbmltYXRpb24uZWZmZWN0ID0gbmV3IEtleWZyYW1lRWZmZWN0KHdpbmRvdy5hbmlt
YXRpb24uZWZmZWN0LnRhcmdldCwgW3tvcGFjaXR5OiAxfV0sIHt9KWApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGxldCBuZXdLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5ZnJhbWVz
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eShuZXdLZXlmcmFtZXMs
ICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIpOworCisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxsb3dFcXVhbChuZXdLZXlmcmFtZXMsIG9sZEtleWZyYW1l
cywgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAgfSwK
KyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1h
dGlvbi5lZmZlY3RDaGFuZ2VkLk51bGxFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNo
b3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRp
Zmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlv
bnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0g
MSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAg
IGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRp
b24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlw
ZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsK
KworICAgICAgICAgICAgbGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1lcywgIkFu
aW1hdGlvbiBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJDaGFuZ2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1h
dGlvbi5FdmVudC5FZmZlY3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG51bGxgKSwKKyAgICAg
ICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3S2V5ZnJhbWVzID0gYW5pbWF0aW9uLmtl
eWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RW1wdHkobmV3S2V5ZnJh
bWVzLCAiQW5pbWF0aW9uIHNob3VsZCBub3QgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90U2hhbGxvd0VxdWFsKG5ld0tleWZyYW1lcywgb2xk
S2V5ZnJhbWVzLCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLiIpOworICAg
ICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0
cyBmb3IgdGhlIEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkIGV2ZW50LjwvcD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5
Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTBkZDJiZjI5YzIwNGYwNWY1MjNjNmFjOGFhNTdiMzUxMzUyY2VkYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9u
LmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRz
LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uCitQQVNTOiBU
aGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorUEFTUzogQW5pbWF0aW9uIGNyZWF0
ZWQuCitQQVNTOiBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUgQ1NTIEFuaW1hdGlvbi4KK3N0YXJ0
RGVsYXk6IDEwMAoraXRlcmF0aW9uQ291bnQ6IDIKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0MDAKK3Rp
bWluZ0Z1bmN0aW9uOiAibGluZWFyIgorcGxheWJhY2tEaXJlY3Rpb246ICJhbHRlcm5hdGUiCitm
aWxsTW9kZTogImJvdGgiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zmc2V0IjogMCwKKyAg
ICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5
bGUiOiAiY29sb3I6IHJnYigyNTUsIDAsIDApO1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAg
ICAib2Zmc2V0IjogMC41LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAw
LjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJjb2xvcjogcmdiKDAsIDEyOCwgMCk7XG5vcGFjaXR5
OiAwLjU7IgorICB9LAorICB7CisgICAgIm9mZnNldCI6IDEsCisgICAgImVhc2luZyI6ICJjdWJp
Yy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisgICAgInN0eWxlIjogImNvbG9yOiByZ2Io
MCwgMCwgMjU1KTtcbm9wYWNpdHk6IDE7IgorICB9CitdCisKK0Rlc3Ryb3lpbmcgYW5pbWF0aW9u
cy4uLgorCitQQVNTOiBBbmltYXRpb24gZGVzdHJveWVkLgorUEFTUzogUmVtb3ZlZCBhbmltYXRp
b24gaGFzIGV4cGVjdGVkIElELgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
YW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDZkYTA5NTFiZjVlNDUzNjIzOTIzMDUxMzZjODJiNTQ0NmM4ZTBlZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRp
b24uaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xl
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAa2V5ZnJhbWVzIGZhZGUtaW4gewor
ICAgIGZyb20geworICAgICAgICBjb2xvcjogcmVkOworICAgICAgICBvcGFjaXR5OiAwOworICAg
IH0KKyAgICA1MCUgeworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIG9wYWNpdHk6IDAu
NTsKKyAgICB9CisgICAgdG8geworICAgICAgICBjb2xvcjogYmx1ZTsKKyAgICAgICAgb3BhY2l0
eTogMTsKKyAgICB9Cit9CitkaXYjdGFyZ2V0LmFjdGl2ZSB7CisgICAgYW5pbWF0aW9uLW5hbWU6
IGZhZGUtaW47CisgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtczsKKyAgICBhbmltYXRpb24t
dGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KTsKKyAgICBh
bmltYXRpb24tZGVsYXk6IDEwMG1zOworICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7
CisgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIGFuaW1hdGlvbi1maWxs
LW1vZGU6IGJvdGg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9u
LkxpZmVjeWNsZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
QW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NBbmltYXRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmllZCB3aGVuZXZlciBDU1MgYW5pbWF0
aW9ucyBhcmUgY3JlYXRlZC9kZXN0cm95ZWQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kuYW5pbWF0aW9uTWFuYWdlci5h
bmltYXRpb25Db2xsZWN0aW9uLnNpemUsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmlt
YXRpb25zLiIpOworCisgICAgICAgICAgICBsZXQgW2FuaW1hdGlvbl0gPSBhd2FpdCBQcm9taXNl
LmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVV
dGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1h
dGlvbiksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCks
CisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3
YWl0QW5pbWF0aW9uRGVzdHJveWVkKGFuaW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFu
aW1hdGlvbnMoKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0
aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmlt
YXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+
CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5
Y2xlLWNzcy10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWIyYmI1YTkxZDQ0
OThlOTBjNTk1YmM5NTY3NDkyNDgwNjllNTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzMgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNy
ZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTVHJhbnNpdGlvbgorUEFTUzogVGhlcmUgc2hvdWxk
IG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4KK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorUEFTUzog
QW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIENTUyBUcmFuc2l0aW9uLgorc3RhcnREZWxheTogMTAw
CitpdGVyYXRpb25Db3VudDogMQoraXRlcmF0aW9uRHVyYXRpb246IDQwMAordGltaW5nRnVuY3Rp
b246ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIKK3BsYXliYWNrRGlyZWN0aW9u
OiAibm9ybWFsIgorZmlsbE1vZGU6ICJiYWNrd2FyZHMiCitrZXlmcmFtZXM6CitbCisgIHsKKyAg
ICAib2Zmc2V0IjogMCwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4z
LCAwLjQpIiwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zm
c2V0IjogMSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAwLjQp
IiwKKyAgICAic3R5bGUiOiAib3BhY2l0eTogMTsiCisgIH0KK10KKworRGVzdHJveWluZyBhbmlt
YXRpb25zLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBkZXN0cm95ZWQuCitQQVNTOiBSZW1vdmVkIGFu
aW1hdGlvbiBoYXMgZXhwZWN0ZWQgSUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNkNDVhMzhhMjA0ZTBjNmM0ZDNhNzFiZjBlZDlkYzk2MGUwNDA4OWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3Mt
dHJhbnNpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9s
aWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiN0YXJnZXQgewor
ICAgIGNvbG9yOiByZWQ7CisgICAgb3BhY2l0eTogMDsKKworfQorZGl2I3RhcmdldC5hY3RpdmUg
eworICAgIGNvbG9yOiBibHVlOworICAgIG9wYWNpdHk6IDE7CisKKyAgICB0cmFuc2l0aW9uLXBy
b3BlcnR5OiBvcGFjaXR5OworICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDQwMG1zOworICAgIHRy
YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40
KTsKKyAgICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtczsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24iLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgV2ViIEluc3BlY3RvciBpcyBub3RpZmll
ZCB3aGVuZXZlciBDU1MgdHJhbnNpdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUg
c2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmlt
YXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5B
bmltYXRpb24uVHlwZS5DU1NUcmFuc2l0aW9uKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuY2xh
c3NMaXN0LmFkZCgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBh
d2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRp
b25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25EZXN0cm95ZWQoYW5pbWF0aW9uLmFu
aW1hdGlvbklkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVj
eWNsZVV0aWxpdGllcy5kZXN0cm95QW5pbWF0aW9ucygpLAorICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAg
IH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3Rz
IGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRp
b25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlv
bi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YWE2YjhkYTU5ZmZkNmY3YmYwZDFmMDViODU1ZTU5N2ExMDhiYWUxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2Vi
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorVGVzdHMgZm9yIHRoZSBB
bmltYXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3ll
ZCBldmVudHMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24uTGlmZWN5Y2xl
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLkxpZmVjeWNsZS5XZWJBbmltYXRpb24K
K1BBU1M6IFRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitDcmVhdGluZyBhbmlt
YXRpb24uLi4KKworUEFTUzogQW5pbWF0aW9uIGNyZWF0ZWQuCisgIDA6IGFuaW1hdGUgLSBbbmF0
aXZlIGNvZGVdCisgIDE6IGNyZWF0ZUFuaW1hdGlvbiAtIGluc3BlY3Rvci9hbmltYXRpb24vcmVz
b3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanM6NzozNQorICAyOiBHbG9iYWwgQ29kZSAtIFtw
cm9ncmFtIGNvZGVdCisgIDM6IGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIC0gW25hdGl2ZSBj
b2RlXQorICA0OiAoYW5vbnltb3VzIGZ1bmN0aW9uKSAtIFtuYXRpdmUgY29kZV0KKyAgNTogX3dy
YXBDYWxsIC0gW25hdGl2ZSBjb2RlXQorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIFdl
YiBBbmltYXRpb24uCitzdGFydERlbGF5OiAxMDAKK2VuZERlbGF5OiAyMDAKK2l0ZXJhdGlvbkNv
dW50OiAxMAoraXRlcmF0aW9uU3RhcnQ6IDUKK2l0ZXJhdGlvbkR1cmF0aW9uOiAzMDAKK3RpbWlu
Z0Z1bmN0aW9uOiAiZWFzZS1pbi1vdXQiCitwbGF5YmFja0RpcmVjdGlvbjogImFsdGVybmF0ZSIK
K2ZpbGxNb2RlOiAiYm90aCIKK2tleWZyYW1lczoKK1sKKyAgeworICAgICJvZmZzZXQiOiAwLjI1
LAorICAgICJlYXNpbmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAg
ICJzdHlsZSI6ICJjb2xvcjogcmVkO1xub3BhY2l0eTogMDsiCisgIH0sCisgIHsKKyAgICAib2Zm
c2V0IjogMC43NSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjYsIDAuNywgMC44LCAw
LjkpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IGJsdWU7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQor
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xl
LXdlYi1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlm
ZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDI3MGE0YjI3ZDFkYzBiYWE2
NzY3NGFiNzA3YzA5OGJjYThiYWYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEs
NTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUu
V2ViQW5pbWF0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNw
ZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIgd2ViIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVz
dHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5z
aXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAg
ICAgICAgbGV0IGFuaW1hdGlvbiA9IGF3YWl0IEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5
Y2xlVXRpbGl0aWVzLmNyZWF0ZUFuaW1hdGlvbihXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRp
b24sIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RvcjogImJvZHkiLAorICAgICAgICAgICAgICAg
IGtleWZyYW1lczogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBvZmZzZXQ6IDAuMjUsCisgICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJjdWJp
Yy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBj
b2xvcjogInJlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLAorICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBvZmZzZXQ6IDAuNzUsCisgICAgICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICJj
dWJpYy1iZXppZXIoMC42LCAwLjcsIDAuOCwgMC45KSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBjb2xvcjogImJsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKKyAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAg
IG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAgICAgICAgZGVsYXk6IDEwMCwKKyAgICAgICAgICAg
ICAgICAgICAgZW5kRGVsYXk6IDIwMCwKKyAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMw
MCwKKyAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAiZWFzZS1pbi1vdXQiLAorICAgICAgICAg
ICAgICAgICAgICBkaXJlY3Rpb246ICJhbHRlcm5hdGUiLAorICAgICAgICAgICAgICAgICAgICBm
aWxsOiAiYm90aCIsCisgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IDEwLAorICAgICAg
ICAgICAgICAgICAgICBpdGVyYXRpb25TdGFydDogNSwKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2Fz
ZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQg
YW5kIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLjwvcD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2
ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZDQ4ZGE4MTUyMTk5
NzNkNjEyNjA4MzYwODZlZTIxMWUyYTFhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIGZvciB0aGUgQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gY29t
bWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0
aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24uVmFs
aWRJZGVudGlmaWVyCitQQVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIHR5cGUgIm9iamVjdCIuCitQ
QVNTOiBQYXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0aW9uIi4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlm
aWVyCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitFcnJvcjogTWlzc2luZyBh
bmltYXRpb24gZm9yIGdpdmVuIGFuaW1hdGlvbklkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmEy
M2UzOTc0YzM0YzE5N2NkZDU5ODYxMGY3Mzc3MTA2N2UzMDEzOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCkBA
IC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFu
aW1hdGlvbiA9IGRvY3VtZW50LmJvZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24iKTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9u
LlZhbGlkSWRlbnRpZmllciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBh
IHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZy
b20oV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hv
dWxkIG9ubHkgYmUgb25lIGFuaW1hdGlvbi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlv
biA9IGFuaW1hdGlvbnNbMF07CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAg
ICAgICAgICAgIHRocm93IGBNaXNzaW5nIGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
YW5pbWF0aW9uLmFuaW1hdGlvblR5cGUgPT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlv
biwgIkFuaW1hdGlvbiBzaG91bGQgYmUgYSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAg
ICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKyAgICAgICAgICAgIGxldCB7b2JqZWN0fSA9
IGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oYW5pbWF0aW9uLmFuaW1hdGlv
bklkLCBvYmplY3RHcm91cCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KG9iamVjdC50eXBlLCAib2JqZWN0IiwgYFBheWxvYWQgc2hvdWxkIGhhdmUgdHlwZSAib2JqZWN0
Ii5gKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwob2JqZWN0LmNsYXNz
TmFtZSwgIkFuaW1hdGlvbiIsIGBQYXlsb2FkIHNob3VsZCBoYXZlIGNsYXNzTmFtZSAiQW5pbWF0
aW9uIi5gKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIC8vIC0tLS0tLQorCisgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLnJlc29sdmVBbmltYXRp
b24uSW52YWxpZElkZW50aWZpZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkludmFsaWQgYW5p
bWF0aW9uIGlkZW50aWZpZXJzIHNob3VsZCBjYXVzZSBhbiBlcnJvci4iLAorICAgICAgICBhc3lu
YyB0ZXN0KCkgeworICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9ICJET0VTX05PVF9FWElT
VCI7CisgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKKworICAgICAgICAg
ICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgICAgIGF3YWl0IEFuaW1hdGlvbkFnZW50LnJlc29sdmVBbmltYXRpb24oaWRlbnRp
Zmllciwgb2JqZWN0R3JvdXApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgfSk7
CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQW5pbWF0
aW9uLnJlc29sdmVBbmltYXRpb24gY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3lj
bGUtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJj
ZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWMyMTJmZjM2MTU4ZDhiYjRj
Y2UxNmE5NWRhMDUzNTJkMGIwMWRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcwpAQCAtMCww
ICsxLDEzMCBAQAord2luZG93LmFuaW1hdGlvbnMgPSBbXTsKKworZnVuY3Rpb24gY3JlYXRlQW5p
bWF0aW9uKHNlbGVjdG9yLCBrZXlmcmFtZXMgPSBbXSwgb3B0aW9ucyA9IHt9KSB7CisgICAgbGV0
IGFuaW1hdGlvbiA9IG51bGw7CisKKyAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcihzZWxlY3Rvcik7CisgICAgaWYgKHRhcmdldCkKKyAgICAgICAgYW5pbWF0aW9uID0gdGFy
Z2V0LmFuaW1hdGUoa2V5ZnJhbWVzLCBvcHRpb25zKTsKKyAgICBlbHNlCisgICAgICAgIGFuaW1h
dGlvbiA9IG5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KG51bGwsIGtleWZyYW1lcywg
b3B0aW9ucykpOworCisgICAgd2luZG93LmFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pOworfQor
CitmdW5jdGlvbiBkZXN0cm95QW5pbWF0aW9ucygpIHsKKyAgICBmb3IgKGxldCBhbmltYXRpb24g
b2Ygd2luZG93LmFuaW1hdGlvbnMpIHsKKyAgICAgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgYW5pbWF0aW9uLmNhbmNlbCgpOworCisgICAgICAgIGlm
IChhbmltYXRpb24uZWZmZWN0KSB7CisgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdC50
YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldC5yZW1vdmUo
KTsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0LnRhcmdldCA9IG51bGw7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGFuaW1hdGlvbi5lZmZlY3QgPSBudWxsOworICAgICAg
ICB9CisgICAgfQorCisgICAgd2luZG93LmFuaW1hdGlvbnMgPSBbXTsKKworICAgIC8vIEZvcmNl
IEdDIHRvIG1ha2Ugc3VyZSB0aGUgYW5pbWF0aW9uIGFuZCBpdCdzIHRhcmdldCBhcmUgYm90aCBk
ZXN0cm95ZWQsIGFzIG90aGVyd2lzZSB0aGUKKyAgICAvLyBmcm9udGVuZCB3aWxsIG5vdCByZWNl
aXZlIEFuaW1hdGlvbi5hbmltYXRpb25EZXN0cm95ZWQgZXZlbnRzLgorICAgIHNldFRpbWVvdXQo
KCkgPT4geworICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworICAgIH0pOworfQorCitU
ZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBmdW5jdGlvbiBqc29uS2V5
ZnJhbWVGaWx0ZXIoa2V5LCB2YWx1ZSkgeworICAgICAgICBpZiAoa2V5ID09PSAiZWFzaW5nIiAm
JiB2YWx1ZSBpbnN0YW5jZW9mIFdJLkN1YmljQmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLnRvU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBJbnNw
ZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcyA9IHt9OworCisgICAgSW5zcGVj
dG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVk
ID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBsZXQgYW5pbWF0aW9u
Q29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50ID0gYXdhaXQgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmlt
YXRpb25Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQp
OworCisgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiQW5pbWF0aW9uIGNyZWF0ZWQuIik7CisK
KyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVu
dC5kYXRhLml0ZW07CisKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmltYXRpb24uYmFj
a3RyYWNlLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gYW5pbWF0
aW9uLmJhY2t0cmFjZVtpXTsKKyAgICAgICAgICAgIGxldCB0cmFjZVRleHQgPSBgICAke2l9OiBg
OworICAgICAgICAgICAgdHJhY2VUZXh0ICs9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIihh
bm9ueW1vdXMgZnVuY3Rpb24pIjsKKworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS5uYXRpdmVD
b2RlKQorICAgICAgICAgICAgICAgIHRyYWNlVGV4dCArPSAiIC0gW25hdGl2ZSBjb2RlXSI7Cisg
ICAgICAgICAgICBlbHNlIGlmIChjYWxsRnJhbWUucHJvZ3JhbUNvZGUpCisgICAgICAgICAgICAg
ICAgdHJhY2VUZXh0ICs9ICIgLSBbcHJvZ3JhbSBjb2RlXSI7CisgICAgICAgICAgICBlbHNlIGlm
IChjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uKSB7CisgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICB0
cmFjZVRleHQgKz0gIiAtICIgKyBzYW5pdGl6ZVVSTChsb2NhdGlvbi5zb3VyY2VDb2RlLnVybCkg
KyBgOiR7bG9jYXRpb24ubGluZU51bWJlcn06JHtsb2NhdGlvbi5jb2x1bW5OdW1iZXJ9YDsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2codHJhY2VUZXh0KTsK
KyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoYW5pbWF0aW9u
LmFuaW1hdGlvblR5cGUsIGFuaW1hdGlvblR5cGUsIGBBbmltYXRpb24gdHlwZSBzaG91bGQgYmUg
JHtXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKGFuaW1hdGlvblR5cGUp
fS5gKTsKKworICAgICAgICBpZiAoYW5pbWF0aW9uLnN0YXJ0RGVsYXkpCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygic3RhcnREZWxheTogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlv
bi5zdGFydERlbGF5KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uZW5kRGVsYXkpCisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZW5kRGVsYXk6ICIgKyBKU09OLnN0cmluZ2lmeShhbmlt
YXRpb24uZW5kRGVsYXkpKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJpdGVyYXRpb25Db3VudDogIiArIEpTT04u
c3RyaW5naWZ5KGFuaW1hdGlvbi5pdGVyYXRpb25Db3VudCkpOworICAgICAgICBpZiAoYW5pbWF0
aW9uLml0ZXJhdGlvblN0YXJ0KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJh
dGlvblN0YXJ0OiAiICsgSlNPTi5zdHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0KSk7
CisgICAgICAgIGlmIChhbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiaXRlcmF0aW9uRHVyYXRpb246ICIgKyBKU09OLnN0cmluZ2lmeShh
bmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi50aW1p
bmdGdW5jdGlvbikKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJ0aW1pbmdGdW5jdGlv
bjogIiArIEpTT04uc3RyaW5naWZ5KFN0cmluZyhhbmltYXRpb24udGltaW5nRnVuY3Rpb24pKSk7
CisgICAgICAgIGlmIChhbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygicGxheWJhY2tEaXJlY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShh
bmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5maWxs
TW9kZSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJmaWxsTW9kZTogIiArIEpTT04u
c3RyaW5naWZ5KGFuaW1hdGlvbi5maWxsTW9kZSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmtl
eWZyYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJrZXlmcmFt
ZXM6Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmpzb24oYW5pbWF0aW9uLmtleWZyYW1l
cywganNvbktleWZyYW1lRmlsdGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRl
c3QubmV3bGluZSgpOworCisgICAgICAgIHJldHVybiBhbmltYXRpb24KKyAgICB9OworCisgICAg
SW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25E
ZXN0cm95ZWQgPSBhc3luYyBmdW5jdGlvbihhbmltYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAg
IGxldCBhbmltYXRpb25Db2xsZWN0aW9uSXRlbVJlbW92ZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1h
dGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbVJlbW92ZWQpCisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJBbmltYXRp
b24gZGVzdHJveWVkLiIpOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xs
ZWN0aW9uSXRlbVJlbW92ZWRFdmVudC5kYXRhLml0ZW07CisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoYW5pbWF0aW9uLmFuaW1hdGlvbklkLCBhbmltYXRpb25JZGVudGlmaWVyLCAi
UmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELiIpOworICAgIH07CisKKyAgICBJbnNw
ZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24gPSBh
c3luYyBmdW5jdGlvbihhbmltYXRpb25UeXBlLCB7c2VsZWN0b3IsIGtleWZyYW1lcywgb3B0aW9u
c30gPSB7fSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3JlYXRpbmcgYW5pbWF0aW9u
Li4uXG4iKTsKKworICAgICAgICBsZXQgc3RyaW5naWZpZWRTZWxlY3RvciA9IEpTT04uc3RyaW5n
aWZ5KHNlbGVjdG9yIHx8IG51bGwpOworICAgICAgICBsZXQgc3RyaW5naWZpZWRLZXlmcmFtZXMg
PSBKU09OLnN0cmluZ2lmeShrZXlmcmFtZXMgfHwgW10pOworICAgICAgICBsZXQgc3RyaW5naWZp
ZWRPcHRpb25zID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucyB8fCB7fSk7CisKKyAgICAgICAgbGV0
IFthbmltYXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXdhaXRBbmltYXRpb25DcmVhdGVkKGFu
aW1hdGlvblR5cGUpLAorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShg
Y3JlYXRlQW5pbWF0aW9uKCR7c3RyaW5naWZpZWRTZWxlY3Rvcn0sICR7c3RyaW5naWZpZWRLZXlm
cmFtZXN9LCAke3N0cmluZ2lmaWVkT3B0aW9uc30pYCkKKyAgICAgICAgXSk7CisKKyAgICAgICAg
cmV0dXJuIGFuaW1hdGlvbjsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25M
aWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMgPSBhc3luYyBmdW5jdGlvbigpIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRlc3Ryb3lpbmcgYW5pbWF0aW9ucy4uLlxuIik7
CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGRlc3Ryb3lBbmlt
YXRpb25zKClgKTsKKyAgICB9OworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ODhkZTIyZDM0OGNlYTlhYzlhZmYzZmFkMWYxNDI1MTA3NmNkN2Q1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFu
Z2VkIGV2ZW50LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9uLnRhcmdldENo
YW5nZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OZXdU
YXJnZXQKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4KK0NoYW5naW5nIHRh
cmdldC4uLgorCitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitQQVNTOiBB
bmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0CitQQVNTOiBBbmltYXRpb24g
c2hvdWxkIGhhdmUgYSB0YXJnZXQuCitDaGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0
aW9uIHNob3VsZCBub3QgaGF2ZSBhIHRhcmdldC4KK1BBU1M6IEFuaW1hdGlvbiBlZmZlY3Qgc2hv
dWxkIGhhdmUgY2hhbmdlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Fu
aW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL3RhcmdldENoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTcwNWY2YzhhMzE0ZWJmZTJhZDY0
OTNhYjczZTMyZDEwMmVhNjhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gbG9hZCgpIHsKKyAgICB3aW5kb3cuYW5pbWF0aW9uID0gZG9jdW1lbnQuYm9k
eS5hbmltYXRlKFtdKTsKKworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRp
b24udGFyZ2V0Q2hhbmdlZCIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTmV3VGFyZ2V0IiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0
aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxl
dCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNv
bGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5s
ZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlm
ICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9u
LmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmlt
YXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBbb2xkVGFyZ2V0XSA9IGF3YWl0IHByb21pc2lm
eSgoY2FsbGJhY2spID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2sp
OyB9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChvbGRUYXJnZXQgaW5z
dGFuY2VvZiBXSS5ET01Ob2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIpOwor
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgdGFyZ2V0Li4uXG4iKTsK
KyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRp
b24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCksCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5l
ZmZlY3QudGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IilgKSwKKyAgICAgICAg
ICAgIF0pOworCisgICAgICAgICAgICBsZXQgW25ld1RhcmdldF0gPSBhd2FpdCBwcm9taXNpZnko
KGNhbGxiYWNrKSA9PiB7IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKTsg
fSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobmV3VGFyZ2V0IGluc3Rh
bmNlb2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRhcmdldC4iKTsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbChuZXdUYXJnZXQsIG9sZFRh
cmdldCwgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdlZC4iKTsKKyAgICAgICAg
fSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFu
aW1hdGlvbi50YXJnZXRDaGFuZ2VkLk51bGxUYXJnZXQiLAorICAgICAgICBkZXNjcmlwdGlvbjog
IlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRl
bnRpZmllci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1h
dGlvbnMgPSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlv
bik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9
PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAg
ICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmlt
YXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24u
VHlwZS5XZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4i
KTsKKworICAgICAgICAgICAgbGV0IFtvbGRUYXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxs
YmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG9sZFRhcmdldCBpbnN0YW5jZW9m
IFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuIik7CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDaGFuZ2luZyB0YXJnZXQuLi5cbiIpOworICAgICAg
ICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2Fp
dEV2ZW50KFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFuZ2VkKSwKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50
YXJnZXQgPSBudWxsYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IFtuZXdU
YXJnZXRdID0gYXdhaXQgcHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVz
dEVmZmVjdFRhcmdldChjYWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3ROdWxsKG5ld1RhcmdldCwgIkFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYSB0YXJnZXQu
Iik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFyZ2V0
LCBvbGRUYXJnZXQsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxwPlRl
c3RzIGZvciB0aGUgQW5pbWF0aW9uLnRhcmdldENoYW5nZWQgZXZlbnQuPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0
LWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1h
dHRyaWJ1dGVzLmh0bWwKaW5kZXggZDRlMTExZmQ5ZDg1MzcxNWU0NDYzMzM2YjRiZDA3ODI3OGNh
ZjYxZS4uMmQ2Mjc0YjdmNTU0N2RlYjgyODMzYjlmYWE1YzIzYmYwMGNmYjA3OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NvbnRleHQtYXR0cmlidXRlcy5odG1s
CkBAIC0yMCw5ICsyMCw5IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuYW1lLAog
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGNyZWF0ZWQgY2FudmFzZXMgaGF2
ZSB0aGUgY29ycmVjdCB0eXBlIGFuZCBhdHRyaWJ1dGVzIHNlbnQgdG8gdGhlIGZyb250ZW5kLiIs
CiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgIFdJ
LmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0Fk
ZGVkKQorICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5h
d2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkKQogICAgICAgICAgICAgICAg
IC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZl
bnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5k
YXRhLml0ZW07CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJBZGRlZCBj
YW52YXMuIik7CiAKICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9
IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdw
dS5odG1sCmluZGV4IGJjMTgxZjYyZjJkNGY0M2ViNGExYWJmMWQ5ZjgzNmZjZTNkMmJiNWYuLmIx
NDBmMTE4ZDA4ODZjYjc1ODAyZmExNTQwY2E1Zjg1NzZhYzZhMDEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRtbApA
QCAtMzQsMTQgKzM0LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiRW5zdXJlIHRoYXQgYXR0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBhcmVuJ3QgdHJhY2tlZCBh
cyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIsCiAgICAgICAgIGFzeW5j
IHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAg
bGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkNhbnZh
c01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0VHlwZSA9PT0gV0kuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVhdGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBjcmVhdGVBdHRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0gICAgICAgICAgICBXSS5j
YW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5D
YW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVt
QWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxz
ZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJlIGNyZWF0ZWQgZm9yIGF0
dGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIp
OwogICAgICAgICB9LApAQCAtNTIsMTQgKzUyLDE0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgZGV0YWNoZWQgR1BVQ2FudmFzQ29udGV4dCBh
cmVuJ3QgdHJhY2tlZCBhcyBhIGNhbnZhcywgaW5zdGVhZCBvZiB0aGUgV2ViR1BVRGV2aWNlLiIs
CiAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgY3JlYXRlZCA9IGZhbHNl
OwotICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVudCkgPT4gewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldC5jb250ZXh0
VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CisgICAgICAgICAgICBsZXQg
bGlzdGVuZXIgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYWRkRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5pdGVtLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVKTsKICAgICAgICAgICAgICAgICBjcmVh
dGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVEZXRhY2hlZENhbnZhcygiZ3B1IilgKQogCi0g
ICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIGxpc3RlbmVyKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RGYWxzZShjcmVhdGVkLCAiSW5zcGVjdG9yIGNhbnZhcyBzaG91bGQgbm90IGJl
IGNyZWF0ZWQgZm9yIGRldGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgd2l0aG91dCBjb25uZWN0ZWQg
V2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApAQCAtNzAsMTQgKzcwLDE0IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRW5zdXJlIHRoYXQgQ1NTIEdQVUNhbnZh
c0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQ
VURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZl
bnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJn
ZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAg
ICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4g
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAg
ICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdh
aXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQ1NTQ2FudmFzKCJncHUiLCAi
Y3NzLWNhbnZhcyIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsK
KyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVu
dExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBj
YW52YXMgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGZvciBDU1MgR1BVQ2FudmFzQ29udGV4dCB3aXRo
b3V0IGNvbm5lY3RlZCBXZWJHUFVEZXZpY2UuIik7CiAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5odG1sCmluZGV4IGU4ZmNiZmUwMDczYzE5YjM4
NWM0NmI5N2Q0MTVmZjg5N2JhZjFlMjEuLjkzN2MxZjM0YmJhOTZiNTcwMTFhMzMxOWU4YTU3ODJj
MTg0MzJjYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5z
aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvZXh0ZW5zaW9ucy5o
dG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJD
YW52YXMuZXh0ZW5zaW9ucy5lbmFibGUiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
YXQgZW5hYmxpbmcgYW4gZXh0ZW5zaW9uIG5vdGlmaWVzIHRoZSBmcm9udGVuZC4iLAogICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRU
eXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOworICAgICAgICAgICAgbGV0IGNh
bnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZp
bHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0
VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAg
ICAgICAgICAgIHJlamVjdCgiTWlzc2luZyBXZWJHTCBjYW52YXMuIik7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9tZW1v
cnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKaW5kZXgg
MmE0OWUwM2ExODg4ZWU4NTVlYmJiM2FmMTg4NDNiY2UzZTJiZGIxYy4uNGJmZDdhNmNlYWI1M2Zj
NWQ5YjhlNzEzYjg1M2QyNzVlMDE3M2U3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9tZW1vcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L21lbW9yeS5odG1sCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICAvLyBwZXJmb3JtZWQgb24gdGhhdCBjYW52YXMgdGhhdCByZXF1aXJlcyB0aGUgaW1hZ2Ug
YnVmZmVyLiAgQSBibGFuayBjYW52YXMgdGhhdCB3YXMKICAgICAgICAgICAgIC8vIGp1c3QgY3Jl
YXRlZCB3aWxsIG5vdCBoYXZlIGEgYnVmZmVyLCBzbyBpdHMgbWVtb3J5IGNvc3Qgd2lsbCBiZSAw
L05hTi4KIAotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52
YXNlcy5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXku
ZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9
PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7
CiAgICAgICAgICAgICBpZiAoIWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJl
amVjdCgiTWlzc2luZyAyRCBjYW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAt
NDUsNyArNDUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLm1l
bW9yeS5jYW52YXNNZW1vcnlDaGFuZ2VkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IG1lbW9yeSBjb3N0IGlzIHVwZGF0ZWQgd2hlbiB0aGUgYmFja2VuZCB2YWx1ZSBjaGFuZ2Vz
LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2Fu
dmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRlcigoY2FudmFzKSA9PiBjYW52
YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAg
ICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
Q29sbGVjdGlvbikuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0ku
Q2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzZXMu
bGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KCJNaXNzaW5nIDJEIGNhbnZhcy4iKTsK
ICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3JlY29yZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9y
ZWNvcmRpbmcuaHRtbAppbmRleCA0ZDNjZmU5YjhlNmU5NzQwZDRlY2E2Nzc5NGE0NWE0ZjllZWM2
OGQxLi5iZTA4YTIwNDEzMDJjMzc3NjE0Y2MzM2UxMzk0YTA5MDE3NTJlMmI4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5BY3Rpb25QYXJhbWV0ZXJO
YU4iLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgTmFOIGlzIGNvbnZlcnRlZCBp
bnRvIHRoZSBwcm9wZXIgdmFsdWUgZm9yIHNlcmlhbGl6YXRpb24uIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgY2FudmFz
IGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGNhbnZhcy5hd2FpdEV2ZW50KFdJLkNhbnZhcy5F
dmVudC5SZWNvcmRpbmdTdG9wcGVkKQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICBuYW1lOiAiQ2FudmFzLk11bHRpcGxlUmVjb3JkaW5nIiwKICAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IG11bHRpcGxlIHJlY29yZGluZ3MgYXJlIGFibGUgdG8gYmUg
c3RhcnRlZC9zdG9wcGVkIGF0IHRoZSBzYW1lIHRpbWUuIiwKICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXM7CisgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChjYW52YXNlcy5sZW5ndGggPT09IDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIGNhbnZhcyBj
b250ZXh0cy4iKTsKIAogICAgICAgICAgICAgY2FudmFzZXNbMV0uYXdhaXRFdmVudChXSS5DYW52
YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTExMiw3ICsxMTIsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFzLk5vQWN0aW9ucyIsCiAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQ2hlY2sgdGhhdCBhIGNhbnZhcyBpcyBzdGlsbCBhYmxlIHRvIGJlIHJlY29yZGVk
IGFmdGVyIHN0b3BwaW5nIGEgcmVjb3JkaW5nIHdpdGggbm8gYWN0aW9ucy4iLAogICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJv
bShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBdOwogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBj
YW52YXMgY29udGV4dC4iKTsKIAogICAgICAgICAgICAgbGV0IGV2ZW50Q291bnQgPSAwOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0
bWwKaW5kZXggMjNjZDA0ODY4NTBkMGFlMWI3Njc5ODc1YjBhZjI3YTA1MWMwZjRjZC4uZjc0ZDE1
ZTEwNmVhM2IwNWNhOTFiODAxZjgxYzhhMDJmMTE1MDRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGllbnROb2Rlcy5odG1sCkBAIC0xNiw3ICsx
Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVxdWVzdENs
aWVudE5vZGVzLkluaXRpYWwiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgY3Jl
YXRpbmcgYSBDU1MgY2FudmFzIGNsaWVudCBub2RlIGlzIHRyYWNrZWQgY29ycmVjdGx5LiIsCiAg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0g
V0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBB
cnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVh
c3Qgb25lIGNhbnZhcy4iKTsKIAogICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RDbGllbnROb2Rl
cygoY2xpZW50Tm9kZXMpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvcmVxdWVzdENvbnRlbnQtMmQuaHRtbAppbmRleCA1MzUwOTU3NjJiMzkwZjJjZTNmYjVhOTY5
NmFkZTYxMTM0MzNjMmZkLi5lOWNiYTFkMDEwN2MzYTY3Y2VmMTcyZThhYjVhOWE0YTRhYTljYTBi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50
LTJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVu
dC0yZC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5h
bWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnQyRC52YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVz
Y3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9yIHRoZSBjYW52YXMgb24g
dGhlIHBhZ2Ugd2l0aCB0aGUgZ2l2ZW4gdHlwZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFz
LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOwogICAgICAg
ICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2Fu
dmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIu
aHRtbAppbmRleCBjZDUwODNjMjUyNTI3NGQ3OWZiOGY0YmQ3OWI5NzkzOGZlMzBjNjMwLi5mNTI2
NmVmZGVmZDdlYzc0NzRlOTZlYmFhZmQwYmI1NzNiMjVmMmI4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXBy
ZW5kZXJlci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
IG5hbWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRCaXRtYXBSZW5kZXJlci52YWxpZENhbnZhc0lk
IiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgZm9y
IHRoZSBCaXRtYXBSZW5kZXJlciBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5D
YW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJp
dG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdl
YmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdl
YmdsLmh0bWwKaW5kZXggYWViODFlZjI3ZDNjOTgwNTg0OTc5OTZhMTc5YmQ2NGE1YmZlOWJlZi4u
NzBjMjFmZTQzMzk2OTE1OTYwOTEyMjg0NTY2YWYyZjczZDU4Yjk2NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wuaHRtbApA
QCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFz
LnJlcXVlc3RDb250ZW50V2ViR0wudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wgY2FudmFzIG9uIHRo
ZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBs
ZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAg
ICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29u
dGVudC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENv
bnRlbnQtd2ViZ2wyLmh0bWwKaW5kZXggNmIwM2Q1ZWM3ZTU5ZDAyNjY4N2M2YjdmMGRiMjgwNmUx
NjNhZWNjZi4uZjdiNTVmNGEzZGZjMDg0M2FlZjc4ODBiOWY3OTc0MGNlMTVhMDg2MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdl
YmdsMi5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5h
bWU6ICJDYW52YXMucmVxdWVzdENvbnRlbnRXZWJHTDIudmFsaWRDYW52YXNJZCIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUgV2ViR0wy
IGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgo
Y2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFu
YWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CiAgICAgICAgICAgICBpZiAoIWNh
bnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXF1ZXN0Tm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Tm9kZS5odG1sCmluZGV4IGU1YzYxNDdlMzQ3YmMzNjllMmMwNWNjODQxNjZkODA2YTcxYzA2
MTYuLmRjYzRiY2NlZTc1ZjRhNjkzODQ1YmJkZWU3MTIzYWZmZTJhNzkwNTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwKQEAgLTE4LDcgKzE4LDcg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5yZXF1ZXN0Tm9kZS52
YWxpZENhbnZhc0lkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIG5vZGUgaWQgZm9y
IGVhY2ggY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0
KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2Vz
OworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAgICAgICAgbGV0IGV4cGVjdGVkTGVuZ3RoID0gY2Fu
dmFzZXMubGVuZ3RoOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXhwZWN0ZWRM
ZW5ndGggPT09IDMsICJUaGUgcGFnZSBoYXMgMyBjYW52YXNlcy4iKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCmluZGV4IGM0
MWNjNmJjNzRhMzI0MTkyMGIzZDZiNWMzZDliM2M2YmZkYTk1ZDEuLmZlMTQxMTc5YjdjYWRhM2Ji
NTg1YTg4ODg0ZGU2YmI2MzRlNzQzOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHQyRC52YWxpZElk
ZW50aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBv
YmplY3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJl
c29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJy
YXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykg
PT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQp
OwogICAgICAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1p
c3NpbmcgQ2FudmFzLmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtYml0bWFw
cmVuZGVyZXIuaHRtbAppbmRleCA4NjI1MjkyNjVjNGRkNmIyOWIyOTY3ODg0NDFjZWY5ZTY3N2I5
YjEwLi4yOTdkNDQxZTE0ZmE0YjFiZDM5NmRjMDU0Zjg1YjhkOTNmOWFlNWMwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1hcHJlbmRl
cmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4
dC1iaXRtYXByZW5kZXJlci5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0Qml0bWFwUmVuZGVyZXIudmFsaWRJ
ZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQg
b2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5D
YW52YXMuQ29udGV4dFR5cGUuQml0bWFwUmVuZGVyZXIpOworICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJp
dG1hcFJlbmRlcmVyKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAg
ICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdsLmh0bWwKaW5kZXggOTVhZGYxMmMwOTNhZGYzMGM0N2QyOTI5OTIzNDNkY2YwMWNjZTg3ZS4u
MmE3MGZhNGEwZmIxN2ZmYTE5NDQ0NzUxOWNiMzllNTgwYjkzNWU1OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wuaHRtbApA
QCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5y
ZXNvbHZlQ29udGV4dFdlYkdMLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVu
dGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBs
ZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNh
bnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHTCk7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAgICAg
ICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29u
dGV4dC13ZWJnbDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNv
bnRleHQtd2ViZ2wyLmh0bWwKaW5kZXggMTE1MWY5MTdhN2EyM2U2ZmUzMzJiNDNhOWEzNDA2YTlj
ZmU5MGE1NC4uZDhlMDgzMWU2YmMzYTI5NjVlOGQ0MmNmZDU4N2UyZGZhMTRkMmM3OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJnbDIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdsMi5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1l
OiBgQ2FudmFzLnJlc29sdmVDb250ZXh0V2ViR0wyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVu
IGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0g
ICAgICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChj
YW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldl
YkdMMik7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wyKTsKICAgICAgICAgICAgIGlmICghY2Fu
dmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nh
bnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAppbmRleCBkYzAwZWYxMjM3YTY3Yjg5MDVm
MzgwZGNlY2Y2YTc5Y2ViNjMyNjc2Li5lOTI1YjI3MTY0OGY0NDRjMjNjOWQyYTg1Y2I4NTIwNjI0
Y2I2MjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVD
b250ZXh0LXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVz
b2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKQEAgLTIyLDE0ICsyMiwxNCBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdQVS52YWxpZElkZW50
aWZpZXJgLAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmpl
Y3QgZm9yIHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICBhc3luYyB0ZXN0
KCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXMubGVuZ3RoLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVj
dGlvbi5zaXplLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGNhbnZhc2VzLiIpOwogCi0gICAgICAgICAg
ICBsZXQgW2NhbnZhc0FkZGVkRXZlbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAg
ICAgICAgIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50
LkNhbnZhc0FkZGVkKSwKKyAgICAgICAgICAgIGxldCBbY2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRl
ZEV2ZW50XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0
ZW1BZGRlZCksCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShg
Y3JlYXRlRGV2aWNlKClgKSwKICAgICAgICAgICAgIF0pOwogCi0gICAgICAgICAgICBsZXQge2Nh
bnZhc30gPSBjYW52YXNBZGRlZEV2ZW50LmRhdGE7CisgICAgICAgICAgICBsZXQgY2FudmFzID0g
Y2FudmFzQ29sbGVjdGlvbkl0ZW1BZGRlZEV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcy5jb250ZXh0VHlwZSwgV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdQVSwgIkFkZGVkIGNhbnZhcyBzaG91bGQgYmUgYSBXZWJHUFUgZGV2aWNlLiIpOwog
CiAgICAgICAgICAgICBjb25zdCBvYmplY3RHcm91cCA9ICJ0ZXN0IjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxp
dGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1j
b250ZXh0LXV0aWxpdGllcy5qcwppbmRleCAzYTQ2MDQ1NTI1MTAxODJiYmUyZWYzNTU3MjNhNDFl
MDQyODlkNjJmLi4xNTkxNTgwMjU5MDIzYjllMjM4ZTcxYmI1Yzg1NWFhN2M4NjQ4MWM1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29u
dGV4dC11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
dXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCkBAIC0zNSw3ICszNSw3IEBAIGZ1bmN0
aW9uIGRlc3Ryb3lDYW52YXNlcygpIHsKICAgICB3aW5kb3cuY29udGV4dHMgPSBbXTsKIAogICAg
IC8vIEZvcmNlIEdDIHRvIG1ha2Ugc3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVk
LCBvdGhlcndpc2UgdGhlIGZyb250ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJl
Y2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4g
eyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOyB9LCAwKTsKIH0KIApAQCAtNDMsOSArNDMsOSBAQCBU
ZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxs
OwogCiAgICAgZnVuY3Rpb24gYXdhaXRDYW52YXNBZGRlZChjb250ZXh0VHlwZSkgewotICAgICAg
ICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNhbnZhc01hbmFnZXIuRXZl
bnQuQ2FudmFzQWRkZWQpCisgICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCkKICAgICAg
ICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0
YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVtOwogICAg
ICAgICAgICAgbGV0IGNvbnRleHREaXNwbGF5TmFtZSA9IFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZv
ckNvbnRleHRUeXBlKGNvbnRleHRUeXBlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoY2FudmFzLmNvbnRleHRUeXBlLCBjb250ZXh0VHlwZSwgYENhbnZhcyBjb250ZXh0
IHNob3VsZCBiZSAke2NvbnRleHREaXNwbGF5TmFtZX0uYCk7CiAKQEAgLTczLDkgKzczLDkgQEAg
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rp
b24gYXdhaXRDYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZpZXIpIHsKLSAgICAgICAgcmV0dXJu
IFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c1JlbW92ZWQpCisgICAgICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rp
b24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQogICAgICAgICAu
dGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLmNh
bnZhczsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5pZGVudGlmaWVyLCBjYW52YXNJ
ZGVudGlmaWVyLCAiUmVtb3ZlZCBjYW52YXMgaGFzIGV4cGVjdGVkIElELiIpOwogICAgICAgICB9
KTsKICAgICB9CkBAIC04OSw3ICs4OSw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIo
KCkgPT4gewogICAgICAgICAgICAgbmFtZTogYCR7c3VpdGUubmFtZX0uTm9DYW52YXNlc2AsCiAg
ICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIENhbnZhc01hbmFnZXIgaGFz
IG5vIGNhbnZhc2VzIGluaXRpYWxseS4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmNhbnZh
c01hbmFnZXIuY2FudmFzZXMubGVuZ3RoLCAwLCAiQ2FudmFzTWFuYWdlciBzaG91bGQgaGF2ZSBu
byBjYW52YXNlcy4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaXplLCAwLCAiQ2FudmFzTWFuYWdl
ciBzaG91bGQgaGF2ZSBubyBjYW52YXNlcy4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMKaW5k
ZXggNjAxNDZmZjM4NDg3ZmQxOTNlMjNkMzM3NDdkZjMxMDQ2Y2M2ODFmMy4uNzdhMGVhMzQzYjY1
ZjQyNGJhYzZkZTM3NWUzM2JmMmNhYmRjY2JkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0aWxpdGllcy5qcworKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0aWVzLmpz
CkBAIC04Niw3ICs4Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewog
ICAgIH0KIAogICAgIHdpbmRvdy5nZXRDYW52YXMgPSBmdW5jdGlvbih0eXBlKSB7Ci0gICAgICAg
IGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlwZSk7CisgICAgICAgIGxldCBjYW52YXNlcyA9
IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIoKGNh
bnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSB0eXBlKTsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAxLCBgVGhlcmUgc2hvdWxkIG9ubHkgYmUg
b25lIGNhbnZhcyB3aXRoIHR5cGUgIiR7dHlwZX0iLmApOwogICAgICAgICBpZiAoY2FudmFzZXMu
bGVuZ3RoICE9PSAxKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGll
cy13ZWJnbC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3NoYWRl
clByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCmluZGV4IDUyNzVjNDQxYWFmYzczYjkxMDc5NDVi
M2NkNzNmOWNhNjdlMWU2NWUuLmY0M2U2ZjI3N2NkYzdkMDU4ZDA5OTQxYTc2Njc3NjM0ZTA1ZTZj
YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3No
YWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdsLmpzCkBAIC0z
OSw3ICszOSw3IEBAIGZ1bmN0aW9uIGRlbGV0ZVByb2dyYW0oKSB7CiBmdW5jdGlvbiBkZWxldGVD
b250ZXh0KCkgewogICAgIGNvbnRleHQgPSBudWxsOwogICAgIC8vIEZvcmNlIEdDIHRvIG1ha2Ug
c3VyZSB0aGUgY2FudmFzIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250
ZW5kCi0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c1JlbW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1Jl
bW92ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVj
dCgpOyB9LCAwKTsKIH0KIApAQCAtNDcsOCArNDcsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRp
YWxpemVyKCgpID0+IHsKICAgICBsZXQgc3VpdGUgPSBudWxsOwogCiAgICAgZnVuY3Rpb24gd2hl
blByb2dyYW1BZGRlZChjYWxsYmFjaykgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5
IGJlIG9uZSBjYW52YXMuIik7Ci0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF0u
c2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMg
PSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3Vs
ZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dy
YW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQu
ZGF0YS5pdGVtOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0g
aW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtLCAiQWRkZWQgU2hhZGVyUHJvZ3JhbS4iKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9ncmFtLmNhbnZhcyBpbnN0YW5j
ZW9mIFdJLkNhbnZhcywgIlNoYWRlclByb2dyYW0gc2hvdWxkIGhhdmUgYSBwYXJlbnQgQ2FudmFz
LiIpOwpAQCAtNTcsOCArNTgsOSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+
IHsKICAgICB9CiAKICAgICBmdW5jdGlvbiB3aGVuUHJvZ3JhbVJlbW92ZWQoY2FsbGJhY2spIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5s
ZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNp
bmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChl
dmVudCkgPT4geworICAgICAgICBsZXQgY2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNh
bnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7
CisgICAgICAgIGNhbnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4g
ewogICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBldmVudC5kYXRhLml0ZW07CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbSBpbnN0YW5jZW9mIFdJLlNoYWRlclBy
b2dyYW0sICJSZW1vdmVkIFNoYWRlclByb2dyYW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFk
ZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFyZW50IENhbnZhcy4iKTsKQEAgLTc0LDcgKzc2LDcg
QEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgU2hhZGVyUHJvZ3JhbUFkZGVkIGlzIHNlbnQgZm9yIGEgcHJv
Z3JhbSBjcmVhdGVkIGJlZm9yZSBDYW52YXNBZ2VudCBpcyBlbmFibGVkLiIsCiAgICAgICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FuJ3Qg
dXNlIGBhd2FpdEV2ZW50YCBzaW5jZSB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGhhcHBlbnMgb24g
dGhlIG5leHQgdGljay4KLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwg
KGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHdoZW5Qcm9ncmFtQWRkZWQoKHByb2dy
YW0pID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAg
ICAgICAgICAgfSk7CkBAIC0xMTMsNyArMTE1LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFs
aXplcigoKSA9PiB7CiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAg
ICAgICAgICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIu
RXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNv
bGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAg
ICAgICBjYW52YXNSZW1vdmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ3B1LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNv
dXJjZXMvc2hhZGVyUHJvZ3JhbS11dGlsaXRpZXMtd2ViZ3B1LmpzCmluZGV4IGZlNDhkOGZkODUx
MTQ2NTg5OGZkM2IwNDUwZGU4OTUxMzc0NDliZTQuLmI4ZGUzNGNmYTg3ODY4NWY5NjVhOWY5MGJi
NGJmOGFhYjM1NzM2MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJncHUuanMKQEAgLTY0LDcgKzY0LDcgQEAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGlw
ZWxpbmUoY29kZSA9IHJlbmRlclBpcGVsaW5lU291cmNlKSB7CiBmdW5jdGlvbiBkZWxldGVEZXZp
Y2UoKSB7CiAgICAgZGV2aWNlID0gbnVsbDsKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUg
dGhlIGRldmljZSBpcyBkZXN0cm95ZWQsIG90aGVyd2lzZSB0aGUgZnJvbnRlbmQKLSAgICAvLyBk
b2VzIG5vdCByZWNlaXZlIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzUmVtb3ZlZCBldmVu
dHMuCisgICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBDYW52YXMuY2FudmFzUmVtb3ZlZCBldmVudHMu
CiAgICAgc2V0VGltZW91dCgoKSA9PiB7IEdDQ29udHJvbGxlci5jb2xsZWN0KCk7IH0sIDApOwog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGlu
Z0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbAppbmRleCBkOThmMGZlYTRl
OTJjMTUyOTc4MTEyYzJkMDcwY2Q3NGU5NTlkNGUyLi41NWU1NTI0NzMwODNhYTJkMWJhZWIwZTg4
N2VlMDVmYzI4ZjBhMGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwK
QEAgLTc3LDggKzc3LDggQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlUmVjb3JkaW5nU3RvcHBlZChjYW52YXMsIGV2ZW50LmRhdGEucmVjb3JkaW5nKTsKICAg
ICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLnNpbmds
ZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIChl
dmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZh
czsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2lu
Z2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgICAgICBjYW52YXMgPSBldmVudC5kYXRhLml0ZW07CiAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFjYW52YXMucmVjb3JkaW5n
QWN0aXZlKQogCiAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdJ
LkNhbnZhcy5FdmVudC5SZWNvcmRpbmdTdGFydGVkLCBoYW5kbGVSZWNvcmRpbmdTdGFydGVkV3Jh
cHBlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclBy
b2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCmluZGV4IGQ0MGZhYjc4Mzgx
MzBjYzk0YjAzYmY5MWQ5NmYyMjcwOTA0ZWIwMTMuLmQ1ZmI4NzcyYzBiMzc1YzQwZDVkN2EwZTQy
MDJhNTRmZjVkNTJkMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
c2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmdwdS5odG1sCkBAIC0x
NCw5ICsxNCwxMSBAQCB3aW5kb3cuYmVmb3JlVGVzdCA9IGFzeW5jIGZ1bmN0aW9uKCkgewogZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoYENhbnZhcy5TaGFkZXJQcm9ncmFtLldlYkdQVWApOwogCi0gICAgbGV0IGNhbnZhcyA9
IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgbGV0IGNhbnZhc2VzID0gQXJyYXku
ZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9u
ZSBjYW52YXMuIik7CisKKyAgICBsZXQgY2FudmFzID0gY2FudmFzZXNbMF07CiAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxkIGJlIGEgY2FudmFzLiIpOwotICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoID09
PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4iKTsKICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5X
ZWJHUFUsICJDYW52YXMgc2hvdWxkIGJlIFdlYkdQVS4iKTsKIAogICAgIGFzeW5jIGZ1bmN0aW9u
IGF3YWl0UHJvZ3JhbUFkZGVkKHByb2dyYW1UeXBlKSB7CkBAIC0xMTgsNyArMTIwLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAg
ICAgIGxldCBjYW52YXNSZW1vdmVkID0gZmFsc2U7CiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52
YXNSZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50
Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBjYW52YXNSZW1vdmVk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFy
ZWRWZXJ0ZXhGcmFnbWVudC5odG1sCmluZGV4IDM0ZDAyYWIxN2U5MDVhNGI3OGEwMjY1NTA0OWFl
MjhkYjMzMTA4NzEuLjhjZjlhNDc1NjIyNDIxYzgzNjg5YzlhZDM3ZDIxOTBhMDFjZTllMzkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVyLXdlYmdw
dS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvdXBkYXRlU2hhZGVyLXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sCkBAIC01
NywxMCArNTcsMTAgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNyZWF0aW5nIHJlbmRlciBwaXBlbGluZS4uLiIpOwogICAgICAgICBsZXQgZXZhbHV0ZVBy
b21pc2UgPSBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjcmVhdGVSZW5kZXJQaXBlbGlu
ZSgpYCk7CiAKLSAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCkK
LSAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKTsKKyAgICAgICAgaWYgKCFXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSkKKyAgICAgICAgICAgIGF3YWl0IFdJLmNhbnZhc01hbmFn
ZXIuY2FudmFzQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkKTsKIAotICAgICAgICBsZXQgY2FudmFzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1sw
XTsKKyAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uKVswXTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNv
bnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3Vs
ZCBiZSBXZWJHUFUuIik7CiAKICAgICAgICAgbGV0IGl0ZW1BZGRlZEV2ZW50ID0gYXdhaXQgY2Fu
dmFzLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVu
dC5JdGVtQWRkZWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhw
ZWN0ZWQudHh0CmluZGV4IDY2YmRiYWI5ZWVlMzE2NzkwZjhmMjY3NDZmOTNlMjFlZDRjM2RmMWUu
LmRiZjYzNTFlOWEwOTI0NjBhYmVlOWQzNGQ5MjA2YjBmNzMzNmIzYTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rp
b25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90
ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTU0LDYgKzU0LDc0
IEBAIEZBSUw6IGV4cGVjdEZhbHNlKFtdKQogICAgIEV4cGVjdGVkOiBmYWxzZXkKICAgICBBY3R1
YWw6IFtdCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JUZXN0LmV4cGVjdEVtcHR5
CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3RFbXB0eShudWxsKQorUEFTUzogZXhwZWN0
RW1wdHkoIiIpCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK1BBU1M6IGV4cGVjdEVtcHR5KFtdKQor
UEFTUzogZXhwZWN0RW1wdHkoe30pCitQQVNTOiBleHBlY3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRv
IEZBSUwKK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAg
ICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhwZWN0RW1wdHkoeyJ0ZXN0IjoxfSkKKyAgICBFeHBl
Y3RlZDogZW1wdHkKKyAgICBBY3R1YWw6IHsidGVzdCI6MX0KK0ZBSUw6IGV4cGVjdEVtcHR5KCJ0
ZXN0IikKKyAgICBFeHBlY3RlZDogZW1wdHkKKyAgICBBY3R1YWw6ICJ0ZXN0IgorRkFJTDogZXhw
ZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDog
ZXhwZWN0RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJ
TDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6Cisg
ICAgQWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3
aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBleHBlY3RFbXB0eSBz
aG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IDEKK0ZB
SUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0Ogor
ICAgIEFjdHVhbDogdW5kZWZpbmVkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNwZWN0b3JU
ZXN0LmV4cGVjdE5vdEVtcHR5CitFeHBlY3RlZCB0byBQQVNTCitQQVNTOiBleHBlY3ROb3RFbXB0
eSgidGVzdCIpCitQQVNTOiBleHBlY3ROb3RFbXB0eSh7InRlc3QiOjF9KQorUEFTUzogZXhwZWN0
Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoe30pCitQQVNTOiBleHBlY3RO
b3RFbXB0eSh7fSkKK0V4cGVjdGVkIHRvIEZBSUwKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KG51bGwp
CisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogbnVsbAorRkFJTDogZXhwZWN0
Tm90RW1wdHkoIiIpCisgICAgRXhwZWN0ZWQ6IG5vdCBlbXB0eQorICAgIEFjdHVhbDogIiIKK0ZB
SUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1
YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0eShbXSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5
CisgICAgQWN0dWFsOiBbXQorRkFJTDogZXhwZWN0Tm90RW1wdHkoe30pCisgICAgRXhwZWN0ZWQ6
IG5vdCBlbXB0eQorICAgIEFjdHVhbDoge30KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAg
IEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0
eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IHRy
dWUKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24t
b2JqZWN0OgorICAgIEFjdHVhbDogZmFsc2UKK0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBu
b3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2JqZWN0OgorICAgIEFjdHVhbDogMQorRkFJTDogZXhw
ZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAg
QWN0dWFsOiB1bmRlZmluZWQKKwogLS0gUnVubmluZyB0ZXN0IGNhc2U6IEluc3BlY3RvclRlc3Qu
ZXhwZWN0TnVsbAogRXhwZWN0ZWQgdG8gUEFTUwogUEFTUzogZXhwZWN0TnVsbChudWxsKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4
cGVjdC1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rl
c3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKaW5kZXggOTFlODU4MGM3Y2I2MjczNDU4
MjU0MDI0OTcyMDA5ZTk5Y2RhODM0ZC4uZTM4NjRhMDNjNGUwOTQxY2E4YzAyZjJmMGE3ODYyNjM5
ODhiMDEyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVz
dC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCkBAIC00OCw2
ICs0OCwyMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRUZXN0Q2FzZShleHBlY3RUaGF0VGVz
dENhc2UpOwogICAgIGFkZEludmVyc2VUZXN0Q2FzZSgiZXhwZWN0RmFsc2UiLCBleHBlY3RUaGF0
VGVzdENhc2UpOwogCisgICAgbGV0IGV4cGVjdEVtcHR5VGVzdENhc2UgPSB7CisgICAgICAgIGZ1
bmN0aW9uTmFtZTogImV4cGVjdEVtcHR5IiwKKyAgICAgICAgcGFzc2luZ0lucHV0czogW251bGws
ICIiLCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXRdLAorICAgICAgICBmYWlsaW5nSW5wdXRzOiBb
InRlc3QiLCB7dGVzdDogMX0sIFsidGVzdCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcg
U2V0KFsidGVzdCJdKSwgdHJ1ZSwgZmFsc2UsIDEsIHVuZGVmaW5lZF0sCisgICAgfTsKKyAgICBh
ZGRUZXN0Q2FzZShleHBlY3RFbXB0eVRlc3RDYXNlKTsKKworICAgIGxldCBleHBlY3ROb3RFbXB0
eVRlc3RDYXNlID0geworICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3ROb3RFbXB0eSIsCisg
ICAgICAgIHBhc3NpbmdJbnB1dHM6IFsidGVzdCIsIHt0ZXN0OiAxfSwgWyJ0ZXN0Il0sIG5ldyBN
YXAoW1sidGVzdCIsIDFdXSksIG5ldyBTZXQoWyJ0ZXN0Il0pXSwKKyAgICAgICAgZmFpbGluZ0lu
cHV0czogW251bGwsICIiLCB7fSwgW10sIG5ldyBNYXAsIG5ldyBTZXQsIHRydWUsIGZhbHNlLCAx
LCB1bmRlZmluZWRdLAorICAgIH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0Tm90RW1wdHlUZXN0
Q2FzZSk7CisKICAgICBsZXQgZXhwZWN0TnVsbFRlc3RDYXNlID0gewogICAgICAgICBmdW5jdGlv
bk5hbWU6ICJleHBlY3ROdWxsIiwKICAgICAgICAgcGFzc2luZ0lucHV0czogW251bGxdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389188</attachid>
            <date>2020-01-29 14:34:34 -0800</date>
            <delta_ts>2020-01-29 15:46:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205434-20200129143433.patch</filename>
            <type>text/plain</type>
            <size>325020</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk5OWU2Njg3NjQxZGM1MzBiMjgyODM4YjM2ZDE3
YTA0NTdiNjMyNjMuLmEyNDg0ZDhhZjM0NTk5NjExNzMwZGNhMjJkODUwN2MwNjk5ZjE0MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAxLTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
aWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb246
CisgICAgICAgIEFkZCB0eXBlcy9jb21tYW5kcy9ldmVudHMgZm9yIGluc3RydW1lbnRpbmcgdGhl
IGxpZmVjeWNsZSBvZiBgQW5pbWF0aW9uYCBvYmplY3RzLCBhcyB3ZWxsIGFzCisgICAgICAgIGNv
bW1hbmRzIGZvciBnZXR0aW5nIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0IGFuZCB0aGUg
dGFyZ2V0IERPTSBub2RlLgorCiAyMDIwLTAxLTI5ICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9t
aWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc21hbGwgbWVtb3J5IHJlZ3Jlc3Npb24g
Y2F1c2VkIGJ5IHIyMDYzNjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMDNiODc0OWZmOTc2OTk2ZjNjZGMxMTdl
MjUyNTExMDAyM2VhYTI1Li5lOTkyYmZiZjNjYjlmMTM2MTJlNGU5OTY5ZDMwYjMyYzU2YjdkNjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAzIEBACisyMDIwLTAxLTI4ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1
bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBBbmltYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0MzQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcu
CisKKyAgICAgICAgQWRkIHR5cGVzL2NvbW1hbmRzL2V2ZW50cyBmb3IgaW5zdHJ1bWVudGluZyB0
aGUgbGlmZWN5Y2xlIG9mIGBBbmltYXRpb25gIG9iamVjdHMsIGFzIHdlbGwgYXMKKyAgICAgICAg
Y29tbWFuZHMgZm9yIGdldHRpbmcgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3QgYW5kIHRo
ZSB0YXJnZXQgRE9NIG5vZGUuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9hbmltYXRpb24v
ZWZmZWN0Q2hhbmdlZC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL2xp
ZmVjeWNsZS1jc3MtYW5pbWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9hbmlt
YXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3Bl
Y3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbAorICAgICAgICAgICAg
ICAgaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0RWZmZWN0VGFyZ2V0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGluc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCisgICAgICAg
ICAgICAgICBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQuaHRtbAorCisgICAgICAg
ICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmlt
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjppbnN0YW5jZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6aW5zdGFuY2VzTXV0ZXgpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkFuaW1hdGlvbjo6fldlYkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmlt
YXRpb246OmVmZmVjdFRpbWluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmlt
YXRpb246OnNldEVmZmVjdEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlv
bjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
cmFuc2l0aW9uOjpjcmVhdGUpOgorCisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6cGFyc2VkS2V5ZnJhbWVzIGNv
bnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YmxlbmRpbmdL
ZXlmcmFtZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0
OjpoYXNCbGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIFByb3ZpZGUg
YSB3YXkgdG8gYWNjZXNzIHRoZSBsaXN0IG9mIGtleWZyYW1lcy4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
V2ViQW5pbWF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdCk6IERlbGV0ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9u
RWZmZWN0SW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmdJbXBsKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRhcmdldEltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uSW1wbCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveVdl
YkFuaW1hdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RJbXBsKTogRGVsZXRlZC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnN0cnVtZW50aW5nQWdlbnRzOjplbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnNldEVuYWJs
ZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdB
Z2VudHM6OnJlc2V0KToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1h
dGlvbkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sVmFsdWVGb3JTZWNvbmRz
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwcm90b2NvbFZhbHVlRm9yUGxheWJhY2tEaXJl
Y3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sVmFsdWVGb3JGaWxsTW9k
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JLZXlmcmFtZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yRWZmZWN0KTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjplbmFibGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpkaXNhYmxlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudDo6cmVxdWVzdEVmZmVjdFRhcmdldCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnJlc29sdmVBbmltYXRpb24p
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRT
ZXRXZWJBbmltYXRpb25FZmZlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUaW1pbmcpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VX
ZWJBbmltYXRpb25FZmZlY3RUYXJnZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFuaW1hdGlvbkFnZW50OjpkaWRDcmVhdGVXZWJBbmltYXRpb24pOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp3aWxsRGVzdHJveVdlYkFuaW1h
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZnJhbWVO
YXZpZ2F0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmZp
bmRBbmltYXRpb25JZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OmFzc2VydEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojp1bmJpbmRBbmltYXRpb24pOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFuaW1hdGlvbkFnZW50OjphbmltYXRpb25EZXN0
cm95ZWRUaW1lckZpcmVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBbmlt
YXRpb25BZ2VudDo6cmVzZXQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3QpOiBEZWxldGVkLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpyZXF1ZXN0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgQWRkIGFuIG92ZXJsb2FkIGZv
ciBgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZGAgdGhhdCBleHBvc2VzIGFuIGBFcnJvclN0cmluZ2Au
CisKIDIwMjAtMDEtMjggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbnMgc2hvdWxkIHJ1biBhY2NlbGVyYXRlZCBl
dmVuIGlmIG90aGVyIGFuaW1hdGlvbnMgdGFyZ2V0aW5nIHRoZSBzYW1lIGVsZW1lbnQgYXJlIG5v
dCBhY2NlbGVyYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggODcyYTg3MTIwYThmNzdh
MGVkMWE3Y2Q0MjY4MjhmNDM1NmRlYzNhZS4uNThlZjkyOTg1N2QzOTY3MTVjMmMwNTdkYmUyY2Qx
MjI1NDkyNTkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzI4IEBACisy
MDIwLTAxLTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdl
YiBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9u
TWFuYWdlcik6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5nZXQgZG9t
YWlucyk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5hY3RpdmF0ZUV4
dHJhRG9tYWluKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmluaXRp
YWxpemVUYXJnZXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZ2V0
IGFuaW1hdGlvbkNvbGxlY3Rpb24pOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90
b3R5cGUuZ2V0IHN1cHBvcnRlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3Rv
dHlwZS5lbmFibGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuZGlz
YWJsZSk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5hbmltYXRpb25D
cmVhdGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbk1hbmFnZXIucHJvdG90eXBlLmVmZmVjdENo
YW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUudGFyZ2V0Q2hh
bmdlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5hbmltYXRpb25E
ZXN0cm95ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uTWFuYWdlci5wcm90b3R5cGUuX2hhbmRs
ZU1haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9BbmltYXRpb25PYnNlcnZlci5qczoKKyAgICAgICAgKFdJLkFuaW1hdGlvbk9ic2VydmVyLnBy
b3RvdHlwZS5hbmltYXRpb25DcmVhdGVkKTogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25P
YnNlcnZlci5wcm90b3R5cGUuZWZmZWN0Q2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAoV0kuQW5p
bWF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLnRhcmdldENoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAg
KFdJLkFuaW1hdGlvbk9ic2VydmVyLnByb3RvdHlwZS5hbmltYXRpb25EZXN0cm95ZWQpOiBBZGRl
ZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24u
anM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbik6CisgICAgICAgIChX
SS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uVHlwZSk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uLnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUub2JqZWN0SXNSZXF1aXJl
ZFR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGUuYW5pbWF0
aW9uQ29sbGVjdGlvbkZvclR5cGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbi5w
cm90b3R5cGUuaXRlbUFkZGVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJv
dG90eXBlLml0ZW1SZW1vdmVkKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbGxlY3Rpb24ucHJv
dG90eXBlLml0ZW1zQ2xlYXJlZCk6CisgICAgICAgIFNpbWlsYXIgdG8gYFdJLlJlc291cmNlQ29s
bGVjdGlvbmAsIGNyZWF0ZSBhIHN1YmNsYXNzIG9mIGBXSS5Db2xsZWN0aW9uYCB0aGF0IG1haW50
YWlucyBpdCdzCisgICAgICAgIG93biBzdWItYFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25gcyBmb3Ig
ZWFjaCB0eXBlIG9mIGBXSS5BbmltYXRpb24uVHlwZWAuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9BbmltYXRpb24uanM6IEFkZGVkLgorICAgICAgICAoV0kuQW5pbWF0aW9uKToK
KyAgICAgICAgKFdJLkFuaW1hdGlvbi5mcm9tUGF5bG9hZCk6CisgICAgICAgIChXSS5BbmltYXRp
b24uZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5k
aXNwbGF5TmFtZUZvclBsYXliYWNrRGlyZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5k
aXNwbGF5TmFtZUZvckZpbGxNb2RlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5yZXNldFVuaXF1
ZURpc3BsYXlOYW1lTnVtYmVycyk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdl
dCBhbmltYXRpb25JZCk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBiYWNr
dHJhY2UpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5nZXQgYW5pbWF0aW9uVHlw
ZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBzdGFydERlbGF5KToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGVuZERlbGF5KToKKyAgICAgICAgKFdJ
LkFuaW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJhdGlvbkNvdW50KToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJhdGlvblN0YXJ0KToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbi5wcm90b3R5cGUuZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbi5wcm90b3R5cGUuZ2V0IHRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bi5wcm90b3R5cGUuZ2V0IHBsYXliYWNrRGlyZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlv
bi5wcm90b3R5cGUuZ2V0IGZpbGxNb2RlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5
cGUuZ2V0IGtleWZyYW1lcyk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLmdldCBk
aXNwbGF5TmFtZSk6CisgICAgICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLnJlcXVlc3RFZmZl
Y3RUYXJnZXQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uLnByb3RvdHlwZS5lZmZlY3RDaGFuZ2Vk
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbi5wcm90b3R5cGUudGFyZ2V0Q2hhbmdlZCk6CisgICAg
ICAgIChXSS5BbmltYXRpb24ucHJvdG90eXBlLl91cGRhdGVFZmZlY3QpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV0kuUmVtb3Rl
T2JqZWN0LnJlc29sdmVBbmltYXRpb24pOiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3Lmpz
LgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5HcmFw
aGljc1RhYkNvbnRlbnRWaWV3LnRhYkluZm8pOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250
ZW50Vmlldy5pc1RhYkFsbG93ZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmll
dy5wcm90b3R5cGUuZ2V0IHR5cGUpOgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmll
dy5wcm90b3R5cGUuc2hvd1JlcHJlc2VudGVkT2JqZWN0KTogQWRkZWQuCisgICAgICAgIChXSS5H
cmFwaGljc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3Qp
OgorICAgICAgICAoV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuY2xvc2VkKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToK
KyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlv
dXQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkdyYXBoaWNzVGFiQ29udGVudFZpZXcucHJvdG90eXBl
Ll9oYW5kbGVPdmVydmlld1RyZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKTogQWRkZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmNzczog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc1RhYkNvbnRlbnRWaWV3LmNzcy4KKyAgICAgICAgUmVuYW1lIHRoZSBDYW52YXMgVGFiIHRv
IEdyYXBoaWNzIFRhYiBhbmQgZGlzcGxheSBmb3VyIHNlY3Rpb25zOgorICAgICAgICAgLSBDYW52
YXNlcworICAgICAgICAgLSBXZWIgQW5pbWF0aW9ucworICAgICAgICAgLSBDU1MgQW5pbWF0aW9u
cworICAgICAgICAgLSBDU1MgVHJhbnNpdGlvbnMKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuQ2FudmFzU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5jYW5TaG93UmVwcmVzZW50ZWRPYmplY3QpOgorICAgICAgICBPbmx5IGFw
cGVhciBpZiBhIGBXSS5DYW52YXNgIG9yIGBXSS5SZWNvcmRpbmdgIGlzIHNlbGVjdGVkLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcu
anM6IEFkZGVkLgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3KToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHN1cHBs
ZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0cyk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3
Q29udGVudFZpZXcucHJvdG90eXBlLmdldCBuYXZpZ2F0aW9uSXRlbXMpOgorICAgICAgICAoV0ku
R3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAg
IChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmRldGFjaGVkKToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExh
eW91dCk6CisgICAgICAgIChXSS5HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBl
LmRyb3Bab25lU2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KToKKyAgICAgICAgKFdJLkdyYXBoaWNz
T3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuZHJvcFpvbmVIYW5kbGVEcm9wKToKKyAgICAg
ICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZVJlZnJl
c2hCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVTaG93SW1hZ2VHcmlk
U2V0dGluZ0NoYW5nZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKToKKyAg
ICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZU92
ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNoYW5nZWQpOgorICAgICAgICAoV0kuR3JhcGhpY3NPdmVy
dmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlT3ZlcnZpZXdWaWV3U3VwcGxlbWVudGFs
UmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdJLkdyYXBoaWNzT3ZlcnZp
ZXdDb250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZUNsaWNrKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3M6IEFkZGVkLgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyk6CisgICAgICAgICguY29udGVu
dC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbik6CisgICAgICAgICguY29udGVudC12
aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LWNoaWxkKSk6CisgICAg
ICAgICguY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5oZWFkZXIp
OgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb246bm90
KDpmaXJzdC1vZi10eXBlKSA+IC5oZWFkZXIpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5ncmFw
aGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyID4gaDEpOgorICAgICAgICAoLmNvbnRl
bnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyID4gLm5hdmlnYXRp
b24tYmFyKToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiAuY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyk6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29s
b3Itc2NoZW1lOiBsaWdodCkgLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyk6CisgICAg
ICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkgLmNvbnRlbnQtdmlldy5n
cmFwaGljcy1vdmVydmlldyA+IHNlY3Rpb24gPiAuaGVhZGVyKToKKyAgICAgICAgQWRkIHN0aWNr
eSBoZWFkZXJzIGZvciBlYWNoIG9mIHRoZSBzZWN0aW9ucyBkZXNjcmliZWQgYWJvdmUuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmll
dy5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcp
OgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5o
YW5kbGVSZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0
aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRWaWV3QWRkZWQpOgorICAgICAgICAoV0ku
QW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250ZW50Vmlld1JlbW92
ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5kZXRhY2hlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLl9oYW5kbGVDb250ZW50Vmlld01vdXNlRW50ZXIpOgorICAgICAgICAoV0kuQW5p
bWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGVudFZpZXdN
b3VzZUxlYXZlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxl
Y3Rpb25Db250ZW50Vmlldy5jc3M6IEFkZGVkLgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmlt
YXRpb24tY29sbGVjdGlvbik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1h
dGlvbkNvbnRlbnRWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LmdldCBwcmV2aWV3SGVpZ2h0
KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVSZWZy
ZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5w
cm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5zaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5hdHRhY2hlZCk6CisgICAgICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90
eXBlLl9yZWZyZXNoU3VidGl0bGUpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLl9yZWZyZXNoUHJldmlldy5hZGRUaXRsZSk6CisgICAgICAgIChXSS5BbmltYXRp
b25Db250ZW50Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQcmV2aWV3KToKKyAgICAgICAgKFdJLkFu
aW1hdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlRWZmZWN0Q2hhbmdlZCk6CisgICAg
ICAgIChXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZVRhcmdldENoYW5n
ZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLl9wb3B1bGF0
ZUFuaW1hdGlvblRhcmdldEJ1dHRvbkNvbnRleHRNZW51KToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzczogQWRkZWQuCisgICAgICAgICguY29u
dGVudC12aWV3LmFuaW1hdGlvbik6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbi5z
ZWxlY3RlZCk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlcik6Cisg
ICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMpOgorICAg
ICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxl
KToKKyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+
IC5zdWJ0aXRsZSk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+
IC50aXRsZXMgPiAuc3VidGl0bGU6bm90KDplbXB0eSk6OmJlZm9yZSk6CisgICAgICAgICguY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhcik6CisgICAgICAg
ICguY29udGVudC12aWV3LmFuaW1hdGlvbjpob3ZlciA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJh
cik6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3KToKKyAgICAg
ICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcpOgorICAgICAgICAo
Ym9keVtkaXI9cnRsXSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnKToK
KyAgICAgICAgKC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgcmVjdCk6
CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmRl
bGF5IGxpbmUpOgorICAgICAgICAoLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+
IHN2ZyA+IC5hY3RpdmUgcGF0aCk6CisgICAgICAgICguY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IC5wcmV2aWV3ID4gc3ZnID4gLmFjdGl2ZSBjaXJjbGUpOgorICAgICAgICAoLmNvbnRlbnQtdmll
dy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5hY3RpdmUgbGluZSk6CisgICAgICAgICgu
Y29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3Bhbik6CisgICAgICAgIChAbWVk
aWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNv
bG9yLXNjaGVtZTogZGFyaykgLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiBoZWFkZXIgPiAudGl0
bGVzID4gLnN1YnRpdGxlKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6
IGRhcmspIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcpOgorICAgICAgICBWaXN1
YWxpemUgdGhlIHN0YXJ0L2VuZCBkZWxheSBhbmQga2V5ZnJhbWVzIG9mIHRoZSBnaXZlbiBhbmlt
YXRpb24gYXMgYSBzZXJpZXMgb2YgYmV6aWVyCisgICAgICAgIGN1cnZlcyBzZXBhcmF0ZWQgYnkg
bWFya2Vycy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5qczogQWRkZWQuCisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxzU2lk
ZWJhclBhbmVsKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLmluc3BlY3QpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5l
bC5wcm90b3R5cGUuZ2V0IGFuaW1hdGlvbik6CisgICAgICAgIChXSS5BbmltYXRpb25EZXRhaWxz
U2lkZWJhclBhbmVsLnByb3RvdHlwZS5zZXQgYW5pbWF0aW9uKToKKyAgICAgICAgKFdJLkFuaW1h
dGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAg
ICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUubGF5b3V0KToKKyAg
ICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWZyZXNo
SWRlbnRpdHlTZWN0aW9uKToKKyAgICAgICAgKFdJLkFuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFu
ZWwucHJvdG90eXBlLl9yZWZyZXNoRWZmZWN0U2VjdGlvbik6CisgICAgICAgIChXSS5BbmltYXRp
b25EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaEJhY2t0cmFjZVNlY3Rpb24p
OgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hh
bmRsZUFuaW1hdGlvbkVmZmVjdENoYW5nZWQpOgorICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQpOgor
ICAgICAgICAoV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hhbmRs
ZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzOiBBZGRlZC4KKyAg
ICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAu
ZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmhlYWRlciA+IC5zdWJ0aXRsZSk6
CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50
ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24p
OgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29udGVu
dCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0aW9u
IC5yb3cuc3R5bGVzKToKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0
aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9uLmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRl
dGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyAuQ29kZU1pcnJvcik6CisgICAgICAgICguc2lkZWJh
ciA+IC5wYW5lbC5kZXRhaWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlv
bi5hbmltYXRpb24ta2V5ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24pOgorICAgICAgICBTaG93IGNv
bGxlY3RlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2VsZWN0ZWQgYW5pbWF0aW9uLCBpdHMgZWZm
ZWN0LCBhbmQgaXRzIHRhcmdldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvQ2FudmFzTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIpOgorICAgICAg
ICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuZ2V0IGNhbnZhc0NvbGxlY3Rpb24pOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmRpc2FibGUpOgorICAgICAg
ICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuY2FudmFzQWRkZWQpOgorICAgICAgICAoV0ku
Q2FudmFzTWFuYWdlci5wcm90b3R5cGUuY2FudmFzUmVtb3ZlZCk6CisgICAgICAgIChXSS5DYW52
YXNNYW5hZ2VyLnByb3RvdHlwZS5fc2F2ZVJlY29yZGluZ3MpOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9tYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorICAgICAg
ICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuZ2V0IGNhbnZhc2VzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLl9yZW1vdmVDYW52YXMpOiBEZWxldGVk
LgorICAgICAgICBSYXRoZXIgdGhhbiBoYXZlIHRoZSBgV0kuQ2FudmFzVGFiQ29udGVudFZpZXdg
IG1haW5haW4gdGhlIGBXSS5DYW52YXNDb2xsZWN0aW9uYCBhbmQgaGF2ZSB0bworICAgICAgICBs
aXN0ZW4gZm9yIGV2ZW50cyBmcm9tIHRoZSBgV0kuQ2FudmFzTWFuYWdlcmAsIGp1c3QgaGF2ZSB0
aGUgYFdJLkNhbnZhc01hbmFnZXJgIGhvbGQgb24gdG8KKyAgICAgICAgaXQgaW5zdGVhZCBhbmQg
cHJvdmlkZSBhIGdldHRlciBmb3IgaXQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5DYW52YXNPdmVydmll
d0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJv
dG90eXBlLmdldCBuYXZpZ2F0aW9uSXRlbXMpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdD
b250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAg
ICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUuY29udGVudFZpZXdBZGRl
ZCk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5jb250
ZW50Vmlld1JlbW92ZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5w
cm90b3R5cGUuYXR0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5wcm90b3R5cGUuZGV0YWNoZWQpOgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuX2FkZFNhdmVkUmVjb3JkaW5nKToKKyAgICAgICAgKFdJLkNhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLmhpZGRlbik6IERlbGV0ZWQuCisgICAgICAgIChX
SS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgX2l0ZW1NYXJnaW4pOiBE
ZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5wcm90b3R5cGUu
X3JlZnJlc2hQcmV2aWV3cyk6IERlbGV0ZWQuCisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcucHJvdG90eXBlLl9zaG93R3JpZEJ1
dHRvbkNsaWNrZWQpOiBEZWxldGVkLgorICAgICAgICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5wcm90b3R5cGUuX3VwZGF0ZVNob3dJbWFnZUdyaWQpOiBEZWxldGVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3M6CisgICAg
ICAgICguY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyk6CisgICAgICAgICguY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzKToKKyAgICAgICAgKEBt
ZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3KTogRGVsZXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
Q29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5DYW52YXNDb250ZW50Vmlldyk6CisgICAgICAg
IChXSS5DYW52YXNDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNr
ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5kcm9w
Wm9uZVNob3VsZEFwcGVhckZvckRyYWdFdmVudCk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FudmFz
Q29udGVudFZpZXcucHJvdG90eXBlLmRyb3Bab25lSGFuZGxlRHJvcCk6IEFkZGVkLgorICAgICAg
ICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAg
ICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLmF0dGFjaGVkKToKKyAgICAgICAgKFdJ
LkNhbnZhc0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcG9wdWxhdGVDYW52YXNFbGVtZW50QnV0dG9u
Q29udGV4dE1lbnUpOgorICAgICAgICAoV0kuQ2FudmFzQ29udGVudFZpZXcucHJvdG90eXBlLnNo
b3duKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgIkxvZyBDYW52YXMgQ29udGV4dCIgdG8g
YmUgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGNhbnZhcyBlbGVtZW50IGJ1dHRvbiBjb250ZXh0IG1l
bnUuCisgICAgICAgIERyaXZlLWJ5OiBhZGQgYSBgV0kuRHJvcFpvbmVWaWV3YCBmb3Igd2hlbiBy
ZWNvcmRpbmcgSlNPTiBmaWxlcyBhcmUgZHJhZ2dlZCBvbiB0b3AuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgRHJpdmUtYnk6
IGRyb3AgYDpub3QoLnRhYilgIGZyb20gYWxsIHNlbGVjdG9ycyBzaW5jZSB0aGUgQ2FudmFzIFRh
YiBkb2Vzbid0IGV4aXN0IGFueW1vcmUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbGxlY3Rpb25Db250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50
Vmlldyk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBz
ZWxlY3RlZEl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5w
cm90b3R5cGUuc2V0IHNlbGVjdGVkSXRlbSk6IEFkZGVkLgorICAgICAgICAoV0kuQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LnByb3RvdHlwZS5hZGRDb250ZW50Vmlld0Zvckl0ZW0pOgorICAgICAgICAo
V0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5yZW1vdmVDb250ZW50Vmlld0Zvckl0
ZW0pOgorICAgICAgICAoV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93Q29u
dGVudFBsYWNlaG9sZGVyKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmlldy5wcm90
b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcu
cHJvdG90eXBlLl9zZWxlY3RJdGVtKToKKyAgICAgICAgKFdJLkNvbGxlY3Rpb25Db250ZW50Vmll
dy5wcm90b3R5cGUuX2hhbmRsZUNsaWNrKTogQWRkZWQuCisgICAgICAgIChXSS5Db2xsZWN0aW9u
Q29udGVudFZpZXcucHJvdG90eXBlLnNldFNlbGVjdGVkSXRlbSk6IERlbGV0ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzOgorICAgICAg
ICAoLmNvbnRlbnQtdmlldy5jb2xsZWN0aW9uID4gLnBsYWNlaG9sZGVyOm5vdCgubWVzc2FnZS10
ZXh0LXZpZXcpKTogQWRkZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNvbGxlY3Rpb24gLnJl
c291cmNlLmltYWdlIGltZyk6IERlbGV0ZWQuCisgICAgICAgICguY29udGVudC12aWV3LmNvbGxl
Y3Rpb24gLnJlc291cmNlLmltYWdlIGltZzpob3Zlcik6IERlbGV0ZWQuCisgICAgICAgIFdoZW4g
c2VsZWN0aW9uIGlzIGVuYWJsZWQsIGNsaWNraW5nIG91dHNpZGUgb2YgYW55IG9mIHRoZSBjb250
ZW50IHZpZXdzIHNob3VsZCBkaXNtaXNzIHRoZQorICAgICAgICBjdXJyZW50IHNlbGVjdGlvbi4g
Q2xpZW50cyBzaG91bGQgYWxzbyBiZSBhYmxlIHRvIGdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVk
IGl0ZW0uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RldGFpbHNTZWN0aW9uU2lt
cGxlUm93LmpzOgorICAgICAgICAoV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cucHJvdG90eXBl
LnNldCB2YWx1ZSk6CisgICAgICAgIEVuc3VyZSB0aGF0IGAwYCBpcyBjb25zaWRlcmVkIGFzIGEg
dmFsaWQgdmFsdWUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAg
ICAgICAgKFdJLmxvYWRlZCk6CisgICAgICAgIChXSS5jb250ZW50TG9hZGVkKToKKyAgICAgICAg
KFdJLnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JSZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkNvbnRlbnRW
aWV3LmNyZWF0ZUZyb21SZXByZXNlbnRlZE9iamVjdCk6CisgICAgICAgIChXSS5Db250ZW50Vmll
dy5pc1ZpZXdhYmxlKToKKyAgICAgICAgQWxsb3cgYFdJLkFuaW1hdGlvbmAgdG8gYmUgdmlld2Fi
bGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzOgorICAgICAgICAo
Lm5hdmlnYXRpb24taXRlbS1oZWxwKTogQWRkZWQuCisgICAgICAgICgubmF2aWdhdGlvbi1pdGVt
LWhlbHAgPiAubmF2aWdhdGlvbi1iYXIpOiBBZGRlZC4KKyAgICAgICAgKC5uYXZpZ2F0aW9uLWl0
ZW0taGVscCA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtKTogQWRkZWQuCisgICAgICAgICgubWVz
c2FnZS10ZXh0LXZpZXcgLm5hdmlnYXRpb24taXRlbS1oZWxwKTogRGVsZXRlZC4KKyAgICAgICAg
KC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVtLWhlbHAgLm5hdmlnYXRpb24tYmFy
KTogRGVsZXRlZC4KKyAgICAgICAgKC5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdhdGlvbi1pdGVt
LWhlbHAgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0pOiBEZWxldGVkLgorICAgICAgICBBbGxvdyBg
V0kuY3JlYXRlTmF2aWdhdGlvbkl0ZW1IZWxwYCB0byBiZSB1c2VkIGluZGVwZW5kZW50bHkgb2Yg
YFdJLmNyZWF0ZU1lc3NhZ2VUZXh0Vmlld2AuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0RPTU1hbmFnZXIuanM6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlw
ZS5ub2RlRm9ySWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxp
bmVNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5hbmlt
YXRpb25UcmFja2luZ1VwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0F1
ZGl0VGVzdENhc2VSZXN1bHQuanM6CisgICAgICAgIChXSS5BdWRpdFRlc3RDYXNlUmVzdWx0LmFz
eW5jIGZyb21QYXlsb2FkKToKKyAgICAgICAgQWRkIGEgZmFsbGJhY2sgc28gY2FsbGVycyBkb24n
dCBuZWVkIHRvLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxl
Y3Rpb25Db250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlJlc291cmNlQ29sbGVjdGlvbkNvbnRl
bnRWaWV3KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVjdGlv
bkNvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgKC5jb250ZW50LXZpZXcucmVzb3VyY2UtY29sbGVj
dGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWcpOiBBZGRlZC4KKyAgICAgICAgKC5jb250ZW50LXZp
ZXcucmVzb3VyY2UtY29sbGVjdGlvbiA+IC5yZXNvdXJjZS5pbWFnZSBpbWc6aG92ZXIpOiBBZGRl
ZC4KKyAgICAgICAgRHJpdmUtYnk6IG1vdmUgdGhlc2Ugc3R5bGVzIHRvIHRoZSByaWdodCBmaWxl
IGFuZCBtYWtlIHRoZW0gbW9yZSBzcGVjaWZpYy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NhbnZhcy5qczoKKyAgICAgICAgKFdJLkNhbnZhcy5kaXNwbGF5TmFtZUZvckNvbnRl
eHRUeXBlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanM6Cisg
ICAgICAgIChXSS5SZWNvcmRpbmcuZGlzcGxheU5hbWVGb3JSZWNvcmRpbmdUeXBlKTogQWRkZWQu
CisgICAgICAgIERyaXZlLWJ5OiBmaXggbG9jYWxpemVkIHN0cmluZ3MuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmNzczoKKyAgICAgICAgRHJp
dmUtYnk6IGRyb3AgYDpub3QoLnRhYilgIGZyb20gYWxsIHNlbGVjdG9ycyBzaW5jZSB0aGUgUmVj
b3JkaW5nIFRhYiBkb2Vzbid0IGV4aXN0IGFueW1vcmUuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5z
dmc6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvQ2FudmFzLnN2Zy4KKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qczoKKyAgICAgICAgKFdJLmxvYWRlZCk6CisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanM6CisgICAgICAgIChU
ZXN0SGFybmVzcy5wcm90b3R5cGUuZXhwZWN0RW1wdHkpOiBBZGRlZC4KKyAgICAgICAgKFRlc3RI
YXJuZXNzLnByb3RvdHlwZS5leHBlY3ROb3RFbXB0eSk6IEFkZGVkLgorICAgICAgICAoVGVzdEhh
cm5lc3MucHJvdG90eXBlLl9leHBlY3RhdGlvbk1lc3NhZ2VGb3JtYXQpOgorICAgICAgICAoVGVz
dEhhcm5lc3MucHJvdG90eXBlLl9leHBlY3RlZFZhbHVlRm9ybWF0KToKKyAgICAgICAgQWRkIHV0
aWxpdHkgZnVuY3Rpb24gZm9yIGNoZWNraW5nIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGVt
cHR5OgorICAgICAgICAgLSBBcnJheSBgbGVuZ3RoID09PSAwYAorICAgICAgICAgLSBTdHJpbmcg
YGxlbmd0aCA9PT0gMGAKKyAgICAgICAgIC0gU2V0IGBzaXplID09PSAwYAorICAgICAgICAgLSBN
YXAgYHNpemUgPT09IDBgCisgICAgICAgICAtIE9iamVjdCBgaXNFbXB0eU9iamVjdGAKKyAgICAg
ICAgQW55IG90aGVyIHR5cGUgd2lsbCBhdXRvbWF0aWNhbGx5IGZhaWwsIGFzIG5vbi1vYmplY3Rz
IGNhbid0IGJlICJlbXB0eSIgKGUuZy4gYDQyYCkuCisKIDIwMjAtMDEtMjcgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRvbid0IHVz
ZSBgOm1hdGNoZXMoOmJlZm9yZSwgOmFmdGVyKWAgYWZ0ZXIgcjI1NTA1OQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQW5pbWF0aW9uLmpzb24K
aW5kZXggYmVhZjhkZTI4YWM3NTNlMzdlZjJiZTg5YzAxZmNiMGJkNTNkYWZiYi4uMjJlZTg4MjQ3
OTk5Y2Q1ODI1YTVlYTMxNjc3ZWY2YjQ3NGM2ODE0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9BbmltYXRpb24uanNvbgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0FuaW1hdGlvbi5qc29uCkBAIC0xNCw2
ICsxNCw1MSBAQAogICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICJl
bnVtIjogWyJyZWFkeSIsICJkZWxheWVkIiwgImFjdGl2ZSIsICJjYW5jZWxlZCIsICJkb25lIl0K
ICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIlBsYXliYWNrRGlyZWN0
aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6
IFsibm9ybWFsIiwgInJldmVyc2UiLCAiYWx0ZXJuYXRlIiwgImFsdGVybmF0ZS1yZXZlcnNlIl0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkZpbGxNb2RlIiwKKyAg
ICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsibm9uZSIs
ICJmb3J3YXJkcyIsICJiYWNrd2FyZHMiLCAiYm90aCIsICJhdXRvIl0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImlkIjogIkFuaW1hdGlvbiIsCisgICAgICAgICAgICAidHlw
ZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiY3NzQW5pbWF0aW9uTmFtZSIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29ycmVz
cG9uZGluZyBgYW5pbWF0aW9uLW5hbWVgIENTUyBwcm9wZXJ0eS4gU2hvdWxkIG5vdCBiZSBwcm92
aWRlZCBpZiBgdHJhbnNpdGlvblByb3BlcnR5YCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNzc1RyYW5zaXRpb25Qcm9wZXJ0eSIsICJ0eXBlIjogInN0
cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFcXVhbCB0byB0aGUgY29y
cmVzcG9uZGluZyBgdHJhbnNpdGlvbi1wcm9wZXJ0eWAgQ1NTIHByb3BlcnR5LiBTaG91bGQgbm90
IGJlIHByb3ZpZGVkIGlmIGBhbmltYXRpb25OYW1lYCBpcyBhbHNvIHByb3ZpZGVkLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImVmZmVjdCIsICIkcmVmIjogIkVmZmVjdCIsICJvcHRp
b25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJhY2t0cmFjZSIsICJ0
eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDb25zb2xlLkNhbGxGcmFtZSIgfSwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkJhY2t0cmFjZSB0aGF0IHdhcyBjYXB0
dXJlZCB3aGVuIHRoaXMgYFdlYkFuaW1hdGlvbmAgd2FzIGNyZWF0ZWQuIiB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJFZmZlY3QiLAor
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnREZWxheSIsICJ0eXBlIjogIm51bWJl
ciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZERl
bGF5IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiaXRlcmF0aW9uQ291bnQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gdGhlIGFu
aW1hdGlvbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpdGVyYXRpb25TdGFydCIs
ICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJbmRl
eCBvZiB3aGljaCBpdGVyYXRpb24gdG8gc3RhcnQgYXQuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaXRlcmF0aW9uRHVyYXRpb24iLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVG90YWwgdGltZSBvZiBlYWNoIGl0ZXJhdGlvbiwgbWVh
c3VyZWQgaW4gbWlsbGlzZWNvbmRzLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRp
bWluZ0Z1bmN0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIkNTUyB0aW1pbmcgZnVuY3Rpb24gb2YgdGhlIG92ZXJhbGwgYW5pbWF0aW9uLiIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBsYXliYWNrRGlyZWN0aW9uIiwgIiRyZWYi
OiAiUGxheWJhY2tEaXJlY3Rpb24iLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJmaWxsTW9kZSIsICIkcmVmIjogIkZpbGxNb2RlIiwgIm9wdGlvbmFsIjog
dHJ1ZSB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAia2V5ZnJhbWVzIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWZyYW1lIiB9LCAib3B0aW9uYWwiOiB0cnVl
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlk
IjogIktleWZyYW1lIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9mZnNldCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWNpbWFsIHBlcmNlbnRhZ2UgWzAsMV0g
cmVwcmVzZW50aW5nIHdoZXJlIHRoaXMga2V5ZnJhbWUgaXMgaW4gdGhlIGVudGlyZSBkdXJhdGlv
biBvZiB0aGUgYW5pbWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVhc2lu
ZyIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJD
U1MgdGltaW5nIGZ1bmN0aW9uIGZvciBob3cgdGhlIGBzdHlsZWAgaXMgYXBwbGllZC4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDU1Mgc3R5bGUgZGVjbGFyYXRpb24gb2YgdGhl
IENTUyBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSBhbmltYXRlZC4iIH0KKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlkIjogIlRyYWNraW5nVXBkYXRl
IiwKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCkBAIC0yNyw2ICs3MiwzNSBAQAogICAg
ICAgICB9CiAgICAgXSwKICAgICAiY29tbWFuZHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImVuYWJsZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBD
YW52YXMgZG9tYWluIGV2ZW50cy4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImRpc2FibGUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVz
IENhbnZhcyBkb21haW4gZXZlbnRzLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAicmVxdWVzdEVmZmVjdFRhcmdldCIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiR2V0cyB0aGUgYERPTS5Ob2RlSWRgIGZvciB0aGUgdGFyZ2V0IG9mIHRoZSBlZmZlY3Qg
b2YgdGhlIGFuaW1hdGlvbiB3aXRoIHRoZSBnaXZlbiBgQW5pbWF0aW9uSWRgLiIsCisgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlv
bklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVm
IjogIkRPTS5Ob2RlSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAicmVzb2x2ZUFuaW1hdGlvbiIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiUmVzb2x2ZXMgSmF2YVNjcmlwdCBgV2ViQW5pbWF0aW9uYCBvYmplY3QgZm9y
IGdpdmVuIGBBbmltYXRpb25JZGAuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uSWQiLCAiJHJlZiI6ICJBbmltYXRpb25J
ZCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAi
c3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3Vw
IG5hbWUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9Cisg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJvYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIgfQorICAg
ICAgICAgICAgXQorICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJz
dGFydFRyYWNraW5nIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdGFydCB0cmFja2lu
ZyBhbmltYXRpb25zLiBUaGlzIHdpbGwgcHJvZHVjZSBhIGB0cmFja2luZ1N0YXJ0YCBldmVudC4i
CkBAIC0zNyw2ICsxMTEsMzUgQEAKICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsK
KyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uQ3JlYXRlZCIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlZCB3aGVuZXZlciBhIGBXZWJBbmltYXRp
b25gIGlzIGNyZWF0ZWQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYW5pbWF0aW9uIiwgIiRyZWYiOiAiQW5pbWF0aW9uIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVm
ZmVjdENoYW5nZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hl
bmV2ZXIgdGhlIGVmZmVjdCBvZiBhbnkgYW5pbWF0aW9uIGlzIGNoYW5nZWQgaW4gYW55IHdheS4i
LAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJhbmltYXRpb25JZCIsICIkcmVmIjogIkFuaW1hdGlvbklkIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiZWZmZWN0IiwgIiRyZWYiOiAiRWZmZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgb21pdHRlZCB3aGVuIHRoZSBlZmZlY3QgaXMgcmVtb3Zl
ZCB3aXRob3V0IGEgcmVwbGFjZW1lbnQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInRhcmdldENoYW5nZWQiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIHRhcmdldCBvZiBhbnkg
ZWZmZWN0IG9mIGFueSBhbmltYXRpb24gaXMgY2hhbmdlZCBpbiBhbnkgd2F5LiIsCisgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlv
bklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYW5pbWF0aW9uRGVzdHJveWVkIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVkIHdoZW5ldmVyIGEgYFdlYkFuaW1h
dGlvbmAgaXMgZGVzdHJveWVkLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImFuaW1hdGlvbklkIiwgIiRyZWYiOiAiQW5pbWF0aW9uSWQi
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5h
bWUiOiAidHJhY2tpbmdTdGFydCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0
Y2hlZCBhZnRlciBgc3RhcnRUcmFja2luZ2AgY29tbWFuZC4iLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQ1NTQW5pbWF0aW9uLmNwcAppbmRleCA3YzcyZjYyNGMzMzBhZjk2YmE3MGI3YWU0ZTky
YjUwMWNhMTAxMDdlLi5mZDNlYjlkYmRlOWJjMWFiMGI5N2YwYTA3MWUwMGU4MGZiODEzMTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzksNiArNDAsOSBA
QCBSZWY8Q1NTQW5pbWF0aW9uPiBDU1NBbmltYXRpb246OmNyZWF0ZShFbGVtZW50JiBvd25pbmdF
bGVtZW50LCBjb25zdCBBbmltYXRpb24mCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigq
bmV3IENTU0FuaW1hdGlvbihvd25pbmdFbGVtZW50LCBiYWNraW5nQW5pbWF0aW9uLCBuZXdTdHls
ZSkpOwogICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShvbGRTdHlsZSwgbmV3U3R5bGUpOworCisgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0Lmdl
dCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DU1NUcmFuc2l0aW9uLmNwcAppbmRleCBkZmY1ZmIxZjc5YTg5YzU2NjBhNDljMWIzNjQzZGQw
N2Q4MjQzMjcxLi5hYWFlNWUyZDBjNjE3MjBjZDEwOGRkNmRjZTU5NTE5Y2EwYWMzZTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVFZmZl
Y3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC00MCw2ICs0MSw5
IEBAIFJlZjxDU1NUcmFuc2l0aW9uPiBDU1NUcmFuc2l0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3du
aW5nRWxlbWVudCwgQ1NTUHJvcGVydHlJRCBwCiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigq
bmV3IENTU1RyYW5zaXRpb24ob3duaW5nRWxlbWVudCwgcHJvcGVydHksIGdlbmVyYXRpb25UaW1l
LCBiYWNraW5nQW5pbWF0aW9uLCBuZXdTdHlsZSwgcmV2ZXJzaW5nQWRqdXN0ZWRTdGFydFN0eWxl
LCByZXZlcnNpbmdTaG9ydGVuaW5nRmFjdG9yKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9s
ZFN0eWxlLCBuZXdTdHlsZSk7CiAgICAgcmVzdWx0LT5zZXRUaW1pbmdQcm9wZXJ0aWVzKGRlbGF5
LCBkdXJhdGlvbik7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdl
YkFuaW1hdGlvbihyZXN1bHQuZ2V0KCkpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAppbmRleCA3MmQ5YzYxNzVkYWJk
ZDUzN2IyODJkNmUyNzEyNGZkZDY4ODU5MmM5Li42NWU0MGFhZDhjN2VmNThkMzk0NWQwMTZiN2Q3
MmE0ZjEwYTcxNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
aApAQCAtOTksNiArOTksOCBAQCBwdWJsaWM6CiAgICAgICAgIENvbXBvc2l0ZU9wZXJhdGlvbk9y
QXV0byBjb21wb3NpdGUgeyBDb21wb3NpdGVPcGVyYXRpb25PckF1dG86OkF1dG8gfTsKICAgICB9
OwogCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZEtleWZyYW1lPiYgcGFyc2VkS2V5ZnJhbWVzKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXJzZWRLZXlmcmFtZXM7IH0KKwogICAgIEVsZW1lbnQqIHRhcmdl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0LmdldCgpOyB9CiAgICAgdm9pZCBzZXRUYXJnZXQo
UmVmUHRyPEVsZW1lbnQ+JiYpOwogCkBAIC0xMzYsNyArMTM4LDcgQEAgcHVibGljOgogICAgIGJv
b2wgY29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2goKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoOyB9CiAKICAgICB2b2lkIGNvbXB1dGVE
ZWNsYXJhdGl2ZUFuaW1hdGlvbkJsZW5kaW5nS2V5ZnJhbWVzKGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKTsKLSAgICBib29sIGhhc0JsZW5k
aW5nS2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7
IH0KKyAgICBjb25zdCBLZXlmcmFtZUxpc3QmIGJsZW5kaW5nS2V5ZnJhbWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lczsgfQogICAgIGNvbnN0IEhhc2hTZXQ8Q1NTUHJvcGVy
dHlJRD4mIGFuaW1hdGVkUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlm
cmFtZXMucHJvcGVydGllcygpOyB9CiAKICAgICBib29sIGNvbXB1dGVFeHRlbnRPZlRyYW5zZm9y
bUFuaW1hdGlvbihMYXlvdXRSZWN0JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9X
ZWJBbmltYXRpb24uY3BwCmluZGV4IDgxYjFjYjU5N2U2ZGQ1NTMzYWUxZTI1YzA4NWZhYWNmZTc3
NGU4NGUuLmE4YjQ4YzIxYWI5YWRmNGE2YTYwOWExODQzMzRhYTFlOTI1OGIwM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC00NSw2ICs0NSw4IEBACiAj
aW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvblV0aWxpdGll
cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CkBAIC01MywxMSArNTUsMzAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViQW5pbWF0aW9uKTsKIAorSGFzaFNl
dDxXZWJBbmltYXRpb24qPiYgV2ViQW5pbWF0aW9uOjppbnN0YW5jZXMoY29uc3QgTG9ja0hvbGRl
ciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8V2ViQW5pbWF0aW9uKj4+
IGluc3RhbmNlczsKKyAgICByZXR1cm4gaW5zdGFuY2VzOworfQorCitMb2NrJiBXZWJBbmltYXRp
b246Omluc3RhbmNlc011dGV4KCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPExv
Y2s+IG11dGV4OworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplTXV0ZXg7Cisg
ICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZU11dGV4LCBbXSB7CisgICAgICAgIG11dGV4LmNv
bnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBtdXRleC5nZXQoKTsKK30KKwogUmVmPFdl
YkFuaW1hdGlvbj4gV2ViQW5pbWF0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBBbmlt
YXRpb25FZmZlY3QqIGVmZmVjdCkKIHsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcg
V2ViQW5pbWF0aW9uKGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRFZmZlY3QoZWZmZWN0KTsK
ICAgICByZXN1bHQtPnNldFRpbWVsaW5lKCZkb2N1bWVudC50aW1lbGluZSgpKTsKKworICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKHJlc3VsdC5nZXQo
KSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC02Nyw2ICs4OCw5IEBAIFJlZjxXZWJB
bmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgQW5pbWF0
aW9uRWZmZWN0KiBlZmZlCiAgICAgcmVzdWx0LT5zZXRFZmZlY3QoZWZmZWN0KTsKICAgICBpZiAo
dGltZWxpbmUpCiAgICAgICAgIHJlc3VsdC0+c2V0VGltZWxpbmUodGltZWxpbmUpOworCisgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJBbmltYXRpb24ocmVzdWx0Lmdl
dCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTc3LDYgKzEwMSw5IEBAIFdlYkFu
aW1hdGlvbjo6V2ViQW5pbWF0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBtX3JlYWR5
UHJvbWlzZS0+cmVzb2x2ZSgqdGhpcyk7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CisKKyAgICBM
b2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CisgICAgaW5zdGFuY2VzKGxvY2spLmFk
ZCh0aGlzKTsKIH0KIAogV2ViQW5pbWF0aW9uOjp+V2ViQW5pbWF0aW9uKCkKQEAgLTg1LDYgKzEx
MiwxMCBAQCBXZWJBbmltYXRpb246On5XZWJBbmltYXRpb24oKQogCiAgICAgaWYgKG1fdGltZWxp
bmUpCiAgICAgICAgIG1fdGltZWxpbmUtPmZvcmdldEFuaW1hdGlvbih0aGlzKTsKKworICAgIExv
Y2tIb2xkZXIgbG9jayhpbnN0YW5jZXNNdXRleCgpKTsKKyAgICBBU1NFUlQoaW5zdGFuY2VzKGxv
Y2spLmNvbnRhaW5zKHRoaXMpKTsKKyAgICBpbnN0YW5jZXMobG9jaykucmVtb3ZlKHRoaXMpOwog
fQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0xMTYsNiArMTQ3
LDggQEAgdm9pZCBXZWJBbmltYXRpb246OnVuc3VzcGVuZEVmZmVjdEludmFsaWRhdGlvbigpCiB2
b2lkIFdlYkFuaW1hdGlvbjo6ZWZmZWN0VGltaW5nRGlkQ2hhbmdlKCkKIHsKICAgICB0aW1pbmdE
aWRDaGFuZ2UoRGlkU2Vlazo6Tm8sIFN5bmNocm9ub3VzbHlOb3RpZnk6Olllcyk7CisKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWlu
ZygqdGhpcyk7CiB9CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpzZXRFZmZlY3QoUmVmUHRyPEFuaW1h
dGlvbkVmZmVjdD4mJiBuZXdFZmZlY3QpCkBAIC0xOTAsNyArMjIzLDcgQEAgdm9pZCBXZWJBbmlt
YXRpb246OnNldEVmZmVjdEludGVybmFsKFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+JiYgbmV3RWZm
ZWN0LCBib29sIGQKICAgICAgICAgICAgIG1fdGltZWxpbmUtPmFuaW1hdGlvbldhc0FkZGVkVG9F
bGVtZW50KCp0aGlzLCAqbmV3VGFyZ2V0KTsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdCgqdGhpcyk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZXRXZWJBbmltYXRpb25FZmZlY3QoKnRoaXMpOwogfQog
CiB2b2lkIFdlYkFuaW1hdGlvbjo6c2V0VGltZWxpbmUoUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5l
PiYmIHRpbWVsaW5lKQpAQCAtMjQ5LDE3ICsyODIsMTggQEAgdm9pZCBXZWJBbmltYXRpb246OnNl
dFRpbWVsaW5lSW50ZXJuYWwoUmVmUHRyPEFuaW1hdGlvblRpbWVsaW5lPiYmIHRpbWVsaW5lKQog
CiB2b2lkIFdlYkFuaW1hdGlvbjo6ZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKEVsZW1lbnQqIHByZXZp
b3VzVGFyZ2V0LCBFbGVtZW50KiBuZXdUYXJnZXQpCiB7Ci0gICAgaWYgKCFtX3RpbWVsaW5lKQot
ICAgICAgICByZXR1cm47CisgICAgaWYgKG1fdGltZWxpbmUpIHsKKyAgICAgICAgaWYgKHByZXZp
b3VzVGFyZ2V0KQorICAgICAgICAgICAgbV90aW1lbGluZS0+YW5pbWF0aW9uV2FzUmVtb3ZlZEZy
b21FbGVtZW50KCp0aGlzLCAqcHJldmlvdXNUYXJnZXQpOwogCi0gICAgaWYgKHByZXZpb3VzVGFy
Z2V0KQotICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQo
KnRoaXMsICpwcmV2aW91c1RhcmdldCk7CisgICAgICAgIGlmIChuZXdUYXJnZXQpCisgICAgICAg
ICAgICBtX3RpbWVsaW5lLT5hbmltYXRpb25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1Rh
cmdldCk7CiAKLSAgICBpZiAobmV3VGFyZ2V0KQotICAgICAgICBtX3RpbWVsaW5lLT5hbmltYXRp
b25XYXNBZGRlZFRvRWxlbWVudCgqdGhpcywgKm5ld1RhcmdldCk7CisgICAgICAgIC8vIFRoaXMg
Y291bGQgaGF2ZSBjaGFuZ2VkIHdoZXRoZXIgd2UgaGF2ZSByZXBsYWNlZCBhbmltYXRpb25zLCBz
byB3ZSBtYXkgbmVlZCB0byBzY2hlZHVsZSBhbiB1cGRhdGUuCisgICAgICAgIG1fdGltZWxpbmUt
PmFuaW1hdGlvblRpbWluZ0RpZENoYW5nZSgqdGhpcyk7CisgICAgfQogCi0gICAgLy8gVGhpcyBj
b3VsZCBoYXZlIGNoYW5nZWQgd2hldGhlciB3ZSBoYXZlIHJlcGxhY2VkIGFuaW1hdGlvbnMsIHNv
IHdlIG1heSBuZWVkIHRvIHNjaGVkdWxlIGFuIHVwZGF0ZS4KLSAgICBtX3RpbWVsaW5lLT5hbmlt
YXRpb25UaW1pbmdEaWRDaGFuZ2UoKnRoaXMpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KCp0aGlzKTsKIH0KIAogT3B0aW9u
YWw8ZG91YmxlPiBXZWJBbmltYXRpb246OnN0YXJ0VGltZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggMDNlNDBlY2E5YzVlZTA4MWM5ZTM3M2E3Y2E1
YmI1NjU0ZTQ2MWZhNy4uMGUwMzdmY2FlZGU5NzRkOWE1ZGE5NjIwNGVjMDY2NDQ5NWZmNWRkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNs
dWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KQEAgLTU0LDYgKzU1LDkgQEAgcHVibGljOgogICAgIHN0
YXRpYyBSZWY8V2ViQW5pbWF0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBBbmltYXRpb25FZmZlY3Qq
LCBBbmltYXRpb25UaW1lbGluZSopOwogICAgIH5XZWJBbmltYXRpb24oKTsKIAorICAgIHN0YXRp
YyBIYXNoU2V0PFdlYkFuaW1hdGlvbio+JiBpbnN0YW5jZXMoY29uc3QgTG9ja0hvbGRlciYpOwor
ICAgIHN0YXRpYyBMb2NrJiBpbnN0YW5jZXNNdXRleCgpOworCiAgICAgdmlydHVhbCBib29sIGlz
RGVjbGFyYXRpdmVBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0NTU0FuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzQ1NTVHJhbnNpdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IGQwYzQzMGUyYmI4ODBhNmUzNTgzYTk5OGQ2ZGNmYzE0M2JkNmViZGUuLjNkYzdi
NDk0ZDY2NTZhOTFjN2RkOWM2OGUxYzllYWY3ODk2NjZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC03MjAs
NiArNzIwLDkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnQKICAgICBpZiAoSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JDYW52
YXNBZ2VudCgpKQogICAgICAgICBjYW52YXNBZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOwog
CisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFi
bGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmZy
YW1lTmF2aWdhdGVkKGZyYW1lKTsKKwogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgIGRv
bUFnZW50LT5kaWRDb21taXRMb2FkKGZyYW1lLmRvY3VtZW50KCkpOwogCkBAIC0xMTMwLDE1ICsx
MTMzLDM3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQXBwbHlLZXlmcmFt
ZUVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYKICAgICAgICAgYW5pbWF0aW9uQWdlbnQt
PndpbGxBcHBseUtleWZyYW1lRWZmZWN0KHRhcmdldCwgZWZmZWN0LCBjb21wdXRlZFRpbWluZyk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFdl
YkFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7Ci0gICAgaWYgKGF1dG8qIGFu
aW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1h
dGlvbkFnZW50KCkpCi0gICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRp
b25FZmZlY3QoYW5pbWF0aW9uKTsKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAg
ICBhbmltYXRpb25BZ2VudC0+ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0KGFuaW1hdGlvbik7Cisg
ICAgZWxzZSBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRy
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQt
PmRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdChhbmltYXRpb24pOworfQorCit2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJBbmltYXRpb24mIGFu
aW1hdGlvbikKK3sKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgpKQorICAgICAgICBhbmltYXRp
b25BZ2VudC0+ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5nKGFuaW1hdGlvbik7Cit9
CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VXZWJBbmltYXRpb25F
ZmZlY3RUYXJnZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMs
IFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkp
CisgICAgICAgIGFuaW1hdGlvbkFnZW50LT5kaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJn
ZXQoYW5pbWF0aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENy
ZWF0ZVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgaWYgKGF1dG8qIGFuaW1hdGlv
bkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQoKSkKKyAgICAgICAgYW5pbWF0aW9uQWdlbnQtPmRpZENyZWF0ZVdlYkFuaW1hdGlvbihhbmlt
YXRpb24pOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lX
ZWJBbmltYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMs
IFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewotICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCgp
KQorICAgIGlmIChhdXRvKiBhbmltYXRpb25BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuZW5h
YmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50KCkpCisgICAgICAgIGFuaW1hdGlvbkFnZW50LT53
aWxsRGVzdHJveVdlYkFuaW1hdGlvbihhbmltYXRpb24pOworICAgIGVsc2UgaWYgKGF1dG8qIGFu
aW1hdGlvbkFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFja2luZ0luc3BlY3RvckFuaW1h
dGlvbkFnZW50KCkpCiAgICAgICAgIGFuaW1hdGlvbkFnZW50LT53aWxsRGVzdHJveVdlYkFuaW1h
dGlvbihhbmltYXRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZTc4MTgzNjQwYTI5OWFlNDEwNzI4NWVm
NGMyOGFjODFkOTQwYTFkMC4uYjI0NmVhYTU1OWE3NTI2NWM4OTBkZmE0N2QwMWQzMTFjMTg2YTQw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaApAQCAtMzA1LDcgKzMwNSwxMCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHN0
YXRpYyB2b2lkIHdpbGxBcHBseUtleWZyYW1lRWZmZWN0KEVsZW1lbnQmLCBLZXlmcmFtZUVmZmVj
dCYsIENvbXB1dGVkRWZmZWN0VGltaW5nKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VXZWJB
bmltYXRpb25FZmZlY3QoV2ViQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZGlkU2V0V2Vi
QW5pbWF0aW9uRWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5n
ZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhXZWJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZlY3RUYXJnZXQoV2ViQW5pbWF0aW9uJik7CisgICAg
c3RhdGljIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOwogICAgIHN0
YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpOwogCiAgICAg
c3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlJik7CkBAIC01MDUsNyArNTA4LDEw
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxBcHBseUtleWZyYW1l
RWZmZWN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0
JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFu
aW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlv
biYpOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lk
IGRpZENyZWF0ZVdlYkFuaW1hdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFdlYkFuaW1h
dGlvbiYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95V2ViQW5pbWF0aW9uSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgV2ViQW5pbWF0aW9uJik7CiAKICAgICBzdGF0aWMgdm9pZCBsYXll
clRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKQEAgLTE0NjYsMTEgKzE0
NzIsMzIgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQXBwbHlL
ZXlmcmFtZUVmZmVjdChFbGVtZW50JiB0YXJnZXQsIEsKICAgICAgICAgd2lsbEFwcGx5S2V5ZnJh
bWVFZmZlY3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0YXJnZXQsIGVmZmVjdCwgY29tcHV0
ZWRUaW1pbmcpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKK2lubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05U
RU5EUyh2b2lkKCkpOwogICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1
bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkpCi0gICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdEltcGwoKmluc3RydW1lbnRp
bmdBZ2VudHMsIGFuaW1hdGlvbik7CisgICAgICAgIGRpZFNldFdlYkFuaW1hdGlvbkVmZmVjdElt
cGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGltaW5n
KFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05U
RU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1
bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkpCisgICAgICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZ0ltcGwoKmluc3Ry
dW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGFyZ2V0KFdlYkFuaW1h
dGlvbiYgYW5pbWF0aW9uKQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lk
KCkpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckNvbnRleHQoYW5pbWF0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAg
ICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldEltcGwoKmluc3RydW1lbnRpbmdB
Z2VudHMsIGFuaW1hdGlvbik7Cit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9uKQorewor
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChhdXRvKiBp
bnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoYW5pbWF0
aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgICAgIGRpZENyZWF0ZVdlYkFuaW1h
dGlvbkltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGFuaW1hdGlvbik7CiB9CiAKIGlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5jcHAKaW5kZXggMWY5YTBkN2M1MzJhM2Y5MDg1NmMxODRhMWZmYzNi
MWNmMzVlZmM4Ny4uZDdhMmY3MTk1OGQ5NDNjY2NhYzQzNGVhYzkzZTMzZGFlMjdjYzQwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcApA
QCAtNzAsNiArNzAsNyBAQCB2b2lkIEluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KCkKICAgICBt
X3BhZ2VET01EZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3BlY3RvckNhbnZhc0Fn
ZW50ID0gbnVsbHB0cjsKICAgICBtX3BlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9
IG51bGxwdHI7CisgICAgbV9lbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBudWxscHRy
OwogICAgIG1fdHJhY2tpbmdJbnNwZWN0b3JBbmltYXRpb25BZ2VudCA9IG51bGxwdHI7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRz
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4
IGY2ZmVhN2RhMjEzNjBkZDA4Y2MzZDk2NmIxNGUyYWFjNDY1NDQ5MTUuLmY1OWMzZGJkY2FmNzhj
ZjljNmQ4ZGJiNDMyZGNjZjIyZjE1ZDUwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApAQCAtMTU2LDYgKzE1Niw5IEBAIHB1YmxpYzoKICAg
ICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCogcGVyc2lzdGVudEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ7
IH0KICAgICB2b2lkIHNldFBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChJbnNwZWN0
b3JBbmltYXRpb25BZ2VudCogYWdlbnQpIHsgbV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQgPSBhZ2VudDsgfQogCisgICAgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGVuYWJsZWRJ
bnNwZWN0b3JBbmltYXRpb25BZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50OyB9CisgICAgdm9pZCBzZXRFbmFibGVkSW5zcGVjdG9yQW5pbWF0aW9u
QWdlbnQoSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQqIGFnZW50KSB7IG1fZW5hYmxlZEluc3BlY3Rv
ckFuaW1hdGlvbkFnZW50ID0gYWdlbnQ7IH0KKwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50
KiB0cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgY29uc3QgeyByZXR1cm4gbV90cmFj
a2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50OyB9CiAgICAgdm9pZCBzZXRUcmFja2luZ0luc3Bl
Y3RvckFuaW1hdGlvbkFnZW50KEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBhZ2VudCkgeyBtX3Ry
YWNraW5nSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgPSBhZ2VudDsgfQogCkBAIC0xOTAsNiArMTkz
LDcgQEAgcHJpdmF0ZToKICAgICBQYWdlRE9NRGVidWdnZXJBZ2VudCogbV9wYWdlRE9NRGVidWdn
ZXJBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JDYW52YXNBZ2VudCogbV9pbnNwZWN0
b3JDYW52YXNBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JBbmltYXRpb25BZ2VudCog
bV9wZXJzaXN0ZW50SW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CisgICAgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQqIG1fZW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFnZW50IHsg
bnVsbHB0ciB9OwogICAgIEluc3BlY3RvckFuaW1hdGlvbkFnZW50KiBtX3RyYWNraW5nSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQgeyBudWxscHRyIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3Bw
CmluZGV4IGRlOWEyYzU5YmRhYmMyOTA4OTZjOTYzOWNlYWJiNGUyYzQ3M2I4MjkuLjIxNDNiM2Ri
ZWYwYjEyOGYwZDdmMzdkZWMwZDY1MTZiYTlhOGZkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQuY3Bw
CkBAIC0yOSwyOSArMjksMTk4IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0LmgiCiAjaW5j
bHVkZSAiQW5pbWF0aW9uRWZmZWN0UGhhc2UuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb24uaCIK
KyNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVHJhbnNpdGlvbi5oIgorI2luY2x1ZGUgIkNT
U1ZhbHVlLmgiCiAjaW5jbHVkZSAiRGVjbGFyYXRpdmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJGaWxsTW9kZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAiSlNXZWJBbmltYXRpb24uaCIKICNp
bmNsdWRlICJLZXlmcmFtZUVmZmVjdC5oIgorI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQbGF5YmFja0RpcmVjdGlvbi5oIgorI2luY2x1ZGUg
IlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IldlYkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lkZW50aWZpZXJzRmFj
dG9yeS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckVudmlyb25tZW50Lmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVk
ZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCitzdGF0aWMgT3B0aW9uYWw8ZG91YmxlPiBwcm90b2Nv
bFZhbHVlRm9yU2Vjb25kcyhjb25zdCBTZWNvbmRzJiBzZWNvbmRzKQoreworICAgIGlmIChzZWNv
bmRzID09IFNlY29uZHM6OmluZmluaXR5KCkgfHwgc2Vjb25kcyA9PSBTZWNvbmRzOjpuYW4oKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gc2Vjb25kcy5taWxsaXNl
Y29uZHMoKTsKK30KKworc3RhdGljIE9wdGlvbmFsPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1h
dGlvbjo6UGxheWJhY2tEaXJlY3Rpb24+IHByb3RvY29sVmFsdWVGb3JQbGF5YmFja0RpcmVjdGlv
bihQbGF5YmFja0RpcmVjdGlvbiBwbGF5YmFja0RpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKHBs
YXliYWNrRGlyZWN0aW9uKSB7CisgICAgY2FzZSBQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsOgor
ICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpQbGF5YmFja0Rp
cmVjdGlvbjo6Tm9ybWFsOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OlJldmVyc2U6Cisg
ICAgICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OlBsYXliYWNrRGly
ZWN0aW9uOjpSZXZlcnNlOworICAgIGNhc2UgUGxheWJhY2tEaXJlY3Rpb246OkFsdGVybmF0ZToK
KyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6UGxheWJhY2tE
aXJlY3Rpb246OkFsdGVybmF0ZTsKKyAgICBjYXNlIFBsYXliYWNrRGlyZWN0aW9uOjpBbHRlcm5h
dGVSZXZlcnNlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9u
OjpQbGF5YmFja0RpcmVjdGlvbjo6QWx0ZXJuYXRlUmV2ZXJzZTsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCitzdGF0aWMg
T3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZT4gcHJvdG9j
b2xWYWx1ZUZvckZpbGxNb2RlKEZpbGxNb2RlIGZpbGxNb2RlKQoreworICAgIHN3aXRjaCAoZmls
bE1vZGUpIHsKKyAgICBjYXNlIEZpbGxNb2RlOjpOb25lOgorICAgICAgICByZXR1cm4gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Tm9uZTsKKyAgICBjYXNlIEZpbGxN
b2RlOjpGb3J3YXJkczoKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1h
dGlvbjo6RmlsbE1vZGU6OkZvcndhcmRzOworICAgIGNhc2UgRmlsbE1vZGU6OkJhY2t3YXJkczoK
KyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1hdGlvbjo6RmlsbE1vZGU6
OkJhY2t3YXJkczsKKyAgICBjYXNlIEZpbGxNb2RlOjpCb3RoOgorICAgICAgICByZXR1cm4gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpGaWxsTW9kZTo6Qm90aDsKKyAgICBjYXNlIEZp
bGxNb2RlOjpBdXRvOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0
aW9uOjpGaWxsTW9kZTo6QXV0bzsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCitzdGF0aWMgUmVmPEpTT046OkFycmF5T2Y8
SW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZT4+IGJ1aWxkT2JqZWN0Rm9y
S2V5ZnJhbWVzKEtleWZyYW1lRWZmZWN0JiBrZXlmcmFtZUVmZmVjdCkKK3sKKyAgICBhdXRvIGtl
eWZyYW1lc1BheWxvYWQgPSBKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFuaW1h
dGlvbjo6S2V5ZnJhbWU+OjpjcmVhdGUoKTsKKworICAgIGNvbnN0IGF1dG8mIGJsZW5kaW5nS2V5
ZnJhbWVzID0ga2V5ZnJhbWVFZmZlY3QuYmxlbmRpbmdLZXlmcmFtZXMoKTsKKyAgICBjb25zdCBh
dXRvJiBwYXJzZWRLZXlmcmFtZXMgPSBrZXlmcmFtZUVmZmVjdC5wYXJzZWRLZXlmcmFtZXMoKTsK
KworICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oa2V5ZnJhbWVFZmZlY3QuYW5pbWF0
aW9uKCkpKSB7CisgICAgICAgIEFTU0VSVChrZXlmcmFtZUVmZmVjdC50YXJnZXQoKSk7CisgICAg
ICAgIGF1dG8qIHJlbmRlcmVyID0ga2V5ZnJhbWVFZmZlY3QudGFyZ2V0KCktPnJlbmRlcmVyKCk7
CisKKyAgICAgICAgLy8gU3ludGhlc2l6ZSBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGZvciBlYWNo
IGtleWZyYW1lIHNvIHRoZSBmcm9udGVuZCBjYW4gZGlzcGxheSB0aGVtLgorICAgICAgICBDb21w
dXRlZFN0eWxlRXh0cmFjdG9yIGNvbXB1dGVkU3R5bGVFeHRyYWN0b3Ioa2V5ZnJhbWVFZmZlY3Qu
dGFyZ2V0KCkpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxlbmRpbmdLZXlm
cmFtZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8mIGJsZW5kaW5nS2V5ZnJhbWUg
PSBibGVuZGluZ0tleWZyYW1lc1tpXTsKKworICAgICAgICAgICAgQVNTRVJUKGJsZW5kaW5nS2V5
ZnJhbWUuc3R5bGUoKSk7CisgICAgICAgICAgICBhdXRvJiBzdHlsZSA9ICpibGVuZGluZ0tleWZy
YW1lLnN0eWxlKCk7CisKKyAgICAgICAgICAgIGF1dG8ga2V5ZnJhbWVQYXlsb2FkID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpLZXlmcmFtZTo6Y3JlYXRlKCkKKyAgICAgICAgICAg
ICAgICAuc2V0T2Zmc2V0KGJsZW5kaW5nS2V5ZnJhbWUua2V5KCkpCisgICAgICAgICAgICAgICAg
LnJlbGVhc2UoKTsKKworICAgICAgICAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdG
dW5jdGlvbjsKKyAgICAgICAgICAgIGlmICghcGFyc2VkS2V5ZnJhbWVzLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IHBhcnNlZEtleWZyYW1lc1tpXS50aW1pbmdG
dW5jdGlvbjsKKyAgICAgICAgICAgIGlmICghdGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICAg
ICAgdGltaW5nRnVuY3Rpb24gPSBibGVuZGluZ0tleWZyYW1lLnRpbWluZ0Z1bmN0aW9uKCk7Cisg
ICAgICAgICAgICBpZiAoIXRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAgICAgICAgIHRpbWluZ0Z1
bmN0aW9uID0gZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KCprZXlmcmFtZUVmZmVjdC5h
bmltYXRpb24oKSkuYmFja2luZ0FuaW1hdGlvbigpLnRpbWluZ0Z1bmN0aW9uKCk7CisgICAgICAg
ICAgICBpZiAodGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICAgICAga2V5ZnJhbWVQYXlsb2Fk
LT5zZXRFYXNpbmcodGltaW5nRnVuY3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICAgICAgICAgIFN0
cmluZ0J1aWxkZXIgc3R5bGVQYXlsb2FkQnVpbGRlcjsKKyAgICAgICAgICAgIGF1dG8mIGNzc1By
b3BlcnR5SWRzID0gYmxlbmRpbmdLZXlmcmFtZS5wcm9wZXJ0aWVzKCk7CisgICAgICAgICAgICBz
aXplX3QgY291bnQgPSBjc3NQcm9wZXJ0eUlkcy5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGF1
dG8gY3NzUHJvcGVydHlJZCA6IGNzc1Byb3BlcnR5SWRzKSB7CisgICAgICAgICAgICAgICAgLS1j
b3VudDsKKyAgICAgICAgICAgICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0eUN1
c3RvbSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBz
dHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZChnZXRQcm9wZXJ0eU5hbWVTdHJpbmcoY3NzUHJvcGVy
dHlJZCkpOworICAgICAgICAgICAgICAgIHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCI6ICIp
OworICAgICAgICAgICAgICAgIGlmIChhdXRvIHZhbHVlID0gY29tcHV0ZWRTdHlsZUV4dHJhY3Rv
ci52YWx1ZUZvclByb3BlcnR5SW5TdHlsZShzdHlsZSwgY3NzUHJvcGVydHlJZCwgcmVuZGVyZXIp
KQorICAgICAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCh2YWx1ZS0+
Y3NzVGV4dCgpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVBheWxvYWRCdWlsZGVyLmFwcGVuZCgn
OycpOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IDApCisgICAgICAgICAgICAgICAgICAg
IHN0eWxlUGF5bG9hZEJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoIXN0eWxlUGF5bG9hZEJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IGtleWZyYW1lUGF5bG9hZC0+c2V0U3R5bGUoc3R5bGVQYXlsb2FkQnVpbGRlci50b1N0cmluZygp
KTsKKworICAgICAgICAgICAga2V5ZnJhbWVzUGF5bG9hZC0+YWRkSXRlbShXVEZNb3ZlKGtleWZy
YW1lUGF5bG9hZCkpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBwYXJzZWRLZXlmcmFtZSA6IHBhcnNlZEtleWZyYW1lcykgeworICAgICAgICAgICAg
YXV0byBrZXlmcmFtZVBheWxvYWQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246Oktl
eWZyYW1lOjpjcmVhdGUoKQorICAgICAgICAgICAgICAgIC5zZXRPZmZzZXQocGFyc2VkS2V5ZnJh
bWUuY29tcHV0ZWRPZmZzZXQpCisgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKworICAgICAg
ICAgICAgaWYgKCFwYXJzZWRLZXlmcmFtZS5lYXNpbmcuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIGtleWZyYW1lUGF5bG9hZC0+c2V0RWFzaW5nKHBhcnNlZEtleWZyYW1lLmVhc2luZyk7Cisg
ICAgICAgICAgICBlbHNlIGlmIChjb25zdCBhdXRvJiB0aW1pbmdGdW5jdGlvbiA9IHBhcnNlZEtl
eWZyYW1lLnRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAgICAgICAgIGtleWZyYW1lUGF5bG9hZC0+
c2V0RWFzaW5nKHRpbWluZ0Z1bmN0aW9uLT5jc3NUZXh0KCkpOworCisgICAgICAgICAgICBpZiAo
IXBhcnNlZEtleWZyYW1lLnN0eWxlLT5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAga2V5ZnJh
bWVQYXlsb2FkLT5zZXRTdHlsZShwYXJzZWRLZXlmcmFtZS5zdHlsZS0+YXNUZXh0KCkpOworCisg
ICAgICAgICAgICBrZXlmcmFtZXNQYXlsb2FkLT5hZGRJdGVtKFdURk1vdmUoa2V5ZnJhbWVQYXls
b2FkKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4ga2V5ZnJhbWVzUGF5bG9hZDsK
K30KKworc3RhdGljIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBbmltYXRpb246OkVmZmVjdD4g
YnVpbGRPYmplY3RGb3JFZmZlY3QoQW5pbWF0aW9uRWZmZWN0JiBlZmZlY3QpCit7CisgICAgYXV0
byBlZmZlY3RQYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0aW9uOjpFZmZlY3Q6
OmNyZWF0ZSgpCisgICAgICAgIC5yZWxlYXNlKCk7CisKKyAgICBpZiAoYXV0byBzdGFydERlbGF5
ID0gcHJvdG9jb2xWYWx1ZUZvclNlY29uZHMoZWZmZWN0LmRlbGF5KCkpKQorICAgICAgICBlZmZl
Y3RQYXlsb2FkLT5zZXRTdGFydERlbGF5KHN0YXJ0RGVsYXkudmFsdWUoKSk7CisKKyAgICBpZiAo
YXV0byBlbmREZWxheSA9IHByb3RvY29sVmFsdWVGb3JTZWNvbmRzKGVmZmVjdC5lbmREZWxheSgp
KSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0RW5kRGVsYXkoZW5kRGVsYXkudmFsdWUoKSk7
CisKKyAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRpb25Db3VudChlZmZlY3QuaXRlcmF0aW9u
cygpKTsKKyAgICBlZmZlY3RQYXlsb2FkLT5zZXRJdGVyYXRpb25TdGFydChlZmZlY3QuaXRlcmF0
aW9uU3RhcnQoKSk7CisKKyAgICBpZiAoYXV0byBpdGVyYXRpb25EdXJhdGlvbiA9IHByb3RvY29s
VmFsdWVGb3JTZWNvbmRzKGVmZmVjdC5pdGVyYXRpb25EdXJhdGlvbigpKSkKKyAgICAgICAgZWZm
ZWN0UGF5bG9hZC0+c2V0SXRlcmF0aW9uRHVyYXRpb24oaXRlcmF0aW9uRHVyYXRpb24udmFsdWUo
KSk7CisKKyAgICBpZiAoYXV0byogdGltaW5nRnVuY3Rpb24gPSBlZmZlY3QudGltaW5nRnVuY3Rp
b24oKSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0VGltaW5nRnVuY3Rpb24odGltaW5nRnVu
Y3Rpb24tPmNzc1RleHQoKSk7CisKKyAgICBpZiAoYXV0byBwbGF5YmFja0RpcmVjdGlvbiA9IHBy
b3RvY29sVmFsdWVGb3JQbGF5YmFja0RpcmVjdGlvbihlZmZlY3QuZGlyZWN0aW9uKCkpKQorICAg
ICAgICBlZmZlY3RQYXlsb2FkLT5zZXRQbGF5YmFja0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlv
bi52YWx1ZSgpKTsKKworICAgIGlmIChhdXRvIGZpbGxNb2RlID0gcHJvdG9jb2xWYWx1ZUZvckZp
bGxNb2RlKGVmZmVjdC5maWxsKCkpKQorICAgICAgICBlZmZlY3RQYXlsb2FkLT5zZXRGaWxsTW9k
ZShmaWxsTW9kZS52YWx1ZSgpKTsKKworICAgIGlmIChpczxLZXlmcmFtZUVmZmVjdD4oZWZmZWN0
KSkKKyAgICAgICAgZWZmZWN0UGF5bG9hZC0+c2V0S2V5ZnJhbWVzKGJ1aWxkT2JqZWN0Rm9yS2V5
ZnJhbWVzKGRvd25jYXN0PEtleWZyYW1lRWZmZWN0PihlZmZlY3QpKSk7CisKKyAgICByZXR1cm4g
ZWZmZWN0UGF5bG9hZDsKK30KKwogSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6Okluc3BlY3RvckFu
aW1hdGlvbkFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgOiBJbnNwZWN0b3JB
Z2VudEJhc2UoIkFuaW1hdGlvbiJfcywgY29udGV4dCkKICAgICAsIG1fZnJvbnRlbmREaXNwYXRj
aGVyKG1ha2VVbmlxdWU8SW5zcGVjdG9yOjpBbmltYXRpb25Gcm9udGVuZERpc3BhdGNoZXI+KGNv
bnRleHQuZnJvbnRlbmRSb3V0ZXIpKQogICAgICwgbV9iYWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0
b3I6OkFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoY29udGV4dC5iYWNrZW5kRGlz
cGF0Y2hlciwgdGhpcykpCisgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihjb250ZXh0Lmlu
amVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICAsIG1faW5zcGVjdGVkUGFnZShjb250ZXh0Lmluc3Bl
Y3RlZFBhZ2UpCisgICAgLCBtX2FuaW1hdGlvbkRlc3Ryb3llZFRpbWVyKCp0aGlzLCAmSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQpCiB7CiB9CiAK
QEAgLTY3LDExICsyMzYsMTAzIEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgRXJyb3JT
dHJpbmcgaWdub3JlZDsKICAgICBzdG9wVHJhY2tpbmcoaWdub3JlZCk7CisgICAgZGlzYWJsZShp
Z25vcmVkKTsKIAogICAgIEFTU0VSVChtX2luc3RydW1lbnRpbmdBZ2VudHMucGVyc2lzdGVudElu
c3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcyk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLnNldFBlcnNpc3RlbnRJbnNwZWN0b3JBbmltYXRpb25BZ2VudChudWxscHRyKTsKIH0KIAor
dm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZykKK3sKKyAgICBpZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWRJbnNwZWN0b3JB
bmltYXRpb25BZ2VudCgpID09IHRoaXMpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiQW5pbWF0
aW9uIGRvbWFpbiBhbHJlYWR5IGVuYWJsZWQiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0RW5hYmxlZEluc3BlY3RvckFuaW1hdGlvbkFn
ZW50KHRoaXMpOworCisgICAgY29uc3QgYXV0byBleGlzdHNJbkN1cnJlbnRQYWdlID0gWyZdIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAg
IGlmICghaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTY4NDc1PiBXZWIgSW5zcGVjdG9yOiBDb3JyZWN0bHkgZGlzcGxheSBpZnJhbWUncyBXZWJTb2Nr
ZXRzCisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKSA9PSAmbV9p
bnNwZWN0ZWRQYWdlOworICAgIH07CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhX
ZWJBbmltYXRpb246Omluc3RhbmNlc011dGV4KCkpOworICAgICAgICBmb3IgKGF1dG8qIGFuaW1h
dGlvbiA6IFdlYkFuaW1hdGlvbjo6aW5zdGFuY2VzKGxvY2spKSB7CisgICAgICAgICAgICBpZiAo
ZXhpc3RzSW5DdXJyZW50UGFnZShhbmltYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkp
CisgICAgICAgICAgICAgICAgYmluZEFuaW1hdGlvbigqYW5pbWF0aW9uLCBmYWxzZSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpc2FibGUo
RXJyb3JTdHJpbmcmKQoreworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRFbmFibGVkSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQobnVsbHB0cik7CisKKyAgICByZXNldCgpOworfQorCit2b2lk
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpyZXF1ZXN0RWZmZWN0VGFyZ2V0KEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpCit7
CisgICAgYXV0byogYW5pbWF0aW9uID0gYXNzZXJ0QW5pbWF0aW9uKGVycm9yU3RyaW5nLCBhbmlt
YXRpb25JZCk7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8qIGRvbUFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCk7
CisgICAgaWYgKCFkb21BZ2VudCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJET00gZG9tYWlu
IG11c3QgYmUgZW5hYmxlZCJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8q
IGVmZmVjdCA9IGFuaW1hdGlvbi0+ZWZmZWN0KCk7CisgICAgaWYgKCFpczxLZXlmcmFtZUVmZmVj
dD4oZWZmZWN0KSkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRpb24gZm9yIGdpdmVu
IGFuaW1hdGlvbklkIGRvZXMgbm90IGhhdmUgYW4gZWZmZWN0Il9zOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byYga2V5ZnJhbWVFZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVm
ZmVjdD4oKmVmZmVjdCk7CisKKyAgICBhdXRvKiB0YXJnZXQgPSBrZXlmcmFtZUVmZmVjdC50YXJn
ZXQoKTsKKyAgICBpZiAoIXRhcmdldCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJBbmltYXRp
b24gZm9yIGdpdmVuIGFuaW1hdGlvbklkIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQiX3M7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAqbm9kZUlkID0gZG9tQWdlbnQtPnB1c2hOb2RlUGF0
aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIHRhcmdldCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OnJlc29sdmVBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbklkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KQor
eworICAgIGF1dG8qIGFuaW1hdGlvbiA9IGFzc2VydEFuaW1hdGlvbihlcnJvclN0cmluZywgYW5p
bWF0aW9uSWQpOworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvKiBzdGF0ZSA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5leGVjU3Rh
dGUoKTsKKyAgICBhdXRvIGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIu
aW5qZWN0ZWRTY3JpcHRGb3Ioc3RhdGUpOworICAgIEFTU0VSVCghaW5qZWN0ZWRTY3JpcHQuaGFz
Tm9WYWx1ZSgpKTsKKworICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZTsKKyAgICB7CisgICAgICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2soc3RhdGUpOworCisgICAgICAgIGF1dG8qIGdsb2JhbE9iamVj
dCA9IGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoc3RhdGUpOworICAgICAgICB2
YWx1ZSA9IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgYW5pbWF0aW9uKTsKKyAgICB9CisKKyAg
ICBpZiAoIXZhbHVlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBl
cnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogdW5rbm93biBBbmltYXRpb24gZm9yIGdpdmVu
IGFuaW1hdGlvbklkIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG9i
amVjdEdyb3VwTmFtZSA9IG9iamVjdEdyb3VwID8gKm9iamVjdEdyb3VwIDogU3RyaW5nKCk7Cisg
ICAgcmVzdWx0ID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBO
YW1lKTsKK30KKwogdm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6c3RhcnRUcmFja2luZyhF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7CiAgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50
cy50cmFja2luZ0luc3BlY3RvckFuaW1hdGlvbkFnZW50KCkgPT0gdGhpcykgewpAQCAtMTcwLDE2
ICs0MzEsMTUxIEBAIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OndpbGxBcHBseUtleWZy
YW1lRWZmZWN0KEVsZW1lbnQmIHRhcmdldCwgS2V5ZnJhbWVFCiAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXItPnRyYWNraW5nVXBkYXRlKG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCkt
PmVsYXBzZWRUaW1lKCkuc2Vjb25kcygpLCBXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdChXZWJBbmlt
YXRpb24mIGFuaW1hdGlvbikKK3ZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OmRpZFNldFdl
YkFuaW1hdGlvbkVmZmVjdChXZWJBbmltYXRpb24mIGFuaW1hdGlvbikKIHsKICAgICBpZiAoaXM8
RGVjbGFyYXRpdmVBbmltYXRpb24+KGFuaW1hdGlvbikpCiAgICAgICAgIHN0b3BUcmFja2luZ0Rl
Y2xhcmF0aXZlQW5pbWF0aW9uKGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihhbmltYXRp
b24pKTsKKworICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRpbWluZyhhbmltYXRpb24p
OworICAgIGRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChhbmltYXRpb24pOworfQor
Cit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpkaWRDaGFuZ2VXZWJBbmltYXRpb25FZmZl
Y3RUaW1pbmcoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7CisgICAgLy8gVGhlIGBhbmltYXRp
b25JZGAgbWF5IGJlIGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJs
ZWQuCisgICAgYXV0byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOwor
ICAgIGlmIChhbmltYXRpb25JZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24uZWZmZWN0KCkpCisgICAgICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5lZmZlY3RDaGFuZ2VkKGFuaW1hdGlvbklkLCBidWlsZE9iamVjdEZvckVmZmVj
dCgqZWZmZWN0KSk7CisgICAgZWxzZQorICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZWZm
ZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgbnVsbHB0cik7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQW5p
bWF0aW9uQWdlbnQ6OmRpZENoYW5nZVdlYkFuaW1hdGlvbkVmZmVjdFRhcmdldChXZWJBbmltYXRp
b24mIGFuaW1hdGlvbikKK3sKKyAgICAvLyBUaGUgYGFuaW1hdGlvbklkYCBtYXkgYmUgZW1wdHkg
aWYgQW5pbWF0aW9uIGlzIHRyYWNraW5nIGJ1dCBub3QgZW5hYmxlZC4KKyAgICBhdXRvIGFuaW1h
dGlvbklkID0gZmluZEFuaW1hdGlvbklkKGFuaW1hdGlvbik7CisgICAgaWYgKGFuaW1hdGlvbklk
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXIt
PnRhcmdldENoYW5nZWQoYW5pbWF0aW9uSWQpOworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlv
bkFnZW50OjpkaWRDcmVhdGVXZWJBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCit7
CisgICAgaWYgKCFmaW5kQW5pbWF0aW9uSWQoYW5pbWF0aW9uKS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBi
aW5kQW5pbWF0aW9uKGFuaW1hdGlvbiwgdHJ1ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0
aW9uQWdlbnQ6OndpbGxEZXN0cm95V2ViQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYgYW5pbWF0aW9u
KQogewogICAgIGlmIChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oYW5pbWF0aW9uKSkKICAgICAg
ICAgc3RvcFRyYWNraW5nRGVjbGFyYXRpdmVBbmltYXRpb24oZG93bmNhc3Q8RGVjbGFyYXRpdmVB
bmltYXRpb24+KGFuaW1hdGlvbikpOworCisgICAgLy8gVGhlIGBhbmltYXRpb25JZGAgbWF5IGJl
IGVtcHR5IGlmIEFuaW1hdGlvbiBpcyB0cmFja2luZyBidXQgbm90IGVuYWJsZWQuCisgICAgYXV0
byBhbmltYXRpb25JZCA9IGZpbmRBbmltYXRpb25JZChhbmltYXRpb24pOworICAgIGlmICghYW5p
bWF0aW9uSWQuaXNFbXB0eSgpKQorICAgICAgICB1bmJpbmRBbmltYXRpb24oYW5pbWF0aW9uSWQp
OworfQorCit2b2lkIEluc3BlY3RvckFuaW1hdGlvbkFnZW50OjpmcmFtZU5hdmlnYXRlZChGcmFt
ZSYgZnJhbWUpCit7CisgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgcmVz
ZXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+IGFuaW1h
dGlvbklkc1RvUmVtb3ZlOworICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBhbmltYXRpb25d
IDogbV9hbmltYXRpb25JZE1hcCkgeworICAgICAgICBpZiAoYXV0byogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCA9IGFuaW1hdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAg
ICAgICBpZiAoaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0
PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkuZnJhbWUoKSA9PSAmZnJhbWUpCisg
ICAgICAgICAgICAgICAgYW5pbWF0aW9uSWRzVG9SZW1vdmUuYXBwZW5kKGFuaW1hdGlvbklkKTsK
KyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFuaW1hdGlvbklkIDogYW5p
bWF0aW9uSWRzVG9SZW1vdmUpCisgICAgICAgIHVuYmluZEFuaW1hdGlvbihhbmltYXRpb25JZCk7
Cit9CisKK1N0cmluZyBJbnNwZWN0b3JBbmltYXRpb25BZ2VudDo6ZmluZEFuaW1hdGlvbklkKFdl
YkFuaW1hdGlvbiYgYW5pbWF0aW9uKQoreworICAgIGZvciAoYXV0byYgW2FuaW1hdGlvbklkLCBl
eGlzdGluZ0FuaW1hdGlvbl0gOiBtX2FuaW1hdGlvbklkTWFwKSB7CisgICAgICAgIGlmIChleGlz
dGluZ0FuaW1hdGlvbiA9PSAmYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlv
bklkOworICAgIH0KKyAgICByZXR1cm4gbnVsbFN0cmluZygpOworfQorCitXZWJBbmltYXRpb24q
IEluc3BlY3RvckFuaW1hdGlvbkFnZW50Ojphc3NlcnRBbmltYXRpb24oRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkKQoreworICAgIGF1dG8qIGFuaW1h
dGlvbiA9IG1fYW5pbWF0aW9uSWRNYXAuZ2V0KGFuaW1hdGlvbklkKTsKKyAgICBpZiAoIWFuaW1h
dGlvbikKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiTWlzc2luZyBhbmltYXRpb24gZm9yIGdpdmVu
IGFuaW1hdGlvbklkIl9zOworICAgIHJldHVybiBhbmltYXRpb247Cit9CisKK3ZvaWQgSW5zcGVj
dG9yQW5pbWF0aW9uQWdlbnQ6OmJpbmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiBhbmltYXRpb24s
IGJvb2wgY2FwdHVyZUJhY2t0cmFjZSkKK3sKKyAgICBhdXRvIGFuaW1hdGlvbklkID0gbWFrZVN0
cmluZygiYW5pbWF0aW9uOiIgKyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIo
KSk7CisgICAgbV9hbmltYXRpb25JZE1hcC5zZXQoYW5pbWF0aW9uSWQsICZhbmltYXRpb24pOwor
CisgICAgYXV0byBhbmltYXRpb25QYXlsb2FkID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QW5pbWF0
aW9uOjpBbmltYXRpb246OmNyZWF0ZSgpCisgICAgICAgIC5zZXRBbmltYXRpb25JZChhbmltYXRp
b25JZCkKKyAgICAgICAgLnJlbGVhc2UoKTsKKworICAgIGlmIChpczxDU1NBbmltYXRpb24+KGFu
aW1hdGlvbikpCisgICAgICAgIGFuaW1hdGlvblBheWxvYWQtPnNldENzc0FuaW1hdGlvbk5hbWUo
ZG93bmNhc3Q8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24pLmFuaW1hdGlvbk5hbWUoKSk7CisgICAg
ZWxzZSBpZiAoaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKSkKKyAgICAgICAgYW5pbWF0aW9u
UGF5bG9hZC0+c2V0Q3NzVHJhbnNpdGlvblByb3BlcnR5KGRvd25jYXN0PENTU1RyYW5zaXRpb24+
KGFuaW1hdGlvbikudHJhbnNpdGlvblByb3BlcnR5KCkpOworCisgICAgaWYgKGF1dG8qIGVmZmVj
dCA9IGFuaW1hdGlvbi5lZmZlY3QoKSkKKyAgICAgICAgYW5pbWF0aW9uUGF5bG9hZC0+c2V0RWZm
ZWN0KGJ1aWxkT2JqZWN0Rm9yRWZmZWN0KCplZmZlY3QpKTsKKworICAgIGlmIChjYXB0dXJlQmFj
a3RyYWNlKSB7CisgICAgICAgIGF1dG8gc3RhY2tUcmFjZSA9IEluc3BlY3Rvcjo6Y3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKEpTRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgSW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUpOworICAgICAgICBhbmltYXRp
b25QYXlsb2FkLT5zZXRCYWNrdHJhY2Uoc3RhY2tUcmFjZS0+YnVpbGRJbnNwZWN0b3JBcnJheSgp
KTsKKyAgICB9CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+YW5pbWF0aW9uQ3JlYXRlZChX
VEZNb3ZlKGFuaW1hdGlvblBheWxvYWQpKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6dW5iaW5kQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uSWQpCit7CisgICAg
bV9hbmltYXRpb25JZE1hcC5yZW1vdmUoYW5pbWF0aW9uSWQpOworCisgICAgLy8gVGhpcyBjYW4g
YmUgY2FsbGVkIGluIHJlc3BvbnNlIHRvIEdDLiBEdWUgdG8gdGhlIHNpbmdsZS1wcm9jZXNzIG1v
ZGVsIHVzZWQgaW4gV2ViS2l0MSwgdGhlCisgICAgLy8gZXZlbnQgbXVzdCBiZSBkaXNwYXRjaGVk
IGZyb20gYSB0aW1lciB0byBwcmV2ZW50IHRoZSBmcm9udGVuZCBmcm9tIG1ha2luZyBKUyBhbGxv
Y2F0aW9ucworICAgIC8vIHdoaWxlIHRoZSBHQyBpcyBzdGlsbCBhY3RpdmUuCisgICAgbV9yZW1v
dmVkQW5pbWF0aW9uSWRzLmFwcGVuZChhbmltYXRpb25JZCk7CisKKyAgICBpZiAoIW1fYW5pbWF0
aW9uRGVzdHJveWVkVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95
ZWRUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25B
Z2VudDo6YW5pbWF0aW9uRGVzdHJveWVkVGltZXJGaXJlZCgpCit7CisgICAgaWYgKCFtX3JlbW92
ZWRBbmltYXRpb25JZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8m
IGlkZW50aWZpZXIgOiBtX3JlbW92ZWRBbmltYXRpb25JZHMpCisgICAgICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5hbmltYXRpb25EZXN0cm95ZWQoaWRlbnRpZmllcik7CisKKyAgICBtX3JlbW92
ZWRBbmltYXRpb25JZHMuY2xlYXIoKTsKK30KKwordm9pZCBJbnNwZWN0b3JBbmltYXRpb25BZ2Vu
dDo6cmVzZXQoKQoreworICAgIG1fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKworICAgIG1fcmVt
b3ZlZEFuaW1hdGlvbklkcy5jbGVhcigpOworCisgICAgaWYgKG1fYW5pbWF0aW9uRGVzdHJveWVk
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9hbmltYXRpb25EZXN0cm95ZWRUaW1lci5zdG9w
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQW5pbWF0aW9uQWdlbnQ6OnN0b3BUcmFja2luZ0RlY2xh
cmF0aXZlQW5pbWF0aW9uKERlY2xhcmF0aXZlQW5pbWF0aW9uJiBhbmltYXRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlvbkFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFuaW1hdGlv
bkFnZW50LmgKaW5kZXggN2EyNGJiY2JiMWIzMzFkMTkwZGE2MGMwMGQyMWJkOTM1NDhmYWIwMC4u
ZDI2NmQ3ZWYyMWU0MmQ4NDFkZjZjMGQzODA3M2RkZWMyOWNhZDkzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQW5pbWF0aW9uQWdl
bnQuaApAQCAtMjcsMTYgKzI3LDIxIEBACiAKICNpbmNsdWRlICJDb21wdXRlZEVmZmVjdFRpbWlu
Zy5oIgogI2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgorI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVy
cy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgQW5pbWF0aW9uRWZmZWN0OwogY2xhc3MgRGVjbGFyYXRpdmVBbmltYXRpb247CiBjbGFzcyBF
bGVtZW50OwogY2xhc3MgRXZlbnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIEtleWZyYW1lRWZmZWN0
OworY2xhc3MgUGFnZTsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKIAogdHlwZWRlZiBTdHJpbmcgRXJy
b3JTdHJpbmc7CkBAIC01MywyMCArNTgsNDIgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKIAogICAgIC8vIEFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0RWZmZWN0VGFyZ2V0KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25JZCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOworICAg
IHZvaWQgcmVzb2x2ZUFuaW1hdGlvbihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFRy
YWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgog
ICAgIHZvaWQgd2lsbEFwcGx5S2V5ZnJhbWVFZmZlY3QoRWxlbWVudCYsIEtleWZyYW1lRWZmZWN0
JiwgQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOwotICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9u
RWZmZWN0KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkU2V0V2ViQW5pbWF0aW9uRWZmZWN0
KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0VGlt
aW5nKFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlV2ViQW5pbWF0aW9uRWZmZWN0
VGFyZ2V0KFdlYkFuaW1hdGlvbiYpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViQW5pbWF0aW9uKFdl
YkFuaW1hdGlvbiYpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lXZWJBbmltYXRpb24oV2ViQW5pbWF0
aW9uJik7CisgICAgdm9pZCBmcmFtZU5hdmlnYXRlZChGcmFtZSYpOwogCiBwcml2YXRlOgorICAg
IFN0cmluZyBmaW5kQW5pbWF0aW9uSWQoV2ViQW5pbWF0aW9uJik7CisgICAgV2ViQW5pbWF0aW9u
KiBhc3NlcnRBbmltYXRpb24oRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklk
KTsKKyAgICB2b2lkIGJpbmRBbmltYXRpb24oV2ViQW5pbWF0aW9uJiwgYm9vbCBjYXB0dXJlQmFj
a3RyYWNlKTsKKyAgICB2b2lkIHVuYmluZEFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlv
bklkKTsKKyAgICB2b2lkIGFuaW1hdGlvbkRlc3Ryb3llZFRpbWVyRmlyZWQoKTsKKyAgICB2b2lk
IHJlc2V0KCk7CisKICAgICB2b2lkIHN0b3BUcmFja2luZ0RlY2xhcmF0aXZlQW5pbWF0aW9uKERl
Y2xhcmF0aXZlQW5pbWF0aW9uJik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpB
bmltYXRpb25Gcm9udGVuZERpc3BhdGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJl
ZlB0cjxJbnNwZWN0b3I6OkFuaW1hdGlvbkJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNw
YXRjaGVyOwogCisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyOworICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKKworICAgIEhhc2hN
YXA8U3RyaW5nLCBXZWJBbmltYXRpb24qPiBtX2FuaW1hdGlvbklkTWFwOworICAgIFZlY3RvcjxT
dHJpbmc+IG1fcmVtb3ZlZEFuaW1hdGlvbklkczsKKyAgICBUaW1lciBtX2FuaW1hdGlvbkRlc3Ry
b3llZFRpbWVyOworCiAgICAgc3RydWN0IFRyYWNrZWREZWNsYXJhdGl2ZUFuaW1hdGlvbkRhdGEg
ewogICAgICAgICBTdHJpbmcgdHJhY2tpbmdBbmltYXRpb25JZDsKICAgICAgICAgQ29tcHV0ZWRF
ZmZlY3RUaW1pbmcgbGFzdENvbXB1dGVkVGltaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBhZWNjNzliYzBj
YTU2ZmI2NWZlMDMzMGYwOGU0ZWU2ODhiZjgxZTg5Li4wZjQ2YTMwMzNhZWY0MDA3ZjZlYjgzN2E2
MTA1ZjA1YTBjNTkwNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTY2LDcgKzU2Niw3IEBAIGludCBJbnNw
ZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiBlcnJvclN0cmlu
ZywgaW50IGRvY3VtZW50CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHJldHVybiBw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGVUb1B1c2gpOworICAgIHJldHVybiBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGVycm9yU3RyaW5nLCBub2RlVG9QdXNoKTsKIH0KIAogTm9kZSogSW5zcGVj
dG9yRE9NQWdlbnQ6Om5vZGVGb3JJZChpbnQgaWQpCkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6cXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcs
IGludCBub2RlSWQsIGNvbnMKICAgICB9CiAKICAgICBpZiAoYXV0byogZWxlbWVudCA9IHF1ZXJ5
UmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKQotICAgICAgICAqZWxlbWVudElkID0gcHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZChlbGVtZW50KTsKKyAgICAgICAgKmVsZW1lbnRJZCA9IHB1c2hOb2Rl
UGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIGVsZW1lbnQpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpxdWVyeVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50
IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPGlu
dD4+JiByZXN1bHQpCkBAIC02MzksMTMgKzYzOSwyNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpxdWVyeVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwg
YwogfQogCiBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9k
ZSogbm9kZVRvUHVzaCkKK3sKKyAgICBFcnJvclN0cmluZyBpZ25vcmVkOworICAgIHJldHVybiBw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKGlnbm9yZWQsIG5vZGVUb1B1c2gpOworfQorCitpbnQgSW5z
cGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcgZXJyb3JT
dHJpbmcsIE5vZGUqIG5vZGVUb1B1c2gpCiB7CiAgICAgQVNTRVJUKG5vZGVUb1B1c2gpOyAgLy8g
SW52YWxpZCBpbnB1dAogCi0gICAgaWYgKCFtX2RvY3VtZW50KQorICAgIGlmICghbV9kb2N1bWVu
dCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIGRvY3VtZW50Il9zOwogICAgICAg
ICByZXR1cm4gMDsKLSAgICBpZiAoIW1fZG9jdW1lbnROb2RlVG9JZE1hcC5jb250YWlucyhtX2Rv
Y3VtZW50KSkKKyAgICB9CisKKyAgICBpZiAoIW1fZG9jdW1lbnROb2RlVG9JZE1hcC5jb250YWlu
cyhtX2RvY3VtZW50KSkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJEb2N1bWVudCBtdXN0IGhh
dmUgYmVlbiByZXF1ZXN0ZWQiX3M7CiAgICAgICAgIHJldHVybiAwOworICAgIH0KIAogICAgIC8v
IFJldHVybiBpZCBpbiBjYXNlIHRoZSBub2RlIGlzIGtub3duLgogICAgIGludCByZXN1bHQgPSBt
X2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KG5vZGVUb1B1c2gpOwpAQCAtNzkwLDcgKzgwMSw3IEBA
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1lKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICBpZiAoIW1fZG9tRWRpdG9yLT5yZW1vdmVDaGls
ZCgqcGFyZW50LCAqb2xkTm9kZSwgZXJyb3JTdHJpbmcpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICAqbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5ld0VsZW1lbnQucHRyKCkpOworICAg
ICpuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5ld0VsZW1lbnQu
cHRyKCkpOwogICAgIGlmIChtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCkpCiAg
ICAgICAgIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZCgqbmV3SWQpOwogfQpAQCAtODMwLDcgKzg0
MSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpbnQgbmV3SWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5ld05vZGUpOworICAgIGlu
dCBuZXdJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5ld05vZGUpOwog
CiAgICAgYm9vbCBjaGlsZHJlblJlcXVlc3RlZCA9IG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFp
bnMobm9kZUlkKTsKICAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0ZWQpCkBAIC0xNDIyLDcgKzE0MzMs
NyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojptb3ZlVG8oRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBpbnQgbm9kZUlkLCBpbnQgdGFyZ2V0RQogICAgIGlmICghbV9kb21FZGl0b3ItPmluc2Vy
dEJlZm9yZSgqdGFyZ2V0RWxlbWVudCwgKm5vZGUsIGFuY2hvck5vZGUsIGVycm9yU3RyaW5nKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgKm5ld05vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRl
bmQobm9kZSk7CisgICAgKm5ld05vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoZXJyb3JT
dHJpbmcsIG5vZGUpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmRvKEVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZykKQEAgLTE0OTgsMTEgKzE1MDksMTEgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6Z2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBub2Rl
SWQsIFJlZlAKICAgICByZXN1bHQgPSBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoZWxl
bWVudCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlcXVlc3ROb2RlKEVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpCit2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpyZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKQogewogICAgIE5vZGUqIG5vZGUgPSBub2RlRm9y
T2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChub2RlKQotICAgICAgICAqbm9kZUlkID0gcHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0
aFRvRnJvbnRlbmQoZXJyb3JTdHJpbmcsIG5vZGUpOwogICAgIGVsc2UKICAgICAgICAgKm5vZGVJ
ZCA9IDA7CiB9CkBAIC0yNjQ2LDcgKzI2NTcsNyBAQCBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6
bm9kZUZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpCiB2b2lkIEluc3BlY3RvckRP
TUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHBhdGgsIGludCogbm9kZUlkKQogewogICAgIGlmIChOb2RlKiBub2Rl
ID0gbm9kZUZvclBhdGgocGF0aCkpCi0gICAgICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zy
b250ZW5kKG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChl
cnJvclN0cmluZywgbm9kZSk7CiAgICAgZWxzZQogICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNz
aW5nIG5vZGUgZm9yIGdpdmVuIHBhdGgiX3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNTE2MzlhYmViODRmNGQ5
NWRlZDNmNGZiNjQwOWFkOGY2MmEyODk0ZS4uN2RmMGU4M2ViNTNkNzVjNDFjNTU0ZjE0MDEyMzVi
YTIxNzE5NDE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKIAogICAgIGlu
dCBwdXNoTm9kZVRvRnJvbnRlbmQoTm9kZSopOwogICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQo
RXJyb3JTdHJpbmcmLCBpbnQgZG9jdW1lbnROb2RlSWQsIE5vZGUqKTsKKyAgICBpbnQgcHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZChOb2RlKik7CisgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
RXJyb3JTdHJpbmcsIE5vZGUqKTsKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAg
ICAgaW50IGJvdW5kTm9kZUlkKGNvbnN0IE5vZGUqKTsKIApAQCAtMjE3LDcgKzIxOSw2IEBAIHBy
aXZhdGU6CiAgICAgTm9kZSogYXNzZXJ0RWRpdGFibGVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCk7CiAgICAgRWxlbWVudCogYXNzZXJ0RWRpdGFibGVFbGVtZW50KEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCk7CiAKLSAgICBpbnQgcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKik7CiAg
ICAgdm9pZCBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQoaW50IG5vZGVJZCwgaW50IGRlcHRoID0g
MSk7CiAKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPiBidWlsZE9iamVj
dEZvck5vZGUoTm9kZSosIGludCBkZXB0aCwgTm9kZVRvSWRNYXAqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCmluZGV4IDU5ZjNmYTM5MTVmZmI2OTZkZDFlNTQ5MjRmYmZlNDViNmJl
NTRiMTMuLjgzOTFiZmZkNDk0MzA0ZGUzNTc3NWZkMTc3MjMxY2VlNDVhZDZmNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4u
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtMTI1LDEyICsxMjUsMTUgQEAgbG9jYWxpemVk
U3RyaW5nc1siQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIFx1MjAxQyVzXHUy
MDFEIHRhYmxlLiJdID0KIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhwZWN0ZWQgZXJyb3IgJXMg
b2NjdXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciAlcyBvY2N1cnJlZC4iOwogbG9jYWxp
emVkU3RyaW5nc1siQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4iXSA9ICJBbiB1bmV4cGVj
dGVkIGVycm9yIG9jY3VycmVkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmdsZSJdID0gIkFuZ2xl
IjsKK2xvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiJdID0gIkFuaW1hdGlvbiI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJBbmltYXRpb24gJWQiXSA9ICJBbmltYXRpb24gJWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVk
IENhbmNlbGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCJd
ID0gIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRp
b24gRnJhbWUgJWQgUmVxdWVzdGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgQ2FuY2VsZWQiXSA9ICJBbmltYXRp
b24gRnJhbWUgQ2FuY2VsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9uIEZyYW1lIEZp
cmVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1h
dGlvbiBGcmFtZSBSZXF1ZXN0ZWQiXSA9ICJBbmltYXRpb24gRnJhbWUgUmVxdWVzdGVkIjsKK2xv
Y2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBUYXJnZXQiXSA9ICJBbmltYXRpb24gVGFyZ2V0IjsK
IGxvY2FsaXplZFN0cmluZ3NbIkFub255bW91cyBTY3JpcHQgJWQiXSA9ICJBbm9ueW1vdXMgU2Ny
aXB0ICVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFub255bW91cyBTY3JpcHRzIl0gPSAiQW5vbnlt
b3VzIFNjcmlwdHMiOwogbG9jYWxpemVkU3RyaW5nc1siQW5vbnltb3VzIFN0eWxlIFNoZWV0ICVk
Il0gPSAiQW5vbnltb3VzIFN0eWxlIFNoZWV0ICVkIjsKQEAgLTIwMSw5ICsyMDQsMTEgQEAgbG9j
YWxpemVkU3RyaW5nc1siQ1BVIl0gPSAiQ1BVIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNQVSBVc2Fn
ZSJdID0gIkNQVSBVc2FnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDU1AgSGFzaCJdID0gIkNTUCBI
YXNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRpb24iXSA9ICJDU1MgQW5pbWF0aW9u
IjsKK2xvY2FsaXplZFN0cmluZ3NbIkNTUyBBbmltYXRpb25zIl0gPSAiQ1NTIEFuaW1hdGlvbnMi
OwogbG9jYWxpemVkU3RyaW5nc1siQ1NTIENhbnZhcyJdID0gIkNTUyBDYW52YXMiOwogbG9jYWxp
emVkU3RyaW5nc1siQ1NTIENoYW5nZXM6Il0gPSAiQ1NTIENoYW5nZXM6IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNTUyBUcmFuc2l0aW9uIl0gPSAiQ1NTIFRyYW5zaXRpb24iOworbG9jYWxpemVkU3Ry
aW5nc1siQ1NTIFRyYW5zaXRpb25zIl0gPSAiQ1NTIFRyYW5zaXRpb25zIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNTUyBjYW52YXMgXHUyMDFDJXNcdTIwMUQiXSA9ICJDU1MgY2FudmFzIFx1MjAxQyVz
XHUyMDFEIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhY2hlZCJdID0gIkNhY2hlZCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJDYWxsIEZyYW1lcyBUcnVuY2F0ZWQiXSA9ICJDYWxsIEZyYW1lcyBUcnVuY2F0
ZWQiOwpAQCAtMjE4LDYgKzIyMyw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIkNhbmNlbGVkIl0gPSAi
Q2FuY2VsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzIl0gPSAiQ2FudmFzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkNhbnZhcyAlZCJdID0gIkNhbnZhcyAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDYW52YXMgJXMiXSA9ICJDYW52YXMgJXMiOworLyogQml0bWFwIFJlbmRlcmVyIGlzIGEgdHlw
ZSBvZiByZW5kZXJpbmcgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggYSA8Y2FudmFzPiBlbGVtZW50
ICovCitsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgQ29udGV4dCBUeXBlIEJpdG1hcCBSZW5kZXJl
ciJdID0gIkJpdG1hcCBSZW5kZXJlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYW52YXMgRWxlbWVu
dCJdID0gIkNhbnZhcyBFbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZhc2VzIl0gPSAi
Q2FudmFzZXMiOwogLyogQ2FwdHVyZSBzY3JlZW5zaG90IG9mIHRoZSBzZWxlY3RlZCBET00gbm9k
ZSAqLwpAQCAtNTg3LDYgKzU5NCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkdsb2JhbCBDb2RlIl0g
PSAiR2xvYmFsIENvZGUiOwogbG9jYWxpemVkU3RyaW5nc1siR2xvYmFsIExleGljYWwgRW52aXJv
bm1lbnQiXSA9ICJHbG9iYWwgTGV4aWNhbCBFbnZpcm9ubWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJHbG9iYWwgVmFyaWFibGVzIl0gPSAiR2xvYmFsIFZhcmlhYmxlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJHcmFtbWFyIl0gPSAiR3JhbW1hciI7Citsb2NhbGl6ZWRTdHJpbmdzWyJHcmFwaGljcyJd
ID0gIkdyYXBoaWNzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIl0gPSAiR3JvdXAiOwogbG9j
YWxpemVkU3RyaW5nc1siR3JvdXAgQnkgUmVzb3VyY2UiXSA9ICJHcm91cCBCeSBSZXNvdXJjZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBNZWRpYSBSZXF1ZXN0cyJdID0gIkdyb3VwIE1lZGlh
IFJlcXVlc3RzIjsKQEAgLTYzNCw2ICs2NDIsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXMi
XSA9ICJJbWFnZXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1hZ2VzOiJdID0gIkltYWdlczoiOwog
bG9jYWxpemVkU3RyaW5nc1siSW1tZWRpYXRlIFBhdXNlIFJlcXVlc3RlZCJdID0gIkltbWVkaWF0
ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0Il0gPSAiSW1wb3J0
IjsKK2xvY2FsaXplZFN0cmluZ3NbIkltcG9ydCBSZWNvcmRpbmciXSA9ICJJbXBvcnQgUmVjb3Jk
aW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIl0gPSAiSW1wb3J0ZWQiOwogbG9jYWxp
emVkU3RyaW5nc1siSW1wb3J0ZWQgLSAlcyJdID0gIkltcG9ydGVkIC0gJXMiOwogbG9jYWxpemVk
U3RyaW5nc1siSW1wb3J0ZWQgXHUyMDE0ICVzIl0gPSAiSW1wb3J0ZWQgXHUyMDE0ICVzIjsKQEAg
LTY5OCw2ICs3MDcsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBTdG9yYWdlIl0gPSAiTG9j
YWwgU3RvcmFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2NhbCBWYXJpYWJsZXMiXSA9ICJMb2Nh
bCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYXRlZCBhdCAlcyJdID0gIkxvY2F0
ZWQgYXQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siTG9jYXRpb24iXSA9ICJMb2NhdGlvbiI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJMb2cgQW5pbWF0aW9uIl0gPSAiTG9nIEFuaW1hdGlvbiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJMb2cgQ2FudmFzIENvbnRleHQiXSA9ICJMb2cgQ2FudmFzIENvbnRleHQi
OwogLyogTG9nIChwcmludCkgRE9NIGVsZW1lbnQgdG8gQ29uc29sZSAqLwogbG9jYWxpemVkU3Ry
aW5nc1siTG9nIEVsZW1lbnQiXSA9ICJMb2cgRWxlbWVudCI7CkBAIC03NzEsNiArNzgxLDcgQEAg
bG9jYWxpemVkU3RyaW5nc1siTm8gRW5hYmxlZCBBdWRpdHMiXSA9ICJObyBFbmFibGVkIEF1ZGl0
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBFbnRyaWVzIl0gPSAiTm8gRW50cmllcyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJObyBFdmVudCBMaXN0ZW5lcnMiXSA9ICJObyBFdmVudCBMaXN0ZW5lcnMi
OwogbG9jYWxpemVkU3RyaW5nc1siTm8gRmlsdGVyIFJlc3VsdHMiXSA9ICJObyBGaWx0ZXIgUmVz
dWx0cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJObyBLZXlmcmFtZXMiXSA9ICJObyBLZXlmcmFtZXMi
OwogbG9jYWxpemVkU3RyaW5nc1siTm8gTGF5ZXIgQXZhaWxhYmxlIl0gPSAiTm8gTGF5ZXIgQXZh
aWxhYmxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIE92ZXJyaWRlcyJdID0gIk5vIE92ZXJyaWRl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBQYXJhbWV0ZXJzIl0gPSAiTm8gUGFyYW1ldGVycyI7
CkBAIC03ODIsNiArNzkzLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzcG9uc2UgSGVhZGVy
cyJdID0gIk5vIFJlc3BvbnNlIEhlYWRlcnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gUmVzdWx0
Il0gPSAiTm8gUmVzdWx0IjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFJlc3VsdHMgRm91bmQiXSA9
ICJObyBSZXN1bHRzIEZvdW5kIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFNlYXJjaCBSZXN1bHRz
Il0gPSAiTm8gU2VhcmNoIFJlc3VsdHMiOworbG9jYWxpemVkU3RyaW5nc1siTm8gU3R5bGVzIl0g
PSAiTm8gU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5vIFdhdGNoIEV4cHJlc3Npb25zIl0g
PSAiTm8gV2F0Y2ggRXhwcmVzc2lvbnMiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gYXVkaXQgc2Vs
ZWN0ZWQiXSA9ICJObyBhdWRpdCBzZWxlY3RlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBjZXJ0
aWZpY2F0ZSBzZWN1cml0eSBpbmZvcm1hdGlvbi4iXSA9ICJObyBjZXJ0aWZpY2F0ZSBzZWN1cml0
eSBpbmZvcm1hdGlvbi4iOwpAQCAtOTA2LDYgKzkxOCw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJl
Y29yZGluZyJdID0gIlJlY29yZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgJWQi
XSA9ICJSZWNvcmRpbmcgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5nIEVycm9yOiAl
cyJdID0gIlJlY29yZGluZyBFcnJvcjogJXMiOwogbG9jYWxpemVkU3RyaW5nc1siUmVjb3JkaW5n
IFRpbWVsaW5lIERhdGEiXSA9ICJSZWNvcmRpbmcgVGltZWxpbmUgRGF0YSI7CisvKiBBIHR5cGUg
b2YgY2FudmFzIHJlY29yZGluZyBpbiB0aGUgR3JhcGhpY3MgVGFiICovCitsb2NhbGl6ZWRTdHJp
bmdzWyJSZWNvcmRpbmcgVHlwZSBDYW52YXMgQml0bWFwIFJlbmRlcmVyIl0gPSAiQml0bWFwIFJl
bmRlcmVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlY29yZGluZyBXYXJuaW5nOiAlcyJdID0gIlJl
Y29yZGluZyBXYXJuaW5nOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmcgc3RvcCBy
ZXF1ZXN0ZWQgXHUyMDE0ICVzIl0gPSAiUmVjb3JkaW5nIHN0b3AgcmVxdWVzdGVkIFx1MjAxNCAl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNvcmRpbmdzIl0gPSAiUmVjb3JkaW5ncyI7CkBAIC05
MTQsNyArOTI4LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVkaXJlY3RzIl0gPSAiUmVkaXJlY3Rz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZmVyZW5jZSBJc3N1ZSJdID0gIlJlZmVyZW5jZSBJc3N1
ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWZsZWN0aW9uIl0gPSAiUmVmbGVjdGlvbiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZWZyZXNoIl0gPSAiUmVmcmVzaCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJS
ZWZyZXNoIGFsbCJdID0gIlJlZnJlc2ggYWxsIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlZnJlc2gg
d2F0Y2ggZXhwcmVzc2lvbnMiXSA9ICJSZWZyZXNoIHdhdGNoIGV4cHJlc3Npb25zIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlZ2lvbiBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiJdID0gIlJlZ2lv
biBhbm5vdW5jZWQgaW4gaXRzIGVudGlyZXR5LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWd1bGFy
IEV4cHJlc3Npb24iXSA9ICJSZWd1bGFyIEV4cHJlc3Npb24iOwpAQCAtMTAyNCw2ICsxMDM3LDgg
QEAgbG9jYWxpemVkU3RyaW5nc1siU2VjdXJpdHkgT3JpZ2luIl0gPSAiU2VjdXJpdHkgT3JpZ2lu
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdCBiYXNlbGluZSBzbmFwc2hvdCJdID0gIlNlbGVj
dCBiYXNlbGluZSBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3QgY29tcGFyaXNv
biBzbmFwc2hvdCJdID0gIlNlbGVjdCBjb21wYXJpc29uIHNuYXBzaG90IjsKIGxvY2FsaXplZFN0
cmluZ3NbIlNlbGVjdGVkIl0gPSAiU2VsZWN0ZWQiOworLyogQXBwZWFycyBhcyBhIGxhYmVsIHdo
ZW4gYSBnaXZlbiB3ZWIgYW5pbWF0aW9uIGlzIGxvZ2dlZCB0byB0aGUgQ29uc29sZSAqLworbG9j
YWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgQW5pbWF0aW9uIl0gPSAiU2VsZWN0ZWQgQW5pbWF0aW9u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlbGVjdGVkIENhbnZhcyBDb250ZXh0Il0gPSAiU2VsZWN0
ZWQgQ2FudmFzIENvbnRleHQiOwogLyogU2VsZWN0ZWQgRE9NIGVsZW1lbnQgKi8KIGxvY2FsaXpl
ZFN0cmluZ3NbIlNlbGVjdGVkIEVsZW1lbnQiXSA9ICJTZWxlY3RlZCBFbGVtZW50IjsKQEAgLTEx
NzksNiArMTE5NCw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlRoZXNlIHRlc3RzIHNlcnZlIGFzIGEg
ZGVtb25zdHJhdGlvbiBvZiB0aGUgZnVuY3Rpb25hbGl0eSBhbmQKIGxvY2FsaXplZFN0cmluZ3Nb
IlRoaXMgUmVzb3VyY2UgY2FtZSBmcm9tIGEgTG9jYWwgUmVzb3VyY2UgT3ZlcnJpZGUiXSA9ICJU
aGlzIFJlc291cmNlIGNhbWUgZnJvbSBhIExvY2FsIFJlc291cmNlIE92ZXJyaWRlIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlRoaXMgYWN0aW9uIGNhdXNlcyBubyB2aXN1YWwgY2hhbmdlIl0gPSAiVGhp
cyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiOwogbG9jYWxpemVkU3RyaW5nc1siVGhp
cyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIl0gPSAiVGhp
cyBhY3Rpb24gbW92ZXMgdGhlIHBhdGggb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIjsKK2xvY2Fs
aXplZFN0cmluZ3NbIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iXSA9ICJUaGlzIGFu
aW1hdGlvbiBoYXMgbm8gZHVyYXRpb24uIjsKK2xvY2FsaXplZFN0cmluZ3NbIlRoaXMgYW5pbWF0
aW9uIGhhcyBubyBrZXlmcmFtZXMuIl0gPSAiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1l
cy4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVkIl0gPSAi
VGhpcyBhdWRpdCBpcyBub3Qgc3VwcG9ydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoaXMgaXMg
YW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiJdID0gIlRoaXMg
aXMgYW4gZXhhbXBsZSBvZiBob3cgY3VzdG9tIHJlc3VsdCBkYXRhIGlzIHNob3duLiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IGVycm9ycyBhcmUgc2hvd24u
IFRoZSBlcnJvciB3YXMgdGhyb3duIG1hbnVhbGx5LCBidXQgZXhlY3V0aW9uIGVycm9ycyB3aWxs
IGFwcGVhciBpbiB0aGUgc2FtZSB3YXkuIl0gPSAiVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyBl
cnJvcnMgYXJlIHNob3duLiBUaGUgZXJyb3Igd2FzIHRocm93biBtYW51YWxseSwgYnV0IGV4ZWN1
dGlvbiBlcnJvcnMgd2lsbCBhcHBlYXIgaW4gdGhlIHNhbWUgd2F5LiI7CkBAIC0xMjkxLDEyICsx
MzA4LDY1IEBAIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgU2hhZGVyIl0gPSAiVmlldyBTaGFkZXIi
OwogbG9jYWxpemVkU3RyaW5nc1siVmlld3BvcnQiXSA9ICJWaWV3cG9ydCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJWaXNpYmxlIl0gPSAiVmlzaWJsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5n
Il0gPSAiV2FpdGluZyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBhbmltYXRpb25z
IGNyZWF0ZWQgYnkgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBD
U1MuIjsKK2xvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBi
eSBKYXZhU2NyaXB0LiJdID0gIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRlZCBieSBKYXZh
U2NyaXB0LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMg
Y3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiJdID0gIldhaXRpbmcgZm9yIGNhbnZhcyBjb250ZXh0
cyBjcmVhdGVkIGJ5IHNjcmlwdCBvciBDU1MuIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhaXRpbmcg
Zm9yIGZyYW1lc1x1MjAyNiJdID0gIldhaXRpbmcgZm9yIGZyYW1lc1x1MjAyNiI7Citsb2NhbGl6
ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iXSA9ICJX
YWl0aW5nIGZvciB0cmFuc2l0aW9ucyBjcmVhdGVkIGJ5IENTUy4iOwogbG9jYWxpemVkU3RyaW5n
c1siV2FybmluZzogIl0gPSAiV2FybmluZzogIjsKIGxvY2FsaXplZFN0cmluZ3NbIldhcm5pbmdz
Il0gPSAiV2FybmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siV2F0Y2ggRXhwcmVzc2lvbnMiXSA9
ICJXYXRjaCBFeHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYXRlcmZhbGwiXSA9ICJX
YXRlcmZhbGwiOworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiJdID0gIldlYiBBbmlt
YXRpb24iOworLyogU2VjdGlvbiB0aXRsZSBmb3IgdGhlIEphdmFTY3JpcHQgYmFja3RyYWNlIG9m
IHRoZSBjcmVhdGlvbiBvZiBhIHdlYiBhbmltYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldl
YiBBbmltYXRpb24gQmFja3RyYWNlIFRpdGxlIl0gPSAiQmFja3RyYWNlIjsKKy8qIExhYmVsIGZv
ciB0aGUgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbiBvZiBhIHdlYiBhbmltYXRpb24gKi8K
K2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRWFzaW5nIExhYmVsIl0gPSAiRWFzaW5n
IjsKKy8qIFNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlZmZlY3Qgb2Yg
YSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEVmZmVj
dCBUaXRsZSJdID0gIkVmZmVjdCI7CisvKiBMYWJlbCBmb3IgdGhlIGVuZCBkZWxheSB0aW1lIG9m
IGEgd2ViIGFuaW1hdGlvbiAgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRW5k
IERlbGF5IExhYmVsIl0gPSAiRW5kIERlbGF5IjsKKy8qIFRvb2x0aXAgZm9yIHNlY3Rpb24gb2Yg
Z3JhcGggcmVwcmVzZW50aW5nIGRlbGF5IGFmdGVyIGEgd2ViIGFuaW1hdGlvbiBmaW5pc2hlcyBh
cHBseWluZyBzdHlsZXMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRW5kIERl
bGF5IFRvb2x0aXAiXSA9ICJFbmQgRGVsYXkgJXMiOworLyogSW5kaWNhdGVzIHRoYXQgdGhpcyB3
ZWIgYW5pbWF0aW9uIGVpdGhlciBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBpdCBi
ZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMgb3IgdGhhdCBpdCBhcHBsaWVzIHRvIGJvdGgsIGRlcGVu
ZGluZyBvbiBpdCdzIGNvbmZpZ3VyYXRpb24gKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmlt
YXRpb24gRmlsbCBNb2RlIEF1dG8iXSA9ICJBdXRvIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMg
d2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgKi8KK2xv
Y2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEJhY2t3YXJkcyJdID0gIkJh
Y2t3YXJkcyI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBs
aWVzIHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRlciBpdCBlbmRzICovCitsb2NhbGl6
ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBCb3RoIl0gPSAiQm90aCI7CisvKiBJ
bmRpY2F0ZXMgdGhhdCB0aGlzIHdlYiBhbmltYXRpb24gYWxzbyBhcHBsaWVzIHN0eWxlcyBhZnRl
ciBpdCBlbmRzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBG
b3J3YXJkcyJdID0gIkZvcndhcmRzIjsKKy8qIExhYmVsIGZvciB0aGUgZmlsbCBtb2RlIG9mIGEg
d2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBGaWxsIE1v
ZGUgTGFiZWwiXSA9ICJGaWxsIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlv
biBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0
IGVuZHMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIE5vbmUi
XSA9ICJOb25lIjsKKy8qIFNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IGEgd2Vi
IGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBJZGVudGl0eSBU
aXRsZSJdID0gIklkZW50aXR5IjsKKy8qIExhYmVsIGZvciB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlv
bnMgb2YgYSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9u
IEl0ZXJhdGlvbiBDb3VudCBMYWJlbCJdID0gIkl0ZXJhdGlvbnMiOworLyogTGFiZWwgZm9yIHRo
ZSB0aW1lIGR1cmF0aW9uIG9mIGVhY2ggaXRlcmF0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLwor
bG9jYWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gRHVyYXRpb24gTGFiZWwi
XSA9ICJEdXJhdGlvbiI7CisvKiBMYWJlbCBmb3IgdGhlIG51bWJlciBkZXNjcmliaW5nIHdoaWNo
IGl0ZXJhdGlvbiBhIHdlYiBhbmltYXRpb24gc2hvdWxkIHN0YXJ0IGF0ICovCitsb2NhbGl6ZWRT
dHJpbmdzWyJXZWIgQW5pbWF0aW9uIEl0ZXJhdGlvbiBTdGFydCBMYWJlbCJdID0gIlN0YXJ0IjsK
Ky8qIFNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBrZXlmcmFtZXMgb2Yg
YSB3ZWIgYW5pbWF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIEtleWZy
YW1lcyBUaXRsZSJdID0gIktleWZyYW1lcyI7CisvKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxheWJh
Y2sgZGlyZWN0aW9uIG9mIHRoaXMgd2ViIGFuaW1hdGlvbiBhbHRlcm5hdGVzIGJldHdlZW4gbm9y
bWFsIGFuZCByZXZlcnNlZCBvbiBlYWNoIGl0ZXJhdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1si
V2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gQWx0ZXJuYXRlIl0gPSAiQWx0ZXJuYXRl
IjsKKy8qIEluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIg
YW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiByZXZlcnNlZCBhbmQgbm9ybWFsIG9uIGVhY2gg
aXRlcmF0aW9uICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERp
cmVjdGlvbiBBbHRlcm5hdGUgUmV2ZXJzZSJdID0gIkFsdGVybmF0ZSBSZXZlcnNlIjsKKy8qIExh
YmVsIGZvciB0aGUgcGxheWJhY2sgZGlyZWN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9j
YWxpemVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gTGFiZWwiXSA9
ICJEaXJlY3Rpb24iOworLyogSW5kaWNhdGVzIHRoYXQgdGhlIHBsYXliYWNrIGRpcmVjdGlvbiBv
ZiB0aGlzIHdlYiBhbmltYXRpb24gaXMgbm9ybWFsIChlLmcuIGZvcndhcmRzKSAqLworbG9jYWxp
emVkU3RyaW5nc1siV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gTm9ybWFsIl0gPSAi
Tm9ybWFsIjsKKy8qIEluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhp
cyB3ZWIgYW5pbWF0aW9uIGlzIHJldmVyc2VkIChlLmcuIGJhY2t3YXJkcykgKi8KK2xvY2FsaXpl
ZFN0cmluZ3NbIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIFJldmVyc2UiXSA9ICJS
ZXZlcnNlIjsKKy8qIExhYmVsIGZvciB0aGUgc3RhcnQgZGVsYXkgdGltZSBvZiBhIHdlYiBhbmlt
YXRpb24gICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFN0YXJ0IERlbGF5IExh
YmVsIl0gPSAiU3RhcnQgRGVsYXkiOworLyogVG9vbHRpcCBmb3Igc2VjdGlvbiBvZiBncmFwaCBy
ZXByZXNlbnRpbmcgZGVsYXkgYmVmb3JlIGEgd2ViIGFuaW1hdGlvbiBiZWdpbnMgYXBwbHlpbmcg
c3R5bGVzICovCitsb2NhbGl6ZWRTdHJpbmdzWyJXZWIgQW5pbWF0aW9uIFN0YXJ0IERlbGF5IFRv
b2x0aXAiXSA9ICJTdGFydCBEZWxheSAlcyI7CisvKiBMYWJlbCBmb3IgdGhlIGN1cnJlbnQgRE9N
IG5vZGUgdGFyZ2V0IG9mIGEgd2ViIGFuaW1hdGlvbiAqLworbG9jYWxpemVkU3RyaW5nc1siV2Vi
IEFuaW1hdGlvbiBUYXJnZXQgTGFiZWwiXSA9ICJUYXJnZXQiOworbG9jYWxpemVkU3RyaW5nc1si
V2ViIEFuaW1hdGlvbnMiXSA9ICJXZWIgQW5pbWF0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJX
ZWIgSW5zcGVjdG9yIl0gPSAiV2ViIEluc3BlY3RvciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXZWIg
SW5zcGVjdG9yIFJlZmVyZW5jZSJdID0gIldlYiBJbnNwZWN0b3IgUmVmZXJlbmNlIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIldlYiBQYWdlIl0gPSAiV2ViIFBhZ2UiOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDgyNzFlMTNjNmI3ZDdm
MzMxY2IyYWU5ZWRjODMyYTE0YWMyZjJlMzIuLmVhY2UxMjY3Y2EwNjEwMGY2YzcwYWYzNTRkMjA0
N2U4ZDA0ZmRlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanMKQEAgLTEyMyw2ICsxMjMsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigp
CiAgICAgICAgIFdJLndvcmtlck1hbmFnZXIgPSBuZXcgV0kuV29ya2VyTWFuYWdlciwKICAgICAg
ICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRPTURlYnVnZ2VyTWFuYWdlciwKICAg
ICAgICAgV0kuY2FudmFzTWFuYWdlciA9IG5ldyBXSS5DYW52YXNNYW5hZ2VyLAorICAgICAgICBX
SS5hbmltYXRpb25NYW5hZ2VyID0gbmV3IFdJLkFuaW1hdGlvbk1hbmFnZXIsCiAgICAgXTsKIAog
ICAgIC8vIFJlZ2lzdGVyIGZvciBldmVudHMuCkBAIC0xNDcsMTMgKzE0OCwxMyBAQCBXSS5sb2Fk
ZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdJLlNvdXJjZXNUYWJDb250ZW50Vmlldy5UeXBlLAog
ICAgICAgICBXSS5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJLlN0b3Jh
Z2VUYWJDb250ZW50Vmlldy5UeXBlLAotICAgICAgICBXSS5DYW52YXNUYWJDb250ZW50Vmlldy5U
eXBlLAorICAgICAgICBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3LlR5cGUsCiAgICAgICAgIFdJ
LkF1ZGl0VGFiQ29udGVudFZpZXcuVHlwZSwKICAgICAgICAgV0kuQ29uc29sZVRhYkNvbnRlbnRW
aWV3LlR5cGUsCiAgICAgXSk7CiAgICAgV0kuX3NlbGVjdGVkVGFiSW5kZXhTZXR0aW5nID0gbmV3
IFdJLlNldHRpbmcoInNlbGVjdGVkLXRhYi1pbmRleCIsIDApOwogCi0gICAgLy8gUmVwbGFjZSB0
aGUgRGVidWdnZXIvUmVzb3VyY2VzIFRhYiB3aXRoIHRoZSBTb3VyY2VzIFRhYi4KKyAgICAvLyBG
SVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwNTgyNj4gV2ViIEluc3BlY3RvcjogcmVtb3Zl
IGxlZ2FjeSBjb2RlIGZvciByZXBsYWNpbmcgdGhlIFJlc291cmNlcyBUYWIgYW5kIERlYnVnZ2Vy
IFRhYiB3aXRoIHRoZSBTb3VyY2VzIFRhYgogICAgIGxldCBkZWJ1Z2dlckluZGV4ID0gV0kuX29w
ZW5UYWJzU2V0dGluZy52YWx1ZS5pbmRleE9mKCJkZWJ1Z2dlciIpOwogICAgIGxldCByZXNvdXJj
ZXNJbmRleCA9IFdJLl9vcGVuVGFic1NldHRpbmcudmFsdWUuaW5kZXhPZigicmVzb3VyY2VzIik7
CiAgICAgaWYgKGRlYnVnZ2VySW5kZXggPj0gMCB8fCByZXNvdXJjZXNJbmRleCA+PSAwKSB7CkBA
IC0xNzMsNiArMTc0LDEzIEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIFdJ
Ll9zZWxlY3RlZFRhYkluZGV4U2V0dGluZy52YWx1ZSA9IHNvdXJjZXNJbmRleDsKICAgICB9CiAK
KyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwNTgyNz4gV2ViIEluc3BlY3Rv
cjogcmVtb3ZlIGxlZ2FjeSBjb2RlIGZvciByZXBsYWNpbmcgdGhlIENhbnZhcyBUYWIgd2l0aCB0
aGUgR3JhcGhpY3MgVGFiCisgICAgbGV0IGNhbnZhc0luZGV4ID0gV0kuX29wZW5UYWJzU2V0dGlu
Zy52YWx1ZS5pbmRleE9mKCJjYW52YXMiKTsKKyAgICBpZiAoY2FudmFzSW5kZXggPj0gMCkgewor
ICAgICAgICBXSS5fb3BlblRhYnNTZXR0aW5nLnZhbHVlLnNwbGljZShjYW52YXNJbmRleCwgMSwg
V0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlKTsKKyAgICAgICAgV0kuX29wZW5UYWJzU2V0
dGluZy5zYXZlKCk7CisgICAgfQorCiAgICAgLy8gU3RhdGUuCiAgICAgV0kucHJpbnRTdHlsZXNF
bmFibGVkID0gZmFsc2U7CiAgICAgV0kuc2V0Wm9vbUZhY3RvcihXSS5zZXR0aW5ncy56b29tRmFj
dG9yLnZhbHVlKTsKQEAgLTQ2NSw3ICs0NzMsNyBAQCBXSS5jb250ZW50TG9hZGVkID0gZnVuY3Rp
b24oKQogICAgICAgICBXSS5Tb3VyY2VzVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLlRpbWVs
aW5lVGFiQ29udGVudFZpZXcsCiAgICAgICAgIFdJLlN0b3JhZ2VUYWJDb250ZW50VmlldywKLSAg
ICAgICAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcsCisgICAgICAgIFdJLkdyYXBoaWNzVGFiQ29u
dGVudFZpZXcsCiAgICAgICAgIFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5B
dWRpdFRhYkNvbnRlbnRWaWV3LAogICAgICAgICBXSS5Db25zb2xlVGFiQ29udGVudFZpZXcsCkBA
IC0xMjIzLDExICsxMjMxLDggQEAgV0kudGFiQ29udGVudFZpZXdDbGFzc0ZvclJlcHJlc2VudGVk
T2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpCiAgICAgICAgIHx8IHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQogICAgICAgICByZXR1
cm4gV0kuQXVkaXRUYWJDb250ZW50VmlldzsKIAotICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24pCi0gICAgICAgIHJldHVybiBXSS5DYW52YXNU
YWJDb250ZW50VmlldzsKLQotICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJ
LlJlY29yZGluZykKLSAgICAgICAgcmV0dXJuIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3OworICAg
IGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcyB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0gfHwgcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
SS5BbmltYXRpb24pCisgICAgICAgIHJldHVybiBXSS5HcmFwaGljc1RhYkNvbnRlbnRWaWV3Owog
CiAgICAgcmV0dXJuIG51bGw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmZiNDEyY2VhNWZlMjNhNjZmZDI3ZWNkOTRkYWQ3M2ZkYjAxZjMyNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisvLyBGSVhNRTogQW5pbWF0aW9uTWFuYWdlciBsYWNrcyBhZHZhbmNlZCBtdWx0aS10YXJn
ZXQgc3VwcG9ydC4gKEFuaW1hdGlvbnMgcGVyLXRhcmdldCkKKworV0kuQW5pbWF0aW9uTWFuYWdl
ciA9IGNsYXNzIEFuaW1hdGlvbk1hbmFnZXIKK3sKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgewor
ICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNv
bGxlY3Rpb24gPSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbjsKKyAgICAgICAgdGhpcy5fYW5p
bWF0aW9uSWRNYXAgPSBuZXcgTWFwOworCisgICAgICAgIFdJLkZyYW1lLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVNYWlu
UmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMpOworICAgIH0KKworICAgIC8vIEFnZW50CisKKyAgICBn
ZXQgZG9tYWlucygpIHsgcmV0dXJuIFsiQW5pbWF0aW9uIl07IH0KKworICAgIGFjdGl2YXRlRXh0
cmFEb21haW4oZG9tYWluKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZG9tYWluID09
PSAiQW5pbWF0aW9uIik7CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMp
CisgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUYXJnZXQodGFyZ2V0KTsKKyAgICB9CisKKyAg
ICAvLyBUYXJnZXQKKworICAgIGluaXRpYWxpemVUYXJnZXQodGFyZ2V0KQorICAgIHsKKyAgICAg
ICAgaWYgKCF0aGlzLl9lbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8v
IENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmVuYWJsZSBkaWQgbm90IGV4aXN0
IHlldC4KKyAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24uZW5hYmxlIikp
CisgICAgICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQuZW5hYmxlKCk7CisgICAgfQorCisg
ICAgLy8gUHVibGljCisKKyAgICBnZXQgYW5pbWF0aW9uQ29sbGVjdGlvbigpIHsgcmV0dXJuIHRo
aXMuX2FuaW1hdGlvbkNvbGxlY3Rpb247IH0KKworICAgIGdldCBzdXBwb3J0ZWQoKQorICAgIHsK
KyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjEpOiBBbmltYXRpb24uZW5hYmxlIGRp
ZCBub3QgZXhpc3QgeWV0LgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNDb21t
YW5kKCJBbmltYXRpb24uZW5hYmxlIik7CisgICAgfQorCisgICAgZW5hYmxlKCkKKyAgICB7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9lbmFibGVkKTsKKworICAgICAgICB0aGlzLl9l
bmFibGVkID0gdHJ1ZTsKKworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykK
KyAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhcmdldCh0YXJnZXQpOworICAgIH0KKworICAg
IGRpc2FibGUoKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fZW5hYmxlZCk7
CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpIHsKKyAgICAgICAgICAg
IC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4xKTogQW5pbWF0aW9uLmRpc2FibGUgZGlkIG5vdCBl
eGlzdCB5ZXQuCisgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkFuaW1hdGlvbi5k
aXNhYmxlIikpCisgICAgICAgICAgICAgICAgdGFyZ2V0LkFuaW1hdGlvbkFnZW50LmRpc2FibGUo
KTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb24uY2xlYXIo
KTsKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWRNYXAuY2xlYXIoKTsKKworICAgICAgICB0aGlz
Ll9lbmFibGVkID0gZmFsc2U7CisgICAgfQorCisgICAgLy8gQW5pbWF0aW9uT2JzZXJ2ZXIKKwor
ICAgIGFuaW1hdGlvbkNyZWF0ZWQoYW5pbWF0aW9uUGF5bG9hZCkKKyAgICB7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCF0aGlzLl9hbmltYXRpb25JZE1hcC5oYXMoYW5pbWF0aW9uUGF5bG9hZC5h
bmltYXRpb25JZCksIGBBbmltYXRpb24gYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke2FuaW1hdGlv
blBheWxvYWQuYW5pbWF0aW9uSWR9LmApOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBXSS5B
bmltYXRpb24uZnJvbVBheWxvYWQoYW5pbWF0aW9uUGF5bG9hZCk7CisgICAgICAgIHRoaXMuX2Fu
aW1hdGlvbkNvbGxlY3Rpb24uYWRkKGFuaW1hdGlvbik7CisgICAgICAgIHRoaXMuX2FuaW1hdGlv
bklkTWFwLnNldChhbmltYXRpb24uYW5pbWF0aW9uSWQsIGFuaW1hdGlvbik7CisgICAgfQorCisg
ICAgZWZmZWN0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgbGV0
IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLmdldChhbmltYXRpb25JZCk7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAgIGlmICghYW5pbWF0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkKGVm
ZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZChhbmltYXRpb25JZCwgZWZmZWN0KQor
ICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1hdGlvbklkTWFwLmdldChh
bmltYXRpb25JZCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvbik7CisgICAgICAg
IGlmICghYW5pbWF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1hdGlv
bi50YXJnZXRDaGFuZ2VkKGVmZmVjdCk7CisgICAgfQorCisgICAgYW5pbWF0aW9uRGVzdHJveWVk
KGFuaW1hdGlvbklkKQorICAgIHsKKyAgICAgICAgbGV0IGFuaW1hdGlvbiA9IHRoaXMuX2FuaW1h
dGlvbklkTWFwLnRha2UoYW5pbWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydChhbmlt
YXRpb24pOworICAgICAgICBpZiAoIWFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB0aGlzLl9hbmltYXRpb25Db2xsZWN0aW9uLnJlbW92ZShhbmltYXRpb24pOworICAg
IH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2Uo
ZXZlbnQpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChldmVudC50YXJnZXQgaW5zdGFu
Y2VvZiBXSS5GcmFtZSk7CisgICAgICAgIGlmICghZXZlbnQudGFyZ2V0LmlzTWFpbkZyYW1lKCkp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgV0kuQW5pbWF0aW9uLnJlc2V0VW5pcXVl
RGlzcGxheU5hbWVOdW1iZXJzKCk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bi5jbGVhcigpOworICAgICAgICB0aGlzLl9hbmltYXRpb25JZE1hcC5jbGVhcigpOworICAgIH0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwppbmRleCAxMzVjMTY2MTNhZTgwMDlj
MTZlMjcyMmY3MjU4NWM5N2U2OWRkMTE0Li5kYmI4ZTZmZTQ5NzMxZDUyMzFlMjgzZjY5ZmEyOTBm
MzdiNmJiZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKQEAgLTMyLDYgKzMy
LDcgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7
CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24gPSBuZXcgV0kuQ2FudmFzQ29sbGVjdGlv
bjsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcCA9IG5ldyBNYXA7CiAgICAgICAg
IHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwID0gbmV3IE1hcDsKICAgICAgICAgdGhp
cy5fc2F2ZWRSZWNvcmRpbmdzID0gbmV3IFNldDsKQEAgLTc2LDEzICs3Nyw5IEBAIFdJLkNhbnZh
c01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAv
LyBQdWJsaWMKIAorICAgIGdldCBjYW52YXNDb2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fY2Fu
dmFzQ29sbGVjdGlvbjsgfQogICAgIGdldCBzYXZlZFJlY29yZGluZ3MoKSB7IHJldHVybiB0aGlz
Ll9zYXZlZFJlY29yZGluZ3M7IH0KIAotICAgIGdldCBjYW52YXNlcygpCi0gICAgewotICAgICAg
ICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnZhbHVlcygpKTsK
LSAgICB9Ci0KICAgICBnZXQgc2hhZGVyUHJvZ3JhbXMoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IEFycmF5LmZyb20odGhpcy5fc2hhZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAudmFsdWVzKCkpOwpA
QCAtMTMzLDYgKzEzMCw3IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgdGFyZ2V0LkNhbnZhc0FnZW50LmRp
c2FibGUoKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uY2xl
YXIoKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgICAg
ICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgICAgICB0aGlz
Ll9zYXZlZFJlY29yZGluZ3MuY2xlYXIoKTsKQEAgLTE2MSw5ICsxNTksOCBAQCBXSS5DYW52YXNN
YW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBj
b25zb2xlLmFzc2VydCghdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5oYXMoY2FudmFzUGF5bG9h
ZC5jYW52YXNJZCksIGBDYW52YXMgYWxyZWFkeSBleGlzdHMgd2l0aCBpZCAke2NhbnZhc1BheWxv
YWQuY2FudmFzSWR9LmApOwogCiAgICAgICAgIGxldCBjYW52YXMgPSBXSS5DYW52YXMuZnJvbVBh
eWxvYWQoY2FudmFzUGF5bG9hZCk7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uYWRk
KGNhbnZhcyk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuc2V0KGNhbnZhcy5p
ZGVudGlmaWVyLCBjYW52YXMpOwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIHtjYW52YXN9KTsKICAgICB9
CiAKICAgICBjYW52YXNSZW1vdmVkKGNhbnZhc0lkZW50aWZpZXIpCkBAIC0xNzMsNyArMTcwLDE0
IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIGlmICghY2FudmFzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IHRoaXMuX3JlbW92ZUNhbnZhcyhjYW52YXMpOworICAgICAgICB0aGlzLl9zYXZlUmVjb3JkaW5n
cyhjYW52YXMpOworCisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24ucmVtb3ZlKGNhbnZh
cyk7CisKKyAgICAgICAgZm9yIChsZXQgcHJvZ3JhbSBvZiBjYW52YXMuc2hhZGVyUHJvZ3JhbUNv
bGxlY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5k
ZWxldGUocHJvZ3JhbS5pZGVudGlmaWVyKTsKKworICAgICAgICBjYW52YXMuc2hhZGVyUHJvZ3Jh
bUNvbGxlY3Rpb24uY2xlYXIoKTsKICAgICB9CiAKICAgICBjYW52YXNNZW1vcnlDaGFuZ2VkKGNh
bnZhc0lkZW50aWZpZXIsIG1lbW9yeUNvc3QpCkBAIC0yNzUsMjEgKzI3OSwxNCBAQCBXSS5DYW52
YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAg
Ly8gUHJpdmF0ZQogCi0gICAgX3JlbW92ZUNhbnZhcyhjYW52YXMpCisgICAgX3NhdmVSZWNvcmRp
bmdzKGNhbnZhcykKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHByb2dyYW0gb2YgY2FudmFzLnNo
YWRlclByb2dyYW1Db2xsZWN0aW9uKQotICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbUlk
ZW50aWZpZXJNYXAuZGVsZXRlKHByb2dyYW0uaWRlbnRpZmllcik7Ci0KLSAgICAgICAgY2FudmFz
LnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLmNsZWFyKCk7Ci0KICAgICAgICAgZm9yIChsZXQgcmVj
b3JkaW5nIG9mIGNhbnZhcy5yZWNvcmRpbmdDb2xsZWN0aW9uKSB7CiAgICAgICAgICAgICByZWNv
cmRpbmcuc291cmNlID0gbnVsbDsKICAgICAgICAgICAgIHJlY29yZGluZy5jcmVhdGVEaXNwbGF5
TmFtZShyZWNvcmRpbmcuZGlzcGxheU5hbWUpOwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRSZWNv
cmRpbmdzLmFkZChyZWNvcmRpbmcpOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwge3JlY29yZGlu
Z30pOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB7Y2FudmFzfSk7CiAgICAgfQog
CiAgICAgX21haW5SZXNvdXJjZURpZENoYW5nZShldmVudCkKQEAgLTMwMSwxNSArMjk4LDE0IEBA
IFdJLkNhbnZhc01hbmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIFdJLkNhbnZhcy5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOwogCiAg
ICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiB0aGlzLl9jYW52YXNJZGVudGlmaWVyTWFwLnZhbHVl
cygpKQotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNhbnZhcyk7CisgICAgICAgICAg
ICB0aGlzLl9zYXZlUmVjb3JkaW5ncyhjYW52YXMpOwogCi0gICAgICAgIHRoaXMuX3NoYWRlclBy
b2dyYW1JZGVudGlmaWVyTWFwLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rp
b24uY2xlYXIoKTsKICAgICAgICAgdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5jbGVhcigpOwor
ICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtSWRlbnRpZmllck1hcC5jbGVhcigpOwogICAgIH0K
IH07CiAKIFdJLkNhbnZhc01hbmFnZXIuRXZlbnQgPSB7Ci0gICAgQ2FudmFzQWRkZWQ6ICJjYW52
YXMtbWFuYWdlci1jYW52YXMtd2FzLWFkZGVkIiwKLSAgICBDYW52YXNSZW1vdmVkOiAiY2FudmFz
LW1hbmFnZXItY2FudmFzLXdhcy1yZW1vdmVkIiwKICAgICBSZWNvcmRpbmdTYXZlZDogImNhbnZh
cy1tYW5hZ2VyLXJlY29yZGluZy1zYXZlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMK
aW5kZXggMWE4ZGY2OGJiYWRkOGRlOGJmZmIzODA3OTUyNjkyODdhM2EzMzI0Mi4uNzE4NTU1OGFk
M2UwZDk3OWJiMDAxZGI4ZTExMDNkYjgyYWE5ZTA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2Vy
LmpzCkBAIC0zMjMsNyArMzIzLDcgQEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIG5vZGVGb3JJZChub2RlSWQpCiAgICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2lkVG9ET01Ob2RlW25vZGVJZF0gfHwgbnVsbDsKICAgICB9CiAKICAgICBfZG9jdW1lbnRVcGRh
dGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwppbmRleCA3NjMzZGUxYmFl
MGY0MTNmZTEyY2QxYzM2MzM4NGFlZjNmZDg0NjU5Li43Mjk2OTZmMDQxYzE2MmZmOTdjZmIwOTI0
OTdiYmQxNWFiZjlmZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCkBA
IC03ODEsNyArNzgxLDcgQEAgV0kuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklk
KGV2ZW50Lm5vZGVJZCkgfHwgbnVsbDsKKyAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9t
TWFuYWdlci5ub2RlRm9ySWQoZXZlbnQubm9kZUlkKTsKICAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGRvbU5vZGUpOwogCiAgICAgICAgICAgICByZWNvcmQgPSBuZXcgV0kuTWVkaWFUaW1lbGlu
ZVJlY29yZChldmVudFR5cGUsIGRvbU5vZGUsIGRldGFpbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NhbnZhcy5zdmcgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZGJkNjU3ZDkzMjZhYWEwY2U2NGY2ZDdlZjAzMWRmODE2YWYy
Y2ZlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZworKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRm
LTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9v
dCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxyZWN0IHg9IjEuNSIg
eT0iMi41IiB3aWR0aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVu
dENvbG9yIi8+Ci0gICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3IDMgMTEgMyAxMiAx
MyAxMiAxMyAxMSAxMSA4Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9HcmFwaGljcy5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3Y2Fm
M2ExNDlmNjk0NWI2MTg2ZDg0YjYxNTg3NjljYWYwYTY0YTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvR3JhcGhpY3Muc3ZnCkBA
IC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwh
LS0gQ29weXJpZ2h0IMKpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4K
KzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lv
bj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgorICAgIDxyZWN0IHg9IjEuNSIgeT0iMi41IiB3
aWR0aD0iMTMiIGhlaWdodD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+
CisgICAgPHBvbHlnb24gcG9pbnRzPSIxMSA4IDkgMTEgNiA3IDMgMTEgMyAxMiAxMyAxMiAxMyAx
MSAxMSA4Ii8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01haW4uaHRtbAppbmRleCBkZDFkNGM2MWIzNDkzZTE5NjdlM2I3N2FhODQ1OGFhZWFhODczNGU2
Li41Yjg1NjUyMjE2NDRiZTFhNWYyZTZmYjEzNzQ3ZjY0YzhlYmI0YmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0zMCw2ICszMCw5IEBA
CiAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkV4dGVybmFsL0NvZGVNaXJyb3Iv
Y29kZW1pcnJvci5jc3MiPgogCisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBh
bmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BcHBsaWNh
dGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9BdWRpdFRlc3RDYXNlQ29udGVudFZpZXcu
Y3NzIj4KQEAgLTU2LDcgKzU5LDYgQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IlZpZXdzL0NhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIj4KICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5j
c3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ2FudmFzVGFiQ29u
dGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0No
YW5nZXNEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9DaGFydERldGFpbHNTZWN0aW9uUm93LmNzcyI+CiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9DaGVja2JveE5hdmlnYXRpb25JdGVtLmNzcyI+CkBA
IC0xMTMsNiArMTE1LDggQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0dvVG9MaW5lRGlhbG9nLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9HcmFkaWVudEVkaXRvci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvR3JhZGllbnRTbGlkZXIuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5jc3MiPgorICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3Mi
PgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSGVhcEFsbG9jYXRpb25z
VGltZWxpbmVPdmVydmlld0dyYXBoLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuY3NzIj4KICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0hlYXBTbmFwc2hvdEluc3RhbmNlc0NvbnRlbnRW
aWV3LmNzcyI+CkBAIC0zNDksNiArMzUzLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wv
V29ya2VyT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9C
cmVha3BvaW50QWN0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Nv
bGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29uc29sZU1l
c3NhZ2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5zdHJ1bWVudC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VDb2RlLmpzIj48L3Nj
cmlwdD4KQEAgLTM2MSw2ICszNjYsOCBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xvY2FsU2NyaXB0LmpzIj48
L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQW5pbWF0aW9uLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQXBwbGljYXRpb25DYWNoZUZyYW1lLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVNYW5pZmVz
dC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CYWNrRm9yd2FyZEVudHJ5
LmpzIj48L3NjcmlwdD4KQEAgLTM4MCw3ICszODcsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvQ2FudmFzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0Nv
bGxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlv
bkVudHJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25F
bnRyeVByZXZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVj
dGlvblR5cGVzLmpzIj48L3NjcmlwdD4KQEAgLTU2Niw5ICs1NzIsOSBAQAogICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9TdHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvQ29uc29sZVRhYkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iVmlld3MvRWxlbWVudHNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9MYXllcnNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TY3JpcHRUcmVlRWxlbWVudC5qcyI+PC9zY3Jp
cHQ+CkBAIC01OTQsNiArNjAwLDkgQEAKIAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0
ZUJ1dHRvbk5hdmlnYXRpb25JdGVtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvQWN0aXZhdGVCdXR0b25Ub29sYmFySXRlbS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVEZXRhaWxz
U2lkZWJhclBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQXBwbGlj
YXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CkBA
IC02OTIsNiArNzAxLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvR29Ub0xpbmVEaWFsb2cu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HcmFkaWVudEVkaXRvci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0dyYWRpZW50U2xpZGVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmVEYXRhR3JpZE5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9I
ZWFwQWxsb2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZVBhdGhDb21wb25lbnQuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2
aWV3R3JhcGguanMiPjwvc2NyaXB0PgpAQCAtODU2LDYgKzg2Niw3IEBACiAgICAgPHNjcmlwdCBz
cmM9IkNvbnRyb2xsZXJzL0Fubm90YXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkNvbnRyb2xsZXJzL0NvZGVNaXJyb3JFZGl0aW5nQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAK
KyAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5pbWF0aW9uTWFuYWdlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQmFzaWNCbG9ja0Fu
bm90YXRvci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQW5pbWF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1ZGU1MjVm
NDA2YWQzOGNkNDVmZWRjZDcxYjcxNGYzYTUxMzYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbi5qcwpAQCAtMCww
ICsxLDI3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbiA9IGNsYXNzIEFuaW1hdGlvbiBl
eHRlbmRzIFdJLk9iamVjdAoreworICAgIGNvbnN0cnVjdG9yKGFuaW1hdGlvbklkLCB7Y3NzQW5p
bWF0aW9uTmFtZSwgY3NzVHJhbnNpdGlvblByb3BlcnR5LCBlZmZlY3QsIGJhY2t0cmFjZX0gPSB7
fSkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYW5p
bWF0aW9uSWQpOworICAgICAgICBjb25zb2xlLmFzc2VydCgoIWNzc0FuaW1hdGlvbk5hbWUgJiYg
IWNzc1RyYW5zaXRpb25Qcm9wZXJ0eSkgfHwgISFjc3NBbmltYXRpb25OYW1lICE9PSAhIWNzc1Ry
YW5zaXRpb25Qcm9wZXJ0eSk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uSWQgPSBhbmltYXRp
b25JZDsKKworICAgICAgICB0aGlzLl9jc3NBbmltYXRpb25OYW1lID0gY3NzQW5pbWF0aW9uTmFt
ZSB8fCBudWxsOworICAgICAgICB0aGlzLl9jc3NUcmFuc2l0aW9uUHJvcGVydHkgPSBjc3NUcmFu
c2l0aW9uUHJvcGVydHkgfHwgbnVsbDsKKyAgICAgICAgdGhpcy5fdXBkYXRlRWZmZWN0KGVmZmVj
dCk7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZSA9IGJhY2t0cmFjZSB8fCBbXTsKKworICAgICAg
ICB0aGlzLl9lZmZlY3RUYXJnZXQgPSB1bmRlZmluZWQ7CisgICAgICAgIHRoaXMuX3JlcXVlc3RF
ZmZlY3RUYXJnZXRDYWxsYmFja3MgPSBudWxsOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisg
ICAgc3RhdGljIGZyb21QYXlsb2FkKHBheWxvYWQpCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IFdJLkFuaW1hdGlvbihwYXlsb2FkLmFuaW1hdGlvbklkLCB7CisgICAgICAgICAgICBjc3NBbmlt
YXRpb25OYW1lOiBwYXlsb2FkLmNzc0FuaW1hdGlvbk5hbWUsCisgICAgICAgICAgICBjc3NUcmFu
c2l0aW9uUHJvcGVydHk6IHBheWxvYWQuY3NzVHJhbnNpdGlvblByb3BlcnR5LAorICAgICAgICAg
ICAgZWZmZWN0OiBwYXlsb2FkLmVmZmVjdCwKKyAgICAgICAgICAgIGJhY2t0cmFjZTogQXJyYXku
aXNBcnJheShwYXlsb2FkLmJhY2t0cmFjZSkgPyBwYXlsb2FkLmJhY2t0cmFjZS5tYXAoKGl0ZW0p
ID0+IFdJLkNhbGxGcmFtZS5mcm9tUGF5bG9hZChXSS5tYWluVGFyZ2V0LCBpdGVtKSkgOiBbXSwK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGRpc3BsYXlOYW1lRm9yQW5pbWF0aW9u
VHlwZShhbmltYXRpb25UeXBlLCBwbHVyYWwpCisgICAgeworICAgICAgICBzd2l0Y2ggKGFuaW1h
dGlvblR5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uVHlwZS5XZWJBbmltYXRpb246
CisgICAgICAgICAgICByZXR1cm4gcGx1cmFsID8gV0kuVUlTdHJpbmcoIldlYiBBbmltYXRpb25z
IikgOiBXSS5VSVN0cmluZygiV2ViIEFuaW1hdGlvbiIpOworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5UeXBlLkNTU0FuaW1hdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBwbHVyYWwgPyBXSS5V
SVN0cmluZygiQ1NTIEFuaW1hdGlvbnMiKSA6IFdJLlVJU3RyaW5nKCJDU1MgQW5pbWF0aW9uIik7
CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbjoKKyAgICAgICAg
ICAgIHJldHVybiBwbHVyYWwgPyBXSS5VSVN0cmluZygiQ1NTIFRyYW5zaXRpb25zIikgOiBXSS5V
SVN0cmluZygiQ1NTIFRyYW5zaXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGZhbHNlLCAiVW5rbm93biBhbmltYXRpb24gdHlwZSIsIGFuaW1hdGlvblR5cGUpOwor
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JQ
bGF5YmFja0RpcmVjdGlvbihwbGF5YmFja0RpcmVjdGlvbikKKyAgICB7CisgICAgICAgIHN3aXRj
aCAocGxheWJhY2tEaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJh
Y2tEaXJlY3Rpb24uTm9ybWFsOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJOb3Jt
YWwiLCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gTm9ybWFsIiwgIkluZGljYXRl
cyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlzIG5v
cm1hbCAoZS5nLiBmb3J3YXJkcykiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uUGxheWJh
Y2tEaXJlY3Rpb24uUmV2ZXJzZToKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiUmV2
ZXJzZSIsICJXZWIgQW5pbWF0aW9uIFBsYXliYWNrIERpcmVjdGlvbiBSZXZlcnNlIiwgIkluZGlj
YXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIgYW5pbWF0aW9uIGlz
IHJldmVyc2VkIChlLmcuIGJhY2t3YXJkcykiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24u
UGxheWJhY2tEaXJlY3Rpb24uQWx0ZXJuYXRlOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3Ry
aW5nKCJBbHRlcm5hdGUiLCAiV2ViIEFuaW1hdGlvbiBQbGF5YmFjayBEaXJlY3Rpb24gQWx0ZXJu
YXRlIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhpcyB3ZWIg
YW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiBub3JtYWwgYW5kIHJldmVyc2VkIG9uIGVhY2gg
aXRlcmF0aW9uIik7CisgICAgICAgIGNhc2UgV0kuQW5pbWF0aW9uLlBsYXliYWNrRGlyZWN0aW9u
LkFsdGVybmF0ZVJldmVyc2U6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJpbmcoIkFsdGVy
bmF0ZSBSZXZlcnNlIiwgIldlYiBBbmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIEFsdGVybmF0
ZSBSZXZlcnNlIiwgIkluZGljYXRlcyB0aGF0IHRoZSBwbGF5YmFjayBkaXJlY3Rpb24gb2YgdGhp
cyB3ZWIgYW5pbWF0aW9uIGFsdGVybmF0ZXMgYmV0d2VlbiByZXZlcnNlZCBhbmQgbm9ybWFsIG9u
IGVhY2ggaXRlcmF0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChm
YWxzZSwgIlVua25vd24gcGxheWJhY2sgZGlyZWN0aW9uIiwgcGxheWJhY2tEaXJlY3Rpb24pOwor
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JG
aWxsTW9kZShmaWxsTW9kZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZmlsbE1vZGUpIHsKKyAg
ICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuTm9uZToKKyAgICAgICAgICAgIHJldHVy
biBXSS5VSVN0cmluZygiTm9uZSIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBOb25lIiwgIklu
ZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBkb2VzIG5vdCBhcHBseSBhbnkgc3R5bGVz
IGJlZm9yZSBpdCBiZWdpbnMgYW5kIGFmdGVyIGl0IGVuZHMiKTsKKyAgICAgICAgY2FzZSBXSS5B
bmltYXRpb24uRmlsbE1vZGUuRm9yd2FyZHM6CisgICAgICAgICAgICByZXR1cm4gV0kuVUlTdHJp
bmcoIkZvcndhcmRzIiwgIldlYiBBbmltYXRpb24gRmlsbCBNb2RlIEZvcndhcmRzIiwgIkluZGlj
YXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGFmdGVyIGl0
IGVuZHMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUuQmFja3dhcmRzOgor
ICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJCYWNrd2FyZHMiLCAiV2ViIEFuaW1hdGlv
biBGaWxsIE1vZGUgQmFja3dhcmRzIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlv
biBhbHNvIGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMiKTsKKyAgICAgICAgY2FzZSBX
SS5BbmltYXRpb24uRmlsbE1vZGUuQm90aDoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmlu
ZygiQm90aCIsICJXZWIgQW5pbWF0aW9uIEZpbGwgTW9kZSBCb3RoIiwgIkluZGljYXRlcyB0aGF0
IHRoaXMgd2ViIGFuaW1hdGlvbiBhbHNvIGFwcGxpZXMgc3R5bGVzIGJlZm9yZSBpdCBiZWdpbnMg
YW5kIGFmdGVyIGl0IGVuZHMiKTsKKyAgICAgICAgY2FzZSBXSS5BbmltYXRpb24uRmlsbE1vZGUu
QXV0bzoKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQXV0byIsICJXZWIgQW5pbWF0
aW9uIEZpbGwgTW9kZSBBdXRvIiwgIkluZGljYXRlcyB0aGF0IHRoaXMgd2ViIGFuaW1hdGlvbiBl
aXRoZXIgZG9lcyBub3QgYXBwbHkgYW55IHN0eWxlcyBiZWZvcmUgaXQgYmVnaW5zIGFuZCBhZnRl
ciBpdCBlbmRzIG9yIHRoYXQgaXQgYXBwbGllcyB0byBib3RoLCBkZXBlbmRpbmcgb24gaXQncyBj
b25maWd1cmF0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChmYWxz
ZSwgIlVua25vd24gZmlsbCBtb2RlIiwgZmlsbE1vZGUpOworICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICB9CisKKyAgICBzdGF0aWMgcmVzZXRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcnMoKQorICAg
IHsKKyAgICAgICAgV0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIgPSAx
OworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGFuaW1hdGlvbklkKCkgeyByZXR1
cm4gdGhpcy5fYW5pbWF0aW9uSWQ7IH0KKyAgICBnZXQgYmFja3RyYWNlKCkgeyByZXR1cm4gdGhp
cy5fYmFja3RyYWNlOyB9CisKKyAgICBnZXQgYW5pbWF0aW9uVHlwZSgpCisgICAgeworICAgICAg
ICBpZiAodGhpcy5fY3NzQW5pbWF0aW9uTmFtZSkKKyAgICAgICAgICAgIHJldHVybiBXSS5Bbmlt
YXRpb24uVHlwZS5DU1NBbmltYXRpb247CisgICAgICAgIGlmICh0aGlzLl9jc3NUcmFuc2l0aW9u
UHJvcGVydHkpCisgICAgICAgICAgICByZXR1cm4gV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNp
dGlvbjsKKyAgICAgICAgcmV0dXJuIFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbjsKKyAg
ICB9CisKKyAgICBnZXQgc3RhcnREZWxheSgpCisgICAgeworICAgICAgICByZXR1cm4gInN0YXJ0
RGVsYXkiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5zdGFydERlbGF5IDogTmFOOwor
ICAgIH0KKworICAgIGdldCBlbmREZWxheSgpCisgICAgeworICAgICAgICByZXR1cm4gImVuZERl
bGF5IiBpbiB0aGlzLl9lZmZlY3QgPyB0aGlzLl9lZmZlY3QuZW5kRGVsYXkgOiBOYU47CisgICAg
fQorCisgICAgZ2V0IGl0ZXJhdGlvbkNvdW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaXRl
cmF0aW9uQ291bnQiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC5pdGVyYXRpb25Db3Vu
dCA6IE5hTjsKKyAgICB9CisKKyAgICBnZXQgaXRlcmF0aW9uU3RhcnQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuICJpdGVyYXRpb25TdGFydCIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5fZWZmZWN0
Lml0ZXJhdGlvblN0YXJ0IDogTmFOOworICAgIH0KKworICAgIGdldCBpdGVyYXRpb25EdXJhdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gIml0ZXJhdGlvbkR1cmF0aW9uIiBpbiB0aGlzLl9l
ZmZlY3QgPyB0aGlzLl9lZmZlY3QuaXRlcmF0aW9uRHVyYXRpb24gOiBOYU47CisgICAgfQorCisg
ICAgZ2V0IHRpbWluZ0Z1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAidGltaW5nRnVu
Y3Rpb24iIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVjdC50aW1pbmdGdW5jdGlvbiA6IG51
bGw7CisgICAgfQorCisgICAgZ2V0IHBsYXliYWNrRGlyZWN0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiAicGxheWJhY2tEaXJlY3Rpb24iIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMuX2VmZmVj
dC5wbGF5YmFja0RpcmVjdGlvbiA6IG51bGw7CisgICAgfQorCisgICAgZ2V0IGZpbGxNb2RlKCkK
KyAgICB7CisgICAgICAgIHJldHVybiAiZmlsbE1vZGUiIGluIHRoaXMuX2VmZmVjdCA/IHRoaXMu
X2VmZmVjdC5maWxsTW9kZSA6IG51bGw7CisgICAgfQorCisgICAgZ2V0IGtleWZyYW1lcygpCisg
ICAgeworICAgICAgICByZXR1cm4gImtleWZyYW1lcyIgaW4gdGhpcy5fZWZmZWN0ID8gdGhpcy5f
ZWZmZWN0LmtleWZyYW1lcyA6IFtdOworICAgIH0KKworICAgIGdldCBkaXNwbGF5TmFtZSgpCisg
ICAgeworICAgICAgICBpZiAodGhpcy5fY3NzQW5pbWF0aW9uTmFtZSkKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9jc3NBbmltYXRpb25OYW1lOworCisgICAgICAgIGlmICh0aGlzLl9jc3NUcmFu
c2l0aW9uUHJvcGVydHkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY3NzVHJhbnNpdGlvblBy
b3BlcnR5OworCisgICAgICAgIGlmICghdGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIpCisg
ICAgICAgICAgICB0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IFdJLkFuaW1hdGlvbi5f
bmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKys7CisgICAgICAgIHJldHVybiBXSS5VSVN0cmlu
ZygiQW5pbWF0aW9uICVkIikuZm9ybWF0KHRoaXMuX3VuaXF1ZURpc3BsYXlOYW1lTnVtYmVyKTsK
KyAgICB9CisKKyAgICByZXF1ZXN0RWZmZWN0VGFyZ2V0KGNhbGxiYWNrKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2VmZmVjdFRhcmdldCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICBj
YWxsYmFjayh0aGlzLl9lZmZlY3RUYXJnZXQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MpIHsK
KyAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RFZmZlY3RUYXJnZXRDYWxsYmFja3MucHVzaChjYWxs
YmFjayk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9y
ZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2tzID0gW2NhbGxiYWNrXTsKKworICAgICAgICBXSS5k
b21NYW5hZ2VyLmVuc3VyZURvY3VtZW50KCk7CisKKyAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFz
c3VtaW5nTWFpblRhcmdldCgpOworICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQucmVxdWVz
dEVmZmVjdFRhcmdldCh0aGlzLl9hbmltYXRpb25JZCwgKGVycm9yLCBub2RlSWQpID0+IHsKKyAg
ICAgICAgICAgIHRoaXMuX2VmZmVjdFRhcmdldCA9ICFlcnJvciA/IFdJLmRvbU1hbmFnZXIubm9k
ZUZvcklkKG5vZGVJZCkgOiBudWxsOworCisgICAgICAgICAgICBmb3IgKGxldCByZXF1ZXN0RWZm
ZWN0VGFyZ2V0Q2FsbGJhY2sgb2YgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNrcykK
KyAgICAgICAgICAgICAgICByZXF1ZXN0RWZmZWN0VGFyZ2V0Q2FsbGJhY2sodGhpcy5fZWZmZWN0
VGFyZ2V0KTsKKworICAgICAgICAgICAgdGhpcy5fcmVxdWVzdEVmZmVjdFRhcmdldENhbGxiYWNr
cyA9IG51bGw7CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8vIEFuaW1hdGlvbk1hbmFnZXIK
KworICAgIGVmZmVjdENoYW5nZWQoZWZmZWN0KQorICAgIHsKKyAgICAgICAgdGhpcy5fdXBkYXRl
RWZmZWN0KGVmZmVjdCk7CisgICAgfQorCisgICAgdGFyZ2V0Q2hhbmdlZCgpCisgICAgeworICAg
ICAgICB0aGlzLl9lZmZlY3RUYXJnZXQgPSB1bmRlZmluZWQ7CisKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQpOwor
ICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF91cGRhdGVFZmZlY3QoZWZmZWN0KQorICAg
IHsKKyAgICAgICAgdGhpcy5fZWZmZWN0ID0gZWZmZWN0IHx8IHt9OworCisgICAgICAgIGlmICh0
aGlzLl9lZmZlY3QudGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICB0aGlzLl9lZmZlY3QudGlt
aW5nRnVuY3Rpb24gPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRoaXMuX2VmZmVjdC50aW1p
bmdGdW5jdGlvbik7CisKKyAgICAgICAgaWYgKHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsKKyAg
ICAgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIHRoaXMuX2VmZmVjdC5rZXlmcmFtZXMpIHsK
KyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuZWFzaW5nKQorICAgICAgICAgICAgICAgICAg
ICBrZXlmcmFtZS5lYXNpbmcgPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKGtleWZyYW1lLmVh
c2luZyk7CisKKyAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWUuc3R5bGUpCisgICAgICAgICAg
ICAgICAgICAgIGtleWZyYW1lLnN0eWxlID0ga2V5ZnJhbWUuc3R5bGUucmVwbGFjZUFsbCgvO1xz
Ky9nLCAiO1xuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCk7
CisgICAgfQorfTsKKworV0kuQW5pbWF0aW9uLl9uZXh0VW5pcXVlRGlzcGxheU5hbWVOdW1iZXIg
PSAxOworCitXSS5BbmltYXRpb24uVHlwZSA9IHsKKyAgICBXZWJBbmltYXRpb246ICJ3ZWItYW5p
bWF0aW9uIiwKKyAgICBDU1NBbmltYXRpb246ICJjc3MtYW5pbWF0aW9uIiwKKyAgICBDU1NUcmFu
c2l0aW9uOiAiY3NzLXRyYW5zaXRpb24iLAorfTsKKworV0kuQW5pbWF0aW9uLlBsYXliYWNrRGly
ZWN0aW9uID0geworICAgIE5vcm1hbDogIm5vcm1hbCIsCisgICAgUmV2ZXJzZTogInJldmVyc2Ui
LAorICAgIEFsdGVybmF0ZTogImFsdGVybmF0ZSIsCisgICAgQWx0ZXJuYXRlUmV2ZXJzZTogImFs
dGVybmF0ZS1yZXZlcnNlIiwKK307CisKK1dJLkFuaW1hdGlvbi5GaWxsTW9kZSA9IHsKKyAgICBO
b25lOiAibm9uZSIsCisgICAgRm9yd2FyZHM6ICJmb3J3YXJkcyIsCisgICAgQmFja3dhcmRzOiAi
YmFja3dhcmRzIiwKKyAgICBCb3RoOiAiYm90aCIsCisgICAgQXV0bzogImF1dG8iLAorfTsKKwor
V0kuQW5pbWF0aW9uLkV2ZW50ID0geworICAgIEVmZmVjdENoYW5nZWQ6ICJhbmltYXRpb24tZWZm
ZWN0LWNoYW5nZWQiLAorICAgIFRhcmdldENoYW5nZWQ6ICJhbmltYXRpb24tdGFyZ2V0LWNoYW5n
ZWQiLAorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0FuaW1hdGlvbkNvbGxlY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEy
OGE3YjE0OGRlZWJlOGVhNTc2ZmRiMWRhYjBiNWIwYmM0OTFkZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmltYXRpb25Db2xs
ZWN0aW9uLmpzCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuQW5pbWF0aW9uQ29s
bGVjdGlvbiA9IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBXSS5Db2xsZWN0aW9u
Cit7CisgICAgY29uc3RydWN0b3IoYW5pbWF0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCFhbmltYXRpb25UeXBlIHx8IE9iamVjdC52YWx1ZXMoV0kuQW5pbWF0aW9uLlR5
cGUpLmluY2x1ZGVzKGFuaW1hdGlvblR5cGUpKTsKKworICAgICAgICBzdXBlcigpOworCisgICAg
ICAgIHRoaXMuX2FuaW1hdGlvblR5cGUgPSBhbmltYXRpb25UeXBlIHx8IG51bGw7CisKKyAgICAg
ICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKQorICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9u
Q29sbGVjdGlvbkZvclR5cGVNYXAgPSBudWxsOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisg
ICAgZ2V0IGFuaW1hdGlvblR5cGUoKSB7IHJldHVybiB0aGlzLl9hbmltYXRpb25UeXBlOyB9CisK
KyAgICBnZXQgZGlzcGxheU5hbWUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlv
blR5cGUpIHsKKyAgICAgICAgICAgIGNvbnN0IHBsdXJhbCA9IHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4gV0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yVHlwZSh0aGlzLl9hbmltYXRpb25UeXBl
LCBwbHVyYWwpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCJXZWIg
QW5pbWF0aW9ucyIpOworICAgIH0KKworICAgIG9iamVjdElzUmVxdWlyZWRUeXBlKG9iamVjdCkK
KyAgICB7CisgICAgICAgIGlmICghKG9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbikpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICF0aGlzLl9hbmltYXRp
b25UeXBlIHx8IG9iamVjdC5hbmltYXRpb25UeXBlID09PSB0aGlzLl9hbmltYXRpb25UeXBlOwor
ICAgIH0KKworICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGFuaW1hdGlvblR5cGUpCisg
ICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFdJLkFuaW1hdGlvbi5U
eXBlKS5pbmNsdWRlcyhhbmltYXRpb25UeXBlKSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2FuaW1h
dGlvblR5cGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGFuaW1hdGlvblR5cGUgPT09
IHRoaXMuX2FuaW1hdGlvblR5cGUpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwKQor
ICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGVNYXAgPSBuZXcgTWFw
OworCisgICAgICAgIGxldCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSA9IHRoaXMuX2FuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLmdldChhbmltYXRpb25UeXBlKTsKKyAgICAgICAgaWYg
KCFhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSkgeworICAgICAgICAgICAgYW5pbWF0aW9uQ29s
bGVjdGlvbkZvclR5cGUgPSBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbihhbmltYXRpb25UeXBl
KTsKKyAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnNldChh
bmltYXRpb25UeXBlLCBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlOworICAgIH0KKworICAgIC8v
IFByb3RlY3RlZAorCisgICAgaXRlbUFkZGVkKGl0ZW0pCisgICAgeworICAgICAgICBzdXBlci5p
dGVtQWRkZWQoaXRlbSk7CisKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25UeXBlKSB7Cisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlzLmFuaW1hdGlv
bkNvbGxlY3Rpb25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAgICAgICBhbmlt
YXRpb25Db2xsZWN0aW9uRm9yVHlwZS5hZGQoaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpdGVtUmVtb3ZlZChpdGVtKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25U
eXBlKSB7CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUgPSB0aGlz
LmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKGl0ZW0uYW5pbWF0aW9uVHlwZSk7CisgICAgICAg
ICAgICBhbmltYXRpb25Db2xsZWN0aW9uRm9yVHlwZS5yZW1vdmUoaXRlbSk7CisgICAgICAgIH0K
KworICAgICAgICBzdXBlci5pdGVtUmVtb3ZlZChpdGVtKTsKKyAgICB9CisKKyAgICBpdGVtc0Ns
ZWFyZWQoaXRlbXMpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uQ29sbGVjdGlv
bkZvclR5cGVNYXApIHsKKyAgICAgICAgICAgIGZvciAobGV0IGFuaW1hdGlvbkNvbGxlY3Rpb25G
b3JUeXBlIG9mIHRoaXMuX2FuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlTWFwLnZhbHVlcygpKQor
ICAgICAgICAgICAgICAgIGFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlLmNsZWFyKCk7CisgICAg
ICAgIH0KKworICAgICAgICBzdXBlci5pdGVtc0NsZWFyZWQoaXRlbXMpOworICAgIH0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVk
aXRUZXN0Q2FzZVJlc3VsdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCmluZGV4IGM5Y2MzOTYyZTgwZmI2NmZlMTVk
YTEzNTRlYTI5MjZiZjg0MWNkY2UuLjMxZDYyN2Q4MTFiZDYzMzJkYzQ4MDg1Zjk3ZGY1MDY0ZDIw
MTI3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCkBAIC0xNDYsNyArMTQ2
LDcgQEAgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCA9IGNsYXNzIEF1ZGl0VGVzdENhc2VSZXN1bHQg
ZXh0ZW5kcyBXSS5BdWRpdFRlc3RSZXN1bHRCYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQgPSBhd2FpdCBk
b2N1bWVudE5vZGUucXVlcnlTZWxlY3Rvcihkb21Ob2RlU3RyaW5nKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGNhdGNoIHsgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpIHx8IG51bGw7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NhbnZhcy5qcwppbmRleCA2MmJhMjY0MTA1YWFlZGY0YmE1ZTJiZTM3NTVh
MmI1ZDM4YmNmYWQzLi5mZjcxYWY2ZDQzZDI3NmMxMWY3NDM2MjNiODMyZjk0YjYxZWZlMmZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2Fu
dmFzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
YW52YXMuanMKQEAgLTk3LDcgKzk3LDcgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFzIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJE
OgogICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCIyRCIpOwogICAgICAgICBjYXNlIFdJ
LkNhbnZhcy5Db250ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcjoKLSAgICAgICAgICAgIHJldHVybiBX
SS51bmxvY2FsaXplZFN0cmluZygiQml0bWFwIFJlbmRlcmVyIik7CisgICAgICAgICAgICByZXR1
cm4gV0kuVUlTdHJpbmcoIkJpdG1hcCBSZW5kZXJlciIsICJDYW52YXMgQ29udGV4dCBUeXBlIEJp
dG1hcCBSZW5kZXJlciIsICJCaXRtYXAgUmVuZGVyZXIgaXMgYSB0eXBlIG9mIHJlbmRlcmluZyBj
b250ZXh0IGFzc29jaWF0ZWQgd2l0aCBhIDxjYW52YXM+IGVsZW1lbnQiKTsKICAgICAgICAgY2Fz
ZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0w6CiAgICAgICAgICAgICByZXR1cm4gV0kudW5s
b2NhbGl6ZWRTdHJpbmcoIldlYkdMIik7CiAgICAgICAgIGNhc2UgV0kuQ2FudmFzLkNvbnRleHRU
eXBlLldlYkdMMjoKQEAgLTEwNiw5ICsxMDYsMTAgQEAgV0kuQ2FudmFzID0gY2xhc3MgQ2FudmFz
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJp
bmcoIldlYiBHUFUiKTsKICAgICAgICAgY2FzZSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViTWV0
YWw6CiAgICAgICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYk1ldGFsIik7
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBjb25zb2xlLmVycm9yKCJJbnZhbGlkIGNh
bnZhcyBjb250ZXh0IHR5cGUiLCBjb250ZXh0VHlwZSk7CiAgICAgICAgIH0KKworICAgICAgICBj
b25zb2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gY2FudmFzIGNvbnRleHQgdHlwZSIsIGNvbnRl
eHRUeXBlKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCiAgICAgc3RhdGljIHJlc2V0
VW5pcXVlRGlzcGxheU5hbWVOdW1iZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCmluZGV4IDFmOGRkN2VmNDVk
NjI5Nzc4Y2Q4Mjg3YmZiOGQzMWIyYTEwODlmMzAuLjUxM2VmNzZhZjU2MTQyOTFlMjg2NGFhZWE1
OGU3NDdjNjhhODRmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcwpAQCAtMTQ4LDYgKzE0OCwyMyBAQCBXSS5S
ZWNvcmRpbmcgPSBjbGFzcyBSZWNvcmRpbmcgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0
dXJuIG5ldyBXSS5SZWNvcmRpbmcocGF5bG9hZC52ZXJzaW9uLCB0eXBlLCBwYXlsb2FkLmluaXRp
YWxTdGF0ZSwgZnJhbWVzLCBwYXlsb2FkLmRhdGEpOwogICAgIH0KIAorICAgIHN0YXRpYyBkaXNw
bGF5TmFtZUZvclJlY29yZGluZ1R5cGUocmVjb3JkaW5nVHlwZSkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAocmVjb3JkaW5nVHlwZSkgeworICAgICAgICBjYXNlIFJlY29yZGluZy5UeXBlLkNhbnZh
czJEOgorICAgICAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCIyRCIpOworICAgICAgICBjYXNl
IFJlY29yZGluZy5UeXBlLkNhbnZhc0JpdG1hcFJlbmRlcmVyOgorICAgICAgICAgICAgcmV0dXJu
IFdJLlVJU3RyaW5nKCJCaXRtYXAgUmVuZGVyZXIiLCAiUmVjb3JkaW5nIFR5cGUgQ2FudmFzIEJp
dG1hcCBSZW5kZXJlciIsICJBIHR5cGUgb2YgY2FudmFzIHJlY29yZGluZyBpbiB0aGUgR3JhcGhp
Y3MgVGFiIik7CisgICAgICAgIGNhc2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0w6CisgICAg
ICAgICAgICByZXR1cm4gV0kudW5sb2NhbGl6ZWRTdHJpbmcoIldlYkdMIik7CisgICAgICAgIGNh
c2UgUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0wyOgorICAgICAgICAgICAgcmV0dXJuIFdJLnVu
bG9jYWxpemVkU3RyaW5nKCJXZWJHTDIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGZhbHNlLCAiVW5rbm93biByZWNvcmRpbmcgdHlwZSIsIHJlY29yZGluZ1R5cGUpOwor
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKICAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JT
d2l6emxlVHlwZShzd2l6emxlVHlwZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3dpenpsZVR5
cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0FuaW1hdGlvbk9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKaW5kZXggYjExOTVlZDBjYTBj
YjBjYTgwNjY4ZTBlOThkYzY3OWRjYWQ5MTdhMy4uN2U1NmU4YmIzOWNiYTBjNjI4MGVhOWNlZGQ0
NWJlNTU0NWYwZjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQW5pbWF0aW9uT2JzZXJ2ZXIuanMKQEAgLTI3
LDYgKzI3LDI2IEBAIFdJLkFuaW1hdGlvbk9ic2VydmVyID0gY2xhc3MgQW5pbWF0aW9uT2JzZXJ2
ZXIgZXh0ZW5kcyBJbnNwZWN0b3JCYWNrZW5kLkRpc3BhdGNoCiB7CiAgICAgLy8gRXZlbnRzIGRl
ZmluZWQgYnkgdGhlICJBbmltYXRpb24iIGRvbWFpbi4KIAorICAgIGFuaW1hdGlvbkNyZWF0ZWQo
YW5pbWF0aW9uKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5hbmltYXRpb25D
cmVhdGVkKGFuaW1hdGlvbik7CisgICAgfQorCisgICAgZWZmZWN0Q2hhbmdlZChhbmltYXRpb25J
ZCwgZWZmZWN0KQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlci5lZmZlY3RDaGFu
Z2VkKGFuaW1hdGlvbklkLCBlZmZlY3QpOworICAgIH0KKworICAgIHRhcmdldENoYW5nZWQoYW5p
bWF0aW9uSWQpCisgICAgeworICAgICAgICBXSS5hbmltYXRpb25NYW5hZ2VyLnRhcmdldENoYW5n
ZWQoYW5pbWF0aW9uSWQpOworICAgIH0KKworICAgIGFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRp
b25JZCkKKyAgICB7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uRGVzdHJv
eWVkKGFuaW1hdGlvbklkKTsKKyAgICB9CisKICAgICB0cmFja2luZ1N0YXJ0KHRpbWVzdGFtcCkK
ICAgICB7CiAgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdlci5hbmltYXRpb25UcmFja2luZ1N0YXJ0
ZWQodGltZXN0YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwppbmRleCBkZDAwYWY1OGMxMjUz
MDU4NmUxYzI4MzAzMmI3MmZkNjI5ZmEzMmQ5Li4yY2JhNTY0ZDRhN2I2YTM4YzE4OWU1NzMzZDNj
ZjNjNjBmYzUxNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCkBAIC0xODgsNiArMTg4LDI1
IEBAIFdJLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9iamVjdAogICAgICAgICB0YXJnZXQu
Q2FudmFzQWdlbnQucmVzb2x2ZUNvbnRleHQoY2FudmFzLmlkZW50aWZpZXIsIG9iamVjdEdyb3Vw
LCB3cmFwQ2FsbGJhY2spOwogICAgIH0KIAorICAgIHN0YXRpYyByZXNvbHZlQW5pbWF0aW9uKGFu
aW1hdGlvbiwgb2JqZWN0R3JvdXAsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodHlwZW9mIGNhbGxiYWNrID09PSAiZnVuY3Rpb24iKTsKKworICAgICAgICBmdW5jdGlv
biB3cmFwQ2FsbGJhY2soZXJyb3IsIG9iamVjdCkgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8
ICFvYmplY3QpCisgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgY2FsbGJhY2soV0kuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2Fk
KG9iamVjdCwgV0kubWFpblRhcmdldCkpOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHRhcmdl
dCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkg
KGlPUyAxMy4xKTogQW5pbWF0aW9uLnJlc29sdmVBbmltYXRpb24gZGlkIG5vdCBleGlzdCB5ZXQu
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRhcmdldC5oYXNDb21tYW5kKCJBbmltYXRpb24ucmVz
b2x2ZUFuaW1hdGlvbiIpKTsKKworICAgICAgICB0YXJnZXQuQW5pbWF0aW9uQWdlbnQucmVzb2x2
ZUFuaW1hdGlvbihhbmltYXRpb24uYW5pbWF0aW9uSWQsIG9iamVjdEdyb3VwLCB3cmFwQ2FsbGJh
Y2spOworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IHRhcmdldCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggMWQ0NDVhMDRj
ZGViZWVjZmE3YjBjYjA4ZWQ2ZmJiZDRiZjQ2MWU4NC4uMGJhNTYwYjk2YzAyMzA2ZWI2MWIzMmJk
ZjRlYWM4OTkyM2RiZjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QuaHRtbApAQCAtMTA4LDYgKzEwOCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3Rv
Y29sL1dvcmtlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQnJlYWtwb2ludEFjdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbnNv
bGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luc3RydW1l
bnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNlQ29kZS5qcyI+
PC9zY3JpcHQ+CkBAIC0xMjEsNiArMTIyLDggQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1Nj
cmlwdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Mb2NhbFNjcmlwdC5q
cyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0FuaW1hdGlvbi5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9BbmltYXRpb25Db2xsZWN0aW9uLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnQuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1BVSW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DUFVUaW1lbGluZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMzcs
NyArMTQwLDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVO
b2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25UeXBlcy5qcyI+PC9zY3JpcHQ+
CkBAIC0yMzgsNiArMjQwLDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUHJveGllcy9IZWFwU25hcHNo
b3RQcm94eS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVhcFNuYXBz
aG90V29ya2VyUHJveHkuanMiPjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL0FuaW1hdGlvbk1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250
cm9sbGVycy9BdWRpdE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250
cm9sbGVycy9BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IkNvbnRyb2xsZXJzL0JyZWFrcG9pbnRMb2dNZXNzYWdlTGV4ZXIuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0Lmpz
CmluZGV4IDNjNDNhZTc4YmUxNzI3NzA3MjliNzAzMmFiZTU0NDQzYzk0NmE4YmIuLjAwNjQ0N2E5
NjdlOWMyMzdmNjBjMTAwMDhiYjQ2MzQ1NzJiN2M0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKQEAgLTcwLDYgKzcwLDcgQEAgV0ku
bG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXSS53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldv
cmtlck1hbmFnZXIsCiAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5ET01E
ZWJ1Z2dlck1hbmFnZXIsCiAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIgPSBuZXcgV0kuQ2FudmFz
TWFuYWdlciwKKyAgICAgICAgV0kuYW5pbWF0aW9uTWFuYWdlciA9IG5ldyBXSS5BbmltYXRpb25N
YW5hZ2VyLAogICAgIF07CiAKICAgICAvLyBSZWdpc3RlciBmb3IgZXZlbnRzLgpAQCAtOTEsNiAr
OTIsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiBXSS5jb250ZW50TG9hZGVkID0gZnVuY3Rp
b24oKQogewogICAgIC8vIFRoaW5ncyB0aGF0IHdvdWxkIG5vcm1hbGx5IGdldCBjYWxsZWQgYnkg
dGhlIFVJLCB0aGF0IHdlIHN0aWxsIHdhbnQgdG8gZG8gaW4gdGVzdHMuCisgICAgV0kuYW5pbWF0
aW9uTWFuYWdlci5lbmFibGUoKTsKICAgICBXSS5hcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5lbmFi
bGUoKTsKICAgICBXSS5jYW52YXNNYW5hZ2VyLmVuYWJsZSgpOwogICAgIFdJLmRhdGFiYXNlTWFu
YWdlci5lbmFibGUoKTsKQEAgLTE4MSw2ICsxODMsNyBAQCBXSS51cGRhdGVWaXNpYmlsaXR5U3Rh
dGUgPSAoKSA9PiB7fTsKICAgICAgICAgICAgIGdldCgpIHsgcmV0dXJuIFdJLm1haW5UYXJnZXQu
X2FnZW50c1tkb21haW5OYW1lXTsgfSwKICAgICAgICAgfSk7CiAgICAgfQorICAgIG1ha2VBZ2Vu
dEdldHRlcigiQW5pbWF0aW9uIik7CiAgICAgbWFrZUFnZW50R2V0dGVyKCJBdWRpdCIpOwogICAg
IG1ha2VBZ2VudEdldHRlcigiQXBwbGljYXRpb25DYWNoZSIpOwogICAgIG1ha2VBZ2VudEdldHRl
cigiQ1BVUHJvZmlsZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Rlc3QvVGVzdEhhcm5lc3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UZXN0L1Rlc3RIYXJuZXNzLmpzCmluZGV4IGQ0NDdiODk1MGI5MzkyMWQwYTg2
MDEzMDY4YThiMzQ4MmI1MzE4ZGMuLmQyZTk5YWYxYjZlODUxMDdkZmQ2NmQ0MWEzMTNhNjRlYWU3
MDBmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvVGVzdEhhcm5lc3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC9UZXN0SGFybmVzcy5qcwpAQCAtMTMxLDYgKzEzMSw0NiBAQCBUZXN0SGFybmVzcyA9
IGNsYXNzIFRlc3RIYXJuZXNzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2V4cGVj
dChUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2UsICFhY3R1YWwsIG1lc3NhZ2UsIGFj
dHVhbCk7CiAgICAgfQogCisgICAgZXhwZWN0RW1wdHkoYWN0dWFsLCBtZXNzYWdlKQorICAgIHsK
KyAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCB0eXBlb2YgYWN0dWFsID09PSAi
c3RyaW5nIikgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0
aW9uVHlwZS5FbXB0eSwgIWFjdHVhbC5sZW5ndGgsIG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2Yg
U2V0IHx8IGFjdHVhbCBpbnN0YW5jZW9mIE1hcCkgeworICAgICAgICAgICAgdGhpcy5fZXhwZWN0
KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5FbXB0eSwgIWFjdHVhbC5zaXplLCBtZXNzYWdl
LCBhY3R1YWwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHR5cGVvZiBhY3R1YWwgPT09ICJvYmplY3QiKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3Qo
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLkVtcHR5LCBpc0VtcHR5T2JqZWN0KGFjdHVhbCks
IG1lc3NhZ2UsIGFjdHVhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICB0aGlzLmZhaWwoImV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBu
b24tb2JqZWN0OlxuICAgIEFjdHVhbDogIiArIHRoaXMuX2V4cGVjdGF0aW9uVmFsdWVBc1N0cmlu
ZyhhY3R1YWwpKTsKKyAgICB9CisKKyAgICBleHBlY3ROb3RFbXB0eShhY3R1YWwsIG1lc3NhZ2Up
CisgICAgeworICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IHR5cGVvZiBhY3R1
YWwgPT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICB0aGlzLl9leHBlY3QoVGVzdEhhcm5lc3Mu
RXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5LCAhIWFjdHVhbC5sZW5ndGgsIG1lc3NhZ2UsIGFjdHVh
bCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWN0dWFs
IGluc3RhbmNlb2YgU2V0IHx8IGFjdHVhbCBpbnN0YW5jZW9mIE1hcCkgeworICAgICAgICAgICAg
dGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgISFhY3R1
YWwuc2l6ZSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAib2JqZWN0IikgeworICAgICAgICAg
ICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5Ob3RFbXB0eSwgIWlz
RW1wdHlPYmplY3QoYWN0dWFsKSwgbWVzc2FnZSwgYWN0dWFsKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZmFpbCgiZXhwZWN0Tm90RW1wdHkgc2hvdWxk
IG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6XG4gICAgQWN0dWFsOiAiICsgdGhpcy5f
ZXhwZWN0YXRpb25WYWx1ZUFzU3RyaW5nKGFjdHVhbCkpOworICAgIH0KKwogICAgIGV4cGVjdE51
bGwoYWN0dWFsLCBtZXNzYWdlKQogICAgIHsKICAgICAgICAgdGhpcy5fZXhwZWN0KFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZS5OdWxsLCBhY3R1YWwgPT09IG51bGwsIG1lc3NhZ2UsIGFjdHVh
bCwgbnVsbCk7CkBAIC0zODEsNiArNDIxLDEwIEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVzdEhh
cm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiAiZXhwZWN0VGhhdCgl
cykiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5GYWxzZToKICAg
ICAgICAgICAgIHJldHVybiAiZXhwZWN0RmFsc2UoJXMpIjsKKyAgICAgICAgY2FzZSBUZXN0SGFy
bmVzcy5FeHBlY3RhdGlvblR5cGUuRW1wdHk6CisgICAgICAgICAgICByZXR1cm4gImV4cGVjdEVt
cHR5KCVzKSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVt
cHR5OgorICAgICAgICAgICAgcmV0dXJuICJleHBlY3ROb3RFbXB0eSglcykiOwogICAgICAgICBj
YXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5OdWxsOgogICAgICAgICAgICAgcmV0dXJu
ICJleHBlY3ROdWxsKCVzKSI7CiAgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRpb25U
eXBlLk5vdE51bGw6CkBAIC00MTYsNiArNDYwLDEwIEBAIFRlc3RIYXJuZXNzID0gY2xhc3MgVGVz
dEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybiAidHJ1dGh5IjsK
ICAgICAgICAgY2FzZSBUZXN0SGFybmVzcy5FeHBlY3RhdGlvblR5cGUuRmFsc2U6CiAgICAgICAg
ICAgICByZXR1cm4gImZhbHNleSI7CisgICAgICAgIGNhc2UgVGVzdEhhcm5lc3MuRXhwZWN0YXRp
b25UeXBlLkVtcHR5OgorICAgICAgICAgICAgcmV0dXJuICJlbXB0eSI7CisgICAgICAgIGNhc2Ug
VGVzdEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVtcHR5OgorICAgICAgICAgICAgcmV0dXJu
ICJub3QgZW1wdHkiOwogICAgICAgICBjYXNlIFRlc3RIYXJuZXNzLkV4cGVjdGF0aW9uVHlwZS5O
b3ROdWxsOgogICAgICAgICAgICAgcmV0dXJuICJub3QgbnVsbCI7CiAgICAgICAgIGNhc2UgVGVz
dEhhcm5lc3MuRXhwZWN0YXRpb25UeXBlLk5vdEVxdWFsOgpAQCAtNDQwLDYgKzQ4OCw4IEBAIFRl
c3RIYXJuZXNzID0gY2xhc3MgVGVzdEhhcm5lc3MgZXh0ZW5kcyBXSS5PYmplY3QKIFRlc3RIYXJu
ZXNzLkV4cGVjdGF0aW9uVHlwZSA9IHsKICAgICBUcnVlOiBTeW1ib2woImV4cGVjdC10cnVlIiks
CiAgICAgRmFsc2U6IFN5bWJvbCgiZXhwZWN0LWZhbHNlIiksCisgICAgRW1wdHk6IFN5bWJvbCgi
ZXhwZWN0LWVtcHR5IiksCisgICAgTm90RW1wdHk6IFN5bWJvbCgiZXhwZWN0LW5vdC1lbXB0eSIp
LAogICAgIE51bGw6IFN5bWJvbCgiZXhwZWN0LW51bGwiKSwKICAgICBOb3ROdWxsOiBTeW1ib2wo
ImV4cGVjdC1ub3QtbnVsbCIpLAogICAgIEVxdWFsOiBTeW1ib2woImV4cGVjdC1lcXVhbCIpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5p
bWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTRhMzhmMTYyYmU1MGU3NDdjYTU3ZmVjMmI3MzkxNTUwZjVkNGFiMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uLWNvbGxlY3Rpb24geworICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiA0cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Bbmlt
YXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVjMWQyY2ZjMWVkOTEw
Yzk1OWIxOThlM2I4OGVmZTc0YTRhZDkyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50
Vmlldy5qcwpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFuaW1hdGlvbkNvbGxl
Y3Rpb25Db250ZW50VmlldyA9IGNsYXNzIEFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbGxlY3Rpb25Db250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9yKHJlcHJl
c2VudGVkT2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db2xsZWN0aW9uKTsKKworICAgICAgICBsZXQg
Y29udGVudFBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKyAg
ICAgICAgbGV0IGRlc2NyaXB0aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgIGRlc2NyaXB0aW9u
RWxlbWVudC5jbGFzc05hbWUgPSAiZGVzY3JpcHRpb24iOworCisgICAgICAgIHN3aXRjaCAocmVw
cmVzZW50ZWRPYmplY3QuYW5pbWF0aW9uVHlwZSkgeworICAgICAgICBjYXNlIFdJLkFuaW1hdGlv
bi5UeXBlLldlYkFuaW1hdGlvbjoKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC50ZXh0
Q29udGVudCA9IFdJLlVJU3RyaW5nKCJXYWl0aW5nIGZvciBhbmltYXRpb25zIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdC4iKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0kuQW5p
bWF0aW9uLlR5cGUuQ1NTQW5pbWF0aW9uOgorICAgICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50
LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIldhaXRpbmcgZm9yIGFuaW1hdGlvbnMgY3JlYXRl
ZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLkFuaW1h
dGlvbi5UeXBlLkNTU1RyYW5zaXRpb246CisgICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQu
dGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgdHJhbnNpdGlvbnMgY3JlYXRl
ZCBieSBDU1MuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjb25z
b2xlLmFzc2VydChkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQpOworCisgICAgICAgIHN1
cGVyKHJlcHJlc2VudGVkT2JqZWN0LCBXSS5BbmltYXRpb25Db250ZW50VmlldywgY29udGVudFBs
YWNlaG9sZGVyKTsKKworICAgICAgICB0aGlzLnNlbGVjdGlvbkVuYWJsZWQgPSB0cnVlOworCisg
ICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhbmltYXRpb24tY29sbGVjdGlvbiIp
OworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNr
ZWQoKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7
CisgICAgICAgICAgICBpZiAoc3VidmlldyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRW
aWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcuaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQo
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgY29udGVudFZp
ZXdBZGRlZChjb250ZW50VmlldykKKyAgICB7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91
c2VFbnRlcik7CisgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2VsZWF2ZSIsIHRoaXMuX2hhbmRsZUNvbnRlbnRWaWV3TW91c2VMZWF2ZSk7CisgICAgfQor
CisgICAgY29udGVudFZpZXdSZW1vdmVkKGNvbnRlbnRWaWV3KQorICAgIHsKKyAgICAgICAgY29u
dGVudFZpZXcuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwgdGhpcy5f
aGFuZGxlQ29udGVudFZpZXdNb3VzZUVudGVyKTsKKyAgICAgICAgY29udGVudFZpZXcuZWxlbWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcy5faGFuZGxlQ29udGVudFZp
ZXdNb3VzZUxlYXZlKTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisgICAgeworICAgICAgICBX
SS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAgc3VwZXIuZGV0
YWNoZWQoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlQ29udGVudFZp
ZXdNb3VzZUVudGVyKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNvbnRlbnRWaWV3ID0gV0ku
Vmlldy5mcm9tRWxlbWVudChldmVudC50YXJnZXQpOworICAgICAgICBpZiAoIShjb250ZW50Vmll
dyBpbnN0YW5jZW9mIFdJLkFuaW1hdGlvbkNvbnRlbnRWaWV3KSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmpl
Y3Q7CisgICAgICAgIGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0KChub2RlKSA9PiB7Cisg
ICAgICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUub3duZXJEb2N1bWVudCkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBub2RlLmhpZ2hsaWdodCgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBfaGFuZGxlQ29udGVudFZpZXdNb3VzZUxlYXZlKGV2ZW50KQorICAgIHsK
KyAgICAgICAgV0kuZG9tTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworICAgIH0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9B
bmltYXRpb25Db250ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M1OTkwNGVm
NzNmMzI4NDg2NDE3ODdiYjhiNmMwYmY5MzdhYTUyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3
LmNzcwpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5jb250ZW50LXZpZXcuYW5pbWF0
aW9uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDEwMCU7CisgICAgbWFy
Z2luOiA0cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1j
b250ZW50KTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQor
CisuY29udGVudC12aWV3LmFuaW1hdGlvbi5zZWxlY3RlZCB7CisgICAgb3V0bGluZTogYXV0byAt
d2Via2l0LWZvY3VzLXJpbmctY29sb3I7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4g
aGVhZGVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cisg
ICAgaGVpZ2h0OiB2YXIoLS1uYXZpZ2F0aW9uLWJhci1oZWlnaHQpOworICAgIHBhZGRpbmc6IDAg
NnB4OworICAgIGZvbnQtc2l6ZTogMTNweDsKK30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24g
PiBoZWFkZXIgPiAudGl0bGVzIHsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCisuY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgIGNv
bG9yOiB2YXIoLS10ZXh0LWNvbG9yLWdyYXktZGFyayk7Cit9CisKKy5jb250ZW50LXZpZXcuYW5p
bWF0aW9uID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7CisgICAgY29sb3I6IHZhcigt
LXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+
IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGU6bm90KDplbXB0eSk6OmJlZm9yZSB7CisgICAg
Y29udGVudDogIlwwMEEwXDIwMTRcMDBBMCI7IC8qICZuYnNwOyZtZGFzaDsmbmJzcDsgKi87Cit9
CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsK
KyAgICBib3JkZXI6IG5vbmU7CisgICAgb3BhY2l0eTogMDsKK30KKworLmNvbnRlbnQtdmlldy5h
bmltYXRpb246aG92ZXIgPiBoZWFkZXIgPiAubmF2aWdhdGlvbi1iYXIgeworICAgIG9wYWNpdHk6
IDE7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgeworICAgIGRpc3Bs
YXk6IGZsZXg7CisgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgYWxpZ24taXRlbXM6
IGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk2JSk7Cit9CisKKy5j
b250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgeworICAgIHdpZHRoOiAxMDAl
OworfQorCitib2R5W2Rpcj1ydGxdIC5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcg
PiBzdmcgeworICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsKK30KKworLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiAucHJldmlldyA+IHN2ZyByZWN0IHsKKyAgICBmaWxsOiB0cmFuc3BhcmVudDsK
K30KKworLmNvbnRlbnQtdmlldy5hbmltYXRpb24gPiAucHJldmlldyA+IHN2ZyA+IC5kZWxheSBs
aW5lIHsKKyAgICBzdHJva2U6IHZhcigtLWJvcmRlci1jb2xvcik7CisgICAgc3Ryb2tlLXdpZHRo
OiAyOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3ZnID4gLmFj
dGl2ZSBwYXRoIHsKKyAgICBmaWxsOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAgIGZp
bGwtb3BhY2l0eTogMC41OworICAgIHN0cm9rZTogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsK
KyAgICBzdHJva2Utd2lkdGg6IDE7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnBy
ZXZpZXcgPiBzdmcgPiAuYWN0aXZlIGNpcmNsZSB7CisgICAgZmlsbDogdmFyKC0tdGV4dC1jb2xv
cik7Cit9CisKKy5jb250ZW50LXZpZXcuYW5pbWF0aW9uID4gLnByZXZpZXcgPiBzdmcgPiAuYWN0
aXZlIGxpbmUgeworICAgIHN0cm9rZTogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgc3Ryb2tlLXdp
ZHRoOiAyOworfQorCisuY29udGVudC12aWV3LmFuaW1hdGlvbiA+IC5wcmV2aWV3ID4gc3BhbiB7
CisgICAgcGFkZGluZzogNHB4OworICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFy
eSk7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAuY29u
dGVudC12aWV3LmFuaW1hdGlvbiA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgeworICAgICAg
ICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7CisgICAgfQorCisgICAgLmNvbnRlbnQtdmlldy5h
bmltYXRpb24gPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKyAgICAgICAgY29sb3I6
IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3
LmFuaW1hdGlvbiA+IC5wcmV2aWV3IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDAlLCAyMCUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FuaW1hdGlvbkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uQ29udGVudFZpZXcuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDlkNjA2N2NmODY0ZDc0ODczMzM0ZGM5ODNmY2EwZmFlNjczYjZiNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fu
aW1hdGlvbkNvbnRlbnRWaWV3LmpzCkBAIC0wLDAgKzEsMzAyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0ku
QW5pbWF0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBBbmltYXRpb25Db250ZW50VmlldyBleHRlbmRz
IFdJLkNvbnRlbnRWaWV3Cit7CisgICAgY29uc3RydWN0b3IocmVwcmVzZW50ZWRPYmplY3QpCisg
ICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLkFuaW1hdGlvbik7CisKKyAgICAgICAgc3VwZXIocmVwcmVzZW50ZWRPYmplY3QpOworCisg
ICAgICAgIHRoaXMuX2FuaW1hdGlvblRhcmdldERPTU5vZGUgPSBudWxsOworICAgICAgICB0aGlz
Ll9jYWNoZWRXaWR0aCA9IE5hTjsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFk
ZCgiYW5pbWF0aW9uIik7CisgICAgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgZ2V0
IHByZXZpZXdIZWlnaHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDQwOworICAgIH0KKworICAg
IC8vIFB1YmxpYworCisgICAgaGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQoKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVk
CisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlv
dXQoKTsKKworICAgICAgICBsZXQgaGVhZGVyRWxlbWVudCA9IHRoaXMuZWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoZWFkZXIiKSk7CisKKyAgICAgICAgbGV0IHRp
dGxlc0NvbnRhaW5lciA9IGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2IikpOworICAgICAgICB0aXRsZXNDb250YWluZXIuY2xhc3NOYW1lID0gInRp
dGxlcyI7CisKKyAgICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IHRpdGxlc0NvbnRhaW5lci5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICB0aXRsZUVs
ZW1lbnQuY2xhc3NOYW1lID0gInRpdGxlIjsKKyAgICAgICAgdGl0bGVFbGVtZW50LnRleHRDb250
ZW50ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNwbGF5TmFtZTsKKworICAgICAgICB0aGlz
Ll9zdWJ0aXRsZUVsZW1lbnQgPSB0aXRsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVtZW50LmNs
YXNzTmFtZSA9ICJzdWJ0aXRsZSI7CisKKyAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSBuZXcg
V0kuTmF2aWdhdGlvbkJhcjsKKworICAgICAgICBsZXQgYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2
aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImFuaW1hdGlvbi10YXJn
ZXQiLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIFRhcmdldCIpLCAiSW1hZ2VzL01hcmt1cC5zdmci
LCAxNiwgMTYpOworICAgICAgICBhbmltYXRpb25UYXJnZXRCdXR0b25OYXZpZ2F0aW9uSXRlbS52
aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHku
TG93OworICAgICAgICBXSS5hZGRNb3VzZURvd25Db250ZXh0TWVudUhhbmRsZXJzKGFuaW1hdGlv
blRhcmdldEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVsZW1lbnQsIHRoaXMuX3BvcHVsYXRlQW5pbWF0
aW9uVGFyZ2V0QnV0dG9uQ29udGV4dE1lbnUuYmluZCh0aGlzKSk7CisgICAgICAgIG5hdmlnYXRp
b25CYXIuYWRkTmF2aWdhdGlvbkl0ZW0oYW5pbWF0aW9uVGFyZ2V0QnV0dG9uTmF2aWdhdGlvbkl0
ZW0pOworCisgICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kKG5hdmlnYXRpb25CYXIuZWxlbWVu
dCk7CisgICAgICAgIHRoaXMuYWRkU3VidmlldyhuYXZpZ2F0aW9uQmFyKTsKKworICAgICAgICB0
aGlzLl9wcmV2aWV3Q29udGFpbmVyID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5j
bGFzc05hbWUgPSAicHJldmlldyI7CisgICAgfQorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAg
ICAgIHN1cGVyLmxheW91dCgpOworCisgICAgICAgIHRoaXMuX3JlZnJlc2hTdWJ0aXRsZSgpOwor
ICAgICAgICB0aGlzLl9yZWZyZXNoUHJldmlldygpOworICAgIH0KKworICAgIHNpemVEaWRDaGFu
Z2UoKQorICAgIHsKKyAgICAgICAgc3VwZXIuc2l6ZURpZENoYW5nZSgpOworCisgICAgICAgIHRo
aXMuX2NhY2hlZFdpZHRoID0gdGhpcy5lbGVtZW50LnJlYWxPZmZzZXRXaWR0aDsKKyAgICB9CisK
KyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgpOworCisgICAg
ICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRpb24u
RXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlRWZmZWN0Q2hhbmdlZCwgdGhpcyk7Cisg
ICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXSS5BbmltYXRp
b24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlVGFyZ2V0Q2hhbmdlZCwgdGhpcyk7
CisgICAgfQorCisgICAgZGV0YWNoZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5UYXJnZXRDaGFu
Z2VkLCB0aGlzLl9oYW5kbGVUYXJnZXRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkFuaW1hdGlvbi5FdmVudC5FZmZl
Y3RDaGFuZ2VkLCB0aGlzLl9oYW5kbGVFZmZlY3RDaGFuZ2VkLCB0aGlzKTsKKworICAgICAgICBz
dXBlci5kZXRhY2hlZCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9yZWZyZXNo
U3VidGl0bGUoKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZXF1ZXN0
RWZmZWN0VGFyZ2V0KChkb21Ob2RlKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25U
YXJnZXRET01Ob2RlID0gZG9tTm9kZTsKKworICAgICAgICAgICAgdGhpcy5fc3VidGl0bGVFbGVt
ZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICBpZiAoZG9tTm9kZSkKKyAgICAgICAg
ICAgICAgICB0aGlzLl9zdWJ0aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoV0kubGlua2lmeU5vZGVS
ZWZlcmVuY2UoZG9tTm9kZSkpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfcmVmcmVzaFBy
ZXZpZXcoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5yZW1vdmVDaGls
ZHJlbigpOworCisgICAgICAgIGxldCBrZXlmcmFtZXMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LmtleWZyYW1lczsKKyAgICAgICAgaWYgKCFrZXlmcmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAg
ICBsZXQgc3BhbiA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpKTsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSBX
SS5VSVN0cmluZygiVGhpcyBhbmltYXRpb24gaGFzIG5vIGtleWZyYW1lcy4iKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBzdGFydERlbGF5ID0gdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5zdGFydERlbGF5IHx8IDA7CisgICAgICAgIGxldCBpdGVyYXRpb25E
dXJhdGlvbiA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaXRlcmF0aW9uRHVyYXRpb24gfHwgMDsK
KyAgICAgICAgbGV0IGVuZERlbGF5ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5lbmREZWxheSB8
fCAwOworICAgICAgICBsZXQgdG90YWxEdXJhdGlvbiA9IHN0YXJ0RGVsYXkgKyBpdGVyYXRpb25E
dXJhdGlvbiArIGVuZERlbGF5OworICAgICAgICBpZiAodG90YWxEdXJhdGlvbiA9PT0gMCkgewor
ICAgICAgICAgICAgbGV0IHNwYW4gPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CisgICAgICAgICAgICBzcGFuLnRleHRD
b250ZW50ID0gV0kuVUlTdHJpbmcoIlRoaXMgYW5pbWF0aW9uIGhhcyBubyBkdXJhdGlvbi4iKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHByZXZpZXdI
ZWlnaHQgPSBXSS5BbmltYXRpb25Db250ZW50Vmlldy5wcmV2aWV3SGVpZ2h0OworCisgICAgICAg
IGNvbnN0IG1hcmtlckhlYWRSYWRpdXMgPSA0OworICAgICAgICBjb25zdCBtYXJrZXJIZWFkUGFk
ZGluZyA9IDI7CisKKyAgICAgICAgLy8gU3F1ZWV6ZSB0aGUgZW50aXJlIHByZXZpZXcgc28gdGhh
dCBtYXJrZXJzIGFyZW4ndCBjdXQgb2ZmLgorICAgICAgICBjb25zdCBzcXVlZXplWFN0YXJ0ID0g
KGl0ZXJhdGlvbkR1cmF0aW9uICYmIHN0YXJ0RGVsYXkpID8gMCA6IG1hcmtlckhlYWRSYWRpdXMg
KyBtYXJrZXJIZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVhFbmQgPSAoaXRlcmF0
aW9uRHVyYXRpb24gJiYgZW5kRGVsYXkpID8gMCA6IG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJI
ZWFkUGFkZGluZzsKKyAgICAgICAgY29uc3Qgc3F1ZWV6ZVlTdGFydCA9IG1hcmtlckhlYWRSYWRp
dXMgKyAobWFya2VySGVhZFBhZGRpbmcgKiAyKTsKKworICAgICAgICAvLyBNb3ZlIHRoZSBlYXNp
bmcgbGluZSBkb3duIHRvIGN1dCBvZmYgdGhlIGJvdHRvbSBib3JkZXIuCisgICAgICAgIGNvbnN0
IGFkanVzdEVhc2luZ1kgPSAwLjU7CisKKyAgICAgICAgbGV0IHNlY29uZHNQZXJQaXhlbCA9IHRo
aXMuX2NhY2hlZFdpZHRoIC8gdG90YWxEdXJhdGlvbjsKKworICAgICAgICBzdGFydERlbGF5ICo9
IHNlY29uZHNQZXJQaXhlbDsKKyAgICAgICAgaXRlcmF0aW9uRHVyYXRpb24gPSAoaXRlcmF0aW9u
RHVyYXRpb24gKiBzZWNvbmRzUGVyUGl4ZWwpIC0gc3F1ZWV6ZVhTdGFydCAtIHNxdWVlemVYRW5k
OworICAgICAgICBlbmREZWxheSAqPSBzZWNvbmRzUGVyUGl4ZWw7CisKKyAgICAgICAgbGV0IHN2
ZyA9IHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgi
c3ZnIikpOworICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgYDAgMCAke3RoaXMu
X2NhY2hlZFdpZHRofSAke3ByZXZpZXdIZWlnaHR9YCk7CisKKyAgICAgICAgZnVuY3Rpb24gYWRk
VGl0bGUocGFyZW50LCB0aXRsZSkgeworICAgICAgICAgICAgbGV0IHRpdGxlRWxlbWVudCA9IHBh
cmVudC5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJ0aXRsZSIpKTsKKyAgICAgICAgICAg
IHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHN0YXJ0RGVsYXkpIHsKKyAgICAgICAgICAgIGxldCBzdGFydERlbGF5Q29udGFpbmVyID0g
c3ZnLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICBzdGFy
dERlbGF5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImRlbGF5IiwgInN0YXJ0Iik7CisKKyAgICAg
ICAgICAgIGxldCBzdGFydERlbGF5TGluZSA9IHN0YXJ0RGVsYXlDb250YWluZXIuYXBwZW5kQ2hp
bGQoY3JlYXRlU1ZHRWxlbWVudCgibGluZSIpKTsKKyAgICAgICAgICAgIHN0YXJ0RGVsYXlMaW5l
LnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQpIC8gMik7
CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoIngyIiwgc3RhcnREZWxh
eSk7CisgICAgICAgICAgICBzdGFydERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkyIiwgKHByZXZp
ZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisgICAgICAgICAgICBsZXQgc3RhcnRE
ZWxheUVsZW1lbnQgPSBzdGFydERlbGF5Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNWR0Vs
ZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICBzdGFydERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1
dGUoIndpZHRoIiwgc3RhcnREZWxheSk7CisgICAgICAgICAgICBzdGFydERlbGF5RWxlbWVudC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsIHByZXZpZXdIZWlnaHQpOworCisgICAgICAgICAgICBjb25z
dCBzdGFydERlbGF5VGl0bGVGb3JtYXQgPSBXSS5VSVN0cmluZygiU3RhcnQgRGVsYXkgJXMiLCAi
V2ViIEFuaW1hdGlvbiBTdGFydCBEZWxheSBUb29sdGlwIiwgIlRvb2x0aXAgZm9yIHNlY3Rpb24g
b2YgZ3JhcGggcmVwcmVzZW50aW5nIGRlbGF5IGJlZm9yZSBhIHdlYiBhbmltYXRpb24gYmVnaW5z
IGFwcGx5aW5nIHN0eWxlcyIpOworICAgICAgICAgICAgYWRkVGl0bGUoc3RhcnREZWxheUVsZW1l
bnQsIHN0YXJ0RGVsYXlUaXRsZUZvcm1hdC5mb3JtYXQoTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN0YXJ0RGVsYXkgLyAxMDAwKSkpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGVuZERlbGF5KSB7CisgICAgICAgICAgICBsZXQgZW5kRGVsYXlDb250YWlu
ZXIgPSBzdmcuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAg
IGVuZERlbGF5Q29udGFpbmVyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZSgk
e3N0YXJ0RGVsYXkgKyBpdGVyYXRpb25EdXJhdGlvbiArIHNxdWVlemVYU3RhcnR9LCAwKWApOwor
ICAgICAgICAgICAgZW5kRGVsYXlDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiZGVsYXkiLCAiZW5k
Iik7CisKKyAgICAgICAgICAgIGxldCBlbmREZWxheUxpbmUgPSBlbmREZWxheUNvbnRhaW5lci5h
cHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJsaW5lIikpOworICAgICAgICAgICAgZW5kRGVs
YXlMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCAocHJldmlld0hlaWdodCArIHNxdWVlemVZU3RhcnQp
IC8gMik7CisgICAgICAgICAgICBlbmREZWxheUxpbmUuc2V0QXR0cmlidXRlKCJ4MiIsIGVuZERl
bGF5KTsKKyAgICAgICAgICAgIGVuZERlbGF5TGluZS5zZXRBdHRyaWJ1dGUoInkyIiwgKHByZXZp
ZXdIZWlnaHQgKyBzcXVlZXplWVN0YXJ0KSAvIDIpOworCisgICAgICAgICAgICBsZXQgZW5kRGVs
YXlFbGVtZW50ID0gZW5kRGVsYXlDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVu
dCgicmVjdCIpKTsKKyAgICAgICAgICAgIGVuZERlbGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoIndp
ZHRoIiwgc3RhcnREZWxheSArIGl0ZXJhdGlvbkR1cmF0aW9uICsgZW5kRGVsYXkpOworICAgICAg
ICAgICAgZW5kRGVsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgcHJldmlld0hlaWdo
dCk7CisKKyAgICAgICAgICAgIGNvbnN0IGVuZERlbGF5VGl0bGVGb3JtYXQgPSBXSS5VSVN0cmlu
ZygiRW5kIERlbGF5ICVzIiwgIldlYiBBbmltYXRpb24gRW5kIERlbGF5IFRvb2x0aXAiLCAiVG9v
bHRpcCBmb3Igc2VjdGlvbiBvZiBncmFwaCByZXByZXNlbnRpbmcgZGVsYXkgYWZ0ZXIgYSB3ZWIg
YW5pbWF0aW9uIGZpbmlzaGVzIGFwcGx5aW5nIHN0eWxlcyIpOworICAgICAgICAgICAgYWRkVGl0
bGUoZW5kRGVsYXlFbGVtZW50LCBlbmREZWxheVRpdGxlRm9ybWF0LmZvcm1hdChOdW1iZXIuc2Vj
b25kc1RvU3RyaW5nKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZW5kRGVsYXkgLyAxMDAwKSkpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGl0ZXJhdGlvbkR1cmF0aW9uKSB7CisgICAgICAgICAg
ICBsZXQgdGltaW5nRnVuY3Rpb24gPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnRpbWluZ0Z1bmN0
aW9uOworCisgICAgICAgICAgICBsZXQgYWN0aXZlRHVyYXRpb25Db250YWluZXIgPSBzdmcuYXBw
ZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgiZyIpKTsKKyAgICAgICAgICAgIGFjdGl2ZUR1cmF0
aW9uQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOworICAgICAgICAgICAgYWN0aXZl
RHVyYXRpb25Db250YWluZXIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7
c3RhcnREZWxheSArIHNxdWVlemVYU3RhcnR9LCAke3NxdWVlemVZU3RhcnR9KWApOworCisgICAg
ICAgICAgICBjb25zdCBzdGFydFkgPSAwOworICAgICAgICAgICAgY29uc3QgZW5kWSA9IHByZXZp
ZXdIZWlnaHQgLSBzcXVlZXplWVN0YXJ0OworICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gZW5k
WSAtIHN0YXJ0WTsKKworICAgICAgICAgICAgZm9yIChsZXQgW2tleWZyYW1lQSwga2V5ZnJhbWVC
XSBvZiBrZXlmcmFtZXMuYWRqYWNlbmNpZXMoKSkgeworICAgICAgICAgICAgICAgIGxldCBzdGFy
dFggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lQS5vZmZzZXQ7CisgICAgICAgICAgICAg
ICAgbGV0IGVuZFggPSBpdGVyYXRpb25EdXJhdGlvbiAqIGtleWZyYW1lQi5vZmZzZXQ7CisgICAg
ICAgICAgICAgICAgbGV0IHdpZHRoID0gZW5kWCAtIHN0YXJ0WDsKKworICAgICAgICAgICAgICAg
IGxldCBlYXNpbmcgPSBrZXlmcmFtZUEuZWFzaW5nIHx8IHRpbWluZ0Z1bmN0aW9uOworCisgICAg
ICAgICAgICAgICAgbGV0IGVhc2luZ0NvbnRhaW5lciA9IGFjdGl2ZUR1cmF0aW9uQ29udGFpbmVy
LmFwcGVuZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImciKSk7CisgICAgICAgICAgICAgICAgZWFz
aW5nQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImVhc2luZyIpOworICAgICAgICAgICAgICAgIGVh
c2luZ0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGUoJHtzdGFy
dFh9LCAke3N0YXJ0WX0pYCk7CisKKyAgICAgICAgICAgICAgICBsZXQgeDEgPSBlYXNpbmcuaW5Q
b2ludC54ICogd2lkdGg7CisgICAgICAgICAgICAgICAgbGV0IHkxID0gKCgxIC0gZWFzaW5nLmlu
UG9pbnQueSkgKiBoZWlnaHQpICsgYWRqdXN0RWFzaW5nWTsKKyAgICAgICAgICAgICAgICBsZXQg
eDIgPSBlYXNpbmcub3V0UG9pbnQueCAqIHdpZHRoOworICAgICAgICAgICAgICAgIGxldCB5MiA9
ICgoMSAtIGVhc2luZy5vdXRQb2ludC55KSAqIGhlaWdodCkgKyBhZGp1c3RFYXNpbmdZOworCisg
ICAgICAgICAgICAgICAgbGV0IGVhc2luZ1BhdGggPSBlYXNpbmdDb250YWluZXIuYXBwZW5kQ2hp
bGQoY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpKTsKKyAgICAgICAgICAgICAgICBlYXNpbmdQYXRo
LnNldEF0dHJpYnV0ZSgiZCIsIGBNIDAgJHtoZWlnaHQgKyBhZGp1c3RFYXNpbmdZfSBDICR7eDF9
ICR7eTF9ICR7eDJ9ICR7eTJ9ICR7d2lkdGh9ICR7YWRqdXN0RWFzaW5nWX0gViAke2hlaWdodCAr
IGFkanVzdEVhc2luZ1l9IFpgKTsKKworICAgICAgICAgICAgICAgIGxldCB0aXRsZVJlY3QgPSBl
YXNpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpKTsKKyAg
ICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHdpZHRoKTsKKyAg
ICAgICAgICAgICAgICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBoZWlnaHQpOwor
CisgICAgICAgICAgICAgICAgYWRkVGl0bGUodGl0bGVSZWN0LCBlYXNpbmcudG9TdHJpbmcoKSk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IGtleWZyYW1lIG9mIGtleWZy
YW1lcykgeworICAgICAgICAgICAgICAgIGxldCB4ID0gaXRlcmF0aW9uRHVyYXRpb24gKiBrZXlm
cmFtZS5vZmZzZXQ7CisKKyAgICAgICAgICAgICAgICBsZXQga2V5ZnJhbWVDb250YWluZXIgPSBh
Y3RpdmVEdXJhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVTVkdFbGVtZW50KCJnIikp
OworICAgICAgICAgICAgICAgIGtleWZyYW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImtleWZy
YW1lIik7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVDb250YWluZXIuc2V0QXR0cmlidXRlKCJ0
cmFuc2Zvcm0iLCBgdHJhbnNsYXRlKCR7eH0sICR7c3RhcnRZfSlgKTsKKworICAgICAgICAgICAg
ICAgIGxldCBrZXlmcmFtZU1hcmtlckhlYWQgPSBrZXlmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGls
ZChjcmVhdGVTVkdFbGVtZW50KCJjaXJjbGUiKSk7CisgICAgICAgICAgICAgICAga2V5ZnJhbWVN
YXJrZXJIZWFkLnNldEF0dHJpYnV0ZSgiciIsIG1hcmtlckhlYWRSYWRpdXMpOworCisgICAgICAg
ICAgICAgICAgbGV0IGtleWZyYW1lTWFya2VyTGluZSA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVu
ZENoaWxkKGNyZWF0ZVNWR0VsZW1lbnQoImxpbmUiKSk7CisgICAgICAgICAgICAgICAga2V5ZnJh
bWVNYXJrZXJMaW5lLnNldEF0dHJpYnV0ZSgieTEiLCBoZWlnaHQpOworCisgICAgICAgICAgICAg
ICAgbGV0IHRpdGxlUmVjdCA9IGtleWZyYW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNW
R0VsZW1lbnQoInJlY3QiKSk7CisgICAgICAgICAgICAgICAgdGl0bGVSZWN0LnNldEF0dHJpYnV0
ZSgieCIsIC0xICogKG1hcmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZykpOworICAg
ICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoInkiLCAtMSAqIHNxdWVlemVZU3Rh
cnQpOworICAgICAgICAgICAgICAgIHRpdGxlUmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgKG1h
cmtlckhlYWRSYWRpdXMgKyBtYXJrZXJIZWFkUGFkZGluZykgKiAyKTsKKyAgICAgICAgICAgICAg
ICB0aXRsZVJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBoZWlnaHQgKyBzcXVlZXplWVN0YXJ0
KTsKKworICAgICAgICAgICAgICAgIGFkZFRpdGxlKHRpdGxlUmVjdCwga2V5ZnJhbWUuc3R5bGUp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgX2hhbmRsZUVmZmVjdENo
YW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoUHJldmlldygpOworICAg
IH0KKworICAgIF9oYW5kbGVUYXJnZXRDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fcmVmcmVzaFN1YnRpdGxlKCk7CisgICAgfQorCisgICAgX3BvcHVsYXRlQW5pbWF0aW9uVGFy
Z2V0QnV0dG9uQ29udGV4dE1lbnUoY29udGV4dE1lbnUpCisgICAgeworICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQW5pbWF0aW9uIiksICgpID0+IHsKKyAg
ICAgICAgICAgIFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlQW5pbWF0aW9uKHRoaXMucmVwcmVzZW50
ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCwgKHJlbW90ZU9i
amVjdCkgPT4geworICAgICAgICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0KQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gV0kuVUlT
dHJpbmcoIlNlbGVjdGVkIEFuaW1hdGlvbiIsICJBcHBlYXJzIGFzIGEgbGFiZWwgd2hlbiBhIGdp
dmVuIHdlYiBhbmltYXRpb24gaXMgbG9nZ2VkIHRvIHRoZSBDb25zb2xlIik7CisgICAgICAgICAg
ICAgICAgY29uc3QgYWRkU3BlY2lhbFVzZXJMb2dDbGFzcyA9IHRydWU7CisgICAgICAgICAgICAg
ICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZEltbWVkaWF0ZUV4ZWN1dGlvbldp
dGhSZXN1bHQodGV4dCwgcmVtb3RlT2JqZWN0LCBhZGRTcGVjaWFsVXNlckxvZ0NsYXNzKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRT
ZXBhcmF0b3IoKTsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uVGFyZ2V0RE9NTm9kZSkK
KyAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRN
ZW51LCB0aGlzLl9hbmltYXRpb25UYXJnZXRET01Ob2RlKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0
YWlsc1NpZGViYXJQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmNzcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWRi
NDZlNDhmMDRjMzk1YTYxYTRiNzRlZWQwMzUzYzIyZmU3MjM0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQW5pbWF0aW9uRGV0YWls
c1NpZGViYXJQYW5lbC5jc3MKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5zaWRlYmFy
ID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9u
LmFuaW1hdGlvbi1rZXlmcmFtZXMgLmhlYWRlciA+IC5zdWJ0aXRsZSB7CisgICAgY29sb3I6IHZh
cigtLXRleHQtY29sb3ItZ3JheS1tZWRpdW0pOworfQorCisuc2lkZWJhciA+IC5wYW5lbC5kZXRh
aWxzLmFuaW1hdGlvbiA+IC5jb250ZW50ID4gLmRldGFpbHMtc2VjdGlvbi5hbmltYXRpb24ta2V5
ZnJhbWVzIC5kZXRhaWxzLXNlY3Rpb24geworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAw
JSwgOTclKTsKK30KKworLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAuY29u
dGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1zZWN0
aW9uIC5yb3cuc3R5bGVzIHsKKyAgICBkaXNwbGF5OiB0YWJsZS1yb3c7Cit9CisKKy5zaWRlYmFy
ID4gLnBhbmVsLmRldGFpbHMuYW5pbWF0aW9uID4gLmNvbnRlbnQgPiAuZGV0YWlscy1zZWN0aW9u
LmFuaW1hdGlvbi1rZXlmcmFtZXMgLmRldGFpbHMtc2VjdGlvbiAucm93LnN0eWxlcyAuQ29kZU1p
cnJvciB7CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHBhZGRpbmc6IDRweCAwOworICAgIGJhY2tn
cm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2No
ZW1lOiBkYXJrKSB7CisgICAgLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5hbmltYXRpb24gPiAu
Y29udGVudCA+IC5kZXRhaWxzLXNlY3Rpb24uYW5pbWF0aW9uLWtleWZyYW1lcyAuZGV0YWlscy1z
ZWN0aW9uIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCAxOCUpOworICAg
IH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA2OTFhNWM4MjMzMDJkMTQ3YTA4ODlkMzY2NGIxNjI1OTU5YjJjYzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9B
bmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworV0kuQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIEFuaW1hdGlvbkRl
dGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5EZXRhaWxzU2lkZWJhclBhbmVsCit7CisgICAg
Y29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIoImFuaW1hdGlvbiIsIFdJLlVJU3Ry
aW5nKCJBbmltYXRpb24iKSk7CisKKyAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0gbnVsbDsKKwor
ICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcCA9IG5ldyBNYXA7CisgICAgfQorCisg
ICAgLy8gUHVibGljCisKKyAgICBpbnNwZWN0KG9iamVjdHMpCisgICAgeworICAgICAgICBpZiAo
IShvYmplY3RzIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICAgICAgb2JqZWN0cyA9IFtvYmpl
Y3RzXTsKKworICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG9iamVjdHMuZmluZCgob2JqZWN0KSA9
PiBvYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb24pOworCisgICAgICAgIHJldHVybiAhIXRo
aXMuYW5pbWF0aW9uOworICAgIH0KKworICAgIGdldCBhbmltYXRpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbjsKKyAgICB9CisKKyAgICBzZXQgYW5pbWF0aW9uKGFu
aW1hdGlvbikKKyAgICB7CisgICAgICAgIGlmIChhbmltYXRpb24gPT09IHRoaXMuX2FuaW1hdGlv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7
CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Bbmlt
YXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uVGFyZ2V0Q2hh
bmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0
aW9uRWZmZWN0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9hbmlt
YXRpb24gPSBhbmltYXRpb24gfHwgbnVsbDsKKworICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9u
KSB7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5Bbmlt
YXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9uRWZmZWN0Q2hh
bmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5l
cihXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCwgdGhpcy5faGFuZGxlQW5pbWF0aW9u
VGFyZ2V0Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLm5lZWRzTGF5
b3V0KCk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkK
KyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICB0aGlzLl9u
YW1lUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJOYW1l
IikpOworICAgICAgICB0aGlzLl90eXBlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxl
Um93KFdJLlVJU3RyaW5nKCJUeXBlIikpOworICAgICAgICB0aGlzLl90YXJnZXRSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlRhcmdldCIsICJXZWIgQW5p
bWF0aW9uIFRhcmdldCBMYWJlbCIsICJMYWJlbCBmb3IgdGhlIGN1cnJlbnQgRE9NIG5vZGUgdGFy
Z2V0IG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsKKworICAgICAgICBjb25zdCBpZGVudGl0eVNlY3Rp
b25UaXRsZSA9IFdJLlVJU3RyaW5nKCJJZGVudGl0eSIsICJXZWIgQW5pbWF0aW9uIElkZW50aXR5
IFRpdGxlIiwgIlNlY3Rpb24gdGl0bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IGEgd2ViIGFuaW1h
dGlvbiIpOworICAgICAgICBsZXQgaWRlbnRpdHlTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uKCJhbmltYXRpb24taWRlbnRpdHkiLCBpZGVudGl0eVNlY3Rpb25UaXRsZSwgW25ldyBXSS5E
ZXRhaWxzU2VjdGlvbkdyb3VwKFt0aGlzLl9uYW1lUm93LCB0aGlzLl90eXBlUm93LCB0aGlzLl90
YXJnZXRSb3ddKV0pOworICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hp
bGQoaWRlbnRpdHlTZWN0aW9uLmVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2l0ZXJhdGlvbkNv
dW50Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3RyaW5nKCJJdGVy
YXRpb25zIiwgIldlYiBBbmltYXRpb24gSXRlcmF0aW9uIENvdW50IExhYmVsIiwgIkxhYmVsIGZv
ciB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAg
ICB0aGlzLl9pdGVyYXRpb25TdGFydFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyhXSS5VSVN0cmluZygiU3RhcnQiLCAiV2ViIEFuaW1hdGlvbiBJdGVyYXRpb24gU3RhcnQgTGFi
ZWwiLCAiTGFiZWwgZm9yIHRoZSBudW1iZXIgZGVzY3JpYmluZyB3aGljaCBpdGVyYXRpb24gYSB3
ZWIgYW5pbWF0aW9uIHNob3VsZCBzdGFydCBhdCIpKTsKKyAgICAgICAgdGhpcy5faXRlcmF0aW9u
RHVyYXRpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmco
IkR1cmF0aW9uIiwgIldlYiBBbmltYXRpb24gSXRlcmF0aW9uIER1cmF0aW9uIExhYmVsIiwgIkxh
YmVsIGZvciB0aGUgdGltZSBkdXJhdGlvbiBvZiBlYWNoIGl0ZXJhdGlvbiBvZiBhIHdlYiBhbmlt
YXRpb24iKSk7CisgICAgICAgIGxldCBpdGVyYXRpb25zR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Hcm91cChbdGhpcy5faXRlcmF0aW9uQ291bnRSb3csIHRoaXMuX2l0ZXJhdGlvblN0YXJ0
Um93LCB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvd10pOworCisgICAgICAgIHRoaXMuX3N0YXJ0
RGVsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIlN0
YXJ0IERlbGF5IiwgIldlYiBBbmltYXRpb24gU3RhcnQgRGVsYXkgTGFiZWwiLCAiTGFiZWwgZm9y
IHRoZSBzdGFydCBkZWxheSB0aW1lIG9mIGEgd2ViIGFuaW1hdGlvbiAiKSk7CisgICAgICAgIHRo
aXMuX2VuZERlbGF5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uU2ltcGxlUm93KFdJLlVJU3Ry
aW5nKCJFbmQgRGVsYXkiLCAiV2ViIEFuaW1hdGlvbiBFbmQgRGVsYXkgTGFiZWwiLCAiTGFiZWwg
Zm9yIHRoZSBlbmQgZGVsYXkgdGltZSBvZiBhIHdlYiBhbmltYXRpb24gIikpOworICAgICAgICB0
aGlzLl90aW1pbmdGdW5jdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhX
SS5VSVN0cmluZygiRWFzaW5nIiwgIldlYiBBbmltYXRpb24gRWFzaW5nIExhYmVsIiwgIkxhYmVs
IGZvciB0aGUgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbiBvZiBhIHdlYiBhbmltYXRpb24i
KSk7CisgICAgICAgIGxldCB0aW1pbmdHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3Vw
KFt0aGlzLl9zdGFydERlbGF5Um93LCB0aGlzLl9lbmREZWxheVJvdywgdGhpcy5fdGltaW5nRnVu
Y3Rpb25Sb3ddKTsKKworICAgICAgICB0aGlzLl9wbGF5YmFja0RpcmVjdGlvblJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRGlyZWN0aW9uIiwgIldlYiBB
bmltYXRpb24gUGxheWJhY2sgRGlyZWN0aW9uIExhYmVsIiwgIkxhYmVsIGZvciB0aGUgcGxheWJh
Y2sgZGlyZWN0aW9uIG9mIGEgd2ViIGFuaW1hdGlvbiIpKTsKKyAgICAgICAgdGhpcy5fZmlsbE1v
ZGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3coV0kuVUlTdHJpbmcoIkZpbGwi
LCAiV2ViIEFuaW1hdGlvbiBGaWxsIE1vZGUgTGFiZWwiLCAiTGFiZWwgZm9yIHRoZSBmaWxsIG1v
ZGUgb2YgYSB3ZWIgYW5pbWF0aW9uIikpOworICAgICAgICBsZXQgZmlsbERpcmVjdGlvbkdyb3Vw
ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RoaXMuX3BsYXliYWNrRGlyZWN0aW9uUm93
LCB0aGlzLl9maWxsTW9kZVJvd10pOworCisgICAgICAgIGNvbnN0IGVmZmVjdFNlY3Rpb25UaXRs
ZSA9IFdJLlVJU3RyaW5nKCJFZmZlY3QiLCAiV2ViIEFuaW1hdGlvbiBFZmZlY3QgVGl0bGUiLCAi
U2VjdGlvbiB0aXRsZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVmZmVjdCBvZiBhIHdlYiBh
bmltYXRpb24iKTsKKyAgICAgICAgbGV0IGVmZmVjdFNlY3Rpb24gPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb24oImFuaW1hdGlvbi1lZmZlY3QiLCBlZmZlY3RTZWN0aW9uVGl0bGUsIFtpdGVyYXRpb25z
R3JvdXAsIHRpbWluZ0dyb3VwLCBmaWxsRGlyZWN0aW9uR3JvdXBdKTsKKyAgICAgICAgdGhpcy5j
b250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGVmZmVjdFNlY3Rpb24uZWxlbWVudCk7CisK
KyAgICAgICAgdGhpcy5fa2V5ZnJhbWVzR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91
cDsKKworICAgICAgICBjb25zdCBrZXlmcmFtZXNTZWN0aW9uVGl0bGUgPSBXSS5VSVN0cmluZygi
S2V5ZnJhbWVzIiwgIldlYiBBbmltYXRpb24gS2V5ZnJhbWVzIFRpdGxlIiwgIlNlY3Rpb24gdGl0
bGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBrZXlmcmFtZXMgb2YgYSB3ZWIgYW5pbWF0aW9u
Iik7CisgICAgICAgIGxldCBrZXlmcmFtZXNTZWN0aW9uID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
KCJhbmltYXRpb24ta2V5ZnJhbWVzIiwga2V5ZnJhbWVzU2VjdGlvblRpdGxlLCBbdGhpcy5fa2V5
ZnJhbWVzR3JvdXBdKTsKKyAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENo
aWxkKGtleWZyYW1lc1NlY3Rpb24uZWxlbWVudCk7CisKKyAgICAgICAgY29uc3Qgc2VsZWN0YWJs
ZSA9IGZhbHNlOworICAgICAgICBsZXQgYmFja3RyYWNlVHJlZU91dGxpbmUgPSBuZXcgV0kuVHJl
ZU91dGxpbmUoc2VsZWN0YWJsZSk7CisgICAgICAgIGJhY2t0cmFjZVRyZWVPdXRsaW5lLmRpc2Ns
b3N1cmVCdXR0b25zID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVRyZWVDb250cm9s
bGVyID0gbmV3IFdJLkNhbGxGcmFtZVRyZWVDb250cm9sbGVyKGJhY2t0cmFjZVRyZWVPdXRsaW5l
KTsKKworICAgICAgICBsZXQgYmFja3RyYWNlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93
OworICAgICAgICBiYWNrdHJhY2VSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChiYWNrdHJhY2VUcmVl
T3V0bGluZS5lbGVtZW50KTsKKworICAgICAgICBjb25zdCBiYWNrdHJhY2VTZWN0aW9uVGl0bGUg
PSBXSS5VSVN0cmluZygiQmFja3RyYWNlIiwgIldlYiBBbmltYXRpb24gQmFja3RyYWNlIFRpdGxl
IiwgIlNlY3Rpb24gdGl0bGUgZm9yIHRoZSBKYXZhU2NyaXB0IGJhY2t0cmFjZSBvZiB0aGUgY3Jl
YXRpb24gb2YgYSB3ZWIgYW5pbWF0aW9uIik7CisgICAgICAgIHRoaXMuX2JhY2t0cmFjZVNlY3Rp
b24gPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImFuaW1hdGlvbi1iYWNrdHJhY2UiLCBiYWNrdHJh
Y2VTZWN0aW9uVGl0bGUsIFtuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYmFja3RyYWNlUm93
XSldKTsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50LmhpZGRlbiA9IHRy
dWU7CisgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9i
YWNrdHJhY2VTZWN0aW9uLmVsZW1lbnQpOworICAgIH0KKworICAgIGxheW91dCgpCisgICAgewor
ICAgICAgICBzdXBlci5sYXlvdXQoKTsKKworICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbikK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlTZWN0
aW9uKCk7CisgICAgICAgIHRoaXMuX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCk7CisgICAgICAgIHRo
aXMuX3JlZnJlc2hCYWNrdHJhY2VTZWN0aW9uKCk7CisKKyAgICAgICAgZm9yIChsZXQgY29kZU1p
cnJvciBvZiB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1hcC52YWx1ZXMoKSkKKyAgICAgICAgICAg
IGNvZGVNaXJyb3IucmVmcmVzaCgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9y
ZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX25hbWVSb3cudmFs
dWUgPSB0aGlzLl9hbmltYXRpb24uZGlzcGxheU5hbWU7CisgICAgICAgIHRoaXMuX3R5cGVSb3cu
dmFsdWUgPSBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JBbmltYXRpb25UeXBlKHRoaXMuX2Fu
aW1hdGlvbi5hbmltYXRpb25UeXBlKTsKKworICAgICAgICB0aGlzLl90YXJnZXRSb3cudmFsdWUg
PSBudWxsOworICAgICAgICB0aGlzLl9hbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldCgoZG9t
Tm9kZSkgPT4geworICAgICAgICAgICAgdGhpcy5fdGFyZ2V0Um93LnZhbHVlID0gZG9tTm9kZSA/
IFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKGRvbU5vZGUpIDogbnVsbDsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgX3JlZnJlc2hFZmZlY3RTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGZvciAo
bGV0IHNlY3Rpb24gb2YgdGhpcy5fY29kZU1pcnJvclNlY3Rpb25NYXAua2V5cygpKQorICAgICAg
ICAgICAgc2VjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkRldGFpbHNTZWN0aW9uLkV2ZW50
LkNvbGxhcHNlZFN0YXRlQ2hhbmdlZCwgdGhpcy5faGFuZGxlRGV0YWlsc1NlY3Rpb25Db2xsYXBz
ZWRTdGF0ZUNoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9jb2RlTWlycm9yU2VjdGlvbk1h
cC5jbGVhcigpOworCisgICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IDA7CisgICAgICAgIGNvbnN0
IHJlYWRPbmx5ID0gdHJ1ZTsKKworICAgICAgICB0aGlzLl9pdGVyYXRpb25Db3VudFJvdy52YWx1
ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uQ291bnQpID8gdGhpcy5fYW5pbWF0
aW9uLml0ZXJhdGlvbkNvdW50LnRvTG9jYWxlU3RyaW5nKCkgOiBudWxsOworICAgICAgICB0aGlz
Ll9pdGVyYXRpb25TdGFydFJvdy52YWx1ZSA9ICFpc05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0
aW9uU3RhcnQpID8gdGhpcy5fYW5pbWF0aW9uLml0ZXJhdGlvblN0YXJ0LnRvTG9jYWxlU3RyaW5n
KCkgOiBudWxsOworICAgICAgICB0aGlzLl9pdGVyYXRpb25EdXJhdGlvblJvdy52YWx1ZSA9ICFp
c05hTih0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24pID8gTnVtYmVyLnNlY29uZHNU
b1N0cmluZyh0aGlzLl9hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb24gLyAxMDAwKSA6IG51bGw7
CisKKyAgICAgICAgdGhpcy5fc3RhcnREZWxheVJvdy52YWx1ZSA9IHRoaXMuX2FuaW1hdGlvbi5z
dGFydERlbGF5ID8gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9hbmltYXRpb24uc3RhcnRE
ZWxheSAvIDEwMDApIDogbnVsbDsKKyAgICAgICAgdGhpcy5fZW5kRGVsYXlSb3cudmFsdWUgPSB0
aGlzLl9hbmltYXRpb24uZW5kRGVsYXkgPyBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2Fu
aW1hdGlvbi5lbmREZWxheSAvIDEwMDApIDogbnVsbDsKKyAgICAgICAgdGhpcy5fdGltaW5nRnVu
Y3Rpb25Sb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24udGltaW5nRnVuY3Rpb24gPyB0aGlzLl9h
bmltYXRpb24udGltaW5nRnVuY3Rpb24udG9TdHJpbmcoKSA6IG51bGw7CisKKyAgICAgICAgdGhp
cy5fcGxheWJhY2tEaXJlY3Rpb25Sb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24ucGxheWJhY2tE
aXJlY3Rpb24gPyBXSS5BbmltYXRpb24uZGlzcGxheU5hbWVGb3JQbGF5YmFja0RpcmVjdGlvbih0
aGlzLl9hbmltYXRpb24ucGxheWJhY2tEaXJlY3Rpb24pIDogbnVsbDsKKyAgICAgICAgdGhpcy5f
ZmlsbE1vZGVSb3cudmFsdWUgPSB0aGlzLl9hbmltYXRpb24uZmlsbE1vZGUgPyBXSS5BbmltYXRp
b24uZGlzcGxheU5hbWVGb3JGaWxsTW9kZSh0aGlzLl9hbmltYXRpb24uZmlsbE1vZGUpIDogbnVs
bDsKKworICAgICAgICBsZXQga2V5ZnJhbWVTZWN0aW9ucyA9IFtdOworICAgICAgICBmb3IgKGxl
dCBrZXlmcmFtZSBvZiB0aGlzLl9hbmltYXRpb24ua2V5ZnJhbWVzKSB7CisgICAgICAgICAgICBs
ZXQgcm93cyA9IFtdOworCisgICAgICAgICAgICBsZXQga2V5ZnJhbWVTZWN0aW9uID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uKCJhbmltYXRpb24ta2V5ZnJhbWUtb2Zmc2V0LSIgKyBrZXlmcmFtZS5v
ZmZzZXQsIE51bWJlci5wZXJjZW50YWdlU3RyaW5nKGtleWZyYW1lLm9mZnNldCwgcHJlY2lzaW9u
KSk7CisgICAgICAgICAgICBrZXlmcmFtZVNlY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5EZXRh
aWxzU2VjdGlvbi5FdmVudC5Db2xsYXBzZWRTdGF0ZUNoYW5nZWQsIHRoaXMuX2hhbmRsZURldGFp
bHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIGtleWZy
YW1lU2VjdGlvbnMucHVzaChrZXlmcmFtZVNlY3Rpb24pOworCisgICAgICAgICAgICBpZiAoa2V5
ZnJhbWUuZWFzaW5nKSB7CisgICAgICAgICAgICAgICAgbGV0IHN1YnRpdGxlID0ga2V5ZnJhbWVT
ZWN0aW9uLmhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpKTsKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZS5jbGFzc05hbWUgPSAic3VidGl0bGUi
OworICAgICAgICAgICAgICAgIHN1YnRpdGxlLnRleHRDb250ZW50ID0gYCAke2VtRGFzaH0gJHtr
ZXlmcmFtZS5lYXNpbmcudG9TdHJpbmcoKX1gOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAoa2V5ZnJhbWUuc3R5bGUpIHsKKyAgICAgICAgICAgICAgICBsZXQgY29kZU1pcnJvckVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgICAgICBs
ZXQgY29kZU1pcnJvciA9IFdJLkNvZGVNaXJyb3JFZGl0b3IuY3JlYXRlKGNvZGVNaXJyb3JFbGVt
ZW50LCB7CisgICAgICAgICAgICAgICAgICAgIG1vZGU6ICJjc3MiLAorICAgICAgICAgICAgICAg
ICAgICByZWFkT25seTogIm5vY3Vyc29yIiwKKyAgICAgICAgICAgICAgICAgICAgbGluZVdyYXBw
aW5nOiB0cnVlLAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGNvZGVNaXJy
b3Iuc2V0VmFsdWUoa2V5ZnJhbWUuc3R5bGUpOworCisgICAgICAgICAgICAgICAgY29uc3QgcmFu
Z2UgPSBudWxsOworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wdGlvbnNGb3JUeXBlKHR5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFsbG93ZWRUb2tlbnM6IC9cYnRhZ1xiLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxi
YWNrKG1hcmtlciwgdmFsdWVPYmplY3QsIHZhbHVlU3RyaW5nKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBXSS5JbmxpbmVTd2F0Y2godHlwZSwgdmFsdWVP
YmplY3QsIHJlYWRPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlTWlycm9y
LnNldFVuaXF1ZUJvb2ttYXJrKG1hcmtlci5yYW5nZS5zdGFydFBvc2l0aW9uKCkudG9Db2RlTWly
cm9yKCksIHN3YXRjaC5lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3Jl
YXRlQ29kZU1pcnJvckNvbG9yVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlvbnNG
b3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkNvbG9yKSk7CisgICAgICAgICAgICAgICAgY3Jl
YXRlQ29kZU1pcnJvckdyYWRpZW50VGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIG9wdGlv
bnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkdyYWRpZW50KSk7CisgICAgICAgICAgICAg
ICAgY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVyVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFu
Z2UsIG9wdGlvbnNGb3JUeXBlKFdJLklubGluZVN3YXRjaC5UeXBlLkJlemllcikpOworICAgICAg
ICAgICAgICAgIGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0TWFya2Vycyhjb2RlTWlycm9yLCBy
YW5nZSwgb3B0aW9uc0ZvclR5cGUoV0kuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nKSk7CisKKyAg
ICAgICAgICAgICAgICBsZXQgcm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OworICAgICAg
ICAgICAgICAgIHJvdy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInN0eWxlcyIpOworICAgICAgICAg
ICAgICAgIHJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGNvZGVNaXJyb3JFbGVtZW50KTsKKyAgICAg
ICAgICAgICAgICByb3dzLnB1c2gocm93KTsKKworICAgICAgICAgICAgICAgIHRoaXMuX2NvZGVN
aXJyb3JTZWN0aW9uTWFwLnNldChrZXlmcmFtZVNlY3Rpb24sIGNvZGVNaXJyb3IpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXJvd3MubGVuZ3RoKSB7CisgICAgICAgICAgICAg
ICAgbGV0IGVtcHR5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93KFdJLlVJU3RyaW5nKCJO
byBTdHlsZXMiKSk7CisgICAgICAgICAgICAgICAgZW1wdHlSb3cuc2hvd0VtcHR5TWVzc2FnZSgp
OworICAgICAgICAgICAgICAgIHJvd3MucHVzaChlbXB0eVJvdyk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGtleWZyYW1lU2VjdGlvbi5ncm91cHMgPSBbbmV3IFdJLkRldGFpbHNTZWN0
aW9uR3JvdXAocm93cyldOworICAgICAgICB9CisgICAgICAgIGlmICgha2V5ZnJhbWVTZWN0aW9u
cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGxldCBlbXB0eVJvdyA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvblJvdyhXSS5VSVN0cmluZygiTm8gS2V5ZnJhbWVzIikpOworICAgICAgICAgICAgZW1wdHlS
b3cuc2hvd0VtcHR5TWVzc2FnZSgpOworICAgICAgICAgICAga2V5ZnJhbWVTZWN0aW9ucy5wdXNo
KGVtcHR5Um93KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9rZXlmcmFtZXNHcm91cC5yb3dz
ID0ga2V5ZnJhbWVTZWN0aW9uczsKKyAgICB9CisKKyAgICBfcmVmcmVzaEJhY2t0cmFjZVNlY3Rp
b24oKQorICAgIHsKKyAgICAgICAgbGV0IGNhbGxGcmFtZXMgPSB0aGlzLl9hbmltYXRpb24uYmFj
a3RyYWNlOworICAgICAgICB0aGlzLl9iYWNrdHJhY2VUcmVlQ29udHJvbGxlci5jYWxsRnJhbWVz
ID0gY2FsbEZyYW1lczsKKyAgICAgICAgdGhpcy5fYmFja3RyYWNlU2VjdGlvbi5lbGVtZW50Lmhp
ZGRlbiA9ICFjYWxsRnJhbWVzLmxlbmd0aDsKKyAgICB9CisKKyAgICBfaGFuZGxlQW5pbWF0aW9u
RWZmZWN0Q2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZnJlc2hFZmZlY3RT
ZWN0aW9uKCk7CisgICAgfQorCisgICAgX2hhbmRsZUFuaW1hdGlvblRhcmdldENoYW5nZWQoZXZl
bnQpCisgICAgeworICAgICAgICB0aGlzLl9yZWZyZXNoSWRlbnRpdHlTZWN0aW9uKCk7CisgICAg
fQorCisgICAgX2hhbmRsZURldGFpbHNTZWN0aW9uQ29sbGFwc2VkU3RhdGVDaGFuZ2VkKGV2ZW50
KQorICAgIHsKKyAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSB0aGlzLl9jb2RlTWlycm9yU2VjdGlv
bk1hcC5nZXQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgY29kZU1pcnJvci5yZWZyZXNoKCk7Cisg
ICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmNzcwppbmRleCA0ZTVhOTBlMWYwMzE3
ZjBjNGViZjRmNzk5NzAyNzZjN2ZiZDI3ZjU4Li5jYzE2NmJkM2U2MGQzODFhNzVhMWExNzk0M2Fi
ZTIzNjcwN2E4YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzQ29udGVudFZpZXcuY3NzCkBAIC0yMywxMSAr
MjMsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0uY29u
dGVudC12aWV3LmNhbnZhczpub3QoLnRhYikgeworLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAg
IGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTAlKTsKIH0KIAotLmNvbnRlbnQtdmlldy5j
YW52YXM6bm90KC50YWIpID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJl
dmlldyB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsK
ICAgICBhbGlnbi1pdGVtczogY2VudGVyOwpAQCAtMzYsMTcgKzM2LDE3IEBACiAgICAgcGFkZGlu
ZzogMTVweDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC50YWIpIHsKKy5jb250ZW50
LXZpZXcuY2FudmFzIHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiBj
b2x1bW47CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSA+IC5wcmV2aWV3ID4g
aW1nIHsKKy5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgewogICAgIG1heC13
aWR0aDogMTAwJTsKICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogfQogCi0uY29udGVudC12aWV3LmNh
bnZhczpub3QoLnRhYikgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgeworLmNvbnRlbnQtdmll
dy5jYW52YXMgPiA6bWF0Y2hlcyhoZWFkZXIsIGZvb3RlcikgewogICAgIGRpc3BsYXk6IG5vbmU7
CiB9CiAKQEAgLTU2LDcgKzU2LDcgQEAKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVt
ZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXcuY2FudmFzOm5vdCgudGFiKSB7CisgICAgLmNv
bnRlbnQtdmlldy5jYW52YXMgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9DYW52YXNDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCmluZGV4IDliNGZkNmY2ZWQ3ZTFjYjc2
Mzk3NTExMTAxMTUzMjQ2NTRkNThmMDEuLjk5M2RhNTEzZjJkZDU2MzNmZDc5NDgzZWE0Y2E5ZmZi
YTk2ZWZjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc0NvbnRlbnRWaWV3LmpzCkBAIC00NSw3ICs0NSw3IEBA
IFdJLkNhbnZhc0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogCiAgICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRl
bSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgicmVmcmVzaCIsIFdJLlVJU3RyaW5nKCJS
ZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmciLCAxMywgMTMpOwogICAgICAgICB0aGlz
Ll9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2
aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKLSAgICAgICAgdGhpcy5fcmVmcmVz
aEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5yZWZyZXNoUHJldmlldywgdGhpcyk7CisgICAgICAg
IHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuaGFuZGxlUmVmcmVzaEJ1dHRv
bkNsaWNrZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlv
bkl0ZW0gPSBuZXcgV0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwg
V0kuVUlTdHJpbmcoIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUg
dHJhbnNwYXJlbmN5IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIs
IDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRk
RXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlz
Ll9zaG93R3JpZEJ1dHRvbkNsaWNrZWQsIHRoaXMpOwpAQCAtNzcsNiArNzcsMjkgQEAgV0kuQ2Fu
dmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIGhhbmRsZVJlZnJlc2hCdXR0b25DbGlj
a2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVmcmVzaFByZXZpZXcoKTsKKyAgICB9CisKKyAg
ICAvLyBEcm9wWm9uZVZpZXcgZGVsZWdhdGUKKworICAgIGRyb3Bab25lU2hvdWxkQXBwZWFyRm9y
RHJhZ0V2ZW50KGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBldmVudC5k
YXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIik7CisgICAgfQorCisgICAgZHJvcFpv
bmVIYW5kbGVEcm9wKGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAgIGxldCBmaWxlcyA9
IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCAhPT0g
MSkgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMucmVhZEpT
T04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0
KSk7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBpbml0aWFsTGF5b3V0KCkKQEAg
LTE2MCw2ICsxODMsMTMgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250
ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgaWYgKGlzQ2FyZCkKICAg
ICAgICAgICAgIHRoaXMuX3JlZnJlc2hQaXhlbFNpemUoKTsKKworICAgICAgICBpZiAoIWlzQ2Fy
ZCkgeworICAgICAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9IG5ldyBXSS5Ecm9wWm9uZVZpZXco
dGhpcyk7CisgICAgICAgICAgICBkcm9wWm9uZVZpZXcudGV4dCA9IFdJLlVJU3RyaW5nKCJJbXBv
cnQgUmVjb3JkaW5nIik7CisgICAgICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9
IHRoaXMuZWxlbWVudDsKKyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyhkcm9wWm9uZVZpZXcp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgbGF5b3V0KCkKQEAgLTE5MSwxMyArMjIxLDYgQEAg
V0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJ
LkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX3VwZGF0ZUltYWdlR3JpZCgpOwogICAgIH0KIAot
ICAgIHNob3duKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnNob3duKCk7Ci0KLSAgICAgICAgdGhp
cy5yZWZyZXNoUHJldmlldygpOwotICAgIH0KLQogICAgIGF0dGFjaGVkKCkKICAgICB7CiAgICAg
ICAgIHN1cGVyLmF0dGFjaGVkKCk7CkBAIC0yMjMsNiArMjQ2LDggQEAgV0kuQ2FudmFzQ29udGVu
dFZpZXcgPSBjbGFzcyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRM
aXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX3VwZGF0ZUltYWdlR3JpZCwg
dGhpcyk7CisKKyAgICAgICAgdGhpcy5yZWZyZXNoUHJldmlldygpOwogICAgIH0KIAogICAgIGRl
dGFjaGVkKCkKQEAgLTI5MSwxMSArMzE2LDYgQEAgV0kuQ2FudmFzQ29udGVudFZpZXcgPSBjbGFz
cyBDYW52YXNDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICBfcG9wdWxh
dGVDYW52YXNFbGVtZW50QnV0dG9uQ29udGV4dE1lbnUoY29udGV4dE1lbnUpCiAgICAgewotICAg
ICAgICBpZiAodGhpcy5fY2FudmFzTm9kZSkKLSAgICAgICAgICAgIFdJLmFwcGVuZENvbnRleHRN
ZW51SXRlbXNGb3JET01Ob2RlKGNvbnRleHRNZW51LCB0aGlzLl9jYW52YXNOb2RlKTsKLQotICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKLQogICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJMb2cgQ2FudmFzIENvbnRleHQiKSwgKCkgPT4gewog
ICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVDYW52YXNDb250ZXh0KHRoaXMucmVw
cmVzZW50ZWRPYmplY3QsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCwgKHJl
bW90ZU9iamVjdCkgPT4gewogICAgICAgICAgICAgICAgIGlmICghcmVtb3RlT2JqZWN0KQpAQCAt
MzA2LDYgKzMyNiwxMSBAQCBXSS5DYW52YXNDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc0NvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgICAgICBXSS5jb25zb2xl
TG9nVmlld0NvbnRyb2xsZXIuYXBwZW5kSW1tZWRpYXRlRXhlY3V0aW9uV2l0aFJlc3VsdCh0ZXh0
LCByZW1vdGVPYmplY3QsIGFkZFNwZWNpYWxVc2VyTG9nQ2xhc3MpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwor
CisgICAgICAgIGlmICh0aGlzLl9jYW52YXNOb2RlKQorICAgICAgICAgICAgV0kuYXBwZW5kQ29u
dGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUoY29udGV4dE1lbnUsIHRoaXMuX2NhbnZhc05vZGUpOwog
ICAgIH0KIAogICAgIF9zaG93R3JpZEJ1dHRvbkNsaWNrZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50
Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwppbmRleCAxMGYzN2MwNDZiMGMyYTEyODJjNWVjOTlk
YzZjYjk5MGIyMjM2YzVmLi4xYzZkNjQzMWY5YjdkNjM2ZThmM2U4Y2UxNWM2YmIyYTY1YjEzNmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpAQCAtMjYs
MjkgKzI2LDI5IEBACiAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyB7CiAgICAganVzdGlm
eS1jb250ZW50OiBjZW50ZXI7CiAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Ci0gICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwotCi0gICAgLS1pdGVtLW1hcmdpbjogMTBw
eDsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgcGFkZGluZzogNHB4IDA7CiB9CiAKLS5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzIHsKKy5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgewogICAgIGZs
ZXgtZ3JvdzogMDsKLSAgICBtYXJnaW46IHZhcigtLWl0ZW0tbWFyZ2luKTsKKyAgICBmbGV4LXNo
cmluazogMDsKICAgICB3aWR0aDogNDAwcHg7CisgICAgbWFyZ2luOiA0cHg7CiAgICAgYm9yZGVy
OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgICBjdXJzb3I6IHBvaW50ZXI7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJl
dmlldyA+IGltZyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZp
ZXcuY2FudmFzLAorLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IC5wcmV2aWV3ID4gaW1nIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsK
IH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMu
cmVjb3JkaW5nLWFjdGl2ZSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgewogICAgIGJvcmRlci1jb2xvcjogcmVk
OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZh
cyA+IDptYXRjaGVzKGhlYWRlciwgZm9vdGVyKSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gOm1hdGNoZXMoaGVhZGVyLCBmb290ZXIpIHsK
ICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgZmxleC1z
aHJpbms6IDA7CkBAIC01OSwxMzYgKzU5LDEzNiBAQAogICAgIGN1cnNvcjogZGVmYXVsdDsKIH0K
IAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBo
ZWFkZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciB7CiAgICAgZm9udC1zaXplOiAxM3B4OwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
aGVhZGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5j
YW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhcyA+IGhlYWRlciA+IC50aXRsZXMsCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC5zaXplIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgPiAudGl0bGVzLAor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciA+IC5zaXplIHsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogfQogCi0uY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRs
ZXMgPiAudGl0bGUgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12
aWV3LmNhbnZhcyA+IGhlYWRlciA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIGNvbG9yOiB2YXIo
LS10ZXh0LWNvbG9yLWdyYXktZGFyayk7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2
aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9v
dGVyIC5tZW1vcnktY29zdCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKKy5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1l
bW9yeS1jb3N0IHsKICAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1bSk7CiB9
CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
aGVhZGVyIC5zdWJ0aXRsZTo6YmVmb3JlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBoZWFkZXIgLnN1YnRpdGxlOjpiZWZvcmUgewogICAg
IGNvbnRlbnQ6ICJcMDBBMFwyMDE0XDAwQTAiOyAvKiAmbmJzcDsmbWRhc2g7Jm5ic3A7ICovOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcy5y
ZWNvcmRpbmctYWN0aXZlID4gaGVhZGVyID4gLnRpdGxlcyA+IC50aXRsZSB7CisuY29udGVudC12
aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3Rp
dmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBjb2xvcjogd2hpdGU7CiB9CiAK
LS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29y
ZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKKy5jb250ZW50LXZp
ZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2
ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUgewogICAgIGNvbG9yOiB2YXIoLS1zZWxl
Y3RlZC1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAu
bmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgPiAubmF2aWdh
dGlvbi1iYXIgPiAuaXRlbSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgpOwog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmll
dyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKICAg
ICBhbGlnbi1pdGVtczogaW5pdGlhbDsKICAgICBib3JkZXI6IG5vbmU7CiAgICAgb3BhY2l0eTog
MDsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4tb3V0OwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczptYXRjaGVzKDpo
b3ZlciwgLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyIHsKKy5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bWF0Y2hl
cyg6aG92ZXIsIC5yZWNvcmRpbmctYWN0aXZlKSA+IGhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7
CiAgICAgb3BhY2l0eTogMTsKICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW4t
b3V0OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNh
bnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4g
Lml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJsZWQgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3AuZGlzYWJs
ZWQgewogICAgIGZpbHRlcjogZ3JheXNjYWxlKCk7CiAgICAgb3BhY2l0eTogMC41OwogfQogCi0u
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJl
Y29yZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3Jk
LXN0YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6aG92ZXIgeworLmNvbnRlbnQtdmlldy5jYW52YXMt
b3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29yZGluZy1hY3RpdmUpID4g
aGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0YXJ0LXN0b3A6bm90KC5k
aXNhYmxlZCk6aG92ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg5NSUpOwogfQogCi0uY29u
dGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhczpub3QoLnJlY29y
ZGluZy1hY3RpdmUpID4gaGVhZGVyID4gLm5hdmlnYXRpb24tYmFyID4gLml0ZW0ucmVjb3JkLXN0
YXJ0LXN0b3A6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92
ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXM6bm90KC5yZWNvcmRpbmctYWN0aXZlKSA+IGhl
YWRlciA+IC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtLnJlY29yZC1zdGFydC1zdG9wOm5vdCguZGlz
YWJsZWQpOmFjdGl2ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDgwJSk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1h
Y3RpdmUgPiAucHJvZ3Jlc3MtdmlldywKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5j
b250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByb2dyZXNz
LXZpZXcsCisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2Fu
dmFzID4gLnByZXZpZXcgewogICAgIGhlaWdodDogMjgwcHg7CiAgICAgdHJhbnNpdGlvbjogYmFj
a2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlLWluLW91dDsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52
YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9n
cmVzcy12aWV3OmhvdmVyLAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQt
dmlldy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgPiAucHJvZ3Jlc3Mt
dmlldzpob3ZlciwKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiAucHJldmlldzpob3ZlciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDAlLCA5NiUpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12
aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4gLnByZXZpZXcgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5yZWNvcmRpbmctYWN0aXZlID4g
LnByZXZpZXcgewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcgeworLmNvbnRl
bnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IC5wcmV2aWV3
ID4gaW1nIHsKICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgYm94LXNoYWRvdzogMXB4IDJw
eCA2cHggcmdiYSgwLCAwLCAwLCAwLjU4KTsKIH0KIAotLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IC5tZXNzYWdlLXRleHQtdmll
dyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gLnByZXZpZXcgPiAubWVzc2FnZS10ZXh0LXZpZXcgewogICAgIHBvc2l0aW9uOiBzdGF0aWM7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmll
dy5jYW52YXMgPiBmb290ZXIgewogICAgIGJvcmRlci10b3A6IG5vbmU7CiB9CiAKLS5jb250ZW50
LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZp
ZXctcmVsYXRlZC1pdGVtcyB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250
ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4gLnZpZXctcmVsYXRlZC1pdGVtcyB7CiAgICAgZGlz
cGxheTogZmxleDsKICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogfQogCi0uY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJl
bGF0ZWQtaXRlbXMgPiA6bWF0Y2hlcygudmlldy1zaGFkZXIsIC52aWV3LXJlY29yZGluZykgewor
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZv
b3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiA6bWF0Y2hlcygudmlldy1zaGFkZXIsIC52aWV3
LXJlY29yZGluZykgewogICAgIHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290
ZXIgPiAudmlldy1yZWxhdGVkLWl0ZW1zID4gaW1nICsgaW1nIHsKKy5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAudmlldy1yZWxh
dGVkLWl0ZW1zID4gaW1nICsgaW1nIHsKICAgICAtd2Via2l0LW1hcmdpbi1zdGFydDogNHB4Owog
fQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+
IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1zaGFkZXIgeworLmNvbnRlbnQt
dmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52
aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1zaGFkZXIgewogICAgIGNvbnRlbnQ6IGltYWdlLXNl
dCh1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVu
dEdMQDJ4LnBuZykgMngpOwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29u
dGVudC12aWV3LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1y
ZWNvcmRpbmcgeworLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3
LmNhbnZhcyA+IGZvb3RlciA+IC52aWV3LXJlbGF0ZWQtaXRlbXMgPiAudmlldy1yZWNvcmRpbmcg
ewogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7CiB9CiAKLS5jb250
ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyID4g
LmZsZXhpYmxlLXNwYWNlIHsKKy5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRl
bnQtdmlldy5jYW52YXMgPiBmb290ZXIgPiAuZmxleGlibGUtc3BhY2UgewogICAgIGZsZXg6IDE7
CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFz
ID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CisuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+
IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAgLXdlYmtp
dC1wYWRkaW5nLXN0YXJ0OiA0cHg7CiB9CiAKLS5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3
IC5jb250ZW50LXZpZXcuY2FudmFzLnNhdmVkLXJlY29yZGluZ3MgeworLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIHsK
ICAgICBoZWlnaHQ6IDM0MHB4OwogfQogCi0uY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAu
Y29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1yZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgeworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1y
ZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgewogICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKIH0KIAot
LmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMuc2F2ZWQt
cmVjb3JkaW5ncyAudHJlZS1vdXRsaW5lID4gLml0ZW0ucmVjb3JkaW5nID4gLmljb24geworLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcy5zYXZlZC1y
ZWNvcmRpbmdzIC50cmVlLW91dGxpbmUgPiAuaXRlbS5yZWNvcmRpbmcgPiAuaWNvbiB7CiAgICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9SZWNvcmRpbmcuc3ZnKTsKIH0KIApAQCAtMjA5LDQzICsy
MDksMzkgQEAKIH0KIAogQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogdW5zZXQ7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNv
bnRlbnQtdmlldy5jYW52YXMgPiAucHJldmlldyA+IGltZyB7CisgICAgLmNvbnRlbnQtdmlldy5j
YW52YXMtb3ZlcnZpZXcgPiAuY29udGVudC12aWV3LmNhbnZhcywKKyAgICAuY29udGVudC12aWV3
LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gLnByZXZpZXcgPiBpbWcg
ewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLXNlY29u
ZGFyeSk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRl
bnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVyLAot
ICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzID4g
LnByZXZpZXc6aG92ZXIgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IC5wcm9ncmVzcy12aWV3OmhvdmVy
LAorICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52
YXMgPiAucHJldmlldzpob3ZlciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJh
Y2tncm91bmQtY29sb3ItdGVydGlhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXcuY2Fu
dmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2FudmFzLnJlY29yZGluZy1hY3RpdmUgeworICAg
IC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVj
b3JkaW5nLWFjdGl2ZSB7CiAgICAgICAgIC0tcmVjb3JkaW5nLWNvbG9yOiBoc2woMCwgMTAwJSwg
MzklKTsKICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yZWNvcmRpbmctY29sb3IpOwogICAg
IH0KIAotICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IC5jb250ZW50LXZpZXcuY2Fu
dmFzLnJlY29yZGluZy1hY3RpdmUgPiBoZWFkZXIgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFz
LW92ZXJ2aWV3ID4gLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRl
ciB7CiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJlY29yZGluZy1jb2xvcik7CiAg
ICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5j
YW52YXMgPiBoZWFkZXIgPiAudGl0bGVzID4gLnRpdGxlIHsKKyAgICAuY29udGVudC12aWV3LmNh
bnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVhZGVyID4gLnRpdGxlcyA+
IC50aXRsZSB7CiAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsKICAgICB9CiAKLSAg
ICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyAuY29udGVudC12aWV3LmNhbnZhcyA+IGhl
YWRlciA+IC50aXRsZXMgPiAuc3VidGl0bGUsCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3Zl
cnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIgLm1lbW9yeS1jb3N0IHsKKyAgICAu
Y29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gaGVh
ZGVyID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSwKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVy
dmlldyA+IC5jb250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC5tZW1vcnktY29zdCB7CiAgICAg
ICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLXNlY29uZGFyeSk7CiAgICAgfQogCi0gICAgLmNv
bnRlbnQtdmlldy5jYW52YXMtb3ZlcnZpZXcgLmNvbnRlbnQtdmlldy5jYW52YXMgPiBmb290ZXIg
LnZpZXctcmVjb3JkaW5nIHsKKyAgICAuY29udGVudC12aWV3LmNhbnZhcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzID4gZm9vdGVyIC52aWV3LXJlY29yZGluZyB7CiAgICAgICAgIGZp
bHRlcjogaW52ZXJ0KCk7CiAgICAgfQogCi0gICAgLmNvbnRlbnQtdmlldy5jYW52YXMtb3ZlcnZp
ZXcgLmNvbnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRs
ZXMgPiAuc3VidGl0bGUgeworICAgIC5jb250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3ID4gLmNv
bnRlbnQtdmlldy5jYW52YXMucmVjb3JkaW5nLWFjdGl2ZSA+IGhlYWRlciA+IC50aXRsZXMgPiAu
c3VidGl0bGUgewogICAgICAgICBjb2xvcjogdW5zZXQ7CiAgICAgICAgIG9wYWNpdHk6IDAuNQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCmluZGV4IDYz
OWIzNmQ4NTliYjdjZjNjMzQ0NDVhYTBlYjc0OTU0MzNjNDEwOTguLjBkMTY1ZGQyNjhkNDM3MDI4
YTQzZDE0OWUwN2NmYTgzOGI0ZGU3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdD
b250ZW50Vmlldy5qcwpAQCAtMjksNyArMjksOCBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwog
ICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb2xsZWN0aW9uKTsKIAotICAgICAgICBsZXQgY29udGVudFBsYWNlaG9sZGVy
ID0gV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4
dHMiKSk7CisgICAgICAgIGxldCBjb250ZW50UGxhY2Vob2xkZXIgPSBXSS5hbmltYXRpb25NYW5h
Z2VyLnN1cHBvcnRlZCA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIDogV0kuY3JlYXRl
TWVzc2FnZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJObyBDYW52YXMgQ29udGV4dHMiKSk7CisKICAg
ICAgICAgbGV0IGRlc2NyaXB0aW9uRWxlbWVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CiAgICAgICAgIGRlc2NyaXB0aW9u
RWxlbWVudC5jbGFzc05hbWUgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICBkZXNjcmlwdGlvbkVs
ZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiV2FpdGluZyBmb3IgY2FudmFzIGNvbnRl
eHRzIGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iKTsKQEAgLTYyLDIxICs2Myw3IEBAIFdJLkNh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgICAgICB0aGlzLl91cGRhdGVSZWNvcmRpbmdBdXRv
Q2FwdHVyZUNoZWNrYm94TGFiZWwoZnJhbWVDb3VudCk7CiAgICAgICAgIH0KIAotICAgICAgICB0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbSgiaW1wb3J0LXJlY29yZGluZyIsIFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9J
bXBvcnQuc3ZnIiwgMTUsIDE1KTsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0udG9vbHRpcCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQiKTsKLSAgICAgICAgdGhpcy5faW1w
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7Ci0KLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5h
dmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJyZWZyZXNoLWFsbCIs
IFdJLlVJU3RyaW5nKCJSZWZyZXNoIGFsbCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMs
IDEzKTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQg
PSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5f
cmVmcmVzaFByZXZpZXdzLCB0aGlzKTsKLQotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5h
dmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNob3ct
Z3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3RyaW5n
KCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVja2Vy
cy5zdmciLCAxMywgMTMpOwotICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmFjdGl2YXRlZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKLSAgICAg
ICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7Ci0g
ICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5l
cihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9zaG93R3JpZEJ1
dHRvbkNsaWNrZWQsIHRoaXMpOwotCiAgICAgICAgIGltcG9ydE5hdmlnYXRpb25JdGVtLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5f
aGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKLSAgICAgICAg
dGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3Jk
aW5nc0NvbnRlbnRWaWV3ID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJl
ZU91dGxpbmUgPSBudWxsOwpAQCAtOTAsMTcgKzc3LDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29s
bGVjCiAKICAgICBnZXQgbmF2aWdhdGlvbkl0ZW1zKCkKICAgICB7Ci0gICAgICAgIGxldCBuYXZp
Z2F0aW9uSXRlbXMgPSBbdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBXSS5E
aXZpZGVyTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSwg
dGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbV07Ci0gICAgICAgIGlmIChXSS5DYW52
YXNNYW5hZ2VyLnN1cHBvcnRzUmVjb3JkaW5nQXV0b0NhcHR1cmUoKSkKLSAgICAgICAgICAgIG5h
dmlnYXRpb25JdGVtcy51bnNoaWZ0KHRoaXMuX3JlY29yZGluZ0F1dG9DYXB0dXJlTmF2aWdhdGlv
bkl0ZW0sIG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0pOworICAgICAgICBsZXQgbmF2aWdh
dGlvbkl0ZW1zID0gW107CisgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZU5h
dmlnYXRpb25JdGVtKQorICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5fcmVj
b3JkaW5nQXV0b0NhcHR1cmVOYXZpZ2F0aW9uSXRlbSk7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0
aW9uSXRlbXM7CiAgICAgfQogCi0gICAgaGlkZGVuKCkKKyAgICBoYW5kbGVSZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpCiAgICAgewotICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxp
Z2h0KCk7Ci0KLSAgICAgICAgc3VwZXIuaGlkZGVuKCk7CisgICAgICAgIGZvciAobGV0IHN1YnZp
ZXcgb2YgdGhpcy5zdWJ2aWV3cykgeworICAgICAgICAgICAgaWYgKHN1YnZpZXcgaW5zdGFuY2Vv
ZiBXSS5DYW52YXNDb250ZW50VmlldykKKyAgICAgICAgICAgICAgICBzdWJ2aWV3LmhhbmRsZVJl
ZnJlc2hCdXR0b25DbGlja2VkKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQcm90ZWN0
ZWQKQEAgLTExNSwyMyArMTAzLDE4IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBj
bGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAg
ICAgICB0aGlzLnJlbW92ZVN1YnZpZXcodGhpcy5fc2F2ZWRSZWNvcmRpbmdzQ29udGVudFZpZXcp
OwogICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRl
bnRWaWV3KTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25JdGVt
cygpOwogICAgIH0KIAogICAgIGNvbnRlbnRWaWV3UmVtb3ZlZChjb250ZW50VmlldykKICAgICB7
CiAgICAgICAgIGNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vl
bnRlciIsIHRoaXMuX2NvbnRlbnRWaWV3TW91c2VFbnRlcik7CiAgICAgICAgIGNvbnRlbnRWaWV3
LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMuX2NvbnRlbnRW
aWV3TW91c2VMZWF2ZSk7Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkl0ZW1zKCk7
CiAgICAgfQogCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3VwZXIuYXR0YWNoZWQo
KTsKIAotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLmFkZEV2ZW50TGlzdGVuZXIo
V0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl91cGRhdGVTaG93SW1hZ2VHcmlkLCB0aGlz
KTsKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVk
LmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVD
YW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWRDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAg
V0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LmFkZEV2ZW50
TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVDYW52YXNSZWNv
cmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnRDaGFuZ2VkLCB0aGlzKTsKIApAQCAtMTQxLDQ5ICsx
MjQsMjcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgICAgIHRoaXMuX3NhdmVk
UmVjb3JkaW5nc1RyZWVPdXRsaW5lLnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIGZvciAobGV0
IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykKICAgICAgICAg
ICAgIHRoaXMuX2FkZFNhdmVkUmVjb3JkaW5nKHJlY29yZGluZyk7CisKKyAgICAgICAgZm9yIChs
ZXQgc3VidmlldyBvZiB0aGlzLnN1YnZpZXdzKSB7CisgICAgICAgICAgICBpZiAoc3VidmlldyBp
bnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgICAgIHN1YnZpZXcu
cmVmcmVzaFByZXZpZXcoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGRldGFjaGVkKCkKICAg
ICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKwogICAg
ICAgICBXSS5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhp
cyk7CiAKICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFt
ZUNvdW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAgICAgICAgIFdJ
LnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC5yZW1vdmVFdmVudExp
c3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOwotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VH
cmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgc3Vw
ZXIuZGV0YWNoZWQoKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBnZXQgX2l0ZW1N
YXJnaW4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRoaXMuZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgiLS1pdGVtLW1hcmdpbiIpKTsK
LSAgICB9Ci0KLSAgICBfcmVmcmVzaFByZXZpZXdzKCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0
IGNhbnZhc0NvbnRlbnRWaWV3IG9mIHRoaXMuc3Vidmlld3MpCi0gICAgICAgICAgICBjYW52YXND
b250ZW50Vmlldy5yZWZyZXNoUHJldmlldygpOwotICAgIH0KLQotICAgIF91cGRhdGVOYXZpZ2F0
aW9uSXRlbXMoKQotICAgIHsKLSAgICAgICAgbGV0IGhhc0l0ZW1zID0gISF0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LnNpemU7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRl
bS5lbmFibGVkID0gaGFzSXRlbXM7Ci0gICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uZW5hYmxlZCA9IGhhc0l0ZW1zOwotICAgIH0KLQotICAgIF9zaG93R3JpZEJ1dHRv
bkNsaWNrZWQoZXZlbnQpCi0gICAgewotICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlk
LnZhbHVlID0gIXRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkOwot
ICAgIH0KLQotICAgIF91cGRhdGVTaG93SW1hZ2VHcmlkKCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5z
aG93SW1hZ2VHcmlkLnZhbHVlOwotICAgIH0KLQogICAgIF9jb250ZW50Vmlld01vdXNlRW50ZXIo
ZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgY29udGVudFZpZXcgPSBXSS5WaWV3LmZyb21FbGVt
ZW50KGV2ZW50LnRhcmdldCk7CkBAIC0zMDEsOCArMjYyLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdD
b250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b2xsZWMKICAgICAgICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc0NvbnRlbnRWaWV3LmVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fc2F2ZWRSZWNvcmRpbmdzVHJlZU91dGxpbmUuZWxlbWVudCk7
CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7Ci0gICAgICAgIGxl
dCByZWNvcmRpbmdUcmVlRWxlbWVudCA9IG5ldyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQoWyJyZWNv
cmRpbmciXSwgcmVjb3JkaW5nLmRpc3BsYXlOYW1lLCBzdWJ0aXRsZSwgcmVjb3JkaW5nKTsKKyAg
ICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVu
dChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlzcGxheU5hbWUsIFdJLlJlY29yZGluZy5kaXNw
bGF5TmFtZUZvclJlY29yZGluZ1R5cGUocmVjb3JkaW5nLnR5cGUpLCByZWNvcmRpbmcpOwogICAg
ICAgICByZWNvcmRpbmdUcmVlRWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgIHRo
aXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVF
bGVtZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNTaWRlYmFyUGFuZWwuanMKaW5kZXggY2I1Yjkw
ZDQyZDFkNjBiYzU4NWJkM2FiMTE1ZGQwYzIzZWFiMjQxZS4uNjAzZjVhZWE0N2ViMmIzMDY4ZjRi
NTY5YTg5YzhkZmI5YzkzZTc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qcwpAQCAt
MjM3LDEwICsyMzcsOCBAQCBXSS5DYW52YXNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52YXNTaWRl
YmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogCiAgICAgY2FuU2hvd1Jl
cHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYgKHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzQ29sbGVjdGlvbikKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICByZXR1cm4gc3VwZXIuY2FuU2hvd1JlcHJlc2Vu
dGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdJLlJlY29yZGluZzsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc1RhYkNvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODlkYWI1ZWY5OTc5ZDYyYjgxMTU5ODlhOTE2NDA0MTNjNzJhOGNkYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5jc3MKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLmNvbnRlbnQtdmlldy50YWIu
Y2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMtb3ZlcnZpZXcgLmljb24gewot
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzT3ZlcnZpZXcuc3ZnKTsKLX0KLQotLmNv
bnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMuY2Fu
dmFzLTJkIC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczJELnN2Zyk7
Ci19Ci0KLS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
Y2FudmFzOm1hdGNoZXMoLndlYmdsLCAud2ViZ2wyLCAud2ViZ3B1LCAud2VibWV0YWwpIC5pY29u
IHsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczNELnN2Zyk7Ci19Ci0KLS5jb250
ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAucmVjb3JkaW5nID4g
Lmljb24gewotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvUmVjb3JkaW5nLnN2Zyk7Ci19Ci0K
LS5jb250ZW50LXZpZXcudGFiLmNhbnZhcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuc2hhZGVy
LXByb2dyYW0gPiAuaWNvbiB7Ci0gICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9JbWFnZXMv
RG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5nKSAyeCk7
Ci19Ci0KLUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuY29udGVu
dC12aWV3LnRhYi5jYW52YXMgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLmNhbnZhcy1vdmVydmll
dyAuaWNvbiB7Ci0gICAgICAgIGZpbHRlcjogaW52ZXJ0KDYwJSk7Ci0gICAgfQotCi0gICAgLmNv
bnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMgLmlj
b24sCi0gICAgLmNvbnRlbnQtdmlldy50YWIuY2FudmFzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5yZWNvcmRpbmcgPiAuaWNvbiB7Ci0gICAgICAgIGZpbHRlcjogaW52ZXJ0KCk7Ci0gICAgfQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q2FudmFzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmUxZGJlNDgwMWU1NTdiYzdjMjBlNTJlYzc3YzgwOTk5ZDU2YThkNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcworKysgL2Rl
di9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuQ2FudmFzVGFiQ29udGVu
dFZpZXcgPSBjbGFzcyBDYW52YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93
c2VyVGFiQ29udGVudFZpZXcKLXsKLSAgICBjb25zdHJ1Y3RvcihyZXByZXNlbnRlZE9iamVjdCkK
LSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFyZXByZXNlbnRlZE9iamVjdCB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcyk7Ci0KLSAgICAgICAgbGV0IHRhYkJh
ckl0ZW0gPSBXSS5HZW5lcmFsVGFiQmFySXRlbS5mcm9tVGFiSW5mbyhXSS5DYW52YXNUYWJDb250
ZW50Vmlldy50YWJJbmZvKCkpOwotCi0gICAgICAgIGNvbnN0IG5hdmlnYXRpb25TaWRlYmFyUGFu
ZWxDb25zdHJ1Y3RvciA9IFdJLkNhbnZhc1NpZGViYXJQYW5lbDsKLSAgICAgICAgY29uc3QgZGV0
YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycyA9IFtXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNT
aWRlYmFyUGFuZWwsIFdJLlJlY29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbCwgV0kuQ2Fu
dmFzRGV0YWlsc1NpZGViYXJQYW5lbF07Ci0gICAgICAgIGNvbnN0IGRpc2FibGVCYWNrRm9yd2Fy
ZCA9IHRydWU7Ci0gICAgICAgIHN1cGVyKCJjYW52YXMiLCBbImNhbnZhcyJdLCB0YWJCYXJJdGVt
LCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsQ29uc3RydWN0b3IsIGRldGFpbHNTaWRlYmFyUGFuZWxD
b25zdHJ1Y3RvcnMsIGRpc2FibGVCYWNrRm9yd2FyZCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFz
Q29sbGVjdGlvbiA9IG5ldyBXSS5DYW52YXNDb2xsZWN0aW9uOwotCi0gICAgICAgIHRoaXMuX2Nh
bnZhc1RyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lOwotICAgICAgICB0aGlzLl9jYW52
YXNUcmVlT3V0bGluZS5hbGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOwotICAgICAgICB0aGlz
Ll9jYW52YXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVPdXRsaW5lLkV2ZW50
LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rpb25EaWRD
aGFuZ2UsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQgPSBuZXcg
V0kuR2VuZXJhbFRyZWVFbGVtZW50KCJjYW52YXMtb3ZlcnZpZXciLCBXSS5VSVN0cmluZygiT3Zl
cnZpZXciKSwgbnVsbCwgdGhpcy5fY2FudmFzQ29sbGVjdGlvbik7Ci0gICAgICAgIHRoaXMuX2Nh
bnZhc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3VHJlZUVsZW1lbnQpOwot
Ci0gICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50ID0gbmV3IFdJLkZvbGRl
clRyZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJTYXZlZCBSZWNvcmRpbmdzIiksIFdJLlJlY29yZGlu
Z0NvbGxlY3Rpb24pOwotICAgICAgICB0aGlzLl9zYXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5o
aWRkZW4gPSB0cnVlOwotICAgICAgICB0aGlzLl9vdmVydmlld1RyZWVFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9y
ZWNvcmRTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdJLktleWJvYXJk
U2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNl
OwotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAg
ICAgdGhpcy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0
Y3V0KFdJLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQsIFdJLktleWJvYXJkU2hvcnRj
dXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhp
cy5fcmVjb3JkU2luZ2xlRnJhbWVTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0g
ZmFsc2U7Ci0gICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQg
PSB0cnVlOwotCi0gICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7Ci0gICAgfQotCi0g
ICAgc3RhdGljIHRhYkluZm8oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAg
IGltYWdlOiAiSW1hZ2VzL0NhbnZhcy5zdmciLAotICAgICAgICAgICAgdGl0bGU6IFdJLlVJU3Ry
aW5nKCJDYW52YXMiKSwKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaXNUYWJBbGxv
d2VkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigi
Q2FudmFzIik7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICB0cmVlRWxlbWVudEZvclJl
cHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX2NhbnZhc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZXByZXNlbnRlZE9iamVj
dCk7Ci0gICAgfQotCi0gICAgZ2V0IHR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdJLkNh
bnZhc1RhYkNvbnRlbnRWaWV3LlR5cGU7Ci0gICAgfQotCi0gICAgZ2V0IHN1cHBvcnRzU3BsaXRD
b250ZW50QnJvd3NlcigpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAg
ICBnZXQgbWFuYWdlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotCi0gICAgY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2Vu
dGVkT2JqZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuQ2FudmFzCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5j
ZW9mIFdJLkNhbnZhc0NvbGxlY3Rpb24KLSAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nCi0gICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVj
dCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW07Ci0gICAgfQotCi0gICAgc2hvd24oKQotICAg
IHsKLSAgICAgICAgc3VwZXIuc2hvd24oKTsKLQotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1
dC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0
Y3V0LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRCcm93c2Vy
LmN1cnJlbnRDb250ZW50VmlldykKLSAgICAgICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2Jq
ZWN0KHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24pOwotICAgIH0KLQotICAgIGhpZGRlbigpCi0gICAg
ewotICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAg
IHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAg
ICAgIHN1cGVyLmhpZGRlbigpOwotICAgIH0KLQotICAgIGNsb3NlZCgpCi0gICAgewotICAgICAg
ICBXSS5jYW52YXNNYW5hZ2VyLmRpc2FibGUoKTsKLQotICAgICAgICBzdXBlci5jbG9zZWQoKTsK
LSAgICB9Ci0KLSAgICByZXN0b3JlU3RhdGVGcm9tQ29va2llKGNvb2tpZSkKLSAgICB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2
PiBpcyBjb21wbGV0ZS4KLSAgICB9Ci0KLSAgICBzYXZlU3RhdGVUb0Nvb2tpZShjb29raWUpCi0g
ICAgewotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE3NzYwNj4gaXMgY29tcGxldGUuCi0gICAgfQotCi0gICAgYXN5bmMgaGFuZGxlRmlsZURy
b3AoZmlsZXMpCi0gICAgewotICAgICAgICBhd2FpdCBXSS5GaWxlVXRpbGl0aWVzLnJlYWRKU09O
KGZpbGVzLCAocmVzdWx0KSA9PiBXSS5jYW52YXNNYW5hZ2VyLnByb2Nlc3NKU09OKHJlc3VsdCkp
OwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0gICAgYXR0YWNoZWQoKQotICAgIHsKLSAg
ICAgICAgc3VwZXIuYXR0YWNoZWQoKTsKLQotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCwgdGhpcy5faGFu
ZGxlQ2FudmFzQWRkZWQsIHRoaXMpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkLCB0aGlzLl9oYW5k
bGVDYW52YXNSZW1vdmVkLCB0aGlzKTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuUmVjb3JkaW5nU2F2ZWQsIHRoaXMuX2hh
bmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKLSAgICAgICAgV0kuQ2FudmFzLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQsIHRoaXMuX2hh
bmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkLCB0aGlzKTsKLQotICAgICAgICBsZXQgY2FudmFz
ZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzOwotCi0gICAgICAgIGZvciAobGV0IGNhbnZh
cyBvZiB0aGlzLl9jYW52YXNDb2xsZWN0aW9uKSB7Ci0gICAgICAgICAgICBpZiAoIWNhbnZhc2Vz
LmluY2x1ZGVzKGNhbnZhcykpCi0gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGNh
bnZhcyk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBjYW52YXMgb2YgY2FudmFzZXMp
IHsKLSAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5oYXMoY2FudmFzKSkK
LSAgICAgICAgICAgICAgICB0aGlzLl9hZGRDYW52YXMoY2FudmFzKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHRoaXMuX3NhdmVkUmVjb3JkaW5nc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7
Ci0gICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVj
b3JkaW5ncykKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIHtzdXBw
cmVzc1Nob3dSZWNvcmRpbmc6IHRydWV9KTsKLSAgICB9Ci0KLSAgICBkZXRhY2hlZCgpCi0gICAg
ewotICAgICAgICBXSS5DYW52YXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlz
KTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51
bGwsIHRoaXMpOwotCi0gICAgICAgIHN1cGVyLmRldGFjaGVkKCk7Ci0gICAgfQotCi0gICAgLy8g
UHJpdmF0ZQotCi0gICAgX2FkZENhbnZhcyhjYW52YXMpCi0gICAgewotICAgICAgICB0aGlzLl9v
dmVydmlld1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyBXSS5DYW52YXNUcmVlRWxlbWVudChj
YW52YXMpKTsKLSAgICAgICAgdGhpcy5fY2FudmFzQ29sbGVjdGlvbi5hZGQoY2FudmFzKTsKLQot
ICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3Jk
aW5nOiB0cnVlLAotICAgICAgICB9OwotCi0gICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBj
YW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGlu
ZyhyZWNvcmRpbmcsIG9wdGlvbnMpOwotICAgIH0KLQotICAgIF9yZW1vdmVDYW52YXMoY2FudmFz
KQotICAgIHsKLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fY2FudmFzVHJlZU91dGxp
bmUuZmluZFRyZWVFbGVtZW50KGNhbnZhcyk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVF
bGVtZW50LCAiTWlzc2luZyB0cmVlIGVsZW1lbnQgZm9yIGNhbnZhcy4iLCBjYW52YXMpOwotCi0g
ICAgICAgIGNvbnN0IHN1cHByZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTsKLSAgICAgICAgdHJlZUVs
ZW1lbnQuZGVzZWxlY3Qoc3VwcHJlc3NOb3RpZmljYXRpb24pOwotICAgICAgICB0aGlzLl9vdmVy
dmlld1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKLQotICAgICAgICB0aGlz
Ll9jYW52YXNDb2xsZWN0aW9uLnJlbW92ZShjYW52YXMpOwotCi0gICAgICAgIGxldCBjdXJyZW50
Q29udGVudFZpZXcgPSB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKLSAg
ICAgICAgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNhbnZhc0NvbnRlbnRW
aWV3KQotICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHRoaXMuX2NhbnZhc0Nv
bGxlY3Rpb24pOwotICAgICAgICBlbHNlIGlmIChjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2Vv
ZiBXSS5SZWNvcmRpbmdDb250ZW50VmlldyAmJiBjYW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbi5o
YXMoY3VycmVudENvbnRlbnRWaWV3LnJlcHJlc2VudGVkT2JqZWN0KSkKLSAgICAgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIudXBkYXRlSGllcmFyY2hpY2FsUGF0aEZvckN1cnJlbnRDb250ZW50
VmlldygpOwotCi0gICAgICAgIGxldCBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gdGhpcy5uYXZp
Z2F0aW9uU2lkZWJhclBhbmVsOwotICAgICAgICBpZiAobmF2aWdhdGlvblNpZGViYXJQYW5lbCBp
bnN0YW5jZW9mIFdJLkNhbnZhc1NpZGViYXJQYW5lbCAmJiBuYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LnZpc2libGUpCi0gICAgICAgICAgICBuYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnVwZGF0ZVJlcHJl
c2VudGVkT2JqZWN0cygpOwotCi0gICAgICAgIHRoaXMuc2hvd0RldGFpbHNTaWRlYmFyUGFuZWxz
KCk7Ci0gICAgfQotCi0gICAgX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIG9wdGlvbnMgPSB7fSkK
LSAgICB7Ci0gICAgICAgIGlmICghcmVjb3JkaW5nLnNvdXJjZSkgewotICAgICAgICAgICAgY29u
c3Qgc3VidGl0bGUgPSBudWxsOwotICAgICAgICAgICAgbGV0IHJlY29yZGluZ1RyZWVFbGVtZW50
ID0gbmV3IFdJLkdlbmVyYWxUcmVlRWxlbWVudChbInJlY29yZGluZyJdLCByZWNvcmRpbmcuZGlz
cGxheU5hbWUsIHN1YnRpdGxlLCByZWNvcmRpbmcpOwotICAgICAgICAgICAgdGhpcy5fc2F2ZWRS
ZWNvcmRpbmdzVHJlZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLl9z
YXZlZFJlY29yZGluZ3NUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChyZWNvcmRpbmdUcmVlRWxlbWVu
dCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIW9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3Jk
aW5nKQotICAgICAgICAgICAgdGhpcy5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVjb3JkaW5nKTsK
LSAgICB9Ci0KLSAgICBfaGFuZGxlQ2FudmFzQWRkZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0
aGlzLl9hZGRDYW52YXMoZXZlbnQuZGF0YS5jYW52YXMpOwotICAgIH0KLQotICAgIF9oYW5kbGVD
YW52YXNSZW1vdmVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGV2
ZW50LmRhdGEuY2FudmFzKTsKLSAgICB9Ci0KLSAgICBfY2FudmFzVHJlZU91dGxpbmVTZWxlY3Rp
b25EaWRDaGFuZ2UoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50ID0g
dGhpcy5fY2FudmFzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAgaWYg
KCFzZWxlY3RlZEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHJl
cHJlc2VudGVkT2JqZWN0ID0gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwotICAg
ICAgICBpZiAoIXRoaXMuY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0
KSkgewotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJVbmV4cGVjdGVkIHJlcHJl
c2VudGVkT2JqZWN0LiIsIHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2Vu
dGVkT2JqZWN0KTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlUmVjb3JkaW5nU2F2ZWRPclN0b3BwZWQo
ZXZlbnQpCi0gICAgewotICAgICAgICBsZXQge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyLCBp
bXBvcnRlZH0gPSBldmVudC5kYXRhOwotICAgICAgICBpZiAoIXJlY29yZGluZykKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBsZXQgb3B0aW9ucyA9IHt9OwotCi0gICAgICAgIC8vIEFs
d2F5cyBzaG93IGltcG9ydGVkIHJlY29yZGluZ3MuCi0gICAgICAgIGlmIChyZWNvcmRpbmcuc291
cmNlIHx8ICFpbXBvcnRlZCkKLSAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3Jk
aW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXBy
ZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsKLQotICAgICAgICB0aGlzLl9hZGRSZWNvcmRp
bmcocmVjb3JkaW5nLCBvcHRpb25zKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlU3BhY2UoZXZlbnQp
Ci0gICAgewotICAgICAgICBpZiAoV0kuaXNFdmVudFRhcmdldEFuRWRpdGFibGVGaWVsZChldmVu
dCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb25T
aWRlYmFyUGFuZWwpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGNhbnZhcyA9
IHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbC5jYW52YXM7Ci0gICAgICAgIGlmICghY2FudmFz
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChjYW52YXMucmVjb3JkaW5nQWN0
aXZlKQotICAgICAgICAgICAgY2FudmFzLnN0b3BSZWNvcmRpbmcoKTsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBsZXQgc2luZ2xlRnJhbWUgPSAhIWV2ZW50LnNoaWZ0S2V5OwotICAgICAg
ICAgICAgY2FudmFzLnN0YXJ0UmVjb3JkaW5nKHNpbmdsZUZyYW1lKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfQotfTsKLQotV0kuQ2FudmFzVGFi
Q29udGVudFZpZXcuVHlwZSA9ICJjYW52YXMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50
Vmlldy5jc3MKaW5kZXggZmUzM2U3YWNkOWYxNjFiMmNjMGNlNzFjZDUyNGE0OTFhZGQzM2MyYi4u
NWNlOGRiMGYzMDhkZDk4OTg0YjMxYmI5NGNjNWY3OWMzOTVjMmQ2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRW
aWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b2xsZWN0aW9uQ29udGVudFZpZXcuY3NzCkBAIC0zMywxNCArMzMsMTcgQEAKICAgICBmbGV4LWdy
b3c6IDE7CiB9CiAKLS5jb250ZW50LXZpZXcuY29sbGVjdGlvbiAucmVzb3VyY2UuaW1hZ2UgaW1n
IHsKLSAgICBvdXRsaW5lOiAwLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwotfQotCi0u
Y29udGVudC12aWV3LmNvbGxlY3Rpb24gLnJlc291cmNlLmltYWdlIGltZzpob3ZlciB7Ci0gICAg
b3V0bGluZS1jb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKQotfQotCiAuY29udGVudC12
aWV3LmNvbGxlY3Rpb24gPiAuY29udGVudC12aWV3W2hpZGRlbl0gewogICAgIGRpc3BsYXk6IG5v
bmU7CiB9CisKKy5jb250ZW50LXZpZXcuY29sbGVjdGlvbiA+IC5wbGFjZWhvbGRlcjpub3QoLm1l
c3NhZ2UtdGV4dC12aWV3KSB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4LWRpcmVjdGlv
bjogY29sdW1uOworICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgIGFsaWduLWl0ZW1z
OiBjZW50ZXI7CisgICAgd2lkdGg6IDEwMCU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAg
IGZvbnQtc2l6ZTogMTNweDsKKyAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1ncmF5LW1lZGl1
bSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db2xsZWN0aW9uQ29udGVudFZpZXcuanMKaW5kZXggMDU0NzQxNjgx
YzgxOGJlNWJjYWE1ZDZmZjE5ZDUzNzI5YjdiMzg2Ni4uNTA1YTRhN2JkZTQ1NTIzYjMwZGE0ZjZi
Y2E3N2I0ZDhjY2QxMDZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpA
QCAtMjgsNyArMjgsNyBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0
aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgIGNvbnN0cnVjdG9yKGNv
bGxlY3Rpb24sIGNvbnRlbnRWaWV3Q29uc3RydWN0b3IsIGNvbnRlbnRQbGFjZWhvbGRlcikKICAg
ICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbGxlY3Rpb24gaW5zdGFuY2VvZiBXSS5Db2xs
ZWN0aW9uKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXdDb25zdHJ1Y3RvciBp
bnN0YW5jZW9mIFdJLkNvbnRlbnRWaWV3KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWNvbnRl
bnRWaWV3Q29uc3RydWN0b3IgfHwgY29udGVudFZpZXdDb25zdHJ1Y3Rvci5wcm90b3R5cGUgaW5z
dGFuY2VvZiBXSS5Db250ZW50Vmlldyk7CiAKICAgICAgICAgc3VwZXIoY29sbGVjdGlvbik7CiAK
QEAgLTM4LDcgKzM4LDYgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVj
dGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY29u
dGVudFBsYWNlaG9sZGVyRWxlbWVudCA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3
Q29uc3RydWN0b3IgPSBjb250ZW50Vmlld0NvbnN0cnVjdG9yOwogICAgICAgICB0aGlzLl9jb250
ZW50Vmlld01hcCA9IG5ldyBNYXA7Ci0gICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrTWFwID0gbmV3
IFdlYWtNYXA7CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IG51bGw7CiAgICAgICAgIHRo
aXMuX3NlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTsKICAgICB9CkBAIC04MywxOSArODIsMjUgQEAg
V0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVsbCk7
CiAgICAgfQogCi0gICAgc2V0U2VsZWN0ZWRJdGVtKGl0ZW0pCisgICAgZ2V0IHNlbGVjdGVkSXRl
bSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtOworICAgIH0KKwor
ICAgIHNldCBzZWxlY3RlZEl0ZW0oaXRlbSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHRoaXMuX3NlbGVjdGlvbkVuYWJsZWQsICJBdHRlbXB0ZWQgdG8gc2V0IHNlbGVjdGVkIGl0ZW0g
d2hlbiBzZWxlY3Rpb24gaXMgZGlzYWJsZWQuIik7CiAgICAgICAgIGlmICghdGhpcy5fc2VsZWN0
aW9uRW5hYmxlZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgY29udGVudFZp
ZXcgPSB0aGlzLl9jb250ZW50Vmlld01hcC5nZXQoaXRlbSk7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGNvbnRlbnRWaWV3LCAiTWlzc2luZyBjb250ZXQgdmlldyBmb3IgaXRlbS4iLCBpdGVtKTsK
LSAgICAgICAgaWYgKCFjb250ZW50VmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAg
ICB0aGlzLl9zZWxlY3RJdGVtKGl0ZW0pOwotICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnNj
cm9sbEludG9WaWV3SWZOZWVkZWQoKTsKKworICAgICAgICBpZiAoaXRlbSkgeworICAgICAgICAg
ICAgbGV0IGNvbnRlbnRWaWV3ID0gdGhpcy5fY29udGVudFZpZXdNYXAuZ2V0KGl0ZW0pOworICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGVudFZpZXcsICJNaXNzaW5nIGNvbnRlbnQgdmll
dyBmb3IgaXRlbS4iLCBpdGVtKTsKKyAgICAgICAgICAgIGlmIChjb250ZW50VmlldykKKyAgICAg
ICAgICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAtMTIwLDIwICsxMjUsOSBA
QCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBjbGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIGxldCBjb250ZW50VmlldyA9IG5ldyB0
aGlzLl9jb250ZW50Vmlld0NvbnN0cnVjdG9yKGl0ZW0sIHRoaXMuY29udGVudFZpZXdDb25zdHJ1
Y3Rvck9wdGlvbnMpOwogICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50VmlldyBpbnN0YW5j
ZW9mIFdJLkNvbnRlbnRWaWV3KTsKLQotICAgICAgICBsZXQgaGFuZGxlQ2xpY2sgPSAoZXZlbnQp
ID0+IHsKLSAgICAgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXZlbnQuY3RybEtl
eSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmICh0aGlzLl9zZWxl
Y3Rpb25FbmFibGVkKQotICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oaXRlbSk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0
KGl0ZW0pOwotICAgICAgICB9OworICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZW50Vmlldy5y
ZXByZXNlbnRlZE9iamVjdCA9PT0gaXRlbSk7CiAKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdN
YXAuc2V0KGl0ZW0sIGNvbnRlbnRWaWV3KTsKLSAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tNYXAu
c2V0KGl0ZW0sIGhhbmRsZUNsaWNrKTsKLSAgICAgICAgY29udGVudFZpZXcuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIGhhbmRsZUNsaWNrKTsKIAogICAgICAgICB0aGlzLmFkZFN1
YnZpZXcoY29udGVudFZpZXcpOwogICAgICAgICB0aGlzLmNvbnRlbnRWaWV3QWRkZWQoY29udGVu
dFZpZXcpOwpAQCAtMTY5LDE0ICsxNjMsNiBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBj
bGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAg
ICAgIGNvbnRlbnRWaWV3LnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAK
LSAgICAgICAgbGV0IGhhbmRsZUNsaWNrID0gdGhpcy5faGFuZGxlQ2xpY2tNYXAuZ2V0KGl0ZW0p
OwotICAgICAgICBjb25zb2xlLmFzc2VydChoYW5kbGVDbGljayk7Ci0KLSAgICAgICAgaWYgKGhh
bmRsZUNsaWNrKSB7Ci0gICAgICAgICAgICBjb250ZW50Vmlldy5lbGVtZW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgaGFuZGxlQ2xpY2spOwotICAgICAgICAgICAgdGhpcy5faGFuZGxl
Q2xpY2tNYXAuZGVsZXRlKGl0ZW0pOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKCF0aGlzLnN1
YnZpZXdzLmxlbmd0aCkKICAgICAgICAgICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhvbGRlcigp
OwogICAgIH0KQEAgLTIwMCw2ICsxODYsOCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBj
bGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAg
ICAgICAgICAgIHRoaXMuX2NvbnRlbnRQbGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLl9jb250ZW50
UGxhY2Vob2xkZXI7CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9jb250ZW50UGxhY2Vob2xk
ZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoInBsYWNlaG9sZGVyIik7CisKICAgICAgICAgaWYgKCF0
aGlzLl9jb250ZW50UGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudE5vZGUpCiAgICAgICAgICAgICB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY29udGVudFBsYWNlaG9sZGVyRWxlbWVudCk7
CiAgICAgfQpAQCAtMjEyLDEwICsyMDAsMTEgQEAgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3ID0g
Y2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAg
IGluaXRpYWxMYXlvdXQoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnNpemUgfHwgIXRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpIHsKKyAgICAgICAgaWYg
KHRoaXMuX2NvbnRlbnRWaWV3Q29uc3RydWN0b3IpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5kbGVDbGljay5iaW5kKHRoaXMpKTsK
KworICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2l6ZSB8fCAhdGhpcy5fY29u
dGVudFZpZXdDb25zdHJ1Y3RvcikKICAgICAgICAgICAgIHRoaXMuc2hvd0NvbnRlbnRQbGFjZWhv
bGRlcigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAgICAgfQogCiAgICAgYXR0
YWNoZWQoKQpAQCAtMjkyLDYgKzI4MSwzMCBAQCBXSS5Db2xsZWN0aW9uQ29udGVudFZpZXcgPSBj
bGFzcyBDb2xsZWN0aW9uQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAg
ICAgICAgc2VsZWN0ZWRDb250ZW50Vmlldy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVk
Iik7CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
SS5Db2xsZWN0aW9uQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0ZWRJdGVtQ2hhbmdlZCk7CiAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNvbnRlbnRWaWV3LkV2ZW50LlN1
cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSk7CiAgICAgfQorCisgICAgX2hh
bmRsZUNsaWNrKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8
fCBldmVudC5jdHJsS2V5KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAobGV0
IFtpdGVtLCBjb250ZW50Vmlld10gb2YgdGhpcy5fY29udGVudFZpZXdNYXApIHsKKyAgICAgICAg
ICAgIGlmIChjb250ZW50Vmlldy5lbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fc2VsZWN0SXRlbShpdGVtKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChpdGVtKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAo
dGhpcy5fc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0obnVs
bCk7CisgICAgfQorfTsKKworV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3LkV2ZW50ID0geworICAg
IFNlbGVjdGVkSXRlbUNoYW5nZWQ6ICJjb2xsZWN0aW9uLWNvbnRlbnQtdmlldy1zZWxlY3RlZC1p
dGVtLWNoYW5nZWQiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKaW5kZXggZGY5MTJkZDU2ZmEwN2RmOTQ4
ZjBkN2Y3YWYwZDdjNmQxYjc5YTJmNi4uMjk2YzJhNTQyM2EwZjY5MWVhYzdkMmQwZTkzNjAwZjUx
NTRmMGRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKQEAgLTYwLDkgKzYwLDYgQEAgV0kuQ29udGVudFZp
ZXcgPSBjbGFzcyBDb250ZW50VmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgaWYgKHJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ2FudmFzKQogICAgICAgICAgICAgcmV0dXJuIG5l
dyBXSS5DYW52YXNDb250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMp
OwogCi0gICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhc0Nv
bGxlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKLQogICAgICAgICBpZiAo
cmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5TaGFkZXJQcm9ncmFtKQogICAgICAgICAg
ICAgcmV0dXJuIG5ldyBXSS5TaGFkZXJQcm9ncmFtQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmpl
Y3QsIGV4dHJhQXJndW1lbnRzKTsKIApAQCAtMTgyLDYgKzE3OSw5IEBAIFdJLkNvbnRlbnRWaWV3
ID0gY2xhc3MgQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgIGlmIChyZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwIHx8IHJlcHJlc2VudGVkT2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCiAgICAgICAgICAgICByZXR1
cm4gbmV3IFdJLkF1ZGl0VGVzdEdyb3VwQ29udGVudFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4
dHJhQXJndW1lbnRzKTsKIAorICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5BbmltYXRpb24pCisgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkFuaW1hdGlvbkNvbnRl
bnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBleHRyYUFyZ3VtZW50cyk7CisKICAgICAgICAgaWYg
KHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikKICAgICAgICAgICAg
IHJldHVybiBuZXcgV0kuQ29sbGVjdGlvbkNvbnRlbnRWaWV3KHJlcHJlc2VudGVkT2JqZWN0LCBl
eHRyYUFyZ3VtZW50cyk7CiAKQEAgLTI3Myw4ICsyNzMsNiBAQCBXSS5Db250ZW50VmlldyA9IGNs
YXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkNhbnZhcykKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5DYW52YXNDb2xsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLlNoYWRlclByb2dyYW0p
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV0kuVGltZWxpbmVSZWNvcmRpbmcpCkBAIC0zMTgsMTAgKzMxNiwxNCBAQCBX
SS5Db250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXAKICAgICAgICAgICAg
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8
fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0KQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLkFuaW1hdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5Db2xsZWN0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmICh0eXBlb2YgcmVwcmVzZW50ZWRPYmplY3Qg
PT09ICJzdHJpbmciIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgU3RyaW5nKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdFtXSS5D
b250ZW50Vmlldy5pc1ZpZXdhYmxlU3ltYm9sXSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01MTIsNCArNTE0LDUgQEAgV0kuQ29u
dGVudFZpZXcuRXZlbnQgPSB7CiAgICAgTmF2aWdhdGlvbkl0ZW1zRGlkQ2hhbmdlOiAiY29udGVu
dC12aWV3LW5hdmlnYXRpb24taXRlbXMtZGlkLWNoYW5nZSIKIH07CiAKK1dJLkNvbnRlbnRWaWV3
LmlzVmlld2FibGVTeW1ib2wgPSBTeW1ib2woImlzLXZpZXdhYmxlIik7CiBXSS5Db250ZW50Vmll
dy5Db250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0U3ltYm9sID0gU3ltYm9sKCJjb250ZW50
LXZpZXctZm9yLXJlcHJlc2VudGVkLW9iamVjdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGV0YWlsc1NlY3Rpb25TaW1wbGVSb3cuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
blNpbXBsZVJvdy5qcwppbmRleCBlNWE1ZmVjMWVhYmI1YzA5NzJjZmEwNTNkNTM0YzM2MDA5ZTFi
NzZmLi43ZWQwYzgyZWIzYjcxZWViNmJiYjFmOTdlOTc5MGY2YmJiYzU1NjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZXRhaWxzU2VjdGlv
blNpbXBsZVJvdy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5qcwpAQCAtOTYsNyArOTYsNyBAQCBXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyA9IGNsYXNzIERldGFpbHNTZWN0aW9uU2ltcGxlUm93IGV4dGVu
ZHMgV0kuRGV0YWlsc1NlYwogICAgIHsKICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSB8fCAi
IjsKIAotICAgICAgICBpZiAodGhpcy5fdmFsdWUpIHsKKyAgICAgICAgaWYgKHRoaXMuX3ZhbHVl
IHx8IHRoaXMuX3ZhbHVlID09PSAwKSB7CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NM
aXN0LnJlbW92ZShXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJvdy5FbXB0eVN0eWxlQ2xhc3NOYW1l
KTsKIAogICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGhhcyBzcGFjZSBjaGFyYWN0ZXJzIHRo
YXQgY2F1c2Ugd29yZCB3cmFwcGluZyB0aGVuIHdlIGRvbid0IG5lZWQgdGhlIGRhdGEgY2xhc3Mu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9H
cmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZDY2M2U2ZjBmMTcyZmNlMDkyNjdmOGVjMTZhZWE4ZGQ3ZWJhNTQxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhp
Y3NPdmVydmlld0NvbnRlbnRWaWV3LmNzcwpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
LmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyB7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
dmFyKC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50KTsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7
CisgICAgcGFkZGluZy1ib3R0b206IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOworfQorCisuY29udGVudC12aWV3Lmdy
YXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
IGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mt
b3ZlcnZpZXcgPiBzZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpIHsKKyAgICBtYXJnaW4tdG9wOiAy
MHB4OworfQorCisuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbiA+IC5o
ZWFkZXIgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAg
ICBwb3NpdGlvbjogc3RpY2t5OworICAgIHRvcDogMDsKKyAgICB6LWluZGV4OiAxOworICAgIG1p
bi1oZWlnaHQ6IHZhcigtLW5hdmlnYXRpb24tYmFyLWhlaWdodCk7CisgICAgLXdlYmtpdC1wYWRk
aW5nLXN0YXJ0OiA4cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NyUpOwor
ICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworfQorCisu
Y29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3ID4gc2VjdGlvbjpub3QoOmZpcnN0LW9mLXR5
cGUpID4gLmhlYWRlciB7CisgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1j
b2xvcik7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhpY3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4g
LmhlYWRlciA+IGgxIHsKKyAgICBtYXJnaW46IDA7Cit9CisKKy5jb250ZW50LXZpZXcuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgPiBzZWN0aW9uID4gLmhlYWRlciA+IC5uYXZpZ2F0aW9uLWJhciB7CisgICAg
ZmxleC1ncm93OiAxOworICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CisgICAgYm9yZGVy
LWJvdHRvbTogbm9uZTsKK30KKworLmNvbnRlbnQtdmlldy5ncmFwaGljcy1vdmVydmlldyA+IC5j
b250ZW50LXZpZXcuY2FudmFzLW92ZXJ2aWV3IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgdG9wOiAwOworICAgIHJpZ2h0OiAwOworICAgIGJvdHRvbTogMDsKKyAgICBsZWZ0OiAwOwor
fQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CisgICAgLmNvbnRlbnQt
dmlldy5ncmFwaGljcy1vdmVydmlldyB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgw
LCAwJSwgMTQlKTsKKyAgICB9CisKKyAgICAuY29udGVudC12aWV3LmdyYXBoaWNzLW92ZXJ2aWV3
ID4gc2VjdGlvbiA+IC5oZWFkZXIgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwg
MCUsIDIxJSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HcmFwaGljc092ZXJ2aWV3Q29u
dGVudFZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBjMGFlMDExNzVkOTdhZGViMjRkYzMwYzBiMzUwNzdj
YWJhMjhlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDIw
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1dJLkdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNz
IEdyYXBoaWNzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3Cit7Cisg
ICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlz
LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZ3JhcGhpY3Mtb3ZlcnZpZXciKTsKKworICAgICAgICB0
aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbSgiaW1wb3J0LXJlY29yZGluZyIsIFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9J
bXBvcnQuc3ZnIiwgMTUsIDE1KTsKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0udG9vbHRpcCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQiKTsKKyAgICAgICAgdGhpcy5faW1w
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9u
SXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQu
Q2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0
aGlzKTsKKworICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcg
V0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlZnJlc2giLCBXSS5VSVN0cmluZygiUmVmcmVzaCIp
LCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3ZnIiwgMTMsIDEzKTsKKyAgICAgICAgdGhpcy5fcmVmcmVz
aEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlUmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRo
aXMpOworCisgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcg
V0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSgic2hvdy1ncmlkIiwgV0kuVUlTdHJpbmco
IlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiKSwgV0kuVUlTdHJpbmcoIkhpZGUgdHJhbnNwYXJlbmN5
IGdyaWQiKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbUNoZWNrZXJzLnN2ZyIsIDEzLCAxMyk7Cisg
ICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkID0gISFX
SS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlU2hvd0dyaWRCdXR0b25DbGlja2VkLCB0aGlz
KTsKKworICAgICAgICB0aGlzLl9jYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gbmV3IFdJLkNh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcoV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9u
KTsKKworICAgICAgICB0aGlzLl9vdmVydmlld1ZpZXdzID0gW107CisgICAgfQorCisgICAgLy8g
UHVibGljCisKKyAgICBnZXQgc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9vdmVydmlld1ZpZXdzLmZsYXRNYXAoKHN1YnZpZXcpID0+
IHN1YnZpZXcuc3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzKTsKKyAgICB9CisKKyAgICBn
ZXQgbmF2aWdhdGlvbkl0ZW1zKCkKKyAgICB7CisgICAgICAgIGxldCBuYXZpZ2F0aW9uSXRlbXMg
PSBbXTsKKyAgICAgICAgaWYgKCFXSS5hbmltYXRpb25NYW5hZ2VyLnN1cHBvcnRlZCkgeworICAg
ICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2hBbGwodGhpcy5fY2FudmFzT3ZlcnZpZXdDb250
ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMpOworICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1
c2gobmV3IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgbmF2
aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0sIG5ldyBX
SS5EaXZpZGVyTmF2aWdhdGlvbkl0ZW0sIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRl
bSwgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIHJldHVybiBu
YXZpZ2F0aW9uSXRlbXM7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBhdHRhY2hl
ZCgpCisgICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgpOworCisgICAgICAgIFdJLnNldHRp
bmdzLnNob3dJbWFnZUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5n
ZWQsIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAg
ICAgIHRoaXMuX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCgpOworICAgIH0KKwor
ICAgIGRldGFjaGVkKCkKKyAgICB7CisgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVI
aWdobGlnaHQoKTsKKworICAgICAgICBXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVTaG93SW1h
Z2VHcmlkU2V0dGluZ0NoYW5nZWQsIHRoaXMpOworCisgICAgICAgIHN1cGVyLmRldGFjaGVkKCk7
CisgICAgfQorCisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICBzdXBlci5pbml0
aWFsTGF5b3V0KCk7CisKKyAgICAgICAgaWYgKFdJLmFuaW1hdGlvbk1hbmFnZXIuc3VwcG9ydGVk
KSB7CisgICAgICAgICAgICBsZXQgY3JlYXRlU2VjdGlvbiA9IChpZGVudGlmaWVyLCB0aXRsZSwg
b3ZlcnZpZXdWaWV3KSA9PiB7CisgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQob3ZlcnZp
ZXdWaWV3IGluc3RhbmNlb2YgV0kuQ29udGVudFZpZXcpOworCisgICAgICAgICAgICAgICAgbGV0
IHNlY3Rpb25FbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNlY3Rpb24iKSk7CisgICAgICAgICAgICAgICAgc2VjdGlvbkVsZW1lbnQuY2xh
c3NOYW1lID0gaWRlbnRpZmllcjsKKworICAgICAgICAgICAgICAgIGxldCBoZWFkZXJFbGVtZW50
ID0gc2VjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
IikpOworICAgICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQuY2xhc3NOYW1lID0gImhlYWRlciI7
CisKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGVFbGVtZW50ID0gaGVhZGVyRWxlbWVudC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMSIpKTsKKyAgICAgICAgICAgICAgICB0
aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aXRsZTsKKworICAgICAgICAgICAgICAgIGxldCBu
YXZpZ2F0aW9uSXRlbXMgPSBvdmVydmlld1ZpZXcubmF2aWdhdGlvbkl0ZW1zOworICAgICAgICAg
ICAgICAgIGlmIChuYXZpZ2F0aW9uSXRlbXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAg
IGxldCBuYXZpZ2F0aW9uQmFyID0gbmV3IFdJLk5hdmlnYXRpb25CYXIoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgibmF2IiksIG5hdmlnYXRpb25JdGVtcyk7CisgICAgICAgICAgICAgICAgICAgIGhl
YWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQobmF2aWdhdGlvbkJhci5lbGVtZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG5hdmlnYXRpb25CYXIpOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGxldCBjb250ZW50RWxlbWVudCA9IHNlY3Rpb25FbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICAgICAg
ICAgICAgICBjb250ZW50RWxlbWVudC5jbGFzc05hbWUgPSAiY29udGVudCI7CisKKyAgICAgICAg
ICAgICAgICBjb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZChvdmVydmlld1ZpZXcuZWxlbWVudCk7
CisgICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KG92ZXJ2aWV3Vmlldyk7CisKKyAgICAg
ICAgICAgICAgICBvdmVydmlld1ZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uQ29u
dGVudFZpZXcuRXZlbnQuU2VsZWN0ZWRJdGVtQ2hhbmdlZCwgdGhpcy5faGFuZGxlT3ZlcnZpZXdW
aWV3U2VsZWN0ZWRJdGVtQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICAgICAgb3ZlcnZpZXdW
aWV3LmFkZEV2ZW50TGlzdGVuZXIoV0kuQ29udGVudFZpZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVw
cmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVPdmVydmlld1ZpZXdTdXBwbGVt
ZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICAgICAgICAg
IHRoaXMuX292ZXJ2aWV3Vmlld3MucHVzaChvdmVydmlld1ZpZXcpOworICAgICAgICAgICAgfTsK
KworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbigiY2FudmFzIiwgV0kuVUlTdHJpbmcoIkNhbnZh
c2VzIiksIHRoaXMuX2NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcpOworCisgICAgICAgICAgICBs
ZXQgYW5pbWF0aW9uQ29sbGVjdGlvbiA9IFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29s
bGVjdGlvbjsKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oIndlYi1hbmltYXRpb24iLCBXSS5V
SVN0cmluZygiV2ViIEFuaW1hdGlvbnMiKSwgbmV3IFdJLkFuaW1hdGlvbkNvbGxlY3Rpb25Db250
ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFuaW1hdGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJ
LkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbikpKTsKKyAgICAgICAgICAgIGNyZWF0ZVNlY3Rp
b24oImNzcy1hbmltYXRpb24iLCBXSS5VSVN0cmluZygiQ1NTIEFuaW1hdGlvbnMiKSwgbmV3IFdJ
LkFuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50VmlldyhhbmltYXRpb25Db2xsZWN0aW9uLmFuaW1h
dGlvbkNvbGxlY3Rpb25Gb3JUeXBlKFdJLkFuaW1hdGlvbi5UeXBlLkNTU0FuaW1hdGlvbikpKTsK
KyAgICAgICAgICAgIGNyZWF0ZVNlY3Rpb24oImNzcy10cmFuc2l0aW9uIiwgV0kuVUlTdHJpbmco
IkNTUyBUcmFuc2l0aW9ucyIpLCBuZXcgV0kuQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3
KGFuaW1hdGlvbkNvbGxlY3Rpb24uYW5pbWF0aW9uQ29sbGVjdGlvbkZvclR5cGUoV0kuQW5pbWF0
aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbikpKTsKKworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2NhbnZhc092
ZXJ2aWV3Q29udGVudFZpZXcpOworCisgICAgICAgIGxldCBkcm9wWm9uZVZpZXcgPSBuZXcgV0ku
RHJvcFpvbmVWaWV3KHRoaXMpOworICAgICAgICBkcm9wWm9uZVZpZXcudGV4dCA9IFdJLlVJU3Ry
aW5nKCJJbXBvcnQgUmVjb3JkaW5nIik7CisgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVt
ZW50ID0gdGhpcy5lbGVtZW50OworICAgICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpvbmVWaWV3
KTsKKyAgICB9CisKKyAgICAvLyBEcm9wWm9uZVZpZXcgZGVsZWdhdGUKKworICAgIGRyb3Bab25l
U2hvdWxkQXBwZWFyRm9yRHJhZ0V2ZW50KGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAgICAg
IHJldHVybiBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIik7CisgICAg
fQorCisgICAgZHJvcFpvbmVIYW5kbGVEcm9wKGRyb3Bab25lLCBldmVudCkKKyAgICB7CisgICAg
ICAgIGxldCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAgaWYgKGZp
bGVzLmxlbmd0aCAhPT0gMSkgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJl
ZXAoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFdJLkZpbGVV
dGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJv
Y2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRs
ZVJlZnJlc2hCdXR0b25DbGlja2VkKCkKKyAgICB7CisgICAgICAgIGZvciAobGV0IG92ZXJ2aWV3
VmlldyBvZiB0aGlzLl9vdmVydmlld1ZpZXdzKQorICAgICAgICAgICAgb3ZlcnZpZXdWaWV3Lmhh
bmRsZVJlZnJlc2hCdXR0b25DbGlja2VkKCk7CisgICAgfQorCisgICAgX2hhbmRsZVNob3dHcmlk
QnV0dG9uQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAgIFdJLnNldHRpbmdzLnNob3dJbWFn
ZUdyaWQudmFsdWUgPSAhdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0
ZWQ7CisgICAgfQorCisgICAgX2hhbmRsZVNob3dJbWFnZUdyaWRTZXR0aW5nQ2hhbmdlZCgpCisg
ICAgeworICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRl
ZCA9ICEhV0kuc2V0dGluZ3Muc2hvd0ltYWdlR3JpZC52YWx1ZTsKKyAgICB9CisKKyAgICBfaGFu
ZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgV0kuRmlsZVV0aWxpdGllcy5pbXBvcnRKU09OKChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFn
ZXIucHJvY2Vzc0pTT04ocmVzdWx0KSwge211bHRpcGxlOiB0cnVlfSk7CisgICAgfQorCisgICAg
X2hhbmRsZU92ZXJ2aWV3Vmlld1NlbGVjdGVkSXRlbUNoYW5nZWQoZXZlbnQpCisgICAgeworICAg
ICAgICBpZiAoIWV2ZW50LnRhcmdldC5zZWxlY3RlZEl0ZW0pCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgZm9yIChsZXQgb3ZlcnZpZXdWaWV3IG9mIHRoaXMuX292ZXJ2aWV3Vmlld3Mp
IHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld1ZpZXcgIT09IGV2ZW50LnRhcmdldCAmJiBvdmVy
dmlld1ZpZXcuc2VsZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgICAgICAgICBvdmVydmlld1ZpZXcu
c2VsZWN0ZWRJdGVtID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIF9oYW5kbGVPdmVy
dmlld1ZpZXdTdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UoZXZuZXQpCisg
ICAgeworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db250ZW50Vmll
dy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9iamVjdHNEaWRDaGFuZ2UpOworICAgIH0K
KworICAgIF9oYW5kbGVDbGljayhldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC50YXJn
ZXQgIT09IHRoaXMuZWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3Ig
KGxldCBvdmVydmlld1ZpZXcgb2YgdGhpcy5fb3ZlcnZpZXdWaWV3cykgeworICAgICAgICAgICAg
aWYgKG92ZXJ2aWV3Vmlldy5zZWxlY3Rpb25FbmFibGVkKQorICAgICAgICAgICAgICAgIG92ZXJ2
aWV3Vmlldy5zZWxlY3RlZEl0ZW0gPSBudWxsOworICAgICAgICB9CisgICAgfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNz
VGFiQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQwNzVjMDM3NTA3
YTJlYzc3YTM1MWZkZDM4OGE1OGY0YTJhODgxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dyYXBoaWNzVGFiQ29udGVudFZpZXcu
Y3NzCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29udGVudC12aWV3LnRhYi5ncmFw
aGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuY2FudmFzLW92ZXJ2aWV3IC5pY29uIHsKKyAg
ICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhc092ZXJ2aWV3LnN2Zyk7Cit9CisKKy5jb250
ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVtIC5jYW52YXMuY2Fu
dmFzLTJkIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0NhbnZhczJELnN2Zyk7
Cit9CisKKy5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5jYW52YXM6bWF0Y2hlcygud2ViZ2wsIC53ZWJnbDIsIC53ZWJncHUsIC53ZWJtZXRhbCkgLmlj
b24geworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzM0Quc3ZnKTsKK30KKworLmNv
bnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRpb24tYmFyID4gLml0ZW0gLnJlY29yZGlu
ZyA+IC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1JlY29yZGluZy5zdmcpOwor
fQorCisuY29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAu
c2hhZGVyLXByb2dyYW0gPiAuaWNvbiB7CisgICAgY29udGVudDogaW1hZ2Utc2V0KHVybCguLi9J
bWFnZXMvRG9jdW1lbnRHTC5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0RvY3VtZW50R0xAMngucG5n
KSAyeCk7Cit9CisKK0BtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKKyAgICAu
Y29udGVudC12aWV3LnRhYi5ncmFwaGljcyAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSAuZ3JhcGhp
Y3Mtb3ZlcnZpZXcgLmljb24geworICAgICAgICBmaWx0ZXI6IGludmVydCg2MCUpOworICAgIH0K
KworICAgIC5jb250ZW50LXZpZXcudGFiLmdyYXBoaWNzIC5uYXZpZ2F0aW9uLWJhciA+IC5pdGVt
IC5jYW52YXMgLmljb24sCisgICAgLmNvbnRlbnQtdmlldy50YWIuZ3JhcGhpY3MgLm5hdmlnYXRp
b24tYmFyID4gLml0ZW0gLnJlY29yZGluZyA+IC5pY29uIHsKKyAgICAgICAgZmlsdGVyOiBpbnZl
cnQoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9HcmFwaGljc1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3JhcGhpY3NUYWJDb250ZW50Vmlldy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZTZkODU3MjI2Nzk4MzBlNGE2NTc3MTk3ZDlhOTI4NTM4MjcwM2Y1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR3Jh
cGhpY3NUYWJDb250ZW50Vmlldy5qcwpAQCAtMCwwICsxLDMxNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJ
LkdyYXBoaWNzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBHcmFwaGljc1RhYkNvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYWJDb250ZW50VmlldworeworICAgIGNvbnN0cnVjdG9y
KCkKKyAgICB7CisgICAgICAgIGxldCB0YWJCYXJJdGVtID0gV0kuR2VuZXJhbFRhYkJhckl0ZW0u
ZnJvbVRhYkluZm8oV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy50YWJJbmZvKCkpOworCisgICAg
ICAgIGNvbnN0IG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciA9IFdJLkNhbnZhc1Np
ZGViYXJQYW5lbDsKKyAgICAgICAgY29uc3QgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9y
cyA9IFsKKyAgICAgICAgICAgIFdJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCwK
KyAgICAgICAgICAgIFdJLlJlY29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbCwKKyAgICAg
ICAgICAgIFdJLkNhbnZhc0RldGFpbHNTaWRlYmFyUGFuZWwsCisgICAgICAgICAgICBXSS5Bbmlt
YXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLAorICAgICAgICBdOworICAgICAgICBjb25zdCBkaXNh
YmxlQmFja0ZvcndhcmQgPSB0cnVlOworICAgICAgICBzdXBlcigiZ3JhcGhpY3MiLCBbImdyYXBo
aWNzIl0sIHRhYkJhckl0ZW0sIG5hdmlnYXRpb25TaWRlYmFyUGFuZWxDb25zdHJ1Y3RvciwgZGV0
YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycywgZGlzYWJsZUJhY2tGb3J3YXJkKTsKKworICAg
ICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lID0gbmV3IFdJLlRyZWVPdXRsaW5lOworICAg
ICAgICB0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmFsbG93c1JlcGVhdFNlbGVjdGlvbiA9IHRy
dWU7CisgICAgICAgIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihX
SS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU92ZXJ2
aWV3VHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOworCisgICAgICAgIHRoaXMu
X2NhbnZhc2VzVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KCJjYW52YXMt
b3ZlcnZpZXciLCBXSS5VSVN0cmluZygiT3ZlcnZpZXciKSwgbnVsbCwge1tXSS5Db250ZW50Vmll
dy5pc1ZpZXdhYmxlU3ltYm9sXTogdHJ1ZX0pOworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVP
dXRsaW5lLmFwcGVuZENoaWxkKHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQpOworCisgICAgICAg
IHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50ID0gbmV3IFdJLkZvbGRlclRy
ZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJTYXZlZCBSZWNvcmRpbmdzIikpOworICAgICAgICB0aGlz
Ll9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSB0cnVlOworICAgICAg
ICB0aGlzLl9jYW52YXNlc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NhdmVkQ2FudmFz
UmVjb3JkaW5nc1RyZWVFbGVtZW50KTsKKworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dCA9
IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNw
YWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fcmVjb3Jk
U2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOworICAgICAgICB0aGlz
Ll9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAgdGhpcy5fcmVjb3Jk
U2luZ2xlRnJhbWVTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KFdJLktleWJvYXJk
U2hvcnRjdXQuTW9kaWZpZXIuU2hpZnQsIFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0
aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fcmVjb3JkU2luZ2xl
RnJhbWVTaG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CisgICAgICAg
IHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuZW5hYmxlKCk7CisgICAgICAgIFdJLmFuaW1hdGlvbk1hbmFn
ZXIuZW5hYmxlKCk7CisgICAgfQorCisgICAgc3RhdGljIHRhYkluZm8oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGltYWdlOiAiSW1hZ2VzL0dyYXBoaWNzLnN2ZyIsCisg
ICAgICAgICAgICB0aXRsZTogV0kuVUlTdHJpbmcoIkdyYXBoaWNzIiksCisgICAgICAgIH07Cisg
ICAgfQorCisgICAgc3RhdGljIGlzVGFiQWxsb3dlZCgpCisgICAgeworICAgICAgICByZXR1cm4g
SW5zcGVjdG9yQmFja2VuZC5oYXNEb21haW4oIkNhbnZhcyIpCisgICAgICAgICAgICB8fCBJbnNw
ZWN0b3JCYWNrZW5kLmhhc0RvbWFpbigiQW5pbWF0aW9uIik7CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICB0cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NhbnZhc2VzVHJlZU91dGxpbmUuZmlu
ZFRyZWVFbGVtZW50KHJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICB9CisKKyAgICBnZXQgdHlwZSgp
CisgICAgeworICAgICAgICByZXR1cm4gV0kuR3JhcGhpY3NUYWJDb250ZW50Vmlldy5UeXBlOwor
ICAgIH0KKworICAgIGdldCBzdXBwb3J0c1NwbGl0Q29udGVudEJyb3dzZXIoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgZ2V0IG1hbmFnZXNOYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHNo
b3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgY29va2llKQorICAgIHsKKyAg
ICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQ29sbGVjdGlvbikgewor
ICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fb3Zl
cnZpZXdDb250ZW50Vmlldyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBzdXBlci5zaG93UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tp
ZSk7CisgICAgfQorCisgICAgY2FuU2hvd1JlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V0kuQ2FudmFzQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5z
dGFuY2VvZiBXSS5DYW52YXMKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV0kuUmVjb3JkaW5nQ29sbGVjdGlvbgorICAgICAgICAgICAgfHwgcmVwcmVzZW50ZWRP
YmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcKKyAgICAgICAgICAgIHx8IHJlcHJlc2VudGVk
T2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbUNvbGxlY3Rpb24KKyAgICAgICAgICAg
IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbQorICAgICAg
ICAgICAgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5BbmltYXRpb25Db2xsZWN0
aW9uCisgICAgICAgICAgICB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdJLkFuaW1h
dGlvbjsKKyAgICB9CisKKyAgICBjbG9zZWQoKQorICAgIHsKKyAgICAgICAgV0kuYW5pbWF0aW9u
TWFuYWdlci5kaXNhYmxlKCk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuZGlzYWJsZSgpOwor
CisgICAgICAgIHN1cGVyLmNsb3NlZCgpOworICAgIH0KKworICAgIHJlc3RvcmVTdGF0ZUZyb21D
b29raWUoY29va2llKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvbmNlIDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xNzc2MDY+IGlzIGNvbXBsZXRlLgorICAgIH0KKworICAgIHNh
dmVTdGF0ZVRvQ29va2llKGNvb2tpZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc3NjA2PiBpcyBjb21wbGV0ZS4KKyAgICB9
CisKKyAgICBhc3luYyBoYW5kbGVGaWxlRHJvcChmaWxlcykKKyAgICB7CisgICAgICAgIGF3YWl0
IFdJLkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01h
bmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQorCisgICAgLy8gUHJvdGVjdGVkCisK
KyAgICBhdHRhY2hlZCgpCisgICAgeworICAgICAgICBzdXBlci5hdHRhY2hlZCgpOworCisgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJ
LkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCB0aGlzLl9oYW5kbGVDYW52YXNBZGRlZCwgdGhp
cyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5hZGRFdmVudExp
c3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbVJlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZh
c1JlbW92ZWQsIHRoaXMpOworICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdTYXZlZCwgdGhpcy5faGFuZGxlUmVj
b3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworICAgICAgICBXSS5DYW52YXMuYWRkRXZlbnRM
aXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCwgdGhpcy5faGFuZGxlUmVj
b3JkaW5nU2F2ZWRPclN0b3BwZWQsIHRoaXMpOworCisgICAgICAgIGZvciAobGV0IGNoaWxkIG9m
IHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQuY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGxldCBj
YW52YXMgPSBjaGlsZC5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgICAgIGlmIChjYW52YXMg
aW5zdGFuY2VvZiBXSS5DYW52YXMgJiYgIVdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bi5oYXMoY2FudmFzKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVDYW52YXMoY2FudmFz
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IGNhbnZhcyBvZiBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5fY2FudmFzZXNU
cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoY2FudmFzKSkKKyAgICAgICAgICAgICAgICB0aGlz
Ll9hZGRDYW52YXMoY2FudmFzKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHJlY29y
ZGluZyBvZiBXSS5jYW52YXNNYW5hZ2VyLnNhdmVkUmVjb3JkaW5ncykgeworICAgICAgICAgICAg
aWYgKCF0aGlzLl9jYW52YXNlc1RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChyZWNvcmRpbmcp
KQorICAgICAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGluZyhyZWNvcmRpbmcsIHtzdXBwcmVz
c1Nob3dSZWNvcmRpbmc6IHRydWV9KTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3JlY29y
ZFNob3J0Y3V0LmRpc2FibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZy
YW1lU2hvcnRjdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBkZXRhY2hlZCgpCisg
ICAgeworICAgICAgICB0aGlzLl9yZWNvcmRTaG9ydGN1dC5kaXNhYmxlZCA9IHRydWU7CisgICAg
ICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuZGlzYWJsZWQgPSB0cnVlOworCisg
ICAgICAgIFdJLkNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhcy5FdmVudC5SZWNv
cmRpbmdTdG9wcGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9yU3RvcHBlZCwgdGhpcyk7
CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LlJlY29yZGluZ1NhdmVkLCB0aGlzLl9oYW5kbGVSZWNvcmRpbmdTYXZlZE9y
U3RvcHBlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCB0aGlz
Ll9oYW5kbGVDYW52YXNBZGRlZCwgdGhpcyk7CisgICAgICAgIFdJLmNhbnZhc01hbmFnZXIuY2Fu
dmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRl
bVJlbW92ZWQsIHRoaXMuX2hhbmRsZUNhbnZhc1JlbW92ZWQsIHRoaXMpOworCisgICAgICAgIHN1
cGVyLmRldGFjaGVkKCk7CisgICAgfQorCisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAg
ICAgICB0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3ID0gbmV3IFdJLkdyYXBoaWNzT3ZlcnZpZXdD
b250ZW50VmlldzsKKyAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXco
dGhpcy5fb3ZlcnZpZXdDb250ZW50Vmlldyk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisg
ICAgX2FkZENhbnZhcyhjYW52YXMpCisgICAgeworICAgICAgICB0aGlzLl9jYW52YXNlc1RyZWVF
bGVtZW50LmFwcGVuZENoaWxkKG5ldyBXSS5DYW52YXNUcmVlRWxlbWVudChjYW52YXMpKTsKKwor
ICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3Jk
aW5nOiB0cnVlLAorICAgICAgICB9OworCisgICAgICAgIGZvciAobGV0IHJlY29yZGluZyBvZiBj
YW52YXMucmVjb3JkaW5nQ29sbGVjdGlvbikKKyAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZGlu
ZyhyZWNvcmRpbmcsIG9wdGlvbnMpOworICAgIH0KKworICAgIF9yZW1vdmVDYW52YXMoY2FudmFz
KQorICAgIHsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fY2FudmFzZXNUcmVlT3V0
bGluZS5maW5kVHJlZUVsZW1lbnQoY2FudmFzKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHJl
ZUVsZW1lbnQsICJNaXNzaW5nIHRyZWUgZWxlbWVudCBmb3IgY2FudmFzLiIsIGNhbnZhcyk7CisK
KyAgICAgICAgY29uc3Qgc3VwcHJlc3NOb3RpZmljYXRpb24gPSB0cnVlOworICAgICAgICB0cmVl
RWxlbWVudC5kZXNlbGVjdChzdXBwcmVzc05vdGlmaWNhdGlvbik7CisgICAgICAgIHRoaXMuX2Nh
bnZhc2VzVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOworCisgICAgICAgIGxl
dCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50
VmlldzsKKyAgICAgICAgaWYgKGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkNhbnZh
c0NvbnRlbnRWaWV3KQorICAgICAgICAgICAgV0kuc2hvd1JlcHJlc2VudGVkT2JqZWN0KFdJLmNh
bnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbik7CisgICAgICAgIGVsc2UgaWYgKGN1cnJlbnRD
b250ZW50VmlldyBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ICYmIGNhbnZhcy5y
ZWNvcmRpbmdDb2xsZWN0aW9uLmhhcyhjdXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50ZWRPYmpl
Y3QpKQorICAgICAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQ
YXRoRm9yQ3VycmVudENvbnRlbnRWaWV3KCk7CisKKyAgICAgICAgbGV0IG5hdmlnYXRpb25TaWRl
YmFyUGFuZWwgPSB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWw7CisgICAgICAgIGlmIChuYXZp
Z2F0aW9uU2lkZWJhclBhbmVsIGluc3RhbmNlb2YgV0kuQ2FudmFzU2lkZWJhclBhbmVsICYmIG5h
dmlnYXRpb25TaWRlYmFyUGFuZWwudmlzaWJsZSkKKyAgICAgICAgICAgIG5hdmlnYXRpb25TaWRl
YmFyUGFuZWwudXBkYXRlUmVwcmVzZW50ZWRPYmplY3RzKCk7CisKKyAgICAgICAgdGhpcy5zaG93
RGV0YWlsc1NpZGViYXJQYW5lbHMoKTsKKyAgICB9CisKKyAgICBfYWRkUmVjb3JkaW5nKHJlY29y
ZGluZywgb3B0aW9ucyA9IHt9KQorICAgIHsKKyAgICAgICAgaWYgKCFyZWNvcmRpbmcuc291cmNl
KSB7CisgICAgICAgICAgICBjb25zdCBzdWJ0aXRsZSA9IG51bGw7CisgICAgICAgICAgICBsZXQg
cmVjb3JkaW5nVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KFsicmVjb3Jk
aW5nIl0sIHJlY29yZGluZy5kaXNwbGF5TmFtZSwgc3VidGl0bGUsIHJlY29yZGluZyk7CisgICAg
ICAgICAgICB0aGlzLl9zYXZlZENhbnZhc1JlY29yZGluZ3NUcmVlRWxlbWVudC5oaWRkZW4gPSBm
YWxzZTsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2FudmFzUmVjb3JkaW5nc1RyZWVFbGVtZW50
LmFwcGVuZENoaWxkKHJlY29yZGluZ1RyZWVFbGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICghb3B0aW9ucy5zdXBwcmVzc1Nob3dSZWNvcmRpbmcpCisgICAgICAgICAgICB0aGlzLnNo
b3dSZXByZXNlbnRlZE9iamVjdChyZWNvcmRpbmcpOworICAgIH0KKworICAgIF9oYW5kbGVDYW52
YXNBZGRlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2FkZENhbnZhcyhldmVudC5kYXRh
Lml0ZW0pOworICAgIH0KKworICAgIF9oYW5kbGVDYW52YXNSZW1vdmVkKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdGhpcy5fcmVtb3ZlQ2FudmFzKGV2ZW50LmRhdGEuaXRlbSk7CisgICAgfQorCisg
ICAgX2hhbmRsZU92ZXJ2aWV3VHJlZU91dGxpbmVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5fY2FudmFzZXNUcmVlT3V0
bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OworICAgICAgICBpZiAoIXNlbGVjdGVkRWxlbWVudCkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzd2l0Y2ggKHNlbGVjdGVkRWxlbWVudCkg
eworICAgICAgICBjYXNlIHRoaXMuX2NhbnZhc2VzVHJlZUVsZW1lbnQ6CisgICAgICAgIGNhc2Ug
dGhpcy5fc2F2ZWRDYW52YXNSZWNvcmRpbmdzVHJlZUVsZW1lbnQ6CisgICAgICAgICAgICB0aGlz
LmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyh0aGlzLl9vdmVydmlld0NvbnRlbnRWaWV3
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCByZXByZXNl
bnRlZE9iamVjdCA9IHNlbGVjdGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAg
aWYgKCF0aGlzLmNhblNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCkpIHsK
KyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVW5leHBlY3RlZCByZXByZXNlbnRl
ZE9iamVjdC4iLCByZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9i
amVjdCk7CisgICAgfQorCisgICAgX2hhbmRsZVJlY29yZGluZ1NhdmVkT3JTdG9wcGVkKGV2ZW50
KQorICAgIHsKKyAgICAgICAgbGV0IHtyZWNvcmRpbmcsIGluaXRpYXRlZEJ5VXNlciwgaW1wb3J0
ZWR9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgaWYgKCFyZWNvcmRpbmcpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbGV0IG9wdGlvbnMgPSB7fTsKKworICAgICAgICAvLyBBbHdheXMg
c2hvdyBpbXBvcnRlZCByZWNvcmRpbmdzLgorICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSB8
fCAhaW1wb3J0ZWQpCisgICAgICAgICAgICBvcHRpb25zLnN1cHByZXNzU2hvd1JlY29yZGluZyA9
ICFpbml0aWF0ZWRCeVVzZXIgfHwgdGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50UmVwcmVzZW50
ZWRPYmplY3RzLnNvbWUoKHJlcHJlc2VudGVkT2JqZWN0KSA9PiByZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdJLlJlY29yZGluZyk7CisKKyAgICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJl
Y29yZGluZywgb3B0aW9ucyk7CisgICAgfQorCisgICAgX2hhbmRsZVNwYWNlKGV2ZW50KQorICAg
IHsKKyAgICAgICAgaWYgKFdJLmlzRXZlbnRUYXJnZXRBbkVkaXRhYmxlRmllbGQoZXZlbnQpKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2lkZWJh
clBhbmVsKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBjYW52YXMgPSB0aGlz
Lm5hdmlnYXRpb25TaWRlYmFyUGFuZWwuY2FudmFzOworICAgICAgICBpZiAoIWNhbnZhcykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoY2FudmFzLnJlY29yZGluZ0FjdGl2ZSkK
KyAgICAgICAgICAgIGNhbnZhcy5zdG9wUmVjb3JkaW5nKCk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgbGV0IHNpbmdsZUZyYW1lID0gISFldmVudC5zaGlmdEtleTsKKyAgICAgICAgICAg
IGNhbnZhcy5zdGFydFJlY29yZGluZyhzaW5nbGVGcmFtZSk7CisgICAgICAgIH0KKworICAgICAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0KK307CisKK1dJLkdyYXBoaWNzVGFiQ29u
dGVudFZpZXcuVHlwZSA9ICJncmFwaGljcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NYWluLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01haW4uY3NzCmluZGV4IGNlMzFhZjQ2MzM3ODYxMzRiMWNj
NzI3NmEzNGQ2YTQ0NzE4YTJhZTIuLjEwY2Q2NGE0NTU5MDk5NWNkYTQ5MDI5MjFlMWJmOTgxNTAz
YWY5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL01haW4uY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL01haW4uY3NzCkBAIC0yMDksMTIgKzIwOSwxMiBAQCBib2R5LmRvY2tlZDptYXRjaGVzKC5y
aWdodCwgLmxlZnQpICNuYXZpZ2F0aW9uLXNpZGViYXIuY29sbGFwc2VkID4gLnJlc2l6ZXIgewog
ICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiB9CiAKLS5tZXNzYWdlLXRleHQtdmlldyAubmF2aWdh
dGlvbi1pdGVtLWhlbHAgeworLm5hdmlnYXRpb24taXRlbS1oZWxwIHsKICAgICBkaXNwbGF5OiBi
bG9jazsKICAgICBsaW5lLWhlaWdodDogMjJweDsKIH0KIAotLm1lc3NhZ2UtdGV4dC12aWV3IC5u
YXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgeworLm5hdmlnYXRpb24taXRlbS1o
ZWxwID4gLm5hdmlnYXRpb24tYmFyIHsKICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICBo
ZWlnaHQ6IDIwcHg7CiAgICAgcGFkZGluZzogMCA0cHg7CkBAIC0yMjIsOSArMjIyLDkgQEAgYm9k
eS5kb2NrZWQ6bWF0Y2hlcygucmlnaHQsIC5sZWZ0KSAjbmF2aWdhdGlvbi1zaWRlYmFyLmNvbGxh
cHNlZCA+IC5yZXNpemVyIHsKICAgICB2ZXJ0aWNhbC1hbGlnbjogLTNweDsKIH0KIAotLm1lc3Nh
Z2UtdGV4dC12aWV3IC5uYXZpZ2F0aW9uLWl0ZW0taGVscCAubmF2aWdhdGlvbi1iYXIgPiAuaXRl
bSB7CisubmF2aWdhdGlvbi1pdGVtLWhlbHAgPiAubmF2aWdhdGlvbi1iYXIgPiAuaXRlbSB7CiAg
ICAgaGVpZ2h0OiAxMDAlOwotICAgIHBhZGRpbmc6IDAgNHB4OworICAgIHBhZGRpbmc6IDAgNHB4
ICFpbXBvcnRhbnQ7CiAgICAgZm9udC1zaXplOiAxMXB4OwogICAgIGJvcmRlci1yYWRpdXM6IDRw
eDsKICAgICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1ib3JkZXItY29sb3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29u
dGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCmluZGV4IDhkNjBmMjNmMGIyYmVjNzBkOGJlODNkMDIx
N2E3MGFjNzRmZDIzNTguLjExZjFkZDgyZTU1Mzc3MDE5MGIyZmY3ZWI4YjYwOGVlYzdlMjljMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
Y29yZGluZ0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKQEAgLTIzLDE4ICsyMywxOCBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS5jb250ZW50LXZp
ZXc6bm90KC50YWIpLnJlY29yZGluZyB7CisuY29udGVudC12aWV3LnJlY29yZGluZyB7CiAgICAg
ZGlzcGxheTogZmxleDsKICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgIHBhZGRpbmc6
IDEwcHg7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5MCUpOwogfQogCi0uY29u
dGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgeworLmNvbnRlbnQtdmlldy5y
ZWNvcmRpbmcgPiBoZWFkZXIgewogICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiB9CiAKLS5jb250
ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVy
IHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIg
ewogICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgZmxleC13cmFwOiB3cmFwOwogICAgIHBhZGRpbmc6
IDRweCAwOwpAQCAtNDMsMzEgKzQzLDMxIEBACiAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogfQog
Ci0uY29udGVudC12aWV3Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNv
bnRhaW5lciA+ICogeworLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVy
LWNvbnRhaW5lciA+ICogewogICAgIG1hcmdpbjogNHB4IDhweDsKIH0KIAotLmNvbnRlbnQtdmll
dzpub3QoLnRhYikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiAuc2xp
ZGVyLXZhbHVlIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1j
b250YWluZXIgPiAuc2xpZGVyLXZhbHVlIHsKICAgICBmb250LWZhbWlseTogTWVubG8sIG1vbm9z
cGFjZTsKICAgICBmb250LWZhbWlseTogMTFweDsKIH0KIAotLmNvbnRlbnQtdmlldzpub3QoLnRh
YikucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJh
bmdlXSB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFp
bmVyID4gaW5wdXRbdHlwZT1yYW5nZV0gewogICAgIGZsZXg6IDE7CiAgICAgd2lkdGg6IDEwMCU7
CiB9CiAKLS5jb250ZW50LXZpZXc6bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlk
ZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxl
LXRyYWNrIHsKKy5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNsaWRlci1jb250
YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sg
ewogICAgIGhlaWdodDogMnB4OwogICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvcmRlci1j
b2xvcik7CiAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogfQogCi0uY29udGVudC12aWV3Om5vdCgu
dGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciA+IGlucHV0W3R5cGU9
cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7CisuY29udGVudC12aWV3LnJlY29yZGluZyA+
IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHsKICAgICBtYXJnaW4tdG9wOiAtNnB4OwogfQogCi0uY29udGVudC12aWV3
Om5vdCgudGFiKS5yZWNvcmRpbmcgPiAucHJldmlldy1jb250YWluZXIgeworLmNvbnRlbnQtdmll
dy5yZWNvcmRpbmcgPiAucHJldmlldy1jb250YWluZXIgewogICAgIGRpc3BsYXk6IGZsZXg7CiAg
ICAgZmxleDogMTsKICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKQEAgLTc3LDI3ICs3Nywy
NyBAQAogICAgIGhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTsKIH0KIAotLmNvbnRlbnQt
dmlldzpub3QoLnRhYikucmVjb3JkaW5nIDptYXRjaGVzKGltZywgY2FudmFzKSB7CisuY29udGVu
dC12aWV3LnJlY29yZGluZyA6bWF0Y2hlcyhpbWcsIGNhbnZhcykgewogICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgbWF4LWhlaWdodDogMTAwJTsKIH0K
IAotLmNvbnRlbnQtdmlldzpub3QoLnRhYikucmVjb3JkaW5nIGNhbnZhcy5wYXRoIHsKKy5jb250
ZW50LXZpZXcucmVjb3JkaW5nIGNhbnZhcy5wYXRoIHsKICAgICB6LWluZGV4OiAxMDsKIH0KIAog
QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5jb250ZW50LXZpZXc6
bm90KC50YWIpLnJlY29yZGluZyB7CisgICAgLmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgewogICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDsKICAgICB9CiAKLSAgICAuY29udGVudC12aWV3
Om5vdCgudGFiKS5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CisgICAg
LmNvbnRlbnQtdmlldy5yZWNvcmRpbmcgPiBoZWFkZXIgPiAuc2xpZGVyLWNvbnRhaW5lciB7CiAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0OwogICAgICAgICBib3JkZXItY29sb3I6IHZh
cigtLWJvcmRlci1jb2xvci1zZWNvbmRhcnkpOwogICAgIH0KIAotICAgIC5jb250ZW50LXZpZXc6
bm90KC50YWIpLnJlY29yZGluZyA+IGhlYWRlciA+IC5zbGlkZXItY29udGFpbmVyID4gaW5wdXRb
dHlwZT1yYW5nZV0geworICAgIC5jb250ZW50LXZpZXcucmVjb3JkaW5nID4gaGVhZGVyID4gLnNs
aWRlci1jb250YWluZXIgPiBpbnB1dFt0eXBlPXJhbmdlXSB7CiAgICAgICAgIGJhY2tncm91bmQ6
IG5vbmU7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb2xsZWN0aW9uQ29u
dGVudFZpZXcuY3NzCmluZGV4IDNhOWE5YWVmZjI5YzVlZmNkNzc5YmI0ZDI5MDQwYWFkODlkYmYx
ZDQuLjJmOTRiYzc0MDlmNGQ1NTQ2NjVjZGU4OWM5ZjBmOTljYWRlZjk3MDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29sbGVj
dGlvbkNvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MKQEAgLTIzLDYgKzIz
LDE0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLmNvbnRl
bnQtdmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZyB7CisgICAg
b3V0bGluZTogMC41cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKK30KKworLmNvbnRlbnQt
dmlldy5yZXNvdXJjZS1jb2xsZWN0aW9uID4gLnJlc291cmNlLmltYWdlIGltZzpob3ZlciB7Cisg
ICAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKQorfQorCiAucmVzb3Vy
Y2UtY29sbGVjdGlvbi1pbWFnZS10eXBlLXNjb3BlLWJhci5kZWZhdWx0LWl0ZW0tc2VsZWN0ZWQg
ewogICAgIC0tc2NvcGUtYmFyLXRleHQtY29sb3Itb3ZlcnJpZGU6IHZhcigtLXRleHQtY29sb3Ip
OwogICAgIC0tc2NvcGUtYmFyLWJhY2tncm91bmQtY29sb3Itb3ZlcnJpZGU6IHRyYW5zcGFyZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UmVzb3VyY2VDb2xsZWN0aW9uQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwppbmRl
eCBjOTRlY2E3NzcyMTRlMzFkYzVkODFlNjEwOTA2MDYzZjc3Yzc0ZmNjLi5mYzFjNmEyY2Q0YWE3
ZGExOTUwYzBhM2QzZmYwNjM0MzJmOTdkNmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbGxlY3Rpb25Db250ZW50Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZUNvbGxlY3Rpb25Db250ZW50Vmlldy5qcwpAQCAtMzUsNiArMzUsOCBAQCBXSS5SZXNvdXJjZUNv
bGxlY3Rpb25Db250ZW50VmlldyA9IGNsYXNzIFJlc291cmNlQ29sbGVjdGlvbkNvbnRlbnRWaWV3
IGV4dGVuZHMgVwogCiAgICAgICAgIHN1cGVyKGNvbGxlY3Rpb24sIGNvbnRlbnRWaWV3Q29uc3Ry
dWN0b3IpOwogCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJyZXNvdXJjZS1j
b2xsZWN0aW9uIik7CisKICAgICAgICAgaWYgKGNvbGxlY3Rpb24ucmVzb3VyY2VUeXBlID09PSBX
SS5SZXNvdXJjZS5UeXBlLkltYWdlKSB7CiAgICAgICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRv
bk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInNo
b3ctZ3JpZCIsIFdJLlVJU3RyaW5nKCJTaG93IHRyYW5zcGFyZW5jeSBncmlkIiksIFdJLlVJU3Ry
aW5nKCJIaWRlIHRyYW5zcGFyZW5jeSBncmlkIiksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1DaGVj
a2Vycy5zdmciLCAxMywgMTMpOwogICAgICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZp
Z2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50
LkNsaWNrZWQsIHRoaXMuX2hhbmRsZVNob3dHcmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggN2JmZWM3MjRhMTRkNzRmZDliYWQ5MDQ2Y2Q0OTU0ZTkxNDc2ZWQ0MS4uOTE2YjlmNDNhZWMy
YTgxMzMwODFiNjIzODk4NDg4MGIwNTAxMmE5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIw
LTAxLTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBhZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBzaG93aW5nIGV4aXN0aW5nIFdlYiBB
bmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDU0MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MzI4MDg3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL2Vm
ZmVjdENoYW5nZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9l
ZmZlY3RDaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Fu
aW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5z
aXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3lj
bGUtY3NzLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3JlcXVlc3RFZmZlY3RU
YXJnZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXF1ZXN0
RWZmZWN0VGFyZ2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Fu
aW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3RhcmdldENoYW5nZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRp
bGl0aWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZUFuaW1hdGlvbik6CisgICAgICAgIChk
ZXN0cm95QW5pbWF0aW9ucyk6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVj
eWNsZVV0aWxpdGllcy5hc3luYyBhd2FpdEFuaW1hdGlvbkNyZWF0ZWQpOgorICAgICAgICAoSW5z
cGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuYXN5bmMgYXdhaXRBbmltYXRp
b25EZXN0cm95ZWQpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVV
dGlsaXRpZXMuYXN5bmMgY3JlYXRlQW5pbWF0aW9uKToKKyAgICAgICAgKEluc3BlY3RvclRlc3Qu
QW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmFzeW5jIGRlc3Ryb3lBbmltYXRpb25zKToKKwor
ICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvY3JlYXRlLWNvbnRleHQtdXRpbGl0
aWVzLmpzOgorICAgICAgICAoZGVzdHJveUNhbnZhc2VzKToKKyAgICAgICAgKGF3YWl0Q2FudmFz
QWRkZWQpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC5DcmVhdGVDb250ZXh0VXRpbGl0aWVzLmlu
aXRpYWxpemVUZXN0U3VpdGUpOgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0
LWF0dHJpYnV0ZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL21lbW9yeS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC0yZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9jYW52YXMvcmVxdWVzdENvbnRlbnQtYml0bWFwcmVuZGVyZXIuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdlYmdsLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC13ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9yZXNvbHZlQ29udGV4dC0yZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVz
b2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2Fu
dmFzL3Jlc29sdmVDb250ZXh0LXdlYmdsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9yZXNvbHZlQ29udGV4dC13ZWJnbDIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sOgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZh
cy9yZWNvcmRpbmcuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGlu
Z0F1dG9DYXB0dXJlRnJhbWVDb3VudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMv
cmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanM6CisgICAgICAgICh3aW5kb3cuZ2V0Q2Fu
dmFzKToKKworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVt
b3ZlLXdlYmdwdS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvdXBkYXRlU2hhZGVy
LXdlYmdwdS1zaGFyZWRWZXJ0ZXhGcmFnbWVudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qczoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13
ZWJnbC5qczoKKyAgICAgICAgKGRlbGV0ZUNvbnRleHQpOgorICAgICAgICAod2hlblByb2dyYW1B
ZGRlZCk6CisgICAgICAgICh3aW5kb3cuaW5pdGlhbGl6ZVRlc3RTdWl0ZSk6CisgICAgICAgICh3
aW5kb3cuYWRkUGFyZW50Q2FudmFzUmVtb3ZlZFRlc3RDYXNlKToKKworICAgICAgICAqIGluc3Bl
Y3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMt
ZXhwZWN0ZWQudHh0OgorCiAyMDIwLTAxLTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpUGFkT1NdIFNlbGVjdCBwb3BvdmVycyBvbiBhbWF6b24u
Y29tIHNvbWV0aW1lcyBkaXNtaXNzIGltbWVkaWF0ZWx5IGFmdGVyIGFwcGVhcmluZwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9lZmZlY3RDaGFuZ2VkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJmMzNjYmQ3ZjkzM2QzYjQ5YmJmZjVkMzc4ZGU1N2I4
MjMxMmJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRp
b24vZWZmZWN0Q2hhbmdlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgZm9y
IHRoZSBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCBldmVudC4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IEFuaW1hdGlvbi5lZmZlY3RDaGFuZ2VkCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5p
bWF0aW9uLmVmZmVjdENoYW5nZWQuTmV3RWZmZWN0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhh
dmUgYW4gZWZmZWN0LgorQ2hhbmdpbmcgZWZmZWN0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBzaG91
bGQgaGF2ZSBhbiBlZmZlY3QuCitQQVNTOiBBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNo
YW5nZWQuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5O
dWxsRWZmZWN0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LgorQ2hhbmdp
bmcgZWZmZWN0Li4uCisKK1BBU1M6IEFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYW4gZWZmZWN0
LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vZWZmZWN0Q2hhbmdlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA0NWQ4NWIxZTFmMjE2ODgxZmZiZDZmNjFiMzc0N2M3MGRiZjE3NDQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2VmZmVjdENoYW5nZWQu
aHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkgeworICAgIHdp
bmRvdy5hbmltYXRpb24gPSBkb2N1bWVudC5ib2R5LmFuaW1hdGUoW3tvcGFjaXR5OiAwfV0pOwor
CisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5lZmZlY3RDaGFuZ2Vk
Iik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24u
ZWZmZWN0Q2hhbmdlZC5OZXdFZmZlY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCBy
ZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmllci4i
LAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBB
cnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwgIlRo
ZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBh
bmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24pIHsK
KyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5XZWJB
bmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKworICAg
ICAgICAgICAgbGV0IG9sZEtleWZyYW1lcyA9IGFuaW1hdGlvbi5rZXlmcmFtZXM7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVtcHR5KG9sZEtleWZyYW1lcywgIkFuaW1hdGlv
biBzaG91bGQgaGF2ZSBhbiBlZmZlY3QuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJDaGFuZ2luZyBlZmZlY3QuLi5cbiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5h
bGwoWworICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5hd2FpdEV2ZW50KFdJLkFuaW1hdGlvbi5F
dmVudC5FZmZlY3RDaGFuZ2VkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGB3aW5kb3cuYW5pbWF0aW9uLmVmZmVjdCA9IG5ldyBLZXlmcmFtZUVmZmVjdCh3
aW5kb3cuYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQsIFt7b3BhY2l0eTogMX1dLCB7fSlgKSwKKyAg
ICAgICAgICAgIF0pOworCisgICAgICAgICAgICBsZXQgbmV3S2V5ZnJhbWVzID0gYW5pbWF0aW9u
LmtleWZyYW1lczsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RW1wdHkobmV3
S2V5ZnJhbWVzLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGFuIGVmZmVjdC4iKTsKKworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RTaGFsbG93RXF1YWwobmV3S2V5ZnJhbWVzLCBv
bGRLZXlmcmFtZXMsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJBbmltYXRpb24uZWZmZWN0Q2hhbmdlZC5OdWxsRWZmZWN0IiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5pbWF0
aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxl
dCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNv
bGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9ucy5s
ZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOworCisg
ICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAgIGlm
ICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0aW9u
LmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0kuQW5p
bWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBhbmlt
YXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBvbGRLZXlmcmFtZXMgPSBhbmltYXRpb24ua2V5
ZnJhbWVzOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eShvbGRLZXlm
cmFtZXMsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYW4gZWZmZWN0LiIpOworCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgZWZmZWN0Li4uXG4iKTsKKyAgICAgICAgICAg
IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmltYXRpb24uYXdhaXRFdmVu
dChXSS5BbmltYXRpb24uRXZlbnQuRWZmZWN0Q2hhbmdlZCksCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlvbi5lZmZlY3QgPSBudWxs
YCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IG5ld0tleWZyYW1lcyA9IGFu
aW1hdGlvbi5rZXlmcmFtZXM7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVtcHR5
KG5ld0tleWZyYW1lcywgIkFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYW4gZWZmZWN0LiIpOwor
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdFNoYWxsb3dFcXVhbChuZXdLZXlm
cmFtZXMsIG9sZEtleWZyYW1lcywgIkFuaW1hdGlvbiBlZmZlY3Qgc2hvdWxkIGhhdmUgY2hhbmdl
ZC4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Cisg
ICAgPHA+VGVzdHMgZm9yIHRoZSBBbmltYXRpb24uZWZmZWN0Q2hhbmdlZCBldmVudC48L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy1hbmltYXRpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkwZGQyYmYyOWMyMDRmMDVmNTIzYzZhYzhhYTU3YjM1MTM1MmNlZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM4IEBACitUZXN0cyBmb3IgdGhl
IEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJv
eWVkIGV2ZW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5MaWZlY3lj
bGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5Y2xlLkNTU0FuaW1hdGlv
bgorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYW5pbWF0aW9ucy4KK1BBU1M6IEFuaW1h
dGlvbiBjcmVhdGVkLgorUEFTUzogQW5pbWF0aW9uIHR5cGUgc2hvdWxkIGJlIENTUyBBbmltYXRp
b24uCitzdGFydERlbGF5OiAxMDAKK2l0ZXJhdGlvbkNvdW50OiAyCitpdGVyYXRpb25EdXJhdGlv
bjogNDAwCit0aW1pbmdGdW5jdGlvbjogImxpbmVhciIKK3BsYXliYWNrRGlyZWN0aW9uOiAiYWx0
ZXJuYXRlIgorZmlsbE1vZGU6ICJib3RoIgora2V5ZnJhbWVzOgorWworICB7CisgICAgIm9mZnNl
dCI6IDAsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIsIDAuMywgMC40KSIs
CisgICAgInN0eWxlIjogImNvbG9yOiByZ2IoMjU1LCAwLCAwKTtcbm9wYWNpdHk6IDA7IgorICB9
LAorICB7CisgICAgIm9mZnNldCI6IDAuNSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigw
LjEsIDAuMiwgMC4zLCAwLjQpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJnYigwLCAxMjgsIDAp
O1xub3BhY2l0eTogMC41OyIKKyAgfSwKKyAgeworICAgICJvZmZzZXQiOiAxLAorICAgICJlYXNp
bmciOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICJzdHlsZSI6ICJj
b2xvcjogcmdiKDAsIDAsIDI1NSk7XG5vcGFjaXR5OiAxOyIKKyAgfQorXQorCitEZXN0cm95aW5n
IGFuaW1hdGlvbnMuLi4KKworUEFTUzogQW5pbWF0aW9uIGRlc3Ryb3llZC4KK1BBU1M6IFJlbW92
ZWQgYW5pbWF0aW9uIGhhcyBleHBlY3RlZCBJRC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLWFuaW1hdGlvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ2ZGEwOTUxYmY1ZTQ1MzYyMzkyMzA1MTM2YzgyYjU0NDZjOGUwZWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtYW5pbWF0aW9uLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2xpZmVjeWNsZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorQGtleWZyYW1lcyBm
YWRlLWluIHsKKyAgICBmcm9tIHsKKyAgICAgICAgY29sb3I6IHJlZDsKKyAgICAgICAgb3BhY2l0
eTogMDsKKyAgICB9CisgICAgNTAlIHsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgICAgICBv
cGFjaXR5OiAwLjU7CisgICAgfQorICAgIHRvIHsKKyAgICAgICAgY29sb3I6IGJsdWU7CisgICAg
ICAgIG9wYWNpdHk6IDE7CisgICAgfQorfQorZGl2I3RhcmdldC5hY3RpdmUgeworICAgIGFuaW1h
dGlvbi1uYW1lOiBmYWRlLWluOworICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7CisgICAg
YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAu
NCk7CisgICAgYW5pbWF0aW9uLWRlbGF5OiAxMDBtczsKKyAgICBhbmltYXRpb24taXRlcmF0aW9u
LWNvdW50OiAyOworICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICBhbmlt
YXRpb24tZmlsbC1tb2RlOiBib3RoOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUo
IkFuaW1hdGlvbi5MaWZlY3ljbGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkFuaW1hdGlvbi5MaWZlY3ljbGUuQ1NTQW5pbWF0aW9uIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3IgaXMgbm90aWZpZWQgd2hlbmV2ZXIg
Q1NTIGFuaW1hdGlvbnMgYXJlIGNyZWF0ZWQvZGVzdHJveWVkLiIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLmFuaW1hdGlv
bk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5zaXplLCAwLCAiVGhlcmUgc2hvdWxkIG5vdCBi
ZSBhbnkgYW5pbWF0aW9ucy4iKTsKKworICAgICAgICAgICAgbGV0IFthbmltYXRpb25dID0gYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9u
TGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uQ3JlYXRlZChXSS5BbmltYXRpb24uVHlw
ZS5DU1NBbmltYXRpb24pLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5jbGFzc0xpc3QuYWRkKCJh
Y3RpdmUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2Uu
YWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0
aWxpdGllcy5hd2FpdEFuaW1hdGlvbkRlc3Ryb3llZChhbmltYXRpb24uYW5pbWF0aW9uSWQpLAor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVz
LmRlc3Ryb3lBbmltYXRpb25zKCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLmNsYXNzTGlzdC5y
ZW1vdmUoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgfSwKKyAgICB9KTsK
KworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBBbmlt
YXRpb24uYW5pbWF0aW9uQ3JlYXRlZCBhbmQgQW5pbWF0aW9uLmFuaW1hdGlvbkRlc3Ryb3llZCBl
dmVudHMuPC9wPgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1j
c3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFi
MmJiNWE5MWQ0NDk4ZTkwYzU5NWJjOTU2NzQ5MjQ4MDY5ZTU2YgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5h
bmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy4K
KworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlvbi5MaWZlY3ljbGUKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBBbmltYXRpb24uTGlmZWN5Y2xlLkNTU1RyYW5zaXRpb24KK1BBU1M6IFRo
ZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuCitQQVNTOiBBbmltYXRpb24gY3JlYXRl
ZC4KK1BBU1M6IEFuaW1hdGlvbiB0eXBlIHNob3VsZCBiZSBDU1MgVHJhbnNpdGlvbi4KK3N0YXJ0
RGVsYXk6IDEwMAoraXRlcmF0aW9uQ291bnQ6IDEKK2l0ZXJhdGlvbkR1cmF0aW9uOiA0MDAKK3Rp
bWluZ0Z1bmN0aW9uOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiCitwbGF5YmFj
a0RpcmVjdGlvbjogIm5vcm1hbCIKK2ZpbGxNb2RlOiAiYmFja3dhcmRzIgora2V5ZnJhbWVzOgor
WworICB7CisgICAgIm9mZnNldCI6IDAsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4x
LCAwLjIsIDAuMywgMC40KSIsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDA7IgorICB9LAorICB7
CisgICAgIm9mZnNldCI6IDEsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC4xLCAwLjIs
IDAuMywgMC40KSIsCisgICAgInN0eWxlIjogIm9wYWNpdHk6IDE7IgorICB9CitdCisKK0Rlc3Ry
b3lpbmcgYW5pbWF0aW9ucy4uLgorCitQQVNTOiBBbmltYXRpb24gZGVzdHJveWVkLgorUEFTUzog
UmVtb3ZlZCBhbmltYXRpb24gaGFzIGV4cGVjdGVkIElELgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL2xpZmVjeWNsZS1jc3MtdHJhbnNpdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZDQ1YTM4YTIwNGUwYzZjNGQzYTcxYmYwZWQ5ZGM5NjBlMDQwODli
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZl
Y3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitkaXYj
dGFyZ2V0IHsKKyAgICBjb2xvcjogcmVkOworICAgIG9wYWNpdHk6IDA7CisKK30KK2RpdiN0YXJn
ZXQuYWN0aXZlIHsKKyAgICBjb2xvcjogYmx1ZTsKKyAgICBvcGFjaXR5OiAxOworCisgICAgdHJh
bnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsKKyAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBt
czsKKyAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMC4y
LCAwLjMsIDAuNCk7CisgICAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7Cit9Cis8L3N0eWxlPgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRl
c3QuY3JlYXRlQXN5bmNTdWl0ZSgiQW5pbWF0aW9uLkxpZmVjeWNsZSIpOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQW5pbWF0aW9uLkxpZmVjeWNsZS5DU1NUcmFu
c2l0aW9uIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFdlYiBJbnNwZWN0b3Ig
aXMgbm90aWZpZWQgd2hlbmV2ZXIgQ1NTIHRyYW5zaXRpb25zIGFyZSBjcmVhdGVkL2Rlc3Ryb3ll
ZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uc2l6ZSwg
MCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7CisKKyAgICAgICAgICAg
IGxldCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LkFuaW1hdGlvbkxpZmVjeWNsZVV0aWxpdGllcy5hd2FpdEFuaW1hdGlvbkNy
ZWF0ZWQoV0kuQW5pbWF0aW9uLlR5cGUuQ1NTVHJhbnNpdGlvbiksCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpYCksCisgICAgICAgICAgICBdKTsKKworICAg
ICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9uRGVzdHJveWVkKGFu
aW1hdGlvbi5hbmltYXRpb25JZCksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5Bbmlt
YXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuZGVzdHJveUFuaW1hdGlvbnMoKSwKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIilgKSwKKyAgICAgICAgICAgIF0p
OworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNo
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAg
ICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRpb25DcmVhdGVkIGFuZCBBbmltYXRp
b24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtd2ViLWFuaW1hdGlvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWFhNmI4ZGE1OWZmZDZmN2JmMGQxZjA1Yjg1NWU1OTdhMTA4YmFl
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlm
ZWN5Y2xlLXdlYi1hbmltYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzkgQEAKK1Rlc3Rz
IGZvciB0aGUgQW5pbWF0aW9uLmFuaW1hdGlvbkNyZWF0ZWQgYW5kIEFuaW1hdGlvbi5hbmltYXRp
b25EZXN0cm95ZWQgZXZlbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQW5pbWF0aW9u
LkxpZmVjeWNsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5MaWZlY3ljbGUuV2Vi
QW5pbWF0aW9uCitQQVNTOiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBhbmltYXRpb25zLgorQ3Jl
YXRpbmcgYW5pbWF0aW9uLi4uCisKK1BBU1M6IEFuaW1hdGlvbiBjcmVhdGVkLgorICAwOiBhbmlt
YXRlIC0gW25hdGl2ZSBjb2RlXQorICAxOiBjcmVhdGVBbmltYXRpb24gLSBpbnNwZWN0b3IvYW5p
bWF0aW9uL3Jlc291cmNlcy9saWZlY3ljbGUtdXRpbGl0aWVzLmpzOjc6MzUKKyAgMjogR2xvYmFs
IENvZGUgLSBbcHJvZ3JhbSBjb2RlXQorICAzOiBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiAt
IFtuYXRpdmUgY29kZV0KKyAgNDogKGFub255bW91cyBmdW5jdGlvbikgLSBbbmF0aXZlIGNvZGVd
CisgIDU6IF93cmFwQ2FsbCAtIFtuYXRpdmUgY29kZV0KK1BBU1M6IEFuaW1hdGlvbiB0eXBlIHNo
b3VsZCBiZSBXZWIgQW5pbWF0aW9uLgorc3RhcnREZWxheTogMTAwCitlbmREZWxheTogMjAwCitp
dGVyYXRpb25Db3VudDogMTAKK2l0ZXJhdGlvblN0YXJ0OiA1CitpdGVyYXRpb25EdXJhdGlvbjog
MzAwCit0aW1pbmdGdW5jdGlvbjogImVhc2UtaW4tb3V0IgorcGxheWJhY2tEaXJlY3Rpb246ICJh
bHRlcm5hdGUiCitmaWxsTW9kZTogImJvdGgiCitrZXlmcmFtZXM6CitbCisgIHsKKyAgICAib2Zm
c2V0IjogMC4yNSwKKyAgICAiZWFzaW5nIjogImN1YmljLWJlemllcigwLjEsIDAuMiwgMC4zLCAw
LjQpIiwKKyAgICAic3R5bGUiOiAiY29sb3I6IHJlZDtcbm9wYWNpdHk6IDA7IgorICB9LAorICB7
CisgICAgIm9mZnNldCI6IDAuNzUsCisgICAgImVhc2luZyI6ICJjdWJpYy1iZXppZXIoMC42LCAw
LjcsIDAuOCwgMC45KSIsCisgICAgInN0eWxlIjogImNvbG9yOiBibHVlO1xub3BhY2l0eTogMTsi
CisgIH0KK10KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9u
L2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5p
bWF0aW9uL2xpZmVjeWNsZS13ZWItYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyNzBhNGIy
N2QxZGMwYmFhNjc2NzRhYjcwN2MwOThiY2E4YmFmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vbGlmZWN5Y2xlLXdlYi1hbmltYXRpb24uaHRtbApA
QCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbGlmZWN5Y2xlLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1
aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBbmltYXRpb24uTGlmZWN5Y2xl
Iik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24u
TGlmZWN5Y2xlLldlYkFuaW1hdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhh
dCBXZWIgSW5zcGVjdG9yIGlzIG5vdGlmaWVkIHdoZW5ldmVyIHdlYiBhbmltYXRpb25zIGFyZSBj
cmVhdGVkL2Rlc3Ryb3llZC4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNv
bGxlY3Rpb24uc2l6ZSwgMCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IGFuaW1hdGlvbnMuIik7
CisKKyAgICAgICAgICAgIGxldCBhbmltYXRpb24gPSBhd2FpdCBJbnNwZWN0b3JUZXN0LkFuaW1h
dGlvbkxpZmVjeWNsZVV0aWxpdGllcy5jcmVhdGVBbmltYXRpb24oV0kuQW5pbWF0aW9uLlR5cGUu
V2ViQW5pbWF0aW9uLCB7CisgICAgICAgICAgICAgICAgc2VsZWN0b3I6ICJib2R5IiwKKyAgICAg
ICAgICAgICAgICBrZXlmcmFtZXM6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjI1LAorICAgICAgICAgICAgICAgICAgICAgICAgZWFz
aW5nOiAiY3ViaWMtYmV6aWVyKDAuMSwgMC4yLCAwLjMsIDAuNCkiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgY29sb3I6ICJyZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTog
MCwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjc1LAorICAgICAgICAgICAgICAgICAgICAgICAg
ZWFzaW5nOiAiY3ViaWMtYmV6aWVyKDAuNiwgMC43LCAwLjgsIDAuOSkiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgY29sb3I6ICJibHVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNp
dHk6IDEsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICAgICAgICAgIGRlbGF5OiAxMDAsCisg
ICAgICAgICAgICAgICAgICAgIGVuZERlbGF5OiAyMDAsCisgICAgICAgICAgICAgICAgICAgIGR1
cmF0aW9uOiAzMDAsCisgICAgICAgICAgICAgICAgICAgIGVhc2luZzogImVhc2UtaW4tb3V0IiwK
KyAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiAiYWx0ZXJuYXRlIiwKKyAgICAgICAgICAg
ICAgICAgICAgZmlsbDogImJvdGgiLAorICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiAx
MCwKKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uU3RhcnQ6IDUsCisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5hbmltYXRp
b25DcmVhdGVkIGFuZCBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy48L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0
aW9uL3Jlc29sdmVBbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmQ0
OGRhODE1MjE5OTczZDYxMjYwODM2MDg2ZWUyMTFlMmExYWYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvbHZlQW5pbWF0aW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi5yZXNvbHZlQW5p
bWF0aW9uIGNvbW1hbmQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBBbmltYXRpb24ucmVz
b2x2ZUFuaW1hdGlvbgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFuaW1hdGlvbi5yZXNvbHZlQW5p
bWF0aW9uLlZhbGlkSWRlbnRpZmllcgorUEFTUzogUGF5bG9hZCBzaG91bGQgaGF2ZSB0eXBlICJv
YmplY3QiLgorUEFTUzogUGF5bG9hZCBzaG91bGQgaGF2ZSBjbGFzc05hbWUgIkFuaW1hdGlvbiIu
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBbmltYXRpb24ucmVzb2x2ZUFuaW1hdGlvbi5JbnZh
bGlkSWRlbnRpZmllcgorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRXJyb3I6
IE1pc3NpbmcgYW5pbWF0aW9uIGZvciBnaXZlbiBhbmltYXRpb25JZAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb2x2ZUFuaW1hdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZhMjNlMzk3NGMzNGMxOTdjZGQ1OTg2MTBmNzM3NzEwNjdlMzAxMzkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYW5pbWF0aW9uL3Jlc29sdmVBbmltYXRp
b24uaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkKCkgeworICAg
IHdpbmRvdy5hbmltYXRpb24gPSBkb2N1bWVudC5ib2R5LmFuaW1hdGUoW10pOworCisgICAgcnVu
VGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIik7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBbmltYXRpb24ucmVzb2x2
ZUFuaW1hdGlvbi5WYWxpZElkZW50aWZpZXIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3Vs
ZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBhbmltYXRpb24gaWRlbnRpZmll
ci4iLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMg
PSBBcnJheS5mcm9tKFdJLmFuaW1hdGlvbk1hbmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb25zLmxlbmd0aCA9PT0gMSwg
IlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBhbmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxl
dCBhbmltYXRpb24gPSBhbmltYXRpb25zWzBdOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24p
IHsKKyAgICAgICAgICAgICAgICB0aHJvdyBgTWlzc2luZyBhbmltYXRpb24uYDsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlID09PSBXSS5BbmltYXRpb24uVHlwZS5X
ZWJBbmltYXRpb24sICJBbmltYXRpb24gc2hvdWxkIGJlIGEgd2ViIGFuaW1hdGlvbi4iKTsKKwor
ICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CisgICAgICAgICAgICBsZXQg
e29iamVjdH0gPSBhd2FpdCBBbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0aW9uKGFuaW1hdGlv
bi5hbmltYXRpb25JZCwgb2JqZWN0R3JvdXApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChvYmplY3QudHlwZSwgIm9iamVjdCIsIGBQYXlsb2FkIHNob3VsZCBoYXZlIHR5
cGUgIm9iamVjdCIuYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG9i
amVjdC5jbGFzc05hbWUsICJBbmltYXRpb24iLCBgUGF5bG9hZCBzaG91bGQgaGF2ZSBjbGFzc05h
bWUgIkFuaW1hdGlvbiIuYCk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICAvLyAtLS0tLS0K
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi5yZXNv
bHZlQW5pbWF0aW9uLkludmFsaWRJZGVudGlmaWVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJJ
bnZhbGlkIGFuaW1hdGlvbiBpZGVudGlmaWVycyBzaG91bGQgY2F1c2UgYW4gZXJyb3IuIiwKKyAg
ICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSAiRE9F
U19OT1RfRVhJU1QiOworICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CisK
KyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBBbmltYXRpb25BZ2VudC5yZXNvbHZlQW5pbWF0
aW9uKGlkZW50aWZpZXIsIG9iamVjdEdyb3VwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8cD5UZXN0cyBmb3Ig
dGhlIEFuaW1hdGlvbi5yZXNvbHZlQW5pbWF0aW9uIGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2FuaW1hdGlvbi9yZXNvdXJj
ZXMvbGlmZWN5Y2xlLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRp
b24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDljMjEyZmYz
NjE1OGQ4YmI0Y2NlMTZhOTVkYTA1MzUyZDBiMDFkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vcmVzb3VyY2VzL2xpZmVjeWNsZS11dGlsaXRpZXMu
anMKQEAgLTAsMCArMSwxMzAgQEAKK3dpbmRvdy5hbmltYXRpb25zID0gW107CisKK2Z1bmN0aW9u
IGNyZWF0ZUFuaW1hdGlvbihzZWxlY3Rvciwga2V5ZnJhbWVzID0gW10sIG9wdGlvbnMgPSB7fSkg
eworICAgIGxldCBhbmltYXRpb24gPSBudWxsOworCisgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpOworICAgIGlmICh0YXJnZXQpCisgICAgICAgIGFuaW1h
dGlvbiA9IHRhcmdldC5hbmltYXRlKGtleWZyYW1lcywgb3B0aW9ucyk7CisgICAgZWxzZQorICAg
ICAgICBhbmltYXRpb24gPSBuZXcgQW5pbWF0aW9uKG5ldyBLZXlmcmFtZUVmZmVjdChudWxsLCBr
ZXlmcmFtZXMsIG9wdGlvbnMpKTsKKworICAgIHdpbmRvdy5hbmltYXRpb25zLnB1c2goYW5pbWF0
aW9uKTsKK30KKworZnVuY3Rpb24gZGVzdHJveUFuaW1hdGlvbnMoKSB7CisgICAgZm9yIChsZXQg
YW5pbWF0aW9uIG9mIHdpbmRvdy5hbmltYXRpb25zKSB7CisgICAgICAgIGlmICghYW5pbWF0aW9u
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGFuaW1hdGlvbi5jYW5jZWwoKTsKKwor
ICAgICAgICBpZiAoYW5pbWF0aW9uLmVmZmVjdCkgeworICAgICAgICAgICAgaWYgKGFuaW1hdGlv
bi5lZmZlY3QudGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVjdC50YXJn
ZXQucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVjdC50YXJnZXQgPSBu
dWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhbmltYXRpb24uZWZmZWN0ID0gbnVs
bDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHdpbmRvdy5hbmltYXRpb25zID0gW107CisKKyAg
ICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGFuaW1hdGlvbiBhbmQgaXQncyB0YXJnZXQg
YXJlIGJvdGggZGVzdHJveWVkLCBhcyBvdGhlcndpc2UgdGhlCisgICAgLy8gZnJvbnRlbmQgd2ls
bCBub3QgcmVjZWl2ZSBBbmltYXRpb24uYW5pbWF0aW9uRGVzdHJveWVkIGV2ZW50cy4KKyAgICBz
ZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICB9
KTsKK30KKworVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgZnVuY3Rp
b24ganNvbktleWZyYW1lRmlsdGVyKGtleSwgdmFsdWUpIHsKKyAgICAgICAgaWYgKGtleSA9PT0g
ImVhc2luZyIgJiYgdmFsdWUgaW5zdGFuY2VvZiBXSS5DdWJpY0JlemllcikKKyAgICAgICAgICAg
IHJldHVybiB2YWx1ZS50b1N0cmluZygpOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQor
CisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMgPSB7fTsKKwor
ICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0
aW9uQ3JlYXRlZCA9IGFzeW5jIGZ1bmN0aW9uKGFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgbGV0
IGFuaW1hdGlvbkNvbGxlY3Rpb25JdGVtQWRkZWRFdmVudCA9IGF3YWl0IFdJLmFuaW1hdGlvbk1h
bmFnZXIuYW5pbWF0aW9uQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxlY3Rpb24uRXZlbnQu
SXRlbUFkZGVkKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIkFuaW1hdGlvbiBjcmVh
dGVkLiIpOworCisgICAgICAgIGxldCBhbmltYXRpb24gPSBhbmltYXRpb25Db2xsZWN0aW9uSXRl
bUFkZGVkRXZlbnQuZGF0YS5pdGVtOworCisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYW5p
bWF0aW9uLmJhY2t0cmFjZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IGNhbGxGcmFt
ZSA9IGFuaW1hdGlvbi5iYWNrdHJhY2VbaV07CisgICAgICAgICAgICBsZXQgdHJhY2VUZXh0ID0g
YCAgJHtpfTogYDsKKyAgICAgICAgICAgIHRyYWNlVGV4dCArPSBjYWxsRnJhbWUuZnVuY3Rpb25O
YW1lIHx8ICIoYW5vbnltb3VzIGZ1bmN0aW9uKSI7CisKKyAgICAgICAgICAgIGlmIChjYWxsRnJh
bWUubmF0aXZlQ29kZSkKKyAgICAgICAgICAgICAgICB0cmFjZVRleHQgKz0gIiAtIFtuYXRpdmUg
Y29kZV0iOworICAgICAgICAgICAgZWxzZSBpZiAoY2FsbEZyYW1lLnByb2dyYW1Db2RlKQorICAg
ICAgICAgICAgICAgIHRyYWNlVGV4dCArPSAiIC0gW3Byb2dyYW0gY29kZV0iOworICAgICAgICAg
ICAgZWxzZSBpZiAoY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbikgeworICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247CisgICAgICAg
ICAgICAgICAgdHJhY2VUZXh0ICs9ICIgLSAiICsgc2FuaXRpemVVUkwobG9jYXRpb24uc291cmNl
Q29kZS51cmwpICsgYDoke2xvY2F0aW9uLmxpbmVOdW1iZXJ9OiR7bG9jYXRpb24uY29sdW1uTnVt
YmVyfWA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHRy
YWNlVGV4dCk7CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KGFuaW1hdGlvbi5hbmltYXRpb25UeXBlLCBhbmltYXRpb25UeXBlLCBgQW5pbWF0aW9uIHR5cGUg
c2hvdWxkIGJlICR7V0kuQW5pbWF0aW9uLmRpc3BsYXlOYW1lRm9yQW5pbWF0aW9uVHlwZShhbmlt
YXRpb25UeXBlKX0uYCk7CisKKyAgICAgICAgaWYgKGFuaW1hdGlvbi5zdGFydERlbGF5KQorICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coInN0YXJ0RGVsYXk6ICIgKyBKU09OLnN0cmluZ2lm
eShhbmltYXRpb24uc3RhcnREZWxheSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLmVuZERlbGF5
KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coImVuZERlbGF5OiAiICsgSlNPTi5zdHJp
bmdpZnkoYW5pbWF0aW9uLmVuZERlbGF5KSk7CisgICAgICAgIGlmIChhbmltYXRpb24uaXRlcmF0
aW9uQ291bnQpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiaXRlcmF0aW9uQ291bnQ6
ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uaXRlcmF0aW9uQ291bnQpKTsKKyAgICAgICAg
aWYgKGFuaW1hdGlvbi5pdGVyYXRpb25TdGFydCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJpdGVyYXRpb25TdGFydDogIiArIEpTT04uc3RyaW5naWZ5KGFuaW1hdGlvbi5pdGVyYXRp
b25TdGFydCkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uKQorICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIml0ZXJhdGlvbkR1cmF0aW9uOiAiICsgSlNPTi5z
dHJpbmdpZnkoYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uKSk7CisgICAgICAgIGlmIChhbmlt
YXRpb24udGltaW5nRnVuY3Rpb24pCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygidGlt
aW5nRnVuY3Rpb246ICIgKyBKU09OLnN0cmluZ2lmeShTdHJpbmcoYW5pbWF0aW9uLnRpbWluZ0Z1
bmN0aW9uKSkpOworICAgICAgICBpZiAoYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uKQorICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coInBsYXliYWNrRGlyZWN0aW9uOiAiICsgSlNPTi5z
dHJpbmdpZnkoYW5pbWF0aW9uLnBsYXliYWNrRGlyZWN0aW9uKSk7CisgICAgICAgIGlmIChhbmlt
YXRpb24uZmlsbE1vZGUpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZmlsbE1vZGU6
ICIgKyBKU09OLnN0cmluZ2lmeShhbmltYXRpb24uZmlsbE1vZGUpKTsKKyAgICAgICAgaWYgKGFu
aW1hdGlvbi5rZXlmcmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
Zygia2V5ZnJhbWVzOiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5qc29uKGFuaW1hdGlv
bi5rZXlmcmFtZXMsIGpzb25LZXlmcmFtZUZpbHRlcik7CisgICAgICAgIH0KKworICAgICAgICBJ
bnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKKworICAgICAgICByZXR1cm4gYW5pbWF0aW9uCisgICAg
fTsKKworICAgIEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0
QW5pbWF0aW9uRGVzdHJveWVkID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uSWRlbnRpZmllcikg
eworICAgICAgICBsZXQgYW5pbWF0aW9uQ29sbGVjdGlvbkl0ZW1SZW1vdmVkRXZlbnQgPSBhd2Fp
dCBXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlvbkNvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5D
b2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkKQorCisgICAgICAgIEluc3BlY3RvclRlc3QucGFz
cygiQW5pbWF0aW9uIGRlc3Ryb3llZC4iKTsKKworICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5p
bWF0aW9uQ29sbGVjdGlvbkl0ZW1SZW1vdmVkRXZlbnQuZGF0YS5pdGVtOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGFuaW1hdGlvbi5hbmltYXRpb25JZCwgYW5pbWF0aW9uSWRl
bnRpZmllciwgIlJlbW92ZWQgYW5pbWF0aW9uIGhhcyBleHBlY3RlZCBJRC4iKTsKKyAgICB9Owor
CisgICAgSW5zcGVjdG9yVGVzdC5BbmltYXRpb25MaWZlY3ljbGVVdGlsaXRpZXMuY3JlYXRlQW5p
bWF0aW9uID0gYXN5bmMgZnVuY3Rpb24oYW5pbWF0aW9uVHlwZSwge3NlbGVjdG9yLCBrZXlmcmFt
ZXMsIG9wdGlvbnN9ID0ge30pIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNyZWF0aW5n
IGFuaW1hdGlvbi4uLlxuIik7CisKKyAgICAgICAgbGV0IHN0cmluZ2lmaWVkU2VsZWN0b3IgPSBK
U09OLnN0cmluZ2lmeShzZWxlY3RvciB8fCBudWxsKTsKKyAgICAgICAgbGV0IHN0cmluZ2lmaWVk
S2V5ZnJhbWVzID0gSlNPTi5zdHJpbmdpZnkoa2V5ZnJhbWVzIHx8IFtdKTsKKyAgICAgICAgbGV0
IHN0cmluZ2lmaWVkT3B0aW9ucyA9IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMgfHwge30pOworCisg
ICAgICAgIGxldCBbYW5pbWF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuQW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmF3YWl0QW5pbWF0aW9u
Q3JlYXRlZChhbmltYXRpb25UeXBlKSwKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGNyZWF0ZUFuaW1hdGlvbigke3N0cmluZ2lmaWVkU2VsZWN0b3J9LCAke3N0cmlu
Z2lmaWVkS2V5ZnJhbWVzfSwgJHtzdHJpbmdpZmllZE9wdGlvbnN9KWApCisgICAgICAgIF0pOwor
CisgICAgICAgIHJldHVybiBhbmltYXRpb247CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3Qu
QW5pbWF0aW9uTGlmZWN5Y2xlVXRpbGl0aWVzLmRlc3Ryb3lBbmltYXRpb25zID0gYXN5bmMgZnVu
Y3Rpb24oKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZXN0cm95aW5nIGFuaW1hdGlv
bnMuLi5cbiIpOworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBk
ZXN0cm95QW5pbWF0aW9ucygpYCk7CisgICAgfTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTg4ZGUyMmQzNDhjZWE5YWM5YWZmM2ZhZDFmMTQyNTEwNzZjZDdkNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgZm9yIHRoZSBBbmltYXRpb24u
dGFyZ2V0Q2hhbmdlZCBldmVudC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFuaW1hdGlv
bi50YXJnZXRDaGFuZ2VkCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnRhcmdldENo
YW5nZWQuTmV3VGFyZ2V0CitQQVNTOiBBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJnZXQuCitD
aGFuZ2luZyB0YXJnZXQuLi4KKworUEFTUzogQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0
LgorUEFTUzogQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFuZ2VkLgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQW5pbWF0aW9uLnRhcmdldENoYW5nZWQuTnVsbFRhcmdldAorUEFTUzog
QW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LgorQ2hhbmdpbmcgdGFyZ2V0Li4uCisKK1BB
U1M6IEFuaW1hdGlvbiBzaG91bGQgbm90IGhhdmUgYSB0YXJnZXQuCitQQVNTOiBBbmltYXRpb24g
ZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2FuaW1hdGlvbi90YXJnZXRDaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU3MDVmNmM4YTMx
NGViZmUyYWQ2NDkzYWI3M2UzMmQxMDJlYTY4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9hbmltYXRpb24vdGFyZ2V0Q2hhbmdlZC5odG1sCkBAIC0wLDAgKzEsODUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWQoKSB7CisgICAgd2luZG93LmFuaW1hdGlvbiA9IGRv
Y3VtZW50LmJvZHkuYW5pbWF0ZShbXSk7CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiQW5pbWF0aW9uLnRhcmdldENoYW5nZWQiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkLk5ld1RhcmdldCIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVybiBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdp
dmVuIGFuaW1hdGlvbiBpZGVudGlmaWVyLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAg
ICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFycmF5LmZyb20oV0kuYW5pbWF0aW9uTWFuYWdlci5h
bmltYXRpb25Db2xsZWN0aW9uKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFu
aW1hdGlvbnMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGFuaW1hdGlv
bi4iKTsKKworICAgICAgICAgICAgbGV0IGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAg
ICAgICAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICAgICAgICAgIHRocm93IGBNaXNzaW5n
IGFuaW1hdGlvbi5gOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9uLmFuaW1hdGlvblR5cGUg
PT09IFdJLkFuaW1hdGlvbi5UeXBlLldlYkFuaW1hdGlvbiwgIkFuaW1hdGlvbiBzaG91bGQgYmUg
YSB3ZWIgYW5pbWF0aW9uLiIpOworCisgICAgICAgICAgICBsZXQgW29sZFRhcmdldF0gPSBhd2Fp
dCBwcm9taXNpZnkoKGNhbGxiYWNrKSA9PiB7IGFuaW1hdGlvbi5yZXF1ZXN0RWZmZWN0VGFyZ2V0
KGNhbGxiYWNrKTsgfSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQob2xk
VGFyZ2V0IGluc3RhbmNlb2YgV0kuRE9NTm9kZSwgIkFuaW1hdGlvbiBzaG91bGQgaGF2ZSBhIHRh
cmdldC4iKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNoYW5naW5nIHRhcmdl
dC4uLlxuIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAg
ICAgYW5pbWF0aW9uLmF3YWl0RXZlbnQoV0kuQW5pbWF0aW9uLkV2ZW50LlRhcmdldENoYW5nZWQp
LAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5h
bmltYXRpb24uZWZmZWN0LnRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpYCks
CisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgbGV0IFtuZXdUYXJnZXRdID0gYXdhaXQg
cHJvbWlzaWZ5KChjYWxsYmFjaykgPT4geyBhbmltYXRpb24ucmVxdWVzdEVmZmVjdFRhcmdldChj
YWxsYmFjayk7IH0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG5ld1Rh
cmdldCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsICJBbmltYXRpb24gc2hvdWxkIGhhdmUgYSB0YXJn
ZXQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90RXF1YWwobmV3VGFy
Z2V0LCBvbGRUYXJnZXQsICJBbmltYXRpb24gZWZmZWN0IHNob3VsZCBoYXZlIGNoYW5nZWQuIik7
CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJBbmltYXRpb24udGFyZ2V0Q2hhbmdlZC5OdWxsVGFyZ2V0IiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gYW5p
bWF0aW9uIGlkZW50aWZpZXIuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IGxldCBhbmltYXRpb25zID0gQXJyYXkuZnJvbShXSS5hbmltYXRpb25NYW5hZ2VyLmFuaW1hdGlv
bkNvbGxlY3Rpb24pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYW5pbWF0aW9u
cy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgYW5pbWF0aW9uLiIpOwor
CisgICAgICAgICAgICBsZXQgYW5pbWF0aW9uID0gYW5pbWF0aW9uc1swXTsKKyAgICAgICAgICAg
IGlmICghYW5pbWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgYE1pc3NpbmcgYW5pbWF0
aW9uLmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhbmltYXRpb24uYW5pbWF0aW9uVHlwZSA9PT0gV0ku
QW5pbWF0aW9uLlR5cGUuV2ViQW5pbWF0aW9uLCAiQW5pbWF0aW9uIHNob3VsZCBiZSBhIHdlYiBh
bmltYXRpb24uIik7CisKKyAgICAgICAgICAgIGxldCBbb2xkVGFyZ2V0XSA9IGF3YWl0IHByb21p
c2lmeSgoY2FsbGJhY2spID0+IHsgYW5pbWF0aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJh
Y2spOyB9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChvbGRUYXJnZXQg
aW5zdGFuY2VvZiBXSS5ET01Ob2RlLCAiQW5pbWF0aW9uIHNob3VsZCBoYXZlIGEgdGFyZ2V0LiIp
OworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2hhbmdpbmcgdGFyZ2V0Li4uXG4i
KTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBhbmlt
YXRpb24uYXdhaXRFdmVudChXSS5BbmltYXRpb24uRXZlbnQuVGFyZ2V0Q2hhbmdlZCksCisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LmFuaW1hdGlv
bi5lZmZlY3QudGFyZ2V0ID0gbnVsbGApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAg
IGxldCBbbmV3VGFyZ2V0XSA9IGF3YWl0IHByb21pc2lmeSgoY2FsbGJhY2spID0+IHsgYW5pbWF0
aW9uLnJlcXVlc3RFZmZlY3RUYXJnZXQoY2FsbGJhY2spOyB9KTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0TnVsbChuZXdUYXJnZXQsICJBbmltYXRpb24gc2hvdWxkIG5vdCBoYXZl
IGEgdGFyZ2V0LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVxdWFs
KG5ld1RhcmdldCwgb2xkVGFyZ2V0LCAiQW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgaGF2ZSBjaGFu
Z2VkLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4K
KyAgICA8cD5UZXN0cyBmb3IgdGhlIEFuaW1hdGlvbi50YXJnZXRDaGFuZ2VkIGV2ZW50LjwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52
YXMvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L2NvbnRleHQtYXR0cmlidXRlcy5odG1sCmluZGV4IGQ0ZTExMWZkOWQ4NTM3MTVlNDQ2MzMzNmI0
YmQwNzgyNzhjYWY2MWUuLjJkNjI3NGI3ZjU1NDdkZWI4MjgzM2I5ZmFhNWMyM2JmMDBjZmIwNzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY29udGV4dC1hdHRyaWJ1
dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jb250ZXh0LWF0dHJp
YnV0ZXMuaHRtbApAQCAtMjAsOSArMjAsOSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAg
ICAgbmFtZSwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBjcmVhdGVkIGNh
bnZhc2VzIGhhdmUgdGhlIGNvcnJlY3QgdHlwZSBhbmQgYXR0cmlidXRlcyBzZW50IHRvIHRoZSBm
cm9udGVuZC4iLAogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAg
ICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5FdmVu
dC5DYW52YXNBZGRlZCkKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0Nv
bGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCkKICAgICAg
ICAgICAgICAgICAudGhlbigoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IGNh
bnZhcyA9IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFz
ID0gZXZlbnQuZGF0YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiQWRkZWQgY2FudmFzLiIpOwogCiAgICAgICAgICAgICAgICAgICAgIGxldCBjb250ZXh0RGlz
cGxheU5hbWUgPSBXSS5DYW52YXMuZGlzcGxheU5hbWVGb3JDb250ZXh0VHlwZShjb250ZXh0VHlw
ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250
ZXh0LXdlYmdwdS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29u
dGV4dC13ZWJncHUuaHRtbAppbmRleCBiYzE4MWY2MmYyZDRmNDNlYjRhMWFiZjFkOWY4MzZmY2Uz
ZDJiYjVmLi5iMTQwZjExOGQwODg2Y2I3NTgwMmZhMTU0MGNhNWY4NTc2YWM2YTAxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2NyZWF0ZS1jb250ZXh0LXdlYmdwdS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2Vi
Z3B1Lmh0bWwKQEAgLTM0LDE0ICszNCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBk
ZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGF0dGFjaGVkIEdQVUNhbnZhc0NvbnRleHQgYXJlbid0
IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQVURldmljZS4iLAogICAg
ICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJnZXQuY29udGV4dFR5cGUg
PT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAgICAgICAgbGV0IGxpc3Rl
bmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5jb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlZCA9
IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlQXR0YWNoZWRDYW52YXMoImdwdSIpYCkKIAotICAgICAg
ICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24u
RXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hvdWxkIG5vdCBiZSBjcmVh
dGVkIGZvciBhdHRhY2hlZCBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQgY29ubmVjdGVkIFdlYkdQ
VURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTUyLDE0ICs1MiwxNCBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGRldGFjaGVkIEdQVUNhbnZh
c0NvbnRleHQgYXJlbid0IHRyYWNrZWQgYXMgYSBjYW52YXMsIGluc3RlYWQgb2YgdGhlIFdlYkdQ
VURldmljZS4iLAogICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGNyZWF0
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCAoZXZl
bnQpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC50YXJn
ZXQuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOworICAgICAg
ICAgICAgbGV0IGxpc3RlbmVyID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRkZWQsIChldmVudCkgPT4g
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LmRhdGEuaXRlbS5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSk7CiAgICAgICAgICAg
ICAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgYXdh
aXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlRGV0YWNoZWRDYW52YXMoImdw
dSIpYCkKIAotICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVy
KFdJLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzQWRkZWQsIGxpc3RlbmVyKTsKKyAgICAgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVy
KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCBsaXN0ZW5lcik7CiAKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoY3JlYXRlZCwgIkluc3BlY3RvciBjYW52YXMgc2hv
dWxkIG5vdCBiZSBjcmVhdGVkIGZvciBkZXRhY2hlZCBHUFVDYW52YXNDb250ZXh0IHdpdGhvdXQg
Y29ubmVjdGVkIFdlYkdQVURldmljZS4iKTsKICAgICAgICAgfSwKQEAgLTcwLDE0ICs3MCwxNCBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IENT
UyBHUFVDYW52YXNDb250ZXh0IGFyZW4ndCB0cmFja2VkIGFzIGEgY2FudmFzLCBpbnN0ZWFkIG9m
IHRoZSBXZWJHUFVEZXZpY2UuIiwKICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAg
IGxldCBjcmVhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5jYW52
YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNB
ZGRlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
ZXZlbnQudGFyZ2V0LmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR1BV
KTsKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29s
bGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5k
YXRhLml0ZW0uY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpOwog
ICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZUNTU0NhbnZh
cygiZ3B1IiwgImNzcy1jYW52YXMiKWApCiAKLSAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkLCBs
aXN0ZW5lcik7CisgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24u
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgbGlzdGVu
ZXIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGNyZWF0ZWQsICJJ
bnNwZWN0b3IgY2FudmFzIHNob3VsZCBub3QgYmUgY3JlYXRlZCBmb3IgQ1NTIEdQVUNhbnZhc0Nv
bnRleHQgd2l0aG91dCBjb25uZWN0ZWQgV2ViR1BVRGV2aWNlLiIpOwogICAgICAgICB9LApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9leHRlbnNpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4dGVuc2lvbnMuaHRtbAppbmRleCBlOGZjYmZl
MDA3M2MxOWIzODVjNDZiOTdkNDE1ZmY4OTdiYWYxZTIxLi45MzdjMWYzNGJiYTk2YjU3MDExYTMz
MTllOGE1NzgyYzE4NDMyY2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2Fu
dmFzL2V4dGVuc2lvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL2V4
dGVuc2lvbnMuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICBuYW1lOiAiQ2FudmFzLmV4dGVuc2lvbnMuZW5hYmxlIiwKICAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGF0IGVuYWJsaW5nIGFuIGV4dGVuc2lvbiBub3RpZmllcyB0aGUgZnJvbnRlbmQu
IiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52
YXNlcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZh
cy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMKTsKKyAgICAgICAg
ICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uKS5maWx0ZXIoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52
YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgp
IHsKICAgICAgICAgICAgICAgICByZWplY3QoIk1pc3NpbmcgV2ViR0wgY2FudmFzLiIpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvbWVtb3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL21lbW9yeS5o
dG1sCmluZGV4IDJhNDllMDNhMTg4OGVlODU1ZWJiYjNhZjE4ODQzYmNlM2UyYmRiMWMuLjRiZmQ3
YTZjZWFiNTNmYzVkOWI4ZTcxM2I4NTNkMjc1ZTAxNzNlNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jYW52YXMvbWVtb3J5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9tZW1vcnkuaHRtbApAQCAtMjgsNyArMjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICAgICAgLy8gcGVyZm9ybWVkIG9uIHRoYXQgY2FudmFzIHRoYXQgcmVxdWlyZXMg
dGhlIGltYWdlIGJ1ZmZlci4gIEEgYmxhbmsgY2FudmFzIHRoYXQgd2FzCiAgICAgICAgICAgICAv
LyBqdXN0IGNyZWF0ZWQgd2lsbCBub3QgaGF2ZSBhIGJ1ZmZlciwgc28gaXRzIG1lbW9yeSBjb3N0
IHdpbGwgYmUgMC9OYU4uCiAKLSAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzZXMuZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0g
V0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJEKTsKKyAgICAgICAgICAgIGxldCBjYW52YXNl
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maWx0ZXIo
KGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUu
Q2FudmFzMkQpOwogICAgICAgICAgICAgaWYgKCFjYW52YXNlcy5sZW5ndGgpIHsKICAgICAgICAg
ICAgICAgICByZWplY3QoIk1pc3NpbmcgMkQgY2FudmFzLiIpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTog
IkNhbnZhcy5tZW1vcnkuY2FudmFzTWVtb3J5Q2hhbmdlZCIsCiAgICAgICAgIGRlc2NyaXB0aW9u
OiAiQ2hlY2sgdGhhdCBtZW1vcnkgY29zdCBpcyB1cGRhdGVkIHdoZW4gdGhlIGJhY2tlbmQgdmFs
dWUgY2hhbmdlcy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAg
ICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5maWx0ZXIoKGNhbnZh
cykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFz
MkQpOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc0NvbGxlY3Rpb24pLmZpbHRlcigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5
cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRCk7CiAgICAgICAgICAgICBpZiAo
IWNhbnZhc2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHJlamVjdCgiTWlzc2luZyAyRCBj
YW52YXMuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jYW52YXMvcmVjb3JkaW5nLmh0bWwKaW5kZXggNGQzY2ZlOWI4ZTZlOTc0MGQ0ZWNhNjc3OTRh
NDVhNGY5ZWVjNjhkMS4uYmUwOGEyMDQxMzAyYzM3NzYxNGNjMzNlMTM5NGEwOTAxNzUyZTJiOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmcuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy5odG1sCkBAIC0yNSw3
ICsyNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMuQWN0aW9u
UGFyYW1ldGVyTmFOIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IE5hTiBpcyBj
b252ZXJ0ZWQgaW50byB0aGUgcHJvcGVyIHZhbHVlIGZvciBzZXJpYWxpemF0aW9uLiIsCiAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlc1swXTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJh
eS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qg
b25lIGNhbnZhcyBjb250ZXh0LiIpOwogCiAgICAgICAgICAgICBjYW52YXMuYXdhaXRFdmVudChX
SS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RvcHBlZCkKQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5NdWx0aXBsZVJlY29yZGluZyIsCiAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBtdWx0aXBsZSByZWNvcmRpbmdzIGFyZSBh
YmxlIHRvIGJlIHN0YXJ0ZWQvc3RvcHBlZCBhdCB0aGUgc2FtZSB0aW1lLiIsCiAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzOworICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJv
bShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOwogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoY2FudmFzZXMubGVuZ3RoID09PSAyLCAiVGhlcmUgc2hvdWxkIGJlIHR3
byBjYW52YXMgY29udGV4dHMuIik7CiAKICAgICAgICAgICAgIGNhbnZhc2VzWzFdLmF3YWl0RXZl
bnQoV0kuQ2FudmFzLkV2ZW50LlJlY29yZGluZ1N0b3BwZWQpCkBAIC0xMTIsNyArMTEyLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFtZTogIkNhbnZhcy5Ob0FjdGlvbnMiLAogICAg
ICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYSBjYW52YXMgaXMgc3RpbGwgYWJsZSB0byBi
ZSByZWNvcmRlZCBhZnRlciBzdG9wcGluZyBhIHJlY29yZGluZyB3aXRoIG5vIGFjdGlvbnMuIiwK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMg
PSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9
IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKVswXTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhdCBs
ZWFzdCBvbmUgY2FudmFzIGNvbnRleHQuIik7CiAKICAgICAgICAgICAgIGxldCBldmVudENvdW50
ID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENs
aWVudE5vZGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDbGll
bnROb2Rlcy5odG1sCmluZGV4IDIzY2QwNDg2ODUwZDBhZTFiNzY3OTg3NWIwYWYyN2EwNTFjMGY0
Y2QuLmY3NGQxNWUxMDZlYTNiMDVjYTkxYjgwMWY4MWM4YTAyZjExNTA0YzAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENsaWVudE5vZGVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q2xpZW50Tm9kZXMuaHRtbApA
QCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1lOiAiQ2FudmFz
LnJlcXVlc3RDbGllbnROb2Rlcy5Jbml0aWFsIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVj
ayB0aGF0IGNyZWF0aW5nIGEgQ1NTIGNhbnZhcyBjbGllbnQgbm9kZSBpcyB0cmFja2VkIGNvcnJl
Y3RseS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0
IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXNbMF07CisgICAgICAgICAgICBsZXQg
Y2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pWzBd
OwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLCAiVGhlcmUgc2hvdWxk
IGJlIGF0IGxlYXN0IG9uZSBjYW52YXMuIik7CiAKICAgICAgICAgICAgIGNhbnZhcy5yZXF1ZXN0
Q2xpZW50Tm9kZXMoKGNsaWVudE5vZGVzKSA9PiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LTJkLmh0bWwKaW5kZXggNTM1MDk1NzYyYjM5MGYy
Y2UzZmI1YTk2OTZhZGU2MTEzNDMzYzJmZC4uZTljYmExZDAxMDdjM2E2N2NlZjE3MmU4YWI1YTlh
NGE0YWE5Y2EwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1
ZXN0Q29udGVudC0yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVx
dWVzdENvbnRlbnQtMmQuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50MkQudmFsaWRDYW52YXNJZCIsCiAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2RlZCBkYXRhIGZvciB0aGUg
Y2FudmFzIG9uIHRoZSBwYWdlIHdpdGggdGhlIGdpdmVuIHR5cGUuIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5h
Z2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5D
YW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFy
cmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMp
ID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkNhbnZhczJE
KTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0KGBN
aXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1hcHJlbmRlcmVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LWJpdG1h
cHJlbmRlcmVyLmh0bWwKaW5kZXggY2Q1MDgzYzI1MjUyNzRkNzlmYjhmNGJkNzliOTc5MzhmZTMw
YzYzMC4uZjUyNjZlZmRlZmQ3ZWM3NDc0ZTk2ZWJhYWZkMGJiNTczYjI1ZjJiOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Q29udGVudC1iaXRtYXByZW5k
ZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRl
bnQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMjIsNyArMjIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50Qml0bWFwUmVuZGVyZXIudmFs
aWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBiYXNlNjQgZW5jb2Rl
ZCBkYXRhIGZvciB0aGUgQml0bWFwUmVuZGVyZXIgY2FudmFzIG9uIHRoZSBwYWdlLiIsCiAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKKyAgICAgICAgICAg
IGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAg
ICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
Q29udGVudC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
Q29udGVudC13ZWJnbC5odG1sCmluZGV4IGFlYjgxZWYyN2QzYzk4MDU4NDk3OTk2YTE3OWJkNjRh
NWJmZTliZWYuLjcwYzIxZmU0MzM5NjkxNTk2MDkxMjI4NDU2NmFmMmY3M2Q1OGI5NjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRlbnQtd2ViZ2wu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3RDb250ZW50LXdl
YmdsLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgbmFt
ZTogIkNhbnZhcy5yZXF1ZXN0Q29udGVudFdlYkdMLnZhbGlkQ2FudmFzSWQiLAogICAgICAgICBk
ZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3IgdGhlIFdlYkdMIGNh
bnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2Fu
dmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
TCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09
PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMp
IHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVxdWVzdENvbnRlbnQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3JlcXVlc3RDb250ZW50LXdlYmdsMi5odG1sCmluZGV4IDZiMDNkNWVjN2U1OWQwMjY2ODdjNmI3
ZjBkYjI4MDZlMTYzYWVjY2YuLmY3YjU1ZjRhM2RmYzA4NDNhZWY3ODgwYjlmNzk3NDBjZTE1YTA4
NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVxdWVzdENvbnRl
bnQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0
Q29udGVudC13ZWJnbDIuaHRtbApAQCAtMjEsNyArMjEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICBuYW1lOiAiQ2FudmFzLnJlcXVlc3RDb250ZW50V2ViR0wyLnZhbGlkQ2FudmFzSWQi
LAogICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0aGUgYmFzZTY0IGVuY29kZWQgZGF0YSBmb3Ig
dGhlIFdlYkdMMiBjYW52YXMgb24gdGhlIHBhZ2UuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCBy
ZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR0wyKTsKKyAgICAgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJ
LmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMu
Y29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDIpOwogICAgICAgICAg
ICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFz
LmApOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVxdWVzdE5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVxdWVzdE5vZGUuaHRtbAppbmRleCBlNWM2MTQ3ZTM0N2JjMzY5ZTJjMDVjYzg0MTY2
ZDgwNmE3MWMwNjE2Li5kY2M0YmNjZWU3NWY0YTY5Mzg0NWJiZGVlNzEyM2FmZmUyYTc5MDUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlcXVlc3ROb2RlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXF1ZXN0Tm9kZS5odG1sCkBAIC0x
OCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIG5hbWU6ICJDYW52YXMucmVx
dWVzdE5vZGUudmFsaWRDYW52YXNJZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IHRoZSBu
b2RlIGlkIGZvciBlYWNoIGNhbnZhcyBvbiB0aGUgcGFnZS4iLAogICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhc2VzID0gV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNlczsKKyAgICAgICAgICAgIGxldCBjYW52YXNlcyA9IEFycmF5LmZyb20oV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKICAgICAgICAgICAgIGxldCBleHBlY3RlZExl
bmd0aCA9IGNhbnZhc2VzLmxlbmd0aDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGV4cGVjdGVkTGVuZ3RoID09PSAzLCAiVGhlIHBhZ2UgaGFzIDMgY2FudmFzZXMuIik7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtMmQuaHRt
bAppbmRleCBjNDFjYzZiYzc0YTMyNDE5MjBiM2Q2YjVjM2Q5YjNjNmJmZGE5NWQxLi5mZTE0MTE3
OWI3Y2FkYTNiYjU4NWE4ODg4NGRlNmJiNjM0ZTc0MzhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LTJkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC0yZC5odG1sCkBAIC0xNyw3ICsxNyw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiBgQ2FudmFzLnJlc29sdmVDb250ZXh0
MkQudmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJu
IGEgdmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIGxldCBjYW52YXMgPSBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBl
ID09PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuQ2FudmFzMkQpOworICAgICAgICAgICAgbGV0IGNh
bnZhcyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5k
KChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBl
LkNhbnZhczJEKTsKICAgICAgICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0KGBNaXNzaW5nIENhbnZhcy5gKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LWJpdG1h
cHJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250
ZXh0LWJpdG1hcHJlbmRlcmVyLmh0bWwKaW5kZXggODYyNTI5MjY1YzRkZDZiMjliMjk2Nzg4NDQx
Y2VmOWU2NzdiOWIxMC4uMjk3ZDQ0MWUxNGZhNGIxYmQzOTZkYzA1NGY4NWI4ZDkzZjlhZTVjMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC1i
aXRtYXByZW5kZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVz
b2x2ZUNvbnRleHQtYml0bWFwcmVuZGVyZXIuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dEJpdG1hcFJlbmRl
cmVyLnZhbGlkSWRlbnRpZmllcmAsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2hvdWxkIHJldHVy
biBhIHZhbGlkIG9iamVjdCBmb3IgdGhlIGdpdmVuIGNhbnZhcyBpZGVudGlmaWVyLiIsCiAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNlcy5maW5kKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlw
ZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLkJpdG1hcFJlbmRlcmVyKTsKKyAgICAgICAgICAg
IGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlv
bikuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5CaXRtYXBSZW5kZXJlcik7CiAgICAgICAgICAgICBpZiAoIWNhbnZhcykgewogICAg
ICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMuYCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZl
Q29udGV4dC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZl
Q29udGV4dC13ZWJnbC5odG1sCmluZGV4IDk1YWRmMTJjMDkzYWRmMzBjNDdkMjkyOTkyMzQzZGNm
MDFjY2U4N2UuLjJhNzBmYTRhMGZiMTdmZmExOTQ0NDc1MTljYjM5ZTU4MGI5MzVlNTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ2wu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc29sdmVDb250ZXh0LXdl
YmdsLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6
IGBDYW52YXMucmVzb2x2ZUNvbnRleHRXZWJHTC52YWxpZElkZW50aWZpZXJgLAogICAgICAgICBk
ZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9yIHRoZSBnaXZlbiBj
YW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAg
ICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFzZXMuZmluZCgoY2Fu
dmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJH
TCk7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2Vy
LmNhbnZhc0NvbGxlY3Rpb24pLmZpbmQoKGNhbnZhcykgPT4gY2FudmFzLmNvbnRleHRUeXBlID09
PSBXSS5DYW52YXMuQ29udGV4dFR5cGUuV2ViR0wpOwogICAgICAgICAgICAgaWYgKCFjYW52YXMp
IHsKICAgICAgICAgICAgICAgICByZWplY3QoYE1pc3NpbmcgQ2FudmFzLmApOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMv
cmVzb2x2ZUNvbnRleHQtd2ViZ2wyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFz
L3Jlc29sdmVDb250ZXh0LXdlYmdsMi5odG1sCmluZGV4IDExNTFmOTE3YTdhMjNlNmZlMzMyYjQz
YTlhMzQwNmE5Y2ZlOTBhNTQuLmQ4ZTA4MzFlNmJjM2EyOTY1ZThkNDJjZmQ1ODdlMmRmYTE0ZDJj
NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRl
eHQtd2ViZ2wyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvbHZl
Q29udGV4dC13ZWJnbDIuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgbmFtZTogYENhbnZhcy5yZXNvbHZlQ29udGV4dFdlYkdMMi52YWxpZElkZW50aWZpZXJg
LAogICAgICAgICBkZXNjcmlwdGlvbjogIlNob3VsZCByZXR1cm4gYSB2YWxpZCBvYmplY3QgZm9y
IHRoZSBnaXZlbiBjYW52YXMgaWRlbnRpZmllci4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIuY2FudmFz
ZXMuZmluZCgoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250
ZXh0VHlwZS5XZWJHTDIpOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IEFycmF5LmZyb20oV0ku
Y2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKS5maW5kKChjYW52YXMpID0+IGNhbnZhcy5j
b250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdMMik7CiAgICAgICAgICAg
ICBpZiAoIWNhbnZhcykgewogICAgICAgICAgICAgICAgIHJlamVjdChgTWlzc2luZyBDYW52YXMu
YCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NhbnZhcy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jYW52YXMvcmVzb2x2ZUNvbnRleHQtd2ViZ3B1Lmh0bWwKaW5kZXggZGMwMGVmMTIz
N2E2N2I4OTA1ZjM4MGRjZWNmNmE3OWNlYjYzMjY3Ni4uZTkyNWIyNzE2NDhmNDQ0YzIzYzlkMmE4
NWNiODUyMDYyNGNiNjI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9yZXNvbHZlQ29udGV4dC13ZWJncHUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y2FudmFzL3Jlc29sdmVDb250ZXh0LXdlYmdwdS5odG1sCkBAIC0yMiwxNCArMjIsMTQgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6IGBDYW52YXMucmVzb2x2ZUNvbnRleHRXZWJHUFUu
dmFsaWRJZGVudGlmaWVyYCwKICAgICAgICAgZGVzY3JpcHRpb246ICJTaG91bGQgcmV0dXJuIGEg
dmFsaWQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gY2FudmFzIGlkZW50aWZpZXIuIiwKICAgICAgICAg
YXN5bmMgdGVzdCgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFXSS5jYW52
YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgIlRoZXJlIHNob3VsZCBiZSBubyBjYW52YXNlcy4i
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc0NvbGxlY3Rpb24uc2l6ZSwgIlRoZXJlIHNob3VsZCBiZSBubyBjYW52YXNlcy4iKTsKIAot
ICAgICAgICAgICAgbGV0IFtjYW52YXNBZGRlZEV2ZW50XSA9IGF3YWl0IFByb21pc2UuYWxsKFsK
LSAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFu
YWdlci5FdmVudC5DYW52YXNBZGRlZCksCisgICAgICAgICAgICBsZXQgW2NhbnZhc0NvbGxlY3Rp
b25JdGVtQWRkZWRFdmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAg
V0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlv
bi5FdmVudC5JdGVtQWRkZWQpLAogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoYGNyZWF0ZURldmljZSgpYCksCiAgICAgICAgICAgICBdKTsKIAotICAgICAgICAg
ICAgbGV0IHtjYW52YXN9ID0gY2FudmFzQWRkZWRFdmVudC5kYXRhOworICAgICAgICAgICAgbGV0
IGNhbnZhcyA9IGNhbnZhc0NvbGxlY3Rpb25JdGVtQWRkZWRFdmVudC5kYXRhLml0ZW07CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXMuY29udGV4dFR5cGUsIFdJLkNhbnZh
cy5Db250ZXh0VHlwZS5XZWJHUFUsICJBZGRlZCBjYW52YXMgc2hvdWxkIGJlIGEgV2ViR1BVIGRl
dmljZS4iKTsKIAogICAgICAgICAgICAgY29uc3Qgb2JqZWN0R3JvdXAgPSAidGVzdCI7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9jcmVhdGUtY29u
dGV4dC11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNl
cy9jcmVhdGUtY29udGV4dC11dGlsaXRpZXMuanMKaW5kZXggM2E0NjA0NTUyNTEwMTgyYmJlMmVm
MzU1NzIzYTQxZTA0Mjg5ZDYyZi4uMTU5MTU4MDI1OTAyM2I5ZTIzOGU3MWJiNWM4NTVhYTdjODY0
ODFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMv
Y3JlYXRlLWNvbnRleHQtdXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL2NyZWF0ZS1jb250ZXh0LXV0aWxpdGllcy5qcwpAQCAtMzUsNyArMzUs
NyBAQCBmdW5jdGlvbiBkZXN0cm95Q2FudmFzZXMoKSB7CiAgICAgd2luZG93LmNvbnRleHRzID0g
W107CiAKICAgICAvLyBGb3JjZSBHQyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlz
IGRlc3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2Vp
dmUgV0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBk
b2VzIG5vdCByZWNlaXZlIENhbnZhcy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1l
b3V0KCgpID0+IHsgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKQEAgLTQzLDkg
KzQzLDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgbGV0IHN1
aXRlID0gbnVsbDsKIAogICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzQWRkZWQoY29udGV4dFR5cGUp
IHsKLSAgICAgICAgcmV0dXJuIFdJLmNhbnZhc01hbmFnZXIuYXdhaXRFdmVudChXSS5DYW52YXNN
YW5hZ2VyLkV2ZW50LkNhbnZhc0FkZGVkKQorICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdl
ci5jYW52YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtQWRk
ZWQpCiAgICAgICAgIC50aGVuKChldmVudCkgPT4gewotICAgICAgICAgICAgbGV0IGNhbnZhcyA9
IGV2ZW50LmRhdGEuY2FudmFzOworICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGV2ZW50LmRhdGEu
aXRlbTsKICAgICAgICAgICAgIGxldCBjb250ZXh0RGlzcGxheU5hbWUgPSBXSS5DYW52YXMuZGlz
cGxheU5hbWVGb3JDb250ZXh0VHlwZShjb250ZXh0VHlwZSk7CiAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKGNhbnZhcy5jb250ZXh0VHlwZSwgY29udGV4dFR5cGUsIGBDYW52
YXMgY29udGV4dCBzaG91bGQgYmUgJHtjb250ZXh0RGlzcGxheU5hbWV9LmApOwogCkBAIC03Myw5
ICs3Myw5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIGF3YWl0Q2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKSB7Ci0gICAg
ICAgIHJldHVybiBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNSZW1vdmVkKQorICAgICAgICByZXR1cm4gV0kuY2FudmFzTWFuYWdlci5jYW52
YXNDb2xsZWN0aW9uLmF3YWl0RXZlbnQoV0kuQ29sbGVjdGlvbi5FdmVudC5JdGVtUmVtb3ZlZCkK
ICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgY2FudmFzID0gZXZl
bnQuZGF0YS5jYW52YXM7CisgICAgICAgICAgICBsZXQgY2FudmFzID0gZXZlbnQuZGF0YS5pdGVt
OwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjYW52YXMuaWRlbnRpZmll
ciwgY2FudmFzSWRlbnRpZmllciwgIlJlbW92ZWQgY2FudmFzIGhhcyBleHBlY3RlZCBJRC4iKTsK
ICAgICAgICAgfSk7CiAgICAgfQpAQCAtODksNyArODksNyBAQCBUZXN0UGFnZS5yZWdpc3Rlcklu
aXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgICAgIG5hbWU6IGAke3N1aXRlLm5hbWV9Lk5vQ2Fu
dmFzZXNgLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBDYW52YXNN
YW5hZ2VyIGhhcyBubyBjYW52YXNlcyBpbml0aWFsbHkuIiwKICAgICAgICAgICAgIHRlc3QocmVz
b2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmxlbmd0aCwgMCwgIkNhbnZhc01hbmFnZXIgc2hv
dWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2l6ZSwgMCwgIkNh
bnZhc01hbmFnZXIgc2hvdWxkIGhhdmUgbm8gY2FudmFzZXMuIik7CiAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctdXRpbGl0
aWVzLmpzCmluZGV4IDYwMTQ2ZmYzODQ4N2ZkMTkzZTIzZDMzNzQ3ZGYzMTA0NmNjNjgxZjMuLjc3
YTBlYTM0M2I2NWY0MjRiYWM2ZGUzNzVlMzNiZjJjYWJkY2NiZDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy11dGlsaXRpZXMuanMK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3JkaW5nLXV0
aWxpdGllcy5qcwpAQCAtODYsNyArODYsNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KCgpID0+IHsKICAgICB9CiAKICAgICB3aW5kb3cuZ2V0Q2FudmFzID0gZnVuY3Rpb24odHlwZSkg
ewotICAgICAgICBsZXQgY2FudmFzZXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzLmZpbHRl
cigoY2FudmFzKSA9PiBjYW52YXMuY29udGV4dFR5cGUgPT09IHR5cGUpOworICAgICAgICBsZXQg
Y2FudmFzZXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbiku
ZmlsdGVyKChjYW52YXMpID0+IGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gdHlwZSk7CiAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhc2VzLmxlbmd0aCA9PT0gMSwgYFRoZXJlIHNob3Vs
ZCBvbmx5IGJlIG9uZSBjYW52YXMgd2l0aCB0eXBlICIke3R5cGV9Ii5gKTsKICAgICAgICAgaWYg
KGNhbnZhc2VzLmxlbmd0aCAhPT0gMSkKICAgICAgICAgICAgIHJldHVybiBudWxsOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3Jh
bS11dGlsaXRpZXMtd2ViZ2wuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291
cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcwppbmRleCA1Mjc1YzQ0MWFhZmM3
M2I5MTA3OTQ1YjNjZDczZjljYTY3ZTFlNjVlLi5mNDNlNmYyNzdjZGM3ZDA1OGQwOTk0MWE3NjY3
NzYzNGUwNWU2Y2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jl
c291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJnbC5qcworKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJn
bC5qcwpAQCAtMzksNyArMzksNyBAQCBmdW5jdGlvbiBkZWxldGVQcm9ncmFtKCkgewogZnVuY3Rp
b24gZGVsZXRlQ29udGV4dCgpIHsKICAgICBjb250ZXh0ID0gbnVsbDsKICAgICAvLyBGb3JjZSBH
QyB0byBtYWtlIHN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlzIGRlc3Ryb3llZCwgb3RoZXJ3aXNl
IHRoZSBmcm9udGVuZAotICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgV0kuQ2FudmFzTWFuYWdlci5F
dmVudC5DYW52YXNSZW1vdmVkIGV2ZW50cy4KKyAgICAvLyBkb2VzIG5vdCByZWNlaXZlIENhbnZh
cy5jYW52YXNSZW1vdmVkIGV2ZW50cy4KICAgICBzZXRUaW1lb3V0KCgpID0+IHsgR0NDb250cm9s
bGVyLmNvbGxlY3QoKTsgfSwgMCk7CiB9CiAKQEAgLTQ3LDggKzQ3LDkgQEAgVGVzdFBhZ2UucmVn
aXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgbGV0IHN1aXRlID0gbnVsbDsKIAogICAgIGZ1
bmN0aW9uIHdoZW5Qcm9ncmFtQWRkZWQoY2FsbGJhY2spIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoV0kuY2FudmFzTWFuYWdlci5jYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBz
aG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOwotICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNh
bnZhc2VzWzBdLnNoYWRlclByb2dyYW1Db2xsZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVy
KFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFkZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgbGV0
IGNhbnZhc2VzID0gQXJyYXkuZnJvbShXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24p
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJU
aGVyZSBzaG91bGQgb25seSBiZSBvbmUgY2FudmFzLiIpOworICAgICAgICBjYW52YXNlc1swXS5z
aGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0
aW9uLkV2ZW50Lkl0ZW1BZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvZ3Jh
bSA9IGV2ZW50LmRhdGEuaXRlbTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChwcm9ncmFtIGluc3RhbmNlb2YgV0kuU2hhZGVyUHJvZ3JhbSwgIkFkZGVkIFNoYWRlclByb2dy
YW0uIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocHJvZ3JhbS5jYW52
YXMgaW5zdGFuY2VvZiBXSS5DYW52YXMsICJTaGFkZXJQcm9ncmFtIHNob3VsZCBoYXZlIGEgcGFy
ZW50IENhbnZhcy4iKTsKQEAgLTU3LDggKzU4LDkgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFs
aXplcigoKSA9PiB7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gd2hlblByb2dyYW1SZW1vdmVkKGNh
bGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXMubGVuZ3RoID09PSAxLCAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNhbnZhcy4i
KTsKLSAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29s
bGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1S
ZW1vdmVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgbGV0IGNhbnZhc2VzID0gQXJyYXkuZnJvbShX
SS5jYW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24pOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUg
Y2FudmFzLiIpOworICAgICAgICBjYW52YXNlc1swXS5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5z
aW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAo
ZXZlbnQpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZXZlbnQuZGF0YS5pdGVtOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0gaW5zdGFuY2VvZiBX
SS5TaGFkZXJQcm9ncmFtLCAiUmVtb3ZlZCBTaGFkZXJQcm9ncmFtLiIpOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb2dyYW0uY2FudmFzIGluc3RhbmNlb2YgV0kuQ2Fu
dmFzLCAiU2hhZGVyUHJvZ3JhbSBzaG91bGQgaGF2ZSBhIHBhcmVudCBDYW52YXMuIik7CkBAIC03
NCw3ICs3Niw3IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IFNoYWRlclByb2dyYW1BZGRlZCBpcyBzZW50
IGZvciBhIHByb2dyYW0gY3JlYXRlZCBiZWZvcmUgQ2FudmFzQWdlbnQgaXMgZW5hYmxlZC4iLAog
ICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgICAvLyBU
aGlzIGNhbid0IHVzZSBgYXdhaXRFdmVudGAgc2luY2UgdGhlIHByb21pc2UgcmVzb2x1dGlvbiBo
YXBwZW5zIG9uIHRoZSBuZXh0IHRpY2suCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdl
ci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc0Fk
ZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5jYW52YXNNYW5hZ2VyLmNhbnZh
c0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVjdGlvbi5FdmVudC5J
dGVtQWRkZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICB3aGVuUHJvZ3JhbUFk
ZGVkKChwcm9ncmFtKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CiAg
ICAgICAgICAgICAgICAgICAgIH0pOwpAQCAtMTEzLDcgKzExNSw3IEBAIFRlc3RQYWdlLnJlZ2lz
dGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKICAgICAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOwogCi0gICAgICAg
ICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52
YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1JlbW92ZWQsIChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgIFdJLmNhbnZhc01hbmFnZXIuY2FudmFzQ29sbGVjdGlvbi5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXSS5Db2xsZWN0aW9uLkV2ZW50Lkl0ZW1SZW1vdmVkLCAoZXZlbnQpID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgY2FudmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfSk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3No
YWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
YW52YXMvcmVzb3VyY2VzL3NoYWRlclByb2dyYW0tdXRpbGl0aWVzLXdlYmdwdS5qcwppbmRleCBm
ZTQ4ZDhmZDg1MTE0NjU4OThmZDNiMDQ1MGRlODk1MTM3NDQ5YmU0Li5iOGRlMzRjZmE4Nzg2ODVm
OTY1YTlmOTBiYjRiZjhhYWIzNTczNjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3Jlc291cmNlcy9zaGFkZXJQcm9ncmFtLXV0aWxpdGllcy13ZWJncHUuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvc2hhZGVyUHJvZ3JhbS11
dGlsaXRpZXMtd2ViZ3B1LmpzCkBAIC02NCw3ICs2NCw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNyZWF0
ZVJlbmRlclBpcGVsaW5lKGNvZGUgPSByZW5kZXJQaXBlbGluZVNvdXJjZSkgewogZnVuY3Rpb24g
ZGVsZXRlRGV2aWNlKCkgewogICAgIGRldmljZSA9IG51bGw7CiAgICAgLy8gRm9yY2UgR0MgdG8g
bWFrZSBzdXJlIHRoZSBkZXZpY2UgaXMgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGZyb250ZW5k
Ci0gICAgLy8gZG9lcyBub3QgcmVjZWl2ZSBXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1Jl
bW92ZWQgZXZlbnRzLgorICAgIC8vIGRvZXMgbm90IHJlY2VpdmUgQ2FudmFzLmNhbnZhc1JlbW92
ZWQgZXZlbnRzLgogICAgIHNldFRpbWVvdXQoKCkgPT4geyBHQ0NvbnRyb2xsZXIuY29sbGVjdCgp
OyB9LCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9z
ZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jYW52YXMvc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Lmh0bWwKaW5kZXgg
ZDk4ZjBmZWE0ZTkyYzE1Mjk3ODExMmMyZDA3MGNkNzRlOTU5ZDRlMi4uNTVlNTUyNDczMDgzYWEy
ZDFiYWViMGU4ODdlZTA1ZmMyOGYwYTBlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NhbnZhcy9zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVD
b3VudC5odG1sCkBAIC03Nyw4ICs3Nyw4IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGhhbmRsZVJlY29yZGluZ1N0b3BwZWQoY2FudmFzLCBldmVudC5kYXRhLnJlY29y
ZGluZyk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgV0kuY2FudmFzTWFu
YWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZh
c0FkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY2FudmFzID0gZXZlbnQu
ZGF0YS5jYW52YXM7CisgICAgICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xs
ZWN0aW9uLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNvbGxlY3Rpb24uRXZlbnQuSXRlbUFk
ZGVkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzID0gZXZlbnQuZGF0
YS5pdGVtOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghY2FudmFz
LnJlY29yZGluZ0FjdGl2ZSkKIAogICAgICAgICAgICAgICAgICAgICBjYW52YXMuYWRkRXZlbnRM
aXN0ZW5lcihXSS5DYW52YXMuRXZlbnQuUmVjb3JkaW5nU3RhcnRlZCwgaGFuZGxlUmVjb3JkaW5n
U3RhcnRlZFdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZh
cy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ3B1Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbAppbmRleCBk
NDBmYWI3ODM4MTMwY2M5NGIwM2JmOTFkOTZmMjI3MDkwNGViMDEzLi5kNWZiODc3MmMwYjM3NWM0
MGQ1ZDdhMGU0MjAyYTU0ZmY1ZDUyZDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3NoYWRlclByb2dyYW0tYWRkLXJlbW92ZS13ZWJncHUu
aHRtbApAQCAtMTQsOSArMTQsMTEgQEAgd2luZG93LmJlZm9yZVRlc3QgPSBhc3luYyBmdW5jdGlv
bigpIHsKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKGBDYW52YXMuU2hhZGVyUHJvZ3JhbS5XZWJHUFVgKTsKIAotICAgIGxl
dCBjYW52YXMgPSBXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2VzWzBdOworICAgIGxldCBjYW52YXNl
cyA9IEFycmF5LmZyb20oV0kuY2FudmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChjYW52YXNlcy5sZW5ndGggPT09IDEsICJUaGVyZSBzaG91bGQg
b25seSBiZSBvbmUgY2FudmFzLiIpOworCisgICAgbGV0IGNhbnZhcyA9IGNhbnZhc2VzWzBdOwog
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNhbnZhcywgIlRoZXJlIHNob3VsZCBiZSBhIGNhbnZh
cy4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS5jYW52YXNNYW5hZ2VyLmNhbnZhc2Vz
Lmxlbmd0aCA9PT0gMSwgIlRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjYW52YXMuIik7CiAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoY2FudmFzLmNvbnRleHRUeXBlID09PSBXSS5DYW52YXMuQ29u
dGV4dFR5cGUuV2ViR1BVLCAiQ2FudmFzIHNob3VsZCBiZSBXZWJHUFUuIik7CiAKICAgICBhc3lu
YyBmdW5jdGlvbiBhd2FpdFByb2dyYW1BZGRlZChwcm9ncmFtVHlwZSkgewpAQCAtMTE4LDcgKzEy
MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
CiAgICAgICAgICAgICBsZXQgY2FudmFzUmVtb3ZlZCA9IGZhbHNlOwogCi0gICAgICAgICAgICBX
SS5jYW52YXNNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLkNhbnZhc01hbmFnZXIu
RXZlbnQuQ2FudmFzUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBXSS5jYW52YXNN
YW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ29sbGVj
dGlvbi5FdmVudC5JdGVtUmVtb3ZlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgY2Fu
dmFzUmVtb3ZlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXItd2ViZ3B1LXNoYXJlZFZlcnRleEZy
YWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13
ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAppbmRleCAzNGQwMmFiMTdlOTA1YTRiNzhh
MDI2NTUwNDlhZTI4ZGIzMzEwODcxLi44Y2Y5YTQ3NTYyMjQyMWM4MzY4OWM5YWQzN2QyMTkwYTAx
Y2U5ZTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNo
YWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci13ZWJncHUtc2hhcmVkVmVydGV4RnJhZ21lbnQu
aHRtbApAQCAtNTcsMTAgKzU3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJDcmVhdGluZyByZW5kZXIgcGlwZWxpbmUuLi4iKTsKICAgICAgICAgbGV0
IGV2YWx1dGVQcm9taXNlID0gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY3JlYXRlUmVu
ZGVyUGlwZWxpbmUoKWApOwogCi0gICAgICAgIGlmICghV0kuY2FudmFzTWFuYWdlci5jYW52YXNl
cy5sZW5ndGgpCi0gICAgICAgICAgICBhd2FpdCBXSS5jYW52YXNNYW5hZ2VyLmF3YWl0RXZlbnQo
V0kuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNBZGRlZCk7CisgICAgICAgIGlmICghV0kuY2Fu
dmFzTWFuYWdlci5jYW52YXNDb2xsZWN0aW9uLnNpemUpCisgICAgICAgICAgICBhd2FpdCBXSS5j
YW52YXNNYW5hZ2VyLmNhbnZhc0NvbGxlY3Rpb24uYXdhaXRFdmVudChXSS5Db2xsZWN0aW9uLkV2
ZW50Lkl0ZW1BZGRlZCk7CiAKLSAgICAgICAgbGV0IGNhbnZhcyA9IFdJLmNhbnZhc01hbmFnZXIu
Y2FudmFzZXNbMF07CisgICAgICAgIGxldCBjYW52YXMgPSBBcnJheS5mcm9tKFdJLmNhbnZhc01h
bmFnZXIuY2FudmFzQ29sbGVjdGlvbilbMF07CiAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGNhbnZhcy5jb250ZXh0VHlwZSA9PT0gV0kuQ2FudmFzLkNvbnRleHRUeXBlLldlYkdQVSwgIkNh
bnZhcyBzaG91bGQgYmUgV2ViR1BVLiIpOwogCiAgICAgICAgIGxldCBpdGVtQWRkZWRFdmVudCA9
IGF3YWl0IGNhbnZhcy5zaGFkZXJQcm9ncmFtQ29sbGVjdGlvbi5hd2FpdEV2ZW50KFdJLkNvbGxl
Y3Rpb24uRXZlbnQuSXRlbUFkZGVkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVu
Y3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCA2NmJkYmFiOWVlZTMxNjc5MGY4ZjI2NzQ2ZjkzZTIx
ZWQ0YzNkZjFlLi5kYmY2MzUxZTlhMDkyNDYwYWJlZTlkMzRkOTIwNmIwZjczMzZiM2E1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhw
ZWN0LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC01
NCw2ICs1NCw3NCBAQCBGQUlMOiBleHBlY3RGYWxzZShbXSkKICAgICBFeHBlY3RlZDogZmFsc2V5
CiAgICAgQWN0dWFsOiBbXQogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogSW5zcGVjdG9yVGVzdC5l
eHBlY3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFTUworUEFTUzogZXhwZWN0RW1wdHkobnVsbCkKK1BB
U1M6IGV4cGVjdEVtcHR5KCIiKQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitQQVNTOiBleHBlY3RF
bXB0eShbXSkKK1BBU1M6IGV4cGVjdEVtcHR5KHt9KQorUEFTUzogZXhwZWN0RW1wdHkoe30pCitF
eHBlY3RlZCB0byBGQUlMCitGQUlMOiBleHBlY3RFbXB0eSgidGVzdCIpCisgICAgRXhwZWN0ZWQ6
IGVtcHR5CisgICAgQWN0dWFsOiAidGVzdCIKK0ZBSUw6IGV4cGVjdEVtcHR5KHsidGVzdCI6MX0p
CisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiB7InRlc3QiOjF9CitGQUlMOiBleHBl
Y3RFbXB0eSgidGVzdCIpCisgICAgRXhwZWN0ZWQ6IGVtcHR5CisgICAgQWN0dWFsOiAidGVzdCIK
K0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAgIEFjdHVhbDog
e30KK0ZBSUw6IGV4cGVjdEVtcHR5KHt9KQorICAgIEV4cGVjdGVkOiBlbXB0eQorICAgIEFjdHVh
bDoge30KK0ZBSUw6IGV4cGVjdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24t
b2JqZWN0OgorICAgIEFjdHVhbDogdHJ1ZQorRkFJTDogZXhwZWN0RW1wdHkgc2hvdWxkIG5vdCBi
ZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0dWFsOiBmYWxzZQorRkFJTDogZXhw
ZWN0RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAgQWN0
dWFsOiAxCitGQUlMOiBleHBlY3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9u
LW9iamVjdDoKKyAgICBBY3R1YWw6IHVuZGVmaW5lZAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
SW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFbXB0eQorRXhwZWN0ZWQgdG8gUEFTUworUEFTUzogZXhw
ZWN0Tm90RW1wdHkoInRlc3QiKQorUEFTUzogZXhwZWN0Tm90RW1wdHkoeyJ0ZXN0IjoxfSkKK1BB
U1M6IGV4cGVjdE5vdEVtcHR5KCJ0ZXN0IikKK1BBU1M6IGV4cGVjdE5vdEVtcHR5KHt9KQorUEFT
UzogZXhwZWN0Tm90RW1wdHkoe30pCitFeHBlY3RlZCB0byBGQUlMCitGQUlMOiBleHBlY3ROb3RF
bXB0eShudWxsKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IG51bGwKK0ZB
SUw6IGV4cGVjdE5vdEVtcHR5KCIiKQorICAgIEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1
YWw6ICIiCitGQUlMOiBleHBlY3ROb3RFbXB0eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5
CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhwZWN0Tm90RW1wdHkoW10pCisgICAgRXhwZWN0ZWQ6
IG5vdCBlbXB0eQorICAgIEFjdHVhbDogW10KK0ZBSUw6IGV4cGVjdE5vdEVtcHR5KHt9KQorICAg
IEV4cGVjdGVkOiBub3QgZW1wdHkKKyAgICBBY3R1YWw6IHt9CitGQUlMOiBleHBlY3ROb3RFbXB0
eSh7fSkKKyAgICBFeHBlY3RlZDogbm90IGVtcHR5CisgICAgQWN0dWFsOiB7fQorRkFJTDogZXhw
ZWN0Tm90RW1wdHkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIG5vbi1vYmplY3Q6CisgICAg
QWN0dWFsOiB0cnVlCitGQUlMOiBleHBlY3ROb3RFbXB0eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3
aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IGZhbHNlCitGQUlMOiBleHBlY3ROb3RFbXB0
eSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgbm9uLW9iamVjdDoKKyAgICBBY3R1YWw6IDEK
K0ZBSUw6IGV4cGVjdE5vdEVtcHR5IHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBub24tb2Jq
ZWN0OgorICAgIEFjdHVhbDogdW5kZWZpbmVkCisKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBJbnNw
ZWN0b3JUZXN0LmV4cGVjdE51bGwKIEV4cGVjdGVkIHRvIFBBU1MKIFBBU1M6IGV4cGVjdE51bGwo
bnVsbCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3Qt
aGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy90ZXN0LWhhcm5lc3MtZXhwZWN0LWZ1bmN0aW9ucy5odG1sCmluZGV4IDkxZTg1ODBj
N2NiNjI3MzQ1ODI1NDAyNDk3MjAwOWU5OWNkYTgzNGQuLmUzODY0YTAzYzRlMDk0MWNhOGMwMmYy
ZjBhNzg2MjYzOTg4YjAxMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL3Rlc3QtaGFybmVzcy1leHBlY3QtZnVuY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLWV4cGVjdC1mdW5jdGlvbnMuaHRt
bApAQCAtNDgsNiArNDgsMjAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgYWRkVGVzdENhc2UoZXhw
ZWN0VGhhdFRlc3RDYXNlKTsKICAgICBhZGRJbnZlcnNlVGVzdENhc2UoImV4cGVjdEZhbHNlIiwg
ZXhwZWN0VGhhdFRlc3RDYXNlKTsKIAorICAgIGxldCBleHBlY3RFbXB0eVRlc3RDYXNlID0gewor
ICAgICAgICBmdW5jdGlvbk5hbWU6ICJleHBlY3RFbXB0eSIsCisgICAgICAgIHBhc3NpbmdJbnB1
dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBuZXcgU2V0XSwKKyAgICAgICAgZmFpbGlu
Z0lucHV0czogWyJ0ZXN0Iiwge3Rlc3Q6IDF9LCBbInRlc3QiXSwgbmV3IE1hcChbWyJ0ZXN0Iiwg
MV1dKSwgbmV3IFNldChbInRlc3QiXSksIHRydWUsIGZhbHNlLCAxLCB1bmRlZmluZWRdLAorICAg
IH07CisgICAgYWRkVGVzdENhc2UoZXhwZWN0RW1wdHlUZXN0Q2FzZSk7CisKKyAgICBsZXQgZXhw
ZWN0Tm90RW1wdHlUZXN0Q2FzZSA9IHsKKyAgICAgICAgZnVuY3Rpb25OYW1lOiAiZXhwZWN0Tm90
RW1wdHkiLAorICAgICAgICBwYXNzaW5nSW5wdXRzOiBbInRlc3QiLCB7dGVzdDogMX0sIFsidGVz
dCJdLCBuZXcgTWFwKFtbInRlc3QiLCAxXV0pLCBuZXcgU2V0KFsidGVzdCJdKV0sCisgICAgICAg
IGZhaWxpbmdJbnB1dHM6IFtudWxsLCAiIiwge30sIFtdLCBuZXcgTWFwLCBuZXcgU2V0LCB0cnVl
LCBmYWxzZSwgMSwgdW5kZWZpbmVkXSwKKyAgICB9OworICAgIGFkZFRlc3RDYXNlKGV4cGVjdE5v
dEVtcHR5VGVzdENhc2UpOworCiAgICAgbGV0IGV4cGVjdE51bGxUZXN0Q2FzZSA9IHsKICAgICAg
ICAgZnVuY3Rpb25OYW1lOiAiZXhwZWN0TnVsbCIsCiAgICAgICAgIHBhc3NpbmdJbnB1dHM6IFtu
dWxsXSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>